33複雜美區塊鏈核心技術Chain33介紹

買賣虛擬貨幣
Chain33是一個開發門檻低、可拔插、易升級、分層的高效區塊鏈架構,可供開發公鏈、聯盟鏈及私鏈等,並首創平行鏈架構及模組化體系。由杭州複雜美科技有限公司(下稱複雜美)歷時5年研發。複雜美成立於2008年,擁有撮合交易系統低延時、高併發的核心技術。2013 年啟動區塊鏈、智慧合約的研發與創新,2014 年申請第一個區塊鏈發明專利:錢包找回功能,並在2017 年 12 月獲得授權。目前已累計申請了200多項區塊鏈技術的發明專利,其中有7項已經獲得授權,全球排名第8。經過5年的潛心研發,2018年11月19日,複雜美的核心技術Chain 33正式開源。

1、基本資訊


開源日期:2018年11月19日,於GitHub
Github上的Chain33開源地址:https://github.com/33cn/chain33Chain33開發者平臺官網:https://chain.33.cn/推特:https://twitter.com/FuzameiLtd(@FuzameiLtd)開發團隊-複雜美企業官網:https://33.cn/支援的共識機制:支援可插拔的共識公鏈: POS(案例:位元元BTY),DPOS+BFT(案例:原鏈YCC)
聯盟鏈:Tendermint,PBFT私鏈:RAFT平臺支援語言:Go語言       智慧合約開發語言:Go,Solidity, C++,Javascript2、Chain33簡介
2.1 Chain33解決的行業痛點區塊鏈底層系統被認為是區塊鏈技術的根基,公鏈、聯盟鏈及私鏈,眾多鏈上應用,以及各類區塊鏈解決方案都必須依託於一套穩定可靠的底層系統。但作為一種新穎的分散式資料儲存系統,大部分開發者在使用一套新的底層系統時,都面臨了學習門檻高、開發工作量大、大量耗時等問題。面對這種情況,我們進行了大量的市場調研與開發者隨訪,對同類專案的優缺點進行分析總結,花費5年時間,打造了chain33區塊鏈開發者平臺。區塊鏈底層系統可以搭建公鏈、聯盟鏈及私鏈,其中公鏈備受矚目,市場應用前景更大。目前市面上已有部分公鏈開發團隊,但公鏈開發門檻極高,相關人才稀少,開發成本高、難度大、週期長。真正需要使用區塊鏈技術的企業或者希望藉此轉型的企業,難以獨立完成開發,這也限制了區塊鏈技術在商業端的結合與探索。難道市面上就沒有一套入門門檻低、易於開發且高效的區塊鏈底層系統嗎?
為此,Chain33開發者平臺應運而生,旨在讓開發者輕鬆玩轉區塊鏈。· 模組化設計,輕鬆部署你的鏈:Chain33採用模組化設計,提供超過十種以上的模組化功能,開發者可自由組合應用,開發簡易,僅需基礎的程式設計能力,即可打造一條公鏈,無需耗費大量成本自己開發區塊鏈底層;· 高相容性,應用無礙移植:Chain33的相容性極高,無論是大型或是小型應用,皆可以無礙在Chain33上開發;· 可修改核心,共識可插拔,滿足你的每一個需求:不同於其他公鏈大多隻能開發DApp,Chain33開放修改核心,對核心作二次開發,核心極小,可透過可插拔模式替換;· 首創平行鏈架構,兼顧安全、高效能與多樣化生態:最後,Chain33首創的平行鏈架構,兼顧主鏈的安全和執行效率的同時,可用平行鏈來打造多樣的生態性,市場應用前景巨大。2.3 Chain33的技術架構
Chain33技術構架支援目前市場上的兩大區塊鏈需求場景,即“公鏈構架”和“聯盟鏈、私鏈構架”。chain33架構介紹

Chain33構架主要分為五個層級:資料層、網路層、共識層、激勵層及應用層。

應用層:相容以太坊智慧合約,支援發行代幣、資產交易、錢包找回,hash鎖定等原生能力,同時支援使用者可擴充套件執行器(合約)。
共識層:共識演算法可插拔,支援POS及DPOS的公鏈共識、Tendermint及pbft聯盟鏈共識、Raft私鏈共識、平行鏈共識等。
資料層:資料儲存方式支援可擴充套件,目前支援MPT、MAVL、KVDB、MVCCKVDB多種方式。

chain33平行鏈架構介紹

平行鏈是其公鏈架構中的一大特色。

為了解決區塊鏈擴容以及TPS限制問題,目前市面上的主要方案包括“分片技術”、”側鏈“以及“DAG”,其中分片技術為主流形式。但以上三種解決方案都存在一定問題,尚未有最完美的方案。而平行鏈概念的提出,提供了一種更好的選擇方向,Chain33是行業內第一個提出平行鏈構架概念,並解決擴容和TPS低落兩大問題的區塊鏈系統。

平行鏈此後其被百度、阿里等機構認可並跟進研究,也證明了平行鏈方向具有前瞻性。但提升區塊鏈網路效能只是平行鏈架構的基本屬性之一,平行鏈的核心競爭力在於大大降低了部署公鏈的門檻,因此平行鏈也可理解為“平行公鏈”、“小公鏈”。

平行鏈架構概述與示意:

平行鏈由多條底層為Chain33的鏈組成,交易傳送到主鏈上被共識打包,隨後同步到平行鏈上被執行,最後執行結果寫回主鏈進行共識,分離共識和交易執行,同時實現交易執行,提升TPS。

平行鏈面向所有群體開放,屬於公鏈的一種,它不僅僅是一個dapp的應用,它也是在主鏈基礎上搭建的區塊鏈,擁有自己的區塊鏈生態,平行鏈使用主鏈的共識,擁有獨立的錢包和區塊鏈瀏覽器,結合開放平臺的API 和 SDK,就可以開發出自己所需的應用鏈。非常適合需要建立自己商業生態的中小企業。

chain33平行鏈拓撲示意圖

 chain33平行鏈示意圖

平行鏈雲服務組成
2.4 Chain33開發者平臺的系統特點
·  簡單、易上手:讓開發者一學就會用,一用就能開發部署,是chain33的首要願景。Chain33開發者平臺部署快捷簡單,一個可執行檔案,數個配置引數,一行啟動命令便可以快速部署一個區塊鏈主鏈網路及平行鏈網路。·  高效:聯盟區塊鏈中,交易在主鏈上共識並儲存。多條平行鏈同時處理交易,使區塊鏈網路效率大大提升。·  穩定:平行鏈構架有助於提升穩定性。複雜的功能可放在平行鏈上開發,主鏈不受影響。聯盟鏈主鏈只執行核心功能,簡單穩定。· 安全:平行鏈使用主鏈安全的共識,安全性主鏈來提供。即便平行鏈遭到攻擊或損壞,資料可以快速從主鏈同步,保證資料安全。·  高擴充套件性:平行鏈支援部署自己的微共識和生態,支援主鏈和平行鏈跨鏈,平行鏈之間跨鏈交易。2.5 Chain33的技術創新及核心競爭力
A 高度模組化、遵循 KISS原則的設計:可插拔,易升級Chain33的模組化設計,在對區塊鏈的底層架構、應用開發的不同功能和需求進行分析的基礎上,劃分並設計出一系列功能模組,透過模組的選擇和組合可以構成不同的產品,以滿足市場的不同需求。開發一個軟體其實是一個不斷迭代進化的過程,Chain33因此採用“從混沌走向秩序的開發模式”,方便開發者隨時調整和擴充。此外,有些開發者可能會在開發過程中發現,有些比較特殊的業務邏輯,需要專門定製某些模組來配合這個業務邏輯。從迭代和重構、以及系統的可拓展性等角度考慮,Chain33將區塊鏈的底層架構、不同應用開發的功能和需求納入考量,將系統進行了模組化設計。包括 mempool的排隊方式,加密簽名的方式,共識的模式,RPC的函式,命令列的命令,錢包的內在邏輯,資料庫儲存的方式等等,區塊鏈核心的所有模組都可以定製。採用模組化的設計,這就好比用積木搭建一個機器人,手腳等身體各部分都按照類別放置,可以根據自己的意願選擇組裝。在Chain33中,為大家提供了共識、加密和儲存等多種模組,開發者在Chain33提供的架構下,可自由組合應用,開發簡易,因此僅需基礎的程式設計能力,即可打造一條公鏈,無需耗費大量成本自己開發區塊鏈底層。

目前Chain33已開源的外掛:

共識部分:

• pbft(聯盟鏈,beta)
• tendermint(聯盟鏈)
• raft(私有鏈)
• ticket(公鏈)
• solo (測試鏈)

加密部分:

• sep256k1 (bitcoin, ethereum)
• ed25519 (tendermint,sc)
• sm2 (國密支援)

store:
• mavl (tendermint 提供的後端資料儲存方式)
• mpt (以太坊提供的資料儲存方式)
• kvmvcc(目前效能最高的區塊鏈後端儲存方法)

執行器部分:

• evm (以太坊虛擬機器支援)
• wasm (目前沒有開源)
• cert (聯盟鏈許可權管理)
• hashlock (hash鎖定,和btc,eth 跨鏈使用)
• paracross (平行鏈,注意,平行鏈只是我們的一個外掛,可見核心非常的小)
• privacy (類似門羅幣的隱私保護實現,這個例子可以好好學習一下,它顯示我們系統可擴充套件性的強大,門羅幣是utxo模型,但是也可以在我們系統裡面相容賬戶模型)
• trade (內建一個幣幣交易所,可以支援鏈上所有資產的交易)
• 遊戲

B 首創的平行鏈架構

Chain33用了5年時間設計出平行鏈架構,這是國內首創並實現的平行鏈概念。同年九月,百度釋出的《區塊鏈白皮書 V1.0》中,也提出了平行鏈,隨後平行鏈概念相繼被同業者引用。

Chain33在公鏈基礎上採用平行鏈架構,是在考慮了POW和POS機制的利弊後,綜合考量之下設計的。因為很多人以為,只要搭幾個節點,或者買點礦機挖礦,就可以保證公鏈安全。但事實上,頻頻發生的數字貨幣被盜事件說明,就算是當前大眾認為最安全的PoW機制,其實只要一個大的礦池被攻擊就可以奪走你的主控權。而PoS的問題是,參與的人必須足夠多,挖礦節點足夠分散,否則若沒有足夠多的人達成共識,也會對網路安全造成影響。平行鏈架構的設計,既能保證主鏈的安全,又能提升主鏈的執行效率。

平行鏈的一大特點是分開資料存證和業務邏輯,提升執行效率。主鏈上只放指令和結果,不放虛擬機器,較為複雜的業務邏輯則放在平行鏈上實現,這樣做的好處是若平行鏈效能出現問題或者智慧合約被攻擊,都不會影響主鏈的穩定執行。

但這並不代表平行鏈完全受制於主鏈,它亦是一條相對獨立的區塊鏈網路,可以編寫多種智慧合約,如發行各種Token、開發Dapp、擁有獨立的錢包、獨立的區塊鏈瀏覽器等等,平行鏈的交易由自己的節點來驗證、校對,而不影響主鏈。

C 第一個區塊鏈發明專利:錢包找回功能

2014 年複雜美申請了第一個區塊鏈發明專利:錢包找回功能,並在2017 年 12 月獲得授權。

而這項技術也被應用在Chain33中,錢包找回功能解決了因私鑰丟失而導致數字資產損失的問題。當使用者因遺失錢包或者儲存裝置突然損壞導致私鑰丟失,可以透過低許可權的備用私鑰(自己儲存或者託管給信任的機構/人)找回自己的數字貨幣,找回指令並不會立刻轉移數字資產,而是會在預告一段時間後生效,所以若備用私鑰被冒用,使用者也可及時發現,並用原私鑰將數字資產轉移到安全錢包,避免損失。

D 隱私保護功能

區塊鏈技術不可篡改、分散式的特質,的確能夠避免使用者的隱私被中心化機構掌握從而導致被販賣、被駭客攻擊等的問題,但公開透明的賬本,卻讓海量使用者資料在鏈上曝光,隱私問題依舊如空中閣樓,沒有得到根本解決。打個比方,原來在淘寶上購物,現在去中心化,不透過淘寶交易,甲乙雙方直接郵寄。雖然沒有淘寶沒有掌握這兩者交易的資料,但是他們交易資料被記錄在區塊鏈網路上,任何人都可以檢視。

基於賬戶和UTXO混合模型,Chain33實現了區塊鏈隱私交易系統,在使用UTXO系統的同時,保留了賬戶體系,加入環簽名和一次性地址,讓賬戶在隱私和公開之間自由流轉,同時具備不可追蹤性和不可連線性。

E 專利眾多

複雜美擁有國產技術,100%自有智慧財產權,目前已累計申請了200多項區塊鏈技術的發明專利,其中有7項已經獲得授權,全球排名前8。

2.5 Chain33的開發語言

Chain33的開發主要使用go語言,主要從以下幾個點來考量:

A 語言成熟度的考慮

一個語言是一個成熟的語言,一個重要的標誌就是開發過非常大型的系統。雲端計算領域的兩個核心系統 docker 和 k8s 都是用go 語言開發的。目前大部分割槽塊鏈系統也是選擇用go語言開發,可以說,要做區塊鏈,go語言是必須要學的一種語言。

B 開發人員的數量

一個語言的入門成本比較低,但是要精通類庫和最佳實踐,必須要經過數年的學習時間。所以非常小眾的語言肯定不在考慮在內,目前go語言在全世界多如牛毛的語言中排行第十名,受到較多的開發者肯定。

C 語言的工程特性

Go語言在設計的時候,就考慮到了工程實踐的問題,一個問題的解決方案基本上都只有一種寫法,甚至只是把 if 寫成這樣都是非法的。go 提供了 gofmt, 會自動格式化程式碼,這樣每個人寫出的程式碼風格都非常一致,互相交流起來就不會有障礙。

D 面向大部分普通程式設計師

選擇go語言的一個很重要的原因,就是一箇中等水平的程式設計師,就能寫出非常不錯的go程式碼。這主要的原因還是go語言非常簡單,特性非常的少,官方類庫又非常豐富,大部分程式設計師都可以非常容易的上手開發。

2.6 Chain33的應用與生態-基於chain33的成功案例

Chain33開發平臺可用於公鏈、聯盟鏈及私鏈開發部署,以及各類商業場景的DAPP應用開發。

公鏈案例:目前,chain33上已經成功搭建的公鏈案例包括:位元元區塊鏈網路(BTY),企業級區塊鏈SaaS平臺-原鏈(YCC),Dapp開發者可基於以上公鏈開發,或自主部署公鏈、平行鏈;

位元元BTY官網地址:https://www.bityuan.com/
原鏈YCC官網地址:https://www.yuan.org/
聯盟鏈、私鏈案例:小米與複雜美合作的聯盟鏈等。

平行鏈案例:上鍊購-區塊鏈商城、chat33-區塊鏈聊天社交軟體、火食-區塊鏈進口食材溯源系統、藝術藏品行業-金絲楠木鏈、工業鍋爐及節能產業-節能鏈、星晴-區塊鏈醫療智慧穿戴裝置、區塊鏈遊戲—遊戲競猜剪刀石頭布等平行鏈。

各類商業場景的區塊鏈結合:Chain33的效能已證明足以支援商業級應用,包括供應鏈金融、倉單交易、票據撮合系統等,並可應用在多種產業,如:製造業、物流業、金融業等,不同的產業可在不同的平行鏈上開發公鏈,平行鏈和平行鏈之間不相互影響。

·  供應鏈系統應用:1、區塊鏈應收款2、區塊鏈預付款3、供應鏈金融與管理平臺
·  金融租賃、金融倉儲區塊鏈平臺:區塊鏈倉單抵押流轉與融資、區塊鏈金融租賃等
·  區塊鏈積分,支付系統
·  區塊鏈交易所等

2.7 市場對比

2.7.1 整體結構對比

以目前市場上較為知名且成熟的石墨烯和Fabric為例,整體結構對比如下:

2.7.2 技術特點及架構對比

以太坊和超級賬本是比較成熟的區塊鏈平臺,Chain33和兩者的對比情況如下:

A 以太坊智慧合約部署過程

· 搭建以太坊私鏈環境,生成私鏈的創世區塊;
· 啟動私鏈,生成一個初始的以太幣賬戶,開始挖礦(挖礦需要一個賬戶接收以太幣);
· 編寫智慧合約,solidity和mix語言;
· 編譯智慧合約,單個檔案的簡單合約可以線上編譯,多個檔案需要藉助solc(編譯成字串,全網同步);
· 部署,合約部署當作一筆交易記錄再鏈上,需要支付一定以太幣,並且執行需要gas。

B 超級賬本智慧合約部署過程

· 規劃好聯盟鏈的組織形式, 再編輯fabric的配置檔案(包括:相關證書檔案,系統通道初始區塊,應用通道交易檔案,錨節點配置更新交易檔案等)
· 編輯好docker-compose檔案(需要理解裡面各引數的含義, 目前fabric開原始碼裡的共識只支援kafka和raft), 啟動4個peer節點,一個order節點組成一個kafka叢集。
· 部署fabric對應的SDK程式。
· 編寫fabric的智慧合約。
· 透過SDK來建立channel,把上面啟動的peer節點加入到channel,同時安裝並初始化chaincode(智慧合約),在各個節點部署並初始化智慧合約
· 執行智慧合約。

C Chain33的智慧合約部署過程

GO語言部署方式:
· 編寫GO語言的智慧合約,和chain33一起編譯成二進位制檔案。
· 透過介面呼叫智慧合約來執行智慧合約。

EVM的部署方式:
· 用Solidity編寫智慧合約。
· 透過chain33提供的介面將智慧合約部署到chain33的EVM虛擬機器中。
· 透過介面呼叫EVM合約來執行智慧合約。

WASM的部署方式:
· 用C++編寫智慧合約。
· 透過chain33提供的介面將智慧合約部署到chain33的WASM虛擬機器中。
· 透過介面呼叫WASM合約來執行智慧合約。

JSVM的部署方式:
· 用Javascript編寫智慧合約。
· 透過chain33提供的介面將智慧合約部署到chain33的JSVM虛擬機器中。
· 透過介面呼叫JSVM合約來執行智慧合約。

系統間橫向對比

3、技術開發團隊介紹

33複雜美公司成立於2008年,擁有撮合交易系統低延時、高併發的核心技術。2013 年啟動區塊鏈、智慧合約的研發與創新,2014 年申請第一個區塊鏈發明專利:錢包找回功能,並在2017 年 12 月獲得授權。目前已累計申請了200項區塊鏈技術的發明專利,其中有7項已經獲得授權,全球排名前8。

公司總部位於杭州,並在上海、南京設立分部。目前,公司約有200 人,多數為技術人員,吸引了一批甲骨文、阿里等高管及程式設計師加盟。

4、總結

Chain33開發者平臺,致力於為開發者呈現一個易上手、高效能、穩定、安全的區塊鏈底層系統,具有近200項區塊鏈專利,全球排名前八。經過5年潛心研究與開發,首創了平行鏈架構及模組化體系,主鏈進行存證,平行鏈處理業務邏輯,極大提升了區塊鏈網路的效能、安全性及穩定性。

使用chain33開發者平臺,可用於開發部署公鏈、聯盟鏈及私鏈,以及各類商業場景的區塊鏈解決方案和商業應用,如供應鏈金融、資產上鍊、各類DAPP等。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;