区块链——OmniLedger算法介绍

2018-11-19 15:04 栏目:经验之谈 来源: 查看()

OmniLedger的目标是在区块链设计中实现不可能三角形的平衡。它是基于碎片设计的区块链:

区块链——OmniLedger算法介绍

本文详细介绍了OmniLedger的设计细节,并介绍了实验数据。

1)OmniLedger整体架构

OmniLedger由身份区块链和多个分片组成。 OmniLedger使用RandHound协议将所有Validator分组到不同的组中,并将这些组随机分配到不同的切片子链,验证和共识块((1)上图中的Sharding)。 OmniLedger的整体架构和设计重点如下:

区块链——OmniLedger算法介绍

ByzCoinX是基于ByzCoin的OmniLedger增强版。每个切片子链使用PBFT一致性算法形成共识,并且OmniLedger命名共识算法ByzCoinX((2)如上所示的共识)。 OmniLedger使用UXTO帐户模型。对于交叉链事务,OmniLedger设计了Atomix的交叉链原子操作,如(3)TX Commit所示。

2)Validator的随机分组和分配

RandHound协议实现了Validator的随机分组。假设对于总共m个Valiators,n个切片,RandHound协议随机地将m个验证器分配给n个切片。在生成每个块之前,需要重新分组所有验证器。请注意,RandHound协议需要“Leader”。 OmniLedger算法使用VRF算法来确定“Leader”。在生成每个块之前,需要在身份区块链上注册所有验证器。每个Validator使用VRF计算自己的票证,计算方法如下:

区块链——OmniLedger算法介绍

其中config是在身份区块链上注册的所有Validator的信息,v是当前的轮数。对于相同高度的区块,可能需要多轮共识来确定。

所有Validator都会在一段时间内兑换门票。具有最小Ticket值的Validator是当前的“Leader”。基于“Leader”,RandHound协议实现所有Validator的分组,并将这些Validator分成不同的分片。

3)Atomix交叉链原子操作

为了支持片间事务,Omniledger设计了Atomix的交叉链协议 - Byzazantine ShardAtomic Commit。 Omnil edger使用UTXO帐户模型。 Atomix协议的一般流程如下所示。:

区块链——OmniLedger算法介绍

1)初始化初始化阶段 - 假设用户从shard1和shard2(输入)转移到shard3(输出),用户向shard1和shard2发送交叉链请求。
2)锁定锁定阶段 - shard1和shard2锁定请求,确认事务是否合法,并锁定shard1和shard2中的状态以及块中的Merkle路径证明。
3a)解锁提交阶段 - 提交交叉链确认请求,用户向shared3提交提交事务(包括所有输入的证明)以完成交叉链事务。
3b)解锁到中止阶段 - 如果事务在步骤2中无效(例如,shard2中的事务是非法的),则需要回滚交叉链事务,并且用户发送交叉链事务取消shard1。

这种交叉链设计要求每个切片“监视”其他切片的块生成。

4)Trust-but-Verify分层验证系统

为了更快地处理大量小事务,OmiLedger提出了“验证后首次信任”的分层处理机制,如下图:所示

区块链——OmniLedger算法介绍

“验证后的第一次信任”系统包括共识的两部分: 1)分段共识2)分段块合并。碎片共识可以使用更少的验证器,加快碎片的共识速度和块确认的速度。由片段形成的瓦片将由更多的验证器再次验证。这种设计在块的速度和安全性之间创造了平衡。

5)其他细节设计

本文还提到了其他细节,如块镜像和块并行处理。可以删除块镜像之前的一些信息,从而消耗更少的存储空间。块并行处理意味着可以并行执行的事务被打包在不同的块中,这些块可以通过共识同时生成。

6)实验数据

Omniledger提到,为了验证实验数据,部署了60台机器,每台机器配置了: Intel E5-2420 v2 CPU,24GB RAM和10千兆位网络。实验数据显示:

区块链——OmniLedger算法介绍

TPS性能随着分片数量线性增加。在16个分片的情况下,TPS达到5850.该论文甚至指出,在25个分片的情况下,TPS达到13,000。

摘要: Omniledger是一种基于区块链的区块链设计。 OmniLedger使用RoundHound和VRF协议将Validator随机分配给不同的分片。每个切片的共识使用PBFT算法。 Omniledger可以容忍不超过邪恶节点的1/3。在实验室环境中,TPS性能随着分片数量线性增加。在16个分片的情况下,TPS达到5850,25个分片,TPS达到13,000。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发