全面解析零知識證明:消解擴容難題,重新定義「隱私安全」
原文作者:Packy McCormick,Jill Carlson
原文作者:Packy McCormick,Jill Carlson
原文編譯:Jessie,Siqi
本文來自海外獨角獸。作為互聯網世界的最小單元,人們為了獲得互聯網帶來的便利,在參與線上生活、工作、交易的過程中不得不出讓自己的隱私數據:
必須在網站上輸入信用卡號碼,必須向房屋中介提供自己的銀行信用記錄,必須向銀行提供身份證信息。除了個人,公司和機構也必須一直相互披露敏感信息才能開展業務。分享信息並接受其不安全感似乎被公認為社會運轉過程中的必要犧牲。
零知識證明(zero-knowledge proof,本文中我們將之簡稱為ZKP)的提出正是為了解決這樣的困境。 ZKP 本質上是讓人們可以在不洩漏任何自己隱私信息的情況下,進行自我身份、權益的認證。ZKP 目前的最佳實踐在區塊鏈領域。可擴展性問題一直是以太坊面臨的最大困境之一,以ZKP 為基礎的zk Rollup 技術被包括Vitalik 在內的加密領袖一致看好的擴容路線
,zk Rollup 在基於繼承以太坊安全性的前提下,創建了更加高吞吐量、低費用的二層網絡(Layer2)。 ZKP 也因此備受關注。
儘管目前ZKP 在現階段更多地和區塊鏈聯繫在一起,但它的應用場景不止於此。 ZKP 以其獨有的隱私性、準確性及可驗證性,還將帶來雲計算、金融、線上投票、機器學習等多個領域的應用和創新。
零知識證明是一個複雜的密碼學概念。我們希望以一種淺顯易懂的方式進行行業科普,讓更多人理解零知識證明,這也是「海外獨角獸」一直以來致力於促進“認知平權”的努力之一。
以下為本文目錄,建議結合要點進行針對性閱讀。
以下為本文目錄,建議結合要點進行針對性閱讀。
01. 什麼是零知識證明?
02. 零知識的歷史
03. 對隱私的取捨
一級標題
一級標題
01.
什麼是零知識證明?
什麼是零知識證明?
數據無處不在。姓名、出生日期、電子郵件地址、信用卡號碼、我們在過去五年中居住的地址……這些只是我們個人海量信息中的一小部分,這些個人數據每天都被發送給不同的企業、社交媒體網站、客戶經理,有時候,我們的數據也會被不法分子竊取。
這種狀態帶來的風險不言而喻:身份盜用、電子郵件洩露、數據洩露和其他形式的欺詐每年給個人和企業造成數百億美元的損失,比防禦和預防方面的支出高出幾個數量級。更不用說處理後果的麻煩了。作為現代互聯世界的參與者,數據的擴散及其脆弱性已成為參與商業活動公認的成本:
二級標題二級標題
工作原理
工作原理
這種技術可以讓人在不透露任何具體細節的情況下,證明他掌握這些信息。這裡有一種簡單的方式解釋它的工作原理:
我和一位色盲朋友共同面對著桌子上的球,一個球是紅色、一個球是綠色,除了顏色外其他方面看起來都相同。當我告訴他,它們是兩種不同的顏色時,他並不確定是否能相信我。最終我們決定通過玩遊戲來確定這兩個球的確是不同的顏色:
他首先將兩個球藏在自己背後;
隨後他拿出一個球給我看;

二級標題
二級標題
二級標題
三個屬性
一個零知識證明必須同時具備三個不同的屬性:完備性(Completeness):循了規則,那麼驗證者將被說服,不需要任何人為的幫助。
健全性(Soundness):健全性(Soundness):
一級標題一級標題
02.
一級標題
零知識的歷史

在當時,Shafi Goldwasser、Silvio Micali 和Charles Rackoff 的研究重心和交互式證明系統相關。交互式證明系統中涉及到兩方面的角色:
信息的證明者(prover)
信息的信息的
驗證者(verifier)
通常都會假設證明者(prover)是不可信的,而驗證者(verifier)為可信。這樣設計系統的目標是:
驗證者(verifier)能夠被一個不可信的證明者說服、從而相信一個真實的陳述
證明者不可能說服驗證者(verifier)相信不真實的陳述可以想像一個場景:
酒吧門口排了長長的隊,如果這些排隊者想要進入酒吧就必須向保鏢證明其本人已經成年。那麼排隊者就是自己年齡的證明者(prover),保鏢是驗證者(verifier),但保鏢並不知道他是否可以信任排隊的人。
互動證明系統在這個場景的應用是,保鏢需要明確排隊者的年齡是否大於18 歲,而排隊者也需要向保鏢證明這一點,那麼在身份證信息的支持下,保鏢能夠對排隊者的年齡進行判定、並最終決定對方是否可以進入酒吧。Goldwasser、Micali 和Rackoff 在此基礎上提出了一個問題:如果保鏢不僅不信任排隊的人,並且排隊者也不信任保鏢,因為個人的身份證信息是十分敏感的,他們並不想將該信息直接給到一位素不相識的保鏢,這種情況該如何處理?
他們三人針對這個問題的解決方案其實就是“零知識證明”,即排隊者無需告訴保鏢自己實際出生日期,仍舊可以說服對方自己已經成年,並順利進入酒吧。
1980~1990 年代期間,零知識證明在學術界得到了進一步的研究,但實際應用很少。直到21 世紀,研究人員和企業家才開始將該理論應用於實踐。最早對零知識證明應用之一是2000 年中左右的網絡密碼安全。
當用戶使用密碼登錄網站時,背後的實際過程是,用戶在登錄網站時需要輸入自己密碼,這些密碼被發送到到網站的服務器,服務器再將密碼壓縮成一串gobbledygook 字符串,系統再比較這個字符串是否和之前存儲在系統中的gobbledygook(一種經過加密的亂碼) 字符串是否匹配。如果兩個值相同,用戶就能夠成功登陸。
gobbledygook 的使用是為了對用戶的原始密碼進行保護:一旦有黑客獲得系統中的gobbledygook 字符串,也無法通過這串字符推導出真實密碼,也就是說,用戶密碼並沒有被明文存儲。但是,這裡仍有一個問題:即用戶在登陸網站、輸入明文密碼,以及這些密碼發送至服務器被轉化成字符串之前的環節中仍舊存在密碼洩漏的風險。到了2000 年代,使用零知識證明解決這種漏洞的協議被提出,出現了首批將ZKP 應用於真實世界中的案例,尤其集中在身份驗證方向的探索
。但零知識的真正拐點發生在幾年後。在2013~2014 年,零知識證明在另一個系統中找到了商業應用:加密貨幣。注:
注:
注:
注:
2021 年5 月7 日,美國最大的燃油管道商Colonial Pipeline 遭到勒索軟件攻擊,攻擊者竊取了Colonial Pipeline 100 GB 的數據,導致該公司暫停了所有的管道作業網絡,並於晚間關閉一條主要的燃料傳輸管道。 Colonial Pipeline 按照黑客要求以加密貨幣的方式支付了75 比特幣(440 萬美元)的贖金後才得以重新啟動作業。隨後,FBI 根據被記錄在鏈上的資產轉移記錄獲取了勒索交易的證據、鎖定了攻擊者的身份,並對其進行製裁。
基於對比特幣透明性的改進,出現了一種具備強隱私性的“匿名幣”。

注:
注:
注:
注:
FATF,Financial Action Task Force,反洗錢金融行動工作組織,於1989 年7 月在法國成立,為世界上最重要的打擊洗錢國際組織之一。
但隱私交易的需求是真實存在的,尤其是隨著DeFi 應用的爆發,這一需求愈發旺盛。
如何在鏈上交易中保護自己的交易策略不被他人知道,是交易員們最關心的議題之一,因為一旦自己的交易策略被他人追踪或模仿,將直接影響他們能否從市場上獲得alpha收益。如果在中心化交易所做交易,則有被中心化交易所操縱的風險,但傳統的去中心化交易所更是完全透明的,他們的交易策略可以被任何人查詢、追踪。
一級標題一級標題
03.
一級標題
對隱私的取捨
人們對個人隱私的態度有兩類:
放棄隱私,並假設他們所有的數據都可供真正想要的人使用

極度關心自己隱私
我們大多數人都屬於第一個陣營。雖然沒有人會承認自己願意將隱私信息暴露給黑客,例如人們都保持著定期更新密碼的習慣,但當每個人都有大量信息被存儲到線上時,維護隱私的工作量就不只是更新密碼那麼簡單了,有時候維護個人信息需要付出的成本會遠高於人們的可承受範圍。換句話說,大多數人會願意
為了方便而犧牲隱私。而零知識證明則有可能消除這種不必要的權益讓渡和取捨,並轉變人們關於隱私的思考範式。人們在面對涉及自己隱私的情況下會提出:
“誰,在哪種情況下,需要多少信息?”這樣的問題,而不再是一個非黑即白的決定。
在ZKP 的幫助下,驗證者(verifier)只需要了解自己想知道的關於證明者(prover)的事,而不需要知道對方所有信息,也不需要在服務器上存儲所有數據,就能夠完成驗證工作。
ZKP 並不是以更少摩擦提供更多隱私的唯一潛在解決方案。也有其他的初創公司在嘗試給出解決方案以保護更多的隱私,而不需要消費者的行為與體驗發生太大改變。
Stytch 和Magic 等公司通過為開發者提供工具包,將無密碼身份認證潛入到產品中,以更安全的方式輕鬆驗證用戶身份,從而消除了過往需要用戶輸入密碼才能登陸的需求,例如電子郵件認證、Google Authenticator 驗證器、WhatsApp 鏈接等,而無需擔心密碼被盜。
Evervault 則為開發者構建加密基礎設施,確保用戶輸入的任何數據當場自動加密,永遠不會在公司的數據庫中以未加密的形式存在。 Evervault 完美地代表了新一代隱私技術的精神:
一級標題
一級標題
04.
一級標題
零知識證明的分類根據證明者(Prover)和驗證者(Verifier)之間的交互方式和形態,
零知識證明可被分為交互式零知識證明和非交互式零知識證明。交互式零知識證明(Interactive zero-knowledge proofs):

但交互式零知識證明有兩個明顯的問題:
可移植性受限:可移植性受限:
交互式證明只對原始的驗證者(verifier)有效,其他的驗證者都不能信任這個證明。因此,一旦驗證者發生變化,即便是相同的證明,證明者仍需要重複之前的整個過程;不可擴展:
交互式ZKP 要求證明者和驗證者同時在線,這使得整個過程無法擴展。
這就是為什麼交互式零知識證明區塊鏈對少數參與者而不是大群體更有效。為了解決交互式零知識證明面臨的問題,非交互式零知識證明應運而生。非交互式零知識證明(Non-interactive zero-kowledge proofs):
證明者只需要在第一次向驗證者發送一個證明,驗證者可以隨時對該證明信息進行驗證,並且只需要驗證一次就能夠判定是否選擇相信證明者。這種證明方式比交互式證明需要更多的算力來完成。

在交互式證明系統中,“證明者”和“驗證者”必須同時在線,才能成功執行操作,這使得整個過程無法擴展。 1986 年,Fiat 和Shamir 發明了Fiat-Shamir 啟發式,將交互式零知識證明改為非交互式零知識證明。在這裡,驗證者被一個哈希函數替換,由於該哈希函數產生的數列具有隨機性,證明者無法提前預知,那麼只要證明者提供的哈希值是正確的,則通過證明。
非交互式證明的優勢主要有:
可擴展:它不需要證明者或驗證者一直在線
可移植:證明者一旦給出證明,就可以將其公開,面對不同的驗證者不需要重複做證明一級標題
一級標題
05.
一級標題
零知識證明的風險
零知識證明雖然功能強大,並且在不斷迭代中,但也存在以下不足:並非100% 保證信息真實:
一級標題一級標題
06.
二級標題
二級標題
二級標題
一個簡單的例子:租公寓

有一對夫妻想要租一間公寓,按照要求房產經紀人要對租客進行信用檢查,需要租客提供銀行賬單、收入證明以及社保號碼等信息。
但因為租客才剛剛認識房屋中介,並不認為對方會妥善會保護自己的隱私。自然不想讓房屋中介和其團隊看到自己詳細的財務狀況,尤其是租客也無法確定房屋中介的信息系統是否足夠安全,從而確保黑客不會獲取這些數據。

這個時候就可以引入零知識的思想來解決上述問題。
假設公寓每月的租金為1000 美元,根據中介要求,當租客需要證明自己的收入至少是月租金的40 倍才有資格租住這套公寓。以下是租客接受測試的方式:

二級標題

二級標題
二級標題
更複雜的例子
區塊鏈隱私
在加密貨幣的世界中,上述互動方式已經成為可能。今天有一些項目致力於使用ZKP 來證明交易者的信用評分。還有一些項目正在為面向ZKP 的資產和交易建立新的、通用的平台。還有一些人仍然專注於將基於ZKP 的隱私帶到以太坊。以太坊創始人Vitalik 認為:“零知識證明是最強大的隱私解決方案,儘管技術實現難度最高,但在保護以太坊網絡的隱私性和安全性上,效果最佳。”
比特幣和以太坊等公共區塊鏈的透明度使交易能夠公開驗證。然而,它也意味著幾乎沒有隱私。零知識證明可以為公共區塊鏈帶來更多隱私,例如,加密貨幣Zcash 是zk-SNARKs 的第一個項目實踐,這是一種非交互式零知識證明形式,可以為數字貨幣提供最強的隱私性。這些創新有望向那些一直以來在加密世界之外的用戶開放加密貨幣及其應用程序。今天,企業並不會使用穩定幣來運行國際工資單,儘管它們比電匯更有效率;在去中心化金融協議利潤豐厚且收益高的市場中,許多金融機構也不會來尋求alpha 收益。
造成這種情況的一個關鍵原因是,像這樣的公司不能在互聯網上四處散佈他們的財務信息和交易歷史,他們不得不擔心數據隱私。那麼為什麼這些企業不使用Zcash 之類的產品呢?或者面向隱私的穩定幣?因為,這些企業除了擔心數據安全之外,還要擔心合規性。
他們不能使用一直處於隱私範圍的東西,因為他們沒有審計報告來證明他們正在向已知的交易對手付款,而不是受制裁的行為者或恐怖組織。如今正在開發的ZKP 最酷的地方在於,它們不僅具備隱私功能,而且還支持信息的選擇性披露。
因此,你現在可以想像一個穩定幣產品,它可以同時滿足公司的數據和合規性需求:發行人可以擁有完整的審計追踪並能夠驗證資產持有人的合規身份,但在其他大多數人看來,他們在匿名賬戶之間完全私密地轉移資金。
區塊鏈擴容
除了隱私和選擇性披露問題的應用,零知識證明系統也被用於區塊鏈擴容。
區塊鏈擴容的一個主要問題是,隨著時間的推移,區塊鏈存儲的數據量變得巨大。區塊鍊是一種可公開驗證的賬本,記錄了加密貨幣所發生的一切。因此,如果你想驗證賬本,必須將計算機同步到整個賬本,一直追溯第一筆交易。對於許多普通用戶而言,實際執行此操作的內存和帶寬要求高得令人望而卻步。
區塊鏈利用ZKP 來解決這個問題。整個交易歷史可以壓縮到一個單一的證明,只需要驗證證明,而不需要驗證整個賬本。該證明的尺寸不會超過幾條推文,任何人的硬件設備都可以完成。
ZKP 也是用來擴容以太坊的重要工具。

區塊鏈擴容技術提供商StarkWare 團隊的co-founder Eli Ben Sasson 曾任以色列理工學院的資深教授,也曾是Zcash 的創始科學家。他發明了基於zk STARK(一種非交互式證明)的zkRollup 技術,以解決以太坊的擴容問題,提高以太坊的吞吐量並降低了交易費用。 zkRollups 減輕了必須直接存在於區塊鏈賬本上的內容的負擔,用更便宜、更輕量級的數據證明取代了以前需要上鍊的所有數據。
雖然圍繞ZKP 的許多創新都是在加密貨幣領域開創的,並且用於這項創新的大部分資金都來自於此,但其影響和應用範圍更廣。
金融:金融:
金融:金融:
2017 年客戶遍及40 多個國家的ING 銀行(International Nederlanden Group,亦名荷蘭國際集團),通過ZKP 的方式來讓客戶證明他們某一項指標滿足要求。例如,抵押貸款申請人可以證明其收入在滿足要求標準的範圍區間,而無需透露其確切的工資。一年後,ING 又將該隱私解決方案推進一步,不僅可以驗證數字,還可以驗證其他類型的信息,例如,銀行可以驗證一個新客戶是否居住在歐盟國家,而客戶無需透露自己具體居住的國家。線上投票:
線上投票必須滿足一系列要求,才能實現與傳統紙質投票相同或更高等級的安全性。這些要求主要來自於四個方面:(投票人經過)身份認證、誠實性、隱私性和可驗證性。 ZKP 允許選民匿名投票,以這種方式可以證明該過程是正確的,驗證他們的投票是否包含在最終計票中,並確保在計票過程中沒有產生對選票的操縱。機器學習:
在訓練一個機器學習模型的過程中,除了提供大量的數據,還要回答“我的模型輸出的結果是可信的嗎?”這一問題。最簡單的方法是記錄整個計算過程、並進行“倒算推演”的反向驗證。雖然理論上可行,但實際中這類驗證過程不僅工作量龐大,還會使得這個模型在使用中的可遷移性減弱,因為一旦涉及到新的數據輸入都必須進行一次這個流程,並不利於機器學習的大規模普及和應用,並且也存在數據可數據和算法模型洩漏的風險。得克薩斯州立大學的張玉鵬博士在去年的一篇論文中指出,零知識證明也可以被引入到機器學習模型的訓練過程中,可以在保護數據庫數據和算法模型的基礎上來更快地驗證某次輸出的結果是否準確、可信。核裁軍:
......

2016 年在美國能源部(DOE)普林斯頓等離子體物理實驗室(PPPL)進行了第一次物理零知識證明的實驗演示,該實驗允許核查人員確認一個物體是否是核武器,而無需記錄、分享或披露內部機密工作。這些只是無數可能性中的幾個例子。


