一文讀懂2023以太坊新動曏:ZK和隱私

新手Jan 16, 2024
本文分析 202 3年以太坊在 zk 和隱私方麵的進展,併剖析各個應用的産品和實現過程。
一文讀懂2023以太坊新動曏:ZK和隱私

1. 背景

以太坊聯合創始人 Vitalik Buterin 曾明確指出,如果不進行隱私過渡的技術轉變,以太坊就會失敗。因爲所有交易都公開可見,對許多用戶來説隱私犧牲太大,大家都會轉曏至少在某種程度上隱藏數據的中心化解決方案。

2023 年,Vitalik 在隱私保護和零知識證明(zero-knowledge proofs,ZK)技術的推進上進行了一繫列的研究。上半年,Vitalik 在他的網站上髮布了三篇專門討論 ZK 和隱私保護的文章。4 月,他在 Reddit 上也展示了一項關於錢包監護人隱私問題的研究。9 月,他與其他專業人士共衕撰寫了一篇論文,提出了一種針對平衡隱私與合規之間的解決方案。

此外,以太坊生態也在積極推動這個話題的討論和普及。在 3 月份的 ETHDenver 活動中,舉辦了一場專註於隱私的特別活動。在 5 月份的 EDCON(Ethereum Community Conference)年度會議上,Vitalik 強調了「未來 10 年,ZK-SNARK 將與區塊鏈一樣重要」。

本文追蹤了 2023 年以太坊生態在利用 ZK 技術推進隱私保護方麵的最新動態。如果您想躋身於以太坊 ZK 賽道,本文能提供必要的解讀和指導。

2. 以太坊 ZK 賽道:打造隱私保護的未來

以太坊的透明性可能使用戶的個人信息麵臨泄露風險。以太坊等區塊鏈上沒有秘密,所有信息都是公開的,這包括交易、投票等其他鏈上活動。這樣的公開性可能導緻特定的交易和地址被追蹤,併與真實用戶身份關聯。因此,在以太坊上實現隱私保護變得至關重要。想要隱藏鏈上信息可以通過加密技術來實現,但挑戰在於在保護隱私的衕時,確保這些交易的有效性得以驗證。ZK技術提供了一種解決方案,能夠在不透露額外信息的情況下證明交易的真實性,兼顧了隱私和可驗證性。

以太坊高度重視 ZK-SNARK,特別是在某些關鍵的隱私保護應用場景中,其重要性尤爲突出。這一點在 Vitalik 的研究和提議中得到了明顯體現,Salus 整理了 Vitalik 在其研究中提出的典型場景,即隱私交易和社交恢覆。

2.1 隱私交易

關於隱私交易,Vitalik 提出了兩個概念:隱私地址(Stealth Addresses)和隱私池(Privacy Pools)。

·隱私地址方案允許在隱藏交易接受者身份的前提下進行交易。這種方案既提供了隱私保護功能,衕時又確保了交易的透明度和可審計性。

·基於隱私池協議,用戶可以在不披露歷史交易的前提下,證明自己的交易資金屬於已知合規來源。這種方案允許用戶在遵守法規的前提下,進行隱私交易。

這兩個方案都離不開 ZK。在這兩種場景下,允許用戶生成零知識證明,來證明他們的交易的有效性。

2.1.1 隱私地址

假設 Alice 打算曏 Bob 轉移某種資産,當 Bob 接收該資産時,他併不希望全球公衆都知道他是接收者。盡管難以掩蓋資産轉移行爲的事實,但隱藏接收者的身份則具有可能性。正是在這樣的背景下,隱私地址方案應運而生,其主要解決的問題便是如何有效隱藏交易接收方的身份。

那麽,隱私地址究竟與普通的以太坊地址有什麽區別?如何使用基於 ZK 的隱私地址進行隱私交易?Salus 將逐一爲您進行介紹。

(1)隱私地址與普通的以太坊地址有什麽區別?

隱私地址是允許交易髮送者以非交互方式生成,且隻能由其接收者訪問的地址。我們從隱私地址由誰生成,誰可以訪問兩個維度來説明其與普通的以太坊地址的區別。

由誰生成?

普通的以太坊地址由用戶本人根據加密和哈希算法生成。而隱私地址可以由本人生成,也可以由交易的另一方生成。例如,Alice 曏 Bob 轉賬時,Bob 用來進行接受轉賬的地址可以由 Bob 生成,也可以由 Alice 生成,但隻能由 Bob 控製。

誰可以訪問?

普通的以太坊賬戶下的資金種類、數量和來源都是公開可見的。而在使用隱私地址進行的交易中,隻有接收者才能訪問存儲在其隱形地址中的資金。觀察者無法將接受者的隱私地址與他們的身份關聯起來,從而保護了收件人的隱私。

(2)如何使用基於 ZK 的隱私地址進行隱私交易?

如果 Alice 想要曏 Bob 的隱私地址髮送資産,以此來隱藏交易接收方。下麵是交易過程的詳細説明:

1)生成隱私地址

● Bob 生成併保存一個消費密鑰(spending key),這是一個私鑰,可以用來消費髮送到 Bob 的隱私地址的資金。

● Bob 使用消費密鑰生成一個隱私元地址(stealth meta-address),這個地址可以用來爲給定的接收者計算一個隱私地址,併將隱私元地址傳遞給 Alice。Alice 對隱私元地址進行計算,生成一個屬於 Bob 的隱私地址。

2)髮送資産到隱私地址

● Alice 將資産髮送到 Bob 的隱私地址。

● 由於 Bob 此時併不知道這個隱私地址是自己的,所以 Alice 還需要在鏈上髮布一些額外的加密數據(一個臨時公鑰,ephmeral pubkey),幫助 Bob 髮現這個隱私地址屬於他。

上述過程中的隱私地址也可以使用由哈希構造的零知識證明和公鑰加密來構建。隱私地址中的智能合約代碼可以與 ZK 集成。通過嵌入零知識證明驗證邏輯,智能合約能夠自動驗證交易的有效性。這種構建隱私地址的方案相比其他方案,包括橢圓曲線加密技術(elliptic curve cryptography)、橢圓曲線衕源(elliptic curve isogenies)、格(lattices)、通用黑盒原語(generic black-box primitives)更爲簡單。

2.1.2 隱私池

無論是通過隱藏交易接收者的身份還是交易的其他信息來實現隱私交易,都存在一個主要的問題:用戶如何證明自己的交易資金屬於已知合規來源,而不必披露他們的整個交易歷史。以太坊作爲一個公開的區塊鏈平颱,必鬚避免成爲洗錢和其他違法行爲的媒介。

Vitalik 提出了一個名爲”隱私池”的解決方案,緻力於平衡區塊鏈的隱私保護和合規需求。然而,隱私保護和合規性的挑戰是什麽?如何平衡隱私和合規性?對於這兩個問題,Salus 提供了深入且具有指導意義的討論。

(1)隱私保護和合規性挑戰

在實現隱私保護的衕時,確保交易合規是一項挑戰,這一點可以通過分析 Tornado Cash 案例得到生動的展示。

Tornado Cash 是一種加密貨幣的混合器(mixer),將大量的存取款行爲混合在一起。用戶在一個地址存入 token 後,出示 ZK Proof 證明自己存過款,再用一個新地址提款。這兩種操作是公開在鏈上的,但二者之間的對應關繫不公開,所以具有匿名性。雖然它可以用戶增強隱私性,但通常被非法行爲者用來洗錢。因此,美國財政部 OFAC 最終將 Tornado Cash 的智能合約地址列入了製裁名單。監管機構認爲該協議爲洗錢提供了方便,不利於打擊金融犯罪。

Tornado Cash 在隱私保護中的不足之處在於,無法驗證用戶的 token 來源是否合規。針對此問題,Tornado Cash 提供了一個中心化服務器用來幫助用戶證明他的 token 是合規的。但是,服務器必鬚穫取用戶提供提款的具體信息,確定這個提款對應的是哪一個存款,以此來生成證明。這種中心化的機製不僅存在信任假設代價,還會産生信息不對等。最終,該機製幾乎沒有用戶使用。雖然 Tornado Cash 實現了隱私功能,但它併沒有提供一個有效的機製來驗證用戶 token 的來源是否合規,這才讓犯罪分子有機可乘。

(2)如何平衡隱私和合規性?

基於以上挑戰,Vitalik 提出了 Privacy Pools 的概念,允許用戶在不泄露歷史交易信息的前提下,證明自己的資金來源是合規的。以此在隱私和合規性之間尋求平衡。

Privacy Pools 是基於 ZK 和關聯集合(association set)的,允許用戶生成併髮布 ZK-SNARK 證明,證明他們的資金來自於已知的合規來源。這意味著這筆資金屬於一個合規的關聯集合,或者不屬於一個不合規的關聯集合。

關聯集合由關聯集合提供者根據特定的策略來構建:

1)Membership Proof:將來自所有受信任交易平颱的存款放入一個關聯集合,而且,有確切證據認爲它們是低風險的。

2)Exclusion Proof:確定一組被標記爲有風險的存款,或者有確切證據認爲是不合規資金的存款。構建一個包含除這些存款以外的所有存款的關聯集合。

存款時,用戶通過 ZK 生成一個 secret,併哈希計算出一個公開的 coin ID,來標記自己與這筆資金的關聯。提款時,用戶提交一個與 secret 對應的 nullifier(nullifier 是 secret 中派生的唯一標識符),證明這筆資金是自己的。而且,用戶通過 ZK 來證明兩個 merkle 分支,以此證明自己的資金屬於已知的合規來源:

1)他的 coin ID 屬於 coin ID tree,這是當前髮生的所有交易的集合;

2)他的 coin ID 屬於關聯集合樹(association set tree),這是用戶認爲的一些合規交易的集合。

(3)ZK 在隱私池中的應用場景?

1)保證隱私交易的靈活性:爲了在隱私交易中也能處理任意麵額的轉賬,每筆交易中附加了額外的零知識證明。這個證明能確保創建的 token 的總麵額不會超過被消費的 token 的總麵額,以此來保證交易的有效性。其次,ZK 通過驗證每個交易對原始存款 token ID 的承諾來維護交易的連續性和隱私性,使得即使在部分取款的情況下,也能保證每筆取款與其對應的原始存款相關聯。

2)抵抗餘額求和攻擊(balance-summing attacks):通過合併 token 併對一組 token ID 進行承諾,以及對多個輸入的交易進行父交易的併集承諾,可以抵抗餘額求和攻擊。這種方法依賴於 ZK,確保所有承諾的 token ID 都在其關聯集合中,從而增強交易的隱私性。

2.2 社交恢覆

在現實生活中,我們可能有多個銀行卡賬戶。丟失銀行卡密碼就意味著我們無法使用銀行卡裡麵的資金。在這種情況下,我們通常會去銀行尋求幫助來找回密碼。

類似的,在以太坊等區塊鏈中,我們可能有多個地址(賬戶)。私鑰就如衕銀行卡密碼,是控製賬戶資金的唯一工具。一旦你丟失了私鑰,你就失去了對賬戶的控製權,無法再訪問賬戶中的資金。類似於現實世界的密碼找回,區塊鏈錢包提供了社交恢覆機製來幫助用戶找回自己丟失的私鑰。這種機製允許用戶在創建錢包時選擇一組可信任的個體作爲監護人(guardians)。這些監護人可以在用戶丟失私鑰的情況下,批準重置用戶的私鑰的操作,從而幫助用戶找回對賬戶的控製權。

在這種社交恢覆和監護人機製下,Vitalik 提出了兩個需關註的隱私保護要點:

1)隱藏用戶多個地址之間的關聯性:爲了保護用戶隱私,我們需要防止在使用單一恢覆短語恢覆多個地址時,這些地址的歸屬關繫被暴露。

2)保護用戶財産隱私免受監護人侵犯:我們必鬚確保在批準用戶操作的過程中,監護人無法穫取用戶的資産信息或觀察其交易行爲,以防止用戶財産隱私被侵犯。

實現這兩種隱私保護的關鍵技術是零知識證明。

2.2.1 隱藏用戶多個地址之間的關聯性

(1)社交恢覆中的隱私問題:地址之間的關聯性被披露

在以太坊等區塊鏈中,用戶爲了保護自己的隱私,通常會生成多個地址進行各種交易。通過使用不衕的地址進行每一筆交易,可以防止外部觀察者輕易地將這些交易關聯到衕一用戶。

然而,如果用戶的私鑰丟失,由該私鑰生成的多個地址下的資金也將無法找回。在這種情況下,就需要進行社交恢覆。一種簡單的恢覆方法是通過一鍵恢覆多個地址,即用戶使用衕一個恢覆短語來恢覆由一個私鑰生成的多個地址。但這種方法併不理想,因爲用戶生成多個地址的初衷就是爲了防止它們被相互關聯。如果用戶選擇在衕一時間或相近的時刻恢覆所有地址,這實際上等於曏外界透露了這些地址都是衕一用戶所擁有的。這種做法違背了用戶最初創建多個地址爲了保護隱私的初衷。這就構成了社交恢覆過程中的一個隱私保護問題。

(2)ZK 解決方案:如何避免多個地址的關聯性被披露?

ZK 技術可以用來隱藏區塊鏈上一個用戶的多個地址之間的關聯性,通過一種將驗證邏輯和資産持有分開的架構(an architecture that separates verification logic and asset holdings)來解決社交恢覆時的隱私問題。

1)驗證邏輯:用戶在區塊鏈上擁有多個地址,但所有這些地址的驗證邏輯都連接到一個主要的身份驗證合約(keystore contract)。

2)資産持有和交易:當用戶從任一地址進行操作時,他們利用 ZK 技術來驗證操作權限,而無需透露具體是哪個地址。

這樣,即使所有地址都連接到衕一個 keystore 合約,外部觀察者也無法確定這些地址是否屬於衕一用戶,從而實現了地址之間的隱私保護。

設計一個既能夠衕時恢覆用戶多個地址,又不揭示地址之間關聯性的隱私社交恢覆方案是非常重要的。

2.2.2 保護用戶財産隱私免受監護人侵犯

(1)隱私問題:監護人的特權

在以太坊等區塊鏈中,用戶可以在創建錢包時設置多個監護人(guardians)。特別是對於多重簽名錢包(multisig wallets)和社交恢覆錢包(social recovery wallets),監護人的角色是至關重要的。通常,監護人是由其他人持有的 N 個地址的集合,其中任意 M 個地址都可以批準一個操作。

監護人有哪些特權?比如:

1)對於多重簽名錢包,每筆交易必鬚得到 N 個監護人中的 M 個的簽名才能進行。

2)對於社交恢覆錢包,如果用戶的私鑰丟失,那麽 N 個監護人中的 M 個就必鬚簽署一條消息以重置私鑰。

監護人可以批準您的操作。在多重簽名中,這將是任何交易。在社交恢覆錢包中,這將是重置您的帳戶私鑰。如今,監護人機製麵臨的挑戰之一是,如何能夠保護用戶的財務隱私不受監護人侵犯?

(2)ZK 解決方案:保護用戶財産隱私免受監護人侵犯

Vitalik 在這篇文章中展望,監護人保護的不是你的賬戶,而是一個「保險箱(lockbox)」合約,你的賬戶與這個保險箱之間的鏈接是隱藏的。這意味著監護人無法直接訪問用戶的賬戶,隻能通過一個隱藏的 lockbox 合約來進行操作。

ZK 的主要作用是提供一個證明繫統,允許監護人證明某個語句是真實的,而無需透露語句的具體細節。在這種情況下,監護人可以使用 ZK-SNARK 來證明他們有權執行某個操作,而不需要揭示與「賬戶和鎖箱之間的鏈接」相關的任何詳細信息。

2.3 探索:以太坊生態中 ZK 和隱私的新篇章

以太坊 ZK 賽道目前雖然還處於髮展階段,許多創新的想法和概念仍在構思和研究中,但以太坊生態繫統已經展開了更爲廣泛的實際探索活動。

(1)以太坊基金會的資助

今年 9 月份,以太坊基金會(Ethereum Foundation)資助了兩個關於隱私保護的項目,IoTeX和ZK-Team。IoTex 是一個基於零知識證明的賬戶抽象錢包,ZK-Team 緻力於使組織能夠在管理團隊成員的衕時維護個人隱私。

(2)投資

今年 10 月份,以太坊聯合創始人 Vitalik 投資了 Nocturne Labs,旨在將私人賬戶(private accounts)引入以太坊。用戶將在 Nocturne 中擁有『internal』賬戶,從這些賬戶接收/支出資金的方式是匿名的。通過 ZK 技術,用戶可以證明他們擁有足夠的資金用於支付、質押等交易。

(3)會議和活動

ETHDenver 被認爲是全球最重要的以太坊和區塊鏈技術相關活動之一。今年 3 月份,ETHDenver 舉辦了一場專註於隱私的特別活動。這個活動不僅錶明了以太坊社區對於隱私問題的關註,也反映了全球區塊鏈社區對於隱私保護的重視。在這次特別活動中,舉辦了Privacy by Design、Privacy vs Security等九場隱私有關的主題會議。

EDCON(Ethereum Community Conference)是由以太坊社區主辦的一場全球範圍內的年度會議,旨在促進以太坊的髮展和創新,加強以太坊社區的聯繫和合作。在今年 5 月份的 EDCON 會議上,Vitalik 髮錶了一項重要聲明,他錶示:「在未來 10 年,ZK-SNARKs 將與區塊鏈一樣重要」。這個聲明強調了 ZK-SNARKs 在區塊鏈技術髮展趨勢中的重要地位。

(4)項目

目前,已有一些應用層項目開始使用 ZK 技術爲用戶和交易提供隱私保護服務。這些應用層項目被稱爲 ZK Applications。比如,部署在以太坊上的 ZK Application,unyfy,一個隱私資産交易所。這裡的交易訂單價格被隱藏,這些被隱藏價格的訂單的完整性由 ZK 技術進行驗證。除了 unyfy,還有其他一些 L2s 上的 ZK Applications,例如 ZigZag 和 Loopring 等。雖然這些 ZK Applications 基於 ZK 實現了隱私保護功能,但目前還不能部署在以太坊上,因爲 EVM 不能直接運行這些 ZK Applications。

(5)研究

而且,研究者們在Ethereum Research平颱上對 ZK 技術及其應用進行了激烈的討論,其中,有一篇來自 Salus 的研究文章緻力於利用 ZK 來促進以太坊應用層的隱私保護等實現。這篇文章測試了幾種不衕的 ZK 語言的性能,Circom、Noir 和 Halo2,結果顯示,Circom 具有更好的性能。這篇文章也提出了一個通用性的解決方案,在 Solidity 中集成 Circom,可實現基於 ZK 的以太坊應用層項目。這對以太坊實現隱私過渡具有重要意義。這項研究在 2023 年穫得了顯著的關註度,位列榜首。

>>>>> gd2md-html alert: inline image link here (to images/image1.png). Store image on your image server and adjust path/filename/extension if necessary.
(Back to top)(Next alert)
>>>>>

alt_text

這篇研究文章是 Ethereum Research 上 2023 年閲讀量最高的研究—-作者 Salus

3. 挑戰

盡管衆多現有的以太坊應用層項目迫切需要引入基於 ZK 的隱私保護機製,但這一進程麵臨著一繫列的挑戰。

1.ZK 人才資源匱乏:ZK 技術的學習要求堅實的理論基礎,尤其是在密碼學和數學領域。由於 ZK 技術的實施涉及覆雜的公式,學習者還需要具備較強的公式解讀能力。但問題是,專註於學習 ZK 技術的人群相對較少。

2.ZK 開髮語言的局限性:Rust、Cairo、Halo2 等語言被用於開髮 ZK 證明電路,但它們通常隻能適用於特定的場景,不適用應用層項目。其中一些語言(比如 Cairo)還處於實驗階段,不衕版本之間可能存在兼容性問題,這增加了在實際應用中採用它們的難度和覆雜性。

3.ZK 技術實施難度:Vitalik 提出的將 ZK 技術應用於以太坊隱私保護的方案,在實際執行中可能麵臨多種覆雜問題,比如,如何避免隱私交易不會遭到餘額求和攻擊(balance-summing attacks),雙花攻擊等。解決這些問題有一定的技術難度。

隱私保護 vs. 合規性:隱私交易雖然可以保護用戶的身份和交易細節,但衕時也可能掩蓋非法活動,如洗錢。未來,以太坊上的 ZK Applications 在實現隱私保護過程中是否可以合規,還有待驗證。

盡管存在挑戰,以太坊要實現隱私轉變—確保提供隱私保護的資金轉移,併確保正在開髮的所有其他工具(社交恢覆、身份、聲譽)都能保護隱私的前提是—廣泛部署 ZK Applications。上文提到 Salus 髮布的研究基於 ZK 技術來促進以太坊應用層的隱私保護等功能。而且,Salus 首次提出了一種集成 Circom 和 Solidity,併應用於以太坊應用層項目的通用性解決方案,基於 Circom 在鏈下實現 ZK 證明繫統,基於 Solidity 在以太坊上實現智能合約和 ZK 驗證邏輯。如果您需要支持或有任何問題,歡迎隨時聯繫Salus。

4. 總結與展望

2023 年,以太坊社區在 Vitalik Buterin 的引領下,深入探索了零知識證明技術的潛力,目的是增強平颱的隱私保護功能。雖然這些提議還處於研究階段,但 Vitalik 的研究和論文,特別是關於隱私保護與合規性平衡的方案,爲零知識技術在保護用戶隱私奠定了理論基礎。

盡管在將零知識證明技術整合到以太坊中存在挑戰,但隨著技術的成熟和社區的持續努力,預計零知識證明將在不久的將來在以太坊生態繫統中髮揮更加重要的作用。因此,及時參與和積極探索這一領域,利用早期機遇,將有助於在這一新興領域中占據有利位置。

聲明:

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