唐樹均,陳世平
(上海理工大學 光電信息與計算機工程學院,上 海200093)
隨著元宇宙概念的迅猛推廣,以圖片為代表的數字媒體在網絡中的應用日益廣泛。作為信息密度較高的傳播載體,大量圖片被制作、壓縮、上傳、下載。相較于文字或短視頻,基于圖片的信息在傳播時具有快捷即時、閱讀方便、易于接受等優(yōu)良特性。隨著廣告營銷、電子商務、互聯(lián)網自媒體的快速發(fā)展,圖片版權交易也進入高速增長期,買方/賣方的數量以及整體的交易規(guī)模都在持續(xù)增長。而現有的區(qū)塊鏈系統(tǒng)在處理交易時往往簡單套用虛擬貨幣的共識機制,不能適用于圖片交易。
在現有圖片交易的全過程中,存在2種各有側重的實際需求,一是版權登記,用戶對版權數據的安全性有著較高需求,而對登記過程的耗時并不敏感;另一種是版權交易,用戶在降低交易時間延遲方面有著更為迫切需求。
圖片的版權登記與版權交易是圖片在線交易的2個核心環(huán)節(jié),盡管區(qū)塊鏈技術可用于保護版權與處理交易。但現有的區(qū)塊鏈共識模型不能有效滿足圖片交易的2種需求,這就需要綜合各種共識機制的優(yōu)勢,設計新的共識機制,從而安全快捷地實現圖片在線交易。
區(qū)塊鏈共識機制主要有2種,分別是工作量證明算法(Proof of Work,POW)與實用拜占庭算法(Practical Byzantine Fault Tolerance,PBFT)。前者安全性較高,但處理速度較慢;后者能快速處理交易,但安全性較差,不能單獨提供公開的處理服務。對此擬展開探討分析如下。
工作量證明機制是各個節(jié)點共同計算滿足目標值難度的哈希函數,最先計算出滿足難度目標的隨機數(值)的節(jié)點將獲得新區(qū)塊的記賬權,從而將新區(qū)塊鏈接到區(qū)塊鏈上。
POW機制主要包括3個步驟:
(1)打包數據。節(jié)點鏈接事務池,并選取要打包的交易數據,計算交易數據哈希值,再通過默克爾樹結構逐層計算出根節(jié)點值,最后形成新區(qū)塊。
(2)計算值。節(jié)點從0開始,不斷改變值,進行哈希運算,求出滿足難度要求的值。
(3)廣播驗證合法性。當節(jié)點計算出滿足條件的值后即獲得記賬權??梢詫⒋虬瓿傻男聟^(qū)塊鏈接在區(qū)塊鏈末尾,并向系統(tǒng)中的其他節(jié)點發(fā)送廣播,其他節(jié)點對新區(qū)塊進行驗證,驗證通過后將新區(qū)塊鏈接在區(qū)塊鏈末尾并返回確認信息。
現有的POW機制為了保證共識的安全可信,需要各個節(jié)點不斷進行哈希計算,求得滿足難度目標約束的值。該機制存在以下問題:
(1)大量的哈希計算消耗巨量電力,而產生的值并無實際價值,造成了一定的浪費。
(2)原始POW機制獎勵過于單一,僅通過記賬權獎勵節(jié)點,對沒有計算出有效值的節(jié)點不能提供獎勵。
(3)盡管節(jié)點投入大量算力參與計算,但不同節(jié)點的工作量并無數值化的衡量指標,難以對節(jié)點進行分類。
PBFT機制通過主節(jié)點更新協(xié)議選舉一個節(jié)點發(fā)起提案,稱為主節(jié)點,其他節(jié)點檢查主節(jié)點的提案并互相反饋檢查結果,稱為共識節(jié)點。
PBFT共識機制的工作原理如圖1所示。研究中,將對圖1中各重要部分的設計要點做出闡釋分述如下。
圖1 PBFT共識機制工作原理Fig.1 PBFT consensus mechanism principle
(1)預準備:交易者發(fā)起圖片交易,并向主節(jié)點發(fā)起交易確認請求,主節(jié)點檢查請求內容并生成交易確認提案,廣播到其他的共識節(jié)點。
(2)準備:系統(tǒng)中的每個共識節(jié)點接收主節(jié)點發(fā)出的確認提案,驗證檢查提案內數據的真實性,各個共識節(jié)點檢查提案數據的真實性后,向其他的共識節(jié)點發(fā)送檢查結果。
(3)確認:每個共識節(jié)點不斷接收其他節(jié)點的檢查結果,而后計算認可提案的節(jié)點數量是否滿足條件,設節(jié)點總數為,當認可提案的節(jié)點數量超過23時,提案即被認可。
(4)執(zhí)行:當足夠多的共識節(jié)點確認提案后,由主節(jié)點處理提案內包含的圖片交易,例如將圖片交易信息寫入新區(qū)塊并連接到區(qū)塊鏈末尾。
盡管PBFT機制能夠較快地在各節(jié)點間達成共識,但該機制仍然存在以下問題:
(1)主節(jié)點選舉過于隨意,現有的PBFT機制中,主節(jié)點選舉往往會在所有節(jié)點中采取輪替或隨機方式,由于惡意節(jié)點可以幾乎為零成本的方式成為主節(jié)點,故原始PBFT機制中的主節(jié)點進行虛假交易,破壞共識過程或節(jié)點失效的可能性較高。
(2)投票過程過于復雜,給共識網絡帶來了過高的通信開銷,當共識節(jié)點不發(fā)生拜占庭錯誤時,過高的通信開銷會浪費大量的資源。
(3)節(jié)點缺乏有效獎懲機制,不能獎勵誠實節(jié)點或懲罰作惡節(jié)點,使得節(jié)點的忠誠度與積極性較低。
本文改進現有的共識機制,提出一種基于雙鏈結構的混合共識機制。
節(jié)點通過POW機制形成了去中心化的信任基礎,為了描述節(jié)點在圖片版權認證工作中的貢獻,并以數值形式記錄下來,需要改進POW的計算目標,建立雙目標POW算法??紤]到哈希計算能耗較高,應當在不增加大量計算開銷的情況下,改進計算方案,便于將POW機制的可信性拓展到共識機制的其它部分。
改進的POW機制仍然基于公有鏈系統(tǒng),用于處理圖片版權數據,改進后的雙目標POW算法,區(qū)塊頭數據格式,可表示為:
其中,是前一個區(qū)塊的哈希值;是區(qū)塊的時間戳;為圖片版權數據的哈希值。
區(qū)塊的計算,需用到如下計算公式:
其中,為區(qū)塊頭數據,是需要節(jié)點求解的隨機值。
工作量積分計算,數學公式具體如下:
其中,是翻轉操作,是難度要求。
節(jié)點運行POW算法,從初始值開始不斷增加值,反復進行哈希運算,直到求得滿足目標難度約束的值。節(jié)點在不斷進行哈希運算的同時,可以對比運算結果與當前目標難度值。如果求得值使結果小于等于,節(jié)點獲得記賬權與工作積分獎勵,可以將圖片的版權數據與工作積分記錄打包到新區(qū)塊中;如果求得值使得結果翻轉后小于難度要求,節(jié)點僅獲得工作積分獎勵,并將工作積分記錄打包到新區(qū)塊中,新區(qū)塊經廣播由網絡中的其他節(jié)點確認。
為了鼓勵共識節(jié)點誠實工作,使用工作積分獎勵誠實節(jié)點,懲罰惡意節(jié)點。以工作積分對節(jié)點分級,可以將PBFT機制與POW機制聯(lián)系起來,從而提高PBFT機制的安全性與可信度。對此可做探討論述如下。
(1)工作積分的認定:節(jié)點可以在公有鏈上處理圖片版權數據,通過式(3)計算符合條件的值,從而獲取工作積分,當節(jié)點獲取到滿足最低要求的工作積分后,可以接入聯(lián)盟鏈,處理圖片交易數據。由于工作積分的獲取依賴大量哈希計算,節(jié)點工作積分的獲取與扣除都儲存在鏈上,確保節(jié)點工作積分的變動真實可信。
(2)工作積分扣除:節(jié)點參與競選PBFT主節(jié)點會自動扣除一定工作積分,競選成功可以加倍扣除工作積分,節(jié)點發(fā)生拜占庭錯誤也會扣除大量積分。工作積分扣除提高了惡意節(jié)點競選主節(jié)點或破壞投票的成本,可以鼓勵節(jié)點積極誠實地參與PBFT共識。
(3)節(jié)點分級:新加入節(jié)點直接為類節(jié)點,此類節(jié)點權限較低,必須參與POW計算,通過式(3)獲取一定工作積分后才能轉換為類或類節(jié)點參與共識投票或競選成為PBFT主節(jié)點。不同等級的節(jié)點權限各不相同,各等級節(jié)點的權限見表1。
表1 節(jié)點權限Tab.1 Node permissions
節(jié)點等級的轉換如圖2所示。
圖2 節(jié)點等級轉換Fig.2 Node levels conversion
節(jié)點通過在圖片版權認證中的誠實工作獲取工作積分。按照節(jié)點的工作積分,對節(jié)點進行分級,使得工作積分較高的節(jié)點擁有較高權限,通過工作積分的獲取與扣除動態(tài)調整各個節(jié)點的級別。采用節(jié)點分級與升降級策略,能夠有效約束節(jié)點,提升節(jié)點的忠誠度與積極性。
原始PBFT機制中,區(qū)塊生成時間主要是待確認區(qū)塊在系統(tǒng)中廣播并獲得共識所占用的時間。原始PBFT機制節(jié)點投票的時間復雜度為(),其中為節(jié)點總數。為了排除拜占庭錯誤,所有節(jié)點需要互相通信2次,這是目前PBFT機制通信開銷較高的主要原因。通過引入工作積分和節(jié)點分級,節(jié)點投票積極性和忠實度能夠大大提高。拜占庭錯誤出現的可能性大大降低。當所有共識節(jié)點都不發(fā)生拜占庭錯誤時,PBFT的工作原理可以簡化,如圖3所示,主節(jié)點進行一輪準備詢問,以獲取其他節(jié)點狀態(tài),并直接對共識提案進行投票。在這種簡易共識機制中,投票的時間復雜度為(),通信開銷大大降低,從而減輕了系統(tǒng)負擔,縮短了共識時間。
圖3 改進PBFT工作原理Fig.3 Improved PBFT working principle
改進PBFT機制基于聯(lián)盟鏈部署,用于處理圖片交易請求,由于簡化的投票流程不考慮節(jié)點出現拜占庭錯誤的可能,存在一定安全風險。為提高安全性,在改進后的共識機制中,主節(jié)點首先在準備階段獲取正常在線的節(jié)點總數,而后在共識階段獲取票數。若則說明未發(fā)生拜占庭錯誤,主節(jié)點可以直接出塊;若則共識失敗,轉換為原始PBFT機制重新進行共識。改進PBFT機制相當于在節(jié)點不發(fā)生拜占庭錯誤時進行簡易投票,當節(jié)點出錯幾率較小時,能夠有效降低通信開銷。
改進PBFT機制中,當主節(jié)點惡意概率為,節(jié)點數量為時,通過簡易投票達成共識的通信次數為(1),未能通過簡易投票達成共識的通信次數為(1)(2),可知改進后PBFT投票平均通信次數為2(1)(2)。
在原始PBFT機制中,當主節(jié)點惡意概率為,節(jié)點數量為時,若主節(jié)點不是惡意節(jié)點,則通信次數為(2)(1),若主節(jié)點是惡意節(jié)點,通信次數為(2)(1)(),則原始PBFT平均通信次數為(2)(1)2(2)。
受到工作積分鼓勵和節(jié)點分級的約束,可以認為小于,因此改進的PBFT機制共識投票的通信次數較少。
改進后的混合共識機制如圖4所示。對圖4中各重要組成部分,將給出研究闡述如下。
圖4 混合共識機制Fig.4 Mixed consensus mechanism
(1)認證節(jié)點:認證節(jié)點由普通用戶構成,用戶部署節(jié)點后,可以參與圖片版權數據處理,通過POW機制檢查圖片版權數據,將圖片版權數據打包進新區(qū)塊并鏈接到認證鏈末尾。認證節(jié)點的加入和退出由各節(jié)點自由選擇。
(2)主節(jié)點:認證節(jié)點積累一定工作積分后,可以經選舉成為主節(jié)點,負責認證交易數據。主節(jié)點將圖片交易數據打包形成新區(qū)塊。
據介紹,在質量責任方面,明確了農村公路建設工程實行質量責任終身制;在監(jiān)管機制方面,明確了按照分級負責原則,建立健全上下協(xié)調、控制有效、覆蓋全面的農村公路建設質量齊抓共管的工作機制;在質量管控方面,根據農村公路建設特點和薄弱環(huán)節(jié),強調嚴把設計關、材料關、施工首件關、質量公示關、過程把控關、工程驗收關、質量考核關、信用評價關等“八大關口”,增強實踐操作性;在監(jiān)管措施方面,明確了發(fā)揮當地群眾的質量監(jiān)督作用,建立質量約談和掛牌督辦制度,督促落實農村公路質量責任。
(3)共識節(jié)點:主節(jié)點廣播新區(qū)塊,其他參與處理圖片交易數據的共識節(jié)點通過改進PBFT投票認可新區(qū)塊,將新區(qū)塊鏈接到交易鏈末尾。
(4)認證鏈:圖片自上傳至區(qū)塊鏈系統(tǒng)開始,就進入圖片鏈系統(tǒng)中。把圖片上傳視為一次特殊的交易,即通過圖片的首筆交易,將圖片與某一區(qū)塊綁定,要求圖片認證節(jié)點構造出一個新的區(qū)塊記錄圖片版權數據,使得每張圖片都按照版權登記時間順序組成了一條由圖片版權數據構成的區(qū)塊鏈,稱為認證鏈。認證鏈中除了創(chuàng)世區(qū)塊與最新區(qū)塊以外,每個交易區(qū)塊都存儲了指向其前一個交易區(qū)塊與后一個交易區(qū)塊的指針,以便于檢索特定圖片的版權記錄。
(5)交易鏈:認證鏈負責認證圖片版權,交易鏈負責記錄圖片交易,由于圖片在一次認證后往往會發(fā)生多筆交易,因此認證業(yè)務較少,但需要更高的安全保障;交易鏈需要處理更多的交易請求,需要更短的交易確認時間。本文在認證版權時采用POW機制,確保版權認證過程安全可信,在處理圖片交易時采用改進的PBFT機制,充分發(fā)揮主節(jié)點的處理能力,從而盡可能縮短交易確認時間。
為了避免主節(jié)點因意外失效導致系統(tǒng)故障,同時避免惡意節(jié)點拒絕工作,需要設計主節(jié)點更新協(xié)議,在主節(jié)點不能正常履行工作時激活主節(jié)點更新協(xié)議。
協(xié)議設置準備超時時間和共識超時時間,其中用于防止準備階段主節(jié)點出錯,用于防止共識階段主節(jié)點出錯。設節(jié)點總數為,則允許出錯的節(jié)點數量最大為,其中31。主節(jié)點更新協(xié)議工作流程如下:
(1)當任一共識節(jié)點在內沒有收到準備廣播,或者在內沒有收到新共識,則自動激活主節(jié)點更新協(xié)議,發(fā)起主節(jié)點更新請求,并從競選節(jié)點中選取積分最高的節(jié)點作為候選主節(jié)點,將候選主節(jié)點信息與更新請求一并廣播到其他節(jié)點。
(2)每個共識節(jié)點都持續(xù)監(jiān)聽廣播,一旦收到21條主節(jié)點更新請求,從競選節(jié)點中選取工作積分最高的節(jié)點作為候選主節(jié)點,并發(fā)送認可候選主節(jié)點的投票消息。
通過搭設基于雙鏈的混合共識機制原型系統(tǒng),測試改進后的混合共識機制性能與可靠性。
文中的實驗數據選用從中國知網下載的期刊封面、扉頁、目錄等作為實驗所需要的圖片,共2 000張。
在評價指標上,關鍵技術的評價指標主要是處理圖片交易的時間,此外還包括處理交易時節(jié)點的性能開銷。實驗的主要性能指標包括:時間延遲,即用戶發(fā)起一次圖片交易到交易完成所需時間,單位為ms;處理速率,即在單位時間內處理用戶發(fā)起交易的數量,單位為每秒處理的交易數量(tps);處理器與內存占用,即處理交易請求時電腦的硬件開銷,以百分比表示。
實驗中選擇不同的交易發(fā)送速率,并記錄在各個交易發(fā)送速率條件下,處理器和內存的占用情況,同時記錄系統(tǒng)處理交易的速率以及各個交易從發(fā)起請求到獲得確認的交易時延,將實驗記錄數據匯總并繪制相應實驗表格。
內存占用與交易發(fā)送速率的實驗結果如圖5所示。改進PBFT機制相比原始PBFT而言沒有明顯的內存開銷,交易發(fā)送的速率在增長到60 tps之前,原始PBFT機制和改進PBFT機制的內存占用都隨著交易發(fā)送速率呈線性增長;當交易發(fā)送速率大于60 tps后,2種不同機制的內存占用增加并不明顯,這是由于系統(tǒng)處理能力趨于飽和,額外的交易請求被不斷推遲,并沒有被立即處理,體現為內存占用在交易速率大于60 tps后,增加并不明顯;在交易發(fā)送速率最大時,改進PBFT的內存占用較小,說明改進PBFT機制在一定情形下能夠降低內存開銷。
圖5 內存占用Fig.5 Memory occupation
處理器占用與交易發(fā)送速率的實驗結果如圖6所示。改進PBFT機制能夠降低處理器開銷,交易發(fā)送的速率在增長到60 tps前,處理器占用隨交易發(fā)送速率呈線性增長;當交易發(fā)送速率大于60 tps后,由于系統(tǒng)處理能力趨于飽和,額外的交易請求被不斷推遲,并沒有被立即處理,體現為交易速率大于60 tps后,處理器占用隨交易速率增加而增加的速度有一定降低。并且,在交易發(fā)送速率大于20 tps時,改進PBFT的處理器占用比原始PBFT更低。
圖6 處理器占用Fig.6 CPU occupancy
交易處理速率與交易發(fā)送速率的實驗結果如圖7所示。改進PBFT機制能夠提高交易處理速率上限,當前系統(tǒng)的交易處理能力上限在60~70 tps之間,交易速率高于該上限,無論采用原始PBFT方案或者改進PBFT方案,系統(tǒng)處理速率并不會進一步增加。改進PBFT和原始PBFT方案在交易發(fā)送交易速率為100 tps時都達到了最大交易處理速率。此時改進PBFT的交易處理速率為71 tps,處理器占用為25.8%,而原始PBFT方案的交易處理速率為66 tps,CPU占用為29.8%,說明改進PBFT方案能夠降低計算開銷,占用較少資源即可達到最大交易處理速率。
圖7 交易處理速率Fig.7 Transactions processing rate
交易延遲與交易發(fā)送速率的實驗結果如圖8所示。改進后的PBFT方案相比原始PBFT方案完成交易的延遲較低,與改進PBFT方案和原始PBFT方案在通信次數上的分析討論相吻合,說明基于工作積分的改進PBFT方案在相同的交易處理場景下具有縮短共識時間的優(yōu)勢。此外,當系統(tǒng)的交易處理速率達到上限后繼續(xù)增加交易發(fā)送量,改進的PBFT方案,時間延遲增幅較小,而原始PBFT方案的時間延遲增幅較大,進一步說明改進的PBFT方案在降低通信時間開銷上具有一定優(yōu)勢。
圖8 交易延遲Fig.8 Transactions delay
通過對原型系統(tǒng)進行測試,證明了基于雙鏈結構的混合共識機制的計算開銷更小,單筆交易時間延遲更低。各主要功能正常運行,關鍵性能指標優(yōu)于現有共識機制。隨著節(jié)點和交易量的增加,系統(tǒng)運行正常,穩(wěn)定性良好,可以進行較大規(guī)模的圖片交易工作。
本文研究了用于圖片版權交易的區(qū)塊鏈雙鏈模型。通過設計工作積分與節(jié)點分級,溝通了安全性強的POW共識機制與處理效率高的PBFT共識機制;基于工作積分改進了PBFT共識機制的投票流程,減少投票次數,從而降低投票帶來的通信開銷;通過搭設測試原型系統(tǒng),以實驗驗證技術方案的可行性與技術優(yōu)勢。與現有的共識機制相比。本文提出的混合共識機制相比傳統(tǒng)技術具有以下技術優(yōu)勢:
(1)由改進POW機制處理圖片版權數據,由改進PBFT機制處理圖片交易數據,相比單一的POW機制,有效降低認證交易數據所需的計算開銷。
(2)通過工作積分有效獎勵誠實節(jié)點,懲罰惡意節(jié)點;且節(jié)點分級可以將惡意節(jié)點逐步降級,最終將其排除在外。
(3)改進PBFT機制的通信開銷與計算開銷較小,處理交易數據時延遲更低。
(4)混合共識機制兼顧了POW機制的高可信度與PBFT機制的高性能,能夠在同樣可信的條件下,提供更快的圖片交易認證服務。
但本文提出的混合共識機制僅考慮了POW與PBFT,沒有兼顧其他諸如股權證明(POS)和重要性證明(POI)等共識機制。隨著共識機制的進一步發(fā)展,多種共識機制混合值得后續(xù)深入的系統(tǒng)研究。此外,本文提出的工作積分與節(jié)點分級機制,可以進一步部署在區(qū)塊鏈系統(tǒng)的智能合約中,從而提供更為安全的運行環(huán)境。