来源:chainfeeds
在最近的以太坊开发者会议上,讨论了将以太坊的 Pectra 硬分叉分成两部分的提议。这个提议之前曾经被否决,因为大家担心会延迟 Verkle 树的升级。不过在这次的会议上,开发者们再次提出了这个想法,因为他们希望在 Pectra 分叉中加入更多的改进提案(EIP)。提议将硬分叉分为两部分:第一部分将包括目前 Pectra Devnet 3 上的所有 EIP,第二部分的分叉将包括 EOF(EVM 对象格式)和 PeerDAS 等,为了更好地理解 PeerDAS,我们首先从数据可用性这一基础概念讲起。
DA:确保节点获取链上数据
数据可用性(Data Availability,DA)是指要保证区块提议者发布的区块、区块中所包含的所有交易数据,对于其他网络参与者来说可以有效地访问和获取。数据可用性是区块链安全的一个关键因素,因为如果数据不可用,即使区块合法,其他节点也无法验证其内容,可能引发共识问题和网络攻击。例如,攻击者可能只发布部分区块数据,导致其他节点无法进行验证。
当新区块被广播时,所有参与的节点都会下载并验证区块的数据。这种模式在网络规模较小时是可行的,但随着区块链的不断增长,数据量会变得非常庞大,每个节点存储会不断增加,对硬件的要求随之提高。为了让轻节点(如手机或电脑这样的移动设备)也可以参与区块验证,区块链引入了分片技术。
分片技术是将整个区块链网络分成多个小的「片」(shards)。每个分片只处理自己那部分数据,不必处理整个区块链的数据。因此,单个节点只需要处理自己分片的数据。但每个分片只处理一部分数据,就意味着其他分片的节点无法直接访问完整的数据。那如何确保分片中的数据是可用的,并且其他节点能够验证这些数据的有效性?例如,某个分片的节点发布了一个新生成的区块,但它可能只发布了一部分数据。如果其他节点无法获取区块的全部数据,就无法验证这个区块是否真实合法。
DAS:通过部分数据验证整体数据可用性
为了应对分片中的数据可用性问题,数据可用性抽样(Data Availability Sampling,DAS)技术被提出,它的核心思想是通过抽样的方式来验证区块的数据可用性,不要求每个节点存储或下载完整的区块数据。
数据可用性抽样允许节点只需随机获取区块中的一部分数据便可以验证数据可用性,如果节点能够成功获取并验证这些随机数据片段,便可以推测整个区块的数据是可用的。
为了支持这种抽样验证,区块数据通常会使用 RS 编码。这种编码允许在丢失部分数据的情况下仍然能够恢复出完整的数据。因此,即使节点仅下载部分区块数据,也能够推断并确认整个区块数据的有效性。DAS 通过抽样验证减少了每个节点需要处理的数据量,轻节点也可以参与区块验证。
DA 层比如 Celestia 的就是通过这些技术来实现。主要涉及 RS encoding + validity proof + DAS。
-
RS 编码(Reed-Solomon Encoding):这种编码方式允许只接收到一部分数据片段的节点也能够重建整个数据块。它类似于纠错码,具有一定的容错能力,即便丢失一部分数据,剩下的部分也足以重构完整数据。
-
Validity Proof(有效性证明):使用零知识证明来确保数据在编码和传输的过程中没有错误。如果验证成功,则可以无误地解码出整个数据。
-
DAS(数据可用性抽样):通过轻节点随机抽样区块中的一部分 RS 编码片段,验证这些片段的可用性,从而推测整个数据块是可用的。
PeerDAS: 节点间协作验证数据
PeerDAS 是 DAS 的一种具体实现,通过对等网络(peer-to-peer network)进行数据可用性抽样,对等网络是由多个节点组成的网络,节点间直接进行通信。在 DAS 下,每个节点独立进行数据的抽样验证,而 PeerDAS 优化了这一过程,它让节点之间协作共享和验证区块中的数据,进一步提高验证效率。节点之间并不是孤立的,可以共享数据验证的任务和结果,可以依赖其他节点已验证的数据。这样,节点不必单独承担所有的验证工作,而是通过合作分担验证任务,进一步减少节点的负担。而且协作验证增加了数据篡改的难度,攻击者需要同时影响多个验证节点才能成功篡改数据。
目前,根据最新以太坊关于 PeerDAS 的会议,以太坊客户端 Lighthouse 团队已经将 DAS 分支合并到主分支,并正在测试以确保与 PeerDAS 的兼容性。分支通常是用来开发和测试新功能或改进的独立代码版本,合并到主分支意味着这个功能或改进已经开发完成,并且有信心是稳定的,可以合并到核心代码中。