加密世界链是一条基于 Raft+DPoS 的区块联盟融合主链,通过区块链核心引擎,在联盟计算机网络上构建了一个联盟区块链环境。联盟核心会员分别提供若干高性能、高可用性、高稳定性的记账节点服务器形成联盟记账节点网络,在区块链记账入链时,先通过Raft 算法每个联盟核心会员从自己提供的记账节点服务器中挑选出一台候选记账节点服务器,然后所有候选记账节点服务器再通过DPoS 共识算法选举确定谁最终获得记账权。
多链联盟融合基础主链
基于 Raft + DPos 共识机制的记账系统
同时加密世界链自带快速响应交易的 SPEEDFORCE 网络,类似于比特币和以太坊的雷电网络,但是 SPEEDFORCE 拥有毫秒级的交易确认速度,他的原理是用户在发起交易的时候,只需要经过 RAFT 随机挑选出来的联盟主链记账确认,即可实时确认交易的对方收到这笔交易,联盟节点同时再将交易的账本就近分发给其它个人节点验证,在保证交易高效的同时保证其公正可靠性。此外,个人用户可以将自己的计算机作为账本验证节点加入加密世界公链为加密世界提供账本信息验证工作,同时为不同地域的其它用户提供就近访问入口,从而进一步提高加密世界链的读取效率。
加密世界链(CWV)多链机制融合主链的特点鲜明,联盟链+个人公有链结合的基础主链,可以承载更高交互体验需求的应用;多链机制用户随机入链,就近访问,联盟负责记账,个人节点验证查阅,去中心化且能保持高效运行,自带的 SPEEDFORCE 网络能快速高效的处理交易,是真正的区块链 3.0。
技术架构
1.系统架构
整个加密世界从技术角度上来看,就是加密世界公链+虚拟经营开放平台。即在全新的模式下,为生态环境构建了以 TOKEN 和容器 Docker 为核心的智能合约,为各类场景 DApp 提供更加便利的开放平台。
加密世界的核心世界观系统,以及各种场景应用系统环境,利用自主研发的区块链技术,实现了全新的去中心化运行模式。系统运行环境以容器 Docker 的形式被复制成多份,分散不同地域、不同加盟服务器上,从而实现多点灾备。一旦运行的环境出现异常无法正常运转,通过智能合约会自动选举出另一个性能最佳的服务器,将其上的系统环境 Docker 运行起来,从而恢复相应的系统服务。
通过侧链对接技术实现其它公链(如比特币、以太坊等)与加密世界公链的对接,从而形成一个融合链网络,并且将其它外链区块链应用整合到加密世界中。同时利用代币接入交换系统完成 CWV 与 BTC、ETH、其它彩色币自由转换的能力。
区块链系统底层采用微服务架构,应用全栈异步处理方式,并以 Actor 微内核方式进行多线程调度管理,从而形成了高性能的引擎框架。同时通过多链区块并发打包机制,实现交易的快速确认。区块链引擎经过具有自主知识产权的核心技术的优化,区块链处理能力也大幅提升,链上的每个块的尺寸更大,记录的信息更多。
加密世界链为开发者提供丰富的开发扩展框架,以便其为加密世界开发各种场景应用。开发扩展框架将提供如下功能:
区块链浏览器
SDK 开发工具包,支持 Java / Kotlin、.NET C# / VB、JavaScript / Typescript、Python、Go
智能合约编译器与 IDE 插件
□ C# / VB.Net / F#,Visual Studio
□ Java / Kotlin,Eclipse
□ C / C++ / GO
□ JavaScript / TypeScript
□ Python / Ruby
2.核心技术
2.1共识算法
加密世界的区块链系统采用了分层共识的方式,分析了目前大多数网络结构体系,提出了 Raft+DPoS 的组合共识算法,在局部选举人 Raft 高性能共识下,通过委任权益证明 DPoS(Delegated Proof of Stake)形成最终相互制约共识。
在目前的网络中,如何保证节点的可靠性,是提高共识效率非常重要因素。因此,我们在同等网络下,以 Raft 算法的为第一步共识。例如同时在一个 IDC 中心的节点,它们以内网的方式,可以达到毫秒级的同步和共识。通过 IDC 局部竞选出来的节点,将以 Si 的权益身份,参与下一轮的投票/挖矿。
参与投票的概率为:
其中 Ni 为第一层中的节点个数,Et 为多长时间进行一次选举的轮询。
DPoS 的权益算法为:
其中:D 为挖矿难度:
取决于 Si 子集中的投票权益总数。因此每个节点可以挖矿的概率为:
从概率算法层面,相同权益下每个节点的挖矿概率是相同的;在不同的区域内部,代表的权益越多,挖矿的概率越多,因此鼓励矿工节点提高区域内部的网络质量,相互促进才能提高效率。
2.2 区块形成机制
为解决区块的容量问题,我们提供了一种基于随机相关性分析的优化共识方法,以使交易链能够高效地进行共识分析。基于随机相关性分析的优化共识方法可克服共识机制下交易区块产生速度的局限性,从根本上对每个交易区块上的交易信息进行随机相关性分析,在此基础上根据随机相关性排序生成默克尔树,记录到交易区块中,每个交易区块包含前一交易区块的哈希函数,每当交易区块中有新的交易信息产生时,通过随机相关性比对将交易信息按一定顺序连接在默克尔树中,由于相邻交易区块的随机相关性最高,通过构建相邻正相关模型使得整个交易链能够更加高效地进行共识分析,筛选录入信息并减少交易信息录入时间周期,提高交易区块利用率。
如上图所示,一种基于区块并发执行算法的记账方法,包括以下步骤:
1)在至少两个交易区块中分别进行交易操作,并将交易信息存放在相应的交易区块中。
2)对至少两个交易区块中的交易信息进行随机相关性分析、比对和排序以对默克尔树的结构进行新增或修改,构建并约束默克尔树的结构,形成正相关默克尔树结构。
3)在至少两个交易区块中,前一交易区块在交易过程中获得交易信息正相关默克尔树,通过前一交易区块的哈希结构执行后一新生成交易区块的交易操作。新生成的交易区块中产生的新的交易信息通过随机相关性比对进行交易区块之间的关联,使至少两个交易区块形成一条完整的交易区块链,从而完成交易共识。
2.3 智能合约
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,区块链具有不可篡改和不可伪造的特点,能够实现去中心化。在区块链技术领域,由于其分布式、共享数据区块、密码学加密等特点,智能合约层面只提供了有限的程序定制功能,在某些业务场景下,如多任务、多机构和角色等游戏状态机、业务处理流程等领域,区块链技术应用遇到了很大的困难。为了解决这些困难,当前主流的解决方案是设计一个中心化的应用程序,通过轮循调用智能合约扫描链上的数据,并对符合条件的数据进行处理,该方案不仅时间延时较大,不能实现精准的时间控制,并且还增加了系统实现的复杂度,加大了开发成本。
目前大部分分布式账本在智能合约的调度过程主要分为三步:多方用户共同参与制定一份智能合约,合约通过 P2P 网络扩散并存入区块链,区块链构建的智能合约自动执行。
基于区块链智能合约的流程调度系统及方法在传统区块链模型中增加了状态推演过程,以分布式任务队列为工作项节点,并以流程状态及前后关联性记录为存储的广义流程调度管理方法,该交互方式具有原子性、集群性,实现智能合约的高效调度。该方案能够在多任务、多机构和角色等流程银行、集中业务处理领域充分利用分布式缓存、无状态的函数式等技术,减少系统开销,减少整个交易流程的系统损耗,为系统提升了线性扩容能力。同时通过关联式的交易信息记录管理,避免账本管理过程中出现的高复杂性、高耦合度、扩展性差、难以维护等问题。
任务分发的关键要素,是能够包含了流程的上下文信息,所以合约层我们提供了 Docker 的运行封装,保证了流程可以在区块链的任意节点上运行。其中 DockerFile 是 Docker 封装的规范,我们在 DockerFile 基础上提供了智能合约的扩展和协议 BC-SMARTC。包括 UTXO 模型或者 Account 模型下地址之间的 Token 指令集,以及有限状态机 FSM 的流程定义。不同的应用可以定义不同的FSM 状态流程,极大提高了合约的流程处理方式。
基于区块链的智能合约包括事务处理和保存机制,以及一个完备的状态机,用于接受和处理各种智能合约,并且事务的保存和状态处理都在区块链上完成。事务主要包含需要发送的数据,而事件则是对这些数据的描述信息。事务及事件信息传入智能合约后,合约资源集合中的资源状态会被更新,进而触发智能合约进行状态机判断。如果自动状态机中某个或某几个动作的触发条件满足,则由状态机根据预设信息选择合约动作自动执行。
智能合约系统的事件描述信息中包含触发条件。当触发条件满足时,从智能合约自动发出预设的数据资源,以及包括触发条件的事件。整个智能合约系统的核心就在于智能合约以事务和事件的方式经过智能合约模块的处理,输出还是一组事务和事件。智能合约只是一个事务处理模块和状态机构成的系统,它不产生智能合约,也不会修改智能合约。它的存在只是为了让一组复杂的、带有触发条件的数字化承诺能够按照参与者的意志,正确执行。
智能合约系统
如上图所示,基于区块链智能合约的流程调度系统的结构示意图,基于区块链的账本交易执行过程主要包括根哈希、随机数、时间戳、智能合约记录几个方面。
交易信息的产生主要包括交易发起方、交易目的方、公钥、私钥、签名、哈希函数等组成,交易通讯都是通过链式结构进行交易信息传递,因此交易流程实现起来相对简单、直接,就像一个流程图,只要描述交易区块节点之间的连接、数据传输的方向,以及从一个交易区块向下一个交易区块流转的条件等等,就可以设计出交易流程并进行交易记账。
对于根哈希的形成,在最底层把交易信息分成小的数据块,有相应地哈希和它对应,逐层向上把相邻的两个哈希合并成一个字符串,然后运算这个字符串的哈希,得到了一个子哈希,直到最终形成一棵倒挂的树,到了树根的这个位置,这一代就剩下一个根哈希了,我们把它叫做根哈希,也就是图中的当前区块的根哈希。
在 P2P 网络下载之前,先从前一区块获得可信的根哈希,然后就可以通过可信的根哈希来检查当前区块所生成的根哈希。如果当前区块的根哈希是损坏的或者虚假的,就从其它源获得另一个根哈希,直到获得一个与可信树根匹配的根哈希。
交易信息通过哈希运算形成哈希树,从而能够进行信息比对,达到节点同步的功能。这就涉及到智能合约的问题,基于区块链智能合约的流程调度系统依赖于状态推演模块,该模块是一个函数式的过程,利用角色模式并充分利用多核机制,在进程/线程调度上,具有高吞吐量、线程切换快速等特点。
2.4 随机合约
随机数算法在当今世界有着非常广泛的应用,金融、机械制造、IT 网络等等各行业均有使用。这也促使人们对随机数算法进行更加深入的研究,甚至有提供随机数服务的真随机数网站,利用大气噪声或者某种不可预测的大范围的随机源产生随机数。而对于实际应用当中应该使用什么样的随机数算法根据系统的不同要求而不同。对于比较简单的需求,比如网站的随机验证码,使用操作系统自带的伪随机算法就可以满足要求。对于银行密码或数据加密,随机数的要求很严格甚至非常苛刻,一旦出问题有可能导致很大的损失,可以采用硬件真随机算法。
目前大部分计算机产生的随机数使用的是梅森素数旋转随机算法(Mersenne Twister random number Algorithm MT19937) ,1997 年开发的,基于有限二进制字段上的矩阵线性递归,这是一个伪随机数发生算法。
如何结合区块链的方式,通过挖矿原理,提供真随机数,需要一套智能合约的方式来执行,保证区块链产生真随机数。
通过挖矿的智能合约方式,采用约瑟夫环随机方法,在区块链上提供真随机的算法。使用挖矿技术把每记录 ID 切成 n 片,随机放入 n 个随机切片文件中,存放的顺序及规则由数据库存储,切片文件以 M 张记录为一组,每个切片文件使用加密算法加密存储,加密密钥是提供随机资源的公钥 。
每次随机矿产生时,首先解密随机切片文件结合数据库存储信息组成完整记录号序列,然后根据上次区块链的保存参数,生成 k(20)个随机队列,每个随机队列充满a(50000)个记录数据,准备好为客户端返回 ID 数据。
客户端请求数据时,根据请求参数按照约瑟夫环算法随机从 K 个随机队列中抽取一张随机 ID 返回。一旦队列中的数据不足以充满队列的 20%(M 张)时,系统按照规则从随机序列中抽取数据充满队列。
约瑟夫环需要的参数数组存储在区块链中,客户端请求随机序列时,利用系统自带随机数(或 MT 算法)随机一个参数,系统根据这个参数公钥地址中取得约瑟夫环参数,进而在随机队列中取得数据。
具体设计目标如下:
1)随机序列要保证 5000 亿(50 亿/年 x1000 年)以内随机数据不重复。
2)支持至少 10 万张/秒取数据速率。
3)保证数据安全,没有被窃取、篡改可能。
4)切片文件加载记录序列时间不超过 1 分钟。
约瑟夫环是一个数学的应用问题: 已知 n 个人(以编号 1,2,3.。.n 分别表示)围坐在一张圆桌周围。从编号为 k 的人开始报数,数到 m 的那个人出列。他的下一个人又从 1 开始报数,数到 m 的那个人又出列。依此规律重复下去,直到圆桌周围的人全部出列。其数学推导公式为:
随机数获取在获取数据的时候会用到约瑟夫环。我们随机规定系列的 n、k、m 值存放在区块链中,获取数据的请求带有使用第几个 n、k、m 值的索引,这个索引值是随机的,根据这个索引从当前区块里面取得这组 n、k、m 值,从而在随机队列中取得要获取的记录数。
约瑟夫环可以使取得的数据随机性更好,由于个人节点提供的真随机作为加密保存参数,可以保证即使知道了随机队列中的数据,也不能计算出本次请求到底会返回哪个记录。
2.5 技术优势
通过随机相关性比对将交易信息按一定相关顺序连接在 Merkle Tree 中,由于相邻交易记录的随机相关性最高,通过构建相邻正相关模型使得交易区块之间能够更加高效稳定地进行共识分析。
交易区块中的相关因子能够为交易信息记录提供支撑,引导 Merkle Tree 的形成。
每个交易区块中的交易信息通过随机相关性进行排序,当大量交易信息出现时,各个交易区块之间通过这种随机相关性机制能够达成共识,相邻交易区块随机相关性最高,形成了一条相互制约、相互共识的完整的交易区块链。
克服了共识机制下交易区块产生速度的局限性,避免哈希碰撞匹配交易区块的繁琐过程。
通过随机相关性分析检查网络中可能存在的待确认交易信息的有效性。
交易区块之间的随机相关性排序能够缩短共识周期,提升交易区块链的稳定性。
权益所有者能够通过投票决定记账者,最优化权益所有者的红利, 最小化保证网络安全的消耗, 最大化网络的性能。
2.6 代币激励模型
1)联盟共治层
区块链节点服务器,获取交易中手续费的分润。即加密世界联盟提供基础的 BC 交易记账服务,联盟成员提供成熟的网络和应用资源。交易模型如下:
假设 S 为每个区块所有交易的总 CWV 数量,参与记账的节点一共分得 U%(=0.01%,万分之一)个 CWV,其中争得记账权的主节点 M 从中获得 M%(=80%)奖励;同时,如果其他节点完成 80%确认,依次均分剩下的(1-M%)CWV。
2)合约执行层
游戏节点服务器,获取游戏中服务费和分润。联盟成员节点以及其他满足一定计算能力的节点,只要提供游戏合约执行的加速服务,通过 CWV 进行交易计算媒介,实现游戏的多节点安全运行。交易模型如下:
假设 GameFees 为这次游戏合约中约定的,开局所能赚取的房间费,BonusRatio 为游戏结束后的分润比例,但是需要开局者提供 Allowance 个币作为质押,如果执行失败需要扣除奖励给下一个合约执行者。合约执行节点能获取的奖励为:
3.技术特点
加密世界基于区块链技术提供虚拟以及真实世界的产品与服务。通过运用先进的区块链加密技术等构建一套由开放跨链交易协议,智能合约、合约虚拟机、容器运行sdk、共享账本体系、Token发行、去中心化交易对接系统,去中心化钱包系统组成的生态系统。该生态系统在底层架构、性能、节点管理、抗攻击性方面都有明显优势。此外,加密世界为第三方生态资源开放开发接口,可以为加密世界中的公民提供包括但不限于,博彩、竞技比赛、娱乐内容等服务,并将逐步接入以加密世界Token(CWV)进行结算和清算的真实世界产品及服务,包括但不限于商品、教育、线下服务等。最终,加密世界实现由虚拟世界进入现实世界,为用户提供生活服务。
微服务架构
微服务是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好地实施微服务。CWV 是基于企业级微服务架构,是多年 Fintech 沉淀下来的框架,提供了更灵活、更高效的组件服务。CWV 采用 OSGi 的建模规范,可以实现容器级的 SOA 架构,达到业务的热部署,以及多版本运行;同时,可以在不影响系统服务的前提下,对系统对应的组件进行升级或修复。支持对业务进行整合,使其成为一种相互联系、可重用的业务任务或者服务,它将应用程序的不同功能单元——微服务(microservice), 通过服务间定义良好的接口和契约联系起来。接口采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言,使得构建在这样的系统中的服务可以使用统一和标准的方式进行通信。
性能
CWV 是多链技术,核心底层采用联盟机制,支持近 10 万级 TPS。另外,CWV 提出了 speedforce 概念,是线下校验的机制,在这个机制下,类似于 Iota 的 DAG 模型,速度将是百万级 TPS。
节点管理
CWV 采用分层架构,核心账户层,负责记账,参与交易费挖矿,保障了安全性;交易执行层,负责合约的执行和交易确认,能够提供更高的效率。
抗攻击性
CWV 采用联盟链机制,对节点安全严格要求,Raft 随机性分析选出候选记账节点,并通过 DPoS 算法最终确定记账,能够有效的防止 51%的攻击。
跨链交易
CWV 具有侧链对接技术并提供了 ERC20 的标准兼容方式,带有开放跨链交易 API,实现跨链的交易和确认。
智能合约
CWV的智能合约基于Docker容器级,是目前企业级应用的最佳实践和落地方案,支持目前大部分云主机方式部署,支持个人高性能主机部署。
加密世界提供智能合约开发接口给第三方提供服务,包括但不限于视频、博彩、游戏、商品交易等。项目方或开发者可以通过调用智能合约接口确定可经营的项目,也可通过选取不同的智能合约组合实现自行经营和代理经营并获得经营性收益。总之,CWV的智能合约为项目方或用户提供自主选择的机会,通过不同的经营模式获得相应的收益。
合约虚拟机
CWV 目前已经支持主流的 DockerVM 的方式部署。今后将更加适合联盟链的模式,能够提供更高的性能保障,为上层的 Dapps应用提供技术保障。
去中心化钱包系统
加密世界链支持自带的热钱包,同时也支持第三方冷热钱包。
评论
查看更多