Web3龐大而又復雜,結合了各種組件、技術和概念。無論你是Web3、區塊鏈和加密貨幣的新手還是老手,通過這篇稿子,你都將獲得一個關于支持Web3的各種組件的高層次概述,使你能夠理解每個組件的目的和好處。具體來說,這個系列的目的是:
1.提供Web3基本組件的概述
2.評估各種組件的目的
我們將Web3定義為互聯網的次迭代,將如今的互聯網中我們所喜愛的東西與可驗證的數字所有權、開放系統、透明度和不可更改性相結合。Web3、區塊鏈和加密是三個密切相關的主題,但在本篇中會被視為三個獨立的術語。
區塊鏈:一種技術創新,能夠實現可驗證的數字所有權、透明度和不可更改性
Crypto:加密貨幣的簡稱,描述了區塊鏈網絡上加密安全的代幣
Web3:包括區塊鏈、加密貨幣,以及建立在它們之上的所有生態系統和創新
要了解Web3,我們必須首先了解基礎的區塊鏈和加密技術。雖然Web3仍然是一個相對年輕的概念,比特幣在2009年才推出,但隨著新的技術創新以瘋狂的速度進入市場,這個行業正在迅速發展。
我希望這個系列能幫助你深入鉆研Web3,并能幫助你找到可以在這個系列之外自己研究的感興趣的領域。在每一個主題中,都可以找到幾十個更深入的補充材料的鏈接,以幫助引導你找到有用的內容。
這個系列分為三個部分,你所在的第一個部分涵蓋了從Web3節點基礎設施到layer1區塊鏈網絡如何工作的所有內容。下一篇文章將介紹layer2、互操作性和建立在本篇文章所概述的基元上的龐大的dApp生態系統。最后,最后一塊將涵蓋鏈外環境和鏈上/鏈下通信。
Web3基礎設施概述
我們將Web3基礎設施分為多個部分,反映了鏈上生態系統、支持鏈上生態系統的鏈下環境以及將去中心化的網絡相互連接并允許這些網絡與鏈下環境連接的中間件。
鏈上生態系統
第一層網絡:單體網絡、模塊化網絡、共識、共享賬本技術、虛擬機與EVM兼容、智能合約和ERC代幣標準
第二層網絡:閃電網絡、optimisticrollup、零知識rollup
節點層:挖礦/驗證節點、節點客戶端軟件、挖礦/盯盤池
網絡層:
去中心化的應用程序層
鏈外環境:分析、審計與安全、錢包、中心化交易所、開發者工具、去中心化云。
互操作性層:
網絡互操作性:鏈橋、原子swap
鏈上/鏈下通信工具。區塊鏈API、Oracle
鏈上生態系統
鏈上生態系統分為三個主要層:
去中心化的應用程序層
網絡層
節點層
這三層結合在一起,實現了Web3最著名的由智能合約驅動的生態系統和應用。我們從節點層開始看鏈上的生態系統,然后一直到dApp層。
節點層
這一層也經常被稱為硬件層,因為在這一層,硬件以及與操作硬件參與特定區塊鏈網絡有關的一切都被設置好了。
節點客戶端
節點是一個服務器,它運行一個被稱為客戶端的網絡專用軟件,它允許節點參與網絡的區塊創建過程,允許訪問整個區塊鏈的歷史數據,并允許執行RPC命令。RPC是指遠程程序調用,它允許節點調用和執行某些命令。
在撰寫這篇文章時,按市值計算,最大的兩個區塊鏈網絡是比特幣和以太坊。雖然參與每個網絡有不同的要求,但它們都需要一個符合客戶硬件規格的服務器,一個互聯網連接,以及客戶端軟件。對于比特幣,最流行的客戶端軟件是BitcoinCore,而對于以太坊,最流行的客戶端是GETH.
客戶端還編纂了區塊鏈的規則,并確保任何被驗證的新區塊也遵守同樣的規則。這很重要,因為如果一個節點驗證了一個其他節點不接受的區塊,網絡就會分叉:一組節點遵循一套規則,而其余節點遵循另一套規則。雖然他們可能共享相同的歷史,但在不同的驗證規則被引入的那一刻,一個新的鏈被創建并只被接受新規則的節點所接受。
雖然以上是最流行的客戶端,但它們并不是可以用來參與區塊鏈網絡的唯一客戶端。只要其他客戶端使用相同的驗證規則,他們就可以驗證區塊并為區塊鏈作出貢獻。
比特幣客戶端
以太坊客戶端
要閱讀更多關于區塊鏈如何工作的信息,請跳到Layer1網絡部分。
節點基礎設施供應商
Deribit上以太坊永續期貨合約交易量(24H)達3年低點:8月13日消息,Glassnode數據顯示,Deribit上以太坊永續期貨合約交易量(24小時)剛剛達到3年低點14,964,481美元,之前的三年低點是在2020年10月18日,為16,242,048.60美元。[2023/8/13 16:23:02]
通常鼓勵普通用戶運行自己的節點,以支持公共網絡的去中心化。當更多的用戶運行他們自己的節點時,單個行為者積累大多數運行節點并攻擊網絡的機會就會減少。用戶被鼓勵通過區塊獎勵和交易費用來運行他們自己的節點,網絡將這些費用分配給節點運營商。
盡管有這些激勵措施,用戶不愿意自己建立節點的原因有很多:復雜的技術設置,購買必要硬件的前期資金有限,或者只是暫時需要節點。這就是節點基礎設施供應商的作用。這些供應商負責節點的設置和操作,為客戶提供端到端的服務。一些專門從事節點基礎設施的大型供應商包括Blockdaemon和Atlas.
這些節點基礎設施供應商的一個經常被忽視的目的是為那些尚未建立強大的、去中心化的節點網絡的新區塊鏈項目建立節點。這些較新的網絡可以利用節點基礎設施供應商來啟動一個全球分布式網絡,而不需要在每個國家建立自己的基礎設施。
礦池和質押提供商
節點基礎設施提供商為客戶建立節點,而挖礦池和質押提供商則運營自己的節點,但允許用戶在其節點下匯集資源。這增加了節點從網絡中獲得區塊獎勵和交易費收入的可能性。對于想把自己的閑置硬件投入使用的用戶來說,這意味著他們可以加入一個礦池,而不需要任何復雜的技術設置,并開始用他們現有的資源賺取收入。
不同共識機制的網絡節點操作有一些細微差別。基本上,使用工作證明的網絡匯集了計算資源,而權益證明的網絡匯集了網絡代幣。對于工作證明網絡來說,礦池大大降低了進入的技術門檻,而對于權益證明網絡來說,質押提供者則大大降低了進入的財務門檻。更多細節將在共識部分介紹。
一些最大的礦池包括FoundryUSA和F2POOL,而一些最大的質押提供商包括Lido和Rocketpool.
節點層總結
Web3的節點層由數千個全球分布的節點組成,每個屬于特定網絡的節點都運行該網絡所需的客戶端軟件。只要客戶端軟件的驗證規則與網絡上的其他節點相同,該節點就可以正常運行,而不會造成區塊鏈的分叉。
雖然任何人都可以在去中心化公鏈網絡上運行自己的節點,但節點基礎設施供應商專門負責設置和運營運行節點和啟動網絡所需的硬件。
最后,礦池和質押供應商的行為降低了采礦和質押業務的進入門檻。這使得用戶可以參與挖礦和質押活動,賺取網絡獎勵,而不必滿足全部網絡要求。
網絡層
區塊鏈網絡建立在上述的節點基礎設施之上。網絡層由各部分組成,包括各種技術,基本層是layer1網絡、layer2網絡和在這些網絡之間進行通信的互操作層。
Layer1網絡
比特幣、以太坊和Solana可能是在撰寫本文時最知名的Layer1網絡。Layer1網絡是指Web3生態系統中結算交易的主要網絡。Layer2網絡是作為Layer1網絡的更深層存在的,交易可以被降級到Layer2網絡上。雖然在架構上有很大的不同,但它們都依賴于一組類似的架構基元。
它們都有一個共享賬本,跟蹤網絡上的交易
它們都采用機制來實現與哪些交易和區塊被認為是有效的共識
它們都有一種方法來計算發送到網絡的命令
在下面的章節中,我們將分別研究這三個要素,并剖析我們如何從交易到區塊鏈。
共享賬本
所有去中心化的區塊鏈網絡都有一個共享賬本。事實上,區塊鏈就是共享賬本。讓我們退一步來說:賬本是一個企業經濟活動的記錄,用來追蹤金錢的轉移或資產所有權的轉移。術語共享賬本意味著賬本不是由一個單一實體持有和管理,而是由許多實體持有和管理。
在去中心化的區塊鏈網絡中,區塊鏈被保存在網絡上的所有節點上。如果活動的賬本只由一個中心化的機構管理和存儲,我們會遇到以下挑戰。
審查和排斥
記錄管理人的瀆職行為
記錄的丟失
如果賬本存儲在全球數百甚至數千個節點上,我們就會得到一個很難被故意和無意篡改或破壞的系統。如果一個節點倒下了,還有許多其他節點,用戶可以與之連接,繼續與賬本進行互動。
然而,這個系統確實帶來了其他挑戰:網絡上的節點如何就什么是正確或有效的賬目條目達成一致?這就是共識算法的作用。
共識
在區塊鏈網絡中,共識一詞指的是網絡上的節點之間就哪些賬本條目是有效的并被節點接受的一般協議。
在學術界,這個問題被稱為拜占庭將軍問題。這個問題描述了這樣一種情況:一個系統的行動者必須在戰略上達成一致,以避免災難性的失敗,但系統中的一些行動者是不可靠的。
美聯儲哈克:傾向于六月跳過一次加息 而不是暫停加息:金色財經報道,美聯儲哈克表示,我傾向于六月跳過一次加息,而不是暫停加息;暫停加息意味著可能會維持利率一段時間,我不知道我們是否為此做好了準備。[2023/6/1 11:51:03]
在這個假想的場景中,有三個行為者,他們必須協調他們在拜占庭戰爭中的下一步行動,以避免被敵人攻破。三個行為體中的一個是惡意的,向其余各方轉發不一致的信息。系統中的誠實行為者如何知道該相信誰?或者換個說法:系統中的所有行為者如何能就接受哪條消息達成共識?
這個問題具有重要意義,因為隨著更多的行動者進入系統,交流的復雜性會成倍增長。
第一個在全球范圍內成功解決這一挑戰的系統是比特幣網絡及其工作證明算法。
工作證明
比特幣網絡的工作證明算法解決了拜占庭將軍的問題,要求任何信息必須經過某種驗證才能被節點接受。任何沒有經過驗證的信息都不被接受為有效信息,并被節點拒絕。
驗證過程也需要計算資源,這使得偽造驗證變得異常困難。這也是“工作證明”一詞的由來:“向我證明你已經做了必要的工作,讓我接受你的信息”。
讓我們從理論到實踐,更深入地挖掘交易、區塊和PoW過程的機制。別擔心——我們會保證深入淺出的!
區塊結構
比特幣區塊是儲存交易的地方,是精心控制的信息單位,一旦完成加密拼圖,就會在整個網絡中廣播。
比特幣網絡的一個區塊由兩個主要部分組成。
區塊頭
交易列表
交易列表就像它聽起來一樣:它是一個節點收到并包含在一個區塊中的交易列表。在比特幣網絡中,交易是比特幣網絡上的比特幣轉移。比特幣網絡是一個共享的公共賬本,追蹤比特幣資產的流動;因此,比特幣網絡上的交易是比特幣在地址之間的轉移。
比特幣使用未花費交易產出,也被稱為UTXO進行交易。交易和UTXO將在UTXO模型與賬戶模型部分進一步介紹。
區塊頭是事情開始變得有趣的地方。雖然交易的數量和每筆交易的轉賬金額因區塊而異,但區塊頭的元素對每筆交易都是一樣的。
雖然區塊頭包括許多元素,但每個元素都對系統至關重要,為了介紹的目的,我們將進一步詳細介紹以下內容。
前一個區塊頭的哈希值:前一個區塊的所有元素都被哈希化
難度目標:確定“前導零”的數量,從而確定挖礦的難度
Nonce:一個任意的數字
Merkleroot:該區塊內所有交易的哈希輸出
從區塊到區塊鏈
在我們繼續之前,我們需要簡單介紹一下哈希算法。哈希化是將一串字符轉化為另一個通常為固定長度的值的過程。當一個哈希算法是確定的,就意味著在相同的輸入下,每次的輸出都是一樣的。然而,如果原始字符串的一個字符發生變化,哈希的輸出就會完全改變,以至于無法推斷出與原始字符串的關系。請看下面的Bitcoin與bitcoinSHA256哈希算法輸出的比較。
在比特幣網絡中,一旦一個區塊被開采出來,該區塊的頭就會被哈希化,并作為一個輸入包括在下一個區塊中。因為每個區塊的前一個標題的哈希值被包含在下一個區塊中,所以就形成了一個由區塊構成的鏈:這就是區塊鏈。
在任何區塊中的任何變化都會破壞這條鏈,因為已經包含在下一個區塊中的哈希輸出將與新的哈希輸出不同。因此,這樣的變化會被網絡上的節點所拒絕。
MerkleRoot
Merkletree是一種數據結構,其中數據結構中的元素被哈希和重哈希遞歸,直到只剩下一個元素。這個最后剩下的元素就是MerkleRoot.
Merkletree有一個有趣的數學特性,即在數學上,在只提供Merkleroot和一個元素的情況下,可以證明這個元素是Merkletree的一部分。
混幣器協議 Tornado Cash 正式開源 UI 代碼:7月8日消息,混幣器協議 Tornado Cash 正式開源 UI 界面代碼,以履行完全去中心化和透明度的使命。(Cointelegraph)[2022/7/8 1:58:59]
在比特幣網絡中,存儲在區塊頭中的Merkleroot是該區塊中包含的所有交易的遞歸哈希輸出。這意味著,如果任何交易被調整,Merkleroot也將改變,這也將改變整個區塊頭的哈希輸出。這將再次導致區塊的無效化。
工作證明中的“工作”
我們知道了什么是哈希算法、區塊是如何結構化的和區塊是如何被鏈起來并形成區塊鏈的,現在我們終于可以更深入地了解工作證明實際是如何工作的。回到拜占庭將軍的問題,上面提到的驗證信息實際上是區塊鏈中的一個區塊。
為了使一個區塊得到驗證,需要找到一個符合特定標準的哈希值。還記得僅僅一個位元的變化就會極大地改變哈希值的輸出嗎?這正是比特幣網絡的PoW算法尋找目標哈希值的方法:Nonce是一個任意的數字,它被調整以改變區塊頭的哈希值輸出。如果哈希值輸出不符合目標哈希值,nonce會再次被調整。這個過程不斷重復,直到區塊頭的哈希值滿足目標條件。一旦目標條件得到滿足,區塊頭就算是得到了驗證,區塊會被廣播給網絡上的其他節點,讓它們把新的區塊附加到它們的區塊鏈副本中。
目標條件,或預期的哈希值,是由它有多少個前導零定義的。如果生成的哈希值有足夠的前導零,也就是說,已經完成了尋找符合目標條件的哈希值的工作,那么網絡上的節點就接受該區塊為有效:該區塊被認為是“已挖礦”。
為了更好地理解這個過程,請瀏覽Github上的這個哈希算法模擬器。輸入字符“bitcoin”,并在末尾添加數字,從0開始,以1的增量不斷增加,直到達到一個前導零。你會注意到,為了找到一個前導零,即哈希值的第一個字符是零,你只需要將數字增加到3。現在試著找到兩個前導零。劇透:第一個有兩個前導零的哈希結果是“bitcoin230”.
還有更多的規則需要節點遵守,比如最長的鏈總是有效的鏈,已經開采的區塊必須有一個在網絡時間一定閾值內的時間戳,還有圍繞如何確定網絡難度的復雜機制。有興趣的讀者可以瀏覽Bitcoin.org或BitcoinWiki了解更多細節。
范式轉變
上述機制,在歷史上第一次允許交易被獨立確認和驗證,而不需要第三方見證和批準交易。與其將交易提交給遭受中心化挑戰的銀行,不如將其發送到一個獨立的節點網絡,這些節點可以在沒有干預的情況下自主地處理交易。這種技術范式的轉變和對賬本的重新認識是今天Web3生態系統賴以建立的基本要素。
此外,由于加入這些網絡的唯一要求是可以運行節點軟件的計算設備和互聯網連接,任何人都可以作為獨立的節點加入網絡,增強網絡的分散性。
批評意見
雖然像比特幣網絡這樣的PoW網絡有很多節點,但有人批評說,由于網絡上的高度競爭,單個節點的準入門檻太高。一個節點擁有的哈希能力越多,該節點就越有可能首先解決哈希難題,因為它能以比網絡上其他節點更快的速度進行更多的計算。作為一個哈希值較低的單一節點進入比特幣網絡,將導致能源成本,而成為第一個成功開采新區塊的機會幾乎不存在。
能源消耗也是一個備受爭議的話題:網絡需要大量的能源,一些估計指出,比特幣網絡的年能源消耗超過挪威。
這些能量被浪費在節點每秒進行數百萬次的哈希計算,尋找哈希。雖然這增加了比特幣網絡的安全性,但它確實引出了一個問題,即是否有任何不那么浪費的方法來驗證區塊。這就是權益證明的由來。
權益證明
在權益證明中,節點被賦予了根據其在網絡中的質押來驗證一個區塊的權限。這是一種與PoW根本不同的方法,大大降低了驗證所需的計算能力。節點不提供計算能力,而是將他們的本地網絡代幣作為抵押品,以換取驗證區塊的機會。這從本質上消除了基于競爭的計算,增加了能夠成功驗證區塊的節點的分布。
合并后的以太坊是一個權益證明網絡。它需要用32個ETH做質押才能成為一個驗證者,之后節點可以參與區塊驗證,從而為網絡增加新的區塊作出貢獻。質押指的是鎖住代幣,是PoS網絡的基礎。
除了成為驗證者的高額前期費用外,PoS網絡還采用其他方法來防止惡意行為者擾亂網絡。一般來說,PoS網絡還要求多個節點同時驗證同一個區塊,這就減少了一個節點驗證錯誤或惡意區塊的可能性。此外,如果發現一個節點有惡意行為,他們的權益可以被砍掉。這意味著他們在協議中鎖定的網絡代幣的數量被從節點中移除,并被轉移到一個臨時地址或燒毀。代幣的燃燒是指通過將代幣發送到網絡上沒有人可以訪問的地址,將其永久地從流通中移除。在以太坊網絡中,這就是空地址。
其他共識機制
一巨鯨購買了20萬億個SHIB,價值約2.1億美元:金色財經報道,CoinHub在社交媒體上稱,一巨鯨購買了20萬億個SHIB,價值約2.1億美元,這是Shiba Inu歷史上最大的一筆交易。[2022/7/6 1:55:28]
除了工作證明和權益證明之外,還有許多為特定網絡設計的具有特定目的的共識機制。下面是一份不完全的流行共識機制的清單。
DelegatedProof-of-Stage
授權證明
活動證明
Brun證明
Proof-of-Spacetime
歷史證明
實用拜占庭容錯共識
共享賬本——會計系統
前面我們提到,區塊鏈是通過哈希算法將數據塊相互加密連接起來,從而形成一個賬本。這個賬本被保存在整個網絡的數千個節點上,使賬本在這些網絡中“共享”。任何賬本,不管是共享區塊鏈賬本還是傳統會計賬本,都需要記賬。記賬指的是如何接受、執行交易并將新的余額存儲在區塊鏈上。在Web3中,有兩種主要的記賬模型。
未消費交易輸出模型
賬戶模型
為了幫助理解這些不同的記賬模型,將區塊鏈視為狀態機是有幫助的。狀態機是一個存儲其狀態的系統,其狀態可以根據對設備的輸入而改變。這意味著,在任何給定的時間點,系統處于某種狀態,隨著對系統的任何輸入,例如通過交易,系統的狀態會發生變化。當向系統提供輸入并且狀態發生變化時,系統就會經歷一個狀態轉換。
如果我們通過狀態機的視角來看區塊鏈,這意味著在任何給定的時間點,區塊鏈系統處于n狀態,任何被添加到區塊鏈的區塊都會導致狀態轉換和n+1的新狀態。這個n+1的新狀態考慮到了被添加到新區塊中的所有交易,導致了一個新的系統狀態。
未消費交易輸出模型
UTXO模型和賬戶模型的區別在于如何記賬——或記錄交易——的處理。
簡單來說,在UTXO模型中,不存在賬戶余額這種東西。相反,每筆交易都是一張收據,指出誰給誰發了多少錢。這就是未消費輸出這個名字的由來,因為用戶可以轉移的余額是他們尚未花費的先前交易的多少。
當用戶想發送比特幣時,所選UTXO內的所有比特幣都成為交易輸入。一個新的UTXO被創建,其中包含要發送的數量。如果UTXO持有的比特幣多于要發送的比特幣,剩余的比特幣將作為一個新的UTXO送回給用戶。
這也實現了一個有趣的特性:由于UTXO模型,每一個原生代幣的來源都可以追溯到它的創建,因為每一個交易輸出必須有一個相應的輸入。對于使用UTXO模型的比特幣網絡來說,這意味著每個比特幣都可以追溯到它被挖礦的區塊。因此,UTXO模型中不存在余額的概念。相反,余額是網絡中所有交易收據的匯總。
網絡上的每一筆交易都精確地定義了誰從哪筆交易的輸入中獲得多少比特幣。然后,系統會驗證交易投入是否未被使用,以及發送方是否有權力發送比特幣,以及接收方是否符合接收比特幣的正確參數。因此,UTXO模型可以被認為是一個驗證系統。
雖然不包括在前面的例子中,但交給礦工的交易費也作為交易的一部分被扣除。UTXO3不是1.5個幣,而可能是1.499個幣,其中的差額是交易費。
帳戶模型
賬戶模型更接近于傳統銀行賬戶的數字表示。在每個狀態轉換中,所有賬戶和余額的集合被存儲起來,而不是像UTXO模型中那樣,必須根據一組收據來計算賬戶余額。為了開始一個狀態轉換,需要啟動一個交易,指示系統改變余額。然后,系統計算每個賬戶余額的變化,在下一個狀態中,新的余額集被存儲。
在UTXO系統中,每個交易輸入都是單獨驗證的,必須大于輸出,而在賬戶模型中,賬戶余額必須大于交易輸出。這意味著,在UTXO系統中,多個UTXO可以合并并單獨驗證,以創造一個或多個交易輸出,而在賬戶模型中,只有余額需要驗證。
關于UTXO模型與賬戶模型的更多信息,我強烈建議閱讀Horizen.io關于這個問題的這篇內容。
虛擬機、智能合約和圖靈完備性
虛擬機是一個模擬計算機的軟件。它取代物理設備,虛擬計算機的所有物理組件作為軟件在另一個系統中運行。例如,一個Windows虛擬機可以在MacOS上運行,允許整個windows系統在MacOS內運行。Windows虛擬機的物理組件是用軟件模擬的,所以Windows系統是不知道的。
這個概念也適用于區塊鏈網絡:一個單獨的虛擬機組件與共享賬本一起存在,它允許計算任務被執行。這意味著,除了存儲余額或余額變化的共享賬本外,還有一個單獨的計算組件來計算余額。這個計算組件也可以用于簡單的余額計算之外的更復雜的邏輯。這就是為智能合約鋪平道路的原因——后面會詳細介紹。第一個獲得廣泛成功的此類系統是以太坊虛擬機。
Binance.US正尋求以45億美元估值融資5000萬美元:金色財經報道,據知情人士透露,Binance.US正尋求以45億美元的估值籌集至多5000萬美元的額外融資。該公司此前在4月份完成了2億美元的種子輪融資,估值達到45億美元。上述知情人士表示,此次融資將針對“戰略合作伙伴”,并不代表新一輪A輪融資。(coindesk)[2022/6/22 4:44:30]
BitcoinScript也可以被認為是一個虛擬機,因為它是比特幣網絡的計算組件,節點用它來驗證UTXO和執行交易。然而,比特幣腳本是相當有限的,無法運行像EVM那樣的復雜邏輯。
以太坊虛擬機
EVM是一個模擬特定計算機系統的軟件,在以太坊節點上運行。EVM的主要目的是計算以太坊網絡的世界狀態,并運行智能合約。EVM的創新之處在于兩個方面:
EVM實現了世界狀態的去中心化計算,包括執行有點復雜的智能合約的計算邏輯
EVM能夠在去中心化的區塊鏈網絡上自主和無信任地執行代碼
當一個網絡聲稱“EVM-兼容”時,這意味著該網絡可以部署和執行為以太坊虛擬機編寫的智能合約。EVM是最流行的虛擬機,并已成為Web3中智能合約計算的事實標準。具有EVM兼容性允許較新的網絡通過使項目更容易移植到他們的網絡來引導其生態系統。這種標準化也使得網絡之間的代幣橋接更加容易,因為兩個網絡可以運行相同的代碼。
關于EVM架構的一個夢幻般的自我解釋的深入研究,我引導讀者去看TakenobuT.的這篇內容。
智能合約
一個智能合約是一個存儲在去中心化網絡中的程序,當滿足特定條件時,可以由虛擬機自主執行。這些條件可以是指當網絡上發生特定事件或當用戶與智能合約互動時被激活的任何條件。智能合約的復雜計算能力也使ERC-20代幣和NFT得以創建。
智能合約和EVM是推動行業超越區塊鏈和加密、實現Web3概念的原因:由于這些創新,有可能擁有可組合的應用程序,在不可審查的去中心化網絡上自主運行。這些創新的結合就是Web3龐大的dApp生態系統的由來。
dApp是去中心化的應用程序,它使用智能合約的組合,通常也是一個容易訪問的基于網絡的前端,以實現與區塊鏈網絡的互動。dApp的智能合約也可以通過節點直接訪問,但是基于網絡的前端大量減少了訪問的障礙。在今天,最知名的dApp大概是Uniswap.
Solidity語言、Rust語言和BitcoinScript
Solidity是以太坊區塊鏈上最常用的智能合約的編程語言。開發者用Solidity編碼他們的智能合約,將其編譯成字節碼,然后將字節碼部署到網絡中。Solidity是一種面向對象和靜態類型的編程語言,它是基于C++、Python和JavaScript而建立的。
Rust是Solana、Polkadot和NEAR鏈上最受歡迎的智能合約的編程語言之一。Rust是一種低級靜態類型的編程語言,以其速度、效率和設計最佳實踐而聞名。雖然它是一種較年輕的語言,但它在2020和2021連續兩年被StackOverflow評為最受歡迎的編程語言。就像Solidity一樣,代碼被編譯,字節碼被部署到各個網絡上。
只要代碼可以被編譯成網絡可以閱讀和解釋的字節碼,區塊鏈接受各種編程語言。這也適用于比特幣網絡,它的主要腳本語言是BitcoinScript.BitcoinScript和Solidity/Rust之間的區別是,BitcoinScript實際上不是一種編程語言,而是一個用于交易的腳本系統。在比特幣網絡中,腳本是與每筆交易一起記錄的指令清單,它描述了下一個想花被轉移的比特幣的人如何獲得它們。請記住,UTXO是未使用的交易輸出;因此,每一個輸出都可以有附帶的要求,需要滿足這些要求,才能允許輸出成為另一個交易的輸入。
圖靈完備性
從圖靈完備性的角度來看,Solidity/Rust和BitcoinScript之間的差異變得更加清晰。圖靈完備性指的是一個抽象機器的概念:在給定了無限的時間和計算資源的情況下,只要這個問題能夠被編碼或邏輯地構建,它就能夠計算任何問題。
更復雜的邏輯問題需要使用條件語句和循環,Solidity和Rust作為完整的編程語言支持這些。然而,BitcoinScript不支持這些。這是因為比特幣網絡不允許復雜的計算,而是依賴于一個相當簡單的指令集,只圍繞交易的想法工作。雖然這使得比特幣網絡不容易出錯,可以說更安全,但它確實限制了它的可編程性。
以太坊、Solana和Polkadot可以被認為是準圖靈完備的。盡管由于Solidity和Rust的存在,它們能夠進行復雜的計算,并且在理論上只要有足夠的時間就能解決任何邏輯問題,但它們受到gasfee的限制。Gasfee是網絡為執行任何計算任務所收取的費用。雖然時間和計算資源在理論上可以是無限的,但原生網絡代幣的數量可能不是。因此,雖然理論上這些網絡是圖靈完備的,但在實踐中,它們最多只能被視為準圖靈完備的。
圖靈完備性和非圖靈完備性的區別對于更好地理解網絡的能力和在網絡上可以建立的東西非常重要。圖靈機和圖靈完備性還有更多的細微差別,感興趣的讀者可以在這里閱讀更多內容。
從EIP到ERC
ERC指的是以太坊區塊鏈中使用的技術編碼標準。ERC規定了以太坊智能合約必須遵循的一些規則和行動,以及如何實現這些規則和行動。
然而,ERC已經是一個約定俗成的標準,已經包含在開發者同意使用的以太坊文檔中。在一個ERC成為ERC之前,它開始是一個EIP.EIP本質上是非常詳細的論壇帖子,用戶可以在其中對以太坊區塊鏈和生態系統的變化進行爭論、討論和投票。
這個系統在整個Web3生態系統中被非常廣泛地使用,從網絡到dApp.
ERC代幣標準
基于ERC的代幣建立在以太坊網絡上,但它們在技術上有別于以太坊代幣,后者是以太坊網絡的原生代幣。以太坊代幣被定義為網絡的一部分,是網絡的底層“貨幣”,以gasfee的形式支付交易和智能合約執行,而基于ERC的代幣被定義在智能合約中。
ERC標準的智能合約定義了代幣的所有參數和所有行為,可以使用etherscan.io或任何其他與EVM兼容的網絡的區塊探索器在線查看。區塊探索器是一種工具,它允許你查看存儲在區塊鏈上的實時和歷史信息。由于這種標準化,基于ERC的代幣的行為是可預測的,允許dApp和其他智能合約與任何使用這些標準的智能合約互動。
接下來,我們會介紹ERC-20、ERC-721、ERC-1155和ERC-4626標準。前三個標準涉及到創建同質化和非同質化數字資產,這些數字資產在區塊鏈上生存,而ERC-4626標準規范了應用于ERC-20的收益功能。
ERC-20代幣
ERC-20是一個同質化代幣的標準。同質性是指一種資產可以與另一種相同的資產互換,而兩種資產是無法相互區分的。例如,一張一美元的鈔票是同質化的,因為它可以與任何其他一美元的鈔票進行交換。
ERC-20標準允許在EVM兼容的網絡上創建同質化代幣。Curve代幣、Uniswap代幣或AAVE代幣都是同質化代幣的例子,但法定貨幣的數字代幣也是ERC-20,例如USDT或USDC,它們與美元掛鉤。
ERC-721代幣
ERC-721標準定義了非同質化代幣。NFT的獨特之處在于它的名字:代幣是不可偽造的,這意味著每個代幣都是獨一無二的。NFT是一個令人興奮的發展,因為每個NFT的內容可以是創建者想要的任何內容,從個人照片到房地產的契約或任何其他證書。NFT實現了對任何物理或獨特數字資產的可公開驗證的數字所有權。
流行的NFT包括Cryptopunks、BoredApeYachtClub和EthereumNameService.
ERC-1155
ERC-1155是所謂的“多元代幣”:它們結合了ERC-20和ERC-721的功能。這意味著,除了通過多個“獨特的”同質化資產,例如游戲中的一把劍和100個供應量來實現新的用例之外,也可以在一個智能合約中管理多個代幣類型。
將這些功能合并到一個智能合約中,可以使智能合約在EVM中使用的空間方面創造效率。這也為更大和更復雜的項目創造了簡單性,因為多套代幣可以從一個智能合約中管理。
流行的ERC-1155包括ENJINNFT,它使用ERC-1155來跟蹤基于區塊鏈的少數游戲中的資產,以及可能需要定期創建大量獨特資產集作為一個合同的一部分的票務應用。使用ERC-1155的項目例子包括TheSandboxMetaverse、Fanz和AzureHeroes.
ERC-4626
ERC-4626將代幣金庫標準化。保險庫是一個有收益的智能合約,接受ERC-20代幣存款,并向存款人提供另一種代幣的代幣獎勵。它本質上是一個多簽名的資產管理智能合約,產生代幣作為存款的獎勵形式,以后可以兌換最初存入保險庫的代幣。
例如,xSushi是一個有收益的代幣,可以兌換成SUSHI代幣,基本上代表用戶在SushiDeFi協議中產生收益活動的份額。
這個代幣標準使開發者能夠接受任何ERC-20代幣,而不必手動整合每個代幣,并考慮他們的具體設計決策。這減少了可能導致資產損失的編碼錯誤的風險。
YearnV3是第一個使用ERC-4626標準的主要協議,Balancer和RariCapital等協議也已開始實施該標準。
區塊鏈與有向無環圖的對比
有向無環圖是一種不同的數據結構方法,一些項目將其作為區塊鏈共享賬本結構的替代方案。區塊鏈的交易包含在區塊中,區塊按時間順序進行驗證和連鎖。區塊鏈被復制到網絡上的所有節點。
在DAG中,交易被逐一驗證,每個交易都與下一個交易相關聯。為了驗證一個交易,由網絡決定的另外兩個交易也必須被驗證。這導致了一個類似于網絡的結構,可以很容易地進行擴展,并允許交易的并行計算,這可以大大增加吞吐速度。由于驗證交易是非常直接的,礦工在這個系統中扮演的角色非常小:任何與網絡互動的用戶都可以驗證其他用戶的交易,這大大降低了交易成本。
有向無環圖這個詞很好地描述了這種結構:
有向:數據結構只能在一個方向上移動
無環:當沿著數據點之間的定向路徑移動時,不可能碰到之前的數據點
圖:由節點/頂點和邊組成的非線性數據結構
雖然這種結構在交易吞吐量、驗證速度和交易成本方面帶來了好處,但DAG面臨著完全不同的挑戰。雖然在理論上這個系統允許強大的去中心化,但交易的減少在理論上會導致網絡安全的降低:更少的交易意味著更少的隨機驗證者,這增加了單一驗證者或一組驗證者控制大多數交易的可能性。如果一個實體控制了大部分的網絡活動,那么將惡意活動引入網絡就會變得更加容易。
為了應對上述挑戰,基于DAG的網絡已經轉向中心化的解決方案:實施中央協調人,為待驗證的交易提供路線,控制具有更高權限的“證人”驗證人,或直接使驗證網絡私有化。
盡管有這些挑戰,DAG網絡填補了Web3生態系統中的一個重要空白:它們是稍微更中心化一些的高吞吐量網絡,可以管理繁重的交易負載,并且隨著Web3主流應用的進展,會發現更多的使用案例。
單片式與模塊化區塊鏈
去中心化網絡是復雜的系統,由各種組件組成,這些組件相互操作,創造出無信任和不可改變的網絡。比特幣、以太坊、Solana、Polkadot和NEAR等網絡都被認為是單片式區塊鏈——它們都是“由單片形成”的網絡,一個組件的任何變化都需要整個網絡的更新。模塊化區塊鏈拿出這些不同的組件并讓它們被換成其他組件。
模塊化區塊鏈系統的各個組成部分包括:
執行層:交易執行和智能合約
結算層:交易驗證、交易結算
共識層:共識機制
數據可用性:共享賬本
通過將系統拆分成多個組件,可以對每個組件進行優化,提高每個組件的效率和安全性。Layer2,將在本系列的下一部分中詳細介紹,可以說是進入模塊化的第一步。Layer2卸載了執行層,在一個單獨的網絡上執行交易和智能合約,并將結果反饋給Layer1單體網絡,在那里管理結算、共識和共享賬本。
雖然模塊化有許多好處,但模塊化系統只有在其最薄弱的環節才會強大。有了模塊化組件,個別組件就有可能更容易成為目標。此外,給網絡增加模塊化也引入了一個新的復雜程度,無論是從技術角度還是從網絡原生代幣的價值角度,都要確保網絡的正常運行。如果結算層可以被另一個使用不同代幣的結算層所取代,那么一個網絡首先要證明代幣的存在是有難度的。
盡管有這些挑戰,模塊化區塊鏈的概念為新項目和新技術的發展提供了一個令人興奮的方向,這可以幫助擴大和發展Web3生態系統。流行的模塊化區塊鏈項目包括Celestia和Cosmos.
Layer1網絡總結
Web3是一個龐大的概念,結合了區塊鏈、加密和建立在它們之上的生態系統以及相關技術。
比特幣是普及去中心化區塊鏈技術的layer1網絡,而以太坊是提供準圖靈完備計算功能的網絡,實現了智能合約。正是通過對早期區塊的數據進行哈希運算來串聯數據塊的想法,再加上在許多節點上分發所有存儲數據的副本,才實現了不可更改性和數據的永久性。除了這些技術原素,節點基礎設施也必須到位,才能發揮作用:如果網絡上只有一個節點,那么網絡本質上是中心化的,并面臨著中心化的挑戰:數據可以被改變,被刪除,對它的訪問可以被節點限制。
除了基礎數據結構,還有一個問題是網絡上的節點如何知道提供給它們的數據是否正確。這被概括為“拜占庭將軍的問題”。比特幣通過其工作證明共識算法解決了這個問題,該算法要求網絡上的節點解決計算量大的加密難題,以證明他們已經完成了驗證一個區塊所需的驗證工作。存在替代性的共識算法,例如Proof-of-Stake,它需要的能量要少得多,而且被認為對環境更好。
比特幣和以太坊是撰寫本文時最受歡迎的兩個區塊鏈網絡,它們使用的記賬模式有很大的不同。比特幣網絡使用UTXO模式,而以太坊網絡使用賬戶模型。UTXO模型可以被認為是一個"驗證系統",每一個UTXO都是一個交易的賬單。賬戶模型更像一個賬戶和余額的數據庫,隨著每個新區塊被添加到區塊鏈上而更新。
以太坊的計算組件被稱為“以太坊虛擬機”,允許執行智能合約。智能合約是存儲在去中心化區塊鏈網絡上的應用程序,可以根據可編程的觸發標準自主執行。根據你所使用的區塊鏈,智能合約可以用Solidity、Rust或其他編程語言編寫。
智能合約的標準化是必要的,以實現智能合約之間更好的互操作性。ERC是已經在以太坊文檔中固化的編碼標準,是“成功”的EIP.EIP是以太坊生態系統中任何人都可以提出的建議,并開放給任何人查看、討論和投票。如果一個EIP被投票通過,提議的變化就會被應用到網絡中。四個最流行的ERC代幣標準是ERC-20,ERC-721,ERC-1155和ERC-4626.
雖然區塊鏈一直是Web3去中心化網絡最流行的賬本格式,但隨著現有的結構被調整為特定的用例,替代格式已經出現了。有向無環圖是這種替代結構的一個例子,它依賴于驗證交易而不是完整的區塊。模塊化網絡是我們需要重新思考現有結構這一想法的延伸。模塊化網絡旨在將分散的網絡分成不同的功能層,每個功能層都可以單獨優化。
Tags:區塊鏈比特幣以太坊區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢比特幣中國官網聯系方式40億比特幣能提現嗎比特幣最新價格行情走勢以太坊幣是什么幣
比特幣多頭連續第二天緊逼19500美元的關口,試圖將這一關鍵水平從阻力位變為支撐位。每次試圖克服阻力的嘗試都在接近19550美元時遭到拒絕,但比特幣從12月14日下跌到19050美元后迅速反彈表.
1900/1/1 0:00:0010月24日 P2E游戲開發商CatheonGaming將在10月24日推出新代幣catheon據TheBlock報道.
1900/1/1 0:00:00根據Glassnode的數據,超過1.3萬個比特幣地址的價值至少為100萬美元。持有107個BTC就能成為百萬富翁報告:全國已有超過33個省市出臺區塊鏈專項政策:10月31日消息,央企區塊鏈合作.
1900/1/1 0:00:00之前區塊鏈研習社翻譯了,EOS節點GreyMass出品的介紹EOS系統通脹中心化問題的文章,引起了較大凡響,點擊閱讀《Staking那么火,但通脹加速中心化》,原標題為《通脹.
1900/1/1 0:00:00提前布局尚未發布治理代幣的NFT項目。新的去中心化NFT市場sudoswap最近公布了其$SUDO代幣計劃.
1900/1/1 0:00:00Tezos是最早提出鏈上自治的解決方案的項目,它是一個自修正具有圖靈完備智能合約的區塊鏈網絡,通過集成一個正式的鏈上機制,用于提議、選擇、測試和激活協議升級,而不需要通過硬分叉來進行決議等行為.
1900/1/1 0:00:00