编者按:本文来自以太坊爱好者,作者:AdityaAsgaonkar,翻译&校对:IANLIU&阿剑,Odaily星球日报经授权转载。感谢CarlBeekhuizen的审阅。区块链需要向用户提供两种保障——1)区块的确定性和2).区块链的活性——区块链的底层共识机制就负责提供这两种保障。以太坊2.0中,共识过程只在信标链上发生,并使用CasperFriendlyFinalityGadget(FFG)机制来帮助达成共识。本篇文章旨在描述基本的FFG机制,并证明它能提供上述两种保障。CasperFFG是一种“确定性工具”,这意味着CasperFFG规范了区块的确定性规则,并能在事件发生之后检查区块的确定性。FFG机制与链的增长脱钩,可以作为独立组件附加在任意可用的区块链协议上来提供区块确定性。因为CasperFFG机制没有能够保证区块链活性的策略,因此从这个角度来看,它并不算是完全成熟的共识协议。让我们先从CasperFFG的结构开始,然后深入CasperFFG机制的规则,最终了解它提供的安全性&活性保证。投票
慢雾:利用者通过执行恶意提案控制了Tornado.Cash的治理:金色财经报道,SlowMist发布Tornado.Cash治理漏洞解析。 5月20日,Tornado.Cash遭受了治理攻击,利用者通过执行恶意提案控制了Tornado.Cash的治理。5月13日,利用者发起了20提案,并在提案中说明20提案是对16提案的补充,具有相同的执行逻辑。但实际上,提案合约多了一个自毁逻辑,其创建者是通过create2创建的,具有自毁功能,所以在与提案合约自毁后,利用者仍可以部署不同的以与以前相同的方式将字节码发送到相同的地址。不幸的是,社区没有看到拟议合约中的犯规行为,许多用户投票支持该提案。
在5月18日,利用者通过创建具有多个交易的新地址,反复将0代币锁定在治理中。利用提案合约可以销毁并重新部署新逻辑的特性,利用者在5月20日7:18(UTC)销毁了提案执行合约,并在同一地址部署了一个恶意合约,其逻辑是修改用户在治理中锁定的代币数量。
攻击者修改完提案合约后,于5月20日7:25(UTC)执行恶意提案合约。该提案的执行是通过 Delegatecall 执行的,因此,该提案的执行导致治理合约中由开发者控制的地址的代币锁定量被修改为 10,000。提案执行完成后,攻击者从治理库中解锁了TORN代币。金库中的TORN代币储备已经耗尽,同时利用者控制了治理。[2023/5/21 15:17:00]
EOA账户地址 (0xf5bf...) 已将资金转至Tornado Cash:金色财经消息,据CertiK监测,EOA账户地址 (0xf5bf...) 已将资金转至Tornado Cash。该EOA钱包与LianGo Protocol恶意利用事件有关。目前共有约5300枚BNB(约160万美元)被转入Tornado Cash。[2023/2/19 12:16:00]
验证者通过提交见证消息”)来对链上的区块投票。投票的格式为,包含两部分信息:来源区块目标区块——目标区块必须是S的派生区块具体来说,投票所包含的信息包括验证者的数字签名、用于确认区块的区块哈希和块高。合理化与确定性达成
合理化与确定性达成是CasperFFG共识过程的两个阶段,可以和传统拜占庭容错共识的“prepare”和“commit”阶段做横向对比。
鱼池VCASH收益支付已恢复:据官方公告,F2Pool鱼池已完成VCASH支付系统升级并已于2月24日恢复VCASH支付。[2021/2/24 17:47:38]
-因具备2/3以上的验证者投票,区块A&区块B得到合理化-合理化:只要某区块B满足下列条件,则该块就被合理化:区块B是创世区块,或超过2/3以上的验证者将选票投给(A,B),其中B是A的后代区块,且A在此前已被合理化。
确定性:只要区块B满足以下条件,即获得确定性:区块B是创世区块,或B已满足合理性,且有超过2/3的验证者选票投给(B,C),其中C是B的直系子块。注意:关于确定性的定义,在以太坊2.0中CasperFFG有更一般化的定义,详见此文。使用上文这种表述是为了保证通俗易懂。CasperFFG规则
动态 | 以太坊开发公司CasperLabs宣布推出以太坊PoS协议“ Highway”:金色财经报道,以太坊开发公司CasperLabs宣布推出“ Highway”,据称这是第一个实现可被证明是安全可靠的Casper权益证明机制。(cointelegraph)[2019/11/3]
CasperFFG只有两条简单的限制规则,应用这两个规则就能防止验证者同时给(S1,T1)和(S2,T2)投票:区块高度(T1)=区块高度(T2),或区块高度(S1)<区块高度(S2)<区块高度(T2)<区块高度(T1)
-CasperFFG规则违反情况一:区块高度(T1)=区块高度(T2)-
动态 | Zcash将推迟至5月20日发布2.0.5版本:据Zcash官方消息,Zcash已推迟发布2.0.5版本的日期,目前计划于5月20日发布。据coinmarketcap数据,Zcash现全球均价为70.92美元,24小时跌幅为6.4%。[2019/5/18]
-CasperFFG规则违反情况二:区块高度(S1)<区块高度(S2)<区块高度(T2)<区块高度(T1)-安全性&活性
CasperFFG的设计目的,是提供共识安全性和针对区块敲定过程的活性。讲得具体点,CasperFFG提供以下保证:可追责的安全性:如果两个相互冲突的区块都达成了确定性,则至少有1/3的验证者违反CasperFFG规则,而CasperFFG可以识别出这些验证者。近似活性:无论协议运行处于什么状态,验证者都能继续履行职责、能在不违反CasperFFG规则的前提下敲定新区块。尽管和传统的BFT文献相比,这里提到的安全性和活性定义不是那么规范,但这种诠释是非常适合用于分析区块链的确定性工具的!事实上,熟悉BFT文献的人可能会觉得“近似活性”的概念简直异想天开;不过因为CasperFFG只是“确定性工具”,整个机制只要确保诚实的验证者能在不违反FFG规则的情况下推动推进协议,而不会被卡在任何一个环节,即可。至于可追责安全性的定义,我们的重点是可追责性,然后这部分信息能够被权益证明机制沿用、用于在区块链上处罚恶意验证者。最终目的还是为权益证明机制提供信息,使后者的激励机制能生效,促使共识过程形成协议一开始设想的均衡状态。安全性证明
假设两个相互冲突的区块A和B都被敲定了,那么可能有两种情况:区块高度(A)=区块高度(B)因为A和B在得到确定性之前先要获得合理性,则它们各自都要收到至少2/3的验证者投票,这意味着一旦它俩都达到要求,则至少有1/3的验证者违反了CasperFFG规则。区块高度(A)<区块高度(B)为了让A达成确定性,需要超过2/3以上的验证者将选票投给(A,C),其中C是A的子块。为了让B达成合理性,则在B之前必须存在连续升序的区块,且每个区块都已经被它的后一区块合理化。假设区块B_m是这串连续区块中的首块,区块高度(A)<区块高度(B_m)。注意,这串连续的区块不存在与区块A或C相同的块高,不然就变成了上一种情形。现在假设我们将票投给(B_n,B_m)(其中n=m-1),使得B_m获得合理性。则因为区块高度(B_m)、区块高度(B_m)皆不等于区块高度(A)/区块高度(C),因此情况一定是区块高度(B_n)<区块高度(A)<区块高度(C)<区块高度(B_m)。这样一来我们就能说——至少有2/3的验证者违反了CasperFFG规则二。
-安全性证明,情况:区块高度(A)<区块高度(B)-而且只要确认票证集合、找出冲突选票、检查验证者签名,就能轻易揪出违反CasperFFG规则的验证者。活性证明
假设P_0是最新的合理区块,Q是曾得到过验证者投票的最新区块。接下来,任何属于P_0子块的区块P_1都能在不违反FFG规则的情况下收到2/3验证者的的投票(P_0,P_1),进而取得合理性。P_1也能在不违反FFG规则的情况下收到2/3验证者的的投票(P_1,P_2),进而获得确定性,其中P_2是P_1的子块。因此,至少有一组验证者能够敲定新块。进阶阅读材料CasperFFG初版论文——CaspertheFriendlyFinalityGadget对Eth2.0应用CasperFFG方法的分析——CombiningGHOSTandCasper
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。