比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

LIC:為何我理解不了零知識證明:ZKP常見誤區分析_ViceToken

Author:

Time:1900/1/1 0:00:00

我在零知識證明這個領域里兜兜轉轉了無數圈,之所以走了很多彎路,原因在于從一開始就對零知識證明有先入為主的錯誤認識,這些認識是后續建造零知識證明這個房子時的框架,由于框架是錯誤的,那在它基礎之上是無論如何也建立不起一個不會倒塌的房子的。

在這篇文章中,我將試著糾正這些錯誤認識,如果你正在學習零知識證明并覺得一頭霧水,希望我犯過的錯誤能對你有所啟發;如果你才剛開始去了解零知識證明,希望本文有助你搭建一個基礎的框架。在我眼中,文中討論的這些點恰是零知識證明這件事的奧妙所在,它們揭示了為何零知識證明是行得通的。

需要注意的是,下述的這些所謂糾正后的認識依然可能是不準確的認識,你只能用它做參考,并對它保持質疑。

一、零知識證明是一種證明的方法

假如我們知道宇宙演化的算法,但不知道宇宙的初始值,這時候Alice說她知道這個初始值,我們不信,于是她把一組數據作為算法的輸入,一通計算,得到一個和我們所處的宇宙一模一樣的宇宙,這時候我們是不是會相信Alice的那組數據就是宇宙的初始值?我們會相信。

這就是一個零知識證明,確切來講它應該叫零知識的證明。Alice通過這種證明方法可以證明自己擁有知識(宇宙的初始值),同時又不泄漏知識。

如果觀察Alice的證明過程,就會發現它只涉及三個對象:初始值,演化算法,演化結果(現狀),我們可以把其抽象為:算法的輸入、算法、算法的輸出,而零知識證明要做到能夠證明輸出確實是輸入通過確定的算法計算出來的。

美SEC專員:不明白為何比特幣現貨ETF申請決定需要花費這么長時間:1月5日消息,在周二發布的一份通知中,SEC指出,“指定一個較長的期限來發布批準或不批準該ETF的指令是合適的”。消息傳出后,比特幣的價格并未受到影響,仍在4.7萬美元以下的盤整區間內徘徊。

雖然加密貨幣愛好者已經習慣了比特幣現貨ETF申請被拒絕和延遲,但SEC專員Hester Peirce也想知道為什么要花這么長時間。在接受行業媒體采訪時,Peirce表示:“我不敢相信我們還在談論這件事,就好像我們在等待一件事發生一樣……甚至在最近,我們還否決了一系列的此類ETF申請,而那些聲明仍在使用我認為在現下已經過時的論證方法。”(Cointelegraph)

此前消息,美國SEC已將有關NYDIG比特幣ETF的決定推遲至3月16日。[2022/1/5 8:27:29]

這樣一來,如果驗證者看到輸出是對的,同時證明顯示輸出是用輸入計算而來的,那么驗證者就可以在不知道輸入的情況下相信輸入。

隨之而來的問題就是:如何證明輸出是由輸入通過某個確定的算法計算出來的?而不是其他的輸入、其他的輸出、或者其他的算法?這便是零知識證明協議要解決的問題。

在zk-SNARK系列的協議中,采用的方法是把輸入、算法、輸出轉換為一個多項式,通過多項式把這三者綁定到一起。如果能夠證明Alice知道這個多項式,就可以認為Alice的輸出是輸入通過算法計算出來的。

動態 | 李啟威連發數十條推文釋疑:為何看起來Litecoin Core在GitHub沒有更新:剛剛萊特幣創始李啟威連發數十條推文,介紹了萊特幣的代碼更新情況和開發進展。他表示在8年來,只有少于開發人員致力于Litecoin Core。Adrian Gallagher目前正在領導Litecoin Core的開發,并且已經進行了幾年,大家可能不太了解Adrian,因為他不在推特上,但他很棒,他正在悄悄地做Litecoin Core開發的幕后工作。

最近有很多人質疑萊特幣在2019年沒有更新任何代碼,從GitHub上看似乎這樣,但這里有兩個原因:第一個是萊特幣的更新要比比特幣滯后幾個月,我們發布了幾個月前在比特幣中發布的代碼,這些代碼是在2018年編寫的。GitHub的有趣之處在于,它使提交的時間保持不變,不管是誰寫的,還是什么時候提交到代碼庫的。因此,比特幣開發者因在萊特幣代碼庫中的工作而受到好評。這就會讓人看起來,盡管在2019年5月開發并發布了最新的Litecoin Core,但在GitHub你會發現大多數提交都是在2018年完成的。第二個原因是我們沒有在主要項目的主分支上工作,將非發布代碼簽入主分支通常不是好的開發實踐。事實上,Adrian一直在他的個人分支上積極地開發Litecoin核心版本0.18.1。

以上是Litecoin Core開發多年來的運作方式,我們去年甚至遇到了用戶相同的擔憂,有人去年看了我們的主分支工作并聲稱Litecoin在2018年停止了開發。我打賭即使在這個解釋之后,我們也會在2020年讓人感到困惑。

另外,李啟威還表示Litecoin Foundation的目的有兩個方面:致力于LTC的推廣和開發。“在過去的幾個月里,我認為一直認為推廣比開發更重要,但從長遠來看,這兩者同樣重要。我會努力與社區進行更好的溝通,并提供更頻繁的消息同步。”[2019/8/11]

總而言之,因為零知識證明被廣泛地用于實現隱私保護,隱私保護又意味著不泄露數據,所以我們會比較容易在一開始就圍繞它是怎樣隱藏數據的為方向去思考。但如果以「它是如何實現零知識的」為線索去認識它,就會一團亂麻,而如果以「它是如何實現證明的」為線索,就會一條線清晰地貫穿始終。

聲音 | Samson Mow:很難理解為何質疑Liquid網絡不是真正的側鏈:據Bitcoinist消息,Blockstream首席戰略官Samson Mow近日表示,很難理解為何會有人質疑Liquid網絡并不是真正的側鏈。Liquid網絡與兩種數字貨幣錨定,并且其數據可在其他鏈上被驗證。[2018/10/13]

二、零知識證明只能實現特定知識的「零知識」

對于哈希函數、基于橢圓曲線的加密算法等密碼學工具而言,幾乎在任何情況下給出任何數據,它們都能夠把這個數據隱藏起來(實踐角度如果輸入空間過小是無法隱藏的);當我們知道零知識證明可以不泄露知識時,往往也會認為能夠把任意的知識交給它來處理,但實際上,零知識證明只能在特定的場景下實現特定知識的「零知識」。

回到Alice的例子,在她的零知識證明過程中,至少涉及到三種可以被稱為知識的東西:1.宇宙的初始值;2.宇宙的演化算法;3.宇宙的演化結果。可以通過零知識證明不泄露這些不同類型的知識嗎?不能,我們甚至必須知道宇宙的演化算法和演化結果,才能證明Alice是否知道宇宙的初始值。

換言之,零知識證明只能證明但不泄漏「輸入」這個位置上的知識。當在思考或使用零知識證明協議解決問題時,需要看不想泄漏的知識是否可以被放在輸入的位置上,并能通過確定的算法產生一個可判斷真偽的輸出(更準確而言在于能否構造一個 NP-relation)。 

韓國監管態度為何急轉?或不敢與趨勢對抗:不到一個月前,韓國司法部長表示,政府部門正在準備一項針對數字貨幣交易平臺的法案,財政部長和金融監督服務主管認為數字貨幣交易是“巨大的投機”,“泡沫注定破裂”。而本周,韓國金融監督機構(FSS)主管Choe Heungsik扭轉態度,表示當局希望促進數字貨幣交易的健康發展,政府應更多關注正常化,不是加強監管。分析文章認為,韓國政府可能意識到,與其對抗這一趨勢,不如將其變成一個有利可圖、但受到監管的行業。就像馬來西亞、新加坡和日本等國對賭場的管理方式一樣,韓國可能希望成為數字貨幣的區域性交易中心,為國外投資者提供服務,同時出臺更多限制本地居民交易活動的規定。[2018/2/23]

舉例來說,如果Alice在不附帶任何條件的情況下聲稱自己知道一個數x,我們是難以用零知識證明證明她知道數x但又不泄漏x的;但如果Alice聲稱自己知道一個數x滿足某個條件a,那就可以先有一個算法,該算法的輸出一定滿足條件a(可以轉換為輸出一定為真),然后,如果輸入x能夠滿足這個算法,就可以相信數x滿足條件a,這也意味著Alice能夠在不泄漏數據的情況下使用數據。

不過這里有另一個容易混淆的地方,就是零知識證明并不能直接證明某人有解某個問題的能力,比如有解地圖三染色問題的能力,它證明的是某人知道該問題的一組解。(注:可以通過讓證明者解多次不同的三染色問題實例,證明證明者有計算能力可以解三染色問題。) 

美國“韭菜”跑步進場 美國70歲買家不知比特幣為何物:據報道,美國70歲的比特幣投資者Rita Scott在孫子的幫助下賣掉了她的比特幣,短短幾周賺了45%的收益率。在這之前,她根本不知道什么是比特幣,還以為是硬幣。而在美國,有很多人甚至想刷信用卡來買比特幣。[2017/11/30]

這與零知識證明協議的構造有關,如前所述,它證明的是一個把輸入、算法、輸出綁定到一起形成的多項式,而不是某個求解算法的多項式,證明這個多項式成立,實際上是在證明輸入、算法、輸出之間具有確定的關系,而不是在證明其他事情。 

一方面,這種構造限定了零知識證明的應用,它只能在輸入、算法、輸出齊備的情況下實現輸入的零知識證明,如果輸出為真,就可以相信輸入為真;但另一方面,這種構造擴展了零知識證明的其他應用,即如果輸入為真,我們也可以相信輸出為真。

三、零知識證明為何與區塊鏈如此契合 

區塊鏈激活了零知識證明的應用,零知識證明則提供給區塊鏈一種卓越的解決方案,兩者能夠彼此促進更主要的原因在于區塊鏈的系統特點和零知識證明的證明方法特點,而不僅僅因為零知識證明能保護隱私。

回憶我們做數學的證明大題,那是一種推理式證明,有著嚴格的可被驗證的推導過程;但還有另一種證明叫交互式證明,它不通過推導,而是借助于證明者和驗證者的交互,驗證者向證明者提出問題,如果證明者能給出正確的回答,就認為證明者聲稱的命題是對的。

舉一個不算特別準確的例子:Alice聲稱當宇宙的輸入為x時,輸出為42,推理式證明是指她要代入x一步步計算,算出42,并把計算過程展示出來以供驗證;交互式證明看起來則是:給驗證者一臺平行宇宙穿梭機,驗證者隨機穿梭到有輸出的宇宙(輸入都為x),然后根據宇宙的輸出是否為42來判斷Alice聲稱的是否可相信。

相較于推理式證明,交互式證明的驗證者只需驗證一個點或幾個點,這是零知識證明與區塊鏈契合的一個重要原因:區塊鏈是一種分布式系統,每個節點都要重復完成驗證的工作,受益于只需驗證挑戰點,簡潔(Succinct)零知識證明系統可以減少驗證的工作,它提供給驗證者的是一個比原命題小得多的證明。

形象化而言就是:在非區塊鏈的系統中,零知識證明減少一份驗證者的工作,同時可能增加一份證明者的工作(不一定是1:1的關系),這或許就算不上好處;可在區塊鏈系統中,零知識證明每減少一份驗證者的工作,如果有100個節點,就能減少100份的總工作量,而此時增加的仍然只是一份證明者的工作,那么這種好處就很明顯了。

此外,單從用零知識證明來解決問題的角度,區塊鏈上的空間資源和時間資源都是極為稀缺的,而簡潔零知識證明產生的證明小、驗證時間短,適合作為區塊鏈上的解決方案。

但需要注意,交互式證明只需驗證挑戰點,與之相伴的推理式證明和交互式證明的另一個區別就是:推理式證明能夠證明一個命題是否成立,交互式證明卻只能證明一個命題在概率上是否成立。

也就是說,假如證明者聲稱的命題是錯的,但當驗證者提出問題時證明者蒙對了答案,驗證者會認為命題是對的。因此在零知識證明協議的設計中,非常重要的一部分工作就是用數學的方法讓證明者幾無可能蒙對答案(基于對證明者計算能力的某種假設,證明者使用虛假證明使驗證者信以為真的概率是一個可忽略的函數)。

回到zk-SNARK。zk-SNARK把證明輸入、算法、輸出的關系轉換為證明一個綁定三者關系的多項式,就能夠給驗證者提供一臺平行宇宙穿梭機。在皮諾曹協議中(zk-SNARK的一種),交互式證明是這樣的:

證明者聲稱自己知道一個多項式p(x),該多項式是可以被分解成t(x)和h(x)的,即p(x)=t(x)·h(x) ;驗證者隨機選擇一個挑戰點s,通過對s加密讓證明者只能算出p(s)和h(s),而無法計算t(s);證明者把p(s)和h(s)給驗證者,驗證者手中有t(s),就可以計算t(s) ·h(s) 是否等于p(s),如果相等,就相信證明者確實知道一個多項式。

而知道一個多項式,就意味著輸入、算法、輸出之間存在確定的關系,如果輸出為真,我們就可以在并不知道輸入的情況下相信輸入為真,即實現零知識證明。那么到現在,我們就不僅知道了零知識證明是一種證明的方法,而且知道了它是如何來做證明的。

四、不要被「無需交互」欺騙

零知識證明是一種交互式的證明系統,它依賴于兩個重要元素:交互、隨機。

交互是指一方提出挑戰,一方給出證明,如果沒有這種交互,零知識證明就無法開展;隨機是指挑戰點必須是隨機的,也就是不能被證明者預測到的,不然證明者就可以在挑戰點上構建一個假證明。如果Alice事先知道驗證者會去73號平行宇宙,她就可以提前把73號的答案改為42。 

那為什么zk-SNARK稱自己為非交互(Non-interactive)?在所謂的交互式證明中,需要先由驗證者給出隨機點,再由證明者構建證明;在所謂的非交互證明中,比如皮諾曹協議,它不再需要驗證者給出隨機點,轉而由一個可信的第三方在初始化階段給出隨機點,這樣一來,證明者就可以直接給出證明,驗證者只需要驗證證明即可,驗證者和證明者之間不再需要交互。

可信第三方給出隨機點就是皮諾曹協議的可信設置(Trusted-setup),相較于直接交互,可信設置在給出隨機點s之外,還需多給出一個t(s),因為驗證者需要用t(s)進行驗證。但問題在于t(s)不能被證明者得知,否則他可以輕易構造出一個假證明,所以需要用一個方法對t(s)做變換,使得變換后的t(s)可用于驗證,但不可用于證明者的計算。皮諾曹協議選擇雙線性配對操作來完成這一工作。

所以無需交互更多的是一種技術上的處理,對于零知識證明而言,驗證總是在隨機挑戰點上完成的,所不同的是這個挑戰點從何而來。不同的具體協議,在用非交互取代交互時選擇的方法會有比較大的區別,即便它們都叫zk-SNARK協議,這是額外需要注意的。

五、模塊化和年輕學科

希望上述四點能對你理解零知識證明有所幫助,在文章的最后,是兩個小的可能會出錯的認識。

第一,零知識證明協議,比如zk-SNARK,并不是圍繞某個確定的核心公式展開的,它是模塊式的,每個模塊負責完成自己的工作,然后大家組合到一起。所以如果你想通過抓住一個核心點來理解零知識證明就會比較困難,更好的方法是通過一條線索來理解它。

同時,zk-SNARK不是指某個具體的協議,它是一類方法的統稱,組成它的那些模塊大體不會變,但這些模塊選擇的具體方法是可變的。所以當你看到不同的zk-SNARK時,不用迷惑,跳出來站在模塊的高度去看它,而不是陷入具體的方法。

第二,或許因為零知識證明是在與數學打交道,它常常帶給人一種古老學科的感覺,但實際上零知識證明的研究還很早期,零知識證明的應用更是剛剛開始。當選擇使用零知識證明時,開發者們并不是只需工程化實現一套成熟的理論,而是要一邊找到/發明方法一邊應用方法。

所以也許我們可以給零知識證明多一些的耐心,它可能是未來數字世界重要的組成部分,它不僅是使用構成數字世界的數據的工具,也是節省數字世界中最稀缺資源的工具。

封面圖片來自 Unsplash, 作者 Beatriz Pérez Moya

致謝:郭宇

撰文:李畫,安比實驗室特約研究員

Tags:LICICEALICEALIDevious Licks GoldViceTokenalice幣還有長期價值嗎ALINK幣

POL幣最新價格
NBS:為什么DeFi熱度高漲 以太坊仍保持平靜?_以太坊幣最新價格行情

2017 年 IC0 的繁榮在很大程度上是由 ETH 價格的大幅飆升推動的——詐騙者、有抱負的技術人員選擇以太坊協議來發行代幣,并從這種狂熱中獲取部分利潤.

1900/1/1 0:00:00
區塊鏈:金色早報|上半年全國11省市出臺區塊鏈專項政策_nbs幣前景

頭條 ▌比特幣礦工6月份收入下降23%比特幣礦工在6月份的收入下降了23%,這是由于網絡費用降低和減半后區塊補貼減少所致.

1900/1/1 0:00:00
區塊鏈:金色前哨 | 比特幣礦工6月份收入下降23%_OIN

比特幣礦工在6月份的收入下降了23%,這是由于網絡費用降低和減半后區塊補貼減少所致。據CoinMetrics數據,比特幣礦工5月的收入為3.66億美元,6月的估計收入則為2.81億美元,為三個月.

1900/1/1 0:00:00
比特幣:金色觀察丨億邦 vs. 嘉楠 為何中國加密公司都去美國上市?_Polinate

金色財經 區塊鏈6月27日訊   北京時間2020年6月26日晚9點半,億邦國際(EBON)正式登陸美股納斯達克,成為繼嘉楠后第二個美股上市的中國礦機制造商.

1900/1/1 0:00:00
7.18早間行情:行情震蕩反彈暫消除進一步的下行風險

昨晚行情整體又進行了一波幾十個點的小反彈,震蕩區間也稍微上移了一個階段,且試探過前期壓力轉支撐的位置并確認有效,整體依然可以看作是區間大一些的震蕩,但確實暫時緩解了進一步的下行風險.

1900/1/1 0:00:00
加密貨幣:怎樣用量化模型進行加密貨幣交易?_chain幣價格

在現實生活中,無論是個人投資決策還是商業決策的投資場景,都比我們在課堂上學到的要復雜得多。由于這些決定的規模龐大,走錯一步就有可能無法挽回。在這種情況下,使用模型就可以帶來很大的幫助.

1900/1/1 0:00:00
ads