蜂巢学院线上公开课|Kai:一起来聊聊以太坊2.0吧
共 5965字,需浏览 12分钟
·
2020-11-23 07:24
以太坊2.0即将上线,万向区块链蜂巢学院线上公开课【直播间】邀请了以太坊布道者、imToken首席架构师Kai,来与大家一起聊了聊以太坊的现在和未来。
大家好!很高兴受到万向区块链蜂巢学院的邀请和大家分享以太坊2.0,带大家回顾过去,以及看一下现在和未来的情况。我叫Kai,是imToken的首席架构师。
回到最开始以太坊对自己的设想和Roadmap是怎么制定的?2015年以太坊博客上有一篇文章,列出了对以太坊将来的规划,最开始列出来五个阶段:
Olympic测试网。
Forntier first launch。2014年发起项目后在测试网上跑了一段时间,Frontier是第一个跑起来的主网。
Homestead,主网跑起来之后开始做优化,前面是Alpha阶段,后面是Beta阶段。大家知道区块链行业兴起引起很多人的关注就是在2017年,这时候承载发出Token的业务、写简单的程序就是在Homestead,是更早期假设Beta状态下实现的。
Metropolis,设想在这个阶段把以太坊打造成让很多用户使用的,并且是好用的区块链产品。这也是现在我们所处的阶段,像DeFi应用就是在这个时期里设立里程碑的以太坊承载的业务。
Serenity。
这是以太坊最初的设想,想要每一年都能发布一个版本,一个版本一个版本地迭代。可能现在已经到了2.0阶段。2017年我刚入行的时候,大家会拿出以太坊的几个里程碑在布道的时候和大众讲,以太坊会用这样的里程碑设置一步步往前走,最终做出“世界计算机”,当这几步走完之后会是世界上最大规模的计算机,上面可以跑应用、承载业务。
这是实际上的Timeline,对区块链来说每一次升级大版本都会做硬分叉,像共识和设计需要更新迭代,老的共识维持在没有用的状态会被丢弃掉,更多人会在新的硬分叉上继续跑。
2015年7月以太坊主网正式上线,设置了“难度炸弹”在里面,在一开始PoW过程中难度炸弹会影响出块的数量,驱动矿工逐步迁移到新的网络上。
2016年出了The DAO事件,因为攻击导致的结果是有挺大一笔资金被一些人挟持去到另外一个账户。这时候社区做了硬分叉,把状态做了回滚,当时有些人觉得需要接受这个状态,因为代码即法律,智能合约的代码出了问题,大家需要为这个事情负责,所以就有了以太经典——ETC分叉。
以太坊继续往原先设想的历史进程往前走,2016、2017、2018、2019年每一年都会按照自己想象的节奏逐步做迭代升级,把一开始设定的目标交付出来。
像现在是2019年Istanbul,从2016年开始每一次硬分叉都在年底,每一年开Devcon大会的时候就会做分叉,基金会开发者聚在一起讨论项目规划,推进并实施硬分叉。
以太坊社区很大,有矿工、各种各样的开发者、普通用户,大家最想讨论的就是以太坊2.0。
但在最初的规划里没有1、2、3版本规划的,并没有提版本号的事情,只是说有设置很多里程碑,每个里程碑往前走做一些交付的状态。
2.0的概念应该是在2018年 Devcon4上 Vitalik开场分享了去年有哪些研究成果,怎样展望下一年发展等。2018年Vitalik 讲了以太坊2.0概念,把想做的事情框进去。
Proof of stake(PoS),一开始以太坊通过PoW把代币发放给矿工,把网络打造出来。但Vitalik自己心里想的是打造PoS,当时一直叫Casper,搜“以太坊 PoS”可能搜不到太多,但是搜“以太坊 Casper”可以搜到很多当时的研究和想法。
Scalability。2017年加密猫在区块链上做了宠物,把以太坊给堵住了,用不了,矿工费很高。让人想到需要解决的问题,当时社区也热议如何通过Sharding分片提升性能。
EWASM,想把VM进行升级,是更通用的虚拟机,现在的EVM只能执行相对简单的应用,不会涉及复杂的隐私计算以及更专业优化的资金环境。
Abstraction,账户抽象,包括怎样更好地在上面有账户的灵活性。
Improvements to protocol economics。在以太坊以及任何区块链里要解决共识、社区激励问题并不是技术本身的问题,而是在经济模型设计层面解决的。
那时候把这么多问题全部框进了2.0里,开始有了2.0概念。但当时并没有很明确叫2.0的时候,更多叫“宁静”阶段。
这次分享我翻了很多老资料,有自己整理的也有网上已有的,进程是相当久的。
左边是2014年,当时以太坊连测试网络都不能顺利跑,没有测试网络。但从那时Vitalik就一直思考怎样做PoS的事情,并且他在过程中不断思考不断改名字,一开始叫Slasher,后来想了一下改成了Casper。
右边是2020年11月,是上个星期发布的一篇讲PoS的,里面持续在对PoS做思考,其实PoS在最开始初心是存在的,以太坊是想要做PoS链,所以很早就把难度炸弹放进去。一开始就埋好伏笔,经过一段时间在PoS质押的网络模型下能把事情做出来,同时通过难度炸弹调整矿工收益,让用户们逐渐迁移到PoS的链上。
PoS到现在还只在最后的测试网络阶段,还没有正式上线,这是从2014年到现在相当长的发展推进,但现在也临近上线,也是大家最近热议讨论的原因之一。
Casper名词蛮有趣的,一开始大家想的是怎样实现PoS的网络,持续地做了很多研究,当时有一段时间的热点是关于PoS共识是不是像一条蛇一样自己咬自己尾巴,是自己体系内自圆其说的说法,并且在当时的共识模式设计下,理论层面还是有很多他们要攻克、思考的问题,大概在2018年这段时间里,社区主要还是在讨论这个。刚好2017年这波热潮过了,2018年有很多其他的链出来,以太坊专心在这方面耐心做研究。
上面提到以太坊2.0包含了很多东西,像共识、分片架构,之前研究会不断地遇到“可行性验证和路径探索”的问题,当时基金会分了两个小组,一个小组专门做PoS共识,另一个小组做Sharding(分片),他们分开研究计划最后会师把以太坊基本架构实现。
最后的结果也和计划不一致,当时有一次开完会之后台湾团队得出结论说不如把这两个东西放在一起,就把现在2.0初步设计大概做出来,这时候roadmap进行了蛮多修改,主要的工作无论Casper还是Sharding,最常遇到的问题是怎样敲定区块。假如这两个事情一起思考的话,反而问题解决变得简单。
现在看Polkadot和Cosmos的结构是相对简单的结构,有一条PoS链只负责出块,其他分片有各种各样功能的指令和分片通过顶上的链做区块敲定的。区块链是有一个一个区块出来才会持续走下去有一条最长链,信息被打包、被共识、被确定,出来之后才能运行下去。对PoS和Sharding来说刚刚说的结构是最简单也是最容易实现的。
2.0工作持续了很多年,其中各种各样很多复杂的问题,都被逐一攻克下来了。像共识协议是很难的课题,因为共识很学术并且做出来之后不能出问题,会导致很多DeFi Dapp等都出现问题,因为共识一旦出问题,当前区块就没办法往前走,导致你的状态都不对了,因为区块链是一个状态一个状态的变迁。
PoS不像PoW,PoW是难度只要算出来事情就可以被敲定,但PoS要收集大量的签名确定区块是被敲定的,要通过好几轮的投票过程,足够长之后才能敲定,这个算法相对学术,并且验证的方式比较痛苦,要通过形式化验证工具把已经想好的共识重写一遍,通过形式化工具验证在数学层面是没有问题的。
CrossLink是Casper和Sharding合并的时候出来的新东西。CrossLink想要解决的问题和攻克的是假如很多分片有很多执行环境,怎样在A和B做通信?
之前我在一个活动上听到一个很好的例子,传统互联网里出差要去订机票、订酒店,这两件事情其实是串在一起的。同一个买票人在任何一个有功能的旅行App里可以一起下订单,如果酒店订不到车票也会一起失败。跨链通信也会有这样的问题,如何做到想做的事情在两个分片上同时进行?比如说酒店和机场一起,如果订不到酒店的话就不会订机票,订不到机票的话就不会订酒店。在区块链上做,并且想要原址性还是挺难的,这也是现在在攻克的以太坊2.0 Phase 1阶段。
现在以太坊上这么多人在上面有Dapp、应用等,怎么把这么多人迁移到以太坊2.0上,并且在以太坊2.0上自己的钱包长什么样子?怎么用?有很多分片,像游戏的分片、身份的分片、DeFi的分片怎么用起来?
年初矿工肯定会很关心以太坊2.0要来了,矿机怎么办?像DeFi这波起来后以太坊的扩展能力不足,市场经济模式一开始这么设计也没有动过,但今年矿工的营收反而比去年高了很多,特别去年硬分叉减少了把网络奖励也减少了,但实际上今年矿工收入却多了。Phase 0 Beacon Chain快要上线了,说明共识算法已经做的差不多了。
大家想攻克的问题会先列计划, 2019年初在以太坊2.0推进过程中主力人员写了一篇博客,计划把以太坊2.0做出来。
像Beacon Chain在2019年把CrossLink问题解决掉,2020年已经可以做完分片了,执行环境乐观是在2020年完成。之前的设想是这些东西做完了,已经完成了以太坊的规划了,但实际上并没有,实际的过程是现在Phase 0还没开始。
大家有提出Phase 1.5的概念,有很多用户和Dapp,结合Rollup技术提升能力承载更多业务,让更多人更快更便宜地在以太坊上使用“世界计算机”。去年开始把Slogan变成了“世界计算机”,变成了去中心化的平台,不是来解决所有问题的,而是来解决去中心化时能够达成的目的应用,Phase 0在下个月初可能就开始了。
讲完了过去的设想和定义,未来会是怎么样的情况呢?
年中5月份的时候Vitalik 作为总架构师把所有问题都一一列出来,画了一张很大的图,列出了一些关于1.0上解决了哪些进展;2.0上还有哪些需要继续往前探索的,最近他在讲1.5,计划还在不断修正。
区块链最终也是一套软件、一套共识、一套算法,最终出来是一堆代码,你要写代码要实践。我作为写了十多年程序的程序员也知道要做一件事情更好的方式是先看到了未来的目标,知道目标在那里。做的是逐渐达到,设一些目标,并不是说达不到就很失望要放弃,而是要做调整和改变更快更好地达到那个阶段,这样社区能更适应变化,现在是列出问题,每一个问题在研究论坛上会有人思考,会有人提建议,以太坊基金会会给出很高的奖金奖励给到研究这些方向的人。包括Rollup的事情以及Phase 1.5。
像Layer2有很多DeFi应用会尝试不同方向上Rollup的实践,大家想的是怎样通过现有的技术或者其他非2.0方向,通过1.0或者另外一种技术打造出足够我们用的生态、足够强大的生态。
Beacon Chain Launch一开始设计的PoS网络能够跑起来。吸引大家的是如果按照刚刚好超过的50万eth的量,那锁定进去的人收益是很高的。因为工程的速度还没有达到那么快,需要把eth锁在那里。即使PoS网络跑起来了,可能要到Phase 1.5的时候才能跟现在的1.0会师,时间要多久没有人敢说一个很准确的时间。大家做计划的时候会偏乐观,但是最终达成的话还是比较远的。
Phase 1.5是现在思考会师的点,就是说Phase 1.0、Phase 1.X加上Rollup,Rollup可能跟某一个或者某几个分片能够有交互,最后出现Phase 1.5,Phase 1.5的前提是要把Phase 1做出来,现在大家的重心是Phase 0能跑起来,有了Phase 0、Phase 1分片上线,之后有Phase 1.5,有了Phase 1.5的时候相当于大部分人可以享受2.0相关的东西,分片起来之后才有Rollup性能,才能交付它想要交付的价值。
EIP 1559是关于如何衡量矿工费的事情,是经济模型的转变。无论多高的矿工费只要本身像DeFi应用足够受欢迎就会有人用,在市场的驱使下只要有利润成本就可以贴近利润,之前上千了也有人交很高的gas费。这里面涉及如何衡量矿工费对社区生态的影响,现在是在实验,并且可能很快会有进展。
Stateless Client,现在不仅以太坊,但以太坊起码还是有一部分人能跑起全节点的服务,全节点就是把历史所有状态都记下来,并且每一个状态都能有快照纪录下来。保持做业务、回溯的时候能看到所有数据,像其他链根本没有办法看到。
Stateless Client可以做服务,但相对来说更轻量级,不需要那么多状态的客户端,需要状态的时候再去取。介于普通节点和轻节点之间的节点,对生态的最大意义在于希望更多把节点跑起来,好处是更去中心化,会避免掉单点全网节点服务出问题的时候大家都会出问题的情况,是把去中心化从执行层面更好贯彻下去的课题。这是我现在看到关于当前讨论的热点,只是现在的状况。
存款合约已经部署了,等到12月1日时间点才能启动,在启动时间和收集的代币数量都满足的情况下网络才能启动。节点能跑起来,才能证明网络的存在,不然在此之前是没有这个网络的,这就是现在大家最关注的事情。
社群里都很担心才这么少人充进去,因为完全是单向的,可能等到Phase 1.5才能把现在放进去的每一份拿回来,厘定的资金肯定是到了时间点才把资金充进去是更合理的。现在在时间到之前看百分比是完全没有意义的,只有到那个时间点这个网络是否有那么多人把eth抵押进去。
最近一堆报道和说明中可以观察到很多账户都准备好了到了时间点充进去。往后怎样通过Rollup实现扩展是更大的事情。现在大家都说这个Rollup能做什么,那个Rollup能做什么,但还没有完全兑现自己所有的承诺,现在都是某一个东西集成了Rollup,但实际上它也只是测试网,最终怎么样还是要看市场、团队、社区的共同努力。
这是我今天回顾到的相关材料,特别像以太坊的博客,从最早看基金会的方向,一开始是网络怎么跑起来,怎么拉更多的合作伙伴,怎么把项目做起来。中间会穿插很多现在的思考,现在的成果是当时很多年前的思考,逐渐累计出来的,还有论坛也是很有价值的,大家都在里面讨论新的东西,有周报、以太坊2.0进度、以太坊爱好者、链闻等都是非常非常好的参考来源。
今天的分享就到这里,感谢大家的时间。