王云婷,龐曉瓊,陳錦生,陳文俊,2,楊 婷
1.中北大學(xué) 大數(shù)據(jù)學(xué)院,太原 030051
2.中國(guó)人民銀行 太原中心支行,太原 030001
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展和普及,數(shù)字內(nèi)容消費(fèi)已經(jīng)變得越來(lái)越流行,越來(lái)越多的人通過(guò)網(wǎng)絡(luò)瀏覽器或基于移動(dòng)應(yīng)用的軟件訪問(wèn)和購(gòu)買數(shù)字內(nèi)容,然而,數(shù)字內(nèi)容的非法使用會(huì)給內(nèi)容提供商造成損害。因此,有必要使用數(shù)字權(quán)限管理來(lái)確保數(shù)字內(nèi)容從出版到使用整個(gè)流通過(guò)程中的安全性[1]。
但是,當(dāng)前的數(shù)字權(quán)限保護(hù)系統(tǒng)注冊(cè)成本高,申請(qǐng)過(guò)程復(fù)雜,而且花費(fèi)時(shí)間長(zhǎng)[2-3]。由于這些原因,很多數(shù)字作品創(chuàng)作者不愿意申請(qǐng)數(shù)字權(quán)限保護(hù),使大量碎片化的數(shù)字作品難以得到權(quán)限保護(hù)。另一方面,傳統(tǒng)DRM(digital rights management)的中心化管理還存在一些不足:內(nèi)容提供者和消費(fèi)者之間的權(quán)限交易依賴于第三方金融平臺(tái),一旦平臺(tái)遭到攻擊,無(wú)法保證交易的正常執(zhí)行;許可證的發(fā)放需要許可證服務(wù)器,這種方式容易遭受單點(diǎn)故障,導(dǎo)致許可證發(fā)放服務(wù)終止;權(quán)限交易信息和許可證信息都是不透明的,對(duì)用戶來(lái)說(shuō)是不友好的。
區(qū)塊鏈(blockchain)作為比特幣的重要技術(shù),由于其具有去中心化、不可偽造、公開(kāi)透明等特點(diǎn),越來(lái)越受到關(guān)注[4]。以太坊作為全球第二大區(qū)塊鏈平臺(tái),通過(guò)調(diào)用去中心化的以太虛擬機(jī)(ethereum virtual machine)處理預(yù)先發(fā)布的智能合約,實(shí)現(xiàn)用戶在區(qū)塊鏈平臺(tái)上自定義的邏輯[5]。將區(qū)塊鏈技術(shù)用于數(shù)字權(quán)限領(lǐng)域可以很好地解決目前數(shù)字版權(quán)確權(quán)授權(quán)中存在的問(wèn)題。
因此,本系統(tǒng)針對(duì)數(shù)字音樂(lè)版權(quán)的確權(quán)與授權(quán)提供一整套解決方案,利用區(qū)塊鏈技術(shù)去中心化、不可偽造、公開(kāi)透明等特點(diǎn),來(lái)解決傳統(tǒng)數(shù)字音樂(lè)權(quán)限管理存在的問(wèn)題,實(shí)現(xiàn)了一個(gè)基于區(qū)塊鏈的從確權(quán)到授權(quán)的數(shù)字音樂(lè)權(quán)限保護(hù)系統(tǒng)。
迄今為止,全球的許多科研人員針對(duì)數(shù)字權(quán)限保護(hù)進(jìn)行了大量的嘗試,許多大型的跨國(guó)企業(yè)也推出了自己的數(shù)字權(quán)限保護(hù)系統(tǒng)。例如微軟公司推出的Windows Media Player,可以保證視頻、音頻在不同設(shè)備上的安全播放;蘋果公司針對(duì)數(shù)字音頻權(quán)限保護(hù)提出的FairPlay系統(tǒng);IBM公司提出的針對(duì)電子媒體和數(shù)字權(quán)限保護(hù)的EMMS保護(hù)方案;國(guó)內(nèi)研究團(tuán)隊(duì)也基于資源數(shù)字化、數(shù)字圖書(shū)出版提出了Apabi解決方案;文獻(xiàn)[6]提出基于P2P的DRM系統(tǒng)設(shè)計(jì);文獻(xiàn)[7]基于DOI進(jìn)行了數(shù)字版權(quán)管理系統(tǒng)的模型研究;文獻(xiàn)[8]提出基于特征圖像的數(shù)字版權(quán)保護(hù)系統(tǒng)。然而,傳統(tǒng)數(shù)字音樂(lè)權(quán)限保護(hù)行業(yè)存在的保護(hù)難、舉證難、交易難的問(wèn)題,區(qū)塊鏈技術(shù)具有去中心化、不可偽造、公開(kāi)透明等特點(diǎn),可以利用其解決傳統(tǒng)數(shù)字權(quán)限保護(hù)系統(tǒng)中存在的問(wèn)題。
隨著區(qū)塊鏈技術(shù)的興起,全球越來(lái)越多的中小型公司將目光集中到區(qū)塊鏈權(quán)限保護(hù)行業(yè),比如國(guó)內(nèi)代表企業(yè)紙貴、原本和億書(shū)等,以及國(guó)外的Monegraph、Colu和Binded等。也有很多學(xué)者將區(qū)塊鏈技術(shù)和數(shù)字權(quán)限結(jié)合起來(lái)進(jìn)行研究,以下是近些年部分學(xué)者的研究成果。
文獻(xiàn)[9]總結(jié)出整個(gè)區(qū)塊鏈數(shù)字權(quán)限保護(hù)系統(tǒng)都是一個(gè)去中心化的網(wǎng)絡(luò),其框架也具備網(wǎng)絡(luò)的基本層次結(jié)構(gòu),根據(jù)數(shù)字版權(quán)的實(shí)現(xiàn)功能應(yīng)將區(qū)塊鏈數(shù)字版權(quán)保護(hù)系統(tǒng)框架分為5層架構(gòu)。文獻(xiàn)[10]實(shí)現(xiàn)的基于區(qū)塊鏈的數(shù)字權(quán)限存根和買賣系統(tǒng)中,包含的大功能模塊有:數(shù)字作品發(fā)表、版權(quán)登記、版權(quán)交易、作品鑒權(quán)、后臺(tái)管理。文獻(xiàn)[11]的系統(tǒng)流程具體為將數(shù)字內(nèi)容的版權(quán)關(guān)鍵標(biāo)識(shí)存儲(chǔ)至區(qū)塊鏈網(wǎng)絡(luò)中,當(dāng)有未授權(quán)的人員使用版權(quán)時(shí),部署于區(qū)塊鏈上的智能合約會(huì)被激活,通知區(qū)塊鏈網(wǎng)絡(luò)中的其他節(jié)點(diǎn)進(jìn)行回溯查詢登記的版權(quán)信息,并告知版權(quán)擁有者其被侵權(quán)。文獻(xiàn)[12]得出智能合約只能簡(jiǎn)單的通過(guò)哈希算法產(chǎn)生的哈希值來(lái)判斷版權(quán)是否被侵權(quán),這種方式只有當(dāng)數(shù)值完全相同時(shí)才能判斷,而不符合實(shí)際應(yīng)用情況。文獻(xiàn)[13]總結(jié)出區(qū)塊鏈平臺(tái)具有時(shí)空局限性,智能合約的操作以及版權(quán)的對(duì)比都必須在相同區(qū)塊鏈網(wǎng)絡(luò)中進(jìn)行,并以智能合約的方式供他人獲取和使用。
本文系統(tǒng)主要使用Python編寫,利用IPFS存儲(chǔ)數(shù)字音樂(lè),同時(shí)采用多種密碼技術(shù)確保運(yùn)行安全性。系統(tǒng)下設(shè)區(qū)塊鏈、線上Web、密鑰服務(wù)器、線下加密解密4個(gè)獨(dú)立子系統(tǒng),通過(guò)子系統(tǒng)間相互配合運(yùn)行,支持版權(quán)擁有者在智能合約上設(shè)置數(shù)字內(nèi)容不同的使用權(quán)限及對(duì)應(yīng)的價(jià)格,同時(shí),支持權(quán)限購(gòu)買者快速查詢以供消費(fèi)。通過(guò)智能合約完成權(quán)限交易和自動(dòng)發(fā)放許可證,利用區(qū)塊鏈記錄權(quán)限交易信息和許可證信息,避免了傳統(tǒng)數(shù)字權(quán)限保護(hù)系統(tǒng)中集中式內(nèi)容服務(wù)器容易造成的單點(diǎn)故障問(wèn)題,實(shí)現(xiàn)了無(wú)需任何集中服務(wù)器的許可證發(fā)放功能和權(quán)限交易功能,保證了權(quán)限信息和交易信息的透明與可信。
區(qū)塊鏈從2008年誕生起一共經(jīng)歷了3個(gè)階段。第一階段,即區(qū)塊鏈1.0階段,以比特幣等一大批數(shù)字加密貨幣為代表,做到了數(shù)字貨幣交易的去中心化;第二階段,即區(qū)塊鏈2.0階段,以以太坊等可編程區(qū)塊鏈平臺(tái)為代表,將智能合約同區(qū)塊鏈技術(shù)相融合,使得用戶可以很容易的在區(qū)塊鏈平臺(tái)上開(kāi)發(fā)去中心化的應(yīng)用;第三階段還未到來(lái),目前設(shè)想是將區(qū)塊鏈技術(shù)作為解決信任問(wèn)題的底層技術(shù),應(yīng)用于各行各業(yè)。
區(qū)塊鏈技術(shù)的核心架構(gòu),由下至上分別為基礎(chǔ)層、核心層和應(yīng)用交互層,每個(gè)層之間又細(xì)分為幾個(gè)小層。基礎(chǔ)層主要包括區(qū)塊鏈中使用的密碼學(xué)技術(shù)和有關(guān)的數(shù)據(jù)結(jié)構(gòu);核心層主要是區(qū)塊鏈技術(shù)的具體實(shí)現(xiàn),比如區(qū)塊鏈網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)進(jìn)行共識(shí)的共識(shí)算法,區(qū)塊鏈數(shù)據(jù)在各個(gè)節(jié)點(diǎn)傳播的機(jī)制;應(yīng)用交互層主要擴(kuò)展了智能合約以及側(cè)鏈等其他應(yīng)用,在應(yīng)用交互層中可以很方便的調(diào)用區(qū)塊鏈去開(kāi)發(fā)去中心化的應(yīng)用[14]。
智能合約(smart contract)是一套使用數(shù)字方式簽訂的合同,允許在沒(méi)有第三方監(jiān)督的情況下,進(jìn)行可信賴交易,產(chǎn)生的交易不可篡改且可追溯。這個(gè)概念的提出最早可追溯至1995年,其目的是為了降低簽訂合約相關(guān)的交易成本。而以太坊在其區(qū)塊鏈上實(shí)現(xiàn)了近乎完美的智能合約框架,用戶可以很方便的編寫出自定義合約。智能合約的條款是由代碼確定的。由于代碼邏輯的明確性,比起自然語(yǔ)言,更加不容易產(chǎn)生歧義。其存儲(chǔ)和部署在區(qū)塊鏈網(wǎng)絡(luò)中,而網(wǎng)絡(luò)中的節(jié)點(diǎn)相互獨(dú)立,都擁有同一份副本,因此合約內(nèi)容幾乎不可能被篡改。同時(shí)區(qū)塊鏈中也保存了合約的執(zhí)行記錄,可以作為永久的交易憑證。合約的創(chuàng)建和執(zhí)行都依賴于區(qū)塊鏈協(xié)議,所以合約執(zhí)行的強(qiáng)制力可以保證。
星際文件系統(tǒng)(interplanetary file system,IPFS)是一個(gè)對(duì)等的分布式文件系統(tǒng)。此星際文件系統(tǒng)提供了一個(gè)具有內(nèi)容尋址超鏈接的高吞吐量的內(nèi)容尋址塊存儲(chǔ)模型,結(jié)合了分布式哈希表(DHT)、激勵(lì)塊交換和自認(rèn)證命名空間等技術(shù)。同時(shí),它沒(méi)有中央服務(wù)器,不會(huì)產(chǎn)生單點(diǎn)故障,數(shù)據(jù)分布和存儲(chǔ)在世界各地。它的使用方式是我們將文件上傳到IPFS系統(tǒng)時(shí),將獲得一個(gè)唯一的文件加密哈希字符串,通過(guò)該字符串可以檢索到上傳的文件。由于區(qū)塊鏈不適合儲(chǔ)存大文件,將加密文件儲(chǔ)存在IPFS中。
本系統(tǒng)是基于以太坊的數(shù)字權(quán)限保護(hù)系統(tǒng),核心是調(diào)用預(yù)先發(fā)布在以太坊區(qū)塊鏈網(wǎng)絡(luò)中的智能合約。因智能合約調(diào)用十分抽象,遵循以人為本的設(shè)計(jì)思路,編寫了一套Web端的交互程序,交互程序負(fù)責(zé)與智能合約進(jìn)行交互,并提供人性化的圖形界面供用戶使用。通過(guò)交互程序,版權(quán)擁有者可以很方便的進(jìn)行版權(quán)確權(quán)工作,權(quán)限購(gòu)買者可以很方便地進(jìn)行權(quán)限購(gòu)買。除此之外,交互程序還提供諸如版權(quán)上鏈信息查詢、版權(quán)授權(quán)信息查詢、版權(quán)權(quán)限升級(jí)、退款等便捷功能,交互程序在運(yùn)行過(guò)程中需協(xié)同區(qū)塊鏈、密鑰服務(wù)器、線下加密解密程序一起工作。
基于以太坊的數(shù)字權(quán)限保護(hù)系統(tǒng)主要包括四個(gè)子系統(tǒng),分別為區(qū)塊鏈子系統(tǒng)、Web端子系統(tǒng)、密鑰服務(wù)器子系統(tǒng)、線下加密解密子系統(tǒng),它的系統(tǒng)結(jié)構(gòu)模型如圖1所示。
圖1 基于區(qū)塊鏈的數(shù)字權(quán)限保護(hù)系統(tǒng)的系統(tǒng)結(jié)構(gòu)模型Fig.1 System structure model of digital rights protection system based on blockchain
(1)版權(quán)擁有者向線下加密解密子系統(tǒng)提交版權(quán)文件。
(2)線下加密解密子系統(tǒng)返回加密版權(quán)文件和加密密鑰給版權(quán)擁有者。
(3)版權(quán)擁有者提交版權(quán)信息、加密版權(quán)、加密密鑰給Web子系統(tǒng)。
(4)Web子系統(tǒng)將加密版權(quán)傳送至IPFS平臺(tái),得到IPFS哈希值。
(5)Web子系統(tǒng)發(fā)送版權(quán)審核費(fèi)用未簽名交易數(shù)據(jù)給版權(quán)擁有者。
(6)版權(quán)擁有者使用以太坊賬戶私鑰簽名版權(quán)審核費(fèi)用交易數(shù)據(jù)并發(fā)送交易給區(qū)塊鏈。
(7)交易成功后,智能合約將審核費(fèi)用交易信息寫入?yún)^(qū)塊鏈。
(8)Web子系統(tǒng)發(fā)送版權(quán)信息和加密密鑰至密鑰服務(wù)器子系統(tǒng)。
(9)密鑰服務(wù)器子系統(tǒng)采用shamir秘密分享方案和橢圓ECC加密加密密鑰。
(10)版權(quán)鑒定符合相關(guān)標(biāo)準(zhǔn),密鑰服務(wù)器子系統(tǒng)將版權(quán)信息上鏈。
(11)版權(quán)鑒定不符合相關(guān)標(biāo)準(zhǔn),主密鑰服務(wù)器子系統(tǒng)通知Web子系統(tǒng)將結(jié)果存至后臺(tái)數(shù)據(jù)庫(kù)。
(12)區(qū)塊鏈返回版權(quán)唯一標(biāo)識(shí)信息給Web子系統(tǒng)。
(13)權(quán)限購(gòu)買者將權(quán)限購(gòu)買信息會(huì)發(fā)送至Web子系統(tǒng)。
(14)Web子系統(tǒng)發(fā)送權(quán)限費(fèi)用未簽名交易數(shù)據(jù)給權(quán)限購(gòu)買者。
(15)權(quán)限購(gòu)買者使用以太坊賬戶私鑰SK簽名權(quán)限費(fèi)用數(shù)據(jù)并發(fā)送交易給區(qū)塊鏈。
(16)付款成功后,智能合約將購(gòu)買信息寫入?yún)^(qū)塊鏈并生成購(gòu)買唯一標(biāo)識(shí)。
(17)區(qū)塊鏈返回購(gòu)買版權(quán)信息和購(gòu)買唯一標(biāo)識(shí)給Web子系統(tǒng)。
(18)Web子系統(tǒng)將購(gòu)買唯一標(biāo)識(shí)和購(gòu)買版權(quán)信息發(fā)送給密鑰服務(wù)器子系統(tǒng)。
(19)密鑰服務(wù)器子系統(tǒng)解密先前的加密子密鑰并使用權(quán)限購(gòu)買者公鑰將版權(quán)的子密鑰進(jìn)行橢圓ECC加密,再將其打包成加密子密鑰。
(20)密鑰服務(wù)器子系統(tǒng)將加密子密鑰上傳至IPFS平臺(tái),得到密鑰IPFS哈希碼。
(21)IPFS返回密鑰IPFS哈希碼給密鑰服務(wù)器子系統(tǒng)。
(22)密鑰服務(wù)器子系統(tǒng)將得到的密鑰IPFS哈希碼、購(gòu)買唯一標(biāo)識(shí)和加密子密鑰打包成許可證,上傳至區(qū)塊鏈平臺(tái)。
(23)區(qū)塊鏈返回許可證給Web子系統(tǒng)。
(24)權(quán)限購(gòu)買者向Web子系統(tǒng)請(qǐng)求下載加密子密鑰和版權(quán)加密文件。
(25)Web子系統(tǒng)返回加密子密鑰和版權(quán)加密文件給權(quán)限購(gòu)買者。
(26)權(quán)限購(gòu)買者向線下加密解密子系統(tǒng)提交加密子密鑰和版權(quán)加密文件。
(27)線下加密解密系統(tǒng)進(jìn)行版權(quán)的解密,返回解密版權(quán)給權(quán)限購(gòu)買者。
本系統(tǒng)最核心的兩個(gè)功能為版權(quán)的確權(quán)和授權(quán),確權(quán)即版權(quán)信息上鏈,授權(quán)即權(quán)限鏈上購(gòu)買。下面將詳細(xì)說(shuō)明版權(quán)確權(quán)、授權(quán)過(guò)程中各子系統(tǒng)所進(jìn)行的工作。文中用到的符號(hào)定義如表1所示。
表1 相關(guān)符號(hào)定義Table 1 Definition of related symbols
版權(quán)確權(quán)時(shí)序圖如圖2所示,該時(shí)序圖重點(diǎn)關(guān)注版權(quán)確權(quán)時(shí)各個(gè)系統(tǒng)執(zhí)行的順序,默認(rèn)版權(quán)擁有者已注冊(cè)Web子系統(tǒng)用戶賬戶和以太坊賬戶,且已經(jīng)在線下加密解密端子系統(tǒng)和Web端子系統(tǒng)進(jìn)行登錄。版權(quán)確權(quán)時(shí)序圖說(shuō)明如下:
圖2 版權(quán)確權(quán)時(shí)序圖Fig.2 Copyright confirmation sequence diagram
版權(quán)擁有者在線下加密解密子系統(tǒng)使用AES 128位CBC模式加密待發(fā)布版權(quán)文件RS后,得到加密版權(quán)文件ERS和加密密鑰EK,其中加密密鑰是由秘密分割的五個(gè)加密子密鑰構(gòu)成。
版權(quán)擁有者登陸線上網(wǎng)站進(jìn)入版權(quán)發(fā)布頁(yè)面,填寫版權(quán)信息RI,并上傳加密版權(quán)ERS和加密密鑰EK,點(diǎn)擊發(fā)布按鈕,版權(quán)信息RI、加密版權(quán)ERS、加密密鑰EK會(huì)發(fā)送至Web子系統(tǒng)后端,Web子系統(tǒng)后端將加密版權(quán)傳送至IPFS平臺(tái)后得到IPFS哈希值,并和Web子系統(tǒng)數(shù)據(jù)庫(kù)中IPFS哈希值對(duì)比,若出現(xiàn)相同值,返回錯(cuò)誤信息。否則,Web子系統(tǒng)將版權(quán)信息存至其數(shù)據(jù)庫(kù)備份,并發(fā)送版權(quán)審核費(fèi)用未簽名交易數(shù)據(jù)RAF給本地MetaMask錢包。
版權(quán)擁有者使用本地MetaMask錢包中的以太坊賬戶私鑰SK簽名版權(quán)審核費(fèi)用交易數(shù)據(jù),并發(fā)送交易給區(qū)塊鏈,即使用以太坊賬戶支付版權(quán)審核費(fèi)用。交易成功后,版權(quán)擁有者等待系統(tǒng)響應(yīng),智能合約會(huì)將審核費(fèi)用交易信息寫入?yún)^(qū)塊鏈。
Web子系統(tǒng)后臺(tái)會(huì)監(jiān)視到版權(quán)擁有者付款,并將其數(shù)據(jù)庫(kù)中暫存版權(quán)信息和加密密鑰發(fā)至密鑰服務(wù)器子系統(tǒng)。
密鑰服務(wù)器子系統(tǒng)下分主密鑰服務(wù)器MK和五個(gè)獨(dú)立的子密鑰服務(wù)器OK n。主密鑰服務(wù)器將接收到的加密密鑰采用shamir秘密分享方案分割成五份子密鑰EK n分別發(fā)送給5個(gè)子密鑰服務(wù)器存儲(chǔ),再分別使用五個(gè)不同的子密鑰服務(wù)器的公鑰POK n進(jìn)行橢圓ECC加密,得到五個(gè)加密子密鑰EK n,發(fā)送完后通知信賴第三方音樂(lè)鑒定機(jī)構(gòu)進(jìn)行版權(quán)鑒定,同時(shí)將版權(quán)信息存至主密鑰服務(wù)器后臺(tái)數(shù)據(jù)庫(kù)。鑒定完成后信賴第三方鑒定機(jī)構(gòu)通知主密鑰服務(wù)器鑒定結(jié)果,若符合相關(guān)標(biāo)準(zhǔn),主密鑰服務(wù)器將暫存其數(shù)據(jù)庫(kù)中的版權(quán)信息上鏈;若不符合相關(guān)標(biāo)準(zhǔn),主密鑰服務(wù)器會(huì)通知Web子系統(tǒng),Web子系統(tǒng)會(huì)將結(jié)果存至后臺(tái)數(shù)據(jù)庫(kù)。
Web子系統(tǒng)后臺(tái)監(jiān)視到版權(quán)信息上鏈后,將版權(quán)上鏈唯一標(biāo)識(shí)信息ID存至Web子系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù),權(quán)限購(gòu)買者便可在Web前端瀏覽、購(gòu)買權(quán)限,至此版權(quán)確權(quán)工作完成。
版權(quán)授權(quán)時(shí)序圖如圖3所示,該時(shí)序圖重點(diǎn)關(guān)注版權(quán)授權(quán)時(shí)各個(gè)系統(tǒng)執(zhí)行的順序,默認(rèn)權(quán)限購(gòu)買者已注冊(cè)Web子系統(tǒng)用戶賬戶和以太坊賬戶,且已經(jīng)在線下加密解密端子系統(tǒng)和Web端子系統(tǒng)進(jìn)行登錄。
圖3 版權(quán)授權(quán)時(shí)序圖Fig.3 Copyright authorization sequence diagram
版權(quán)授權(quán)時(shí)序圖說(shuō)明如下:
權(quán)限購(gòu)買者在成功登陸線上網(wǎng)站后挑選權(quán)限,點(diǎn)擊購(gòu)買后,若購(gòu)買版權(quán)的權(quán)限2[15]至權(quán)限6,則需填寫授權(quán)項(xiàng)目名稱,若是購(gòu)買權(quán)限1則直接購(gòu)買,填寫完畢后,權(quán)限購(gòu)買信息RPI會(huì)發(fā)送至Web子系統(tǒng)。Web子系統(tǒng)將權(quán)限購(gòu)買者購(gòu)買的信息打包并存至后端數(shù)據(jù)庫(kù)備份之后,發(fā)送權(quán)限費(fèi)用未簽名交易數(shù)據(jù)RF給本地MetaMask錢包。
權(quán)限購(gòu)買者使用本地MetaMask錢包中的以太坊賬戶私鑰SK簽名權(quán)限費(fèi)用數(shù)據(jù),并發(fā)送交易給區(qū)塊鏈,即使用以太坊賬戶支付權(quán)限費(fèi)用。付款成功后,權(quán)限購(gòu)買者等待系統(tǒng)響應(yīng),智能合約會(huì)將權(quán)限購(gòu)買者購(gòu)買信息寫入?yún)^(qū)塊鏈,并生成購(gòu)買唯一標(biāo)識(shí)ID。
Web子系統(tǒng)后臺(tái)會(huì)監(jiān)視到權(quán)限購(gòu)買者購(gòu)買,并將購(gòu)買信息存置其后臺(tái)數(shù)據(jù)庫(kù)。
權(quán)限購(gòu)買者在Web子系統(tǒng)前端個(gè)人中心頁(yè)面“我的版權(quán)”中找到購(gòu)買的權(quán)限,點(diǎn)擊確認(rèn)購(gòu)買選項(xiàng)后,Web子系統(tǒng)將唯一標(biāo)識(shí)ID和購(gòu)買信息RPI發(fā)送給密鑰服務(wù)器子系統(tǒng)。
密鑰服務(wù)器子系統(tǒng)下分主密鑰服務(wù)器MK和五個(gè)獨(dú)立的子密鑰服務(wù)器OK n。主密鑰服務(wù)器收到信息后將權(quán)限購(gòu)買者的公鑰PK傳送給3個(gè)子密鑰服務(wù)器,子密鑰服務(wù)器利用其私鑰SOK n解密先前的加密子密鑰EK n,并在本地使用權(quán)限購(gòu)買者公鑰將版權(quán)的子密鑰進(jìn)行橢圓ECC加密,并發(fā)送的給主密鑰服務(wù)器,主密鑰服務(wù)器將3個(gè)新的加密子密鑰打包后的加密子密鑰ESK上傳至IPFS平臺(tái),得到密鑰IPFS哈希碼hESK后連同權(quán)限購(gòu)買者購(gòu)買唯一標(biāo)識(shí)ID打包成許可證LIC,上傳至區(qū)塊鏈平臺(tái)。
Web端子系統(tǒng)監(jiān)視到許可證上鏈后,將許可證信息存至Web端后臺(tái)數(shù)據(jù)庫(kù)。權(quán)限購(gòu)買者在Web子系統(tǒng)前端點(diǎn)擊下載密鑰和版權(quán)加密文件,并將下載后的文件使用以太坊賬戶登錄線下加密解密系統(tǒng)使用shamir門限秘密共享方案恢復(fù)完整加密密鑰進(jìn)行版權(quán)的解密,至此版權(quán)授權(quán)工作完成。
基于以太坊的數(shù)字權(quán)限保護(hù)系統(tǒng)主要包括四個(gè)子系統(tǒng),分別為區(qū)塊鏈子系統(tǒng)、Web端子系統(tǒng)、密鑰服務(wù)器子系統(tǒng)、線下加密解密子系統(tǒng),4個(gè)子系統(tǒng)均獨(dú)立運(yùn)行并相互配合。在處理用戶請(qǐng)求時(shí),4個(gè)子系統(tǒng)之間需要進(jìn)行通訊,其中Web子系統(tǒng)和密鑰服務(wù)器通過(guò)HTTP協(xié)議與區(qū)塊鏈進(jìn)行交互,Web子系統(tǒng)通過(guò)TCP自定義應(yīng)用層協(xié)議與密鑰服務(wù)器進(jìn)行交互。Web子系統(tǒng)監(jiān)聽(tīng)端口,線下加密解密子系統(tǒng)將加密后的文件通過(guò)HTTP協(xié)議連接上傳至Web子系統(tǒng),所有通信都配備了相關(guān)安全協(xié)議。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖如圖4所示。
圖4 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖Fig.4 System structure design diagram
系統(tǒng)測(cè)試部分主要進(jìn)行了版權(quán)確權(quán)功能測(cè)試和版權(quán)授權(quán)功能測(cè)試,前一部分測(cè)試主要分為版權(quán)確權(quán)、權(quán)限售賣查詢測(cè)試,主要包含功能為線下版權(quán)加密、版權(quán)信息上鏈、版權(quán)上鏈信息查詢、權(quán)限售賣查詢。后一部分測(cè)試主要分為權(quán)限購(gòu)買、版權(quán)解密測(cè)試,主要包含功能為權(quán)限購(gòu)買信息上鏈、購(gòu)買權(quán)限退款、購(gòu)買權(quán)限升級(jí)、購(gòu)買版權(quán)線下解密。
版權(quán)擁有者加密待發(fā)布版權(quán),填寫版權(quán)信息,管理員審核上鏈,返回版權(quán)唯一標(biāo)識(shí)ID,個(gè)人中心中可向版權(quán)擁有者郵箱返回權(quán)限售賣信息詳情。
用戶選擇權(quán)限,付款成功后,在個(gè)人中心-我的版權(quán)中找到購(gòu)買權(quán)限,點(diǎn)擊確認(rèn)購(gòu)買選項(xiàng)后,下載密鑰和版權(quán)加密文件,可解密版權(quán)文件。購(gòu)買兩小時(shí)內(nèi),若未確認(rèn)購(gòu)買,可進(jìn)行退款,若超過(guò)兩小時(shí),默認(rèn)確認(rèn)購(gòu)買。在權(quán)限到期前,可以升級(jí)版權(quán)權(quán)限,升級(jí)后原權(quán)限作廢,升級(jí)只需支付新權(quán)限與原權(quán)限之間差價(jià)。
在這部分中,將通過(guò)實(shí)驗(yàn)測(cè)試分析系統(tǒng)的性能和實(shí)用性。PC機(jī)硬件配置為AMD Ryzen7 4800H處理器,16 GB內(nèi)存,操作系統(tǒng)為Ubuntu 18.04LTS 64位,編譯器為Remix,程序設(shè)計(jì)語(yǔ)言是Solidity 0.5.1+。
以太坊區(qū)塊鏈在以太坊虛擬機(jī)(EVM)中運(yùn)行交易觸發(fā)代碼,以太坊中的消耗,發(fā)送、存儲(chǔ)和執(zhí)行計(jì)算等都以gas為單位表示,EVM中的每一步操作都有一個(gè)固定的消耗值,被稱為消耗的gas,gas price是單位gas的價(jià)格(用以太幣計(jì)算),實(shí)際交易成本的計(jì)算方式為二者的乘積,我們是在北京時(shí)間2020年7月1日進(jìn)行的實(shí)驗(yàn),以太坊開(kāi)盤價(jià)為1 ether=226.13 USD,gas price=2 Gwei,1 Gwei=109wei=10-9ether。
在本文系統(tǒng)中,智能合約被部署在Ropsten測(cè)試網(wǎng)絡(luò)中,部署合約賬戶地址為0x3D25C06465351fD529 164e9Ff5355A67333Ba34e用戶賬戶地址:0xAb2c4077 a1b5C73a92B03a0cee04bC2D0Cc38e0a智能合約地址為0x2eeb9a733691760320adc675149825d4e1fa9689利用智能合約分析了以下操作的花費(fèi),版權(quán)擁有者設(shè)置每個(gè)版權(quán)權(quán)限交易手續(xù)費(fèi),成為版權(quán)發(fā)布者的押金及審核花費(fèi)為$1.089 042,版權(quán)擁有者設(shè)置每個(gè)版權(quán)權(quán)限對(duì)應(yīng)價(jià)格即addProductToStorageByAdmin花費(fèi)為$0.163 492,版權(quán)擁有者將加密版權(quán)上鏈需要支付版權(quán)審核花費(fèi)即addProductToStorageByUser花費(fèi)為$0.019 899,版權(quán)擁有者將版權(quán)狀態(tài)重新寫入即modifyProduct花費(fèi)為$0.019 447,超級(jí)管理員(合約發(fā)布者)授權(quán)其他賬戶為管理員即modifyKeyManager花費(fèi)為$0.019 447,權(quán)限購(gòu)買者獲取許可證即purchase花費(fèi)為$0.087 060,權(quán)限購(gòu)買者進(jìn)行權(quán)限升級(jí)即update花費(fèi)為$0.113 291,管理員上傳版權(quán)許可證即uploadLicense花費(fèi)為$0.156 030,權(quán)限購(gòu)買者交易退款即refundMoney花費(fèi)為$0.031 658,版權(quán)擁有者狀態(tài)轉(zhuǎn)換即refundMoney花費(fèi)為$0.018 769。可在測(cè)試鏈官方網(wǎng)站https//ropsten.etherscan.io/使用上述地址查詢測(cè)試數(shù)據(jù)。如表2所示評(píng)估表明本系統(tǒng)所消耗的成本是可接受的。
表2 智能合約花費(fèi)測(cè)試Table 2 Smart contract cost test
本系統(tǒng)結(jié)合了分布式存儲(chǔ)系統(tǒng)IPFS、以太坊、智能合約和各種對(duì)稱以及非對(duì)稱加密算法,比傳統(tǒng)DRM系統(tǒng)具有更多的優(yōu)勢(shì)。首先,本系統(tǒng)采用IPFS來(lái)存儲(chǔ)加密的數(shù)字內(nèi)容,保證數(shù)字音樂(lè)的永久性儲(chǔ)存,能夠有效解決由于內(nèi)容服務(wù)器停止運(yùn)行造成的單點(diǎn)故障問(wèn)題。此外,我們將加密的內(nèi)容密鑰存儲(chǔ)在智能合約中,使用智能合約發(fā)布和交易數(shù)字權(quán)限,從而去除許可證服務(wù)器,避免因意外而影響正常工作。且智能合約自動(dòng)分配所有利益,去除第三方金融平臺(tái),保障了所有參與方的利益,保證了交易的公平與可信。其次,本系統(tǒng)中版權(quán)擁有者通過(guò)智能合約直接交易數(shù)字權(quán)限和發(fā)放許可證,令數(shù)字權(quán)限的售賣情況儲(chǔ)存在區(qū)塊鏈上,使得售賣信息變得公開(kāi)透明和真實(shí)可信。在一定程度上保證了用戶隱私,也對(duì)用戶更加友好,使得版權(quán)擁有者可以擁有更大的自主權(quán)和獲得更多利益回報(bào)。最后,版權(quán)擁有者使用AES算法對(duì)數(shù)字內(nèi)容進(jìn)行加密,并將其存儲(chǔ)在IPFS存儲(chǔ)節(jié)點(diǎn)中,存儲(chǔ)節(jié)點(diǎn)不能獲得數(shù)字內(nèi)容的任何明文信息。數(shù)字內(nèi)容的加密密鑰采用Shamir秘密共享算法和ECC橢圓曲線加密算法進(jìn)行加密及密鑰交換,并存儲(chǔ)在智能合約中。只有已成功獲得相應(yīng)許可證的用戶才能解密加密的內(nèi)容密鑰并根據(jù)許可證中包含的權(quán)限使用數(shù)字內(nèi)容。
也分析了兩種典型攻擊類型(DoS攻擊和竊聽(tīng)攻擊)下系統(tǒng)的安全性:(1)本文所述方案采用區(qū)塊鏈技術(shù),沒(méi)有真正意義的中心服務(wù)器,當(dāng)一個(gè)節(jié)點(diǎn)受到惡意DoS攻擊時(shí),此節(jié)點(diǎn)發(fā)生故障,但系統(tǒng)中的其他節(jié)點(diǎn)仍能正常工作。由此延伸,當(dāng)多個(gè)節(jié)點(diǎn)受到攻擊且發(fā)生故障時(shí),系統(tǒng)中的其他節(jié)點(diǎn)仍能正常工作,整個(gè)系統(tǒng)可以維持正常功能,避免了單點(diǎn)故障,抵御了DoS攻擊。(2)對(duì)版權(quán)文件、加密密鑰和加密子密鑰進(jìn)行加密處理,沒(méi)有相應(yīng)的加密密鑰、加密子密鑰和購(gòu)買者公鑰無(wú)法解密。因此,在提出的系統(tǒng)中,能防止竊聽(tīng)攻擊。
理論證明,系統(tǒng)可以抵御這兩種攻擊,系統(tǒng)是安全的。
本系統(tǒng)針對(duì)數(shù)字音樂(lè)版權(quán)的確權(quán)與授權(quán)提供一整套解決方案,利用區(qū)塊鏈技術(shù)去中心化、不可偽造、公開(kāi)透明等特點(diǎn),解決傳統(tǒng)數(shù)字音樂(lè)權(quán)限保護(hù)行業(yè)存在的保護(hù)難、舉證難、交易難的問(wèn)題。實(shí)現(xiàn)了一個(gè)基于區(qū)塊鏈的從版權(quán)確權(quán)到授權(quán)的數(shù)字音樂(lè)權(quán)限保護(hù)系統(tǒng)。
當(dāng)然本系統(tǒng)也存在缺陷,如為了隱私問(wèn)題,搭建的以太坊區(qū)塊鏈網(wǎng)絡(luò)為聯(lián)盟鏈,只有授權(quán)的節(jié)點(diǎn)才能加入?yún)^(qū)塊鏈網(wǎng)絡(luò),并不是完全的去中心化;又如雖然在智能合約上進(jìn)行了限制,使得用戶無(wú)法直接獲取區(qū)塊鏈上的隱私信息,但是仍存在信息泄露的風(fēng)險(xiǎn)。若要想實(shí)現(xiàn)完全的去中心化應(yīng)用的開(kāi)發(fā),用戶隱私問(wèn)題必須重視,這需要對(duì)區(qū)塊鏈的底層實(shí)現(xiàn)進(jìn)行相應(yīng)的二次開(kāi)發(fā),而不是只停留在頂層,即應(yīng)用層已經(jīng)實(shí)現(xiàn)的技術(shù)。這還需要今后繼續(xù)學(xué)習(xí),在區(qū)塊鏈底層實(shí)現(xiàn)上繼續(xù)前進(jìn)。