趙國鋒,何 英,周繼華
(1.重慶郵電大學 通信與信息工程學院,重慶 400065;2.重慶金美通信有限公司,重慶 400030)
隨著互聯網上文本的傳播越來越迅捷,人們對數字文本的需求也越來越高。據統計,2018年,我國數字出版產業的累計用戶規模達到18.25億人。互聯網期刊、電子圖書、數字報紙的總收入為82.7億元,與2017年相比增長5.35%[1]。在數字出版產業高速發展的同時,盜版、侵權事件也愈演愈烈。目前的數字版權保護主要是依賴第三方機構的集中式管控,但這種方式也面臨一些問題:(1)基于第三方機構的版權管控機制流程繁瑣,效率低[2];(2)沒有統一的數字版權管控平臺導致數字版權資源分散,版權歸屬模糊;(3)當前集中化的版權管控機制容易遭受單點故障,數據存儲安全性低。
隨著區塊鏈技術的面世,去中心化、自主驗證、數據不可篡改、可溯源等特點為當前數字版權領域的問題提供了解決途徑。文獻[2]分析了傳統數字版權領域中存在的問題,并提到區塊鏈技術在解決數字版權領域的問題上有著天然優勢;文獻[3]將區塊鏈技術引入數字版權領域,創建了基于區塊鏈的版權系統模型;李悅[4]依托以太坊平臺[5],結合智能合約技術實現版權登記在區塊鏈上的自動化執行。
但這些案例存在以下問題:(1)沒有考慮完整數字作品的存儲。只是簡單地提取出作品的特征值,將特征值存入到區塊鏈中作為版權的存證,以至于版權存證信息的不完整,面對版權糾紛時,仍不能提供強有力的版權憑證。(2)沒有考慮數字作品的侵權檢測。這些案例只是在區塊鏈上簡單地記錄出作品的特征值,沒有將作品內容與官方申明了版權的內容進行全面對比,是一種象征性證明,以至于抄襲作品、盜版作品都能順利地獲取版權證明,沒有實際價值與意義。(3)版權登記效率低下。這些案例均是依托于比特幣、以太坊等區塊鏈構建數字版權系統,由于這些平臺的固有缺陷,導致版權登記效率低下。(4)缺乏身份認證。沒有對登記者的身份信息進行實名認證,這與版權登記的對用戶身份需求相悖。
隨著區塊鏈技術的發展,以超級賬本[6]為代表的區塊鏈平臺,性能更好、資源消耗更少。因此本文構建了基于超級賬本的數字版權登記系統,主要解決以下問題:(1)通過鏈上鏈下結合的存儲方式解決區塊鏈存儲大文件的難題。區塊鏈上記錄作品索引及創作者信息,區塊鏈下通過IPFS系統存儲數字作品。(2)對登記的數字作品實現了侵權檢測。即計算出作品simhash,并與登記庫中的作品simhash對比,若不超過其閾值,則通過檢測。(3)通過智能合約技術實現版權登記及數據訪問控制,只有經過授權的用戶才能訪問登記信息,確保了個人數據的隱私性。實驗分析表明,該系統有較好的性能和安全性。
本系統的核心技術包括區塊鏈、智能合約、simhash及IPFS。
(1)區塊鏈[7]:區塊鏈網絡中的節點將一段時間內接收到的數據封裝到一個帶有時間戳的區塊中,網絡中其他節點對區塊進行有效性驗證,按照時間順序進行哈希鏈接,產生最新的區塊鏈,并在各個節點同步。時間的不可逆轉性致使歷史區塊數據無法修改和刪除,保證存儲數據的不可否認性和可溯源性。區塊鏈概念起源于比特幣[8],最初用來記錄數字貨幣交易信息,隨著技術的發展,出現了以太坊及超級賬本等可運行其他應用的區塊鏈平臺。表1為不同區塊鏈平臺的性能對比表。不難看出超級賬本效率高,資源消耗少,更能滿足商業化需求。因此本文構建了基于超級賬本的數字版權登記模型,給用戶提供更加便捷快速的版權管控服務。

表1 不同區塊鏈平臺性能對比
(2)IPFS:IPFS[9]是分布式存儲方式,與HTTP不同,IPFS不再關心中央服務器的位置,也不考慮文件名和路徑,它只關注文件中可能出現的內容。將任何文件放在IPFS節點上后,將根據此文件的內容計算加密哈希值。當IPFS被要求提供文件時,它使用分布式哈希表來查找此文件所在的節點,然后檢索此文件并對其進行驗證。
(3)simhash:simhash[10]是一種局部敏感hash算法,即輸入內容相似,則hash結果也相似,因此文本間的相似性檢測就轉化成文本simhash的相似性比較。simhash的相似性通過其海明距離度量,海明距離越小,表明對應文本越相似。simhash算法流程如圖1所示。

圖1 simhash算法流程
(4)智能合約:1995年密碼學家尼克薩博首次提出智能合約,將其定義為一系列計算機化的協議,是一組預設條件對應的程序化規則[11]。在區塊鏈中,智能合約用特定的計算機語言表示并存儲在區塊中,一旦合約中預先設定的條件滿足,就會自動觸發相應的操作。
如圖2所示為基于超級賬本的數字版權登記系統架構圖。

圖2 基于超級賬本的數字版權登記系統架構
客戶端用于用戶注冊版權賬戶,發起版權登記請求。超級賬本基于PKI證書體系,每個用戶通過唯一的數字證書作為身份標識,用戶注冊的版權賬戶即是由證書公鑰生成。
服務端分為三層結構:合約層實現版權登記及版權查詢功能;在網絡層,為了提高系統處理效率,將合約執行和共識分離,區塊鏈節點從邏輯上分為三類:背書節點、排序節點及記賬節點,分別對應合約執行、消息排序及寫入檢查等工作;存儲層:區塊鏈不適宜存儲大文件,本文采用鏈上鏈下結合的方式存儲版權登記信息,區塊鏈上記錄作品索引及創作者信息,區塊鏈下通過IPFS存儲數字作品。
圖3所示為基于超級賬本的數字版權登記系統網絡架構圖,基于此架構,版權登記信息存儲機制包含如下步驟:

圖3 基于超級賬本的數字版權登記系統網絡架構圖
(1)注冊版權賬戶:超級賬本是帶有準入控制的區塊鏈,每個訪問其網絡的用戶應首先通過注冊獲得身份證書,用戶注冊的版權賬戶即由用戶證書公鑰生成。
(2)IPFS存儲數字作品:用戶登錄系統,上傳數字作品到IPFS,若上傳成功,IPFS會為作品生成唯一的哈希值,用戶可通過作品哈希值訪問存儲在IPFS中的數字作品。
(3)發起版權登記提案:用戶通過客戶端發起登記提案即可調用部署在區塊鏈上的智能合約,合約執行的結果將被存儲在區塊鏈上。模型中的提案包含兩大類,分別對應版權登記提案及版權查詢提案。提案由提案頭、提案數據和簽名構成。提案頭包含合約的名稱及版本;簽名是由用戶的私鑰生成,是為了確保提案數據不被篡改;提案數據由合約的函數名及函數參數構成,函數參數即是用戶的輸入信息。不同類型的提案其包含的函數名不同,傳遞的函數參數也不同。版權登記提案的函數參數由數字作品哈希摘要、訪問控制列表及用戶信息等構成。版權查詢提案由作品哈希摘要及用戶身份信息構成。
(4)提案背書:客戶端發送提案到版權區塊鏈的背書節點,背書節點需要驗證提案格式是否正確,是否存在重放攻擊,提案簽名是否有效,上述驗證通過后背書節點將模擬執行版權合約,生成一系列的讀寫集。背書節點需對執行結果簽名并將提案和執行結果打包返回客戶端。
(5)構造區塊:客戶端收集足夠的提案響應,驗證背書節點簽名及執行結果,通過后將提案響應提交到版權區塊鏈網絡的共識節點。共識節點將對提案進行排序,打包區塊并廣播給其他節點。版權區塊鏈使用kafka共識機制,共識網絡中包含多個主題,每個主題對應多個分區。對于每個區塊的生成,是通過出塊大小和出塊時間共同決定的,一旦有一個條件滿足將會觸發區塊操作。
(6)區塊同步:版權區塊鏈網絡中,節點之間同步區塊采用的是gossip最終一致性協議。每個節點隨機地向鄰近節點定時發送本地賬本當前的快照,如最高塊高度、最高塊哈希值、狀態樹哈希值等一些賬本的摘要信息,并且接收來自其他節點發送的賬本快照,節點間通過快照進行賬本對比及區塊請求,最終使得全網所有節點在較短時間內達到賬本一致狀態。區塊同步過程如圖4所示。

圖4 區塊同步過程
部署在區塊鏈上的合約分為兩大類:版權登記及版權查詢合約。背書節點收到客戶端發來的提案,首先對客戶端身份進行驗證,通過后便可模擬執行版權合約。版權登記合約與版權查詢合約的設計如下:
(1)版權登記合約協議
①驗證用戶身份。用戶身份包含如下信息:身份標識、x.509證書、證書生成的公鑰等。用戶身份的校驗主要是對證書的校驗,首先是對證書路徑的檢查,校驗根證書、中間CA證書是否有效,是否有從身份證書到可信根CA證書的有效路徑;其次是對CRL的檢查,檢查證書是否被吊銷。CRL在本地CRLS目錄下,是由CA根證書簽發的被吊銷的證書文件。
②驗證用戶簽名,確保提案數據完整且沒有被篡改。
③作品上傳檢測。根據作品信息(IPFS存儲路徑、作品大小、作品名稱)查詢作品是否已完整上傳,若是,將作品標志位w置為1,否則置為0。
④作品侵權檢測。通過IPFS路徑下載作品,計算作品simhash,與登記庫中的作品simhash對比,若相似度未超過閾值,則侵權檢測通過,并將侵權檢測標志位s置為1。
⑤生成版權登記信息的讀寫集。寫集包含登記作品的信息、權利人身份信息及訪問控制列表。其中,訪問控制列表是由數據所有者自己確定,只有經過授權的用戶才能訪問登記信息,這樣保證了個人數據的私密性。
(2)版權查詢合約協議
①驗證用戶身份。同上。
②驗證用戶簽名,確保提案數據完整且沒有被篡改。
③訪問權限檢測。根據該作品的訪問控制列表,查詢該用戶是否有訪問權限。
④根據作品哈希查詢其版權歸屬。
為了測試系統的性能,通過以下方式搭建了測試網絡。測試網絡基于超級賬本源碼構建。實驗網絡拓撲如下:服務器A、B、C、D、E分別模擬組織1、組織2、共識集群、Fabric CA及Client。其中,服務器A開啟4個Peer docker,其中一個為Endoser;服務器B開啟3個Peer docker,其中一個為Endoser;服務器C上開啟多個Order docker,模擬共識節點群;服務器D上裝載Fabric CA sever;服務器E上裝載Fabric client。另外,服務器A和服務器B上分別裝載IPFS程序,用于存儲數字作品。實驗服務器配置如表2所示。

表2 服務器配置
如圖5所示,隨著請求頻率的增加,系統處理速率逐漸增加,直到請求頻率達到1 000筆/s時,系統處理速率逐漸達到飽和,版權登記及版權查詢處理速率分別約為970筆/s、1 084筆/s。

圖5 系統處理速率
如圖6所示,隨著請求頻率的增加,系統處理時延最開始緩慢增加,版權登記及版權查詢平均處理時延分別約為0.8 s、0.1 s。當請求頻率達到1 000筆/s時,由于系統處理能力逐漸達到飽和,時延增加幅度加大。

圖6 系統處理時延
通過上述分析,正常請求頻率下,系統的版權登記及版權查詢處理速率約為973筆/s和1 084筆/s,處理時延約為0.8 s和0.1 s。總體來說,系統整體性能基本滿足商用需求。
本文首先設計了基于超級賬本的數字版權登記模型,然后通過simhash查重算法實現了作品侵權檢測,最后結合智能合約技術實現了版權登記及數據訪問控制,確保了個人數據的隱私性。未來工作將考慮更進一步優化系統性能。