1. 程式人生 > >是時候選擇Cosmos SDK 搭建區塊鏈了

是時候選擇Cosmos SDK 搭建區塊鏈了

一個去中心化的生態

以太坊是最常見的開發去中化應用 (ÐApps) 的平臺。但作為以太坊上的開發程式語言 Solidity 卻有侷限性,而以太坊虛擬機器 (EVM) 上的交易速度亦越來越慢,所以我們就決定自建區塊鏈,讓使用者們能更多的參與生態的管治機制。在眾多不同的區塊鏈技術中,我們選擇了 Cosmos。Cosmos SDK 提供了一系列的工具讓開發者建立自己的區塊鏈。這些工具突破了以太坊的侷限。Cosmos 令我們可以建立真正屬於自己的加密代幣 (cryptocurrency) 及管治模組,從而真正的成為一個去中心化的社群。

採用權益證明的共識引擎

Cosmos SDK 則是建立在 Tendermint 這個共識引擎。大部份傳統的區塊鏈社群與比特幣及以太坊,是採用工作量證明 (Proof-of-Work, PoW) 作為共識機制,但這機制的弊端多年來都被人詬病,例如,隨著社群越來越大,PoW 所耗的能源就越來越多,交易速度亦越來越慢。試想像下,社交網路上有海量的內容,若其在在一個去中化系統上需要數分鐘以至數小時來完成資料交易,這顯然不是像布樂這樣的社交網路所能接受的。而 Tendermint 則是一個具拜占庭容錯 (BFT) 特點的權益証明共識演算法,它能每秒處理數千宗資料交易。

區塊鏈網際網路 (INTERNET OF BLOCKCHAINS, IBC)

Cosmos 容許不同的使用 IBC 通訊協議的區塊鏈相連,所以 Cosmos 將會是一個由多個區塊鏈組成的網際網路。通過建立區域 (Zones),不同的區塊鏈系統都能夠安插在 Cosmos 樞紐 (Hub),並相互交易各自的代幣,這代表了我們不再需要依賴容易被入侵的中心化交易所來交易代幣,而代幣在交易後能直接存入我們各自的受保護的錢包。通過使用 Cosmos SDK,我們將能夠開發一條區塊鏈,將不同的區域 (Zones) 連結到 Cosmos 樞紐,從而實現去中心化的代幣交易所。Cosmos 將允許更多的專案建立自己的代幣,並以真正的去中化的方式交易,而不容依賴目前收取高昂費用的中心化交易平臺。

開發員友善的設計

與需要用 Solidity 去寫智慧合同來開發去中心化應用的以太坊不同,Cosmos SDK 是一個助應用開發員發揮的最好的開發框架。通過 Cosmos SDK 來開發,我們毋須理會複雜的點對點網路協議、共識演算法或網路安全等事宜,這些統統都由 Tendermint 處理好。我們只需要專心於應用的使用者體驗及商業邏輯。模組化設計亦有助我們更容易部署推出應用的更新功能。Cosmos SDK 及 Tendermint 是以 Go 這個由 Google 發明的既容易又高效的程式語言所寫,這令開發員能短時間內掌握如何使用 Cosmos SDK 進行區塊鏈的開發。Cosmos SDK 及 Tendermint 通過「應用 – 區塊鏈介面」 (ABCI) 來通訊,通過這介面,開發員能用使用任何語言來開發區塊鏈應用。例如,若你用 Cosmos SDK 進行開發卻不用 Go 這程式語言,你仍能通過 IBC 來將你的應用連結至 Cosmos 網路; 又例如,你可以使用 Lotion (一個 Javascript 框架) 來開發區塊鏈應用,並以 ABCI 來與 Tendermint 通訊。通過這樣的架構,區塊鏈應用的開發將會有更多不受侷限的可能性,擁有不同技能的開發員都能參與 Cosmos 網路,從而令它成為一個更好的區塊鏈社群。

結合wasm

基於cosmos之上的區塊鏈,我們亦可以採用webassembly作為智慧合約的技術,這也是EOS採用的方案。