区块链
背景
目前市场上已经提出了许多方法来扩展区块链性能。最流行的方法是如Lightning或Plasma,扩大区块容量,DAG和分片等技术。
关于DAG的注意事项
IOTA,Byteball和Nano等项目已经提出了有向无环图(DAG)。他们认为每个人拥有一个全局状态并不重要,而是节点应该只需要与他们相关的本地状态以及与其他节点的足够连接来验证他们的本地状态就行。
在没有全局状态的情况下,攻击者可以占入受害者节点的传入连接,则可能发生诸如Eclipse攻击之类的攻击。直到2019年5月,IOTA通过每个人都连接到集中协调器解决了这个问题。这可以说是推翻了DAG的全部观点。他们最近宣布从协调员转变为投票模块Coordicide。预计共识参与者将主动对冲突交易进行投票,我认为这听起来与传统的区块链共识非常相似。
分片
分片系统类似于DAG,它们承认全局状态视图的重要性,并在分类账上施加正式结构,以确保整个系统保持一致。分片将区块链的验证工作分成若干组,每个组分片负责工作的一个子集。
许多设计都是为了分片而做的,但是现在很少有分片设计在正式生产中使用。主要的设计考虑是是否有一个信标链。信标链的作用非常类似于传统的区块链,但它不验证交易和分类账状态本身,而是依赖于每个碎片对自己的状态达成共识。然后这个状态被压缩成一个merkle根,由一个shard验证器的仲裁签名。然后信标链将分片的根编织成一个完整的链根。
可以在没有信标链的情况下进行分片,但必须更加最大公平地划分资源并防止大规模重组和分片接管攻击。
复杂性
在分片系统中,通过划分多个分片数量,从而增加吞吐量。第一个关键问题是理解分片是如何划分的。要什么采取保护措施,以确保不被不诚实的验证者控制大量分片。
上面是一个可视化的展示,即使只有1%的验证者集中在一个分片上也会造成严重的破坏。以太坊计划使用一个重组过程,以一种不可预知的方式将验证者分配给分片,以防止不诚实参与者接管分片。
跨分片通信
这些分片的边界会发生什么?它们是如何相互交流的?一个显而易见的答案是,如果一个应用程序不在我的分片上,我可以在另一个分片上创建一个新帐户,或者我甚至可以使用一个交叉分片服务,在一个分片上获取我的钱包地址,并允许我与任何其他分片上的应用程序交互。
想象一下,您希望从与您不在同一分片中的网络参与者收到付款。 你怎么能从你没参加的分片中收到钱?
以太坊研究人员提出的可视化样本方法
在这里,我们引用收据的概念。收件人通过提供来源分片中的事务的merkle路径,显示他们将从外部分片接收到代币的证据。目标分片会使用收据并记入收件人的帐户,这些过程必须原子方式完成。
传输中的交易
真正跨分片的原子事务是一个难题,因为它需要在不同分片之间的验证者同步通信。如果对跨分片事务的需求非常高,则会导致性能降低,因为更多分片验证者必须协作以处理跨分片事务。
分片系统必须建立信任机制,确保网络不会从外围的分片中逆转这些事务。如何保护自己免受可能发生的大规模重组的影响?
我们迄今为止的最佳答案是确保分片中的验证者数量高于某个最小阈值,这样不诚实的验证者数量压倒单个分片的几率就非常低。定期(但不是过于频繁)进行验证者轮换,限制了池中的验证者潜在贿赂的能力。但如果验证者轮换太频繁,则运行节点的成本将增加,并且分散将受到损害,因为节点将需要更多存储和带宽以跟上分片变化。
最终性
最终性是大大简化这些问题的一个特征。一旦一个区块被系统中的经济多数人标记为最终区块,我们就可以确定外部分区不会在我们的下方发生变化。 最终性将整个分类账密封起来,这样就不会发生变化,而且以前的交叉分片交易可以被视为像只有一条链一样安全。
股权证明能够保证最终结果,而工作证明永远不能。这就是以太坊开发人员将PoS和分片整合到他们的Eth2.0路线图计划中的原因。
全部0条评论
快来发表一下你的评论吧 !