区块链即服务的发展现状与展望
2020-10-16陆歌皓杨丹妮
陆歌皓,杨丹妮
(云南大学软件学院,云南 昆明 650500)
0 引 言
自从区块链的概念在比特币白皮书[1]被提出后,区块链(Blockchain)技术[2-3]就引起了全世界广泛关注,近年来,区块链技术更是越来越成熟。区块链使用密码学确保传输和访问安全,实现数据信息可溯源、难以篡改、防止抵赖等特性[4],是一种由多方共同维护的分布式记账技术。目前,区块链已经从数字货币领域,延伸到经济社会的各个领域,“区块链+”也对各个行业产生重大影响。“区块链+云计算”[5]是近2年出现的一个新型的云服务市场“区块链即服务(Blockchain as a Service, BaaS)”。区块链即服务的出现,不仅加速了区块链技术在多领域的应用拓展,而且给云服务市场带来了变革性的发展。本文从区块链和云计算[6]的结合方式介绍区块链即服务的工作原理,从面向服务的对象阐述区块链即服务的设计原则,从目前现有主流区块链即服务平台分析区块链即服务的基本架构,并对区块链即服务的现状和发展方向进行探讨。
1 背景知识
1.1 区块链技术
区块链技术被誉为“信任机器”,是一种全新的分布式记账技术。区块链采用分布式存储、共识机制、点对点传输、加密算法等计算机技术,实现去中心化网络,保证数据不可篡改和不可抵赖。区块链把数据分到不同的区块上,每个区块主要由区块头和区块主体组成,区块头存放前驱区块的哈希值,区块主体部分负责存储数据,区块按照时间戳[7]的顺序链接形成区块链。
1.2 云计算
根据百度百科上的定义,云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。通俗来讲,云计算是一个向用户提供资源的网络,可供用户随时获取“云”上的资源。
2 区块链即服务
2.1 区块链即服务工作原理
区块链即服务最初是在2015年由微软、IBM提出,是通过云计算和区块链技术的结合,把区块链框架嵌入云计算平台里,利用云服务基础设施的部署和管理优势,为区块链开发者提供便捷快速、高性能的区块链环境和区块链配套服务,支持一键部署,支持开发者的业务拓展及运营支持的区块链开放平台[8]。区块链即服务具有一键部署、方便易用、高安全可靠等特性,能够有效降低开发及使用成本,为用户提供方便快捷的一站式区块链云服务。
2.2 区块链即服务设计原则
区块链即服务通过把计算资源、通讯资源、存储资源、记账能力、应用开发能力、区块链配套设施能力转化为可编程接口,让应用开发过程和应用部署过程变得简单而高效,同时通过标准化的能力建设,保障区块链应用的可靠性,对区块链业务的运营提供支撑,并解决区块链弹性扩展、安全性、性能等运营难题,让开发者专注开发[9]。区块链即服务平台在云体系中的位置如图1所示。
图1 区块链即服务平台在云体系中的位置
基础设施即服务(Infrastructure as a Service, IaaS),作为服务模式通常为用户提供包括虚拟机和其他资源等底层基础设施资源[10]。在IaaS层用户需要自己完成环境配备和应用程序开发。平台即服务(Platform as a Service, PaaS),作为服务模式为用户提供软件部署平台,通常包括操作系统、编程语言执行环境、数据库、Web服务器等服务[10]。此层用户只需要根据自己的逻辑开发应用程序。软件即服务(Software as a Service, SaaS),作为服务模式为用户提供直接可用的软件,通常包括电子邮件、虚拟桌面、统一通信、在线游戏等软件[10]。区块链即服务为用户提供节点、链以及工具的出租,其中工具包括开发工具、部署工具、监控工具等,并且通过大容量高可信的资源池,保障租户的业务管理经营规模可灵活弹性伸缩,出租设施可共享及独享,安全可靠运行,除此之外也提供必要的技术支持服务。
2.3 区块链即服务的参考架构
基于主流区块链即服务平台的分析研究,区块链即服务平台的参考架构如图2所示。
图2 BaaS的参考架构
基础设施层作为服务模式,为用户提供虚拟机、其他资源等底层基础设施资源。
资源层包括计算资源、通讯资源、服务器资源、云资源管理网络平台、区块链组件的管理配置等服务,为区块链系统提供无限扩大的存储、快速的网络、按需选购弹性伸缩及故障自动恢复的节点等区块链网络资源,负责平台区块链的创建、管理和运维监控[9]。
区块链平台服务层可在Hyperleger Fabric、自主知识产权链、以太坊等开源的框架上构建区块链系统,为上层应用低成本、高速地提供高安全、高可靠、高性能、轻量化的企业级区块链系统[11]。该层核心区块链技术包括可插拔的分布式共识算法、多类型的分布式账本存储机制、安全多语言支持的智能合约[12]引擎、跨链[13]和链上链下的数据交互[14]、安全隐私保护[15]以及分布式身份管理[16]等。
业务接口层提供规范化的智能合约接口和用于个人资产管理的轻钱包,用户可以按照不同应用场景创建不同的智能合约,为用户打造特定场景通用的智能合约库,企业也可以在此基础上快速构建区块链应用。
3 区块链即服务的研究现状
3.1 主流区块链即服务平台
3.1.1 微软Azure区块链服务
微软Azure区块链服务是一个完全托管的分类账服务,使用户能够增长并运行在Azure中大规模的区块链网络。通过为基础结构管理和区块链网络监管提供统一的控制,Azure区块链服务提供简单网络部署和操作、内置联盟管理和开发智能协定与熟悉的开发工具[17]。微软Azure支持使用Corda分布式分类账平台部署多参与者、多节点的网络以及网络映射、公证和对等;并支持在以太坊[18]网络上部署节点,支持跨区域部署VM规模集和监管来管理节点;支持在超级账本[19]中布署区块链应用,并能订购和验证同行部署服务[8]。
3.1.2 IBM区块链即服务平台
IBM区块链即服务BaaS平台是基于Linux基金会的开源项目Hyperledger Fabric V1.0和IBM新一代轻量级软件开发、集成、管理和运维的IBM PaaS云平台,提供端到端的区块链平台解决方案,提供快速搭建高可用的区块链网络,提供区块链平台安全特性,配备完整的自服务运维系统屏蔽IT的复杂度,让开发者专注于区块链业务代码本身,提升开发和运维效率[20]。
IBM区块链即服务BaaS平台支持多租户场景,具备服务发现、共享存储、日志监控、DevOps等企业级能力;集成Kubernetes,支持Master节点,共享存储,节点故障恢复,帮助应对高数据增长带来的挑战[8];为企业开发团队提供SDK、CLI样例,帮助企业开发团队灵活快速配置基于IBM BaaS云平台区块链网络。其基本架构如图3所示。
图3 IBM区块链即服务平台基本架构
3.1.3 百度BaaS——度小满金融区块链BaaS
度小满金融区块链BaaS以金融云和丰富的互联网金融实践经验为基础,加上区块链网络层、PaaS平台服务层、SaaS应用(产品)服务层组成[21]。
度小满金融区块链BaaS平台的服务层,实现了统一的区块链运维系统、区块链网络和资源维度的可视化运维。根据区块链不同类型用户的需求,度小满金融区块链BaaS提供了完备的功能支持。针对普通企业级用户,在区块链开放平台上,能够可视化地完成几乎所有日常操作,包括区块链的创建、查看、更新、运维等;对开发者,有完善的OpenAPI和多语言的SDK,同时提供与线上环境一致的线上沙盒环境,让开发者能够便捷、快速地接入与调试;对普通的用户,也可以注册使用2C的区块链服务[21]。其基本架构如图4所示。
图4 度小满金融区块链BaaS基本架构
3.1.4 腾讯云区块链TBaaS
腾讯云区块链TBaaS,以腾讯云为依托,为企业市场提供金融安全级区块链基础设施服务,通过区块链云上的服务,为行业提供安全、可靠、灵活的解决方案。
腾讯云区块链TBaaS平台系统是一个弹性、开放的云服务平台,不仅契合金融业务级别的安全合规性要求,与此同时还具有了完备的腾讯云服务能力,并且在此云服务平台上用户能够快速构建自己的IT基础设施和区块链服务。TBaaS腾讯云区块链开放平台在支持Hyperledger Fabric区块链网络技术的同时,也支持BCOS、TrustSQL、Corda、EEA等不同区块链底层技术,并打通周边技术生态,为用户提供一整套进行区块链开发、测试,快速部署,弹性可控的企业级解决方案[22]。其基本架构如图5所示。
图5 腾讯云区块链TBaaS基本架构
3.1.5 阿里云区块链服务(BaaS)
阿里云区块链服务是一种基于主流技术的区块链技术平台服务,可以快速构建更稳定、安全的生产级区块链环境,大幅减少在区块链部署、运维、管理、应用开发等方面的挑战,使开发者更专注于核心业务创新,并实现业务快速上链。支持主流开源区块链技术Hyperledger Fabric、企业以太坊Quorum,以及具备核心技术领先性的金融级别技术蚂蚁区块链,满足多种用户需求[8]。阿里云区块链服务帮助用户一键式快速创建和部署生产级区块链环境,提供图形化的区块链管理运维能力,提供参与企业和业务动态添加的功能,简化区块链的部署流程和应用配置。其基本架构如图6所示。
3.2 主流区块链即服务平台对比
目前区块链即服务平台在效能上有显著的提升,对开发者及用户提供更加便捷的开发环境,支持公有链、联盟链、私链等不同的场景开发服务。自2015年BaaS的概念提出后,其在全世界范围内得到了较大的发展。主流区块链即服务平台对比如表1所示。
图6 阿里云区块链服务BaaS基本架构
表1 主流区块链即服务平台对比
4 结束语
现如今,区块链的产业链条已经逐步形成,相关的技术、平台及应用都在飞速发展。区块链即服务平台鉴于面向服务的基础设计准则,在设计上以简单易用、成熟可扩展、安全可靠、可视化运维等为主要方向,为用户提供分布式账本底层架构,让用户可以在区块链环境中下载、安装并运行区块链网络,通过云端获取服务,采用API接口向应用层提供区块链服务、智能合约模板、隐私保护、运维监控等功能。在技术快速迭代、市场竞争加剧、用户需求多样化态势下,区块链即服务占据十分重要的地位。区块链即服务的应用场景[8]非常广泛,包括商品溯源、数据资产交易、供应链金融[23]、数字内容版权、公益慈善[24]、互助保险、信用证、资产证券化、资产托管、数字身份、跨链互操作、物联网[25]、医疗保健[26]等。
以目前的研究现状而言,区块链即服务平台的未来趋势将主要侧重于风险监管、技术难点以及落地应用3个方面。
1)风险监管。目前对区块链的监管处于刚刚起步阶段,区块链即服务采用云的分布式架构来支撑业务扩展、数据存储和输出服务。信息互联网向价值互联网的过渡中,在保证隐私权益的前提下对节点和链上数据进行监管和控制,是区块链即服务风险监管中需要研究的问题。
2)技术难点。一套功能完善、性能稳定的区块链即服务平台可能会面临很多的技术挑战。目前区块链即服务主要面临的技术难点包括性能提升、稳定性持续保证、数据存储可伸缩性、链外信任等问题。
3)落地应用。区块链即服务目前仍处于研究阶段,部分运行都还是在测试网络上,稳定性和速度较传统的云计算服务器还相差很多,距大规模商用还较远,未来区块链技术和分布式计算相关技术同步发展共进步,将会出现更多的应用场景落地。