1. 程式人生 > >mark's technic world

mark's technic world

接上一篇應用開發入門介紹,Elwin這篇將會介紹主流的區塊鏈開源技術體系,供大家開發自家區塊鏈平臺及應用參考。

一、     比特幣體系

比特幣(BitCoin)是最早也是全球最廣泛使用和真正意義的去中心化區塊鏈技術,因此他的開源技術體系非常值得參考。

比特幣區塊鏈的核心技術框架採用C++語言開發,共識演算法採用POW演算法,工作量(挖礦)證明獲得記賬權,容錯50%,實現全網記賬,公網效能TPS<7。

雖然說POW演算法比較低效率和耗能,比特幣區塊鏈由於推出時間比較早又不夠強大(如不支援智慧合約),但不可否認的是,目前市場上相對成熟和穩定的區塊鏈體系還是比特幣。市面上群魔亂舞的山寨幣,正是基於比特幣的原始碼照搬或小改動而創造的,在比特幣區塊鏈的體系基礎上,還創造了幾種區塊鏈技術體系:

彩色幣(染色幣),彩色幣本身就是比特幣,是在歷史上的創世交易裡面被轉移過的比特幣。在技術上將比特幣網路從其貨幣價值中抽離出來,它們具有一些特殊的屬性,比如支援代理或聚集點,從而具有與比特幣面值無關的價值。彩色幣可以用作替代貨幣、商品證書、智慧財產以及其他金融工具,如股票和債券等。

閃電網路,是為了解決比特幣區塊鏈的瓶頸處理能力而生的,他可以有效解決時延、容量擴充套件、最終性的問題,為比特幣區塊鏈提供了一個可擴充套件的微支付通道網路,使用閃電網路後,TPS最大可以擴充套件到300。交易雙方若在區塊鏈上預先設有支付通道,就可以多次、高頻、雙向地通過軋差方式實現瞬間確認的微支付;雙方若無直接的點對點支付通道,只要網路中存在一條連通雙方的、由多個支付通道構成的支付路徑,閃電網路也可以利用這條支付路徑實現資金在雙方之間的可靠轉移。

比特幣側鏈

側鏈是以錨定比特幣為基礎的新型區塊鏈,就像美金錨定到金條一樣。比特幣的在區塊鏈相當在貨幣體系的黃金地位,因為他是最去中心化、最多分佈節點、最公平區塊鏈。側鏈是以融合的方式實現加密貨幣金融生態的目標,而不是像其它加密貨幣一樣排斥現有的系統。利用側鏈,我們可以輕鬆的建立各種智慧化的金融合約,股票、期貨、衍生品等等。你可以有成千上萬個錨定到比特幣上的側鏈,特性和目的各不相同,所有這些側鏈依賴於比特幣主區塊鏈保障的彈性和稀缺性。比較著名的比特幣側鏈是Rootstock和BlockStream推出的元素鏈。

Rootstock是一個基於比特幣側鏈的開源智慧合約平臺,他使得比特幣擁有了智慧合約,基於Rootstock的智慧合約能夠執行無數應用,為核心比特幣網路增加價值和功能。Rootstock使用一種比特幣雙向掛鉤技術,這種雙向掛鉤以一種固定的轉換率輸送或輸出Rootstock上的比特幣,Rootstock雙向掛鉤是一種混合驅鏈和側鏈的技術。更值得關注的是,Rootstock向後相容以太坊,實現了以太坊虛擬機器的一個改進版本,所以以太坊釋出的DApps程式能夠輕鬆地在Rootstock上使用,實現比特幣級別的安全性和以太坊大量Dapps的複用性,更快的執行性並和比特幣發生更強的相互作用。使用Rootstock可以將效能擴充套件到TPS為300。

元素鏈(Elements)是Blockstream的開源側鏈專案,同樣使用比特幣雙向掛鉤技術,除了智慧合約外,他還給比特幣快速帶來許多創新技術,包括私密交易、證據分離、相對鎖定時間、新操作碼、簽名覆蓋金額等等特性。核心技術框架採用C++語言開發,開源地址為:https://github.com/ElementsProject/elements

二、     以太坊ETH

剛結束的以太坊全球開發者大會DEVCON2,吸引了無數大牛到上海,可以看到,以太坊生態系統正在高速地成長著,正朝著成為“世界計算機”的目標前進。無論是the DAO眾籌到攻擊,還是ETH與ETC 分道揚鑣,或者是各種以太坊生態的開發框架和應用,以太坊目前在區塊鏈平臺是最吸引眼球的。

以太坊是一個圖靈完備的區塊鏈一站式開發平臺,採用多種程式語言實現協議,採用GO語言寫的客戶端作為預設客戶端(即與以太坊網路互動的方法, 支援其他多種語言的客戶端)。基於以太坊平臺之上的應用是智慧合約,這是以太坊的核心。智慧合約配合友好的介面和外加一些額外的小支援,可以讓使用者基於合約搭建各種千變萬化的DApp應用,這樣使得開發人員開發區塊鏈應用的門檻大大降低。

以太坊ETH的開源地址:https://github.com/ethereum/。以太坊的整個技術生態系統比較強大,同時迭代週期比較快,所以有比較強的生命力,但事物都有兩面,對於依賴於以太坊特別是以太坊公網的商業應用來說,頻繁的迭代升級和處於風口浪尖(被攻擊),使得基於以太坊的商業應用,有時候不得不打足精神去跟以太坊一起升級維護和補丁。

目前以太坊正在正式執行1.0版本,採用的是POW挖礦的共識演算法,目前公網的TPS是25筆,在開發中的1.5版本,將採用類POS的Casper演算法,以使區塊鏈的確認速度相對於POW的線性效率,達到指數級。採用Casper後將會更好的確認機制,以及大幅降低能量消耗。在規劃的 2.0版本目標,TPS有望可以達到2000TPS。

以太坊的進一步開發介紹你可以參考我另外一篇文章《區塊鏈應用開發入門》。

三、     IBM HyperLedger fabric

IBMHyperLedger,又叫 fabric,是一個帶有可插入各種功能模組架構的區塊鏈實施方案,他的目標是打造成一個由全社會來共同維護的一個超級賬本。Elwin個人感覺fabric分層設計比較合理,模組化程度非常不錯,雖然目前還是在完善階段,並沒有真正商用(最近IBM攜手中國銀聯打造區塊鏈為基礎的忠誠積分交易系統,但還是屬於探索試樣專案),但以IBM的多年技術底蘊,fabric應該是大企業構建區塊鏈底層的選擇之一。

fabric架構核心邏輯有三條:Membership、Blockchain和Chaincode。MembershipServices這項服務用來管理節點身份、隱私、保密性、可審計性。Blockchain services使用建立在HTTP/2上的P2P協議來管理分散式賬本,提供最有效的雜湊演算法來維護區塊鏈世界狀態的副本。採取可插拔的方式來根據具體需求來設定共識協議,比如PBFT,Raft,PoW和PoS等等,IBM首選PBFT演算法。Chaincode services 會提供一種安全且輕量級的沙盒執行模式,來在VP節點上執行chaincode邏輯,類似以太坊的EVM虛擬機器及其他上面執行的智慧合約。

開源地址:https://github.com/hyperledger/fabric。Fabric的主要框架核心開發語言是GO語言,系統目標是15個驗證節點下最理想情況下可以有100K TPS的效能,更適合於聯盟鏈。

四、     位元股BitShare

位元股(BitShares)是區塊鏈歷史上里程碑式的產品之一,截至目前仍然是完整度最高、功能最豐富、效能最強大的區塊鏈產品之一。位元股是可以看作是一個公司、貨幣甚至是一個社群。它提供的BitUSD等錨定資產是虛擬幣歷史上的一個最重要變革之一,能夠極大消除虛擬貨幣被人詬病的波動性大的問題。

比特幣低效率高能耗的POW演算法,使得位元股及其DPos共識演算法應運而生。有別於比特幣特定的共識機制,DPos有一個內建的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這裡投票決定公司決策。與比特幣相比,位元股系統的投票權牢牢掌握在股東手裡,而不是僱員。位元股系統的去中心化程度緊緊掌握在位元股持有者們的手中,他們決定了出塊受託人的個數。同時,作惡的受託人不會得到任何好處,並且很快就會被投票出局。此外,位元股內建了強大的賬戶許可權設定、靈活的多重簽名方式、白名單等特性,足以滿足企業級的功能定製需求。

位元股的1.0開源地址是:https://github.com/bytemaster/bitshares,2.0開源庫在:http://github.com/bitshares。他的核心技術框架採用C++語言開發,既適用於公有鏈,也適合於聯盟鏈,只需要少量節點進行記賬,TPS>500,容錯50%,在位元股2.0中如果在最優的網路和硬體情況下可以達到最高100K的TPS。

五、     公證通Factom

公證通(Factom)利用比特幣的區塊鏈技術來革新商業社會和政府部門的資料管理和資料記錄方式,也可以被理解為是一個不可撤銷的釋出系統,系統中的資料一經發布,便不可撤銷,提供了一份準確、可驗證、且無法篡改的審計跟蹤記錄。利用區塊鏈技術幫助各種各樣應用程式的開發,包括審計系統,醫療資訊記錄,供應鏈管理,投票系統,財產契據,法律應用,金融系統等。

建立在Factom基礎之上的應用程式尋求能夠直接利用區塊鏈實現追蹤資產和實現合約,而不用將交易記錄寫入區塊鏈,Factom在自己的架構中記錄條目。跟以太坊類似,Factom系統會創造一個叫Factoids的電子幣。持有Factoids意味著有權使用Factom系統。只要把Factoids轉化成輸入積分便有權把資料寫入Factom系統中。同時執行著Factom的聯邦伺服器也能收穫Factoids作為維護系統的回報。Factom雖然同樣基於比特幣網路,但卻並不是之前提到側鏈或染色幣的技術架構,Factom只將目錄區塊的雜湊值錨定到比特幣區塊鏈。Factom很好地解決了比特幣三個核心的約束和問題,速度、成本和區塊鏈膨脹。

Factom中的政策和獎勵機制與POS機制有相似之處。與其不同之處在於,Factom中只有一小部分的使用者權益能夠被認可。只有已經提交到系統的權益有投票權,而可轉移的Factoid權益沒有投票權,避免了POS機制的“股份磨損”和“沒有人進行POS”問題。

最新情況,Factom將不會只依賴於比特幣區塊鏈,他將會同樣會通過整合以太坊區塊鏈,以來確保存放的資料時時刻刻都是安全的。

六、     瑞波Ripple

瑞波(Ripple)是世界上第一個開放的支付網路,是基於區塊連的點到點全球支付網路。通過這個支付網路,使你輕鬆、廉價並安全的把你的金錢轉賬到網際網路上的任何一個人,無論他在世界的哪個地方,他可以轉賬任意一種貨幣,包括美元、歐元、人民幣、日元或者比特幣,簡便易行快捷,交易確認在幾秒以內完成,交易費用幾乎是零,沒有所謂的跨行異地以及跨國支付費用。

Ripple有兩個重要概念,其一是推出Ripple幣瑞波幣——XRP,它作為Ripple網路的基礎貨幣,就像比特幣一樣可以整個網路中流通,主要是燃料Gas的作用,每產生一筆交易就會消耗一些 XRP;其二是引入閘道器(Gateway)系統,它類似於貨幣兌換機構,允許人們把法定貨幣注入、抽離Ripple網路,並可充當借、貸雙方的橋樑。

Ripple引入了一個共識機制RPCA,通過特殊節點的投票,在很短的時間內就能夠對交易進行驗證和確認。Ripple客戶端不需要下載區塊鏈,它在普通節點上舍棄掉已經驗證過的總帳本鏈,只保留最近的已驗證總帳本和一個指向歷史總帳本的連結,因而同步和下載總帳本的工作量很小。

Ripple的作用並不僅僅只負責清算貨幣兌換,它可以是各種虛擬貨幣、數字資產或任意一種有價值的東西。

七、     未來幣NXT

未來幣(Nxt、Nextcoin)是第二代去中心化虛擬貨幣,它使用全新的程式碼編寫,不是比特幣的山寨幣。它第一個採用100%的股權證明POS演算法,有資產交易、任意訊息、去中心化域名、帳戶租賃等多種功能,部分實現了透明鍛造功能。

Nxt是且是第一個100%的股權證明機制的電子貨幣,Nxt不再通過消耗大量的資源“挖礦”產生新貨幣,而是通過現有賬戶的餘額去“鍛造”區塊,並給與成功“鍛造”區塊的賬戶交易費用獎勵。

Nxt具有一個非常靈活的特性,稱為“透明鍛造”。這一機制使得每一個使用者客戶端可以自動決定哪個伺服器節點能夠產生下一個區塊。這使得客戶端可以直接將交易傳送到這個節點,從而使得交易的時間達到最短。實時和高優先順序的交易可以通過支付額外的費用來被優先處理。

Nxt區塊鏈2.0已經在討論和計劃實施中了,其核心思路就是要通過主鏈(Main Chain)和子鏈(Child Chain)的這種架構來增加Nxt區塊鏈的可擴充套件性和可刪減性,從而解決長期存在的區塊鏈膨脹等問題;

八、其他

此外,還有幾個區塊鏈技術體系也介紹一下:

英特爾的鋸齒湖(Sawtooth Lake),目前是用於建造、部署和執行分散式賬本的高度模組化平臺,重點領域在數字資產,在鋸齒湖的資料模型和交易事務語言中,是由稱為“transaction family”的體系來實現的, 給使用者可以有開箱即用的功能齊全的市場數字資產管理體系。採用PoET和Quorum Voting兩種共識演算法,框架核心開發語言Python,開源地址為https://github.com/intelledger

布比區塊鏈,目前採用的是對聯盟鏈內定向開源,共識演算法採用自研發的Pool驗證池,可以整合Byzantine Paxos、Byzantine、Raft等商用共識演算法,實現免Gas費用的秒級共識驗證,框架核心開發語言是C++,應用場景比較廣泛。

小蟻區塊鏈,開源地址為https://github.com/antshares/antshares,採用改進的拜占庭容錯演算法-dBFT共識演算法,支援智慧合約,目前重點領域在數字資產應用,框架核心開發語言C#。

最後,彙總一下幾大主流開源技術的比較。

名稱

公識演算法

適合場景

開發語言

智慧合約

TPS

比特幣1.0

POW

公鏈

C++

7

以太坊ETH 1.0

POW

公鏈/聯盟鏈

GO

25

IBM HyperLedger fabric

PBFT為主

聯盟鏈

GO

100K

位元股BitShare

DPos

聯盟鏈

C++

500

公證通Factom

Factom自有共識機制,類Pos

公鏈/聯盟鏈

C++

27

瑞波Ripple

RPCA

公鏈/聯盟鏈

C++

1000

未來幣NXT

Pos

公鏈/聯盟鏈

JAVA

1000

*附註[共識演算法解釋]:

共識機制是區塊鏈技術的關鍵點。共識機制的核心是在分散式網路中,利用一種規則(演算法)來保證全網對於Block的建立是一致的,下面是主要的共識演算法。

1、Pow工作量證明,就是大家熟悉的挖礦,通過與或運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的資料,全網其它節點驗證後一起儲存;

2、Pos權益證明,Pow的一種升級共識機制;根據每個節點所佔代幣的比例和時間;等比例的降低挖礦難度,從而加快找隨機數的速度。

3、DPos股份授權證明機制,類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。

4、Pool驗證池,由布比構建,基於傳統的分散式一致性技術,加上資料驗證機制;是目前行業鏈大範圍在使用的共識機制

5、PoET(Proof ofElapsed Time),也就是‘消逝時間量證明’,它是由英特爾構建在可信執行環境的一種彩票協議。

6、QuorumVoting,屬於Quorum拜占庭協議,仲裁投票演算法,它採用了瑞波和恆星的共識協議,用來解決需立即交易定局的需求。”

7、Casper,以太坊社群提出的正在研發中的類POS共識協議。Casper的基本思路是,任何人抵押足夠多的以太幣到系統中就可以成為礦工參與到挖礦過程。共識演算法要求所有的礦工誠實工作,如果一個礦工有意破壞,不遵守協議,系統就會對礦工做出懲罰:沒收之前抵押的以太幣。有人把Casper這樣的挖礦機制稱為“虛擬挖礦”。

8、PBFT(PracticalByzantine Fault Tolerance)演算法,拜占庭容錯演算法,屬於狀態機拜占庭協議,IBM HyperLedger fabric實現和推薦的共識演算法,採取一個節點一票的方案確定記賬結果,少數服從多數投票,效能較好,主要用於聯盟鏈。