Ethereum共识层升级

以太坊当前处于Serenity开发阶段,这一阶段将对以太坊的可扩展性、可持续性进行升级,这些升级也被称为Ethereum 2.0。Serenity升级的设计原则:去中心化、弹性、安全、简单、持久。The Merge是2022年即将到来的一次重要升级。

路线图

Ethereum升级路线图,更新时间于2021年12月
Ethereum升级路线图,更新时间于2021年12月

以太坊长期发展路线分为图中所示五个阶段,从上到下按顺序执行,每个阶段内从左到右依次进行。每个阶段都是一个长期的时间段,而不是一个时间点,其技术依赖互相交叉。

The Merge

预计执行时间为2022年Q3/Q4,根据Checklist,进度已完成80%。The Merge指的是将当前运行的执行层(PoW Mainnet)与PoS共识层(Beacon Chain)进行合并。合并后Beacon Chain将负责对执行层的状态达成共识,执行层负责记录交易数据。

需要注意的是此次合并仅仅是完成共识方法的切换,网络容量没有变化,出块频率提高约10%,所以:

  • 合并不会降低Gas费
  • 合并不会加快交易速度

合并后质押的ETH和奖励依然无法赎回,根据计划,此次合并完成6-12月后的“上海”升级将会开放提款功能,预计在2023年。

The Surge

Surge阶段的目标是通过分片大幅提高性能和可扩展性,分为两个阶段。分片的 version 1 仅仅会提供数据存储功能,不具备交易处理和智能合约执行功能,version 2 将为分片链增加代码执行功能,使其和当前的PoW Mainnet一样。Surge阶段预计于2023年开始逐步上线。

以太坊的升级专注于服务rollups类型的 layer 2方案,rollups方案继承了layer 1的安全性,同时具有自身的扩展性。分片提高了以太坊的总数据带宽,这将显著降低将数据存储到 layer 1的成本,从而有利于rollups方案。

The Verge及后续

提高去中心化程度、简化协议。

The Verge 将实现Verkle Tree和无状态客户端,此升级将优化数据储存并减低验证节点的大小。

The Purge 将尝试去减少历史数据存储要求,进一步降低节点的硬件要求。

共识机制的转变

区块链本质是一种不可篡改的分布式数据库,运行在开放的网络环境下,具有极高可用性、较高终局性。共识机制是数据库节点达成数据一致性的协议,简单来说,共识机制是决定谁可以添加下一个块的机制。公有区块链网络面临的挑战是在开放网络环境和permissionless情况下高效安全的运转。

以太坊的此次升级将转为Casper PoS机制。

共识机制的取舍

FLP impossibility告诉我们,在完全异步的分布式网络中,故障容错问题无法被解决。

从另一个角度理解,FLP对分布式系统的三个属性进行了考虑:

  • 可用性(Liveness):系统必须在有限的时间内达成共识,从而持续运行
  • 安全性(Safety):系统内节点数据一致,可理解我数据安全性
  • 容错(Fault Tolerance):系统内部分节点故障的情况下也必须能运行

FLP不可能定理意味着在异步网络中,不可能存在同时满足这三者的分布式一致性协议。因为分布式环境中,节点故障几乎是必然的,因此容错是必须要考虑的因素,所以FLP不可能定理就意味着一致性协议在能做到容错的情况下,需要在安全性与可用性之间取舍。

FLP理论无法直接适用于区块链,区块链共识机制不仅局限于分布式算法层面,同时包含了经济学、博弈论、概率论的思想,是对多种理论的取舍。通过FLP和CAP等理论的角度来看待公有区块链共识机制,面临可用性、安全性、容错、去中心化的取舍:

  • 容错:故障容错和网络分区容错是开放区块链网络的必要要求
  • 可用性:网络持续出块运行
  • 安全性:节点数据安全性
  • 去中心化:去中心化程度越高,系统安全性越高,去中心化需要节点数量多、分散、对等、Permissionless

中本聪共识(PoW)

中本聪共识通过简单巧妙的方法解决了开放网络中的分布式一致性问题,其实现的核心是PoW算法。PoW通过有效的激励措施使大量节点参与,通过消耗计算量的形式随机选择出块节点,通过博弈论的思想激励节点保持诚实,中本聪共识也将确定性的一致性改为概率性的一致性。

从分布式一致性的角度来看,中本聪共识面临以下取舍,以比特币和以太坊为例:

  • 容错:最大程度地考虑了故障容错和网络分区容错,网络环境、节点状况极其多样,在这种情况下保障网络运行
  • 完全去中心化:网络完全开放,每个节点均可以出块,节点可随时加入和离开(Permissionless)
  • 强可用性:只要还有节点运行,就可以保障网络持续出块
  • 弱安全性:采用概率的一致性,允许短暂的分叉,短期内区块数据有回滚的可能

PoW存在的问题:

  1. 进入成本高:ASIC专业设备的出现,无法激励普通人参与,参与网络共识的成本变得高昂
  2. 中心化:地理层面和矿池层面上均出现了严重的中心化
  3. 可扩展性差:PoW可通过提高出块大小、减小出块间隔的方式提高性能,但提升有限,无法适应分片、多链等具有良好扩展性的架构,分片会分散Hash算力,导致安全性下降
  4. 能源消耗大

权益证明共识(PoS)

PoS共识中,不再通过算力竞争的形式选取出块权,改为随机选择出块节点或轮流出块,节点出块和投票的权重取决于其质押的数字货币数量。

PoS去除了节点之间的竞争过程,也就去除了多余资源的浪费,同时也去除了作恶的沉没成本,所以PoS机制有质押保证金的要求。成为节点需要质押保证金,这样才能因作恶行为受到惩罚,从而将网络安全与节点利益绑定。简单来讲,PoS通过经济损失来保障系统的安全性,PoW通过电力成本保障安全性,PoW是错失激励,即节点作恶会错失有可能获得的出块奖励,PoS是错失激励和经济惩罚。

PoS算法分为两种类型:chain-based proof of stake 和 BFT-style proof of stake,当前大部分项目采用BFT-style的PoS共识机制。

DPoS

以太坊或者说V神是反对DPoS和超级节点,这也是以太坊没有采用DPoS的部分原因。虽然DPoS也被广泛采用,采用了代理人委托机制,持币人对节点进行投票,得票最高的一批节点参与出块,有以下取舍:

  • 弱去中心化:DPoS限制验证节点数量,大部分采用超级节点的形式,节点数量少且相对固定
  • 弱可用性:节点成本高导致参与节点数量少,更易出现故障
  • 强安全性:节点数量固定,共识达成速度快,数据确定性高

DPoS参与共识的节点一般都很少(小于100),所以对节点的要求较高,从而出现了超级节点的形式。通常,提高网络性能的两种思路,一种是提高单机性能,一种是提高机器数量并行计算。超级节点的形式属于第一种,分片方案属于第二种。超级节点易于实现、延迟低,因为其架构与现有区块链架构基本一致。但在超级节点网络中,有以下问题:

  • 中心化:超级节点具有很高的固定成本,因此仅仅有少数用户能够负担参与
  • 单点故障:单一的高性能服务器维护成本高,因此大部分节点选择云服务,更易出现单点失败
  • 易审查:节点数量少且要求高,使节点更容易被监测、审查
  • 可扩展性差:单机性能的极限达到后,可扩展性降低

反观互联网领域的计算模式,除了部分银行系统还在使用大型机服务器,大部分互联网业务已经转为云计算、分布式计算的模式,这也从另一个方面印证了超级节点的局限性。

Casper共识

以太坊选择Casper FFG作为新的共识机制,根据V神的解释,选择此算法的原因是它是定稿时可用的最简单算法。Casper FFG 受到 PBFT 的启发,在此基础上进行了简化和改良,通过经济学的惩罚机制低于共谋作恶,是具有即时确定性的共识算法。

Casper共识的取舍:

  • 强去中心化:任何进行质押的节点,均可以参与共识,所有节点都有出块权
  • 强可用性:只要还有超过2/3节点正常运行,就可以保障网络安全运行
  • 弱安全性:2个epoch后完成区块最终一致性,通过设置checkpoint的方法限制分叉

Why PoW to PoS?

  1. 去中心化:PoS降低了节点的参与成本,易于达成更广泛的去中心化,运行节点不需要专用的硬件设备,成本相对PoW低;质押机制相比PoW不具有规模效应;节点要求降低也让PoS更抵抗审查、不易被探测;
  2. 安全性:PoS节点自身利益与网络安全绑定;PoS具有比PoW更高的攻击成本,因为抵押的资金效率更高,损失的仅仅是资金流动性,所以在与PoW相同的奖励情况下,参与者愿意付出更多的资金成本,导致51%攻击需要更高的成本;
  3. 扩展性:PoS更容易通过分片提高性能,分片不影响安全性,PoW分片会使hash rate分散,影响安全性;
  4. 最终确定性:区块状态由概率的确定性改为最终确定性,为分片和layer 2方案做准备;
  5. 能源消耗小:转为PoS后,预计以太坊的能耗将减少约99.95%;
  6. 减少增发:由于不再需要支付高昂的计算成本,将不需要增发过多的代币激励节点;

Casper共识工作流程

以太坊不限制节点数量,所以有大量的验证节点,为了解决节点之间通信数据量巨大的问题,对验证节点进行分组,随机选取一部分节点达成共识。

下面对原理进行简述,实际工作过程中,以太坊2.0异常复杂,涉及多个分片链、信标链、不同的委员会、交叉的验证投票等非常多的细节,虽然the merge并不增加分片链,但依然有很多预留的设置。

定义:

  • Validator:验证节点,参与网络共识,质押32ETH成为验证节点,负责运行客户端
  • RANDAO:一种生成随机数的方式,理念是让多个参与者共同贡献随机种子
  • Epoch:一个Epoch代表一个6.4分钟的周期,32个Slot组成一个Epoch
  • Slot:一个Slot代表一个12秒的周期,一个周期完成一个区块的提出
  • Committees:由一组验证者组成,每个slot的committees至少由128位Validators组成

步骤:

  1. 每一个Epoch开始,使用RANDAO从节点池中为每个slot选出64个committee,每个committee由128个validators组成(由于有64个分片链,每个slot周期需要选出64个committee)
  2. 在每一个分片的slot周期内,从committee的128个节点中选出一个节点生成区块,其他committee成员则进行投票审查区块
  3. 一个epoch结束后,对验证节点进行随机打乱,重复以上过程;

最终确定性 (finality)

PBFT需要两轮投票才能保证完成全网共识,两轮投票后区块的最终性也确定。

以太坊PoS共识的确定性由检查点 (checkpoints) 控制,检查点是位于 epoch 第一个 slot 里的区块,每个 epoch 都会有一个检查点区块。Committee成员除了对自己所属的slot进行投票,还需要对当前epoch的检查点进行投票。

当一个 epoch 结束之后,如果其检查点得到了 2/3 余额票数,也就是形成了绝对多数,那么该检查点就被证明 (justified) 了。最终确定:如果检查点1的状态是justified,且其下一个 epoch 的检查点2也是justified,那么检查点1的状态就被最终确认 (finalized)。

一般来说,一个检查点会在两个epoch内得以最终确定,即12.8分钟。

Staking

Staking来源于PoS共识机制,是对持有的Token行使权益的一种行为,包括质押、投票等,通过这种行为可以获取奖励。Staking是保障PoS网络安全的基础,PoS共识中,成为节点需要质押并锁定一定数量的Token,质押的Token将作为保证金,防止节点作恶,协议会通过惩罚机制扣除保证金。

在以太坊2.0中,由于不存在原生的委托协议,Staking所指的是锁定ETH运行验证节点。

Why Staking?

  • Staking是保障PoS网络安全的基础,越多的ETH被Staking,对网络攻击需要的成本越高
  • Staking参与了网络的共识维护,从而可获得网络增发的奖励

如何参与Staking(成为validator)?

每个validator需要两个keys,分别是Signing keys和Withdrawal keys,根据keys所有权的不同,可以将参与方式分为以下四种:

  • 自建节点(用户持有两种keys):用户完全掌控节点,无中间人,每个节点需锁定32个ETH,并在合适的硬件上部署软件服务;有助于网络去中心化、稳健性;
  • Staking as a service(服务商持有signing keys):用户自行将资金质押到以太坊,委托第三方节点服务商建立和操作节点,共享signing keys给服务商,例如Allnodes、BloxStaking;
  • 质押池(用户不持有任何keys):将资金质押到特定的智能合约,由智能合约通过DAO组织选择节点运营商运行节点,需要信任DAO组织,对最小资金数量限制低,例如Rocket Pool、Lido
  • 交易所(用户不持有任何keys):操作最简单,直接将资金所有权移交给交易所

收益

节点收益由出块奖励、证明奖励组成,节点收益受网络总质押量影响,总质押量低,单个节点的收益率高,随着质押量增加,虽然单节点的收益率下降,但网络总增发量会增加,以保证节点有收益。这是因为,随着更多的以太坊转移到信标链上并开始验证,每个区块生产者的奖励会增加,但速度会越来越慢,因为每个时段的区块生产者的数量永远不可能高于 32 个。

证明奖励(attestation reward)

证明奖励分为两部分:base reward 和 inclusion delay

base reward与节点的有效余额有关,是相对固定的值。inclusion delay与证明投票的速度有关,当block proposer提交了一个区块后,若验证节点在下一个区块完成投票,则inclusion delay=1,这是合理的最优状况,此时能够拿到100%的奖励,若是延迟一个区块完成投票,则inclusion delay=2,只能拿到50%奖励。

节点的有效余额影响收益

有效余额是通过节点当前余额和上一次有效余额得出的每个节点的权重值,用于计算给予该验证者的奖励和惩罚的大小:

  1. 有效余额最大为32;
  2. 有效余额是余额向下取整,始终是 1 的倍数,例如29.7,有效余额为29;
  3. 只有当验证者的余额比其当前有效余额高出 1.25 以上时,有效余额才会增加。这意味着,例如,如果验证者的有效余额为 25,则其余额必须增加到超过 26.25,然后其有效余额才会增加到 26;
  4. 仅当验证者的余额比其当前有效余额低 0.25 以上时,有效余额才会减少。这意味着,例如,如果验证者的有效余额为 25,则其余额必须减少到小于 24.75,然后其有效余额才会减少到 24;

验证者余额的微小变化可能对其有效余额产生巨大而长期的影响,因此有必要对其进行主动管理。如果验证者需要停机,选择合适的时间也很重要,因为并非所有惩罚都是平等的。0.015 的惩罚将验证者的余额从 30.010 降低到 29.995(有效余额没有变化)对验证者产生的整体奖励影响很小,但是 0.015 的惩罚会使验证者的余额从 29.760 降低到29.745(有效余额从 30 变为 29)具有更大的影响。

通胀

以太坊目前的增发和销毁有3个部分组成:

  1. PoW主网的增发,预计在Merge后停止;
  2. EIP-1599以太坊上的燃烧;
  3. 以太坊 2.0 质押中的奖励和惩罚;

在当前以太坊总质押量接近1400万的数量下,理论上通证率将小于0.5%。

风险

惩罚机制

惩罚机制出于两个目的:

  1. 使得攻击的成本难以负担
  2. 查核验证者是否真正履行了职责,防止验证者消极怠惰

有两种类型的处罚:节点不作为和错误的证明行为(Slashing)

节点不作为处罚较轻,例如节点离线会罚没一定的保证金。在绝大多数(2/3)验证者仍然在线的情况下离线会导致相对较小的惩罚,因为仍有足够的验证者在线让链完成。离线罚没的金额大致等同于在线收到的奖励,这意味着,有50%的时间在线即可保障保证金不受损失。同一时间离线的节点越多,惩罚额度越高。超过 1/3 的网络同时下线持续超过 4 个 epoch,所有离线验证者都将受到逐步加大的inactivity leak惩罚,惩罚额度随着时间的二次方增长,直到节点恢复或不满足最小有效余额被踢出验证节点。

Slashing与惩罚不同,对网络有破坏的违规行为会受到严重的Slash处罚,例如双重投票和环绕投票

Slashing被触发后:

  1. 验证节点将被踢出验证节点列表,被处罚后需要 36 天完成退出,提取保证金;
  2. 初始惩罚:当验证者第一次被判定犯有可罚没的罪行时,将应用初始惩罚。根据验证者的有效余额,初始罚金在 0.25 Ether 和 0.5 Ether 之间,将被立即执行;
  3. 相关惩罚:当一个验证者被罚没时,稍后会根据EPOCHS_PER_SLASHINGS_VECTOR以该罚没事件为中心的一个大小时期的窗口(大约前后 18 天)内有多少其他验证者被罚没多少,对验证者施加进一步的惩罚。窗口期内被处罚的验证者越多,每个验证者的惩罚就越严重。
  4. 被罚没的验证者在等待退出期间(36 天),将继续受到惩罚,并且在此期间他们无法获得任何奖励。

进入/退出

以太坊限制了在每一个epoch中可以进入或退出的节点数量,超出限制的节点将在队列中等待,数量限制定义为:

churn_limit = max(4, V_active/65536)
// V_active:当前网络中活跃的验证节点数量
// churn_limit:一个epoch中可以加入和退出的节点数量

节点激活后最少需要服务为2^11 epochs,约为9天。在这之后,若节点要退出,对于没有被slash的节点,需要等待2^8 epochs(约27小时),对于发生过slash节点,需要等待2^13 epochs(约36天),这进一步惩罚了他们,并迫使他们持有ETH。等待周期结束后可以进行赎回抵押资产。

这一等待时期确保了如果验证器行为不端,有时间可以捕获错误。

在当前41万节点的情况下,每个月可以有10.3%的节点进入或退出:

成本

Staking as a service平台收费在每月5-10$左右,按照5$计算,约占每月收益的2.6%。实际由于以太坊对节点的性能要求较低,服务商可以在同一台服务器部署多个节点,具有一定规模效应,节点越多边际成本越低。

总结

  • 以太坊2.0的升级将引领公链技术创新。以太坊的技术能力远超其他公链,甚至一些公链项目诞生于以太坊提出的某些创新想法,因此,以太坊的进步能够带来大批公链的技术进步,加速区块链底层技术的更新。以太坊2.0带来的技术创新包括:Casper协议、Sharding、Rollup、Verkle Tree、PBS、zk-SNARKs等;
  • 以太坊2.0通过分片提升网络性能和容量,解决性能问题;通过共识机制转PoS,降低节点门槛,解决中心化问题和能源消耗问题;通过Casper共识机制,引入终局性,解决由分片和PoS的安全性问题;
  • 以太坊加入原生的链上随机数,支持可以在合约中调用(EIP-4399),有利于新的应用出现;
  • 以太坊增加了确定的终局性,对layer 2协议、跨链、分片均有直接帮助;
  • 以太坊的PoS共识和分片设计非常复杂,针对网络的安全性做了非常多的细节考量,但增加的复杂设计还需要长时间的迭代优化;
  • 以太坊的通胀率大幅降低,预计将小于0.5%;
  • Staking有助于网络安全、减少价格波动,已经发展出一套包含持币方、节点服务商、Staking as a Service平台、质押池的商业模式;
  • Staking节点运行具有规模效益、边际成本低,节点大量集中于云服务平台,容易出现单点故障引起大规模Slashing;
  • Liquidity Staking是发展趋势,传统金融市场通过资产证券化解决流动性问题已经有很长的历史,Staking可通过发行权益代币解决质押资产流动性的问题,并配合Defi协议提供更多应用;

About Me:

Twitter:@cryplato

Subscribe to Cryplato Investment
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.