引介 | 以太坊 2.0 :合理化与确定性_区块链:STI

译者注:提前说明以下信息,也许可以帮助读者更好地理解本文的内容以及我们在翻译用词上的选择:在以太坊2.0中,验证者的职责之一是提交attestation,可以理解为投票;但在一条attestation中,验证者投票的内容却有三项,而不是一项:一个是对信标链区块的投票,用于LMDGhost算法,选择出主链;一个是对epoch的投票,用于CasperFFG算法,敲定检查点;检查点以前的区块将不可逆转,而检查点也会成为新一轮LMDGhost算法的起点;还有一个是对分片链状态的投票,用于确定分片链的最新状态。虽然都属投票,但不同类型的投票指向的具体内容不同,为整个系统贡献的属性也不同。本文所讲的内容,即是与CasperFFG相关的投票,关键概念是justification和finalization。虽然文章后面也谈到了LMDGhost,但应当把LMDGhost和CasperFFG当成相互独立但可互补的两个东西。有鉴于此,虽然有译者将attestation翻译为“证明”,但我们决定对上述所有概念都采取与其字面意义更接近的翻译、不将任何一个概念翻译为“证明”或是“投票”,以免造成更大的混淆。

比特币期货未平仓合约达到120亿美元,创年度高点:金色财经报道,CoinGlass数据显示,比特币 (BTC) 期货未平仓合约的名义价值已达到 120 亿美元的年度高点,当月增长 7%。未平仓头寸的增加意味着新资金正在流入市场,但并不能说明交易者是在为价格上涨还是价格下跌做准备。

就比特币而言,考虑到资金利率或持有看涨多头/看跌空头头寸的成本在亚洲交易日早期的大部分时间都处于亏损状态后已经转为绿色,新资金似乎押注于价格上涨。正资金费率通常表示看涨趋势,因为多头头寸补偿空头头寸;相反,负资金利率表明看跌情绪,因为空头头寸从持有多头头寸的人那里得到付款。[2023/3/20 13:15:06]

如果你对以太坊2.0中辩护与确定化等术语感到一头雾水,你绝对不是唯一搞不清楚的人;让我们通俗地解释这两个词究竟是什么意思。我们先聊聊,确定性到底指的是什么?你一定已经注意到,不论是使用密码学货币平台或dApp,都要等到数个区块产生后交易才能被确认。这是个相对可靠的办法,让你确定交易的状态且交易不会被逆转,也就是所谓的确定性。以太坊2.0提供了一种确定性保障——将上链交易变成一个记录在区块链上的客观事实,而不仅仅是“该交易可能会保留在最长链上”而已。这很重要,如果区块能够及时确认,那么链上的交互行为就能进行得更快更完备。我们再搞清楚一点,先从一些定义开始。

Solana Labs 联创:公司在 FTX 上没有任何资产:金色财经报道,Solana Labs 联创 toly 表示:“美国公司 Solana Labs 在 FTX 上没有任何资产,所以我们仍然有很长的现金生命周期(runway),幸运的是仍然是一个小团队。”[2022/11/10 12:40:34]

注意:后面的内容涉及比较多底层技术,不过仍会像2.0系列的其他文章一样简单易懂。如果发现任何需要添加的内容,请联系我。

在谈论细节之前,我们先理清楚几个定义:

LMDGHOST:最新消息驱动型GHOST算法,以太坊2.0的分叉选择规则。

CasperFFG:CasperFFG协议,以太坊2.0用于提供确定性保障的协议。

分叉选择规则:一种机制,给定整条区块链,可以输出从创世块到区块S的区块链路径,并让S所在的链可以被认为是权威链。

epoch:在以太坊2.0中,指的是时长6.4分钟的时间单位,每个epoch包含64个slot。

派盾:New Free Dao攻击者将1000枚BNB转移至Tornado Cash:9月16日消息,据派盾预警监测,New Free Dao项目攻击者地址已将1000枚BNB(约27万美元)转移到TornadoCash。

此前9月8日消息,New Free Dao项目遭闪电贷攻击,攻击者获利4500枚BNB(约合125万美元)。[2022/9/16 7:00:41]

不一定每个时隙都能产生区块,而epoch中最后一个slot称为边界时隙,或称为检查点。

所谓委员会,就是随机选出的一个验证者集合;每个委员会都会被分配到一个具体的时隙中,委员会中第一位验证者负责出块,其他验证者则来见证该区块。

有了这些概念,接下来让我们开始讨论辩护与确定化。

CasperFFG

Casper是一种用于合理化及敲定时间段的方法。它是一种通用的“小工具”,能够被添加到任何区块链中;不过在PoS区块链上才能发挥Casper的最大用处。确定性是一种概念,即两个相互冲突的检查点不可能都被确定下来;亦可称作经济确定性,因为一旦两个相互冲突的检查点都被敲定,则系统中至少有1/3的验证者会被罚没押金。你可能会有疑问,为什么1/3的验证者会被罚没押金?一旦出现两个相互冲突的检查点,意味这两个检查点各自收到2/3以上的验证者投票;因为最终只有一个检查点能成立,所以至少会有1/3的人重复投票。这1/3重复投票的验证者会被认为是恶意参与者而被罚没押金。为了避免这样的无效操作,验证者最好的办法就是在每一轮投票前确认信标链的状态,然后给合适的检查点投票。那么如何理解“检查点确定成立”中的“确定”呢?我们得先聊聊合理化。合理化指的是验证者对检查点进行投票、并决议出哪个检查点要置于当前信标链的最前端的操作。只要超过2/3的验证者对一对epoch达成共识,我们会说这两个epoch被合理化了;不论这两个epoch当中有没有被跳过的epoch,只要同一列中的两个epoch被合理化了,则我们称前一个epoch被敲定了。

注意:为了方便理解,上述是大幅简化过后的定义;还有其他影响因素,但不在本文讨论范围中。所以说,一个“已确定”的epoch肯定经过合理化;反之,一个“合理化”的epoch则不一定确定了,还存在反转的可能。一旦epoch达到“最终”状态,就难以被更改。提醒一下,当我们说验证者在进行证明/确定时,并不是指验证者对epoch本身投票——这听起来好像某些人在用投票来决定当时是什么时间一样。验证者其实是对这些epoch中的内容——它们各自最后时隙的根状态,进行投票。因此验证者通过对epoch投票进行证明/确定,来选择区块链的最新有效状态。复联4的终局之战,奇异博士看到了平行世界中的1400万种可能。在这些平行世界中,时间呈线性进行,每一天、每一小时都在所有世界中同时发生;但在所有这些世界中,只会产生一个可取的结果——其它结果都是分叉。

LMDGHOST

然后我们要谈谈分叉选择规则。GHOST算法早期在PoW和其他区块链上非常受欢迎;GHOST算法依循“最重的”子树,也就是最长链。以比特币为例,最重分支指的是在其区块中投入最多算力的的链,这条链也就是最长链。虽然说最长链很容易看出来,但这条最长链只在概率上确定,在任何时候都有可能在另一分叉上长出更长的链。在最新消息驱动GHOST方法中,算法运行是基于“消息”、也就是attestation的。总的来说,拥有最多投票的分叉链就会被认为是“权威链”。

上图展示了最新消息驱动GHOST方法的细节;笑脸符号代表见证信息,每个区块中有个数字,代表见证的数量总和,也就是该区块的权重。在上图中,虽然最上面那条链是最长链,但绿色那条才是“权威链”。

Gasper

在以太坊2.0中,Casper和GHOST合称为Gasper,是以太坊2.0的核心共识协议。让我们来看看JustinDrake在EthCC大会上对以太坊2.0做的简报。

上图的两个方框中,表示在分叉选择时的两种非法条件。左边方框表明,不允许在同个时间里,为两个不同的根状态投票。右边方框表明,如果一个时段直接来自一些已敲定的时段,则不允许绕过这些时段来给新时段投票。换句话来说,不允许跳过当前的候选epoch而直接上票给将来的epoch。图中下方展示两种“确定”的分叉链。第一个和第二个红圈所代表的epoch已经确定了,因为它们后面跟着已确定的第三epoch和第四epoch。然而第三、第四epoch存在于两个平行分叉中,究竟那一条分叉才是“权威链”呢?

根据第一条规则:不允许进行重复投票。简报中上面那条分叉似乎是合法的,因为其上已经有了一个确定的epoch,但下面的分叉中也有被确定的epoch,只是确定得稍稍晚了点!

这就总结出,下方分叉是无效的,因为如果按照后来被确定的epoch来形成一条链,就意味着前面被确定、但由于分叉而被跳过的epoch,被“环绕”了起来;换句话说,一个新投出来的epoch接上了来自另一个分叉的epoch。这种情形是不合法的——因为被确定的检查点必须按照时间顺序进行。如果发生了这种情况,很多的验证者会因为把票投给了一条“非法链”上的epoch,而受到严重的惩罚。根据“重复投票”和“环绕投票”规则可以辨识出哪些验证者在作恶,而作恶代价将是非常高昂的。以上就是全部内容!如果你是验证者,请确保自己在一个slot中只投了一次票,并确保你的投票结果与其他人的投票结果一致,以避免被罚没。希望本文帮你弄清楚辩护与确定化的定义,如果还有不明白的地方,请通过推特告诉我。最后,感谢Dustin、Mamy、Justin和Danny的协助!

原文链接:https://our.status.im/two-point-oh-justification-and-finalization/

作者:Bruno?kvorc

翻译&校对:IANLIU&阿剑本文由原作者授权EthFans翻译及再出版。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-2:750ms