可以使用ZK-SNARK来验证对一条数据的擦除编码是否正确完成,然后可以使用Merkle分支来验证各个区块。或者,您可以使用多项式承诺(例如Kate(又名KZG)承诺),该承诺本质上是在一个简单的组件中进行擦除编码并证明单个元素和正确性验证——这就是以太坊分片所使用的。 回顾:我们如何确保一切都正确? 假设您有100个区块,并且您想不依靠委员会就有效地验证所有区块的正确性。我们需要执行以下操作: 每个客户端在每个区块上执行数据可用性采样,以验证每个区块中的数据是否可用,同时每个区块仅下载几KB,即使区块的整体大小为MB或更大。客户端仅在正确响应了其可用性挑战的所有数据后才接受区块。既然我们已经验证了数据的可用性,那么验证正确性将变得更加容易。有两种技术:我们可以使用欺诈证明:一些质押存款的参与者可以对每个区块的正确性进行签名。其他称为挑战者(或fisherman)的节点随机检查并尝试完全处理区块。因为我们已经检查了数据可用性,所以始终可以下载数据并完全处理任何特定的块。如果他们发现一个无效的区块,他们将发布一个所有人都可以验证的挑战。如果该块被证明是坏的,则需要重新计算该块以及所有依赖于该块的未来区块。我们可以使用ZK-SNARK。每个区块都带有一个ZK-SNARK证明正确性。在以上两种情况下,每个客户端仅需要对每个区块进行少量验证工作,无论区块有多大。就欺诈证据而言,偶尔需要在链上对区块进行充分验证,但这应该非常少见,因为即使仅触发一个挑战也是非常昂贵的。这就是全部! 在以太坊分片中,短期计划是使分片的区块仅成为数据(data only)。 也就是说,这些分片纯粹是一个“数据可用性引擎”,使用该安全数据空间以及欺诈证明或ZK-SNARK来实现高吞吐量安全交易处理功能是Layer Rollup的工作。 但是,完全有可能创建这样一个内置系统来添加“本机”高吞吐量执行。 分片系统的关键特性是什么?权衡是什么? 分片的主要目标是尽可能地复制传统(非分片)区块链最重要的安全属性,而无需每个节点亲自验证每笔交易。 分片正在非常接近到来。 在传统的区块链中: 无效的区块无法通过,因为验证节点会注意到它们无效并忽略它们。不可用的区块无法通过,因为验证节点无法下载它们并忽略它们。在具有高级安全功能的分片区块链中: 无效的区块无法通过,因为:欺诈证明会迅速将其捕获,并告知整个网络该区块的不正确性,并严重惩罚创建者,或者ZK-SNARK证明是正确性,并且您不能为无效区块制作有效的ZK-SNARK。不可用的区块无法通过,因为:如果只有不到50%的数据区块可用,则几乎可以肯定每个客户端都会进行至少一次数据可用性样本检查,从而导致客户端拒绝该数据块,如果至少有50%的区块数据可用,那么实际上整个区块都是可用的,因为仅需一个诚实节点即可重建其余区块。 (责任编辑:admin) |