APP下载

区块链通用设计及案例分析

2021-03-07崔顺艳陈宁叶劲宏杨晨光孙宗锦

电子技术与软件工程 2021年22期
关键词:以太企业级比特

崔顺艳 陈宁 叶劲宏 杨晨光 孙宗锦

(广东省网络与信息安全漏洞研究重点实验室 广东省广州市 510000)

1 背景概述

区块链的兴起,源于其创造性的算法、设计架构,以及由其带来的新的市场价值。在区块链技术出现之前,互联网是基于数据流的基础建立的,而互联网的价值、信用交换基础设施并不完善。区块链技术的出现,给信用、价值网络的建立,提供了新的解决方案。

区块链概念的提出,源于比特币。2009年,中本聪提出了一种不依赖第三方机构的,由纯算法构成的,可以点对点交易的数字货币架构[1]。中本聪在他的文章中,创造性的提出了区块链,工作量证明共识机制。中本聪的算法,从实践上,解决了在没有中心化机构的情况下,无限多节点之间的互信问题。很快,开源社区将中本聪的算法进行了实现,形成了比特币。在比特币之后,人们开始尝试将区块链和共识机制等应用于数字货币之外的其他领域。这其中典型的探索实践是Ripple[2]和以太坊[3]。前者设计了一种基于区块链技术的跨境银行解决方案,把区块链技术向商业场景的应用,推进了一步。而后者,建立了开源区块链平台,并首次将智能合约引入区块链平台,并在以后的平台中成为标准配置。随着比特币,Ripple,以太坊一系列项目的市场认可度越来越高,IT、金融领域的巨头们,开始进入了额区块链领域的研发。一些公司或机构,尝试以服务企业、政府部门的需求为出发点,开发区块链系统,例如:IBM的Hyperledger[4][5]项目和R3的Corda项目[6][7]。由此可见,区块链的发展,经历了一个脱实向虚的过程,由算法,发展为虚拟货币的实现,进而发展为企业级解决方案。如果说,比特币是区块链的1.0形态,以太坊是2.0形态,那么,之后出现的面向企业的平台就是区块链的3.0形态。

随着区块链技术的发展,区块链在我国的应用也逐渐多了起来。区块链的多中心化治理结构,可以在保有层级的情况下,发挥平级之间的能动性,进而提高政府多部门协作工作的运行效率。共识机制可以解决政府多行政区之间的可信数据交换问题,进一步打破信息孤岛。区块链的可信存证与溯源特性,可以帮助建立更好的市场监管体系;另外,对于证据的可信保存,信息溯源等场景,区块链技术提供了新型高效IT解决方案。

在以下章节中,我们对区块链应用设计进行详细剖析讨论。在章节2中,我们对区块链技术的通用设计进行讨论。在章节3中,我们探讨一些IT行业中的区块链经典设计案例,这些经典设计,对于如何应用好区块链技术为我国发展服务具有参考价值。最后我们在章节4中,进行总结。

2 区块链通用设计

区块链的应用方案中,基础区块链平台的设计是一个核心问题。下面进行讨论。早期的区块链平台公链,定义的场景是,在无限多网络节点,互无信任的前提下,利用共识机制,建立基于算法的互信体系。其代表为,比特币和以太坊。

表 1:主流区块链平台

比特币的共识算法,第一次证明了在无限多节点情况下,且节点间互无信任的前提下,可以通过一种实用算法,对交易数据在全网达成共识。比特币的共识机制,是通过工作量证明算法实现的。然而,仅能共识交易,从机能上很难满足政府和企业的需求。以太坊开创性的加入了智能合约,使得区块链可以共识的内容从交易,拓展到了可编程的合约,其平台适用范围也更为广泛。之后的区块链平台,也将智能合约作为了标准配置功能。智能合约是一种无需中介、自我验证、自动执行合约条款的计算机交易协议。智能合约的概念早在1990年代就被提出[8]。但是,区块链技术出现之前,智能合约的实现缺少一种可信执行环境。比特币的工作量证明机制,赋予了智能合约真正的可信执行环境。以太坊是基于工作量证明机制建立的智能合约。然而,以太坊定义的共识范围仍然是无限多节点的全互联网,这种定义使得其共识效率低下,例如,以太坊的共识效率为每秒确认10-20笔交易(注:这里的交易是指在区块链上确认并记录的事件,并不限于金融意义上的交易)。这使其在政府企业级的应用场景受到极大限制。

鉴于公链共识效率低下问题,一些新型平台的设计者,将区块链共识范围从无限节点,缩小到在有限个节点范围(如几十到几百个共识节点)。由此,诞生了联盟链,即:在有限范围进行共识的区块链。联盟链定义的场景,比起公链,更适合政府企业级应用,因为在这些场景,需要达成共识的节点往往是有限的,如:一个国家有若干个行政区,一个公司有若干个部门。由于需要共识节点少了,同时,各个共识节点间,也有了一定程度的信任,联盟链的共识效率比起公链也就提高了,联盟链的共识效率往往可以达到每秒确认百笔交易以上。

联盟链的共识算法,和比特币的公链共识算法有很大的不同。早在1982年,Lamport将有限节点间的共识问题总结为拜占庭将军问题[9]。该问题描述如下:若干个拜占庭的将军,联合围攻一个敌军城堡,他们需要共同商定一个进攻时间,相互之间只能通过通信兵进行通信。问题假设,这些将军当中可能有叛徒,同时假设通信兵之间的通信有可能被干扰,如被敌军截获或者被敌人换成假信息。那么,将军间如何通信可以确保,在即使有叛徒的情况下,仍然可以准确的达成一致的进攻时间。这样的问题称为拜占庭将军问题。而从数学上得到验证,在叛徒和通信干扰不多于整体将军数量1/3的情况下,拜占庭将军问题可以得到解。拜占庭将军问题的解法,称为拜占庭容错(BFT)。1999年,Miguel Castro等学者提出实用拜占庭容错算法[10],增强了拜占庭将军问题的解决效率。而在一些场景中,可以假设没有叛徒,只会存在通信无法送达的情况,在这种问题的解决方案被描述为宕机容错(CFT)。解决CFT问题的RAFT算法于2013年被提出[11]。

而联盟链的实现上,一些联盟链是基于以太坊的改版,另一些是基于BFT类算法进行的实现。联盟链当中的佼佼者是IBM的开源项目Hyperledger和R3公司的开源项目Corda。Corda平台的应用场景是针对金融机构,这里不做过多论述。后文会有对IBM的Hyperledger的详细介绍。IBM公司长期为企业服务,提供企业级IT级商业解决方案。该公司积累了大量政府、企业服务案例,对政府企业需求有较为深刻的认识。因此,其Hyperledger项目,从设计之初,就非常针对政府企业级需求痛点。

表1总结了目前主流的区块链平台特性。如表,以太坊(Ethereum)平台是通用的公链平台,也是最早的智能合约平台,优点是共识范围广,缺点是共识效率相对低下。广泛应用于代币、通证的发行,目前绝大多数的虚拟货币,都是基于以太坊平台开发的。Corda平台是针对金融业的平台,其对金融银行业的需求有较高的契合度。Fabric平台(即Hyperledger),是针对企业级应用开发的平台,其优点是共识效率较高,且其智能合约的编程语言也是当今比较流行的Go语言。其缺点是,没有办法很容易的生成通证或代币,这使其在金融领域的应用受到一定限制,往往实践中,如在金融领域应用,会配合有代币的平台,如以太坊平台共同使用。

基于上述总结,不难发现Hyperledger Fabric平台比较适合于政府及企业的场景。其原因有如下几点:

(1)政府及企业场景往往需要在有限的若干部门之间进行数据共识,且有一定的共识效率要求。

(2)政府企业类场景,相对封闭,需要对访问者进行许可限制。

(3)这些场景一般不和金融相关,且不需要代币。

3 区块链设计案例剖析

3.1 国际平台设计实践--Ripple

Ripple是很好的平台设计参考案例。其价值在于,Ripple是第一个面向企业的解决方案。Ripple公司成立于2013年,通过区块链技术,提供银行间清算服务,解决银行间跨境交易时间长成本高的问题。在Ripple之前,银行间跨境转账用的是基于1973年定的SWIFT code标准。以美国银行为例,其国际转账单笔手续费大致在15-45美金不等,按照5万美元一笔计算,转账费用在万分之三到万分之九之间,如金额较小则费率更高。而Ripple的解决方案,可以在3.59秒确认交易,每笔交易费用约为0.000003美元。如今Ripple已经与300余家银行与金融机构签署了服务协议,提供Ripple技术服务。Ripple的交易原理简介如下:其会在服务的每家银行设立Ripple网关,每家银行需向网关中存入一定数量的XRP(一种Ripple发行的虚拟货币)。当银行A向银行B发起一笔转账,则网关A向网关B发送一定数量的XRP,以XRP计价A银行向B银行的转账数额。类比的讲,Ripple做的事情就像交易中的路由器,而XRP就像路由器中的数据包,只不过这些XRP传递的是交易信息。

在技术设计上,Ripple有其独到之处。一方面,Ripple的成立仅在比特币诞生的4年后,还略早于以太坊,可以参考的同类型技术平台不多;另一方面,Ripple的服务对象,不再像比特币那样,是公众交易,而是企业,从性能到需求上都有其特殊的地方。虽然Ripple服务的金融领域有一定的特殊性,但是Ripple的设计,可以认为是企业级区块链平台的设计的经典案例。

在架构上,Ripple并不像比特币那样全部去中心化,而是参考了服务器与客户端的设计,见图 1 Ripple架构示意[12]。客户端只负责发送接受客户请求等少量任务,并不参与共识,多数任务在服务器端完成。服务器端采用分布式设计,共识机制只在服务器端的若干节点间进行。在服务器端,也分为追踪节点(tracking node)和验证节点(validating node)。其中,追踪节点只负责分发交易信息以及响应客户端的账本请求,而验证节点包含追踪节点的所有功能,并且负责共识投票。除此之外, 验证节点还维持一个可信节点名单(UNL),只有在名单中的节点才会被认为是合法可信的验证节点。一个客户端的请求,通过接入追踪或验证节点被广播到整个服务器网络。

图1:Ripple架构示意[12]

在共识机制的选择上面,Ripple并没有选择工作量证明机制。效率上讲,工作量证明机制很难满足银行间动辄每秒上千笔交易的需求,例如:比特币每秒确认的交易量只有3-4笔。因此,Ripple的共识机制,参考了BFT类的设计,具有PBFT的影子。

3.2 企业级解决方案Hyperledger平台

Hyperledger是IBM公司发起的开源项目。其目的是建立一个帮助企业解决生产中实际问题的区块链平台。目前大多企业级区块链应用,都是通过Hyperledger及其改版实现的。

Hyperledger在需求适配上,有以下特点:

(1)网络采用许可制,这样就保证了系统和共识服务只在小范围节点间进行,是安全性和效率的前提保证。

(2)适配于企业需求的高吞吐量和低延时。

(3)具有私有数据概念,使得商业和政府的私有数据得到保护。

Hyperledger在设计上,采用模块化。核心模块有以下几个:身份管理,账本管理,交易管理,智能合约。见图 2 Hyperledger 架构[13]。

图2:Hyperledger架构[13]

(1)身份管理:主要是membership service provider: 系统会员权限管理模块,对不同使用者分配不同的权限访问等级。这点不同于比特币等公链。在公链中,没有准入权限,也就是,所有人的权限都是一样的。

(2)账本管理,主要是ordering service,交易排序服务,利用共识机制,将信息传播至系统网络。

(3)交易管理:peer-to-peer gossip service: 点对点传输服务,使用者可以在对等节点上订阅服务。

(4)智能合约:在Hyperledger中称为chaincode。可以用多种主流开发语言编写,可动态部署,且可以存在多个不同的合约。

这里,对Hyperledger的共识机制部分,进行单独讨论。Hyperledger采用了发布/订阅的事件管理框架,参与者在有权限,且合法订阅了内容后,可以通过监听的方式获取系统内共识的事件。一些参与节点之间,可以通过Channel,形成一个子网络,所有channel成员之间的信息,只限于子网内部传播。对应公链的交易共识机制来看,Hyperledger的共识机制被拆分成两个主要的服务:对账本的共识部分主要放在排序服务中做,而点对点的交易服务,单独成为一个服务。

而底层共识机制算法上,Hyperledger也没有采纳工作量证明机制(工作量证明共识的特征即为广为人知的挖矿),在设计层面主要针对BFT和CFT类问题。Hyperledger在早期版本中,采用了PBFT算法进行节点间共识。然而,在后续比较稳定的版本中,PBFT算法被剔除,虽然计划在未来变为可支持的备选算法,但目前版本以不再支持PBFT。新版本改用了CFT类的算法RAFT。RAFT算法原理为,从若干个节点中,选出一个领袖节点,所有共识信息以其为标准分发给其他节点,当领袖节点出现异常,如宕机情况,则由其余节点中重新选择领袖节点。

虽然没有说明,但是这样的改动却也是符合常理的,原因如下:

(1)PBFT算法共识,对于企业级解决方案来说,还是过于复杂,且效率低下。

(2)企业级解决方案中,大部分场景可以假设并没有恶意节点,更多情况是通信丢失或者宕机这样的情况。由此,基于CFT的RAFT算法就成为了项目的核心共识算法。这样的算法简单且共识效率高。

3.3 我国IT应用场景的实践

国内区块链发展,主要分为基础区块链平台和区块链应用两类。基础平台,大都是基于开源平台的改版,如以太坊平台,Hyperledger平台等。除了一些专门做平台的IT公司,国内主要做云服务平台的公司,大都提供自己的区块链平台。由于上述讨论的Ripple就是区块链平台,同时我们下面还要讨论的到平台,我们这里不妨看一下应用的典型设计案例。应用企业中的典型是阿里巴巴和蚂蚁。由于阿里和蚂蚁丰富的生态,为其在区块链中的探索,提供了丰富的场景。这里列出了一些已经实现的区块链应用场景:

3.3.1 公益

(1)2016年的7月,上线区块链公益筹款项目"听障儿童重获新声”。

(2)2017年3月,支付宝爱心捐赠平台利用区块链技术所有捐赠数据上了链。

3.3.2 溯源

(1)2017年3月,阿里巴巴与多家公司合作,利用区块链技术溯源食品原产地。

(2)2017年10月,蚂蚁金服技术实验室宣布开放区块链技术,支持进口食品安全和正品商品的溯源。第一个落地场景是对澳洲、新西兰的26个品牌奶粉的追踪,

(3)2017年11月,天猫国际宣布升级全球原产地溯源计划。

(4)2018年2月,菜鸟与天猫国际启用区块链技术追踪跨境进口商品的物流全链路信息。

(5)2018年3月,阿里正式宣布天猫海淘将利用区块链技术跟踪、上传、查证跨境进口商品的物流全链路信息,防止造假。

(6)租房。

(7)2018年1月,雄安建成区块链租房应用平台蚂蚁区块链上线。

3.3.3 金融

(1)2016年6月,阿里金融云和易城互动也联合推出“云优商城” 。

(2)2018年6月25日,蚂蚁金服宣布上线全球首个基于区块链的电子钱包跨境汇款服务,并且现场完成了第一笔汇款。据了解,第一笔汇款由在中国香港工作22年的菲律宾人格蕾丝(Grace)完成,耗时仅3秒,省钱省事、安全透明。

以商品溯源场景为例,蚂蚁通过区块链技术,完成对若干食品的溯源,典型如阿里的五常大米溯源,为食品安全提供了额外保障。一个商品的流通往往经过:生产商、关检、商检、仓储方、物流、分销商等环节。区块链技术,配合商品二维码,电子标签等采集端技术,为商品在各个领域的流通,建立全生命周期的可信电子身份,使得商品购买者可以很容易的将商品追溯到其产地。

4 总结

区块链技术经由10多年发展,已经从开始的工作量证明机制,演化到更高效、小范围共识算法研究;共识内容也从简单的交易信息,演化到智能合约。在应用领域,算法和架构的精进,使得区块链技术不再只能做虚拟的如数字游戏般的虚拟交易。区块链的应用场景经由最初的,比特币为代表的虚拟货币,已经发展到了企业和政府端的应用。在这个时间节点,我们需要对区块链的应用设计进行剖析研究。本文侧重于区块链和实际应用领域的结合。技术与案例相结合,通过实践案例剖析区块链技术的设计。为区块链的发展和使用提供参考。

猜你喜欢

以太企业级比特
以太极为旗,开启新时代“黄河大合唱”
企业级BOM数据管理概要
车易链:做汽车业的“以太坊”
比特币还能投资吗
比特币分裂
基于慕课网的“企业级应用开发”课堂教学改革探索
比特币一年涨135%重回5530元
企业级信息系统应用级灾备建设与应用
百通推出入门级快速工业以太网络交换器系列
城市轨道交通企业级BIM应用策划研究