作者 | 刘晓赫、程司雷
责编 | Carol
出品 | 区块链大本营、百度智能云区块链
区块链从独立的技术范式,慢慢扩展到企业区块链的融合范式,是下一代区块链的核心特征。在区块链技术与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源码贡献者,百度智能云自研区块链核心开发者。
12月6-8日,深圳!2019嵌入式智能国际大会,集聚500+位主流AIoT中坚力量,100+位海内外特邀技术领袖!9场技术论坛布道,更有最新芯片和模组等新品展示!点击链接或扫码报名,即可享受6.6折早鸟优惠,比原价节省1000元,学生票仅售399元!
推荐阅读: