一文读懂Eth2.0验证者

一文读懂Eth2.0验证者
文章图片
1.到底什么是“验证者(validator)”?
验证者是参与ETH2.0协议共识机制的实体 。
用大白话来说 , 就是持续运行特定的一段计算机程序的人 。 这个程序会提议并证明新的区块 , 使之能添加到区块链上 。
换言之 , 你可以将验证者看作新区块的投票者 。 一个区块获得的票数越多 , 被添加到区块链上的可能性就越大 。
重要的是 , 验证者的投票权重由其权益数量(theamountithasatstake)决定 。
2.保证金合约(depositcontract)是什么?
你可以将保证金合约理解为以太坊账户和ETH2.0验证者之间的资金转移通道 。
保证金合约的状态指明了谁存储了保证金、由谁来参与验证、保证金数量有多少 , 以及谁能取出这些资金 。
3.为什么验证者需要先存入保证金?
系统需要扣押验证者的资金 , 以便在某个验证者被证明行为不轨之时对其进行惩罚 。
换句话来说 , 为保证这些验证者都遵守协议 , 要让这些验证者的行为都会产生经济后果 。
4.验证者需要质押多少ETH?
在验证者可以开始保护网络之前 , ta需要质押32ETH 。 这32ETH就是验证者的初始余额 。
5.质押量超过32ETH有什么好处吗?
没有 。 单个验证者存入超过32ETH不会获得任何优势 。
将有效质押量设定在32ETH有助于推动权力的去中心化 , 因为这样可以防止某个验证者的投票权重过大 。
请记住 , 验证者的投票权重取决于其权益数量 。
(译者注:实际上 , 验证者的投票权重取决于其“有效余额(effectbalance)” 。 有效余额并不是账户的表面余额 , 有效余额有个上限是“32” , 假设一个验证者一直勤勤恳恳地赚钱 , 其有效余额也不会超过“32” , 同理 , 其被罚没时 , 也不会一次性被罚没超过32ETH 。 原文此处用语是“theamountithasatstake” , 虽然也嫌太模糊 , 但显然不能直译成“验证者已存入的数额” 。 汉语中缺乏与“atstake”对应又不显累赘的说法 , 故此处译为“权益数量” , 实属无可奈何)
验证者职责
1.经济激励机制是如何帮助用户保持活跃和诚实的?
除了会因为离线而遭受惩罚之外 , 验证者还会因为作恶而遭受惩罚——例如 , 投票给无效或有冲突的区块 。
另一方面 , 如果验证者所提议/所见证的区块被添加到了区块链上 , 验证者就会获得奖励 。
基本概念是:
帮助网络达成共识的行为会获得奖励
妨碍共识的无意行为(或不作为)会招致轻微惩罚
恶意行为会招致严重惩罚(或称罚没)
换言之 , 验证者在努力获得奖励的同时也在为整个网络做贡献 。
2.奖励/惩罚是如何发放的?
请记住 , 每个验证者都有自己的余额——初始余额则可在保证金合约中看到 。
以太坊网络规则会基于验证者的履职情况定期更新其余额 。
换言之 , 验证者所获得的奖惩都会在余额中反映出来 。
3.奖励/惩罚多久发放?
大约每6.5分钟(即 , 一个epoch)发放一次 。 每个epoch期间 , 网络都会评估每个验证者的表现 , 并相应给予奖励或惩罚 。
4.奖励/惩罚金额有多大?
这个问题很难回答 , 因为在计算时需要考虑很多因素 。
验证交易所获得的奖励主要受网络总权益量(即 , 验证者总数)的影响 。 根据总权益量 , 验证者的最高年化收益率可能在2%至20%之间 。
在验证者总数固定的情况下 , 奖励/惩罚主要取决于验证者的余额规模——如果提供证明的验证者的余额越高 , ta所受到的奖励/惩罚就越高;余额越低 , 奖励/惩罚就越低 。
请注意 , 这种动态机制是以不那么明显的方式运作的 。 要想了解其具体原理 , 你先要理解有效余额(effectivebalance)这个概念 。 如果你对这个概念还不熟悉 , 我们建议你阅读这篇文章(编者注:见文末超链接) 。
5.为什么奖励取决于网络中的验证者总数?
区块奖励是根据网络中的ETH总权益量按比例计算的 。
简单来说 , 如果ETH总权益量很少 , 奖励(利率)就很高 , 但是随着权益量增加 , 每个验证者所获得的奖励(利率)就会降低 。
为什么会有这种动态调整?虽然本文不会揭开其中的真相 , 但是直觉告诉我们 , 为了确保网络良好运转 , 验证者总数不能低于某个下限(ETH总质押量也是) 。 因此 , 为了激励更多验证者参与进来 , 利率需要维持在较高水平 , 直到验证者总数达到下限为止 。
6.如果离线 , 验证者会遭到什么惩罚?
视情况而定 。 除了实际余额的影响之外 , 还需要注意两个重要情况:
如果绝大多数(2/3)验证者都在线 , 那么离线所造成的惩罚较低 , 因为有足够多的验证者在线 , 可以实现区块的终局性 。 这是预料之中的情况 。
如果有超过1/3的验证者同时离线 , 离线惩罚就会较高 , 因为网络无法继续实现区块的确定性 。 这种属于不太可能发生的极端情况 。
请注意 , 如果是第二种情况 , 离线验证者会在21天内逐渐损失高达50%(16ETH)的权益量 。 21天之后 , 这批验证者就会被逐出验证者池 。 这样一来 , 网络就可以恢复正常 , 开始达成区块的终局性 。
7.正常运行时间占到多大比例 , 诚实的验证者才能实现盈利?
总的来说 , 只要验证者的正常运行时间超过50% , 就能实现盈利 。
这就意味着 , 验证者不需要备份客户端或冗余的网络连接 , 因为离线的后果并没有那么严重 。
8.作恶的验证者会遭受什么惩罚?
同样视情况而定 。 恶意行为(例如 , 投票给无效或有冲突的区块)会让验证者遭到罚没 。
最低罚没金额是1ETH , 但是如果其他验证者在同一时间遭到罚没 , 这一金额还会增加 。
其目的是尽可能减少验证者因无心之失而蒙受的损失 , 同时抑制协同攻击 。
更多内容↓↓↓9.罚没是什么?
罚没有两个目的:(1)大幅提高攻击ETH2.0的成本 , 使攻击无利可图;(2)通过检查验证者是否履行其职责来防止他们偷懒 。 所谓的罚没 , 指的就是如果有验证者被证明作恶 , ta的权益(中的一部分)就会被销毁 。
遭到罚没的验证者无法继续参与网络的共识机制 , 会被强制退出 。
(译者注:在这几个问题的答案中没有显明的信息是:对一名验证者来说 , 每一个epoch(6.4分钟)就要发出一条见证消息(attestation , 包含投票内容) , 而且需要发出消息的时间在一个epoch中的位置不是固定的 。 显然 , 上述验证者职责的履行不可能由人手动操作程序来执行 , 必定是自动化的 。 因此 , 验证者会不会被罚没 , 高度依赖于所用的客户端软件 。 因此 , 有意自己运行验证者的用户 , 首先要关心自己所用的客户端性能好不好 , 保护措施到不到位 。 )
密钥【一文读懂Eth2.0验证者】1.如果签名密钥(signingkey)丢了会怎么样?
如果签名密钥丢失 , 验证者就无法继续提议及见证区块 。
随着时间的流逝 , 验证者的余额就会逐渐减少 , 因为ta会因为无法参与共识流程而遭到惩罚 。 一旦验证者的余额只剩下16ETH , 系统就会自动将ta逐出验证者池 。
不过 , 这件事并非完全没有转机 。 如果验证者的签名密钥是使用EIP2334(根据默认引导流程)生成的 , 就可以随时根据取款密钥重新计算签名密钥 。
在取回保证金时 , 用户也需要用到取款密钥 , 而且取款时要等待大概一天才能到帐 。
请注意 , 如果同一时间段内退出或被踢出验证者池的人很多 , 延迟期可能会延长 。
(译者注:在Phase0阶段 , 不会开启验证者取回保证金的功能 。 )
2.如果取款密钥(withdrawelkey)丢了会怎么样?
如果弄丢了取款密钥 , 验证者就再也拿不回属于自己的资金了 。
因此 , 你最好使用助记词(mnemonics)来创建取款密钥以便备份 。 如果验证者是通过Medalla测试网的引导流程加入的 , 则取款密钥是默认通过助记词创建的 。
3.如果取款密钥被偷了会怎么样?
如果取款密钥被盗 , 盗窃者可以转走验证者的余额 , 但是必须在验证者退出之后 。
如果盗窃者没有该验证者的签名密钥 , 就无法让验证者退出 。
验证者可以先使用签名密钥退出验证者池 , 然后在盗窃者之前使用取款密钥将资金转走 。


    推荐阅读