Skip to main content
QUICK REVIEW

[论文解读] Coded Merkle Tree: Solving Data Availability Attacks in Blockchains

Mingchao Yu, Saeid Sahraei|arXiv (Cornell University)|Oct 2, 2019
Caching and Content Delivery参考文献 24被引用 9
一句话总结

本文提出了一种新型哈希累加器——编码默克尔树(Coded Merkle Tree, CMT),通过在默克尔树各层使用稀疏LDPC码,实现在区块链中恒定成本的数据可用性验证。通过在编码层上应用迭代剥除解码并批量处理哈希,CMT使轻节点仅需下载O(1)个区块头和O(log b)份采样数据,即可验证区块可用性,同时支持高效欺诈证明且开销极低,其解码速度和通信成本均优于以往的2D-RS方案。

ABSTRACT

In this paper, we propose coded Merkle tree (CMT), a novel hash accumulator that offers a constant-cost protection against data availability attacks in blockchains, even if the majority of the network nodes are malicious. A CMT is constructed using a family of sparse erasure codes on each layer, and is recovered by iteratively applying a peeling-decoding technique that enables a compact proof for data availability attack on any layer. Our algorithm enables any node to verify the full availability of any data block generated by the system by just downloading a $Θ(1)$ byte block hash commitment and randomly sampling $Θ(\log b)$ bytes, where $b$ is the size of the data block. With the help of only one connected honest node in the system, our method also allows any node to verify any tampering of the coded Merkle tree by just downloading $Θ(\log b)$ bytes. We provide a modular library for CMT in Rust and Python and demonstrate its efficacy inside the Parity Bitcoin client.

研究动机与目标

  • 解决区块链中的数据可用性攻击问题,即恶意区块生成者虽发布有效区块头,却隐瞒部分区块内容。
  • 使轻节点在大多数全节点不诚实的情况下,仍能以极低下载成本验证数据可用性。
  • 设计一种系统,可生成高效、紧凑的错误编码或数据不可用性证明,确保信任无需下载完整区块。
  • 实现恒定成本验证,并在解码速度上超越基于纠错码的现有方案(如2D-RS)。
  • 将解决方案集成到实际区块链系统中,改动极小且保持向后兼容。

提出的方法

  • 构建一个默克尔树,其中每一层均使用(6,8)稀疏度和停止比β=0.124的稀疏LDPC码进行编码,以抵抗部分数据隐瞒攻击。
  • 将每层编码后的哈希值批量合并为下一层的数据符号,将根哈希数量固定为t=256。
  • 在编码层上应用迭代剥除解码,以高概率恢复数据并检测缺失或损坏的符号。
  • 通过采样O(log b)个编码符号并验证其默克尔证明与CMT根的一致性,使轻节点能够验证数据可用性。
  • 仅使用d−1=7个编码符号及其默克尔证明即可生成错误编码证明,与先前工作相比显著减小了证明大小。
  • 在Rust和Python中实现一个模块化的CMT库,替换标准默克尔树API,确保向后兼容性并实现低集成开销。

实验结果

研究问题

  • RQ1区块链系统能否实现轻节点以恒定通信成本验证数据可用性,而与区块大小无关?
  • RQ2系统如何在多数节点恶意的情况下,以极小的证明大小检测并证明数据可用性攻击?
  • RQ3能否使用稀疏LDPC码构建一种哈希累加器,支持高效、紧凑的欺诈证明和基于采样的验证?
  • RQ4与基于2D-RS的系统相比,编码默克尔树在采样效率、证明大小和解码速度之间存在何种权衡?
  • RQ5CMT如何以最小改动和无额外带宽成本的方式集成到现有区块链客户端中?

主要发现

  • 对于64MB的区块,SPAR的区块头开销仅为区块大小的0.01%,而2D-RS为0.1%,显示出显著的头部大小压缩效果。
  • SPAR的错误编码证明大小占区块大小的0.051%,比2D-RS的0.48%小10倍,适用于相同区块大小。
  • 在弱敌手模型下,SPAR仅需8次采样即可达到99%置信度,而2D-RS需要17次,因其对缺失符号的容忍度更高(平均47% vs. 25%)。
  • SPAR的解码速度在所有测试区块大小下均比2D-RS快10倍以上,得益于其稀疏且二值化的编码方式。
  • 在弱敌手模型下,SPAR的采样成本比2D-RS高出2.5–4倍,但可通过增大根大小t来缩小默克尔证明大小,从而降低采样开销。
  • CMT库与标准默克尔树向后兼容,可仅通过少量修改集成到现有客户端(如Parity Bitcoin)中。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。