比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 波場 > Info

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

Author:

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

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

P.S.?:特別感謝EthereumR&Ddiscord頻道幫助我理解KZG10承諾的某些方面。此外,還要感謝?@vbuterin幫忙審校本文。

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

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

動機

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

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

基礎原理

注-1:哈希值就是一個對被哈希的原像的承諾,用于檢驗被哈希的數據的完整性。

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

Poly Network攻擊者已將約200萬枚DOWS交易為以太坊并轉移:7月5日消息,據PeckShield監測,Poly Network攻擊者已將約200萬枚DOWS交易為約5.3枚以太坊,并轉入0x4F2E開頭地址。此外,該地址還接收了攻擊者轉入的另外200萬枚DOWS。[2023/7/5 22:19:27]

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

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

可看看這里的介紹?:)。

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

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

數據:近30日穩定幣交易為以太坊網絡貢獻35%手續費:據TOKENVIEW數據,近30日以太坊上的穩定幣交易手續費可以占到全網手續費的35%左右,而在高位甚至可以接近以太坊全網交易費的50%。分別來看,USDT每日在以太坊上的USDT交易產生的手續費約在350-700 ETH區間內,占到以太坊每天全網手續費總和的25%左右。而USDC和PAX的手續費較USDT則略低,USDC近14日的手續費均值為164.32 ETH,PAX為102.93 ETH。

近一個月來,以太坊的鏈上交易筆數在穩步抬升,已經接近去年6月中旬的年內高位。而穩定幣交易筆數的占比同樣在上升,上升的主要來源依舊是ERC20的USDT交易活動正在不斷升溫。[2020/6/10]

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

動態 | Rivet將為以太坊錢包MyEtherWallet提供隱私優先的節點服務:以太坊錢包MyEtherWallet(MEW)宣布與Rivet建立新的合作伙伴關系,以滿足其區塊鏈基礎設施的需求。Rivet提供了一種隱私優先的節點服務,旨在快速、準確、可靠地連接以太坊區塊鏈。(CryptoNinjas)[2019/11/22]

注-2.1:以太坊的狀態是一個從地址到賬戶狀態的映射。

背景知識

以太坊當前使用默克爾樹作為EVM數據的承諾。此種承諾方式可以:

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

驗證者可以逐個區塊地校驗和證明

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

動態 | 成為以太坊信標鏈驗證者僅需經過25.6mins驗證:金色財經現場報道,6月29日在2019以太坊技術及應用大會上,以太坊核心研究員 Hsiao-Wei Wang詳細介紹了成為信標鏈驗證者的步驟。首先質押32ether(或大于),合約驗證余額,再經過4epochs(25.6mins)后即可激活驗證者身份。[2019/6/29]

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

在下列情況下,問題還會變得更加嚴重:

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

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

阿里參謀長:不認為以太坊已經成功:阿里巴巴集團參謀長曾鳴今日在“三點鐘無眠區塊鏈”群發表了自己對區塊鏈的看法。他表示,如果有一個新應用足夠大(比如達到千萬用戶),其不但會推出自己的交易所,而且會推自己的基礎設施平臺,甚至自己的幣,這是生態的標準打法;因此正是在這個意義上,判斷區塊鏈處于哪個發展階段是非常重要的。他認同比特幣是區塊鏈第一個成功應用,而且由于其貨幣屬性,可能會非常成功。然而他并不認為以太坊已經成功,因為其還不是真正的生態,只能算是一種平臺。如果一個大應用成功了,肯定會推出自己的智能合約平臺,如果這件事在未來三年左右發生,對以太坊的打擊可能是巨大的。基于這個判斷,他認為區塊鏈生態目前更類似上世紀的90年,而不是98年。[2018/2/25]

網絡走向完全無狀態時,所有的事務和合約操作,都要附帶相關的見證數據,來證明數據輸入和輸出的正確性

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

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

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

在無狀態以太坊項目的一個實驗中,出現了?1MB?的區塊證據,在發生攻擊的時候還會膨脹好幾倍。

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

為什么要使用KZG10承諾?

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

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

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

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

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

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

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

什么是KZG10承諾?

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

實際上,它就是?計算?多項式?f(x)?在秘密的定點?s?上的值,只不過它們都是表示在一條橢圓曲線上的,也即?=f()。這需要一個受信任的啟動設置,來生成、、…?,而?d?就是多項式的最大階數。

這里的??表示點t處的橢圓曲線值,也就是?t,是橢圓曲線加法群的生成點相加t次。橢圓曲線上的所有計算都是對Fp求模,Fp給曲線施加了一定的范圍。

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

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

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

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

注3-3:?是一個線性的操作,即+=,而且?a=。

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

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

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

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

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

Tags:以太坊VALALUVALUE以太坊幣今日價格行情走勢TravalaValuablesvaluetoken

波場
數字貨幣:金色觀察丨數字貨幣生態較量才剛剛開始嗎?

金色財經區塊鏈6月13日訊??自比特幣誕生以來,加密貨幣市場很容易看到價格突然暴漲、隨后又快速暴跌的情況.

1900/1/1 0:00:00
比特幣:比特幣礦業大變局:能源與算力格局的雙重更迭

在經歷持續數月的牛市狂歡后,比特幣礦業在近期突然陷入輿論漩渦與監管潮中,同時也給加密市場帶來更多的不確定性因素.

1900/1/1 0:00:00
聯盟鏈:通證離非法公開融資有多遠?

2017年9月4日,中國人民銀行等七部門聯合發布《關于防范代幣發行融資風險的公告》,明確禁止代幣發行融資行為,打擊虛擬貨幣炒作.

1900/1/1 0:00:00
比特幣:美聯儲釋放鷹派信號后,為何比特幣沒有劇烈波動?

本文來自decrypt 原文作者:JeffBensonOdaily星球日報譯者|Moni 6月17日凌晨,鮑威爾出現在為期兩天的聯邦公開市場委員會(FOMC)會議結束后的新聞發布會上.

1900/1/1 0:00:00
區塊鏈:智能合約:從自動售賣機到區塊鏈

"2021年,行情將DeFi推到了一個新的高度,而在DeFi當中,智能合約起著關鍵作用。" 什么是智能合約 "智能合約"這一術語是1994年由著名密碼學家尼克薩博首次提出的,它是通過編程來準確高.

1900/1/1 0:00:00
DYDX:融資新聞 | DeFi交易所dYdX宣布完成6500萬美元C輪融資,Paradigm領投

要點: 加密衍生品交易所dYdX獲得許多加密貨幣流動性提供商的投資,dYdX希望在未來三到五年內成為世界上最大的加密貨幣交易所之一。四個月前,dYdX剛剛完成1000萬美元B輪融資.

1900/1/1 0:00:00
ads