小白也能看懂的「零知識證明」原理

2020-12-05 星球日報

編者按:本文來自hackernoon.com,作者:Oscar W

譯者:星球日報茶涼

零知識證明(Zero-Knowledge Proof)或零知識協議是一種基於概率的驗證方法,包括兩部分:宣稱某一命題為真的證明者(prover)和確認該命題確實為真的驗證者(verifier)。

零知識證明指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的,在密碼學中非常有用。

顧名思義,零知識證明就是既能充分證明自己是某種權益的合法擁有者,又不把有關的信息洩漏出去,即給外界的 「知識」 為「零」。

「能夠在不知道用戶是誰,或者他們有多少錢的情況下判斷『一個用戶是否有足夠的錢發送給另一個用戶』的問題,是零知識證明在區塊鏈中的主要應用之一。」——Demiro Massessi

為何零知識證明如此重要?

數據隱私是當今社會最重要的課題之一。保護與個人身份有關的個人資料 (出生日期、銀行月結單、交易記錄、學歷) 極為重要,並會不斷增加其重要性。在科技時代,我們正在生成前所未有的海量數據,而我們不斷創造的關於我們自己的數據也在不斷被獲取。像谷歌和 Facebook 這樣的大公司已經利用我們的數據成為了今天主宰世界的科技巨頭。然而,最近密碼學的突破和區塊鏈的興起使一種新的方法能夠幫助保護我們的數據和身份,甚至保護我們與之交互的組織。

零知識證明可能就是如何保護數據隱私的答案。

零知識證明的原則

零知識證明是麻省理工學院研究人員在 20 世紀 80 年代提出的一種加密方案。零知識證明協議是一方 (證明者) 向另一方證明 (驗證者) 某件事情是真實的一種方法。除了該特定聲明是真實的以外,沒有披露任何其他信息。

例如,當前網站將用戶密碼的哈希值存儲在其 web 伺服器中。為了驗證客戶端是否真的知道密碼,大多數網站目前使用的方法是對客戶端輸入的密碼進行哈希值計算,並將其與存儲的結果進行比較。

零知識證明可以保護用戶的帳號信息不被洩露。如果零知識證明可以實現,那麼在客戶的密碼是未知的情況下,仍然可以在客戶端登錄進行身份驗證。當伺服器受到攻擊時,用戶的帳戶仍然是安全的,因為客戶的密碼沒有存儲在 web 伺服器中。

交互式零知識證明

零知識證明協議的基礎是交互式的。它要求驗證者不斷地提出一系列關於證明者所知道的 「知識」 的問題。

例如,如果有人聲稱知道九宮格謎題的答案,零知識證明就是驗證者隨機指定按列、行或九個正方形進行驗證。每個測試不需要知道具體的答案,只需要檢測數字 「1」 到「9」是否包含在其內。只要驗證的次數足夠多,就有可能判斷證明者是否知道九宮格謎題的答案。

然而,這種簡單的驗證方式並不能使人們相信證明者和驗證者都未做偽證。在九宮格遊戲中,兩者可能會事先串通,以便證明者在不知道答案的情況下通過驗證。如果他們想說服第三方相信這個結果,驗證者還必須證明驗證過程是隨機的,並且它不會將答案洩露給證明者。因此,第三方很難驗證交互零知識證明的結果,需要第三方的參與,等額外的努力和成本才能向多人證明某件事是真實的。

非交互式零知識證明

非交互式零知識證明,顧名思義,不需要交互式過程,避免了驗證者和證明者串通的可能性,但可能需要第三方機器和程序來確定驗證的順序。

例如,在九宮格遊戲中,由第三方程序決定要驗證哪一列或哪一行。驗證序列必須保密,否則驗證者可能在不知道真實 「知識」 的情況下通過驗證序列。

零知識證明在區塊鏈中的應用

比特幣和以太坊網絡都使用公共地址來代替驗證者和證明者的真實身份,使得交易部分匿名; 只有發送和接收地址,以及交易數量是公眾知道的。但是,通過區塊鏈上提供的各種信息,如交互記錄等,可以發現地址的真實身份,存在隱私暴露的隱患。

用了零知識證明之後,發送方、接收方和第三方的細節信息可以保持匿名,同時保證交易有效。

最早使用零知識證明技巧的區塊鏈叫做 Zcash,實際的作法叫做 Zk-Snarks,這是許多零知識證明的做法之一,也是最有名的一個。

Zk-Snarks 是 「零知識簡潔無交互知識認證」 的簡稱,是一種在無需洩露數據本身情況下證明某些數據運算的一種零知識證明。

Zk-Snarks 技術縮減了證明所需的時間和驗證它們所需的計算量。它能夠證明有效交易的條件已經滿足,而不需要透露交易所涉及的地址或交易量的任何關鍵信息。

Zcash 可以將交易紀錄上的匯款者、收款者和金額都經過加密隱藏起來,因此礦工無從得知這些交易上的細節,但仍然可以驗證交易。不過,目前多數使用者在 Zcash 上的交易,還是選擇未經加密的作法,因為花費的成本比較高。

另外,以太坊(Ethereum)上的智能合約目前也已經可以運用 Zk-Snarks 這套零知識證明的作法。但以太坊不完全是從隱私的角度切入,而是從節省運算成本的角度應用零知識證明。

透過 Zk-Snarks,以太坊礦工可以不用再重新執行交易的運算,而是只要對方提得出證明即可。大概就像我不需要真的知道你會高一到高三的數學,而只要看到高中畢業證就能確定你懂高中數學。不過,這隻有在製作證明的成本,遠低於實際運算成本的情況下才划算。

Zk-Snarks 將需要驗證的交易內容轉化為兩個多項式乘積相等的證明,並結合同態加密等高級技術,在執行事務驗證的同時保護隱藏的事務量。其過程可簡單描述為:

將代碼分解為可驗證的邏輯驗證步驟,然後將這些步驟分解為由加減乘除組成的計算流程。

進行一系列變換,將待驗證代碼轉換為多項式方程,如 t(x)h(x)= w(x)v(x)。

為了使證明更加簡潔,驗證者事先隨機選擇幾個檢查點 s,檢查這些點上的方程是否為真。

通過同態編碼或加密,驗證者在計算方程時不知道實際輸入值,但仍然可以驗證。

在等式的左右兩邊,乘以一個不等於 0 的密值 k。當驗證 (t(s)h(s)k) = (w(s)v(s)k) 時,具體的 t(s)、h(s)、w(s)、v(s)是不可知的,可以對信息進行保護。

當前履行 Zk-Snarks 算法的一個缺陷是需要在 advanced 中內置參數。如果這些參數洩露,整個網絡將面臨毀滅性的破壞。因此,用戶必須信任在使用這些網絡時不會洩露的信息。

可能的解決方案包括使用現代的「可信執行環境」,如 Intel SGX 和 ARM TrustZone。對於 Intel 的 SGX 技術,即使應用程式、作業系統、BIOS 或 VMM 受到威脅,私鑰也是安全的。此外,最近的一份白皮書揭示了它在零知識密碼學中的創新:Zk-Snarkss(零知識可伸縮透明知識參數)。

根據 Zk-Snarks 白皮書,Zk-Snarks 是第一個不依賴任何信任設置實現區塊鏈驗證的系統,而隨著計算數據數量的增加,計算速度呈指數增長。它不依賴於公鑰加密系統,而且更簡單的假設使它在理論上更安全,因為它唯一的加密假設是哈希函數 (如 SHA2) 是不可預測的。零知識證明和 Zk-S(T|N)ARK 等技術的測試和採用需要時間。

相關焦點

  • 怎麼證明你媽是你媽?零知識證明會給你答案!
    【什麼是零知識證明?】你從前一定聽說過這樣一個事情,一家要出境旅遊,需要明確一位家人作為他們的緊急聯絡人,於是爸爸想到了自己的母親。那麼問題來了,旅行社要求爸爸出局書面證明,證明他和他母親是母子關係。可爸爸成家後戶口信息早已不在父母的戶口簿上。
  • 燈光設計之讓小白也能看懂DIALUX照度計算報告
    燈光設計之讓小白也能看懂DIALUX照度計算報告不管是設計師還是業主,基本會收到一份DIALUX的照度計算報告,但很多人基本看不懂是什麼,只覺得是一堆數據,今天讓小編給你們答疑。小編告訴你自學了多長時間,一天左右,為什麼小編能學這麼快?一是小編已經學會了看懂圖紙,二是小編有建模的基礎,三是把這個軟體的基礎工具熟悉後,拿一個方案模擬,後面基本類似。
  • 數據分析入門學習指南,零基礎小白都能輕鬆看懂
    然而,讓很多朋友困惑的是,我是沒有編程基礎的小白,能學會數據分析麼?該如何學習數據分析呢?其實,如果你打算成為一名數據分析師,如何出身並不重要,數據科學是一門應用學科,你需要系統提升數據獲取、數據分析、數據可視化、機器學習的水平。下面我就簡單提供一個數據分析入門的路徑。第一階段:Excel數據分析每一位數據分析師都脫離不開Excel。
  • 二次剩餘——第一個零知識證明協議的歷史背景與證明方法|火星技術帖
    小編:記得關注哦來源:安比實驗室SECBIT原文標題:三分鐘了解第一個零知識證明協議的歷史背景與證明方法完整介紹了第一個零知識證明協議的背景知識、構造以及證明。如何證明一個協議真的做到了零知識洩漏呢?如何證明「零知識」Bob 作為驗證者,在零知識證明協議運行過程中,能夠「看到」的信息包括 Alice 發過來每條記錄 (transcript) 以及自己的拋硬幣結果 (local coins),即 view = {tanscript, local coins}。
  • 教大家如何快速看懂電氣原理圖,值得收藏學習!
    想要快速看懂複雜的電氣原理圖,除了需要具有一定的電工專業知識外,在看圖過程中還是需要一定的技巧的!任何複雜的電路圖都是由基本的簡單的電路圖構成的,只不過增加了更全備的保護或者設計功能更為複雜點,原理都是相通的。
  • 從零開始一起學習SLAM | ICP原理及應用
    小白:原來如此,看起來ICP還挺強大的,對應不對應都能搞定啊,ICP為何這麼牛叉?ICP為何這麼牛叉?師兄:來看看ICP的過程就知道了。為了方便,我們用一個二維的例子來說明吧,初始是兩個不同角度下的笑臉(深紅色和綠色),下面是紅色笑臉如何通過ICP過程和綠色笑臉重合的:
  • 小白也能看懂:附圖講解 Boost升壓電路的工作原理
    本篇文章針對新手,將為大家介紹Boost升壓電路的工作原理。 電感阻礙電流變化,通低頻,阻高頻,通直流,阻交流; 圖1 Boost開關升壓電路的原理圖 這些補充內容是教科書本上沒有的知識,但是能夠與教科書本上的內容進行對照並印證。
  • 與其花錢算命,不如自學《易經》,看懂易經
    看懂《易經》也是看懂生命。易與天地似,故能彌倫天地之道。古人認為《周易》包含所有「道」。很簡單,但他是《周易》。《周易》用「一」表示陽,「--」代表陰,代表宇宙發展的動力和規律。用六四卦,他包含了天地變化的方式,最合理的生活方式,正是因為他達到了用簡單控制複雜的目的。大道至簡,Avenue非常簡單,用一兩個詞就可以簡單地說明白。
  • 【初中生能看懂系列】僅用勾股定理證明秦九韶—海倫(面積)公式
    那我想了想,這次寫點初中生學過勾股定理和平方差公式就能看懂的東西吧嘿嘿!那這次就分享一下數學文化——秦九韶的三角形面積算法「三斜求積術」,並用最簡單、最通俗易懂的知識(話)去證明之,並利用平方差公式,對式子進行因式分解,進而得到漂亮的海倫公式!
  • 新手小白必讀 1分鐘看懂HiFi設備上的接口
    上一次,我們為大家講解了音頻設備上常見的同軸接口和光纖接口,幫助一些新手小白用戶解決了一些困擾。採用RCA同軸和光纖接口的S/PDIF接口本文屬於原創文章,如若轉載,請註明來源:新手小白必讀 1分鐘看懂HiFi設備上的接口http://dcdv.zol.com.cn
  • 掌握4個寫作原則,零基礎寫作小白也能快速上手寫作
    或許你會說寫作大咖有寫作天賦,他們會有很多寫作靈感,所以能輕鬆寫出好文章。而自己天生沒有寫作細胞,所以沒法寫出好文章。寫作真的完全靠天賦,靠靈感嗎?當你看完下面這本書,零基礎寫作小白也能輕鬆上手寫作。這是本什麼樣的書呢?
  • 新手小白必讀 3分鐘看懂常見數字音頻接口_索尼 WH-1000XM3_數碼...
    當我們在使用數碼音頻產品時,通常要面對的第一件事情就是連線;例如在一些臺式設備上會配有各種音頻接口,然而讓人頭疼的是,有的接口雖然功能不同,但是外觀卻長得一樣,這就給很多新手小白用戶帶來了很大困擾
  • 嚴伯鈞的硬派科普秀|每天5分鐘,讓你零基礎、無門檻,輕鬆看懂紛至沓來的新科技|芝識分享百度網盤下載
    嚴伯鈞的硬派科普秀嚴伯鈞,跨界學霸,科普達人每天5分鐘,講透你最想知道的科學硬知識硬核科普達人2018年被《新周刊》評選為「十大網紅導師」之一;擅長以嚴密的邏輯,輕鬆幽默地講解硬核科學知識;錄製的科普短視頻在網絡上的播放量超過3億次,粉絲超過200萬。專業的業餘藝術家和愛因斯坦一樣,沉迷西方古典音樂和藝術,組建過室內樂團,有15年以上的小提琴和鋼琴演奏經驗。
  • 從零開始學習 zk-SNARK(一)——多項式的性質與證明|火星技術帖...
    其實零知識證明在無數的應用中都具備優勢,包括:1)證明關於隱私數據的聲明:一個人 A 的銀行帳戶金額多於 X去年,一家銀行未與實體 Y 進行交易在不暴露全部 DNA 數據的前提下匹配 DNA一個人的信用評分高於 Z 2)匿名認證:在不揭露身份的情況下(比如登錄密碼),證明請求者 R 有權訪問網站的受限區域證明一個人來自一組被允許的國家/地區列表中的某個國家/地區,但不暴露具體是哪個證明一個人持有地鐵月票
  • 一分鐘看懂黎曼猜想及其被證明的意義
    一分鐘看懂黎曼猜想及其被證明的意義 李倩 發表於 2018-10-16 17:40:26 一分鐘看懂黎曼猜想及其被證明的意義 「黎曼猜想」 是數學界迄今最重要的猜想之一
  • 為了看懂89歲爺爺證明黎曼猜想,我先重溫了一遍《美麗心靈》
    中秋第一課——看阿蒂亞爵士證明黎曼猜想在剛剛過去的中秋佳節團圓之日,好不容易放下手機,準備切一塊今年的「新寵」五仁月餅嘗嘗。突然驚聞阿蒂亞爵士發出了黎曼猜想的五頁預印本證明,猶如颱風上岸,迅速席捲了微信圈和QQ群,人人爭相一睹為快!
  • 單片機小白學步(23) IO口原理知識補充:雙向IO口 互補推挽
    由於之前考慮不周,本篇在IO口原理知識的基礎上,進一步補充一些知識。從圖中可以看出,裝置輸出的電平能被準確的讀取到單片機中。之所以能準確讀取,就是因為裝置輸出電阻比單片機IO口的輸入電阻要小。=======================================================《單片機小白學步》系列教程(原名《單片機入門指南》)介紹本系列教程從最基本的入門知識開始,逐步深入介紹單片機系統設計,內容包括:1、入門篇:單片機等基本概念、各種電子設計基本知識2、思想篇:單片機
  • 大話卷積神經網絡CNN,小白也能看懂的深度學習算法教程,全程乾貨...
    來源 | 程式設計師管小亮本文創作的主要目的,是對時下最火最流行的深度學習算法的基礎知識做一個簡介,作者看過許多教程,感覺對小白不是特別友好,尤其是在踩過好多坑之後,於是便有了寫這篇文章的想法。大家比較關注的熱點新聞,如下圖所示:二、人類視覺原理深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。
  • 若證明了哥德巴赫猜想,誰能看懂?誰有資格判斷對錯?
    看懂答案屬於接受知識,而證明哥德巴赫猜想屬於開拓新的知識。證明哥德巴赫猜想不容易,看懂哥德巴赫猜想的證明就要比證明哥德巴赫猜想簡單很多。真若是有人證明了,會有很多同行能夠看懂。一旦有人給出了證明過程,評判多錯也有一套成熟的方法,就是要經過同行的評審。
  • 新手小白必讀 3分鐘看懂常見數字音頻接口
    當我們在使用數碼音頻產品時,通常要面對的第一件事情就是連線;例如在一些臺式設備上會配有各種音頻接口,然而讓人頭疼的是,有的接口雖然功能不同,但是外觀卻長得一樣,這就給很多新手小白用戶帶來了很大困擾。音頻信息在數據流中佔有相同位置,使得兩種格式在原理上是兼容的。在某些情況下AES/EBU的專業設備和S/PDIF的用戶設備可以直接連接,但是並不推薦這種做法,因為在電氣技術規範和信道狀態位中存在非常重要的差別,當混用協議時可能產生無法預知的後果。