IBM Open Blockchain是什么?IBM Open Blockchain有什么特色?
(連載一)
概述
本文描述了利用行業用例來驅動后端的區塊鏈架構的原則,并概述了基本的要求以及基于這些用例的上層架構 。這里介紹的設計描述了一個還處在演變中的區塊鏈架構,以及處理企業對企業和企業對客戶之間交易的協議,它被稱為Open Blockchain(OBC) 。OBC允許那些遵守規定,同時提出不同需求的相互矛盾的業務在同一個網絡中一同工作 。下面要提及的核心要素包括:智能合約(又名chaincode),數字資產,記錄倉庫,一個基于網絡的分布式共識機制,安全加密 。除了這些主要部分之外,還增加了一些行業對區塊鏈的要求,包括:性能,驗證身份,私有的和保密的交易,一個可插拔的共識模型 。
關于OBC所使用的一些專有名詞的解釋,可以參考 [詞匯表](https://blog.esse.io/markdowns/obc-docs/glossary_zh_CN.md) 。
背景
區塊鏈是一個新興的技術模型 , 可以從根本上改善銀行業 , 供應鏈,和其他交易網絡,為創新和成長創造了新的機遇,同時降低了成本和相關經營活動的風險 。隨著比特幣在交易領域的迅速崛起,自2009年以來,許多企業都投入大量資源去研究其底層技術 , 該技術支撐了即受歡迎,但又有爭議的加密貨幣 。
區塊鏈是點對點的分布式賬本技術,首先獲得落地的是金融行業,由于其發行容量,買賣 , 管理 , 資產服務的效率及安全性問題 。分布式賬本使其能夠很容易的創建一個不需要中心控制節點的成本合理的商業網絡 , 與SoR(System of Records)形成鮮明的對比是 , 在這個生態系統中的每一個成員都需要維護自己的賬本系統和協調交易的更新,另一個則是低效的,昂貴的,而且往往需要非標準化的跨組織操作流程 。
當共享賬本的概念獲得了商業世界追捧的同時,區塊鏈的智能合約也得到了很多企業的關注【Eth】 。一個智能合約是一組業務邏輯的集合,這些規則被部署到區塊鏈中,被共享 , 并被一組利益相關者共同驗證 。一個智能合約可以是一組非常有用的自動化業務處理流程,并以一種授信認的方式,來允許所有利益相關者去處理和驗證合約中的規定 。在OBC中,智能合約是用chaincode來實現的 。
比特幣和其他加密貨幣設計的初衷就是抵制任何的審查--任何人不需要建立身份就可以參與--只需要貢獻自己的計算力 。在比特幣模式之下的區塊鏈,是不需要中心化的認證節點來控制接入的,這些網絡被稱為無需許可的網絡 。他們的特性就是要通過無數次的計算來進行工作量證明,但這個花費是非常大的【N09】 。
Open Blockchain是在傳統區塊鏈模型的基礎上,增加了準入機制,來管理那些想加入核心網絡的參與者制,我們稱之為**許可網絡** 。換句話說 , OBC是有權限管理的共享賬本 。OBC節省計算周期,具有良好的擴展性,并提供了大量行業用例中所要求的安全性,健壯的身份認證模型,可審計性和隱私 。
進入2016年后,我們可以看到對于企業級的 , 可擴展的區塊鏈解決方案的需求已經是非常強烈的了 。
(連載二)
我們收集了一些必須被考慮的對于區塊鏈的需求來支持下列的抽象用例 。
商業合同
商業合同可以通過編程的方式允許兩個或兩個以上當事人以一種可信的方式自動的履行合約 。雖然在區塊鏈上的信息本身是公開的,但企業之間的合同往往需要隱私控制來保證敏感的商業信息不被其他對賬本有訪問權限的人看到 。
然而由于保密協議通常在商業合同中也是非常重要的一部分,因此在很多情況下,合同能夠也必須能被所有的當事人很容易的在賬本中找到 , 例如用來保存投標時的出價(詢價)的賬本 。這類合同應該需要被標準化以便投標人很容易的找到 。
資產倉庫
像金融證券之類的資產必須能夠被電子化的保存在區塊鏈網絡中,以便這些資產的利益相關者可以方便的訪問,同時允許他們直接發起交易,并獲得資產信息 , 而不必通過中介 。交易應該能夠接近實時的完成,所有的參與者也應該能夠接近實時的訪問這些資產 。利益相關者應該能夠為任何給定的資產類型添加業務規則,從而通過實施自動化邏輯進一步降低運維成本 。資產的創建者必須能夠使資產和任何與該資產相關的交易規則私有化和保密 , 或者經過授權的公開出來 。
供應鏈
區塊鏈架構必須提供一種手段,允許供應鏈上的每一個參與者能夠輸入和跟蹤原材料,記錄零部件的生產制造過程 , 跟蹤商品的出處及運輸,同時維護與該商品相關的所有不可更改的記錄,記錄包括:生產和儲存的各個方面以及整個銷售環節 。并且能夠同時利用到上面提到的商業合同和資產倉庫 。這個用例主要強調的是能夠提供深度搜索和在多個交易中快速回溯的能力,這個需求的核心是要確定被制造的商品以及制造該商品的零部件的出處 。
要想獲得這些用例及需求的詳細信息 , 并通過圖示來進一步了解它們是如何應用到基于區塊鏈的系統中去的 。
(連載三)
Open Blockchain 的總體系統架構
下圖從三個分類展示了Open Blockchain的參考系統架構:會員管理、區塊鏈和Chaincode 。這些類別是按照邏輯結構劃分的,而不是按照物理描繪把組件分成獨立的進程,地址空間或(虛擬)的機器 。
這些組建中的一部分將從頭開始興建,一些會使用現有的開源代碼,而另外一些會對接現有的服務來實現所需的功能 。

圖: Open Blockchain 參考系統架構
會員管理服務用于管理區塊鏈網絡上的標識、隱私和機密內容 。參與者通過注冊來獲得標識 , 而后由管理機構頒發進行交易的安全密匙 。如果交易參與者已經授予每個審核者合適的訪問權力,信譽管理員可以授權審核者來檢查與參與者有關的交易 。
區塊鏈服務通過基于HTTP/2的P2P協議來管理分布式的總賬 , 而數據結構也為在過個參與者上保持全面狀態同步與復制做了有效的優化 。不同的共識算法保證的很強的一致性(允許與BFT非一致的行為,允許破壞性的延遲和過期,或者允許POW檢查制度)均可以通過部署植入和配置 。
Chaincode服務是以一個安全的和輕量級的沙箱方式在確認節點上運行chaincode 。Chaincode的運行環境是一個在一個包括安全的OS和chaincode語音環境的簽名的基礎鏡像集合上的『加了鎖的』和安全的容器,運行環境和開發包鏡像包括:Go(可用),Java(計劃中)和Node.js(計劃中) 。如果需要的話,其它編程語言也可以被支持 。
(連載四)
會員管理(MEMBERSHIP)

Open Blockchain使用的是一個私有交易確認者網絡協議,因此所有單元都要求向會員管理服務注冊,從而獲得一個在區塊鏈網絡上具有訪問和交易權力的標識 。
確認者在區塊鏈網絡建立時可以決定交易所需的權限級別 。而且在網絡建立時可以定義區塊鏈網絡為開放的,以降低訪問難度和支持快速和高效推廣,或者為高可控環境定義更多限制 。
注冊(Registration)服務:為Open Blockchain的參與者提供控制和認證管理功能 。
標識管理(Identity Management)服務:提供對Open Blockchain的參與者標識與角色相結合的保險和授權的管理 。
可審核(Auditability)服務:給被授權的個體提供以下的服務:可以將單獨用戶, 或者一組具有相同角色, 或者屬于同一個聯盟的用戶的交易關聯起來;
【IBM Open Blockchain是什么?IBM Open Blockchain有什么特色?】查看系統中的某個特定用戶的行為;
降低系統運維難度 。
