原文标题:《以太坊?2.0slash机制详解》
撰文:InfStones
slash意为大幅削减,是PoS共识公链常用的对作恶验证人的惩罚机制。以太坊2.0的slash规则可能是目前所有PoS公链中最复杂的一个。通过研读以太坊2.0设计规范与源代码,对其slash规则做如下解读。
slash的种类
slash一般指对严重作恶行为的惩罚,而非对普通离线节点的惩罚,后者一般被称为inactivitypenalties。在一般的PoS公有链中,一般只有「双签」类行为会触发slash,而在以太坊2.0中则特定为下列行为:
分析 | 币安中签解读:最新中签率显示持仓逐步分散 机构投资者或有一定撤离:据TokenGazer观察BNB最新的中签信息,TokenGazer猜测机构投资者可能已经有一定程度撤离。
本次elrond中签率仅为11.07%,大幅度低于one的30%和matic的58%;
总签数10833,共计锁定978.5万BNB,约占BNB总体供应的10%,远远高于之前锁定2%左右的量,说明BNB的持仓已经有了一定程度的分散。
而币安自6月中宣布在9月隔离美国用户后出现较大幅度的跌幅,时间点上和本次Launchpad抽签时间段重合,可能说明机构投资者对监管有所顾虑已经出现一定程度撤离。[2019/7/2]
在同一个slot中提议两个冲突的区块;在同一个slot中投给两个冲突的区块;投票与历史投票冲突。行为a,b会造成区块链上不必要的分叉,行为c则是企图篡改历史。
声音 | 李少平解读最高法“五五改革纲要”: 要推动区块链存证等科技创新手段深度运用:据中国之声《央广新闻》消息,《最高人民法院关于深化人民法院司法体制综合配套改革的意见》,即《人民法院第五个五年改革纲要(2019—2023)》今日发布。最高人民法院副院长李少平在对该文件进行解读时表示,“五五改革纲要”在前期工作基础上,提出要构建中国特色社会主义现代化智慧法院应用体系,不断破解改革难题、提升司法效能。其中,要推动语音识别、图文识别、语义识别、智能辅助办案、区块链存证、常见纠纷网上数据一体化处理等科技创新手段深度运用。[2019/2/27]
slash后验证者状态
尹振涛解读数字货币政策:对数字货币的监管还可以更严厉:中国社会科学院金融研究所法与金融研究室副主任尹振涛认为:对数字货币的定位不明确,各国对数字货币的监管都在同一起跑线上;各国的监管差异体现了背后的经济博弈;从效果上看,当前国内监管做的还不够,在某些领域,我们还可以更严一点;禁止ICO不应是阻碍区块链发展的借口;数字货币交易被禁止,风险仍留在国内;未来各国的监管会渐趋一致。[2018/3/22]
slash后,验证者将被强制进入验证者退出队列,然后退出。
验证者将立刻被扣除有效余额/128作为罚金。如果有效余额是32ETH,则为0.25ETH。
8192个epoch后,验证者账户允许提款。
允许提款前,被slash的节点将在每个epoch开始收到3倍于在线奖励的惩罚。
被slash的验证者不被允许再次回到验证者队列,只能重建新的验证者并重新质押。
多节点同时slash的情形
有效余额/128的惩罚和每个epoch的不在线惩罚之外,还会在被slash的epoch和允许取款的epoch中间一半的位置,也就是被slash后4096个epoch时再受到一次额外惩罚。
该惩罚比例与这期间所有被slash的验证人总余额与全网活跃验证人总余额的比例成正比。
原设定正比系数为3,当前信标链阶段暂时下调至原值的三分之一也即系数为1。也就是说之后多节点slash的额外惩罚会变为当前的3倍。
因此,一个验证人节点slash后会受到三次惩罚:
立刻被扣除有效余额/128每个epoch的开始受到惩罚多节点同时slash的额外惩罚举报奖励
slash机制不光对触发slash的节点有惩罚,对举报slash的「举报人」也会有奖励。正常来讲会奖励分为两部分,一是奖励提交slash的「举报人」,金额较大,一是奖励打包slash区块的出块者,金额较小。目前来看大多数情况下两部分奖励都是直接转移给出块者。
触发slash的原因
除非有意为之,大部分过失slash发生的情形都是因为在两台服务器上运行了相同的验证人密钥,也即两台服务器运行同一个节点。「一用一备」是传统服务器冗余防宕机的通用做法,很可惜在有slash机制的PoS公链节点运行问题上,不能如此简单地处理。
InfStonesCEOJonathanShi曾在公开演讲中提到:在区块链领域里安全性不等于可靠性。在传统互联网中,安全性和可靠性并不矛盾,可以通过增加系统冗余的方式提高安全性和可靠性。但在区块链中,如果对出块节点做冗余性设计,则很有可能造成多个节点同时出块,导致双重签名;但若不对节点做冗余性设计,就会出现单点故障。如果这个节点掉线,则会导致整个系统服务宕机,影响系统的可靠性。
此外,客户端一般默认有slash保护历史记录,该记录通过记录所有历史的attestation和proposal记录来预防slash。如果在运行过程中不慎删除该记录,也有可能导致slash问题。
质押并建立一个验证人节点,只是第一步也是最简单的一步。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。