王可可 陳志德 徐健
摘 要:針對農(nóng)產(chǎn)品追溯系統(tǒng)中的安全和效率問題,依據(jù)區(qū)塊鏈的去中心化安全特性,提出一種基于聯(lián)盟區(qū)塊鏈的高效解決辦法。首先,通過星際文件系統(tǒng)(IPFS)對農(nóng)產(chǎn)品數(shù)據(jù)進行hash轉(zhuǎn)變,從而減小區(qū)塊中單條事務數(shù)據(jù)量,并利用IPFS數(shù)據(jù)的不可逆原理,達到數(shù)據(jù)的初步保障;其次,建立聯(lián)盟區(qū)塊鏈模型進行數(shù)據(jù)驗證,區(qū)塊鏈數(shù)據(jù)驗證的共識算法采用實用拜占庭容錯(PBFT)算法來減少全網(wǎng)共識時間;最后,根據(jù)仿真實驗中參與節(jié)點數(shù)、區(qū)塊大小和網(wǎng)絡帶寬,來擬合驗證交易的時間曲線,進而計算出不同帶寬下的區(qū)塊鏈交易效率,并結(jié)合數(shù)以萬計的傳感器參與下的農(nóng)產(chǎn)品追溯系統(tǒng)的實際情況,對比區(qū)塊鏈雙鏈結(jié)構(gòu),給出分析結(jié)果。實驗結(jié)果表明,在低于1000個驗證節(jié)點的條件下,區(qū)塊鏈最大共識時長為32 min,聯(lián)盟鏈系統(tǒng)可支持35~40萬條傳感器數(shù)據(jù),可適用于大范圍、多數(shù)據(jù)的農(nóng)產(chǎn)品追溯。
關(guān)鍵詞:聯(lián)盟區(qū)塊鏈;農(nóng)產(chǎn)品追溯;星際文件系統(tǒng);實用拜占庭容錯算法;交易效率
中圖分類號:?TP309; TP311
文獻標志碼:A
Efficient traceability system for quality and safety of agricultural products based on consortium blockchain
WANG Keke1,2*, CHEN Zhide1,2, XU Jian1,3
1.College of Mathematics and Informatics, Fujian Normal University, Fuzhou Fujian 350007, China ;
2.Fujian Provincial Key Laboratory of Network Security and Cryptology (Fujian Normal University), Fuzhou Fujian 350007, China ;
3.Engineering Research Center of Fujian University for Electronic Information and Control (Minjiang University), Fuzhou Fujian 350007, China
Abstract:?Concerning of the security and efficiency problems of the agricultural product traceability system, based on the decentralization security feature of blockchain, an efficient solution based on consortium blockchain was proposed. Firstly, through Inter-Planetary File System (IPFS), the agricultural product data was hashed, so as to reduce the data size of single transactions in the block, and the initial guarantee of data was achieved by using the irreversible principle of IPFS data. Secondly, the consortium blockchain model for data verification was established, and Practical Byzantine Fault Tolerant (PBFT) algorithm was used as consensus algorithm for blockchain data verification to reduce the consensus time of the whole network. Finally, according to the number of participating nodes, block size and network bandwidth in the simulation experiment, the time curve of the verification transaction was fitted, and then the blockchain transaction efficiency under different bandwidths was calculated; by using tens of thousands of actual situations of the agricultural product traceability system with the participation of sensors, the blockchain double-chain structure was compared to obtain the analysis results. Experimental results show that under the condition of less than 1000 verification nodes, the maximum consensus time of blockchain is 32min, and the consortium blockchain system can support 350000-400000 sensor data, which can be applied to large-scale and multi-data agricultural product traceability.
Key words:?consortium blockchain; agricultural product traceability; Inter-Planetary File System (IPFS); Practical Byzantine Fault Tolerance (PBFT) algorithm; transaction efficiency
0 引言
農(nóng)產(chǎn)品可追溯系統(tǒng)是追蹤農(nóng)產(chǎn)品從生產(chǎn)到消費的各個階段農(nóng)產(chǎn)品質(zhì)量安全的一個整體系統(tǒng)。農(nóng)產(chǎn)品安全是維系人們生命與健康的重要因素,建立高效、可信任的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng),是促進食品安全,保證人民健康的重要前提。
農(nóng)產(chǎn)品追溯系統(tǒng)從一開始就受到國內(nèi)外專家的重視,早在2002年,美國國會就通過了“生物反恐法案”開始建立農(nóng)產(chǎn)品質(zhì)量安全可追溯制度[1]。 2003年5月FDA公布了《食品安全跟蹤條例》,要求所有涉及食品運輸 、配送和進口的企業(yè)要建立并保全相關(guān)食品流通的全過程記錄[2]。2006年,我國農(nóng)業(yè)部也正式提出建立農(nóng)產(chǎn)品質(zhì)量安全追溯體系,按照承建主體的不同產(chǎn)生了四種類型的追溯系統(tǒng):分別由政府、社會組織、企業(yè)、食品生產(chǎn)公司內(nèi)部質(zhì)量安全追溯系統(tǒng)[3]。到目前為止雖然社會各界已經(jīng)對農(nóng)產(chǎn)品質(zhì)量安全追溯的重要性達成了共識,相關(guān)制度和系統(tǒng)建設也初見成效,但是在實際工作中仍然存在許多問題。
伴隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)技術(shù)的發(fā)展,農(nóng)產(chǎn)品質(zhì)量安全追溯登上一個新的臺階,借助物聯(lián)網(wǎng)、信息采集技術(shù)、數(shù)據(jù)庫和云儲存等,在農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)的各個環(huán)節(jié)實現(xiàn)改進。比如,文獻[4]中介紹了從制造商到消費者的運輸過程中實現(xiàn)食品質(zhì)量檢測的可能性,利用傳感器遠程監(jiān)控系統(tǒng)結(jié)合物聯(lián)網(wǎng)技術(shù),提出了一種基于物聯(lián)網(wǎng)實時食品可追蹤和食品運輸過程可監(jiān)測的低成本解決方案。盡管物聯(lián)網(wǎng)技術(shù)已經(jīng)足夠成熟,但是農(nóng)產(chǎn)品生產(chǎn)銷售體系涉及主體眾多,影響體系的不確定因素繁瑣,借助傳感器實時監(jiān)控資源消耗大等,導致質(zhì)量安全追溯體系的管理難度大、效率低,特別是數(shù)據(jù)存儲安全仍然面臨眾多挑戰(zhàn)和問題。于是文獻[5-7]中提出運用區(qū)塊鏈分布式存儲技術(shù),借助區(qū)塊鏈不可逆的特性解決了在數(shù)據(jù)存儲階段中篡改或破壞數(shù)據(jù)的可能性。區(qū)塊鏈由比特幣的底層技術(shù)發(fā)展而來,是一種具有去中心化、可追溯性、不可篡改、公開透明、共識機制和交易匿名等特點的分布式存儲技術(shù)。 然而,與其他行業(yè)相比,區(qū)塊鏈技術(shù)用于農(nóng)產(chǎn)品質(zhì)量安全追溯對物聯(lián)網(wǎng)數(shù)據(jù)的存儲壓力更大。為了實現(xiàn)分布式節(jié)點的一致性,區(qū)塊鏈的塊生成速度和事務處理能力是有限的,因此不可能直接應用區(qū)塊鏈技術(shù)處理和存儲大量的傳感器數(shù)據(jù)。為了解決存儲問題,文獻[8]-[11]中使用云計算和云存儲技術(shù)來提供應用程序。正如文獻[12]所述,傳統(tǒng)的安全問題仍然存在于云計算環(huán)境中,甚至傳統(tǒng)的安全機制也不再適用于云中的應用程序和數(shù)據(jù)。因此文獻[12]中提出了區(qū)塊鏈雙鏈結(jié)構(gòu),利用鏈式數(shù)據(jù)結(jié)構(gòu)存儲區(qū)塊鏈事務散列,并與區(qū)塊鏈一起形成雙鏈存儲,保證農(nóng)產(chǎn)品數(shù)據(jù)不會被惡意篡改或破壞。由于農(nóng)產(chǎn)品追溯涉及的標準眾多,需要對參與節(jié)點進行有效的政策把控,同時隨著數(shù)據(jù)量的增大,對于區(qū)塊鏈交易的效率也需要不斷提升,完全的公鏈已經(jīng)不能滿足這些多變性需求。聯(lián)盟鏈和公鏈相比,在高可用、高性能、可編程、隱私保護方面更有優(yōu)勢,它被認為是“部分去中心化”或者“多中心”的區(qū)塊鏈。聯(lián)盟鏈讓節(jié)點數(shù)得到了精簡,能夠使得系統(tǒng)的運行效率更高、成本更低,在單位時間內(nèi)能夠確認的交易數(shù)量要比公鏈大很多,更容易在農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)中落地。
用于大數(shù)據(jù)記錄主要存在以下問題:1)區(qū)塊鏈共識算法引起的記錄速度問題。盡管任何人都可以自由使用比特幣的區(qū)塊鏈,但每秒只能寫入7筆是它的性能極限。2)參與節(jié)點數(shù)的界限性問題。即使是在以商業(yè)用途為對象的參與者限定型區(qū)塊鏈中,當參與節(jié)點數(shù)超過幾十個時,性能就會急劇惡化。
為更好解決安全存儲和大數(shù)據(jù)存儲的問題,本文提出了一種基于區(qū)塊鏈技術(shù)的農(nóng)產(chǎn)品信息分布式存儲 (Distributed-Storage Agricultural Information, DSAI)方案。該方案借助于去中心化的星際文件系統(tǒng)(Inter-Planetary File System, IPFS)來解決存儲瓶頸。IPFS本質(zhì)上是一種內(nèi)容可尋址、版本化、點對點超媒體的分布式存儲傳輸協(xié)議[13]。通過底層協(xié)議,人們能夠輕松從IPFS上提取文件,且不受防火墻的影響,在尋找內(nèi)容過程中,用戶只需要驗證內(nèi)容的哈希,就可以實現(xiàn)內(nèi)容的訪問。IPFS哈希用來表示不可改變數(shù)據(jù),一旦數(shù)據(jù)改變,哈希值也會改變,這樣的設計充分保證了數(shù)據(jù)的不可逆。同時IPFS基本沒有存儲上的限制,大文件會被切分成小的分塊,下載時可以從多個服務器同時獲取,這又為農(nóng)產(chǎn)品大數(shù)據(jù)的存儲提供了便利。然后將產(chǎn)品固定的哈希值存入DSAI中的聯(lián)盟區(qū)塊鏈系統(tǒng),經(jīng)過全網(wǎng)共識,實現(xiàn)數(shù)據(jù)的安全可追溯。
為了解決區(qū)塊鏈共識算法引起的記錄速度和參與節(jié)點數(shù)的界限性問題,DSAI系統(tǒng)運用聯(lián)盟鏈技術(shù),通過仿真實驗,合理選取有限驗證節(jié)點,減少區(qū)塊全網(wǎng)驗證時間,保證數(shù)據(jù)的存儲時效性,減少孤塊的產(chǎn)生。
總體來說,本文在以往農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)的研究之上,探索基于區(qū)塊鏈技術(shù)的互聯(lián)網(wǎng)溯源平臺,借助物聯(lián)網(wǎng)技術(shù)的基礎(chǔ)設施,利用編碼、傳感器等基礎(chǔ)元件的應用,最終建成一個高效率、防篡改、可信任、易管理的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)。
1 DSAI系統(tǒng)模型
1.1 系統(tǒng)結(jié)構(gòu)
為了保證農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)的整體性和可行性,農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)由信息采集層、數(shù)據(jù)存儲層和應用層三個模塊組成。信息采集層包含了各種物聯(lián)網(wǎng)傳感器模塊,這些模塊可以實時收集數(shù)據(jù)并將其上傳到節(jié)點服務器;然后由服務器將其寫入到數(shù)據(jù)存儲層的分布式存儲系統(tǒng)和區(qū)塊鏈中;應用層與為用戶設計的基于數(shù)據(jù)系統(tǒng)服務的應用程序相關(guān)。具體結(jié)構(gòu)如圖1所示。
1.2 信息采集策略
信息采集模塊主要包括溫度傳感器、濕度傳感器、GPS模塊和GPRS模塊,可以根據(jù)溫度和濕度的變化來記錄農(nóng)產(chǎn)品的生產(chǎn)環(huán)境,GPS模塊進行農(nóng)產(chǎn)品定位和信息采集節(jié)點劃分。通過傳感器傳回的數(shù)據(jù)用于農(nóng)產(chǎn)品數(shù)據(jù)存儲時的質(zhì)量檢測,一旦發(fā)現(xiàn)不合要求,就不能進行存儲與運輸銷售。
1.3 數(shù)據(jù)存儲策略
在數(shù)據(jù)存儲層中,數(shù)據(jù)存儲基于區(qū)塊鏈和分布式存儲系統(tǒng),考慮到區(qū)塊鏈對傳感器大數(shù)據(jù)的輸入輸出(Input/Output, I/O)效率,本文系統(tǒng)自動封裝節(jié)點服務器采集到的傳感器數(shù)據(jù)上傳至分布式存儲系統(tǒng),以應對區(qū)塊鏈直接對大數(shù)據(jù)存儲的壓力。區(qū)塊鏈的數(shù)據(jù)存儲在一系列塊中,事務是數(shù)據(jù)存儲的載體,也就是說存入?yún)^(qū)塊鏈的數(shù)據(jù)是由一系列事務組成的,但是區(qū)塊鏈本身不能判斷這些事務的結(jié)構(gòu),因此需要自定義這些數(shù)據(jù)的標識,借助數(shù)據(jù)標識來查詢數(shù)據(jù)。首先在全網(wǎng)公布數(shù)據(jù)標識,然后在區(qū)塊鏈共識階段設置合理的共識機制。農(nóng)產(chǎn)品質(zhì)量安全追溯與虛擬貨幣不同,其數(shù)據(jù)的多元性導致不能簡單地運用工作量證明(Poof Of Work, POW)或權(quán)益證明(Poof Of Stake, POS)來實現(xiàn)共識。本文系統(tǒng)通過實用拜占庭容錯算法實現(xiàn)共識,只有得到超過51%全節(jié)點的共識,交易才能寫入?yún)^(qū)塊鏈,具體實現(xiàn)流程如圖2所示。
1.4 應用層
應用層主要涉及農(nóng)產(chǎn)品信息數(shù)據(jù)分析、追溯客戶端的建立以及系統(tǒng)各層之間的交互。通過對農(nóng)產(chǎn)品信息數(shù)據(jù)分析,可以明確知道農(nóng)產(chǎn)品在整個供應鏈中的易出問題環(huán)節(jié),以便采取更多措施來減少損害。通過建立追溯客戶端,可以最大限度地實現(xiàn)農(nóng)產(chǎn)品的大眾監(jiān)視度。整個追溯過程的建立,在系統(tǒng)各層之間交互地完成,系統(tǒng)算法對信息數(shù)據(jù)的精準處理決定追溯系統(tǒng)的效率問題。
2 安全高效的聯(lián)盟區(qū)塊鏈
在農(nóng)產(chǎn)品跟蹤問題上,應用區(qū)塊鏈現(xiàn)在面臨物聯(lián)網(wǎng)傳感器的互聯(lián)網(wǎng)數(shù)據(jù)量比傳統(tǒng)電子貨幣區(qū)塊鏈大得多,區(qū)塊和交易的生產(chǎn)速度不夠高,無法提供農(nóng)業(yè)跟蹤,可以說區(qū)塊鏈是一種有限的資源。因此,當區(qū)塊鏈與物聯(lián)網(wǎng)數(shù)據(jù)結(jié)合時,必須改進存儲方案以支持大量數(shù)據(jù),同時不浪費網(wǎng)絡和存儲資源。因此為了確保區(qū)塊鏈存儲系統(tǒng)順利運行,必須保證單筆交易足夠的小從而達到相對意義上的區(qū)塊擴容。如圖3所示為農(nóng)產(chǎn)品質(zhì)量安全追溯組成體系及其結(jié)構(gòu)分布。
首先各個數(shù)據(jù)節(jié)點對傳感器數(shù)據(jù)進行收集,存入鏈下存儲系統(tǒng),本文借助于IPFS,在IPFS存儲系統(tǒng)中對數(shù)據(jù)進行過濾,通過減少重復數(shù)據(jù)來實現(xiàn)第一步的數(shù)據(jù)簡化。當數(shù)據(jù)過濾之后,將數(shù)據(jù)對象的傳感器數(shù)據(jù)封存(可以看作一個交易),然后將交易Hash廣播到區(qū)塊鏈網(wǎng)絡。具體實現(xiàn)過程如算法1所示。
算法1? 數(shù)據(jù)檢驗及封裝算法。
輸入? 農(nóng)產(chǎn)品數(shù)據(jù)信息及生成Hash。
輸出? 若信息合格,Hash存入?yún)^(qū)塊鏈;若信息不合格,重新進行信息采集。
程序前
wh ile 階段傳感器數(shù)據(jù)沒有完全錄入
do 傳感器數(shù)據(jù)監(jiān)測
if? 傳感器數(shù)據(jù)符合要求
then 添加入事務數(shù)據(jù)集
else 舍棄數(shù)據(jù),檢查問題,重新錄入
end while
程序后
關(guān)于區(qū)塊鏈交易量的提升主要在于提升交易速率,通過擴容的方法需要考慮網(wǎng)絡承載能力(網(wǎng)絡帶寬和存儲容量是否足以支撐更大的區(qū)塊),當容量達到上限,不能及時處理新塊數(shù)據(jù),可能導致數(shù)據(jù)對象在狀態(tài)發(fā)生改變時,數(shù)據(jù)仍未寫入?yún)^(qū)塊鏈,從而造成巨大的交易延遲,并且孤塊率的提升使得網(wǎng)絡節(jié)點的不一致性加重(分叉變多),最終影響區(qū)塊鏈安全性能。
目前區(qū)塊鏈應用場景多種多樣,如表1所示的是四種應用場景的區(qū)塊鏈交易數(shù)據(jù)。根據(jù)表1可以發(fā)現(xiàn),影響交易性能的四種關(guān)鍵因素分別是區(qū)塊形成間隔、公共節(jié)點數(shù)目、孤塊率和區(qū)塊大小,因此要設計安全高效率的區(qū)塊鏈系統(tǒng),必須從以上因素出發(fā)去考慮。
2.1 利用聯(lián)盟鏈解決問題
2.1.1 采用PBFT共識解決一致性問題。
本文系統(tǒng)利用PBFT算法進行聯(lián)盟鏈共識,PBFT算法傳播示意圖如圖4所示。
圖4中,請求節(jié)點為C,0、1、2、3為運行正常的服務器,3是宕機服務器,算法執(zhí)行如下:
1)請求階段:節(jié)點C向主節(jié)點發(fā)送請求并記為0 [14]。
2)預準備階段:C請求主節(jié)點服務端0后,服務端0廣播至副本節(jié)點1、2、3。
3)準備階段:副本節(jié)點1、2、3接收到廣播記錄后繼續(xù)廣播,1廣播至023, 2廣播至013,3因為宕機無法廣播。
4)提交階段:節(jié)點0、1、2、3在準備階段如果收到超過一定數(shù)量的相同請求,就會進入提交階段,并且廣播提交請求。
5)回應階段:在提交階段若0、1、2、3節(jié)點若收到超量相同請求,則會對節(jié)點C反饋信息。
具體的PBFT算法流程如算法2~4所示。
算法2? 確定view主節(jié)點。
輸入? client請求;
輸出? 主節(jié)點編號。
程序前
view ← 0
wh ile 通過timeout機制判斷主節(jié)點是faulty
view+ +
do 觸發(fā)view change協(xié)議選舉新的主節(jié)點
P=view mod |R|
return P
程序后
因為PBFT是一種狀態(tài)機副本復制算法,所有副本在一個view中輪換操作,主節(jié)點通過view編號以及節(jié)點總個數(shù)決定。算法2中的view為視圖編號,從0開始一直延續(xù)下去, | R | 為節(jié)點個數(shù),P為主節(jié)點編號。
算法3? 3REQUEST & PRE-PREPARE過程。
輸入? 〈REQUEST,o,t,c〉;
輸出? 〈PRE-PREPARE,v,n,d〉。
程序前
if? 客戶端請求消息簽名不正確
then 非法請求丟棄
else 給請求分配一個編號n進行排序
print 〈〈PRE-PREPARE,v,n,d〉,m〉
程序后
客戶端client向主節(jié)點發(fā)送〈REQUEST,o,t,c〉請求,其中REQUEST包含消息的內(nèi)容m和消息摘要d(m),o為請求的具體操作;t為請求時client追加的時間戳;c為客戶端標識。client對REQUEST請求進行簽名。主節(jié)點在收到請求后,進行客戶端請求消息簽名校驗,丟棄非法請求,為正確請求分配排序編號n,然后廣播〈〈PRE-PREPARE,v,n,d〉,m〉,其中v為view編號,d為客戶端消息摘要,m為消息內(nèi)容?!碢RE-PREPARE,v,n,d〉進行主節(jié)點簽名,n是要在某一個范圍區(qū)間內(nèi)的[h,H]。
算法4? PREPARE過程。
輸入? 〈PRE-PREPARE,v,n,d〉;
輸出? 〈PREPARE,v,n,d,i〉。 程序前
if? 主節(jié)點PRE-PREPARE消息簽名正確
if? 當前副本節(jié)點收到簽名不同,v和n相同的信息
if? d=m
if? n in [h,H]
then print 〈PREARE,v,n,d,i〉
else 非法請求丟棄
else 非法請求丟棄
else 非法請求丟棄
程序后
算法4主要針對副本節(jié)點i收到主節(jié)點PRE-PREPARE消息后進行的四方面校驗:第一是判斷主節(jié)點消息簽名的正確性;第二是判斷當前副本節(jié)點是否收到一條同一v下并且編號也是n,但是簽名不同的PRE-PREPARE信息;第三是判斷d和m的摘要是否一致;最后判斷n是否在區(qū)間[h, H]內(nèi)。若同時滿足以上判斷,副本節(jié)點就向其他節(jié)點包括主節(jié)點發(fā)送〈PREARE,v,n,d,i〉,其中i是當前副本節(jié)點編號?!碢REARE,v,n,d,i〉進行副本節(jié)點簽名。
接下來是COMMIT階段,與上一階段相似,主節(jié)點和副節(jié)點收到PREPARE消息后,也要進行四部分校驗:1)副本節(jié)點PREPARE消息簽名是否正確;2)當前副本節(jié)點是否已經(jīng)收到同一view下的n;3)n是否在區(qū)間[h,H]內(nèi);4)d是否和當前已收到PRE-PREPARE中的d相同。如果請求通過,并且副本節(jié)點i收到2f+1[14]個驗證通過的PREPARE消息,則向其他節(jié)點發(fā)送〈COMMIT,v,n,d,i〉消息。
最后REPLY階段,進行類似上面算法中的四方面校驗后,如果副本節(jié)點i收到了2f+1個驗證通過的COMMIT消息,這時候當前網(wǎng)絡中大部分節(jié)點已經(jīng)達成共識,之后運行client請求o,返回〈PEPLY,v,t,c,i,r〉給client,其中r是請求操作的結(jié)果。此時若客戶端收到f+1個相同的REPLY消息,說明此請求已經(jīng)達到了全網(wǎng)共識。
2.1.2 利用聯(lián)盟鏈確保交易效率
聯(lián)盟鏈通過選取有限驗證節(jié)點來減少全網(wǎng)驗證時間(農(nóng)產(chǎn)品數(shù)據(jù)hash寫入延遲時間),即數(shù)據(jù)發(fā)生之后,在固定時間內(nèi)必須保證寫入?yún)^(qū)塊鏈。
區(qū)塊在聯(lián)盟鏈中被打包過程中,首先需要經(jīng)過主節(jié)點驗證,驗證通過后廣播到副本節(jié)點,直到所有驗證節(jié)點收到消息。其中驗證節(jié)點數(shù)是n,單點帶寬是B,區(qū)塊大小為S,節(jié)點之間的傳播時間為ti1=kiS/B,正常節(jié)點發(fā)送個數(shù)為ki,節(jié)點編號i,區(qū)塊打包需要通過計算驗證有效性,因此需要校驗。因為區(qū)塊大小、交易數(shù)量和驗證時間正相關(guān),故假設驗證交易所需的時間和區(qū)塊大小成線性關(guān)系,即每個節(jié)點驗證交易所需要時間約ti2=aS,其中a為比例系數(shù),因此得到由一個節(jié)點向其他節(jié)點傳播的時間遞推公式如下:
t(n)=k1S/B+aS+max{(t(n*)}; n≥2
(1)
其中:t(n)表示在整個網(wǎng)絡中的n個非宕機節(jié)點傳播所需要的時間;t(n*)表示在共識階段節(jié)點間驗證所需要的時間。如果已知節(jié)點之間的連接矩陣和各個節(jié)點的帶寬,可以由式(1)遞推得到傳播的總時間。
為保證賬本數(shù)據(jù)一致,必須保證挖礦時間大于區(qū)塊廣播時間。設每個交易大小為S0,則聯(lián)盟鏈中交易個數(shù)為K=S/S0,每個區(qū)塊廣播完成后才可產(chǎn)生下一區(qū)塊,其中,秒級交易個數(shù)是D:
D=K/T(n)
(2)
式中,T(n)表示傳播到n個節(jié)點所用的時間,因為傳播時間和區(qū)塊大小、網(wǎng)絡帶寬、節(jié)點個數(shù)成線性關(guān)系,設計區(qū)塊傳播時間和區(qū)塊大小、節(jié)點個數(shù)和網(wǎng)絡帶寬的多元線性回歸模型,假設它們之間有如下關(guān)系:
T(2f)=β0+β1S+β2n+β3B
(3)
式中,β0、β1、β2通過最小二乘法擬合計算得出
3 實驗與分析
3.1 實驗環(huán)境
為了分析PBFT性能,建立了一個由15臺運行Linux操作系統(tǒng)的計算機仿真平臺,每臺計算機參數(shù)如下:16GB內(nèi)存,i5-4590 CPU和HD Graphics 4600 顯卡,Linux系統(tǒng)版本是Ubuntu 16.04。所有計算機都在同一局域網(wǎng)中,根據(jù)Hyperledger fabric V1.1的要求配置系統(tǒng)環(huán)境,建立區(qū)塊鏈基礎(chǔ)設施網(wǎng)絡。
[3]?呂芙蓉,陳莎.基于區(qū)塊鏈技術(shù)構(gòu)建我國農(nóng)產(chǎn)品質(zhì)量安全追溯體系的研究[J].農(nóng)村金融研究,2016(12):22-26. (LYU F R,CHEN S. Research on the construction of Chinas agricultural product quality safety traceability system based on blockchain technology [J]. Rural Finance Research, 2016(12):22-26.)
[4]?MAKSIMOVIC M, VUJOVIC V, OMANOVIC-MIKLICANIN E. A low cost Internet of things solution for traceability and monitoring food safety during transportation [C]// Proceedings of the 7th International Conference on Information & Communication Technologies in Agriculture, Food and Environment. Kavala, Greece: Zacharoula Andreopoulou, 2015: 583-593.
[5]?TSE DANIEL, ZHANG B, YANG Y, et al. Blockchain application in food supply information security [C]// Proceedings of the 2017 IEEE International Conference on Industrial Engineering and Engineering Management.Piscataway, NJ: IEEE, 2017: 1357-1361.
[6]?TIAN F. A supply chain traceability system for food safety based on HACCP, blockchain & Internet of things [C]// Proceedings of the 14th IEEE International Conference on Service Systems and Service Management. Piscataway, NJ: IEEE, 2017:1-6.
[7]?AHMED S, ten BROEK N. Food supply: blockchain could boost food security [J]. Nature, 2017, 550(7674): 43.
[8]?FU Y, LI F. Application of internet of things to the monitoring system for food quality safety [C]// Proceedings of the 4th International Conference on Digital Manufacturing & Automation. Piscataway, NJ: IEEE, 2013:296-298.
[9]??GAI K, CHOO K R, Zhu L. Blockchain-enabled reengineering of cloud datacenters [J]. IEEE Cloud Computing, 2018, 5(6): 21-25.
[10]??LIANG X, SHETTY S, TOSH D, et al. ProvChain: a blockchain-based data provenance architecture in cloud environment with enhanced privacy and availability [C]// Proceedings of the 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. Piscataway, NJ: IEEE, 2017: 468-477.
[11]?FU X, WANG H, SHI P, et al. JCLedger: a blockchain based distributed ledger for JointCloud computing [C]// Proceedings of the IEEE 37th International Conference on Distributed Computing Systems Workshops. Piscataway, NJ: IEEE, 2017:289-293.
[12]?XIE C, SUN Y, LUO H. Secured data storage scheme based on block chain for agricultural products tracking [C]// Proceedings of the 3rd International Conference on Big Data Computing and Communications. Piscataway, NJ: IEEE, 2017:45-50.
[13]?BENET J. IPFS — content addressed, versioned, P2P file system [J]. arXiv E-print, 2014: arXiv:1407.3561.?[EB/OL]. [2018-10-12]. https://arxiv.org/pdf/1407.3561.pdf.
[14]?劉肖飛.基于動態(tài)授權(quán)的拜占庭容錯共識算法的區(qū)塊鏈性能改進研究[D].杭州:浙江大學,2017:36-38. (LIU X F. Study on performance improvement of Byzantine fault-tolerant consensus algorithm based on dynamic authorization [D]. Hangzhou: Zhejiang University, 2017: 36-38.)
[15]?張文彤,董偉. SPSS統(tǒng)計分析高級教程[M].北京:高等教育出版社, 2013:97-121. (ZHAGN W T, DONG W. SPSS advanced course in statistical analysis [M]. Beijing: Higher Education Press, 2013: 97-121.)