皇冠体育寻求亚洲战略合作伙伴,皇冠代理招募中,皇冠平台开放会员注册、充值、提现、电脑版下载、APP下载。

首页科技正文

足球免费贴士(www.ad168.vip):以太坊单双游戏(www.326681.com)_SharkTeam:十大智能合约平安威胁之重放攻击

admin2022-11-123五人以上三公捡牌口诀

皇冠足球投注平台www.hg9988.vip)是皇冠足球投注平台,开放皇冠信用网代理申请、信用网会员开户,线上投注的官方平台。

重放攻击是把原链网络上的生意拿到目的链网络上使用

问:我们常提到的智能合约破绽真的是现实中威胁最大、发生最频仍的平安破绽吗?

答:完全不是那样。例如“溢出”、“外部挪用”等常提到的智能合约平安破绽并不是最常发生,威胁最大的。

到底哪些平安威胁从发生频率和危害性上能称为Top10的呢?SharkTeam合约平安系列课程之【十大智能合约平安威胁】和您一起讨论和深入。第十课【详解重放攻击】。

一、什么是重放攻击

重放攻击是把原链网络上的生意拿到目的链网络上使用,即一笔生意重复执行,我们凭证类型可以分为生意重放和署名重放。

生意重放是将原链上的生意一成稳固放到目的链上,重放事后生意在目的链上可以正常执行并完成生意验证。

署名重放行使私钥署名的新闻举行重放,重放历程中无需像生意重放那样去重放整个生意,而是重放响应的署名信息。

在实行EIP 155后,生意署名带有chainid,即链与分叉链之间的标识符。由于chainid差异,生意重放无法完成,署名重放可以间接完成。在以太坊完身分叉后,ETHW主网泛起数起重放攻击事宜,让我们回首一下这些攻击事宜前因结果。

二、攻击事宜剖析

2.1 Optimism

2022年6月9日新闻,据Optimism与加密钱币做市商 Wintermute 透露,2000万个Optimism代币被黑客偷取。重放攻击历程如下:

(1)5月27日,Optimism地址0x2501向Optimism/L2上的0x4f3a地址转账2000万OP,0x4f3a地址在Ethereum/L1上是Wintermute的多签合约地址,但此时在Optimism/L2上面并没有部署合约;

(2)6月1日,黑客地址0x8bcf部署合约0xe714。

(3)6月5日,黑客通过重放Ethereum/L1上的生意确立了Gnosis Safe: Proxy Factory 1.1.1合约,其地址与Ethereum/L1上一样;然后地址0x60b2通过合约0xe714部署了多签合约0x4f3a,合约所有权归黑客所有,因此5月27日转入的2000万OP被黑客偷取。在Gnosis Safe: Proxy Factory 1.1.1合约中,其中确立署理合约函数createProxy如下:

Gnosis Safe: Proxy Factory 1.1.1合约使用的是0.5版本的Solidity,使用new来确立合约时使用的是create下令,而不是create2。使用create下令确立合约,合约地址是msg.sender以及nonce来盘算的。在Ethereum/L1上面,确立多签合约0x4f3a的msg.sender就是Gnosis Safe: Proxy Factory 1.1.1的地址,黑客在Optimism/L2通过重放生意来确立于Gnosis Safe: Proxy Factory 1.1.1合约的主要目的就是为了保证在Optimism/L2上确立合约0x4f3a的msg.sender与在Ethereum/L1上一致,那么黑客可以很利便的通过智能合约(合约0xe714)挪用createProxy函数来确立出地址是0x4f3a的合约。

(4)6月5日,多签合约0x4f3a在吸收到2000万OP后,将100万OP转账给黑客地址0x60b2,然后将100万OP兑换成了720.7 Ether。

,

以太坊数据网

,

足球免费贴士www.ad168.vip)是国内最权威的足球赛事报道、预测平台。免费提供赛事直播,免费足球贴士,免费足球推介,免费专家贴士,免费足球推荐,最专业的足球心水网。

,

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

,

(5)6月9日,合约0x4f3a将其中的100万OP转账给了账户地址0xd8da, 其他的1800万OP仍然在合约0x4f3a中。

本次攻击基本缘故原由是:生意重放、Solidity旧版本破绽以及主链和侧链生意署名验证等综合因素

2.2 Omni

2022年9月18日,以太坊合并完成后,PoW链遭到PoS链上生意的重放攻击,基本缘故原由是网桥未准确读取并验证区块链的chainid。攻击者首先通过Gnosis链的Omni跨链桥转移了200 WETH,然后在PoW链上重放了相同的新闻,获得了分外的200 ETHW。

(1)PoS链生意hash:0xbddb0cc8bc9949321e1748f03503ed1a20dd618fbf0a51dc5734c975b1f8bdf5

(2)PoW链生意hash:0x9c072551861ce384203516f4d705176a2d2e262d5b571d853467425f1a861fb4

我们对比发现两笔生意接见的合约相同,而且inputdata完全相同,即挪用了统一个合约的统一个函数而且参数相同,凭证相同的方式署名ID 0x23caab49可知,黑客挪用safeExecuteSignaturesWithAutoGasLimit函数。

在正常的生意中,我们通过nonce来举行排序生意,制止重复生意。在跨链中,我们会凭证chianid举行识别链的类型,好比以太坊主网的chainid是1,ETHW主网的chainid是10001。

我们查看一下Omni Bridge验证chainid的逻辑,发现chainid的泉源于unitStorage中存储的值,而不是通过操作码 CHAINID(0x46)直接读取的链上chainid。

unitStorage是合约EternalStorage中的状态变量,sourceChainId()函数所在的合约BasicAMB继续了BasicBridge和VersionableAMB。其中,BasicBridge陆续继续了合约EternalStorage。这里保留的chainid是预先存储好的,若是发生区块链的硬分叉而chainid又没有重新设置或者chainid人为设置有误,从合约层面上来说,由于不是通过操作码获取的chainid,不会准确验证跨链新闻的现实chainid。

本次攻击基本缘故原由是:主要是Omni使用的solidity版本是0.4.24,接纳的是手动存储和更新chainid的方式,并未通过EIP-1344中划定的CHAINID(0x46)操作码举行现实chainid获取。

三、预防措施

针对重放攻击主要有以下几种预防的方式:

(1)可以在署名新闻中加入chainid和nonce两个参数值,chainid用于识别链ID的标识符,nonce是生意次数计数值。

(2)纪录署名是否使用过,好比行使mapping举行署名中对应参数映射为bool值,这样做可以防止署名多次使用。

(3)项目上线前,需联系专业的第三方专业审计团队举行审计。

泉源:tuoniaox

查看更多,

casino online vaobo88(www.vng.app):casino online vaobo88(www.vng.app) cổng Chơi tài xỉu uy tín nhất việt nam。casino online vaobo88(www.vng.app)game tài Xỉu đánh bạc online công bằng nhất,casino online vaobo88(www.vng.app)cổng game không thể dự đoán can thiệp,mở thưởng bằng blockchain ,đảm bảo kết quả công bằng.

网友评论

热门标签