讓我們從一個關於借錢的簡單故事開始:
我打算從我的好朋友馬雲那裡借一百萬。馬雲毫不猶豫地拿起電話,給銀行打了個電話,核實身份后,告訴銀行,“我授權某某取款一百萬。銀行確認並記錄此授權。
下一步是我去銀行,告訴櫃員,我是來取出馬雲授權的一百萬。銀行檢查授權記錄,在確認我是合適的人選后,交出一百萬。
這個故事很好地類比了以太坊上的批准授權的工作原理。在這個過程中,只有資產擁有者(Jack Ma)可以致電銀行給予授權(在鏈上),而銀行(代幣合約)管理這些授權。只有在這之後,我(被授權方)才能提取不超過授權金額的款項。如果銀行找不到授權記錄,我的提款請求無疑會被拒絕。
現在,如果我們使用不同的授權方法——許可證,會發生什麼事?從馬雲那裡借錢會怎麼樣?
這次,我要借另外一百萬。像往常一樣慷慨,馬雲甚至都沒有打電話給銀行。相反地,他拿出支票簿,填上金額,簽字,然後遞給我。然後我拿著這張支票去銀行。即使銀行沒有任何授權記錄,但銀行能夠驗證馬雲在支票上的簽名,並且根據這個,把指定金額給了我。
到目前為止,您可能已經看到了這些過程的不同之處。核心ERC-20功能的核准自以太坊推出後不久就被廣泛使用。那麼為什麼在ERC-2612中引入了許可方法來實現類似的結果呢?
ERC-2612提案於2019年3月提出,並於2022年10月完成最後審查。其部署與以太坊主網在該期間所經歷的天然氣價格劇增密切相關。
圖片:ETH主網瓦斯價格從2020年到2022年一直保持高位
在牛市和新的鏈上項目創造財富效應的結合推動用戶對鏈上交易的熱情。他們願意支付更高的費用以更快地處理他們的交易,因為有時即使僅提前一個區塊得到確認,也可能帶來顯著更高的回報。
然而,這也帶來了一個缺點:當用戶想要在鏈上交易代幣時,他們通常必須忍受過高的燃氣費用。在批准方法下,完成一次代幣交換需要兩筆交易(TX)。對於資金較小的用戶來說,交易費用可能是一個噩夢。
ERC-2612引入許可證改變了這一過程,將鏈上批准替換為離線簽名,離線簽名不需要立即提交。使用者在轉帳代幣時只需要提供授權,類似於借款故事中,我只需要在從銀行取款時出示馬雲的支票即可。
繁忙的馬雲省去了打電話的麻煩,而且似乎用戶也省去了一筆交易。當燃氣價格高昂時,費用的節省可能會相當可觀,看起來就像是一個雙贏的局面。然而,很少有人意識到潘多拉的盒子正在悄悄地被打開...
在 Permit 出現之前,駭客常用的一種詐騙加密貨幣用戶的常見手段是騙取他們簽署 Approve 交易。由於這些交易需要用戶支付 gas 費用,通常會引起懷疑,使得駭客更難成功。即使用戶在不小心點擊了該交易,事實上,它需要一些時間才能在鏈上得到確認,這為他們提供了機會提交另一筆具有相同 nonce 的交易以取消它——這使得駭客相對難以實現他們的計劃。
然而,許可證的到來就像是黑客夢想成真一樣。與批准不同,許可證不消耗 gas,只需要簽名,這顯著降低了用戶的警惕性。此外,由於離線簽名的性質,控制權掌握在黑客手中。用戶不僅沒有機會撤消他們的錯誤,而且黑客還可以保留授權,在最有利的時刻發動攻擊,從中獲取最大利益。
這導致釣魚受害者人數和被盜資金金額顯著增加。根據統計數據來自@ScamSniffer"">@ScamSniffer:
圖片:ScamSniffer 2024年上半年的釣魚攻擊報告
這種情況可能超出了原開發人員的預期。引入許可證的目的是為了減少天然氣成本,改善用戶體驗,提高效率。原本被認為是雙刃劍,既有收益又有損失,結果卻變成了單邊刀刃——鋒利無比——在原本應該保護用戶資產的盾牌上劃出一個大洞。
許可證並不是唯一基於簽名的授權方法。例如,Uniswap隨後推出了Permit2,允許所有ERC-20代幣支持離線簽名。作為第一家去中心化交易所,Uniswap的舉動進一步增加了用戶對離線簽名的依賴,這反過來增加了釣魚攻擊的風險。
作為普通使用者,我們可以採取哪些措施來避免損失,保護自己免受懸在我們身上的這把達摩克利斯之劍——一把鋒利的利刃——的傷害?
1⃣ 增加意識
受到空投誘惑時保持冷靜。
加密項目的空投看似吸引人,但大多數情況下都是冒充空投的釣魚攻擊。當遇到這樣的信息時,不要急於聲稱它。而是要從多個來源驗證空投的合法性和官方網站,以避免陷入釣魚陷阱。
避免盲目簽名
如果您不小心登陸了網路釣魚網站並且沒有意識到這一點,請在錢包提示您簽名時花點時間仔細檢查交易。如果出現“允許”、“允許2”、“批准”或“增加津貼”等條款,則表示交易正在請求令牌授權。在這一點上,您應該謹慎,因為合法的空投不需要此過程。Keystone硬體錢包已經實現了交易解析和顯示功能,讓使用者更好地瞭解交易細節,避免盲目簽名,這可能導致倉促決策的嚴重後果。
圖片:Keystone 硬體錢包,Rabby 錢包解析和顯示許可2簽名交易
2⃣ 善用工具
ScamSniffer
對於普通用戶來說,準確識別釣魚網站可能非常具有挑戰性,有些可能會輕易滑過檢測。通過使用ScamSniffer的瀏覽器插件,當嘗試訪問潛在的釣魚網站時,您將收到警報,使您有機會在互動之前停止操作。
撤銷
Revoke.cash允許您查看錢包中的代幣授權。我們建議撤銷任何可疑或無限制的授權。定期清理授權並將其限制在必要的金額上是一種良好的做法。
3⃣ 資產隔離和多簽
俗話說,不要把所有的雞蛋放在同一個籃子裡——這個原則也適用於加密資產。例如,您可以將大量資產存儲在像Keystone這樣的冷錢包中,同時使用熱錢包進行日常交易。即使您成為攻擊的受害者,您的整個餘額也不會受到損害。
對於那些有較高安全需求的人來說,使用多簽名(多簽)錢包可以進一步增強保護。多簽名下的資產只有在達到一定閾值的錢包批准時才能移動。如果一個錢包被入侵但未達到閾值,黑客將無法訪問您的資產。
雖然我們不能否認許可證帶來的價值,但日益增加的盜竊案例也顯示,它帶來的風險可能超過其好處。就像舊的ethsign方法一樣,由於其可讀性差和重大安全漏洞,黑客青睞,大多數錢包軟件現在已停用許可證,其功能被更安全的替代方案取代。
當我們專注於許可證時,我們是否也面臨著類似於ethsign所面臨的十字路口?是改進和升級還是完全放棄,這是以太坊開發人員需要花時間考慮和討論的問題。
在得出任何结论之前,Keystone旨在加强其硬件錢包上與許可證相關的風險防範。我們正在發起一項投票,以新增以下功能:
讓我們從一個關於借錢的簡單故事開始:
我打算從我的好朋友馬雲那裡借一百萬。馬雲毫不猶豫地拿起電話,給銀行打了個電話,核實身份后,告訴銀行,“我授權某某取款一百萬。銀行確認並記錄此授權。
下一步是我去銀行,告訴櫃員,我是來取出馬雲授權的一百萬。銀行檢查授權記錄,在確認我是合適的人選后,交出一百萬。
這個故事很好地類比了以太坊上的批准授權的工作原理。在這個過程中,只有資產擁有者(Jack Ma)可以致電銀行給予授權(在鏈上),而銀行(代幣合約)管理這些授權。只有在這之後,我(被授權方)才能提取不超過授權金額的款項。如果銀行找不到授權記錄,我的提款請求無疑會被拒絕。
現在,如果我們使用不同的授權方法——許可證,會發生什麼事?從馬雲那裡借錢會怎麼樣?
這次,我要借另外一百萬。像往常一樣慷慨,馬雲甚至都沒有打電話給銀行。相反地,他拿出支票簿,填上金額,簽字,然後遞給我。然後我拿著這張支票去銀行。即使銀行沒有任何授權記錄,但銀行能夠驗證馬雲在支票上的簽名,並且根據這個,把指定金額給了我。
到目前為止,您可能已經看到了這些過程的不同之處。核心ERC-20功能的核准自以太坊推出後不久就被廣泛使用。那麼為什麼在ERC-2612中引入了許可方法來實現類似的結果呢?
ERC-2612提案於2019年3月提出,並於2022年10月完成最後審查。其部署與以太坊主網在該期間所經歷的天然氣價格劇增密切相關。
圖片:ETH主網瓦斯價格從2020年到2022年一直保持高位
在牛市和新的鏈上項目創造財富效應的結合推動用戶對鏈上交易的熱情。他們願意支付更高的費用以更快地處理他們的交易,因為有時即使僅提前一個區塊得到確認,也可能帶來顯著更高的回報。
然而,這也帶來了一個缺點:當用戶想要在鏈上交易代幣時,他們通常必須忍受過高的燃氣費用。在批准方法下,完成一次代幣交換需要兩筆交易(TX)。對於資金較小的用戶來說,交易費用可能是一個噩夢。
ERC-2612引入許可證改變了這一過程,將鏈上批准替換為離線簽名,離線簽名不需要立即提交。使用者在轉帳代幣時只需要提供授權,類似於借款故事中,我只需要在從銀行取款時出示馬雲的支票即可。
繁忙的馬雲省去了打電話的麻煩,而且似乎用戶也省去了一筆交易。當燃氣價格高昂時,費用的節省可能會相當可觀,看起來就像是一個雙贏的局面。然而,很少有人意識到潘多拉的盒子正在悄悄地被打開...
在 Permit 出現之前,駭客常用的一種詐騙加密貨幣用戶的常見手段是騙取他們簽署 Approve 交易。由於這些交易需要用戶支付 gas 費用,通常會引起懷疑,使得駭客更難成功。即使用戶在不小心點擊了該交易,事實上,它需要一些時間才能在鏈上得到確認,這為他們提供了機會提交另一筆具有相同 nonce 的交易以取消它——這使得駭客相對難以實現他們的計劃。
然而,許可證的到來就像是黑客夢想成真一樣。與批准不同,許可證不消耗 gas,只需要簽名,這顯著降低了用戶的警惕性。此外,由於離線簽名的性質,控制權掌握在黑客手中。用戶不僅沒有機會撤消他們的錯誤,而且黑客還可以保留授權,在最有利的時刻發動攻擊,從中獲取最大利益。
這導致釣魚受害者人數和被盜資金金額顯著增加。根據統計數據來自@ScamSniffer"">@ScamSniffer:
圖片:ScamSniffer 2024年上半年的釣魚攻擊報告
這種情況可能超出了原開發人員的預期。引入許可證的目的是為了減少天然氣成本,改善用戶體驗,提高效率。原本被認為是雙刃劍,既有收益又有損失,結果卻變成了單邊刀刃——鋒利無比——在原本應該保護用戶資產的盾牌上劃出一個大洞。
許可證並不是唯一基於簽名的授權方法。例如,Uniswap隨後推出了Permit2,允許所有ERC-20代幣支持離線簽名。作為第一家去中心化交易所,Uniswap的舉動進一步增加了用戶對離線簽名的依賴,這反過來增加了釣魚攻擊的風險。
作為普通使用者,我們可以採取哪些措施來避免損失,保護自己免受懸在我們身上的這把達摩克利斯之劍——一把鋒利的利刃——的傷害?
1⃣ 增加意識
受到空投誘惑時保持冷靜。
加密項目的空投看似吸引人,但大多數情況下都是冒充空投的釣魚攻擊。當遇到這樣的信息時,不要急於聲稱它。而是要從多個來源驗證空投的合法性和官方網站,以避免陷入釣魚陷阱。
避免盲目簽名
如果您不小心登陸了網路釣魚網站並且沒有意識到這一點,請在錢包提示您簽名時花點時間仔細檢查交易。如果出現“允許”、“允許2”、“批准”或“增加津貼”等條款,則表示交易正在請求令牌授權。在這一點上,您應該謹慎,因為合法的空投不需要此過程。Keystone硬體錢包已經實現了交易解析和顯示功能,讓使用者更好地瞭解交易細節,避免盲目簽名,這可能導致倉促決策的嚴重後果。
圖片:Keystone 硬體錢包,Rabby 錢包解析和顯示許可2簽名交易
2⃣ 善用工具
ScamSniffer
對於普通用戶來說,準確識別釣魚網站可能非常具有挑戰性,有些可能會輕易滑過檢測。通過使用ScamSniffer的瀏覽器插件,當嘗試訪問潛在的釣魚網站時,您將收到警報,使您有機會在互動之前停止操作。
撤銷
Revoke.cash允許您查看錢包中的代幣授權。我們建議撤銷任何可疑或無限制的授權。定期清理授權並將其限制在必要的金額上是一種良好的做法。
3⃣ 資產隔離和多簽
俗話說,不要把所有的雞蛋放在同一個籃子裡——這個原則也適用於加密資產。例如,您可以將大量資產存儲在像Keystone這樣的冷錢包中,同時使用熱錢包進行日常交易。即使您成為攻擊的受害者,您的整個餘額也不會受到損害。
對於那些有較高安全需求的人來說,使用多簽名(多簽)錢包可以進一步增強保護。多簽名下的資產只有在達到一定閾值的錢包批准時才能移動。如果一個錢包被入侵但未達到閾值,黑客將無法訪問您的資產。
雖然我們不能否認許可證帶來的價值,但日益增加的盜竊案例也顯示,它帶來的風險可能超過其好處。就像舊的ethsign方法一樣,由於其可讀性差和重大安全漏洞,黑客青睞,大多數錢包軟件現在已停用許可證,其功能被更安全的替代方案取代。
當我們專注於許可證時,我們是否也面臨著類似於ethsign所面臨的十字路口?是改進和升級還是完全放棄,這是以太坊開發人員需要花時間考慮和討論的問題。
在得出任何结论之前,Keystone旨在加强其硬件錢包上與許可證相關的風險防範。我們正在發起一項投票,以新增以下功能: