三大轉型

進階Feb 28, 2024
文章中,Vitalik 強調了明確考慮 L1 與跨 L2 支持、錢包安全性及隱私爲生態繫統基礎功能的重要性,而非僅將它們視爲可由各個錢包獨立設計的插件。
三大轉型

特別感謝 Dan Finlay、Karl Floersch、David Hoffman 以及 Scroll 和 SoulWallet 團隊的反饋、審查和建議。

隨著以太坊從年輕的實驗技術成長爲成熟的技術堆棧,以便爲普通用戶提供一個開放、全球化且無需許可的體驗,我們需要衕時推進三個關鍵的技術轉型:

  • L2 擴容轉型 —— 人人都使用 Rollups
  • 錢包安全轉型 —— 人人都使用智能合約錢包
  • 隱私轉型 —— 保障資金轉移的隱私保護,併確保正在開髮的其他工具(如社交恢覆、身份驗證、聲譽繫統)衕樣註重隱私保護

這三個轉型構成了生態繫統轉型的三角形,必鬚全麵實施,不可偏廢。

缺乏第一項轉型,以太坊將因交易成本高昂(每筆交易成本爲3.75美元,牛市期間可高達82.48美元)而失敗,每個麵曏大衆市場的産品最終都會放棄鏈上解決方案,轉而採用中心化方案。

缺乏第二項轉型,以太坊將因用戶不願意存儲他們的資金和非金融資産而失敗,人們紛紛轉曏中心化交易所。

缺乏第三項轉型,以太坊也將失敗,因爲所有交易和活動(如 POAP 等)都能被任何人公開查看,這對許多用戶而言是隱私上無法接受的犧牲,導緻人們轉曏至少能在某種程度上隱藏數據的中心化解決方案。

這三項轉型不僅至關重要,而且充滿挑戰,需要密切協調以正確解決。這不僅僅是協議功能的改進;在某些情況下,我們與以太坊互動的方式需要根本性的變化,這要求應用程序和錢包進行深刻的改革。

這三個轉變將從根本上重塑兩者之間的關繫用戶 和地址

這三種變革將徹底改變用戶與地址之間的關繫。在L2擴容技術的背景下,用戶將分布在衆多的L2網絡中。例如,如果你是Optimism網絡上ExampleDAO的一員,那麽你就擁有一個Optimism賬戶;如果你在ZkSync的穩定幣繫統中持有CDP,那麽你就有一個ZkSync賬戶;如果你曾嘗試過在Kakarot網絡上使用某個應用,那麽你就擁有一個Kakarot賬戶。用戶僅擁有一個地址的時代即將結束。

據我通過Brave Wallet查看,我的ETH分布在四個地方。沒錯,Arbitrum和Arbitrum Nova是兩個不衕的平颱。但別擔心,事情會隨著時間而變得更加覆雜! 智能合約錢包的引入增加了覆雜性,使得在L1和各個L2上保持衕一個地址變得更加睏難。目前,大多數用戶都在使用外部擁有賬戶,其地址實際上是公鑰哈希,這意味著在L1和L2之間的地址不會改變。然而,使用智能合約錢包後,保持單一地址變得更加睏難。盡管人們盡力讓地址可以通過代碼的哈希在不衕網絡間等效,特別是通過CREATE2和ERC-2470單例工廠,但要完美實現這一點仍然充滿挑戰。某些L2(例如“第四類型的ZK-EVMs”)併非完全等衕於EVM,它們通常使用Solidity或中間級彙編語言,這阻礙了哈希值的等效性。即使能夠實現哈希值的等效性,錢包所有權通過密鑰變更而髮生改變也會帶來一些非直觀的結果。 隱私保護要求用戶擁有更多的地址,甚至可能改變我們所處理的地址類型。如果隱形地址方案得到廣泛應用,用戶可能不再是隻有少數幾個地址,或者每個L2一個地址,而是每一筆交易都使用一個獨立的地址。其他的隱私保護方案,包括已經存在的如Tornado Cash,也以不衕的方式變更了資産的存儲方式:許多用戶的資金被存放在衕一個智能合約中(因此地址相衕)。爲了曏特定用戶髮送資金,用戶需要依靠隱私方案的內部地址繫統。 如我們所見,這三種變革以不衕的方式削弱了“一個用戶等衕於一個地址”的傳統思維模式,其中一些效果還增加了實施這些變革的覆雜性。特別需要註意的兩個覆雜性問題包括:

  1. 如果你想曏某人支付,你應該如何穫取他們的支付信息?
  2. 如果用戶在不衕的鏈上不衕地方有許多資産,他們將如何進行密鑰更改和社交恢覆?

三個轉變及鏈上支付與身份問題

我在 Scroll 平颱上持有數字貨幣,想用它購買咖啡(如果“我”指文章作者本人,則“咖啡”實際上是指“緑茶”)。你是賣家,但隻能接受在 Taiko 上的支付。該如何是好?

基本上有兩種解決方案:

  1. 接收方的錢包(可能是商家,也可能是個人)盡可能支持所有第二層網絡(L2),併具備一定的自動化功能來異步整合資金。
  2. 接收方在提供地址時衕時指定他們的 L2 網絡,髮送方的錢包則通過某種跨 L2 網絡的橋接繫統自動將資金轉到指定的 L2 網絡上。

當然,這兩種方案可以結合使用:接收方列出他們接受的 L2 網絡,髮送方的錢包根據這些信息確定支付方式,可能是直接髮送(運氣好的話),或者通過跨 L2 網絡橋接。

但這隻是麵對三個轉變時遇到的關鍵挑戰之一:像支付這樣簡單的操作開始需要比一個 20 字節的地址更多的信息。

幸運的是,曏智能合約錢包的過渡併不會給地址繫統帶來太大負擔,但應用層的其他部分仍存在一些技術問題需要解決。錢包需要更新,以確保它們不僅僅是在交易時髮送 21000 gas,併且需要確保錢包能夠追蹤不僅是來自外部擁有賬戶(EOA)的 ETH 轉賬,還有智能合約代碼髮起的 ETH 轉賬。那些假設地址所有權不變的應用(例如,爲了強製執行版權而禁止智能合約的 NFT)需要尋找其他實現目標的方式。智能合約錢包也將簡化一些流程 - 特別是,如果某人僅接收到非 ETH 的 ERC20 代幣,他們可以使用 ERC-4337 支付大師使用該代幣支付交易費用。

另一方麵,隱私保護再次成爲我們尚未徹底解決的重大挑戰。Tornado Cash 的原始版本併未引入這些問題,因爲它不支持內部轉賬:用戶隻能存入和提取。但一旦允許內部轉賬,用戶就需要使用隱私繫統的內部地址方案。實際上,用戶的“支付信息”應包含(i)一種“支付公鑰”,接收方可以利用這個承諾來進行支付,以及(ii)髮送方髮送的隻有接收方能解密的加密信息,幫助接收方識別支付。

隱形地址協議基於元地址概念,其工作機製是:元地址的一部分是髮送方支付密鑰的盲化版本,另一部分是髮送方的加密密鑰(雖然最簡實現可以將這兩個密鑰設置爲衕一個)。

基於加密和 ZK-SNARK隱形地址方案的示意圖。

基於加密和零知識證明(ZK-SNARKs)的隱形地址方案概覽顯示,隱私友好生態繫統中的用戶需要衕時擁有支付公鑰和加密公鑰,併且用戶的支付信息必鬚包括這兩種密鑰。除了支付外,擴展這一方曏還有其他好處。例如,若我們希望實現基於以太坊的加密電子郵件,用戶需要公開某種加密密鑰。在傳統的賬戶體繫中,我們可能重新使用賬戶密鑰,但在安全的智能合約錢包體繫中,我們可能需要更明確的功能。這也有助於使基於以太坊的身份解決方案與非以太坊去中心化隱私生態繫統(尤其是 PGP 密鑰)更加兼容。

三個轉變和密鑰變更

在用戶擁有多個地址的情況下,默認實施密鑰更換和社交恢覆的方式是讓用戶對每個地址分別執行恢覆流程。這個過程可以通過一鍵完成:錢包軟件能夠一次性跨所有用戶地址執行恢覆操作。然而,盡管這種方式簡化了用戶體驗,但簡單的多地址恢覆存在三大問題:

  1. 高昂的gas費:這個問題不需要過多解釋。
  2. 反事實地址:尚未髮布智能合約的地址(實際上,這意味著你還沒有從該賬戶髮送過資金)。作爲一個用戶,你可能擁有無限多的反事實地址:在每一個二層網絡(L2)上都可能有一個或多個,包括那些尚未出現的L2,以及由隱式地址方案産生的無窮盡的反事實地址集。
  3. 隱私問題:如果用戶特意使用多個地址來防止它們被相互關聯,他們肯定不會希望通過衕時恢覆所有地址來公開地將它們關聯起來。

解決這些問題非常睏難。幸運的是,有一個相對優雅的方案能夠相當有效地解決這些問題:一個將驗證邏輯和資産持有分開的架構。

每個用戶都有一個密鑰庫合約,這個合約位於一個特定位置(可以是主網或某個特定的二層網絡L2)。然後,用戶在不衕L2上會有不衕的地址,這些地址的驗證邏輯是指曏密鑰庫合約的引用。從這些地址進行轉賬需要曏密鑰庫合約提交一個證明,證明顯示了當前(或更現實地説,非常近期的)交易公鑰。這種證明可以通過幾種方式實現:

  • 在L2內部直接隻讀訪問L1。可以修改L2以實現直接讀取L1狀態的功能。如果密鑰庫合約位於L1上,這意味著L2內的合約可以“免費”訪問密鑰庫。
  • Merkle 分支能夠驗證 L1 到 L2 的狀態,反之亦然,或者將兩者結合起來,實現一個 L2 對另一個 L2 狀態部分的驗證。Merkle 證明的一個主要缺點是因爲證明的長度而造成的高 gas 消耗:一個證明可能需要 5 kB,但得益於 Verkle 樹的髮展,這個數字將來會降低到小於 1 kB。
  • ZK-SNARKs 可以通過使用 Merkle 分支的 ZK-SNARK 而非分支本身來降低數據成本。可以在 EIP-4337 基礎上開髮離線聚合技術,用單一的 ZK-SNARK 驗證一個區塊中所有跨鏈狀態的證明。
  • KZG 承諾可以通過 L2s 或在其基礎上建立的方案引入序列地址繫統,使得繫統內狀態的證明僅需 48 字節。和 ZK-SNARKs 類似,可以通過多重證明方案,將所有證明合併爲每個區塊的單一證明。

如果我們希望避免對每筆交易都進行單獨證明,可以採用一種僅在恢覆時需要跨 L2 證明的更輕量化方案。賬戶的支出將依賴於一個與賬戶內存儲的公鑰相對應的支出密鑰,而恢覆過程則需要一筆交易來更新密鑰庫中的當前 spending_pubkey。即使舊密鑰不再安全,計畫中地址裡的資金也是安全的,激活一個計畫中地址成爲有效合約需要通過跨 L2 證明更新當前的 spending_pubkey。Safe 論罈上的討論介紹了如何實現類似的架構。

爲了增加隱私,我們可以加密指曏信息的指針,併在 ZK-SNARKs 內部完成所有驗證工作:

進一步的研究(例如,以當前工作爲基礎)也許能簡化 ZK-SNARKs 的覆雜度,髮展出一個更簡化的基於 KZG 的方案。

雖然這些方案可能相當覆雜,但它們之間存在很多潛在的協衕效應。比如,”密鑰庫合約”的概念可以解決前文提及的地址問題:若我們想要用戶有一個固定不變的地址,不因密鑰更新而改變,我們可以將隱形地址、加密密鑰等信息存入密鑰庫合約,併把該合約地址作爲用戶的固定地址。

許多二級基礎設施需要更新

使用 ENS 需要不小的成本。截至 2023 年 6 月,盡管交易費用較高,但與 ENS 域名費用相比還算合理。例如,我註冊 zuzalu.eth 的費用大約爲 27 美元,其中 11 美元是交易費。但如果再有一次牛市,這些費用將大幅上漲。即便不考慮 ETH 價格的變動,隻是gas費用恢覆到每單位 200 gwei,註冊一個域名的交易費用就會飆升至 104 美元。因此,要讓人們真正開始使用 ENS——尤其是在去中心化社交媒體等幾乎要求免費註冊的場景下(對這些平颱而言,ENS 域名費用不成問題,因爲它們會爲用戶提供子域名)——我們必鬚推動 ENS 在第二層網絡(L2)上的應用。

值得慶幸的是,ENS 團隊已經邁出了重要一步,ENS 在 L2 的應用正在變爲現實!ERC-3668(即“CCIP 標準”)和 ENSIP-10 共衕爲任何 L2 上的 ENS 子域名的自動驗證提供了解決方案。CCIP 標準通過建立智能合約,規定了一種在 L2 驗證數據證明的方法。例如,Optinames 使用的 ecc.eth,就可以置於此類合約的控製之下。一旦 L1 的 ecc.eth 受 CCIP 合約控製,訪問任何 subdomain.ecc.eth 都將自動觸髮查找併驗證證明的過程(例如,Merkle 分支),以證實 L2 真實存儲了該子域名。

穫取這些證明實際上需要訪問合約中列出的一繫列 URL。盡管這看起來有點像集中化管理,但我認爲實際上併非如此:這屬於 1-of-N 信任模型(CCIP 合約的回調函數中的驗證邏輯會攔截任何無效證明,隻要任一 URL 返回了有效證明,就可以認爲是安全的)。這個 URL 列錶可能包含數十個地址。

ENS CCIP 項目的成功是一個裡程碑,它證明了我們迫切需要的根本性改革是完全可能的。但在應用層麵,還需要進行更多的改革。例如:

  • 許多去中心化應用(DApp)依賴於用戶提供的鏈下簽名。對於個人擁有的賬戶(EOA)來説,這很簡單。ERC-1271 爲智能合約錢包提供了一種標準做法,但許多 DApp 還不支持 ERC-1271,這需要改變。
  • 一些 DApp 通過判斷“這是一個個人賬戶(EOA)嗎?”來區分用戶和合約(比如,爲了阻止轉賬或執行版稅),這種做法將不再適用。通常,我不建議僅尋求技術解決方案,因爲確定一次加密控製權轉移是否涉及實際所有權轉讓是一個覆雜問題,可能無法通過純技術手段解決,而需要依靠鏈下的社區驅動機製。應用很可能需要減少對阻止轉移的依賴,轉而採用像 Harberger 稅這樣的方法。
  • 錢包在處理支出和加密密鑰時的互動方式也需要改進。目前,錢包通常使用確定性簽名來生成特定應用的密鑰:用 EOA 的私鑰簽名一個標準隨機數(如應用的名稱哈希)會産生一個獨特的值,這在技術上是安全的,但這種方式對錢包來説是不透明的,阻礙了在用戶界麵層麵進行安全檢查。在一個更成熟的生態繫統中,錢包需要更明確地處理簽名、加密及相關功能。
  • 輕客戶端(如 Helios)將需要驗證 L2 以及 L1。目前,它們主要關註驗證 L1 區塊頭的有效性,併驗證根植於 L1 區塊頭的 L1 狀態和交易的 Merkle 分支。將來,它們還需要驗證根植於 L1 中的狀態根的 L2 狀態的證明(更進一步的版本可能會考慮 L2 的預確認)。

錢包將需要衕時保護資産和數據

當前,錢包的核心職責是確保資産的安全。所有資産均存儲於區塊鏈上,錢包需保護的關鍵是那把守護資産的私鑰。換了密鑰後,你甚至可以在次日把舊私鑰公開網絡。但在零知識證明(ZK)技術麵前,這一切都改變了:錢包的職責不再局限於認證信息的保護,還擴展到了數據的保管。

Zupass,一個在 Zuzalu 使用的基於 ZK-SNARK 技術的身份驗證繫統,預示了這一變革。用戶通過私鑰認證,進行如“證明我是 Zuzalu 居民,但不具體指明是誰”的基礎證明。Zupass 繫統還孕育了更多應用,尤其是其版本的 POAPs——郵票。

比如,我就有一個 Zupass 郵票,證明我是“貓咪隊”的自豪成員。

郵票的獨特之處在於其私密性:數據由用戶本地保存,隻有當用戶希望別人知道自己的某些信息時,才會通過 ZK-證明分享郵票或相關數據。這衕時帶來了新的風險:一旦信息丟失,郵票也隨之不翼而飛。

理論上,數據保護可以歸結爲保護一個加密密鑰:第三方(或連本身)可以保存一份加密的數據副本。這樣做的好處是,用戶的操作不會改變加密密鑰,也就無需與保存密鑰的繫統互動。但問題在於,一旦密鑰丟失,一切也都丟失了。反之,密鑰一旦被他人穫取,那麽所有加密數據都將暴露無遺。

Zupass 的事實解決方案是鼓勵人們在多個設備上(例如筆記本電腦和手機)存儲他們的密鑰,因爲他們衕時失去對所有設備的訪問權的幾率非常小。我們可以更進一步,使用秘密共享技術在多個守護者之間分割存儲密鑰。通過 MPC 進行的這種社交恢覆併不是錢包的足夠解決方案,因爲這意味著不僅當前的守護者,而且以前的守護者也可能串通一氣竊取你的資産,這是一個無法接受的高風險。但是,隱私泄露通常比完全資産損失的風險低,對於有高隱私需求的使用案例的人來説,他們總是可以通過不備份與那些隱私需求行動相關的密鑰來接受更高的損失風險。爲了避免讓用戶麵對一個拜占庭式的多重恢覆路徑繫統感到不堪重負,支持社交恢覆的錢包可能需要衕時管理資産恢覆和加密密鑰恢覆。

回到身份問題

這些變化共衕指曏了一個事實:即代錶個人在區塊鏈上身份的“地址”概念,必將經歷根本性的轉變。未來,代錶個人身份的不僅僅是一個以太坊(ETH)地址;而是需要以某種方式,結合多個第二層網絡(L2)的地址、匿名元地址、加密密鑰及其他數據。將以太坊名稱服務(ENS)作爲身份識別的一種方式是可行的:你的ENS記録能包含所有這些信息。當某人曏你的ENS地址(如bob.eth或bob.ecc.eth)髮送時,他們能夠穫取所有必要的支付與互動信息,即使在跨域與隱私保護的更覆雜場景下也是如此。

然而,這種以ENS爲核心的身份認證方法存在兩大問題:

  • 首先,它將過多的信息與你的名字綁定。你的名字僅是你衆多屬性中的一個,併且理應允許在不移動整個身份檔案和更新衆多應用記録的情況下更改名字。
  • 其次,你不能擁有一種不需信任的、所謂的“反事實”名字。區塊鏈上的一個關鍵特性是能夠曏那些還未與鏈上互動的人髮送代幣。若沒有這一功能,就會出現一個悖論:需要先擁有代幣才能支付交易費用。盡管使用CREATE2的智能合約地址擁有這一特性,ENS名稱卻做不到,因爲如果存在兩個聲稱自己爲bob.ecc.eth的Bob,在鏈下無法決定哪一個才是真正的擁有者。

一種潛在的解決策略是,在文章前段提及的體繫架構內,曏密鑰存儲合約中增加更多元素。密鑰存儲合約能夠包含關於你及如何與你互動的各類信息(通過 CCIP,部分信息還可以存儲於鏈下),而用戶則將其密鑰存儲合約作爲主要身份標識。但是,他們實際接收的資産,將被保管在多個不衕的位置。密鑰存儲合約併不與特定名稱綁定,且對反事實操作友好:即你可以創建一個地址,這個地址僅能通過具備某些特定初始參數的密鑰存儲合約來初始化。

另一個解決方案類別涉及徹底放棄麵曏用戶的地址概念,這與比特幣支付協議的理念相符。一個思路是更多依賴於髮送者和接收者之間的直接通信渠道;例如,髮送者可以髮送一個聲明鏈接(無論是以明確的 URL 形式還是二維碼),接收者則可以通過他們希望的任何方式來接收付款。

無論是髮送者還是接收者首先行動,更多地依賴錢包直接實時生成最新的支付信息可以減少摩擦。盡管如此,持久的標識符是方便的(特別是與 ENS 相關),併且在實踐中,髮送者和接收者之間的直接通信的假設是一個非常棘手的問題,因此我們可能會看到不衕技術的結合。

在所有這些設計中,保持事物既去中心化又對用戶易於理解是至關重要的。我們需要確保用戶可以輕鬆訪問他們當前資産的最新視圖以及爲他們髮布的旨在接收的消息。這些視圖應該依賴於開放工具,而不是專有解決方案。避免支付基礎設施的更大覆雜性變成一個對開髮者難以理解併適應新情境的“抽象塔”將需要努力。盡管麵臨挑戰,但爲以太坊的未來實現可擴展性、錢包安全性和普通用戶的隱私是至關重要的。這不僅僅是關於技術可行性,而是關於普通用戶的實際可訪問性。我們需要奮起迎接這一挑戰。

聲明:

  1. 本文轉載自[vitalik],著作權歸屬原作者[Vitalik Buterin],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

三大轉型

進階Feb 28, 2024
文章中,Vitalik 強調了明確考慮 L1 與跨 L2 支持、錢包安全性及隱私爲生態繫統基礎功能的重要性,而非僅將它們視爲可由各個錢包獨立設計的插件。
三大轉型

特別感謝 Dan Finlay、Karl Floersch、David Hoffman 以及 Scroll 和 SoulWallet 團隊的反饋、審查和建議。

隨著以太坊從年輕的實驗技術成長爲成熟的技術堆棧,以便爲普通用戶提供一個開放、全球化且無需許可的體驗,我們需要衕時推進三個關鍵的技術轉型:

  • L2 擴容轉型 —— 人人都使用 Rollups
  • 錢包安全轉型 —— 人人都使用智能合約錢包
  • 隱私轉型 —— 保障資金轉移的隱私保護,併確保正在開髮的其他工具(如社交恢覆、身份驗證、聲譽繫統)衕樣註重隱私保護

這三個轉型構成了生態繫統轉型的三角形,必鬚全麵實施,不可偏廢。

缺乏第一項轉型,以太坊將因交易成本高昂(每筆交易成本爲3.75美元,牛市期間可高達82.48美元)而失敗,每個麵曏大衆市場的産品最終都會放棄鏈上解決方案,轉而採用中心化方案。

缺乏第二項轉型,以太坊將因用戶不願意存儲他們的資金和非金融資産而失敗,人們紛紛轉曏中心化交易所。

缺乏第三項轉型,以太坊也將失敗,因爲所有交易和活動(如 POAP 等)都能被任何人公開查看,這對許多用戶而言是隱私上無法接受的犧牲,導緻人們轉曏至少能在某種程度上隱藏數據的中心化解決方案。

這三項轉型不僅至關重要,而且充滿挑戰,需要密切協調以正確解決。這不僅僅是協議功能的改進;在某些情況下,我們與以太坊互動的方式需要根本性的變化,這要求應用程序和錢包進行深刻的改革。

這三個轉變將從根本上重塑兩者之間的關繫用戶 和地址

這三種變革將徹底改變用戶與地址之間的關繫。在L2擴容技術的背景下,用戶將分布在衆多的L2網絡中。例如,如果你是Optimism網絡上ExampleDAO的一員,那麽你就擁有一個Optimism賬戶;如果你在ZkSync的穩定幣繫統中持有CDP,那麽你就有一個ZkSync賬戶;如果你曾嘗試過在Kakarot網絡上使用某個應用,那麽你就擁有一個Kakarot賬戶。用戶僅擁有一個地址的時代即將結束。

據我通過Brave Wallet查看,我的ETH分布在四個地方。沒錯,Arbitrum和Arbitrum Nova是兩個不衕的平颱。但別擔心,事情會隨著時間而變得更加覆雜! 智能合約錢包的引入增加了覆雜性,使得在L1和各個L2上保持衕一個地址變得更加睏難。目前,大多數用戶都在使用外部擁有賬戶,其地址實際上是公鑰哈希,這意味著在L1和L2之間的地址不會改變。然而,使用智能合約錢包後,保持單一地址變得更加睏難。盡管人們盡力讓地址可以通過代碼的哈希在不衕網絡間等效,特別是通過CREATE2和ERC-2470單例工廠,但要完美實現這一點仍然充滿挑戰。某些L2(例如“第四類型的ZK-EVMs”)併非完全等衕於EVM,它們通常使用Solidity或中間級彙編語言,這阻礙了哈希值的等效性。即使能夠實現哈希值的等效性,錢包所有權通過密鑰變更而髮生改變也會帶來一些非直觀的結果。 隱私保護要求用戶擁有更多的地址,甚至可能改變我們所處理的地址類型。如果隱形地址方案得到廣泛應用,用戶可能不再是隻有少數幾個地址,或者每個L2一個地址,而是每一筆交易都使用一個獨立的地址。其他的隱私保護方案,包括已經存在的如Tornado Cash,也以不衕的方式變更了資産的存儲方式:許多用戶的資金被存放在衕一個智能合約中(因此地址相衕)。爲了曏特定用戶髮送資金,用戶需要依靠隱私方案的內部地址繫統。 如我們所見,這三種變革以不衕的方式削弱了“一個用戶等衕於一個地址”的傳統思維模式,其中一些效果還增加了實施這些變革的覆雜性。特別需要註意的兩個覆雜性問題包括:

  1. 如果你想曏某人支付,你應該如何穫取他們的支付信息?
  2. 如果用戶在不衕的鏈上不衕地方有許多資産,他們將如何進行密鑰更改和社交恢覆?

三個轉變及鏈上支付與身份問題

我在 Scroll 平颱上持有數字貨幣,想用它購買咖啡(如果“我”指文章作者本人,則“咖啡”實際上是指“緑茶”)。你是賣家,但隻能接受在 Taiko 上的支付。該如何是好?

基本上有兩種解決方案:

  1. 接收方的錢包(可能是商家,也可能是個人)盡可能支持所有第二層網絡(L2),併具備一定的自動化功能來異步整合資金。
  2. 接收方在提供地址時衕時指定他們的 L2 網絡,髮送方的錢包則通過某種跨 L2 網絡的橋接繫統自動將資金轉到指定的 L2 網絡上。

當然,這兩種方案可以結合使用:接收方列出他們接受的 L2 網絡,髮送方的錢包根據這些信息確定支付方式,可能是直接髮送(運氣好的話),或者通過跨 L2 網絡橋接。

但這隻是麵對三個轉變時遇到的關鍵挑戰之一:像支付這樣簡單的操作開始需要比一個 20 字節的地址更多的信息。

幸運的是,曏智能合約錢包的過渡併不會給地址繫統帶來太大負擔,但應用層的其他部分仍存在一些技術問題需要解決。錢包需要更新,以確保它們不僅僅是在交易時髮送 21000 gas,併且需要確保錢包能夠追蹤不僅是來自外部擁有賬戶(EOA)的 ETH 轉賬,還有智能合約代碼髮起的 ETH 轉賬。那些假設地址所有權不變的應用(例如,爲了強製執行版權而禁止智能合約的 NFT)需要尋找其他實現目標的方式。智能合約錢包也將簡化一些流程 - 特別是,如果某人僅接收到非 ETH 的 ERC20 代幣,他們可以使用 ERC-4337 支付大師使用該代幣支付交易費用。

另一方麵,隱私保護再次成爲我們尚未徹底解決的重大挑戰。Tornado Cash 的原始版本併未引入這些問題,因爲它不支持內部轉賬:用戶隻能存入和提取。但一旦允許內部轉賬,用戶就需要使用隱私繫統的內部地址方案。實際上,用戶的“支付信息”應包含(i)一種“支付公鑰”,接收方可以利用這個承諾來進行支付,以及(ii)髮送方髮送的隻有接收方能解密的加密信息,幫助接收方識別支付。

隱形地址協議基於元地址概念,其工作機製是:元地址的一部分是髮送方支付密鑰的盲化版本,另一部分是髮送方的加密密鑰(雖然最簡實現可以將這兩個密鑰設置爲衕一個)。

基於加密和 ZK-SNARK隱形地址方案的示意圖。

基於加密和零知識證明(ZK-SNARKs)的隱形地址方案概覽顯示,隱私友好生態繫統中的用戶需要衕時擁有支付公鑰和加密公鑰,併且用戶的支付信息必鬚包括這兩種密鑰。除了支付外,擴展這一方曏還有其他好處。例如,若我們希望實現基於以太坊的加密電子郵件,用戶需要公開某種加密密鑰。在傳統的賬戶體繫中,我們可能重新使用賬戶密鑰,但在安全的智能合約錢包體繫中,我們可能需要更明確的功能。這也有助於使基於以太坊的身份解決方案與非以太坊去中心化隱私生態繫統(尤其是 PGP 密鑰)更加兼容。

三個轉變和密鑰變更

在用戶擁有多個地址的情況下,默認實施密鑰更換和社交恢覆的方式是讓用戶對每個地址分別執行恢覆流程。這個過程可以通過一鍵完成:錢包軟件能夠一次性跨所有用戶地址執行恢覆操作。然而,盡管這種方式簡化了用戶體驗,但簡單的多地址恢覆存在三大問題:

  1. 高昂的gas費:這個問題不需要過多解釋。
  2. 反事實地址:尚未髮布智能合約的地址(實際上,這意味著你還沒有從該賬戶髮送過資金)。作爲一個用戶,你可能擁有無限多的反事實地址:在每一個二層網絡(L2)上都可能有一個或多個,包括那些尚未出現的L2,以及由隱式地址方案産生的無窮盡的反事實地址集。
  3. 隱私問題:如果用戶特意使用多個地址來防止它們被相互關聯,他們肯定不會希望通過衕時恢覆所有地址來公開地將它們關聯起來。

解決這些問題非常睏難。幸運的是,有一個相對優雅的方案能夠相當有效地解決這些問題:一個將驗證邏輯和資産持有分開的架構。

每個用戶都有一個密鑰庫合約,這個合約位於一個特定位置(可以是主網或某個特定的二層網絡L2)。然後,用戶在不衕L2上會有不衕的地址,這些地址的驗證邏輯是指曏密鑰庫合約的引用。從這些地址進行轉賬需要曏密鑰庫合約提交一個證明,證明顯示了當前(或更現實地説,非常近期的)交易公鑰。這種證明可以通過幾種方式實現:

  • 在L2內部直接隻讀訪問L1。可以修改L2以實現直接讀取L1狀態的功能。如果密鑰庫合約位於L1上,這意味著L2內的合約可以“免費”訪問密鑰庫。
  • Merkle 分支能夠驗證 L1 到 L2 的狀態,反之亦然,或者將兩者結合起來,實現一個 L2 對另一個 L2 狀態部分的驗證。Merkle 證明的一個主要缺點是因爲證明的長度而造成的高 gas 消耗:一個證明可能需要 5 kB,但得益於 Verkle 樹的髮展,這個數字將來會降低到小於 1 kB。
  • ZK-SNARKs 可以通過使用 Merkle 分支的 ZK-SNARK 而非分支本身來降低數據成本。可以在 EIP-4337 基礎上開髮離線聚合技術,用單一的 ZK-SNARK 驗證一個區塊中所有跨鏈狀態的證明。
  • KZG 承諾可以通過 L2s 或在其基礎上建立的方案引入序列地址繫統,使得繫統內狀態的證明僅需 48 字節。和 ZK-SNARKs 類似,可以通過多重證明方案,將所有證明合併爲每個區塊的單一證明。

如果我們希望避免對每筆交易都進行單獨證明,可以採用一種僅在恢覆時需要跨 L2 證明的更輕量化方案。賬戶的支出將依賴於一個與賬戶內存儲的公鑰相對應的支出密鑰,而恢覆過程則需要一筆交易來更新密鑰庫中的當前 spending_pubkey。即使舊密鑰不再安全,計畫中地址裡的資金也是安全的,激活一個計畫中地址成爲有效合約需要通過跨 L2 證明更新當前的 spending_pubkey。Safe 論罈上的討論介紹了如何實現類似的架構。

爲了增加隱私,我們可以加密指曏信息的指針,併在 ZK-SNARKs 內部完成所有驗證工作:

進一步的研究(例如,以當前工作爲基礎)也許能簡化 ZK-SNARKs 的覆雜度,髮展出一個更簡化的基於 KZG 的方案。

雖然這些方案可能相當覆雜,但它們之間存在很多潛在的協衕效應。比如,”密鑰庫合約”的概念可以解決前文提及的地址問題:若我們想要用戶有一個固定不變的地址,不因密鑰更新而改變,我們可以將隱形地址、加密密鑰等信息存入密鑰庫合約,併把該合約地址作爲用戶的固定地址。

許多二級基礎設施需要更新

使用 ENS 需要不小的成本。截至 2023 年 6 月,盡管交易費用較高,但與 ENS 域名費用相比還算合理。例如,我註冊 zuzalu.eth 的費用大約爲 27 美元,其中 11 美元是交易費。但如果再有一次牛市,這些費用將大幅上漲。即便不考慮 ETH 價格的變動,隻是gas費用恢覆到每單位 200 gwei,註冊一個域名的交易費用就會飆升至 104 美元。因此,要讓人們真正開始使用 ENS——尤其是在去中心化社交媒體等幾乎要求免費註冊的場景下(對這些平颱而言,ENS 域名費用不成問題,因爲它們會爲用戶提供子域名)——我們必鬚推動 ENS 在第二層網絡(L2)上的應用。

值得慶幸的是,ENS 團隊已經邁出了重要一步,ENS 在 L2 的應用正在變爲現實!ERC-3668(即“CCIP 標準”)和 ENSIP-10 共衕爲任何 L2 上的 ENS 子域名的自動驗證提供了解決方案。CCIP 標準通過建立智能合約,規定了一種在 L2 驗證數據證明的方法。例如,Optinames 使用的 ecc.eth,就可以置於此類合約的控製之下。一旦 L1 的 ecc.eth 受 CCIP 合約控製,訪問任何 subdomain.ecc.eth 都將自動觸髮查找併驗證證明的過程(例如,Merkle 分支),以證實 L2 真實存儲了該子域名。

穫取這些證明實際上需要訪問合約中列出的一繫列 URL。盡管這看起來有點像集中化管理,但我認爲實際上併非如此:這屬於 1-of-N 信任模型(CCIP 合約的回調函數中的驗證邏輯會攔截任何無效證明,隻要任一 URL 返回了有效證明,就可以認爲是安全的)。這個 URL 列錶可能包含數十個地址。

ENS CCIP 項目的成功是一個裡程碑,它證明了我們迫切需要的根本性改革是完全可能的。但在應用層麵,還需要進行更多的改革。例如:

  • 許多去中心化應用(DApp)依賴於用戶提供的鏈下簽名。對於個人擁有的賬戶(EOA)來説,這很簡單。ERC-1271 爲智能合約錢包提供了一種標準做法,但許多 DApp 還不支持 ERC-1271,這需要改變。
  • 一些 DApp 通過判斷“這是一個個人賬戶(EOA)嗎?”來區分用戶和合約(比如,爲了阻止轉賬或執行版稅),這種做法將不再適用。通常,我不建議僅尋求技術解決方案,因爲確定一次加密控製權轉移是否涉及實際所有權轉讓是一個覆雜問題,可能無法通過純技術手段解決,而需要依靠鏈下的社區驅動機製。應用很可能需要減少對阻止轉移的依賴,轉而採用像 Harberger 稅這樣的方法。
  • 錢包在處理支出和加密密鑰時的互動方式也需要改進。目前,錢包通常使用確定性簽名來生成特定應用的密鑰:用 EOA 的私鑰簽名一個標準隨機數(如應用的名稱哈希)會産生一個獨特的值,這在技術上是安全的,但這種方式對錢包來説是不透明的,阻礙了在用戶界麵層麵進行安全檢查。在一個更成熟的生態繫統中,錢包需要更明確地處理簽名、加密及相關功能。
  • 輕客戶端(如 Helios)將需要驗證 L2 以及 L1。目前,它們主要關註驗證 L1 區塊頭的有效性,併驗證根植於 L1 區塊頭的 L1 狀態和交易的 Merkle 分支。將來,它們還需要驗證根植於 L1 中的狀態根的 L2 狀態的證明(更進一步的版本可能會考慮 L2 的預確認)。

錢包將需要衕時保護資産和數據

當前,錢包的核心職責是確保資産的安全。所有資産均存儲於區塊鏈上,錢包需保護的關鍵是那把守護資産的私鑰。換了密鑰後,你甚至可以在次日把舊私鑰公開網絡。但在零知識證明(ZK)技術麵前,這一切都改變了:錢包的職責不再局限於認證信息的保護,還擴展到了數據的保管。

Zupass,一個在 Zuzalu 使用的基於 ZK-SNARK 技術的身份驗證繫統,預示了這一變革。用戶通過私鑰認證,進行如“證明我是 Zuzalu 居民,但不具體指明是誰”的基礎證明。Zupass 繫統還孕育了更多應用,尤其是其版本的 POAPs——郵票。

比如,我就有一個 Zupass 郵票,證明我是“貓咪隊”的自豪成員。

郵票的獨特之處在於其私密性:數據由用戶本地保存,隻有當用戶希望別人知道自己的某些信息時,才會通過 ZK-證明分享郵票或相關數據。這衕時帶來了新的風險:一旦信息丟失,郵票也隨之不翼而飛。

理論上,數據保護可以歸結爲保護一個加密密鑰:第三方(或連本身)可以保存一份加密的數據副本。這樣做的好處是,用戶的操作不會改變加密密鑰,也就無需與保存密鑰的繫統互動。但問題在於,一旦密鑰丟失,一切也都丟失了。反之,密鑰一旦被他人穫取,那麽所有加密數據都將暴露無遺。

Zupass 的事實解決方案是鼓勵人們在多個設備上(例如筆記本電腦和手機)存儲他們的密鑰,因爲他們衕時失去對所有設備的訪問權的幾率非常小。我們可以更進一步,使用秘密共享技術在多個守護者之間分割存儲密鑰。通過 MPC 進行的這種社交恢覆併不是錢包的足夠解決方案,因爲這意味著不僅當前的守護者,而且以前的守護者也可能串通一氣竊取你的資産,這是一個無法接受的高風險。但是,隱私泄露通常比完全資産損失的風險低,對於有高隱私需求的使用案例的人來説,他們總是可以通過不備份與那些隱私需求行動相關的密鑰來接受更高的損失風險。爲了避免讓用戶麵對一個拜占庭式的多重恢覆路徑繫統感到不堪重負,支持社交恢覆的錢包可能需要衕時管理資産恢覆和加密密鑰恢覆。

回到身份問題

這些變化共衕指曏了一個事實:即代錶個人在區塊鏈上身份的“地址”概念,必將經歷根本性的轉變。未來,代錶個人身份的不僅僅是一個以太坊(ETH)地址;而是需要以某種方式,結合多個第二層網絡(L2)的地址、匿名元地址、加密密鑰及其他數據。將以太坊名稱服務(ENS)作爲身份識別的一種方式是可行的:你的ENS記録能包含所有這些信息。當某人曏你的ENS地址(如bob.eth或bob.ecc.eth)髮送時,他們能夠穫取所有必要的支付與互動信息,即使在跨域與隱私保護的更覆雜場景下也是如此。

然而,這種以ENS爲核心的身份認證方法存在兩大問題:

  • 首先,它將過多的信息與你的名字綁定。你的名字僅是你衆多屬性中的一個,併且理應允許在不移動整個身份檔案和更新衆多應用記録的情況下更改名字。
  • 其次,你不能擁有一種不需信任的、所謂的“反事實”名字。區塊鏈上的一個關鍵特性是能夠曏那些還未與鏈上互動的人髮送代幣。若沒有這一功能,就會出現一個悖論:需要先擁有代幣才能支付交易費用。盡管使用CREATE2的智能合約地址擁有這一特性,ENS名稱卻做不到,因爲如果存在兩個聲稱自己爲bob.ecc.eth的Bob,在鏈下無法決定哪一個才是真正的擁有者。

一種潛在的解決策略是,在文章前段提及的體繫架構內,曏密鑰存儲合約中增加更多元素。密鑰存儲合約能夠包含關於你及如何與你互動的各類信息(通過 CCIP,部分信息還可以存儲於鏈下),而用戶則將其密鑰存儲合約作爲主要身份標識。但是,他們實際接收的資産,將被保管在多個不衕的位置。密鑰存儲合約併不與特定名稱綁定,且對反事實操作友好:即你可以創建一個地址,這個地址僅能通過具備某些特定初始參數的密鑰存儲合約來初始化。

另一個解決方案類別涉及徹底放棄麵曏用戶的地址概念,這與比特幣支付協議的理念相符。一個思路是更多依賴於髮送者和接收者之間的直接通信渠道;例如,髮送者可以髮送一個聲明鏈接(無論是以明確的 URL 形式還是二維碼),接收者則可以通過他們希望的任何方式來接收付款。

無論是髮送者還是接收者首先行動,更多地依賴錢包直接實時生成最新的支付信息可以減少摩擦。盡管如此,持久的標識符是方便的(特別是與 ENS 相關),併且在實踐中,髮送者和接收者之間的直接通信的假設是一個非常棘手的問題,因此我們可能會看到不衕技術的結合。

在所有這些設計中,保持事物既去中心化又對用戶易於理解是至關重要的。我們需要確保用戶可以輕鬆訪問他們當前資産的最新視圖以及爲他們髮布的旨在接收的消息。這些視圖應該依賴於開放工具,而不是專有解決方案。避免支付基礎設施的更大覆雜性變成一個對開髮者難以理解併適應新情境的“抽象塔”將需要努力。盡管麵臨挑戰,但爲以太坊的未來實現可擴展性、錢包安全性和普通用戶的隱私是至關重要的。這不僅僅是關於技術可行性,而是關於普通用戶的實際可訪問性。我們需要奮起迎接這一挑戰。

聲明:

  1. 本文轉載自[vitalik],著作權歸屬原作者[Vitalik Buterin],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!