本文是《区块链技术手册》系列的第一篇,《区块链技术手册》系列是一个可以了解加密货币技术逻辑的文章系列,主要介绍比较特色的项目类别或者主流项目的技术架构。
第一篇选择了介绍以太坊2.0,会尽力全面的把相关技术内容汇集此文中,如有偏颇请指正。
ETH2.0的阶段0已经箭在弦上,一周内以太坊2.0存款合约质押了超过50万枚ETH,我们对以太坊的期待更上了一层。但从技术来看,谜一样的ETH2.0仍然是一个未来不可预测的形态,因为公链始终都在尝试。
或许我们已经对ETH2.0期望太高了,所以从技术角度详细了解下ETH2.0以及近期的变化,可以基于这些内容再去给予合理的期待。
从ETH1.0出发?
ETH2.0这个词是相对于ETH1.0或者ETH1.X说的,从共识上很容易区分,ETH2.0是PoS共识,而ETH1.0是PoW共识。
以太坊在创世的时候,是先利用基金会的poa节点启动的,随后运行稳定后加入PoW节点,开始了挖矿进程,这么多年来,ETH1.0的PoW节点已经发展出庞大的数字,因为PoW挖矿的收益力量,以太坊矿工也是加密货币矿业里不可或缺的一部分,其挖矿算法是ETHhash,使用GPU挖矿,也出现了ASIC挖矿,但ASIC算力并没有像比特币挖矿里ASIC和GPU对比那么悬殊。
PoW的ETH1.0网络像比特币网络一样,并发量很低,并且以太坊还是一个具备可编程能力的网络,在以太坊上运行的各种智能合约,会增加很多链上确认消息的数量,比只做转账的比特币网络多了很多调用类消息,所以,以太坊太堵了。
当年的加密猫让以太坊堵的一塌糊涂,2020年Defi流动性挖矿热潮的时候,以太坊依旧堵的一塌糊涂,Gas费居高不下。当以太坊从PoW转向PoS后,这样的问题会解决一部分,可以从每秒处理7笔交易的的处理能力提升到上千笔交易,这已经是质的飞跃。
ETH2.0的网络结构变化
在以太坊2.0的路线图里,最终目标是PoS,PoW链会在历史的发展中被留存至不适合挖矿,ETH1.0网络彻底不适合再工作为止,当然这不知道会是多少年后,在我们可预测的时间内,ETH2.0启动Phase0后,PoW和PoS会是混合存在的,在ETH2.0的分片架构里,ETH1.0的PoW链就是一个分片,与ETH2.0信标链中的分片承担一样的任务。
那ETH2.0究竟代表了什么?ETH2.0是代表了基于PoS共识建立以太坊的开始,信标链会开始逐渐承担以太坊主要的确认出块过程。
与现在的PoW链相比,ETH2.0实现的是PoS共识、分片结构以及带来新的虚拟机eWASM,实现这三种设定后,以太坊可以更加分散化(目标和实践也许会有差异),因为用笔记本小型设备就可以成为一个验证节点。网络更有弹性,即使有节点脱机,也会因为分片的布置而保持稳定。当然最重要的就是前文所说,网络的处理能力和ETH1.0的处理能力完全不同。
主要的3个阶段
ETH2.0把前期实施分为了3个阶段,Phase0、1、2(是主要变化)。
Phase0是启动信标链的开始,启动信标链前需要用户抵押32个ETH成为节点,并且需要足够量的ETH(超过50万枚)才能启动。为了保证信标链的稳定性,用户存入32ETH后,暂时不能取出,等到Phase1才会有退出的设定。Phase0启动后,ETH2.0信标链会成为以太坊庞大网络中的一个部分,虽然已经开始出块,但并不承担转账、合约执行等。这个时候相比信标链,其实ETH1.0的PoW链会更健壮,Phase0开始后ETH2.0和1.0链会面临一个混合成为一体的过程。
ETH2.0和1.0链因为是不同共识的链,而网络要有一致性,这个过程也是形成网络总帐本的实验过程。根据官方说明,在Phase1阶段会部署64个分片进行试运行。
分片的试运行,多个以太坊开发者透露过重要的是测试分片间的信息确认过程,因为不同分片是不同的链,跨分片互通是必要的,跨分片互通之后才能状态统一。
ETH2.0Phase0让信标链运行稳定,ETH1和ETH2链并行运行,Phase1开始后,分片开始测试,进展合格后,Phase2阶段就是网络正常运行开始eWASM虚拟机的建设等,Phase2后代表着可以在ETH2.0链上部署智能合约、开发dapp。
新路线图
但经过11月20左右以太坊开发团队进行的AMA,Vitalik和开发者们重点指出,可能会暂缓Phase2阶段里的关于分片的技术设计,因为在rollup技术成为以太坊2.0的中心技术后,Phase1阶段里运用rollup已经可以提升足够的处理量。
这里提到的Phase1阶段的rollup。是把信标链的数据层进行一个数据分片,然后数据再经由rollup处理后提交到信标链,这样信标链会有足够的处理能力。(如果再加上layer2的方案,处理能力会更好。)
此外,开发者还提及将会提前推出ETH2.0、1.0混合测试网,这意味着ETH2.0、1.0两条链的状态融合可能会提前。这是目前以太坊2.0会出现的一些变化,总结来看,就是加快推进。
需要特殊注意的事项
其他的以太坊2.0出现的特殊情况还有几点需要注意:
1.在阶段0、1和2中,ETH2.0和1.0链都在出块,所以块奖励也会是给两个链,ETH的增发量会增加,官方预测,两条链的总通货膨胀可能最初会飙升,但随后随着PoW链的逐渐淡化而开始趋向0-1%范围。
2.官方期望在阶段2之前将客户端等工具移植为支持eWASM的。
3.dApp未来需要选择分片。因为跨分片通信的问题,分片之间可能会失去了一些组合可能。
4.可能未来一段时间内会面临ETH1.0链账户和合约迁移到2.0的升级问题。
以太坊2.0与用户、投资者最密切的部分
以上是基于技术结构和技术目标,以太坊将面临的变化。而这些都是网络底层或者后端的变化,作为一个用户或者投资者,这些变化带来的实际影响并不明显。与用户和投资者最为密切的还是拥有哪些参与过程?接下来我们总结一下和用户最密切的部分:参与指南的技术项。
以太坊的质押合约
首先是以太坊2.0最重要的存款质押,在阶段0启动的时候,信标链正式启动,届时从创世区块开始有信标链的BETH奖励。
以太坊2.0的存款页面是https://launchpad.ETHereum.org/,在页面介绍会有详细的参与指引,主要过程包括注意事项、选择客户端、保存密钥、上传密钥文件、选择钱包支付、成交。
从技术上看,其实是把以太坊1.0链上的ETH锁到合约里,启动节点的权限,但节点的奖励并不是ETH,因为旧链和信标链还没有同步,节点奖励是信标链上的ETH,即BETH。
用户需要先安装一个ETH1.0链客户端、再安装ETH2.0链客户端,然后再使用ETH1链的钱包支付。两个客户端也需要同步运行,其中ETH1节点服务也可以使用infrua等第三方服务。
此处提示,安装节点需要根据各个客户端的文档提示安装和部署。例如gETH hyperledger besu parity或者直接使用infura第三方服务。
以太坊2.0存款的运行操作界面是从ETHereum/ETH2.0-dePoSit-cli页面下载该文件,然后在终端窗口中运行./dePoSit命令。另一个选项是用Python源代码构建工具。需要按照说明操作,以确保安装了所有必需的开发库和dePoSit-CLI工具。
更多内容请查看上文中的网页,请不要忽略其中的超链接的文档叙述。
不能忽略节点运维
此外,更严格的要求是客户端的运营,因为节点的验证是要一直持续的,如果节点掉线,用户质押的钱很可能会损失掉,所以为了防止节点掉线的话,需要保证运行客户端的硬件随时开机运转,并且网络也需要稳定,例如使用笔记本电脑或者台式机运行,保持电源在线不断电、客户端在线、以及联网状态良好都是需要的。
如果使用服务器或者一些定制硬件运行,也是如此,大部分服务器可能运营在IDC,其稳定性会更高,但部署成本和运维成本也会很高。例如可能在笔记本运行可能每月需要几十美元,但稳定性并不高,服务器或者一些树莓派、迷你电脑、定制主板的设备会更合适,另外还推荐使用Linux,稳定性更高,轻巧、安全,但成本可能会更高一些。
小资金投资者的参与途径
除了自己建节点,然后抵押进去之外,其实很多用户可以用更小的资金参加,因为32个ETH现在已经是一个较大的资产数目。所以那些只持有少量ETH的用户想要投资会有其他方法。
这里面会涉及一个第三方的问题,也就是用户把ETH给第三方,第三方再建立节点去抵押。用户存入的钱有固定的数量,这样32个ETH可以由几十个用户一起组合而成。满足32个之后就可以做一个节点抵押。
第三方在做这件事的时候,是需要把ETH拿到手,然后再抵押进去,但如果只是拿到ETH然后抵押到合约里,只是一个迁移过程,只是迁移过程的话整个业务里的ETH资产流动性会很堪忧,并且资金利用率不高。
对于以太坊2.0的staking业务,最好的形式仍是把存款过程做成合约执行,用户把ETH转进固定的合约之后拿到凭证。抵押之后的凭证是比较重要的,惯用的方式,是用户存入之后可以生成合成资产凭证,然后合成资产也有自己的交易市场,这样既可以解决流动性问题,又可以多增加一种资产市场。同时合成资产的协议也会成为未来和以太坊2.0合约调用的关键部分。
这里可以举例的是例如项目stafi在以太坊2.0staking业务协议里生成的rETH、项目stkr在以太坊2.0staking业务协议的aETH。这些都是用户可以用定量小资金参与以太坊2.0质押的技术过程。
除了这一点外,如果说以太坊2.0的32ETH的限制是一个证明,那使用多方签名的方式也可以把ETH的证明形式切分成更多的小参与方,这里会设计多方计算MPC等,不过这些实现还没有实例。
一些有趣的部分
上文把以太坊技术发展的前因后果、网络架构、用户参与方式等介绍完毕。但以太坊还有很多有趣的东西没有写出来。例如你知道以太坊路线图里还有以太坊3.0吗?
在以太坊wiki的介绍里,除了以太坊2.0的阶段0、1、2。还有3、4、5、6。其中阶段3是轻客户端状态协议,阶段4是跨分片交易,阶段5是与主链安全性的紧密耦合,阶段6的超二次分片或指数分片,也就是分片中的分片。
当然现在这些部分有些已经有变化,不过这也代表未来更多可能性,例如基于零知识证明的starkware,还有异构分片、Casper CBC,这三项是被成为以太坊3.0的代表。
写在最后
以太坊的进展是值得充满期待的,2年前的在布拉格的以太坊开发者大会上,2.0还是一个宏大的远景,现在近在咫尺,站在这个高度上,我们似乎可以看到更远了,但对于每个参与或者经历的人来说,公链的发展就是充满了不确定性的。成功和失败可能就在一两件小事上,不过参与者需要引颈高歌,因为这本身就是一场新的教育过程,为行业加油的是行业发展的不确定性给予的兴奋和成就感,enjoy。