民用航空是一个全球性行业,在该行业中,海量数据阵列的同步和处理不断进行。 在20世纪中叶,航空公司预订系统是使用计算机系统和数据传输网络的首批实例之一。 让我们看看当今的区块链技术如何能够帮助更快,更有效地解决一个简单的,乍看之下的任务:将乘客从“ A”点转移到“ B”点?

给定
大量组织参与该过程
- 至少一家航空公司;
- 购买机票的销售点(可能是航空公司的网站或旅行社的办公室);
- 库存系统提供者(客运服务系统);
- 至少两个机场
- 空中管制服务;
- 边境和海关管制服务(国际航班);
- 供应商和加油商;
- 飞机维修组织;
- 食品和其他服务的提供者;
- 忠诚度计划的运营商(如果乘客是此类计划的成员);
- 保险公司(如果乘客已购买其他保险)。
让任务复杂化
该过程中的所有参与者都必须具有与其运输组织有关的相关数据。 即:
- 有关飞机抵达时间,飞机指定停车地点的信息;
- 有关售票的信息;
- 登记了航班的旅客登记册;
- 有关必要签证,护照和海关管制的数据;
- 关于机场提供的服务的数据,包括食品和燃料服务-服务的数量和提供服务的确切时间;
- 有关技术控制和维修措施的信息;
- 有关机组人员飞行前控制通过的信息以及更多信息。
同时,可能会对某些信息流施加其他要求。 例如,通过信息源的身份验证与数个独立的源/使用者交换数据,或保持数据历史记录的不变性以及进行审计的可能性。
资料交换
打印文档vs Excel vs API vs ...?
所有组织都拥有与运营活动管理相关的信息系统,包括收入和支出,而与承包商的信息交互的自动化程度则有所不同,从印刷文档的传输到随后的数字数据仓库的传输,再到各种集成机制的使用:
导出/导入文件
各种格式(CSV,XML,Excel ..)
在民用航空领域,存在在航空运输过程中组织互动的全球平台:
- BSP(计费和结算计划);
- GDS(全球分销系统);
- PSS(乘客服务系统)。
我们在上一篇文章中谈到了它们。 该平台作为服务工作,并得到协会和公司(例如IATA,SITA,Amadeus等)的支持。所有当前平台都是集中式的:有一个提供服务的组织,所有软件,服务器容量均受其控制。 从开发和支持系统的角度来看,提供一定水平的服务是很方便的,但是也存在以下缺点:
- 流程参与者的额外费用与平台服务的付款有关;
- 信息传递给外部组织。 商业价值数据可能会被泄露或提供给第三方;
- 服务提供商可能会影响信息交互的规则。
API
使用API,您可以组织承包商之间的直接互动。 API标准之一是NDC(新发行功能),旨在直接销售机票和其他服务。 同时,在地面处理过程中与承包商进行交互时,还没有这样的标准,数据集成服务的分散实施也不是基于公认的标准。
API是承包商之间的协作工具,使您可以将企业或组织转变为平台。 但是,潜在地为交易对手交互的所有选项创建API可能会导致进行交互的服务的集中化,另一方面会导致集成的数量和类型的增加以及组织信息环境的复杂性。
区块链?
我们有:
- 必须在一个信息字段中收集许多数据源;
- 数据正确性,来源和发生时间的至关重要性;
- 在数据传输中,直接数据交换优于使用中介。
区块链/分布式注册表技术的使用-似乎是解决我们在一开始就确定的复杂问题的逻辑部分:将乘客从“ A”点转移到“ B”点。 多亏了这项技术,该过程中的所有参与者都可以收到一个版本的数据,因此他们无需花费时间和其他资源进行协调和讨论。
多个参与者的单一数据版本
当多个组织接收和发送与特定上下文相关的数据时,组织可以使用分布式注册表的功能根据自己的规则快速控制消息的时间和来源以及传递的事实,以交互方案中最小必要或零披露程度交换信息。乘客,航班,ULD(单位负载设备,空气容器)等
分布式分类帐技术的核心价值基于两个关键要素。
- 经过验证的数据来源(尽管区块链不能保证数据的可靠性,但是可以明确指出谁将哪些数据放入注册表以及何时将其放入注册表);
- 受控流程-所有参与者都可以查看和了解数据如何通过预先约定的编程流程。
智能合约
数据交换规则可以以智能合约的形式描述,该合约定义了特定流程的数据模型。 智能合约在中立的分布式注册表环境中执行,受到保护,免受第三方的访问或影响,从而保证了各方输入信息的时间顺序固定,从而形成了审计线索。
智能合约的代码决定了数据访问的级别,谁以及在什么条件下可以输入数据。 除了参与该过程的组织之外,Oracle是重要的数据源-信息系统,可将数据从外部环境传输到区块链。 甲骨文可以是,例如:
- 经认证的加油车质量计;
- 提供当前汇率的交易所;
- 模式识别系统。
从外部环境访问数据使自动化交易条件的满足,计算服务成本的算法成为可能。
看起来不错,如何实现呢?
v1.0:以太坊
2017年,S7航空公司与首批航空公司之一阿尔法银行(Alfa Bank)合作推出了一个基于区块链的技术项目,该项目现已在S7航空公司与代理商网络的互动过程中得到积极使用,并允许您将机票销售数据与付款交易关联起来。
与代理之间的信息和付款交互过程被认为是创建业务网络的特例,其目的是由于组织直接和安全的信息以及付款交互而加速了业务和生产过程,降低了运营成本。
由S7 TechLab开发的区块链平台立即设想建立网络,以供组织交换业务信息的流程,并在达到某些条件后通过智能合约启动银行付款。 为了使放置在区块链上的交易产生法律后果,开发了一个法律框架,其中包括允许银行根据来自区块链交易的数据进行付款。
区块链平台的第一个版本是在以太坊协议的基础上使用授权证明共识实现的,其中在系统智能合约层面确定了一组组织验证者以及一个访问模型。 为此,使用了奇偶校验客户端的功能。
该体系结构涉及为特定过程部署单独的网络。 参与者的主要角色:
- 参与特定过程的组织(例如,在售票时是代理商还是航空公司)
- 一家提供通过放置在区块链上的交易启动支付的银行。

该平台的第一个版本(智能合约)的链上组件是使用智能合约更新技术在Solidity上实现的,该技术在基于EVM(以太坊虚拟机)的智能合约中带来了许多开发和支持方面的困难。 链下组件主要在JavaScript / Node.JS上实现,因为最稳定的库(web3.js,truffle等)都在此堆栈上实现。
基于以太坊协议的区块链平台是一个良好的开端,因为自2017年以来,它是支持智能合约的最稳定的技术,拥有大量可用的库,但是,随着需求的进一步扩展和功能的发展,我们遇到了以太坊协议固有的诸多局限性:
- 事务不是最终的,它们被节点的简单多数票所接受-验证者;
- 所有参与者都可以使用一个单一的操作注册表。 在2017年基于Quorum和以太坊客户的其他扩展实现以及支持私人交易的决策仍然不稳定;
- 坚固性作为一种开发语言,对所实现的逻辑有很大的限制。 实现复杂的逻辑是有问题的:例如,当在智能合约中使用一定数量的变量时,编译器会抛出一个
stack too deep
,该错误stack too deep
,而智能合约逻辑的进一步扩展则必须借助重大的技术技巧来完成。
v2.0:Hyperledger Fabric
在2017年下半年, 发布了Hyperledger Fabric 1.0框架的稳定版本,具有以下功能:
- 两阶段提交;
- 基于通道的数据隔离
- 基于PKI的身份验证;
- 用于配置网络参与者的灵活模型(会员服务提供商);
- 用于设置操作(策略)权限的高级系统;
- 基于Go的统一代码。
这说服了我们进一步开发基于此框架的区块链平台。 时间证明了这一选择是正确的:现在,基于分布式注册表创建的工业级公司项目的很大一部分都使用Hyperledger Fabric技术。 在组织之间分布的系统的创建意味着所有参与者都熟悉所使用的技术,因此,Hyperledger Fabric的文档,知名的使用实践和市场接受水平简化了与合作伙伴的交互。
2017年(目前也是如此)的区块链技术正处于快速发展阶段,我们不得不走自己的道路,开发大量自己的组件,面临着以下问题:
- 缺乏开发和测试区块链应用程序的最佳实践;
- Go上缺少简单稳定的SDK;
- 缺乏维护网络服务水平的实践(网络配置,节点监视,紧急响应等)
- 网络参与者的复杂重新配置。
在S7区块链平台的两年开发中,我们已经从人工部署网络,编写简单的智能合约到工具的形成,通过这些工具我们可以与外部合作伙伴快速创建区块链网络。 基于部署单个项目的经验,我们开发了:
- 在K8S或任何虚拟服务器/云服务上部署网络组件的方法;
- 分散网络和网络访问管理;
- 监测和维持服务水平的手段;
- 开发智能合约和脱链应用程序的组件,包括数据加密;
- 网络分析工具(资源管理器),考虑到代码数据模型的元描述;
- 到银行进行支付交易的网关。
开源的
我们已经公开发布了一些开发成果:
一个允许您以结构化方式构建智能合约的库。 最新版本还包含基于gRPC服务和protobuf消息的元描述的代码生成工具,可用于指定Hyperledger Fabric的智能合约(链代码)的接口,并自动创建与智能合约进行交互的SDK。

此外,还实现了以下功能:
- 函数调用的路由;
- 中间处理功能(中间件);
- 对象状态映射;
- 扩展了MockStub的实现。
自己的简化SDK:
- 简单明了的组件;
- 插件发现提供程序和加密套件;
- 内置GRPC指标;
- 基于go-grpc的GRPC呼叫平衡;
- 与Fabric CA一起使用的单独软件包;
- 基于OpenTracing(Jaeger)的跟踪操作。
正在进行的项目
使用此工具包,已经开发了几个项目:
根据AFSC(航空燃油智能合约)系统中的数字智能合约,S7航空公司和燃油供应商就燃油的初步金额及其价格达成协议。 这些数据用于将技术规范分配给机场的加油机驾驶员。 在飞机指挥官向操作员询问完成飞行所需的确切燃油量之后,会将在线申请发送到航空公司的银行以在帐户中预留相应的金额。 银行的即时确认使您开始加油。
这是在商业运作(营业额已经超过每月3亿卢布 )。 第三方大型运输公司也正在实施类似的系统。
许多项目正在开发中,包括那些与与机场和提供飞机地面处理服务的公司合作的项目。
区块链技术可以在哪些项目中将航空业提升到更高的水平? 也许最重要的是安全。 区块链可以充当虚拟日志,在其中记录有关飞机各个部分维护的所有信息:它们来自何处,与他们合作的人,下一步去哪里等。由于这种透明性,区块链可以将航空安全推向一个全新的高度。
还有忠诚度计划。 这只是一个示例:忠诚度积分的标记化将使它们成为客户更灵活,更方便的工具。 他们可以在航空公司,酒店,船运公司和汽车租赁公司之间的旅游行业中提供端到端的协作。
不仅如此。 尽管目前的例子仍然是第一步,但使用区块链的可能性很高,将对信息和支付互动领域的民航业转型产生巨大影响,这无疑将有助于使旅客与航空承运人的互动过程更加便捷和可靠。
商业价值
根据利用区块链技术创造价值:如何评估区块链的
受益于国际经济论坛,民航业和整个旅游业的整体,可以从使用智能合约的互动自动化,流程中所有参与者的单一数据版本以及创建新型产品和服务的能力中最大受益。 首先,由于服务于合作伙伴之间信息流的技术的现代化。
在区块链的基础上,可以执行需要付款交互的流程(为机场/燃油供应商等服务付款,或根据联运协议相互付款),以及与付款无关的流程,例如航班事实。
智能合约可能包含合作伙伴之间事先约定的规则,这些规则用于条件的自动验证和包括付款在内的操作的执行,这将大大减少人工工作,从而造成延迟和潜在错误。
所有区块链交易附带的时间戳也可以
允许控制服务水平协议(SLA),例如
履行在机场维修飞机的技术时间表。
结合物联网(IoT)和机器模式识别技术,已将此类解决方案最大化-在智能合约中存储和考虑的事实将能够在没有人工干预的情况下尽可能自动地进入区块链。
陷阱
对于商业网络,联盟方案是相关的,其中网络节点由单个组织(网络参与者)支持。 对网络节点的访问可以是联盟成员,也可以是外部组织,这取决于互操作性要求。 考虑创建业务网络的主要障碍。
从业务角度来看:
- 确定交易对手互动的过程,其中确实需要下放权力。 研究信息交互的结构,数据可访问性条件;
- 正确评估改变与承包商互动的范式的影响和实施成本;
- 在包括直接竞争者在内的交易对手财团中组织工作。
在技术方面:
- 当前缺乏将安全性,可扩展性和分散性结合在一起的“理想”分布式网络操作算法(从3中选择2);
- 缺乏制定智能合约和法律惯例的标准化方法;
- 缺乏创建此类系统的最佳实践。
最主要的是,缺点不是障碍,而是增长区。 未来更有趣,我们还有很多工作要做。