讲述分片的基本设计、出块及跨分片交易等技术原理,盘点区块链分片设计的难题。 分片是区块链扩容的一个重要方向。 传统的区块链如以太坊每秒仅能处理20个左右的交易。主要原因是以太坊中每个交易都要在每个节点上执行一遍, 单台机器的处理能力限制了以太坊的最大TPS。 分片的思路是把所有节点进行分组,每个节点不再参与全部交易的验证,而是仅验证一部分的交易,因此可以突破单台机器处理能力的限制。 今天这篇文章将会为大家介绍Near protocol提出的分片方案—夜影协议(Nightshade) 。 分片的基本设计 区块链依靠在所有节点复制所有交易来保证数据的正确性,每个节点如果只验证一部分,那就明显会降低安全性。 系统共有10个分片(shard chain), 每个分片链由1/10的节点验证,理论上TPS可以提升十倍,但安全性也会随之下降。 假设原始的区块链中有51%以上的恶意节点合谋了,才可以破坏整条链的状态,那么分片后只要有5.1% (51/100) 的恶意节点合谋就足够破坏某个分片上的状态。 大部分分片方案的应对思路是随机分配验证者,只要让恶意节点不在同一条分片链上,他们就无法合谋。 大多数方案选择用一条独立的链来实现管理分片,处理POS(proof of stake)共识,生成随机数等等。 就比如以太坊2.0的Beacon chain、PolkaDot的Relay chain、Cosmos的Cosmos Hub。 而Nightshade也使用了一条这样的Beacon chain (信标链)。 一般来说区块链的节点会负责以下任务: 1.处理交易 。 2.Relay 合法的交易和区块给其他节点 。 3.保存整条链的状态和历史数据。 以上三点都会影响整个网络的处理能力。 从长远来看,状态存储的压力比较大,即使TPS一直保持在20左右,链的状态也会一直增长,但短期来看,区块链处理交易的能力才是更加重要的。 截止发稿,以太坊全状态大约为100G,大多数节点仍可以轻松处理,但是以太坊的TPS仅有20左右,很难满足实际需求。 Nightshade的分片也会分割以上提到的三点。分片中的节点仅验证和传播与分片相关的交易,并且只存储和分片相关的状态。 在Nightshade的方案中,分片数量和计算、存储、网络等资源为线性关系。 Nightshade对Beacon chain和分片链进行了简化,在Nightshade中仅维护一条区块链,所有分片上的交易都会在这一条链上被确认。 (责任编辑:admin) |