這篇文章闡述了公有鏈背景下的隱私狀況。第一部分的內容涉及到了為什么隱私是區塊鏈廣泛采用的關鍵障礙,以及隱私的不同方面是什么。第二部分內容調查了三種不同的隱私處理方法:通過零知識證明,僅以匿名為目標,以及通過一種稱為MOCCA的新的抽象概念。
第一部分:為什么,以及什么是公有鏈的隱私屬性?
隱私——區塊鏈大規模采用的最后障礙
由于現代金融系統運行良好,我們不必擔心日常交易的安全或隱私問題。當你在超市購物,通過支票支付房租,或者在銀行辦理短期貸款時,你不必擔心你的交易被非相關方進行公開審查。在現代銀行和信用卡網絡中,交易細節停留在相關的金融中介機構和當局內。用戶不必擔心他們的敏感信息會被泄露給公眾,而當局可以追蹤非法活動。
不幸的是,今天在流行的區塊鏈上進行的交易就不是這樣的。盡管區塊鏈技術有望實現當前金融生態系統的去中心化和民主化,但大多數系統甚至未能滿足我們所期望的最基本的隱私水平。你購買披薩的交易記錄可能會被永久記錄下來,你的所有交易都可以在Etherscan上被輕易的公開訪問。雖然現在有一些以隱私為重點的項目,但由于在功能和易用性方面的不對等,使它們目前還沒有得到充分利用。這標志著隱私是大規模采用區塊鏈技術的關鍵障礙之一。
公有鏈環境中的隱私屬性不是一個全有或全無的功能。相反,它是一個復雜和多維的問題,在瀏覽時需要謹慎。讓我們首先需要深入了解哪些類型的隱私屬性與區塊鏈應用有關。
隱私的特征軸
軸A:匿名性和保密性。廣義上講,金融交易的隱私有兩種類型:匿名性和保密性。當一個非營利組織收到匿名捐款時,他們沒有獲得任何關于捐贈者的信息,但他們知道收到的捐款金額。當你在藥店結賬時,你的購買記錄是保密的——你身后的人不知道你可能開的是什么藥,以及這些藥的價格,但他們知道你在買藥。
匿名性:人們能知道我是交易的發起人么?保密性:人們能知道我交易的內容么?
軸B:鏈上應用與中介應用。區塊鏈和加密貨幣的基礎理論之一是能夠在沒有可信的中介機構的情況下進行金融交易。跟隨比特幣的腳步,幾乎所有的加密貨幣都允許沒有中介的直接支付。以太坊等智能合約平臺更進一步,它們使支付以外的金融交易可以在沒有中介的情況下進行,如交易和借貸。在這篇文章中,我們用鏈上一詞來描述功能和應用,如支付、交易、借貸,用戶可以直接作為一個共識節點的運行者來使用。。鏈上應用的一些例子包括比特幣和Zcash的支付,Uniswap的交易,以及Compound的借貸。
以太坊網絡Gas費一度降至17 gwei:3月6日消息,Etherscan數據顯示,以太坊網絡Gas費一度降至17 gwei,目前回升至20 gwei。[2022/3/6 13:40:45]
不幸的是,中介機構在生態系統中仍然是無處不在的。像Coinbase這樣的交易所是他們所提供服務的中介——用戶需要將資產存入這些交易所進行交易。甚至一些“去中心化”的協議也依賴于中心化運營的中介機構。例如,dYdX和DiversiFi都有中心化交易所運營商。這與Uniswap等鏈上對應協議不同,它們不需要與共識網絡之外的服務器互動。與Coinbase相比,dYdX和DiversiFi的特點是消除了資金安全所需的信任。相反,用戶需要信任密碼學和代碼,特別是STARKs,以保證其資金的安全。支付通道網絡和roll-ups是另外兩類中介應用。雖然目前大多數中介都是中心化的,但它們可以被設計成去中心化的,這對roll-ups應用來說是特別理想的,因為它們直接與側鏈競爭。例如,Zk-roll-ups可以有一個具有某種形式的共識機制的roll-upsequencers網絡,有效地使roll-up成為一條鏈。
上述兩種區塊鏈應用的分類為我們提供了一個額外的軸來考慮隱私問題:鏈上隱私與來自中介機構的隱私。
鏈上隱私:我的信息是否被永久地記錄在鏈上?
來自中介的隱私:我的信息是否被披露給我委托代表我行事的實體?
把這些軸放在一起。通過結合兩個隱私特征軸,我們得到了區塊鏈應用的四個隱私概念:匿名性和保密性之間,以及鏈上與中介之間。下面是一個表格,列出了每個類別的一個隱私問題。
表中展示了每個隱私類別的問題鏈上:
匿名性:我在Uniswap上的交易是否可以與我在鏈上進行的其他活動聯系起來,例如NFT交易?保密性:我在鏈上的交易總額是公開信息嗎?來自中介機構:
以太坊Gas費用短時激增至500Gwei:據歐科云鏈鏈上大師數據顯示,以太坊Gas費用短時激增,多個區塊交易費均值超過400GWei,單個區塊交易費用均值一度達到609.75Gwei。[2022/1/6 8:29:10]
匿名性:交易所運營商能否根據誰在交易而阻止交易?保密性:交易所運營商可以看到并記錄交易細節嗎?當然,對于上述任何一個問題,答案是你的信息被永久地記錄在鏈上并傳輸給中介機構。有了這樣的認識,我們現在就可以深入了解鏈上和中介區塊鏈應用的隱私是什么。
免責聲明1:雖然大多數應用程序聲稱是去中心化的,但鏈上智能合約的開發和訪問往往是非常中心化的。例如,一個編碼錯誤往往可以導致數百萬美元的漏洞,而去中心化交易所交易往往要經過數量不斷減少的礦池,這些礦池利用用戶的交易為自己牟利。我們在此不進一步闡述這些問題,因為我們的重點是隱私問題。
免責聲明2:我們不會深入觸及隱私的一個重要維度是隱私、監管和合規之間的相互作用。金融中介機構在許多情況下都有法律義務,不僅要了解他們的客戶,還要記錄和報告某些金融交易。反洗錢是其中的主要目標之一。例如,加密貨幣的透明度最近幫助司法部追回了2016年Bitfinex黑客事件中被盜的價值36億美元的資金。我們不會觸及監管和合規問題,而是在本文中只從技術和理論層面關注隱私問題。
第二部分:如何構建保護隱私的區塊鏈應用
讓我們先來看看支付,因為它們大多是解決了隱私問題,而且不需要中介機構。Zcash和Monero是兩個同時提供匿名性和保密性的大市值加密貨幣。它們分別依靠零知識證明和環形簽名來提供不同程度的匿名性和保密性。我們還有其他建立隱私支付的方法,這些方法更有效,但需要互動,如Mimblewimble,或不需要不斷擴大的UTXO集,如Quisquis和AnonymousZether。
然而,在支付之外,情況就不那么清楚了。例如,支付之外最成功的應用之一是在去中心化金融領域。但目前我們仍然不知道或沒有廣泛建立DeFi應用的隱私技術。
為了全面的對這個問題進行推理,我們首先需要有一個良好的理論模型來談論鏈上應用。一般的鏈上應用可以被建模為迭代計算,由一個過渡函數f指定,它為每個起始狀態st和輸入計算←f。
以太坊Gas均價漲至204Gwei:6月22日,據EtherScan數據顯示,當前以太坊Gas均價上漲至204Gwei。[2021/6/23 23:57:56]
用戶可以在將交易提交給共識節點進行處理之前,將其構建為輸入。為了在這個過程中保護用戶的隱私,我們需要在不透露用戶身份和輸入的情況下進行計算。有三種方法:將計算推到鏈下,保持計算透明但隱藏發起人的身份,以及對加密的輸入進行同態計算,輸出透明。
通過ZKP實現鏈外計算的隱私性
零知識證明是20世紀80年代末理論計算機科學和密碼學領域的一個重要發展。區塊鏈環境中使用的特殊形式的零知識證明在學術上通常被稱為NIZK,即非交互式零知識。當證明是簡潔的,它們通常被稱為SNARG,或簡潔的非交互式論證。其他感興趣的特征是透明性和普遍性,這使得證明系統可以用于沒有可信設置的多個通路,或者使用一個普遍的可信設置。
ZKP在公共區塊鏈上的核心應用是執行可驗證的、鏈下計算的能力。通常情況下,驗證者是終端用戶或中介,而驗證者是區塊鏈,即驗證者集。使用ZKP進行一般計算的一個直接方法是直接證明狀態轉換的正確性。詳細說來,用戶在鏈下證明,對于一個特定的鏈上狀態st,用戶有一個輸入,當應用于檢查狀態st時,會產生一個具有某種輸出的新狀態st′,然后共識節點在覆蓋舊狀態之前驗證提議的狀態轉換的有效性。這是MinaSnapps和Aleo等ZK應用平臺采取的方法,這兩個平臺的靈感來自Zexe的學術工作。
透明鏈上應用與上述架構的關鍵區別在于,前者天真地認為,一個更新只對用戶用于生成更新的應用狀態st有效。如果多個用戶在沒有協調的情況下與同一個應用程序互動,這將導致“競賽條件”。為了詳細說明這個概念,假設有兩個有效的事務針對同一個鏈上狀態st0進行構建,分別將其更新為st1和st2。當第一個交易被記錄在鏈上時,鏈上狀態被更新為st1。因此,第二筆交易是使用新的狀態st1,而不是st0來驗證的,這很可能導致其無效。
以太坊Gas價格一度超過400Gwei:據歐科云鏈OKLink數據顯示,截至上午10時,近1000個區塊以太坊Gas平均價格達246.58 Gwei,環比上升221%,短時Gas價格一度超過400Gwei,上升幅度較大。[2021/1/22 16:45:20]
值得注意的是,人們可以通過將應用狀態分割成獨立的部分或完全消除共享鏈上狀態來繞過這個競賽條件。這使得這些ZK-應用平臺非常適合不需要用戶之間共享狀態的特定應用,但對于大多數需要這些共享狀態的鏈上應用,特別是像恒定功能做市商這樣的鏈上DeFi協議,就不是那么合適了。對于這些應用來說,由于競賽條件的問題,在整個應用狀態轉換中使用ZKPs有點像“狗熊掰棒子”的解決方案。然而,有一個解決方法,那就是增加一個中介或交易運營商,使應用狀態對運營商來說是私有的,而不是在所有用戶之間共享。不幸的是,如果不采用本文后面討論的其他解決方案,就沒有已知的辦法從這些中介那里隱藏交易信息。總而言之,ZK應用平臺上的交易所,如Aleo和Mina,實現了以下隱私特性。
表中詳細列出了可在Mina和Aleo等ZK應用平臺上建立的交易所的隱私特性鏈上:
匿名性:是保密性:是來自中介機構:
匿名性:是保密性:否透明鏈上計算的匿名性
為鏈上應用添加保密性是很難的。如果我們不試圖提供保密性,而只想提供匿名性呢?使用現有的工具已經可以做到這一點:使用CoinJoin和TornadoCash等tumbler和混合器,人們可以資助新的偽匿名地址以獲得匿名性。不幸的是,這些工具的選擇性質意味著它們更多地被惡意用戶而不是合法用戶所利用。例如,CoinJoin被ColonialPipeline勒索軟件使用,而TornadoCash經常被用來資助匿名地址,以幫助DeFi黑客。
有兩個項目試圖在透明的智能合約平臺上建立默認的匿名性。第一個是AztecConnect,這是一個新興的以太坊的“zkzk-rollup”,它在與支持的第一層應用程序進行交易時,提供交易匿名性。roll-up合約代表第二層用戶與第一層DeFi協議互動,為這些第二層用戶提供匿名性。
聲音 | Weiss Ratings:BTC有望創下7年來最佳的一季度表現:加密貨幣評級機構Weiss Ratings發推稱:“今年迄今為止,比特幣已經上漲了近30%,有望創下7年來最佳的一季度表現。BTC在2020年的強勢開局可能預示著未來的牛市周期。”[2020/2/4]
第二個是FLAX的學術工作。它提出重新設計一個類似以太坊的智能合約平臺,以支持終端用戶的內置匿名性。在核心方面,FLAX提出了一個匿名版本的ERC20代幣標準,允許匿名和原子化的代幣使用授權。有趣的是,實現這些“匿名ERC20”不需要新的加密技術。人們可以在代幣合約內使用之前提到的任何隱私支付計劃中的相同技術,如Zcash、Monero或Zether。
下面是一個表格,概述了上面討論的解決方案的隱私特征。我們在這里省略了中介一欄,因為沒有涉及到中介,除了AztecConnect,它有可能提供來自中介的匿名性,這取決于去中心化的程度和這些供應商的確切行為。
表中詳細列出了tubler、混合器、AztecConnect和FLAX的隱私特征鏈上:
匿名性:是。保密性:否通過MOCCA進行鏈上計算的隱私性
如果我們可以加密鏈上的應用程序狀態和用戶輸入,但仍然能夠對其進行計算,甚至得出公共的未加密的輸出信息,那樣會發生什么?讓我們把這樣一種理想的功能稱為神奇的鏈上保密計算設備。
直觀地說,MOCCA為狀態轉換函數f提供了可能的最佳隱私。它們可以在鏈上計算,給定必要的加密輸入,并且計算應該產生一個加密的和更新的狀態,以及一些透明的輸出值。具體來說,程序的狀態和輸入被加密到鏈上,這樣一來,唯一可以進行的共識操作就是計算狀態的轉換,這意味著只有應用意圖的信息被解密并變得透明。暫時假設我們有這樣一個魔盒,那么就很容易復制鏈上應用程序的功能,同時提供隱私屬性。因為應用設計者可以設計他們的應用,只發布相關的信息作為透明的輸出,如現貨價格或儲備金額。
有兩種方法來構建MOCCA,通過可信的硬件和通過密碼學。在任何一種情況下,我們都可以希望實現沒有中介的保護隱私的去中心化應用,并具有以下特性。
表中詳細列出了來自MOCCA的應用的隱私特性鏈上:
匿名性:是保密性:是來自可信硬件的MOCCA。第一個解決方案是利用可信的執行環境,特別是IntelSGX。這是在Ekiden的學術工作中首次描述,也是Oasis和SecretNetwork采取的方法。已經有一些應用程序在這些平臺上運行,如SecretSwap。然而,眾所周知,IntelSGX是有缺陷的。
來自密碼學的MOCCA。我們可以只用密碼學來構建圖靈完備的MOCCA么?事實證明,答案是肯定的,而且密碼學家已經發現了這個難題的所有個別部分。
拼圖的第一塊是閾值密鑰的生成和重新共享。我們知道如何在節點加入和離開時在動態共識集中生成和管理Shamir秘密共享,即使是大型共識集。這些允許“n”個共識節點中的任何數量的“t”采取行動,就像他們一起是公鑰加密方案或簽名方案的密鑰持有人一樣。這些進展被提出來,分別是為了防止前面的運行和構建簡潔的輕客戶端。
加法MOCCA和交易所。拼圖的第二塊是閾值同態加密。著名的和已部署的公鑰加密方案,如ElGamal和Paillier都是加法同態的,并支持Shamir秘密共享作為密鑰。利用它們,我們可以建立支持加法的MOCCA。
事實證明,我們已經可以使用只支持加法的MOCCA建立鏈上交易所。這是Penumbra的天才觀察,它利用ElGamal加密的加法同態性來匯總交易,并通過閾值解密來揭示一批交易的凈額。這以差異隱私的形式提供了交易的保密性。
來自閾值FHE的圖靈完備的MOCCA。為了實現更普遍的計算的MOCCA,我們當然需要完全同態加密。自2009年Genry首次構建FHE以來,FHE方案的效率在過去十年中在理論上和實踐上都有了穩步的提高,并有可能繼續提高。然而,FHE本身并不是全部的解決方案,因為持有解密密鑰仍然使任何一方能夠獲得在相應的加密密鑰下曾經發布到鏈上的所有信息。這就是以前在區塊鏈環境中部署FHE的努力,如NuCypher和smartFHE在提供保護隱私的鏈上應用方面的不足之處。
幸運的是,我們知道如何構建具有閾值解密的FHE方案,其中解密密鑰是Shamir秘密共享的。具體來說,每個共識節點可以獨立地對加密的程序狀態和輸入進行計算,得出加密的新程序狀態和加密的輸出。最重要的是,為了釋放透明的輸出,共識節點可以通過一輪通信對加密的輸出進行閾值解密。這里的閾值屬性保證,只要在閾值以下的驗證者是惡意的,那么只有預期的信息被釋放,而輸入和程序狀態永遠不會被解密。
結合上述內容,我們可以為一般的圖靈完備的狀態轉換函數建立一個純粹依靠密碼學的MOCCA,當然這其中還需要修改許多技術細節。
總結
隱私是公有鏈大規模采用的最后障礙之一。隱私可以分為兩個特征軸:匿名性與保密性,鏈上隱私與來自中介的隱私。有三類方法來實現隱私。
首先,使用零知識證明,我們可以通過將計算轉移到鏈下的中介機構來實現鏈上匿名和鏈上保密,從而犧牲來自中介機構的隱私。
其次,在不依賴中介的情況下,我們可以將匿名性添加到現有的鏈上應用生態系統中,而無需對應用設計進行重大改變。
最后,本文提出了一個被稱為MOCCA的抽象概念,即神奇的鏈上保密計算設備,它可以對加密數據進行計算并發布透明的輸出。MOCCA可以用來構建通用的鏈上匿名和保密應用,而不需要中介。MOCCA可以從可信的執行環境或依靠“區塊鏈的閾值密碼學”來構建。具體來說,閾值加法同態加密可用于構建加法MOCCA,以實現具有匿名和保密性的鏈上交易所;閾值完全同態加密可用于構建通用的MOCCA,以實現任何保護隱私的鏈上應用。
ZK方法目前在業界受到的關注最多。然而,我認為,更多的注意力應該放在第二和第三種方法上。將易于使用的匿名性添加到當前的智能合約架構中,是隱私和功能之間的一個很好的中間點。此外,我們應該促進對閾值FHE的長期研究和開發工作,以支持一般的隱私保護應用。這些方法也不是排他性的,我們可以有支持所有三種計算類型的應用平臺:透明的鏈上、隱私的鏈下和“不透明的”鏈上。如果你對上述任何一項感興趣,請與我聯系。
致謝
非常感謝AlexEvans和GuillermoAngeris提出的有益的編輯意見。感謝AdrianBrink創造了“不透明”一詞來描述加密數據的鏈上計算。
原文鏈接:https://wdai.us/posts/navigating-privacy/
作者?|谷昱 DAO是人類組織協調的新框架,也是?Web3世界的核心組織原語,憑借著今年的諸多進展以及大機構的力推,成為今年加密行業最受關注的賽道之一,也被認為最具潛力的方向之一.
1900/1/1 0:00:00中央央行穩妥推進數字人民幣冬奧場景試點據澎湃新聞2月1日報道,人民銀行營管部在人民銀行牽頭成立的北京—張家口冬奧會支付環境建設領導小組指導下,強化協作、主動作為.
1900/1/1 0:00:00注:原文作者是ZORA。我們從公開實驗中吸取了無數經驗,并創建了當今以太坊上存在的最省gas、功能最豐富的鏈上市場.
1900/1/1 0:00:00據CryptoSlate2月17日消息,為了進一步保護其網絡不受作惡者的影響,Cardano透露,如果有人發現并向其開發團隊報告網絡上的任何漏洞,他們會將漏洞賞金增加一倍.
1900/1/1 0:00:00據Cointelegraph2月18日消息,元宇宙項目Gemie宣布完成380萬美元融資,ShimaCapital、SoulCapital與KeneticCapital領投.
1900/1/1 0:00:00近日,歐科云鏈鏈上大師發布研報《身在Crypto卻對美聯儲加息一頭霧水?》,從宏觀環境出發,分析了美聯儲加息和量化寬松兩種貨幣政策對比特幣價格的影響.
1900/1/1 0:00:00