本节主要讨论以太坊采用PoS共识机制后可能发生的共识级攻击。SmallstakerattackShort-rangereorganization这是对信标链的攻击,攻击者向其他验证者隐藏部分信息,然后在特定时刻释放它,以便通过预运行的大交易MEV进行双花或提取.这种攻击也可以扩展到多个区块,但成功的概率会随着重组长度的增加而降低。这种攻击本质上是块重组,分为重组前和重组后两种。重组前意味着攻击者从主链上替换一个尚未创建的区块,而重组后意味着攻击者从主链上删除一个已验证的区块。在PoS以太坊的情况下,攻击者必须拥有超过2/3的区块才能执行事后重组。同时,有研究表明,即使攻击者拥有65%的份额,攻击成功的几率也不到0.05%。短程重组攻击是通过预重组实现的,攻击者不需要控制大部分质押的ETH即可实现,成功的概率会随着控制质押比例的增加而增加。弹跳和Balance-Balance攻击是指攻击者采用的特定策略,他们将诚实的验证者集分成对区块有不同看法的离散组。具体来说,攻击者等待机会提出一个区块,当机会出现时,他们在同一个时隙中提出两个区块。他们将一个区块发送给一半的诚实验证者,将另一个区块发送给另一半。这种冲突将被分叉选择算法检测到,区块支持者将被没收并被逐出网络。然而,上面提到的两个区块仍然存在,并且将有大约一半的验证者集证明每个分叉。攻击者以失去验证者为代价成功地将区块链一分为二。同时,其余的恶意验证者保留他们的证据。然后,在分叉选择算法的执行过程中,有选择地向足够多的验证者发布支持一个或另一个分叉的证明,这使他们能够产生具有最多累积证明的分叉。这种情况可以无限期地持续下去,攻击者可以在两个分叉上保持验证者的均匀分布。由于两个分叉都不能吸引2/3的绝对多数,因此信标链不会最终确定。在这种类型的攻击中,攻击验证者控制的总权益百分比越大,在任何给定时刻攻击的可能性就越大,因为他们更有可能选择验证者在每个时隙中提出一个块。即使只有1%,平均每100个epoch就会有一次发起平衡攻击的机会,不需要长时间等待。类似的攻击,反弹攻击,只占其中的一小部分。在这种情况下,攻击验证者再次拒绝投票。这一次,他们没有投票来维持两个分叉之间的平均分配,而是在适当的时候使用他们的选票来证明分叉A和分叉B之间的交替检查点是合理的。在这两个分叉之间翻转证明会阻止可以在任何一条链上完成的合理的源和目标检查点对,从而终止最终性。雪崩攻击另一类攻击称为雪崩攻击,在2022年3月的一篇论文中有所描述。作者认为proposerenhancements无法防御雪崩攻击的一些变种。然而,作者也只演示了对以太坊分叉选择算法的高度理想化版本的攻击(他们使用没有LMD的GHOST)。其中,GHOST分叉选择算法将第一个分叉块和所有对应的后代块获得的票数进行累加,选择得票数最高的分叉为主链。为了发起雪崩攻击,攻击者需要控制多个连续的区块提议者。在每个块提议槽中,攻击者保留他们的块,并收集它们,直到诚实链达到与保留块相等的子树权重。然后,保留的块被释放,使它们被最大程度地混淆。这意味着,例如,对于6个保留块,第一个诚实块n与对手块n竞争创建一个分叉,然后所有剩余的5个对手块在n+1块竞争中与诚实块竞争。这意味着建立在对手区块n和n+1上的分叉现在吸引了诚实的验证,因为区块是在真正诚实的链的权重等于对手链的权重的那一刻被释放的。现在可以对尚未构建在其之上的保留块重复此操作,从而允许攻击者阻止诚实的验证者跟随诚实的链头,直到他们的混淆块被耗尽。如果攻击者在攻击进行时有更多机会提议区块,他们可以利用它们来扩大攻击规模,这样参与攻击的验证者越多,持续的时间就越长,并且可以将更多诚实的区块从区块中移除规范链。资料来源:对权益证明的两次攻击GHOST/以太坊LMD-ghost分叉选择算法的LMD部分可以减轻雪崩攻击。LMD代表“LastMessageDriven”,它指的是每个验证器保存的一个表,其中包含从其他验证器收到的最新消息。仅当新消息来自表中已存在于特定验证器的槽之后的槽时,才会更新此字段。实际上,这意味着在每个时隙中,收到的第一个消息就是它接受的消息,任何其他消息都是不明确的消息,将被忽略。换句话说,共识客户端不计算歧义——它们使用来自每个验证器的第一个到达消息,歧义被丢弃,防止雪崩攻击。远程攻击远程攻击也是权益证明(PoS)共识机制下的一种特定类型的攻击,包括两种主要场景:第一种场景,攻击者作为参与原始区块的验证者,维护一个单独的原始区块链在它旁边分叉并最终说服诚实的验证者集在很久以后的某个适当时间切换到它。然而,这种攻击在信标链上是不可能的,因为“finalitygadget”确保所有验证者定期就诚实链(“checkpoint”)的状态达成一致,并且无法重组检查点之后的块。在第二种情况下,当一个新节点加入网络时,它从最近的节点(称为弱主观性检查点)获取信息以构建区块链作为伪创世块。这会在新节点开始自行验证区块之前为它创建一个“信任网关”。然而,从客户端(如区块浏览器)收集建立检查点所需的可信区块信息并不能增加客户端本身的可信度,因此主观性是“弱”的。因为检查点的定义由网络上的所有节点共享,所以不诚实的检查点是共识失败状态。验证者控制大多数情况33%33%的质押份额是攻击者的基准,因为如果超过这个数量,他们有能力阻止信标链的完成,而无需对其他验证者的行为进行细粒度控制。他们可以简单地一起消失。这是因为要完成信标链,检查点必须由2/3的抵押以太币进行验证。如果有1/3或更多的质押以太恶意验证或不验证,那么2/3的绝对多数是不可能存在的。对此的防御是信标链的不活动泄漏。这是信标链未能完成四个纪元后触发的紧急安全措施。不活动泄漏识别那些尚未验证或已针对大多数验证的验证器。这些非验证验证者拥有的质押以太币会逐渐耗尽,直到最终他们加起来不到总数的1/3,这样这条链就可以再次敲定。50%和51%理论上,如果恶意验证者控制了50%的抵押ETH,他可以将以太坊区块链分成两个大小相等的分叉。类似于前面描述的平衡攻击,攻击者可以维护两个分叉并通过为同一个插槽提议两个块然后简单地使用他们控制的50%来投票反对诚实验证器集来防止最终性。四个时期后,不活动泄漏机制将在两个分叉上激活,因为每个分叉将看到其一半的验证器验证失败。每个分叉从另一半的验证者集合中抽取股份,最终形成两条链,其中2/3的绝对多数由不同的验证者代表。此时,唯一的选择就是依靠社区恢复。相反,当攻击者控制超过51%时,他们就获得了对分叉选择算法的控制权。在这种情况下,攻击者将能够通过多数票进行验证,从而给予他们足够的控制权来执行短期重组,而不会欺骗诚实的客户。51%的份额不允许攻击者改变历史,但他们有能力通过对分叉和/或重组不方便的不合理区块应用他们的多数票来影响未来。诚实的验证者会效仿,因为他们的分叉选择算法也会将攻击者青睐的链视为最重的链,因此链可以最终确定。这允许攻击者审查某些交易,执行短程重组,并通过有利地重新排序块来提取最大MEV。针对这种情况的防御措施是攻击者将多数股权置于风险之中,因为社会层可能会介入并拿走诚实的少数股权,从而大大降低攻击者的股权。拥有66%或更多抵押以太币的攻击者中有66%可以完成他们喜欢的链,而且他们不必强迫任何诚实的验证者。攻击者可以简单地投票给他们最喜欢的分叉,然后完成它,他们可以投票给不诚实的绝大多数人。作为绝对多数股权,攻击者将始终控制最终区块的内容,有权花费、回滚和再次花费、审查某些交易并随意重组链。攻击者实际上是在购买执行事后重组和最终恢复(即改变过去和控制未来)的能力。这里唯一真正的防御是退回到社会层来协调替代分叉的采用。总的来说,尽管有这些潜在的攻击媒介,信标链的风险很低,甚至低于它们的工作量证明等价物。这是因为攻击者需要冒着抵押ETH的巨大成本来压倒拥有投票权的诚实验证者。内置激励层可防止大多数恶意行为,尤其是对于低风险攻击者。更微妙的弹跳和平衡攻击也不太可能成功,因为现实世界的网络条件使得难以对特定验证器子集的消息传递进行细粒度控制,并且客户团队已通过简单的补丁快速修复已知的弹跳,平衡和雪崩攻击问题。然而,33%、51%或66%的攻击可能需要社区投票才能解决,因此有效的社区治理对攻击者具有很强的抑制作用。对于攻击者而言,技术上成功的攻击仍然存在被社区阻止的风险,这降低了攻击者获得足够利润以起到有效威慑作用的可能性。这就是为什么维持一个具有一致价值观的有效社区对投资如此重要。ETHPoW安全矿工自以太坊诞生以来就发挥了重要作用,但以太坊的合并将打破这种局面。Bitpro估计GPU矿工需要关闭大约95%的GPU才能在合并后的加密生态系统中保持盈利。但由于合并后不太可能立即关闭这么多GPU,所以矿工们会在合并后尝试PoW分叉。如果一些交易所也支持分叉,那么分叉的寿命将比预期的更长。目前已有多家机构支持ETHPoW硬分叉,包括Gate、OKX、f2pool、Matcha、BitMEX、孙宇晨等。2022年8月15日,EthereumPow在Twitter上宣布,ETHWCore的初始版本已经在GitHub上发布。主要功能如下:1.关闭难度炸弹;2、EIP-1559变更,基础手续费由矿工与社区共同管理的多重签名钱包变更;3、调整ETHW初始挖矿难度。2022年8月26日,以太坊PoW在推特上发布了ETHW的第一个测试网“冰山一角”。随之而来的是区块链浏览器和RPC服务器。他们欢迎社区中所有潜在的合作伙伴(交易所、矿池、钱包提供商、桥梁、建设者等)加入构建一个真正的POW驱动的以太坊生态系统。那么,以太坊合并后的硬分叉ETHPoW可能会面临哪些安全问题呢?我们将在下面详细分析。算法攻击当系统中的恶意单个实体或组织能够控制全网算法的大部分(即超过51%)时,51%算法攻击是对区块链网络的潜在攻击。由于PoW算法中的共识是由算法决定的,攻击者可以利用算法篡改账本,从而对系统进行恶意攻击。以太坊合并后,无法再通过挖矿获得收益的矿工将关闭矿机,这可能会导致基于POW的ETH分叉失去部分算力。比如目前最大的矿池Ethermine,已经宣布停止支持ETHPoW挖矿。一旦支持ETHPoW的算力下降,攻击者发起算法攻击的成本就会降低。那么攻击者可以租用矿池的大量算力,使其算力达到51%以上。这时候,它可以利用算力优势更快地出块。当生成的区块成为系统中的最长链时,可以回滚区块交易,实现数据篡改,会造成很大的危害,例如:双花、任意地址控制交易等。双花双花攻击是指攻击者试图重复使用其帐户拥有的相同数字代币。举个例子:假设A在区块高度1000处拥有51%的算力,A转1个ETH给B,转账交易由矿工打包。交易确认后,A依靠51%的算力优势,在999区块高度后重新生成一条“更长的链”,在1000区块高度重新转账ETH给C,并打包交易记录,即,该链包含A向C转账ETH的记录。根据“最长链共识”,包含向C转账记录的链成为主链,A向B转账的1个ETH为“无效支付”。控制任何地址的交易使用51%的计算能力。攻击者可以在任意地址打包或解包交易,阻止区块确认任意交易,甚至阻止部分矿工获得有效的记账权,从而达到控制任意地址交易的目的。但是拥有51%的算力并不是万能的。比如不能修改别人的交易记录,不能阻止交易的发出,不能凭空生成ETH。重放攻击传统意义上的重放攻击是指攻击者发送目标主机已经接收到的数据包,以欺骗系统。在区块链领域,重放攻击通常发生在区块链硬分叉的情况下,这意味着“一条链上的交易通常在另一条链上是合法的”。2016年7月20日,以太坊在192万区块硬分叉,产生了两条链,分别是ETH链和ETH经典链,对应的代币是ETH和ETC。由于两条链上的地址和私钥相同,交易格式完全相同,因此一条链上的交易在另一条链上也是完全合法的。如果在另一条链上重播,在一条链上发起的交易也可能得到确认。很多人在没有事先做好规划的情况下,就利用了这个漏洞,不断在交易所充值提现,赚取额外的ETC。因此,“重放攻击”在区块链世界被重新定义。当前以太坊合并可能出现的硬分叉ETHPoW,理论上可能存在上述问题。应该如何防止重放攻击?其实以升级为目的的分叉很容易实现,因为硬分叉升级会使用不同的客户端版本,而交易的前缀通常包含发起交易的客户端的版本信息。分叉后,矿工通常会拒绝某个版本之前的交易,以避免打包来自老客户的“非法交易”(不是恶意交易,而是其他节点无法识别的低版本号),这使得恶意攻击者难以窃取资金通过硬分叉升级期间的重放攻击。2022年8月23日,EthereumPoW正式发布了第二次代码更新以执行EIP-155。此次更新后,所有交易都必须使用链ID进行签名。这将保护ETHW用户免受来自ETHPoS和其他分叉代币的重放攻击。下面简单介绍一下EIP-155:该提案被称为“简单重放攻击保护”。如果block.number>=FORK_BLKNUM和CHAIN_ID可用,那么在计算签名交易的hash值时,不要只对前6个rlp编码的元素(nonce、gasprice、startgas、to、value、data)进行hash,而是对这9个元素进行hash应该对rlp编码的元素(nonce、gasprice、startgas、to、value、data、chainid、0、0)进行哈希处理。此时,签名中v的值不再是recid,而是recid+chainID*2+35。所以,简而言之,签署交易时需要Signer和PrivateKey。需要Singer是因为EIP-155修复重放攻击漏洞后,需要保持原区块链签名方式不变,但需要提供新版本的签名方式。所以新旧签名方式都是通过一个接口实现的,根据区块高度创建不同的Signer。EIP-155中实现的新哈希算法的主要目的是获取交易用于签名的哈希值TxSignHash。与旧方法相比,哈希计算混合了链ID和两个空值。请注意,此哈希值TxSignHash并不等同于EIP-155中的交易哈希值。这样,一个签名的交易可能只属于一个唯一标识的区块链。另外,为保证项目安全,建议项目在合约中进行离线签名验证时,签名数据中应包含ChainID,避免跨链签名复用造成资产损失。应用层项目其实传统的分叉需要用算力做选择,选择的主角是矿工,但是这次如果真的同时有两条以太坊链,那就是整个以太坊这需要做出选择生态系统。这里的项目方是用户和投资人。与2016年的硬分叉相比,如今的以太坊已经不可同日而语。DeFi项目已经占据了以太坊生态的绝大部分,但是DeFi的基础是链上资产,所以项目主要是沿着资产端。.资产端是USDT、USDC等稳定资产,而DeFi的质押或借贷项目基本都是以资产端为主。对于这些稳定资产(这里主要指稳定币)的发行者来说,如果出现以太坊分叉,他们会突然面临一个问题——两个版本的稳定币。作为稳定币的发行人,你突然对每个发行的稳定币承担两项债务义务。虽然大多数人认为稳定币发行者会将新的PoS链视为“真正的”以太坊网络,但如果他们想支持PoW链怎么办?毕竟,他们有足够的经济动机这样做。例如,他们可以做空PoS以太坊代币,在PoW网络上宣布赎回,然后赚取数十亿美元。这可能会破坏新的以太坊网络,协议、交易所和相关的DeFi项目将被关闭。这将造成巨大的混乱,并有可能大规模摧毁加密货币市场。同样,以太坊分叉项目EthereumPow在8月17日发推称,ETHWCore将引入流动性池冻结技术,以保护用户资产。因为在以太坊PoW硬分叉之后,尤其是前几个区块,用户存放在流动性池中的ETHW代币,如Uniswap、Susiswap、Aave、Compound等,都会被黑客利用而被废弃或变得毫无价值。以不同方式兑换或借用USDT、USDC、WBTC,将对整个网络和社区造成巨大的破坏。因此,ETHWCore暂时冻结部分LP合约以保护用户的ETHW代币,直到协议的控制者或社区找到更好的方式归还用户的资产。冻结不适用于仅涉及单一资产的权益合约(例如ETH2.0存款合约和打包的以太币)。ETHWCore建议大家在硬分叉前从LP(如DEX和借贷协议)中提取ETH。
