如何解锁模块化区块链的未来

虽然故障证明是解决分布式区块验证的有用工具,但全节点依赖于区块可用性来生成故障证明。恶意区块生产者可能会选择仅发布区块头并保留部分或全部相应数据,从而阻止完整节点验证和识别无效交易,从而生成故障证明。

这种类型的攻击对于完整节点来说是微不足道的,因为它们可以简单地下载整个块,并在它们注意到不一致或保留的数据时从无效链中分叉出来。但是,轻量级客户端将继续跟踪潜在无效链的标头,从完整节点分叉。

这是数据可用性问题的本质,因为它与故障证明有关:轻量级客户端必须确保所有事务数据在验证之前在块中发布,以便完整节点和轻量级客户端必须自动就规范链的同一标头达成一致。从本质上讲,博弈论规定,这里使用的基于故障的验证系统将被利用,并导致诚实的参与者处于双输的局面。‍

轻量级客户端如何确保一个块中的所有事务数据都被释放,而不必下载整个块 – 集中硬件需求,从而破坏轻量级客户端的目的?实现这一点的一种方法是通过称为擦除编码的数学原语。通过复制块中的字节,纠删码可以重建整个块,即使丢失了一定百分比的数据。

该技术用于执行数据可用性采样,允许轻量级客户端通过随机抽样块的一小部分来概率地确定已发布的整个块。这允许轻量级客户端在接受特定块之前确保所有交易数据都包含在特定块中,并遵循相应的块标头。

但是,此技术有一些注意事项:数据可用性采样具有高延迟,并且与诚实的少数假设类似,安全保证依赖于以下假设:有足够的轻量级客户端执行采样,以便能够概率性地确定块的可用性。

有效性证明和零知识汇总

分布式区块验证的另一种解决方案是消除状态转换所需的交易数据。相比之下,与错误证明相比,有效性证明假设了更悲观的观点。通过删除争议过程,有效性证明可以保证所有状态转换的原子性,并需要为每个状态转换提供证明。这是通过利用新型零知识技术SNARKs和STARK来实现的。

与故障证明相比,有效性证明需要更多的计算强度,以换取更强的状态保证,从而影响可伸缩性。

零知识汇总是利用有效性证明而不是错误证明进行状态验证的汇总。它们遵循与乐观汇总类似的计算和验证模型(尽管将有效性证明作为模式而不是错误证明),通过排序器/证明器模型,其中排序器处理计算并证明生成相应的证明。

例如,Starknet使用集中式音序器启动,用于引导目的,并在路线图上逐步分散了开放音序器和证明器。由于在定序器上进行链下执行,计算本身在 ZK 汇总上是无限的。

设计然而,由于这些计算的证明必须在链上验证,因此证明生成的最终性仍然受到瓶颈。请务必注意,利用轻型客户端进行状态验证的技术仅适用于故障防护体系结构。由于状态转换通过有效性证明保证是有效的,因此节点不再需要事务数据来验证块。然而,有效性证明的数据可用性问题仍然存在,并且稍微微妙一些:尽管有保证状态,但有效性证明的事务数据仍然是必要的,以便节点能够更新并为最终用户提供状态转换。因此,使用有效性证明的汇总仍受数据可用性问题的约束。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容