自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

安全 應(yīng)用安全 零信任
零知識證明解決了信任與隱私的矛盾:既通過「證明」提升「信任」,又通過「零知識」保護(hù)「隱私」。是兩全其美的方案。本文更想表達(dá)的觀點(diǎn)其實(shí)是:探索零知識證明的過程,可以探索到安全的本質(zhì)。

[[416125]]

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

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

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

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

本文更想表達(dá)的觀點(diǎn)其實(shí)是:探索零知識證明的過程,可以探索到安全的本質(zhì)。

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

一、了解零知識證明

1. 零知識證明的定義

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

根據(jù)定義,零知識證明具有以下三個重要性質(zhì):

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

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

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

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

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

2. 零知識證明的源頭

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

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

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

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

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

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

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

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

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

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

4. 零知識證明的經(jīng)典示例:色盲游戲

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

色盲游戲:

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

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

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

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

在這個游戲中:

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

零知識證明方法如下:

  • Alice當(dāng)著Bob的面拿起兩個球,左手拿藍(lán)球,右手拿紅球(當(dāng)然,Alice并不知道拿的是籃球還是紅球,因?yàn)樗巧?;
  • Alice然后將雙手放到背后,這樣Bob就看不到Alice手上的球了;
  • Alice在背后隨機(jī)交換左右手上的球,并在心里默默記住自己的交換方式;
  • 交換完成后,Alice將手伸出,并詢問Bob“兩個球是否交換過位置?”;

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

[[416126]]

分析推理過程如下:

第一次:假設(shè)Alice確實(shí)交換了兩個手中的球。

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

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

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

[[416127]]

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

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

當(dāng)然,Alice還可以進(jìn)行第三次測試;

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

此項(xiàng)測試就此終止。

[[416128]]

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

概率計(jì)算結(jié)果如下:

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

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

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

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

二、領(lǐng)悟信任與安全

1. 信任的產(chǎn)生機(jī)理

零知識證明是怎么「憑空產(chǎn)生了信任」?

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

一類是基礎(chǔ)理論:

如「數(shù)論與代數(shù)」、「數(shù)理邏輯」、「計(jì)算理論」等;

另一類是安全假設(shè):

如「離散對數(shù)難題」等。

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

2016年《經(jīng)濟(jì)學(xué)人》提出「區(qū)塊鏈?zhǔn)切湃螜C(jī)器」。仔細(xì)思考信任的推導(dǎo)機(jī)制,可以發(fā)現(xiàn):

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

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

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

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

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

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

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

他們之所以可信,是因?yàn)樗麄兡軌颉改M出可信第三方」。這個模擬過程都是可以形式化的,并且是可證明的。如今,模擬(Simulation)和安全性證明已是密碼學(xué)界的共識,也是基本的形式化工具,沒有經(jīng)過證明/驗(yàn)證的模擬是無法讓大家接受的。

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

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

2. 證明 vs. 驗(yàn)證

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

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

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

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

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

  • 驗(yàn)證:一定(或者應(yīng)該)是一個非常簡單的、機(jī)械的、在有效時間內(nèi)(多項(xiàng)式復(fù)雜度)且能終止的活動。

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

3. 信任 vs. 隱私

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

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

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

4. 匿名 vs. 假名

對于隱私的理解,其實(shí)分兩種:

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

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

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

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

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

三、零知識證明的應(yīng)用

零知識證明定義中有兩個關(guān)鍵詞:“不泄露信息”、“證明論斷有效”。基于這兩個特點(diǎn),直接擴(kuò)展出零知識證明在區(qū)塊鏈上的兩大應(yīng)用場景:

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

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

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

 

責(zé)任編輯:趙寧寧 來源: FreeBuf
相關(guān)推薦

2023-07-11 00:12:05

2022-10-21 10:16:30

零信任邊界安全

2022-12-02 14:33:24

2018-04-08 21:48:43

2019-06-24 16:30:33

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

2021-12-24 10:24:10

零信任

2022-07-18 13:36:13

零信任網(wǎng)絡(luò)安全

2022-08-18 23:13:25

零信任安全勒索軟件

2021-05-04 22:31:15

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2019-11-11 05:02:05

零信任身份驗(yàn)證網(wǎng)絡(luò)安全

2020-10-14 10:01:47

零信任

2021-04-18 18:37:40

零信任攻擊網(wǎng)絡(luò)安全

2020-09-09 15:12:33

東軟工控安全

2022-03-12 10:00:49

零信任數(shù)據(jù)安全

2021-06-30 06:56:18

數(shù)據(jù)泄露零信任網(wǎng)絡(luò)安全

2021-01-31 18:30:33

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2022-11-21 14:02:14

2023-04-17 10:23:03

2022-12-09 14:53:17

2022-06-24 09:38:50

SASE零信任
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號