趙國(guó)鋒,何 英,周繼華
(1.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065;2.重慶金美通信有限公司,重慶 400030)
隨著互聯(lián)網(wǎng)上文本的傳播越來(lái)越迅捷,人們對(duì)數(shù)字文本的需求也越來(lái)越高。據(jù)統(tǒng)計(jì),2018年,我國(guó)數(shù)字出版產(chǎn)業(yè)的累計(jì)用戶規(guī)模達(dá)到18.25億人?;ヂ?lián)網(wǎng)期刊、電子圖書、數(shù)字報(bào)紙的總收入為82.7億元,與2017年相比增長(zhǎng)5.35%[1]。在數(shù)字出版產(chǎn)業(yè)高速發(fā)展的同時(shí),盜版、侵權(quán)事件也愈演愈烈。目前的數(shù)字版權(quán)保護(hù)主要是依賴第三方機(jī)構(gòu)的集中式管控,但這種方式也面臨一些問題:(1)基于第三方機(jī)構(gòu)的版權(quán)管控機(jī)制流程繁瑣,效率低[2];(2)沒有統(tǒng)一的數(shù)字版權(quán)管控平臺(tái)導(dǎo)致數(shù)字版權(quán)資源分散,版權(quán)歸屬模糊;(3)當(dāng)前集中化的版權(quán)管控機(jī)制容易遭受單點(diǎn)故障,數(shù)據(jù)存儲(chǔ)安全性低。
隨著區(qū)塊鏈技術(shù)的面世,去中心化、自主驗(yàn)證、數(shù)據(jù)不可篡改、可溯源等特點(diǎn)為當(dāng)前數(shù)字版權(quán)領(lǐng)域的問題提供了解決途徑。文獻(xiàn)[2]分析了傳統(tǒng)數(shù)字版權(quán)領(lǐng)域中存在的問題,并提到區(qū)塊鏈技術(shù)在解決數(shù)字版權(quán)領(lǐng)域的問題上有著天然優(yōu)勢(shì);文獻(xiàn)[3]將區(qū)塊鏈技術(shù)引入數(shù)字版權(quán)領(lǐng)域,創(chuàng)建了基于區(qū)塊鏈的版權(quán)系統(tǒng)模型;李悅[4]依托以太坊平臺(tái)[5],結(jié)合智能合約技術(shù)實(shí)現(xiàn)版權(quán)登記在區(qū)塊鏈上的自動(dòng)化執(zhí)行。
但這些案例存在以下問題:(1)沒有考慮完整數(shù)字作品的存儲(chǔ)。只是簡(jiǎn)單地提取出作品的特征值,將特征值存入到區(qū)塊鏈中作為版權(quán)的存證,以至于版權(quán)存證信息的不完整,面對(duì)版權(quán)糾紛時(shí),仍不能提供強(qiáng)有力的版權(quán)憑證。(2)沒有考慮數(shù)字作品的侵權(quán)檢測(cè)。這些案例只是在區(qū)塊鏈上簡(jiǎn)單地記錄出作品的特征值,沒有將作品內(nèi)容與官方申明了版權(quán)的內(nèi)容進(jìn)行全面對(duì)比,是一種象征性證明,以至于抄襲作品、盜版作品都能順利地獲取版權(quán)證明,沒有實(shí)際價(jià)值與意義。(3)版權(quán)登記效率低下。這些案例均是依托于比特幣、以太坊等區(qū)塊鏈構(gòu)建數(shù)字版權(quán)系統(tǒng),由于這些平臺(tái)的固有缺陷,導(dǎo)致版權(quán)登記效率低下。(4)缺乏身份認(rèn)證。沒有對(duì)登記者的身份信息進(jìn)行實(shí)名認(rèn)證,這與版權(quán)登記的對(duì)用戶身份需求相悖。
隨著區(qū)塊鏈技術(shù)的發(fā)展,以超級(jí)賬本[6]為代表的區(qū)塊鏈平臺(tái),性能更好、資源消耗更少。因此本文構(gòu)建了基于超級(jí)賬本的數(shù)字版權(quán)登記系統(tǒng),主要解決以下問題:(1)通過鏈上鏈下結(jié)合的存儲(chǔ)方式解決區(qū)塊鏈存儲(chǔ)大文件的難題。區(qū)塊鏈上記錄作品索引及創(chuàng)作者信息,區(qū)塊鏈下通過IPFS系統(tǒng)存儲(chǔ)數(shù)字作品。(2)對(duì)登記的數(shù)字作品實(shí)現(xiàn)了侵權(quán)檢測(cè)。即計(jì)算出作品simhash,并與登記庫(kù)中的作品simhash對(duì)比,若不超過其閾值,則通過檢測(cè)。(3)通過智能合約技術(shù)實(shí)現(xiàn)版權(quán)登記及數(shù)據(jù)訪問控制,只有經(jīng)過授權(quán)的用戶才能訪問登記信息,確保了個(gè)人數(shù)據(jù)的隱私性。實(shí)驗(yàn)分析表明,該系統(tǒng)有較好的性能和安全性。
本系統(tǒng)的核心技術(shù)包括區(qū)塊鏈、智能合約、simhash及IPFS。
(1)區(qū)塊鏈[7]:區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)將一段時(shí)間內(nèi)接收到的數(shù)據(jù)封裝到一個(gè)帶有時(shí)間戳的區(qū)塊中,網(wǎng)絡(luò)中其他節(jié)點(diǎn)對(duì)區(qū)塊進(jìn)行有效性驗(yàn)證,按照時(shí)間順序進(jìn)行哈希鏈接,產(chǎn)生最新的區(qū)塊鏈,并在各個(gè)節(jié)點(diǎn)同步。時(shí)間的不可逆轉(zhuǎn)性致使歷史區(qū)塊數(shù)據(jù)無(wú)法修改和刪除,保證存儲(chǔ)數(shù)據(jù)的不可否認(rèn)性和可溯源性。區(qū)塊鏈概念起源于比特幣[8],最初用來(lái)記錄數(shù)字貨幣交易信息,隨著技術(shù)的發(fā)展,出現(xiàn)了以太坊及超級(jí)賬本等可運(yùn)行其他應(yīng)用的區(qū)塊鏈平臺(tái)。表1為不同區(qū)塊鏈平臺(tái)的性能對(duì)比表。不難看出超級(jí)賬本效率高,資源消耗少,更能滿足商業(yè)化需求。因此本文構(gòu)建了基于超級(jí)賬本的數(shù)字版權(quán)登記模型,給用戶提供更加便捷快速的版權(quán)管控服務(wù)。
表1 不同區(qū)塊鏈平臺(tái)性能對(duì)比
(2)IPFS:IPFS[9]是分布式存儲(chǔ)方式,與HTTP不同,IPFS不再關(guān)心中央服務(wù)器的位置,也不考慮文件名和路徑,它只關(guān)注文件中可能出現(xiàn)的內(nèi)容。將任何文件放在IPFS節(jié)點(diǎn)上后,將根據(jù)此文件的內(nèi)容計(jì)算加密哈希值。當(dāng)IPFS被要求提供文件時(shí),它使用分布式哈希表來(lái)查找此文件所在的節(jié)點(diǎn),然后檢索此文件并對(duì)其進(jìn)行驗(yàn)證。
(3)simhash:simhash[10]是一種局部敏感hash算法,即輸入內(nèi)容相似,則hash結(jié)果也相似,因此文本間的相似性檢測(cè)就轉(zhuǎn)化成文本simhash的相似性比較。simhash的相似性通過其海明距離度量,海明距離越小,表明對(duì)應(yīng)文本越相似。simhash算法流程如圖1所示。
圖1 simhash算法流程
(4)智能合約:1995年密碼學(xué)家尼克薩博首次提出智能合約,將其定義為一系列計(jì)算機(jī)化的協(xié)議,是一組預(yù)設(shè)條件對(duì)應(yīng)的程序化規(guī)則[11]。在區(qū)塊鏈中,智能合約用特定的計(jì)算機(jī)語(yǔ)言表示并存儲(chǔ)在區(qū)塊中,一旦合約中預(yù)先設(shè)定的條件滿足,就會(huì)自動(dòng)觸發(fā)相應(yīng)的操作。
如圖2所示為基于超級(jí)賬本的數(shù)字版權(quán)登記系統(tǒng)架構(gòu)圖。
圖2 基于超級(jí)賬本的數(shù)字版權(quán)登記系統(tǒng)架構(gòu)
客戶端用于用戶注冊(cè)版權(quán)賬戶,發(fā)起版權(quán)登記請(qǐng)求。超級(jí)賬本基于PKI證書體系,每個(gè)用戶通過唯一的數(shù)字證書作為身份標(biāo)識(shí),用戶注冊(cè)的版權(quán)賬戶即是由證書公鑰生成。
服務(wù)端分為三層結(jié)構(gòu):合約層實(shí)現(xiàn)版權(quán)登記及版權(quán)查詢功能;在網(wǎng)絡(luò)層,為了提高系統(tǒng)處理效率,將合約執(zhí)行和共識(shí)分離,區(qū)塊鏈節(jié)點(diǎn)從邏輯上分為三類:背書節(jié)點(diǎn)、排序節(jié)點(diǎn)及記賬節(jié)點(diǎn),分別對(duì)應(yīng)合約執(zhí)行、消息排序及寫入檢查等工作;存儲(chǔ)層:區(qū)塊鏈不適宜存儲(chǔ)大文件,本文采用鏈上鏈下結(jié)合的方式存儲(chǔ)版權(quán)登記信息,區(qū)塊鏈上記錄作品索引及創(chuàng)作者信息,區(qū)塊鏈下通過IPFS存儲(chǔ)數(shù)字作品。
圖3所示為基于超級(jí)賬本的數(shù)字版權(quán)登記系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖,基于此架構(gòu),版權(quán)登記信息存儲(chǔ)機(jī)制包含如下步驟:
圖3 基于超級(jí)賬本的數(shù)字版權(quán)登記系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖
(1)注冊(cè)版權(quán)賬戶:超級(jí)賬本是帶有準(zhǔn)入控制的區(qū)塊鏈,每個(gè)訪問其網(wǎng)絡(luò)的用戶應(yīng)首先通過注冊(cè)獲得身份證書,用戶注冊(cè)的版權(quán)賬戶即由用戶證書公鑰生成。
(2)IPFS存儲(chǔ)數(shù)字作品:用戶登錄系統(tǒng),上傳數(shù)字作品到IPFS,若上傳成功,IPFS會(huì)為作品生成唯一的哈希值,用戶可通過作品哈希值訪問存儲(chǔ)在IPFS中的數(shù)字作品。
(3)發(fā)起版權(quán)登記提案:用戶通過客戶端發(fā)起登記提案即可調(diào)用部署在區(qū)塊鏈上的智能合約,合約執(zhí)行的結(jié)果將被存儲(chǔ)在區(qū)塊鏈上。模型中的提案包含兩大類,分別對(duì)應(yīng)版權(quán)登記提案及版權(quán)查詢提案。提案由提案頭、提案數(shù)據(jù)和簽名構(gòu)成。提案頭包含合約的名稱及版本;簽名是由用戶的私鑰生成,是為了確保提案數(shù)據(jù)不被篡改;提案數(shù)據(jù)由合約的函數(shù)名及函數(shù)參數(shù)構(gòu)成,函數(shù)參數(shù)即是用戶的輸入信息。不同類型的提案其包含的函數(shù)名不同,傳遞的函數(shù)參數(shù)也不同。版權(quán)登記提案的函數(shù)參數(shù)由數(shù)字作品哈希摘要、訪問控制列表及用戶信息等構(gòu)成。版權(quán)查詢提案由作品哈希摘要及用戶身份信息構(gòu)成。
(4)提案背書:客戶端發(fā)送提案到版權(quán)區(qū)塊鏈的背書節(jié)點(diǎn),背書節(jié)點(diǎn)需要驗(yàn)證提案格式是否正確,是否存在重放攻擊,提案簽名是否有效,上述驗(yàn)證通過后背書節(jié)點(diǎn)將模擬執(zhí)行版權(quán)合約,生成一系列的讀寫集。背書節(jié)點(diǎn)需對(duì)執(zhí)行結(jié)果簽名并將提案和執(zhí)行結(jié)果打包返回客戶端。
(5)構(gòu)造區(qū)塊:客戶端收集足夠的提案響應(yīng),驗(yàn)證背書節(jié)點(diǎn)簽名及執(zhí)行結(jié)果,通過后將提案響應(yīng)提交到版權(quán)區(qū)塊鏈網(wǎng)絡(luò)的共識(shí)節(jié)點(diǎn)。共識(shí)節(jié)點(diǎn)將對(duì)提案進(jìn)行排序,打包區(qū)塊并廣播給其他節(jié)點(diǎn)。版權(quán)區(qū)塊鏈?zhǔn)褂胟afka共識(shí)機(jī)制,共識(shí)網(wǎng)絡(luò)中包含多個(gè)主題,每個(gè)主題對(duì)應(yīng)多個(gè)分區(qū)。對(duì)于每個(gè)區(qū)塊的生成,是通過出塊大小和出塊時(shí)間共同決定的,一旦有一個(gè)條件滿足將會(huì)觸發(fā)區(qū)塊操作。
(6)區(qū)塊同步:版權(quán)區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點(diǎn)之間同步區(qū)塊采用的是gossip最終一致性協(xié)議。每個(gè)節(jié)點(diǎn)隨機(jī)地向鄰近節(jié)點(diǎn)定時(shí)發(fā)送本地賬本當(dāng)前的快照,如最高塊高度、最高塊哈希值、狀態(tài)樹哈希值等一些賬本的摘要信息,并且接收來(lái)自其他節(jié)點(diǎn)發(fā)送的賬本快照,節(jié)點(diǎn)間通過快照進(jìn)行賬本對(duì)比及區(qū)塊請(qǐng)求,最終使得全網(wǎng)所有節(jié)點(diǎn)在較短時(shí)間內(nèi)達(dá)到賬本一致狀態(tài)。區(qū)塊同步過程如圖4所示。
圖4 區(qū)塊同步過程
部署在區(qū)塊鏈上的合約分為兩大類:版權(quán)登記及版權(quán)查詢合約。背書節(jié)點(diǎn)收到客戶端發(fā)來(lái)的提案,首先對(duì)客戶端身份進(jìn)行驗(yàn)證,通過后便可模擬執(zhí)行版權(quán)合約。版權(quán)登記合約與版權(quán)查詢合約的設(shè)計(jì)如下:
(1)版權(quán)登記合約協(xié)議
①驗(yàn)證用戶身份。用戶身份包含如下信息:身份標(biāo)識(shí)、x.509證書、證書生成的公鑰等。用戶身份的校驗(yàn)主要是對(duì)證書的校驗(yàn),首先是對(duì)證書路徑的檢查,校驗(yàn)根證書、中間CA證書是否有效,是否有從身份證書到可信根CA證書的有效路徑;其次是對(duì)CRL的檢查,檢查證書是否被吊銷。CRL在本地CRLS目錄下,是由CA根證書簽發(fā)的被吊銷的證書文件。
②驗(yàn)證用戶簽名,確保提案數(shù)據(jù)完整且沒有被篡改。
③作品上傳檢測(cè)。根據(jù)作品信息(IPFS存儲(chǔ)路徑、作品大小、作品名稱)查詢作品是否已完整上傳,若是,將作品標(biāo)志位w置為1,否則置為0。
④作品侵權(quán)檢測(cè)。通過IPFS路徑下載作品,計(jì)算作品simhash,與登記庫(kù)中的作品simhash對(duì)比,若相似度未超過閾值,則侵權(quán)檢測(cè)通過,并將侵權(quán)檢測(cè)標(biāo)志位s置為1。
⑤生成版權(quán)登記信息的讀寫集。寫集包含登記作品的信息、權(quán)利人身份信息及訪問控制列表。其中,訪問控制列表是由數(shù)據(jù)所有者自己確定,只有經(jīng)過授權(quán)的用戶才能訪問登記信息,這樣保證了個(gè)人數(shù)據(jù)的私密性。
(2)版權(quán)查詢合約協(xié)議
①驗(yàn)證用戶身份。同上。
②驗(yàn)證用戶簽名,確保提案數(shù)據(jù)完整且沒有被篡改。
③訪問權(quán)限檢測(cè)。根據(jù)該作品的訪問控制列表,查詢?cè)撚脩羰欠裼性L問權(quán)限。
④根據(jù)作品哈希查詢其版權(quán)歸屬。
為了測(cè)試系統(tǒng)的性能,通過以下方式搭建了測(cè)試網(wǎng)絡(luò)。測(cè)試網(wǎng)絡(luò)基于超級(jí)賬本源碼構(gòu)建。實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)淙缦拢悍?wù)器A、B、C、D、E分別模擬組織1、組織2、共識(shí)集群、Fabric CA及Client。其中,服務(wù)器A開啟4個(gè)Peer docker,其中一個(gè)為Endoser;服務(wù)器B開啟3個(gè)Peer docker,其中一個(gè)為Endoser;服務(wù)器C上開啟多個(gè)Order docker,模擬共識(shí)節(jié)點(diǎn)群;服務(wù)器D上裝載Fabric CA sever;服務(wù)器E上裝載Fabric client。另外,服務(wù)器A和服務(wù)器B上分別裝載IPFS程序,用于存儲(chǔ)數(shù)字作品。實(shí)驗(yàn)服務(wù)器配置如表2所示。
表2 服務(wù)器配置
如圖5所示,隨著請(qǐng)求頻率的增加,系統(tǒng)處理速率逐漸增加,直到請(qǐng)求頻率達(dá)到1 000筆/s時(shí),系統(tǒng)處理速率逐漸達(dá)到飽和,版權(quán)登記及版權(quán)查詢處理速率分別約為970筆/s、1 084筆/s。
圖5 系統(tǒng)處理速率
如圖6所示,隨著請(qǐng)求頻率的增加,系統(tǒng)處理時(shí)延最開始緩慢增加,版權(quán)登記及版權(quán)查詢平均處理時(shí)延分別約為0.8 s、0.1 s。當(dāng)請(qǐng)求頻率達(dá)到1 000筆/s時(shí),由于系統(tǒng)處理能力逐漸達(dá)到飽和,時(shí)延增加幅度加大。
圖6 系統(tǒng)處理時(shí)延
通過上述分析,正常請(qǐng)求頻率下,系統(tǒng)的版權(quán)登記及版權(quán)查詢處理速率約為973筆/s和1 084筆/s,處理時(shí)延約為0.8 s和0.1 s。總體來(lái)說,系統(tǒng)整體性能基本滿足商用需求。
本文首先設(shè)計(jì)了基于超級(jí)賬本的數(shù)字版權(quán)登記模型,然后通過simhash查重算法實(shí)現(xiàn)了作品侵權(quán)檢測(cè),最后結(jié)合智能合約技術(shù)實(shí)現(xiàn)了版權(quán)登記及數(shù)據(jù)訪問控制,確保了個(gè)人數(shù)據(jù)的隱私性。未來(lái)工作將考慮更進(jìn)一步優(yōu)化系統(tǒng)性能。