目前有很多關(guān)于區(qū)塊鏈技術(shù)的炒作,特別是正在發(fā)生的加密貨幣首次公開募幣(initial coin offering,ICO)泡沫里。但是,這種炒作方式可以幫助企業(yè)管理資產(chǎn)并在信任問題上進行協(xié)作。驅(qū)動區(qū)塊鏈的底層的共享總賬模型是一個強大的工具,而且是具有很大潛力的工具。
因此,看到微軟在仔細研究將區(qū)塊鏈其嵌入到Azure平臺的方法,先是有Bletchley項目(Project Bletchley),現(xiàn)在有Coco框架(Coco Framework),這不足為奇。
為了支持企業(yè)區(qū)塊鏈,Coco框架的設(shè)計初衷就是私密使用。這使得它比公共加密貨幣區(qū)塊鏈和服務(wù)更具性能優(yōu)勢,因為后者要使用大量的計算能力來運行大規(guī)模、可擴展和最重要的透明網(wǎng)絡(luò)。在公共網(wǎng)絡(luò)中,交易需要重要的“工作量證明”才能視為合法,這使它們在很多業(yè)務(wù)場景中變得很慢并且很難使用。
Coco不是一個區(qū)塊鏈而是一系列根基
Coco框架不是一個區(qū)塊鏈協(xié)議。它是構(gòu)建可信節(jié)點集合的一種方法,它具有確保它們之間的一致性和管理機密性的工具。一旦實現(xiàn)了這一點,你可以使用現(xiàn)有的區(qū)塊鏈協(xié)議來設(shè)置和管理你的分布式賬本。
微軟已經(jīng)通過以太坊(Ethereum)平臺測試了Coco與區(qū)塊鏈促成的合同,并且建議其它工具(如Quorum和Corda)也應(yīng)該兼容。可能最好將Coco視為安全計算技術(shù)和區(qū)塊鏈之間的一個層。
微軟Azure的首席技術(shù)官Mark Russinovich表示,目前來說,區(qū)塊鏈還沒準(zhǔn)備好為企業(yè)提供加密貨幣以外的應(yīng)用。“企業(yè)希望在聯(lián)盟環(huán)境中使用區(qū)塊鏈而不是公開賬本和比特幣,在這個聯(lián)盟環(huán)境里有多個參與方,不同的組織或同一個組織的不同小組,這些小組希望擺脫集中化賬本的摩擦。一個區(qū)塊鏈的分布式賬本為他們提供了擺脫中間人的機會,并對不同組織間的互動有充分的透明度。”
Coco框架的核心是聯(lián)盟的思想,一組可能是個人或公司的實體,甚至是應(yīng)用程序或服務(wù),而不是開放的公共網(wǎng)絡(luò),它是封閉且私密的,更像是EDI系統(tǒng),用于將公司與供應(yīng)商連接在一起,而不是公共互聯(lián)網(wǎng)。在此不難看出EDI工具的用途,比如說一船運行Coco的集裝箱,在船上裝有貨物的所有人都可以看到船只在哪里,監(jiān)控其集裝箱的狀態(tài),并分發(fā)提單和通關(guān)流程所需的關(guān)鍵文件。
提高Coco的安全性
Coco與其它區(qū)塊鏈實現(xiàn)方式不同之處在于,它支持可信任執(zhí)行環(huán)境(trusted execution environment,TEE),其基于內(nèi)置于Azure基礎(chǔ)架構(gòu)中使用的處理器中的安全技術(shù)以及承載Coco應(yīng)用程序元素的安全虛擬機。
Russinovich指出:使用安全的飛地(與蘋果在iPhone和iPad的Touch ID安全性中使用的技術(shù)相同)“避免了與現(xiàn)有區(qū)塊鏈實現(xiàn)相關(guān)的一些問題,允許Coco聯(lián)盟的成員就該聯(lián)盟的章程和正在運行的代碼版本達成一致(在代碼中定義)。
在使用TEE的情況下,如果聯(lián)盟的其他成員沒有見證代碼被篡改,則代碼不能被修改,因為一個TEE可以驗證另一個運行的軟件。相同的技術(shù)也確保了TEE之間的通信是安全的,不能從TEE外部竊聽。
一旦在Coco框架應(yīng)用程序中進行了交易,它就會廣播到一個聯(lián)盟中的所有節(jié)點,然后用于更新區(qū)塊鏈總賬。因為每個節(jié)點信任網(wǎng)絡(luò)的其余部分,所以可以達成共識,而無需檢查惡意交易或與分類賬的沖突。
Coco使區(qū)塊鏈安全,私密,快速
結(jié)果是一個安全和私密的網(wǎng)絡(luò),在那里不需要復(fù)雜的、計算上昂貴的“工作量證明”計算。此外,你的網(wǎng)絡(luò)會使用熟悉的分布式計算仲裁規(guī)則自行更新。
結(jié)果是以分布式數(shù)據(jù)庫速度運行的區(qū)塊鏈。沒有這些昂貴的計算,它也不需要比特幣和其它加密貨幣使用的高能耗的定制硬件——目前使用的能量超過了130萬美國家庭使用的能量。
除了對面向企業(yè)的區(qū)塊鏈?zhǔn)绞褂玫腃oco之外,微軟一直在嘗試使用Coco框架來托管現(xiàn)有的區(qū)塊鏈實施,如以太坊(Ethereum)。在公共以太坊網(wǎng)絡(luò)中,交易處理速度約為每秒20次,延遲時間為10到20秒。在Coco Framework TEE上運行相同的代碼,處理速率飆到每秒1500個交易,延遲時間為100到200毫秒。這快得多,它提供了由Visa信用卡網(wǎng)絡(luò)處理的每秒近2000筆交易。
以數(shù)據(jù)庫速度運行的區(qū)塊鏈?zhǔn)且粋€游戲顛覆者,特別是當(dāng)它與分布式系統(tǒng)中處理一致性的現(xiàn)代思想相關(guān)聯(lián)時。與云一起協(xié)作的復(fù)雜性在于一致性問題。通過使用區(qū)塊鏈構(gòu)建云中的可信節(jié)點之間的可信網(wǎng)絡(luò),你可以將區(qū)塊鏈視為應(yīng)用程序的信任根,你知道它將盡可能保持最新,即使你看不到網(wǎng)絡(luò)中的最新交易中,你可以相信它們僅出現(xiàn)一次,并且將按順序出現(xiàn)。
Coco為商業(yè)世界創(chuàng)造了一個區(qū)塊鏈
Coco框架也可以使用來自區(qū)塊鏈以外的軟件,所以如果你使用它來處理智能合同(如以太坊中的那些),則可以根據(jù)外部數(shù)據(jù)驗證合同。也許你正在使用一個智能合同買賣貨幣,當(dāng)利率在特定范圍以外的時候就賣出。將Coco應(yīng)用程序連接到可信賴的價格來源可以自動執(zhí)行智能合同,從而在Coco框架之外觸發(fā)交易,同時將其記錄在其私有區(qū)塊鏈中。
Coco框架中的大部分內(nèi)容獨立于微軟的技術(shù),而且很容易看到它在Amazon Web Services或私有服務(wù)器上運行。但是,Russinovich建議,Azure將在Azure的全球云端找到一個自然的家園:“我可以想象,一個完全基于Azure組成的聯(lián)盟網(wǎng)絡(luò),成員節(jié)點由世界各地的獨立方運營,在那里他們通過Azure骨干網(wǎng)訪問成員節(jié)點時碰巧延遲很低。”
微軟正在做的不僅僅是想象這樣一個現(xiàn)實,Russinovich說:“我們現(xiàn)在正致力于一個更深入地整合基礎(chǔ)設(shè)施服務(wù)的項目,如密鑰保管庫,并用Azure監(jiān)控來完成Azure中節(jié)點的全面的生命周期管理。它甚至可能采用近乎無服務(wù)器的方法來實現(xiàn)智能合同,在這個合同里客戶只需編寫一個智能聯(lián)系人,并通過門戶網(wǎng)站提交到分類賬,并且在后臺碰巧將該交易提交到網(wǎng)絡(luò),使用Azure憑據(jù)進行身份驗證。
當(dāng)微軟在2018年GitHub上發(fā)布作為開源項目的Coco框架時,我們將能了解更多詳情。