李 强,彭 勇
(中国人民解放军66350 部队,河北保定 071000)
飞机是一个复杂的系统,成千上万个零部件协同工作才能确保飞行安全。随着现代化程度越来越高,分工越来越细,各个部门的协作越来越广泛。鉴于当前飞机每飞行1 h 都会生成大量数据的情况,确保如此复杂系统的维修过程质量是一项挑战。为了满足当前的质量要求,有必要利用新技术改进航空维修记录的存储方式。真正的革命不是计算机系统的扩展,而是存储、使用和分析数据的方式。在航空工业中,更好的维修记录数据不仅有助于商业决策,而且有助于提高安全性。只有在发布证明维修工作已完成的文件后,飞机才被视为适航。目前,这些文件以实物形式保存,存在记录错误、证据搜集困难和缺乏透明度等问题。通过全面准确地了解整个维护过程及其对航空法规和维修规程的执行情况,可以采取针对性措施减少计划外停机时间。
区块链是一种前沿技术,在未来一段时间内可能会颠覆许多行业的商业运作模式,也会对航空业产生重大影响。维护过程涉及到诸如基层维护、部件供应商或专业第三方等各方。准确的维护记录对于飞机的适航性至关重要,可以通过使用分散的数据库(如区块链)来实现。本文在航空维修数据存储领域引入区块链技术,为确保飞行安全提供一种切实可行的实用解决方案。
区块链技术最初是为加密货币交易开发的,但其应用远不止于此。区块链是私人或公共网络成员之间的分布式数据库。没有一个中央机构负责数据存储管理。任何数据交易都是基于先前所有参与者都接受的共识协议进行的。它产生了一个由无数相互连接的区块组成的安全数字账本。每个数据块通过加密哈希与前一个数据块连接,形成可靠的按时间顺序排列的记录链,如图1 所示。每个块存储前一个块的散列,确保任意两个连续块之间的连接。结果数据库是不可修改的,这意味着它不能被逆转或篡改[1]。
图1 区块之间的连接
共识协议的核心是一种算法,它确保每个交换的数据都经过所有成员的验证。区块链是通过创建具有多层安全性的准确且分散的分类账来建立信任。每个区块的数字签名是区块链最重要的特征之一,其中包括使用加密哈希。哈希就像数字文档的指纹。区块链技术使用安全哈希算法,最常见的算法就是SHA256,它可以生成唯一的单向哈希,非常有用。这意味着不可能逆转加密过程并返回原始文档。此外,SHA256 满足雪崩效应属性,即如果需要加密的文件中只有一位发生更改,算法将触发一系列更改,新生成的哈希将与未更改文档的哈希完全不同。使区块链技术强大的另一个安全层是“工作证明”概念[2]。只有在解决了计算难题后,才能向链中添加新的区块。此外,还需执行区块链有效性检查来验证添加的区块的正确性。
研究探索一项新技术给经济社会发展带来的巨大效益,对于人们接受新技术是至关重要的。航空维修记录中使用区块链技术具有如下主要优势[3]。
航空维修记录在飞机的整个寿命周期中都很有价值。未来的维护任务是基于飞机历史数据来组织的。过去记录中的错误将导致未来更多的错误,就像雪崩一样。错误的维护记录会对飞机履历文件的完整性产生负面影响。区块链提供了一个安全的账本,其中包含的数据不会被可扩展的硬件设施所破坏。
飞机维护记录很复杂,涉及许多纸质文件和电子文件,存储在不同的位置。有了区块链技术,工程师、技术人员和管理人员可以在几秒内轻松访问公共或私人数据库中的信息。
跟踪飞机运行和维护活动的进程是一项具有挑战性的任务。在区块链中记录飞机数据将为参与者创造一个数字环境,将非结构化、复杂的数据转换为结构化、易于理解的信息。在进行调查或审计时,很容易提取相关和准确的信息。
分散的航空网络将由各方组成,包括航空管理局和其他确保飞机正常运行的所有业务参与者。共享飞机记录将增加维护和运营的透明度。这将迫使参与者改进自身的活动,千方百计提供高质量的服务,进而带来更安全的飞行和获得更多的客户。在网络上共享数据是建立信任的关键因素,根据共识协议对敏感信息进行保护,每个成员根据自己的角色只能获得特定的信息。
区块链系统最重要的特征之一是不可变属性。一旦添加了有效的信息区块,就不能对其进行更改。准确的数据库要有结构化、精确的、按时间顺序排列的和完整的数据,以便能够开展不同类型的分析。区块链技术可以在这一方面发挥重要作用。
无论从短期还是长远来看,提高企业的效益和获得客户的信任都是行之有效的业务策略。在航空领域,区块链技术可以扩大许多业务的规模,并将整个行业提升到一个新的水平。飞行记录、维护任务、部件更换历史记录、故障、维修服务通报、适航指令等可以存储在公共或私人区块链中[4-6]。
对于航空业参与者而言,共享数据是互利共赢的。共享数据可以提高网络信息的价值,也可获得有价值信息数据。在航空业部署分散系统可能有以下参与者:制造商(Original Equipment Manufacturer,OEM)、航空公司、维护、维修和大修(Maintenance Repair and Overhaul,MRO)或专业第三方、航空管理局(Civil Aviation Authority,CAA)、零件供应商。所有这些成员都可以相互交互(表1)。
表1 参与者之间的互动
因为“智能合约”存储在区块中,区块链中所有语言脚本都是可执行的。这些数字合同就像是负责处理操作/数据事务的可信第三方。但是,它不是参与第三方,而是分布在网络中的一段代码,可以自动执行某些任务。这些程序不是人为控制的,而是由网络中所有成员事先拟定智能合约中的条款和条件。
考虑区块链网络中智能合约应用的示例:某个型号的飞机必须每飞行200 h 必须进行某一项目的维护检查。飞行和维护记录都存储在区块链中。如果及时进行维护检查,飞机状态将保持“完好可飞”,否则其状态将变为“地面定期维护”。自动执行的逻辑操作将被编码在智能合约中,任何人都无法更改。这项措施将防止飞机在维修任务期间执行飞行任务。
选择区块链解决方案似乎增加了成本,但对航空公司、制造商以及乘客来说都是益处颇多。鉴于空中新飞机的数量呈指数级增长,获得客户的信任是航空公司一个持续的目标。使用区块链技术方案的公司将更好地跟踪其流程,改进其活动,并为其客户提供更可靠的服务。因此,安全事故的数量将减少,而收入将大幅增长。
创建区块链应用程序的方法包括以下步骤:
(1)第一步是使用Spyder 软件(可通过Anaconda 平台获得)设置Python 开发环境。
(2)第二步是组织文件结构,包括:①3 个python 文件,每个节点对应一个脚本,对应于网络中涉及的各方。每个脚本仅通过运行应用程序的端口不同于其他脚本;②包含节点地址列表的json 文件;③1 个json 文件,包含5 个关键元素(“FlightHours”“Landings”“AircraftEfficiencyStatus”“StartMaintenanceTask”“End-MaintenanceTask”),每次在区块链中记录飞机事件时都需要这些元素。当前软件是为2 个飞机事件开发的:①飞行事件,指飞机刚刚完成一次飞行,其寿命周期的一些相关信息可添加到区块链中;②维修事件,指飞机刚刚开始或结束维修任务。
(3)第三步是开发具有以下结构的主脚本:①导入必要的库;②构建区块链类;③创建web 应用程序;④分散区块链;⑤运行应用程序和结果。
在基于面向对象编程(Object Oriented Programming,OOP)概念创建计算机程序的过程中构建区块链类。为了定义执行区块链类时应该发生什么,重写了构造函数来初始化对象的状态。因此,注册了若干实例的属性,如未来块的空列表、未来飞机事件的空列表和网络节点的空列表。此外,在构造函数中称为“create_block”函数,负责创建创世纪块。
构造函数中调用的“create_block”函数定义如下:该函数有两个参数:nonce,这是一个先前通过解决加密难题确定的数字,以及前一个块的哈希值。该函数获取所有信息:当前索引、前一块的哈希、预定的nonce 和飞机事件列表,将它们转换并连接成一个字符串,在“Haslib”库中的SHA256 加密哈希函数的帮助下对其进行编码并将其转换为唯一的十六进制哈希,这样就创建了每个块的哈希值(图2)。
图2 创建块进程
区块应当按照以下格式返回(图3)。区块链中的主要安全层之一是通过将前一块的哈希存储在当前块中,从而提供任意2 个连续块之间的连接。
图3 区块的格式
如上所述,区块链系统包括所谓的“工作证明”以防止攻击,它包括解决计算难题。这个过程也被称为“挖矿”。
在开发的区块链中,工作证明函数将前一个区块作为参数。然后,在“while”循环中,nonce 与索引、前一个块的哈希和飞机事件列表放在一起,并生成十六进制哈希,就像在“create_block”函数中一样。为了验证nonce,得到的十六进制哈希必须以3 个0 开始。否则,迭代将继续,nonce 将递增,直到满足条件为止。目标是在多次迭代后找出正确的“nonce”,它将对应于一个前3 位为0 的哈希值。此外,还定义了一个“is_chain_valid”函数,以便在链中循环并验证当前块的上一个哈希值是否等于上一个块的哈希值。除此验证外,该函数还将检查每个块的哈希值,以确保它以3 个0 开始,作为区块链一致性协议的一部分。
区块链类中的另一个重要方法是“add_aircraftEvent”函数,该函数包含5 个参数:“FlightHours”“Landings”“AircraftEfficiencyStatus”“StartMaintenanceTask”“EndMaintenanceTask”(图4)。此函数旨在收集用户输入,处理并将其附加到AircraftEvents 列表中,然后一起添加到未来块中。
图4 飞机事件列表格式
一方面,目的是在跟踪飞机寿命的过程中获得两个最相关的参数:飞行小时数和起落次数。显然,在实际产品区块链应用中应收集更多参数,以便更好地跟踪飞机使用情况。另一方面,飞机的寿命也受到维修方式的影响。在航空工业中,准确的时间线维修记录是至关重要的。为此,又收集了2 个参数。当用户开始维修操作时,将使用“StartMaintenanceTask”字段添加到飞机事件列表中。类似的,结束维护操作时,将通过“EndMaintenanceTask”字段创建一个新事件来完成维修记录。第五个参数表示飞机状态(有效/无效)。
区块链类开发的下一个核心是包含共识算法,这是一种可确保所有节点在任何时候都包含相同链的算法。每当添加新块时,分散网络中的所有其他节点都将使用相同的链进行更新。这是区块链应用的基本原则之一。共识函数将在分散网络中的所有节点之间循环,检查每条链,找出最长的链,并在包含比最长链短的链的任何节点中,用最长的链替换该链。
在航空领域,数据量呈指数级增长,细节可以决定飞行的安全。区块链技术是航空业的解决方案,将彻底改变确保资产可追溯性的方式。航空业引入区块链技术,不仅可以提高安全性,也是建立一种新的商业模式的尝试,让航空公司获得客户更多的信任同时也增强透明度。因此,传统的数据管理方法不再是航空业的最优选择。本文介绍了一种利用区块链技术存储和管理航空维修记录的新方法。分析了区块链技术对可能涉及的组织的影响。作为概念证明,搭建使用Python 编程语言开发区块链的架构,以展示区块链功能及其在航空行业的实用性。