5

解读以太坊 2.0 Slash 机制:如何避免重度惩罚?

 3 years ago
source link: https://news.huoxing24.com/20201230181102032969.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

解读以太坊 2.0 Slash 机制:如何避免重度惩罚?

InfStones2020-12-30热度: 8707
除非有意为之,大部分过失 Slash 发生的情形都是因为在两台服务器上运行了相同的验证人密钥,也即两台服务器运行同一个节点。
00:0006:19

原文标题:《以太坊 2.0 slash 机制详解》

撰文:InfStones

slash 意为大幅削减,是 PoS 共识公链常用的对作恶验证人的惩罚机制。以太坊 2.0 的 slash 规则可能是目前所有 PoS 公链中最复杂的一个。通过研读以太坊 2.0 设计规范与源代码,对其 slash 规则做如下解读。

以太坊 2.0

slash 的种类

slash 一般指对严重作恶行为的惩罚,而非对普通离线节点的惩罚,后者一般被称为 inactivity penalties。在一般的 PoS 公有链中,一般只有「双签」类行为会触发 slash,而在以太坊 2.0 中则特定为下列行为:

  • 在同一个 slot 中提议两个冲突的区块;
  • 在同一个 slot 中投给两个冲突的区块;
  • 投票与历史投票冲突。

行为 a, b 会造成区块链上不必要的分叉,行为 c 则是企图篡改历史。

slash 后验证者状态

slash 后,验证者将被强制进入验证者退出队列,然后退出。

验证者将立刻被扣除 有效余额 /128 作为罚金。如果有效余额是 32ETH,则为 0.25ETH。(需要注意,原设定惩罚量为 有效余额 /32 也即 1ETH,只是在信标链阶段暂时下调至原值的四分之一)

8192 个 epoch (约 36 天)后,验证者账户允许提款(在以太坊 2.0 支持交易功能后)。

允许提款前,被 slash 的节点将在每个 epoch 开始收到 3 倍于在线奖励的惩罚。

被 slash 的验证者不被允许再次回到验证者队列,只能重建新的验证者并重新质押。

多节点同时 slash 的情形

有效余额 /128 的惩罚和每个 epoch 的不在线惩罚之外,还会在被 slash 的 epoch 和允许取款的 epoch 中间一半的位置,也就是被 slash 后 4096 个 epoch 时再受到一次额外惩罚。

该惩罚比例与这期间所有被 slash 的验证人总余额与全网活跃验证人总余额的比例成正比。

以太坊 2.0

原设定正比系数为 3,当前信标链阶段暂时下调至原值的三分之一也即系数为 1。也就是说之后多节点 slash 的额外惩罚会变为当前的 3 倍。

因此,一个验证人节点 slash 后会受到三次惩罚:

  • 立刻被扣除有效余额 /128 (之后会调为有效余额 /32)
  • 每个 epoch 的开始受到惩罚(当前数据每天约 0.009ETH)
  • 多节点同时 slash 的额外惩罚

举报奖励

slash 机制不光对触发 slash 的节点有惩罚,对举报 slash 的「举报人」也会有奖励。正常来讲会奖励分为两部分,一是奖励提交 slash 的「举报人」,金额较大(目前约 0.1ETH),一是奖励打包 slash 区块的出块者,金额较小(目前约 0.025ETH)。目前来看大多数情况下两部分奖励都是直接转移给出块者。

触发 slash 的原因

除非有意为之,大部分过失 slash 发生的情形都是因为在两台服务器上运行了相同的验证人密钥,也即两台服务器运行同一个节点。「一用一备」是传统服务器冗余防宕机的通用做法,很可惜在有 slash 机制的 PoS 公链节点运行问题上,不能如此简单地处理。

InfStones CEO Jonathan Shi 曾在公开演讲中提到:在区块链领域里安全性不等于可靠性。在传统互联网中,安全性和可靠性并不矛盾,可以通过增加系统冗余的方式提高安全性和可靠性。但在区块链中,如果对出块节点做冗余性设计,则很有可能造成多个节点同时出块,导致双重签名;但若不对节点做冗余性设计,就会出现单点故障。如果这个节点掉线,则会导致整个系统服务宕机,影响系统的可靠性。

此外,客户端一般默认有 slash 保护历史记录,该记录通过记录所有历史的 attestation 和 proposal 记录来预防 slash。如果在运行过程中不慎删除该记录,也有可能导致 slash 问题。

质押并建立一个验证人节点,只是第一步也是最简单的一步。

免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与火星财经官方立场无关。鉴于中国尚未出台数字资产相关政策及法规,请中国大陆用户谨慎进行数字货币投资。
语音技术由科大讯飞提供

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK