我剛剛看到一篇關於用permit鏈下簽名的方式來轉走你帳戶內的token,而且這個方式你的 帳戶內不會有approve紀錄,之前我在用paraswap、uniswapV3、1inch有遇過這種授權方式 所以特別來提醒大家,現在連鏈下簽名都要仔細看一下,別無腦簽名。 鏈下簽名比較常出現的方式是連入defi網站的時候,需要你用帳號簽一份聲明書,例如par aswap連進去會要你簽一份這個網站不提供給美國人使用的聲明。 https://i.imgur.com/UFznnNW.png
permit功能可以看USDC的etherscan上的code,簡單來說就是用鏈下簽名的方式根據permit 需要參數讓你簽名,拿到你簽完名的加密資訊v.r.s,然後駭客再call USCD permit函數, 那就可以完成approve的動作。這個方式比較特別的是鏈下簽名不會消耗gas,所以你不會 去特別在意這個簽名,你以為一切都正常,但是其實你已經把token授權給別人動了,而且 revoke工具也不會偵測到,revoke工具原理其實是掃你的帳戶內的approve tx,這個permi t方式,permit tx其實會出現在駭客的帳戶下面,所以revoke不會偵測到。對permit tx fee是駭客幫你付的。 現在可以從1inch看一下permit鏈下簽名會長怎樣。有沒有發現permit鏈下簽名跟上面的網 站聲明基本上一樣,只是message data部分不一樣,換成要你簽permit需要參數,其實這 是metamask有幫解析後的結果,有些錢包不支援解析的話,應該會是0xd505accf開頭一串 bytes32 code,大家可以比較一下一般USDC approve,現在metamask已經不會無腦無限 approve了,會問你要approve多少。 permit鏈下簽名 https://i.imgur.com/PdMw4JL.png
approve tx https://i.imgur.com/Qi9en0h.png
結論 如果遇到鏈下簽名請仔細看清楚。 ref:https://foresightnews.pro/article/detail/33330 -- 對了,謝謝版主昨天贊助pizza day -- ※ 發信站: 批踢踢實業坊(ptt-site.org.tw), 來自: 218.161.113.147 (臺灣) ※ 文章網址: https://ptt-site.org.tw/DigiCurrency/M.1684633192.A.F6D
s89505123: 推推 05/21 09:48
SamuelLuo: 專業推 05/21 11:03
gR7P4zXH: 推 05/21 11:42
JapaZPa4867: permit 是基於 EIP712 的 signTypedData 05/21 15:56
JapaZPa4867: 一般訊息簽名是用的是 signMessage 05/21 15:56
Muzaffer: 到底要多有錢才會想包養 05/21 15:56
JapaZPa4867: 前端或插件都會提示簽名類型 注意就好 05/21 15:56
sazabijiang: 好恐怖..這好像傳統簽名文件下墊複寫紙以及另一份 05/21 18:12
sazabijiang: 文件的伎倆。你以為只簽了A,其實是A+B套餐 05/21 18:12
leofu100: 推謝謝 05/21 18:18
DarkerDuck: 小狐狸permit鏈下簽章也要跟approve一樣警告無腦按的 05/21 18:57
MIJice: 閨蜜上包養網還推薦我... 05/21 18:57
DarkerDuck: message差很多,理論上用UI就可以預先警告的 05/21 18:58
MACD: 很多無腦簽的沒說根本看不出是在簽EIP-712還是簽message 05/21 20:20
yahooyamgoog: 這種簽名的傷害是一次性的還是永久性的?若不小心 05/22 12:03
yahooyamgoog: 簽名,有辦法取消授權嗎? 05/22 12:03
MACD: 看你授權多少,可以取消,但是需要點技術,直接換帳號比較 05/22 14:30
SpyTime: 包養? 05/22 14:30
MACD: 快 05/22 14:30
ECZEMA: 麻瓜覺得害怕 05/25 22:10