[转]区块链主流开源技术体系介绍
區(qū)塊鏈應用開發(fā)入門
區(qū)塊鏈技術(shù)如今是非常火熱,不僅讓金融家和創(chuàng)投家趨之若鶩,如今已經(jīng)在多個領(lǐng)域遍地播種。作為擁有銳利觸角的創(chuàng)業(yè)家們,是否也想將區(qū)塊鏈集成到你們現(xiàn)有的應用中去,而作為IT技術(shù)工程師的你,是否也是躍躍欲試,想基于區(qū)塊鏈來練一下手,以免日后被新技術(shù)淘汰?不過,區(qū)塊鏈涉及如密碼學和P2P等多種技術(shù),區(qū)塊鏈的技術(shù)門派眾多,新鮮概念層出不窮;而另一方面,區(qū)塊鏈技術(shù)的發(fā)展在全球范圍內(nèi)還都尚處在早期階段,各種技術(shù)方案和應用場景等還需要進一步地探索和完善,導致很多人想運用區(qū)塊鏈,都找不到突破口,應該學習哪些知識和技術(shù)呢,應該用什么樣的區(qū)塊鏈呢?
就區(qū)塊鏈技術(shù)而言,Elwin只能算是新司機,但我仍然嘗試從開發(fā)工程師的角度,給區(qū)塊鏈有興趣的工程師分享一下區(qū)塊鏈應用開發(fā)入門的經(jīng)驗。
我們大多數(shù)人的使用和開發(fā)區(qū)塊鏈的目標來說,并不是要真的自己重新創(chuàng)建一套區(qū)塊鏈,只是希望基于現(xiàn)有的區(qū)塊鏈底層或技術(shù)框架去開發(fā)自己的應用。因此,對于類似加密算法、 P2P技術(shù)、共識算法等我們只需要有個基本了解就可以了,暫時不需要深入研究。而我們?nèi)腴T區(qū)塊鏈應用開發(fā)的首要目標,是尋找一個相對成熟的區(qū)塊鏈底層去做我們的應用開發(fā)的基礎(chǔ),其次,這個區(qū)塊鏈底層需要配套強大易用的開發(fā)接口或開發(fā)框架,此外,這個區(qū)塊鏈底層如果要考慮以后真正商用,還需要符合一些區(qū)塊鏈的技術(shù)指標,如擴展性、燃料費用、交易頻率等等。
就這兩點目標,Elwin走遍天涯海角,最終挑選出認為符合要求的幾個區(qū)塊鏈底層平臺給大家參考:
?
一、????? 比特幣
?
最早的區(qū)塊鏈開發(fā)便是基于比特幣的區(qū)塊鏈網(wǎng)絡進行開發(fā)了,由于比特幣是全球最廣泛使用和真正意義的去中心化,就區(qū)塊鏈應用來說,比特幣就是世上最強大的錨,擁有最大的權(quán)威性。因此,圍繞比特幣的各種區(qū)塊鏈技術(shù)非常多,這里不一一描述,只針對入門級別開發(fā)的介紹。
基于比特幣的區(qū)塊鏈網(wǎng)絡開發(fā)介紹兩種方式,一種相對比較簡單,基于Blockchain.info的API進行開發(fā)。Blockchain.info是比特幣的最流行的比特幣錢包和區(qū)塊查詢網(wǎng)站,同時也提供的比特幣及其區(qū)塊相關(guān)API。 Blockchain.info 提供了多種主流語言的API庫,包括了比特幣的錢包、支付、區(qū)塊、交易數(shù)據(jù)、市場數(shù)據(jù)等多方面的API。
?
?
?安裝和使用Blockchain.info的API比較簡單,首先你的機器需要有Node環(huán)境,在Blockchain.info的申請接口授權(quán)碼,安裝Blockchain Wallet API服務程序,就可以開始配置和測試Blockchain Wallet API服務程序了,要進一步開發(fā),可以根據(jù)你的開發(fā)語言選擇安裝API的客戶端支持庫。
進一步的探索,可以采用Docker容器來快速安裝和配置私有節(jié)點的比特幣測試網(wǎng)絡(bitcoin-testnet)作為開發(fā)試驗環(huán)境,這樣可以更深入了解、調(diào)試和使用比特幣區(qū)塊鏈網(wǎng)絡。在Bitcoin的wiki網(wǎng)頁上面,提供很多種語言都可以調(diào)用Bitcoin的RPC,大家選擇適合自己的語言具體去試驗,當然,Elwin仍然推薦你使用NodeJS。
具體流程是下載比特幣測試網(wǎng)絡的Docker鏡像,運行Docker鏡像并啟動比特幣測試網(wǎng)絡,初始化和測試區(qū)塊鏈數(shù)據(jù),當然為了測試少不了要先挖礦儲備一下。然后安裝相關(guān)開發(fā)語言的RPC支持庫后,就可以調(diào)試你的區(qū)塊鏈程序了。
?
二、????? 以太坊
?
可以說除了比特幣外,以太坊目前在區(qū)塊鏈平臺是最吸引眼球的。 以太坊是一個圖靈完備的區(qū)塊鏈一站式開發(fā)平臺,采用多種編程語言實現(xiàn)協(xié)議,采用Go語言寫的客戶端作為默認客戶端(即與以太坊網(wǎng)絡交互的方法, 支持其他多種語言的客戶端)。
基于以太坊平臺之上的應用是智能合約,這是以太坊的核心。每個智能合約有一個唯一的以太幣地址,當用戶向合約的地址里發(fā)送一筆交易后(這個時候就要消耗燃料費用,也就是手續(xù)費用),該合約就被激活,然后根據(jù)交易中的額外信息,合約會運行自身的代碼,最后返回一個結(jié)果。以太坊社區(qū)把基于智能合約的應用稱為去中心化的應用程序(Decentralized App),相對于冷冰冰的智能合約代碼,DApp擁有一個友好的界面和外加一些額外的東西,配合上圖靈完備的語言,可以讓用戶基于合約搭建各種千變?nèi)f化的DApp應用,實際上,在以太坊APP展區(qū),已經(jīng)有大大小小280個的DApp應用在展示(雖然只有一部分應用在真正運行)。
要寫以太坊的智能合約有好幾種語言可選,有類Javascript的Solidity,Python接近的Serpent,還有類Lisp的LLL,目前比較主流的是Solidity,推薦大家使用。當Solidity合約編譯好并且發(fā)送到網(wǎng)絡上之后,你可以通過以太坊的Mist客戶端對智能合約進行測試和使用,也可以使用以太坊的web3.js JavaScript API來調(diào)用它,構(gòu)建能與之交互的web應用。
由于以太坊的知名度,所以很多社區(qū)大牛創(chuàng)造更加便捷的DApp開發(fā)框架和工具,包括Truffle、Embark、Meteor、BlockApps.net APIs,使得你可以快速開發(fā)你的Dapp。我的另外一篇文章《微軟的那些區(qū)塊鏈云服務》有提及,Embark和BlockApps.net兩個區(qū)塊鏈工具已經(jīng)給整合到微軟Azure BAAS服務中了。這幾個框架和工具中,Elwin更推薦Embark,使用起來非常簡單。
通過以太坊,你既可以搭建基于屬于自己私鏈,也可以和合作伙伴一起搭建聯(lián)盟鏈,又或者直接將應用部署在以太坊的公共網(wǎng)絡中,Elwin要吐槽的是,使用以太坊Gas費用越來越高了,對于互聯(lián)網(wǎng)的應用,是自己搭建以太區(qū)塊鏈,還是使用以太公共網(wǎng)絡,真是兩難境地(以太坊宣稱,以太幣Ether價格上升時,那以太坊燃料的價格應該按比例下降,但好像并不是這樣阿)。
?
?
幾個主要入門步驟給大家簡單介紹一下,首先你可以安裝以太坊錢包客戶端Ethereum Wallet,體驗一下以太坊的錢包和智能合約,當中可以選擇公共網(wǎng)絡或測試網(wǎng)絡(如果你沒有或不想花費以太幣)。如果你已經(jīng)很熟悉這些了,那好,直接進入正題,準備好Geth和Node的環(huán)境,同時安裝以太坊Mist客戶端(這個是為測試你的智能合約和Dapp準備),配置和啟動Geth(Geth和eth相關(guān)參數(shù)文章,請參考官網(wǎng)文檔),通常我會先用Geth搭建自己的私鏈來測試,Geth啟動后,你可以先在Mist客戶端中熟悉智能合約和Solidity語言(記得在Geth console先挖礦,否則沒有以太幣來測試),然后根據(jù)官網(wǎng)的幾個例子來試煉你的第一個Dapp。上手后,可以嘗試使用web3.js來調(diào)用,或直接安裝Truffle或Embark來開發(fā)自己真正的Dapp應用。
?
三、????? IBM HyperLedger
?
IBM HyperLedger 又叫 fabric,他的目標是打造成一個由全社會來共同維護的一個超級賬本,fabric源于IBM,初衷為了服務于工業(yè)生產(chǎn),IBM將44,000行代碼開源,是了不起的貢獻,讓我們可以有機會如此近的去探究區(qū)別于比特幣的區(qū)塊鏈的原理。目前就Elwin所知,fabric還未進入真正的商用階段,更多是試驗和探索,不過相對于很多其他區(qū)塊鏈,從技術(shù)底蘊他又是比較可信和靠譜的。
要基于HyperLedger進行區(qū)塊鏈開發(fā)比想像中簡單,有兩種途徑,一種是基于超能云(IBM中國研究院開發(fā)的超能云平臺提供了各種云服務),他給區(qū)塊鏈愛好者、開發(fā)者的區(qū)塊鏈開發(fā)測試環(huán)境,通過超能云平臺,用戶能夠免費、超快速創(chuàng)建基于Hyperledger Fabric的多節(jié)點區(qū)塊鏈、并在自己的鏈上調(diào)試智能合約。Hyperledger Fabric的合約是基于Go語言的,上手比較簡單。
?
?
?根據(jù)Elwin嘗試,似乎超能云的區(qū)塊鏈只適用于科研測試,要真正運營,還是建議自己搭建Fabric的區(qū)塊鏈網(wǎng)絡。安裝和運行Hyperledge fabric的運行有幾種方式,比較推薦是下載Fabric區(qū)塊鏈網(wǎng)絡的Docker鏡像,運行Docker鏡像并啟動Fabric區(qū)塊鏈網(wǎng)絡,但相對于比特幣和以太坊,Fabric網(wǎng)絡的架構(gòu)和安裝相對復雜,除了區(qū)塊鏈服務外,還需要另外安裝運行validating peer和Certificate Authority (CA) 服務。搞定后要真正使用,還需要先用戶注冊和登記授權(quán),然后才可以通過CLI 或REST API進行調(diào)試和使用。其中里面智能合約的編寫,跟在超能云的區(qū)塊鏈云服務的是一樣的。此外,除了CLI或REST API,IBM還提供了gRPC API和 SDK的方式進行應用的開發(fā)。
?
四、????? Lisk
?
LISK是新一代的區(qū)塊鏈平臺,允許JavaScript(又是Javascript技術(shù),工程師們注意了)的開發(fā)和基于分布的分散的應用程序使用一個易于使用的,功能齊全的生態(tài)區(qū)塊鏈系統(tǒng)。
Elwin覺得LISK相對于前面說的幾個區(qū)塊鏈底層,他的應用優(yōu)勢不僅僅在于他是第一個完全寫在Javascript里的去中心化的應用解決方案,還在于他把每個應用加到LISK的單獨側(cè)鏈上。用過比特幣和以太坊的朋友都知道,由于比特幣和以太坊只有一條主鏈,所有功能和數(shù)據(jù)都加入這條主鏈導致區(qū)塊快速膨脹,超大的區(qū)塊體積,超長的同步時間,這個一個很痛苦的經(jīng)歷。Lisk的側(cè)鏈模式給在處理高交易量下如何解決網(wǎng)絡擁堵的問題提供了一種方法,用戶只有用到相關(guān)的應用時才需要下載對應的側(cè)鏈,大大減小了無效的同步數(shù)據(jù),保持了整個Lisk網(wǎng)絡的高效運行,而且,Lisk網(wǎng)絡的速度隨著時間的推移會繼續(xù)加快,越顯示他的特別優(yōu)勢。
其次,相對以太坊和Hyperledge fabric以智能合約為核心的區(qū)塊鏈不同, Lisk區(qū)塊鏈建立的目的并不是為了創(chuàng)建智能合約,而是使用Lisk APP SDK框架來開發(fā)不同的應用程序和功能。
Lisk APP的主要開發(fā)語言是NodeJS,Web開發(fā)者既能夠開發(fā)應用程序的后端,也可以開發(fā)前端。通過使用Lisk APP SDK包,Web開發(fā)者可以輕松創(chuàng)建區(qū)塊鏈應用。Lisk APP的開發(fā)也比較簡單,跟你之前其他的NodeJS應用的開發(fā)是類似的。然而,跟比特幣和以太坊的一樣,Lisk的使用也是要消耗燃料費用的,還好,跟其他區(qū)塊鏈底層網(wǎng)絡一樣,Lisk 也是有testnet模式的。
?
五、????? 布比網(wǎng)絡
?
布比,是國內(nèi)區(qū)塊鏈技術(shù)特別是底層技術(shù)領(lǐng)先者之一,已擁有多項核心技術(shù),并已經(jīng)成熟的應用在了商業(yè)積分、游戲幣、游戲道具、預付卡、電子券、保險卡單、證券化資產(chǎn)、互助保險等行業(yè)和領(lǐng)域。
布比區(qū)塊鏈平臺分為基礎(chǔ)框架層(BubiChain)和應用適配層(Bubi Application Adaptors)。底層基礎(chǔ)框架層提供區(qū)塊鏈的基礎(chǔ)服務,應用適配層提供上層應用所需的功能組件,為具體的應用系統(tǒng)開發(fā)提供接口和SDK,降低由于區(qū)塊鏈自身復雜的邏輯所帶來的應用開發(fā)的難度。
?
?
?對于一般開發(fā)的應用適配層,布比提供布萌區(qū)塊鏈應用開發(fā)平臺,該平臺基于布比區(qū)塊鏈技術(shù),將上層應用所需要的功能組件進行封裝,開發(fā)者想實現(xiàn)對應的功能,只需要注冊成為布萌開發(fā)者即可獲得接口使用權(quán)限。同時,平臺提供開發(fā)者運維所需要的可視化管理工具。
就Elwin體驗來說,布萌區(qū)塊鏈的接入應該是幾大區(qū)塊鏈底層中最容易的,因為他不僅提供標準REST API,并提供JAVA等主流語言的SDK接入,同時,基于布萌區(qū)塊鏈平臺專注數(shù)字資產(chǎn)應用場景,跟其他大部分區(qū)塊鏈接口純技術(shù)和面向廣泛應用的方式而言,布萌提供的接口更貼近業(yè)務場景的,更便于相關(guān)數(shù)字資產(chǎn)的應用接入到區(qū)塊鏈。相對以太坊著重區(qū)塊技術(shù)和智能合約的區(qū)塊鏈不同,布比區(qū)塊鏈的接入更務實和落地,你只需要關(guān)注你實際的業(yè)務,而不需要過多考慮區(qū)塊鏈的技術(shù)細節(jié)。
區(qū)塊鏈主流開源技術(shù)體系介紹
接上一篇應用開發(fā)入門介紹,Elwin這篇將會介紹主流的區(qū)塊鏈開源技術(shù)體系,供大家開發(fā)自家區(qū)塊鏈平臺及應用參考。
一、?????比特幣體系
比特幣(BitCoin)是最早也是全球最廣泛使用和真正意義的去中心化區(qū)塊鏈技術(shù),因此他的開源技術(shù)體系非常值得參考。
比特幣區(qū)塊鏈的核心技術(shù)框架采用C++語言開發(fā),共識算法采用POW算法,工作量(挖礦)證明獲得記賬權(quán),容錯50%,實現(xiàn)全網(wǎng)記賬,公網(wǎng)性能TPS<7。
開源地址為:https://github.com/bitcoin/bitcoin
雖然說POW算法比較低效率和耗能,比特幣區(qū)塊鏈由于推出時間比較早又不夠強大(如不支持智能合約),但不可否認的是,目前市場上相對成熟和穩(wěn)定的區(qū)塊鏈體系還是比特幣。市面上群魔亂舞的山寨幣,正是基于比特幣的源代碼照搬或小改動而創(chuàng)造的,在比特幣區(qū)塊鏈的體系基礎(chǔ)上,還創(chuàng)造了幾種區(qū)塊鏈技術(shù)體系:
彩色幣(染色幣),彩色幣本身就是比特幣,是在歷史上的創(chuàng)世交易里面被轉(zhuǎn)移過的比特幣。在技術(shù)上將比特幣網(wǎng)絡從其貨幣價值中抽離出來,它們具有一些特殊的屬性,比如支持代理或聚集點,從而具有與比特幣面值無關(guān)的價值。彩色幣可以用作替代貨幣、商品證書、智能財產(chǎn)以及其他金融工具,如股票和債券等。
閃電網(wǎng)絡,是為了解決比特幣區(qū)塊鏈的瓶頸處理能力而生的,他可以有效解決時延、容量擴展、最終性的問題,為比特幣區(qū)塊鏈提供了一個可擴展的微支付通道網(wǎng)絡,使用閃電網(wǎng)絡后,TPS最大可以擴展到300。交易雙方若在區(qū)塊鏈上預先設(shè)有支付通道,就可以多次、高頻、雙向地通過軋差方式實現(xiàn)瞬間確認的微支付;雙方若無直接的點對點支付通道,只要網(wǎng)絡中存在一條連通雙方的、由多個支付通道構(gòu)成的支付路徑,閃電網(wǎng)絡也可以利用這條支付路徑實現(xiàn)資金在雙方之間的可靠轉(zhuǎn)移。
比特幣側(cè)鏈
側(cè)鏈是以錨定比特幣為基礎(chǔ)的新型區(qū)塊鏈,就像美金錨定到金條一樣。比特幣的在區(qū)塊鏈相當在貨幣體系的黃金地位,因為他是最去中心化、最多分布節(jié)點、最公平區(qū)塊鏈。側(cè)鏈是以融合的方式實現(xiàn)加密貨幣金融生態(tài)的目標,而不是像其它加密貨幣一樣排斥現(xiàn)有的系統(tǒng)。利用側(cè)鏈,我們可以輕松的建立各種智能化的金融合約,股票、期貨、衍生品等等。你可以有成千上萬個錨定到比特幣上的側(cè)鏈,特性和目的各不相同,所有這些側(cè)鏈依賴于比特幣主區(qū)塊鏈保障的彈性和稀缺性。比較著名的比特幣側(cè)鏈是Rootstock和BlockStream推出的元素鏈。
Rootstock是一個基于比特幣側(cè)鏈的開源智能合約平臺,他使得比特幣擁有了智能合約,基于Rootstock的智能合約能夠運行無數(shù)應用,為核心比特幣網(wǎng)絡增加價值和功能。Rootstock使用一種比特幣雙向掛鉤技術(shù),這種雙向掛鉤以一種固定的轉(zhuǎn)換率輸送或輸出Rootstock上的比特幣,Rootstock雙向掛鉤是一種混合驅(qū)鏈和側(cè)鏈的技術(shù)。更值得關(guān)注的是,Rootstock向后兼容以太坊,實現(xiàn)了以太坊虛擬機的一個改進版本,所以以太坊發(fā)布的DApps程序能夠輕松地在Rootstock上使用,實現(xiàn)比特幣級別的安全性和以太坊大量Dapps的復用性,更快的執(zhí)行性并和比特幣發(fā)生更強的相互作用。使用Rootstock可以將性能擴展到TPS為300。
元素鏈(Elements)是Blockstream的開源側(cè)鏈項目,同樣使用比特幣雙向掛鉤技術(shù),除了智能合約外,他還給比特幣快速帶來許多創(chuàng)新技術(shù),包括私密交易、證據(jù)分離、相對鎖定時間、新操作碼、簽名覆蓋金額等等特性。核心技術(shù)框架采用C++語言開發(fā),開源地址為:https://github.com/ElementsProject/elements
二、?????以太坊ETH
剛結(jié)束的以太坊全球開發(fā)者大會DEVCON2,吸引了無數(shù)大牛到上海,可以看到,以太坊生態(tài)系統(tǒng)正在高速地成長著,正朝著成為“世界計算機”的目標前進。無論是the DAO眾籌到攻擊,還是ETH與ETC 分道揚鑣,或者是各種以太坊生態(tài)的開發(fā)框架和應用,以太坊目前在區(qū)塊鏈平臺是最吸引眼球的。
以太坊是一個圖靈完備的區(qū)塊鏈一站式開發(fā)平臺,采用多種編程語言實現(xiàn)協(xié)議,采用GO語言寫的客戶端作為默認客戶端(即與以太坊網(wǎng)絡交互的方法, 支持其他多種語言的客戶端)。基于以太坊平臺之上的應用是智能合約,這是以太坊的核心。智能合約配合友好的界面和外加一些額外的小支持,可以讓用戶基于合約搭建各種千變?nèi)f化的DApp應用,這樣使得開發(fā)人員開發(fā)區(qū)塊鏈應用的門檻大大降低。
以太坊ETH的開源地址:https://github.com/ethereum/。以太坊的整個技術(shù)生態(tài)系統(tǒng)比較強大,同時迭代周期比較快,所以有比較強的生命力,但事物都有兩面,對于依賴于以太坊特別是以太坊公網(wǎng)的商業(yè)應用來說,頻繁的迭代升級和處于風口浪尖(被攻擊),使得基于以太坊的商業(yè)應用,有時候不得不打足精神去跟以太坊一起升級維護和補丁。
目前以太坊正在正式運行1.0版本,采用的是POW挖礦的共識算法,目前公網(wǎng)的TPS是25筆,在開發(fā)中的1.5版本,將采用類POS的Casper算法,以使區(qū)塊鏈的確認速度相對于POW的線性效率,達到指數(shù)級。采用Casper后將會更好的確認機制,以及大幅降低能量消耗。在規(guī)劃的 2.0版本目標,TPS有望可以達到2000TPS。
以太坊的進一步開發(fā)介紹你可以參考我另外一篇文章《區(qū)塊鏈應用開發(fā)入門》。
三、?????IBM HyperLedger fabric
IBMHyperLedger,又叫 fabric,是一個帶有可插入各種功能模塊架構(gòu)的區(qū)塊鏈實施方案,他的目標是打造成一個由全社會來共同維護的一個超級賬本。Elwin個人感覺fabric分層設(shè)計比較合理,模塊化程度非常不錯,雖然目前還是在完善階段,并沒有真正商用(最近IBM攜手中國銀聯(lián)打造區(qū)塊鏈為基礎(chǔ)的忠誠積分交易系統(tǒng),但還是屬于探索試樣項目),但以IBM的多年技術(shù)底蘊,fabric應該是大企業(yè)構(gòu)建區(qū)塊鏈底層的選擇之一。
fabric架構(gòu)核心邏輯有三條:Membership、Blockchain和Chaincode。MembershipServices這項服務用來管理節(jié)點身份、隱私、保密性、可審計性。Blockchain services使用建立在HTTP/2上的P2P協(xié)議來管理分布式賬本,提供最有效的哈希算法來維護區(qū)塊鏈世界狀態(tài)的副本。采取可插拔的方式來根據(jù)具體需求來設(shè)置共識協(xié)議,比如PBFT,Raft,PoW和PoS等等,IBM首選PBFT算法。Chaincode services 會提供一種安全且輕量級的沙盒運行模式,來在VP節(jié)點上執(zhí)行chaincode邏輯,類似以太坊的EVM虛擬機及其他上面運行的智能合約。
開源地址:https://github.com/hyperledger/fabric。Fabric的主要框架核心開發(fā)語言是GO語言,系統(tǒng)目標是15個驗證節(jié)點下最理想情況下可以有100K TPS的性能,更適合于聯(lián)盟鏈。
四、?????比特股BitShare
比特股(BitShares)是區(qū)塊鏈歷史上里程碑式的產(chǎn)品之一,截至目前仍然是完整度最高、功能最豐富、性能最強大的區(qū)塊鏈產(chǎn)品之一。比特股是可以看作是一個公司、貨幣甚至是一個社區(qū)。它提供的BitUSD等錨定資產(chǎn)是虛擬幣歷史上的一個最重要變革之一,能夠極大消除虛擬貨幣被人詬病的波動性大的問題。
比特幣低效率高能耗的POW算法,使得比特股及其DPos共識算法應運而生。有別于比特幣特定的共識機制,DPos有一個內(nèi)置的實時股權(quán)人投票系統(tǒng),就像系統(tǒng)隨時都在召開一個永不散場的股東大會,所有股東都在這里投票決定公司決策。與比特幣相比,比特股系統(tǒng)的投票權(quán)牢牢掌握在股東手里,而不是雇員。比特股系統(tǒng)的去中心化程度緊緊掌握在比特股持有者們的手中,他們決定了出塊受托人的個數(shù)。同時,作惡的受托人不會得到任何好處,并且很快就會被投票出局。此外,比特股內(nèi)置了強大的賬戶權(quán)限設(shè)定、靈活的多重簽名方式、白名單等特性,足以滿足企業(yè)級的功能定制需求。
比特股的1.0開源地址是:https://github.com/bytemaster/bitshares,2.0開源庫在:http://github.com/bitshares。他的核心技術(shù)框架采用C++語言開發(fā),既適用于公有鏈,也適合于聯(lián)盟鏈,只需要少量節(jié)點進行記賬,TPS>500,容錯50%,在比特股2.0中如果在最優(yōu)的網(wǎng)絡和硬件情況下可以達到最高100K的TPS。
五、?????公證通Factom
公證通(Factom)利用比特幣的區(qū)塊鏈技術(shù)來革新商業(yè)社會和政府部門的數(shù)據(jù)管理和數(shù)據(jù)記錄方式,也可以被理解為是一個不可撤銷的發(fā)布系統(tǒng),系統(tǒng)中的數(shù)據(jù)一經(jīng)發(fā)布,便不可撤銷,提供了一份準確、可驗證、且無法篡改的審計跟蹤記錄。利用區(qū)塊鏈技術(shù)幫助各種各樣應用程序的開發(fā),包括審計系統(tǒng),醫(yī)療信息記錄,供應鏈管理,投票系統(tǒng),財產(chǎn)契據(jù),法律應用,金融系統(tǒng)等。
建立在Factom基礎(chǔ)之上的應用程序?qū)で竽軌蛑苯永脜^(qū)塊鏈實現(xiàn)追蹤資產(chǎn)和實現(xiàn)合約,而不用將交易記錄寫入?yún)^(qū)塊鏈,Factom在自己的架構(gòu)中記錄條目。跟以太坊類似,Factom系統(tǒng)會創(chuàng)造一個叫Factoids的電子幣。持有Factoids意味著有權(quán)使用Factom系統(tǒng)。只要把Factoids轉(zhuǎn)化成輸入積分便有權(quán)把數(shù)據(jù)寫入Factom系統(tǒng)中。同時運行著Factom的聯(lián)邦服務器也能收獲Factoids作為維護系統(tǒng)的回報。Factom雖然同樣基于比特幣網(wǎng)絡,但卻并不是之前提到側(cè)鏈或染色幣的技術(shù)架構(gòu),Factom只將目錄區(qū)塊的哈希值錨定到比特幣區(qū)塊鏈。Factom很好地解決了比特幣三個核心的約束和問題,速度、成本和區(qū)塊鏈膨脹。
Factom中的政策和獎勵機制與POS機制有相似之處。與其不同之處在于,Factom中只有一小部分的用戶權(quán)益能夠被認可。只有已經(jīng)提交到系統(tǒng)的權(quán)益有投票權(quán),而可轉(zhuǎn)移的Factoid權(quán)益沒有投票權(quán),避免了POS機制的“股份磨損”和“沒有人進行POS”問題。
公證通的開源地址是:https://github.com/FactomProject/FactomCode。他的核心技術(shù)框架采用GO語言開發(fā),TPS是27筆左右(待考究)。
最新情況,Factom將不會只依賴于比特幣區(qū)塊鏈,他將會同樣會通過整合以太坊區(qū)塊鏈,以來確保存放的數(shù)據(jù)時時刻刻都是安全的。
六、?????瑞波Ripple
瑞波(Ripple)是世界上第一個開放的支付網(wǎng)絡,是基于區(qū)塊連的點到點全球支付網(wǎng)絡。通過這個支付網(wǎng)絡,使你輕松、廉價并安全的把你的金錢轉(zhuǎn)賬到互聯(lián)網(wǎng)上的任何一個人,無論他在世界的哪個地方,他可以轉(zhuǎn)賬任意一種貨幣,包括美元、歐元、人民幣、日元或者比特幣,簡便易行快捷,交易確認在幾秒以內(nèi)完成,交易費用幾乎是零,沒有所謂的跨行異地以及跨國支付費用。
Ripple有兩個重要概念,其一是推出Ripple幣瑞波幣——XRP,它作為Ripple網(wǎng)絡的基礎(chǔ)貨幣,就像比特幣一樣可以整個網(wǎng)絡中流通,主要是燃料Gas的作用,每產(chǎn)生一筆交易就會消耗一些 XRP;其二是引入網(wǎng)關(guān)(Gateway)系統(tǒng),它類似于貨幣兌換機構(gòu),允許人們把法定貨幣注入、抽離Ripple網(wǎng)絡,并可充當借、貸雙方的橋梁。
Ripple引入了一個共識機制RPCA,通過特殊節(jié)點的投票,在很短的時間內(nèi)就能夠?qū)灰走M行驗證和確認。Ripple客戶端不需要下載區(qū)塊鏈,它在普通節(jié)點上舍棄掉已經(jīng)驗證過的總帳本鏈,只保留最近的已驗證總帳本和一個指向歷史總帳本的鏈接,因而同步和下載總帳本的工作量很小。
Ripple的作用并不僅僅只負責清算貨幣兌換,它可以是各種虛擬貨幣、數(shù)字資產(chǎn)或任意一種有價值的東西。
Ripple的開源地址是:https://github.com/ripple/rippled,他的核心技術(shù)框架采用C++語言開發(fā),TPS<1000。
七、?????未來幣NXT
未來幣(Nxt、Nextcoin)是第二代去中心化虛擬貨幣,它使用全新的代碼編寫,不是比特幣的山寨幣。它第一個采用100%的股權(quán)證明POS算法,有資產(chǎn)交易、任意消息、去中心化域名、帳戶租賃等多種功能,部分實現(xiàn)了透明鍛造功能。
Nxt是且是第一個100%的股權(quán)證明機制的電子貨幣,Nxt不再通過消耗大量的資源“挖礦”產(chǎn)生新貨幣,而是通過現(xiàn)有賬戶的余額去“鍛造”區(qū)塊,并給與成功“鍛造”區(qū)塊的賬戶交易費用獎勵。
Nxt具有一個非常靈活的特性,稱為“透明鍛造”。這一機制使得每一個用戶客戶端可以自動決定哪個服務器節(jié)點能夠產(chǎn)生下一個區(qū)塊。這使得客戶端可以直接將交易發(fā)送到這個節(jié)點,從而使得交易的時間達到最短。實時和高優(yōu)先級的交易可以通過支付額外的費用來被優(yōu)先處理。
Nxt區(qū)塊鏈2.0已經(jīng)在討論和計劃實施中了,其核心思路就是要通過主鏈(Main Chain)和子鏈(Child Chain)的這種架構(gòu)來增加Nxt區(qū)塊鏈的可擴展性和可刪減性,從而解決長期存在的區(qū)塊鏈膨脹等問題;
Nxt的開源地址是:https://bitbucket.org/JeanLucPicard/nxt/overview,他的核心技術(shù)框架采用JAVA語言開發(fā),TPS<1000。
八、其他
此外,還有幾個區(qū)塊鏈技術(shù)體系也介紹一下:
英特爾的鋸齒湖(Sawtooth Lake),目前是用于建造、部署和運行分布式賬本的高度模塊化平臺,重點領(lǐng)域在數(shù)字資產(chǎn),在鋸齒湖的數(shù)據(jù)模型和交易事務語言中,是由稱為“transaction family”的體系來實現(xiàn)的, 給用戶可以有開箱即用的功能齊全的市場數(shù)字資產(chǎn)管理體系。采用PoET和Quorum Voting兩種共識算法,框架核心開發(fā)語言Python,開源地址為https://github.com/intelledger。
布比區(qū)塊鏈,目前采用的是對聯(lián)盟鏈內(nèi)定向開源,共識算法采用自研發(fā)的Pool驗證池,可以集成Byzantine Paxos、Byzantine、Raft等商用共識算法,實現(xiàn)免Gas費用的秒級共識驗證,框架核心開發(fā)語言是C++,應用場景比較廣泛。
小蟻區(qū)塊鏈,開源地址為https://github.com/antshares/antshares,采用改進的拜占庭容錯算法-dBFT共識算法,支持智能合約,目前重點領(lǐng)域在數(shù)字資產(chǎn)應用,框架核心開發(fā)語言C#。
最后,匯總一下幾大主流開源技術(shù)的比較。
|
名稱 |
公識算法 |
適合場景 |
開發(fā)語言 |
智能合約 |
TPS |
|
比特幣1.0 |
POW |
公鏈 |
C++ |
否 |
7 |
|
以太坊ETH 1.0 |
POW |
公鏈/聯(lián)盟鏈 |
GO |
是 |
25 |
|
IBM HyperLedger fabric |
PBFT為主 |
聯(lián)盟鏈 |
GO |
是 |
100K |
|
比特股BitShare |
DPos |
聯(lián)盟鏈 |
C++ |
否 |
500 |
|
公證通Factom |
Factom自有共識機制,類Pos |
公鏈/聯(lián)盟鏈 |
C++ |
否 |
27 |
|
瑞波Ripple |
RPCA |
公鏈/聯(lián)盟鏈 |
C++ |
否 |
1000 |
|
未來幣NXT |
Pos |
公鏈/聯(lián)盟鏈 |
JAVA |
否 |
1000 |
*附注[共識算法解釋]:
共識機制是區(qū)塊鏈技術(shù)的關(guān)鍵點。共識機制的核心是在分布式網(wǎng)絡中,利用一種規(guī)則(算法)來保證全網(wǎng)對于Block的創(chuàng)建是一致的,下面是主要的共識算法。
1、Pow工作量證明,就是大家熟悉的挖礦,通過與或運算,計算出一個滿足規(guī)則的隨機數(shù),即獲得本次記賬權(quán),發(fā)出本輪需要記錄的數(shù)據(jù),全網(wǎng)其它節(jié)點驗證后一起存儲;
2、Pos權(quán)益證明,Pow的一種升級共識機制;根據(jù)每個節(jié)點所占代幣的比例和時間;等比例的降低挖礦難度,從而加快找隨機數(shù)的速度。
點
3、DPos股份授權(quán)證明機制,類似于董事會投票,持幣者投出一定數(shù)量的節(jié)點,代理他們進行驗證和記賬。
4、Pool驗證池,由布比構(gòu)建,基于傳統(tǒng)的分布式一致性技術(shù),加上數(shù)據(jù)驗證機制;是目前行業(yè)鏈大范圍在使用的共識機制
5、PoET(Proof ofElapsed Time),也就是‘消逝時間量證明’,它是由英特爾構(gòu)建在可信執(zhí)行環(huán)境的一種彩票協(xié)議。
6、QuorumVoting,屬于Quorum拜占庭協(xié)議,仲裁投票算法,它采用了瑞波和恒星的共識協(xié)議,用來解決需立即交易定局的需求。”
7、Casper,以太坊社區(qū)提出的正在研發(fā)中的類POS共識協(xié)議。Casper的基本思路是,任何人抵押足夠多的以太幣到系統(tǒng)中就可以成為礦工參與到挖礦過程。共識算法要求所有的礦工誠實工作,如果一個礦工有意破壞,不遵守協(xié)議,系統(tǒng)就會對礦工做出懲罰:沒收之前抵押的以太幣。有人把Casper這樣的挖礦機制稱為“虛擬挖礦”。
8、PBFT(PracticalByzantine Fault Tolerance)算法,拜占庭容錯算法,屬于狀態(tài)機拜占庭協(xié)議,IBM HyperLedger fabric實現(xiàn)和推薦的共識算法,采取一個節(jié)點一票的方案確定記賬結(jié)果,少數(shù)服從多數(shù)投票,性能較好,主要用于聯(lián)盟鏈。
文章來源:
http://www.8btc.com/elwingao-blockchain-1?
http://www.8btc.com/elwingao-blockchain-2
總結(jié)
以上是生活随笔為你收集整理的[转]区块链主流开源技术体系介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓手机游戏《英雄迷宫冒险》存档修改
- 下一篇: DDB和DIB 是什么?区别?