99久久国产亚洲高清观看2020_国产免费成人_四虎国产精品永久地址入口_国产精品免费一区二区久久夜色_美国超碰在线_男人天堂tv

您的位置:首頁 > 互聯網 >

Arithmetization是零知識證明算法 可把CI statement轉化成Algebraic language

2019-11-25 11:53:41 來源: 區塊網

前言本系列的第一篇文章(技術指南 | 理解零知識證明算法之Zk-stark),以Zk-snark做對照,分別從概念和算法流程上,做了概括性的介紹。建議在

前言

本系列的第一篇文章(技術指南 | 理解零知識證明算法之Zk-stark),以Zk-snark做對照,分別從概念和算法流程上,做了概括性的介紹。建議在閱讀本篇文章之前,先閱讀下第一篇文章的內容。本篇文章,讓我們由淺入深,一起踏上探索Zk-stark算法奧秘的旅途。

回顧

在第一篇的文章中講到,Zk-stark算法大體可以分為兩個部分:Arithmetization 和 Low Degree Testing。本篇我們先詳細介紹算法的第一階段Arithmetization。

Arithmetization的整體步驟如下圖所示:

那什么是Arithmetization?具體過程又是什么呢?帶著這些疑問,讓我們仔細的品味文章后面的內容。

首先,什么是Arithmetization?

Arithmetization就是把CI statement轉化成正式的Algebraic language的過程,此步驟有兩個目的:第一,把CI statement以簡潔清晰的方式呈現出來;第二,把CI statement嵌入到代數域,為后面多項式的轉換做鋪墊。Arithmetization representation主要由兩部分組成:第一,執行軌跡(圖中橙色部分);第二,多項式約束(圖中灰色部分)。

執行軌跡是一個表,表的每一行代表一個單步的運算;多項式約束的構造是和執行軌跡相輔相成的,即當前僅當執行軌跡是正確的,多項式約束會滿足執行軌跡的每一行計算。最后把執行軌跡和多項式約束結合組成一個確定的多項式,然后對多項式進行LDT驗證。至此,驗證CI statement的問題轉換成了驗證確定性多項式LDT的問題。

Arithmetization

知道了Arithmetization的整體流程,接下來,我們討論下具體的過程。為了便于理解,我們用一個簡單的例子,來貫穿整個Arithmetization的過程。

每個人都去過超市,一般超市的收據的內容如下:

現在,好萊塢人氣演員Bob聲稱:"the total sum we should pay at the supermarket was computed correctly"。那怎么驗證呢?其實很簡單,這時另一個人氣演員Alice只要對著收據,每一項累加求和就可以完成驗證。那么,這只是一個很簡單的例子,事實上,Alice只需要5步,就可以完成驗證過程。

試想這樣一個場景:畢竟Bob很有錢,在超市買了1000000樣東西,同樣,他又聲稱:"the total sum we should pay at the supermarket was computed correctly",這時候,Alice真的生氣了,這怎么驗證,按照之前的辦法,得大約要算1000000步,鬧呢?誰愛干誰干。Bob心里也心疼Alice,畢竟那么多年了。心想,有沒有什么牛掰的辦法能讓Alice用很少的步驟,就能確信我說的是對的呢?于是,Bob開動了最強大腦模式。

下面,讓我們用上面簡單的例子,跟隨Bob去尋找這個牛掰的辦法。

Bob心想,你不就是驗證最終的總和對不對么?那我就把總和的計算過程列出來,我保證每次的累加都對,那么我最終的結果一定也是對的。于是Bob在收據上新增了一列,用來保存計算總和過程中的中間值(圖中橙棕色部分標注),這就是執行軌跡(圖1中的橙色部分)。

新增的一列值需要滿足,初始化的值為0(圖2中黃色部分)、最終的值和要付的總和相等(圖2中黃色部分)、中間的每一個值都要等于上一個值加上上一行物品的單價(圖2中紅線部分),這構成了多項式約束(圖1灰色部分,圖2左下角部分)。

從圖2可以看出:

· 多項式約束總共有3個,兩個是邊界約束(多項式索引1&3),一個是循環約束(多項式索引2);

· 多項式的大小和執行軌跡的答案小沒有關系,即表格的長度即使擴大到1000000,最終的多項式約束仍是這三個,唯一變化的是變量x的取值范圍而已。

在這里,借用V神的話來描述一下Zk-stark:Zk-Stark不是一個確定性的算法,它是一大類密碼和數學結構,對于不同的應用,具有不同的最優設置。可以理解為,對于不同的問題,具有不同的算術化的方案(在本例中,是加一列值,在其他案例中就不一定適用了),因此要做到具體問題具體分析。

但是有一個共同目標就是,無論是什么問題,得到的執行軌跡最好是用一個LOOP就可以表示,這樣得到的多項式約束也就最為簡潔。多項式約束的個數和形式直接影響到了proof的大小和Zk-stark算法的性能,因此,尋找一個最優的設置對于Zk-stark算法顯得尤為重要。

回歸到主題,現在Bob已經得到了多項式約束和執行軌跡,那么如何把它們轉換成一個確定的多項式呢?請看下圖:(藍色箭頭代表主流程,紅色箭頭代表分支)

Bob首先把關注點切到執行軌跡,可以看到執行軌跡有2列,一列是單項價格,一列是價格總和,我們分別對兩列的元素進行拉格朗日插值,得到兩個函數 f(x), w(x),0≤x≤5。分別對兩個函數進行域擴展,得到了在更多的點上的評估,即f(x),w(x) ,0≤x≤10000(從多項式插值,到域擴展,這其實就是Reed-Solomen的編碼過程,它可以實現,原始數據哪怕有一處差異,得到的碼字會大不相同;主要目的用于防止證明者作惡,加入證明者作惡,會使得驗證者很容易發現)。

然后,Bob把f(x),w(x) 和多項式約束等式結合,得到一組確切的多項式約束(圖中紅色圈2所示),以循環約束多項式為例:

1 ≤ x ≤ 5 w(x) - f(x -1) - w(x -1) = 0 (1)

令Q(x) = w(x) - f(x-1) - w(x-1),則有Q(1) = 0、Q(2) = 0、Q(3) = 0、Q(4) = 0、Q(5) = 0。

根據已知事實,度為d的多項式H(x)在x = n處為0,則存在一個度為d-1的多項式H`(x),滿足 d(H`(x)) = d(H(x)) - 1 && H(x) = H`(x) * (x - n)

因此對于Q(x),度為5,存在一個多項式Ψ(x),度為0,即常量,滿足Q(x) = Ψ(x) * (x - 1)(x - 2)(x - 3)(x - 4)(x - 5),令目標多項式T(x) = (x - 1)(x - 2)(x - 3)(x - 4)(x - 5),度為5,則有:

Q(x) = Ψ(x) * T(x) (2)

驗證者Alice從0≤x≤10000隨機選擇一點a,發送給證明者Bob,要求Bob返回相應的值,以公式(2)為例,Bob需要返回w(a)、w(a-1)、f(a-1)、Ψ(a),然后Alice判斷等式是否成立,即:

w(a) - f(a - 1) - w(a - 1) = Ψ(a) * T(a) (3)

如果等式成立,則Alice大概率相信執行軌跡是正確的,那么原始計算成立。假如驗證者Bob作惡,將表格中的4.98改成5.98,那么Q(1) = w(1) - w(0) - f(0) = 5.98 - 0 - 4.98 = 1,不等于0。在這種情況下,觀察公式(2),等式右邊為Q(x),度為5,x = 1不是零點;等式右側Ψ(x) * T(x) ,令G(x) = Ψ(x) * T(x),度為5,因為T(x)在x = 1處是零點,所以G(x)在x=1處也是0點。

因此,等式兩邊實際上是度相等的不同多項式,其交點最多為5個,因此在0≤x≤10000范圍內,只有5個值相等,9995值是不等的,因此隨機的從0≤x≤10000中選擇一個值,驗證不通過的概率是99.95%,如果域擴展的范圍更大,則驗證不通過的概率將會更接近于1。按照同樣的邏輯,分別處理邊界約束多項式,得到的結果如圖所示(圖中紅色圈3所示)。

下面,我們講討論如何增加零知識屬性。

對于證明者Bob來講,執行軌跡是不希望被驗證者Alice看到的,因為它會包含一些重要的信息,因此,限定驗證者Alice只能從6≤x≤10000范圍內隨機選擇一個值,進行驗證,當然這種限定,雙方都是同意的。

存在這樣一類問題。當驗證者Alice收到證明者Bob反饋的值時,如何保證這些值是合法的,確實是通過多項式的形式計算,并且這些多項式是小于某個度的,而不是證明者Bob僅僅為了驗證通過,而生成的隨機值?比如如何確保w(a)、w(a-1)、f(a-1)、Ψ(a)是多項式w(x)、f(x)、Ψ(x)分別在x = a && x = a - 1上的取值呢,且多項式w(x)、f(x)、Ψ(x)的度小于某個固定值的呢?這些問題將在下一篇文章中給出答案,在此之前,不如先討論一下,為何多項式的度小于某個固定值就能證明原始執行軌跡是正確的呢?

從以上的例子中,可以看出,當且僅當執行軌跡是正確的時候,Q(x)才會在x 取值為 1、2、3、4、5時,等于0。那么Q(x)才可以被目標多項式T(x)整除,即:Ψ(x) = Q(x) / T(x) ,d(Ψ(x)) = d(Q(x)) - 5。

從圖3可以看出,需要驗證的多項式的個數是5個(紅色圈4所示),如果對每一個多項式都進行LDT,那么消耗是很巨大的,因此,可以通過將這些多項式進行線性組合(紅色圈5所示),當且僅當每個多項式都滿足小于某個度時,其線性組合后的多項式也是小于某個度的,這個條件時充分的,具體的細節見后續的系列章節。(江小白)

關鍵詞: Arithmetization 零知識證明算法

精選 導讀

募資55億港元萬物云啟動招股 預計9月29日登陸港交所主板

萬科9月19日早間公告,萬物云當日啟動招股,預計發行價介乎每股47 1港元至52 7港元,預計9月29日登陸港交所主板。按發行1 167億股計算,萬

發布時間: 2022-09-20 10:39
管理   2022-09-20

公募基金二季度持股情況曝光 隱形重倉股多為高端制造業

隨著半年報披露收官,公募基金二季度持股情況曝光。截至今年二季度末,公募基金全市場基金總數為9794只,資產凈值為269454 75億元,同比上

發布時間: 2022-09-02 10:45
資訊   2022-09-02

又有上市公司宣布變賣房產 上市公司粉飾財報動作不斷

再有上市公司宣布變賣房產。四川長虹25日稱,擬以1 66億元的轉讓底價掛牌出售31套房產。今年以來,A股公司出售房產不斷。根據記者不完全統

發布時間: 2022-08-26 09:44
資訊   2022-08-26

16天12連板大港股份回復深交所關注函 股份繼續沖高

回復交易所關注函后,大港股份繼續沖高。8月11日大港股份高開,隨后震蕩走高,接近收盤時觸及漲停,報20 2元 股。值得一提的是,在7月21日

發布時間: 2022-08-12 09:56
資訊   2022-08-12

萬家基金再添第二大股東 中泰證券擬受讓11%基金股權

7月13日,中泰證券發布公告,擬受讓齊河眾鑫投資有限公司(以下簡稱齊河眾鑫)所持有的萬家基金11%的股權,交易雙方共同確定本次交易的標的資

發布時間: 2022-07-14 09:39
管理   2022-07-14

央行連續7日每天30億元逆回購 對債市影響如何?

央行12日再次開展了30億元逆回購操作,中標利率2 10%。這已是央行連續7日每天僅進行30億元的逆回購縮量投放,創下去年1月以來的最低操作規

發布時間: 2022-07-13 09:38
資訊   2022-07-13

美元指數創近20年新高 黃金期貨創出逾9個月新低

由于對美聯儲激進加息的擔憂,美元指數11日大漲近1%創出近20年新高。受此影響,歐美股市、大宗商品均走弱,而黃金期貨創出逾9個月新低。美

發布時間: 2022-07-13 09:36
資訊   2022-07-13

美股三大股指全線下跌 納斯達克跌幅創下記錄以來最大跌幅

今年上半年,美股持續回落。數據顯示,道瓊斯指數上半年下跌15 3%,納斯達克綜合指數下跌29 5%,標普500指數下跌20 6%。其中,納斯達克連續

發布時間: 2022-07-04 09:51
推薦   2022-07-04

融資客熱情回升 兩市融資余額月內增加超344億元

近期A股走強,滬指6月以來上漲4%,融資客熱情明顯回升。數據顯示,截至6月16日,兩市融資余額1 479萬億元,月內增加344 67億元,最近一個半

發布時間: 2022-06-20 09:41
資訊   2022-06-20

4個交易日凈買入超百億元 北向資金持續流入A股市場

北向資金凈流入態勢延續。繼6月15日凈買入133 59億元后,北向資金6月16日凈買入44 52億元。自5月27日至今,除6月13日以外,北向資金累計凈

發布時間: 2022-06-17 09:37
推薦   2022-06-17