为什么「数据可用性」对区块链扩容来说至关重要?

原文标题:《WTFisDataAvailability?》
原文来源:BlockchainCapitalBlog
原文作者:YuanHanLi
原文编译:Kxp , 律动BlockBeats
你可能听说了 , Ethereum的分片路线图已经基本上取消了执行分片 , 如今只专注于数据分片 , 从而使Ethereum的数据空间吞吐量最大化 。
你可能也看到了最近关于模块化区块链的讨论 , 深入地研究了Rollup , 了解了volitions与validiums , 然后也听说了「数据可用性解决方案」 。
但是 , 在这个过程中你可能也会产生一个疑问:「到底什么是数据可用性?」 。
在我们开始解释这个问题之前 , 我们可以先来回顾一下大多数区块链的工作原理 。
交易、节点与恶名昭著的区块链三难困境问题
当你遇到了一个新的OHM分叉 , 如果它有着高得惊人的年利率 , 那你肯定会毫不犹豫的按爆「质押」那个按钮 。 但是 , 当你在上Metamask提交交易时会发生什么?
为什么「数据可用性」对区块链扩容来说至关重要?
文章图片
简单来说 , 你的交易会进入到内存池当中 , 假设你给矿工或验证者的贿赂足够高 , 你的交易会被放入到下一个区块中 , 并被添加到区块链上供后人查阅 。 然后 , 这个包含着你交易的区块会被发送到区块链的节点网络中 。 之后 , 全节点将下载这个新的区块 , 执行并计算这个区块中包含的每一笔交易(其中当然也包括你的那笔交易) , 同时确保这些交易都是有效交易 。 比如 , 在你的交易中 , 这些全节点可能会验证你是否有从其他人那里窃取资金 , 以及你是否有足够的ETH来支付Gas费等等 。 因此 , 全节点的重要任务便是对矿工和验证者执行区块链的各项规则 。
正是因为这一机制 , 传统区块链便出现了扩容的问题 。 由于全节点会检查每笔交易以验证它们是否遵循区块链的规则 , 因此区块链无法在不提高硬件水平的情况下每秒钟处理更多的交易(更好的硬件会强化全节点的功能 , 而更强大的全节点可以验证更多交易 , 这样就能有更多可以包含大量交易的区块了) 。 但是 , 如果运行全节点的硬件要求提高了 , 那么全节点的数量就会变少 , 而去中心化的进程也会受到影响——如果能够确保矿工/验证者遵守规则的人少了的话 , 那情况就相当危险了(因为信任假设数量就会增加) 。
为什么「数据可用性」对区块链扩容来说至关重要?
文章图片
数据的可用性是我们不能同时拥有扩容、安全与去中心化的主要原因之一
这种机制也说明了在传统单片式区块链中保证数据可用性的重要性:区块生产者(矿工/验证者)必须公布并提供他们生产区块的交易数据 , 以便全节点来检查他们的工作 。 如果区块生产者不提供这些数据的话 , 全节点就无法检查他们的工作 , 而且也就无法确保他们有在遵守区块链规则 。
现在你应该理解了为什么数据可用性在传统单片式区块链中非常重要了 , 接下来让我们来探讨一下它在人见人爱的可扩展性解决方案——Rollup中扮演着怎样的角色 。
在Rollup背景下 , 数据可用性发挥着怎样的重要性
让我们先来重温一下Rollup是如何解决可扩展性问题的:与其提高运行全节点的硬件要求 , 为什么我们不去减少全节点需要验证有效性的交易数量?我们可以将交易的计算和执行工作从全节点交由给一个更强大的计算机(也被称为序列器)来完成 。
但这是否也意味着我们必须信任序列器?如果全节点的硬件要求要保持在较低水平 , 那么在检查工作时 , 它们的速度肯定会慢于序列器 。 那么 , 我们如何确保这个序列器提出的新区块是有效的呢(也就是说 , 要保证该序列器并没有在窃取大家的资金) 。 鉴于这个问题一直被反复提及 , 我相信你已经知道了这个问题的答案 , 但也请你继续耐心读完接下来的内容(如果你想不起来了 , 不妨读读BenjaminSimon和Vitalik的这两篇文章来重温一下):