织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

V神:为什么分片是了不起的?揭开分片技术特性的神秘面纱(6)

时间:2021-04-09 08:34来源:未知 作者:admin 点击:
由于不可能区分谁对谁错,因此不可能有一个有效的数据可用性欺诈证明方案。 常见问题:如果某些数据不可用怎么办?通过 ZK-SNARK,你就可以确定一切

  由于不可能区分谁对谁错,因此不可能有一个有效的数据可用性欺诈证明方案。

  常见问题:如果某些数据不可用怎么办?通过 ZK-SNARK,你就可以确定一切都是有效的,这还不够吗?

  不幸的是,仅仅只有有效性是不足以确保正确运行区块链的。这是因为,如果区块链是有效的,但是所有的数据都是不可用的,那么用户就没有办法更新他们所需的数据来生成用于验证未来区块的有效性的证明。如果一个攻击者生成了一个有效但不可用的区块,然后该攻击者又消失了,那么他就可以有效地暂停这条链。某个人可能会劫持某个特定用户的账户数据,直到该用户支付赎金,所以这个问题并不纯粹是区块链活性问题。

  有一些强有力的信息-理论观点认为这个问题十分重大,没有什么明智的方式来规避。详情请参阅这篇文章:

  https://eprint.iacr.org/2009/612.pdf

  那么,如何在不下载的情况下检查 1MB 数据是否可用呢?这听起来不可能!

  其中的关键是一种称为数据可用性抽样 (data availability sampling) 的技术[6]。数据可用性抽样的工作方式如下:

  •   使用一种叫做纠删码 (erasure coding) 的工具,将一段包含 N 个数据块的数据扩展成一段包含 2N 个数据块的数据,这样,其中任意 N 个数据块都可以恢复整个数据。

    •   为了检查数据的可用性,无需下载整个数据,用户只是简单地在该区块中随机选择一个固定数量的位置 (比如 30 个位置),且只有当用户在所有他们选择的位置成功地找到这些数据块时,才会接受该区块。

    •   纠删码将“检查100%可用性”(即检查每一段数据都是可用的) 这一问题转变成了“检查50%的可用性”(即至少有一半的数据是可用的)。随机抽样解决了 50% 的可用性问题。如果不到 50% 的数据是可用的,那么至少有一次检查几乎肯定会失败;如果至少 50% 的数据是可用的,同时某些节点可能无法识别出某个区块是可用的,那么只需要一个诚实节点运行纠删码重构过程,就能将该区块剩余的 50% 数据恢复。因此,不需要下载 1 MB 来检查 1MB 区块的可用性,你只需要下载几 KB这使得对每个区块进行数据可用性检查是可行的。可以通过这篇文章来了解这种检查如何在 P2P 子网络中有效地实现:

        https://hackmd.io/@vbuterin/sharding_proposal#Blob-publication-process

        可以使用 ZK-SNARK 来验证对一段数据进行的纠删码是否正确地被执行,然后可以使用 Merkle 分支来验证单个数据块。或者,你可以使用 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容