议程表
链下扩容问题
扩展性技术
链下移动计算
数据可用性问题
经典区块链设计
冗余的作用
编码欺诈性证明
欺诈性证明权衡
规避欺诈性证明
展望
问题所在
以太坊等公共区块链上的每笔交易都需要由网络中的每个节点处理
那么交易吞吐量不能高于单个节点可以处理的数量
如果我们增加每个单独节点的处理工作量——例如增加块大小,并容纳更多交易——那么功能较弱的计算机可能无法参与运行区块链,导致矿工集中化
更大的区块也意味着更高的传播延迟——导致中心化
这导致去中心化的缺失和潜在的区块链审查问题
扩展性技术-链上-链外
链上(Layer?1)
分片
区块链分为不同的部分
每个节点不必处理所有交易
链上计算(Layer?2)
链下移动计算
基于欺诈证明的安全性
执行交易并在链上提交断言?- 有挑战期
任何人都可以在挑战期内挑战断言
链上争议判决以确定正确的状态
恶意行为者不愿意提供错误的断言或挑战
基于有效性证明的安全性
生成关于执行正确性的有效性证明——链上提交
链上合约真实性证明
有效性证明的稳健性能够保证执行的正确性,如果证明已验证
数据可用性问题
链上解决方案的两种范式都需要提供交易数据。
如果数据不可用怎么办?
基于欺诈证明的解决方案:如果数据丢失,任何参与者都无法计算状态——因此无法生成欺诈证明——这意味着他们无法质疑错误的断言。如果数据不可用,安全就会受到损害。
基于有效性证明的解决方案:如果数据丢失,参与者可以冻结余额,因为缺少见证人来访问该余额。仅仅知晓哪些被正确计算的余额是不够的。
提交所有交易数据作为以太坊上的调用数据。
可扩展性的上限——因为多个Rollups解决方案会出现争夺相同的块空间的情况。此外,提交 calldata 将变得昂贵。
经典区块链设计
区块链具有三种类型的节点:
验证节点:参与共识并产生区块。
全节点:同步整个区块,但不参与共识。
轻客户端:仅同步标头,偶尔向全节点索取交易包含证明。
但是,经典区块链无法为轻客户端提供良好的 DA 保证。为什么?
如果区块生产者隐藏了区块的一小部分,使用随机抽样方案的轻客户端很难知道被隐藏的区块。
全节点无能为力,因为数据不可用是一个不可避免的错误。
冗余的作用
如果块生产者隐藏了块的n个块中的1个,轻客户端以概率1/n随机抽样捕获。
如果我们使用纠删码将n个块编码为2n个块,使得2n个块中的任何n个足以重建整个块,则:
块生产者需要隐藏(n+1 )个块以隐藏单个原始块。
轻客户端随机抽样发现数据丢失的可能性要高得多。
因此需要在块内引入冗余。
轻客户端独立知道数据可能丢失。
编码欺诈性证明
问题:修改块编码和引入冗余会有所帮助。但是如果编码本身是错误的呢?
示例:块生产者对块进行擦除编码——但如果擦除编码计算错误怎么办?
解决方案:同步整个区块的全节点可以检查和验证编码是否正确完成,如果没有可以生成欺诈证明。
欺诈证据可以传播给可以验证的轻客户端。
欺诈性证明权衡
假设:
全节点不断检查错误。
轻节点至少有一个诚实的全节点邻居。
如果欺诈证明编码无误,证明可以是一个完整的块大小——轻客户端是资源受限的。
如果花费资源来验证欺诈证明,还不如充当全节点。
编码技术可以减少欺诈证明的大小——但轻客户端无法确定数据是否可用或欺诈证据是否尚未到达。
P2P 网络+ 欺诈证明仍然有效。
规避欺诈性证明
使用KZG 多项式承诺- 只有有效的编码才能被提交到区块头。
轻客户端要求提供数据证明——绑定属性确保区块生产者不能伪造证明。
大小恒定的证明格式,便于轻客户端进行验证。
冗余迫使生产者隐藏区块的大部分,只隐藏一小块——使他们容易被抓住。
展望
如果我们构建一个以 DA 为中心的区块链,我们能实现什么?
链上扩展解决方案、侧链或独立链等应用程序可以在以 DA 为重点的区块链上提交数据。
应用程序无需托管完整节点即可使用以 DA 为重点的区块链。托管一个轻客户端就足够了 – 花费非常低的资源。
获得对数据可用性的高度信心并获取与其应用程序相关的所有事务。轻客户端所需的信任级别最低。
托管以 DA 为重点的区块链的验证者和完整节点可以随着参与者的增加而扩展区块。
展望更多
这对独立链意味着什么?
任何具有自定义逻辑的独立链都可以使用以DA为重点的链来确保可用性。
所有参与者都可以随意获取交易数据并应用自定义代码来确定应用程序状态。
新的独立链面临验证节点引导和以DA为重点的链上托管数据问题,从而避免了这种麻烦。
这对链上扩容解决方案意味着什么?
计算可以在链上完成,验证可以在像以太坊一样在 Layer1 上进行,以DA为重点的链上可以实现可用性。
官网:https://polygon.technology/
推特:https://twitter.com/0xPolygon
Github:https://github.com/maticnetwork
官方电报群:https://t.me/polygonofficial
官方中文电报群:
https://t.me/maticnetwork_china
公告频道:
https://t.me/PolygonAnnouncements
Polygon基础介绍和使用教程:
https://shimo.im/docs/zdkyBE9KxJfWgaA6/read