《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 區(qū)塊鏈發(fā)展過程中的兩個典型一個基礎

區(qū)塊鏈發(fā)展過程中的兩個典型一個基礎

2018-08-03

區(qū)塊鏈發(fā)展到了現(xiàn)在,產(chǎn)生了很多不同形式的區(qū)塊鏈技術,。隨著技術的發(fā)展,,目前比較公認的看法是區(qū)塊鏈已經(jīng)走進了2.0時代。區(qū)塊鏈1.0是以比特幣為代表的去中心化數(shù)字貨幣區(qū)塊鏈系統(tǒng),,而2.0則是引入了智能合約的區(qū)塊鏈系統(tǒng),。

  在支持智能合約的區(qū)塊鏈系統(tǒng)中,Linux基金會所屬的Hyperledger Fabric(由IBM貢獻)和Vitalik Buterin所領導的以太坊基金會所創(chuàng)造并管理的Ethereum(以太坊)是兩個典型,。這兩種區(qū)塊鏈系統(tǒng)具有截然不同的設計思路,,充分體現(xiàn)了傳統(tǒng)企業(yè)信息系統(tǒng)思維設計模式(Fabric)和區(qū)塊鏈原教旨主義思維設計模式的區(qū)別。

  首先看一下Ethereum,,Ethereum是非常典型的受到Bitcoin(比特幣)架構影響的一個區(qū)塊鏈系統(tǒng),。其最典型的特點是——鏈是基礎。所有的信任都來自與基于Hash密碼學安全的鏈式數(shù)據(jù)結構,,在這個信任基礎上,,架構所有的功能。

  而對于Fabric來說,,系統(tǒng)一定要有一個漂亮的技術架構:可插拔的模塊化設計,、高擴展性、高內聚低耦合,。在一個漂亮的技術架構上,,調用各個模塊,來構造一個功能——鏈,,每增加一個功能,,可以使用已有的鏈,也可以創(chuàng)建一個新鏈。

  Ethereum使用了虛擬機方式實現(xiàn)智能合約,,Ethereum中的虛擬機叫做EVM,,是一個輕量級的沙盒執(zhí)行環(huán)境。為了讓智能合約更加方便,,以太坊開發(fā)者創(chuàng)造了新的語言來編寫智能合約,,目前最流行的EVM編程語言是Solidity。EVM的一大特點就是只能對鏈上的數(shù)據(jù)進行讀寫,,非鏈上的數(shù)據(jù)只能在調用智能合約的時候,,由調用者通過函數(shù)參數(shù)傳遞到智能合約中。(EVM的這個特點確保了智能合約的結果是確定的,,不會因不同的節(jié)點執(zhí)行而導致不同的結果,。)而智能合約本身和智能合約的調用過程(或者叫做使用智能合約的交易)都會記錄在鏈上。

  因此,,我們可以看出,,以太坊的架構中,“鏈”是信任的錨點,,所有的信任都來自于鏈,。

o4YBAFthEtKAURsQAAHH2ED5jss423.png

  而Fabric使用了Docker機制實現(xiàn)智能合約。相比于Ethereum的EVM,,Docker可以算是一個重量級的沙盒執(zhí)行環(huán)境,。由于Docker的特性,F(xiàn)abric可以使用很多語言開發(fā)智能合約,,同時也可以使用很多庫函數(shù)和系統(tǒng)函數(shù),,因此,F(xiàn)abric的智能合約靈活性更高,,(比如可以和物聯(lián)網(wǎng)設備通訊),,但是這種靈活性也導致了可能不同的節(jié)點執(zhí)行后產(chǎn)生不同的結果而無法達成共識的風險。而Channel的引入,,使得Fabric的智能合約是直接部署在某幾個節(jié)點上的,。每個智能合約可以創(chuàng)建新的鏈,也可以和其他智能合約共用一個鏈,?!版湣痹贔abric的架構里,相當于實現(xiàn)某個功能時,,參與該功能的幾個節(jié)點所共用的一個存儲空間。

  明白了這兩種智能合約的實現(xiàn)方式區(qū)別后,,我們就會發(fā)現(xiàn)這兩種典型的區(qū)塊鏈的設計思路的區(qū)別了——“鏈”到底應該位于架構的哪一層,?

  在區(qū)塊鏈原教旨主義中,由于大家都不可信,所以只能相信由Hash算法串起來的一個完整的數(shù)據(jù)系統(tǒng),。而在面向企業(yè)間應用的聯(lián)盟鏈中,,由于節(jié)點都是需要身份認證才能加入的,因此可信程度高一些,。所以,,只要關鍵的一些數(shù)據(jù)達成共識實現(xiàn)可信就可以了。

  正是由于這種設計思路上的區(qū)別,,在Ethereum中,,所有的智能合約都運行在同一個鏈上,大家共用一個可信的基礎設施,;而在Fabric中,,一個應用對應一個鏈,整個系統(tǒng)由很多子鏈構成,,這些子鏈共用一套基本互信的基礎設施,。

  從系統(tǒng)架構角度看,Ethereum是一個完整基礎設施,,不會拆散了來用,。雖然Ethereum內部的設計耦合性很高,各個模塊依賴性極強,,甚至整個系統(tǒng)都依賴于某些基礎的智能合約(例如以太幣合約),,但這可以看做是整個基礎設施的內聚性導致的。

  而Fabric更像是一個區(qū)塊鏈云服務平臺,,能夠讓用戶方便的在基礎平臺上,,使用各個模塊創(chuàng)建一個一個的鏈進而實現(xiàn)一個一個的應用。所以,,F(xiàn)abric是低耦合設計的一個平臺,。


本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]