ASP:V神最新演讲:以太坊2.0到底是什么?

原地址:https://www.youtube.com/watch?v=Km9BaxRm1wA祝贺中本聪共识诞生10周年!今天我的演讲主题是以太坊2.0,但我希望呈现的不仅是以太坊2.0在技术上的要点,还包括为什么我们需要推进以太坊升级,我们会做哪些升级,又经由哪些尝试走到今天。那么,什么是以太坊2.0呢?

几年来,我们孜孜不倦地讨论和研究系统的一些特性,也在App开发上投入了大量精力,最终,它们汇集在一起,组成一个融洽的世界。这些特性包括权益证明算法,Casper;可扩展性,分片;虚拟机升级,EWASM;跨链合约上的强化;协议经济模型改进,以及非常多促成逻辑层分散化的改进。重要话题还真不少。我们做过哪些探索?

PoS权益证明的相关研究始于2014年。我在一月份发表的这篇博文阐述了一个叫做罚没者的算法,引入了权益证明算法中最基础的概念:如果你违反协议并且被发现了,,你就要接受惩罚;这一方法可以用来提升安全性。但在那时,正如你可以在幻灯片中看到的,我相信Slasher是一种非常有用的建构,可以让权益证明“挖矿”的武器库变得更充实,并为我们提供更强力的理由切换到权益证明。当然我们还没这么做。因此,在那时,要不要PoS当成我们的方向还未有定论。但随着时间推移,这一点变得清晰很多。可扩展性在2014年,首先,我们探讨了一系列有趣且重要的观念,比如“Proofofproofofwork”,这是一种提升可扩展性的建议;“中心轮辐链模型”,让一条链成为中心,一系列的链成为附属,这其实就是一个非常早期的可扩展性和分片提议,尝试提高区域内交易的可扩展性,但并不能提高全局交易的可扩展性;“超级立方体模型”,立方体有12个维度而不是3个,因此我们可以达到比中心轮辐模型更强的可扩展性。现在,出于多个原因,这些观念都被抛弃了;不过,真的有人弄了一场浩大的ICO来开发它们,真高兴有人愿意尝试。那么在2014年我们究竟有没有取得正确的进展呢?2014年的进展有的。我们得到了一个概念叫做“弱主观性”,某种程度上来说,这是一个半形式化的安全模型,尝试探讨PoS保证金的罚没条件,以及在什么条件下PoS是安全的。同时,我们也越来越确定,具有更强安全属性的PoS算法是存在的,所以点点币及其变种是真的有可能的。我们也逐渐意识到,有一些可扩展性策略能够通过随机抽样跟权益证明算法结合,但我们不知道具体怎么做。那时候我们确定了一个路线图,VinayGupta在2015年3月写了一篇很棒的博文,列举了当时来看以太坊路线的4个主要阶段。第一阶段:Frontier,就是我们一开始启动项目时所处的阶段;第二阶段:Homestead,从alpha走向beta版;第三阶段,Metropolis,那时候的预期是开发Mist和用户交互界面并提升用户体验。但自那时以来,我们的注意力转向了实现更强的密码学技术支持,而交互界面的提升变成了平行的目标。第四阶段:Serenity,实现权益证明。从今往后,我愿意称之为以太坊2.0,当然我也不会拒绝用Shasper来代指。为免混淆,我们还可以称为“Serenity”。2015-16:低谷然后,我们就迎来了一个低谷:我们在解决PoS、可扩展性中的一些核心问题上遭遇了一系列失败,Vlad悄悄地暂停了他在CasperCBC中的所有工作。我们得到的最有意思的观念之一便是“投注共识”:参与者对下一次会敲定哪个块打,而一旦某些人下注,他们下注的事实本身便会成为其他人下注的考量因素。这样的话,在某种意义上我们就产生了一个递归公式,随着时间推移,下注的人会越来越多,哪个块会被敲定也会变得越来越明显;在对数轮以后,每个人都会将自己所有的权益都投完,这样我们就达到了去定性。我们沿着这条思路走得相当远,为它创建了完整的概念证明,你可以看到确定化的过程,还有签名函数什么的。我的意思是,我们在这里花去了绝大部分时间,但然后整个思路就停滞不前了,主要原因是我们认识到了哪种BFT启发型共识算法可以真正安全地工作。存储租金Rent的观念其实是这样的:与其为使用存储空间收取一次性的高额费用,我们可以逐步收取费用。因此,以每天、每个区块或其它方式为计,一旦特定的存储空间被占满,你就需要为此支付一定的ETH。这里写的是EIP103,但实际上应该是EIP35才对,因为35才是issue号码。这是一个初步的想法,试图形成一个正式的概念。从那时开始,我们在如何才能最好地利用租金这一点上迭代了很多想法。2015年的可扩展性论文这一篇论文的目标是形成二次方分片和超二次方分片的概念,但它真的太复杂了。它会包含一些很复杂的激化博弈。整个观念是受到escalation在法律系统中的作用的启发,但我试图把它用到基础层。里面还包含“深度状态逆转“,就是说,如果有些事情真的弄错了,那么大量的状态可以在将来进行深度回滚。真的很复杂。实际上,其中一个我们无法完全把握、但在逐步接近的根本问题,就是所谓的”渔夫两难“。这是分片研究中的一个非常根本的概念,描述了状态的扩展性执行、程序的扩展性执行与数据扩展可得性之间的巨大区别。基本问题是这样的:如果要运行程序,你可以让人们承诺答案是什么,然后你可以用挑战游戏、用二分法搜索确定在哪一步上谁算错了,确认事实后就可以惩罚那些给出错误答案的人。而数据可用性的问题是:无论挑战游戏如何运行,你都可以作弊,因为你可以完全不公开任何数据,直到机制来检查你有没有公开数据,然后你只要公开机制要检查的那部分数据就可以了。这已经证明是许多可扩展性算法中的一个非常重大的问题。我过去还写了一篇博文来讨论这个问题,你们可以搜索ANoteonErasureCodingandDataAvailability,里面讲到了更多问题的细节。这也是拖慢我们进度的其中一个原因。但即便如此,我们还是很高兴能推动以太坊继续前进,我们走在自己的道路上!嗯,然后,就出了TheDAO事件。这也没什么,也没别的问题了。慢着,好吧,又出了个”上海DoS攻击“。总而言之,TheDAO事件、DoS攻击,最终耽误了很多人的事件和精力,甚至长达6个月。不过,我们还是在前进,EWASM在前进,关于虚拟机的研究在推进,我们还做了一个替代性版本EVM1.5。而且大家也多角度、更深入地理解了更优区块链算法的形态。砥砺前行

然后,我们就非常迅速地取得了一系列重大进展。在这段时间,我们在很多不同的研究领域都有所收获:一些是围绕权益证明、希望让我们的共识层更加高效的;一些是围绕可扩展性,希望让我们的基础层共识可以分片;一些是尝试提高虚拟机效率的;还有一些是围绕账户抽象的,账户抽象可以让用户自己选择要使用哪种签名方案,这样可以获得后量子时代的安全性,并且让隐私解决方案变得更简单;还有围绕协议层经济模型的。当然所有这一切都还在生长。CasperFFG在2017年伊始的某个时间点,我们开发了一个协议,并且起了个谦虚的名字:最小罚没条件。最小罚没条件转化了PBFT类型的传统拜占庭共识;在80年代,Lamport、Shostak等人便创建了同类的材料,但我简化了算法并把它放到了大多数区块链的环境中。基本的观念如下:在一条区块链上会不断产生新的区块,你可以通过连续的合并和观察来获得一种流水线版的效率:每一轮开始时你都会为本轮添加数据,而在下一轮中人们可以确认这些数据中的一部分;我们可以从中获得巨大的效率提升。一开始的最小罚没条件有6条,然后我减少到4条,而一年后,我们终止合并prepare和commit,这便是CasperFriendlyFinalityGadget。分片上一年的Devcon上我演示了这种新的分片设计,就是保持主链不变,然后创建分片作为某种意义上的Layer-2系统挂载在现有的主链上,确认足够可靠之后再升级成为Layer-1。CasperCBC然后是来自Vlad的CasperCBC~论文。CasperFFGPOC泰国时间2017年12月31日23:40,那时候我们恰好在泰国,CasperFFG概念验证横空出世。那时候我们真的非常想确定,一种PoW/PoS混合共识的技术详述到底是什么样子的,而这一种混合共识会使用一部分来自CasperFFG中的观念,还有一部分传统拜占庭容错共识所启发的观念,并加载在现有的工作量证明链上。这会是一种可以让我们快速转向混合共识的机制,并且对现有区块链造成的冲击也最小,然后理论上我们将有可能升级为完全的权益证明。我们同样在这条路上走了很远,我们还做了一个Python测试客户端,用不同的VPS、服务器和电脑通信来做测试。Shasper与此同时,我们在分片上也取得了许多进展。我们不断完善分片的技术详述,最终我们在18年3月的台北组织了一次集体休整。在这里很多想法开始冒出来,如何实现一条分片区块链看起来变得明朗起来。对,看起来变得明朗起来。在6月份,我们做了一个非常困难,但我个人认为从长远来看非常有价值的决定。我们发现:咦,这边我们有几支团队在实现混合权益证明,他们试图将CasperFFG开发为一个现有链上的智能合约,对分叉选择规则做调整;另一边,有几支完全隔离的团队,要开发一个验证者或者说管理者合约,在这个基础上开发分片系统;他们之间是没有交流的。在分片这一边,最终变得越来越清楚的是:让分片系统的核心放在PoS链上会给我们带来更高的效率;变成PoW链上的一个合约,我们就不得不处理EVM的开销,应付Gas机制,应付不可预测的PoW区块时间;PoS+分片可以带来更快的出块时间等一系列好处。然后我们就意识到,为什么这边有个团队在开发PoS,那边又有一个PoS项目?为什么我们要做重复工作呢?然后我们决定要把两边的工作合并起来。这个决定给之前的许多工作判了死刑,但意义深远:我们会在一起工作,开发同一份技术说明,同一个协议,而我们可以同时让CasperPoS和分片相得益彰。总而言之,与其这边有一个目的,那边有另一个目的,然后我们要努力分辨如何合并两边的成果,我们还不如在起点上多花一些时间,然后走向一套权益证明和分片区块链。其它与此同时,我们花了不少时间讨论分叉选择规则,最终我们越来越接近也越来越深入地理解分叉选择规则;GHOST算法虽然一开始是为工作量证明设计的,但因为一系列原因,我们重新提议用于权益证明。Justin开始研究可证延迟函数,我们在斯坦福有个工作室,Justin一直在跟那里的许多研究者合作。关于如何实现抽象和租金,我们也形成了更多想法。因为一些理由,我们决定将存储租金重命名为存储维护费。在研究方面,我们正在研究跨分片交易,比如csoss-shard-yanking,我们是普遍化传统分布式系统中的一些概念,用到异步的跨分片环境中;还有资源定价的论文,包括最优化费用市场,如何收取存储维护费,不同设计之间的权衡。Casey还写了这篇文章讨论同步假设下的跨分片交易。当然,CBC的研究也扩展到了,分片领域,对了,这个真的不叫Valding,Vlad很讨厌这个词。还有开发,我们在以太坊2.0开发推进中使用的策略是:追求创造性的多客户端去中心化开发。这不仅仅是因为我们有去中心化的追求,这也是一套非常实用的策略,就是打别的团队都不会有你干得漂亮;此外,上海事件让我们醒悟,如果某个客户端出了问题而别的客户端没有,整个网络可以更好地运行;顺便,还让整个生态系统的开发更不依赖于基金会本身。基金会真正开发的客户端是Python客户端,Python在性能上有内在的限制,这也给了大家激励去运行由Prysmatic创造的客户端、Lighthouse、Status还有Pegasus以及其他如雨后春笋般冒出的团队开发的客户端。即将到来的Serenity

那么就下来,我得说,即将到来的,不能被称为Shasper。Serenity即将启航!Serenity是什么?首先,Serenity是继Frontier、Homestead以及Metropolis之后的第四个阶段。当然Metropolis被分为拜占庭和君士坦丁堡两个阶段,并且君士坦丁堡升级就快启动了。其次,它是我们在所有这些不同领域长达四年的研究的集大成者,包括Casper、分片、EWASM以及所有这些协议研究的观念。然后,这是一种新的区块链。从数据结构上来说是如此,但它会与当前的工作量证明区块链保持一定的联系。那么,比如,PoS链可以感知到PoW链的区块哈希值,你可以将Ether从PoW链上转移到PoS链上。这是一套新系统,也是一套相互连接的系统,最长远的目标是:当这个新系统足够稳定的时候,所有现有区块链上的应用可以被存入新系统中某个分片上的合约,然后有一个用EWASM写成的EVM解释器。这一点还没有最终确定,但从当前来看,这差不多就是我们的路线图了。再次,Serenity会成为世界计算机,而不是像1999年的智能手机一样,每秒只能处理15笔交易,勉强能玩一下贪吃蛇。最后,Serenity仍会是去中心化的,我们还希望在一些维度上,它可以比现有的区块链更加去中心化。举个例子,作为一个信标链的验证者,你的存储要求可能是小于1GB,比起今天你需要8GB来存储状态,或是像网上的流言说的那样存储以太坊区块链需要1.8TB,都会好很多。期望的阶段Phase0:权益证明的信标链。从某种角度来说,PoS信标链是一个区块链仓库,存储着所有信息,但它自身是哑默的。在信标链上会有一些验证者,这些验证者会运行PoS算法;它就像是介于测试网和主网之间的东西,它肯定不是测试链,因为你可以质押真正的Ether进去并获得真正的Ether奖励,但它也不是主链,因为上面没有应用,所以如果它崩溃了,人们也不会哭爹喊娘,不会像上海DoS攻击事件时那样痛哭流涕。Phase1:作为数据链的分片链。这就是分片会有的角色。这是一个简化的版本,也就是说我们并不对状态做分片,而是对数据做分片;你可以把数据放到链上,然后尝试运行一个自己的状态执行引擎。实际上,最容易分片的就是数据。因此,如果你想要在区块链上做去中心化应用,现在你拥有了可扩展性,但并没有因此具备状态执行能力来开发智能合约应用以及所有那些非常复杂的东西。Phase2:支持EWASM的状态转换。这一点包括:支持虚拟机、支持账户、合约、分片间Ether转移,等等。Phase3以及更远:不断迭代,加入新的技术。期望的特征纯粹的PoS共识。更快的同步确认时间。注意,因为信标链的分叉选择规则以及签名机制,信标链上的一次确认包括数百个验证者之间的消息传递,从概率学的角度来说,实际上等同于现有以太坊工作量证明区块链上的数百次确认。在消息同步传递的假设下,已经可以被视为将一个区块敲定。在同步确认的假设下,10-20分钟达致经济确定性。通过EWASM实现更快的虚拟机执行。在理想状态下,达成1000倍的可扩展性。后Serenity的创新

强化隐私保护。我们已经做了大量的工作。比如,在拜占庭阶段,我们激活了椭圆曲线运算、椭圆曲线匹配的预编译。BarryWhite做了非常棒的工作,用Layer-2来保护代币转移、投票、声誉系统中的隐私。这些工作都可以借用过来。跨分片交易。半隐私链。其中的观念是,如果你想开发一些应用并让数据在一部分用户间保持私密状态,你仍然可以将所有的数据都放到公链上,只不过你是用加密形式放上去的,或者上传哈希值、零知识证明,都可以自己决定。权益证明上的创新。这是我们始终关切的一个事情。当CasperCBC在开销上足够经济时,也会加入到我们的路线图。在实现Serenity之后,我们准备将所有的东西都升级到STARK。比如,将STARK用于签名聚合、验证纠删码来检查数据可用性,也许最终会用来检验状态执行的正确性。更强的跨分片交易形式。更快的单次确认。将确认时间从8秒降到更低。中期的目标

最终稳定化Layer-1的功能考虑使用Issuance,以及费用……在人们希望协议层提供的保证和属性上能够得到越来越多的共识考虑治理问题即将到来的更新

在最终发行之前,我们还会做哪些更新呢?首先,将协议层的详述定型。一直在关注GitHub上的ethereum和2.0主要规范、信标链规范等内容的人应该直到,协议层发展得非常快,但我们很快会将它们稳固下来。继续做开发和测试。现在以太坊2.0协议有8个实现正在开发。跨客户端测试网。一些人表明非常希望看到跨客户端测试网能在明年1月份跑起来。我当然也非常乐于看到,今年8月的时候我们已经看到了希望。在这里简单回顾一下以太坊1.0的开发历程。从白皮书提出概念到正式发布,中间隔了19个月,用了这么长时间的部分原因是在技术说明还没有定稿之前,我们便试图打造跨客户端的兼容性,我们是先后同意做测试、发布测试网、等待协议变更,同意发布新测试网,然后等待更多的协议变更,这样来来回回了5次。在这个事情中我们已经学到了教训,我们并不需要完全专注于跨客户端的兼容性,可以等到真正接近技术说明定稿时再说。我认为我们离发布技术说明的候选稿已经不远了,至少在不包括状态执行的部分中是如此。最后是安全审计。在座哪些观众认为安全审计是重要的?哪些观众认为安全审计不重要呢?谁认为这个世界是被蜥蜴人掌控的呢?嗯,第三部分的人还笑了一秒钟呢,真棒。最后就是发行啦。你们觉得发行不重要吗?嗯,那么在座哪位最喜欢的候选人是一个蜥蜴人呢?嗯,所以,发行就是我们期待已久并在过去四年中为之持续奋斗的里程碑。并且,我相信这一切不会太遥远。谢谢!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-5:937ms