Monoxide的设计精要概览

2019-02-14 15:44 栏目:经验之谈 来源: 查看()
一氧化氮是由王家平博士和其他研究人员设计的公共连锁项目,并发表了论文《 Monoxide: Scale Out Blockchain with Asynchronized Consensus Zones》。我没有下载和阅读本文,但根据王家平博士的《一氧化氮原理:突破区块链不可能的三角极简主义架构》,不难理解其设计要领。在了解Monoxide之前,请考虑区块链系统的碎片设计以及碎片架构将不可避免地遇到的两个典型问题。

1.什么是碎片:由于单一的单片区块链系统,交易处理速度慢,吞吐量低。因此,考虑将单个系统划分为一定程度的独立N碎片子系统以增强整体。事务处理速度和系统的吞吐量。

2.如何处理交叉切片交易:Alice的账户位于A,Bob的账户位于B.如果Alice需要转移Bob,我该怎么办?

3.如何确保分片的安全性:如果采用PoW一致性算法,挖掘功率将分散为N个片段,每个片段的功率仅占总网络计算能力的1/N.如何应对恶意计算能力攻击?

一氧化碳使用异步共识组方法:将单个区块链网络和分类账分成N个正式的独立共识组,每个共识组具有独立的分类账(链),P2P网络,并且块K块仅在网络中。在K中进行八卦广播,每组的行为和行为都是异步执行的,每个共识组都可以被视为一个切片。在Nakamoto或GHOST的基础上,Monoxide仅进行了非常简单和极其有效的改进,这在许多其他分级方案中是不可用的。这些分片方案的设计过于复杂而且不够精细。

为了处理跨数据包事务,Monoxide引入了中继事务(或中继事务):数据包A的Alice将X个硬币传输给B组的Bob,然后将其打包在数据包A的块Y中。交易并执行A​​lice(-X )。然后生成一个中继事务,包括完整的传输信息,例如块Y的头信息和事务Merkle Tree Path,并将中继事务发送到B组.B组的矿工最终将(虽然延迟)将验证中继交易。合法性,并记录在B组的块中,执行Bob(+ X)。通过将一个事务转换为两个事务来完成跨组事务,Monoxide将其称为事务的“最终原子性”。由于收款人共识组的整个节点需要验证中继交易的合法性,因此有必要连续接收和存储付款人组的所有块头数据。每笔交易最多可以包含2组。随着系统生态系统的繁荣和数据包数量的增加,不交叉打包的交易比例逐渐变为零。因此,由N个分组组成的系统与未分组的单个系统相关联。相比之下,总图书数据量增加到约2N倍,交易吞吐量和TPS增加到约N/2倍。

为了确保集团安全,Monoxide引入连云矿业:矿工可以使用成功的采矿作业,同时为多个集团生产区块,多个组共享整个网络计算能力,而不是每个组占据一个计算能力,避免分散化计算能力并确保组安全性和网络范围安全性的等效性。对于矿工来说,连枷采矿的实施需要存储所有分组的分类账。矿工必须确保他们正在扩展的各个子分类账与其他分类账的数据不冲突,并且必须统一个别分类账数据(例如,交叉数据包Alice(-X)和Bob(+ X) )),然后根据Nakamoto或GHOST继续扩展。因此,虽然Monoxide已经正式确定了分类账的碎片化和隔离,但实际上,矿工仍然需要获得所有的分类账簿并构建一本“全书”。这对专业矿山来说不是问题。为了提高计算能力的利用率,专业挖掘池将不可避免地同时访问所有共识组P2P网络,并加入所有共识组进行挖掘。

临汾矿业如何运作:在区块链技术中,多个交易通常以Merkle Tree的形式组织,但实际上Merkle Tree可用于组织任何数据输入。在矿山的设计中,矿工M可以同时生成多个分组块,并使用Merkle树组织这些组的头部,并将Root和其他相关参数组合起来进行统一挖掘计算。如果您找到满足任何组的挖掘难度要求的解决方案,您可以立即将“挖掘结果,Merkle Tree路径,分组块”广播到该组的P2P网络,并继续挖掘操作以获取其他分组。解决困难要求。不同组的挖掘难度最终会收敛到同一级别,因为在每个分组块具有相同奖励的情况下,必须将计算资源添加到挖掘难度较低的组中以执行挖掘以获得最高回报,将不可避免地抹去不同群体之间采矿难度的差异。因此,采矿将很有可能“不相连”,并且可能只能找到一种有效的解决方案来满足所有群体的采矿难度要求。

Monoxide的设计精要概览

Monoxide的可选优化:在Monoxide系统中,矿工很有可能加入所有分组的P2P网络并存储所有数据包的块数据。对于不执行挖掘操作但需要执行数据验证的分组范围节点,还必须添加所有分组网络以获得其他分组的块头数据,否则无法验证中继事务的合法性。这是不合理的。可以考虑用N + 1分组方案解决这个问题:建立一个额外的公共P2P网络来广播所有分组的块头数据,并且任何分组的所有节点只需要加入2个网络:自分组网络网络,这极大地简化了原始N包之间的N *(N-1)/2双边关系。

考虑一氧化氮的一些改进(或改造)

1)一氧化碳根据帐户地址的前k位划分2 ^ k个数据包。我认为还有其他替代分组方案:让用户自己选择一个共识组,并使用共识组的编号作为前缀来修改他的地址,例如XYZ.abcdefg,XYZ是组号,abcdefg由用户通过公钥计算。一般地址。整个系统可以根据发展情况逐步增加新的共识组,而不是提前规划固定的共识组。这也有助于钱包供应商部署自己的完整节点。钱包供应商APPx生成的地址可以分配给APPx前缀,例如XYZ.APPx.abcdefg,类似于每个银行账户的银行固定前缀。钱包供应商APPx将其所有用户置于XYZ共识组之下,这使得部署操作和维护节点变得更加容易,并且更好地为用户提供查询和交易广播服务。

2)Monoxide有自己的智能合约编程模型Oxidation,但我不太喜欢这个型号。因此,我做了一些头脑风暴:由于Monoxide采用异步共识组的碎片机制,所以使用的智能合约可以独立处理并分成一个或多个特殊的共识组,可以称为“图形”。 Spirit Consensus Group可以更轻松地处理用户到用户的转移和用户 - 合同交互。 UTXO模型可用于共同共识组,帐户余额(键值)模型可用于图灵组。例如,下图中的紫色ACZ8是图灵共识小组,负责执行智能合约。每个用户的一般帐户可能在图灵共识组中有余额(因为智能合约)。一些相关账户将在执行过程中存入,金额可能非常小)。因此,图灵共识组中的相应余额必须累积到一定数量然后清除,然后才能生成中继交易并广播到该账户所属的一般共识组,以便显着减少之间的相互作用。图灵集团和其他团体。频率。图灵组也可能采用PoS,DPoS,PBFT而不是PoW这样的共识,最好有状态终结而不是概率终结,这更有利于设计和实现高效的DAPP。

Monoxide的设计精要概览

Monoxide的设计精要概览

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

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

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

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