Data Availability Sampling 技术带来的好处是什么?为什么我们会需要它?
拍摄者<a href="https://unsplash.com/@testalizeme?utm_source=medium&utm_medium=referral”>测试我 在未飞溅
在深入探讨Data Availability Sampling(DAS)之前,我们需要先了解一些基础知识。首先是对Ethereum共识机制的基本认识,其次是理解全节点(Full Node)与轻节点(Light Node)的区别,最后是关于Rollup和资料可得性问题的基本概念。
在本文中,我们将使用”资料发布”(Data Publication)来替代”资料可得性”(Data Availability)这个术语,但像DAS、DAC这样的专有名词仍会保留原称。关于这个术语变更的背景,可以参考这篇详细说明的文章:
资料可得性重新命名:用 Data Publication 取代 Data Availability
本系列文章将通过Danksharding来介绍DAS的运作机制,并比较Celestia、EigenDA和AvailDA等不同方案的异同。第一篇将重点探讨为什么我们需要DAS以及它能带来哪些优势。
为什么资料发布问题如此重要?
在Ethereum生态系统中,资料发布问题最常出现在L2设计的讨论中。由于L2本身也是一条区块链,会产生自己的区块和交易数据,这些数据需要妥善存储以确保安全性。
Rollup解决方案选择将交易数据上传到L1(如Ethereum)作为存储地。而非Rollup方案则可能将数据交由受信任的Data Availability Committee(DAC)保管。关于Rollup与资料发布关系的更多细节,可以参考以下文章:
Rollup 与资料可用性
实际上,资料发布问题不仅限于L2,Ethereum主链同样面临这个挑战。轻节点不会下载完整区块数据,因此需要确信新区块的完整数据确实被发布。如果轻节点被欺骗相信了一个数据不完整的区块,其后果与相信一个非法区块相同——都会连接到不被其他节点认可的分叉链。
目前Ethereum的轻节点依赖验证者(Validators)来确认新区块的数据完整性。当足够多的验证者为某个区块投票时,轻节点就会相信该区块的完整数据确实被发布。这种机制基于”诚实多数”(Honest Majority)假设,即相信大多数验证者是诚实的。
值得注意的是,当前Ethereum轻节点并非直接统计所有验证者的投票,而是通过数量较少的Sync Committee成员的签名作为验证依据。这是一个过渡性方案,未来将被更完善的设计所取代。
数据可用性抽样的革命性意义
“相信大多数验证者是诚实的”听起来已经是个合理的方案,但我们能否做得更好?Data Availability Sampling(DAS)提供了一种可能性:即使大多数验证者联合欺骗,只要p2p网络中存在少数诚实节点,我们就能避免上当。
实现这一目标需要构建稳固的p2p网络、足够的参与者数量,以及在网络层加入隐私保护功能。这就是DAS的核心价值所在。
在支持DAS的区块链中,轻节点不再是数据的被动接收者,而是积极参与到DAS运作中:每个轻节点都会向p2p网络请求并保存特定区块的数据片段,同时也会响应其他节点的数据请求。这种模式类似于BitTorrent这样的分布式文件共享协议,所有节点共同维护和共享他们关心的数据,而非依赖中心化服务器。
理想情况下,所有区块链用户都会运行轻节点,共同参与DAS运作以确保安全性,而不是像现在这样完全信任其他节点。
轻节点只有在成功获取所有请求的数据片段后,才会相信区块数据已完整发布。神奇的是,虽然每个轻节点只保存部分数据,但整个网络可以合力通过这些片段还原出完整数据。更令人惊讶的是,轻节点们只需要保存超过50%的数据片段(具体比例取决于DAS设计),就能还原出100%的完整数据。
因此,在DAS机制下,即使大多数验证者都为某个区块投票,轻节点也不会轻易相信。它们会先进行数据采样,只有在确认所有请求的数据片段都可用后,才会接受该区块。
从”诚实多数”到”诚实少数”的转变
与当前没有DAS的Ethereum相比,轻节点不再需要依赖”大多数验证者是诚实的”这一假设,转而只需要相信”少数节点是诚实的”(即会正确采样并保存数据的节点)。这里的”少数”指的是相对于网络中所有轻节点数量而言的相对少数。
概率性安全保证
虽然DAS提供了强大的安全保障,但它也存在局限性。如果区块生产者是恶意的,并且故意不释放足够的区块数据,只针对特定轻节点提供其请求的数据片段,那么这个轻节点就可能被欺骗。
这意味着DAS提供的安全保障是概率性的,而非绝对确定。如果用户需要100%确认区块数据的完整性,唯一的方法是运行全节点下载完整区块数据。值得注意的是,运行轻节点的程序无法自行发现被欺骗的情况,用户只能通过社交渠道获知某个区块实际上并未完整发布,然后手动指示轻节点标记该区块。
网络隐私的重要性
网络层的隐私保护功能对DAS的安全至关重要。如果攻击者能够识别哪些节点在请求特定数据片段,就能有针对性地欺骗这些节点。但如果网络具备隐私保护功能,攻击者将难以确定请求者的身份,大大降低攻击效率。
DAS的安全基础
DAS要确保安全性,需要三个关键要素:
首先,区块数据需要通过纠删码(Erasure Coding)技术增强可靠性。这种编码方式使得节点只需保存部分数据(如50%)就能还原出完整数据。如果没有纠删码,轻节点们需要收集100%的数据片段才能确保完整性。
其次,需要足够多的轻节点参与采样并保存数据片段。轻节点数量越多,每个节点需要进行的采样次数就越少。Celestia就是一个很好的例子,它支持根据网络中轻节点数量动态调整区块大小。
最后,需要一个健全的p2p网络来支持节点间的数据片段共享。这个网络需要能够高效处理大量数据请求,同时避免网络拥塞。此外,网络层的隐私保护功能也必不可少,以防止攻击者识别和针对特定轻节点。
这三个方面的具体细节将在本系列后续文章中详细探讨。
总结
L2的资料发布问题可以通过L1或DAC解决,但L1自身也面临类似挑战。以Ethereum为例,当前轻节点依赖验证者签名来确认数据完整性,而DAS提供了一种更去中心化的解决方案。
在DAS机制下,轻节点们共同保存区块数据片段,借助纠删码技术,只需保存部分数据就能还原完整区块。虽然DAS提供的安全保障是概率性的,但相比完全依赖验证者的方案已经有了显著提升。要获得绝对确定性,用户仍需运行全节点。
网络隐私功能对降低攻击风险至关重要,它能有效防止攻击者识别和针对特定轻节点。这三个要素——纠删码、足够的数据片段保存和健全的p2p网络——共同构成了DAS的安全基础。
参考资料与推荐延伸阅读
- https://arxiv.org/pdf/1809.09044.pdf
- https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html
- https://www.paradigm.xyz/2022/08/das
- https://a16zcrypto.com/content/article/an-overview-of-danksharding-and-a-proposal-for-improvement-of-das/
- https://twitter.com/sreeramkannan/status/1563615609925304320
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/10740.html