百度工程师深度好文, 横评3大企业级区块链技术平台
百度工程師深度好文, 橫評3大企業級區塊鏈技術平臺!
區塊鏈從獨立的技術范式,慢慢擴展到企業區塊鏈的融合范式,是下一代區塊鏈的核心特征。在區塊鏈技術與AI、大數據、云計算技術加速融合的今天,區塊鏈如何加速企業端的賦能與落地,正在變得越來越重要。
?
今天起,區塊鏈大本營將攜手百度智能云區塊鏈為大家奉上「企業級區塊鏈技術范式」系列專題。
?
本系列將從企業區塊鏈的技術范式為出發點,以企業區塊鏈架構、企業級智能合約、企業聯盟鏈的高效管理、企業區塊鏈的隱私性、可信區塊鏈的企業應用等5大方面進行展開。深挖企業區塊鏈的深層需求,為讀者提供全方位的企業級區塊鏈部署和落地思路。
?
區塊鏈技術是信任的機器,是在生產消費等經濟活動中降低感性上基于品牌、口碑的信任,同時增加理性上基于數學、密碼學的信任。
?
而企業級區塊鏈落地,正在成為區塊鏈發展的另一大趨勢。目前市場上企業級區塊鏈產品眾多,并且應用領域、具體設計實現細節各有不同,但是在整體系統架構上都存在著諸多共性。
?
歸結起來如下表所示:
?
*點擊查看大圖
?
上表列舉了6個最有影響力的企業級區塊鏈系統架構,可以看到他們都使用了智能合約作為應用層邏輯的計算工具。那么,想要實現企業級去中心化應用一定要通過智能合約來實現嗎?
?
要了解這個問題我們首先回到2008年區塊鏈故事的開始,看看智能合約是如何誕生的。
?
?
從比特幣到智能合約的誕生
?
第一個區塊鏈系統是比特幣,它是基于區塊鏈的第一個去中心化應用程序。當時有2種選擇來開發去中心化的應用程序:要么分叉比特幣的代碼庫(例如BCH、BTG等),要么在其基礎之上構建(例如OMNI、USDT等)。
?
但是比特幣代碼庫非常單一。網絡、共識、應用這三個層次混合在一起。此外,比特幣腳本語言是有限的,并不友好。因此,我們需要更好的工具。
?
在這一背景下,2014年以太坊提出了一個新的命題,即構建去中心化應用程序。人們可以在以太坊區塊鏈網絡中部署圖靈完備的程序,任何開發人員都可以使用Solidity編寫稱為智能合約的程序,將其部署到以太坊區塊鏈。這種新方法使成千上萬的開發人員開始構建去中心化應用程序(dApps)。
?
智能合約運行原理
?
基于以太坊的成功經驗,很多區塊鏈平臺選擇在應用層直接集成EVM以運行Solidity編寫的智能合約,或者提供其他的沙箱環境和編程語言來支持智能合約的功能。
?
作為當前的主流,智能合約有很多優勢,有很多案例非常適合構建在區塊鏈虛擬機之上:
-
跨平臺可移植的應用,例如希望將以太坊上現有的ERC2.0移植到別的平臺,這時智能合約的優勢凸顯。
-
簡單小型,低使用率的應用,虛擬機非常實用,且用戶友好。他們允許開發者在幾分鐘內部署去中心化應用,這在實現不復雜的應用或者作為PoC(概念證明)時是十分方便的。
-
如果你不想為你的應用程序部署網絡,而只是依賴虛擬機的區塊鏈提供的共識網絡,那么只部署智能合約將十分簡單方便。
-
需要用戶為應用程序添加自定義邏輯,使用智能合約會降低用戶使用難度。
?
不過,智能合約有顯而易見的局限性,由來構建復雜的應用會碰到許多天然的缺陷。目前,企業級應用除了智能合約,「應用專有鏈」的使用也非常多。
?
?
應用專有鏈
?
應用專有鏈是指該區塊鏈網絡僅供特定應用專門使用,不提供智能合約來運行其他不相關的應用,而不是構建在基于區塊鏈的虛擬機,如EVM,之上的智能合約應用。這就是所謂的應用專有鏈,也叫針對應用定制的區塊鏈。
?
在很多情況下,開發定制化的區塊鏈都是更有意義的,正如上文所說,智能合約有些顯而易見的局限性,用來構建復雜應用擁有許多天然的缺陷:
?
*點擊查看大圖
?
應用專有鏈的開發
?
應用專有區塊鏈之所以直到現在一直不引人注目,主要歸咎于構建它們的難度。例如,你希望構建一個面向數字貨幣的專有區塊鏈,有如下幾種選擇:
?
從0到1開始設計和開發,包括共識引擎、P2P協議、數據層、數據模型、應用層等。開發這樣一個區塊鏈的門檻是很高的。大多數人不得不基于現有的區塊鏈解決方案;
基于現有主流區塊鏈修改,市面上大部分數字貨幣都是采取這種方式構建的。Netta Lab2018年調查了488種虛擬貨幣。在這些幣中,相似性達90%-100%的有405種。例如很多比特幣類的分叉幣和山寨幣只是簡單修改一下參數,還有很多照抄以太坊的項目這里不一一列舉。這種基于成熟區塊鏈系統修改的方式要么和copy無異,要么復雜度極高,因為一個完整區塊鏈系統的各個模塊是混合在一起的,要針對自己應用需求做出改變是很困難的。
?
不過市場上也有一些可以高效部署應用專有鏈的平臺。比如Cosmos等。
?
以Cosmos為例,Cosmos提供了一種讓開發者輕松構建和部署可擴展和可互操作的面向特定應用的區塊鏈的方式。
?
Tendermint提供了一個已存在的包含網絡層和共識層(POS+BFT)的通用引擎,通過一個基于socket協議的ABCI(Application Blockchain Interface)接口來連接應用,便于在之上構建任意的應用程序。
?
?
因此開發人員只需要維護應用層,從而節省了數百小時的開發工作。而Cosmos-SDK是在Tendermint之上構建區塊鏈應用程序的通用框架,把一些通用模塊標準化,例如資產轉賬、貨幣增發、鏈上提案、跨鏈IBC等。開發人員在無需為應用程序編寫每一個功能的情況下就可以輕松的創建一條區塊鏈。
?
如果想要實現一個數字貨幣的應用專有鏈,基于Cosmos-SDK,開發應用程序的時候可以把一組互相操作的模塊組合起來進行構建。每個模塊定義狀態子集,并包含其自己的消息/交易處理器,而SDK負責將每條消息路由到其各自歸屬的模塊,這樣提供給了開發人員最大的靈活性以定義應用程序的狀態、交易類型和狀態轉變函數。
?
通過這樣的方式構建的區塊鏈產品有:Cosmos Hub,Iris,Binance Chain,Terra和Lino。
?
美中不足的是,Cosmos-SDK目前只有Go語言實現版,和Tendermint保持一致,這給其他語言的開發者增加了使用門檻。
?
另外,默認的共識引擎Tendermint Core雖然是已存在的最成熟并且被認為是建立權益證明系統(POS)的黃金標準共識引擎,但是并不適合構建企業級聯盟鏈系統。同樣Cosmos-SDK提供的許多通用模塊也是面向公有鏈系統的。
?
盡管如此,Cosmos仍是十分優秀的專有鏈平臺。在百度,我們的區塊鏈平臺也是基于Cosmos來實現的。在設計這條鏈的時候,我們主要想法是能支持復雜的企業級應用,并且能通過跨鏈通信協議進行不同應用專有鏈間的交互,支撐各個業務領域協同發展的企業區塊鏈應用生態。
?
?
百度的企業級區塊鏈設計思路
?
正如上文所說,智能合約和專有鏈各有利弊。而當今的主流智能合約適用于簡單的應用場景,無法編寫復雜的業務邏輯(比如上萬行代碼),且大量合約之間的互相調用,使得合約的開發調試和維護升級的復雜度變得非常大。
?
因此,我們希望能做出一個兼具智能合約和應用專有鏈優勢的東西。在這一基礎上,我們的核心思路是這樣的。
?
首先,設計出可插拔應用模塊,該模塊必須能做到以下幾點。
?
-
延續Cosmos應用模塊化的理念,提供高效的智能合約平臺,Cosmos合約平臺。EVM作為一個可插拔的應用模塊存在,提供Solidity合約的運行環境,比以太坊更好的性能。
-
除了EVM以外支持一系列面向企業應用的通用模塊,可以承載更大的應用復雜度,例如跨鏈通信(IBC)、TCF可信計算、分布式存證、微服務、資產Token化(DeFi)、去中心化身份(DID)、去中心化交易引擎(DEX)、非同質化代幣(NFTs)、預言機(Oracles)、溯源等等。
-
采用高效的數據分片機制,不同功能模塊運行獨立的分片。例如該節點只想運行存證模塊,只需打開存證模塊開關,關閉其他所有的可選模塊,這樣減少了非必要的計算與存儲消耗。
-
提供企業間隱私交易的解決方案,多方企業間可建立隱私分組,所有的可插拔應用模塊都可以進行加密。
?
?
?
智能合約 or 應用專有鏈?只有你知道答案
?
智能合約平臺還是特定于應用程序的區塊鏈,究竟誰更有前途?
?
這個爭論并沒有完美的答案。就像加密世界中的大部分算法一樣,答案取決于你的實際情況。企業級區塊鏈應用的主流依然是使用細微差別的智能合約平臺,但我認為,Cosmos的出現無疑展現構建區塊鏈應用一種截然不同的道路。
?
我們不妨拭目以待,看看技術是如何發展的,相信未來的企業級區塊鏈系統的發展一定是兩種框架并存,按照自己的需求選擇最合適的框架才是正確之道。
?
*關于作者:
程司雷,百度智能云區塊鏈資深研發工程師,著有三篇區塊鏈發明專利。參與跨鏈項目Cosmos/IRIS,醫療數據共享公鏈平臺,區塊鏈存證平臺、區塊鏈食品溯源、以太坊加密貓等項目的設計研發。
?
劉曉赫,百度智能云區塊鏈高級工程師。Cosmos-SDK、Bitcoin-Golang源碼貢獻者,百度智能云自研區塊鏈核心開發者。
總結
以上是生活随笔為你收集整理的百度工程师深度好文, 横评3大企业级区块链技术平台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开盘即破发,网易有道赴美上市,继续发力在
- 下一篇: 微软宣布推出Azure Blockcha