陳成雪 范書國
智能合約是一種部署在區(qū)塊鏈上的計(jì)算機(jī)協(xié)議,它可以實(shí)現(xiàn)雙方的可信的交易,并且交易是可追蹤的,但交易完成之后是不可逆轉(zhuǎn)的。比特幣的誕生使人們認(rèn)識(shí)到區(qū)塊鏈可以給智能合約帶來可信的執(zhí)行環(huán)境。隨著以太坊和超級賬本等平臺(tái)的發(fā)展,為智能合約的編寫提供了更靈活的環(huán)境。目前,智能合約被應(yīng)用于共享汽車領(lǐng)域,解決了共享汽車平臺(tái)中行為監(jiān)督和信譽(yù)等復(fù)雜決策問題;針對版權(quán)保護(hù)的問題,用超級賬本構(gòu)建一種適合媒體版權(quán)保護(hù)的智能合約,實(shí)現(xiàn)版權(quán)登記和版權(quán)保護(hù)功能;通過對傳統(tǒng)電網(wǎng)的分析,提出利用智能合約技術(shù)建立公平競價(jià)規(guī)則及多目標(biāo)動(dòng)態(tài)規(guī)劃的交易模型。現(xiàn)在,在糧食交易行業(yè)處理模式,或多或少的存在糧食安全、交易雙方的信任等問題?;谝陨戏治?,本文結(jié)合區(qū)塊鏈和支持智能合約體系的Hyperledger Fabric平臺(tái),首先對糧食交易系統(tǒng)進(jìn)行框架設(shè)計(jì),建立了多層次的應(yīng)用架構(gòu);然后將交易以智能合約的形式部署區(qū)塊鏈上。
(一)智能合約
智能合約的實(shí)質(zhì)其實(shí)是一段計(jì)算機(jī)程序,這段程序中記錄了合約的內(nèi)容。一旦滿足程序預(yù)設(shè)的條件,就會(huì)觸發(fā)自動(dòng)執(zhí)行,快速完成交易事務(wù)。經(jīng)審計(jì)驗(yàn)證過的智能合約需要經(jīng)多方簽署后才能部署在區(qū)塊鏈系統(tǒng)中,它不僅是一個(gè)可以自動(dòng)完成觸發(fā)執(zhí)行的計(jì)算機(jī)程序,同時(shí)也是區(qū)塊鏈系統(tǒng)的參與者,可以在沒有任何第三方干預(yù)的情況下轉(zhuǎn)移和存儲(chǔ)系統(tǒng)中的智能資產(chǎn)。
(二)區(qū)塊鏈
區(qū)塊鏈技術(shù)是一種由密碼學(xué)作為支撐,按照交易的時(shí)間次序來完成存儲(chǔ)和數(shù)據(jù)的驗(yàn)證,相當(dāng)于一個(gè)分布式數(shù)據(jù)庫。在一個(gè)區(qū)塊鏈系統(tǒng)中,節(jié)點(diǎn)可以在短時(shí)間內(nèi)通過共識(shí)機(jī)制對某一件事達(dá)成一致,然后在區(qū)塊鏈上完成對這件事情的存儲(chǔ),并廣播到其他的區(qū)塊中,實(shí)現(xiàn)了一個(gè)去中心化的可信任系統(tǒng)。區(qū)塊鏈的廣播賬本實(shí)現(xiàn)了交易記錄的安全、可靠,實(shí)現(xiàn)了點(diǎn)與點(diǎn)之間的透明,從而保證了交易記錄的可審計(jì)性,保證了數(shù)據(jù)信息交互的安全、穩(wěn)定。因此,區(qū)塊鏈技術(shù)被人們認(rèn)為是能夠在未來社會(huì)發(fā)展過程中解決信任危機(jī)的一種革命性技術(shù)。
(三)Hyperledger Fabric
Hyperledger Fabric是一個(gè)開源的區(qū)塊鏈構(gòu)架,它提供一個(gè)模塊化的構(gòu)架,智能合約在商業(yè)自動(dòng)化進(jìn)程中非常管用,而且誠信可靠,它能夠使利益相關(guān)方以團(tuán)體形式處理并驗(yàn)證合約條款。Fabric目前是與比特幣、以太坊平臺(tái)并駕齊驅(qū)的主流區(qū)塊鏈開發(fā)平臺(tái),它支持聯(lián)盟鏈,在聯(lián)盟鏈中全部參與者必須經(jīng)過身份驗(yàn)證才能參與到該區(qū)塊鏈進(jìn)行交易。本系統(tǒng)采用聯(lián)盟鏈技術(shù),利用Hyperledger Fabric 開源聯(lián)盟鏈平臺(tái)進(jìn)行開發(fā)。
糧食的信息主要依賴于互聯(lián)網(wǎng)設(shè)備(RFID技術(shù)、二維碼、傳感器裝置、GPS定位技術(shù)等)和物流數(shù)據(jù)接口來收集糧食產(chǎn)品從種植、加工到銷售各環(huán)節(jié)的數(shù)據(jù)。將收集處理后的數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈中。糧食信息主要包括生長信息、交易信息、庫存信息以及物流信息等。并將各個(gè)時(shí)間段的糧食信息裝入到帶有時(shí)間戳的區(qū)塊中。
對帶有時(shí)間戳的區(qū)塊通過P2P協(xié)議進(jìn)行驗(yàn)證,驗(yàn)證通過后再由共識(shí)算法進(jìn)行封裝,形成糧食產(chǎn)品安全信息的共識(shí)機(jī)制,最后將這個(gè)區(qū)塊加入到區(qū)塊鏈中。在區(qū)塊鏈系統(tǒng)中通過激勵(lì)機(jī)制來更好的維持區(qū)塊鏈系統(tǒng)的秩序,利用發(fā)行機(jī)制,保證糧食產(chǎn)品的有效配置、高效利用和激勵(lì)相容等特點(diǎn)。
最后,可通過智能合約對糧食安全信息進(jìn)行不可篡改的可編程操作。
智能合約通過支持更加強(qiáng)大的編程語言和運(yùn)行環(huán)境,可以實(shí)現(xiàn)對不同的糧食交易去執(zhí)行不同的可編程操作。以下介紹智能合約在糧食交易中的關(guān)鍵業(yè)務(wù)流程,并為其設(shè)計(jì)智能合約,最終在整個(gè)區(qū)塊鏈網(wǎng)絡(luò)中達(dá)成體系共識(shí)。
在本文的應(yīng)用中,參與者包括銷售商、糧食加工者、糧食生產(chǎn)者、消費(fèi)者、監(jiān)管部門、物流商,在本系統(tǒng)中的所有節(jié)點(diǎn)都參與維護(hù)區(qū)塊鏈賬本,并且都需要先注冊,通過注冊來獲得密鑰和許可證書,只有擁有證書的用戶才可以接入網(wǎng)絡(luò)發(fā)布交易。
(一)身份認(rèn)證合約
利用Fabric身份服務(wù)、訪問控制和智能合約等功能,為每個(gè)參與者分配身份特征和訪問控制功能。讓每一個(gè)參與者都以節(jié)點(diǎn)的身份加入鏈中,鏈上的每個(gè)節(jié)點(diǎn)負(fù)責(zé)接收鏈上的用戶上傳的信息數(shù)據(jù),并在區(qū)塊鏈中進(jìn)行驗(yàn)證后將數(shù)據(jù)打包至區(qū)塊上; 同時(shí),創(chuàng)建公共區(qū)塊鏈和密鑰區(qū)塊鏈(身份驗(yàn)證的關(guān)鍵),公共區(qū)塊鏈向糧食交易區(qū)塊鏈的全體成員做到信息公開。
監(jiān)管部門會(huì)在糧食流通之前為糧食進(jìn)行注冊登記,然后上傳到鏈中的數(shù)據(jù)庫。當(dāng)糧食流通時(shí)觸發(fā)糧食注冊合約,更新糧食狀態(tài)。在區(qū)塊鏈上的每一次交易,驗(yàn)證機(jī)制都會(huì)驗(yàn)證參與交易的用戶是否合法,驗(yàn)證糧食信息是否合法。
(二)交易合約
系統(tǒng)中的交易合約用于處理系統(tǒng)中交易業(yè)務(wù)的上傳,其中包括交易合同、異常處理合同和食品逾期處理合同。本文提出的智能合約描述了系統(tǒng)的邏輯流程,并通過鏈碼在Fabric中實(shí)現(xiàn)。
根據(jù)注冊合約的要求,糧食監(jiān)管部門對糧食質(zhì)量進(jìn)行檢查,并將報(bào)告上傳到區(qū)塊鏈網(wǎng)絡(luò),完成糧食信息在區(qū)塊鏈的存儲(chǔ)。糧食生產(chǎn)者將糧食售賣于購買者,上傳交易的明細(xì)合同,變更糧食所有者信息。
糧食在運(yùn)輸過程中由物流商進(jìn)行實(shí)時(shí)監(jiān)控并上傳到區(qū)塊鏈中,若無異常則完成交易合約,若有異常發(fā)生則觸發(fā)異常處理合約。
當(dāng)糧食長期積壓,監(jiān)管部門會(huì)根據(jù)糧食上鏈時(shí)間觸發(fā)糧食過期處理,一定程度上保證糧食的安全性。
通過構(gòu)建部署在區(qū)塊鏈上的糧食產(chǎn)品交易智能合約,為區(qū)塊鏈上的用戶提供了極大的便利,具體表現(xiàn)在:信息的公開性提高了糧食商市場中人們對各類糧食的需求了解,從而提高了糧食產(chǎn)品的經(jīng)濟(jì)效益;消費(fèi)者作為用戶在完成注冊后其信息被存入?yún)^(qū)塊中,實(shí)現(xiàn)追溯數(shù)據(jù)查詢,大大提高了交易的成功率;將交易合約以智能合約的形式部署在區(qū)塊鏈上線上交易不依賴于第三方信任體系,可以大大減少許多商業(yè)交易欺詐和執(zhí)法成本。
作者單位:沈陽師范大學(xué) 軟件學(xué)院