本系列文章初步暂定有三个部分组成:
- 区块链水平扩展:第二层网络(Part 1)
- 区块链水平扩展:第二层网络(Part 2)
- 区块链水平扩展:以太坊的数据分片协议
建议阅读本文之前,先阅读我们的上一篇文章:区块链水平扩展:以太坊分片和plasma区块链树(Part 2)
以太坊在之前提出过分片的提议(https://github.com/ethereum/sharding/blob/develop/docs/doc.md),在此之后该提议被社区不断的进行了改进,有鉴于此,以太坊作者Vitalik Buterin最近公布了他所谓的“最小分片协议”,并且宣称该协议所属的项目,开发者可以尽情参与,不用担心他们现在贡献的代码未来会被轻易无情的弃用。
数据分片是区块链扩展的一种重要手段,目的是为了让更多的用户能够在区块链平台上高效的玩耍,同时把数据分散到多处去存储,避免单节点性能瓶颈。
虽然以太坊在目前宣称已经能够满足高频交易的需求,但是实际上,如果用户规模达到目前应用的主流水准的话(支付宝、paypal等),以太坊是难以支撑得住的。
在分片系统中,存在一个非常重要的合约(VMC:validator manager contract, 或者 SMC: sharding manager contract),它的作用是在以太坊主链上维持着众多分片,每个分片都是一条区块链子链。在这种场景下,数据一般只需要写入到子链上即可,并且只需在必要的时候才去访问主链,这样可以让网络分成一个一个独立的子区域,可以极大的提升交易效率。
具体来说,每个用户都可以在任何时候在特定的分片中提交一个区块header,该header是区块中所有事务的哈希值,通过提交这个header,该用户需要进行一些竞争以把该区块写入到分片上去.
该协议还要求选举出一些验证者(具体见上篇文章),这些验证者可以投票来决定某个header是否能被记账到分片的子链上。
每个分片的每个周期(该周期即为区块产生的周期),都会重新进行一次选举,一个周期内,最多只能添加一个区块到该分片上,而且每次选举都是在下一个周期开始之前,因此对于恶意攻击者来说,他的攻击成本会显著提高。
如果有超过三分之二的公证人投票决定接受某个区块,那么该区块就将被记录到该分片上。该分片中的其它客户端也将把该区块包含到本地的区块链中。
从实际应用的角度出发,相对于其它分片方案来说,这个分片协议无论是安全性、可扩展性、稳定性都是很好的,而且主链本身经过了严格的市场验证,因此非常可靠。
最后,好事总是多磨的,目前来说关于该协议的发布还没有确定的时间,因为很多提议和设计都还在路上,远远没有到达终点。但是从该协议本身看得出来,以太坊的作者Buterin是一个非常深谋远虑的人,希望以太坊的分片能够早日上线,让区块链的世界更加美好,至少每个人都可以真正的参与进来了。
外文链接:https://www.ethnews.com/buterin-proposes-minimal-sharding-protocol-for-immediate-development
如果我写的任何文章曾在你的心里荡起涟漪,那至少说明在逝去的岁月里,我们在某一刻,共同经历着一样的技术探索之路。
有时候,虽然素未谋面,却已相识很久,很微妙也很知足。
想学习区块链技术,可以搜索公众号优优区块链课堂或者添加公众微信号uulesson
网友评论