资料可用性 (Data Availability, DA) 不等于永久储存?区块链没有永久储存资料的义务?本文将会以白话文厘清外界对资料可用性层的种种误解,DA 的角色是提升安全性而不是储存历史资料。
保存历史资料不等于安全性?
在市场争论是否该将资料可用性建构在外部专案例如 Celestia 或是保留在以太坊的同时,其实并不是为了争论历史资料要储存在哪,还是攸关网络安全的问题。
部分读者可能会有疑问:「Layer2 的历史资料储存与安全性不是相同意思吗?」其实历史资料对于 Layer2 安全性并不是最重要的考量,Vitalik 所坚持的东西并不是历史资料储存。
若有上述问题,代表对于资料可用性层的用途与定义搞错了。
资料可用性是什么
资料可用性不是什么
资料可用性并不保证所有的历史数据永久提供用户或是节点调用,资料可用性专案包含 Celestia 或是 EigenDA 提供的是一个暂时的储存空间,与 Arweave 永久保存资料的去中心化储存设施有根本上的不同,虽然本质上都是提供硬碟。
由于现有的主流 Rollups 将以太坊视为 DA 并将完整的交易资讯压缩后上链,才会让外界误以为资料可用性代表永久储存。但其实包含近期坎昆升级 (Dencun) 所带来的 EIP-4844,也将会开始删除过旧的 Rollups 交易资料,因为本来上链的目的就不是为了永久储存。
DA:资料可用性仅确保资料完整发布
资料可用性仅保证区块被最终性 (finality) 确认前的调用,提供 Ethereum 针对有争议的区块仲裁时的评断依据。因此也有人认为要将此名称更改为资料发布 (Data Publication, DP)。
例如 Arbitrum 上某个节点发现其他节点传输的区块有错误而发布诈欺证明,此时需要有一份正确的资料给 Ethereum 去运算而后仲裁,若没有 DA 确保资料可用性,诈欺证明机制将无法进行。
如果当一个交易已经被最终性确认,例如在以太坊网络中已经过 2/3 以上节点确认的区块 (大约是拥有 60 个以上的新区块成为最长链),就会被最终性确认,被最终性确认的区块将永远不可被更改。
最终确认后网络上不会再有任何争议只有共识,相关交易的 DA 就再也用不到了,这也就是为什么 EIP-4844 决定将定期删除这些资料。因为永久储存跟目的无关。
DS:资料储存与历史索引
或许会有部分的读者会觉得很奇怪,既然资料可用性的意思是确保资料有完整发布到网络上,过了一段时间后就会被删除或是不保证可以存取到,那么如果因为特殊原因要调用 Rollups 完整交易的历史纪录该怎么办?这时谈的才是资料储存 (Data Storage) 的面向。
但其实,区块链历史资料储存并不是一个非常重要的议题。
只要所有节点中有任何一方因为利害关系或是其他原因,就会主动保留完整的交易资料。例如:
- 区块链浏览器:因为这是本业的关键资源
- Rollups 专案:因为这是服务用户的一个环节
- 热情用户:因为希望产业更好
另一方面,大多数节点的设计都会保留区块头资料 (里面有交易区块Hash值),代表拿到某方提供的完整历史资料时,还可以轻松验证真实性。
综上述,资料储存与历史索引的假设接近 1/N,只要网络规模够大 (N个节点),只要找得到一个节点愿意提供完整资料,几乎可以保证任何人一定可以从某个地方拿到正确的历史资料。
资料可用性为什么重要
接下来来说明为什么 DA 对于 Rollups 或是 validium 非常重要,以至于 L2BEAT 将 DA 视为五大风险模型之一。
诈欺证明机制
上述有提到,诈欺证明机制需要仰赖完整的交易资讯才可以进行。
甚至在极端情况,所有节点都串通并停止向某诚实节点传送资讯,这时若没有确保资料可用性,诚实节点将无法辨别是网络连线不稳定或是网络正在受到攻击,也无从反击,诈欺证明的 1/N 信任假设将无法成立。
validium 逃生舱需要最新状态
大多数 Layer2网络都会有抗审查的提款机制,例如逃生舱 (Escape Hatch),也就是当用户提款的请求被排序器长期忽略或是恶意拒绝,且强制提款函数同样被节点忽略没有收到回应几天后,用户所发起的紧急按钮,
当逃生舱功能被启动后,将暂停网络一段时间,此时网络上所有交易都无法进行,不过可以让用户依照状态树 (state root) 进行提款,以达到抗审查的提款机制。
不过 Validium 要取得最新的状态树,此时至少需要有一个节点愿意提供,为了提升用户资产安全性,若拥有可靠的 DA,那么将可以让用户更确保能拿到状态树并提款。
资料可用性是网络安全重要支柱
因此由上述两个场景,可以理解资料可用性在 Layer2 的生态中,就算不负责永久储存资料,仍扮演着非常重要的安全组件。
资料可用性层的功能不是为了提供完整的交易历史资讯,而是借由提供交易被最终确认前的状态,确保网络顺利运作与用户资产安全,成为 Layer2 安全模型的重要关键。
若没有 DA,在极端情况下,不论有多么设计精良的交易证明机制 (诈欺证明、零知识证明),不论设计的多精良,基本上都无用武之地。资料可用性就是这么重要,也难怪许多以太坊开发者不认同外部 DA。
在专案坊大肆宣传其 zkEVM、诈欺证明、生态发展的同时,也需要时时谨记这些最基础的设施是否能确保安全。