当前位置:
区块链系统开发技术|基于区块链的ETC管理系统设计与实现
发布日期:2021-08-28 阅读次数: 字体大小:

区块链系统开发技术|基于区块链的ETC管理系统设计与实现
 
    电子不停车收费系统[1](ETC,ElectronicTollCollection)是目前最先进的路桥收费方式,这种收费系统可以实现车辆通过收费站时不需停车就能交纳路桥费,大大降低了用户的通行成本和高速公路的运营成本,提高了交通运输通行效率,有助于推进节能减排,目前已经成为高速公路最重要的收费手段之一,得到了广泛的认可与应用[2]。但是,随着高速公路车流量和通车里程的不断增长,ETC用户量越来越多,高速公路相关信息系统不断增多,极大增加了电子不停车收费系统的存储成本、传输成本、查询成本,使ETC运营系统面临海量数据处理效率较低、系统兼容性不高、系统数据安全等一系列问题。
区块链系统开发技术|基于区块链的ETC管理系统设计与实现
    区块链系统开发技术是近年来兴起的一项重要技术,作为比特币的底层技术,它是一种去中心化、去信任的分布式数据库。其核心优势是去中心化,通过运用数据加密、时间戳、分布式共识和经济激励等手段,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作[3]。区块链系统开发技术并非一种全新、单一的技术,它对现有技术进行重新组合与升级,融合了密码学、P2P文件传输机制、共识机制等多项技术,解决了目前中心化模式中存在的可靠性差、安全性低、成本高等问题,形成了一个去中心化数据记录与存储体系。
 
    国内外围绕区块链在数据安全存储和收费支付等方面的研究较多,但有关区块链在电子不停车收费系统上的文献很少。等提出了一种基于Fabric的停车管理区块链系统,采用Mongo数据库和区块链结合的方式,考虑区块链高延迟、低吞吐问题,只将交易数据存放在区块链中,保证停车收费数据安全可靠。黄世泽等[5]提出一种基于区块链的ETC收费支付及结算系统,路侧单元(RoadSideUnit,RSU)、用户和发卡公司之间的交易信息将被记录在区块链中,从而简化收费流程,提高数据安全性,但该系统只应用于用户、发卡公司和高速公路运营公司之间,不涉及管理中心,且目前只停留在理论研究方面,未进行实际开发工作。因此,本文基于区块链的技术特征,将区块链系统开发技术与电子不停车收费系统进行结合,开发了一个基于BUMO区块链的全国ETC运营平台,建立了一个更加安全、便捷的ETC管理系统,解决了现有ETC系统中心化模式中存在的数据安全性低、数据易被篡改、信任成本高等问题。
 
    一、ETC系统及问题
 
    (一)ETC系统基本原理
 
    ETC是目前最先进的路桥收费方式,通过安装在车辆挡风玻璃上的车载电子标签(OBU,OnBoardUnit)与收费站ETC车道上的微波天线(RSU,RoadSideUnit)之间的微波专用短程通信[6],利用计算机联网技术与银行进行后台结算处理,从而实现车辆通过路桥收费站不需停车就能缴纳路桥费的功能。
 
    (二)ETC系统总体框架
 
    2014年,交通运输部正式开展全国高速公路ETC联网收费工作。全国联网收费总体框架由国家收费公路联网结算管理中心、省(区、市)级联网结算管理中心、省内路段收费中心、收费站、ETC收费车道等五级组成。
 
    收费公路联网结算管理系统作为全国高速公路ETC联网运营的核心,可以快速进行高速公路跨省通行交易的清分结算,及争议交易、退费、投诉等相关业务的流转确认;可以提供综合查询和访问服务;可以有效控制系统风险,加强系统运营的业务保障和质量控制;可以提供数据上传和共享的平台,促进信息流转。由此可见,ETC系统是一个典型的“中心化”系统,联网收费管理中心每天需要进行大量的数据存储和处理。
 
    (三)ETC系统存在的问题
 
    随着ETC联网运营的不断推进,高速公路车流量和通车里程实现了飞跃式增长,高速公路相关信息系统不断增多,ETC用户量也不断增长,数据量和数据种类越来越多,给存储成本、运用成本、传输成本、查询成本等方面带来了更大的压力,当前ETC运营系统主要存在以下几方面问题。
 
    (1)结算中心安全性。整个联网收费网络主要由若干层次的局域网和链路构成的广域网组成,而在整个网络架构中是一个明显的中心化结构,由于结算中心高度“中心化”,如果中心服务器被网络攻击,千亿级的交易数据将会丢失或者被篡改,后果将是不可估量的。
 
    (2)结算数据完整性。跨省联网收费现多采用拆分结算的方式,分时段分级向各中心发送清单,若因车道系统发生故障导致车道交易数据未被写入流水文件造成数据丢失,会给高速公路带来通行费的损失。
 
    (3)数据的处理效率。随着业务的推进和演变,高速公路车流量和通车里程不断飞跃式增长,高速公路相关信息系统不断增多,截至2019年8月4日,全国ETC用户累计突破1亿,ETC用户数和车道数的显著增加带来了数据量的大规模增加,对数据的存储、运用、传输、查询等方面提出了更高要求。
 
    (4)系统的兼容性。在ETC系统的实际运行中,尤其是在跨省交易中,车载单元或多或少存在兼容性问题,从而导致ETC车道的交易成功率有所下降,使得高速公路的社会效益和经济效益大打折扣[8]。
 
    二、区块链的特点及应用
 
    (一)区块链的特点及类型
 
    区块链具有去中心化、时序数据、集体维护、可编程、安全可信等特点。其把密码学、数学、网络科学等技术以特定方式组合在一起,形成了一个去中心化数据记录与存储体系,并对存储数据的区块打上时间戳使其形成一个连续的、前后关联的诚实数据记录存储结构。在区块链这个系统里,区块链本身是值得信任的。
 
    按区块链目前的应用情况,可以分为公有链、联盟链和私有链三种类型。公有链是指任何人都可以随时进入到区块链系统中进行读取数据、发送可确认交易、竞争记账操作的区块链[9],公有链完全去中心化,不受任何机构控制。联盟链是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据[10]。私有链是指写入权限由某个组织和机构控制的区块链,参与节点的资格会被严格限制。相对于公有链,私有链可以创造出权限控制更为严格的系统[11]。
 
    (二)区块链的应用领域
 
    虽然区块链系统开发技术最初是伴随比特币出现的,但之后区块链系统开发技术的自身价值也日益凸显。特别是支持创建高级智能合约的功能,又使得区块链应用领域和范畴实现了进一步拓展[12]。在金融行业的引领下,越来越多的行业加入到区块链研究探索的大潮中,例如在食品领域,沃尔玛、京东、IBM等公司相继成立了区块链溯源项目来解决食品安全问题;在慈善领域,蚂蚁金服通过区块链进行慈善活动,以此保障每笔捐助资金的透明性,并提升公信力;在公证领域,外国Bitproof公司和学校进行合作,使用区块链系统开发技术来验证学历的真实性,让学历造假无处藏身……当前区块链在众多领域的应用已经从实验室研究阶段走向商用阶段,在产业数字化和产业融合的时代背景下,各行业的区块链应用呈现一种融合加速的态势。这些领域的成功应用也无疑为区块链系统开发技术在交通运输行业的深入应用奠定了坚实的基础。同时,交通运输行业作为一个多方参与的典型体系,在区块链的应用发展上具有后发优势,可以充分借鉴其他行业的经验教训,以更前瞻的视角和战略布局利用区块链来赋能交通行业的创新变革。
 
    (三)区块链与ETC结合的优势
 
    1、提升运营效率
 
    通过应用区块链系统开发技术可将高速公路联网收费中各相关节点所获得的加密数据直接在区块链范围内执行智能合约并实现结算交易,无需通过数据中心的再处理和交易撮合,可以提高运营效率。
 
    2、解决数据可靠性完整性问题
 
    区块链的共识机制实现了ETC数据的一次次确认,从而确保ETC数据的有效性与一致性。
 
    3、保证全网安全性
 
    区块链特有的数据加密保护和验证机制可靠地保护了数据的安全,并充分维护了数据方的隐私或机密。
 
    三、系统设计
 
    (一)用户角色
 
    用户按照角色可分为收费路段、省中心、国家中心、发行中心、服务网点和用户六个角色。每个角色所对应的操作权限各不相同。
 
    (1)ETC用户U:ETC用户可查看、编辑个人信息,同时可以查看到ETC卡片信息和收费记录。
 
    (2)服务网点FW:服务网点管理员可以新增ETC用户信息和ETC卡片信息,同时服务网点可以为用户办理充值服务。
 
    (3)发行中心F:发行中心管理员可以对黑名单进行增、删、改、查操作,同时管理用户信息和ETC卡片信息,可查询充值信息,可对用户申诉进行处理,发行中心也可以新增服务网点,并查看公钥、私钥和地址。
 
    (4)收费路段SF:路段收费中心管理员可以查看黑名单信息,同时可以查看该收费站的入站信息、出站信息和路网收费信息。
 
    (5)省中心S:省中心管理员可以查看黑名单信息、收费站信息和收费路段参数,可以对ETC卡片信息进行查询,用户进入收费站之后入站信息会新增一条记录,用户驶出收费站后出站信息会新增一条出站记录和一条路网收费信息,每1分钟会对路网收费信息进行上链操作,在路网收费信息页面可以查看收费记录是否上链,上链后会展示生成的hash值,同时省中心可以查看公钥、私钥和地址。
 
    (6)国家中心G:国家中心作为权力的最高部门,在国家中心子系统中,国家中心可以添加其余角色的账号,并可查看收费信息及收费参数,同时可以对ETC卡片进行管理,查看充值信息。
 
    (二)解决方案
 
    系统解决方案如图2所示。ETC用户可通过线上线下多种方式进行ETC卡片开户、充值等操作。当ETC用户在ETC入口车道时,收费车道识别车辆的OBU、ETC情况,查询车辆是否在状态名单和追缴黑名单中,符合条件的予以放行。当用户在ETC出口车道时,收费车道再次识别车辆的OBU、ETC情况,查询车辆是否在状态名单和追缴黑名单中,发起计费请求,并根据获取的计费信息进行收费,完成交易的予以放行。
 
    省中心是区块链上的节点,各省中心服务器负责把本省的收费数据打包成区块并在各个省中心之间实现共识。各省从省内的各个路段获取到省内收费信息后,将收费信息在省中心服务器之间进行共识,完成共识后,由国家中心进行确认,完成确认即完成ETC交易上链的步骤。
 
    国家中心拥有对打包的收费信息区块进行确认的权利,ETC卡片发行中心有生成资产的权利。ETC卡片发行中心发行资产无需进行共识,而各省中心在通行费用结算时,按照区块链中收到各个不同的ETC卡片发行中心所发行的资产的量进行拆分结算。结算完毕,省收费中心获得相应款项后,把对应的资产转给ETC卡的发行中心,从而达到记账的目的。由于需要进行全国范围内的省中心的共识,因此,对于不完整或错误的信息,不能通过各省省中心的共识,这确保了收费信息的完整性和不可篡改性。
 
    四、系统架构
 
    基于区块链的ETC管理系统的设计采用3层应用架构,分为应用层、服务层和数据层,如图3所示。
 
    (一)数据层
 
    数据层由提供存储的BUMO区块链和MySQL数据库组成。BUMO是下一代商用级基础公共区块链,旨在建立价值流通的泛在信任网络,致力于打造广泛数字信任、价值自由流通、大众共享应用的分布式商业生态[13]。BUMO的服务架构如图4所示,分为五层:底层是区块链的基本组成,包括P2P组网、账本结构、共识机制和激励机制等;交易、合约层是区块链对上的表现形式;技术扩展层包括跨链、侧链、隐私等;服务层是最高层,包括数字资产、物联网及第三方应用;数字钱包、区块链浏览器、数据监控分析、身份认证等外层应用,能够连接整个生态,并打通数字资产的流通体系。
 
    1、区块链结构
 
    区块链中区块结构如图5所示,区块包括区块头和区块体两个部分。
 
    区块头主要包含区块号、区块的哈希、前一区块的哈希、区块生成时间、账户树的哈希、共识信息的哈希、验证节点的哈希、费用的哈希、区块版本和交易数量字段。其中,账户树的哈希是用MPT(MerklePatriciaTree)构建的账户树的根哈希,MPT树是Merkle树和Trie树中各自优点相融合生成的产物[14],MPT树能够有效减少账本树的深度、增加树的平衡性,使树的安全性和可验证性得到很大提高。
 
    区块体主要包含交易的信息和签名。通过哈希将区块头和区块体中各类关键信息索引至区块的字段中,使得在整个区块链中,各部分的数据变动都能反映到区块字段值。一旦出现不一致的情况,根据区块字段的索引哈希值,能够快速且有针对性地定位到问题所在处。
 
    2、数据库结构
 
    系统内所有的数据均会存储在MySQL数据库中,缩短用户请求响应时间。MySQL数据库中主要存放ETC用户个人信息、进站信息、出站信息、通行记录信息、充值信息和用户登录权限等信息。为了保证通行记录信息的安全性,系统将新增的ETC用户通行数据发送给区块链,进行重要数据的上传。数据库设计如图6所示,图6中所有表的主键ID均是由系统自动生成的唯一标识。
 
    UserList表中存放的是ETC用户信息,CardList表中存放的是ETC卡片信息,BlackList表中存放的是ETC黑名单用户信息。EntranceLaneCharge表中存放的是ETC用户进站信息,ExitLaneCharge表中存放的是ETC用户出站信息,NetworkCharge表中存放的是根据进站和出站信息生成的通行记录。SystemUserList表中的Type字段用来标识不同的用户角色,U、FW、F、SF、S、G分别代表ETC用户、服务网点、发行中心、收费路段、省中心和国家中心角色,其中,PublicKey、PrivateKey和Address分别代表公钥、私钥和地址,用于通行记录上链过程。
 
    (二)服务层
 
    服务层负责应用层和数据层的交互,服务层提供包括用户注册、生成公私钥、交易记录上链、查询上链详细信息等接口。
 
    (1)generateKeys():生成密钥信息,包括公钥、私钥和地址。采用ECC椭圆曲线加密算法,生成的公钥、私钥和地址用于通行记录上链过程。以发行中心F为例,一般的发送形式为F.generateKey()。
 
    (2)submitTransaction(X):新增通行交易记录上链。该过程分为获取账户nonce值、构建操作、序列化交易、签名交易、提交交易五步,上链成功后生成交易hash值。
 
    (3)getTransactionInfo(X):根据上链生成的hash值查看区块链上交易X的详细信息。如根据hash=2495b6acf633b0852d01768428947aaad594729dc4028090636efab4b235c688找到区块链上的相应交易并提取相关信息,包括签名后数据、交易金额、区块序列号、交易序列号等。以省中心S为例,一般的发送形式为S.getTransactionInfo(hash)。
 
    (三)应用层
 
    应用层为多角色的Web系统,为用户提供操作功能页面,用户角色分为ETC用户、收费路段、省管理中心、国家路网中心、省ETC卡发行中心和ETC卡服务网点六种。Web系统选用Spring-side框架,并对其进行扩展和定制。
 
    为了保证系统内数据不被非法用户窃取,应用层加入了严格的权限管理机制,结合Bootstrap作为前端UI框架,提高了系统的交互性。系统对登录用户进行了访问控制,并将访问控制逻辑放在Web服务器实现。根据用户角色向MySQL数据库查询相应的操作权限,以此来判断用户是否有权限进行请求操作,例如:省中心管理员只能查询到本省的收费站信息、路段收费参数和进出本省的通行记录;发行中心管理员只能对本省发行的ETC卡片和用户信息进行操作,同时只能查看本省的交易信息;用户只能查询到与自己相关的交易记录和ETC卡片信息,并只能对自己的个人信息进行操作。
 
    五、系统实现
 
    按照上文设计,在IntellJIDEA中采用Java语言开发实现了基于区块链的ETC管理系统。
 
    (一)用户登录界面
 
    整个ETC服务系统分为以下六个角色:国家中心管理员、省中心管理员、路段中心管理员、发行中心管理员、服务网点管理员和用户。不同角色登录系统后会进入不同的功能页,系统用户登录界面如图7所示。
 
    (二)生成密钥信息
 
    密钥信息是交易记录上链过程中需要的区块链账号的公钥、私钥和地址,未生成的发行中心账户或省中心账户可自动生成,如图8所示,生成后该密钥信息只能查看,不能编辑修改。
 
    (三)查看路网交易信息
 
    ETC卡片用户通过收费站进站时会生成一条进站记录,通过收费站出站时生成一条出站记录和路网交易记录。服务端每1分钟会对通行记录进行一次上链操作,用户的通行费会先由用户账户转到发行中心账户,上链时发行账户向出站收费站的省中心账户进行转账,通行记录上链成功后会生成一个hash值,生成的hash值会显示在省中心管理员系统中,如图9所示。
 
    (四)查看上链信息
 
    省中心和国家中心管理员可选择交易记录查看详细的上链信息,如图10所示,包括签名后数据、交易金额、区块序列号、交易序列号、交易发起的源账户地址、目标账户地址等。其中,交易发起的源账户地址为ETC卡片用户发行方省中心生成的密钥地址信息,目标账户地址为ETC卡片用户出站省中心生成的密钥地址信息。
 
    六、结束语
 
    区块链系统开发技术为ETC高成本、低效率和数据存储不安全等问题提供了有效的解决方案。通过使用区块链系统开发技术,电子不停车收费系统可实现道路真实数据上链、数据加密传输和记录不被篡改,从而提高道路交通数据利用的安全性和稳定性,为推动路网数据的整合、促进路网服务的增值提供了可能性。
 
    本文基于区块链的技术特征,将区块链系统开发技术与电子不停车收费系统进行结合,开发了一个基于BUMO区块链的全国ETC运营平台,建立了一个更加安全、便捷的ETC管理系统,解决了现有ETC系统中心化模式中存在的数据安全性低、数据易被篡改、信任成本高等问题。但受现有知识水平和研究时间的限制,目前本文的研究工作还不尽完善。在如何提高系统的吞吐量、提高系统的查询速率等方面,未来需要通过真实数据进行更加深入的研究和探索。

本文原地址:https://www.4dchinese.cn

郑重声明内容版权声明:除非注明,否则皆为本站原创文章。如有侵权联系进行删除!