今天我来聊一个常常被公链忽略的区块链概念:区块链即服务。

“区块链即服务”,也就是Blockchain as a Service,它的缩写是“BaaS”,一看这个概念,就知道它离不开云计算了,毕竟云计算的领域已经有了IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)和SaaS(Software as a Service)等概念。我们看见了带有“aaS”的后缀,便很容易联想到了云计算的范畴。

从商业角度来说,商业技术公司提及BaaS主要还是为了卖云服务,因为大型机构偏向标准流程化的协作方式,也就很难意识到区块链带来的非技术层面的革新,这种现象在公链领域的数字资产上尤为突出,如果单纯地把区块链作为一种技术框架集成到云计算中,未免失去了区块链原有的魅力。

那么区块链到底与云计算有什么千丝万缕的关系呢?这就是我今天想抛砖引玉的地方。

两个角度出发

在讨论“区块链即服务”之前,我想提出一个比较新奇的观点,就是假如我们把比特币看做一个云,那么比特币就是世界上最大的云,只是比特币没有特定的供应商,它是开放式的,这个云提供了价值存储和价值传输的功能。

如果你也认同我的这种假设,那么接下来就需要考虑一个问题:它应该如何与已经存在的云计算进行结合呢?

以上是我从云计算角度提出的观点。另外一个观点是从协议考虑,如果比特币是一种开放式协议,云计算可以说是一堆成熟协议和框架的集合,那么是否可以把比特币这种支付协议集成到云计算中呢?

带着这两个问题,我们重新考虑一下“区块链即服务”这个概念。

什么是“区块链即服务”

如果我们打算弄清楚“区块链即服务”的概念,首先我们需要找到“区块链即服务”与PaaS的联系。这里没有提到IaaS与SaaS,因为我认为“区块链即服务”与PaaS更接近一点。

我们先来简要地了解一下PaaS, 我们在上文提到过,PaaS的英文是“Platform as a Service”。它是一组通用业务组件(Component)的集合,它能够提供开箱即用的业务服务,但并不类似于AWS的Amazon Translate服务、阿里云的短信服务这样单纯的技术框架或者代码包。

我们接下来考虑比特币,比特币提供了全球支付的功能。那么这种功能是否可以集成到云服务中呢?答案是肯定的。

例如我们希望可以在云计算平台快速实例化一个比特币的全节点,而不是自己去比特币的官网下载,并经历将区块同步至最新的漫长过程。

与此同时,对于有比特币支付需求的应用来说,除了搭建全节点,往往还要解析每一个区块的信息,因为区块本身是非结构化的,无法进行精细化控制查询,所以结构化区块数据显得尤为重要。

并且,这里往往是通过RDB数据库进行存储的。等待区块完成异常同步之后,接着还要解析并且结构化存储区块,可以说是雪上加霜。

从技术角度考虑,比特币全节点本身提供的查询API功能有限,查询负载也非常有限,我们不可能使用部署多个比特币钱包集群的方式来分担负载,因为全节点的数据非常庞大,5个比特币全节点已经是TB级别,而且还在一直增长。

随之而来的,还有各种区块链软硬分叉维护、节点宕机监控,简直是噩梦。

但是暂停一下,我们回过头来看看,这难道不就是以往PaaS解决过的痛点吗?

以上只是举了例子,那么以太坊也可以如此,其他公链也是如此,实际上由于区块链本身就是基础设施,所有的区块都已经被历史定格不需要改变,这些庞大的区块数据本身也是PaaS的一部分。

结合云计算厂商的技术能力,它们可以提供稳定、方便、安全的区块链服务,帮助中小企业快速集成区块链服务,例如支付、身份验证服务。

根据以上分析,这样我们便可以给出区块链即服务的定义。

“区块链即服务”是指:提供多种方式的查询、交易广播、交易验证服务,使得公有区块链的服务可以集成到到互联网应用的架构中,这些服务包括了数字货币、数字资产、身份验证服务、第三方监管服务。

以前的这些服务是处于割裂状态的,那么从PaaS衍生出来的BaaS可以帮助区块链被快速地集成和整合到已有的技术架构中。

上文提到,与BaaS最接近的是PaaS,那为什么不是SaaS呢?SaaS最好的例子是Google Docs,直接面向普通用户,并且按需按时间付费使用厂商的应用是SaaS的显著特征。

这里一个典型的例子是公告公证,今年北京大学发生了一件事情,就是有人将有关某个教师的事件登记在区块链上,那么这可以算作一个SaaS的典型,进一步看,blockchain.info这个平台也算作一个SaaS平台。

SaaS要求用户可以直接使用区块链快速构建应用,构建过程最好是可视化的,而不是一堆代码,所以目前来看区块链领域的SaaS还尚不成熟。

IBM和微软曾经提出过BaaS的概念,它也对标PaaS,这里的区别在于客户是使用区块链技术框架构建起属于自己的联盟链,还是使用公链上的服务。

前者更多的是DLTs技术(destributed leder technology),所以这里我们叫做BTaaS,BTaaS也可以被传统IT方案替代,例如分布式存储方案。

由于公链提供的服务往往会比联盟链丰富,生态发展快速,如果公链具有匿名性和权限管理机制,也许可以替代许可链。

架构集成与快速构建

架构集成主要考虑在已知的系统架构模式情况下,如果让“区块链即服务”可以更快速方便地被已有架构集成。这里的挑战困难主要包括两个方面。

第一、系统级的多币种私钥管理体系。因为区块链本身就包含了大量资产,这些资产可以看做是线上资产,如果有没有进行良好的权限管理,那么资产将面临极大的失窃风险。

第二、稳定可控的区块链服务。稳定可用是考虑任何一个钱包稳定连续运行,一旦被控制或者被分叉,系统可以快速识别并警告运营者。

总之,架构集成是一个比较大的话题,也有很多经验可以从经典互联网应用中获得,主要还是开发和运维的思路需要转变。

互联网公司在区块链领域的尝试

既然聊到了区块链即服务,就不得不聊聊国内已经尝试实践“区块链即服务”的公司了,无论是BaaS还是BTaaS,这其中都有所体现。

一线互联网公司更倾向DLTs技术,也就是BTaaS类,三四线以及业绩边缘化的互联网公司倾向于Token为代表的经济生态,也就是BaaS技术。

下面是我们公司的Frank收集分类的国内应用案例,涉及的行业有金融、公益、互联网、食品溯源、物流、电商等领域,我在这里列出来供你参考。

这套方案构建在腾讯金融云之上,并整合了腾讯在支付、社交网络、媒体网络、征信平台等业界领先领域的资源在内的解决方案,将在智能合约、互助保险、大数据交易及资产交易、供应链金融与供应链管理、跨境支付/清算/审计等场景下,为金融用户提供安全、可靠、灵活的区块链服务。

总结

今天我们主要了解了“区块链即服务”的概念,我们先从比特币出发,再从云出发,得到了“区块链即服务”的不同视角。接着我们浅析了“区块链即服务”应该做什么,并从架构集成的角度探讨了“区块链即服务”。最后我还列出了国内互联网公司在区块链即服务商的尝试。

好了,今天的问题是,如何设计一个稳定可控的区块链服务呢?你可以给我留言,我们一起讨论。感谢你的收听,我们下次再见。

评论