一文讀懂2023以太坊新動向:ZK和隱私
BlockBeats 律動財經 2023-12-16 10:30
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 年獲得了顯著的關注度,位列榜首。
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 的研究和論文,特別是關於隱私保護與合規性平衡的方案,為零知識技術在保護用戶隱私奠定了理論基礎。
儘管在將零知識證明技術整合到以太坊中存在挑戰,但隨著技術的成熟和社區的持續努力,預計零知識證明將在不久的將來在以太坊生態系統中發揮更加重要的作用。因此,及時參與和積極探索這一領域,利用早期機遇,將有助於在這一新興領域中占據有利位置。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 從零開始學合約系列講座熱烈報名中
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇