盧鑫海,余建坤
(1.云南財(cái)經(jīng)大學(xué) 信息學(xué)院;2.云南省經(jīng)濟(jì)社會(huì)大數(shù)據(jù)研究院,云南 昆明 650221)
我國(guó)每年汽車保有量呈不斷增長(zhǎng)趨勢(shì),二手車交易量也屢創(chuàng)新高。據(jù)2020 年2 月中國(guó)汽車流通協(xié)會(huì)發(fā)布的《2019 年全國(guó)二手車市場(chǎng)分析》顯示,全國(guó)累計(jì)交易二手車1 492.28 萬(wàn)輛,同比增長(zhǎng)7.96%。從跨區(qū)域流通情況來(lái)看,2019 年7 月開(kāi)始,轉(zhuǎn)籍比例呈下降趨勢(shì),并低于歷史同期。在二手車市場(chǎng)快速發(fā)展的同時(shí),也存在多種問(wèn)題:信任度低,有些企業(yè)經(jīng)營(yíng)者對(duì)用戶打虛假?gòu)V告,蓄意隱瞞車輛真實(shí)狀況,用戶難以溯源車輛歷史數(shù)據(jù);流通性差,如果異地買車,用戶必須親自到現(xiàn)場(chǎng)驗(yàn)車,中間環(huán)節(jié)會(huì)大量耗費(fèi)財(cái)力與精力,導(dǎo)致車輛流通不順暢等[1]。隨著網(wǎng)絡(luò)信息技術(shù)的發(fā)展,許多學(xué)者在二手車交易系統(tǒng)研究過(guò)程中進(jìn)行了大量應(yīng)用性實(shí)踐。如宋國(guó)柱[2]應(yīng)用J2EE 等技術(shù)框架,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)二手車交易管理系統(tǒng),可方便、快捷地管理二手車車源、訂單等信息;袁瑩靜等[3]運(yùn)用Visual Studio 軟件實(shí)現(xiàn)了一個(gè)二手車交易平臺(tái),提升了商品的流通性;吳文川[4]提出一個(gè)二手車C2C(Customer to Customer)系統(tǒng),以APP 為載體提供更透明的二手車信息售賣方式;馮波[5]提出基于Java Script 的二手車估價(jià)平臺(tái),方便用戶了解二手車在當(dāng)前市場(chǎng)的鑒定評(píng)估行情;苗得慶[6]實(shí)現(xiàn)了基于SaaS平臺(tái)的二手車鑒定評(píng)估與置換系統(tǒng),為準(zhǔn)確鑒定評(píng)估車輛發(fā)揮了輔助性作用。以上應(yīng)用研究雖然使二手車交易更加便捷,但仍然存在一些問(wèn)題。例如第三方數(shù)據(jù)庫(kù)的存儲(chǔ)方法不能避免人為因素的影響,數(shù)據(jù)存在被偽造、被篡改的潛在風(fēng)險(xiǎn),資產(chǎn)難以確權(quán)與防偽溯源,也無(wú)法避免中心化系統(tǒng)存在的單點(diǎn)故障問(wèn)題等。可見(jiàn),目前仍然沒(méi)有最優(yōu)方式解決二手車交易存在的問(wèn)題。
2008 年,一位化名為“中本聰”的學(xué)者提出比特幣系統(tǒng)[7],其是去中心化加密數(shù)字貨幣系統(tǒng)的典型代表。比特幣系統(tǒng)率先引進(jìn)區(qū)塊鏈思想,區(qū)塊鏈技術(shù)具有去中心化、不可篡改、可溯源、公開(kāi)透明等特點(diǎn)[8-9],為解決資產(chǎn)交易系統(tǒng)存在的可信度低、難溯源、單點(diǎn)故障等問(wèn)題帶來(lái)了新思路。
針對(duì)二手車交易現(xiàn)狀,本文提出一種基于區(qū)塊鏈的二手車交易系統(tǒng)方案,將區(qū)塊鏈技術(shù)與二手車交易相結(jié)合,其具有以下優(yōu)勢(shì):①提高二手車交易過(guò)程中的信任度,加快車輛流通;②保證交易數(shù)據(jù)安全、不可篡改,且具有可追溯性,防止交易抵賴;③分布式存儲(chǔ)賬本數(shù)據(jù),系統(tǒng)由單中心變?yōu)槎嘀行幕?,避免出現(xiàn)單點(diǎn)故障問(wèn)題。
區(qū)塊鏈?zhǔn)且粋€(gè)公共賬本,是一系列包含交易和信息的數(shù)據(jù)塊以順序相連的方式組合成的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)[10]。賬本可記錄多方資金的往來(lái)記錄、物品交換記錄等。區(qū)塊鏈對(duì)數(shù)據(jù)進(jìn)行分布式加密存儲(chǔ),融合了數(shù)學(xué)、計(jì)算機(jī)、密碼學(xué)等多個(gè)學(xué)科的成果,具有去中心化、天然互信、數(shù)據(jù)不可篡改等特點(diǎn),已被用于金融、征信、貿(mào)易等多個(gè)領(lǐng)域[11]。典型的區(qū)塊鏈架構(gòu)由6 層組成,由下至上分別為數(shù)據(jù)層、傳輸層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層[12],如圖1 所示。
Fig.1 Blockchain architecture model圖1 區(qū)塊鏈架構(gòu)模型
其中,數(shù)據(jù)層實(shí)現(xiàn)了數(shù)據(jù)存儲(chǔ),并通過(guò)非對(duì)稱公私鑰數(shù)據(jù)加密和時(shí)間戳等技術(shù)保證了賬戶與交易安全;網(wǎng)絡(luò)層則包括分布式組網(wǎng)機(jī)制、數(shù)據(jù)傳播機(jī)制和數(shù)據(jù)驗(yàn)證機(jī)制等;共識(shí)層主要封裝網(wǎng)絡(luò)節(jié)點(diǎn)的各類共識(shí)算法;激勵(lì)層一般出現(xiàn)在公有鏈中,定義了獎(jiǎng)懲機(jī)制來(lái)制約節(jié)點(diǎn)參與交易驗(yàn)證行為;合約層主要包括各類腳本、算法機(jī)制及智能合約,是區(qū)塊鏈可編程特性的基礎(chǔ);應(yīng)用層則封裝了區(qū)塊鏈的各種應(yīng)用場(chǎng)景和案例。在區(qū)塊鏈的6 層結(jié)構(gòu)模型中,基于時(shí)間戳的區(qū)塊排序、共識(shí)算法、對(duì)節(jié)點(diǎn)進(jìn)行激勵(lì)以及智能合約開(kāi)發(fā)與部署是最具代表性的創(chuàng)新點(diǎn)。
根據(jù)對(duì)外開(kāi)放程度和權(quán)限管理的不同,區(qū)塊鏈可分為公有鏈、私有鏈和聯(lián)盟鏈3 類[13]。公有鏈去中心化程度最高,被認(rèn)為是完全去中心化。在公有鏈中,每個(gè)節(jié)點(diǎn)可以自由加入或退出網(wǎng)絡(luò),加入網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都能讀取數(shù)據(jù)、參與交易、競(jìng)爭(zhēng)記賬權(quán)。私有鏈則完全封閉,其寫(xiě)入權(quán)限由某個(gè)組織和機(jī)構(gòu)控制,參與節(jié)點(diǎn)的資格會(huì)被嚴(yán)格限制。聯(lián)盟鏈則是半公開(kāi)的,是指有若干個(gè)機(jī)構(gòu)共同參與管理的區(qū)塊鏈,每個(gè)機(jī)構(gòu)都運(yùn)行著一個(gè)或多個(gè)節(jié)點(diǎn),其中的數(shù)據(jù)只允許系統(tǒng)內(nèi)不同機(jī)構(gòu)進(jìn)行讀寫(xiě)及發(fā)送交易,并且共同記錄交易數(shù)據(jù),如農(nóng)產(chǎn)品聯(lián)盟鏈等[14]。
公有鏈、私有鏈與聯(lián)盟鏈的特點(diǎn)比較如表1 所示。
Table 1 Comparison of the characteristics of three blockchain types表1 3 種區(qū)塊鏈特點(diǎn)比較
智能合約最早由尼克薩博于1994 年提出[15],并將其定義為“一套以數(shù)字形式指定的承諾,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議”。智能合約是合約協(xié)議的數(shù)字化代碼表達(dá),通過(guò)預(yù)置的響應(yīng)事件、響應(yīng)規(guī)則,根據(jù)不同輸入內(nèi)容輸出對(duì)應(yīng)結(jié)果[16]。區(qū)塊鏈借助智能合約的可編程性封裝了去中心化網(wǎng)絡(luò)中節(jié)點(diǎn)的復(fù)雜行為,逐漸成為智能合約最主要的計(jì)算場(chǎng)景。目前智能合約的主流開(kāi)發(fā)平臺(tái)是超級(jí)賬本(Hyperledger Fabric)和以太坊(Ethereum)。在超級(jí)賬本中,智能合約又稱為鏈碼,部署在組織的背書(shū)節(jié)點(diǎn)上,并運(yùn)行在Docker 容器[17]中。開(kāi)發(fā)者利用鏈碼與區(qū)塊鏈底層交互以開(kāi)發(fā)業(yè)務(wù)、定義資產(chǎn)及管理去中心化應(yīng)用。在以太坊中,合約在以太坊虛擬機(jī)中執(zhí)行,每次執(zhí)行需要消耗當(dāng)前賬戶一定的燃油費(fèi),避免系統(tǒng)因惡意程序走向失控[18]。由于智能合約具有較低的運(yùn)行成本和人為干預(yù)風(fēng)險(xiǎn),以及執(zhí)行準(zhǔn)確等特性,目前被應(yīng)用于很多領(lǐng)域和場(chǎng)景中,如資產(chǎn)交易、身份管理、醫(yī)療隱私記錄及眾籌等。
超級(jí)賬本是Linux 基金會(huì)于2015 年發(fā)起的推進(jìn)區(qū)塊鏈技術(shù)與交易驗(yàn)證的開(kāi)源項(xiàng)目[19],其具有去中心化、天然互信、數(shù)據(jù)不可篡改、多通道等特點(diǎn)[20]。相比于比特幣和以太坊,超級(jí)賬本屬于聯(lián)盟鏈,具有權(quán)限控制的優(yōu)勢(shì),安全程度較高[21]。Fabric 提供的SDK 接口、可插拔的共識(shí)算法和鏈碼服務(wù)對(duì)開(kāi)發(fā)者更加友好。Fabric 為開(kāi)發(fā)者提供了開(kāi)發(fā)接口,使用簡(jiǎn)單,因而便于開(kāi)發(fā)。在API 的基礎(chǔ)上,又針對(duì)Java、Node.js 和Go 語(yǔ)言封裝了不同的SDK。其事件模塊是指在鏈碼中定義的事件可通過(guò)應(yīng)用程序監(jiān)聽(tīng),當(dāng)監(jiān)聽(tīng)事件被觸發(fā)時(shí),則執(zhí)行預(yù)先定義好的回調(diào)函數(shù)。所以本文以Fabric 作為區(qū)塊鏈實(shí)現(xiàn)方式,設(shè)計(jì)基于區(qū)塊鏈的二手車交易系統(tǒng)模型。
為提高二手車交易市場(chǎng)的安全性和可信度,結(jié)合區(qū)塊鏈應(yīng)用架構(gòu),提出基于區(qū)塊鏈的二手車交易模型,如圖2 所示。使用區(qū)塊鏈技術(shù)對(duì)數(shù)據(jù)的存儲(chǔ)與使用方式作出改進(jìn),取代了中心化的存儲(chǔ)中心。
Fig.2 Second-hand car trading system model圖2 二手車交易系統(tǒng)模型
針對(duì)系統(tǒng)管理員、大眾用戶與機(jī)構(gòu)管理員,可支持C/S和B/S 兩種架構(gòu)模式,用戶通過(guò)手機(jī)APP 或網(wǎng)頁(yè)平臺(tái)完成資產(chǎn)交易過(guò)程。交易中心系統(tǒng)主要完成對(duì)用戶請(qǐng)求的處理,若請(qǐng)求需要訪問(wèn)或改變公共賬本數(shù)據(jù),則將該請(qǐng)求轉(zhuǎn)發(fā)到區(qū)塊鏈網(wǎng)絡(luò),調(diào)用區(qū)塊鏈應(yīng)用層上的智能合約完成該請(qǐng)求。若只是查詢車輛信息,則由管理服務(wù)層的交易中心系統(tǒng)直接對(duì)狀態(tài)數(shù)據(jù)庫(kù)進(jìn)行查詢。區(qū)塊鏈網(wǎng)絡(luò)是由多臺(tái)服務(wù)器共同組成的一個(gè)分布式網(wǎng)絡(luò),狀態(tài)數(shù)據(jù)庫(kù)按照時(shí)間順利記錄每一筆資產(chǎn)交易,賬本只能添加而不能刪減,以保證數(shù)據(jù)變化可追溯。
基于區(qū)塊鏈的二手車交易系統(tǒng)架構(gòu)如圖3 所示,主要由區(qū)塊鏈層、管理服務(wù)層、應(yīng)用層與交互層構(gòu)成。
Fig.3 Architecture of second-hand car trading system圖3 二手車交易系統(tǒng)架構(gòu)
(1)區(qū)塊鏈層。區(qū)塊鏈層由狀態(tài)數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)通信模塊、共識(shí)算法、智能合約等組成。用戶與車輛相關(guān)信息存儲(chǔ)在狀態(tài)數(shù)據(jù)中,可被外部程序快速訪問(wèn),即使?fàn)顟B(tài)數(shù)據(jù)庫(kù)中的數(shù)據(jù)丟失,也可根據(jù)區(qū)塊中的交易記錄找回丟失的數(shù)據(jù)。共識(shí)算法的功能是將交易排序,達(dá)成共識(shí)后按照一定的時(shí)間間隔打包成區(qū)塊。由于聯(lián)盟鏈中可能存在拜占庭節(jié)點(diǎn)和因宕機(jī)產(chǎn)生的無(wú)效節(jié)點(diǎn),綜合考慮系統(tǒng)的安全性和性能,本文采用PBFT 共識(shí)算法。智能合約針對(duì)上層發(fā)送的申請(qǐng),通過(guò)預(yù)置的響應(yīng)規(guī)則輸出對(duì)應(yīng)結(jié)果。
(2)管理服務(wù)層。管理服務(wù)層是連接應(yīng)用層與區(qū)塊鏈層的橋梁,主要提供交易請(qǐng)求傳遞、賬本查詢、車輛管理等功能。用戶對(duì)于不同組織發(fā)起的請(qǐng)求,通過(guò)管理服務(wù)層轉(zhuǎn)發(fā)到對(duì)應(yīng)的組織節(jié)點(diǎn)上。若請(qǐng)求需要改變狀態(tài)數(shù)據(jù)庫(kù)的數(shù)據(jù),則將該請(qǐng)求轉(zhuǎn)發(fā)到區(qū)塊鏈層,由區(qū)塊鏈層上的智能合約完成。若只是對(duì)二手車信息進(jìn)行查詢,則由管理服務(wù)層的交易中心完成。新節(jié)點(diǎn)加入?yún)^(qū)塊鏈網(wǎng)絡(luò)時(shí),管理服務(wù)層使用Fabric 提供的CA 組件對(duì)節(jié)點(diǎn)進(jìn)行認(rèn)證,以實(shí)現(xiàn)節(jié)點(diǎn)的權(quán)限管理。
(3)應(yīng)用層。應(yīng)用層為系統(tǒng)管理員、大眾用戶、機(jī)構(gòu)管理員3 類角色提供服務(wù)。系統(tǒng)管理員的職責(zé)是更新、維護(hù)二手車交易系統(tǒng),保障其穩(wěn)定運(yùn)行。用戶可進(jìn)行開(kāi)戶、銷戶、二手車交易、二手車溯源數(shù)據(jù)查詢、交易記錄查詢等操作。機(jī)構(gòu)管理員負(fù)責(zé)監(jiān)督上鏈的二手車各項(xiàng)數(shù)據(jù)的真實(shí)性,并對(duì)存在問(wèn)題的用戶發(fā)出警告。
(4)交互層。交互層包括手機(jī)APP、桌面端應(yīng)用、Web應(yīng)用、微信小程序等,是系統(tǒng)與用戶之間的接口,可提供便捷的系統(tǒng)操作途徑。
智能合約定義了交易規(guī)則,保證機(jī)構(gòu)間業(yè)務(wù)邏輯的可信執(zhí)行,因此編寫(xiě)安全、可靠的智能合約對(duì)于二手車交易至關(guān)重要。為了不受系統(tǒng)環(huán)境的影響,智能合約的執(zhí)行環(huán)境使用Docker 容器。Docker 可將軟件及其環(huán)境依賴打包成標(biāo)準(zhǔn)化單元,不需要虛擬整個(gè)操作系統(tǒng),只需虛擬環(huán)境即可。根據(jù)二手車交易系統(tǒng)的實(shí)際需求,智能合約主要實(shí)現(xiàn)用戶開(kāi)戶與銷戶、資產(chǎn)上鏈、資產(chǎn)交易、用戶查詢、資產(chǎn)溯源等功能,其智能合約接口列表如表2 所示。
Table 2 Interface list表2 接口列表
本系統(tǒng)通過(guò)Fabric 搭建底層的區(qū)塊鏈網(wǎng)絡(luò),并將智能合約部署到區(qū)塊鏈網(wǎng)絡(luò)的合約層上,以實(shí)現(xiàn)數(shù)字資產(chǎn)交易的自動(dòng)化與智能化,確保交易數(shù)據(jù)的安全性與透明性。
區(qū)塊鏈層中包含4 種節(jié)點(diǎn)類型,分別是背書(shū)節(jié)點(diǎn)、主節(jié)點(diǎn)、記賬節(jié)點(diǎn)和排序節(jié)點(diǎn)。不同類型的節(jié)點(diǎn)功能如圖4 所示。背書(shū)節(jié)點(diǎn)、主節(jié)點(diǎn)、記賬節(jié)點(diǎn)是組織內(nèi)部的節(jié)點(diǎn),統(tǒng)稱為Peer 節(jié)點(diǎn)。背書(shū)節(jié)點(diǎn)的主要作用是執(zhí)行智能合約以及為交易作擔(dān)保;主節(jié)點(diǎn)由網(wǎng)絡(luò)初始化時(shí)的配置文件指定,是組織內(nèi)部唯一與排序節(jié)點(diǎn)通信的節(jié)點(diǎn);所有Peer 節(jié)點(diǎn)都是記賬節(jié)點(diǎn),記賬節(jié)點(diǎn)的主要功能是更新?tīng)顟B(tài)數(shù)據(jù)庫(kù)中的數(shù)據(jù);實(shí)現(xiàn)共識(shí)的節(jié)點(diǎn)為排序節(jié)點(diǎn),排序節(jié)點(diǎn)的功能是從客戶端接收交易,并對(duì)交易進(jìn)行排序,達(dá)成共識(shí)后按照一定的時(shí)間間隔打包成區(qū)塊,分發(fā)給其它組織的主節(jié)點(diǎn)。
Fig.4 Four types of node functionality圖4 4 種類型節(jié)點(diǎn)功能
用戶的資產(chǎn)交易過(guò)程可分為“背書(shū)—排序—驗(yàn)證”3 個(gè)階段。第一階段為背書(shū)階段,用戶通過(guò)交互層中的應(yīng)用程序?qū)⒔灰装l(fā)送到組織中的背書(shū)節(jié)點(diǎn)上,背書(shū)節(jié)點(diǎn)收到客戶端請(qǐng)求,驗(yàn)證通過(guò)后模擬執(zhí)行智能合約,將交易結(jié)果和背書(shū)節(jié)點(diǎn)簽名返回給客戶端。該階段的執(zhí)行結(jié)果不會(huì)改變狀態(tài)數(shù)據(jù)庫(kù),只有經(jīng)過(guò)排序階段確認(rèn)后,賬本數(shù)據(jù)才會(huì)更新。如果沒(méi)有背書(shū)階段,為了達(dá)成共識(shí),各個(gè)階段都需要執(zhí)行智能合約,將會(huì)影響系統(tǒng)交易處理速度。第二階段為排序階段。排序節(jié)點(diǎn)對(duì)交易進(jìn)行排序,并將一段時(shí)間間隔內(nèi)的交易集合打包生成區(qū)塊。以PBFT 共識(shí)算法為例,當(dāng)共識(shí)節(jié)點(diǎn)收到客戶端發(fā)來(lái)的交易時(shí),會(huì)對(duì)交易進(jìn)行驗(yàn)證,包括客戶端簽名和背書(shū)節(jié)點(diǎn)簽名。在驗(yàn)證通過(guò)后,經(jīng)過(guò)三階段協(xié)議達(dá)成共識(shí)。第三階段為驗(yàn)證階段。排序節(jié)點(diǎn)將區(qū)塊廣播到組織中的主節(jié)點(diǎn),主節(jié)點(diǎn)使用交易讀寫(xiě)集中的讀集部分驗(yàn)證區(qū)塊中交易的有效性。驗(yàn)證通過(guò)后保存區(qū)塊,更新?tīng)顟B(tài)數(shù)據(jù)中的數(shù)據(jù),同時(shí)通過(guò)Gossip 協(xié)議同步區(qū)塊數(shù)據(jù)到組織中的記賬節(jié)點(diǎn)上。3 個(gè)階段整體流程如圖5 所示。
在“背書(shū)—排序—驗(yàn)證”三階段中,背書(shū)策略和背書(shū)過(guò)程確保了智能合約按照業(yè)務(wù)邏輯正確執(zhí)行。排序服務(wù)確保了節(jié)點(diǎn)對(duì)交易順序的一致性達(dá)成共識(shí)。記賬節(jié)點(diǎn)根據(jù)相同規(guī)則對(duì)每筆交易數(shù)據(jù)進(jìn)行驗(yàn)證,從而在交易內(nèi)容的合法性上達(dá)成共識(shí)。基于“背書(shū)—排序—驗(yàn)證”的交易流程能有效將信任模型同底層的共識(shí)協(xié)議相解耦,將最為耗時(shí)的交易執(zhí)行操作交由背書(shū)節(jié)點(diǎn)執(zhí)行,共識(shí)過(guò)程只負(fù)責(zé)交易內(nèi)容驗(yàn)證與排序,從而加快了交易寫(xiě)入?yún)^(qū)塊的速度。
Fig.5 Flow of system transactions圖5 系統(tǒng)交易流程
智能合約給區(qū)塊鏈提供核心交易處理的應(yīng)用接口,通過(guò)調(diào)用該接口,交易能自動(dòng)執(zhí)行,并向區(qū)塊鏈系統(tǒng)返回執(zhí)行結(jié)果。智能合約必須被部署安裝在鏈上,才能實(shí)現(xiàn)對(duì)節(jié)點(diǎn)的讀寫(xiě)操作。智能合約的業(yè)務(wù)對(duì)象包括用戶、二手車資產(chǎn)、資產(chǎn)溯源數(shù)據(jù)等。用戶對(duì)象屬性包括用戶名、用戶標(biāo)識(shí)、資產(chǎn)列表,資產(chǎn)列表可為空。資產(chǎn)對(duì)象屬性包括資產(chǎn)名、資產(chǎn)標(biāo)識(shí)、配置等。資產(chǎn)溯源數(shù)據(jù)對(duì)象的數(shù)據(jù)包括資產(chǎn)標(biāo)識(shí)、資產(chǎn)原始擁有者、資產(chǎn)現(xiàn)在的擁有者。系統(tǒng)最核心的功能為開(kāi)戶、資產(chǎn)上鏈、資產(chǎn)交易、資產(chǎn)溯源數(shù)據(jù)查詢等。
用戶在系統(tǒng)上的活動(dòng)流程是首先通過(guò)客戶端調(diào)用鏈碼傳入用戶名,并進(jìn)行用戶標(biāo)識(shí)開(kāi)戶,然后使用用戶名和用戶標(biāo)識(shí)進(jìn)行登錄。開(kāi)戶的合約偽代碼如下:
用戶在系統(tǒng)上傳入二手車名稱、二手車標(biāo)識(shí)、配置參數(shù)、擁有者標(biāo)識(shí)進(jìn)行資產(chǎn)上鏈,機(jī)構(gòu)管理員對(duì)上鏈后的資產(chǎn)信息進(jìn)行核對(duì),其他用戶也可對(duì)資產(chǎn)進(jìn)行查詢與交易。資產(chǎn)上鏈的合約偽代碼如下:
在資產(chǎn)交易過(guò)程中,區(qū)塊鏈系統(tǒng)首先要確定商品庫(kù)存信息和買賣雙方信息,當(dāng)庫(kù)存大于零時(shí)才能繼續(xù)交易。之后對(duì)賣方是否擁有當(dāng)前資產(chǎn)進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后交易繼續(xù)執(zhí)行。二手車交易實(shí)現(xiàn)的偽代碼如下:
用戶可在系統(tǒng)上查詢二手車相關(guān)配置信息和歷史交易記錄。實(shí)現(xiàn)的合約偽代碼如下:
在完成區(qū)塊鏈網(wǎng)絡(luò)環(huán)境初始化并實(shí)現(xiàn)智能合約后,對(duì)模型中的管理服務(wù)層和應(yīng)用層進(jìn)行實(shí)現(xiàn)。實(shí)現(xiàn)管理服務(wù)層的交易中心系統(tǒng)時(shí),通過(guò)Fabric 提供的SDK 把合約函數(shù)封裝成應(yīng)用層可調(diào)用的接口。若應(yīng)用層接收到交互層發(fā)來(lái)的請(qǐng)求涉及賬本數(shù)據(jù)改變,則將該請(qǐng)求轉(zhuǎn)發(fā)至區(qū)塊鏈層,交由智能合約完成。若只是對(duì)商品進(jìn)行查詢,則由交易中心系統(tǒng)完成。
將本文的二手車交易系統(tǒng)與二手車交易市場(chǎng)及傳統(tǒng)商品交易系統(tǒng)進(jìn)行比較,如表3 所示。
Table 3 Comparison of advantages and disadvantages表3 優(yōu)缺點(diǎn)比較
綜上,本文設(shè)計(jì)的基于區(qū)塊鏈的二手車交易系統(tǒng)能很好地提高二手車交易環(huán)境的信任度與流通性,去中心化的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)能保證車輛參數(shù)不可篡改,且可溯源,同時(shí)避免了單點(diǎn)故障問(wèn)題。但共識(shí)過(guò)程中通信開(kāi)銷較大,用戶節(jié)點(diǎn)數(shù)越多,共識(shí)效率越低,僅適合節(jié)點(diǎn)規(guī)模較小的交易場(chǎng)景。因此,下一步將對(duì)共識(shí)算法展開(kāi)研究,設(shè)計(jì)出一款可適合較大用戶規(guī)模、可信、高效的共識(shí)算法。
本文針對(duì)當(dāng)前二手車交易市場(chǎng)存在的信任度低、難溯源、流通慢等問(wèn)題,結(jié)合超級(jí)賬本的架構(gòu)和特點(diǎn),研究設(shè)計(jì)了基于區(qū)塊鏈的二手車交易模型。系統(tǒng)采用“背書(shū)—排序—驗(yàn)證”的交易流程,通過(guò)智能合約進(jìn)行了業(yè)務(wù)邏輯的實(shí)現(xiàn),實(shí)現(xiàn)了資產(chǎn)上鏈、資產(chǎn)交易、資產(chǎn)溯源等基本功能,保障了系統(tǒng)的可信性。但目前系統(tǒng)仍處于雛形,還有繼續(xù)完善的空間。接下來(lái)將進(jìn)一步實(shí)現(xiàn)并豐富交互層,以改善用戶體驗(yàn),并對(duì)共識(shí)算法進(jìn)行優(yōu)化,提高系統(tǒng)吞吐量,保證系統(tǒng)穩(wěn)定、高效地運(yùn)行。