買以太坊 買以太坊
Ctrl+D 買以太坊
ads

VITA:Vitalik:受信任初始化的原理是什么?_ITA

Author:

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

來源:vitalik.ca

作者:Vitalik Buterin

編者注:

數據可用性采樣?(data availability sampling) 是 Dankshading 的關鍵部分,為實現這一密碼協議,需要使用 KZG 儀式對數據可用性證明方案所需要的參數進行初始化。

因此,KZG 受信任初始化是實現 EIP-4844 (proto-danksharding) 和完整版 Danksharding 的重要前提條件。

除此之外,其他密碼學協議如 ZK-SNARKs 領域也需要有受信任初始化階段。

本文介紹了受信任初始化的運作原理以及其驗證過程。

《分片 + 數據可用性采樣》www.ethereum.cn/sharding-proposal

必要的背景知識:elliptic curves and elliptic curve pairings。

另請參閱:Dankrad Feist's article on KZG polynomial commitments。(中文版:KZG多項式承諾)

特別感謝 Justin Drake、Dankrad Feist 和 Chih Cheng Liang 的反饋和評審。

許多密碼協議尤其是在數據可用性采樣和 ZK-SNARKs 領域都依賴于受信任初始化。受信任初始化儀式是一個用于生成一批數據的一次性流程。

后續,每次運行某些密碼協議時都必須使用這些數據。生成這些數據需要一些秘密信息;“信任”來源于這樣一個事實,即必須由某個人或某組人來生成這些秘密,使用秘密來生成數據,然后發布數據并銷毀這些秘密。

然而,一旦生成了數據并銷毀了秘密,儀式創建者就不需要進一步的參與。

受信任初始化有很多類型。在主流協議中最早使用的受信任初始化的實例是 2016 年的 Zcash 啟動儀式。這個儀式非常復雜,而且需要多輪的通信交互,因此只能有六名參與者。

彼時彼刻,每個使用 Zcash 的人都必須相信六名參與者內至少有一名是誠實的。新式協議一般會使用 powers-of-tau 初始化技術,其遵循 1-of-N 信任模型,N 值通常為數百。

也就是說,數百人一起參與生成數據,只需其中一人是誠實的并且不公開秘密就能保證最終輸出的安全性。實踐上,像這樣的執行良好的受信任初始化通常被認為是“足夠接近于去信任”的。

本文將介紹 KZG 初始化如何運作及其工作原理,以及受信任初始化協議的未來。任何精通代碼的人都可以隨意地瀏覽以下代碼實現:https://github.com/ethereum/research/blob/master/trusted_setup/trusted_setup.py.

Powers-of-tau 初始化是怎樣的?

Cardano聯創:從未為Ripple工作,相關謠言可能把自己和Vitalik搞混了:6月24日消息,針對網上有關其曾在Ripple實習的傳聞,以太坊和Cardano聯合創始人Charles Hoskinson澄清稱,這是謠言,自己從未以任何身份為Ripple工作過。相關謠言應該是把他和Vitalik Buterin兩個人搞混了。

相關謠言疑似是基于一條早期的推文(已刪除):2019年4月,Vitalik回復Coinbase聯合創始人Brian Armstrong的推文時承認,早在2013年中期,當他住在加拿大時,曾試圖去加州在此后更名為Ripple Labs的公司當實習生,但由于贊助美國簽證的公司必須至少成立一年而未能成功。

Ripple前開發者關系總監Matt Hamilton于2023年5月1日證實,Vitalik當時確實希望能在Ripple實習。[2023/6/24 21:57:28]

powers-of-tao 初始化由兩系列的橢圓曲線點組成,如下所示:

和?

是兩個橢圓曲線群的標準生成元;在 BLS12-381 中,

占用 48 字節(壓縮形式),

占用 96 字節。

,

分別是初始化輸出的

?,

生成點列的長度。一些協議要求

=2,另一些協議要求

的值都較大,一些協議屬于中間情形(例如,當前的以太坊數據可用性采樣方案要求

=4096和

=16)。

是用于生成點列的秘密值,使用后需要銷毀。

為了對多項式

生成 KZG 承諾,我們簡單選取一個線性組合

4萬枚ETH從Vitalik Buterin創建的合約地址轉出:11月24日消息,據WhaleAlert監測,4萬枚ETH從Vitalik Buterin創建的合約地址(0x22086開頭)轉出,該合約地址當前還持有逾25萬枚ETH,價值近3億美元。[2022/11/24 8:05:12]

,其中

(受信任初始化中的橢圓曲線點列)。

用于驗證我們所承諾的多項式的值;我不會在此討論驗證流程的細節,更多的細節參見 Dankrad 的文章(https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html)。

直觀地說,受信任初始化提供了什么價值?

從更深層次理解這里面到底發生了什么,以及受信任初始化為何能夠提供這些價值。

多項式承諾使用大小為

的對象(單個橢圓曲線點)對一段大小為

的數據進行承諾。我們可以用簡單的 Pedersen 承諾來做到這一點:

只需將

的值設置為

個不相關的隨機橢圓曲線點,然后如前所述對

多項式進行承諾。實際上,這正是 IPA 證明所做的。(https://vitalik.ca/general/2021/11/05/halo.html)

然而,任何基于 IPA 的證明都需要

時間來驗證,有一個不可避免的原因:使用基點

生成的承諾會對應于使用基點

的另外一個多項式。

Vitalik:從多個來源確認烏克蘭加密貨幣捐贈地址是合法的:2月27日消息,針對此前烏克蘭官方推特宣布接受加密貨幣捐贈,以太坊創始人Vitalik表示從幾個來源得到一些確認它是合法的,并暫時刪除我的警告。[2022/2/27 10:18:31]

在一組基點下對多項式

的一個有效承諾等效于另一組基點下對多項式

的一個有效承諾。

如果我們想對某些命題生成基于 IPA 的證明(例如,該多項式在

時等于 3826),該證明在基于第一組基點時應當驗證通過,而在基于第二組基點時應當驗證失敗。

因此,無論驗證流程如何,都無法避免以某種方式考慮每一個

值,因此不可避免地需要

時間。

然而,如果有受信任初始化的話,點間存在著隱藏的數學關系。可以保證任意兩個相鄰點之間有著相同的因子

使得

。如果

是有效的初始化輸出,“被篡改的輸出”?

是無效的。

因此,我們不需要

的計算量;相反,我們利用這個數學關系就可以在

時間下驗證我們需要驗證的任何東西。

然而,數學關系必須保密:如果

已知,那么任何人都可以提出一個表示眾多不同多項式的承諾:如果

的承諾,那么它也是

或許多其他多項式的承諾。這將完全破壞所有多項式承諾應用的根基。

因此,雖然在某個時間點上必須存在一些秘密值

波場與WAVES達成戰略合作,將利用Gravity連接區塊鏈智能合約語言:據官方消息,波場已與WAVES達成戰略合作,Waves和TRON將一起利用Gravity來連接各自區塊鏈的智能合約語言,即Ride和Solidity。Gravity是一個無基礎代幣的預言機,具有跨鏈通信網絡。TRON和Waves正在通過Gravity建立一座橋梁,這將允許兩個生態系統為兩個用戶群提供更多的服務。波場和Waves的生態系統計劃將這一趨勢擴展到其他區塊鏈生態系統并以此為鏈間DeFi行業帶來革命性改變。[2020/8/14]

,讓

值之間的數學聯系成為可能,從而實現高效驗證,但是

也必須被銷毀。

多方受信任初始化如何運作?

單個參與者進行初始化是很簡單的:只需選擇一個隨機值

,并使用

值生成一系列橢圓曲線點。但單個參與者的受信任初始化是不安全的:你必須信任某個特定的人!

解決方案是多方受信任初始化,其中“多”指的是很多參與者:超過 100 人是正常的,對于較小計算量的初始化方案,可能會超過 1000 人。以下是多方 powers-of-tau 初始化的工作原理。

以一個已有的初始化輸出為切入點(注意,你不知道

的值,你只知道一系列的橢圓曲線點):

現在,選擇你自己的隨機秘密值?

。計算:

請注意,這相當于:

也就是說,您已經創建了一個秘密值

相對應的有效初始化輸出!你永遠不會把你的秘密值?

給到之前的參與者,同時之前的參與者也不會把他們的秘密值

給到你。

只要任意一個參與者是誠實的,并且沒有透露他那部分的秘密值,那么組合起來的秘密值就不會被泄露。

特別地,有限域具有這樣的性質:如果你知道

但不知道

是被安全隨機地生成的,那么你對

的值一無所知!

驗證受信任初始化

為了驗證每個參與者確實參與了受信任初始化,每個參與者都可以提供這樣一個證明,包括 (i) 他們收到的點

聲音 | Vitalik:以太坊2.0信標鏈正式上線時間或略有推遲:金色財經現場報道,6月29日,在北京舉行的2019以太坊技術及應用大會上,以太坊聯合創始人Vitalik Buterin以及以太坊核心研究員Hsiao-Wei Wang在接受采訪時表示,按照正常的開發進度,以太坊2.0計劃在2020年初正式上線,Vitalik表示以太坊2.0信標鏈的上線時間或將略微推遲,更多要看社區進度,以太坊2.0測試網將于今年晚些時候上線。[2019/6/29]

和 (ii)

,其中 tt 是他們引入的秘密值。

這一系列的證明可用于驗證最后的初始化輸出將所有的秘密值組合起來 (與之相反的是,最后一個參與者只是舍棄了前面的值,并輸出了僅由他自己秘密值生成的初始化結果,他可以自行保留這個秘密值,從而在任何使用該初始化輸出的協議中欺詐)。

是第一個參與者的秘密值,

是第二個參與者的秘密值,以此類推。在每個步驟中的配對檢查驗證了每個步驟的初始化輸出確實源自前一步驟初始化輸出以及參與者在當前步驟中已知的新秘密值的組合。

(譯者注:配對的特性

每個參與者都應該在一些公開可驗證的媒體(例如個人網站、來自其 eth 地址的交易、推特)上披露他們的證據。

請注意,這個機制并不能阻止某些人聲稱參與了某個階段,而實際上是另外的人(假設其他人已經透露了他們的證據),但通常會認為這不成問題:如果有人愿意就參與的情況撒謊,他們也會愿意就秘密的刪除情況撒謊。只要公開聲稱參與的人中至少有一人是誠實的,那么初始化就是安全的。

除了上述檢查以外,我們還想驗證初始化中的所有橢圓曲線點的冪次都是正確的(即,它們是相同秘密值的冪)。(譯者注,即橢圓曲線可以表示為序列

為此,我們可以進行一系列配對校驗,驗證

(其中

是初始化中

的值)。

這驗證了每個

之間的因子與

之間的因子相同。然后,我們可以在 G_{2}G2 側執行相同的操作。(譯者注,即驗證

然而,這需要很多次配對,成本很高。相反,我們采用隨機線性組合

,及相同線性組合移動一位的結果:

。我們使用單個配對校驗來驗證它們是否匹配得上:

我們甚至可以將

側和

側的校驗過程結合在一起:除了如上所述計算

,我們還計算

是另一組隨機系數)和

,然后驗證

拉格朗日形式的受信任初始化

在許多用例中,你不太愿意使用系數形式的多項式(例如

,你更愿意使用點值形式的多項式(例如

是在域

模 337 的值為

的多項式)。(譯者注:此處的邏輯是,n 次多項式需要 n+1 個點來進行確定,點值形式其實指的是

,如此類推)

點值形式有很多優點(例如,您可以在

時間內進行多項式的乘法,某些情況下的除法運算),你甚至可以把它用在

時間內求值。特別地,數據可用性采樣要求 blobs 使用點值形式進行表示。

為了處理這些情況,通常可以便捷地將受信任初始化轉換為點值形式。這讓你能得到點值(上面的例子中為

,并直接使用它們來計算承諾值。

使用快速傅里葉變換(FFT)是最為便捷的手段,但是要將曲線點而非數值作為輸入進行傳遞。我將避免在此重復對 FFT 進行詳細的解釋,但這里有一個實現;FFT 實際上并不難。

受信任初始化的未來

Powers-of-tau 并不是唯一的受信任初始化方案。其他一些(實際上或潛在)值得注意的受信任初始化方案包括:

舊版的 ZK-SNARK 協議中使用的更為復雜的初始化方案(例如,參見此處)有時仍會被使用(特別地,Groth16),因為它驗證成本會比 PLONK 更低。

一些密碼協議(例如,DARK) 依賴于隱階群,群中元素不知道進行多少次乘法運算才能得到零元素。目前存在著完全無信任的版本(請參閱:class groups),但目前為止,最高效的版本使用的是 RSA 群(的冪 mod?,其中,未知)。遵循 1-of-n 信任假設的受信任初始化方案是可能的,但實現起來非常復雜。

如果/當不可區分混淆變得可行時,許多依賴于它的協議將會涉及:某人創建和發布一個混淆程序,該程序使用內部的隱藏秘密來執行某些操作。這就是受信任初始化流程:創建者需要持有秘密值來創建程序,而且之后需要把秘密值刪除。

密碼學仍然是一個快速發展的領域,受信任初始化的重要性很容易會改變。

采用 IPA 和 Halo 式思想的技術方案可能會被改進到讓 KZG 變得過時和不必要的程度,或者在十年后量子計算機讓基于橢圓曲線的所有方案都變得不可行,屆時我們將不得不使用無需受信任初始化基于哈希的協議。

KZG 改良得更快,或者出現一個依賴于另一種受信任初始化的全新密碼學領域都是有可能的。

在一定程度上,受信任初始化是必要的,重要的是要記住,并非所有受信任初始化都水平相當。176 個參與者比 6 個更好,2000 個更佳。

相比于要求運行一個復雜軟件包,成本小得可以在瀏覽器或手機應用上進行的受信任初始化儀式(例如,ZKopru 初始化就是基于Web應用)能夠吸引多得多的參與者。

理想情況下,每個儀式都應當讓參與者運行多個獨立構建的軟件實現,并且運行在不同的操作系統和環境之上,以減少共模故障的風險。

參與者只需一輪交互的儀式(如powers-of-tau)遠遠優于多輪交互的儀式,這既是因為能夠支持更多參與者,也是因為編寫多個實現會更加簡單。

理想情況下,儀式應該是通用的(一個儀式的輸出能夠支持大量協議)。這些都是我們可以并應當繼續鉆研的事情,以保證受信任初始化盡可能的安全可靠。

特別感謝 ECN 社區翻譯志愿者 @doublespending 對本文的翻譯貢獻。

點擊“閱讀原文”獲取文章內部鏈接!

原文鏈接:https://vitalik.ca/general/2022/03/14/trustedsetup.html

ECN的翻譯工作旨在為中國以太坊社區傳遞優質資訊和學習資源,文章版權歸原作者所有,轉載須注明原文出處以及ETH中文站。若需長期轉載,請聯系eth@ecn.co進行授權。

Tags:VITTALVITAITAVITOdigitalusdVitaDAO

以太坊交易
ETH:以太坊分叉倒計時_以太坊

最近關于以太坊分叉的聲音又多了不少,畢竟合并日期基本確定,全網 800 多 T 的算力歸屬仍是疑問,甚至比特大陸前幾天還在升級自己的以太坊礦機.

1900/1/1 0:00:00
BTC:以太坊合并在即 回顧 8 年前的眾籌數據以及目前供應占比情況_比特幣今日價格行情中國走勢圖

作者:Kyle Waters、Nate Maddrey 和 Matías Andrade,來源:Coin Metrics編者注:V 神在巴黎的 EthCC 會議上透露.

1900/1/1 0:00:00
加密貨幣:代幣薪酬設計指南_FMV

原文作者: ? zorkary 創作者:hahaho 審核者:DAOctor 原文: ?The Comprehensive Guide to Token Compensation 80u 代幣和.

1900/1/1 0:00:00
Uniswap:Uniswap Q2市場表現:交易量表現相對良好 計劃公布Wave 8贈款信息_SWAP

原文作者:Jerry Sun,Messari 研究員 原文編譯:Karen 受益于市場波動和健康的套利機器人活動,Uniswap 二季度交易活動的下降幅度小于整個加密貨幣市場.

1900/1/1 0:00:00
ROCK:ETH2.0質押話語權爭奪戰:Rocket Pool 如何挑戰 Lido?_Rocket Pool

撰寫:Marceau 編譯:TechFlow internRocket Pool正在悄悄建立至少3個大規模的擴展解決方案,這將使它能夠有~1000倍的增長,并將與Lido進行規模競爭.

1900/1/1 0:00:00
USD:金色圖覽 | NFT交易市場TOP3周報(7.24-7.30)_ONT

【0724 - 0730】周報概要:1、上周 NFT 市場成交量穩中有降,較上周下降約 9.7%;其中 X2Y2 周成交額持續位居榜首,份額占比 50.6%.

1900/1/1 0:00:00
ads