作者:康水躍,FoxTechCEO;孟鉉濟,FoxTech首席科學家
前言
密碼學當中的零知識證明技術在web3世界有著廣泛的應用,包括進行隱私計算、zkRollup等等。其中Layer2項目FOX所使用的FOAKS就是一個零知識證明算法。在上述的一系列應用當中,對于零知識證明算法而言,有兩方面屬性極為重要,那就是算法的效率以及交互性。
算法效率的重要性不言而喻,高效的算法可以明顯的降低系統運行時間,從而降低客戶端延遲,顯著的提高用戶體驗和效率,這也是FOAKS致力于實現線性證明時間的一個重要原因。
另一方面,從密碼學的角度來講,零知識證明系統的設計往往依賴證明者和驗證者的多輪交互。例如在許多介紹零知識證明的科普文章當中都會使用的「零知識洞穴」的故事當中,證明的實現就依賴于阿里巴巴和記者多輪的信息傳遞交互才能實現。但是事實上,在許多應用場景當中,依賴交互會使得系統不再可用,或者極高的增加延遲。就像在zkRollup系統當中,我們期望證明者能夠在本地,不依賴于和驗證者交互的情況下就計算出正確的證明值。
張春泉:區塊鏈等如何與行業深度融合將是工業互聯網發展關鍵要素:曙光云計算集團副總裁、中國科學院智慧城市產業聯盟副秘書長張春泉表示,目前工業互聯網發展呈現出新特征,一是在云計算技術架構支撐下,企業之間正從技術、產品和供應鏈的競爭逐步演進成為平臺化的生態體系競爭。二是以工業互聯網為支撐,助力企業邁向網絡化、智能化的新階段,構建數字化的工業生態和數字化的商業服務生態。三是新一輪的IT技術加速行業的深度融合,比如說標識解析、區塊鏈等技術如何與行業深度融合,將是這一時期工業互聯網發展的關鍵要素。(經濟參考報)[2020/4/30]
從這個角度說,如何將交互式的零知識證明協議改造為非交互式,就是一個很有意義的問題。在這篇文章當中,我們將介紹FOX使用經典的Fiat-Shamir啟發式來生成Brakedown中的挑戰從而實現非交互式協議的過程。
零知識證明中的Challenge
零知識證明算法隨著應用的鋪開而變得異常火爆,近些年也誕生了包括FOAKS、Orion、zk-stark等在內的各種算法。這些算法,以及密碼學界早期的sigma協議等的核心證明邏輯都是證明者先將某個值發送給驗證者,驗證者通過本地隨機數產生一個挑戰,將這個隨機產生的挑戰值發給證明者,證明者需要真的有知識才能以大概率做出通過驗證者的響應。例如在零知識洞穴當中,記者拋一個硬幣,告訴阿里巴巴從左側出來還是從右側出來,這里的「左和右」就是對阿里巴巴的挑戰,他如果真的知道咒語,就一定可以從要求的方向走出來,否則就有一半的概率失敗。
掌柜調查署 | 當前環境下交易所如何“轉正”?:4月15日16:00,金色財經「掌柜調查署」邀請到ChainUP大客戶項目負責人針對交易所如何擁抱合規的問題進行解答,帶領大家全面了解當前環境下,交易所如何“轉正”!更多內容點擊原文鏈接查看。[2020/4/15]
這里我們注意到,Challenge的生成是一個很關鍵的步驟,它有兩個要求,隨機和不可被證明者預測。第一點,隨機性保證了它的概率屬性。第二點,如果證明者可以預測挑戰值那就意味著協議的安全性被破壞了,證明者沒有知識也可以通過驗證,可以繼續類比,阿里巴巴如果能預測記者要求他從哪邊出來,他即使沒有咒語也可以提前進入那一邊,結果表現出來一樣可以通過協議。
所以我們需要一種辦法,能夠讓證明者自己本地生成這樣一個不可預測的隨機數,同時還能夠被驗證者驗證,這樣就可以實現非交互式的協議。
哈希函數
哈希函數的名字對我們來說或許并不陌生,無論是在比特幣的共識協議POW當中擔任挖礦的數學難題,還是壓縮數據量,構造消息驗證碼等等,都有哈希函數的身影。而在上述不同的協議當中,其實是運用了哈希函數的各種不同性質。
聲音 | 陳純:除了研究區塊鏈技術本身外 還需要研究如何監管:1月12日,中國工程院院士陳純在CCF通訊刊文《聯盟區塊鏈關鍵技術與區塊鏈的監管挑戰》,文中提到,區塊鏈作為重要的底層基礎設施,在其快速發展的過程中,我們要高度重視安全問題。因此,我們除了研究區塊鏈技術本身外,還需要研究區塊鏈如何監管。公有鏈已經成為新媒體的傳播媒介,因為公有鏈本身具有去中心化、不可篡改、不可刪除、低成本的特點。利用區塊鏈去傳播有害信息、網絡謠言、煽動性與攻擊性信息,會給區塊鏈技術的產業布局和發展帶來不利影響,同時給監管部門帶來很大的挑戰。[2020/1/13]
具體來講,安全的哈希函數的性質包括以下幾點:
壓縮性:確定的哈希函數可以將任意長度的消息壓縮成為固定長度。
有效性:給定輸入x,計算輸出h是容易的。
抗碰撞性:給定一個輸入x1,希望找到另一個輸入x2,x1x2,h=h,是困難的。
注意,如果哈希函數滿足抗碰撞性,那么必然滿足單向性,也就是說給定一個輸出y,要找出x滿足h=y是困難的。在密碼學當中,還不能構造出理論上絕對滿足單向性的函數,但是哈希函數在實際應用當中可以基本視作單向函數。
聲音 | BB:監管者不知道如何利用區塊鏈應對非傳統領域價值儲存的需求:Blcok.one的CEO BB發推文表示,監管者雖然知道區塊鏈,但他們不知道如何利用區塊鏈技術來應對主流市場對在非傳統領域價值儲存的快速增長需求,而這些非傳統領域更符合個人的信仰體系。[2019/4/21]
這樣一來,可以發現上述的幾種應用分別對應于哈希函數的幾點不同的性質,同時我們說,哈希函數還有一個很重要的作用是提供隨機性,雖然密碼學理論當中要求的完美的隨機數生成器目前也無法構造,但是哈希函數在實際當中同樣可以充當這個角色,這就為我們后文介紹的Fiat-Shamir啟發式的技巧提供了基礎。
Fiat-Shamir啟發式
事實上,Fiat-Shamir啟發式就是利用哈希函數來對前面生成的腳本進行哈希運算,從而得到一個值,用這個值來充當挑戰值。
因為將哈希函數H視作一個隨機函數,挑戰是均勻隨機的被選擇,獨立于證明者的公開信息和承諾的。安全分析認為Alice不能預測H的輸出,只能將其當作一個oracle。在這種情況下,Alice在不遵循協議的情況下做出正確響應的概率(特別是當她不知道必要的秘密時)與H的值域的大小成反比。
新華網分析:區塊鏈如何帶來個人數據保護“革命”:新華網今晚發表文章《區塊鏈如何帶來個人數據保護“革命”》,文章表示大數據時代,個人的數據被認為是黃金般珍貴。個人數據泄漏令人擔憂,但絕大部分人不可能因為害怕數據被收集而切斷與互聯網的聯系,而現階段有責任保管個人信息的企業、學校、酒店、社交網站等往往擔責不力。專家們認為,區塊鏈技術作為一種帶有加密、信任、點對點、難篡改等特征的“中間件”,有望解決這個難題。
區塊鏈技術的出現令個人數據掌控權從互聯網公司轉移到用戶自己手中,使人人掌控自己的個人數據成為可能。通過它,用戶個人數據可以與個人數字身份證相關聯,用戶可以選擇數字身份證是匿名、化名或公開,還可以隨時隨地從任何設備訪問區塊鏈應用平臺,控制他們的互聯網個人數據。[2018/4/18]
圖1:利用Fiat-ShamirHeuristic實現非交互式證明非交互式FOAKS
在本節,我們具體展示Fiat-Shamir啟發式在FOAKS協議當中的應用,主要是用來產生Brakedown部分的挑戰,從而實現非交互式的FOAKS。
首先我們看到,在Brakedown生成證明的步驟當中,需要挑戰的步驟是「近似性檢驗」以及MerkleTree的證明部分。對于第一點原本的過程是證明者在這里需要驗證者產生的一個隨機向量,計算過程如下圖所示:
圖2:非交互證明FOAKS中的BrakedownChecks
現在我們使用哈希函數,讓證明者自己產生這個隨機向量。
令0=H(C1,R,r0,r1),對應的,在驗證者的驗證計算當中,也需要增加這個計算出0的步驟。根據這樣的構造,可以發現,在生成承諾之前,證明者并不能提前預測挑戰值,于是不能提前根據挑戰值來對應的「作弊」,也就是對應的生成假的承諾值,同時,根據哈希函數輸出的隨機性,這個挑戰值也滿足隨機性。
對于第二點,令I=H(C1,R,r0,r1,c1,y1,c0,y0)。
我們使用偽代碼給出改造后非交互式的Brakedown多項式承諾當中的證明和驗證函數,這也是FOAKS系統當中使用的函數。
functionPC.Commit():
Parsewasakkmatrix.TheproverlocallycomputesthetensorcodeencodingC1,C2,C1isaknmatrix,C2isannmatrix.
forido
ComputetheMerkletreerootRoott=Merkle.Commit(C2)
ComputeaMerkletreerootR=Merkle.Commit(),andoutputRasthecommitment.
functionPC.Prover(,X,R)
Theprovergeneratesarandomvector0Fkbycomputing:0=H(C1,R,r0,r1)
Proximity:c0=i=0k-10C1,y0=i=0k-10w
Consistency:c1=i=0k-1r0C1,y1=i=0k-1r0w
Proversendsc1,y1,c0,y0totheverifier.
ProvercomputesavectorIaschallenge,inwhichI=H(C1,R,r0,r1,c1,y1,c0,y0)
foridxIdo
ProversendsC1andtheMerkletreeproofofRootidxforC2underRtoverifier
functionPC.VERIFY_EVAL(X,X,y=(X),R)
Proximity:idxI,C0==<0,C1>andEC(y0)==C0
Consistency:idxI,C1==<r0,C1>andEC(y1)==C1
y==<r1,y1>
idxI,EC(C1)isconsistentwithROOTidx,andROOTidx』sMerkletreeproofisvalid.
Outputacceptifallconditionsaboveholds.Otherwiseoutputreject.
結語
許多的零知識證明算法在設計之初都依賴證明者和驗證者雙方的交互,但是這種交互式證明協議不適合用在追求高效,網絡通訊開銷大的應用場景下,比如鏈上數據隱私保護和zkRollup等等。通過Fiat-Shamir啟發式,可以在不破壞協議安全性的條件下讓證明者本地生成隨機數「挑戰」,并且可以被證明者驗證。根據這種方法,FOAKS同樣實現了非交互式的證明,并應用在系統當中。
DWFLabs管理合伙人AndreiGrachev在社交媒體上再次回應拋售代幣、洗盤交易等質疑.
1900/1/1 0:00:00近日,一位技術社區博主AndyBaio發現,比特幣白皮書可以在任何運行最新版本macOS的Mac上找到。可以通過簡單的終端命令或導航Finder來發現它.
1900/1/1 0:00:00香港Web3.0協會成立典禮正式開幕并在線上進行同步直播,典禮議程包括理事會會長及主禮嘉賓致辭、協會主要成員委任儀式、高峰論壇等議程.
1900/1/1 0:00:00byAkiLabs-Roy,Lyv在當下火熱的zk-Rollup賽道背后,我們一直希望能夠梳理這一區塊鏈最前沿技術為何應運而生,不同團隊解決方案大大小小的差異.
1900/1/1 0:00:00來源:FilecoinNetwork這篇文章描述了一個簡單的策略,可將大量涌入的索引負荷分散到由索引器節點組成的索引池中。同時,它讓這個索引池具備可擴展性.
1900/1/1 0:00:00過去一周,市場出現了不少新的熱門幣種和話題,或許它們就是下一個市場焦點。1.市場焦點MarketTrends本周(?3.27-3.31)市場最關注的焦點話題為:zkSyncEra?主網正式上線,
1900/1/1 0:00:00