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