OmniLedger的目标是在区块链设计中实现不可能三角的平衡。它是基于分片设计的区块链:1)OmniLedger的整体体系结构OmniLedger由一个身份区块链和多个分片组成。 OmniLedger使用RandHound协议将所有Validator划分为不同的组,并将这些组随机分配给不同的分片子链,验证和共识块(如上图中的(1)分片中所示)。 OmniLedger的总体体系结构和设计重点如下:ByzCoinX是在ByzCoin的基础上对OmniLedger的增强。每个分片子链都使用PBFT共识算法来形成共识。 OmniLedger将该共识算法命名为ByzCoinX(上图中的(2)Consensus)。 OmniLedger使用UXTO帐户模型。对于跨子链交易,OmniLedger设计了Atomix的跨链原子操作,如上图的(3)TX Commit中所示。 2)验证者的随机分组和分配RandHound协议实现了验证者的随机分组。假设总共有m个验证者和n个分片,RandHound协议将m个验证者随机分配给n个分片。在生成每个块之前,需要对所有验证器进行重新分组。注意,RandHound协议需要“ Leader”。 OmniLedger算法使用VRF算法来确定“ Leader”。在生成每个块之前,所有验证程序都需要在身份区块链上注册。每个验证器都使用VRF计算自己的TIcket。计算方法如下:其中config是在idnTIty区块链上注册的所有验证者的信息,而v是当前的回合数。对于相同高度的块,可能需要多轮共识才能确定。在一定时间内,所有验证者都会交换票证。票证值最小的验证器是当前的“ Leader”。基于确定“领导者”,RandHound协议实施所有验证器的分组并将这些验证器划分为不同的碎片。 3)Atomix跨链原子操作为了支持分片之间的事务,Omniledger设计了Atomix的跨链协议-Byzazantine ShardAtomic Commit。 Omnil edger使用UTXO的帐户模型。 Atomix协议的一般过程如下:1)初始化初始化阶段,假设用户将钱从shard1和shard2(输入)转移到shard3(输出),并且用户向shard1和shard2发送跨链请求。 2)锁定phase-shard1和shard2锁定请求,确认交易合法,并在区块中记录shard1和shard2的锁定状态以及合法交易的Merkle路径证明。 3a)解锁提交阶段-提交跨链确认请求,然后用户将共享交易(包括所有输入证明)提交给shared3以完成跨链交易。 3b)解锁到中止阶段-如果在步骤2中交易是非法的(例如,shard2中的交易是非法的),则需要回滚跨链交易,并且用户将跨链交易取消发送给shard1 。这样的跨链设计需要每个碎片来“监视”数据库。其他碎片的区块生成。 4)Trust-but-Verify分层验证系统为了更快地处理大量小交易,OmiLedger提出了“先信任然后验证”的分层处理机制,如下图所示: ;首先信任并验证“包括共识有两个部分:1)分片共识2)分片块合并。分片共识可以使用更少的验证器来加快分片的共识速度和块确认的速度。将对由分片形成的块进行比较。使用多个验证器再次进行验证。这种设计在块生成速度和安全性之间形成了平衡。 5)其他详细设计文件还提到了其他详细设计,例如块镜像(快照)和块并行处理。可以删除块镜像之前的某些信息,以减少存储消耗。块并行处理意味着可以并行执行的事务被打包在不同的块中,并且可以通过共识同时生成这些块。 6)实验数据Omniledger论文提到,为了验证实验数据,部署了60台计算机,每台计算机的配置为:Intel E5-2420 v2 CPU,24GB内存和10 Gigabit网络。实验数据表明:TPS性能随分片数量的增加而线性增加,如果为16个分片,则TPS达到5850。论文甚至指出,在25个分片的情况下,TPS达到13000。摘要:Omniledger是一个分片基于区块链的设计。 OmniLedger使用RoundHound验证程序随机分配给不同的碎片