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