偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

安全 | 零知識證明是零信任嗎?

安全 應用安全 零信任
零知識證明解決了信任與隱私的矛盾:既通過「證明」提升「信任」,又通過「零知識」保護「隱私」。是兩全其美的方案。本文更想表達的觀點其實是:探索零知識證明的過程,可以探索到安全的本質。

[[416125]]

如果只是為了回答標題問題,兩個字就可以:不是。

但還是想順便說說,零知識證明(ZKP)究竟是什么。

雖然零知識證明和零信任這兩個詞,都帶有“零”,都與“信任”有關,但并不是一回事。兩者本質上都要增強「信任」,但在增強「信任」的過程中,零知識證明強調不泄露知識;零信任強調不要過度授權。簡單說,零知識是為了隱藏知識;零信任是為了控制信任。

零知識證明解決了信任與隱私的矛盾:既通過「證明」提升「信任」,又通過「零知識」保護「隱私」。是兩全其美的方案。

本文更想表達的觀點其實是:探索零知識證明的過程,可以探索到安全的本質。

以筆者目前認知,安全之終極定義,不是啟發(fā)式的CIA三性,而是采用形式化驗證的可證明安全——上帝(“模擬者”)與科學(數學、計算復雜度)完美結合的推演過程。

一、了解零知識證明

1. 零知識證明的定義

零知識證明(ZKP,Zero-Knowledge Proof)的定義為:證明者(prover)能夠在不向驗證者(verifier)提供任何有用信息的情況下,使驗證者(verifier)相信某個論斷是正確的。

根據定義,零知識證明具有以下三個重要性質:

  • 完備性(Completeness):只要證明者擁有相應的知識,那么就能通過驗證者的驗證,即證明者有足夠大的概率使驗證者確信。

(關于這里提到的“概率”,詳見后面的“色盲游戲”)

  • 可靠性(Soundness):如果證明者沒有相應的知識,則無法通過驗證者的驗證,即證明者欺騙驗證者的概率可以忽略。
  • 零知識性(Zero-Knowledge):證明者在交互過程中僅向驗證者透露是否擁有相應知識的陳述,不會泄露任何關于知識的額外信息。

從定義中,還可以提取到兩個關鍵詞:“不泄露信息”+“證明論斷有效”。再濃縮一下就是:隱藏+證明。

所以,零知識證明的核心目的是:隱藏并證明需要它隱藏的各類秘密。(感覺很矛盾是吧)

2. 零知識證明的源頭

零知識證明是1984年由Goldwasser、Micali、Rackoff三個人提出,論文題目是《The Knowledge Complextiy of Interactive Proof Systems》(《交互式證明系統(tǒng)中的知識復雜性》)。

從上圖的左上角可以看到,這篇論文其實發(fā)表在1989年。原因在于這篇論文的思想太過超前,以至于從1984年寫出初稿到1989年正式被采納發(fā)表,經歷了整整五年時間。正是由于零知識證明這項開創(chuàng)性工作,Goldwasser和Micali兩人在2012年分享了圖靈獎——計算機領域最高獎項,也有“計算機界的諾貝爾獎”之稱。

3. 零知識證明的核心價值:消滅可信第三方

當互聯(lián)⽹電⼦商務和在線交易蓬勃發(fā)展到今天,可信第三方(TTP,Trusted Third Party)幾乎不可或缺。但大家體會不到的事實是,可信第三方引入了巨大的「信任成本」。對第三方的過度信任,會帶來嚴重的「隱私泄露」、「單點失效」、「個⼈信息濫⽤」等問題。雖然學術界也提出“半可信第三方”(Semi-trusted Third Party)以放寬條件,但是"半可信" 仍不解決根本問題。根本問題是能否取消第三方。

那么,如果取消了可信第三方,還能保證交易的公平性嗎?想象⼀下這個交易場景:⼀個買家拎著現(xiàn)⾦箱⼦,另⼀個賣家也拎著⼀個箱⼦,裝著某種貴重貨物。在電影中的情節(jié)⾥,買賣雙⽅會坐在⼀個桌⼦兩側,雙⽅倒數3-2-1,然后同時把箱⼦推給對⽅。當然雙⽅最好都帶武器,防⽌對⽅耍賴。除了買家、賣家,并沒有任何第三⽅在場,兩⽅也互不信任。容易理解,任何⼀⽅都不愿先出⼿,把⾃⼰的箱⼦交給對⽅,因為擔心對⽅拿到箱⼦后⽴即跑路,導致自己錢貨兩空的結局。

時間走到2008年,⽐特幣橫空出世,中本聰給出了⼀種天才設計:在⼀個可以⽆任何準⼊許可的P2P⽹絡中,采取區(qū)塊鏈技術,以⼀種⾮常公平的⽅式進⾏去中心化記賬。

我們可以從另⼀個⻆度來理解中本聰的創(chuàng)新:比特幣實現(xiàn)了⼀種分布式協(xié)議,它以去中心化的方式,「模擬」出了一個「虛擬」的「可信第三⽅」。

而對于零知識證明也可以這樣理解:零知識證明實現(xiàn)了一類密碼學理論技術,它基于一些安全假設,「模擬」出了⼀個虛擬的可信第三方。

可見,「零知識證明」的一個重要作用是消滅可信第三方。換句話說,零知識證明提供的「信任」,能夠代替一個「可信第三方」。

需要注意的是:「零知識證明」取代的并非是「第三方」,而是「可信第三方」。

4. 零知識證明的經典示例:色盲游戲

零知識證明背后的邏輯并不復雜。下面給出交互式零知識證明的經典示例——色盲游戲,以幫助理解零知識證明的概念。

色盲游戲:

參與者:Alice是色盲,Bob不是色盲。

Bob手上有兩個大小、形狀完全一樣的球,但顏色不同:一個藍色,另一個紅色。

由于Alice是色盲,所以Alice無法分辨這兩個球是否是一樣的。

而Bob需要向Alice證明這兩個球是不一樣的。

在這個游戲中:

  • Alice被稱為驗證者:他需要驗證Bob的陳述正確與否;
  • Bob被稱為證明者:他需要證明自己的陳述(存在兩個顏色不一樣的球)。
  • 采取零知識證明方式:Bob需要在Alice不能獲知兩個球的顏色的情況下,向Alice證明這兩個球的顏色是不一樣的這個事實,這與零知識證明的定義是相符合的。

零知識證明方法如下:

  • Alice當著Bob的面拿起兩個球,左手拿藍球,右手拿紅球(當然,Alice并不知道拿的是籃球還是紅球,因為她是色盲);
  • Alice然后將雙手放到背后,這樣Bob就看不到Alice手上的球了;
  • Alice在背后隨機交換左右手上的球,并在心里默默記住自己的交換方式;
  • 交換完成后,Alice將手伸出,并詢問Bob“兩個球是否交換過位置?”;

如果Bob能看到球上的顏色,那么每次Alice換過球的位置后,Bob都能正確回答出Alice的問題。

[[416126]]

分析推理過程如下:

第一次:假設Alice確實交換了兩個手中的球。

如果Bob回答對了,Alice仍然不會完全相信Bob可以區(qū)分這兩個球的顏色,因為Bob有50%的概率蒙對;

所以,即使Bob回答對了,Alice還要進行第二次測試;

如果Bob回答錯了,那么Alice可以肯定Bob不能區(qū)分兩個球的顏色。此項測試就可以終止了。

[[416127]]

第二次:假設這一次Alice并沒有交換兩個手中球的位置,然后Alice問Bob是否交換了球的位置。

如果Bob回答對了,那么Alice有75%的概率相信Bob可以區(qū)分兩個球的顏色;

當然,Alice還可以進行第三次測試;

如果Bob回答錯了,那么Alice可以肯定Bob不能區(qū)分兩個球的顏色。

此項測試就此終止。

[[416128]]

下圖給出了上述情況的概率樹:

概率計算結果如下:

  • 第一次Bob回答正確時,Alice可以說Bob陳述的斷言為真的概率為50%;
  • 如果Bob第二次又回答正確,那么Alice可以說Bob陳述為真的概率達75%;
  • 如果第三次又正確,概率將達到87.5%;……
  • 如果連續(xù)n次Bob都通過了測試,則Alice以1-(1/2)^n 的概率認為 Bob 說的是真的,這兩個球的確是有紅藍兩種顏色。

這個示例中的零知識證明,是一種基于概率的驗證方式(即概率證明,而非確定性證明),驗證者(verifier)基于一定的隨機性向證明者(prover)提出問題,如果證明者都能給出正確回答,則說明證明者大概率擁有他所聲稱的“知識”。

看看這個示例是如何滿足零知識證明的定義中的三性:

  • 完備性:如果Bob擁有分辨球顏色的知識,則Bob每次都會正確回答。
  • 可靠性:如果Bob不具備分辨球顏色的知識,則Bob無法總是回答正確。
  • 零知識性:直到最后,Alice也無法得知兩球的具體顏色,因為Bob從未透露這個信息。

二、領悟信任與安全

1. 信任的產生機理

零知識證明是怎么「憑空產生了信任」?

零知識證明的信任,基于比較客觀的理論:

一類是基礎理論:

如「數論與代數」、「數理邏輯」、「計算理論」等;

另一類是安全假設:

如「離散對數難題」等。

如果我們信任這些基礎理論(數學、邏輯),也信任安全假設沒有被攻破,那么我們確實可以得出下面的結論:零知識證明實現(xiàn)了一類密碼學理論技術,它基于一些安全假設,「模擬」出了⼀個虛擬的可信第三方。

2016年《經濟學人》提出「區(qū)塊鏈是信任機器」。仔細思考信任的推導機制,可以發(fā)現(xiàn):

  • 區(qū)塊鏈:解決的是「分布式計算的信任」;
  • 零知識證明:解決的是「數據的信任」;
  • 形式化驗證:解決的是「邏輯的信任」。

上述三點:邏輯 <-> 計算 <-> 數據,共同構成一個閉環(huán),也許才能真正實現(xiàn)「信任機器」這一構想。

總之,任何「信任」都需要基于某些信任基礎(如可信計算基(Trusted Computing Base)),任何「安全」都有安全性假設。

信任的最后一環(huán)是「形式化驗證」。形式化驗證實際上是為邏輯、流程或業(yè)務進行形式化建模,你可以理解為用一種數學語言進行描述,模型就是一些數學概念(或數學對象),比如集合、代數、范疇等等。然后所有的形式化驗證都在用「顯式」的或「隱式」的方式「嚴格證明」某個結論(或者叫做定理)。

而理解零知識證明理論的核心,是理解「模擬」這個概念。上面我們提到了兩個「模擬」:一個是區(qū)塊鏈,另一個是零知識證明。再來回顧一下:

比特幣實現(xiàn)了⼀種分布式協(xié)議,它以去中心化的方式,「模擬」出了一個「虛擬」的「可信第三方」。

零知識證明實現(xiàn)了一類密碼學理論技術,它基于一些安全假設,「模擬」出了⼀個虛擬的可信第三方。

他們之所以可信,是因為他們能夠「模擬出可信第三方」。這個模擬過程都是可以形式化的,并且是可證明的。如今,模擬(Simulation)和安全性證明已是密碼學界的共識,也是基本的形式化工具,沒有經過證明/驗證的模擬是無法讓大家接受的。

理論上,所有客觀標準都能進行驗證,大到一個安全協(xié)議,小到一行代碼,都能采用形式化驗證的方法。恰好筆者曾經研究過可證明安全,從那些密碼學安全性證明中體會到了「模擬」與「可證明安全」中所表達出的神奇理念。從某種程度上,可以領會到「安全」之真諦。

如果對模擬、安全、不可區(qū)分性等形式化驗證的方法感興趣,請參考資料[6],它將帶你到另一個存在「上帝」的「平行世界」,橫跨科學與哲學問題。

2. 證明 vs. 驗證

零知識證明的實現(xiàn)可以通過三段旅程來描述:

  • 隱藏秘密之旅:單向功能;
  • 證明秘密之旅:同態(tài)映射;
  • 構建通用零知識證明之旅:證明NPC問題的多項式。

「零知識證明」中的「證明」與其定義中的「驗證」是何關系?這涉及到證明存在的意義。所有的證明,都體現(xiàn)了「證明」與「驗證」的「不對稱性」。

  • 證明:可能是一個非常耗費算力,或者腦力的活動,無論是耗時幾百年的「費馬大定理」,還是比特幣中的 POW 證明,這些證明都凝結了在尋找證明過程中所消耗的能量。

證明過程可能是超乎尋常的復雜,偶爾需要天才橫空出世。

  • 驗證:一定(或者應該)是一個非常簡單的、機械的、在有效時間內(多項式復雜度)且能終止的活動。

某種意義上,「證明」與「驗證」的這種不對稱性,真正體現(xiàn)了證明的意義,展示了零知識證明的價值。關于這一部分,詳見參考資料[2]。

3. 信任 vs. 隱私

從根本上講,信任是個好東西。我們創(chuàng)建了信用體系,可以向我們信任的人和組織提供信貸;依靠名聲、信譽記錄等,也能夠與我們不信任的人開展業(yè)務。

但是,信任通常是建立在犧牲隱私的基礎之上的。為了互相信任,通常必須放棄一些隱私。而且信任通常與你的身份信息密切相關。

而零知識證明恰恰是一種「兩全其美」的方案:既通過「證明」提升「信任」,又通過「零知識」保護「隱私」。

4. 匿名 vs. 假名

對于隱私的理解,其實分兩種:

  • 第一種是匿名(Anonymous),意思是用戶不用透露任何和自己相關的信息,好比是學校的表白墻,你永遠無法知道到底是誰寫了上去,反正字就是寫在了上面。
  • 第二種是假名(Pseudonymous),意思是用戶通過自己創(chuàng)造的假名來發(fā)表信息,好比是貼吧,如果你不了解這個用戶,你無法建立網名到實名的聯(lián)系,你也就不知道發(fā)帖的人是誰。

目前,大多數當前的區(qū)塊鏈技術只是假名。如比特幣中每個用戶都會隨機生成自己的公鑰(假名)地址來收款。這種公鑰地址其實是一種假名,一旦在哪里實名制認證過,就可以把網名和實名關聯(lián)起來,毫無隱私可言。

如果黑客或政府可以將真實姓名與網絡地址相關聯(lián),那么可以通過鏈接區(qū)塊鏈交易追溯到用戶交易時的身份。盡管區(qū)塊鏈被贊譽為完美安全方案,但知情人士都知道這種弱點。事實上,世界各地的執(zhí)法機構一直在利用這一漏洞來抓住犯罪分子。

這就好比有人用網名在貼吧上發(fā)帖子噴人,然后被人用密保找到了手機號,再用手機號找到了注冊的實名,從而被人肉是一個道理。

零知識證明可以彌補這種匿名缺陷。利用零知識證明創(chuàng)建信任的社會,是一個更加注重個人隱私的社會。它會把隱私控制權真正轉移到消費者手上,而不是將其交給政府或組織等。

三、零知識證明的應用

零知識證明定義中有兩個關鍵詞:“不泄露信息”、“證明論斷有效”?;谶@兩個特點,直接擴展出零知識證明在區(qū)塊鏈上的兩大應用場景:

  • 隱私:在隱私場景中,我們可以借助零知識證明的“不泄露信息”特性,在不泄漏交易細節(jié)(接收方、發(fā)送方、交易余額)的情況下,證明區(qū)塊鏈上的資產轉移是有效的。
  • 擴容:在擴容場景中,不太關注零知識證明技術的“不泄露信息”這個特性,更加關注“證明論斷有效”這個特性。由于鏈上資源是有限的,所以我們需要把大量的計算遷移到鏈下進行,因此需要有一種技術能夠證明這些在鏈下發(fā)生的動作是可信的,零知識證明正好可以幫助我們做鏈下可信計算的背書。
  • 端到端的通訊加密:用戶之間可以互相發(fā)消息,但是不用擔心服務器拿到所有的消息記錄,同時消息也可以按照服務器的要求,出示相應的零知識證明,比如消息的來源、發(fā)送的目的地。
  • 身份認證:用戶可以向網站證明,他擁有私鑰,或者知道某個只要用戶自己才知道的秘密答案,而網站并不需要知道這個私鑰和秘密,但是網站可以通過驗證這個零知識證明, 從而確認用戶的身份。
  • 去中心化存儲:服務器可以向用戶證明他們的數據被妥善保存,并且不泄露數據的任何內容。
  • 信用記錄:信用記錄是另一個可以充分發(fā)揮零知識證明優(yōu)勢的領域,用戶可以有選擇性的向另一方出示自己的信用記錄,同時證明信用記錄的真實性。

更多的例子,可以是任何形式的數據共享、數據處理、數據傳輸。

2019年7月,美國國防部高級研究計劃局(DARPA)發(fā)布了一份加密驗證和評估信息安全保障(SIEVE)項目的廣泛機構公告(HR001119S0076)。該項目尋求在零知識證明方面最先進的技術,目標是在不泄露秘密信息的前提下驗證軍事能力。該項目關注的是網絡安全和網絡空間作戰(zhàn)方面用于驗證軍事能力的零知識證明,包括概率和不確定分支條件在內的大型復雜的證明。項目研究分為三個技術領域:構建有用的零知識語句;構建高效的零知識證明生成編譯器;后量子零知識研究。 

 

責任編輯:趙寧寧 來源: FreeBuf
相關推薦

2023-07-11 00:12:05

2022-10-21 10:16:30

零信任邊界安全

2018-04-08 21:48:43

2022-12-02 14:33:24

2022-07-18 13:36:13

零信任網絡安全

2021-12-24 10:24:10

零信任

2021-05-04 22:31:15

零信任網絡安全網絡攻擊

2019-06-24 16:30:33

區(qū)塊鏈零知識證明比特幣

2022-08-18 23:13:25

零信任安全勒索軟件

2019-11-11 05:02:05

零信任身份驗證網絡安全

2020-10-14 10:01:47

零信任

2021-04-18 18:37:40

零信任攻擊網絡安全

2022-03-12 10:00:49

零信任數據安全

2020-09-09 15:12:33

東軟工控安全

2021-06-30 06:56:18

數據泄露零信任網絡安全

2023-04-17 10:23:03

2021-01-31 18:30:33

零信任網絡安全網絡攻擊

2022-12-09 14:53:17

2022-07-20 15:56:02

零信任網絡安全漏洞

2021-03-04 23:14:15

零信任網絡安全信息泄露
點贊
收藏

51CTO技術棧公眾號