比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

Substrate 極簡概括:功能、特性與共識_TRA

Author:

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

今天我們將討論 Substrate,一個可以幫助你構建自己的自定義區塊鏈的庫。Substrate 是由 ParityTech 研發出來的,也為 Polkadot 提供了基礎。

什么是 Substrate?

來自牛津字典的解釋:A substance or layer that underlies something, or on which some process occurs.(在某些事物的下面,或者可以基于它之上創建一些事物的物質或層)

顧名思義,Substrate 可以用來生長或在其上建造某種東西。在我們的案例中,我們可以構建區塊鏈,或者在 Polkadot 的案例中,可以構建一個完整的區塊鏈家族。

我為什么需要 Substrate?

軟件歸根結底就是抽象。

計算機科學的歷史表明,我們不斷地得到越來越多的抽象:從離散邏輯到集成電路和 CPU;從機器代碼到匯編,從匯編到 C 語言,再到 C++、Rust、Haskell 等等。

編程 APIs 也是如此。例如,現在幾乎沒有人用純 HTML 編寫 web。

“每個問題都可以通過引入另一個抽象層來解決。除了很多抽象層的問題……所以我們發明了框架。”—— 改寫于安德魯·柯尼格的《金融時報》。

每個抽象層都試圖解決一個特定的問題。那么,制造 Substrate 是為了解決什么問題呢?事實證明,在開始實施全新的區塊鏈解決方案之前,你需要考慮很多事情:

MakerDAO創始人于社區闡述Spark Protocol預挖空投計劃及SubDAO挖礦經濟模型:8月10日消息,MakerDAO創始人Rune Christensen發起關于SparkDAO SPK的預挖空投;SubDAO農場概述的社區提案,提案概述借貸協議Spark Protocol潛在的SPK預挖空投計劃,并將審查第二階段將啟動的一般SubDAO挖礦經濟模型。

其中該提案建議回溯計算哪些用戶從 Spark Protocol 借款,并從 EDSR 將借款利率提高到 5% 之刻開始計算,其中按照他們所抵押的波動性資產的金額及時間長短比例進行代幣分配,用戶無需采取任何特殊行動即可有資格參與空投;SubDAO 10 年總共會分發 20 億枚 SubDAO 代幣給每個 SubDAO 參與者,在前兩年中,創世農場的速度是每年 5 億枚 SubDAO 代幣,其中每年有 3.5 億枚 SubDAO 代幣用于 NewStable 農民,1.5 億枚 SubDAO 代幣用于 NewGovToken 農民,接下來兩年(第三至第四年),創世農場的速度為每年 2.5 億枚 SubDAO 代幣,其中每年有 1.75 億枚 SubDAO 代幣用于 NewStable 農民,7500 萬枚 SubDAO 代幣用于 NewGovToken 農民。[2023/8/10 16:17:23]

為什么還需要另外一個區塊鏈?!

各種密碼原語:加密、簽名、RNG1 等

共識算法和容錯投票

Proof of Waste、Proof of Stake、Proof of Authority? 還是其他完全不同的東西?

塊結構和高效存儲、消息序列化

P2P 網絡、對等發現、區塊和交易互通

DeFi研究員:Uniswap推出Substrate鏈的可能性非零,可能是作為Layer2區塊鏈:金色財經報道,DeFi研究員Ignas詢問了Compound Finance提出的區塊鏈。Ignas回顧了Compound Finance于2021年宣布的Substrate構建的Compound鏈。根據Ignas的說法,Uniswap推出Substrate鏈的可能性非零,可能是作為Layer2區塊鏈。他認為這樣做會給Uniswap原生代幣UNI帶來更多的效用和估值,以實現去中心化。考慮到MakerDAO已經推出了原生區塊鏈,Ignas認為這是可能的。

Ignas引用了一份報告,該報告指出MakerDAO打算創建一個專有的區塊鏈,并將其稱為“NewChain”。根據該報告,NewChain將被橋接,但不一定取代支撐MakerDAO平臺的以太坊區塊鏈,這意味著NewStable、NewGovToken、Dai和MKR將繼續在以太坊區塊鏈上運行。然而,它們將受到通過安全橋運行的治理后端的保護。[2023/7/21 11:08:06]

狀態機、執行運行邏輯、智能合約

輕客戶端支持

盡管 Substrate 沒有解決第一個問題,但 Substrate 可能會幫助你解決剩下的問題,因為它提供了現有的實現工具。這些都是基于我們多年開發區塊鏈的經驗而精心設計、編寫和測試。

當然,你也可以親自去實現所有這些任務,但我可以說,你最終可能會得到一個未經測試且沒有很好文檔記錄的解決方案。更不用說,通常你自己設計或實現的加密算法會被認為是一個非常糟糕的想法,除非你是一個密碼專家,而且你真的知道你在做什么。

所以,通過提供典型算法的通用實現,Substrate 可以讓你集中精力在項目本身:鏈的業務邏輯,即其狀態機。

Substrate生態首個資產跨鏈路由在Phala平臺上線:4月7日消息,去中心化云計算平臺Phala Network 宣布正式推出可橋接波卡平行鏈、EVM和其他公鏈的跨鏈路由產品 SubBridge。該產品是目前第一個支持波卡平行鏈生態與EVM等其他生態進行傳輸的跨鏈路由。該產品主要基于 XCM 和 ChainBridge 的跨鏈協議,實現資產的跨鏈傳輸。

目前該產品已經支持如Khala和Karura等平行鏈和以太坊的雙向跨鏈,未來將支持更多平行鏈和其他生態進行資產跨鏈。[2022/4/7 14:10:31]

讓我們來看看區塊鏈中最重要的部分,看看 Substrate 可以提供什么。

作為永久存儲的區塊鏈

任何區塊鏈的唯一目的,是提供一種可驗證的、全球性的、永久的存儲和轉變數據的方法,這意味著所有各方都要在任何時間點上,以一種零信任的方式來檢查和同意什么樣的價值可以被認可。而且,一旦這些數據被封存,就應該是永久性的,根據共識,不可能對其進行篡改。

此屬性廣泛用于加密貨幣,其中永久存儲包含帳戶密鑰及其實際余額。然而,需要注意的是,加密貨幣并不是唯一可能的區塊鏈應用。基本上,幾乎所有需要全局一致、永久存儲和可驗證交易歷史記錄的系統都可以通過某種方式使用區塊鏈實現。

Substrate 提供高效的存儲,非常容易使用,并且與 WebAssembly(Wasm) runtime 緊密集成。

作為功能的區塊鏈

為了根據待定的操作去更新鏈的狀態并改變其存儲,我們需要有一個決策點。

這些決策點可以表示為一個函數,它接受當前狀態和一組待定的操作,并產生另一個應被視為新的狀態的狀態。在區塊鏈世界中,這樣的函數被稱為狀態轉換函數(state transition function),簡稱 STF。

Subscan新增支持KILT Protocol數據:官方消息,基于Substrate的區塊鏈瀏覽器Subscan新增支持KILT Protocol數據,該瀏覽器還支持Polkadot、Kusama、Kulupu Network、Darwinia、Edgeware、Centrifuge數據。[2021/6/27 0:09:58]

Substrate 可以讓你以一種可管理和可移植的方式來定義這樣一種功能。跟在網頁上執行的JavaScript 非常相似,你可以編寫一組統稱為 runtime 的函數,這些函數將充當 STF。此外,這樣的實現將是可移植的,并不依賴于處理器架構、操作系統、瀏覽器,或者任何其他依賴平臺的方式。

事實上,即使是 Substrate 的底層技術都是密切相關的。Substrate 使用 WebAssembly 作為其 runtime 的通用語言,這正是 Mozilla、Google 和 Apple 等大公司目前正在集成的技術,在編寫 web 時作為一種更快但仍然兼容的 JavaScript 替代品。

安全和速度

用 Wasm 編寫鏈的邏輯和智能合約,意味著你將擁有最好的工具來以快速可靠的方式執行邏輯。但是,Substrate 有一種方法可以更快地執行代碼,并且沒有任何虛擬機的開銷。

Substrate 最革命性的部分是,包含 STF 的 runtime 圖像與其他有效載荷一起存儲在鏈上。這意味著  runtime 和整個鏈的業務邏輯可以以安全和可驗證的方式進行更新。更重要的是,由于 Substrate 及其 Runtime Module Library3  都是用 Rust 編程語言編寫的,所以它們可以被翻譯成本地代碼和 Wasm。

Nodle從Stellar移至Substrate網絡:金色財經報道,于2017年啟動的物聯網(IoT)平臺Nodle宣布將從Stellar區塊鏈轉換至Parity Technologies的Substrate網絡。Substrate使該團隊可以自定義區塊鏈,Nodle被稱為Arcadia。[2020/4/1]

在任何時候,客戶端軟件都有兩個編譯 runtime 的副本:一個是在軟件中本機編譯的,另一個是要在 VM 中執行的 Wasm 圖像。執行 runtime 函數時,客戶端軟件檢查 runtime 的鏈上 Wasm 版本是否與其編譯的本機內置版本匹配。這樣做后,客戶端軟件將 runtime 函數的執行委托給本機代碼版本。

無分叉升級

當 runtime image 在鏈上更新時,某些客戶端還沒有更新其軟件。在這種情況下,他們的節點將通過在 Substrate 的集成 Wasm 虛擬機上解釋 runtime 來執行正確的版本。因此,在任何情況下,網絡上的所有節點總是能夠正確地同步鏈(盡管效率不同),從而防止鏈分叉。

網絡

區塊鏈依賴于有許多參與者通過網絡進行通信。典型的解決方案是使用點對點技術來進行這種通信,而 Substrate 也不例外。P2P 是一組用于創建分布式網絡應用程序技術的通用名稱。

其主要思想是建立一個自我維持的網絡環境,在這個環境中,每個參與者(通常稱為節點)都能夠在網絡中運行,而無需事先配置或被授權。

為了確保節點可以在任何時候加入或離開網絡,而不影響整個網絡的連接性,Substrate 使用了 Rust 實現的 libp2p(https://github.com/libp2p/rust-libp2p) ,這是一個很有前途的網絡堆棧,它擁有建立分布式網絡環境所需的一切。

自定義消息

在最簡單的情況下,你甚至不需要考慮網絡,因為 Substrate 為你做了一切。你只需提供區塊鏈的狀態轉換功能,并將所有網絡交互留給 Substrate。但是,如果區塊鏈要求發送自定義消息,則可以通過提供明確自定義消息及其處理邏輯的特定的網絡協議,來自定義和擴展網絡子系統。

共識

有一個允許你從一個狀態轉移到另一個狀態的狀態轉移函數是好的,但還不夠。你還需要一種方式讓所有節點都同意下一個狀態應該是什么。

作為一個銀行賬戶的擁有者,你最不想遇到的情況就是你和銀行在 “你的賬戶里有多少錢“ 上存在分歧。區塊鏈允許各方在不信任對方的情況下達成共識(因此零信任),即使在惡意參與者試圖破壞系統并竊取你的資金的情況下也是如此。

這是使用一個具有拜占庭容錯(BFT)屬性的共識算法完成的。如果一個系統是 BFT,這意味著節點可以達成一致,即使其中的一部分表現惡劣,包括串通、截留消息和離線。BFT 共識系統能夠抵抗不同程度的網絡問題,在這些問題中,消息可以重新排序或延遲。一些 BFT 共識系統的設計使得當節點行為不當(例如,一次投票兩個區塊)時,它們可以受到懲罰,并在鏈上削減他們質押的 token。

對于支持在 Substrate 中的每個共識引擎,都將有一個 runtime 模塊,用于處理錯誤行為的證明。評估錯誤行為的影響可以由 runtime 確定。

從數學上證明,只要網絡中三分之二的節點沒有惡意并按照協議運行,該協議是可行的。這就是為什么在網絡中有很多節點很重要的原因之一。

共識是任何區塊鏈應用程序的關鍵部分。幸運的是,Substrate 提供了一個已經可用的 BFT 共識,幾乎可以開箱即用。

根據使用場景的不同,你可以使用現有的塊創作邏輯,也可以提供自己的塊創作邏輯。在后一種情況下,你可以使用 BFT 的通用版本并使其適合你的需要。

Substrate 將繼續發展,并有更多的共識算法加入到其中(https://medium.com/polkadot-network/grandpa-block-finality-in-polkadot-an-introduction-part-1-d08a24a021b5),包括在 Web3 基金會開發的 GRANDPA(GHOST-based Recursive Ancestor Deriving Prefix Agreement) 的最終確定小工具。

另外,由于 Substrate 是一個完全可擴展和可定制的框架,因此可以定義你自己的自定義共識算法。事實上,Substrate 是如此的靈活,它可以支持不是基于經典區塊鏈架構的解決方案。例如,我們正在研究如何通過設計一個不基于傳統塊概念的共識,來解決區塊鏈吞吐量問題。

輕客戶端支持

早期的區塊鏈實現是這樣設計的:網絡中的每個節點都在本地維護完整的區塊鏈數據庫。這現在被稱為 full client(完整客戶端),這意味著客戶端擁有作為網絡節點運行所需的一切。

完整客戶端(也稱為全節點)對于鏈安全非常重要。但是隨著區塊鏈的增長,客戶的數據庫變得越來越大。目前,主流加密貨幣擁有數百 GB 的數據庫。

當整個節點初始化時,它需要做的第一件事是與網絡的其他部分同步。由于安全原因,這樣的一個節點不能按原樣隨機從一個節點下載數據庫,而是需要從頭開始構建自己的數據庫,重新同步 genesis(鏈的第一個區塊)以來的所有交易。除了計算上的昂貴,這個任務還需要通過網絡傳輸大量的數據。

我想每個人都會同意,下載半兆字節的數據到你的手機上只是為了買一個三明治… 這是不切實際的,要不就是很荒謬。這就是為什么,幾乎從一開始,區塊鏈開發人員就開始考慮降低節點維護成本的方法,包括存儲空間和網絡吞吐量。

最終,輕客戶的概念誕生了。簡言之,輕客戶端是區塊鏈節點的一種操作模式,其中只有最重要的數據存儲在本地,網絡交互減少到最低限度,同時為幾乎所有可能進行的交互保留可接受的安全性。

適度的資源需求最終允許輕客戶端節點輕松引導,因此可以在移動設備上執行。

不幸的是,將輕客戶端支持集成到現有區塊鏈中是一項嚴肅的任務。在區塊鏈的初始設計中集成輕客戶端會更容易的多。Substrate 是在考慮到輕客戶端支持而專門設計的。基于 Substrate 構建的區塊鏈具有現成的輕客戶端支持。

總結

在這篇文章中,我們略讀了 Substrate 框架的主要目標和特性。要涵蓋 Substrate 的所有方面需要更長的文章,但希望你現在已經對這些概念有了大致的了解。雖然這還不足以開始編寫你的代碼,但至少現在你應該知道期待什么。

要了解更多信息,請查看 Jack Fransham 之前的文章《什么是 Substrate》:https://www.parity.io/what-is-substrate/。

如果你想深入研究并開始實現你的區塊鏈,最好的開始是 Parity Substrate Wiki(https://wiki.parity.io/)。

另外,不要猶豫查看源代碼,特別是 ReadMe 文件:

(https://github.com/paritytech/substrate)。

注釋

RNG 代表隨機數發生器。并非每個 RNG 都適合區塊鏈應用。

Substrate 本身現在正處于非常活躍的發展階段。代碼庫非常不穩定,文檔工作正在進行中。我們正在積極地填充 wiki,這是一個尋找更多細節的好地方:https://wiki.parity.io/

Runtime module library 是一組可選的 Rust 大木箱,用于處理常見任務,如參數序列化和調用分派,并幫助你以最小的成本構建 runtime。這個庫是完全可選的,所以從頭開始設計自己的 runtime,或者使用任何可以編譯成 Wasm 的語言都是非常好的。除了 Rust 之外,目前只有 C 語言和 C++ 支持 Wasm 作為目標體系結構。

原文:https://www.parity.io/substrate-in-a-nutshell/

翻譯:PolkaWorld 社區

Tags:SUBSUBSUBSTRASUBS幣SubscriptionsSTRAY幣

中幣下載
行業研報:區塊鏈如何解決融資難題_ARE

Overview 概述 疫情之下,大量的企業都在艱難地維持運轉,根據《中歐商業評論》中的報道顯示,賬上現金余額能維持企業生存的時間,67.1%的企業可以維持兩個月.

1900/1/1 0:00:00
金色薦讀丨Alphabet:從投資到研發、應用 谷歌區塊鏈正在追趕_QUO

憑借搜索及廣告業務,谷歌(本文中"谷歌"指稱原搜索巨頭谷歌重組后的母公司Alphabet【1】)在互聯網領域一直處于"霸主"地位,最新數據顯示.

1900/1/1 0:00:00
以太坊技術引介:準無狀態下的同步實驗_TAT

本實驗用到的原始數據和腳本:https://github.com/mandrigin/ethereum-mainnet-resolver-witness-stats引言有一種辦法也許能加速初始同.

1900/1/1 0:00:00
美國制藥行業24家公司提交試點報告 提出區塊鏈處方藥追蹤系統_GER

來自美國藥品供應鏈中的24家公司共同向美國食品藥品監督管理局(FDA)提交了MediLedger DSCSA試點項目最終報告,提出了用于美國處方藥的可互操作追蹤系統的區塊鏈系統.

1900/1/1 0:00:00
項目周刊 | 除了比特幣、以太坊本周其他項目進展如何?_區塊鏈

區塊鏈行業發展迅速,行業項目進展日益增多,為此金色財經特整理了本周主流項目以及明星項目的進展,包含二級市場、社區以及投融資等.

1900/1/1 0:00:00
金色觀察 | 政府繳獲的數字貨幣怎么處理?_加密貨幣

各國在打擊涉及加密貨幣的違法活動中,繳獲的贓款贓物中常會有加密貨幣,如何處理就成了一個大問題。芬蘭海關最近就產生了這樣的困擾,當年繳獲的1666枚BTC,價值已經從70萬歐元上漲至1500萬歐元.

1900/1/1 0:00:00
ads