DEFI 介紹 加密貨幣 新手指南

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

錢包簽署時的背後風險和應對防範
  • 作者: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 Capital 的附屬組織 DA Trader Association 的討論群組一起討論喔!

點擊傳送門填寫表單,等待審核就可以加入!

只要動動你的小手,使用 DATA 網站上的邀請碼就能夠加入「VIP」群組,獲得高質量的學習資源喔!

裡面注重各個面向的發展與學習或是等待接下來 2023/Q3 要釋出的課程!