记者 | Aholiab
编辑 | Carol
封图 | CSDN下载自视觉中国
随着新基建概念的提出,5G、大数据、工业物联网、区块链等技术将发挥不可或缺的作用。其中区块链作为信任机制的纽带,正在凭借其不可篡改、信息透明等特性,为新基建赋能。
2019年,由于国家信息中心牵头,会同中国移动、中国银联等单位合并发起了区块链服务网络(Block-chain-based Service Network,以下简称BSN),旨在建立一个低成本开发、部署、运维、互通和监管联盟链应用的公共基础设施网络。
经过一年多的发展,BSN于今年4月25日正式进入商用阶段。那么作为「国家队」牵头,众巨头合作开发的区块链服务网络究竟有哪些亮点?其背后的设计理念和技术又是怎样的?
不久前,我们采访了BSN首席架构师、红枣科技CTO马晓军,听他揭秘了BSN背后的技术理念。
马晓军:现任北京红枣科技有限公司CTO和区块链服务网络BSN首席架构师,曾在浪潮和大展核心部门承担主力研发工作。具备十余年系统开发、技术架构设计和项目管理经验。作为资深架构师,参与过二代货发发行库、智慧城市五源计划、区块链服务网络BSN等相关项目。
BSN底层架构“揭秘”
CSDN: 请介绍下BSN项目建立的初衷、经过及近况。
马晓军:最初起因很简单也很直接,五源计划项目的缴费链应用在部署时我们调研了国内的几家BaaS提供商,三个节点的生产环境每年的运行成本几乎都在十万以上。这对一个初期投入运营并发交易数低于10TPS的应用产品来说太贵了。传统BaaS平台虽然降低了区块链应用部署、运维的技术门槛,但也在一定程度挟持用户部署需求,不利于区块链技术大范围的使用和普及。我们希望能找到并提供一个低成本部署的解决方案让大量的中小微企业、甚至学生在内的个人可以使用区块链技术进行创新、创业,从而促进区块链技术的快速发展和普及。
BSN已经集成了Hyperledger Fabric 和FISCO BCOS,正在做Fabric国密、百度XuperChain的集成,还有后续CITA等多个框架的集成。BSN国际网公测版本已经发布,我们会陆续在国际官网和国际节点上适配支持以太坊、EOS等一些公链,为DApp开发者提供高性能、高可用的公链节点接入服务。
CSDN:在您看来区块链平台的底层架构设计与其他平台有哪些不同?这些不同在BSN平台上如何体现?
马晓军:首先是理念的不同,BSN的核心理念是建立一个资源共享使用的区块链公共基础环境,提供整合了多种云资源、底层框架、运行环境、密钥管理、开发SDK和网关API的一站式区块链部署和运行服务。开发者可以以极低的成本在服务网络上便捷地部署和运行区块链和分布式账本应用。不论底层是否异构,服务网络上所有的应用链均可以进行数据交互,这样带来的是类似互联网上快速搭建网站并高效互联互通的优质体验。
从底层架构来讲,BSN采用更细颗粒度的多应用共享运算资源的方式,来降低区块链应用服务运行的成本。简单地说,在BSN上多个开发者部署的不同区块链应用可以部署运行在同一台主机的区块链节点上,相当于共享同一台服务器。而大部分的BaaS平台多是通过分配独立主机资源服务器资源来部署应用服务,忽略了应用服务的实际计算资源需求造成资源浪费也提高了客户的部署成本。从表现形式上来说,在能够满足应用服务性能要求的情况下,在BSN上部署应用服务的成本会更低。就像在一台电脑运行10个应用和10个应用必须分别运行在10台电脑相比,前者的成本肯定是低的。
BSN架构图
BSN是基于互联网来搭建连接不同云服务和IDC的区块链公共运行环境,其他平台多是基于云服务商的云服务的内部局域网络来组建区块链运行环境。
从底层框架的角度,目前大部分的BaaS平台一般都会有选择的集成一个两个开源或自家的区块链框架,而且搭建的区块链运行环境是独立运行的。服务网络的核心理念之一是支持尽量多的区块链底层框架。目前区块链技术还处在早期阶段,我们希望能够通过服务网络为所有底层框架建立一个良性发展和公平竞争的环境,促进底层框架方持续推动区块链底层技术发展,不断提升服务品质。所有适配到服务网络的框架并不是简单地堆砌在一起,而是根据《区块链服务网络底层框架适配标准》,在密钥算法、CA管理、应用链管理、智能合约管理、交易接入等方面进行统一。
再有一个不同是多门户,也就是BSN赋能平台的这部分。一般来说,其他的区块链平台是封闭的,仅销售平台本身的资源,也不会将BaaS能力输出给第三方。BSN提供这种服务—通过BSN赋能平台把区块链应用服务的发布能力开放给第三方,让第三方门户能够使用BSN的部署资源向其用户提供区块链应用部署和运行服务能力。
特别是面向有开发者资源的门户,以CSDN为例,作为中国专业的IT技术社区聚集了大量的技术开发者。如果CSDN集成了BSN赋能平台,开发者就可以直接在CSDN平台内选择BSN的城市节点资源部署区块链应用,这些应用部署信息通过赋能平台传给BSN的运维系统并由其调度各个城市节点的节点管理服务完成服务部署工作。对于CSDN平台方来说,实际上是向CSDN的用户输出了区块链的部署能力,实现类似于BSN门户的功能。
CSDN:作为BSN的首席架构师,BSN架构的设计遵循了哪些原则?
马晓军:在架构和实现上主要遵循以下几个设计原则:
- 简单易用,实现自动化配置、部署区块链应用服务,管理维护记账节点,提供区块链全生命周期管理;
- 安全可靠,以加密技术为基础,实现完善的用户身份认证、CA管理、应用权限管理、数据安全管理和隔离机制;
- 成熟先进,区块链服务网络采用多领域的成熟技术搭建,从分析企业应用的典型用例出发,来设计系统功能特性和基础能力服务,确保服务网络提供的基础功能服务具备普适性,适应广泛的企业需求;
- 模块化设计,采用模块化设计,将节点资源管理、底层框架适配、应用链管理、节点网关、CA管理、权限管理、运维管理与监控等功能模块分开设计实现,通过定义清晰的模块接口服务实现模块间的松耦合,以获得整个系统良好的可扩展性。
- 合作开放,任何云服务商、底层框架商和门户商在符合服务网络协议标准的前提下,均可以自由选择加入或退出服务网络。
CSDN:在架构的搭建中遇到过哪些技术挑战?
马晓军:前面提到的BSN基于运算资源共享承载多个应用服务,这种模式下的对基于不同区块链框架的应用服务的运算和网络资源使用进行准确的计费计价技术实现是一个难题。从商业逻辑上很容易理解,多个应用跑在一台机器上,肯定比一台机器跑一个应用要便宜。
但是这20个应用跑在一台机器上,要很准确地度量每个应用的费用就比较难做到。拿流量计费来说,传统的BaaS平台的应用服务与主机是一对一部署,通过对主机的流量统计即可准确的计费,但在BSN上往往是不同发布方的多个应用服务部署在同一个主机上运行的一个底层框架的服务实例中,这就需要我们能够针对不同框架的不同应用通过底层框架节点通讯数据报文以及网络传输的数据包才能比较准确为应用流量进行统计和计费。而对主机的CPU和内存计算资源的准确计费和定价则更加复杂。
BSN的多框架适配需要我们投入大量的资源和精力去深入研究各类不同的区块链框架的运行机制,并结合BSN的商业模式来定制与底层框架的适配。
异构的节点服务商资源设施的部署兼容、规模庞大的公共城市节点滚动更新部署和跨多家电信运营商间的互联网通信延迟等也都是服务网络运维和运营过程中面临的难题和挑战。
国家队卡司,如何打造超级区块链服务网络?
CSDN:BSN涉及到国家部委和多家企业共同参与,它们之间的分工是怎样的?
马晓军:红枣科技主要是在做BSN的底层框架适配、城市节点运行管理、城市节点网关相关系统的设计和开发工作。中国银联电子支付研究院负责BSN的基础能力服务的设计和建设工作。中国移动设计院负责BSN城市节点入网管理系统、BSN城市节点组网规划和网络安全设计和建设工作。各个底层框架开发方,如微众银行、百度、海南链火、溪塔科技等负责底层框架适配的定制开发工作。
CSDN:BSN在异构区块链间的跨链机制是怎样的?
马晓军: BSN在与边界智能合作研究将其IRITA框架集成到BSN,以支撑开发者的应用链之间的跨链访问与互操作。其次,开发者的链下业务系统通过BSN的城市节点网关,在获得应用发布者的接入授权的情况下同时访问和操作多个区块链应用链,可以实现基于链下中继的链间数据互通。
CSDN:BSN的安全机制/加密算法机制是怎样的?
马晓军:当开发者在任何 BSN 门户内发布一个应用链时,有两种应用接入密钥模式可供选择:「密钥托管模式」或「上传公钥模式」。密钥托管模式是用户委托服务网络生成密钥,由用户在BSN门户内下载后使用。上传公钥模式是由应用链用户在本地生成密钥,再将公钥通过BSN门户上传,然后使用私钥进行交易签名连接城市节点网关,完成应用的接入鉴权。
密钥托管模式比较方便,但上传公钥模式更自主化,具体使用哪种模式完全由开发者自行选择设定。对已经发布的应用链,开发者在设置用户交易密钥时,可以为整个应用链设置一个统一的密钥,供所有接入用户使用,也可以为每个用户设置单独的用户交易密钥。密钥设置的模式也分为密钥托管模式和上传公钥模式。与应用接入密钥不同的是,城市节点网关提供了用户交易密钥的管理接口,不需要开发者和用户在BSN门户内另行设置。
此外,开发者在发布应用链的智能合约时,可以将智能合约内的方法自由组合成各类角色,每个角色拥有调用一个或多个方法的权限,例如:有些角色可以写入数据,有些角色只能查询数据。当用户加入应用链时,可以被分配一个或多个角色。这些角色和对应的权限信息存在于权限链内。当用户的业务系统通过网关接入该应用链时,只能执行所分配角色允许执行的功能和数据权限。
开发者可以在智能合约的编写上进一步控制交易和数据处理。即使两个用户拥有同一个角色的权限,也可以在智能合约代码层面定义这两个用户可以查询和执行不同的数据交易操作。
以上几种机制在应用链数据安全方面形成服务网络的完整体系,既保证了数据的绝对安全,又让开发者有足够的空间根据业务需求设计自己应用链的安全机制。
BSN与区块链应用
CSDN:目前BSN上有哪些让你印象深刻的应用?
马晓军:从内测到目前的商用,BSN内已部署了近两百个区块链应用,其中如1call居民公共积分管理、公共数据安全共享服务、智慧消毒监管平台、政务融合链、电子合同管理、政务存证、商品溯源等区块链应用,覆盖了不同的行业。
BSN的发起方基于BSN核心技术,推出了针对行业专用网络的BSN区块链专网。区块链专网基于政务、金融、电力等专用网络环境搭建,建成包括底层区块链基础设施网络、配套的管理平台、运维平台和应用门户等在内的区块链基础环境平台,同时汇聚了各类行业专业公司的公共健康管理、数字存证、公共安全证据监管、民事登记、政务信息互通互信等政务民生区块链应用产品,为地方政府的智慧城市建设和传统业务系统区块链改造赋能。
CSDN:未来1-2年,区块链应用会向哪些方面发展?
马晓军:个人认为区块链技术在跨境支付、信用证、支付清算等金融领域和选举投票、福利彩票、公益慈善公共事业领域或许会最先成熟并发挥巨大应用价值。区块链可以在技术上解决选举投票、福利彩票、公益慈善过程中的透明和公开问题,避免结果被外界人力干扰,保证结果的公正。
CSDN:你的区块链技术成长之路是怎样的?
马晓军:我是从比特币、以太坊开始了解区块链的基础知识、技术架构和运行机制。在BSN的建设过程中对Hyperledger Fabric, FISCO BCOS,XuperChain有过比较深入的学习和研究。
对于入门区块链的开发者,我推荐先从技术社区广泛的搜集区块链的基础知识资源并进行大量泛读。然后再选择一个区块链框架进行深入学习和研究。要熟悉一个框架,可以从框架的官方文档资料入手,理解基础名词和概念,根据这些补充自己缺少的知识点。进而通过精度细读掌握框架的整体架构和运行机制,比如:安全控制、密码算法、交流处理流程、同步机制、共识机制、区块数据结构、状态数据库和智能合约语言等等。在此基础上,结合自己的项目实践,由问题驱动进一步的去学习和研究框架的实现代码。对于区块链应用开发者,精通相关框架的智能合约语言、合约SDK、合约开发模式、合约部署机制、框架cli SDK等都是必须的。