观点 – 为什么说数据可用性检查对区块链扩容方案很重要?

观点 | 为什么说数据可用性检查对区块链扩容方案很重要?
次数为 d=n-1,估值 d0 在 0,即 f(0)=d0、 f(1)=d1,这样下去。我们知道有这样的多项式存在,事实上拉格朗日插值多项式 (Lagrange interpolation polynomials) 给了我们建构它的明确方法(尽管还有更高效的方法)。现在,我们通过对多项式在更多的点上估值来拓展数据——比方是 n 多个点,如果我们想把比率设为 q=0.5。那么就会有 dn=f(n), dn+1=f(n+1)…, d2n?1=f(2n?1)。由此我们得出它的一个特性,即任何 n 个点将足以重构这个多项式——如果我们有多项式 f(x),我们也可以轻易对它在 0,…,n-1 进行估值,得到我们的原始数据。就这些内容了!RS 码不过是一些多项式插值。这实际上就解决了数据可用性问题了,因为它们在编码效率上是最优的,除了一个小问题——欺诈事件可以以另一种方式发生,即产生错误的编码。而对于 RS 码,为了证明编码是错误的,你必须提供 n 个数据块,并足以用一个多项式对其中的 n-1 插值,并显示最后一个不在这个多项式上。这就是为什么我们现在做大量的研究,旨在找出避免必须做这些不正确编码证明或使它们尽可能小的方法。在分片上的应用数据可用性检查对于许多不同区块链扩容方案是很重要的,因为即使节点不能检查所有或甚至下载所有数据,它也能给这些节点提供安全。由于这是区块链的一个根本性瓶颈 (共识节点必须下载所有数据),这是一个重要的扩容要求。例如,在以太坊 2.0 里,验证者只需对信标链上的数据进行完全验证,分片上的验证工作由委员会负责。这个结构旨在减轻验证者必须验证所有数据的负担。但是,这意味着验证者在多数分片上实际上是轻客户端 (除了活跃验证者)。因此,数据可用性检查是需要的。在这种情况下,以太坊 2.0 的验证者实际上同时是“全节点”和轻客户端。那些下载并检查所有分片数据的节点是“超级节点 (supernodes)”——这些节点可能只会由组织或做了大量质押的人来运行,他们会验证所有分片。我们当然不会想要只是信任这一小部分人是诚实的来运行以太坊 2.0。因此,有数据可用性检查和欺诈证明是绝对必要的,这样一般人都可以运行验证者节点。扩展阅读1. Vitalik Buterin 的这篇文章解释了欺诈证明和纠删码它介绍了多维 RS 码如何形成更小的不正确编码证明这是论文版本2. 多为代码替代方案的最新想法:使用 STARKs使用 FRIs使用 Kate’s polynomial commitment 方案原文链接:https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html