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