CSD:首席架构师揭秘BSN究竟是什么?

以下文章来源于区块链大本营,作者CSDNApp

记者|Aholiab

编辑|Carol

随着新基建概念的提出,5G、大数据、工业物联网、区块链等技术将发挥不可或缺的作用。其中区块链作为信任机制的纽带,正在凭借其不可篡改、信息透明等特性,为新基建赋能。

2019年,由于国家信息中心牵头,会同中国移动、中国银联等单位合并发起了区块链服务网络,旨在建立一个低成本开发、部署、运维、互通和监管联盟链应用的公共基础设施网络。

经过一年多的发展,BSN于今年4月25日正式进入商用阶段。那么作为「国家队」牵头,众巨头合作开发的区块链服务网络究竟有哪些亮点?其背后的设计理念和技术又是怎样的?

不久前,我们采访了BSN首席架构师、红枣科技CTO马晓军,听他揭秘了BSN背后的技术理念。

马晓军:现任北京红枣科技有限公司CTO和区块链服务网络BSN首席架构师,曾在浪潮和大展核心部门承担主力研发工作。具备十余年系统开发、技术架构设计和项目管理经验。作为资深架构师,参与过二代货发发行库、智慧城市五源计划、区块链服务网络BSN等相关项目。

BSN底层架构“揭秘”

CSDN:请介绍下BSN项目建立的初衷、经过及近况。

马晓军:最初起因很简单也很直接,五源计划项目的缴费链应用在部署时我们调研了国内的几家BaaS提供商,三个节点的生产环境每年的运行成本几乎都在十万以上。这对一个初期投入运营并发交易数低于10TPS的应用产品来说太贵了。传统BaaS平台虽然降低了区块链应用部署、运维的技术门槛,但也在一定程度挟持用户部署需求,不利于区块链技术大范围的使用和普及。我们希望能找到并提供一个低成本部署的解决方案让大量的中小微企业、甚至学生在内的个人可以使用区块链技术进行创新、创业,从而促进区块链技术的快速发展和普及。

Nervos 首席架构师 Jan:智能合约开发者仍属小众群体,应该拥抱传统开发人员:CoinDesk共识大会中文版分会场于北京时间5月12日13-14点在线上举行,Nervos首席架构师谢晗剑(Jan Xie)在大会中表示,Nervos目前的主要目标是完善CKB的开发者体验。

与 C、C++和JavaScript社区相比,智能合约开发人员仍然是很小的一个群体。新的智能合约平台想要成为主流,一个更实际的方法是拥抱传统的开发人员,让他们可以使用任何他们已经熟悉的编程语言,而不是创建一种新的语言并强迫他们使用。Nervos构建了一个与RISC-V完全兼容的虚拟机,GCC/LLVM支持的任何编程语言都可以用来在Nervos上编写智能合约。

这样的设计实现了让更多的开发者加入到Nervos网络中来进行开发,同时也让Nervos开发者社区更加强大。目前,Nervos已开启了Grants计划和孵化器CK Labs计划,旨在拥抱更多优秀的开发人员。[2020/5/12]

BSN已经集成了HyperledgerFabric和FISCOBCOS,正在做Fabric国密、百度XuperChain的集成,还有后续CITA等多个框架的集成。BSN国际网公测版本已经发布,我们会陆续在国际官网和国际节点上适配支持以太坊、EOS等一些公链,为DApp开发者提供高性能、高可用的公链节点接入服务。

CSDN:在您看来区块链平台的底层架构设计与其他平台有哪些不同?这些不同在BSN平台上如何体现?

马晓军:首先是理念的不同,BSN的核心理念是建立一个资源共享使用的区块链公共基础环境,提供整合了多种云资源、底层框架、运行环境、密钥管理、开发SDK和网关API的一站式区块链部署和运行服务。开发者可以以极低的成本在服务网络上便捷地部署和运行区块链和分布式账本应用。不论底层是否异构,服务网络上所有的应用链均可以进行数据交互,这样带来的是类似互联网上快速搭建网站并高效互联互通的优质体验。

腾讯云区块链首席架构师敖萌:区块链需同其他业务相结合才能解决问题:区块链的局限性非常明显,单靠区块链很多时候完不成一个完整的业务,必须和其它业务结合在一起才能解决问题。技术和技术之间是相互赋能的,如这次疫情防控中大数据起到至关重要的作用,像健康码等在疫情期间起到很重要的作用。但是有一个前提很多人没有注意到,在疫情防控中各个数据的提供者是齐心协力的、目标一致的,他们之间没有信任问题。然而在其它情况下,各个参与方的利益并不一致,这种场景下便会出现数据的信任问题。(雷锋网)[2020/5/11]

从底层架构来讲,BSN采用更细颗粒度的多应用共享运算资源的方式,来降低区块链应用服务运行的成本。简单地说,在BSN上多个开发者部署的不同区块链应用可以部署运行在同一台主机的区块链节点上,相当于共享同一台服务器。而大部分的BaaS平台多是通过分配独立主机资源服务器资源来部署应用服务,忽略了应用服务的实际计算资源需求造成资源浪费也提高了客户的部署成本。从表现形式上来说,在能够满足应用服务性能要求的情况下,在BSN上部署应用服务的成本会更低。就像在一台电脑运行10个应用和10个应用必须分别运行在10台电脑相比,前者的成本肯定是低的。

BSN架构图

BSN是基于互联网来搭建连接不同云服务和IDC的区块链公共运行环境,其他平台多是基于云服务商的云服务的内部局域网络来组建区块链运行环境。

从底层框架的角度,目前大部分的BaaS平台一般都会有选择的集成一个两个开源或自家的区块链框架,而且搭建的区块链运行环境是独立运行的。服务网络的核心理念之一是支持尽量多的区块链底层框架。目前区块链技术还处在早期阶段,我们希望能够通过服务网络为所有底层框架建立一个良性发展和公平竞争的环境,促进底层框架方持续推动区块链底层技术发展,不断提升服务品质。所有适配到服务网络的框架并不是简单地堆砌在一起,而是根据《区块链服务网络底层框架适配标准》,在密钥算法、CA管理、应用链管理、智能合约管理、交易接入等方面进行统一。

声音 | Lambda首席架构师:一切中心化问题的本质都是数据中心化问题:Lambda首席架构师李沫南表示:“现有的互联网技术和它的初心已经发生了变化, 双十一网络拥堵反映出的主干网络依赖问题,腾讯云事件反映出的稳定性依赖问题,Facebook事件反映出的隐私安全问题,以及日益增长的昂贵的服务器成本都在提醒着我们中心化存储的弊端。一切中心化问题的本质都是数据中心化问题,分布式存储系统的三个关键因素是计算、存储、网络。其中,数据的去中心化存储是价值互联网能否落地应用的最关键一环。”[2018/11/24]

再有一个不同是多门户,也就是BSN赋能平台的这部分。一般来说,其他的区块链平台是封闭的,仅销售平台本身的资源,也不会将BaaS能力输出给第三方。BSN提供这种服务—通过BSN赋能平台把区块链应用服务的发布能力开放给第三方,让第三方门户能够使用BSN的部署资源向其用户提供区块链应用部署和运行服务能力。

特别是面向有开发者资源的门户,以CSDN为例,作为中国专业的IT技术社区聚集了大量的技术开发者。如果CSDN集成了BSN赋能平台,开发者就可以直接在CSDN平台内选择BSN的城市节点资源部署区块链应用,这些应用部署信息通过赋能平台传给BSN的运维系统并由其调度各个城市节点的节点管理服务完成服务部署工作。对于CSDN平台方来说,实际上是向CSDN的用户输出了区块链的部署能力,实现类似于BSN门户的功能。

CSDN:作为BSN的首席架构师,BSN架构的设计遵循了哪些原则?

马晓军:在架构和实现上主要遵循以下几个设计原则:

声音 | 微众银行区块链首席架构师:微众银行聚焦区块链应用场景落地:据新浪财经报道,微众银行区块链首席架构师张开翔称,通过在政策可行性、性能可用性、业务适当性、安全可控性、技术易用性和治理方面的不断探索优化,区块链技术可以逐渐走向大规模应用。微众银行作为金融科技探索者,将会在区块链技术方面不断研究并推动实践落地。[2018/7/2]

简单易用,实现自动化配置、部署区块链应用服务,管理维护记账节点,提供区块链全生命周期管理;

安全可靠,以加密技术为基础,实现完善的用户身份认证、CA管理、应用权限管理、数据安全管理和隔离机制;

成熟先进,区块链服务网络采用多领域的成熟技术搭建,从分析企业应用的典型用例出发,来设计系统功能特性和基础能力服务,确保服务网络提供的基础功能服务具备普适性,适应广泛的企业需求;

模块化设计,采用模块化设计,将节点资源管理、底层框架适配、应用链管理、节点网关、CA管理、权限管理、运维管理与监控等功能模块分开设计实现,通过定义清晰的模块接口服务实现模块间的松耦合,以获得整个系统良好的可扩展性。

合作开放,任何云服务商、底层框架商和门户商在符合服务网络协议标准的前提下,均可以自由选择加入或退出服务网络。

CSDN:在架构的搭建中遇到过哪些技术挑战?

马晓军:前面提到的BSN基于运算资源共享承载多个应用服务,这种模式下的对基于不同区块链框架的应用服务的运算和网络资源使用进行准确的计费计价技术实现是一个难题。从商业逻辑上很容易理解,多个应用跑在一台机器上,肯定比一台机器跑一个应用要便宜。

声音 | 玖富集团区块链首席架构师:区块链开启了一个价值互联网的时代:玖富集团区块链首席架构师李利勇认为,区块链开启了一个价值互联网的时代。他表示,区块链是一个信任的价值,是价值互联网的一个底层技术。相比较过去的信息互联网,价值互联网是在信息互联网的基础上,传递的不仅仅是信息流是一个价值交换的平台,更是搭建了一套信用的体系。[2018/6/28]

但是这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的建设过程中对HyperledgerFabric,FISCOBCOS,XuperChain有过比较深入的学习和研究。

对于入门区块链的开发者,我推荐先从技术社区广泛的搜集区块链的基础知识资源并进行大量泛读。然后再选择一个区块链框架进行深入学习和研究。要熟悉一个框架,可以从框架的官方文档资料入手,理解基础名词和概念,根据这些补充自己缺少的知识点。进而通过精度细读掌握框架的整体架构和运行机制,比如:安全控制、密码算法、交流处理流程、同步机制、共识机制、区块数据结构、状态数据库和智能合约语言等等。在此基础上,结合自己的项目实践,由问题驱动进一步的去学习和研究框架的实现代码。对于区块链应用开发者,精通相关框架的智能合约语言、合约SDK、合约开发模式、合约部署机制、框架cliSDK等都是必须的。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:0ms0-1:44ms