北京时间2月14日情人节当晚,以太坊创始人Vitalik Buterin联合以太坊基金会(EF)研究人员Dankrad Feist一起举办了一场关于扩容解决方案“Danksharding”的教育研讨会,如果你想了解区块链如何在增加“去中心化”和“安全性”属性的同时大规模实现扩容,那么这场研讨会就是一个好的切入点。
注:关于“Danksharding”对以太坊的意义,建议读者先阅读一下《一文了解以太坊的“扩容杀手锏”danksharding》这篇文章。
以下内容来自Dankrad Feist提供的《Dude, what’s the Danksharding situation??》PPT,如果你想观看完整的研讨会视频,可以访问以太坊基金会的官方youtube频道?。
1、什么是旧的:
(1)数据分片;
(2)使用KZG 承诺的数据可用性;
(3)使用分离分片方案进行原始数据分片;
2、什么是新的:
(1)提议者-构建者(数据生成者)分离 (PBS);
(2)crList;
(3)2D方案;
V神:马斯克接管推特可能使批评者感觉在敌方领土上争论:4月30日消息,V神(Vitalik Buterin)在推特发文,马斯克接管Twitter的最大后果很可能不是他做出的任何具体的政策决定,而是他的支持者感到更有勇气,而他的批评者感到他们是在敌人的领土上争论。[2022/4/30 2:41:22]
(4)建议的架构
3、总结优点和缺点
数据分片
为Rollup和其他扩容解决方案提供数据可用性(DA);
数据的含义由应用层定义;
以太坊基础共识(全节点和验证者)除了确保数据可用外不承担任何责任;
为什么没有执行分片?与原生执行相比,rollup二层网络的效率要高100 倍,很难看出执行分片会有什么需求;
目标:提供约 1.3 MB/s 的数据可用性层和完整的分片功能(目前最大数据容量的10倍,平常容量的200倍);
自2019年底以来,数据分片一直是以太坊的目标;
数据可用性采样(DA sampling)
想知道通过 O(1) 工作获得的O(n) 数据是可用的;
思路:将数据分布到 n 个chunk分块中;
每个节点下载 k 个(随机选择的)chunk分块;
V神:不喜欢链基层治理,因其可被利用并导致权力集中:针对有推特网友称以太坊虚拟机不能实现链上治理,以太坊创始人V神在推特回复称,治理绝对可以在EVM(以太坊虚拟机)中实现,以太坊上的许多DAO(自治组织)就是这样做的。我不喜欢链基层治理,因为它可被利用并导致权力集中。[2020/10/31 11:19:25]
纠删码(Erasure coding)
使用?Reed-Solomon 编码(多项式插值)扩展数据;
例如,在编码率 r=0.5 时,这意味着任何 50% 的区块(d0 到 e4)都足以重建整个数据;
现在采样变得高效(例如,查询30个随机区块,如果全部可用,超过 50%不可用的概率为2 ^ (-30))
但是,我们需要确保编码是正确的;
KZG承诺(KZG Commitments)
V神:以太坊不能简化为钱,是以太坊外部的人把ETH认定为钱:近日在节目中,加密人士Samson Mow称以太坊现在是钱,在这个功能上和比特币竞争。对此,V神回应称以太坊不能简化为钱,从一开始网络上面就有非金融应用。他本人和以太坊基金会从来没有把ETH认定为钱或者类似的东西,这个概念是从外部来的。[2020/8/18]
承诺 C(f)
评估 y = f(z)
证明者可以计算证明 π(f,z)
使用C(f), π(f,z), y 以及 z,验证者可以确认f(z) = y
C(f)以及 π(f,z) 是一个椭圆曲线元素(每个48 字节)
KZG 承诺作为数据可用性根
将“KZG 根”想象成类似于 Merkle 根的东西;
不同之处在于“KZG 根”承诺了一个“多项式”(所有点都保证在同一个多项式上,而Merkle根不能保证这一点);
分离分片提案
声音 | V神:随着时间推移,越来越对链下2层解决方案感到悲观:V神发推表示:“随着时间的推移,我对越来越链下2层解决方案感到悲观。Vlad Zamfir(以太坊基金会首席研究员,以太坊核心开发者)是对的,第二层解决方案很难构建,需要对激励进行很多的应用层处理,而且很难大范围应用。”[2019/8/22]
提议者-构建者(数据生成者)分离 (PBS)
被发明用来对抗 MEV 导致的中心化趋势;
MEV意味着更成熟的参与者可以比普通验证者提取更多的价值,这对大型矿池而言意味着优势;
PBS 在一个独立的角色中“包含”了这种复杂性/中心化,并具有诚实的少数假设;
提议者(Proposer)= 验证者,诚实的多数假设意味着高度的去中心化要求;
数据生成者(Builder)= 单独的角色,诚实的少数假设,意味着去中心化只需要确保一个诚实(非审查)的数据生成者;
审查阻力方案 – crList
PBS的危险之处:一个高效的构建者(Builder)可以(以一定的经济成本)永久审查一些交易;
[注:在今天的贿赂模型中, 审查一笔交易的成本是永久贿赂所有提议人而不将这笔交易纳入的成本;]
V神:中国区块链行业现在面临的主要挑战是研发:今晚,以太坊创始人V神在王峰十问上表示,“中国区块链行业里的开发人员质量正在不断提高。今年六月,我在北京参加的一次活动上,很多与会者的素质真的很高,而且也给我留下了深刻的影响。我觉得,中国区块链行业现在面临的主要挑战,其实是研发。如果你看一下是谁在发明算法,比如权益认证、分片、零知识证明等等,会发现其实都是以色列人、美国人发明的,还有些欧洲人发明的区块链算法。而在亚洲,似乎只有新加坡。不过最近,我已经开始看到很多来自中国的学术论文,我希望中国区块链行业能在研究方面有所改进。”[2018/6/22]
crLists允许提议者指定构建者必须包含的tx列表,从而恢复旧的平衡;
crList(“混合 PBS”设计)
KZG 2d 方案
为什么不在 KZG 承诺中编码所有内容?
需要一个超级节点(“构建者”)来构建和重建以防失败的情况;
我们希望避免这种假设的有效性;
目标:在 d 个KZG 承诺中编码 m 个分片 blob;
如果我们天真地去这样做,那就需要m * k个样本,这样数据就太多了;
相反,我们可以再次使用 Reed-Solomon编码将 m 个承诺扩展到 2* m 个承诺;
KZG 2d 方案属性
所有样本都可以直接根据承诺进行验证(没有欺诈证明!);
恒定数量的样本确保概率数据可用性;
如果 75%+1 的样本可用:
所有数据都可用;
它可以从只观察行和列的验证器中重构;
不需要节点观察所有的情况;
执行区块和分片区块是一起构建的;
我们以前需要分片委员会,因为每个分片 blob可能无法单独使用;
现在,数据生成者的责任是使执行区块有效,并且所有分片 blob 都可用;
? 验证可以是聚合的;
Danksharding 诚实多数验证
每个验证者选择 s = 2 随机行和列;
仅证明分配的行/列是否可用于整个epoch时期;
一个不可用的区块(<75% 可用)不能获得超过 2^(-2s) = 1/16 的证明;
Danksharding 重构
每个验证者都应该重构他们遇到的任何不完整的行/列;
这样做时,他们应该将丢失的样本转移到正交线;
每个验证器可以在行/列之间传输4个缺失的样本(大约 55,000 个在线验证器可保证完全重构)
Danksharding DA 采样(恶意多数安全)
未来升级
每个全节点检查方块矩阵上的 75 个随机样本;
这确保了不可用区块通过的概率< 2 ^(-30);
带宽 75*512 B / 16s = 2.5 kb/s;
优点
简单的设计:
不需要分片委员会基础设施;
不需要跟踪分片 blob 确认;
没有额外的构建者基础设施(来自执行层的同步支付取代了这一点)
可以使用现有的执行层费用市场基础设施;
执行链和分片之间的紧密耦合:
使得rollup设计更简单;
zkRollup 和执行链之间的同步调用是可能的;
分片不需要单独的 PBS;
随着数据立即被验证者集的 1/32(而不是旧分片方案中的 1/2048)确认,并在一个epoch时期内增加到完整的验证者集,抗贿赂的能力增强了;
得益于2d方案,全节点(无需运行验证器)将能通过75 个样本(2.5 kb/s)确保数据可用性,而不是 30*64=1920 个样本(60 kb/s);
新的挑战
增加了数据生成者要求:
构建32MB数据的KZG证明(需要100核,但目前正在研究CPU实现)
需要2.5 GBit/s的互联网连接来分发样本;
为数据生成者提供了更多权力,因为他们充当了执行+数据层服务提供商;
需要通过crList缓解;
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。