偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談以太坊元交易的新型授權(quán)釣魚風(fēng)險(xiǎn)

安全 應(yīng)用安全 區(qū)塊鏈
在區(qū)塊鏈?zhǔn)澜缰?,新用戶想進(jìn)入這個(gè)領(lǐng)域存在不少門檻,其中最大的門檻之一是每個(gè)操作都需要交易手續(xù)費(fèi)(transaction fee),在以太坊里面叫g(shù)as,元交易(meta transaction)則是最有希望解決這個(gè)問題的方案,但是在目前也存在一定風(fēng)險(xiǎn)。

一、什么是元交易

設(shè)想這樣一個(gè)場(chǎng)景:你被DeFi的高收益所吸引,所以決定將交易所里的USDC全部提到錢包,然后投入到DeFi中,在提現(xiàn)完成后,你錢包確實(shí)收到了USDC,但你發(fā)現(xiàn)你不能完成任何鏈上操作,不能交易,不能質(zhì)押。所以,你又需要重新從交易所中購買一些ETH再提到錢包....

在常規(guī)情況下,用戶想要在區(qū)塊鏈上發(fā)布一筆交易,需要賬戶內(nèi)有足夠的的原生代幣(native coin,ETH、BTC這類)作為交易手續(xù)費(fèi),然后才能上鏈。而在使用元交易的情況下,用戶可以不用自己發(fā)布交易,轉(zhuǎn)而委托中繼者(relay)代為發(fā)布,這樣自然也就不需要用戶自己有足夠的的原生代幣。

要實(shí)現(xiàn)交易委托,需要目標(biāo)智能合約支持元交易,實(shí)現(xiàn)的方式一般是使用消息簽名技術(shù),使用錢包進(jìn)行簽名是不需要任何手續(xù)費(fèi)的,因?yàn)檫@完全是鏈下行為,用戶構(gòu)造相應(yīng)的元交易數(shù)據(jù),并簽名,然后將這些信息發(fā)送給中繼者,接著中繼者再對(duì)目標(biāo)合約進(jìn)行調(diào)用,并附帶數(shù)據(jù)與簽名,目標(biāo)合約收到這些信息后進(jìn)行驗(yàn)證后再執(zhí)行相應(yīng)的業(yè)務(wù)。

有一點(diǎn)要搞明白,元交易雖然是GasLess(免gas)的,但并不代表無需手續(xù)費(fèi),是否需要付出手續(xù)費(fèi),以及付出何種資產(chǎn)作為手續(xù)費(fèi),主要取決于中繼者,一般來說,可以用主流token支付,所以你需要再簽署一筆向中繼者支付手續(xù)費(fèi)的元交易。

總而言之,元交易的本質(zhì)是一組信息憑證,是用戶期望行為的一種證明,且具有真實(shí)的可執(zhí)行力,第三方可以拿這些信息替用戶執(zhí)行想要執(zhí)行的動(dòng)作。

二、ERC20-permit(EIP-2612)

場(chǎng)景繼續(xù):當(dāng)你準(zhǔn)備購買ETH作為手續(xù)費(fèi)時(shí),你突然發(fā)現(xiàn),USDC居然支持元交易,只需要簽署一則消息即可完成授權(quán),簡(jiǎn)直不要太方便!

ERC20是在以太坊上面創(chuàng)建token的實(shí)現(xiàn)標(biāo)準(zhǔn),但是它并不支持元交易,如果token需要支持授權(quán)元交易,則需要按照EIP-2612的規(guī)范來進(jìn)行擴(kuò)展,如下:

新增了3個(gè)函數(shù):

function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external
function nonces(address owner) external view returns (uint)
function DOMAIN_SEPARATOR() external view returns (bytes32)
  • permit函數(shù):一般由中繼者調(diào)用,負(fù)責(zé)驗(yàn)證參數(shù)與簽名是否相符,然后進(jìn)行授權(quán)(approve)操作
  • nonces函數(shù):返回指定用戶的nonce,在每次permit之后,nonce遞增,為了防止一筆元交易被重復(fù)執(zhí)行
  • DOMAIN_SEPARATOR函數(shù):根據(jù)chainId、合約地址等信息生成一個(gè)唯一散列,防止一筆元交易在其他EVM鏈(ETC、BSC等)上被重放

最重要的是permit函數(shù),所以看一下這個(gè)函數(shù)的具體實(shí)現(xiàn),這里參考uniswap:

https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2ERC20.sol

function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'UniswapV2: EXPIRED');
        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
            )
        );
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(recoveredAddress != address(0) && recoveredAddress == owner, 'UniswapV2: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }

很短幾行代碼,可以看到,在進(jìn)行了驗(yàn)簽以及其他檢測(cè)后,會(huì)執(zhí)行授權(quán)操作,所以整個(gè)流程其實(shí)很簡(jiǎn)單,用戶完成鏈下簽名,中繼進(jìn)行鏈上調(diào)用,僅此而已。

三、 隱患

場(chǎng)景最后:錢包彈出了”請(qǐng)求簽名“,上面的信息你有些看不懂,但是錢包并沒有任何警告信息,也不用花錢,你很輕易的完成了確認(rèn),兩分鐘后,你錢包里的USDC全都消失了...

毫無疑問,與approve授權(quán)釣魚類似,元交易也是存在釣魚風(fēng)險(xiǎn)的,只要竊取到了簽名,就竊取到了授權(quán),更加危險(xiǎn),更容易中招,相對(duì)來說,元交易釣魚目前存在以下”優(yōu)勢(shì)“

1、主流幣種支持

雖然元交易尚未普及,但也有不少主流幣種支持了ERC20-permit:

  1. USDC
  2. DAI
  3. UNI
  4. 1INCH
  5. ENS

2、警告信息缺失

相對(duì)于approve授權(quán)釣魚,錢包對(duì)于元交易授權(quán)的警告幾乎沒有,以下測(cè)試了最新版本的主流錢包告警情況

MetaMask,無特別提醒

TokenPocket,無特別提醒,簽名內(nèi)容未處理

imtoken,無特別提醒

3、隱蔽性強(qiáng)

傳統(tǒng)的授權(quán)釣魚會(huì)在鏈上留下approve記錄,而元交易釣魚完全是鏈下行為,卻又能夠影響鏈上,對(duì)于元交易簽名已泄露的用戶來說,是一個(gè)定時(shí)炸彈,而且還不自知。

4、成本低廉

對(duì)于需要上鏈的操作,由于操作成本等原因,用戶會(huì)相對(duì)謹(jǐn)慎,但對(duì)于鏈下簽名,就會(huì)放松很多了,且無需成本,用戶也很難會(huì)意識(shí)到簽名操作也會(huì)影響到資產(chǎn)安全。

5、難以理解

除了基于EIP-2612實(shí)現(xiàn)的ERC20授權(quán)元交易外,還有很多項(xiàng)目方自己設(shè)計(jì)的元交易實(shí)現(xiàn),而這些實(shí)現(xiàn)是非標(biāo)準(zhǔn)的,所以也無法被錢包所理解,并形成相應(yīng)的警告,用戶也很難理解其中含義。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-12-08 13:57:29

以太坊加密貨幣比特幣

2021-05-02 22:19:46

以太坊比特幣加密貨幣

2018-06-01 09:17:52

區(qū)塊鏈以太坊

2019-12-13 17:44:12

釣魚黑客電子商務(wù)

2021-05-22 22:57:24

以太坊加密貨幣比特幣

2021-05-03 23:32:55

以太坊區(qū)塊鏈比特幣

2022-10-18 08:00:00

2021-10-26 00:27:28

Python以太坊智能

2024-05-24 14:39:33

2021-04-09 08:11:30

網(wǎng)絡(luò)釣魚攻擊eSentire

2014-07-15 16:43:57

2024-01-25 12:54:47

2021-05-13 16:13:21

區(qū)塊鏈以太坊NFT

2021-05-07 09:06:55

GraphQLAPI 以太坊

2021-04-29 16:11:14

以太坊共識(shí)鏈驗(yàn)證者

2021-02-10 16:10:37

以太坊區(qū)塊鏈網(wǎng)絡(luò)

2023-05-05 08:00:00

2022-08-10 14:07:40

以太坊加密貨幣礦工

2017-12-18 13:59:01

區(qū)塊鏈

2024-08-29 14:21:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)