原文作者:康水躍,FoxTechCEO;孟鉉濟,FoxTech首席科學家
前言
密碼學當中的零知識證明技術在web3世界有著廣泛的應用,包括進行隱私計算、zkRollup等等。其中Layer?2項目FOX所使用的FOAKS就是一個零知識證明算法。在上述的一系列應用當中,對于零知識證明算法而言,有兩方面屬性極為重要,那就是算法的效率以及交互性。
算法效率的重要性不言而喻,高效的算法可以明顯的降低系統運行時間,從而降低客戶端延遲,顯著的提高用戶體驗和效率,這也是FOAKS致力于實現線性證明時間的一個重要原因。
另一方面,從密碼學的角度來講,零知識證明系統的設計往往依賴證明者和驗證者的多輪交互。例如在許多介紹零知識證明的科普文章當中都會使用的“零知識洞穴”的故事當中,證明的實現就依賴于阿里巴巴和記者多輪的信息傳遞交互才能實現。但是事實上,在許多應用場景當中,依賴交互會使得系統不再可用,或者極高的增加延遲。就像在zkRollup系統當中,我們期望證明者能夠在本地,不依賴于和驗證者交互的情況下就計算出正確的證明值。
從這個角度說,如何將交互式的零知識證明協議改造為非交互式,就是一個很有意義的問題。在這篇文章當中,我們將介紹FOX使用經典的Fiat-Shamir啟發式來生成Brakedown中的挑戰從而實現非交互式協議的過程。
沃爾瑪調查其與萊特幣合作的虛假新聞稿是如何發布的:9月14日消息,在與萊特幣合作的假消息傳出后,沃爾瑪公司表示正在調查欺詐性新聞稿是如何發布的。The Litecoin Foundation和Charlie Lee也在調查此事。此外,Globenewswire表示,它還將與當局合作,“要求并促進進行全面調查,包括與此事相關的任何犯罪活動。”(Bitcoin News)[2021/9/15 23:25:08]
零知識證明中的Challenge
零知識證明算法隨著應用的鋪開而變得異常火爆,近些年也誕生了包括FOAKS、Orion、zk-stark等在內的各種算法。這些算法,以及密碼學界早期的sigma協議等的核心證明邏輯都是證明者先將某個值發送給驗證者,驗證者通過本地隨機數產生一個挑戰,將這個隨機產生的挑戰值發給證明者,證明者需要真的有知識才能以大概率做出通過驗證者的響應。例如在零知識洞穴當中,記者拋一個硬幣,告訴阿里巴巴從左側出來還是從右側出來,這里的“左和右”就是對阿里巴巴的挑戰,他如果真的知道咒語,就一定可以從要求的方向走出來,否則就有一半的概率失敗。
這里我們注意到,Challenge的生成是一個很關鍵的步驟,它有兩個要求,隨機和不可被證明者預測。第一點,隨機性保證了它的概率屬性。第二點,如果證明者可以預測挑戰值那就意味著協議的安全性被破壞了,證明者沒有知識也可以通過驗證,可以繼續類比,阿里巴巴如果能預測記者要求他從哪邊出來,他即使沒有咒語也可以提前進入那一邊,結果表現出來一樣可以通過協議。
央行回應非指定機構如何參與數字人民幣運營:央行表示,需發揮其他商業銀行及非銀行支付機構作用,與指定運營機構一起,共同提供數字人民幣流通服務,包括支付產品設計創新、系統開發、場景拓展、市場推廣等服務。(一財)[2021/7/16 0:57:56]
所以我們需要一種辦法,能夠讓證明者自己本地生成這樣一個不可預測的隨機數,同時還能夠被驗證者驗證,這樣就可以實現非交互式的協議。
哈希函數
哈希函數的名字對我們來說或許并不陌生,無論是在比特幣的共識協議POW當中擔任挖礦的數學難題,還是壓縮數據量,構造消息驗證碼等等,都有哈希函數的身影。而在上述不同的協議當中,其實是運用了哈希函數的各種不同性質。
具體來講,安全的哈希函數的性質包括以下幾點:
壓縮性:確定的哈希函數可以將任意長度的消息壓縮成為固定長度。
有效性:給定輸入x,計算輸出h是容易的。
抗碰撞性:給定一個輸入x?1?,希望找到另一個輸入x?2?,x?1?x?2?,h=h,是困難的。
注意,如果哈希函數滿足抗碰撞性,那么必然滿足單向性,也就是說給定一個輸出y,要找出x滿足h=y是困難的。在密碼學當中,還不能構造出理論上絕對滿足單向性的函數,但是哈希函數在實際應用當中可以基本視作單向函數。
聲音 | 北京工商大學顏蘇:區塊鏈行業如何與公檢法司形成有效的聯動機制,是值得研究的:據新華網消息,本月在上海法學會會議上,北京工商大學法學院副教授顏蘇表示,區塊鏈行業從業者應用自身掌握的區塊鏈這一新興技術,助力公檢法司進行區塊鏈領域的反詐騙,在這個方向上,行業如何能與公檢法司形成有效的聯動機制,是值得關注的研究主題。[2019/7/28]
這樣一來,可以發現上述的幾種應用分別對應于哈希函數的幾點不同的性質,同時我們說,哈希函數還有一個很重要的作用是提供隨機性,雖然密碼學理論當中要求的完美的隨機數生成器目前也無法構造,但是哈希函數在實際當中同樣可以充當這個角色,這就為我們后文介紹的Fiat-Shamir啟發式的技巧提供了基礎。
Fiat-Shamir啟發式
事實上,Fiat-Shamir啟發式就是利用哈希函數來對前面生成的腳本進行哈希運算,從而得到一個值,用這個值來充當挑戰值。
因為將哈希函數H視作一個隨機函數,挑戰是均勻隨機的被選擇,獨立于證明者的公開信息和承諾的。安全分析認為Alice不能預測H的輸出,只能將其當作一個oracle。在這種情況下,Alice在不遵循協議的情況下做出正確響應的概率(特別是當她不知道必要的秘密時)與H的值域的大小成反比。
聲音 | 前FDIC主席:對Libra有些擔憂 不知道其如何利用獲得的資 金:據CCN消息,前聯邦存款保險公司(FDIC)主席Sheila Bair在接受CNBC采訪時對Libra提出了一些擔憂,“如果我給他們一些錢去買Libra,他們會用這些錢做什么?他們在白皮書中對此有點模糊……抵押品的實力是我會問的一個問題。”盡管Libra聲稱自己是未來的穩定幣,但尚不清楚Facebook將如何利用其外匯儲備管理投資。 Bair后來重申了她關于美聯儲支持的加密貨幣的想法,然而,這一想法并沒有實現。政府通常對新技術的吸收很慢,但如果成功的話,Libra可能會改變這一切。[2019/6/19]
圖1:利用Fiat-ShamirHeuristic實現非交互式證明
非交互式FOAKS
在本節,我們具體展示Fiat-Shamir啟發式在FOAKS協議當中的應用,主要是用來產生Brakedown部分的挑戰,從而實現非交互式的FOAKS。
首先我們看到,在Brakedown生成證明的步驟當中,需要挑戰的步驟是“近似性檢驗”以及MerkleTree的證明部分。對于第一點原本的過程是證明者在這里需要驗證者產生的一個隨機向量,計算過程如下圖所示:
動態 | Kyle Samani發推質疑Block.one如何在兩年時間花掉 8 億美元:著名區塊鏈投資機構 Multicoin 創始合伙人 Kyle Samani 發推質疑 EOS 背后的開發公司 Block.one 如何在兩年時間中燒掉 8 億美元。Kyle Samani 發表推文稱,如果 Block.one 通過 ICO 融資了 40 億美元,現在的資產負債表上有 32 億美元的資產,那么這家有 200 名員工的公司如何在兩年時間里花掉了 8 億美元現金?Kyle Samani 還稱,Block.one 進行了 1.8 億美元風險投資,但這不是支出,即便把這些投資的賬面資產都減記為 0 ,時間也不夠用。而 Staked.us 的聯合創始人 Jonathan Marcus 則表示,Block.one 花費的那 8 億美元中,最少有 5.3 億美元用于股權回購,因為 Block.one 過去兩年共進行了兩次股權回購,一次花費了 3 億美元,最近又回購了 2.3 億美元的股權。[2019/6/3]
圖2:非交互證明FOAKS中的BrakedownChecks
現在我們使用哈希函數,讓證明者自己產生這個隨機向量。
令γ0?=H(C1?,?R,r0?,?r1?),對應的,在驗證者的驗證計算當中,也需要增加這個計算出γ0?的步驟。根據這樣的構造,可以發現,在生成承諾之前,證明者并不能提前預測挑戰值,于是不能提前根據挑戰值來對應的“作弊”,也就是對應的生成假的承諾值,同時,根據哈希函數輸出的隨機性,這個挑戰值也滿足隨機性。
對于第二點,令?=H(C1?,?R,r0?,?r1?,?c1?,?y1?,?cγ?0?,?yγ?0?)。
我們使用偽代碼給出改造后非交互式的Brakedown多項式承諾當中的證明和驗證函數,這也是FOAKS系統當中使用的函數。
functionPC.Commit(?):
Parsewasak×kmatrix.TheproverlocallycomputesthetensorcodeencodingC1?,C2?,C1?isak×nmatrix,C2?isan×nmatrix.
fori∈do
ComputetheMerkletreerootRoott=Merkle.Commit(C2?)
ComputeaMerkletreerootR=Merkle.Commit(),?andoutputRasthecommitment.
functionPC.Prover(?,X,R)
Theprovergeneratesarandomvectorγ0?∈Fkbycomputing:γ0=H(C1?,?R,r0?,?r1?)
Proximity:
Consistency:
Proversendsc1?,?y1?,?cγ?0?,?yγ?0?totheverifier.
Provercomputesavector?aschallenge,inwhich?=H(C1?,?R,r0?,?r1?,?c1?,?y1?,?cγ?0?,?yγ?0?)
foridx∈?do
ProversendsC1?andtheMerkletreeproofofRootidxforC2?underRtoverifier
functionPC.VERIFY_EVAL(ΠX,?X,?y=?(X),?R)
Proximity:?idx∈?,Cγ?0==<γ0?,C1?>andEc(yγ?0?)==Cγ?0?
Consistency:?idx∈?,C1?==<γ0?,C1?>andEc(y1?)==C1?
y==1?,y1?>
?idx∈?,Ec(C1?)?isconsistentwithROOTidx,andROOTidx’sMerkletreeproofisvalid.
Outputacceptifallconditionsaboveholds.Otherwiseoutputreject.
結語
許多的零知識證明算法在設計之初都依賴證明者和驗證者雙方的交互,但是這種交互式證明協議不適合用在追求高效,網絡通訊開銷大的應用場景下,比如鏈上數據隱私保護和zkRollup等等。通過Fiat-Shamir啟發式,可以在不破壞協議安全性的條件下讓證明者本地生成隨機數“挑戰”,并且可以被證明者驗證。根據這種方法,FOAKS同樣實現了非交互式的證明,并應用在系統當中。
參考文獻
1.Fiat,Amos;Shamir,Adi(?1987)."HowToProveYourself:PracticalSolutionstoIdentificationandSignatureProblems".AdvancesinCryptology—CRYPTO'86.LectureNotesinComputerScience.SpringerBerlinHeidelberg.263:186?–?194.doi:?10.1007/3-540-47721-7?_?12.ISBN978-3-540-18047-0.
2.https://www.cnblogs.com/zhuowangy?2?k/p/12246575.html
那鮑威爾究竟說了什么?近期,鮑威爾表示通脹率回落至2%的過程還有很長的路要走,而且道路可能是坎坷的.
1900/1/1 0:00:00比特幣正從美國中央銀行的現金注入中獲得新的動力,并且由于形勢的變化,從長遠來看可能會重回正軌。在美國深化的銀行業危機提供新的動力后,3月17日創下九個月新高.
1900/1/1 0:00:00金色財經報道,阿里云在香港舉辦的2WEB3FEST峰會上宣布將于4月推出一系列開箱即用的Web3安全工具.
1900/1/1 0:00:00韓國主要的加密貨幣交易平臺Upbit宣布將支持xCORE代幣中$XRP代幣持有者的最新空投。空投也分發給$SOLO代幣持有者.
1900/1/1 0:00:00隨著加密貨幣市場保持復蘇,像Chainlink這樣的代幣發現很難從廣泛的積極情緒中分一杯羹。根據鏈上數據,自從生態系統在熊市的損害下穩定下來以來,有幾個項目獲得了一系列投資者的參與.
1900/1/1 0:00:00比特幣的目標是30,000美元,因為新的一周宏觀驚喜開始了——接下來會發生什么?加密貨幣市場在銀行業危機的支持下繼續攀升.
1900/1/1 0:00:00