安全、模組化、可升級的智慧合約錢包,支援 Web3 的大規模採用
________ ________ ________ ________
| __ | __ | __ \ _____
| / | | | ___/ / |
__ __ _ _ / / /
| \ | / /_/__
_ ______ _ _ _ _ _ _ \ _ \ ________
| _______ | | __ | | __ | | __ | | __ | _______ |
模組化是軟體工程的關鍵原則之一。模組化架構和程式碼可實現高可重複使用性、易於維護和測試、元件之間的相互依賴性較小,最重要的是提供簡單的目的和功能,從而減少程式碼錯誤和安全性問題。
Barz 也認為模組化是整個架構和程式碼層級的關鍵原則。
為了實現模組化,我們採用 EIP-2535 Diamond、多方面代理標準,並在附加到 Diamond(Barz) 的單一方面提供每個功能集。這些模組包括:
每個模組都可以由所有者隨時連接和拆卸。
Barz 透過FacetStorage
分離每個模組的存儲,Barz 模組只會存取該模組所需的FacetStorage
。這減少了從模組存取不需要的儲存和不需要的儲存修改的機會,特別是在實施升級期間。透過這種分離每個模組使用的儲存的架構,Barz 有助於防止每個模組發生儲存衝突,從而減少在代理模式中引入潛在的漏洞。
Barz 的架構也提供了升級方面的優勢。傳統的代理模式需要升級整個邏輯實作來升級其中的一部分,而Barz只需要相應地替換相關模組,這為帳戶引入了模組化升級能力。
模組化架構有助於將程式碼分解為更小的模組,這有助於隔離和限制每個模組的功能。這有助於減少攻擊面並限制模組安全漏洞造成的潛在損害。這與 Barz 的僅存取模組所需儲存的架構一起最大化了。
與其他需要升級整個邏輯合約或包含功能集的整個模組的可升級架構不同,Barz 的架構支援每個功能的模組化可升級性,從而允許錢包合約實現最大程度的模組化和可升級性。
作為這種形式,我們的帳戶合約「Barz」支援多重簽章方案。用戶將能夠透過帳戶合約上的函數呼叫非常無縫地更改簽名方案。這使用戶能夠獲得錢包用戶體驗的多種選項,例如:
用戶想要無縫交互,並且沒有私鑰備份。他們可以在Secp256r1簽章方案上使用ECDSA ,並使用密碼(「WebAuthn」)來安全地保護密碼管理器(例如iCloud鑰匙圈)中的私鑰。
想要使用傳統錢包風格或硬體錢包的用戶可能希望使用 ECDSA(「Secp256k1」)簽名方案進行簽名驗證。
目前,我們支援 2 種簽名方案(Secp256k1 和 Secp256r1 Curve 上的 ECDSA),但是,我們將繼續擴展對多種不同簽名方案的支持,包括 BLS 和 PQC 等
這是透過模組化架構實現的,該架構根據用戶關於每個簽名方案可以提供的 UX 的偏好將簽名方面附加到帳戶方面或從帳戶方面分離。
在簽章方案更新期間,更新功能應檢查以下內容:
yarn
yarn compile
yarn test
yarn size
forge test