区块链起源于比特币,2008年11月1日,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等电子现金系统的构架理念。区块链技术是利用加密链式区块结构来验证和存储数据,利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码来编程和操作数据的一种全新去中心化基础架构与分布式计算范式。区块链技术的基础架构一般由数据层、网络层、共识层、激励层、合约层组成。[1]架构模型如图1所示。数据层是区块链的基础,封装了数据区块以及相关的数据加密和时间戳等技术。区块是指数据库中需要处理和保存的数据集合,包括相关信息和记录,形成区块链的基本单元。区块由区块头和区块体组成。区块头是一个区块的标签,包含前驱区块哈希、版本号、时间戳、随机值、梅克尔树根等信息。区块体包括当前区块的交易数量以及经过验证的区块创建过程中的所有交易记录。每个区块中的前驱区块哈希值指明上个区块的信息,逐级包含形成区块链结构。[2]网络层封装了区块链系统的组网模式、信息传播协议和数据验证机制。区块链系统大多采用对等式网络(Peer to Peer network)来组织散布网络上参与数据验证和记账的节点。每个节点都具有承担网络路由、传播区块数据、验证区块数据和发现新节点的功能。一个区块数据产生后,生成该数据的节点将数据传播到全网所有节点验证。接收到区块数据的节点会首先判断区块数据的有效性,数据有效则按照数据的接收顺序暂存,同时向其他节点转发;如果数据无效,则废弃该数据,发出数据被拒绝接收的信息。区块链的数据存储在每个节点上,只要一个节点工作正常,其他节点失效也可恢复区块链主链数据,这种去中心化的数据技术确保了区块链数据的安全性。图1 区块链的架构共识层是区块链系统每一个节点高效工作的关键,区块链系统没有高度集中决策权的中心,要使系统对区块数据的有效性达成共识就需要一个适合的共识机制。在区块链技术中有多种广泛采用的共识机制:POW共识(Proof of Work工作量证明机制)、POS共识(Proof of Stack权益证明机制)、DPOS共识(Delegate Proof of Stack 股份授权证明机制)。POW共识是基于各个节点的算力达成共识的,各个节点共同解决一个数学难题(区块头中符合规则且不重复的随机数),最快解出的节点获得记账权和激励。这种共识方式的缺点是造成了资源的浪费。POS共识是依靠节点消耗的币龄(最后一次交易的币与其距离最后一次交易时间长度的乘积)。节点消耗的币龄越多,在区块链接在主链的动作中权益越大。POS共识的优势是不消耗额外的算力,在区块链接到主链上时迅速。DPOS共识是区块链各个节点按照持有的权益做为选票授权给有资格做为代表的节点,选票最多的节点生成新的完整区块数据。DPOS共识的优点是减少了参与验证和记账的节点。激励层是区块链系统正常运行的动力。区块链系统共识和数据验证是由各个节点来完成,区块链系统必须设计与数据验证、共识机制相匹配的激励机制,促使区块链网络上每一个节点参与到区块链的运行。例如在比特币中,每个节点都是矿工,提供算力寻找随机数来挖矿。生成新的区块后,根据挖矿过程提供算力的比例分配新区块产生的比特币和交易中的手续费。获得比特币就是节点参与区块链的原始动力。合约层是部署在区块链上可自动运行的程序,包括编程语言、编译器和虚拟机。合约层封装区块链系统中的商业逻辑和算法,这些商业逻辑和算法以各类脚本代码方式存在在区块链系统之中,实现节点之间符合规则的交易控制。运行在虚拟机内部的代码不能接触到网络、文件系统或者其他进程,防止被篡改。智能合约是逻辑链式关系和应用的桥梁,计算机语言取代法律语言记录条款。
比特币是区块链最成功的应用,比特币的发展也推动了区块链的发展,随着区块链技术的发展,区块链技术的应用不再局限在数字货币领域,在金融服务、供应链管理、文化娱乐、智能制造、社会公益、教育就业和医疗医药等领域都有广泛的应有场景。按照区块链的应用模式将区块链分为:公有链(Public Blockchain)、联盟链(Consortium Blockchain)和私有链(Private Blockchain)。[3]公有链:完全去中心化的区块链,网络中不存在任何中心化的服务端节点。公有链的各个节点可以自由加入或退出网络,数据访问和使用没有权限限制。分布式系统的任何节点均可参与链上数据的读写、验证与共识过程,根据节点的工作量证明(Proof of Work)或权益证明(Proof of Stake)获得相应的激励。联盟链:部分去中心化的区块链,也可以称为多中心化的区块链。联盟链的各个节点有与之对应的实体机构,通过授权加入和退出网络。各机构组成利益相关的联盟,共同维护区块链的健康运转。其共识过程受到预定义的一组节点确认后,满足共识协议才能生成区块。私有链:中心化的区块链,私有链各个节点的权限收归内部控制,数据读取权限有选择性对外开放,具备区块链多节点运行的特点。不需要POS共识或POW共识获得激励。对公有链、联盟链和私有链的对比性分析,如表1所示。
航行情报服务是航班运行过程中的重要组成部分,准确、及时的航行情报服务是航班运行控制安全的基础。航行情报服务包括向运控人员和机组提供航图、航行资料汇编、航行通告等内容,运控人员和机组在航班运行过程中需要结合使用。航路图、机场航图、航行资料汇编、航行通告等内容繁多,一旦错误使用或者遗漏,则可能获得错误信息,出现飞错航线、飞错高度、飞错程序等严重情况,直接影响航班运行的安全和正常。受航行情报资料信息传递、确认及审核的影响,和航班运行保障部门对航行情报信息处理的影响,目前在业内对航行情报资料的管理使用航行情报定期颁发制(Aeronautical Information Regulation And Control ),每28天为一个周期,对航班运行、飞行有重要影响的航行情报进行定期颁发、定期生效。颁布的资料必须提前28天送达收件人或提前42天发出航行资料,在此期间不得修改,如果必须修改,使用航行通告(NOTAM)做为补充资料。随着电子飞行资料包(Electronic Flight Bag)的广泛应用,和各飞行运行保障部门信息化系统的采用,在航班运行过程已经不再使用纸质资料作为主要资料工具。为了提高航行资料的传递效率,降低航班运行过程中运控和机组使用航行资料的难度,可以通过区块链技术与电子飞行资料包、航行情报信息化处理系统有效、深度融合,通过区块链技术进行航行情报的发出、审核、传递、接收工作,通过区块链系统的应用,或在电子飞行资料包和航行情报信息化处理系统中使用。航行情报信息在使用上有很强的时序要求,在区块数据中的时间戳可以解决这一要求。区块链所使用的P2P网络和广播式传播协议确保航行情报在传递过程中高效。近似于指数级的传播速度,在极短时间内传递到全网的每一个节点。航行情报信息的快速传递将使其内容更有利于做为增量数据添加至电子飞行资料包当中,减少飞行机组对航行通告、航行资料汇编等内容的阅读,以更新后的航图做为标准进行飞行运行,将更多的精力分配在航空器的操作上,提高航班运行的安全水平。
用区块链技术架构从零开始构建分布式应用(Decentralized Application)非常困难,区块链即服务(Blockchain as a Service)的出现使区块链技术在实现上变得容易,区块链2.0 试图创建可共用的技术平台并向开发者提供区块链即服务,极大提高了交易速度,大大降低资源消耗,并支持PoW、PoS和DPoS等多种共识算法,使DAPP的开发变得更容易。BaaS是基于云服务的区块链开放平台,可快速部署介入,支持公有链、联盟链或多链。IBM公司最早提出BaaS概念,微软、Google、Amazon等后续都推出了区块链技术服务平台;[2]国内企业万向、微众、腾讯、华为、百度、阿里等公司的BaaS平台也聚焦于打造企业级区块链基础服务平台,专注于帮助企业快速搭建上层区块链应用场景。不同的BaaS平台有不同的特点和专注领域,以简便、高效的方式创建区块链环境,或者完全访问集成的开发运维工具,创建、部署、运行和监控区块链运行应用程序,或者保证在安全的环境下与客户进行交易。因此在区块链系统建设之初应分析区块链应用的特点和环境,根据应用层的特点选择适宜的BaaS平台。