PTT推薦

Re: [閒聊] 冷錢包出現陌生的交易紀錄

看板DigiCurrency標題Re: [閒聊] 冷錢包出現陌生的交易紀錄作者
MACD
(MACD)
時間推噓14 推:14 噓:0 →:19

這個問題真的很有趣,我原本也以為釣魚是用類似的地址轉幣給你,讓偷懶的人手滑轉錯。

文中說釣魚的人可以用自己的錢包轉幣出去是滿奇怪的,我就去查一下USDC的合約,裡面的transferFrom code還真的允許任何人調用這個function 轉出0塊代幣。
https://i.imgur.com/cOhNuZS.jpg

圖 冷錢包出現陌生的交易紀錄
code寫<=也就是=0也是可以正常調用function
而沒有approve過的狀況下,allowed值會等於0
所以任何人call tranferFrom從你的錢包轉出0 USDC是可以的,你的錢包就會出現轉出紀錄

----
Sent from BePTT on my iPhone15,2

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.9.64.166 (臺灣)
PTT 網址

inuyaksa12/22 13:21酷,感謝說明

adamcha12/22 13:26讚 感謝分享

goodyW12/22 13:36看文章漲知識

abccbaandy12/22 13:39真是神奇的邏輯...是為了測試?

MACD12/22 13:42寫<=其實沒有錯,我認為應該要再加&& value<>0,避免這種狀

MACD12/22 13:42

Ayukawayen12/22 13:47可以加一個allowed>0檢查,因為授權值>0情況下轉0元

Ayukawayen12/22 13:47給過好像很合理。

MACD12/22 13:49是也可以,只是轉0元真的不是正常交易會做的事情

twrichgod12/22 13:51感謝,真的長知識了。只是不懂為什麼要這樣設計...

aass112212/22 13:52好奇 這樣的意義是?

Ayukawayen12/22 13:54不過其實照規範作,allowed=0時轉0元就是給過沒錯

Ayukawayen12/22 13:55轉0元在EIP有特別寫明了應該視同正常tranfer處理

Ayukawayen12/22 13:56尤其是Transfer事件要照常發。有些合約有用處。

DarkerDuck12/22 16:340值交易也是有用啦,最常用的就是用來取消交易

DarkerDuck12/22 16:35https://tinyurl.com/msfynxa5

DarkerDuck12/22 16:36把要取消的交易用同一個nonce的0值交易就可以在未被

DarkerDuck12/22 16:36確認前替換取消掉了

DarkerDuck12/22 16:41另外一種就是用這種null transaction來update nonce

DarkerDuck12/22 16:42當然像這種allow所對應的外部智能合約調用

DarkerDuck12/22 16:43就不太需要0值交易才是

sazabijiang12/22 17:22推 真是太意外了

Ayukawayen12/22 18:13ERC20的0值交易情境比較多是在智能合約內部交易的情況

Ayukawayen12/22 18:15比方處理找零的時候可以算出找x元就直接轉x過去,不用

Ayukawayen12/22 18:17去檢查算出來是x=0的時候還要特別處理。

xxxrecoil12/22 19:08沒想到真的是這樣

jay74102512/22 19:300元交易會怎麼樣嗎? 還蠻好奇用途是啥

MACD12/22 20:35不會怎樣,就看你會不會上當而已

ho83leo12/22 22:36好奇issue 沒人報嗎?

puipui12/23 09:35這種寫法是允許他人在自己的錢包留下轉出紀錄的 這種寫法

puipui12/23 09:35就算不是 bug 我也覺得是 B > Z

evilcherry12/23 13:14但在ERC20上,減法比if較便宜吧?

Kimg12/23 17:08冷知識增加