掃碼下載
BTC $75,678.66 -2.38%
ETH $2,350.67 -3.30%
BNB $630.03 -2.03%
XRP $1.43 -3.27%
SOL $86.02 -3.44%
TRX $0.3292 +0.54%
DOGE $0.0949 -5.15%
ADA $0.2492 -4.50%
BCH $444.42 -2.31%
LINK $9.27 -3.82%
HYPE $44.17 -0.90%
AAVE $105.38 -9.40%
SUI $0.9585 -5.35%
XLM $0.1702 -2.78%
ZEC $321.58 -2.42%
BTC $75,678.66 -2.38%
ETH $2,350.67 -3.30%
BNB $630.03 -2.03%
XRP $1.43 -3.27%
SOL $86.02 -3.44%
TRX $0.3292 +0.54%
DOGE $0.0949 -5.15%
ADA $0.2492 -4.50%
BCH $444.42 -2.31%
LINK $9.27 -3.82%
HYPE $44.17 -0.90%
AAVE $105.38 -9.40%
SUI $0.9585 -5.35%
XLM $0.1702 -2.78%
ZEC $321.58 -2.42%

深度丨未來的區塊鏈錢包應該是什麼樣?

Summary: 我們需要進入一個安全且易於與許多區塊鏈互動的未來。
BillyRennekamp
2021-02-02 17:14:31
收藏
我們需要進入一個安全且易於與許多區塊鏈互動的未來。

本文發布於加密谷Live,作者Billy Rennekamp,編譯李翰博、Edward。 image 在論壇帖子《作為通用錢包的Cosmos Hub》中,我提出了用戶和區塊鏈之間的未來主義關係,這涉及到當前Cosmos-SDK和即將到來的功能的組合。"子私鑰"(或Msg授權)被稱為Interchain Accounts(ICS-27)的標準以及Cosmos Hub本身的安全性。

這是一種充滿想像力提案,但它讓我思考我們需要進入一個安全且易與許多區塊鏈互動的未來。不過這到底需要哪些步驟,我提出了一條前進的道路,其結果是將關注點分離,並建立一類新的錢包,創立帳戶協調功能。

image

當前的錢包狀況

到目前為止,我們已經看到了很多錢包解決方案,它們試圖同時做很多事情。到目前為止,錢包的功能還不完備,但隨著我們進入一個用戶希望與許多網絡互動的世界,當前無法擴展的架構尚無法滿足這一需求。在一個高層次上,錢包的各種職責包括:

  • 私鑰管理

  • 應用介面

  • 交易管理

Ethereum已經經歷了一些這樣的成長之痛,因為像EVM這樣的圖靈完整的虛擬機幾乎允許任何種類的應用存在,而且它們都期望從一個錢包中工作。雖然Ethereum錢包已經提出了協議和巧妙的解決方案,為各種各樣的應用提供介面,但他們仍然期望這些應用是來自一個通用的EVM基礎設施。隨著我們看到特定應用區塊鏈的模式成為現實,通過IBC連接,Ethereum如何處理各種應用的界限將被打破。

切實可行的方法是將關注點分離。讓這三個任務作為獨立的解決方案存在,每個都可以專注於做好自己的唯一任務。這將揭示出對一種新型服務的需求,我一直稱之為帳戶協調功能。

image 私鑰管理

密碼學是很難的。如果你不是專家,犯錯誤的機率很高,後果可能是災難性的。期望所有錢包和dApp開發者都在內部擁有這種專業知識是不公平的。傳統的應用程序已經認識到了這一點,並且經常通過將認證委託給使用oAuth標準的第三方來解決。

你可能認為這錢包唯一的真正責任是保證你的 鑰安全。但當我介紹其他常見的功能時,你會發現這遠非如此。事實上,這往往是錢包建設者最不具備的能力。密碼學和安全專家應該負責開發行業標準的解決方案,並實施私鑰存儲的最佳實踐。這應該是他們的全部業務,然而相反,我們看到現在的錢包在安全性方面做得不錯--但當涉及到密碼學時,這並不夠好。

如果將 鑰存儲的責任從錢包中移除,可能會導致更多種類的安全解決方案,這些解決方案依賴於不同的假設並提供不同的功能。目前已經有很多超越傳統軟件存儲的私鑰解決方案:像Ledger中的硬件安全模塊,或者其他加密技術,比如Torus使用的shamir秘密共享,像ZenGo使用的閾值方案,多方計算,或者新穎的零知識技術。鄭重聲明,我認為保管私鑰管理的共同責任空間也完全沒有被開發出來。

不管私鑰到底是如何存儲的,存儲方案的責任其實應該止於此。其只做一件事,而且要做好--存儲私鑰。對私鑰的訪問應該由類似的安全授權技術來處理。

WalletConnect,或者類似的用於在 鑰管理器和應用程序之間傳輸數據的協議是進一步授權應該發生的地方。

image

應用介面

如今,一個錢包對應用介面的範圍相當廣泛。一方面,一些錢包提供了對應用功能的深度集成訪問。Argent和Gnosis Safe都在每個應用的基礎上支持越來越多的自定義介面。這也是大多數Cosmos錢包的路線,網絡期望最低限度的stake和治理介面。直接在錢包內提供自定義介面意味著你可以確保更好的用戶體驗,但它限制了錢包可以訪問的應用數量,也限制了錢包變成新的應用

在另一端,是試圖將大部分介面責任推給應用開發者的錢包。一般來說,錢包使用web3.js或cosmJS將一個API或介面接入到應用程序中。或者,錢包可能包含它自己的瀏覽器,並已經集成了API(Mist、Metamask Mobile、Status和Coinbase Wallet)。它們也可以利用瀏覽器擴展來接入API(Metamask,Keplr)。WalletConnect允許介面在移動和桌面瀏覽器之間以及移動和移動之間傳輸。無論哪種方式,都要由應用開發者來訪問和利用錢包API,以便為用戶提供簽名功能。 這條路徑消除了錢包作為訪問應用的瓶頸,但也帶來了自身的挑戰--即安全性和流暢的用戶體驗。

應該考慮一種安全的授權技術,以確保應用程序能夠訪問簽名功能,而不會因為確認的介面而劝退用戶同時也不會使用戶陷入不小心簽名的境地。MetaMask一直在嘗試解決這個問題,它創建了一個可組合的安全介面,用於私鑰與應用程序的通信,稱為 "Snaps"。它在很大程度上借鑒了Agoric的首席科學家Mark Miller在對象能力方面的工作,對象能力對可以跨環境傳輸的精確對象級控制進行編碼。Snaps提供了連接應用程序和私鑰管理器所需的安全性和標準化,但我認為Metamask在這個架構上走得還不夠遠,因為所有三個錢包功能都可能被隔離並使用這個模型組成。

image

交易管理

雖然我們已經看到很多錢包承擔了提供應用介面的重任,但我還是認為,到目前為止,錢包的主要職責是私鑰管理。這使得錢包的第三個職責--交易管理的資源嚴重不足。我希望看到這成為錢包的主要職責,因為應用介面和私鑰管理成為指定第三方的責任。

交易管理可以被認為是應用和簽名解決方案之間的實際介面。這是一些操作的請求被解析成可以被私鑰簽名的格式的步驟。它包括與應用的通信以及與私鑰管理的通信。在這兩者之間,需要簽署的數據應該被解析,並以一種用戶可以理解他們正在簽署的內容和原因的方式顯示給用戶。此外,這些簽名請求的歷史和狀態應該被記錄下來並提供給用戶。

當使用Ethereum時,交易管理是很棘手的,因為基本上只有一種交易類型(eth_send),但它包括一個數據字段,當針對智能合約時,可以引用任何數量的方法。如果你很幸運,錢包能夠訪問與它交互的特定合約的ABI文件,允許將數據字段轉換為函數名和參數。ABI文件還可以讓錢包顯示交易成功處理後發出的事件。這就進入了區塊瀏覽器的領域,它是一個完整的服務,基本上專門用於帳戶歷史--以及整個網絡的歷史。然而到目前為止,區塊瀏覽器在網絡方面大多是單一的。

在這空間中,有許多不同的消息可以包含在交易中。這些消息中的每一個都有不同的功能,但傳統上都是自行運行的,所以不需要外部的ABI文件。隨著向protobuf的遷移,我們看到正在進行的討論是如何保留這些性質,同時確保protobuf帶來的所有性能的提高。一個選擇將是在protobuf文件中像ABI一樣使用,但還有許多其他解決方案仍在探索中。

無論網絡架構如何,這都是一個棘手的問題,但對於確保用戶能夠驗證他們到底在做什麼是至關重要的。當額外的私鑰被添加到這個組合中時,這個問題會變得更加複雜。一些錢包已經允許你創建許多帳戶,這些帳戶都來自於一個共同的助記詞與私鑰派生路徑。這對於那些不想把自己的defi帳戶和遊戲帳戶混在一起的用戶來說,是一個很有用的功能。通過私鑰派生可以在網絡之間進行切換,儘管我不知道有哪個Ethereum錢包允許你通過支持多個助記詞和私鑰來合併帳戶(不過Keplr有)。這就給用戶帶來了負擔,要跟蹤哪個身份與哪個私鑰相關聯。

image

帳戶協調功能

交易管理一直沒有得到充分的服務,隨著網絡的增加和相應 鑰的增多,這個問題只會越來越嚴重。隨著子私鑰將帳戶能力分配給特定私鑰的能力的增加,這一問題將成倍增加。職責範圍的擴大,值得為這個角色起一個新的名字。我想為一種新型的錢包提出一個理由,它主要關注的是成為一個帳戶協調服務。

帳戶協調功能的主要目標是跟蹤哪些私鑰在哪些網絡上具有哪些功能--以及如何使用WalletConnect等協議訪問這些私鑰的簽名功能。雖然它應該努力實現外部的隱私和匿名性,但從用戶的角度來看,它應該對所有dApp、私鑰存儲和網絡的活動進行完整的概述。它可能會要求一個私鑰助記詞的主公鑰,以便得出所有可能的公鑰。這將允許帳戶協調功能檢查所有可能的網絡上的所有可能的帳戶,看看你是否曾經在那裡進行過互動。它將檢測私鑰是否是多簽名、基於合同的錢包、組模塊或子私鑰的一部分。隨著您的確認,它將開始為您跟蹤所有這些帳戶,記住您的偏好,以便在何時使用哪個私鑰。

帳戶協調功能應該允許你審計你在每個應用程序上的互動,同時保留一個連貫的歷史-想想谷歌的oAuth告訴你當前登錄了哪些服務和設備。最終,這應該看起來像一個以用戶為中心的多網絡區塊 瀏覽 器,跟蹤你自己的所有 鑰並代表你協調它們。這將需要大量關於你使用過的或未來可能與之互動的眾多網絡的資料。這種資料可以從不同的來源收集,並將取決於你所面對的到底是哪種應用。我想像大多數信息應該是來自應用程序本身,通過像WalletConnect這樣的介面。

帳戶協調功能將牢牢地站在你的私鑰和應用程序之間,它將作為雙方之間的中介,並將加入你在基於區塊鏈的網絡上的所有互動。它的建立將只為你服務,所以雖然它將擁有你的信息寶庫,但只能由你自行決定是否訪問。

image

warnning 風險提示
app_icon
ChainCatcher 與創新者共建Web3世界