ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Monoxide: Scale out Blockchains with Asynchronous Consensus Zones

2021-10-16 16:00:46  阅读:192  来源: 互联网

标签:10 Scale Monoxide Zones 分片 分叉 矿工 区块 挖矿


这是2019年NSDI上一篇关于区块链分片的论文

作者是针对公链(比特币)做出的改进

如何确定哪个账户在哪个分片

每个账户都有一个地址,地址是公钥的哈希,Monoxide中分片的数量是2^k,因此我们只需要看账户地址的前k位即可确认该账户在哪个分片中。

跨片共识

片内共识作者采用的是POW,这里就不在叙述。

如何解决跨片交易问题?

A在片1中,B在片2中,从A->B 10元, A很容易扣除10元,如何保证B加10元和A扣10元的原子性? (要么都成功,要么都失败)

作者采用的是最终原子性。

分片1的A扣除10元后,将交易写入区块,会发送一个消息给分片2,消息包含这个交易的Merkle树路径,分片2收到消息后就知道A已经扣除10元了,就把B+10元的消息写入区块

分叉

对于单个分片内的分叉很好解决。

但如果分片的分叉影响到了其他分片怎么办?

比如上述例子,写有A-10元的区块在分片1中被分叉了,但是分片2中B已经+10元了要怎么处理?

作者采用的方法是等到分片1的A-10元的区块之后生成了x个区块(确定不会被分叉),分片2才会把b+10元写入

(ps:这里可以看出这个系统交易确认时间爆炸...)

安全

传统的POW算法需要恶意节点的数目不超过50%。

但是经过分片后,诚实矿工会趋向于往矿工数目少的分片内进行挖矿(因此诚实矿工数目一定会趋于平均)。

但是恶意节点可能集中攻击某个分片,导致不需要51%的算力就能使系统不安全。

作者采用的使连弩挖矿的思想。

即矿工可以同时挖连续K个分片的矿。

做法就是把这个k个分片的块头按续排列形成一个merkle树,只需要根据merkle树的root进行挖矿即可,证明的时候发送Merkle树有关的路径给相关的分片。

标签:10,Scale,Monoxide,Zones,分片,分叉,矿工,区块,挖矿
来源: https://www.cnblogs.com/wangstudyblog/p/15414374.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有