1、基本資訊
Chain33構架主要分為五個層級:資料層、網路層、共識層、激勵層及應用層。
應用層:相容以太坊智慧合約,支援發行代幣、資產交易、錢包找回,hash鎖定等原生能力,同時支援使用者可擴充套件執行器(合約)。
共識層:共識演算法可插拔,支援POS及DPOS的公鏈共識、Tendermint及pbft聯盟鏈共識、Raft私鏈共識、平行鏈共識等。
資料層:資料儲存方式支援可擴充套件,目前支援MPT、MAVL、KVDB、MVCCKVDB多種方式。
chain33平行鏈架構介紹
平行鏈是其公鏈架構中的一大特色。
為了解決區塊鏈擴容以及TPS限制問題,目前市面上的主要方案包括“分片技術”、”側鏈“以及“DAG”,其中分片技術為主流形式。但以上三種解決方案都存在一定問題,尚未有最完美的方案。而平行鏈概念的提出,提供了一種更好的選擇方向,Chain33是行業內第一個提出平行鏈構架概念,並解決擴容和TPS低落兩大問題的區塊鏈系統。
平行鏈此後其被百度、阿里等機構認可並跟進研究,也證明了平行鏈方向具有前瞻性。但提升區塊鏈網路效能只是平行鏈架構的基本屬性之一,平行鏈的核心競爭力在於大大降低了部署公鏈的門檻,因此平行鏈也可理解為“平行公鏈”、“小公鏈”。
平行鏈架構概述與示意:
平行鏈由多條底層為Chain33的鏈組成,交易傳送到主鏈上被共識打包,隨後同步到平行鏈上被執行,最後執行結果寫回主鏈進行共識,分離共識和交易執行,同時實現交易執行,提升TPS。
平行鏈面向所有群體開放,屬於公鏈的一種,它不僅僅是一個dapp的應用,它也是在主鏈基礎上搭建的區塊鏈,擁有自己的區塊鏈生態,平行鏈使用主鏈的共識,擁有獨立的錢包和區塊鏈瀏覽器,結合開放平臺的API 和 SDK,就可以開發出自己所需的應用鏈。非常適合需要建立自己商業生態的中小企業。
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等。