1. 程式人生 > >除了遊戲和醫療,騰訊區塊鏈還準備做什麽?

除了遊戲和醫療,騰訊區塊鏈還準備做什麽?

區塊鏈 騰訊

導讀:4月23日,在UP2018騰訊新文創生態大會上,騰訊發布了首款,也是目前唯一一款應用了區塊鏈技術的遊戲《一起來捉妖》。馬化騰在近期舉辦的2018中國“互聯網+”數字經濟峰會上也表示,騰訊正在利用區塊鏈技術與醫院合作開數字處方,並在考慮推動這項技術落地。其實,相比遊戲、醫療,騰訊區塊鏈在金融上有天然的應用場景。本文由騰訊技術工程事業群計費平臺部的abllen撰寫,他從技術的角度詳細介紹了騰訊雲區塊鏈TBAAS系統上的最新應用場景。


一、騰訊雲區塊鏈TBaaS介紹


騰訊雲區塊鏈TBaas, 是結合雲服務推出的區塊鏈平臺。其整體結構如下圖:

技術分享圖片


作為一個完整的區塊鏈服務,目前提供的特性有:

(1) 運營上,客戶可以根據需要快速創建一套可靈活伸縮的自有應用, 內含高度自動化的合約發布、系統監控及運維。

(2) 調度上,整體系統通過kubernetes實現高效的調度運行。

(3) 安全上,實現基於CA及人臉等的強化用戶身份認證。

(4) 隱私保護上,所有的鏈上數據都是加密的,只有在相關的用戶或機構授權後,才能讀寫操作。

(5) 合約編輯,客戶可在頁面IDE上自助編寫(見下圖),後端會做好相關的語法語義合法檢查後自動提交鏈上,盡量避免目前行業常遇到的合約安全問題。

技術分享圖片


6) 底層存儲上,基於分布式存儲來實現幾乎無限的拓展。

7) 性能上,目前已實際做到3000TPS(pbft),高於行業平均值,足以開展一般的商業應用。

8) 在數據後處理上,TBaas還提供方便的AI分析等服務。

在具體的安全處理上,TBaas全面支持國密算法並引入CFCA(中國金融認證中心),來滿足國內金融等行業應用的合規要求,實現法律追溯及仲裁判定,同時還支持硬件加密,以進一步提升加密認證的處理速度。對於合約,基於零知識證明方法,可使得交易的各相關方只需也只能處理自身的數據,同時實現整體交易的完整及不可篡改。

TBaas支持的區塊鏈項目有HyperledgerFabric 和 BCOS等。當前區塊鏈底層研發主要基於Fabric構建。Hyperledger 是Linux基金會於2015年發起的推進區塊鏈數字技術和交易驗證的開源項目,目前進化到1.1版本。主要應用於聯盟鏈。

HyperledgerFabric 主要的特點是架構通用化和模塊化設計,這樣就很便於根據需要來自行調整或優化,還有就是支持基於Go和Node.js的智能合約編輯,易用性較好。在Fabric架構中,明確劃分了Endorse Peer(背書節點) / Commit Peer (all peers) / Orderer(共識服務) 三種角色,基本的結構如下圖

技術分享圖片

整個流程,通過初始背書及合約模擬執行等耗時運算的並行執行來盡量提升性能,然後通過共識,按時間串行化交易序列及驗證,來實現賬本數據的一致性,做到性能及一致性的較好平衡。

在具體開發過程中,我們做了如下的探索。首先是整體系統級的優化,如Signature offload, TLS體系下請求簽名處理為CPU密集,並且實際Fabric運行中有相當多同樣運算,通過將重復結果緩存,就可以有效提升單鏈的處理能力,另節點的簽名計算和數據落地,因存儲鏈式結構都是單進程串行的,通過pipeline方式,可使簽名計算並行化來大大提高整體性能。對於系統的異常如Kafka或底層存儲的Leveldb、Couchdb crash,也都做了代碼級的修改確保數據無損。

其次就是邏輯流優化, 目前Fabric其采用了樂觀鎖方法,模擬執行和版本號機制來保證鏈數據的一致,但對於熱點賬戶等沖突大的情況,則容易導致交易的高失敗率,這方面的改進有,1是放棄版本號,讀寫集改用增量, 2是用影子賬號,即將熱點賬戶做部分分拆,然後周期性做這些賬戶間的平衡調整。

在核心結構方面,現階段Fabric設計中,Orderer通過Kafka來實現請求有序,這是一個有效的設計,實際測試性能可達10000TPS,但Kafka本身的中心化導致擴展性和穩定性受限,同時管理命令也通過Kafka一同下發來保證節點處理結果一致的機制,導致一旦遇有消息堆積,有可能無法及時生效的問題。解決方案,1對消息隊列,要求管理消息可插隊,即消息分優先級;2 引入分布式共識算法如pbft。在應用pbft並做實現優化後,實測數據達到3000TPS。客戶可根據實際場景需要在兩種共識方法中選擇。

在底層存儲方面,Fabric區塊結構目前是完全鏈式的,這導致即便無關的兩筆交易,節點的校驗寫入也必須串行進行,初步規劃使用DAG或HashGraph圖等結構來使操作並行化從而進一步提升性能。

技術分享圖片

二、區塊鏈應用場景

當前的區塊鏈應用,一類是各種數字貨幣,這是典型的天然適應場景,通過嘗試激勵等策略構建一個特定的生態,還有就是在其他各行業的推廣應用,一般都是利用去中心化和數據不可篡改的特點,來解決多方之間的相互信任及信息處理問題,諸如供應鏈融資授信、商品防偽、醫療病歷和影像共享、物聯網數據安全、跨國清算、交易實時對賬等。

就現階段而言,區塊鏈的應用還在不斷的探索和嘗試當中,亟需各種實際的落地案例來驗證各類技術方案的可行性和有效性。而判斷一個場景是否適合,我們建議考慮如下原則,1) 有明顯的共識需求2) 多方有記賬意願 3)數據開放且多方對等(這裏不代表可以直接查看,有可能要授權解密),典型如交易對賬,多方都有記錄,也都需要一個明確認同的結果,就比較適合。

目前TBaaS 區塊鏈落地場景很多,這裏舉兩個比較典型的案例: 一個是愛心人壽,主打保險理賠,一個是微特,主打供應鏈金融。

在與愛心人壽的區塊鏈合作上,主要探索將醫療機構、保險公司、衛生信息平臺等組織成區塊鏈聯盟,打通諸多相關環節,將數字存證信息安全高效地保存在區塊鏈上,力爭從根本上解決醫療數字信息的安全性、關聯性等應用技術問題,實現真正意義上的醫療、保險等信息安全共享和互聯互通,為用戶提供高效直通安全優價的健康醫療和保險保障服務。

具體做法如圖,機構分醫療機構、保險公司、病例中心、監督節點多方,這裏各方如醫療機構、保險公司等實際都是有多個組織組成的,為簡化,圖上只列一個。

技術分享圖片

實際的保險理賠中,客戶的麻煩在於病例單據的收集和整理,保險公司的難點在於對病例的甄別及有效性驗證,這是難以信任的兩方,並都要有一定的成本付出(如跨醫院處理),而醫院作為中間方,承擔著對於病例的保管責任,在現實中也有對其他醫療機構病例的查看需要。這就同時滿足了區塊鏈應用的幾個要求: 有客戶和保險公司共識需求,有醫院間多方記錄的需求,有數據開放共享的需求。考慮到客戶記賬的不便,引入病例中心和監督節點(可選)參與第三方記賬,這些共同構成典型的區塊鏈病例記錄場景。

因區塊數據的不可篡改性,保險公司只要經用戶授權並經醫療方同意即可拿到翔實的病例單據實現有效準確理賠。對保險公司,只需付出少量的成本,對用戶則無需成本還更方便。保險公司付出的成本將轉化為對醫療機構及病例中心的物質激勵,進一步促進整個區塊鏈的良性運轉。

在保險公司支付的成本轉給到多方醫療機構和病例中心時,有定期對賬清算的需求,這又是前文提及的典型對賬場景,將實際醫療機構同意時(即背書)的交易信息上鏈,通過智能合約,各方就可以在本地清晰確定自己的收入,實現去中心的準確對賬。也就是通過區塊鏈,可以解決保險理賠全程各方間的數據核對及收入分成問題。

技術分享圖片

供應鏈金融,是區塊鏈另一個相對契合的適配場景,基於區塊鏈去中心化的共享、信任及安全機制,可以有效地解決供應鏈金融有關的轉讓、交易、及監督問題。微特場景,主要是將各類供應鏈有形資產數字化,比如農產品,可提前半年以數字化票據(通過區塊鏈讓更多人員參與)形式來公開預購,半年後到期交割。這期間如遇資金緊張,預購方可將部分票據提前賣出,到期則可以將票證轉給批發商或最終用戶,再由批發商等直接提貨。這樣可以省去倉儲和提貨成本,減少中間的步驟,並降低信息不對稱的無效成本,通過互聯網新技術來提升整個農產品的交易效率。

三、 展望

目前區塊鏈還是屬於一個方興未艾的領域,不斷地有精彩紛呈的新技術提出,有資料提到區塊鏈已經進化到4.0,但細究下來看,更多還處於試水(POC)的狀態,而從行業來講,一般都是需求催生技術進步,或者說在周邊技術已經基本成熟鋪墊好的情況下由需求來選擇,而當下的區塊鏈,則更多是基於技術的特點來延展或構建需求,而非必然需求,這是當前區塊鏈發展亟待解決的關鍵問題。在本文中,提出了兩個與實際相對契合的例子供大家參考。

隨著行業的發展,人與系統和系統間(如各種IOT設備)聯系的不斷緊密,傳統的中心化架構必然在可伸縮性等方面面臨挑戰,而去中心的化的區塊鏈應是有良好前景的可選解決方案。計費平臺部將會結合自身在分布式系統事務及算法上的積累,來不斷解決區塊鏈面臨的技術問題。相信隨著區塊鏈的不斷進化,一定會有更多的應用場景來展現其價值。


除了遊戲和醫療,騰訊區塊鏈還準備做什麽?