今天,錢包的業(yè)務(wù)是確保資產(chǎn)的安全。由于一切都在鏈上,目前錢包需要保護的唯一東西是守護這些資產(chǎn)的私鑰。如果你改變了密鑰,你可以在第二天安全地在互聯(lián)網(wǎng)上公布你以前的私鑰。然而,在ZK的世界里,這不再是真的:錢包不僅僅是保護認(rèn)證憑證,它還持有你的數(shù)據(jù)。 我們通過 Zupass 看到了這樣一個世界的最初跡象,Zupass 是在 Zuzalu 使用的基于ZK-SNARK的身份系統(tǒng)。用戶有一個私鑰,他們用它來做認(rèn)證系統(tǒng),它可以用來做基本的證明,比如 "證明我是Zuzalu的公民,但不透露是哪一個人"。然而,開始有其他應(yīng)用程序建立 Zupass 系統(tǒng)之上,最明顯例子的是stamps(印章)(Zupass的POAPs版本)。 
我的許多 Zupass 印章之一,證實了我是貓咪團隊的驕傲成員。
與POAP相比,印章的主要特點是印章是私有的:你在本地持有數(shù)據(jù),如果你想讓別人知道你的信息,你只能向他們證明一個印章(或印章上的一些計算)。但這創(chuàng)造了額外的風(fēng)險:如果你失去了這些信息,你就失去了你的印章。 當(dāng)然,持有數(shù)據(jù)的問題可以簡化為持有單一加密密鑰的問題:一些第三方(甚至是鏈)可以持有數(shù)據(jù)的加密副本。這有一個方便的好處,即你采取的行動不會改變加密密鑰,并不需要與持有你的加密密鑰安全的系統(tǒng)進(jìn)行任何交互。但即使如此,如果你失去了你的加密密鑰,你就會失去一切。反過來說,如果有人看到你的加密密鑰,他們就會看到所有被加密到該密鑰的東西。 Zupass 的事實解決方案是鼓勵人們將他們的密鑰存儲在多個設(shè)備上(如筆記本電腦和手機),因為他們在同一時間失去對所有設(shè)備的訪問的可能性很小。我們可以更進(jìn)一步,使用秘密共享來存儲密鑰,在多個監(jiān)護人之間進(jìn)行分割。 這種通過MPC的社會恢復(fù)對于錢包來說不是一個足夠好的解決方案,因為它意味著不但當(dāng)前的監(jiān)護人,而且以前的監(jiān)護人也可能串通起來偷竊你的資產(chǎn),這是一個不可接受的高風(fēng)險。但是,隱私泄露的風(fēng)險通?偸潜荣Y產(chǎn)損失要低,有高隱私要求的使用場景的人總是可以接受較高的損失風(fēng)險,他可以不備份與這些有隱私要求的行為相關(guān)的密鑰。 為了避免用戶被多種恢復(fù)路徑的繁瑣系統(tǒng)所困擾,支持社會恢復(fù)的錢包可能需要同時管理資產(chǎn)的恢復(fù)和加密密鑰的恢復(fù)。 回到身份話題這些變化的一個共同點是,"地址"的概念,即你用來代表鏈上 "你"的加密標(biāo)識符,將不得不徹底改變。"指示如何與我交互" 將不再僅僅是一個ETH地址;它們將不得不以某種形式,成為多個L2上的多個地址、隱形元地址、加密密鑰和其他數(shù)據(jù)的某種組合。 一種方法是讓ENS成為你的身份:你的ENS記錄可以包含所有這些信息,如果你向別人發(fā)送bob.eth(或bob.ecc.eth,或...),他們可以查詢并看到關(guān)于如何給你支付和如何與你交互的一切,包括以更復(fù)雜的跨域和隱私保護的方式。 但這種以ENS為中心的方法有兩個弱點: - 它把太多的東西與你的名稱聯(lián)系在一起。你的名稱不是你,你的名稱是你的許多屬性中的一個。應(yīng)該可以改變你的名稱,而不需要移動你的所有身份資料并在許多應(yīng)用程序中更新一大堆記錄。
- 你不能有無信任的反事實的名稱。任何區(qū)塊鏈的一個關(guān)鍵用戶體驗是能夠向尚未與鏈上的人交互的人發(fā)送幣。如果沒有這樣的功能,就會有一個相互依賴陷阱:與鏈上交互(創(chuàng)建他的名稱的賬號)需要支付交易費用,這就需要他已經(jīng)擁有Coin(可是他還沒有名稱的賬號)。ETH地址,包括CREATE2的智能合約地址,都有這個功能。ENS名稱則沒有,因為如果兩個Bob都在鏈外決定自己是bob.ecc.eth,就沒有辦法選擇哪一個得到這個名稱。
一個可能的解決方案是把更多的東西放到本文前面的架構(gòu)中提到的keystore合約中。keystore合約可以包含所有關(guān)于你的各種信息,以及如何與你交互(通過CCIP,其中一些信息可以是鏈外的),而用戶將使用他們的keystore合約作為他們的主要標(biāo)識。但他們收到的實際資產(chǎn)將被存儲在各種不同的地方。keystore 合約不與名稱綁定,而且它們是反事實的:你可以生成一個地址,而這個地址可以證明它只能由具有某些固定初始參數(shù)的keystore合約初始化。 另一類解決方案與完全放棄面向用戶的地址概念有關(guān),與比特幣支付協(xié)議的思想相似。一個想法是更多地依賴發(fā)送者和接收者之間的直接通信渠道;例如,發(fā)送者可以發(fā)送一個索。╟laim)鏈接(作為一個明確的URL或QR碼),接收者可以用該鏈接來接受他們期望的付款。 
不管是發(fā)送者還是接收者先行動,更多地依靠錢包直接實時生成最新的支付信息可以減少摩擦。也就是說,持久性標(biāo)識符是很方便的(尤其是ENS),而發(fā)送者和接收者之間直接溝通的假設(shè)在實踐中確實很棘手,所以我們最終可能會看到不同技術(shù)的組合。 在所有這些設(shè)計中,保持事情的去中心化和對用戶的可理解性是最重要的。我們需要確保用戶能夠很容易地獲得最新的信息,了解他們當(dāng)前的資產(chǎn)是什么,以及有哪些信息是為他們發(fā)布的。這些觀點應(yīng)該依賴于開放的工具,而不是專有的解決方案。要避免更復(fù)雜的支付基礎(chǔ)設(shè)施變成一個不透明的 "抽象塔",讓開發(fā)人員難以理解正在發(fā)生的事情并適應(yīng)新的環(huán)境。盡管有這些挑戰(zhàn),但為普通用戶實現(xiàn)可擴容性、錢包安全性和隱私性,對以太坊的未來至關(guān)重要。這不僅僅是技術(shù)上的可行性,而且是普通用戶的實際可及性。我們需要起來迎接這個挑戰(zhàn)。 特別感謝 Dan Finlay、Karl Floersch、David Hoffman以及Scroll和SoulWallet 團隊的反饋、檢查和建議。 |