ETH2.0 将切换到 PoS 共识,什么是 PoS?如何在 ETH2.0 中参与 Staking?

原文标题:《科普 | Eth 2.0 的 Staking 逻辑》(Proof of Stake)
翻译:Unitimes_David

综述

权益证明 (PoS) 代表一类共识算法,其中验证者 (validators) 会对下一个区块进行投票,而投票的权重取决于投票者的权益大小。由于更低的能耗,更少的中心化风险,抵御不同类型的 51% 攻击的安全性等等,权益证明被认为是对工作量证明(PoW)的改进。

PoS 算法可以被分类成两大类:

  • 基于链的 PoS:依赖于网络的同步性;
  • 基于 BFT (拜占庭容错) 的 PoS:优先考虑节点的一致性而不是可用性。

在以太坊 2.0 中,为了参与投票(即成为一名验证者),你需要质押 ETH。为此,你将会获得部基于某个利率 (收益率) 的额外 ETH 奖励以及部分网络交易费。

一文读懂 ETH2.0 的 Staking 机制来源 :EthHub

权益证明 (PoS) 是什么?

权益证明 (PoS) 是一类依赖于验证者网络中的经济权益的公链共识算法。在基于工作量证明 (PoW) 的公链(例如比特币和当前的以太坊)中,PoW 算法会奖励解决密码学难题的参与者以验证交易与创建新区块 (即挖矿)。在基于 PoS 的公链(例如以太坊即将推出的 Casper 实现)中,一组验证者轮流对下一个区块进行提议和投票,而且每个验证者投票权重取决于其押金 (即权益) 大小。PoS 的显著优势包括安全性,减少的中心化风险以及节能。

总的来说,PoS 算法看起来是这样的:区块链会追踪一组验证者,而且持有区块链基础加密货币 (在以太坊的情况下是 ETH) 的任何人都可以通过发送一笔特殊类型的交易来成为验证者,该交易会把他们的 ETH 锁定为押金。然后,创建新区块和对区块达成共识的过程是通过一个共识算法来完成,所有当前的验证者都能够且应该参与其中。

共识算法有很多类型,而且给参与共识算法的验证者分配奖励的方式也有很多种,所以存在着多种「风格」的 PoS。从算法的角度来看,主要有两类:基于链的和 BFT (拜占庭容错) 的 PoS。

在基于链的 PoS 中,算法会在每个 slot (例如,每 10 秒的周期可能是一个 slot) 期间伪随机地选择一个验证者,分配该验证者创建单个区块的权利,且该区块必须指向某个前面的区块 (通常是前面最长链末端的那个区块)。因此,随着时间推移,大部分区块组成单条持续增长的链。

在基于 BFT (拜占庭容错) 的 PoS 中,验证者被随机地分配提议区块的权利,但是会通过一个多轮的过程来就哪个区块是权威规范的区块达成共识,在该过程中,每个验证者会对每一轮的某个特定区块进行「投票」,在此过程结束时,所有 (诚实和在线的) 验证者将对任何给定的区块是否成为区块链的一部分达成永久性共识。请注意,区块或许依然会被链接在一起,但其中的关键区别就是,基于 BFT 的 PoS 中,区块的共识在一个区块内达成,而不需要依赖它身后链的长度或大小。

与 PoW 相比,PoS 的优势是什么?

  • 不需要消耗大量的能量来确保区块链的安全。(据了解,比特币和以太坊每天消耗超过 100 万美元的电力和硬件成本作为它们共识机制的一部分)
  • 由于缺乏对高耗能的要求,PoS 没有必要为了激励参与者继续持续参与网络而增发那么多新币。理论上,PoS 甚至可能出现净发行呈负数的情况,这种情况下,交易费的一定比例被「销毁」,从而久而久之减少供应量。
  • PoS 为使用博弈论机制设计的更广泛的技术打开了大门,以便有效地阻止中心化垄断的形成,且如果这些技术成型,也能够阻止对网络造成损害的行为 (比如 PoW 中的自私挖矿)。
  • 减少中心化风险,这是因为几乎不存在规模经济的问题。在 PoW 机制中,价值 1000 万美元的投入将为你带来 10 倍于价值 100 万美元投入的回报,而不会带来任何额外的不成比例的收益,因为在更高的水平上,你可以负担得起更好的大规模挖矿设备,这是 PoW 中的一种「优势」。
  • 能够使用经济惩罚去让各种类型的 51% 攻击的成本比在 PoW 中实施要昂贵得多。套用 Vlad Zamfir 的话说,「如果你参与了一次 51% 攻击,你的 ASIC 矿场就如同被被摧毁了一样」。

对 Casper 权益证明的 51% 攻击会是怎样的?

51% 攻击有四种基本的类型:

  • 最终性回滚 (finality reversion):已经敲定了区块 A 的验证者后续敲定相互矛盾的区块 A,从而打破了区块链的最终性保证。
  • 敲定无效区块:验证者敲定了无效 (或不可用) 的区块。
  • 活性拒绝攻击:验证者停止敲定区块。
  • 审查:验证者阻止部分或所有的交易 / 区块被包含进区块链。

在第一种情况中,用户可以社交的方式带外协商,就哪个敲定的区块最先出现达成共识,并支持该区块。第二种情况可以利用欺诈证明和数据可用性证明来解决。第三种情况可以被对 PoS 算法的修改解决,即如果节点没有参与共识,那么该算法会逐渐削减(「泄漏」)非参与节点在验证者集合中的权重。Casper FFG 的论文包含了对这种情况的描述。

第四种情况是最难解决。第四种情况可以通过一种「少数派软分叉」的方式修复,其中少数诚实的验证者就大多数验证者在审查他们达成了共识,并停止继续在当前的链上创建区块;相反,这些诚实的少数验证者将会继续搭建自己的链,并最终通过上述的「泄露」机制来确保这些诚实的少数验证者将会成为新链中的 2/3 绝对多数验证者。那时,市场将会倾向于支持由这些诚实验证者控制的新链,而不是由不诚实节点控制的旧链。

ETH2.0 中的 Staking 逻辑

01. 为什么我会想质押我的 ETH?

因为质押 (stake) 了你的 ETH 及为正确的区块作证,你将通过网络利率 (即验证者的收益率) 和部分网络交易费的形式来获取 ETH 奖励。详情见这里。下图是当前被提议的 ETH 最大年增发率和验证者的最大年收益率:

一文读懂 ETH2.0 的 Staking 机制图源:EthHub

需要注意的是,根据 Vitalik Buterin 的说法,上图这些是最大的数字,有许多因素可能会减少 ETH 的总发行量。这些因素包括:

  • 验证者离线。将个人惩罚和集体惩罚结合起来说,每 1% 的验证者离线将减少约 3% 的总发行量,如果超过 33% 的验证者同时下线,许多 ETH 很快就会 (因惩罚) 被销毁。
  • 验证者被罚没 (slashing)。这种情况在实际中可能很少发生。
  • ETH 交易费由于 EIP 1559 而被销毁。根据此提案,预计前期当 ETH2.0 网络的使用率较低时,将有大约 10,000 ETH/ 年 的交易费被销毁;最终有可能会上升至每年销毁数十万 ETH 交易费。
  • 交易费用于支付状态租金而被销毁。这种机制可能会整合进 ETH2.0 的 gas 机制中,因此基于 EIP 1559 被销毁。

根据 Justin Drake 的说法,基于上述因素,可能带来的结果是,如果 ETH2.0 中质押了约 30,000,000 ETH,那么网络的年通胀率 (增发率) 将约只有 0.5%,相应的验证者年收益率将约是 5%。

相关阅读:

02. Staking 的最低要求是什么?

  • 每个验证者至少质押 32 ETH
  • 具有足够硬件规格的计算机
  • 连接互联网

03. 我需要运行什么软件来参与 Staking?

当考虑在以太坊上质押时,需要了解两种主要的软件类型:

  • 信标节点:这是验证者的枢纽
    • 存储规范状态,处理点对点和传入的同步请求,广播区块和进行区块证明。
    • 拥有一个客户端可以连接的 gRPC 服务器并提供一个公共 API。
  • 验证者客户端:与信标节点通信并对区块签名。你可以在每个客户端质押 32 ETH。
    • 存储重要的秘密信息,如 RANDAO 揭示,共享数据的托管证明以及 BLS 私钥。
    • 可以有效地切换底层信标节点
    • 追踪验证者已经签名的共享状态执行数据和数据块。

这意味着可能有三种需要运行的软件组合:

  1. 仅运行信标节点
  2. 运行信标节点 + 验证者客户端
  3. 运行信标节点 + 多个验证者客户端

04. 运行软件的硬件要求是什么?

仍待定。理想情况下,我们只需达到上述三种设置的最低要求。(备注:根据此前以太坊 2.0 研究者 Justin Drake 的说法,预计验证者客户端将可以「毫不费力地」在 Raspberry Pi (树莓派) 硬件 (4GB RAM) 上运行。)

05. 如果我在参与 Staking 时连不上网,会发生什么?

成为一名验证者的关键在于保证你始终可以给区块投票 (也即证明区块),从而保证了网络的安全。因此,如果你的验证者客户端在任何时候离线了,为了激励验证者的可用性,这里会有相应的惩罚,惩罚大小视情况而定。这会发生在在两个场景中:

  1. 如果区块正在敲定并且你处于离线状态,那么你会在一年内损失 x% 的质押金,其中 x% 为当前的验证者年利率。例如,如果当前验证者年利率为 5%,那么你每天将损失 0.0137% 的押金 (备注:5%/365 = 0.0137%),但你在线时每天将获得这些奖励。
  2. 如果区块无法被敲定(即超过 33% 的验证者离线)且你也处于离线状态,那么你会在 18 天内损失 60% 的押金。

如果你的押金在任何时候下降到 16ETH 一下,那么你将会被完全从验证者集合中删除。

06. 如果我参与 Staking,我的 ETH 会被锁定多长时间?

当想从验证者取回 ETH,那么你会被放入一个取款队列。如果没有队列,那么最短的赎回时间为 18 小时,时间会根据当时正在取款的人数动态调整。

相关阅读:《科普 | ETH2.0 中的验证者密钥和取款密钥是什么?》

资料
Proof of Stake FAQ
CBC Casper Resources
Beacon and Validator explanations
Some details around staking from Vitalik

来源链接:docs.ethhub.io