空投教學

錢包簽署時的背後風險和應對防範

錢包簽署時的背後風險和應對防範
  • 作者:JohnSmith
  • 編譯:DA Trader Association
  • 撰文日期:2023 / 07 / 20

前言


對於普通用戶來說,我們在做 Defi 交互時,其實並不一定了解每次鏈上交互、簽署其背後的意涵,看到一大串英文、寫著一些晦澀艱深的代碼,就按下確認(Sign in、Approve),其實在這背後都有錢包遭竊的風險!一旦遭駭客竊取後資產是難以追回的!


以往大家可能認為只要不洩漏錢包註記詞,不隨意轉帳、與其他地址有資金互動,就不會有錢包被盜的風險,但近期出現了新的手法,只要你簽署過就有風險!今天就來帶大家認識這個手法、並告訴大家如何防範


釣魚實例:Uniswap Permit 2 智能合約的風險


Uniswap Permit2 合約是 Uniswap 在 去年年底推出智慧合約,據官方介紹所述,這是一種代幣審批合約:允許代幣授權在不同的 Dapp 中共享、管理,創造一個更統一、更具成本效益、更安全的體驗
據 Web 3 反詐騙平台表示,截止 2023 年 5 月中,已有逾 300 名受害者被 Permit 2 的惡意簽名,竊取了合計約 70 萬美金的資產!目前在 Ethereum Mainnet 上已超過 670 萬個地址授權過 Permit 2 ,而他們都也暴露在這個釣魚風險中


遭竊實例:

錢包簽署時的背後風險和應對防範

在這裡可以看到,有一筆受害人(失主)的資產遭轉出 ( OUT )

但這筆轉出是透過 Transfer From 函式操作的,而非我們常用的 Transfer ,兩者區別在於我們在鏈上代幣轉帳時,Transfer 函式是資產擁有者「主動」將代幣轉移到指定地址,Transfer From 函式則是由第三方將地址內的代幣轉移走,意味著這筆遭竊的資產是由第三方(另一地址)將代幣轉走的,不是錢包註記詞洩漏。

錢包簽署時的背後風險和應對防範

而在查詢 Etherscan 紀錄得知,操作者是尾號 fd15的地址,將尾號 308a(失主)的 140U 轉移到尾號 A0c8 的地址中,且這操作是與 Uniswap Permit2 的智能合約互動的。


尾號 fd15 的地址(以下簡稱竊賊)如何獲得代幣移轉的許可?一般在使用 Transfer From 函式前,和我們在交互、質押時一樣,只要是涉及到代幣移轉的操作,都需要先獲得代幣額度許可權,才能對代幣進行移轉動作。

錢包簽署時的背後風險和應對防範

透過 Etherscan 查詢尾號 fd15 地址發現,他在操作上面移轉代幣前,有跟 Uniswap Permit 2 合約互動過,接下來我們要透過了解 Permit 2 合約究竟是作為何用?他的工作原理又是如何?


Permit 2合約工作原理和作用


ERC20 的授權痛點


每次我們在交互新的項目或操作新的 Dapp 時,都要對每個代幣獨立授權(Approve ),而每次的授權不僅步驟繁瑣,還要消耗許多 Gasfee。

例如我們要在某個 Dex上進行 Swap,我們就要先授權代幣,再進行 Swap,如此就要消耗兩次 Gasfee,對使用者來說消磨太大了。

Permit 2 的誕生


為了解決此類問題,有人提出使用 Permit 簽名的形式,去取代上述授權的方式,不過市場上許多主流代幣合約已經無法升級,不支援 Permit,於是 Permit 2 就是由一個獨立的新合約,先授權給合約,並由合約來做 Permit 簽署。


簡單來說 Permit 2 就是可以解決傳統授權繁瑣的痛點,又能兼容原生代幣無法升級的舊合約,一個「外掛式」的 Permit,作為使用者和 Dapp 之間的中間人,使用者只需要把代幣的許可權授權給 Permit 2 合約,所有整合 Permit2 合約的 Dapp 都可以共享這個授權額度,由 Permit 2 來進行簽署和管理。


對使用者來說,減少互動成本、有更好的使用者體驗,Dapp 也能更吸引人,但目前只要在有跟 Permit 2 整合的 Dapp 上進行 Swap,就要授權額度給 Permit 2。
所以上面失主的資金,就是因為有與Uniswap有交互過,授權額度給了Permit 2 ,而竊賊獲得了他的簽名,,並用在Permit 2進行Permit、Transfer From就可以將授權過的額度轉走!


更多有關Permit簽署:
https://eips.ethereum.org/EIPS/eip-2612



防範方式


1. 安裝安全 Chrome 外掛:

Beosin Alert

錢包簽署時的背後風險和應對防範

PocketUniverse

錢包簽署時的背後風險和應對防範


這些安全外掛會在你未來要簽署時跳出來,自動幫你識別此簽署是否安全,會動用到多少資產都會顯示,非常方便!


2.將資金隔離、避免大額授權


建議將需要交互用的資金放在該錢包就好,有較多的資金可以放在其他錢包或是冷錢包儲存,避免在錢包遭竊時,遺失大量資產!
還有就是在授權額度時,設定好要用的數量即可,這樣即使竊賊獲取你的簽名也只能轉走已授權的額度,因為許多預設值都是最大值,且Permit 2 預設值也是無上限的額度!


3.嘗試理解簽署的格式、內容


像是簽署時的 Owner,Spender,Value,nonce,Deadline的格式,了解後就可以知道每次簽署時要做什麼,而非盲目的按下同意!



結語

如果我們不懂得每次簽署、交互的操作是在做什麼,就很有可能落入駭客或竊賊的陷阱,被輕易的竊取資產,而且在區塊鏈中丟失的資產是非常難以追回的。


我在剛接觸 Defi 時,也曾經因為看不懂智能合約,遭到駭客釣魚逾 20 顆 BNB,在那次經驗後,我們身處充滿未知的加密世界中,更該具備安全知識,保護好屬於自己的資產。


學習討論群組

親愛的讀者,你可能在思考:「這些深入的分析方法和珍貴的資料分享,我要到哪裡去學習和看到?」

不必再四處尋找! 除了我們網站優質的內容外,也邀請想學習投資加密貨幣和加密貨幣的朋友加入我們「DA 交易者聯盟」VIP 群組,裡頭有許多熱心的交易者一同交流討論。

註冊完交易所後,點擊傳送門填寫表單吧!🔗 https://datatw.io/vip-dastudio/ 一旦通過審核,你將能加入這個加密貨幣最歡樂、優質的社群!

動動你的手指,跟著我們踏上精彩的投資學習之旅吧!

DA Capital —— 串連起現實與不可能。