基于区块链的二手车交易系统研究
2021-09-28卢鑫海余建坤
卢鑫海,余建坤
(1.云南财经大学 信息学院;2.云南省经济社会大数据研究院,云南 昆明 650221)
0 引言
我国每年汽车保有量呈不断增长趋势,二手车交易量也屡创新高。据2020 年2 月中国汽车流通协会发布的《2019 年全国二手车市场分析》显示,全国累计交易二手车1 492.28 万辆,同比增长7.96%。从跨区域流通情况来看,2019 年7 月开始,转籍比例呈下降趋势,并低于历史同期。在二手车市场快速发展的同时,也存在多种问题:信任度低,有些企业经营者对用户打虚假广告,蓄意隐瞒车辆真实状况,用户难以溯源车辆历史数据;流通性差,如果异地买车,用户必须亲自到现场验车,中间环节会大量耗费财力与精力,导致车辆流通不顺畅等[1]。随着网络信息技术的发展,许多学者在二手车交易系统研究过程中进行了大量应用性实践。如宋国柱[2]应用J2EE 等技术框架,设计并实现了一个二手车交易管理系统,可方便、快捷地管理二手车车源、订单等信息;袁莹静等[3]运用Visual Studio 软件实现了一个二手车交易平台,提升了商品的流通性;吴文川[4]提出一个二手车C2C(Customer to Customer)系统,以APP 为载体提供更透明的二手车信息售卖方式;冯波[5]提出基于Java Script 的二手车估价平台,方便用户了解二手车在当前市场的鉴定评估行情;苗得庆[6]实现了基于SaaS平台的二手车鉴定评估与置换系统,为准确鉴定评估车辆发挥了辅助性作用。以上应用研究虽然使二手车交易更加便捷,但仍然存在一些问题。例如第三方数据库的存储方法不能避免人为因素的影响,数据存在被伪造、被篡改的潜在风险,资产难以确权与防伪溯源,也无法避免中心化系统存在的单点故障问题等。可见,目前仍然没有最优方式解决二手车交易存在的问题。
2008 年,一位化名为“中本聪”的学者提出比特币系统[7],其是去中心化加密数字货币系统的典型代表。比特币系统率先引进区块链思想,区块链技术具有去中心化、不可篡改、可溯源、公开透明等特点[8-9],为解决资产交易系统存在的可信度低、难溯源、单点故障等问题带来了新思路。
针对二手车交易现状,本文提出一种基于区块链的二手车交易系统方案,将区块链技术与二手车交易相结合,其具有以下优势:①提高二手车交易过程中的信任度,加快车辆流通;②保证交易数据安全、不可篡改,且具有可追溯性,防止交易抵赖;③分布式存储账本数据,系统由单中心变为多中心化,避免出现单点故障问题。
1 区块链相关技术
1.1 区块链技术架构
区块链是一个公共账本,是一系列包含交易和信息的数据块以顺序相连的方式组合成的链式数据结构[10]。账本可记录多方资金的往来记录、物品交换记录等。区块链对数据进行分布式加密存储,融合了数学、计算机、密码学等多个学科的成果,具有去中心化、天然互信、数据不可篡改等特点,已被用于金融、征信、贸易等多个领域[11]。典型的区块链架构由6 层组成,由下至上分别为数据层、传输层、共识层、激励层、合约层和应用层[12],如图1 所示。
Fig.1 Blockchain architecture model图1 区块链架构模型
其中,数据层实现了数据存储,并通过非对称公私钥数据加密和时间戳等技术保证了账户与交易安全;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层一般出现在公有链中,定义了奖惩机制来制约节点参与交易验证行为;合约层主要包括各类脚本、算法机制及智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。在区块链的6 层结构模型中,基于时间戳的区块排序、共识算法、对节点进行激励以及智能合约开发与部署是最具代表性的创新点。
1.2 区块链分类
根据对外开放程度和权限管理的不同,区块链可分为公有链、私有链和联盟链3 类[13]。公有链去中心化程度最高,被认为是完全去中心化。在公有链中,每个节点可以自由加入或退出网络,加入网络中的每个节点都能读取数据、参与交易、竞争记账权。私有链则完全封闭,其写入权限由某个组织和机构控制,参与节点的资格会被严格限制。联盟链则是半公开的,是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同机构进行读写及发送交易,并且共同记录交易数据,如农产品联盟链等[14]。
公有链、私有链与联盟链的特点比较如表1 所示。
Table 1 Comparison of the characteristics of three blockchain types表1 3 种区块链特点比较
1.3 智能合约
智能合约最早由尼克萨博于1994 年提出[15],并将其定义为“一套以数字形式指定的承诺,包括合约参与方可以在上面执行这些承诺的协议”。智能合约是合约协议的数字化代码表达,通过预置的响应事件、响应规则,根据不同输入内容输出对应结果[16]。区块链借助智能合约的可编程性封装了去中心化网络中节点的复杂行为,逐渐成为智能合约最主要的计算场景。目前智能合约的主流开发平台是超级账本(Hyperledger Fabric)和以太坊(Ethereum)。在超级账本中,智能合约又称为链码,部署在组织的背书节点上,并运行在Docker 容器[17]中。开发者利用链码与区块链底层交互以开发业务、定义资产及管理去中心化应用。在以太坊中,合约在以太坊虚拟机中执行,每次执行需要消耗当前账户一定的燃油费,避免系统因恶意程序走向失控[18]。由于智能合约具有较低的运行成本和人为干预风险,以及执行准确等特性,目前被应用于很多领域和场景中,如资产交易、身份管理、医疗隐私记录及众筹等。
1.4 超级账本
超级账本是Linux 基金会于2015 年发起的推进区块链技术与交易验证的开源项目[19],其具有去中心化、天然互信、数据不可篡改、多通道等特点[20]。相比于比特币和以太坊,超级账本属于联盟链,具有权限控制的优势,安全程度较高[21]。Fabric 提供的SDK 接口、可插拔的共识算法和链码服务对开发者更加友好。Fabric 为开发者提供了开发接口,使用简单,因而便于开发。在API 的基础上,又针对Java、Node.js 和Go 语言封装了不同的SDK。其事件模块是指在链码中定义的事件可通过应用程序监听,当监听事件被触发时,则执行预先定义好的回调函数。所以本文以Fabric 作为区块链实现方式,设计基于区块链的二手车交易系统模型。
2 模型设计
2.1 系统模型
为提高二手车交易市场的安全性和可信度,结合区块链应用架构,提出基于区块链的二手车交易模型,如图2 所示。使用区块链技术对数据的存储与使用方式作出改进,取代了中心化的存储中心。
Fig.2 Second-hand car trading system model图2 二手车交易系统模型
针对系统管理员、大众用户与机构管理员,可支持C/S和B/S 两种架构模式,用户通过手机APP 或网页平台完成资产交易过程。交易中心系统主要完成对用户请求的处理,若请求需要访问或改变公共账本数据,则将该请求转发到区块链网络,调用区块链应用层上的智能合约完成该请求。若只是查询车辆信息,则由管理服务层的交易中心系统直接对状态数据库进行查询。区块链网络是由多台服务器共同组成的一个分布式网络,状态数据库按照时间顺利记录每一笔资产交易,账本只能添加而不能删减,以保证数据变化可追溯。
2.2 系统架构
基于区块链的二手车交易系统架构如图3 所示,主要由区块链层、管理服务层、应用层与交互层构成。
Fig.3 Architecture of second-hand car trading system图3 二手车交易系统架构
(1)区块链层。区块链层由状态数据库、网络通信模块、共识算法、智能合约等组成。用户与车辆相关信息存储在状态数据中,可被外部程序快速访问,即使状态数据库中的数据丢失,也可根据区块中的交易记录找回丢失的数据。共识算法的功能是将交易排序,达成共识后按照一定的时间间隔打包成区块。由于联盟链中可能存在拜占庭节点和因宕机产生的无效节点,综合考虑系统的安全性和性能,本文采用PBFT 共识算法。智能合约针对上层发送的申请,通过预置的响应规则输出对应结果。
(2)管理服务层。管理服务层是连接应用层与区块链层的桥梁,主要提供交易请求传递、账本查询、车辆管理等功能。用户对于不同组织发起的请求,通过管理服务层转发到对应的组织节点上。若请求需要改变状态数据库的数据,则将该请求转发到区块链层,由区块链层上的智能合约完成。若只是对二手车信息进行查询,则由管理服务层的交易中心完成。新节点加入区块链网络时,管理服务层使用Fabric 提供的CA 组件对节点进行认证,以实现节点的权限管理。
(3)应用层。应用层为系统管理员、大众用户、机构管理员3 类角色提供服务。系统管理员的职责是更新、维护二手车交易系统,保障其稳定运行。用户可进行开户、销户、二手车交易、二手车溯源数据查询、交易记录查询等操作。机构管理员负责监督上链的二手车各项数据的真实性,并对存在问题的用户发出警告。
(4)交互层。交互层包括手机APP、桌面端应用、Web应用、微信小程序等,是系统与用户之间的接口,可提供便捷的系统操作途径。
2.3 智能合约设计
智能合约定义了交易规则,保证机构间业务逻辑的可信执行,因此编写安全、可靠的智能合约对于二手车交易至关重要。为了不受系统环境的影响,智能合约的执行环境使用Docker 容器。Docker 可将软件及其环境依赖打包成标准化单元,不需要虚拟整个操作系统,只需虚拟环境即可。根据二手车交易系统的实际需求,智能合约主要实现用户开户与销户、资产上链、资产交易、用户查询、资产溯源等功能,其智能合约接口列表如表2 所示。
Table 2 Interface list表2 接口列表
3 系统实现
本系统通过Fabric 搭建底层的区块链网络,并将智能合约部署到区块链网络的合约层上,以实现数字资产交易的自动化与智能化,确保交易数据的安全性与透明性。
3.1 交易流程
区块链层中包含4 种节点类型,分别是背书节点、主节点、记账节点和排序节点。不同类型的节点功能如图4 所示。背书节点、主节点、记账节点是组织内部的节点,统称为Peer 节点。背书节点的主要作用是执行智能合约以及为交易作担保;主节点由网络初始化时的配置文件指定,是组织内部唯一与排序节点通信的节点;所有Peer 节点都是记账节点,记账节点的主要功能是更新状态数据库中的数据;实现共识的节点为排序节点,排序节点的功能是从客户端接收交易,并对交易进行排序,达成共识后按照一定的时间间隔打包成区块,分发给其它组织的主节点。
Fig.4 Four types of node functionality图4 4 种类型节点功能
用户的资产交易过程可分为“背书—排序—验证”3 个阶段。第一阶段为背书阶段,用户通过交互层中的应用程序将交易发送到组织中的背书节点上,背书节点收到客户端请求,验证通过后模拟执行智能合约,将交易结果和背书节点签名返回给客户端。该阶段的执行结果不会改变状态数据库,只有经过排序阶段确认后,账本数据才会更新。如果没有背书阶段,为了达成共识,各个阶段都需要执行智能合约,将会影响系统交易处理速度。第二阶段为排序阶段。排序节点对交易进行排序,并将一段时间间隔内的交易集合打包生成区块。以PBFT 共识算法为例,当共识节点收到客户端发来的交易时,会对交易进行验证,包括客户端签名和背书节点签名。在验证通过后,经过三阶段协议达成共识。第三阶段为验证阶段。排序节点将区块广播到组织中的主节点,主节点使用交易读写集中的读集部分验证区块中交易的有效性。验证通过后保存区块,更新状态数据中的数据,同时通过Gossip 协议同步区块数据到组织中的记账节点上。3 个阶段整体流程如图5 所示。
在“背书—排序—验证”三阶段中,背书策略和背书过程确保了智能合约按照业务逻辑正确执行。排序服务确保了节点对交易顺序的一致性达成共识。记账节点根据相同规则对每笔交易数据进行验证,从而在交易内容的合法性上达成共识。基于“背书—排序—验证”的交易流程能有效将信任模型同底层的共识协议相解耦,将最为耗时的交易执行操作交由背书节点执行,共识过程只负责交易内容验证与排序,从而加快了交易写入区块的速度。
Fig.5 Flow of system transactions图5 系统交易流程
3.2 智能合约实现
智能合约给区块链提供核心交易处理的应用接口,通过调用该接口,交易能自动执行,并向区块链系统返回执行结果。智能合约必须被部署安装在链上,才能实现对节点的读写操作。智能合约的业务对象包括用户、二手车资产、资产溯源数据等。用户对象属性包括用户名、用户标识、资产列表,资产列表可为空。资产对象属性包括资产名、资产标识、配置等。资产溯源数据对象的数据包括资产标识、资产原始拥有者、资产现在的拥有者。系统最核心的功能为开户、资产上链、资产交易、资产溯源数据查询等。
用户在系统上的活动流程是首先通过客户端调用链码传入用户名,并进行用户标识开户,然后使用用户名和用户标识进行登录。开户的合约伪代码如下:
用户在系统上传入二手车名称、二手车标识、配置参数、拥有者标识进行资产上链,机构管理员对上链后的资产信息进行核对,其他用户也可对资产进行查询与交易。资产上链的合约伪代码如下:
在资产交易过程中,区块链系统首先要确定商品库存信息和买卖双方信息,当库存大于零时才能继续交易。之后对卖方是否拥有当前资产进行验证,验证通过后交易继续执行。二手车交易实现的伪代码如下:
用户可在系统上查询二手车相关配置信息和历史交易记录。实现的合约伪代码如下:
3.3 管理服务层与应用层实现
在完成区块链网络环境初始化并实现智能合约后,对模型中的管理服务层和应用层进行实现。实现管理服务层的交易中心系统时,通过Fabric 提供的SDK 把合约函数封装成应用层可调用的接口。若应用层接收到交互层发来的请求涉及账本数据改变,则将该请求转发至区块链层,交由智能合约完成。若只是对商品进行查询,则由交易中心系统完成。
3.4 比较分析
将本文的二手车交易系统与二手车交易市场及传统商品交易系统进行比较,如表3 所示。
Table 3 Comparison of advantages and disadvantages表3 优缺点比较
综上,本文设计的基于区块链的二手车交易系统能很好地提高二手车交易环境的信任度与流通性,去中心化的链式存储结构能保证车辆参数不可篡改,且可溯源,同时避免了单点故障问题。但共识过程中通信开销较大,用户节点数越多,共识效率越低,仅适合节点规模较小的交易场景。因此,下一步将对共识算法展开研究,设计出一款可适合较大用户规模、可信、高效的共识算法。
4 结语
本文针对当前二手车交易市场存在的信任度低、难溯源、流通慢等问题,结合超级账本的架构和特点,研究设计了基于区块链的二手车交易模型。系统采用“背书—排序—验证”的交易流程,通过智能合约进行了业务逻辑的实现,实现了资产上链、资产交易、资产溯源等基本功能,保障了系统的可信性。但目前系统仍处于雏形,还有继续完善的空间。接下来将进一步实现并丰富交互层,以改善用户体验,并对共识算法进行优化,提高系统吞吐量,保证系统稳定、高效地运行。