Monero、Zcash、零知識證明,這些都是較爲知名的區塊鏈隱私項目與技術,以太坊孵化器 ConsenSys 最近則撰文對比了各個主流隱私技術的權衡,並簡要概述了目前以太坊上的隱私解決方案。

原文標題:《獨家 | ConsenSys 研究成果:以太坊上的隱私實現途徑》
作者:Dean Pierce (ConsenSys Diligence)、Robert Drost (ConsenSys 研發部)、Mason Nystrom (ConsenSys)
編譯:加密谷

在這個聯繫日益緊密的世界中,我們的信息被越來越多地分類、複製、共享和出售,維護一定程度的隱私成爲重要挑戰。 隱私並非二元結構,而是從完全公開到完全私有之間波動的一個範疇。因此,在談到隱私時,首先有三個問題需要討論:

  • 消費者和企業希望保護哪些隱私?
  • 人們願意爲隱私付出代價嗎?
  • 在公共區塊鏈上實現私有交易的權衡是什麼?

本文的目的是簡要地研究公共區塊鏈上的實際隱私需求,並討論隱私解決方案的現實路徑。

隱私的一個方面是匿名,或保持身份的私有權。放在公鏈背景下,匿名指的是各方交換某物(金錢、代幣或數據)而不需要透露其身份或他們進行其他交易相關信息的能力。雖然這只是隱私的一個方面,但隨着區塊鏈的發展,其重要性日益突出。

像 BTC 和 ETH 這樣的加密資產越來越多地被追蹤,通過關聯交易中的公共地址,可以在加密資產和法定貨幣轉換時分析和鏈接到該地址真實的身份。這樣做的最終結果是:交易雙方的身份變得公開化。由於公共區塊鏈必須從根本上提供所有交易的日誌,因此使用加密算法和協議保護用戶及企業的隱私變得越來越重要。

在隱私問題上,企業和消費者有着截然不同的需求。企業通常需要保持交易數據的隱私,如產品名稱、數量、價格、地址、個人可識別的財務信息等。 網絡參與者身份通常是已知的,但根據角色身份的不同,可能需要選擇保留或提供給其他參與者。

例如,貨運代理可能不需要知道某個海運集裝箱的內容,只需要知道集裝箱已經到達。銀行規定還限制了誰可以訪問交易數據。安永使用 zk-snarks 以便在以太坊上進行私人交易的 Nightfall protocol ,以及摩根大通爲 Quorum 開發的 anonymousi - zether 等,都是企業爲以太坊開發的隱私解決方案的典型例子。

企業往往有很強的商業動機或隱私方面的規定,相比之下,消費者的隱私意識往往不強,關注也普遍較少。消費者可能僅僅希望保護他們的身份、信用卡信息或其他敏感數據,以防止欺詐或身份盜竊。有時,消費者希望匿名交易,這就要求交易的發送方和接收方都能保持隱匿狀態。然而,在日常生活中,隱私又常常被用戶所忽視,大多數人爲了方便或免費訪問(接受 cookie、使用免費 wifi 等)而願意犧牲自己的隱私權益。

在消息傳遞的過程中,隱私機制通常被用於保護各方之間發送的內容。此外,它還被用於更廣泛的通信通道和底層網絡層的構造中。從公鑰密碼術的演變及其採用,再到其他密鑰交換機制,我們已經看到了多種旨在實現端到端安全的互聯網協議套件(IPSec v2、SSL)。這也確保了安全的 DNS 查詢以及採用基於 Tor 的中繼器的安全性。

通過學術研究和企業採用,許多成果從開放標準中衍生出來,其中許多技術已在個人用戶技術堆棧中找到了自己的應用方式,最終使得終端用戶受益。

就區塊鏈而言,儘管 Zcash 已經有將近 3 年的歷史,但是在現有的 ZEC 中,只有大約 5% 是使用 SNARKs 存儲的。大約 95% 的 ZEC 存儲在幾乎沒有隱私的透明地址中。根據這種低採用率,我們可以推斷,也許大多數用戶還沒有爲隱私付出成本和努力的需求。

回顧過往,內置的隱私層(如 SSL)的成功使互聯網成爲可信的商業媒介,區塊鏈技術最終被主流採用也仍然繞不開隱私這個重要議題。

隱私的權衡

這個問題更具技術性。我們需要更深入地研究如何在以太坊上實現隱私。區塊鏈網絡以可擴展性爲代價換取了去中心化,而隱私機制和技術之間也需要權衡。我們將從研究其他關注隱私的區塊鏈已經達到了何種目標入手,然後討論以太坊網絡隱私解決方案。

其他專注於隱私的典型區塊鏈項目(Monero 和 Zcash)

在詳細介紹以太坊之前,先介紹隱私幣領域的兩個主要參與者 Monero 和 Zcash。

在早期的競爭幣時代,Monero 很特別,因爲它的代碼完全不基於 BTC,而是一個完全無關的名爲 Bytecoin 的加密資產項目(Bytecoin 是首個使用 CryptoNote 協議的加密資產)。 原始的 CryptoNote 設計將交易發送方的簽名與許多其他誘餌簽名混合(mixins),從而混淆了交易的發送方。這與隱身地址(stealth address)輸出相結合,提供了非常強的隱私保證。「環簽名」(ring signature)方案很早就被認爲是一種高級的內置混合器,這已經不是什麼新鮮事了。

在 2017 年,隨着 RingCT 的引入,環簽名隱藏交易數據的能力得到了極大的提高。RingCT 使用零知識範圍證明(Zero-Knowledge Range Proof, ZKRP),增加了可以批量處理的簽名種類。 RingCT 的引入還強制了最低的 mixin 要求,以減輕困擾 Monero 早期版本的連接性攻擊。目前,使用環簽名的主要挑戰之一是其佔用了大量磁盤空間來存儲 Monero 區塊鏈。此外,環簽名不能擴展到大羣體,目前僅限於 10-15 個參與者。

在 2018 年底,我們在 Monero 網絡上看到了「Bulletproofs」(防彈證明)的引入,這是一種激動人心的全新零知識結構,它與環中籤名的數量成對數擴展,從而減少了所需的交易規模。這項改進使 Monero 功能與其他區塊鏈項目保持一致。

Zcash 是第一個使用 zksnark 的加密資產。使用這種技術,用戶可以發送只對接收者可見的完全私有的交易。對於外部觀察者來說,被髮送到私人地址的 ZEC 似乎消失在一個大型的加密黑匣子中,當接收者想要將其代幣移回非私人地址(與標準 BTC 地址類似)時 , 這些代幣似乎是憑空冒出來的,發件人和收件人之間沒有可觀察到的聯繫。

關於零知識證明的一個重要注意事項是,它需要更多的計算能力來運行,這反過來又使交易更昂貴。

可替代性的威脅

以太坊網絡提供了僞匿名性(即:交易鏈接到由用戶持有私鑰簽名的公鑰地址,而不是由用戶名 / 密碼簽名),其分佈式特性和透明性使許多全新的技術功能成爲可能。 然而,與 BTC 類似,以太坊也會在不知情的情況下暴露部分用戶,這些用戶在使用可替代數字資產轉移時,可能沒有意識到他們共享信息的傳播廣度。

一種對隱私的威脅在於用戶知道與公鑰和私鑰相關聯的身份。考慮到 BTC 和以太坊等區塊鏈的公共性,天真地使用它們的內置交易框架就像留下了麪包屑,給別人追蹤資產(甚至是可替代資產)轉移痕跡提供了便利。

通過生成地址保證隱私

隨着隱私技術的不斷髮展,可以考慮許多更復雜的威脅模型。2012 年,BIP32 引入了分層確定性密鑰(Hierarchical Deterministic keys),它允許單個種子短語生成永不停止的「新」BTC 地址流。這使得用戶每次接受交易時都可以生成新的地址,而且所有這些地址都可以輕鬆導出並導入到新的錢包中,而不必分別導入多個隨機生成的密鑰。

以太坊也有相同的功能,但新生成的密鑰在獲得所需的 ETH 資金之前不能與智能合約進行交互。許多建立在以太坊上的系統將用戶的現實身份與地址進行關聯,這也使問題變得複雜化。鏈接到以太坊地址的這種額外的元數據會使以太坊特別容易受到去匿名化攻擊。幸運的是,將以太坊暴露給這些威脅的智能合約功能也可以使用前沿的密碼系統,從而支持安全、無縫的私密交易。

ZK 結構和可信任初始設置

許多零知識結構需要所謂的「可信任初始設置」(Trusted Setups)。這意味着整個構造依賴於特殊隨機數的生成,任何知道這些隨機數的人都能夠窺視操作的內部。 爲了降低這種顧慮,開發者設計了複雜的模式來生成隨機參數,以確保構造可被信任。這通常涉及到社區中幾個受信任的成員,每個成員都獲得自己的私有隨機數據,並以某種方式將它們彼此組合,如果「任何」參與方刪除了它們的關鍵數據,secret 值就是安全的。因此,只有所有參與方都串通起來才能使結構面臨風險。

值得注意的是,Monero 使用的 Bulletproofs 不需要可信任初始設置,但是 Zcash 中的 zksnark 需要。Zcash 的可信任初始設置記錄在 RadioLab 中。相反,STARKs 不需要可信任初始設置,因爲他們選擇使用哈希函數作爲「設置」,而不是任何類型的特殊數字。

Zero-Knowledge Notes (ZK-Notes)

作爲以太坊隱私領域的先行者,AZTEC Protocol 使用「zero-knowledge notes」系統來追蹤隱藏的財務信息。這些 note 在以太坊網絡上是可見的,包括每個 note 的所有者,但是每個 note 上存儲的金額對每個人都是隱藏的,除了 note 的所有者。

當一個 note 所有者決定執行一個「joinSplit」操作時,零知識的魔力就出現了,這意味着他們可以獲取他們控制的任意數量的 note,並創建一組輸出 note,這些 note 可能屬於也可能不屬於其他人。這一點與隱形地址技術相結合,可以使每一個新創建的 note 都屬於一個從未在網絡上使用過的以太坊地址。

在常見的用例中,一個「ZK-Asset」合約可以連接到任何 ERC-20 兼容的代幣,並允許用戶存儲代幣以生成 ZK-Notes,或者,燃燒 ZK-Notes 以提取。這種機制使得以太坊網絡上的任何現有資產能以保護隱私的方式進行交易。AZTEC Protocol 使用的證明比 zk - snark 更容易使用,但是仍然需要一個可信任初始設置。

Aztec 也在用其他新奇的解決方案來建立可信任設置。PLONK 是一個新的、高效的 ZK-SNARK 結構,它需要一個可信任設置,所有程序都可以重用這個單獨的設置。由於對 gas 的要求不高,PLONK 在以太坊的實際應用中是足夠有效的。 AZTEC Protocol 首席執行官 Tom Pocock 相信,PLONK 可以被用來編寫複雜的邏輯語句,同時保持完美的隱私。

ZK 與安全多方計算(Secure MPC)結合

這種方法在 ZKBoo 和 Ligero 中實施,通過要求證明者提交安全多方計算協議的副本,將安全協議「編譯」到 ZK-PCP 系統(最早使用概率證明的 ZK 系統之一)中,使驗證者能夠隨機評估其中一方的觀點。這意味着,擁有相關數據知識的實體可以任意模擬多方之間的分佈式計算,然後在隨機的評估點顯示計算副本。更重要的是,使用 MPC 使創建私有智能合約成爲可能。

像 ZK-STARK 一樣,基於 MPC 的證明具有如下特徵:

  • 透明:隨機數的生成是公共信息;
  • 後量子安全(Post-quantum secure):公共隨機性和哈希函數仍然是量子系統無法大規模解決的問題;
  • 可擴展:基於 MPC 的證明具有準線性的證明時間和驗證者時間,可以高效進行分批計算;

圍繞使用此類技術的一些權衡取捨涉及如何針對中小型「電路」問題將其最佳化,這可能會導致驗證者出現可擴展性問題。 也就是說,基於 MPC 的技術在區塊鏈領域還沒有得到充分的開發,這些技術將比現有的 ZK 技術更加通用,特別是在需要各方保護與實際計算本身相關的機密信息的情況下。例如,MPC 技術對於運行信用評分算法來評估客戶的信用度很有用,但是無論客戶還是銀行都不想放棄其交易歷史等機密信息,以及在 ML 信用評分模型中的權重。

硬件限制

當 Zcash 第一次引入使用 zk- snark 發送交易的想法時,人們對使用隱蔽交易所需的計算能力存在嚴重擔憂,因爲生成一個交易需要幾個小時甚至更長時間。但之後,我們已經取得了長足進步,現在已經能夠在瀏覽器甚至移動設備上完成類似的任務,只需要幾秒鐘。

混合器

混合器的話題也引起了很多人的關注。今年 5 月,Vitalik 在以太坊網站上發佈了新一代混合機的設計和大致框架。

以太坊混合器有助於實現錢包或個人的本地私有交易。ETH 的可跟蹤性意味着特定的交易可以被跟蹤並鏈接到其他錢包或賬戶。混合器用來交換 ETH ,以進一步使交易匿名化。 許多團體致力於使以太坊混合器更加實用。下面是儲存和提取混合 ETH 的計算和 gas 費用的最新圖表。

獨家 | ConsenSys 研究成果:以太坊上的隱私實現途徑

應用層的單個混合器也許目前還不能爲用戶提供絕對隱私,而只提供概率保證。然而,這已經可以滿足大多數個人和企業的需求。

誰爲 Gas 費買單?

這些方法的一個致命缺陷是,到最後,需要有人爲獲得產出而支付 gas 費。這些 ETH 從何而來?如果最終支付的 ETH 可以追溯到某個用戶,那麼該用戶就可以去匿名化,這就違背了目的本身。

這就產生了一種隱私「先有雞還是先有蛋」的場景,在這種情況下,接受匿名 ETH 的唯一方法就是已經有了匿名 ETH。在 Vitalik 關於混合器的博客文章中,他用一個簡單的中繼器註冊合約解決了這個問題。在該協議中,承諾發佈任意交易的中繼操作人員可以註冊一個 HTTP 端點,這樣的交易可以匿名發佈。

最後,必須考慮錢包改動和操作安全性。如何找出安全的默認設置來保護用戶,同時又不會給他們帶來太麻煩的體驗,這個問題還在討論中。所有這些混合解決方案都需要大量參與者來合理地期望隱私,因爲工具需要易於大衆使用。但是,任何捷徑都可能導致一些非常嚴重的隱私侵犯。例如,一個用戶混合了一些 ETH,將其中的一部分花在一些本來應該是私有的東西上,之後可能會忘記自己將哪個錢包用於私有交易,然後將剩餘的 ETH 發送回一個與他們公開關聯的地址。

這些技術進展表明了,以太坊網絡上的隱私問題已經得到越來越多的關注。雖然在公共區塊鏈上實現隱私看似矛盾,但零知識證明等技術將使各種新的前沿用例成爲可能。與此同時,這些解決方案將增強用戶的能力,讓他們對自己的財務隱私放心。

事關隱私時,並沒有什麼靈丹妙藥。爲了創建一個加密的原生世界,匿名交易或其他保護個人信息的能力至關重要。雖然本文並非對以太坊上所有隱私功能的完整概述,但已經涉及到了實現企業和消費者隱私需求的各種方法。整個加密資產生態系統都受到了提供自由的抗審查技術的啓發。 我們將繼續研究和評估以太坊的隱私解決方案,以幫助教育和推動這項技術的發展。

來源鏈接:mp.weixin.qq.com