基于区块链的航空器维修任务发布系统研究(论文,附完整代码)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26906345/article/details/82965760

基于区块链的航空器维修任务发布系统研究


摘要:民航是国家重要战略产业。由于民航业务的隐私和可靠性,近年来各项民航服务系统一直蓬勃发展。其中航空器维修系统是现代民航体系重要的一部分。
特别是,基于密码学的数字货币系统比特币对个人交易高度公开透明。换句话说,任何人都可以通过区块链访问交易内容。另外,就匿名交易而言,比特币的交易是难以追查的。
由于比特币地址的假名和区块链的安全性,这与部分民航业务要求相一致。本文利用环形签名算法提出了一种基于区块链的航空器维修任务发布协议。这些要求可以满足信息安全,个人可验证性,资格,完整性,唯一性,和鲁棒性。
为了证明协议的可行性。该设计通过PHP和JavaScript编程语言实现了一个精细的航空器维修任务发布软件。

关键字:民航;航空器;维修;区块链;

Blockchain-Based Aircraft Maintenance Task Release System

Abstract:Civil aviation is an important national strategic industry. Due to the privacy and reliability of the civil aviation business, various civil aviation service systems have been flourishing in recent years. The aircraft maintenance system is an important part of the modern civil aviation system.
In particular, Bitcoin, a cryptographic-based digital currency system, is highly transparent to individual transactions. In other words, anyone can access transaction content via a blockchain. In addition, Bitcoin transactions are difficult to track for anonymous transactions.
Due to the pseudonym of the Bitcoin address and the security of the blockchain, this is consistent with the requirements of some civil aviation businesses. In this paper, a blockchain-based aircraft maintenance task release protocol is proposed using the ring signature algorithm. These requirements can satisfy information security, personal verifiability, eligibility, integrity, uniqueness, and robustness.
In order to prove the feasibility of the agreement. The design implements a sophisticated aircraft maintenance task release software through the PHP and JavaScript programming languages.

Keywords:Civil Aviation; Aircraft; Maintenance; Blockchain;

  1. 引言
    1.1研究背景
    机务维修是民航业可持续健康发展的基石,是保持和提高航空器安全运行的必要条件。随着我国民航业的发展和航空公司机队规模迅速扩大,机务维修人员工作任务和压力正在持续加大,机务维修不安全事件发生的起数也在逐年攀升。统计资料显示,50%的航班延误,50%的航班取消均与机务维修不安全事件有关。机务维修活动是复杂的系统工程,涉及到人员、设备工具、生产环境、自然环境和组织管理等诸多相互影响的因素,其错综复杂关系决定了维修不安全事件具有多因素耦合特征。因此,在分析机务维修不安全事件发生机制时,需要从复杂系统耦合特性上进行探索,以便科学有效控制或规避不安全事件发生。
    机务维修生产控制系统是基于计算机软件技术的软件系统,自计算机诞生起就得到人们的重视。该系统支持航空器制造商,航空公司及维修厂商的的全功能维修生产控制管理,对整个操作进行记录和统计。与传统维修生产控制相比,软件系统是一个更加经济的体系,可以提高航空企业维修效率和成果。
    机务维修生产控制系统主要依靠互联网平台。软件系统的关键挑战是它可能导致的重大安全风险。为了降低风险,在过去40年中,已经广泛提出了与授权、入侵检测系统、无线传感网、异常检测、防火墙、密码术等有关的各种保障措施及协议。此外,已发布的协议还实现了多种技术,如盲签名,环签名,同态加密,混合网络,零知识证明等。特别是数字货币的应用现在已经逐渐成熟起来。
    基于参与者的共同安全需求,本文提出了基于区块链的协议,该协议与机务维修生产控制系统安全,可验证性,合格性,完整性,唯一性,和鲁棒性的优先级相关联。
    一个航空器维修区块链软件也被用来验证这个协议的可行性,通过实现一个真实的维修计划,任务发布网站,允许员工接收维修任务和查看结果。
    1.2维修生产控制系统
    1.2.1相关工作
    国外典型航空公司机务维修企业大多使用企业资源计划系统(ERP)。通过ERP系统把航空维修中的工程技术管理、维修生产管理、质量控制管理、航材管理、人力资源管理和财务管理等信息集成起来,从而实现信息的高度共享,能使航空公司在拥有几百架飞机、多机种和跨地区的大范围营运时,机务维修仍能够运作自如,确保了飞行安全,并且还使公司的生产效率和管理水平得到了大大提高。
    多年前,我国各航空公司的决策层已经看到了企业信息化的巨大经济效益和社会效益,重视信息技术在航空集团的应用和发展,积极开展企业信息化建设,在机务维修系统中进行了卓有成效的实践。
    1998年4月份,“西南航空飞机维修工程系统”正式立项并组建领导小组和项目组,开始系统建设工作。该系统的建设,最终选择了在引进瑞典INTENTIA软件公司的航空版ERP产品MOVEX AEMation的基础上进行二次开发的方案,这是国内首次在航空公司飞机维修业务领域实施ERP。2003年通过一期验收,在立项初期提出的部分问题得到了解决,遗留问题将通过后续的二期建设得到全面解决。
    2002年9月4日,在民航总局规划科技司的主持下,由清华大学、北京航空航天大学的教授和民航总局航安办、适航司及各航空公司的专家们组成鉴定委员会,对由民航总局航空安全技术中心开发的中国新华航空公司机务维修信息系统进行了技术鉴定。该系统被认为是当时国内第一家具有自主知识产权的机务维修信息系统。
    从上世纪九十年代中期开始,中国南方航空公司非常重视信息化建设。公司在1996年引进了具有维修生产管理、附件管理、航材管理等功能的管理信息系统(计划管理I),在1998年至2002年,投资建设具有资料数字化模块、工作流程标准化模块、工卡/工作包自动化功能模块、维修方案管理功能模块、适航管理模块等功能的飞机维修标准数字化管理系统(TDMS)。2000年至2002年,公司研发了具有自主知识产权的飞机远程诊断实时跟踪系统(ACRDRTS)。
    2003年,南方航空公司组织近30人的队伍与美国优利公司共同开发机务航材管理系统,形成南航机务工程管理、维修、维修记录的存贮的信息化管理系统。并从2005年自主研发了维修工程信息系统,到2010年自主研发了机务综合信息管理系统,此系统功能包括机队构型、飞机构型、在机部件清单、飞行时间、航线故障、拆换件、EO管理、维修方案管理、定检组包、MEL管理、保留项目、航材计划管理等。
    1.2.2相关软件
    IBM公司,其MAXIMO产品(原属于MRO公司,于2006年与IBM公司合并)以工单的创建、审批、执行、关闭为主线,合理、优化地安排相关的人、财、物资源,将传统的被动检修转变为积极主动的预防性维修,与实时数据采集系统集成,可以实现预测性维修。通过跟踪记录企业全过程的维护历史活动,将维修人员的个人知识转化为企业范围的智力资本。集成的工作流与业务流程配置功能,使得用户可以方便地进行系统的授权管理和应用的客户化改造工作。东航、上航曾引进其航材管理等模块。
    Sabre公司,其Mx Control系统结合维修控制、工程管理和飞行控制,根据每天收集的飞行小时和循环数,自动化计算维修需求。用户包括大型航空公司(美国西部航空)和较小型航空公司(如加勒比海太阳航空公司)。而东航曾引进其AOC系统和Air Flite系统来进行航线规划和运行控制。
    Sap公司,其机务管理系统包含航材管理模块、维修管理模块、工程管理模块、质量管理模块等,实现飞机及部附件整个生命周期的监控,保证飞机的可适航性。国航从2005年起陆续引起其部分模块进行机务维修的生产管理。
    但是这一些国外公司的机务产品,据调查,在目前应用中并没有达到预期的效果。
    市场环境差别明显国内航空市场受到航空管理当局的严格控制,维修程序手册都需要经过民航局的审批。而对于如东航、南航等国内大航空公司来说,其分子公司遍布全中国,涉及程序审批的民航局也有多个,如华东民航局、华北民航局、西南民航局等,制定的程序流程也可能有差异,同一家航空公司名下的分子公司在使用同一套系统时,管理流程也有可能不一致,因此国外产品提供的固定流程往往无法在现实中满足。
    单上海地区机务现正在使用的机务维修信息管理系统达十几个之多,由于各系统开发相对分散、独立存在、操作不统一,互相关联程度较差,很多数据不能共享,导致数据繁杂、工作流程不畅、工作效率低、维护难度加大、维护成本过高,并且许多业务方面的需求还无法满足。对内部系统的使用者来说,各不相同的显示页面以及复杂繁琐的操作指令,不仅会降低处理业务的效率、加大了操作失误的可能性,也在一定程度上提高了培训、监控等方面的成本,并且不利于统计数据进而有效分析。而其它分子公司不光存在以上问题,更重要的是既要使用本地的老系统,又要使用上海总部的系统,致使使用人员的工作量增大,给工作带来很大的不便。
    总体来说,目前机务系统存在以下问题:
    1)系统负荷接近极限。
    由于各分子公司都在使用上海现有的系统,致使系统用户人数大幅增加,业务数据量也随之剧增,系统无力承载,故障频现,系统一度接近崩溃边缘。
    2)系统功能亟待加强。
    当前使用的核心系统已运行近十年,由于管理模式和工作流程的改变,致使老旧系统无法满足目前和未来工作的需要,尤其是维修计划控制功能无法实现。
    3)系统数据共享困难。
    由于各系统开发相对分散、独立存在,系统之间的关联度较差,致使数据不能有效的共享,并且不利于统计数据,从而进行有效分析。
    4)系统操作纷繁复杂。
    由于现行使用的系统比较多,使用者在使用时需要登录不同的系统,各不相同的显示页面以及复杂的操作指令,不仅会降低处理业务的效率、加大了操作失误的可能性,也在一定程度上提高了培训、维护等方面的成本。
    通过先进的机务维修信息管理平台提高资源的使用效率、减少重复投资、降低维修成本、合理配置资源、提高工作效率,充分发挥规模优势。
    1.3区块链
    1.3.1介绍
    2008年,比特币S.Nakamoto的创始人发表了一篇文章,指定一个基于对等网络的加密货币系统。比特币改变了现金支付系统的传统方式。随着比特币的发展,区块链技术引起了人们的关注。区块链是公共分类帐,所有个人都可以将最新的分类帐同步到本地,并且他们没有权限篡改公共分类帐的内容。为了区分各种区块链,有两种区块链的分类。一个是根据网络节点对验证过程的要求分类的。
    •无权区块链:在验证过程中不需要中央服务或权限进行计算。通常,这个计算过程发生在任何人的设备上。
    •允许区块链:有一个中央网络用于确认验证节点。
    另一个是通过区块链的宣传进行分类的。
    •公开区块链:世界上任何人都可以阅读,下载,广播区块链交易。
    •私人区块链:区块链只属于个人,政府或非公开组织。
    近年来,比特币和以太坊越来越受欢迎。他们都是无许可的公共区块链。
    对于比特币,它有2个子网络,比特币网络和测试网络。测试网是比特币网络的测试环境。在这个网络中,硬币没有任何价值。它可以自由使用并从Faucet(水龙头)获得测试硬币。
    以太坊是一种类似比特币的数字货币。它也是一套完整的分散式应用平台。在使用以太坊进行数字货币交易时,任何人都可以在以太坊上发布和使用分散的应用程序。以太坊的优势在于它为分散式应用程序开发和部署提供了完整的工具链。通过使用智能合约,它使基于块链的应用程序开发非常方便。
    1.3.2 特点
    自区块链诞生以来,区块链具有分权,分散信任,共同维护,数据可靠性,隐私保护等特性。它受到了前所未有的关注,其发展非常迅速。
    •分散化:区块链分散。没有中央计算设备来存储交易分类账。区块链的每个节点都存储相同的副本。
    •很难伪造:由于其分散性,每个区块都应该分布到世界各地的每个节点。
    •可跟踪交易:区块链中的每个交易都是开放且透明的。每个交易细节都包含发件人地址和收件人地址,任何人都可以跟踪交易。
    在本文中,我们提出了一个基于比特币的协议。对于每笔交易,每个人都可以从区块链下载信息。在比特币中,每个比特币地址与其个人身份无关。因此区块链对任何人都是匿名的,并且具有透明交易,这对于使用此协议的维修任务下发属性具有相同的要求。
    1.3.3实现机制
    区块链由一组基于点对点网络的节点组成。对于每个节点,它通过执行一致性算法来维护数据的一致性。为了指定区块链的机制,比特币是区块链的典型代表。要指定区块链,我们应该有一个区块的基本概念。该块由块头和块的主要部分组成,包括序列化的事务原始块。事务任务管理包含唯一标识符(TxID),它是事务的散列值。每个块上所有事务的标识值构成Merkel树的每个叶节点。
在这里插入图片描述
在这里插入图片描述
图1.1 环指令

通过将前一个块TxID存储到下一个块中,所有节点都与块头链接,该块头也称为区块链。在创建新的区块时,区块链将使用一致性算法来创建新的交易唯一标识符。一致性算法生成一个新块,通过计算块头的散列值生成一个新块。在大多数节点接受新块之后,它将被添加到区块链中。
1.4论文结构
本论文共5章。
第1章介绍了相关技术的问题和文献回顾。
第2章是问题的方法论。本章详细介绍了电子任务接收方案的特性和要求,以及协议中使用的其他技术或算法。
第3章是本文的重中之重。提议的协议表明了实施的整个设计方案。
第4章是协议的实现。通过创建名为航空维修区块链的应用程序,可以测试任何属性。本章是用软件工程的方法编写的。
第5章是提议的协议和实施的结论。这部分讨论了未来的工作。

  1. 方法
    2.1 维修生产控制系统属性
    近30年来,越来越多的维修生产控制系统已经发布。维修生产控制系统的主要特性包括以下几点。
    安全:对访问系统的用户进行授权管理,保证数据不被篡改。
    可靠:只有合法员工才可以参加接收任务活动。
    及时:维修任务及时下发到各个员工。
    准确性/完整性:每项任务都应该正确记录。
    提高工作效率:数据区块可共享,各个区域的维修单位,各个系统成体系。
    减少人为差错:任何人在任务结束时都不能影响或修改最终的任务完成结果。
    公平:没有任何东西可以影响任务接收的结果。如果系统泄漏了接收结果,则该事件可能被定义为不公平。
    2.2区块链
    2.2.1生成比特币地址
    要在区块链上广播消息,参与者需要一个比特币地址。通过使用SHA256,RIPEMD160哈希和Base58编码,可以生成比特币地址。
    1.通过椭圆曲线数字签名算法生成私钥,通常命名为secp256k1。比特币私钥的大小是256位。
    2.使用DER格式从比特币私钥(x,y)生成比特币公钥。
    3.通过生成SHA256和RIPEMD160算法将比特币公钥作为PKhash160散列到hash160中。
    4.根据表2.1在PKhash160的头部添加版本的前缀。定义公钥指纹的中间散列值=prefix+PKhash160,它也被命名为指纹。
    5.定义Sha256(Sha256(指纹))作为校验位d。在指纹末尾添加d。
    6.通过使用Base65编码算法编码指纹+d生成最终的比特币地址。定义地址=Base65(指纹+d)作为最终的比特币地址。
区块 前缀
BITCOIN ‘00’
TEXTNET ‘08’

表2.1 不同区块的版本前缀
2.2.2生成比特币地址
讨论区块链的OP返回。我们应该首先考虑交易。对于比特币上的每笔交易,它包含输入脚本和输出脚本,如图2.2所示。该图显示了交易参与者Alice和Bob之间的交易。下面是Alice和Bob之间交易的例子,在testnet的区块链上引用了“haha”。将Alice的比特币地址定义为mxLqfJvTTEojWVZVTanEcXs1kXaBkdoqfX,并将Bob的比特币地址定义为n4Kc1AwFos3aZRvD3Tc9imzeMpm8E9DEUr。
Alice用一个事务的输入创建事务Y.为了确认区块链中的交易Y,输入脚本[0]应该引用交易X.交易Y的输出脚本包含2个部分。一个是交易Y的签名,由Alice SK的私钥签名。另一个是OP RETURN代码,它是“haha”的参考。OP RETURN是一个没有循环的基于堆栈的脚本。由于它是在比特币协议中定义的,它可以在交易中存储多达80个字节。锁定时间t意味着事务Y不应该放在时间t之前。
为了在t之前确认此交易,交易创建者Alice应向采矿者支付采矿费。矿工可以使用PoW(Proof of Work)算法找到包含Verifypk(σ)的块。最后,鲍勃将收到参考“haha”的钱。
此外,为了说明这个例子,这个例子已经在testnet的网络中进行过。细节可以列在表中。
从表2.2,我们可以看到output-script[0]表示OP RETURN是1634230632.要解码OP RETURN,我们可以使用hex2bin()算法将其转换为字符。

信息 内容
交易ID 025e4fd916832c4028b1bcc446c8a41c10798fbpm49793ce245ccf700e621d4f
交易地址(输入) mprsHi9HKpn9bH14ZZV7YC7mxdRJ6wws7r
输入脚本(签名) 3045022100b7a6e8aa5cd553e4c21ad68e851c140c3e87d3eefc4d0a 3045022100ae906a357c927d170f19710aca1de3c5ebcbe2c60fe9 626b24ed876d7f23fad40220354d0b0c254679817dpmc98f4fcfa 33be48pmf74c77a2e0b4db2046747cb2b3d0102ce592b293c66 88ca587dpm59780acca8da8215d4d3261db338e9pm39fc46ae19
输出脚本 OP RETURN 1634230632
交易地址(输出) n4Kc1AwFos3aZRvD3Tc9imzeMpm8E9DEUr
交易地址(输入) mprsHi9HKpn9bH14ZZV7YC7mxdRJ6wws7r
输出脚本(公钥哈希) OP DUP OP HASH160 fa25611aeed75a33a9fc8cc83d2039059c37d837 OP EQUALVERIFY OP CHECKSIG
最终验证结果数据 0100000001cfbd41e842b9f6752b8a76e4803ded991bdbf0c1ec193e5add bfc8467c1b6d1c010000006b483045022100ae906a357c927d170f19710a ca1de3c5ebcbe2c60fe9626b24ed876d7f23fad40220354d0b0c25467981 7dpmc98f4fcfa33be48pmf74c77a2e0b4db2046747cb2b3d012102ce592b 293c6688ca587dpm59780acca8da8215d4d3261db338e9pm39fc46ae19ffffffff020000000000000000066a046861686120e0b201000000001976a9 14fa25611aeed75a33a9fc8cc83d2039059c37d83788ac00000000

表2.2 比特币测试网交易的一个例子
现在,有了签名,公钥和脚本,就可以运行这个脚本来验证交易是否有效。
在这个例子中,通过解码OP RETURN 1634230632,我们可以得到消息“haha”。OP RETURN可以存储消息。在这个实现中,我们用它来存储环签名和维修计划ID。
3. 需求分析
3.1系统的业务分析
提出的协议包括三个实体:员工,任务管理,计划管理和比特币地址池。
员工:员工应该是一套名单。对于每一个相关部门员工都可以被提交为维修任务接收方。
任务:任务可以是一组列表。
任务管理机关:员工应该在接收任务前进行登记,并将他们的公共密钥(PKI)和比特币地址保存到这个系统中,系统将其传送到数据库。对于任务管理,它为员工提供任务。
计划管理机关:计划管理负责清点计划处理情况。计划管理有自己的比特币地址。当计划发布结束时,计划管理应开始处理并将结果转送给任务分发系统。
比特币地址池:比特币地址池是使用ECC算法随机地从计划管理系统生成的所有比特币地址的列表。每个地址的私钥将存储在计划管理系统中。
3.2系统需求分析
3.2.1大纲
整个协议开发由七个连续阶段组成,每个阶段由不同的参与者执行。
准备阶段:首先,计划管理应该首先建立一个新的任务接收项目,然后将比特币地址作为其私钥存储到计划管理系统中。
第一阶段注册阶段:由任务管理进行人员注册。员工和有维修资格在认证后进行任务接收。随机注册码将通过电子邮件发送给参与者作为任务管理的链接。
第二次注册阶段:一旦参与者点击任务管理发送的随机注册码链接,可以使用密钥对工具或本地RSA工具生成公钥和私钥。新生成的公钥应该存储在系统中,而私钥可以私下保存。
发布阶段:在任务接收截止日期,员工的每一个公钥都将在监督下收集。只要点击了开始任务接收按钮,任务管理就不会再接受新的请求。
接收任务阶段:当员工用自己的私钥签署有利的维修计划时,他们将获得一个独特的环形签名,并将其传播到区块链。
理货阶段:理货阶段严格受监督,人们可以进入理货页面查看或任务接收。
验证阶段:为了监控任务接收结果的有效性,计划管理交易记录在区块链上公开。
3.2.2准备阶段
这个阶段的细节可以按照如下顺序来描述。
1.计划管理将自己的比特币私钥保存到系统中。
2.系统将从他的比特币私人密钥生成计划管理的比特币地址。
3.计划管理创建一个新的任务接收项目,其任务接收ID,标题,以及该任务接收项目的描述。
4.计划管理系统会自动生成n个比特币地址(A1,A2…An)作为比特币地址池。
3.2.3第一阶段注册阶段
这个阶段的细节可以按照如下顺序来描述。
1.任务管理核实维修计划人员的身份,将其姓名,个人描述并将其保存到任务管理系统中。
2.任务管理将生成并给予他的维修计划身份。
3.任务管理验证员工的身份并询问员工的电子邮件地址,然后向他发送一封带有随机注册码链接的电子邮件作为LKi,以避免多次注册。
4.LKi随机生成,与员工姓名和电子邮件地址没有任何关系。

在这里插入图片描述
图3.1拟议议定书(主要阶段)

3.2.4第二次注册阶段
这个阶段的细节可以按照如下顺序来描述。
1.员工打开注册链接LKi。
2.员工生成他的密钥对(SKi,PKi)。
3.员工将他的公钥PKi保存到系统中。
3.2.5发布阶段
这个阶段的细节可以按照如下顺序来描述。
1.在任务接收截止日期,计划管理决定开始任务接收,这意味着公钥已经被确认,任务管理不应该接受任何注册请求。
2.计划管理在他自己的比特币账户中创建k BTC。
3.计划管理支付固定数量的比特币k/n作为每个Ai的任务接收费用,例如0.0001 BTC。(任务接收人任务接收后,任务接收费将发回计划管理)
3.2.6接收任务阶段
这个阶段的细节可以按照如下顺序来描述。
1.员工选择维修计划他任务接收和当前任务接收ID。
2.任务管理将公钥集(PK1,PK2,PK3…PKn)返回给选举人。
3.选举人使用他的私钥SKi和所有公钥PK将候选者TASK的签名签名为σ(TASK,SKi,(PK1,PK2,PK3…PKn))。系统同时保存(σ,sha256(σ))的集合。
4.员工选择比特币地址Ai从比特币地址池发布,计划管理将该地址的私钥SKAi返回给员工。
5.员工支付A到E的地址A计划管理的所有余额以及承诺的回归(sha256(σ(TASK,SKi,(PK1,PK2,PK3…PKn))),TASK,Li)。
3.2.6理货阶段
这个阶段的细节可以按照如下顺序来描述。
1.系统自动返回所有(σ,sha256(σ))和所有公钥PK的集合。
2.系统自动获取计划管理比特币地址A计划管理中的所有交易。
3.系统从每次交易中提取OP RETURN表单并验证签名σ的有效性。
4.系统统计每笔有效交易并向维修计划添加1。
3.2.7验证阶段
这个阶段的细节可以按照如下顺序来描述。
1.系统自动返回所有公钥(PK1,PK2,PK3…PKn)。
2.对于每个员工,他可以使用一组所有公钥(PK1,PK2,PK3…PKn),环签名σ,候选TASK来验证他的任务接收。
3.员工可以使用交易ID来获取区块链中的承诺,以验证签名是否以正确的方式发布。

  1. 实现
    4.1规格说明
    任务接收系统使用上述名为航空器维修区块链的协议进行设计。该系统将具有安全,个人验证,资格等特性。在开发该项目时,选择迭代和增量开发作为软件开发过程模型。为了实施,系统应该考虑电子任务接收的基本模型和属性。一般来说,允许员工和维修计划在系统中注册。为了节省采矿费用,我们建议计划管理使用testnet网络来节省采矿费用。员工可以在系统中任务接收,任何人都可以验证任务接收结果。政府可以分为两个机构,计划发布机构和任务创建机关。系统应具有如下模型。
    1.用户模型是登录的逻辑。
    2.任务管理模型是包括其API在内的任务创建的模型。
    3.计划管理模型是包括API在内的计划发布模型。
    4.任务接收模式是员工登记和任务接收的模式。
    5.验证模型是验证环签名的模型。
    6.理货模型是任务接收的重要组成部分,任何人都可以实时计算来自区块链的任务接收结果。
    4.2功能要求
    要建立这样一个系统,功能和非功能需求应该建立如下:
    功能要求
    1.1页面必须分解为登录页面,计划管理页面,任务管理页面,公共页面。
    1.2服务器必须为不同的用户角色显示不同的页面。
    1.3服务器必须拥有对不同用户角色的权限控制。
    1.4用户角色应该分为3个角色:员工,计划发布结构,任务发布机构。
    公共页面
    2.1服务器必须有一个公共API来公开某些内容,例如员工PK的公钥,选举权的比特币地址,计划管理以及(σ,sha256(σ))的集合。
    2.2验证页面必须公开并根据协议进行监督。
    2.3根据协议,统计页面必须公开并受到监督。
    2.4任务接收页面必须公开。
    2.5任务接收页面必须能够使用环签名算法来签署消息。
    2.6任务接收页必须能够与计划管理的区块链账户地址进行交易,以在区块链上广播消息。
    2.7验证页面可以从事务id输入选择器中获取OP RETURN代码。
    2.8验证页面可以解码OP RETURN代码对维修计划和签名的承诺。
    2.9验证页面必须能够通过公共API从区块链OP RETURN代码中获取sha256(σ)中的签名σ。
    2.10验证页面必须能够验证环签名σ的有效性。
    2.11验证页面必须能够验证所有公钥的完整性。
    2.12验证页应该能够验证签名和签名的哈希值之间的正确性(σ,sha256(σ))。
    2.13验证页面可以选择一个任务接收项目,然后重定向到相应的验证页面。
    2.14理货页面必须能够获取计划管理区块链账户的所有交易。
    2.15理货页面必须能够通过公共API从区块链OP RETURN代码中获取sha256(σ)中的签名σ。
    2.16统计页面可以解码OP RETURN代码对维修计划和签名的承诺。
    2.17统计页面应该能够验证签名和签名的散列值之间的正确性(σ,sha256(σ))。
    2.18理货页面可以选择一个任务接收项目,然后重定向到其相应的理货页面。
    2.19理货页面必须能够验证环签名σ的有效性。
    2.20理货页面必须能够实时记录和显示任务接收结果。
    注册页面
    3.1注册页面必须验证链接代码的有效性,如果无效,则显示禁止页面。
    3.2注册页面可以使用RSA提供密钥对生成器,并在前端运行。
    3.3注册页面应该将每个员工的公钥存入注册中心系统。
    3.4如果任务接收未开始,注册页面可以编辑公钥。
    3.5如果员工填写了公钥,注册页面可以显示任务接收日期。
    3.6注册页面可以显示该任务接收项目的描述。
    任务管理页面
    4.1 任务管理系统必须建立一个任务管理帐户,用于向员工发送电子邮件。
    4.2 任务管理系统必须有一个数据库来存储所有的链接代码。
    4.3 任务管理系统必须能够为维修计划添加他的名字和描述。
    4.4 任务管理系统必须能够编辑或删除维修计划。
    4.5 任务管理系统必须能够使用随机算法生成链接代码。
    4.6 任务管理系统必须为员工提供一个API来获取所有维修计划的ID,姓名和描述。
    计划管理页面
    5.1 计划管理系统应该能够创建一个任务接收项目,其标题和描述。
    5.1 计划管理系统应该能够编辑或删除任务接收项目。
    5.2 计划管理系统可以查看所有维修计划。
    5.3 计划管理系统必须能够存储计划管理的区块链账户私钥。
    5.4 计划管理系统必须能够将计划管理的区块链账户私钥转换为计划管理的比特币地址。
    5.5 计划管理系统可以设置不同的区块链网络,比如比特币(BTC)和比特币测试网(TESTNET)。
    5.6 计划管理系统必须提供一个API让员工从比特币地址池获取私钥。
    5.7 计划管理系统必须能够随机地在比特币地址池中创建n个比特币地址及其私钥。
    5.8 计划管理系统必须能够在区块链网络上进行比特币地址池地址与其自己的比特币地址之间的交易。
    5.9 计划管理系统必须能够获取计划管理区块链账户的所有交易。
    非功能性要求
    6.1后端应该使用MVC框架在PHP中开发。
    6.2前端应该用Javascript开发。
    6.3任务接收页面的响应时间必须小于300ms。
    6.4公共API的响应时间必须小于300ms。
    6.5任务接收页面的响应时间必须小于300ms。
    6.6系统可以使用第三方API在区块链上进行交易。
    6.7理货系统应足够稳定,以显示正确的结果。
    6.8任务接收系统应足够稳定,可以向区块链广播承诺。
    6.9系统应该使用关系数据库来存储任务接收项目的信息,比特币地址,维修计划和员工。
    6.10系统应该使用不同的浏览器和OS系统进行测试。
    6.11公共页面应该有一个友好的用户体验。
    4.3航空器维修区块链的模型和第三方库
    4.3.1用户模型
    根据协议,用户可以分解为员工,维修计划,任务管理,计划管理。当计划管理或任务管理想要登录到系统时,他可以使用他的用户名和密码进入系统。如果密码正确,系统将检查密码。如果它是正确的,它们将根据用户的角色进入不同的页面。如果密码不匹配,系统会提示。
    通过使用框架的中间件,特权控制可以很容易地实现。中间件允许开发人员在加载框架之后但在运行应用程序控制器之前注入特定操作。为了判断用户角色,系统应该从容器中获取用户角色。如果用户角色不是计划管理用户的角色ID,系统将不允许用户查看。
    以下是计划管理和任务管理的登录用户界面设计。对于员工,他们不需要登录并键入URL来进入该页面。
在这里插入图片描述
图4.1登录界面

4.3.2 任务管理模型
对于注册机构,他们登录系统并为员工和维修计划提供服务。因此,系统必须满足这些基本特征。
•添加一个员工与他的电子邮件地址,并发送给他一封电子邮件。
•添加一个维修计划名字,描述和图片。
•编辑或删除维修计划。
发送电子邮件时,框架将首先加载包括任务管理服务器属性的.env配置属性。然后系统使用名为Swift Mailer的第三方依赖关系与任务管理服务器建立连接并将电子邮件发送到目标电子邮件地址。

在这里插入图片描述
图4.2 任务管理界面

要生成代码链接,代码必须是随机的,并且与员工身份无关。代码链接背后的技术是使用随机算法。

在这里插入图片描述
图4.3 新增任务界面

4.3.3 计划管理模型
对于计划管理机构,该系统必须满足这些基本特征。
•仪表板显示计划管理区块链账户,区块链网络和任务接收信息的余额。
•检查从比特币地址池生成的区块链账户余额。
•支付所有或单个区块链账户地址的任务接收费用。
•使用标题,说明和图像创建一个任务接收事件。
•编辑或删除任务接收事件。
•开始或停止任务接收事件。
•查看任务接收事件的维修计划。
•设置计划管理区块链私钥的设置页面。
当计划管理创建任务接收项目时,系统将使用依存关系比特币ECDSA创建输入数量为n的比特币地址。

在这里插入图片描述
图4.4 计划管理界面

计划管理可以检查他之前生成的区块链账户地址池(比特币地址池)的余额。为了在两个比特币地址之间进行交易,系统使用名为BitCotinJS的第三方Javascript库创建序列化为十六进制值的交易。通过使用第三方API在区块链上广播十六进制值,即进行真正的交易。

在这里插入图片描述
图4.5 比特币地址清单

以下是关于如何在比特币测试网上从源地址到目的地址进行交易的代码示例。

在这里插入图片描述
图4.6 计划发布费用接口

4.3.4计划模型
当员工在注册机构注册时,他必须从他的电子邮件中打开代码链接。一旦他打开链接,系统将执行逻辑判断,将他重定向到不同的页面。员工应粘贴他的公钥并将其保存到系统中。如果在任务接收日,员工应该打开链接,系统会让他任务接收。通过输入私钥并选择他任务接收的维修计划,任务接收页面将自动在区块链上广播他的任务接收。
要创建一个环签名,系统使用名为ringsignature的第三方Javascript库。该库包含有关创建环签名和使用该消息验证环签名的方法。一些关键代码可以写成如下。

在这里插入图片描述
图4.7 任务接收界面

4.3.5验证模型
当员工任务接收时,员工将获得环形签名或区块链ID作为收据。要验证任务接收是否正确计算,任务接收人应该进入验证页面。该系统提供2种方法来验证任务接收结果。
1.交易ID:它可以自动从区块链中获取维修计划ID,环形签名散列。然后它可以根据其哈希值从公共API获取环签名。
2.环签名:员工或任何人都可以输入环签名并手动选择维修计划ID。这个过程将不会与任何服务器连接。然后验证页面应该使用Javascript verfiy()函数来验证维修计划是否与环签名匹配。此外,他可以检查公钥是否与从服务器获取的API相匹配。

在这里插入图片描述
图4.8 验证接口

4.3.6理货模型
理货阶段是任务接收中最关键的部分。这个阶段必须发生在前端,以确保任何人都能实时收费。这个阶段的细节可以描述如下。
1.获取所有公钥并将其存储在本地。
2.获取计划管理的区块链账户的所有交易。
3.将OP RETURN代码的承诺解码成环签名的候选id和散列值。
4.验证每个环签名的有效性。

  1. 总结
    5.1概要
    本文主要探讨了航空器维修任务发布系统和区块链的基本概念,比特币地址算法和OP RETURN概念。后提出了一个基于区块链的协议,定义以及主要阶段的过程也已详细解释。
    整个协议开发过程也从过渡性描述软件开发的角度,比如区块链交易是如何发生的,还有一些维修生产控制系统的机理分析。
    5.2总结
    这个协议的主要优点是保证数据真实性。由于每次接收将在接收任务开始后向区块链广播。此外,由于区块链是一个分散的公共分类账,所以任务接收结果可以实时呈现并且不能由个人修改,这符合开放式审计的设计。
    选择testnet作为区块链网络,主要是免费的,比较比特币和以太坊时更容易。
    基于区块链的航空器维修区块链协议仍有很大的改进余地,如改进其透明度,在现状中履行未完成的职能,并减少公共API。

[1]付锋莉.基于“大数据+区块链”技术的共享经济模式构建研究[J/OL].科技经济市场,2018(05):63-64[2018-06-29].http://kns.cnki.net/kcms/detail/36.1122.n.20180626.1306.074.html.
[2].区块链:创新与颠覆[J].杭州金融研修学院学报,2018(06):4.
[3]汤必强. 区块链技术及其在能源互联网的应用[N]. 国家电网报,2018-06-12(008).
[4]黄俊飞,刘杰.区块链技术研究综述[J].北京邮电大学学报,2018(02):1-8.
[5]童毛弟,牛哲,陈庭强.区块链技术及其在数字货币领域的应用[J].财会月刊,2018(08):137-142.
[6]高杰.SHA256加密算法在比特币中的关键作用研究[J].纳税,2017(28):142.
[7]黄硕.RSA数字签名算法在软件加密中的应用[J].网络安全技术与应用,2018(06):37+52.
[8]张玉磊,王欢,马彦丽,刘文静,王彩芬.可证安全的传统公钥密码-无证书公钥密码异构聚合签密方案[J].电子与信息学报,2018,40(05):1079-1086.
[9]韩英帅,崔新春.基于离散对数的广义环签名算法[J].网络安全技术与应用,2017(12):48-50+60.
[10]张宪,蒋钰钊,闫莺.区块链隐私技术综述[J].信息安全研究,2017,3(11):981-989.
[11]李淑芳.航空机务维修生产控制预警系统[J].计算机工程,2005(S1):261-262+265.
[12]史亚杰,李敬.民航机务维修系统安全风险监测[J].中国安全科学学报,2009,19(11):110-116+178.
[13]苟立俊. 航空维修人为因素数据管理系统的设计与实现[D].电子科技大学,2011.
[14]崔刚.民用航空器维修中的风险管理方略探讨[J].科技创新与应用,2016(22):279.
[15]赵松松.民航航空器维修风险管理研究[J].科技资讯,2013(13):138.

完整代码
链接:https://pan.baidu.com/s/10JkScrJIy5xWM-xTywQkQQ
提取码:lt3m

猜你喜欢

转载自blog.csdn.net/qq_26906345/article/details/82965760