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

無狀態以太坊的根基:零門檻了解Witness規范_UFF

Author:

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

寫在前面:對于以太坊1.0,還是未來的以太坊2.0,無狀態以太坊的概念都具有著頗為重要的意義,而要理解它,我們就需要了解Witness,以及關于Witness的規范,那它們到底是什么呢?在這篇文章中,來自以太坊基金會的開發者GriffinIchibaHotchkiss將用生動的比喻來對這兩個復雜的概念進行解釋。

有些東西看似可能會顯得枯燥,但是它對于無狀態以太坊而言卻是非常基礎和重要的:理解正式的Witness規范。

就像星際爭霸中的戰艦船長一樣,我們會慢慢來講這個話題。Witness規范不是一個特別復雜的概念,但它是非常深的,以至于這種深度有點讓人望而生畏,但它是非常值得探索的,也許它會喚起書呆子的興趣,它遠遠超出了區塊鏈,甚至超出了軟件的世界!

在這篇入門文章的結尾,您至少應該對理解正式的無狀態以太坊Witness規范,有了最低程度的信心。我也會盡量讓這篇文章顯得更有趣一些。

概述:關于狀態你需要知道的知識點

實際上,無狀態以太坊這個詞有點用詞不當,因為狀態才是整個工作的真正目的。具體來說,我們要找到一種方法,使得保留整個以太坊狀態的副本,成為一種可選的事情。如果你沒有關注過無狀態以太坊的文章,那么你可能有必要看看我之前寫的一些關于無狀態以太坊狀態的入門文章。在這篇文章當中,我先簡單地總結一下,如果你已經很好地掌握了這個話題,那你就可以隨便掃上一眼。

美國立法者提出兩黨法案,提議禁止成員投資“金融工具”:金色財經報道,在 5 月 2 日的公告中,美國民主黨代表 Alexandria Ocasio-Cortez 和 Raja Krishnamoorthi 以及共和黨代表 Brian Fitzpatrick 和 Matt Gaetz?介紹了兩黨恢復政府信仰法案。根據該法案,投資此類資產的國會議員將在很大程度上被要求在通過后 90 天內出售這些資產或將其置于保密信托中。不遵守法律可能會導致美國司法部長提出民事指控,并可能導致最高 50,000 美元的罰款。盡管四名國會議員指出股票交易是該法案的原因之一,但該法案的文本表明,某些加密貨幣的所有權也可以包括在禁令中。美國證券交易委員會和商品期貨交易委員會的成員都表示比特幣有資格作為一種商品,而一些人仍然不清楚以太坊的資產狀況。[2023/5/4 14:41:10]

“以太坊的完整“狀態”描述了所有賬戶和余額的當前狀態,以及在EVM虛擬機中部署和運行的所有智能合約的集體記憶。鏈中每個最終確定的區塊,都有且只有一個狀態,這是由網絡中的所有參與者商定的。該狀態將隨添加到鏈中的每個新區塊而發生更改和更新。

以太坊狀態以一種稱為

Merkle-PatriciaTrie的哈希數據結構呈現的,它將每一條信息組織成一個龐大的連接單元,然后可以驗證其唯一性。

完整的狀態樹太大了,大到無法可視化,但是這里有一棵“玩具版”狀態樹,當我們接觸到Witness的概念時,這會很有幫助:

數據:Kraken、Binance和Coinbase爭奪Beacon Chain早期的存款分配:金色財經報道,據區塊鏈分析公司Glassnode數據顯示,隨著時間的推移,Kraken、Binance 和 Coinbase 爭奪 Beacon Chain 早期的存款分配,質押提供商的存款趨勢呈現出明顯的轉變。隨著三巨頭之間的塵埃落定,Lido勝出,繼續主導目前的存款流入。[2023/4/10 13:53:43]

就像神奇的密碼學毛蟲一樣,智能合約的賬戶和代碼也存在于這棵樹的葉子和樹枝上,通過連續的哈希運算,最終得到一個根哈希。如果你想知道一棵狀態trie樹的兩個副本是相同的,你可以簡單地比較根哈希。在一個“規范”狀態上保持相對安全,且無可爭議的共識,是區塊鏈設計的本質。

為了提交要包含在下一個區塊中的交易,或驗證特定更改是否與上一個包含的區塊一致,以太坊節點必須保留狀態的完整副本,并重新計算根哈希。而無狀態以太坊是一組通過添加所謂的“witness”來消除此需求的更改。

witness究竟是什么?

在我們深入討論witness規范之前,直觀地認識下witness是什么是有幫助的。同樣,上面鏈接的以太坊狀態文章當中有一個更徹底的解釋。

witness有點像一個健忘型學生的小抄,而這個小抄是通過其考試所需的最少信息量。這類學生并沒有閱讀整本教科書,而是要求朋友提供一張小抄來提交他們的答案。

在非常抽象的術語中,witness提供了一棵狀態trie樹中所有需要的哈希,并結合了一些關于這些哈希在trie樹中屬于何處的“結構”信息。這允許這類節點在其狀態中包含新交易,并在本地計算新的根哈希,而不需要它們下載狀態trie樹的整個副本。

Ooki DAO錯過訴訟回應截止日期,CFTC要求法院對該案作出缺席判決:1月12日消息,法庭文件顯示,美國商品期貨交易委員會 (CFTC)在Ooki DAO錯過了對訴訟作出回應的最后期限后,已開始向法院申請就其針對Ooki DAO的案件作出缺席判決。

CFTC已要求法院對Ooki DAO進行“違約記錄”,稱其錯過了傳票所指示的“回答或以其他方式辯護”的最后期限。如果被批準,違約記錄將表明Ooki DAO未能在法庭上為自己辯護,將不再能夠回答或回應訴訟。“違約記錄”是獲得缺席判決的第一步,缺席判決是法院在被告未能為訴訟辯護時作出的裁決。

金色財經此前報道,美國CFTC對Ooki DAO提起訴訟,指控其利用DAO結構逃避監管。隨后CFTC向法院申請一項替代服務動議,要求法院批準使用聊天機器人和論壇帖子作為對被告(包括Ooki DAO成員)的送達告知和傳票的方式。去年12月消息,美國法官命令CFTC對Ooki DAO的兩位原創始人提起訴訟。(Cointelegraph)[2023/1/12 11:07:36]

讓我們脫離這種比喻式的想法,然后轉向更具體的實現方式。以下是witness的“真實”形象:

我建議您在新的標簽頁中打開此圖像,這樣就可以放大它并真正欣賞它。之所以選擇此witness,是因為它相對較小,且易于識別特征。這張圖片中的每個小正方形,代表了一個"nibble",即半字節,你可以通過計數你必須“通過”的正方形數量來驗證你自己,從根開始到一個以太幣余額。當我們在看這張圖片時,請注意其中一筆交易中必須包含的大量代碼來進行減少。

Justin Sun:已于15時42分向Binance轉入1億枚USDC:12月13日消息,Justin Sun 在其社交平臺表示,已于 15:42 分向 Binance 轉入一億枚 USDC。[2022/12/13 21:41:48]

一些繁瑣的事

以太坊作為協議的一個基本特征,是它獨立于特定的實現。這就是為什么以太坊不像比特幣那樣只有一個官方客戶端,而是有幾個完全不同的客戶端版本。而這些用各種編程語言編寫的客戶端,必須遵守《以太坊黃皮書》,該《黃皮書》用更正式的術語解釋了加入以太坊協議的任何客戶端該如何運行。這樣,為以太坊編寫客戶端的開發人員,就不必處理系統中的任何模糊問題。

而witness規范有一個確切的目標:為所有客戶端提供“witness是什么”的明確描述,這將使它在任何語言中的實現變得簡單。而當無狀態以太坊成“型”時,可以將witness規范作為附錄插入到《黃皮書》中。

這里我們所說的“明確”,它的意思是要比你在談話中所說的要強烈。這并不是說正式規范只是對“witness是什么”,以及“它的行為是什么”的真正詳細的描述。這是意味著,理想情況下,描述一個特定witness的方式只有一種。也就是說,如果你遵循了正式的規范,那么你為無狀態以太坊編寫的實現,它所生成的witness就不可能和遵循規則的任何其他實現不同。這是關鍵,因為witness將成為以太坊協議的新基石,它需要通過構造來糾正。

語義和語法問題

盡管“區塊鏈開發”通常意味著一些新的、令人興奮的東西,但必須要說的是,其中很多都是基于一些舊的、明智的計算機編程、密碼學和形式邏輯。為了理解Witness的規范是如何工作的,我們需要了解一些技術術語,而為了做到這一點,我們將不得不跨界進入語言學和形式語言理論。

湖北省區域股權市場被納入中國證監會區塊鏈建設試點:8月28日消息,日前從湖北省地方金融監督管理局獲悉,湖北省區域股權市場被納入中國證監會區塊鏈建設試點。湖北區域性股權市場在托管和掛牌企業數量、融資總額等指標上,排名全國前列。截至7月末,累計托管登記企業6912家,掛牌企業總數6142家,已為519家托管掛牌企業完成股權融資3214筆,實現融資總額1676.05億元。[2022/8/28 12:53:47]

大聲朗讀下列兩個句子,并特別注意你的語調和節奏:

furiouslysleepideasgreencolorless

colorlessgreenideassleepfuriously

我敢打賭,第一句有點機械化,每個單詞后面都有扁平的強調和停頓。相比之下,第二句可能感覺上自然一些,盡管它有點愚蠢。盡管這句話實際上沒有任何意義,但它是說的通的,但第一句話卻不行。這有點吸引人們注意語法和語義之間的區別。如果你是說英語的人,就可以理解這些單詞所代表的含義,但這與此處基本上無關。你注意到的是有效語法和無效語法之間的區別。

這個例句來自諾姆·喬姆斯基在1956年撰寫的論文,你可能會認出這個名字。盡管喬姆斯基現在被認為是一位有影響力的和社會思想家,但他作為一名學者的最初貢獻,是在邏輯學和語言學領域,在他的這篇論文中,他創造了一個最有用的正式語言分類系統。

喬姆斯基關注的是語法的數學描述,如何根據語法規則對語言進行分類,以及這些類別具有哪些屬性。與我們相關的一個性質是句法歧義。

模棱兩可的Buffalo

考慮語法正確的句子“BuffalobuffaloBuffalobuffalobuffalobuffaloBuffalobuffalo。”——這是一個典型的例子,說明了英語語法規則是多么的模糊。如果你知道的話,根據上下文,“buffalo”這個詞可以用作動詞、形容詞或名詞,你可以根據每個詞所屬的位置來分析句子。

我們也可以使用完全不同的詞和多個句子:

“YouknowthoseNYbisonthatotherNYbisonintimidate?Well,theyintimidate,too.TheyintimidateNYbison,tobeexact.”

“你知道被其他紐約野牛威嚇的那些紐約野牛嗎?好吧,它們也很嚇人。確切地說,它們會威脅紐約野牛。”

但是,如果我們想消除歧義,但仍然限制我們的詞只使用“buffalo”,并將其全部保留為一個句子,該怎么辦?是有可能的,但我們需要修改一下英語規則。我們的新“語言”會更精確一點。一種方法是標記每個單詞以表示其詞性,如下所示:

Buffalo{pn}buffalo{n}Buffalo{pn}buffalo{n}buffalo{v}buffalo{v}Buffalo{pn}buffalo{n}

也許這對讀者來說還不是很清楚。為了使它更精確,讓我們試著用一些替代品來幫助我們把這些“buffalo”分成組。紐約州布法羅市的任何野牛實際上只是我們稱之為“名詞短語”<NP>的一個特殊版本。當我們遇到字符串Buffalo{pn}buffalo{n}時,可以用<NP>代替句子。由于我們的格式越來越正式了,因此我們可決定通過以下方式為該規則和其他將來的替換規則使用簡寫形式:<NP>::=Buffalo{pn}buffalo{n}

其中::=表示“左側的內容可以替換為右側的內容”。重要的是,我們不希望這種關系發生變化。想象一下一頭博爾德的buffalo會變得多么瘋狂!

將我們的替代規則應用于整句話,它將改為:<NP><NP>buffalo{v}buffalo{v}<NP>

現在,這仍然有點令人困惑,因為在這個句子中有一個偷偷摸摸的關系從句,通過在我們的句子的第一部分插入單詞that,可以更清楚地看到它,即?<NP>*that*<NP>buffalo{v}...

因此,讓我們制定一個替換規則,將關系從句分組為<RC>,并說:<RC>::=<NP>buffalo{v}

另外,由于關系從句實際上只是對一個名詞短語作出澄清,所以這兩個從句合在一起就相當于另一個名詞短語:<NP>::=<NP><RC>

定義并應用這些規則,我們可以將句子寫成:<NP>buffalo{v}<NP>

這似乎很好,而且真的得到了這個愚蠢的句子表達的核心關系:一組特定的野牛在恐嚇另一組野牛。

我們已經走了這么遠,為什么不一直走下去呢?每當“buffalo”作為動詞出現在名詞之前時,我們都可以稱其為動詞短語或<VP&gt;并定義一個規則:<VP>::=buffalo{v}<NP>

這樣,我們就有了一個完整的有效句子,我們可以稱之為S:S::=<NP><VP>

我們在此處所做的操作,通過視覺方式呈現便是:

這種結構看起來很熟悉,不是嗎?

buffalo的例子有點傻,也不夠嚴謹,但它足以證明“Witness規范”中的怪異數學語言是怎么回事,我在關于buffalo的咆哮中偷偷地介紹了這種語言。它被稱為巴科斯范式,在各種實際場景中,它經常用于類似這樣的形式化規范中。

我們為受限制的英語所定義的“替換規則”,有助于確保,給定一堆“buffalo”,我們可以構造出一個“有效”的句子,而無需知道“buffalo”這個詞在現實世界中的含義。在喬姆斯基首先闡明的分類中,一種有足夠精確的語法規則允許你這樣做的語言,被稱為上下文無關語言。

更重要的是,規則確保對于由單詞buffalo{np|n|v}組成的每一個可能的句子,都有一種且只有一種方法來構造上面樹圖中所示的數據結構。一點都不含糊不清!

繼續閱讀Witness規范

Witness的核心只是一個大對象,其被編碼為一個字節數組。從無狀態客戶端的角度來看,該字節數組可能看起來有點像長句子,它由看起來很相似的單詞組成。只要所有客戶端都遵循相同的規則集,則字節數組應該轉換為一個哈希數據結構,無論實現如何選擇在內存或磁盤中表示它。

與我們在玩具示例中使用的規則相比,規范第3.2節中寫出的實際規則要復雜一些,并且直觀性要差得多,但是其實質是相同的:為無狀態客戶端提供明確的指導,并確保他們正確執行。

我在這篇論述文章中已略過了很多細節,可以肯定的是,正式語言的兔子洞要深得多。我的目的是提供足夠的介紹和基礎來克服理解的第一道障礙。既然你已經跨過了這個障礙,現在是時候打開維基百科,自己解決剩下的問題了!

與往常一樣,如果你有反饋、問題或對主題的要求,請在twitter上@gichiba或@JHancock。

Tags:FALBUFFUFFFFAFAL價格Buffed Kishuruff幣創始人FFA幣

幣贏
比特幣平均交易費用飆升,創11個月新高_比特幣

摘要: 比特幣的平均費用在減半后繼續飆升。5月14日,平均費用達到$5.16的11個月高點。比特幣的區塊鏈內存池存在56MB大小的未確認交易。比特幣網絡上的平均交易費用創下了11個月新高.

1900/1/1 0:00:00
比特幣周報:幣價大幅拉升,鏈上表現平平,唯有一項數據隨之向上_ETH

從過去一周數據來看,鏈上各項數據與前一周相比,變化不大。 交易額: 04.27-05.03:8077505.21BTC05.04-05.10:7882886.65BTC較之前一周下降:2.41%.

1900/1/1 0:00:00
以太坊又一里程碑達成!礦工成功挖出以太坊網絡的第1000萬個區塊_DEX

編者注:原標題為《以太坊又一里程碑,五年1000萬區塊被挖出》據Decrypt5月4日報道,以太坊的礦工們在短短5年時間里總共挖出了1000萬個區塊,比比特幣多了27萬個區塊.

1900/1/1 0:00:00
福布斯:21世紀的比特幣就像20世紀的黃金_LEG

上周市值最高的加密貨幣比特幣完成了誕生以來第三次區塊獎勵減半,周一商業媒體福布斯刊文稱,21世紀的比特幣就像是20世紀的黃金.

1900/1/1 0:00:00
巴比特專欄 | 如何利用比特幣減半思維武裝你的工作和生活_DIC

比特幣在今天完成了第三次挖礦產量減半,每個區塊的挖礦產出從最初的50BTC減到了6.25BTC。比特幣的挖礦平均10分鐘產生一個區塊,最初一個區塊可以挖到50BTC.

1900/1/1 0:00:00
Chromia CEO Henrik:去中心化和上鏈絕非DApp的偽需求丨鏈節點AMA_CHR

有觀點指出,我們正在經歷的新冠疫情,持續時間足夠長,長到足以產生一場社會革命。人類史上能在短時間內重構社會的只有四件事,一饑荒、二瘟疫、三戰爭、四技術革命。目前我們正在經歷二跟四.

1900/1/1 0:00:00
ads