Vitalik:以太坊 2.0 已没有未解决的研究挑战
Vitalik Buterin
: 我真的认为当前没有未解决的研究挑战。在研究方面,主要是“我们如何更优雅地来实施,并占用更少的代码行和更少的边缘情况”。
Danny Ryan
:需要更好地理解无状态和高度抽象的执行模型中可能涉及的激励机制和各种参与者。为了更好地理解相关的设计和积极构建原型来审查相关的想法,以太坊基金会的 eWASM团队和ConsenSys的Quilt团队都做了大量的工作。
Carl Beekhuizen
:感谢你注意到这个日期是非正式日期 :) 明年年初推出 (信标链) 是我个人的目标,但在那之前还有很多事情要做!我们需要完成的事情有:长时间运行的测试网络 (不管这是如何定义的),对抵押合约 (deposit contract) 的形式化验证,以及准备好的 (Eth 2.0) 客户端,但是
现在看起来一切都将按时完成
。我们也不想为了赶上某个任意日期而匆忙开出带有很多bug的软件客户端。
Danny Ryan
:各个 (Eth 2.0) 客户端团队都做得很好,并在继续挑战极限。我期待在未来几个月里取得令人兴奋的进展,但我也预期最后的路程可能会很长。2020年初 (启动信标链) 是很现实的,也是我们的目标。
Justin Drake
:分片之间的可组合性无疑还是个未知的领域,但我们有理由保持乐观:
为了促进跨分片交易,所有分片都是被设计为同质性的 (这点与 Polkadot 或者 Cosmos 不同);
有一些设计模式可以将分片之间的界线抽象化。这些设计模式将更容易在可编程执行引擎中使用。
由于验证者对分片的证明,各分片被设计成能够友好地实现“快速乐观的最终性 (fast optimistic finality)”,对分片的证明类似于当前Eth 1.0链上的区块确认。也就是说,在实践中,由于单个分片能够快速实现最终性,所有的分片可以充当一条具有逻辑性的区块链。
UI (用户界面) 层也可以将分片之间的界线抽象化。
Danny Ryan
:谢谢!我只是努力让事情向前发展,而不是太关注市场波动和那些噪音。
Justin Drake
:客户端多样性方面有几点需要注意:
Vitalik Buterin : 我们绝对不想看到双头垄断的局面! 就我个人而言,理想的情况是没有任何一个客户端的节点数不会超过整个网络的1/3,这样任何客户端中的任何软件错误都不会导致整个网络的停止运行。虽然如果没有哪个客户端的节点数会超过整个网络的1/2,这也没什么问题,也能为我们带来同样的好处。我希望网络的节点会出现幂律分布,而且 很有可能其中一些客户端将不会在主网上被大量使用 。
Danny Ryan :我认为之所有这么多的客户端会来完成这项艰巨的工作,是因为 Eth 2.0不仅是一项纯粹的技术挑战,也是一个在以太坊和加密货币领域留下足迹的机会 。我很高兴看到有这么多优秀的团队在做着这项艰巨的工作,但最近,我更关注于寻找贡献者来做核心客户端实现之外的增值工作,比如形式化验证、协议的学术分析、测试、轻客户端、web3接口和开发者工具、能够接入任何底层节点且具有强大的用户体验 (UX) 的验证者客户端等等。
Vitalik Buterin : 在过去的一年里,它已经变得相当简单 。如果你对Eth2.0规范进行字数统计,就会发行当前规范的字数比以太坊黄皮书还要少。Eth 2.0中有很多东西比Eth 1.0简单得多。但肯定也存留这一些复杂性,我非常关注与将复杂性最小化。
Justin Drake :虽然研究的道路有些曲折和难以跟上脚步,但 最终的规范可以说是简单明了的 。期待更多的教育性材料能够强调当前Eth 2.0设计的简单性。阶段0大约需要指定1024行代码 (假设以SHA256和BLS12-381为原语)。我预计阶段1和阶段2加起来将有1024行代码 (假设以 WASM 为原语)。
Justin Drake :当验证者被罚没时就会被驱逐出去。还有另一种驱逐机制,即当你累计的 (非 slashing导致的) 惩罚使得你的余额低于16 ETH时,你也会被驱逐出去。
Danny Ryan :你也会损失一定量的ETH。当前设置的最低损失量是1 ETH。如果最近一段时间内还发生了一些其他满足罚没条件的行为,还会有额外的惩罚。如果最近有更多的验证者被罚没了,那你会损失更多的ETH。而如果最近有1/3左右的验证者被罚没了,就会发生最大程度的惩罚,即你会损失所有质押的 ETH。
Vitalik Buterin :当前的方式就是将 Eth1.0 作为一个执行环境调入到 Eth2.0链之中。在实践中,这意味着我们将需要在Eth1.0链上进行一次硬分叉,从而调整一些gas费用 (读取存储或者账户的操作码的 gas 费用将上升至2,000-10,000),在这之后的某个时候,我们将会在某个区块高度将 Eth 1.0 链的状态根转移到 Eth 2.0 系统中。我的确认为读取存储/账户的操作码的gas费用将会上升,合约开发者应该注意到这一点并做好相应的计划。
Justin Drake :我预计市场中将会出现针对staking的行业,比如包括质押池 (staking pools) 在内的基础设施 (如 Coinbase 等提供的中心化质押托管服务,以及其他去中心化质押池),还有一些即插即用的“validator in a box”解决方案。在风险方面,对于有时短时间离线的验证者节点而言,相应的惩罚应该是很小的。
Danny Ryan :带有分片的Eth 2.0 预计将能处理大约10 MB/s 的数据可用性。这是在分片链中达成共识的数据,并保证数据在2周左右的时间内可用。当前处理状态和状态执行的方式是采用“无状态(stateless)”的方法,即区块必须包相关状态的默克尔见证 (Merkle witnesses) 才能完成交易的执行。这将会减少任何共识节点必须存储的状态量,但确实会提出有关状态大小的其他问题,比如由谁来存储状态、用户如何获取状态等等。
事实上,整个状态执行都被抽象化了,这样我们就可以尝试多种方案来处理这个问题 (比如状态租金、让用户/dapp 存储自己的数据等等)。Alexey Akhunov 在过去一年左右的时间里研究的状态租金 (state rent) 将可能会发挥作用。
Carl Beekhuizen :我认为你是将 slashing (罚没) 和 inactivity leak (验证者不活跃而受到的惩罚) 混为一谈了。Inactivity leak 是指当验证者节点离线18天,且信标链停止了“finalizing”进程,那你质押的金额将会“在18天内减少60.8%”;
Slashing 是指当验证者进行了恶意行为时,其质押的金额就会减少。假设客户端软件没有问题,slashing基本上不太可能发生在你的身上。最低的slashing惩罚是1 ETH,但惩罚会随着与你同时被罚没的人的数量的增加而增长。有关惩罚的更多信息请参阅:
https://notes.ethereum.org/9l707paQQEeI-GPzVK02lA#Why-are-the-Casper-incentives-set-the-way-they-are
Vitalik Buterin :最新我对于https://ethresear.ch/t/layer-2-state-schemes/5691的研究最为兴奋。Karl Floersch 等人在 Optimistic Virtual Machine (OVM) 方面的研究也非常有趣。
Vitalik Buterin :我并不认为当前我们有必要担心具体的数字 (备注:V神是指信标链中质押的 ETH总数和相应的ETH年增发率以及验证者年收益率),不管对于验证者来说相应的奖励是否足够,网络都会启动的。
Justin Drake :至少2个,理想情况是3个。
Vitalik Buterin : 当你处于离线状态时,只有当超过1/3的其他验证者也同时处于离线状态,此时你受到的惩罚才会很大 。除此之外,离线的惩罚是非常小的,只要你的在线时长超过了50-67%,那你就会处于净盈利状态 (不包含电脑成本等)。这种激励机制的很宽松的,目标是为了鼓励业余参与者加入进来,促进去中心化。
Justin Drake :“暂停”成为验证者的方式是首先退出 (这可能仅需要半个小时,但也可能需要几天/几周的时间,因为存在一个退出排队机制),之后 (想要重新参与验证时) 再次激活就可以了。
我最大的担忧就是,我自己并不会进行恶意行为,但会因为客户端存在 bug 而遭受损失。我已经运行 Geth、Parity、Trinity 和 EthereumJ (Harmony) 等节点好多年了,这些客户端存在的时间比任何Eth 2.0 客户端存在的时间都要久得多,但这些客户端依旧会有问题,有bug,有时还会崩溃。
Vitalik Buterin :我希望如此!(Eth 2.0) 激励机制设计的一个关键就是,只有当很多其他验证者同时离线时,相应的惩罚 (不管是因离线还是因被罚没) 才会很高。因此,任何不会同时攻击所有节点的bug只会使你损失很少的资金。
Carl Beekhuizen :阶段2还不太明确,但我希望阶段1规范将在今年第四季度冻结。
Carl Beekhuizen :由于存在1024条分片链,每个委员会中需要128名验证者,因此为了实现每个分片的交联 (crosslink) 需要至少131,072名验证者。如果验证者数量少于这个数值,那就会跳过一些分片,从而保证每个委员会中有128名验证者。
Danny Ryan :系统可以很自然地处理低至64名验证者的情况。在这种情况下,系统安全性会明显降低,但协议可以在技术上继续推进。
Justin Drake :在Eth1.0链上搭建Eth2.0链会是一个糟糕的设计决策,原因如下:
-
我们将受到当前Ethe 1.0链gas上限的限制,这将会严重影响新链的性能 (比如,将无法实现1024条分片链和质押32 ETH来进行验证);
-
我们将混合共识层和应用层。这意味着共识层将受制于应用层的DoS向量 (比如高昂的gas价格);
-
我们将受制于旧链的EVM (以太坊虚拟机),而众所周知,将复杂的合约安全地编入旧链的EVM之中非常困难。
-
Eth 1.0链无法支持 BLS12-381;
-
还有其他一些原因。
Carl Beekhuizen :在Eth2.0链中,更多的验证者应该不会导致更长的 finalize 时间。通过使用BLS 签名聚合以及通过将验证者组成委员会,我们能够容纳数十万 (乃至数百万) 的验证者。
Carl Beekhuizen :如果某个大型参与者想要获取大量质押的ETH来控制整个网络,那他将需要购买2/3以上的所有流通中的ETH,而当他购买时会推动ETH价格的上涨,这样一来使得这一攻击的成本非常高;其次,只有当你的行为被2/3的验证者证明是恶意行为时,你才会被罚没。PoS 机制的一个很棒的地方就在于,这类攻击可以很好地被处理。作为一个社区,我们可以联手通过硬分叉的方式来将恶意攻击者从当前链中分叉出去,这样恶意攻击者就没有了投票权了。攻击者只是耗费了大量的资金暂时停止了网络。
而在 PoW 链中,如果攻击者购买了具备51%算力的ASIC矿机,那就没有办法将攻击者从系统中移除出去了。
Justin Drake :Eth2.0将不存在挖矿。你也许可以通过诸如Golem等平台将这些GPU挖矿设备的算力租赁出去。
Vitalik Buterin :当 PoS 链开始承载PoW链以保证安全时 (这可能会在阶段1或者阶段2是发生),那时可以安全地将 PoW 链的挖矿奖励减少约4倍。当 PoW 链完全停止运行时,增发率还会进一步降低。
Justin Drake :Layer 2 扩容方案 (Plasma、Rollups、状态通道等) 可以在短期内改善扩容性。不幸的是,在2019年构建Layer 1解决方案仍然需要解决大量的技术复杂性,但并非不可能做到!
Vitalik Buterin :据我所知,在Compound 平台质押 ETH 的年化利率在0.02%, 因此我们有很大的竞争优势 。而“在Compound平台上质押ETH可以获得3%的利率,借出DAI的利率为6%”这种设计具有误导性,因为6%是基于USD (美元) 的,而3%的收益率是基于 ETH 的。但随着越来越多的staking形式 (比如Plamsa、Trubit 以及其他保证金游戏) 的出现,ETH的质押利率将会上滑。
Carl Beekhuizen :Eth 2.0 币的转移只有到阶段1时期才可能实现,那时交易所将会上架 Eth 2.0 币。交易所的上架将有益于维持 ETH 币和 Eth 2.0 币之间的等价。
Carl Beekhuizen :这取决于你所说的 “Ether 代币”想表达什么意思:
-
验证者可以向抵押合约 (deposit contract) 中发送 32 ETH,之后这笔存款将转移至信标链上,这样验证者就可以在信标链上参与验证了;
-
对于只是想要将 ETH 从 Eth 1.0 链转移至 Eth 2.0链的人来说,这方面的设计还没有最终决定,但可能两条链之间会存在一条专用桥,也可能通过抵押合约来实现这一目的;
-
当前谈论有关 ERC20/721代币在两条链上的转移还为时尚早。如果Eth 2.0 链有了像 Eth 1.0 链那样的执行引擎,那这种转移将非常便捷,但即便没有执行引擎,可能也可以通过只是将ERC20代币的状态根复制过来,从而实现其转移。
Justin Drake :阶段0可能最早将于2020年1月3日启动。我认为很可能是在2020年第一季度。需要质押32 ETH,验证者的奖励取决于所有验证者的数量、个体验证者自身的表现,以及 gas 市场。 我觉得验证者的年收益率大约在10%左右是不足为奇的 。我觉得最自豪的就是参与到了这个我认为将以积极的方式彻底改变这个世界的基础设施的搭建之中。币安链不是以太坊的竞争对手。
Carl Beekhuizen : 所有的1024条分片链会一次性启动 。逐渐增加分片链的数量 (可能) 会带来不必要的复杂性。带有大量未使用容量的分片,其gas 价格会更低,因此会吸引更多的用户。
Carl Beekhuizen :Eth 2.0 链对 Eth 1.0 链的彻底变革,因此相比于升级,更好的方式是实现一条全新的链。Eth 2.0 币的流通数量的确在很大程度上取决于有多少人将 Eth 1.0 币转换成 Eth 2.0 币。当然,Eth 2.0 链也会发行新币来作为验证者的奖励,从而也会增加新币的供应量。但最终,所有Eth 1.0币都将会转换成 Eth 2.0 新币。
Vitalik Buterin :这些区块链平台真的实现每秒处理数千比交易了吗?通常我的“直觉”是他们吹嘘的吞吐量是他们真是吞吐量的10倍。如果某条链并不活跃,那我并不相信任何有关于这条链的数字,因为在实验室中轻易实现的高数据,在实践中并不能支撑得住。在试验期间,以太坊本身也可以实现500-1,000的 TPS,且 Plasma在试验期间也可以实现数十万的 TPS。
如果这些区块链平台在实践中真的能够实现1,000以上的TPS,那为什么运行在服务器上的节点数如此至少?
Carl Beekhuizen :阶段0的目标就是追踪验证者的状态和产生随机性,因此询问有关其扩展性方面并没有多大意义。在TPS方面,并没有明确的答案。一个基本的计算是,如果每条分片链都有着与当前Eth1.0链相同的吞吐量,那整个Eth 2.0 系统的吞吐量将是:16*1024=16,384 TPS (假设不存在跨分片交易)。
尽管如此,以上这些数字都是没什么意义的,因为Eth 2.0 网络将会与 Layer 2 扩容方案 (比如 Rollups 和 OVM 等) 一起使用,这将有望带来非常高的吞吐量。
Justin Drake :我并不知道有哪个管辖区将Eth1.0链上的ETH代币视为证券,由于Eth 2.0 链上的 ETH 代币与就连上的代币基本一样,那么新链上的 ETH 应该不会被视为证券。
编译 | Jhonny
来源 | r/Ethereum