李保東,葉春明
上海理工大學(xué) 管理學(xué)院,上海200093
隨著經(jīng)濟(jì)社會(huì)的不斷發(fā)展,2019年中國(guó)汽車保有量已達(dá)2.5 億輛,是名副其實(shí)的汽車消費(fèi)大國(guó)。汽車相對(duì)于一般商品,價(jià)格較為高昂,消費(fèi)者對(duì)其質(zhì)量的關(guān)注度也格外的高,汽車行業(yè)經(jīng)常因質(zhì)量問(wèn)題而發(fā)生召回事件。一旦出現(xiàn)質(zhì)量問(wèn)題,溯源難度大、周期長(zhǎng),很難進(jìn)行權(quán)責(zé)劃分,這成為汽車行業(yè)發(fā)展的一大障礙。與此同時(shí),汽車行業(yè)正經(jīng)歷著由高速發(fā)展到高質(zhì)量發(fā)展的階段。汽車行業(yè)的供應(yīng)鏈?zhǔn)謴?fù)雜,不合格的零部件產(chǎn)品會(huì)對(duì)汽車的安全性造成極大隱患。目前市場(chǎng)上假冒配件有幾十億美元,這類產(chǎn)品一旦進(jìn)入汽車供應(yīng)鏈渠道,整個(gè)汽車的安全性會(huì)極大降低,對(duì)消費(fèi)者的生命健康造成極大威脅。除此之外,溝通效率低、防偽溯源難、信任問(wèn)題一直是汽車供應(yīng)鏈的痛點(diǎn)所在。關(guān)于區(qū)塊鏈在供應(yīng)鏈方面的應(yīng)用,國(guó)內(nèi)外很多專家學(xué)者做了一定的研究與實(shí)踐。楊慧琴等[1]提出對(duì)區(qū)塊鏈智能合約的深入應(yīng)用,構(gòu)建一個(gè)基于區(qū)塊鏈的供應(yīng)鏈平臺(tái);葉小榕等[2]為了實(shí)現(xiàn)供應(yīng)鏈上數(shù)據(jù)的可靠性和安全性,設(shè)計(jì)一個(gè)基于智能合約、物聯(lián)網(wǎng)和區(qū)塊鏈的供應(yīng)鏈模型,并且驗(yàn)證系統(tǒng)具有可行性;清華大學(xué)、IBM 公司和沃爾瑪共同探索區(qū)塊鏈應(yīng)用,將區(qū)塊鏈技術(shù)運(yùn)用到超市豬肉跟蹤管理體系[3];Kim[4]認(rèn)為區(qū)塊鏈+物聯(lián)網(wǎng)能夠?yàn)楣?yīng)鏈產(chǎn)品的溯源提供潛能,并設(shè)計(jì)可在以太坊平臺(tái)執(zhí)行的智能合約;Korpela[5]認(rèn)為區(qū)塊鏈技術(shù)能夠在數(shù)字供應(yīng)鏈上得到革命性的改變,指出了供應(yīng)鏈集成的需求,為相關(guān)領(lǐng)域的發(fā)展提供借鑒方案;張亮[6]從房地產(chǎn)供應(yīng)鏈的角度出發(fā),設(shè)計(jì)了基于以太坊智能合約的房地產(chǎn)供應(yīng)鏈系統(tǒng)。在汽車領(lǐng)域,奔馳公司與其提供商Icertis 公司合作,基于區(qū)塊鏈技術(shù)革新采購(gòu)流程,目標(biāo)是增加直接提供商以外其他參與方的透明度。目前對(duì)于區(qū)塊鏈在供應(yīng)鏈產(chǎn)品的溯源研究大多從相關(guān)理論出發(fā),介紹區(qū)塊鏈給供應(yīng)鏈產(chǎn)品帶來(lái)的潛在機(jī)遇,或者是從區(qū)塊鏈的某一角度來(lái)研究系統(tǒng)的可行性,另外,對(duì)供應(yīng)鏈溯源的研究集中在食品、醫(yī)療方面,對(duì)制造業(yè)的研究較少。
傳統(tǒng)的車輛溯源方式中,王震[7]構(gòu)建了基于輪胎信息的車輛溯源技術(shù),運(yùn)用圖像識(shí)別技術(shù)進(jìn)行車輛信息的溯源;凌緒楓[8]基于新型的溯源標(biāo)簽,生成汽車配件溯源二維碼,設(shè)計(jì)了汽車的零配件溯源系統(tǒng);Kolarovszka[9]介紹了汽車零部件識(shí)別的方案,利用RFID 技術(shù)設(shè)計(jì)汽車追溯模型,增加系統(tǒng)的可追溯性。傳統(tǒng)汽車溯源的研究,多是關(guān)于采集技術(shù)的突破,增加信息收集的維度與效率,然而關(guān)于信息的安全存儲(chǔ)、溯源渠道的優(yōu)化卻很少涉及。本文的目標(biāo)是通過(guò)對(duì)汽車供應(yīng)鏈研究,建立基于區(qū)塊鏈的汽車供應(yīng)鏈產(chǎn)品追溯系統(tǒng),并驗(yàn)證系統(tǒng)的有效性,實(shí)現(xiàn)汽車生產(chǎn)的原材料供應(yīng)商、零部件供應(yīng)商、整車廠以及分銷商數(shù)據(jù)的上鏈,根據(jù)功能的需求設(shè)計(jì)智能合約,開發(fā)簡(jiǎn)單的前端頁(yè)面,提供溯源接口。為制造業(yè)產(chǎn)品的供應(yīng)鏈溯源提供參考。具體的創(chuàng)新點(diǎn)有:(1)將供應(yīng)鏈數(shù)據(jù)分為敏感數(shù)據(jù)和非敏感數(shù)據(jù),對(duì)敏感數(shù)據(jù)進(jìn)行哈希處理,得到的哈希值連同非敏感數(shù)據(jù)一同記錄到區(qū)塊鏈上。提升供應(yīng)鏈數(shù)據(jù)可追溯性的同時(shí),保障敏感數(shù)據(jù)的隱私性。(2)利用智能合約進(jìn)行鏈上車輛的交易,減少繁瑣的交易手續(xù),保障交易的正常執(zhí)行以及車輛所有權(quán)的安全轉(zhuǎn)移。(3)利用以太坊區(qū)塊鏈平臺(tái)設(shè)計(jì)了汽車供應(yīng)鏈的溯源系統(tǒng),分析此系統(tǒng)相對(duì)于傳統(tǒng)溯源系統(tǒng)的優(yōu)勢(shì)。
一輛汽車大概有3萬(wàn)個(gè)零部件,其供應(yīng)鏈的復(fù)雜程度可想而知。在汽車制造業(yè)全產(chǎn)業(yè)鏈條中,并非只有參與整車制造的一家企業(yè),特別是汽車內(nèi)部零部件生產(chǎn)等環(huán)節(jié),供應(yīng)商的作用尤為明顯。汽車供應(yīng)鏈的分層有原材料供應(yīng)商、零部件供應(yīng)商、整車廠以及分銷商。原材料供應(yīng)商主要提供原材料等用品;零部件供應(yīng)商負(fù)責(zé)模塊化的設(shè)計(jì)與制造,比如傳動(dòng)裝置、儀表盤、火花塞等;整車上負(fù)責(zé)整車的設(shè)計(jì)、組裝,將所有配件組裝成可以出廠的汽車;分銷商負(fù)責(zé)車輛的銷售,目前大多數(shù)車輛在4S店進(jìn)行銷售[10]。為了確保汽車質(zhì)量與性能,對(duì)汽車生產(chǎn)的供應(yīng)鏈環(huán)節(jié)進(jìn)行必要的質(zhì)量監(jiān)督和管控,有助于汽車制造企業(yè)質(zhì)量和水平的提升。傳統(tǒng)的汽車供應(yīng)鏈上存在一些問(wèn)題,具體有以下幾個(gè)方面:
(1)參與方信任問(wèn)題
對(duì)于汽車行業(yè)來(lái)說(shuō),供應(yīng)鏈上下游企業(yè)眾多,汽車零部件的來(lái)源錯(cuò)綜復(fù)雜,很難保證汽車所用的每個(gè)零配件都是符合標(biāo)準(zhǔn)的。每個(gè)參與主體保存屬于自己內(nèi)部的生產(chǎn)數(shù)據(jù),無(wú)法被外部人員查看,當(dāng)發(fā)生車輛安全事件,內(nèi)部人員可通過(guò)修改內(nèi)部數(shù)據(jù)的方式避免追責(zé)。汽車的生產(chǎn)廠商是汽車生產(chǎn)的核心企業(yè),協(xié)調(diào)供應(yīng)鏈上下游的生產(chǎn)及銷售,同時(shí)負(fù)責(zé)審核供應(yīng)商的生產(chǎn)資質(zhì)與技術(shù)資料信息,由此來(lái)確定可靠的供應(yīng)商。但實(shí)際上,對(duì)于二級(jí)甚至三級(jí)供應(yīng)商,是不與汽車的生產(chǎn)廠家直接發(fā)生關(guān)系的,因此核心企業(yè)很難掌握這些供應(yīng)商的真實(shí)信息。針對(duì)以上所述的各種情況,汽車供應(yīng)鏈上的參與方之間存在信任問(wèn)題。
(2)產(chǎn)品溯源問(wèn)題
近年來(lái),汽車召回事件屢見不鮮,就2017年我國(guó)國(guó)內(nèi)汽車召回?cái)?shù)量達(dá)到2 087.4 萬(wàn)輛。安全氣囊故障、發(fā)動(dòng)機(jī)熄火、機(jī)油增多等問(wèn)題嚴(yán)重威脅到消費(fèi)者的生命安全。汽車制造集成化的狀況下,很難快速地確定問(wèn)題的根本來(lái)源,溯源需要花費(fèi)很多的人力物力,往往耗時(shí)費(fèi)力卻效率極低。
(3)信息共享效率問(wèn)題
隨著經(jīng)濟(jì)的全球化,汽車制造也呈現(xiàn)著全球化的態(tài)勢(shì)。汽車制造所需要的零部件來(lái)自不同的國(guó)家和地區(qū),由于地域和時(shí)差的關(guān)系,供應(yīng)鏈上信息的溝通會(huì)出現(xiàn)延遲現(xiàn)象。另外,不同供應(yīng)鏈主體的數(shù)據(jù)分布式存儲(chǔ),數(shù)據(jù)透明度低、隱蔽性強(qiáng),造成信息孤島的現(xiàn)象普遍存在。對(duì)于消費(fèi)者而言,獲取產(chǎn)品信息的渠道十分有限,使得消費(fèi)者對(duì)產(chǎn)品的安全性存有疑慮,尤其是對(duì)安全性有更高要求的汽車產(chǎn)品而言?;谏鲜銮闆r,供應(yīng)鏈上信息溝通的效率仍待提高。
針對(duì)汽車供應(yīng)鏈所面臨的各種問(wèn)題,可以借助區(qū)塊鏈技術(shù)提供解決方案,將汽車生產(chǎn)、流轉(zhuǎn)涉及到的數(shù)據(jù)記錄到區(qū)塊鏈上,可以增強(qiáng)各方的互相信任,提升信息共享的效率,使生產(chǎn)數(shù)據(jù)易于追溯,促使供應(yīng)鏈參與企業(yè)規(guī)范生產(chǎn)流程,生產(chǎn)出合格的產(chǎn)品。
區(qū)塊鏈技術(shù)最早是由比特幣的底層技術(shù)擴(kuò)展出來(lái)的,起源于化名為中本聰?shù)膶W(xué)者在密碼學(xué)報(bào)上發(fā)表的一篇名為《比特幣:一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》的文章[11]。截至目前,區(qū)塊鏈的發(fā)展已經(jīng)經(jīng)歷了以比特幣為代表的區(qū)塊鏈1.0時(shí)代,以以太坊為代表的區(qū)塊鏈2.0時(shí)代,現(xiàn)在已經(jīng)邁入?yún)^(qū)塊鏈3.0 時(shí)代。區(qū)塊鏈3.0 時(shí)代,是將區(qū)塊鏈技術(shù)運(yùn)用到社會(huì)生活的各種場(chǎng)景,如教育[12]、醫(yī)療[13]、供應(yīng)鏈、投票選舉[14]等。
有關(guān)區(qū)塊鏈的概念,學(xué)術(shù)界和產(chǎn)業(yè)界有很多討論,大多數(shù)認(rèn)可以下定義:區(qū)塊鏈?zhǔn)且环N分布式的數(shù)據(jù)庫(kù),可以共享且不易更改的分布式分類總賬,它是構(gòu)建價(jià)值互聯(lián)網(wǎng)不可或缺的底層應(yīng)用技術(shù),具備多層級(jí)和多個(gè)類型應(yīng)用的價(jià)值傳輸技術(shù)。其具有信息不可篡改、集體維護(hù)、匿名性、可追溯以及去中心化等特性[15]。
區(qū)塊鏈按應(yīng)用場(chǎng)景的不同,分為公有鏈、聯(lián)盟鏈和私有鏈三種類型[16]。公有鏈?zhǔn)菍?duì)所有人開放的,可以自由進(jìn)出,不需要授權(quán),一般應(yīng)用于數(shù)字貨幣;聯(lián)盟鏈適用于有限個(gè)主體間,需要獲取一定的權(quán)限方可進(jìn)入;私有鏈適用于企業(yè)內(nèi)部,相當(dāng)于企業(yè)內(nèi)部的私有數(shù)據(jù)庫(kù),僅內(nèi)部人員使用。
基于區(qū)塊鏈的汽車供應(yīng)鏈產(chǎn)品追溯應(yīng)用,需要供應(yīng)鏈上下游各個(gè)部門的參與,同時(shí)汽車供應(yīng)鏈要求有較快的交易處理速度,更低的成本。結(jié)合表1所顯示的區(qū)塊鏈類型及其特征,聯(lián)盟鏈更適用于汽車的供應(yīng)鏈。
表1 區(qū)塊鏈的類型及特征
智能合約這一概念早在1994年由密碼學(xué)家尼克薩博(Nick Szabo)提出,可以簡(jiǎn)單定義為運(yùn)行在區(qū)塊鏈上的計(jì)算機(jī)代碼,包含一組規(guī)則,確定相關(guān)方如何進(jìn)行交互。簡(jiǎn)單來(lái)說(shuō),智能合約就是一個(gè)確定性的計(jì)劃,當(dāng)滿足某些條件時(shí),它則執(zhí)行特定任務(wù),通常遵守”if …then…”語(yǔ)句。智能合約具有透明、高效、精確、可信等特征,可以自動(dòng)執(zhí)行驗(yàn)證,降低交易成本,保證安全性,減少對(duì)可信機(jī)構(gòu)的依賴,有助于將法律義務(wù)自動(dòng)流程化[17-19]。
區(qū)塊鏈為智能合約的發(fā)展提供了使用平臺(tái)。將智能合約部署在區(qū)塊鏈上,能充分發(fā)揮智能合約自動(dòng)執(zhí)行的優(yōu)勢(shì),極大地節(jié)省人力成本。通過(guò)編寫智能合約的功能函數(shù),簡(jiǎn)化操作流程。
本文將汽車供應(yīng)鏈與區(qū)塊鏈技術(shù)結(jié)合,開發(fā)去中心化的分布式應(yīng)用(DAPP),主要的功能有數(shù)據(jù)的上鏈存儲(chǔ)、汽車所有權(quán)的流轉(zhuǎn)變更、數(shù)據(jù)的溯源查詢、授權(quán)管理等,以下從開發(fā)平臺(tái)選擇、系統(tǒng)的基礎(chǔ)架構(gòu)、供應(yīng)鏈溯源流程和智能合約設(shè)計(jì)幾個(gè)方面分別介紹。
隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,很多去中心化的應(yīng)用和區(qū)塊鏈平臺(tái)被開發(fā)出來(lái)。一些企業(yè)為滿足業(yè)務(wù)需求開發(fā)了自己的區(qū)塊鏈平臺(tái),例如京東的智臻鏈、億書區(qū)塊鏈、趣鏈區(qū)塊鏈等。但目前規(guī)模最大、產(chǎn)生最早的主流區(qū)塊鏈平臺(tái)主要是Bitcoin、Ethereum 和Hyperledger Fabric。在選擇區(qū)塊鏈開發(fā)平臺(tái)時(shí)應(yīng)盡量選擇活躍度高、規(guī)模大的平臺(tái),一旦開發(fā)過(guò)程中遇到問(wèn)題,可以通過(guò)求助其他開發(fā)者的方式尋求解決方案。以太坊具有可編程的功能,可以通過(guò)開發(fā)智能合約實(shí)現(xiàn)具體應(yīng)用場(chǎng)景的功能邏輯,具備低延遲和可擴(kuò)展性;而比特幣的功能是依靠其腳本以及UTXO(未花費(fèi)的交易輸出)來(lái)實(shí)現(xiàn),可拓展性比較差,不適合做深入的開發(fā)。超級(jí)賬本同樣支持智能合約編寫,但是超級(jí)賬本的智能合約需要在額外配置的隔離環(huán)境Docker沙盒中運(yùn)行,部署繁瑣,具有較高的不確定性,不利于系統(tǒng)的安全。綜合以上考量,本文選用以太坊作為開發(fā)平臺(tái)。
如圖1,為區(qū)塊鏈系統(tǒng)的基礎(chǔ)架構(gòu),主要分為:數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、合約層、應(yīng)用層。層級(jí)之間相互銜接,共同維護(hù)系統(tǒng)的正常運(yùn)轉(zhuǎn),各個(gè)層級(jí)的功能各不相同,以下對(duì)區(qū)塊鏈系統(tǒng)架構(gòu)的每個(gè)層級(jí)逐一介紹。
圖1 區(qū)塊鏈的系統(tǒng)架構(gòu)
區(qū)塊鏈的數(shù)據(jù)層主要用來(lái)存儲(chǔ)節(jié)點(diǎn)之間的交易信息與數(shù)據(jù)信息,是汽車供應(yīng)鏈溯源系統(tǒng)的重要組成部分。數(shù)據(jù)區(qū)塊由區(qū)塊頭和區(qū)塊體兩部分構(gòu)成。區(qū)塊體存儲(chǔ)的交易數(shù)據(jù),以梅克爾樹的形式組合起來(lái),某一時(shí)段所有的交易迭代計(jì)算根哈希值,將根哈希值存儲(chǔ)到區(qū)塊頭中,利用哈希函數(shù)的雪崩效應(yīng),一旦梅克爾樹葉子節(jié)點(diǎn)的數(shù)據(jù)發(fā)生改變,根哈希值將隨之改變。這一性質(zhì)保證了區(qū)塊數(shù)據(jù)的不可篡改,也可驗(yàn)證一筆交易是否在區(qū)塊中。區(qū)塊頭中的時(shí)間戳為交易提供時(shí)間依據(jù);區(qū)塊頭中還保存了上一區(qū)塊的哈希值,由此將區(qū)塊串聯(lián)起來(lái)形成區(qū)塊鏈。
本文將汽車供應(yīng)鏈的生產(chǎn)數(shù)據(jù)分為敏感數(shù)據(jù)和非敏感數(shù)據(jù),敏感數(shù)據(jù)是企業(yè)核心的生產(chǎn)工藝、生產(chǎn)流程、技術(shù)資料,作為最核心的機(jī)密,不可直接記錄到區(qū)塊鏈上,生產(chǎn)廠家更不會(huì)接受,因此必須對(duì)其做一定處理。非敏感數(shù)據(jù)包含企業(yè)名稱、產(chǎn)品名稱、工商注冊(cè)號(hào)等信息,非敏感數(shù)據(jù)可以直接記錄到區(qū)塊鏈上。
敏感數(shù)據(jù)的處理,首先對(duì)數(shù)據(jù)進(jìn)行哈希加密,將得到的哈希值記錄到區(qū)塊鏈上。這種處理方式保障敏感數(shù)據(jù)隱私性的同時(shí)確保供應(yīng)鏈數(shù)據(jù)不被篡改。如圖2所示。
圖2 數(shù)據(jù)處理方式
區(qū)塊鏈的網(wǎng)絡(luò)層包含P2P網(wǎng)絡(luò)協(xié)議、傳播機(jī)制與驗(yàn)證機(jī)制。供應(yīng)鏈上各參與方作為區(qū)塊鏈網(wǎng)絡(luò)中的礦工節(jié)點(diǎn)存在,參與方之間產(chǎn)生的交易傳播到網(wǎng)絡(luò)中,礦工節(jié)點(diǎn)在本地將交易打包成區(qū)塊,開始挖礦,最先挖到礦的礦工獲得此區(qū)塊的記賬權(quán),獲取一定獎(jiǎng)勵(lì)。
圖3 汽車供應(yīng)鏈溯源業(yè)務(wù)流程圖
共識(shí)層封裝是系統(tǒng)的共識(shí)機(jī)制,目前流行的共識(shí)機(jī)制主要有PoW(工作量證明機(jī)制)、DPoS(股份授權(quán)證明機(jī)制)、PoS(權(quán)益證明機(jī)制)、PBFT(實(shí)用拜占庭共識(shí)機(jī)制)等[20]。以太坊區(qū)塊鏈早期使用的是PoW 共識(shí)機(jī)制,目前使用的是PoW+PoS的方式。共識(shí)機(jī)制保障了汽車供應(yīng)鏈溯源系統(tǒng)信息的一致性,增強(qiáng)供應(yīng)鏈參與主體和消費(fèi)者對(duì)系統(tǒng)的信任度。
合約層主要包含智能合約和腳本算法,是區(qū)塊鏈可編程的基礎(chǔ)。將代碼嵌入到區(qū)塊鏈系統(tǒng)中,可以實(shí)現(xiàn)自定義的智能合約,在不需要第三方的情況下,達(dá)到某些確定的約束條件自動(dòng)執(zhí)行相關(guān)的命令,智能合約是區(qū)塊鏈去信任的基礎(chǔ)[21]。
應(yīng)用層是用戶與系統(tǒng)進(jìn)行交互的窗口,采用HTML+JavaScript+css 的方式開發(fā)前端的交互頁(yè)面。在交互頁(yè)面提供操作接口,供應(yīng)鏈參與主體根據(jù)其所處位置的權(quán)限,進(jìn)行信息錄入以及產(chǎn)品所有權(quán)的轉(zhuǎn)移操作,消費(fèi)者和監(jiān)管機(jī)構(gòu)可以通過(guò)查詢接口查看車輛的轉(zhuǎn)移記錄以及汽車生產(chǎn)的溯源信息?;谄嚬?yīng)鏈溯源系統(tǒng)的的功能需求,前端頁(yè)面設(shè)計(jì)了管理授權(quán)、創(chuàng)建車輛溯源碼、對(duì)公轉(zhuǎn)賬、溯源轉(zhuǎn)移以及鏈上查詢的界面接口。前端的各種操作會(huì)調(diào)用智能合約,將相關(guān)交易數(shù)據(jù)完整地記錄到區(qū)塊鏈上。
由于汽車的生產(chǎn)流程十分復(fù)雜,涉及的參與主體數(shù)量多,僅供應(yīng)商就存在自己的一級(jí)、二級(jí)甚至三級(jí)供應(yīng)商。為了研究的方便,將汽車供應(yīng)鏈的流程簡(jiǎn)化為:原材料供應(yīng)商——零部件供應(yīng)商——整車廠——分銷商——終端客戶。
如圖3 為汽車供應(yīng)鏈溯源業(yè)務(wù)流程圖。汽車供應(yīng)鏈溯源,首先需要各參與企業(yè)使用數(shù)據(jù)采集系統(tǒng)收集產(chǎn)品數(shù)據(jù),并存儲(chǔ)在數(shù)據(jù)庫(kù)中,數(shù)據(jù)分類處理后上傳區(qū)塊鏈,由各方共同參與記賬,經(jīng)確認(rèn)的數(shù)據(jù)永久保存在區(qū)塊鏈上。同時(shí),企業(yè)的數(shù)據(jù)庫(kù)對(duì)接監(jiān)管部門的數(shù)據(jù)庫(kù)進(jìn)行備份。消費(fèi)者根據(jù)查詢接口提交溯源請(qǐng)求,系統(tǒng)返回溯源結(jié)果。區(qū)塊鏈上如果存在惡意節(jié)點(diǎn)篡改生產(chǎn)數(shù)據(jù),數(shù)據(jù)對(duì)應(yīng)的哈希值將發(fā)生改變,對(duì)應(yīng)區(qū)塊的哈希值也將隨之改變,導(dǎo)致區(qū)塊不能銜接而不被其他節(jié)點(diǎn)接受。
數(shù)據(jù)的采集上鏈至交易的最終確認(rèn),需要各個(gè)參與方的共同配合,存儲(chǔ)在區(qū)塊鏈上的數(shù)據(jù)可以被消費(fèi)者和監(jiān)管方查詢,在溯源接口輸入汽車唯一的溯源碼可以返回汽車生產(chǎn)的各項(xiàng)數(shù)據(jù),若車輛出現(xiàn)質(zhì)量問(wèn)題,可及時(shí)聯(lián)系監(jiān)管方報(bào)備。監(jiān)管方可通過(guò)對(duì)比數(shù)據(jù)哈希值的方式快速判別出現(xiàn)問(wèn)題的供應(yīng)鏈環(huán)節(jié)。
分布式應(yīng)用(DAPP)是以區(qū)塊鏈技術(shù)為基礎(chǔ)、利用以太坊等平臺(tái)進(jìn)行開發(fā)的。分布式應(yīng)用程序的開發(fā)最重要的就是對(duì)智能合約的操作處理,智能合約的開發(fā)流程是:編輯、編譯(compile)、部署(deploy)、調(diào)用(call)。谷歌瀏覽器提供了可在線編輯、編譯的開發(fā)環(huán)境remix,部署智能合約可通過(guò)web3.js完成,調(diào)用過(guò)程是在JavaSript中由合約實(shí)例發(fā)送請(qǐng)求至web3.js,web3.js以RPC(Remote Procedure Call)的方式將請(qǐng)求上傳至區(qū)塊鏈中的智能合約,進(jìn)而對(duì)區(qū)塊鏈中的數(shù)據(jù)進(jìn)行讀寫操作。
編寫智能合約構(gòu)建供應(yīng)鏈參與主體的結(jié)構(gòu)體,首先構(gòu)建原材料供應(yīng)商結(jié)構(gòu)體,通過(guò)加入狀態(tài)位的方式實(shí)現(xiàn)代碼復(fù)用,原材料供應(yīng)商、零部件供應(yīng)商、整車廠、經(jīng)銷商的state 狀態(tài)位分別對(duì)應(yīng)1、2、3、4。系統(tǒng)中設(shè)置管理員,主要是進(jìn)行系統(tǒng)權(quán)限的授權(quán),根據(jù)所處供應(yīng)鏈位置設(shè)置不同的權(quán)限。原材料供應(yīng)商、零部件供應(yīng)商、整車廠以及分銷商均擁有錄入信息的權(quán)限,分銷商具有轉(zhuǎn)移車輛所有權(quán)的權(quán)限,供應(yīng)鏈聯(lián)盟成員以及消費(fèi)者和監(jiān)督者均擁有系統(tǒng)溯源的權(quán)限。
信息上傳至區(qū)塊鏈系統(tǒng)存儲(chǔ)以及對(duì)信息的查詢需要通過(guò)編寫的智能合約函數(shù)來(lái)實(shí)現(xiàn),一般使用的solidity語(yǔ)言,因其棧深僅為1 024,對(duì)函數(shù)調(diào)用的深度以及入?yún)?、出參個(gè)數(shù)有影響,所以在進(jìn)行智能合約函數(shù)編寫時(shí)應(yīng)盡量控制函數(shù)入?yún)?、出參個(gè)數(shù)。如有必要,可以通過(guò)分解的方式將較為復(fù)雜的函數(shù)進(jìn)行拆分。為滿足汽車供應(yīng)鏈溯源系統(tǒng)的功能,在編寫智能合約時(shí)構(gòu)造相關(guān)函數(shù)滿足其相應(yīng)功能,如表2所示。
計(jì)算機(jī)的區(qū)塊鏈環(huán)境配置,首先需要在官網(wǎng)上下載當(dāng)前Node.js 的最新版本,npm 是隨Node.js 一同下載的包管理工具。在Windows命令窗口輸入node-v和npm-v來(lái)檢測(cè)是否安裝成功。由于其自帶語(yǔ)言較慢,所以在命令行輸入npm config set registry https://registry.npm.taobao.org切換到國(guó)內(nèi)的淘寶鏡像,輸入npm config get registry驗(yàn)證是否切換成功。在命令行輸入npm-install-g truffle 命令來(lái)安裝truffle,輸入set-executionpolicy remotesigned 命令進(jìn)行設(shè)置。MetaMask 是谷歌瀏覽器上的一個(gè)插件錢包,不需要下載客戶端,只需要將其添加至瀏覽區(qū)的擴(kuò)展程序即可。Ganache是Truffle提供的可視化私有鏈工具,可以通過(guò)RPC HTTP://127.0.0.1:7545接口實(shí)現(xiàn)Ganache和MetaMask的連接。
項(xiàng)目的啟動(dòng)需要經(jīng)過(guò)智能合約的編譯、部署、執(zhí)行,對(duì)應(yīng)的命令分別是:truffle compile、truffle migrate、npm run dev。
表2 智能合約函數(shù)表
本系統(tǒng)的程序是基于JavaScript 和Node.js 開發(fā)的,系統(tǒng)擴(kuò)展性良好,可以實(shí)現(xiàn)與網(wǎng)頁(yè)的對(duì)接,便于供應(yīng)鏈參與方和消費(fèi)者與系統(tǒng)的交互。溯源網(wǎng)頁(yè)的架構(gòu)采用的是HTML+JavaScript+css 的組合方式,這種方式也是目前網(wǎng)頁(yè)開發(fā)的主流模式。通過(guò)web3.js 庫(kù)與trufflecontract兩個(gè)庫(kù)實(shí)現(xiàn)區(qū)塊鏈和網(wǎng)頁(yè)的連接。去中心化應(yīng)用的特征是前端應(yīng)用各種操作的對(duì)應(yīng)代碼運(yùn)行在分布式網(wǎng)絡(luò)上,溯源系統(tǒng)的追溯功能通過(guò)智能合約實(shí)現(xiàn),而智能合約運(yùn)行在區(qū)塊鏈上,所以這個(gè)溯源網(wǎng)頁(yè)滿足分布式應(yīng)用的需求。系統(tǒng)的主要功能包括管理授權(quán)、創(chuàng)建汽車、鏈上查詢和信息錄入等部分。
汽車供應(yīng)鏈參與主體眾多,本文為說(shuō)明研究目的、展示溯源流程,選取8個(gè)節(jié)點(diǎn)作為供應(yīng)鏈參與對(duì)象。首先在Ganache 中生成8 個(gè)賬戶地址,并為每個(gè)區(qū)塊鏈地址分配500ETH,再將Ganache 中的賬戶地址導(dǎo)入到Metamask 中。通過(guò)切換Metamask 中的地址,進(jìn)行不同供應(yīng)鏈主體的操作。這個(gè)8個(gè)區(qū)塊鏈地址分別對(duì)應(yīng)1個(gè)管理員、2個(gè)原材料供應(yīng)商、2個(gè)零部件供應(yīng)商、1個(gè)整車廠、1個(gè)分銷商和1個(gè)消費(fèi)者。
5.2.1 授權(quán)管理
授權(quán)頁(yè)面是管理員對(duì)供應(yīng)鏈參與主體進(jìn)行授權(quán)的過(guò)程,對(duì)不同的參與主體設(shè)置不同的狀態(tài)碼,調(diào)用智能合約的setPermission 函數(shù)。狀態(tài)碼為0,是消費(fèi)者以及監(jiān)管員的權(quán)限,僅有溯源查詢功能;狀態(tài)碼為1,是經(jīng)銷商的權(quán)限,具有轉(zhuǎn)移車輛所有權(quán)的權(quán)限,可以寫入銷售數(shù)據(jù),溯源查詢;狀態(tài)碼為2,指的是生產(chǎn)商的權(quán)限,具有寫入生產(chǎn)信息的權(quán)限。如圖4,為管理員向區(qū)塊鏈地址為0x0b823c95283854265d038300cA0D9F8238AF0e36的節(jié)點(diǎn)授予經(jīng)銷商權(quán)限。授權(quán)的過(guò)程調(diào)用智能合約,會(huì)產(chǎn)生交易費(fèi),在Metamask中確認(rèn)交易信息,即可將授權(quán)數(shù)據(jù)永久的存儲(chǔ)到區(qū)塊鏈上。
圖4 管理員授權(quán)界面
5.2.2 創(chuàng)建汽車溯源碼
創(chuàng)建汽車指的是為生產(chǎn)的汽車創(chuàng)建唯一的溯源碼,溯源碼與實(shí)體車輛一一對(duì)應(yīng),這一功能由管理員調(diào)用。為每一臺(tái)汽車生成唯一的溯源碼,即生成追溯查詢的依據(jù),可以根據(jù)這一溯源依據(jù)進(jìn)行車輛的產(chǎn)品溯源。在接口中輸入汽車名稱,調(diào)用智能合約的createNewCargo函數(shù),返回已創(chuàng)建好的汽車ID,如圖5,創(chuàng)建的汽車名稱為別克-GL8 Avenir,生成的溯源碼為1403694914,創(chuàng)建時(shí)間為2020/7/2/下午11:16:17。創(chuàng)建的汽車默認(rèn)屬于管理員,本系統(tǒng)管理員的區(qū)塊鏈地址為:
0x0fc9147519bb2883be11dc78fa9954cba38f711e
圖5 創(chuàng)建汽車溯源碼界面
5.2.3 信息錄入
信息錄入模塊是供應(yīng)商、整車廠以及分銷商進(jìn)行信息錄入的模塊。以整車廠的信息錄入為例,將Metamask的地址切換到整車廠的地址,輸入溯源ID、整車廠名稱、生產(chǎn)汽車的名稱以及產(chǎn)品數(shù)據(jù)的哈希值、工商注冊(cè)號(hào),點(diǎn)擊發(fā)布確認(rèn)交易信息,這些信息將會(huì)記錄到區(qū)塊鏈上,任何人不可刪除修改。如圖6所示。
圖6 整車廠信息錄入界面
原材料供應(yīng)商、零部件供應(yīng)商、分銷商的操作方式與整車廠的信息錄入方式類似,只需切換到對(duì)應(yīng)的區(qū)塊鏈地址進(jìn)行相關(guān)信息錄入即可,不再一一贅述。錄入的信息可以在鏈上查詢模塊的溯源查詢頁(yè)面查詢。
“你們的人數(shù)是奇數(shù),而我們是兩兩格斗。很顯然,今天有個(gè)人不必參加格斗?!崩纤膹挠?xùn)練室的“黑板”前退開,看了我一眼。我的名字旁邊空著。
5.2.4 溯源轉(zhuǎn)移
溯源轉(zhuǎn)移指的是汽車供應(yīng)鏈的轉(zhuǎn)移,通過(guò)這一部分的功能能夠?qū)崿F(xiàn)車輛所有權(quán)的流轉(zhuǎn)變更。將Metamask的地址切換到車輛擁有者的區(qū)塊鏈地址,輸入車輛溯源碼以及接收車輛的區(qū)塊鏈地址,點(diǎn)擊轉(zhuǎn)移按鈕即可調(diào)用智能合約的transfer函數(shù),進(jìn)行所有權(quán)的變更。如圖7所示,經(jīng)銷商區(qū)塊鏈地址:
0x0b823c95283854265d038300cA0D9F8238AF0e36管理員將溯源碼為1403694914的別克-GL8 Avenir轉(zhuǎn)移經(jīng)銷商。這種轉(zhuǎn)移即車輛所有權(quán)轉(zhuǎn)移,區(qū)塊鏈上的賬本記錄能夠提供可靠性的證明,避免了傳統(tǒng)方式的繁瑣手續(xù)。
圖7 車輛所有權(quán)轉(zhuǎn)移界面
此外,供應(yīng)鏈產(chǎn)品的轉(zhuǎn)移伴隨著資金流的移動(dòng),以太坊本身就有代幣體系,可以利用以太坊平臺(tái)的代幣系統(tǒng)進(jìn)行支付。
5.2.5 鏈上查詢
鏈上查詢功能模塊是本系統(tǒng)的核心,將鏈上的查詢分為基本查詢和溯源查詢頁(yè)面。本系統(tǒng)的任意參與方都有權(quán)限使用此功能,查看車輛的流轉(zhuǎn)變更數(shù)據(jù)以及汽車生產(chǎn)的相關(guān)數(shù)據(jù)。
(2)溯源查詢頁(yè)面,任何參與主體可以根據(jù)汽車溯源碼,查詢到對(duì)應(yīng)汽車生產(chǎn)過(guò)程中涉及的原材料供應(yīng)商、零部件供應(yīng)商、整車廠、分銷商等相關(guān)生產(chǎn)數(shù)據(jù),溯源查詢網(wǎng)頁(yè)的截圖如圖9所示,其中產(chǎn)品數(shù)據(jù)欄內(nèi)的哈希值為敏感數(shù)據(jù)哈希值。
傳統(tǒng)的汽車供應(yīng)鏈通常需要大量的人力物力來(lái)維持系統(tǒng)的正常運(yùn)轉(zhuǎn),防偽溯源難度大。而使用基于區(qū)塊鏈的汽車供應(yīng)鏈溯源系統(tǒng),只需在部署以及調(diào)用智能合約時(shí)消耗少量的交易費(fèi),即可減少人財(cái)力的損耗,簡(jiǎn)化追溯流程,提高溯源的效率。
圖8 汽車供應(yīng)鏈轉(zhuǎn)移信息界面
傳統(tǒng)的溯源系統(tǒng)與區(qū)塊鏈溯源系統(tǒng)有很多的區(qū)別,以下從數(shù)據(jù)可信度、數(shù)據(jù)的安全性、溯源效率和監(jiān)管效率方面進(jìn)行對(duì)比。
傳統(tǒng)的溯源系統(tǒng):供應(yīng)鏈數(shù)據(jù)存儲(chǔ)于多個(gè)中心化數(shù)據(jù)庫(kù)中,易于單方面篡改,數(shù)據(jù)的可信度低;中心化的數(shù)據(jù)庫(kù)易于遭到黑客攻擊,數(shù)據(jù)安全性有待提高;溯源過(guò)程消耗大量人力物力,取證需要多個(gè)參與主體的共同配合,追溯效率較低;監(jiān)管機(jī)構(gòu)通常在產(chǎn)品發(fā)生質(zhì)量問(wèn)題時(shí)進(jìn)行監(jiān)管與調(diào)查,無(wú)法做到實(shí)時(shí)管控,監(jiān)管的深度和廣度有待加強(qiáng)。
圖9 汽車供應(yīng)鏈溯源信息界面
區(qū)塊鏈溯源系統(tǒng):區(qū)塊鏈數(shù)據(jù)庫(kù)由多方共同維護(hù),通過(guò)共識(shí)機(jī)制達(dá)成一致性,幾乎無(wú)法篡改,數(shù)據(jù)可信賴;去中心化的區(qū)塊鏈數(shù)據(jù)庫(kù),抗攻擊能力強(qiáng),數(shù)據(jù)的安全性高;產(chǎn)品的數(shù)據(jù)記錄在區(qū)塊鏈上,任何人都可以查看,出現(xiàn)問(wèn)題可直接查證,追溯效率較高;將監(jiān)管機(jī)構(gòu)納入到區(qū)塊鏈溯源系統(tǒng),可時(shí)時(shí)監(jiān)測(cè)供應(yīng)鏈相關(guān)數(shù)據(jù);極大提升監(jiān)管效率。
將本文的溯源系統(tǒng)與文獻(xiàn)中3 篇基于其他技術(shù)的汽車供應(yīng)鏈溯源系統(tǒng)做比較,從表3中可以看出,4篇文章設(shè)計(jì)的系統(tǒng)都具有可追溯性,僅有本系統(tǒng)和文獻(xiàn)[9]具備數(shù)據(jù)的完整性。除此之外,本系統(tǒng)還具備其他系統(tǒng)不具備的數(shù)據(jù)安全性,以及高效的監(jiān)管能力與追溯效率。通過(guò)對(duì)比可以得出,區(qū)塊鏈溯源系統(tǒng)相比于傳統(tǒng)的溯源系統(tǒng),能夠增強(qiáng)數(shù)據(jù)的可信度、提高溯源效率、加大監(jiān)管機(jī)構(gòu)的管控力度、保證數(shù)據(jù)的安全性。
表3 系統(tǒng)性能對(duì)比
本文基于區(qū)塊鏈技術(shù)構(gòu)建了汽車供應(yīng)鏈的溯源系統(tǒng),采用區(qū)塊鏈+汽車供應(yīng)鏈的模式,對(duì)生產(chǎn)銷售數(shù)據(jù)進(jìn)行分布式存儲(chǔ),保證了供應(yīng)鏈數(shù)據(jù)的安全性,增加參與方的互相信任,使得汽車產(chǎn)品的溯源更加高效便捷。在系統(tǒng)的設(shè)計(jì)方面,增加了對(duì)敏感數(shù)據(jù)的處理環(huán)節(jié),根據(jù)功能需求設(shè)計(jì)了智能合約,通過(guò)實(shí)例對(duì)溯源系統(tǒng)進(jìn)行了展示。最后,分析了區(qū)塊鏈溯源方式相比于傳統(tǒng)溯源方式的優(yōu)勢(shì)??傊瑓^(qū)塊鏈技術(shù)的使用,能夠重塑信任體系、減小溯源難度、增加信息共享效率。在實(shí)際的應(yīng)用場(chǎng)景中,應(yīng)結(jié)合具體的使用環(huán)境進(jìn)行調(diào)整,比如參與方使用系統(tǒng)的激勵(lì)方案設(shè)計(jì)、多方協(xié)調(diào)等問(wèn)題。區(qū)塊鏈作為一項(xiàng)新技術(shù),發(fā)展過(guò)程會(huì)面臨諸多問(wèn)題和機(jī)遇。在汽車制造行業(yè),區(qū)塊鏈除了具有防偽溯源的潛能,在智能倉(cāng)儲(chǔ)、物流運(yùn)輸、供應(yīng)鏈金融等方面也存在巨大的發(fā)展前景。