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

為以太坊引入 KZG 承諾:工程師視角(上)_BSP

Author:

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

(譯者注:本文所介紹的技術在密碼學社區里一般稱為 “KZG10 承諾”,得名于論文三位作者的姓氏首字母。但在介紹到以太坊生態中時,被簡化成了 “Kate 承諾”,甚至連核心開發者也是這么稱呼的。這是對另外兩位作者的不尊重,不應該繼續下去。在本譯文中,凡原作者使用 “Kate commitment” 的地方,都一律譯為 “KZG10 承諾”。)

免責聲明 :本文僅僅是匯集、鏈接了許多已經公開的成果,對應的榮譽(包括本文所鏈接的圖片)應歸屬于相應的 作者/開發者。

P.S. :特別感謝 Ethereum R & D discord 頻道(尤為感謝 @vbuterin 和 @piper)幫助我理解 KZG10 承諾的某些方面。此外,還要感謝 @vbuterin 幫忙審校本文。

PPS :本文是出于 lodestar 團隊的利益而撰寫的;lodestar 是一個很棒的 ETH PoS 客戶端,基于 typescript,可以讓以太坊的服務 無處不在,也開啟了作者對以太坊生態和創新的理解。

我希望本文也能對全世界的其他 開發者/技術人員 有所幫助。本文遵循 CC0 自由創作公約,作者已放棄所有權利。

作為一個有益的指南,幫助讀者熟悉、總結以太坊背景下 KZG10 承諾的提議用法,并提供深入理解的指南。

本文的目的更多是總結,而非嚴謹,不過,您可以點擊文中所附的鏈接,它們會有更詳細的解釋。

注-1:哈希值就是一個對被哈希的原像的承諾,用于檢驗被哈希的數據的完整性。(譯者注:這話其實不是很嚴謹。因為哈希函數往往難以滿足 “承諾方案” 所需的性質。)

Vitalik Buterin:賬戶抽象可為以太坊帶來數十億美元的收益:金色財經報道,最近在巴黎舉行的以太坊社區會議(EthCC)上的一次演講中,以太坊創始人Vitalik Buterin詳細介紹了賬戶抽象升級如何讓用戶用用于交易的代幣支付Gas費,從而吸引數十億人使用以太坊。帳戶抽象使用戶能夠從外部擁有的錢包(EOA)切換到基于智能合約的錢包。如果此次升級成功,錢包管理將比現在更加高效和輕松。Buterin和社區相信,這可以使加密技術得到廣泛采用。

此外,加密貨幣領域充斥著丟失助記詞或助記詞被盜的用戶。通過賬戶抽象,用戶可以創建充當可編程智能合約的非托管錢包。據報道,錢包恢復只是此次新升級帶來的眾多功能之一。Buterin相信此次升級可以給以太坊帶來數十億美元的收益。[2023/7/20 11:05:50]

舉個例子,假設 h1 = H(t1, t2, t3..),然后把 h1 交給驗證者(比如,把它放在區塊頭內),然后給出一個偽造的區塊 (t1,t2',t3...),對方快速計算這個偽造區塊的哈希值之后,發現兩者對不上,就可以合理地拒絕你的偽造區塊。

類似的,一棵默克爾樹的根節點,就是對按特定索引(路徑)組織起來的所有葉子節點的承諾。或者簡單來說,是對 indexes => values(從索引值到數值)的映射的承諾。

而這里的 “證明” 就是一個葉子的 默克爾分支(merkle branch) 以及(這個分支在每一層上的) 兄弟哈希值(sibling hashes),憑借這些數據,可以逐級向上哈希,并通過最終的哈希值是否與根節點一致來判斷該葉子是否與這棵默克爾樹一致(存在于這棵默克爾樹上)。

現場丨InfStones合伙人Rudy Lu:流動性解決方案為以太坊2.0提供了新思路,但尚未看到真正去中心化方案:金色財經現場報道,11月20日,由金色財經主辦,Blocklike,鯨交所,四塊科技,DSFS-LABS協辦的金色沙龍第57期在杭州舉辦,InfStones合伙人Rudy Lu表示門檻高、鎖倉時間長、質押風險不確定是以太坊2.0存在的問題與難點,但流動性解決方案可以提供新的思路。目前市場已經出現了拼份、提供流動性映射代幣xETH等方案,可以解決32ETH門檻高、鎖倉時間長等問題,但受制于以太坊2.0的開發進度,目前不存在真正去中心化的方案,直到以太坊2.0真正支持智能合約的時候才可能出現。當前以太坊2.0質押年化收益率20%很有吸引力,但依然會隨市場總質押量的變化而有降低的風險,而流動性解決方案可通過發行xETH讓投資者能夠在質押同時享受DeFi的收益,以這種Staking延伸的流動性代幣會構筑起新的DeFi大廈。[2020/11/20 21:29:17]

可看看這里的介紹 : )。

注-2:數據映射與一個多項式的對應關系

indexes => values 這樣的數據映射可以表示為一個多項式 f(x),并且 f(index)=value(由拉格朗日插值法可知滿足這個條件的多項式必定存在)。“ f(index)=value ”通常被稱為 求值形式,而 “ f(x)=a0+ a1.x + a2.x^2... ” 則是其 系數形式。直觀來說,我們其實是根據映射中所有的 (index,value) 點,擬合出了一個多項式。

動態 | Tezos基金會CSO表示可為以太坊基金會任何項目提供資金:以太坊項目的工作人員之一Nina Breznik在推特表示,以太坊基金會計劃從2020年開始停止為其大部分內部團隊提供資金。Nina團隊稱自己是以太坊基金會成員,過去兩年來,在過去的2年里一直致力于Remix。對此,Tezos基金會CSO和理事會成員Ryan Lackey表示,該組織已準備好以跨區塊鏈的方式為以太坊基金會的任何項目提供資金。(newslogical)[2019/12/7]

為了簡便計算,并確保多項式與數據映射的一一匹配,我們不使用索引值來作為 f(x) 的 x,用的是 w^index,也就是 f(w^index)=value,其中 w 是 d 次單位根(即 w^d = 1 且 w 是一個復數),而 d 是該多項式的次數(也是我們能夠包含的索引值的個數上限)。因此,我們可以使用快速傅立葉變換來實現高效的多項式計算,比如乘法和除法,在求值形式下其計算復雜度會是 O(d),而且可以在 O(d*log(d)) 的復雜度內轉化回系數形式。所以保持 d 數值較小還是很有好處的。

注-2.1:以太坊的狀態是一個從地址到賬戶狀態(addresses => (version,balance,nonce,codeHash,storageRoot))的映射。

動態 | 意大利企業家愿意在法庭為以太坊開發者Virgil Griffith作證:美國當局逮捕以太坊開發者Virgil Griffith,指控其協助朝鮮逃避制裁。意大利企業家Fabio Peitrosanti準備提供幫助澄清該案件。針對Virgil的案件似乎被誤導,Peitrosanti表示希望與Virgil的律師和家人取得聯系,參與其辯護準備工作。“我和Virgil一起去了朝鮮。我正在尋找與他的家人或律師取得聯系,因為我在宣誓書中讀到了很多我認為被逮捕令誤用和曲解的句子。我愿意提供我的證詞來證明他的真誠。”加密社區一些知名人士也譴責該案件是對無害事物的過度反應。如果Virgil在法庭上被判有罪,或面臨長達20年的監禁。據此前報道,美國當局已逮捕并指控Virgil Griffith違反美國制裁法,前往朝鮮提供一個使用加密貨幣和區塊鏈技術來逃避制裁的演示和建議。美國律師Geoffrey S. Berman在聲明中稱,Virgil Griffith被指控向朝鮮提供高度技術性的信息,他知道這些信息可能被用來幫助朝鮮洗錢和逃避制裁。危及國會和總統已頒布的制裁措施,以對朝鮮的危險政權施加最大壓力。(CoinGape)[2019/11/30]

以太坊當前使用默克爾樹(更具體一些是 “帕特里夏默克爾樹”)作為 EVM 數據(EVM 狀態、區塊事務及事務收據,也許還有最近的合約代碼)的承諾。此種承諾方式可以:

逐個區塊地 插入/更新 數據,以增量的方式產生新的根哈希(即承諾)

驗證者可以逐個區塊(甚至逐筆事務)地校驗和證明

前綴樹結構在這里提供了這種逐塊更新的特性。

兩家美國公司使用廢舊輪胎挖掘加密貨幣 為以太坊采礦業提供動力:標準美國礦業公司和PRTI公司,以不同的方式為以太坊挖礦業提供動力。他們不是使用電力或可再生能源,而是利用垃圾來挖掘加密貨幣。更具體地說,是大量收購廢舊輪胎,燃燒后用來驅動燃氣輪機進行發電。[2017/12/10]

給定一個 d 叉的、有 N 個葉子的前綴樹,任意更改一個葉子節點,都需要更新 O(log-d(N)) 個節點(也就是該葉子與根節點相連路徑上的節點數量)以計算反映新狀態的新根值;而這需要額外的 (d-1)*O(log-d(N)) 個 兄弟節點哈希值/承諾 來用作時間和空間(假設要服務于輕節點)的見證數據(witness)。一個區塊可視為一個需要更改 m 個隨機葉子的批量更新,且 m<<N。因為預計只有一小部分的節點可以共享 witness 和計算,所以,每次更新的 Order(復雜度)不會有太大改變。

在下列情況下,問題還會變得更加嚴重(因為見證數據的規模):

部分采用快速同步的協議,比如 beam sync(光子同步),會下載并快速驗證區塊頭來追上最新的主鏈頂端并參與網絡的共識,注意,它不會先行構建好完整的狀態再參與共識,而是(在共識中)通過獲取 錯過的/未加載的 狀態的見證數據,來逐步構建出完整的狀態

為 輕節點 服務的時候,他們只關心自己,只想獲得區塊鏈狀態的特定部分

網絡走向完全無狀態時,所有的事務和合約操作,都要附帶相關的見證數據,來證明數據輸入和輸出的正確性(譯者注:粗體為譯者所加)

在驗證者會被混洗到不同分片的區塊鏈分片模型中,要讓驗證者每到一個分片就構建完整狀態是不現實的

代碼默克爾化,訪問代碼時需要附帶這些代碼塊的見證數據

在狀態保質期協議中,訪問過期的賬戶需要重新附帶狀態見證數據,以便重建該賬戶的狀態

(譯者注:需要解釋的是,在當前的以太坊網絡中,事務和區塊不會附帶上文所述的見證數據。即,網絡所傳播的見證數據規模與 事務/區塊 的規模無恒定的關系。前兩種情形恰好是在當前以太坊協議下為數不多的、需要傳播見證數據的情形。我們關心狀態數據的規模,完全是出于一種協議改進方向 —— “無狀態性” 的需要。后面四種情形都跟無狀態性有關,當然都比理論上要傳播的數量更多。但是,以上述的理論計算來作為基準點去比較,本身是不合適的 —— 連代碼默克爾化這種在無狀態下節省狀態數據的方案,也會被歸為讓情況更嚴重的方案。)

在無狀態以太坊項目的一個實驗中,出現了 1 MB 的區塊證據(其中大部分都是默克爾證據),在發生攻擊的時候還會膨脹好幾倍。

其中一種解決辦法是轉為使用 “二進制默克爾樹”,也就是把 d 降下來,這樣雖然樹的深度(高度)會增加,但仍然是 O(log(N)) 的規模。

對于要放在區塊頭內承諾數據的承諾方案來說,以下特點是理想屬性:

證據的數據量較小,可以塞進區塊頭里,且仍具有很強的安全保證

易于證明某個承諾是使用分組化數據(chunkified data)的一個子集生成出來的

足夠小,最好證據的數據量是恒定的

為了跟蹤數據,承諾應當易于以增量的形式變更

基于KZG10 承諾的方案就是大家一番搜尋的結果。

譯者注:可以看到,作者有三個 

KZG10 承諾可以視為另一種哈希方案,只不過它哈希的不是 “字節”(數據),而是多項式。

實際上,它就是 計算(evaluation) 多項式 f(x) 在秘密的定點 s 上的值,只不過 它們都是表示在一條橢圓曲線上的,也即 [f(s)]=f([s])。這需要一個受信任的啟動設置(跟 zcash 區塊鏈的創世活動一樣),來生成[s]、[s^2]、… [s^d](以便在多項式需要 x^i 的地方插入),而 d 就是多項式的最大階數。

這里的 [t] 表示點 t 處的橢圓曲線值,也就是 t,是橢圓曲線加法群的生成點()相加 t 次(等同于對 Fp 求模,modulo Fp )。橢圓曲線上的所有計算都是對 Fp 求模,Fp 給曲線施加了一定的范圍(譯者注:Fp 是一個由 p 個元素組成的有限域,限制了該橢圓曲線值的范圍)。

注 3.0:在 indexes=>values 的映射中,所有的 值 都要表示為一條橢圓曲線上的元素,即 [value],以便計算承諾(后文有詳述)。這就使得 value 的大小有了限制(為了要成為 modulo Fp 的值)。在 BLS 曲線上,大概在 31~32 字節之間。為了簡便,value 的大小就限制在 31 字節,任意更大的 值 都要分塊化,并用其索引值來恰當地表示(或者截斷)。

注 3.1:[t] 可以被視為 t 的哈希值,因為從 [t] 找回 t 是個離散對數問題(discrete log problem),對于安全的曲線來說,是很難做到的。

注 3.2:s 是一個秘密的數值,永遠不應泄漏給 任何人/所有人,但橢圓曲線點 [s], [s^2]…[s^d] 及其在另一條橢圓曲線上的值 [s]' (其生成點為 ' 且只需知道 [s]' )則應生成并公開出來,讓所有人知道。這就是啟動設置要做的事。

這些 系統參數 定義了整個系統的安全性,因為 s 暴露會使得攻擊者可以構建任意內容的 證據。因此,一個有 N 個參與者共同參與的啟動設置儀式中,他們要通過協議把本地的 s 結合起來,這樣只要有 1 個參與者是誠實的、在參與之后就銷毀掉了自己提供的 s,這個系統就會是安全的。即,信任模型是 1/N 模型,N 越高,風險就越低。

注 3-3:[] 是一個線性的操作,即[x]+[y]=[x+y],而且 a[x]=[ax]。

如果上所述,我們將數據映射(索引值 => 數值)表示為 f(w^index)=value,即一個多項式的求值形式,也可說,我們用這些 (w^index,value) 點擬合出了一條曲線(多項式)。

所以,一個多項式 f(x) 的 KZG10 承諾c(f) 是一個橢圓曲線點 f([s]),這個點可以靠在 f(x) 的展開式中插入 [s],[s^2] … 計算得出。

注 3-4:f(s) 是無法計算的,因為 s 是個秘密值。但是 C(f)=[f(s)]=f([s]) 是可以計算的。

注 3-5:f(x)的承諾 C(f)=[f(s)] 也是一個線性的運算符,即,C(f+g)=C(f)+C(g)。

Rollup/聚合器 可以使用這一屬性來更新承諾。在求值形式下,更新一個求值點將導致 f(x) 完全改變,但因為有這個屬性,其承諾 c(f) 仍然是易于更新的。

(未完)

Tags:NBSBSP以太坊ALUNBS幣BSPAY價格以太坊價格今日行情ethicalvalues

Polygon
金色觀察 | 美聯儲暗示2023年底之前加息 如何影響加密市場?_OMC

美聯儲超重磅貨幣政策會議終于結束,關注度極高的FOMC決策也終于公布。6月15-16日,美聯儲公開市場委員會(FOMC)舉行貨幣政策會議.

1900/1/1 0:00:00
Yearn 面臨大敵?DeFi 新秀 Convex 成 Yearn 殺手?_CRV

DeFi 的競爭格局一直在不斷變化。「貨幣樂高」的無須許可和可組合的本質創造了永無止境的創新大爆發和令人興奮的事物,在讓人們幾乎無法緊跟其步伐的同時,這一領域正變得越來越復雜.

1900/1/1 0:00:00
晚間必讀5篇 | 比特幣經濟學_NFT

1.比特幣暴跌 但以太坊真能超越它嗎?今年五月,流入以太坊的機構資金首次超過了比特幣,這個重要的信號把大家的注意力一下子又吸引到這個極具潛力的數字資產上.

1900/1/1 0:00:00
公鏈競爭中的以太坊表現如何?_區塊鏈

生態系統資源 當我們對不同的 L1 公鏈在構建?Web3 應用的開發和工具方面進行比較時,需要注意的第一個主要方面是許多 L1 區塊鏈生態系統中可用資金量有多大.

1900/1/1 0:00:00
誰將接納比特幣的中國礦工?_COIN

一排排比特幣礦機釋放的熒光熄滅,6月19日晚,四川境內的比特幣礦工關機視頻在幣圈人的社交網絡中流傳,借著「Bye」的背景配樂訴說無奈.

1900/1/1 0:00:00
當NFT叩響了音樂的大門 新世界的樂章將開始譜寫_NFT

自2020 年底以來,NFT 在音樂行業掀起了一場大風暴。隨著疫情讓很多演出擱置,音樂人越發迫切地希望從流媒體服務中賺取更多版稅。隨著需求的增加和新項目的開發,NFT 音樂市場正在不斷擴大.

1900/1/1 0:00:00
ads