?

基于區塊鏈的供應鏈金融數據存證模型

2022-08-03 01:34李正超梁志宏
關鍵詞:吞吐量合約區塊

李正超,梁志宏,岳 昆**

(1.云南大學 信息學院,云南 昆明 650500;2.西南林業大學 大數據與人工智能學院,云南 昆明 650224)

供應鏈金融是一種重要的融資模式,廣泛應用于醫藥供應鏈、汽車供應鏈、房地產供應鏈等領域,供應鏈金融數據是金融機構進行金融風險分析及企業獲取融資的重要數據.然而,供應鏈體系中心化程度高、數據篡改難度低,數據的篡改直接影響供應鏈的安全與穩定[1].研究人員在現有供應鏈金融體系中引入加密技術、大數據、物聯網、云計算等技術,以防范潛在風險[2],但受限于中心化的管理方式,供應鏈數據的安全性問題尚未得到有效解決,數據偽造、篡改的事件時有發生.例如,2019 年的閩興藥業騙貸案、諾亞財富踩雷事件、武漢金凰珠寶假黃金案,都暴露出了目前供應鏈金融體系中的數據篡改風險[3].因此,數據防篡改是供應鏈金融體系中亟待解決的問題.

區塊鏈技術的出現,為解決現有供應鏈金融體系中存在的問題提供了新的思路.區塊鏈本質是一種集體維護的分布式賬本技術,具有去中心化、不可篡改、透明可信的特性,與供應鏈金融體系具有天然契合之處.融合區塊鏈技術的供應鏈金融體系中,數據由區塊鏈網絡節點共同維護,鏈上數據不可篡改.然而,研究表明,區塊鏈雖然安全性高,但存在性能瓶頸,一方面,隨著數據的不斷增加,區塊鏈的存儲空間成為其限制條件;另一方面,區塊鏈網絡的交易處理能力弱,例如比特幣每秒僅能處理7 筆交易,以太坊每秒處理15 筆交易[4].目前,國內外在供應鏈方面的研究中引入區塊鏈技術,但側重于隱私保護、數據溯源,對區塊鏈性能方面的優化研究較少.因此,為了高效地實現供應鏈金融數據安全存儲,本文旨在研究高存儲效率的供應鏈金融數據存證模型.

聯盟鏈是部分去中心化的分布式結構,事務吞吐量高,適用于多個實體組成的組織或聯盟[5],因此本文將聯盟鏈用于供應鏈參與方之間構建權利對等的區塊鏈網絡,以提高區塊鏈存儲供應鏈金融數據的效率.此外,針對供應鏈金融數據存儲和金融風險分析的需求,提出雙聯盟鏈架構,利用智能合約對數據進行上鏈存證及訪問.

鏈下存儲是一種區塊鏈擴容方法,可以有效提高區塊鏈交易效率.針對區塊鏈存儲資源有限和性能低的問題,本文借鑒鏈上鏈下存儲方法,使用星際文件系統[6](Inter-Planetary File System,IPFS)存儲鏈下數據,而鏈上僅存儲數據指紋,實現了供應鏈金融數據高效地存儲于分布式數據庫中.為了驗證本文所提方法的存儲和查詢高效性,本文通過吞吐量來描述存儲和查詢效率,在數據集上的實驗結果驗證了所提方法的高效性.

1 相關工作

近年來,研究人員在供應鏈數據保護與共享、區塊鏈擴容等方面開展了許多研究.

在供應鏈數據保護方面,基于公有鏈的數據存儲方法可以有效保障數據安全性,例如,Gao 等[7]提出基于區塊鏈的供應鏈管理模型,使用公有鏈和聯盟鏈相結合的混合鏈方式存儲供應鏈數據.Xu等[8]設計了基于區塊鏈的產品溯源系統,借助區塊鏈只能插入數據不能刪除數據的特點,為取證提供可追溯數據,并在以太坊上部署溯源智能合約.然而,這類使用公有鏈存儲供應鏈數據的方法開銷十分昂貴,并且存儲效率極低.

在供應鏈數據共享方面,一些方法通過加密算法和授權訪問方式來存儲及訪問數據,并提供隱私保護.例如,Abidi 等[9]借助區塊鏈技術實現供應鏈網絡中的敏感數據共享,對敏感數據進行數據清洗和密鑰加密,以提供隱私保護,加密數據存儲在區塊鏈中.Leng 等[10]提出基于區塊鏈的農業供應鏈雙鏈模型,該模型同時使用公有鏈和私有鏈存儲數據.上述方法解決了數據共享過程中存在的數據易篡改、泄密問題,但其效率受限于加密解密運算.

在區塊鏈擴容方面,一些模型以IPFS 作為底層存儲[11].例如,Zheng 等[12]提出一種基于IPFS的區塊鏈存儲模型,以拓展比特幣存儲空間,曠工將交易數據存入IPFS,并將返回的IPFS 哈希值寫入區塊鏈.Kumar 等[13]提出一種基于區塊鏈和IPFS 的圖像視頻版權保護模型,使用IPFS 存儲圖像和視頻元數據,區塊鏈僅存儲圖像指紋.文獻[14]提出一種基于區塊鏈的檔案數據保護與共享方法,結合IPFS 存儲檔案數據,實現了數字檔案的保護、驗證、恢復與共享功能,該方法可拓展區塊鏈數據存儲能力[15]、減輕鏈上數據高頻訪問壓力.

在現有研究的基礎上,本文基于區塊鏈技術解決供應鏈金融數據安全存證問題,引入IPFS 對區塊鏈進行擴容,提高了聯盟鏈存儲和查詢數據的效率.

2 基于區塊鏈的供應鏈存證模型

2.1 模型描述 定義 1供應鏈金融數據主要包括供應鏈金融關鍵數據(Supply Chain Finance Key Information,FKI)和文件關鍵信息數據(Document Key Information,DKI),FKI 包括授信、融資、融信、支付、企業信用、企業負債等信息,表示為F={f1,f2,···,fn};DKI 包括合同、發票、圖片、IPFShash等相關信息,其中,IPFShash為文件元數據存入IPFS后返回的索引值,D={d1,d2,···,dn}.

定義 2金融信息聯盟鏈(Financial Information Alliance Chain,FIAC)中存儲交易FKI;文件關鍵信息聯盟鏈(Document Key Information Alliance Chain,DIAC)中存儲交易DKI.

區塊鏈的去中心化、不可篡改和智能合約機制等特點,可以滿足供應鏈金融數據存證中的防篡改、安全訪問需求.鑒于此,本文提出基于區塊鏈的供應鏈金融數據存證模型.模型使用六元組<BlockNet,DIAC,FIAC,IPFS,SC,Consensus>表示,如圖1 所示,其中:

圖1 基于區塊鏈的供應鏈金融數據存證模型Fig.1 Blockchain-based data storage model for supply chain finance

(1)BlockNet 表示區塊鏈網絡,以聯盟鏈為基礎構建,由多個組織機構組成,主要組織機構包括銀行、核心企業、供應商、監管部門等,每個組織機構由多個實體節點組成,節點加入時需要進行身份認證,各節點共同維護聯盟鏈,在區塊中添加供應鏈金融數據以及監管部門的審核信息.聯盟鏈網絡中沒有絕對中心化的第三方,核心企業不再作為中心化節點.

(2)FIAC 和DIAC 兩條區塊鏈、以及IPFS 組成了數據存儲層,IPFS 存儲文件元數據,DIAC 鏈存儲文件關鍵數據,確保原始數據的完整性,FIAC鏈存儲供應鏈金融數據,可用于供應鏈金融風險分析,在雙鏈結構中,FIAC 鏈和DIAC 鏈通過hash指針的方式錨定連接.

(3)SC 表示智能合約,智能合約實現數據上鏈、訪問功能,鏈上節點只能通過調用事先部署在區塊鏈中的智能合約操作數據,區塊鏈和鏈下IPFS 之間的數據交互同樣也是通過智能合約完成.

(4)Consensus 表示共識算法[16],具有維護區塊鏈網絡每一個節點唯一公認的全局賬本的功能,避免網絡延遲、節點崩潰、惡意攻擊等原因引起的系統錯誤,同時,共識算法是影響模型性能的重要因素.

2.2 基于智能合約的存儲及訪問算法為了保證供應鏈金融數據的鏈上鏈下存儲,基于2.1 節提出的模型,本節給出基于智能合約的數據存儲和訪問算法,智能合約在滿足條件時可觸發自動執行,減少人為干預,從而保障數據安全性.合約框架如圖2所示,數據管理智能合約(Data Manage Smart Contract,DMSC)作為聯盟鏈中的全局合約[14],記錄聯盟鏈中部署的智能合約,包括數據存儲智能合約(Data Insert Smart Contract,DISC)、數據查詢智能合約(Data Query Smart Contract,DQSC),實現數據上鏈和查詢功能.

圖2 智能合約框架Fig.2 Frame of smart contracts

算法1 給出供應鏈金融數據存儲方法,該算法將供應鏈金融數據記入區塊鏈,方便后續的數據驗證及供應鏈金融風險分析.首先初始化IPFS 私有集群,當聯盟鏈節點請求數據上鏈時,節點連接IPFS,第3 步存儲鏈下數據,文件成功存儲到IPFS后,IPFS 返回IPFShash作為索引,同時調用DISC 將數據寫入區塊,數據經過區塊鏈網絡廣播、驗證、同步后完成數據上鏈.該算法的時間復雜度取決于步驟7 和9 所使用的共識算法.

算法1供應鏈金融數據存儲

輸入文件名file、IPFS 的IP 地址和連接端口port.

輸出上鏈狀態status.

步驟:

算法2 給出供應鏈金融數據訪問方法,當聯盟鏈節點請求讀取鏈上數據時,第1~2 步讀取數據,節點需要調用DQSC 從聯盟鏈上獲取文件關鍵數據和供應鏈金融關鍵數據,然后根據文件關鍵數據中的索引IPFShash下載文件,并驗證數據真實性.該算法中通過遍歷區塊鏈的方式查詢數據,因此,時間復雜度為O(n),其中,n為區塊數量.

算法2供應鏈金融數據訪問

輸入文件標識fileID、交易數據txid.

輸出供應鏈金融數據集DataSet.

步驟:

3 實驗結果分析

3.1 實驗指標為了評估本文所提存證模型的效果,使用測試數據集模擬供應鏈場景下的金融數據存儲和查詢實驗,模擬實驗的方法將在3.3、3.4 節進行詳細描述.實驗以吞吐量(Transaction Per Second,TPS)作為評估存儲效率和查詢效率的指標,計算方法如下:

其中,MΔt表示Δt時間內模型處理的交易總數.

實驗通過增加存儲和查詢數據量、共識節點數的方法,發起100~10 000 條數據寫入和查詢請求,測試模型資源消耗、寫入吞吐量和查詢吞吐量最大值、雙鏈交互性能;通過增加存儲文件大小的方法,發起1~32 MB 大小的文件寫入和查詢請求,測試及對比區塊鏈和IPFS 的存儲、查詢效率.

3.2 實驗環境本文基于Hyperledger Fabric 區塊鏈實驗平臺部署聯盟鏈,使用Golang 語言開發智能合約,以鏈碼的形式部署在聯盟鏈中,實驗環境如下:Centos7.8、Fabric1.4.1、Docker19.03.12、Go1.11.11、Tape0.3.0,1 臺2.5 GHz Intel Core i5-7200U CPU 和16 GB RAM的計算機.Fabric 網絡通過Docker 容器運行,實驗過程中啟動的Docker容器如表1 所示,聯盟鏈由多個組織機構組成,每個組織機構由1 個Peer 節點、1 個Orderer 節點和1個Fabric-ca 節點組成,使用CouchDB 作為數據庫存儲區塊交易,IPFS 系統同樣通過Docker 容器搭建.

表1 模型測試實驗環境Tab.1 The experiment environment for model testing

3.3 模型存儲效率測試為了測試不同聯盟鏈節點數量的情況下模型的寫入吞吐量,創建6 組測試數據集,在保證寫入成功率為100%的情況下,由節點調用DISC 智能合約,在節點數為4、8、12、16、20 和24 的情況下,分別發起100、500、1 000、2 000、5 000 和10 000 條數據上鏈請求,每組實驗重復10 次取平均值,避免實驗結果的偶然性,結果如圖3 所示.可以看出,當節點數為4 時,上鏈數據集規模在100~500 條時,吞吐量增長較快;規模在500~5 000 條時,吞吐量緩慢增長;規模在5 000條以上時,由于服務器性能達到瓶頸,吞吐量在370 左右波動,模型的寫入吞吐量最高為370 事務數/s,平均出塊率為每秒3.6 個區塊.此外,模型事務處理效率與節點數量負相關,當共識節點數為24 時,模型最高寫入效率為227 事務數/s、下降了38.6%.由算法1 可知,數據寫入區塊鏈需要使用共識算法,隨著共識節點orderer 數量的增加,節點之間通信次數增加,驗證區塊交易的時間消耗隨之增加,因此,模型中節點數量越多,模型事務處理效率越低,吞吐量越低.記錄寫入吞吐量達到最大時的資源消耗情況,如表2 所示,模型的中各組件的硬件資源消耗并不高,可滿足實際應用場景下的部署要求.

圖3 不同節點數的鏈上存儲效率對比Fig.3 Comparison of on-chain storage efficiency with different number of nodes

表2 模型各組件硬件資源消耗Tab.2 Consumption of hardware resource for each component of the model

為了測試IPFS 對存儲效率的影響,使用1~32 MB 大小的文件,分別存儲到IPFS 和區塊鏈中,對比鏈上和鏈下的存儲效率,結果如圖4 所示.可以看出,區塊鏈上存儲耗時、IPFS 存儲耗時均與文件大小呈正相關,但IPFS 存儲效率要高于區塊鏈存儲效率,其平均存儲效率比區塊鏈高37.1%,因此,模型中使用IPFS 不僅能擴展區塊鏈存儲空間,還能提高模型存儲效率.

圖4 不同大小文件的鏈上鏈下存儲效率對比Fig.4 Comparison of on-chain and off-chain storage efficiency for different file sizes

3.4 查詢效率測試為了測試模型的查詢效率,節點調用DQSC 智能合約查詢區塊鏈中的數據,在保證查詢成功率為100%的情況下,分別發起6 組數據上鏈請求,結果如圖5 所示,有索引查詢時,模型的查詢吞吐量峰值為每秒處理261 個事務,無索引查詢時模型的查詢吞吐量峰值為每秒處理186個事務.

圖5 不同索引方式的鏈上查詢效率對比Fig.5 Comparison of the efficiency of on-chain queries with different indexing methods

為了測試IPFS 對查詢效率的影響,分別查詢IPFS 和區塊鏈上存儲的1、2、4、8、16、32 MB 大小的文件,結果如圖6 所示.可以看出,隨著文件大小的增加,從區塊鏈獲取文件元數據耗時、IPFS 獲取文件耗時均與文件大小呈正相關,但IPFS 查詢效率要高于區塊鏈,其平均查詢效率比區塊鏈高72.3%,因此,IPFS 提高了模型的查詢效率.

圖6 不同大小文件的鏈上鏈下查詢效率對比Fig.6 Comparison of the efficiency of on-chain and off-chain queries for different file sizes

針對本文提出的基于區塊鏈的供應鏈金融數據存證模型,與現有文獻中結合區塊鏈技術的供應鏈模型在存儲開銷方面進行對比,如表3 所示.可以看出,本文提出的基于區塊鏈的供應鏈數據存證模型使用聯盟鏈架構,其去中心化程度可以靈活設置,因此模型可以安全存儲供應鏈金融數據、有效預防數據篡改,結合IPFS 系統進行鏈下文件存儲,減小了鏈上存儲開銷,有效提高了模型可擴展性和存儲效率.實驗結果表明,模型吞吐量可達370 事務數/s,效率較高,資源消耗低.通過對比可知,本文提出的模型在資源消耗、存儲效率、可擴展性等方面有顯著的優勢.

表3 基于區塊鏈的供應鏈數據存證模型對比Tab.3 Comparison of blockchain-based supply chain data storage models

3.5 雙鏈交互性能測試為了測試模型中雙鏈之間的交互性能,節點調用DISC 智能合約將DIAC鏈上存儲的6 組數據的哈希值寫入FIAC 鏈,同時通過FIAC 鏈上的哈希值查詢DIAC 鏈上的數據,結果如圖7 所示,其中,Write 表示DIAC 鏈上每條數據哈希值寫入FIAC 鏈的平均響應時間,Query表示根據哈希值查詢DIAC 鏈上每條數據的平均響應時間.可以看出,隨著交互數據量的增加,平均響應時間逐漸減小,在數據規模為10 000 條時,由于服務器性能達到瓶頸,每條交互數據的平均寫入耗時穩定在33.4 ms、平均查詢耗時穩定在14.8 ms.

圖7 雙鏈寫入和查詢性能Fig.7 Performance of double-chain write and query

4 總結

本文設計了一種基于區塊鏈的供應鏈金融數據存證模型,模型采用鏈上鏈下相結合的存儲方式,使用雙區塊鏈存儲供應鏈金融數據,并設計了智能合約實現對鏈上數據的操作.鏈下使用IPFS 存儲供應鏈金融相關文件,可有效擴展區塊鏈存儲能力.通過實驗對模型多項指標進行了測試及分析,結果表明,本文模型吞吐量高、資源消耗低,對實際應用有一定意義.借助本模型,供應鏈企業的數據可以在不借助第三方中心化機構的情況下實現安全、高效存儲.在未來的工作中,將繼續深入研究模型優化,針對供應鏈特點,對共識算法進行改進,進一步提高模型存儲效率.

猜你喜歡
吞吐量合約區塊
《紅樓夢》的數字化述評——兼及區塊鏈的啟示
一場區塊鏈引發的全民狂歡
區塊鏈助力企業創新
區塊鏈投機者
2017年3月長三角地區主要港口吞吐量
2016年10月長三角地區主要港口吞吐量
2016年11月長三角地區主要港口吞吐量
2014年1月長三角地區主要港口吞吐量
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合