比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > USDT > Info

一文了解最熱門的 zkSNARK 方案:Groth16 方案_ROT

Author:

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

原文標題:一文了解最熱門zkSNARK方案:零知識證明引論

在之前的文章中,我們介紹了零知識證明的基礎概念以及構造zkSNARK的基本思想和方法。從本文開始,我們將逐一介紹目前最熱門的zkSNARK方案。文章旨在讓讀者理解這些方案的基本原理。為了方便敘述并容易理解,在敘述方案時,我們會做一些簡化處理,重在傳達方案的核心思想。

本文介紹的是Groth16方案。Groth16方案,顧名思義,就是Groth在2016年發表的一篇論文中提出的方案。目前為止,Groth16是在實踐中使用最廣泛的zkSNARK(沒有之一)。特別一提的,Zcash目前使用的zkSNARK方案就是Groth16。從性能上,Groth16的Verifier性能是所有zkSNARK中最快的,其證明字符串也是最短的。

而Groth16的最大缺點就是它需要對每個電路都執行一次可信初始化。

在介紹Groth16之前,簡單回顧一下zkSNARK所要解決的問題。我們稱這個問題為「計算驗證問題」。

計算驗證問題

任何計算都可以描述為一個算術電路。一個算術電路可以對數字進行算術運算。電路由加法門、乘法門以及一些常數門組成,如下圖所示:

外媒:Maker旗下兩家公司已與投資者達成116萬美元和解:6月23日消息,兩家在Maker生態系統下運營的公司已與投資者達成116萬美元和解,這些投資者要求賠償2020年3月“黑色星期四”新冠疫情崩盤后遭受的財務損失。原告彼得·約翰遜在遭受損失的一個月后提起集體訴訟。該案件是針對眾多投資者提起的,他們聲稱Maker基金會和相關實體故意歪曲平臺上債務抵押頭寸 (CDP) 的風險,導致總計830萬美元的損失。

周四公布的一份法庭文件顯示,Maker基金會否認有任何不當行為或違法行為,但雙方達成了和解協議。Blockworks聯系MakerDao尋求進一步評論,截至發稿未收到回復。[2023/6/23 21:56:14]

這個例子中的電路包含了15個門。這個電路所描述的計算過程需要輸入五個數字x1到x5,輸出四個數字。

給定一組輸入的數字,需要把這個電路中的每個門都計算一遍,才能計算出這個電路的輸出。在這個例子中,如果輸入是(1,2,3,4,5),則電路的輸出為(-27,14,80,171),如下圖所示:

計算驗證問題是指,如果一個驗證者——不妨叫做Verifier——只拿到了電路的一組輸入和輸出,如這個例子中的(1,2,3,4,5)和(-27,14,80,171),它該如何驗證這是一對合法的輸入和輸出呢?最簡單粗暴的方法就是把這個輸入重新扔進電路算一遍。如果電路很大的話,這個驗證方法最大的缺點就是效率問題。

幣安完成TrueUSD(TUSD)合約置換:金色財經報道,據官方公告,幣安現已完成TrueUSD(TUSD)于BNB Smart Chain(BEP20)的合約置換。現已開放新TUSD(BEP20)代幣的充值、提現業務。舊TUSD代幣在幣安已采用TUSDOLD作為代碼。用戶可以充值舊TUSD代幣(TUSDOLD),并通過幣安閃兌將這些代幣置換成新TUSD(BEP20)代幣。[2023/6/15 21:39:32]

有些場景下,效率還不是唯一的問題。例如,輸入可能包含Verifier不能知道的秘密信息。假設上例中的(3,4,5)是秘密輸入,Verifier只能看到(1,2),如下圖所示。此時Verifier要驗證的問題就變成了「是否存在(?,?,?)使得電路在輸入(1,2,?,?,?)的時候的輸出是(-27,14,80,171)」。這個場景下,即使是簡單粗暴的重新計算也不再可行。

一句話概括計算驗證問題:Verifier能否在不知道秘密輸入的情況下,高效地驗證計算結果?

從電路到R1CS問題

一個zkSNARK就是對上述問題的一個解決方案。使用zkSNARK,一個證明者,叫做Prover,可以為計算過程生成一個簡短的證明字符串。Verifier讀取這個字符串,就可以判斷給定的公開輸入和輸出是否合法。

數據:約5371萬枚USDT從幣安經中間地址轉至Hotbit:6月6日消息,Whale Alert 監測數據顯示,北京時間 15:31:45,53,715,808 枚 USDT 先從標記為幣安的地址轉出至某中間地址,隨后又從該中間地址轉至標記為 Hotbit 的地址。

此前報道,5 月 22 日加密交易所 Hotbit 宣布停止運營,用戶需在 6 月 21 日前提取剩余資產。[2023/6/6 21:19:06]

Groth16是眾多zkSNARK構造方案中的一種。接下來,我們介紹Groth16是怎么解決計算驗證問題的。

首先,我們重新審視一下Verifier的任務:我們只知道電路的前兩個輸入是(1,2),我們的目標是要判斷是否存在一組合法的秘密輸入,使得電路的輸出是(-27,14,80,171)。如果我們換個角度看這個問題,它其實可以描述為:給一個電路,上面有些空格可以填數字,有些空格已經填上了數字,請問是否存在一種填法,能夠同時滿足每個門的邏輯?

從這個新的角度,計算驗證問題被轉換成了一個類似于數獨那樣的填數字游戲:有一些空格,一部分已經填上,請你填上另外一些空格,滿足一些限制條件。

Compass Mining提醒比特幣礦工注意比特大陸 ASIC 設計的變化:金色財經報道,比特幣礦業公司 Compass Mining 發布了一篇題為“比特大陸改變其 ASIC 設計”的博文。礦工需要做好準備”,強調了比特大陸 ASIC 設計的變化。Compass 認為比特幣采礦設施運營商應該意識到這些變化,這可能會導致問題。例如,該公司確定了 Antminer S19 的三個問題,每秒產生 90 太哈希 (TH/s),而 S19 XP 提供 140 TH/s。

Compass Mining 的William Foxley解釋說,新機器在 ASIC 上缺少外圍接口控制器 (PIC),因此與帶有 PIC 的算力板相比,更難控制單個算力板。這些設備在采礦設備的一側使用鍍鋁,Foxley認為這可能會導致過熱問題。此外,將所有組件整合到電路板的一側,導致哈希板錯誤的可能性增加。[2023/3/9 12:50:51]

然后,我們為每一個要滿足的條件列一個方程。這里,每個要滿足的條件其實就是一個門的邏輯:加法門的輸出等于兩個輸入之和,乘法門的輸出等于兩個輸入之積。于是,原來的填空游戲就變成了一個多元方程組。上述例子轉化得到的方程組如下:

EOS網絡基金會推出EOS生態Yield+激勵計劃,將于8月14日開放注冊:8月11日消息,據官方公告,EOS網絡基金會推出EOS生態Yield+激勵計劃,將于8月14日開放注冊,8月28日開始計算TVL并發放獎勵。Yield+激勵計劃分為三個階段:第一階段中,所有DeFi協議均可注冊申請,24小時EOS TVL平均值不低于200,000美元的DeFi協議可獲得獎勵。

據悉,Yield+是一項EOS生態流動性激勵和獎勵計劃,旨在幫助發展EOS DeFi生態系統,提高EOS DeFi的總鎖倉量(TVL),并增加用戶從其EOS資產中獲得收益的機會。[2022/8/11 12:18:24]

最后,我們對這個方程做一些整理,使得它能夠寫成矩陣和向量的形式,更加整齊和簡潔。我們把每個方程都寫成*=*x*的模式。盡管并不是所有方程中都有乘法,但我們可以給沒有乘法的式子乘上一個。于是方程組變成了下面這個樣子:

把所有方程合到一起,就得到了原方程組的矩陣表示

我們把最終得到的這個矩陣向量方程叫做一個Rank-1ConstraintSystem(R1CS)。

總結一下,這一節中我們把計算驗證問題轉化成了數學問題R1CS。

在計算驗證問題中,Verifier知道一個電路,拿到公開部分的輸入,以及電路的輸出,判斷它們是否合法。

從R1CS問題到QAP問題

在零知識證明領域,R1CS基本上就是電路的代名詞。許多zkSNARK把R1CS問題作為目標問題。不過,大部分zkSNARK不會直接對R1CS下手,而是把R1CS問題繼續轉化,得到一個等價的多項式問題,再對這個多項式問題設計證明方案。Groth16也不例外。不同的zkSNARK選擇的多項式問題各不相同,Groth16選擇的是一個叫做QuadraticArithmeticProgramming(QAP)的問題。

這一節中介紹一下怎樣把R1CS問題轉化為等價的QAP問題。

然后,我們把這些列向量換成多項式,使得多項式方程和原先的向量方程等價。

把向量轉化成多項式的一種方式是使用多項式插值。

多項式插值

QAP問題

現在,我們直接把R1CS矩陣中的列向量換成它們的多項式插值,得到的結果如下圖所示。

我們用一個表格總結一下上文中提到的所有問題。

為什么要越搞越復雜,把電路問題轉化為QAP問題呢?一個簡單的回答:就是為了引入多項式!多項式是一個強大的工具。多項式的作用,可以理解為一個「杠桿」,或者叫「誤差放大器」。如果我們要檢查兩個長度為10000的向量是否相等,一定需要檢查10000次,哪怕檢查過了9999個點都是一樣的,也不能保證最后一點是相同的。而兩個10000次的多項式,哪怕非常接近,比如說它們的系數有9999個都相同,或者它們在這些點上的取值都相等,但只要有一個點不同,這兩個多項式就截然不同。這意味著,如果在一個很大的范圍內,例如到當中均勻隨機選一個點,兩個不同的多項式在這個點上相等的機會只有。檢查兩個多項式是否相等,比檢查同樣規模的向量要快得多,這幾乎是所有zkSNARK提高Verifier效率的根本原理。

為QAP問題構造zkSNARK

QAP問題就是Groth16要用來構造zkSNARK的最終問題了。不過,在解釋Groth16的構造細節之前,我們先準備一些工具。

準備工具

我們假設讀者對橢圓曲線群的基本特性和應用有所了解,并采用加法群的記號來描述橢圓曲線群中的點和運算。橢圓曲線群中的元素可以用來表示多項式,并限制Prover必須使用給定的多項式來進行線性組合。這正是QAP所需要用到的特性。

我們看一下橢圓曲線是怎么用來表示多項式的。

KoE假設

然而,上述直覺并不能從離散對數假設嚴格地證明而來。所以,只能把它作為一個新的安全性假設來用。這個假設就叫做Knowledge-of-Exponent(KoE)假設。

KoE假設怎樣應用到QAP問題上呢?那就是,KoE允許我們使用橢圓曲線點來表示多項式,并且迫使Prover只能從已知的多項式線性組合產生新的多項式。

不過,到目前為止,我們忽略了兩個關鍵問題:

關于第二個問題,一個解決方法就是雙線性配對。

雙線性配對

現在,我們已經準備好了工具:KoE假設和雙線性配對。接下來,我們就介紹Groth16是如何為QAP問題構造zkSNARK的。

Groth16方案

Setup

Prove

Verify

解析

我們簡單解釋一下上述構造為什么能夠工作。至于它為什么是安全的,請感興趣的讀者參閱原文。

當然,Verifier的驗證式中還包含了許多其他項,但在Groth的精心設計下,它們都消掉了。感興趣的可以自行驗證。

小結

本文中,我們解釋了Groth16這個zkSNARK方案的構造原理。我們從算術電路開始,介紹了怎樣將計算驗證問題轉化為R1CS問題以及QAP問題。然后我們解釋了怎樣使用Groth16方案來證明知道一個QAP問題的解。Groth16方案使用了KoE假設以及雙線性配對。它的缺點是需要可信第三方進行初始化,而且初始化過程需要對每個電路進行一次。與此同時,Groth16享有最高效的Verifier算法以及最短的證明字符串,使得Groth16成為至今仍然應用最廣的zkSNARK方案。

參考資料

JenGroth.OntheSizeofPairing-basedNon-interactiveArgument.2016.

撰文:Cyte

Tags:ROTGROZKSARKTransmute ProtocolMarshal Lion Group CoinZKS價格STARPARK

USDT
鼎昂智能量化:機器人自動炒幣效果怎么樣?

借助炒幣機器人進行炒幣,效果方面肯定是遠遠勝過手動操作的。畢竟相比而言散戶手動交易,對于行情的捕捉以及把握并不能更好的買在合適的買點,賣在合適的賣點所以肯定是智能化操作工具要完勝普通大眾.

1900/1/1 0:00:00
ZD關于對XRP5L等15個ETF產品進行份額合并的公告_USDT

尊敬的客戶: 由于當前部分ETF產品的單價均低于0.01USDT,為提高其價格變化的靈敏度,優化交易體驗,平臺將在2021年1月27日00:00-03:00期間.

1900/1/1 0:00:00
Filecoin官方展望2021_FILE

不久前,Filecoin官方帶我們回顧了2020的Filecoin,接下來,讓我們一同展望2021年的Filecoin,在所有人的共同努力下.

1900/1/1 0:00:00
SushiSwap的藍籌逆襲_USH

Sushiswap的潛力相較Uniswap,Sushiswap因為早期的公平啟動分發擁有更強大的社區基礎支持。社區投票選出的團隊,擁有較高的激勵去執行開發工作,產生了大量的創新.

1900/1/1 0:00:00
比特幣價格反彈會在2021年持續嗎?8大關鍵事項值得注意_Elrond

對于很多人來說,接下來比特幣的價格會往哪個方向走,是一個困難的問題。誰知道呢?但以下八大因素值得考慮。周五《財富》雜志的一篇關于比特幣的報道開始流傳.

1900/1/1 0:00:00
東方核心要點_WEB3

出行暫不需要提供核酸檢測陰性證明,如非必要不要前往疫情級別中高風險地區。疫情級別低風險地區進瓊憑健康碼和個人軌跡證明可通行,抵瓊后14天內加強自我健康監測.

1900/1/1 0:00:00
ads