天天看點

從節點到網絡:Web3 實戰基礎

作者:MarsBit
從節點到網絡:Web3 實戰基礎
免責聲明:本文旨在傳遞更多市場資訊,不構成任何投資建議。文章僅代表作者觀點,不代表MarsBit官方立場。

小編:記得關注哦

來源:MarsBit

Web3龐大而又複雜,結合了各種元件、技術和概念。無論你是 Web3、區塊鍊和加密貨币的新手還是老手,通過這篇稿子,你都将獲得一個關于支援 Web3 的各種元件的高層次概述,使你能夠了解每個元件的目的和好處。具體來說,這個系列的目的是:

1. 提供 Web3 基本元件的概述

2. 評估各種元件的目的

我們将 Web3 定義為網際網路的次疊代,将如今的網際網路中我們所喜愛的東西與可驗證的數字所有權、開放系統、透明度和不可更改性相結合。Web3、區塊鍊和加密是三個密切相關的主題,但在本篇中會被視為三個獨立的術語。

· 區塊鍊:一種技術創新,能夠實作可驗證的數字所有權、透明度和不可更改性

· Crypto:加密貨币的簡稱,描述了區塊鍊網絡上加密安全的代币

· Web3:包括區塊鍊、加密貨币,以及建立在它們之上的所有生态系統和創新

要了解 Web3,我們必須首先了解基礎的區塊鍊和加密技術。雖然 Web3 仍然是一個相對年輕的概念,比特币在 2009 年才推出,但随着新的技術創新以瘋狂的速度進入市場,這個行業正在迅速發展。

我希望這個系列能幫助你深入鑽研 Web3,并能幫助你找到可以在這個系列之外自己研究的感興趣的領域。在每一個主題中,都可以找到幾十個更深入的補充材料的連結,以幫助引導你找到有用的内容。

這個系列分為三個部分,你所在的第一個部分涵蓋了從 Web3 節點基礎設施到 layer 1 區塊鍊網絡如何工作的所有内容。下一篇文章将介紹 layer 2、互操作性和建立在本篇文章所概述的基元上的龐大的 dApp 生态系統。最後,最後一塊将涵蓋鍊外環境和鍊上/鍊下通信。

Web3 基礎設施概述

我們将 Web3 基礎設施分為多個部分,反映了鍊上生态系統、支援鍊上生态系統的鍊下環境以及将去中心化的網絡互相連接配接并允許這些網絡與鍊下環境連接配接的中間件。

· 鍊上生态系統

o 節點層:挖礦/驗證節點、節點用戶端軟體、挖礦/盯盤池

o 網絡層:

§ 第一層網絡:單體網絡、子產品化網絡、共識(PoW、PoS)、共享賬本技術、虛拟機與 EVM 相容、智能合約和 ERC 代币标準

§ 第二層網絡:閃電網絡、optimistic rollup、零知識 rollup

o 去中心化的應用程式(dApp)層

· 鍊外環境:分析、審計與安全、錢包、中心化交易所(CEX)、開發者工具(架構、IDE)、去中心化雲(存儲、計算、索引)。

· 互操作性層(“中間件”):

o 網絡互操作性:鍊橋、原子 swap

o 鍊上/鍊下通信工具。區塊鍊 API、Oracle

從節點到網絡:Web3 實戰基礎

Web3 生态系統圖譜

鍊上生态系統

從節點到網絡:Web3 實戰基礎

将節點層高亮的 Web3 生态系統圖譜

鍊上生态系統分為三個主要層:

· 去中心化的應用程式(dApp)層

· 網絡層

· 節點層

這三層結合在一起,實作了 Web3 最著名的由智能合約驅動的生态系統和應用。我們從節點層開始看鍊上的生态系統,然後一直到 dApp 層。

節點層

這一層也經常被稱為硬體層,因為在這一層,硬體以及與操作硬體參與特定區塊鍊網絡有關的一切都被設定好了。

節點用戶端

節點是一個伺服器,它運作一個被稱為用戶端的網絡專用軟體,它允許節點參與網絡的區塊建立過程,允許通路整個區塊鍊的曆史資料,并允許執行 RPC 指令(在 Layer1部分有更多介紹)。RPC 是指遠端程式調用,它允許節點調用和執行某些指令。

在撰寫這篇文章時,按市值計算,最大的兩個區塊鍊網絡是和。雖然參與每個網絡有不同的要求,但它們都需要一個符合客戶硬體規格的伺服器(任何計算機),一個網際網路連接配接,以及用戶端軟體。對于比特币,最流行的用戶端軟體是,而對于以太坊,最流行的用戶端是.

從節點到網絡:Web3 實戰基礎

Bitcoin Core 用戶端和 GETH 用戶端的系統要求

用戶端還編纂了區塊鍊的規則,并確定任何被驗證的新區塊也遵守同樣的規則。這很重要,因為如果一個節點驗證了一個其他節點不接受的區塊,網絡就會:一組節點遵循一套規則,而其餘節點遵循另一套規則。雖然他們可能共享相同的曆史,但在不同的驗證規則被引入的那一刻,一個新的鍊被建立并隻被接受新規則的節點所接受。

從節點到網絡:Web3 實戰基礎

一個區塊鍊和一個分叉鍊共享同一個區塊曆史

雖然以上是最流行的用戶端,但它們并不是可以用來參與區塊鍊網絡的唯一用戶端。隻要其他用戶端使用相同的驗證規則,他們就可以驗證區塊并為區塊鍊作出貢獻。

·

·

要閱讀更多關于區塊鍊如何工作的資訊,請跳到 Layer 1 網絡部分。

節點基礎設施供應商

通常鼓勵普通使用者運作自己的節點,以支援公共網絡的去中心化。當更多的使用者運作他們自己的節點時,單個行為者積累大多數運作節點并攻擊網絡的機會就會減少。使用者被鼓勵通過區塊獎勵和交易費用來運作他們自己的節點,網絡将這些費用配置設定給節點營運商。

盡管有這些激勵措施,使用者不願意自己建立節點的原因有很多:複雜的技術設定,購買必要硬體的前期資金有限,或者隻是暫時需要節點。這就是節點基礎設施供應商的作用。這些供應商負責節點的設定和操作,為客戶提供端到端的服務。一些專門從事節點基礎設施的大型供應商包括 和.

這些節點基礎設施供應商的一個經常被忽視的目的是為那些尚未建立強大的、去中心化的節點網絡的新區塊鍊項目建立節點。這些較新的網絡可以利用節點基礎設施供應商來啟動一個全球分布式網絡,而不需要在每個國家建立自己的基礎設施。

礦池和質押提供商

節點基礎設施提供商為客戶建立節點,而挖礦池和質押提供商則營運自己的節點,但允許使用者在其節點下彙集資源。這增加了節點從網絡中獲得區塊獎勵和交易費收入的可能性。對于想把自己的閑置硬體投入使用的使用者來說,這意味着他們可以加入一個礦池,而不需要任何複雜的技術設定,并開始用他們現有的資源賺取收入。

不同共識機制的網絡節點操作有一些細微差别。基本上,使用工作證明的網絡彙集了計算資源,而權益證明的網絡彙集了網絡代币。對于工作證明網絡來說,礦池大大降低了進入的技術門檻,而對于權益證明網絡來說,質押提供者則大大降低了進入的财務門檻(所需的最低質押)。更多細節将在共識部分介紹。

一些最大的礦池包括 和,而一些最大的質押提供商包括和.

節點層總結

Web3 的節點層由數千個全球分布的節點組成,每個屬于特定網絡的節點都運作該網絡所需的用戶端軟體。隻要用戶端軟體的驗證規則與網絡上的其他節點相同,該節點就可以正常運作,而不會造成區塊鍊的分叉。

雖然任何人都可以在去中心化公鍊網絡上運作自己的節點,但節點基礎設施供應商專門負責設定和營運運作節點和啟動網絡所需的硬體。

最後,礦池和質押供應商的行為降低了采礦和質押業務的進入門檻。這使得使用者可以參與挖礦和質押活動,賺取網絡獎勵,而不必滿足全部網絡要求。

網絡層

區塊鍊網絡建立在上述的節點基礎設施之上。網絡層由各部分組成,包括各種技術,基本層是 layer 1 網絡、layer 2 網絡和在這些網絡之間進行通信的互操作層。

Layer 1 網絡

從節點到網絡:Web3 實戰基礎

将網絡層高亮的 Web3 生态系統圖譜

比特币、以太坊和 可能是在撰寫本文時最知名的 Layer 1 網絡。Layer 1 網絡是指 Web3 生态系統中結算交易的主要網絡。Layer 2 網絡是作為 Layer 1 網絡的更深層存在的,交易可以被降級到 Layer 2 網絡上(在我的下一篇文章中會有更多介紹)。雖然在架構上有很大的不同,但它們都依賴于一組類似的架構基元。

· 它們都有一個共享賬本,跟蹤網絡上的交易

· 它們都采用機制來實作與哪些交易和區塊被認為是有效的共識

· 它們都有一種方法來計算發送到網絡的指令(以太坊、 Solana 和其他 EVM 相容鍊的虛拟機,以及比特币網絡的 Bitcoin Script)

· 在下面的章節中,我們将分别研究這三個要素,并剖析我們如何從交易到區塊鍊。

共享賬本

所有去中心化的區塊鍊網絡都有一個共享賬本。事實上,區塊鍊就是共享賬本。讓我們退一步來說:賬本是一個企業經濟活動的記錄,用來追蹤金錢的轉移或資産所有權的轉移。術語共享賬本意味着賬本不是由一個單一實體持有和管理,而是由許多實體持有和管理。

在去中心化的區塊鍊網絡中,區塊鍊(網絡上所有活動的分類賬)被儲存在網絡上的所有節點上。如果活動的賬本隻由一個中心化的機構管理和存儲,我們會遇到以下挑戰。

· 審查和排斥(見)

· 記錄管理人的渎職行為(見 )

· 記錄的丢失(見)

如果賬本存儲在全球數百甚至數千個節點上,我們就會得到一個很難被故意和無意篡改或破壞的系統。如果一個節點倒下了,還有許多其他節點,使用者可以與之連接配接,繼續與賬本進行互動。

從節點到網絡:Web3 實戰基礎

中心化和非中心化系統中節點故障的影響

然而,這個系統确實帶來了其他挑戰:網絡上的節點如何就什麼是正确或有效的賬目條目達成一緻?這就是共識算法的作用。

共識

在區塊鍊網絡中,共識一詞指的是網絡上的節點之間就哪些賬本條目(交易和區塊)是有效的并被節點接受的一般協定。

在學術界,這個問題被稱為。這個問題描述了這樣一種情況:一個系統的行動者必須在戰略上達成一緻,以避免災難性的失敗,但系統中的一些行動者是不可靠的。

從節點到網絡:Web3 實戰基礎

拜占庭将軍問題

在這個假想的場景中,有三個行為者,他們必須協調他們在拜占庭戰争中的下一步行動,以避免被敵人攻破。三個行為體中的一個是惡意的,向其餘各方轉發不一緻的資訊。系統中的誠實(非惡意)行為者如何知道該相信誰?或者換個說法:系統中的所有行為者如何能就接受哪條消息達成共識?

這個問題具有重要意義,因為随着更多的行動者進入系統,(錯誤)交流的複雜性會成倍增長。

從節點到網絡:Web3 實戰基礎

随着參與者的增多,拜占庭将軍問題的複雜程度指數級上升

第一個在全球範圍内成功解決這一挑戰的系統是比特币網絡及其工作證明算法。

工作證明(PoW)

比特币網絡的工作證明算法(也被稱為 PoW)解決了拜占庭将軍的問題,要求任何資訊必須經過某種驗證才能被節點接受。任何沒有經過驗證的資訊都不被接受為有效資訊,并被節點拒絕。

從節點到網絡:Web3 實戰基礎

說明比特币網絡工作證明共識算法的流程圖

驗證過程也需要計算資源,這使得僞造驗證變得異常困難。這也是“工作證明”一詞的由來:“向我證明你已經做了必要的工作,讓我接受你的資訊”。

讓我們從理論到實踐,更深入地挖掘交易、區塊和 PoW 過程的機制。别擔心——我們會保證深入淺出的!

區塊結構

比特币區塊是儲存交易的地方,是精心控制的資訊機關,一旦完成加密拼圖,就會在整個網絡中廣播。

比特币網絡的一個區塊由兩個主要部分組成。

· 區塊頭

· 交易清單

交易清單就像它聽起來一樣:它是一個節點收到并包含在一個區塊中的交易清單。在比特币網絡中,交易是比特币網絡上的比特币轉移(注意:英文中小寫 b 開頭的比特币是指比特币資産,而大寫 B 開頭的比特币是指比特币網絡)。比特币網絡是一個共享的公共賬本,追蹤比特币資産的流動;是以,比特币網絡上的交易是比特币在位址之間的轉移。

比特币使用未花費交易産出,也被稱為 進行交易。交易和 UTXO 将在UTXO 模型與賬戶模型部分進一步介紹。

區塊頭是事情開始變得有趣的地方。雖然交易的數量和每筆交易的轉賬金額因區塊而異,但區塊頭的元素對每筆交易都是一樣的。

從節點到網絡:Web3 實戰基礎

比特币區塊的剖析

雖然區塊頭包括許多元素,但每個元素都對系統至關重要,為了介紹的目的,我們将進一步詳細介紹以下内容。

· 前一個區塊頭的哈希值:前一個區塊的所有元素都被哈希化

· 難度目标:确定“前導零”的數量,進而确定挖礦的難度

· Nonce:一個任意的數字【nonce 是“nonsense”的縮寫】

· Merkle root:該區塊内所有交易的哈希輸出

從區塊到區塊鍊

在我們繼續之前,我們需要簡單介紹一下。哈希化是将一串字元轉化為另一個通常為固定長度的值的過程。當一個雜湊演算法是确定的,就意味着在相同的輸入下,每次的輸出都是一樣的。然而,如果原始字元串的一個字元發生變化,哈希的輸出就會完全改變,以至于無法推斷出與原始字元串的關系。請看下面的Bitcoin 與bitcoin SHA256 雜湊演算法輸出的比較。

從節點到網絡:Web3 實戰基礎

SHA256 雜湊演算法的輸出和位元組長度

在比特币網絡中,一旦一個區塊被開采出來,該區塊的頭就會被哈希化,并作為一個輸入包括在下一個區塊中。因為每個區塊的前一個标題的哈希值被包含在下一個區塊中,是以就形成了一個由區塊構成的鍊:這就是區塊鍊。

從節點到網絡:Web3 實戰基礎

使用前一個區塊頭的哈希值連鎖的區塊

在任何區塊中的任何變化都會破壞這條鍊,因為已經包含在下一個區塊中的哈希輸出将與新的哈希輸出不同。是以,這樣的變化會被網絡上的節點所拒絕。

從節點到網絡:Web3 實戰基礎

由于調整交易而導緻的斷鍊

Merkle Root

是一種資料結構,其中資料結構中的元素被哈希和重哈希遞歸,直到隻剩下一個元素。這個最後剩下的元素就是 Merkle Root.

從節點到網絡:Web3 實戰基礎

Merkle Tree 和 Merkle Root

Merkle tree 有一個有趣的數學特性,即在數學上,在隻提供 Merkle root 和一個元素的情況下,可以證明這個元素是 Merkle tree 的一部分。

在比特币網絡中,存儲在區塊頭中的 Merkle root 是該區塊中包含的所有交易的遞歸哈希輸出。這意味着,如果任何交易被調整,Merkle root 也将改變,這也将改變整個區塊頭的哈希輸出。這将再次導緻區塊的無效化。

工作證明中的“工作”

我們知道了什麼是雜湊演算法、區塊是如何結構化的和區塊是如何被鍊起來并形成區塊鍊的,現在我們終于可以更深入地了解工作證明實際是如何工作的。回到拜占庭将軍的問題,上面提到的驗證資訊實際上是區塊鍊中的一個區塊。

為了使一個區塊得到驗證,需要找到一個符合特定标準的哈希值。還記得僅僅一個位元(bit)的變化就會極大地改變哈希值的輸出嗎?這正是比特币網絡的 PoW 算法尋找目标哈希值的方法:Nonce 是一個任意的數字,它被調整以改變區塊頭的哈希值輸出。如果哈希值輸出不符合目标哈希值,nonce 會再次被調整。這個過程不斷重複,直到區塊頭的哈希值滿足目标條件。一旦目标條件得到滿足,區塊頭就算是得到了驗證,區塊會被廣播給網絡上的其他節點,讓它們把新的區塊附加到它們的區塊鍊副本中。

從節點到網絡:Web3 實戰基礎

工作證明區塊尋找算法的說明

目标條件,或預期的哈希值,是由它有多少個前導零定義的。如果生成的哈希值有足夠的前導零,也就是說,已經完成了尋找符合目标條件的哈希值的工作,那麼網絡上的節點就接受該區塊為有效:該區塊被認為是“已挖礦”。

為了更好地了解這個過程,請浏覽 Github 上的這個。輸入字元“bitcoin”,并在末尾添加數字,從 0 開始,以 1 的增量不斷增加,直到達到一個前導零(例如,bitcoin0,bitcoin1,等等)。你會注意到,為了找到一個前導零,即哈希值的第一個字元是零,你隻需要将數字增加到 3(“bitcoin3”)。現在試着找到兩個前導零。劇透:第一個有兩個前導零的哈希結果是 “bitcoin230”.

從節點到網絡:Web3 實戰基礎

工作證明算法:搜尋前導零

還有更多的規則需要節點遵守,比如最長的鍊總是有效的鍊(防止整個區塊鍊被覆寫),已經開采的區塊必須有一個在網絡時間一定門檻值内的時間戳(這樣最新的區塊就不會被覆寫),還有圍繞如何确定網絡難度(目标哈希的前導零數量)的複雜機制。有興趣的讀者可以浏覽 或了解更多細節。

範式轉變

上述機制,在曆史上第一次允許交易被獨立确認和驗證,而不需要第三方見證和準許交易。與其将交易送出給遭受中心化挑戰的銀行,不如将其發送到一個獨立的節點網絡,這些節點可以在沒有幹預的情況下自主地處理交易。這種技術範式的轉變和對賬本的重新認識是今天 Web3 生态系統賴以建立的基本要素。

此外,由于加入這些網絡的唯一要求是可以運作節點軟體的計算裝置和網際網路連接配接,任何人都可以作為獨立的節點加入網絡,增強網絡的分散性。

批評意見

雖然像比特币網絡這樣的 PoW 網絡有很多節點(根據 ,截至 2022 年 9 月 15 日,有近 15000 個節點),但有人批評說,由于網絡上的高度競争,單個節點的準入門檻太高。一個節點擁有的哈希能力(即計算資源)越多,該節點就越有可能首先解決哈希難題,因為它能以比網絡上其他節點更快的速度進行更多的計算。作為一個哈希值較低的單一節點進入比特币網絡,将導緻能源成本,而成為第一個成功開采新區塊的機會幾乎不存在。

能源消耗也是一個備受争議的話題:網絡需要,一些估計指出,比特币網絡的年能源消耗。

從節點到網絡:Web3 實戰基礎

比特币估計年能源消耗。來源:劍橋 BECI

這些能量被浪費在節點每秒進行數百萬次的哈希計算,尋找哈希。雖然這增加了比特币網絡的安全性,但它确實引出了一個問題,即是否有任何不那麼浪費的方法來驗證區塊。這就是權益證明的由來。

權益證明(PoS)

在權益證明中,節點被賦予了根據其在網絡中的質押來驗證一個區塊的權限。這是一種與 PoW 根本不同的方法,大大降低了驗證所需的計算能力。節點不提供計算能力,而是将他們的本地網絡代币作為抵押品,以換取驗證區塊的機會。這從本質上消除了基于競争的計算,增加了能夠成功驗證區塊的節點的分布。

是一個權益證明網絡。它需要用 32 個 ETH 做質押才能成為一個驗證者,之後節點可以參與區塊驗證,進而為網絡增加新的區塊作出貢獻。指的是鎖住代币,是 PoS 網絡的基礎。

除了成為驗證者的高額前期費用外,PoS 網絡還采用其他方法來防止惡意行為者擾亂網絡。一般來說,PoS 網絡還要求多個節點同時驗證同一個區塊,這就減少了一個節點驗證錯誤或惡意區塊的可能性。此外,如果發現一個節點有惡意行為,他們的權益可以。這意味着他們在協定中鎖定的網絡代币的數量被從節點中移除,并被轉移到一個臨時位址或燒毀。 代币的是指通過将代币發送到網絡上沒有人可以通路的位址,将其永久地從流通中移除。在以太坊網絡中,這就是。

其他共識機制

除了工作證明(PoW)和權益證明(PoS)之外,還有許多為特定網絡設計的具有特定目的的共識機制。下面是一份不完全的流行共識機制的清單。

·

·

·

·

·

·

·

共享賬本——會計系統(UTXO 與賬戶模式的對比)

前面我們提到,區塊鍊是通過雜湊演算法将資料塊互相加密連接配接起來,進而形成一個賬本。這個賬本被儲存在整個網絡的數千個節點上,使賬本在這些網絡中“共享”。任何賬本,不管是共享區塊鍊賬本還是傳統會計賬本,都需要記賬。記賬指的是如何接受、執行交易并将新的餘額存儲在區塊鍊上。在 Web3 中,有兩種主要的記賬模型。

· 未消費交易輸出(UTXO)模型(如比特币網絡)

· 賬戶模型(The Account Model,如以太坊網絡)

為了幫助了解這些不同的記賬模型,将區塊鍊視為是有幫助的。狀态機是一個存儲其狀态的系統,其狀态可以根據對裝置的輸入而改變。這意味着,在任何給定的時間點,系統處于某種狀态,随着對系統的任何輸入,例如通過交易,系統的狀态會發生變化。當向系統提供輸入并且狀态發生變化時,系統就會經曆一個狀态轉換。

如果我們通過狀态機的視角來看區塊鍊,這意味着在任何給定的時間點,區塊鍊系統處于 n狀态,任何被添加到區塊鍊的區塊都會導緻狀态轉換和n+1的新狀态。這個n+1的新狀态考慮到了被添加到新區塊中的所有交易,導緻了一個新的系統狀态。

從節點到網絡:Web3 實戰基礎

區塊鍊和交易引發的狀态變化

未消費交易輸出(UTXO)模型

UTXO 模型和賬戶模型的差別在于如何記賬——或記錄交易——的處理。

簡單來說,在 UTXO 模型中,不存在賬戶餘額這種東西。相反,每筆交易都是一張收據,指出誰給誰發了多少錢。這就是未消費輸出這個名字的由來,因為使用者可以轉移的餘額是他們尚未花費的先前交易的多少。

從節點到網絡:Web3 實戰基礎

UTXO 模型的工作原理圖解

當使用者想發送比特币時,所選 UTXO 内的所有比特币都成為交易輸入(見上圖 UTXO0)。一個新的 UTXO 被建立,其中包含要發送的數量(見上圖 UTXO2)。如果 UTXO 持有的比特币多于要發送的比特币,剩餘的比特币将作為一個新的 UTXO 送回給使用者(上圖中有 0.5 個比特币需要發送,但 UTXO0 中持有 2.0 個,是以 UTXO2 包含要發送的 0.5 個,UTX03 包含傳回給發送方的 1.5 個)。

這也實作了一個有趣的特性:由于 UTXO 模型,每一個原生代币的來源都可以追溯到它的建立,因為每一個交易輸出必須有一個相應的輸入。對于使用 UTXO 模型的比特币網絡來說,這意味着每個比特币都可以追溯到它被挖礦的區塊。是以,UTXO 模型中不存在餘額的概念。相反,餘額是網絡中所有交易收據的彙總。

網絡上的每一筆交易都精确地定義了誰從哪筆交易的輸入中獲得多少比特币。然後,系統會驗證交易投入是否未被使用,以及發送方是否有權力發送比特币,以及接收方是否符合接收比特币的正确參數。是以,UTXO 模型可以被認為是一個驗證系統。

雖然不包括在前面的例子中,但交給礦工的交易費也作為交易的一部分被扣除。UTXO3 不是 1.5 個币,而可能是 1.499 個币,其中的差額是交易費。

帳戶模型

賬戶模型更接近于傳統銀行賬戶的數字表示。在每個狀态轉換中,所有賬戶和餘額的集合被存儲起來,而不是像 UTXO 模型中那樣,必須根據一組收據來計算賬戶餘額。為了開始一個狀态轉換,需要啟動一個交易,訓示系統改變餘額。然後,系統計算每個賬戶餘額的變化,在下一個狀态中,新的餘額集被存儲。

從節點到網絡:Web3 實戰基礎

賬戶模型的工作原理說明

在 UTXO 系統中,每個交易輸入(從以前的交易中收到的 UTXO)都是單獨驗證的,必須大于輸出,而在賬戶模型中,賬戶餘額必須大于交易輸出。這意味着,在 UTXO 系統中,多個 UTXO 可以合并并單獨驗證,以創造一個或多個交易輸出,而在賬戶模型中,隻有餘額需要驗證。

從節點到網絡:Web3 實戰基礎

如果使用多個 UTXO 作為輸入和 UTXO 模型如何工作

關于 UTXO 模型與賬戶模型的更多資訊,我強烈建議閱讀 關于這個問題的。

虛拟機(VM)、智能合約和圖靈完備性

虛拟機是一個模拟計算機的軟體。它取代實體裝置,虛拟計算機的所有實體元件作為軟體在另一個系統中運作。例如,一個 Windows 虛拟機可以在 MacOS 上運作,允許整個 windows 系統在 MacOS 内運作。Windows 虛拟機的實體元件是用軟體模拟的,是以 Windows 系統是不知道的。

這個概念也适用于區塊鍊網絡:一個單獨的虛拟機元件與共享賬本一起存在,它允許計算任務被執行。這意味着,除了存儲餘額(賬戶模型)或餘額變化(UTXO 模型)的共享賬本外,還有一個單獨的計算元件來計算餘額。這個計算元件也可以用于簡單的餘額計算之外的更複雜的邏輯。這就是為鋪平道路的原因——後面會詳細介紹。第一個獲得廣泛成功的此類系統是。

也可以被認為是一個虛拟機,因為它是比特币網絡的計算元件,節點用它來驗證 UTXO 和執行交易。然而,比特币腳本是相當有限的,無法運作像 EVM 那樣的複雜邏輯。

以太坊虛拟機(EVM)

EVM 是一個模拟特定計算機系統的軟體,在以太坊節點上運作。EVM 的主要目的是計算以太坊網絡的世界狀态,并運作智能合約。EVM 的創新之處在于兩個方面:

1. EVM 實作了世界狀态的去中心化計算,包括執行有點複雜的智能合約的計算邏輯

2. EVM 能夠在去中心化的區塊鍊網絡(智能合約)上自主和無信任地執行代碼

從節點到網絡:Web3 實戰基礎

一個區塊鍊和一個虛拟機(VM)

當一個網絡聲稱“”時,這意味着該網絡可以部署和執行為以太坊虛拟機編寫的智能合約。EVM 是最流行的虛拟機,并已成為 Web3 中智能合約計算的事實标準。 具有 EVM 相容性允許較新的網絡通過使項目更容易移植到他們的網絡來引導其生态系統。這種标準化也使得網絡之間的代币橋接更加容易,因為兩個網絡可以運作相同的代碼。

關于 EVM 架構的一個夢幻般的自我解釋的深入研究,我引導讀者去看 Takenobu T. 的(由于“合并”标志着以太坊生态系統在2022 年 9 月 15 日從 PoW 過渡到 PoS,這個演講的 PoW 方面已經過時了)。

智能合約

一個是一個存儲在去中心化網絡中的程式,當滿足特定條件時,可以由虛拟機自主執行。這些條件可以是指當網絡上發生特定事件或當使用者與智能合約互動時被激活的任何條件。智能合約的複雜計算能力也使和(非同質化代币)得以建立。

智能合約和 EVM 是推動行業超越區塊鍊和加密、實作 Web3 概念的原因:由于這些創新,有可能擁有可組合的應用程式,在不可審查的去中心化網絡上自主運作。這些創新的結合就是 Web3 龐大的 dApp 生态系統的由來。

dApp 是去中心化的應用程式,它使用智能合約的組合,通常也是一個容易通路的基于網絡的前端,以實作與區塊鍊網絡的互動。dApp 的智能合約也可以通過節點直接通路,但是基于網絡的前端大量減少了通路的障礙。在今天,最知名的 dApp 大概是 .

Solidity 語言、Rust 語言和 Bitcoin Script

是以太坊區塊鍊上最常用的智能合約的程式設計語言。開發者用 Solidity 編碼他們的智能合約,将其編譯成位元組碼,然後将位元組碼部署到網絡中。Solidity 是一種面向對象和靜态類型的程式設計語言,它是基于 C++、Python 和 JavaScript 而建立的。

是、和鍊上最受歡迎的智能合約的程式設計語言之一。Rust 是一種低級靜态類型的程式設計語言,以其速度、效率和設計最佳實踐而聞名。雖然它是一種較年輕的語言,但它在和連續兩年被 StackOverflow 評為最受歡迎的程式設計語言。就像 Solidity 一樣,代碼被編譯,位元組碼被部署到各個網絡上。

隻要代碼可以被編譯成網絡可以閱讀和解釋的位元組碼,區塊連結受各種程式設計語言。這也适用于比特币網絡,它的主要腳本語言是 Bitcoin Script. Bitcoin Script 和 Solidity/Rust 之間的差別是,Bitcoin Script 實際上不是一種程式設計語言,而是一個用于交易的腳本系統。在比特币網絡中,腳本是與每筆交易一起記錄的指令清單,它描述了下一個想花被轉移的比特币的人如何獲得它們。請記住,UTXO 是未使用的交易輸出;是以,每一個輸出都可以有附帶的要求,需要滿足這些要求,才能允許輸出成為另一個交易的輸入。

圖靈完備性

從圖靈完備性的角度來看,Solidity/Rust 和 Bitcoin Script 之間的差異變得更加清晰。圖靈完備性指的是一個抽象機器(圖靈機)的概念:在給定了無限的時間和計算資源的情況下,隻要這個問題能夠被編碼或邏輯地建構,它就能夠計算任何問題。

更複雜的邏輯問題需要使用條件語句和循環,Solidity 和 Rust 作為完整的程式設計語言支援這些。然而,Bitcoin Script 不支援這些。這是因為比特币網絡不允許複雜的計算,而是依賴于一個相當簡單的指令集,隻圍繞交易的想法工作(沒有智能合約)。雖然這使得比特币網絡不容易出錯,可以說更安全,但它确實限制了它的可程式設計性。

以太坊、Solana 和 Polkadot 可以被認為是準圖靈完備的。盡管由于 Solidity 和 Rust 的存在,它們能夠進行複雜的計算,并且在理論上隻要有足夠的時間就能解決任何邏輯問題,但它們受到 gas fee 的限制。是網絡為執行任何計算任務所收取的費用。雖然時間和計算資源在理論上可以是無限的,但原生網絡代币的數量可能不是。是以,雖然理論上這些網絡是圖靈完備的,但在實踐中,它們最多隻能被視為準圖靈完備的。

圖靈完備性和非圖靈完備性的差別對于更好地了解網絡的能力和在網絡上可以建立的東西非常重要。圖靈機和圖靈完備性還有更多的細微差别,感興趣的讀者可以在閱讀更多内容。

從EIP 到 ERC

(Ethereum Request for Comment)指的是以太坊區塊鍊中使用的技術編碼标準。ERC 規定了以太坊智能合約必須遵循的一些規則和行動,以及如何實作這些規則和行動。

然而,ERC 已經是一個約定俗成的标準,已經包含在開發者同意使用的以太坊文檔中。在一個 ERC 成為 ERC 之前,它開始是一個 (Ethereum Improvement Proposal). EIP 本質上是非常詳細的論壇文章,使用者可以在其中對以太坊區塊鍊和生态系統的變化進行争論、讨論和投票。

從節點到網絡:Web3 實戰基礎

從 EIP 到 ERC 的過程

這個系統在整個 Web3 生态系統中被非常廣泛地使用,從網絡(例如,比特币使用 —— Bitcoin Improvement Proposals)到 dApp(例如,AAVE 使用—— AAVE Improvement Proposals).

ERC 代币标準

基于 ERC 的代币建立在以太坊網絡上,但它們在技術上有别于以太坊代币,後者是以太坊網絡的原生代币。以太坊代币被定義為網絡的一部分,是網絡的底層“貨币”,以 gas fee 的形式支付交易和智能合約執行,而基于 ERC 的代币被定義在智能合約中。

ERC 标準的智能合約定義了代币的所有參數和所有行為,可以使用 或任何其他與 EVM 相容的網絡的區塊探索器線上檢視。是一種工具,它允許你檢視存儲在區塊鍊上的實時和曆史資訊。由于這種标準化,基于 ERC 的代币的行為是可預測的,允許 dApp 和其他智能合約與任何使用這些标準的智能合約互動。

接下來,我們會介紹 ERC-20、ERC-721、ERC-1155 和 ERC-4626 标準。前三個标準涉及到建立同質化和非同質化數字資産,這些數字資産在區塊鍊上生存,而 ERC-4626 标準規範了應用于 ERC-20 的收益功能。

從節點到網絡:Web3 實戰基礎

ERC-20、ERC-721 和 ERC-1155 代币标準及其同質性

ERC-20 代币(同質化代币)

是一個同質化代币的标準。同質性是指一種資産可以與另一種相同的資産互換,而兩種資産是無法互相區分的。例如,一張一美元的鈔票是同質化的,因為它可以與任何其他一美元的鈔票進行交換。

ERC-20 标準允許在 EVM 相容的網絡上建立同質化代币。Curve 代币()、Uniswap 代币()或 AAVE 代币()都是同質化代币的例子,但法定貨币的數字代币也是 ERC-20,例如或,它們與美元挂鈎。

從節點到網絡:Web3 實戰基礎

ERC-20代币是同質化代币

ERC-721 代币(非同質化代币)

标準定義了非同質化代币(NFT)。NFT 的獨特之處在于它的名字:代币是不可僞造的,這意味着每個代币都是獨一無二的。NFT 是一個令人興奮的發展,因為每個 NFT 的内容可以是建立者想要的任何内容,從個人照片到房地産的契約或任何其他證書。NFT 實作了對任何實體或獨特數字資産的可公開驗證的數字所有權。

流行的 NFT 包括 、和.

從節點到網絡:Web3 實戰基礎

ERC-721(NFT)是非同質化代币

ERC-1155(Multi-Token)

是所謂的“多元代币(Multi-Token)”:它們結合了 ERC-20(同質化代币)和 ERC-721(非同質化代币)的功能。這意味着,除了通過多個“獨特的”同質化資産,例如遊戲中的一把劍(非同質化的)和 100 個供應量(同質化的)來實作新的用例之外,也可以在一個智能合約中管理多個代币類型。

将這些功能合并到一個智能合約中,可以使智能合約在 EVM 中使用的空間方面創造效率。這也為更大和更複雜的項目創造了簡單性,因為多套代币可以從一個智能合約中管理。

流行的 ERC-1155 包括 ENJIN NFT,它使用 ERC-1155 來跟蹤基于區塊鍊的少數遊戲中的資産,以及可能需要定期建立大量獨特資産集作為一個合同的一部分的票務應用。使用 ERC-1155 的項目例子包括 、和.

從節點到網絡:Web3 實戰基礎

ERC-1155 代币結合了同質化代币和非同質化代币的功能

ERC-4626(The Vault Standard)

将代币金庫标準化。保險庫是一個有收益的智能合約,接受 ERC-20 代币存款,并向存款人提供另一種代币的代币獎勵(收益)。它本質上是一個多簽名的資産管理智能合約,産生代币作為存款的獎勵形式,以後可以兌換最初存入保險庫的代币。

例如,是一個有收益的代币,可以兌換成代币(的治理代币),基本上代表使用者在 Sushi DeFi 協定中産生收益活動的份額。

這個代币标準使開發者能夠接受任何 ERC-20 代币,而不必手動整合每個代币,并考慮他們的具體設計決策。這減少了可能導緻資産損失的編碼錯誤的風險。

是第一個使用 ERC-4626 标準的主要協定,和等協定也已。

區塊鍊與有向無環圖(DAG)的對比

是一種不同的資料結構方法,一些項目将其作為區塊鍊共享賬本結構的替代方案。區塊鍊的交易包含在區塊中,區塊按時間順序進行驗證和連鎖。區塊鍊被複制到網絡上的所有節點。

在 DAG 中,交易被逐一驗證,每個交易都與下一個交易相關聯。為了驗證一個交易,由網絡決定的另外兩個交易也必須被驗證。這導緻了一個類似于網絡的結構,可以很容易地進行擴充,并允許交易的并行計算,這可以大大增加吞吐速度。由于驗證交易是非常直接的,礦工在這個系統中扮演的角色非常小:任何與網絡互動的使用者都可以驗證其他使用者的交易,這大大降低了交易成本。

從節點到網絡:Web3 實戰基礎

區塊鍊 Vs. DAG

有向無環圖這個詞很好地描述了這種結構:

· 有向:資料結構隻能在一個方向上移動(添加新資料)

· 無環:當沿着資料點之間的定向路徑移動時,不可能碰到之前的資料點(非環形)

· :由節點/頂點和邊(節點之間的連接配接)組成的非線性資料結構

雖然這種結構在交易吞吐量、驗證速度和交易成本方面帶來了好處,但 DAG 面臨着完全不同的挑戰。雖然在理論上這個系統允許強大的去中心化,但交易的減少在理論上會導緻網絡安全的降低:更少的交易意味着更少的随機驗證者,這增加了單一驗證者或一組驗證者控制大多數交易的可能性。如果一個實體控制了大部分的網絡活動,那麼将惡意活動引入網絡就會變得更加容易。

為了應對上述挑戰,基于 DAG 的網絡已經轉向中心化的解決方案:實施中央協調人,為待驗證的交易提供路線,控制具有更高權限的“證人”驗證人,或直接使驗證網絡私有化。

盡管有這些挑戰,DAG 網絡填補了 Web3 生态系統中的一個重要空白:它們是稍微更中心化一些的高吞吐量網絡,可以管理繁重的交易負載,并且随着 Web3 主流應用的進展,會發現更多的使用案例。

單片式與子產品化區塊鍊

去中心化網絡是複雜的系統,由各種元件組成,這些元件互相操作,創造出無信任和不可改變的網絡。比特币、以太坊、Solana、Polkadot 和 NEAR 等網絡都被認為是——它們都是“由單片形成”的網絡,一個元件的任何變化都需要整個網絡的更新。拿出這些不同的元件并讓它們被換成其他元件。

子產品化區塊鍊系統的各個組成部分包括:

· 執行層:交易執行和智能合約

· 結算層:交易驗證、交易結算

· 共識層:共識機制

· 資料可用性:共享賬本

從節點到網絡:Web3 實戰基礎

單片式區塊鍊與子產品化區塊鍊。改編自:Celestia 網站

通過将系統拆分成多個元件,可以對每個元件進行優化,提高每個元件的效率和安全性。,将在本系列的下一部分中詳細介紹,可以說是進入子產品化的第一步。Layer 2 解除安裝了執行層,在一個單獨的網絡上執行交易和智能合約,并将結果回報給 Layer 1 單體網絡,在那裡管理結算、共識和共享賬本。

雖然子產品化有許多好處,但子產品化系統隻有在其最薄弱的環節才會強大。有了子產品化元件,個别元件就有可能更容易成為目标。此外,給網絡增加子產品化也引入了一個新的複雜程度,無論是從技術角度還是從網絡原生代币的價值角度,都要確定網絡的正常運作。如果結算層可以被另一個使用不同代币的結算層所取代,那麼一個網絡首先要證明代币的存在是有難度的。

盡管有這些挑戰,子產品化區塊鍊的概念為新項目和新技術的發展提供了一個令人興奮的方向,這可以幫助擴大和發展 Web3 生态系統。流行的子產品化區塊鍊項目包括 和.

Layer 1 網絡總結

Web3 是一個龐大的概念,結合了區塊鍊、加密和建立在它們之上的生态系統以及相關技術。

比特币是普及去中心化區塊鍊技術的 layer 1 網絡,而以太坊是提供準圖靈完備計算功能的網絡,實作了智能合約。正是通過對早期區塊的資料進行哈希運算來串聯資料塊的想法,再加上在許多節點上分發所有存儲資料的副本,才實作了不可更改性和資料的永久性。除了這些技術原素,節點基礎設施也必須到位,才能發揮作用:如果網絡上隻有一個節點,那麼網絡本質上是中心化的,并面臨着中心化的挑戰:資料可以被改變,被删除,對它的通路可以被節點限制。

除了基礎資料結構,還有一個問題是網絡上的節點如何知道提供給它們的資料是否正确。這被概括為“拜占庭将軍的問題”。比特币通過其工作證明(Proof-of-Work)共識算法解決了這個問題,該算法要求網絡上的節點解決計算量大的加密難題,以證明他們已經完成了驗證一個區塊所需的驗證工作。存在替代性的共識算法,例如 Proof-of-Stake,它需要的能量要少得多,而且被認為對環境更好。

比特币和以太坊是撰寫本文時最受歡迎的兩個區塊鍊網絡,它們使用的記賬模式有很大的不同。比特币網絡使用 UTXO 模式,而以太坊網絡使用賬戶模型。UTXO 模型可以被認為是一個 "驗證系統",每一個 UTXO 都是一個交易的賬單。賬戶模型更像一個賬戶和餘額的資料庫,随着每個新區塊被添加到區塊鍊上而更新。

以太坊的計算元件被稱為“以太坊虛拟機”,允許執行智能合約。智能合約是存儲在去中心化區塊鍊網絡上的應用程式,可以根據可程式設計的觸發标準自主執行。根據你所使用的區塊鍊,智能合約可以用 Solidity、Rust 或其他程式設計語言編寫。

智能合約的标準化是必要的,以實作智能合約之間更好的互操作性。ERC 是已經在以太坊文檔中固化的編碼标準,是“成功”的 EIP. EIP 是以太坊生态系統中任何人都可以提出的建議,并開放給任何人檢視、讨論和投票。如果一個 EIP 被投票通過,提議的變化就會被應用到網絡中。四個最流行的 ERC 代币标準是 ERC-20(同質化代币),ERC-721(非同質化代币,或“NFT”),ERC-1155 (多元代币)和 ERC-4626(金庫标準).

雖然區塊鍊一直是 Web3 去中心化網絡最流行的賬本格式,但随着現有的結構被調整為特定的用例,替代格式已經出現了。有向無環圖(DAG)是這種替代結構的一個例子,它依賴于驗證交易而不是完整的區塊。子產品化網絡是我們需要重新思考現有結構這一想法的延伸。子產品化網絡旨在将分散的網絡分成不同的功能層,每個功能層都可以單獨優化。

結語

這就是《掌握 Web3 基礎知識》系列的第一部分,感謝您的閱讀!如果你喜歡這篇文章,請考慮分享它!如果你對這篇文章有任何回報,或者想讨論它的内容,請在 Twitter 上聯系 .

如果你想在第二部分釋出時成為第一批閱讀者,或者想對 Web3 的最近事件有非常堅定的透徹觀點,請并在 Twitter 上關注!

本文由 0xPhillan 為 撰寫——在 Twitter 上關注!