当前位置:首页>货币平台

Cobo安全团队:ETH硬分叉里的隐藏风险和套利机会

日期:2023-03-13

来源:玫瑰财经网

浏览:

    Cobo安全团队:ETH硬分叉里的隐藏风险和套利机会

    前言是否与ETH一起升级PoS共识系统、现有PoW机制的ETH链在部分社区的支持下成功地实现了硬分支(以下简称ETHW)。但是,由于某些链的协议在设计初期没有准备好可能的硬分支,因此该协议对ETHW分支链有一定的安全风险,其中最严重的安全风险是重放攻击。

    硬分叉完成后,ETHW家庭网使用OmniBridge的再生攻击和Polygon Bridge的再生攻击这一再生机制进行了至少两次攻击。本文以这两个事件为例,分别分析重放攻击对分支链的影响以及协议应如何防止这些攻击。

    重放类型首先,在开始分析之前,需要对重放攻击类型进行初步了解。通常,回放攻击分为两类:事务回放和签名消息回放。现在让我们分别看一下这两种再生机制的差异。

    播放事务处理播放事务处理是将原始链中的事务处理原封不动地转移到大象链中的操作,在事务处理级别播放,播放后事务处理将正常运行以完成事务处理验证。最著名的例子是Optimism的Wintermute吗的攻击事件直接造成了2000万OP Token以上的损失。但是,在实施EIP 155之后,由于事务的签名本身具有chainId(区分链本身和其他分支点的标识符),如果播放的大象链chainId不同,则事务本身不能完成播放。

    播放签名消息播放签名消息与播放事务不同,播放签名消息是对用私钥签名的消息(e.g. Cobo is the best)的播放,在播放签名消息中,攻击者不需要播放整个事务,只需播放签名消息。对于消息签名,以Cobo is the best为例

    Cobo安全团队:ETH硬分叉里的隐藏风险和套利机会

    ,由于消息没有与链相关的特殊参数,所以消息在签名后理论上在所有分支链上都有效,可以通过验证。您可以将chainId(如Cobo is the best chainId())添加到消息内容中,以防止在分支点播放消息。导入特定链标识符后,每个分支点的消息内容不同,消息签名不同,无法直接执行重放重用。

    让我们分析一下OmniBridge和Polygon Bridge的攻击原理OmniBridge和Polygon Bridge的攻击原理。首先得出结论,两起攻击事件本身都不是交易再生攻击。ETHW使用了与ETH家庭网络不同的chainId,因此无法直接确认播放交易。剩下的选项只有播放消息。现在,让我们逐一分析一下在ETHW分叉链中,消息回放是如何分别受到攻击的。

    OmniBridgeOmniBridge是用于在xDAI和ETH家庭网络之间转移资产的桥梁,主要依靠网桥的指定validator提交跨链消息,以完成跨链资产转移。在OmniBridge中,validator提交的验证消息的逻辑如下

    此函数首先根据第#L2行的签名检查检查提交的签名是否由指定的validator签名,然后在第#L11行解码数据消息。从解码的内容来看,很容易发现返回字段包含chainId字段。那么是否意味着不能播放签名信息我们继续分析。

    通过跟踪_executeMessage函数,发现函数在第#L11行检查了chaindId的合法性

    继续分析后续函数逻辑,不难发现对chainId的检查实际上不是使用EVM原生chainId opcode获取链本身的chainId,而是直接使用存储在uintStorage变量中的值。这个值显然是管理员设置的,因此您可能认为消息本身没有链id。然后,理论上可以执行签名消息回放

    在硬分支过程中,分支前的所有状态在两条链上保持不变,因此,如果后续xDAI团队没有进一步的工作,分支后ETHW和ETH主在线Omni桥合同的状态将保持不变

    Cobo安全团队:ETH硬分叉里的隐藏风险和套利机会

    。也就是说,合同的validator也不会改变。在这种情况下,可以推测validator的基本网络签名也可以在ETHW中完成验证。然后,由于签名消息本身不包含chainId,攻击者可以通过签名回放从ETHW提取同一合同的资产。

    Polygon桥与Omni桥一样,是Polygon和ETH主网络上资产转移的桥梁。与Omni Bridge不同,Polygon Bridge使用以下逻辑依赖块证明进行提取:

    通过函数逻辑,合同通过两种检查来确定消息的合法性并不难。因为每个人都可以通过检查transactionRoot和BlockNumber来确认交易实际上发生在子链(Ploygon Chain)上,任何人都可以通过交易数据构成自己的transactionRoot,但不能跳过第二次检查。_ checkblockmembershipincheckpoint逻辑会找到以下内容:

    相应的headerRoot提取自_checkpointManager协议。让我们按照此逻辑查看_checkpointManager设置。海得根(headerRoot)所在的地方

    在代码#L2行中,签名数据仅验证到borChianId,而不验证链本身的chainId。因为该消息由合同中指定的proposer签名,所以理论上攻击者可以在分支链中重放proposer的消息签名,以提交有效的headerRoot

    Cobo安全团队:ETH硬分叉里的隐藏风险和套利机会

    。之后,通过Polygon Bridge在ETHW链上调用exit函数并提交其交易merkle proof,就可以实现成功并通过headerRoot检查。

    到地址吗0x 7 DBF 18F 679 FA 07D 943613193 E 347 CA 72E f 4642 B9例如,该地址通过以下几项操作成功完成了ETHW链的套利

    第一,纸币能力依赖主网络交易平台取钱。

    在Ploygon链上通过Polygon桥的depositFor函数充电;

    ETH主网络调用Polygon桥的退出函数提取。

    ETH主网络proposer提交的headerRoot中选择光源族。

    ETHW播放在上一步中提取的proposer的签名消息。

    从ETHW的Polygon桥调用exit提取呼叫

    为什么会发生这种事在上面分析的两个案例中,这两个协议在ETHW中受到重放攻击,是因为协议本身没有做好防止重放的保护,所以协议对应的资产在分支链中是空洞的。但是,这两条腿本身不支持ETHW支链,所以用户没有受到任何损失。但是我们要考虑的是,为什么这两条腿在设计初期就没有加入再生保护措施。事实上,原因是OmniBridge和Polygon Bridge都设计了单个应用程序方案。但是,它仅用于对自己指定的相应链进行资产转移。没有多链部署计划,因此没有再生保护,对协议本身没有安全影响。

    另一方面,ETHW的用户由于腿本身不支持多链场景,所以在ETHW分支链上操作,将在ETH主互联网上受到消息播放攻击。

    对于UniswapV2,当前UnswapV2的pool协议具有permit函数,该函数具有包含DOMAIN_SEPARATOR变量的PERMIT_TYPEHASH变量。

    这个变量最初是在EIP712中定义的,包含chainId,设计初期包含防止播放可能的多链场景,但根据uniswapV2 pool协议的逻辑,它如下所示:

    DOMAIN_SEPARATOR是在构造函数中定义的。这意味着,即使在硬分支结束后链本身的chainId发生了变化,pool协议也无法获得新的chianId来更新DOMAIN_SEPARATOR(如果未来用户在ETHW上进行相关认证)32除了Uniswap外,还有许多类似的协议。例如,在某些情况下,与特定版本的Yarnvault协议一样,使用固定的DOMAIN_SEPARATOR。用户在ETHW上交互时,也必须防止这些协议的重放风险。

    协议设计早期预防措施要求开发人员在自定义协议本身的消息签名机制时考虑可能的后续多链方案,如果路线图中存在多链部署可能性,则必须将chainId作为变量添加到签名消息中,在验证签名时不能将用于验证签名消息的chainId设置为,因为硬分叉不会更改分叉前的状态。

    对用户的影响一般来说,如果协议不支持分叉链,则应避免在分叉链上执行任何操作,以确保相应的签名消息不会重新放置在主网络上。这将导致用户在主网络上丢失资产。

    对交易平台和托管机构的影响很多交易平台本身支持ETHW Token,所以从攻击中提取的Token可以充值到交易平台上销售,但要注意的是,这些攻击不是链共识本身的问题引起的恶意蒸发。因此,对于交易平台,不需要对这些攻击采取额外的预防措施。

    摘要随着多链场景的发展,重放攻击从理论层面逐渐转变为主流攻击方式,开发者在仔细考虑协议设计、进行消息签名机制设计时,应尽可能地添加chainId等因素作为签名内容。应遵循相关最佳实践,防止用户资产流失。

    Cobo是亚太地区最大的加密货币托管机构,自成立以来,为500多家业界领先的机构和高层人士提供了卓越的服务,在确保加密资产安全存储的同时,实现了加密资产的强大好处,受到了全球用户的信任。为了帮助组织管理多种类型的资产,Cobo致力于构建可扩展的基础架构,提供安全管理、资产增值、链间交互、链间层之间等多种解决方案,从而为向web 3.0过渡提供最强大的基于技术的支持和功能。Cobo旗下是否包括Cobo Custody、Cobo DaaS、Cobo MaaS和CoboStaaS、Cobo Ventures、Cobo DeFi Yield Fund等业务部门满足了客户的多种需求。

    单击下载

    European Exchange金融投资European Exchange(也称为Eurokx)是世界领先的数字资产交易所,为全球用户提供比特币、莱特货币、以太网货币等数字资产的现货和衍生品交易服务,并使用区块链技术为全球交易者提供高级金融服务。这是一个非常古老的数字货币交易平台,平台为我们提供安全、专业的数字货币交易经验,为新手提供完整的流程指导,使其易于启动,通过客服24小时在线回复提供最佳服务。

    3

相关文章阅读

Copyright (c) 2022 玫瑰财经网 版权所有

备案号:冀ICP备17019481号

玫瑰财经网发布此信息的目的在于传播更多信息,与本站立场无关。玫瑰财经网不保证该信息(包含但不限于文字、视频、音频、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。
相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。