但是,经典区块链无法为轻客户端提供良好的 DA 保证。为什么?
冗余的作用 如果块生产者隐藏了块的 n 个块中的 1 个,轻客户端以概率 1/n 随机抽样捕获。 如果我们使用纠删码将 n 个块编码为 2n 个块,使得 2n 个块中的任何 n 个足以重建整个块,则:
因此需要在块内引入冗余。 轻客户端独立知道数据可能丢失。 编码欺诈性证明 问题:修改块编码和引入冗余会有所帮助。但是如果编码本身是错误的呢? 示例:块生产者对块进行擦除编码——但如果擦除编码计算错误怎么办? 解决方案:同步整个区块的全节点可以检查和验证编码是否正确完成,如果没有可以生成欺诈证明。 欺诈证据可以传播给可以验证的轻客户端。 欺诈性证明权衡 假设:
如果欺诈证明编码无误,证明可以是一个完整的块大小——轻客户端是资源受限的。 如果花费资源来验证欺诈证明,还不如充当全节点。 编码技术可以减少欺诈证明的大小——但轻客户端无法确定数据是否可用或欺诈证据是否尚未到达。 P2P 网络+ 欺诈证明仍然有效。 规避欺诈性证明 使用 KZG 多项式承诺 - 只有有效的编码才能被提交到区块头。 轻客户端要求提供数据证明——绑定属性确保区块生产者不能伪造证明。 大小恒定的证明格式,便于轻客户端进行验证。 冗余迫使生产者隐藏区块的大部分,只隐藏一小块——使他们容易被抓住。 展望 如果我们构建一个以 DA 为中心的区块链,我们能实现什么?
|