摘要
您熟知並喜愛的區塊鏈有一個相當嚴格的結構。作為開發人員,在這種情況下您有兩種選擇:在受限的環境中建立應用程序,或進行程式碼分叉並創建自己的鏈。然而,創建自己的鏈並非易事——您還需要啟動網路並決定所使用的共識機制。
Tendermint是用來啟動區塊鏈的開源軟體,讓您可以用任何語言編寫應用程式。更厲害的是,它可以與其他區塊鏈進行通訊。
創建加密貨幣或區塊鏈網路需要投入大量工作,遠不止於初始化資料庫.它需要在安全性、去中心化和可擴展性之間為激勵和權衡取得微妙的平衡。
有些團隊已經探索了一系列不同的方法,來建立最強大的區塊鏈生態系統,這也在情理之中了。在這篇文章中,我們將詳細了解其中一個方法:Tendermint。
如果您對區塊鏈有所了解,就會感覺Tendermint的內容大多似曾相識。在深入研究之前,我們先回顧一些關鍵概念。
Tendermint是一種區塊鏈堆疊。比特幣和以太坊等同樣也是區塊鏈堆疊。請記住,這並非只關乎區塊鏈資料庫本身,還關乎節點的對等網路、它們如何相互作用,以及您透過交易和智慧合約可以做到的事情。其目標是在即便不信任其他任何人的情況下,讓所有人都統一一種狀態(例如資料庫的快照)。
在很大程度上,如今的主要區塊鏈已經想出了達成這一點的“秘籍”。然而,它們通常依賴一體化架構:這是一個軟體工程概念,意味著元件相互連接且相互依賴。您不能從中取走一部分,然後插入到別的架構中。
如果您想確保彈性,一體化架構並非理想的選擇。在相反類型的模型(具有模組化架構)中,您可以在不必擔心破壞任何架構的情況下調整單個元件。對於一體化架構,您在升級單一元件時必須確保每個元件保持相容。
現在,我們了解其中的差別,可以繼續來了解Tendermint協定。
您可能已經知道,比特幣最大的創新之處在於它解決了所謂的拜占庭將軍問題。在這裡我們不會詳細討論這個問題(如果您有興趣,請參閱我們關於拜占庭容錯的文章)。您只需要知道,它詳細說明了參與者必須在分散式環境中進行溝通的場景。
這些參與者不知道其他人是否在說謊,也不知道他們之間發送的訊息是否被竄改。即便存在這些問題,如果參與者可以針對一組事實達成一致,則係統會被認為存在拜占庭容錯。
顯然,在去中心化的環境中,正確掌握這一點至關重要。不具有拜占庭容錯的加密貨幣並不能真正發揮作用——您需要某種中心化組織進行協調,這就與目的背道而馳。如果很多數位貨幣一樣,比特幣透過使用工作量證明(PoW)共識演算法來解決這個問題。
我們已經了解一體化/模組化架構之間的區別,也知道去中心化加密貨幣網路需要具備拜占庭容錯能力。接下來我們談談我們通常在區塊鏈中看到的三層架構:應用層、共識層和網路層。
共識層和網路層是讓網路節點相互通訊並盡量就一組事實達成一致的地方。應用層則可讓您自行進行操作——好比以太坊的去中心化應用程式和智慧合約或比特幣中的自訂交易。
➟ 想要開啟數位貨幣之旅?歡迎前往幣安購買比特幣(BTC)!
首先,我們來快速澄清一個名詞。在本文中,我們將交替使用“Tendermint”和“Tendermint Core”,因為我們只關注該項技術。
然而,Tendermint是公司的名稱(由最初撰寫白皮書的開發人員Jae Kwon創立),而Tendermint Core是這家公司正在開發的實際軟體。更具體地說,這款軟體有兩個主要組件:核心共識引擎(Tendermint core)和應用程式介面(ABCI)。
Tendermint Core是一個能夠實現容錯的系統。本質上,它是一台大型分散式計算機,可在同一時間向每個人顯示相同的狀態。只要至少三分之二的參與者是誠實的,一切就會順利進行。但幾乎每個區塊鏈都是這樣的,不是嗎?它究竟有什麼特別之處?
首先,Tendermint Core所使用的共識機制就是權益證明(PoS)。每個週期從一組驗證者中選擇一個隨機節點。隨後,該節點必須提出下一個區塊(在所謂的循環系統上進行)。如果其他驗證者對它滿意,就會添加新的區塊,並更新鏈。結果可以即時確定——與比特幣或以太坊不同,它不需要等待確認來確保您的交易有效。
別急,它還有其他特色! Tendermint Core採用模組化架構,應用層與共識層及網路層分離。簡而言之,這意味著您可以將自己的應用程式層插入到堆疊中,而無需擔心繁雜的激勵機製或共識演算法。
這對終端用戶來說並不值得大驚小怪。但對於開發人員來說,能夠利用現有框架就意味著他們可以直接建立應用程序,而無需建立整個網路。來自區塊鏈的資料可以透過管道傳輸到整合層,讓開發人員可以用任何語言編寫軟體。
神奇的事情發生在所謂的應用程式區塊鏈介面(或簡稱ABCI)上。您可以把它想像成樹莓派電腦上的GPIO引腳。您可將各種第三方組件連接到這些引腳,從LED到精心設計的植物灑水系統。 ABCI以類似的方式定義了區塊鏈以及在區塊鏈上運行的應用程式之間的邊界。
應用程式介面和共識機制的分離為分散式應用程式提供了更大的靈活性,可以將任何程式語言合併到它們的業務邏輯當中。
您只要看看Ethermint這個具體範例就可以知道它的用處:Ethermint採用了以太坊程式碼庫,刪除了工作量證明機制,並將以太坊虛擬機建立在Tendermint之上。
這使得一些有趣的操作成為可能。首先,以太坊開發人員可輕鬆將他們的智慧合約移植到新引擎上,或使用Solidity語言編寫新的合約。除了提供以太坊功能之外,Ethermint還可作為以太坊權益證明,讓我們一睹Casper在以太坊2.0中實現的樣子。
“區塊鏈互聯網”的承諾吸引了許多人使用Tendermint協議。互通性是加密貨幣領域期待已久的補充,因為它意味著數百個單獨的區塊鏈將變得交叉相容。
目前,Cosmos SDK已投入大量工作,Cosmos SDK是一個開源框架,讓任何人都能創建特定於應用程式的公共或私人區塊鏈。隨後,這些區塊鏈可以透過所謂的Cosmos Hub接入更廣泛的Cosmos網絡,並在那裡與其他區塊鏈進行交流。
許多熱門的項目已經使用Cosmos SDK來構建,例如幣安智能鏈(BSC)、KAVA、Band Protocol、Terra和IRISnet。
作為一個區塊鏈引擎,Tendermint已經引起了加密貨幣領域眾多利益相關者的注意,包括開發人員和終端用戶。
如果這款軟體持續獲得關注,它很可能成為區塊鏈互聯網的支柱。正如我們所看到的,一些項目已經在啟用Cosmos SDK來實現這一願景。