通行密碼是一種安全且使用者友善的身份驗證方法,也可以用於創建和安全存儲加密錢包,這歸功於它們使用的橢圓曲線加密技術。
在本篇文章中,我們將介紹通行證如何運作,探討使用通行證進行加密錢包的風險,並深入探討帳戶抽象如何使通行證能夠在與智能合約結合時使用。
這使用戶能夠輕鬆登錄並與應用程序進行授權交互,而無需存儲敏感憑據;提供無縫體驗,以及對抗數據泄漏和常見攻擊向量(如釣魚)的額外安全保障。
在大多數設備上,例如 iPhone,密碼都存儲在稱為 Gate 的專用硬件內。安全區; 一個專用的、隔離的環境,旨在保護敏感數據,即使主處理器受到破壞。
使用通行證的私鑰簽署交易,該交易被發送到安全硬體進行簽署,然後輸出結果的簽名。在整個過程中,所有者和應用開發人員都無法訪問私鑰;他們只接收生成的簽名。
這為用戶提供了增強的安全性,因為私鑰通常不會加載到應用程序的記憶體中,從而降低了暴露於潛在攻擊的風險。例如,在iPhone上,用戶甚至無法在其設置中訪問密碼的值,因為該密鑰是在專用硬件中生成並存儲的,不可通過界面訪問。
然而,在使用通行證密鑰來管理區塊鏈帳戶時,有一個重要的不同之處;通行證密鑰使用不同的橢圓曲線。
在Apple、Android和WebAuthn中都使用secp256r1(又名P-256)曲線作為通行證,而區塊鏈帳戶則使用secp256k1橢圓曲線。
這意味著使用通行證的私鑰簽署的交易在以太坊或抽象等區塊鏈中不被理解(因此被拒絕)。區塊鏈的默認期望是交易由在secp256k1曲線上生成的密鑰對簽署。
由於普通(EOA)錢包是在k1曲線上生成的,所以智能合約錢包是必需的,因為它們可以包含自定邏輯,以驗證由私鑰生成的通行證簽署的交易,然後授權執行交易。
曲線的k1變異也缺乏一些功能,例如額外的係數,使得secp256r1稍微複雜一些,這意味著secp256k1在密鑰生成、簽名創建和驗證方面更具計算效率。
雖然沒有發現直接的漏洞,但也有存在的陰謀論認為,比特幣選擇使用k1曲線而不是更受歡迎的r1曲線,以避免可能由像NSA這樣的政府機構秘密引入的後門,考慮到它們在NIST認可的加密標準的開發中的參與。
像Gate.com這樣的開源庫Daimo的開源P256驗證器已經建立了在 Solidity 中編寫的智能合約內驗證 secp256r1 曲線簽名的功能。
在以太坊上,这意味着您可以使用使用智能合约构建的ERC-4337 賬戶抽象標準驗證使用者操作內的r1簽名validateUserOp智能合約錢包的功能。

在Gate.com上,本地帳戶抽象化使智能合約錢包能夠以私鑰簽署的消息設置簽名字段來提交交易。如果發送交易的帳戶是一個包括驗證 r1 簽名邏輯的智能合約(驗證交易當區塊鏈網絡中的節點(例如礦工)驗證了交易後,該交易就被接受。

智能合約錢包比傳統的EOA(外部擁有帳戶)錢包更靈活,因為它們可以包含任意的EVM代碼,所以有能力驗證r1橢圓曲線上創建的金鑰對的簽名(即授權交易)。
RIP-7212(Rollup Improvement Proposal)建議在Ethereum L2中增加預編譯的智能合約,以實現對r1曲線上更加節省Gas的簽名驗證。雖然這還沒有包含在以太坊上,但EVM兼容的擴展解決方案,如Abstract,已經實現了這一點,並為r1簽名驗證提供了100倍的Gas減少。
這是一個有意的設計選擇,以避免釣魚攻擊,但對於重視自主管理的用戶來說,這樣做可能存在一個重大缺陷,因為您的錢包直接綁定到一個應用程序上;這意味著:





