铁路客运私有链共识机制关键技术研究
2018-07-06周亮瑾王富章
周亮瑾,王富章
ZHOU Liang-jin, WANG Fu-zhang
(中国铁道科学研究院 研究生部,北京 100081)
(Postgraduate Department, China Academy of Railway Sciences, Beijing 100081, China)
近年来,随着铁路客运信息化建设与发展,以及数据分析、人工智能等技术的兴起,为铁路行业智能化发展打下了良好的基础。在“互联网+”大数据快速发展中,铁路客运管理对大数据服务的共享度、准确性要求日趋提高。铁路客运私有链是采用基于区块链技术构建的铁路行业的区块链,其终端节点由所有产生客运交易的终端设备构成,如售票终端、退票终端、改签终端、废票终端、检票终端、验票终端、制票终端等;各节点客运相关业务产生的各类数据,从核验、储存、传输、到实时访问,采用基于区块链技术中的共识机制组织,实现各个节点共同参与、共同治理、共同管理、共同使用客运数据,因而结合铁路客运业务环境和应用场景,研究基于区块链技术构建铁路客运私有链,将现有的客运大数据的集中授权管理架构优化为去中心的自治管理,缓解集中管理方式下存在的单点故障、集中访问瓶颈、数据不一致、效率低下等问题。因此,构建铁路客运私有链的核心是在私有链各个节点上生成客运交易数据,为保证合法数据入链这一功能的实现,需要通过区块链技术中的共识机制组织完成,结合铁路客运应用环境,进一步研究铁路客运私有链共识机制。
1 铁路客运私有链共识机制分析
1.1 区块链技术与共识机制
区块链技术具备共治、共享、去中心、防篡改、可追踪等特征,是新兴的一种互联网分布式记账技术,与依靠中心认证机构提供的结算服务来核验并处理所有交易数据的传统支付系统不同,区块链没有中心认证机构,几乎所有的完整节点都有一份公共总账的备份,这份总账可以被视为经过认证的记录[1-3]。区块链的去中心特性研究始于比特币,其交易核验与存储并不是由一个中心认证机构创造的,而是由网络中的所有节点各自独立竞争完成,即网络中的所有节点,依靠着节点间网络连接所传输的信息,最终得出同样的结果并维护同一个公共总账[4-6]。区块链的形态有公有链、联盟链和私有链,其核心区别在于访问权限的开放程度。共识机制是通过代码设计来实现信任,即确定区块链的区块构造者,以及维护全网数据一致性问题,是区块链不可或缺的内容。共识机制主要包括工作量证明机制 (Proof of Work,POW)、权益证明机制 (Proof of Stake,POS)、股份授权证明机制(Delegated Proof of Stake,DPOS) 3 种类型,需要根据区块链不同的基础链、实现应用或者商业模式选择不同的共识机制。
(1)工作量证明机制。该机制用工作结果来证明记账权归属,每个区段都有对应的哈希值,通过计算来决定对区块链区块的记账权。为争取记账权,需要加强算力,以计算出正确的哈希值。比特币的共识机制采用哈希函数 SHA256 算法,其特点包含容错性好,需要全网参与运算、资源消耗大,节点计算时效长。因此,记账权要求具有较强的节点算力,提高节点计算效率。
(2)权益证明机制。该机制采用记账权归节点权益持有量的多少表示获得记账权的大小,持有的代币越多,获得记账权的可能性越大,累积的节点余额越高。
(3)股份授权证明机制。该机制类似于董事会投票,持币者投出一定数量的节点,代理们进行核验和记账,为了激励更多人参与竞选,系统会产生少量代币作为奖励。该机制对于联盟链较为适合。
1.2 铁路客运私有链共识机制
铁路客运私有链是基于区块链技术、在铁路客运信息领域建立的适合铁路客运应用环境的一种分布式技术架构和计算范式,它利用块链式数据结构来核验和存储算法、利用节点共识机制来生成和更新数据、利用密码学来保证数据传输和访问安全。
铁路客运私有链的主要优势包括:有助于隐私信息的保护,有效实现节点交易数据分布,有利于局部信息快捷访问,弱化中心体系架构下的中心压力[7-8],提高节点交易效率。铁路客运交易私有链共识机制采用工作量证明机制,将铁路客运私有链上产生的交易数据进行核验,来保证数据的合法性和正确性,解决客运生产环境各节点记账权问题。例如,由于客票采用实名制,交易记录着用户的交易信息和实名信息,因而必须持有客运网络专用的营业执照方可办理售票交易,参与客运私有链的建立。以客票系统每日交易量为 2 000 万次为基础计算,每秒交易 231 次,考虑到 23 ∶ 00 至次日 6 ∶ 00 为业务办理低谷,则每秒办理业务 327 次,每分钟接近 2 万次。按照这样的交易办理速度,铁路客运私有链要求共识机制必须快速收敛、对立组块、迅速成链,确保铁路客运私有链高效且稳定。
2 铁路客运私有链共识机制关键技术
2.1 终端交易的独立核验
区块链技术中,交易核验是节点在网络中发布交易数据,传递至临近节点,每一个收到交易的节点首先进行交易数据核验,确保只有合法的交易数据在网络中传播,无效交易数据将会在第一个节点处被废弃。铁路客运私有链的交易核验,采用双维交易核验法进行交易核验,即区块核验和业务核验相结合的核验方式。区块核验即传统的区块链交易核验,通过采用哈希根值核验算法,确保交易节点的合法性。业务核验则是核验客运交易双方的真实性,从列车票额服务的排他性和旅客交易的唯一性 (单日、单车、单方向),确保交易的真实性。交易核验流程示意图如图1 所示。
图1 交易核验流程示意图Fig.1 Transaction verif i cation process
(1)根据各个终端办理的业务类型,按区块交易类型约定,填写交易内容,交易的语法和数据结构必须正确。记录交易的字节数小于 MAX_BLOCK_SIZE。输入节点最新区块哈希值、交易票额属性、加密后旅客属性。
(2)区块核验。保证提交交易的终端节点自身是合法节点。业务核验。对交易的交时间、票额的席位属性 (如交易时间应晚于席位占用时间,席位占用区段、日期、席别与交易记录一致等) 进行核验。旅客部分信息核验。对旅客信息的后 11 位,进行基本逻辑核验和旅客出行时间逻辑一致性核验。如果交易核验没有通过,交易数据被丢弃,否则交易数据进入一个候补区块等待入链。
(3)核验评级。记录节点最新区块产生时间与核验完毕时间的差值。在收到交易数据后,每一个节点按照接收时的顺序,为有效的新交易数据建立一个暂时存放用的内存池,并对这些交易进行独立核验。核验评级,用于辅助识别异常节点,如长时间静默节点。
2.2 私有链区块的构建
区块是构成私有链的基础结构,由各个交易节点负责产生。在一个区块建立周期内,交易被核验后,节点将这些交易添加到自己的内存池中。内存池用来暂存尚未被加入到区块的交易记录。交易节点记录核验交易的同时,继续监听网络上的交易,节点同时收集、核验、中继网络上接收道德新的交易数据,监听其他节点发现的新区块,伺机把这些交易整合到一个候选区块中。节点间通过工作量证明机制竞争获得记账权后,终端节点需要为内存池中的每笔交易分配一个优先级,并选择较高优先级的交易记录来构建候选区块。交易的优先级是由交易产生的“交易龄”决定,“交易龄”大的交易比那些新的交易拥有更高的优先级,以保证客运业务的交易记录的及时性。
构建区块的过程可以分为 3 步:①终端节点产生一个未注册 (候选) 区块;②通过求解工作量证明算法获取记账权;③注册区块链,成为 (正式) 区块。这个过程中,最重要的就是通过工作量证明算法节点获得记账权。当终端节点在工作时,接受从客票网络收到产生的区块,同时为产出区块开始准备。在一个区块建立周期内,终端节点在完成交易的同时为下一个区块做准备。
2.3 节点的工作量证明
铁路客运业务中,节点的工作量证明是结合客运运营业务背景设计实现的。它以节点业务交易量和交易龄为基础,获得节点工作量证明的价值,这种方式被称为有价值工作量证明 (Valuable POW,VPOW)。VPOW 不同于传统 POW,传统的 POW 通过各个节点的算力证明确定记账权。这对于交易系统而言,计算资源耗费大,生产系统难以支付这一开销,需要寻找合适的共识机制,让所有节点迅速达成共识,而不过度消费算力资源。有价值工作量证明正是基于此而设计的,其基本思想是将各个节点的算力进行复用,试图将交易算力与记账算力进行融合,从而将记账权的共识通过有价值工作量证明得以达成。
观察线下业务,选择 5 个车站分别统计车站窗口、代售点窗口和自动售票机分时段售票情况,车站分时段交易量观察如图2 所示。从图2 中可以看出车站业务交易量不具备明显的规律性。
观察不同时间间隔,铁路各个窗口办理售票交易的办理张数,得到不同时间间隔售票业务交易热力图如图3 所示。
图2 车站分时段交易量观察Fig.2 The periodic transaction volumes of railway stations
图3 不同时间间隔售票业务交易热力图Fig.3 The thermodynamic chart of ticket sale volumes with different intervals
图3 中横坐标代表每一个时间间隔;纵坐标代表每一个间隔发售的张数;中间数据方格代表全路共有多少个业务办理窗口在这个时间间隔发售,分别涂上绿色和红色,绿色方格代表窗口数多于 1,红色代表办理窗口为 1 个。
从图3 中可以看出,60 s 内,基于交易业务量,会产生多个窗口竞争记账权的现象,即每一间隔最大交易量出现多个窗口 (绿色色块)。300 s 往后,最大交易张数基本是单个窗口唯一确定,因而对于铁路终端区块链,区块建立时间建议在 300 s 以上。
分析各终端节点业务办理量,将个节点的业务交易量赋以价值,发现监听交易业务间隔 5 min以上,可以有效保证记账权节点选择算法的快速收敛、进而唯一确定交易量最大的记账节点。但在极端特殊的情况下,这种有价值工作量证明方法可能存在多节点记账竞争现象,即各个节点的交易工作量具有相同价值。为避免记账权算法不收敛,需要在交易工作量证明的基础上,引入交易龄指标,让长时间交易无法入链的区块,交易工作量具有更大价值,从而有效差异化工作量价值,保证算法快速收敛。这种以节点交易算力为基础,辅以节点交易龄差异化评判的工作量证明方式,作为节点达成共识机制的基础算法,能够有效地解决实际客运生产系统中算力有限的问题。铁路客运私有链共识机制的改进正是基于复用交易算力为记账算力,降低记账算力开销的同时价值化节点工作量,充分利用节点算力解决传统区块链共识机制的算力开销,为铁路客运私有链的安全稳定奠定了基础。
3 结束语
在对区块链技术中的共识机制进行研究的基础上,针对区块链共识机制计算资源耗费大的特点,结合铁路客运交易和铁路私有链建立环境,进行私有链的共识机制改进,将工作量证明从单纯的算力证明,改进为有意义的价值工作量证明,让有限的计算资源得以充分利用,同时交易龄的引入,能够保证私有链建立的时效性、数据的可用性。这些改进有利于铁路客运私有链的建立与应用,对于突破当前客运的集中式数据管理方式,实现铁路客运内部的数据信任机制重构、数据的高度共享与自治、数据的可追溯与防篡改具有重要意义。同时,该技术的应用可以为将来跨行业的交通客运数据保护联盟链构建做出示范。
[1] SWAN M. Blockchain Thinking:the Brain as a Decentralized Autonomous Corporation[J]. IEEE Technology and Society Magazine,2015,34(4):41-52.
[2] 沈 鑫,裴庆祺. 区块链技术综述[J]. 网络与信息安全学报,2016(11):11-20.
[3] WESSEL R,MARK C. The Blockchain as a Narrative Technology:Investigating the Social Ontology and Normative Configurations of Cryptocurrencies[J]. Philos & Technol,2016,10(31):1-28.
[4] CLARE S,ERIC B. E-residency and Blockchain[J].Computer Law & Security Review,2017(33):470-481.
[5] KRAFT D.Diffculty Control for Blockchain-based Consensus Systems[J]. Peer-to-Peer Networking and Applications,2016,9(2):397-413.
[6] WENKER N. On Line Currencies,Real-world Chaos∶ the Struggle to Regulate the Rise of Bitcoin[J]. Texas Review of Law &Politics,2014,19(1):145-197.
[7] 付巧玲,蒋秋华,李士达,等. 铁路客运综合业务自助终端的设计与实现[J]. 铁道运输与经济,2018,40(2):50-54.FU Qiao-ling,JIANG Qiu-hua,LI Shi-da,et al. The Design and Applications of Self-Service Terminals at Railway Stations[J]. Railway Transport and Economy,2018,40(2):50-54.
[8] 梅海涛,刘 洁. 区块链的产业现状、存在问题和政策建议[J]. 电信科学,2016(11):134-138.MEI Hai-tao,LIU Jie. The Status Quo,Problems and Policy Recommendations of Block Chain[J]. Telecommunications Science,2016(11):134-138.