来源:attestant.io
作者:Jim McDonald
理解验证者 (Validator) 的生命周期
以太坊 2.0 使用权益证明来确保其网络安全性, 被称为“验证者”的计算机进程将对即将被打包的下一个区块进行投票(下文称“见证”),同时他们也会提议让自己的区块被打包进去。但是,验证者不是仅处于“开”与“关”的状态:他们会在他们的生命周期里历遍一系列的交易。这篇文章将深度剖析验证者的生命周期,展示每个状态和状态转换之际发生的事情,什么触发了状态转换,以及每次状态转换所需要的时间(注解 1)。
时间上的一个符号
在以太坊 2.0 里,时间通常是以 epoch 为单位,一个 epoch 包括了 384 秒即大概是 6 分半。为了方便理解,以这种方式计量的时间被粗略地翻译成分钟,小时和天,并伴有可用的准确信息在相对应的脚注里。
生命周期概览
在深入分析细节之前,先来看看验证者的生命周期概览,以及用来描述其不同状态的术语。
图表 1:验证者生命周期概览
以下是状态标签:
已存款 - 存款协议已被以太坊(Ethereum)1.0 网络接受
Zcash官方:已接到Liquid的Zcash摘牌通知 理解监管要求并期待重新上市:7月23日,Zcash开发公司Electric Coin Company(ECC)官方发布推文称,已接到数字货币交易平台Liquid的通知,Zcash和其他28种代币将被摘牌。而这是Liquid申请新加坡经营许可证的程序的一部分。ECC认为,Liquid的决定是出于快速获得执照的审慎考虑。但同时ECC也称,Zcash完全兼容AML/CFT规定,包括适用于新加坡交易所的规定。目前不知道还有没有其他交易所采取类似的行动。但如果交易所希望更好地了解Zcash如何适应监管框架,以及交易所如何履行其反义务,Zcash将始终提供帮助。最后,ECC表示,期待在不久的将来Zcash在新加坡重新上市。据悉,Liquid成立于2014年,在日本、新加坡、越南和菲律宾设有办事处。[2020/7/23]
待处理 - 存款协议已被以太坊(Ethereum)2.0 网络接受
活跃中 - 验证者正在见证和提议区块
退出中 - 验证者正处在中止见证和提议区块的进程
罚没中 - 验证者被发现作弊,正处在中止见证和提议区块的进程中
已退出 - 验证者不再参与见证
一个元状态同样被定义了: 见证, 即所有验证者要参与进来见证和提议区块的状态(活跃中,退出中的,罚没中)。这个状态是重要的,因为当验证者处于这些状态时需要去访问以太坊(Ethereum)2.0 网络来与其职责保持同步以免被惩罚。
Peter Schiff:美联储正确理解比特币,除交易方式外并无新意:黄金支持者、比特币反对人士Peter Schiff发推称:“美联储对比特币的理解是正确的。与具有真实价值的黄金相比,它按法定货币分类。它认为比特币没什么新意,除了它的交易方式。随着人们对传统的加密货币及法币失去信心,储户将回归黄金。”此前报道,纽约联邦储备银行的经济学家Michael Lee和Antonie Martin称比特币“只是另一种类型的法币”。[2020/6/21]
图表 2:见证的元状态
定义了这些状态之后就是详细分析每一个状态以及它们之间的交易的时候了。
已存款的状态
接受存款协议就是验证者生命周期的开始。接受发生在以太坊 1.0 链上, 因为那就是验证者资金的来源。在这时以太坊 2.0 的链还不知晓这笔存款。
验证者会保持大概 7 个半小时在这个存款状态里(注解 2 ),以确保不会有一个链的重组影响到以太坊 1.0 交易并有可能使存款协议无效。这之后验证者就会去到待处理状态(注解 3 )。
分析 | 未来稳定币可以存在于后端,消费者可能并不完全理解:Stellar发展基金会伙伴关系主任Lisa Nestor近日表示,从消费者的角度来看,电子货币和稳定币已经成为可比较的产品,具有可用于交易的金融价值,并便于向其他实体付款。我们只是刚刚开始看到通证化货币和稳定币将为世界带来什么,未来稳定币可以存在于后端,消费者可能并不完全理解。但是他们的金融资产将在后端进行通证化,经营交易的支付处理机构和金融机构将在结算和处理汇款方面获得重大优势。(AMBCrypto)[2019/8/28]
图表 3 :从已存款状态转换到准备状态
待处理状态
一旦这笔存款在以太坊 1.0 的链上存在了足够长的时间后,它就会被添加到以太坊 2.0 的链上去。这标志着这个验证者已经正式被以太坊(Ethereum) 2.0 所认可。假如最少 32 个 ETH 已经被存进去的话(注解 4),验证者现在就会准备开始见证。
准备中的验证者会被放在一个队列里:以太坊(Ethereum) 2.0 一次只允许一小部分验证者开始或停止验证(注解 5),以保证验证者的集稳定。如果队列是空的则准备中的验证者会在大约 25 分钟后变成活跃状态(注解 6):如果这是一个非常繁忙的时段则有可能经过数天甚至数星期之后验证者才会被激活。但是一旦验证者从等候队列中出来,它就会变成活跃状态。
声音 | 赵余:“彩虹表攻击”可以简单理解为“字典攻击”:EOS LaoMao 的赵余在《宁话区块链》之全球EOS节点答疑的节目中称 “前两天发生的’彩虹表攻击’,是由于有些开发者通过设计的自定义助记词功能不完善。既没有过滤空字符串,也没有强制用户设置足够长的助记词。导致黑客可以通过简单的穷举,就能拿到部分账户的私钥。EOS 彩虹表攻击始末:EOS 官方库 eosjs-ecc(https://github.com/EOSIO/eosjs-ecc) 提供了一个自定义助记词生成密钥的接口。有些开发者使用这个接口,做了一个用户可以自定义助记词的密钥生成工具。但是由于产品设计问题,具体问题是下面两个:1. 没有过滤空字符串;2. 没有强制要求用户自己填写的助记词的长度必须达到足够安全的长度(比如 12 个独立的单词作为助记词,就可以认为安全性很高了)。导致部分用户,使用了简单的字母或单词作为助记词生成了自己的私钥。比如 a, b, c, hello, world 等等。这就导致黑客可以轻而易举地“穷举”常见的单词,字母,以及单词组合,进而拿到用户私钥,最终转移用户资产。这个“穷举”的方法,一般也被称为“彩虹表”攻击。对于使用自定义助记词功能生成私钥的用户,建议自查助记词长度,确保助记词长度不少于 12 个单词。”[2018/7/17]
图表 4 :从准备状态到活跃状态的过渡
活跃中状态
验证者理应在活跃状态下度过它们主要的生命周期。活跃的验证者会以 6 分钟一次的频率参与当时的见证,偶尔还会有提议区块链的工作(注解 7)。验证者会保持活跃状态直到以下其中一种事情发生:
中纪委机关报谈区块链发展:如何让监管理解并适度监管是挑战:今日东方财富网发文称,在今年的全国两会上,“区块链”成为一些代表委员热议的话题,近日中纪委机关报谈到区块链发展时,认为:如何让监管理解并适度监管是挑战。[2018/3/6]
验证者由于在需要其参与见证时没有履行职责被惩罚,导致资金下降到 16 个 ETH 以下。
用户通过发送一笔合适的交易来要求停止验证(在这个验证者变成活跃状态的头 9 天里无法发起这种交易)。
验证者被证明作弊。
在前两种情况里,验证者被添加到希望停止验证的验证者队列里(将要离开活跃状态的验证者和将要进入活跃状态的验证者一样,数量是被限制的,大概几分钟才有 1 个)
图表 5:从活跃状态到正在退出状态的过渡
在第三种情况里,验证者被加入到一个被发现在作弊的验证者的队列里以接受惩罚。
图表 6:从活跃状态到罚没中状态的过渡
请注意,通过发送包括了相同验证者信息的额外存款协定来向一个活跃验证者充值额外的 ETH 是有可能会发生的情况(永远要记住有效的余额不能超过 32 个 ETH)。这有助于避免验证者的资金降到 16 个 ETH 以下并且被添加到退出队列的情况。
退出中的状态
当网络现有的验证者表明了自己想要停止验证的意图之后,无论他是自愿的还是非自愿的,他都不会马上这样做而是会进入退出中的状态,和以往的活跃状态一样继续同样多地参与见证和提议。这保证了网络的稳定性,避免了一个验证者决定离开时就马上停止履行职责的情况。
与一个验证者想要从准备状态变成活跃状态时类似,要离开的验证者要进入一个一次只能允许少数通过的一个队列。又和加入时类似,在退出中状态里花费的时间取决于验证者在队列里的排队数量。
图表 7:从退出中到已退出状态的过渡
罚没中(Slashing)状态
一个被发现作弊的验证者会马上受到 1 个 ETH 的惩罚,从余额里扣除。然后他会进入到一个罚没中的队列里去,这个罚没中队列类似于一个退出中队列,但是它会被标记为需要额外的惩罚,我们会在接下来的“已退出”状态里讨论这个问题。
图表 8:从罚没中状态过渡到已退出状态
一个验证者在退出中的时候以及甚至在退出之后都有可能被罚没(但在他能取回自己的资金之前)。这避免了这种情况的发生:验证者作弊之后,通过常规的退出机制,在自己的作弊行为被发现之前就退出,从而逃脱了惩罚。这带来了一个略微复杂的状态模型。
图表 9:扩展罚没条件
已退出状态
当一个验证者去到已退出状态,他就已经正式完成了自己的使命。他不用再参与见证或提议区块,并且不再需要拥有关于以太坊 2.0 链的状态信息。
在退出之后,在资金能被转离验证者之前有一个大约 1 天(注解 8)的最后延迟。但是,如果这个验证者被标记为经过了罚没中状态,那么他会承受两个额外的惩罚。
第一,在已退出状态里能转移资金之前花费的时间会更长,是 36 天(注解 9)。第二,在这个 36 天周期的中途,他会承受进一步的扣款,扣款金额取决于这个验证者被发现作弊之前 18 天被罚没的验证者数量以及这个验证者被发现作弊之后的 18 天被罚没的验证者数量。下图展示了一个验证者的有效余额损失(注解 10)的总百分比
图表 10:在大致相同的时间里,被罚没的有效余额与网络被罚没验证者数量的百分比对比
一旦 36 天到期,被罚没的验证者们的剩余资金就可以被转移了。
正如生命周期图表里所能看到的一样,一个已退出的验证者无法再通过任何机制重新进入活跃状态。就是说,一旦一个验证者退出了,他的资金会在被转移之前保持休眠状态。注意,你无法在以太坊 2.0 的 0 阶段转移资金 - 所有已退出的验证者的资金会一直保留在验证者中,直至资金转移操作被引入。缺少转移操作的原因是缺乏可以转移 ETH 的用户账户。
扩展的验证者生命周期
结合以上所有信息考虑将带来一副更加全面的验证者生命周期图景
图表 11:扩展的验证者生命周期
了解不同状态之间的转换所要求的条件以及消耗的时间,对于确保以太坊 2.0 质押基础设施的成功运行至关重要。从一开始的存款到资金的提出,生命周期展现了每个状态里可能发生的事情并对验证者在任何时候的行为进行了明确的解释。
脚注
脚注 1:值得注意的是,以太坊 2.0 并没有设置一个明确的状态机制;也就是说,状态的名字是笔者提出来方便理解的。
脚注 2:1,024 个以太坊 1.0 的区块加 32 个以太坊 2.0 的 epoch。
脚注 3:这假设了存款协议需要完整的 32 个 ETH。要是存款协议少于这个阈值,验证者将停留在已存款状态中,直到有更多的存款协议把验证者的余额提高到至少 32 个 ETH。
脚注 4:若不,则另一笔存款可以被添加以增加这个验证者的余额到这个数量。
脚注 5:每 epoch 为 (活跃中+退出中+罚没中的验证者)/65536,最小值为 4。
脚注6:4 个epoch。
脚注7:每一个epoch内一个验证者只能见证一次,每一个slot内只有一个指定的验证者履行提议者的职责。
脚注8:256 个epoch
脚注9:8192 个epoch
脚注10:注意因为惩罚最高可达到有效余额的百分之百,一个验证者的最大惩罚永远不会超过 32 个 ETH,无论该名验证者的真实余额如何。
金色早8点
金色财经
Odaily星球日报
欧科云链
澎湃新闻
Arcane Labs
深潮TechFlow
MarsBit
BTCStudy
链得得
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。