国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于聯(lián)盟區(qū)塊鏈和IPFS的音樂共享模型

2020-04-27 05:22:28高文濤張桂蕓
關鍵詞:普通用戶以太合約

高文濤,張桂蕓

(天津師范大學計算機與信息工程學院,天津300387)

近年來,區(qū)塊鏈技術由于其去中心化和不可篡改等特性[1],在金融、互聯(lián)網(wǎng)等領域得到廣泛應用,并逐漸滲透到音樂產(chǎn)業(yè)領域.隨著移動互聯(lián)網(wǎng)的快速發(fā)展,音樂產(chǎn)業(yè)已經(jīng)逐步進入互聯(lián)網(wǎng)音樂時代,這給音樂產(chǎn)業(yè)帶來了新的挑戰(zhàn),即海量音樂數(shù)據(jù)的存儲和共享問題.

區(qū)塊鏈作為分布式記賬技術,可以完整地保存每一份在鏈上注冊過的新的數(shù)字內(nèi)容和版權等相關信息,然而,現(xiàn)有的區(qū)塊鏈直接鏈上大文本、 音頻和視頻等文件成本昂貴,并且系統(tǒng)計算能力和存儲能力有限.針對以上問題,相關研究做了許多嘗試.文獻[2]設計了基于以太坊的物品共享交易服務系統(tǒng),利用智能合約實現(xiàn)共享物品的租借與歸還服務,但沒有考慮到區(qū)塊鏈上直接存儲物品詳情信息等大文本數(shù)據(jù)的局限性.文獻[3]通過改進拜占庭容錯機制并定制個性化訪問控制,設計了電子醫(yī)療記錄共享模型,但該模型仍存在數(shù)據(jù)存儲方面的缺陷.文獻[4]提出一種基于區(qū)塊鏈和星際文件系統(tǒng)(inter planetary file system,IPFS)的框架來解決當前在線出版的原創(chuàng)性和真實性問題,雖然該模型結合了IPFS, 但只驗證了智能合約的功能,用戶的訪問權限部分沒有實現(xiàn),在數(shù)據(jù)共享方面還存在不足.音樂產(chǎn)業(yè)結合區(qū)塊鏈技術的研究還在初步階段,在音樂版權保護方面,文獻[5]通過分析中國音樂版權保護存在的所有權不明確以及版權分配不均等問題,提出了一個基于區(qū)塊鏈技術的音樂版權保護途徑,為中國音樂版權保護提供了一個創(chuàng)新的商業(yè)模式,然而,海量音樂數(shù)據(jù)存儲在鏈上會產(chǎn)生大量的區(qū)塊數(shù)據(jù),影響區(qū)塊鏈的性能和存儲容量,這對于區(qū)塊鏈技術無疑是一個很大的挑戰(zhàn),此文獻中并沒有給出合理的解決措施.

國內(nèi)外一些音樂服務商采用“區(qū)塊鏈+音樂”的模式, 如 BitTunes、Ujo Music、Peertracks 和 Voise 等基于區(qū)塊鏈的音樂媒體平臺[6],但大多數(shù)平臺只結合區(qū)塊鏈實現(xiàn)了版權管理和文件分享,而沒有考慮到音樂文件本身的存儲缺陷, 同時還存在用戶體驗性差等問題,因而難以實現(xiàn)海量音樂數(shù)據(jù)的分布式存儲和廣泛共享.

區(qū)塊鏈的公有鏈架構需要大量公眾節(jié)點共同參與來保證系統(tǒng)運行,然而在音樂數(shù)字版權的應用環(huán)境中,不需要大規(guī)模的節(jié)點參與,容易造成系統(tǒng)資源浪費.對此,本文提出一種基于以太坊聯(lián)盟鏈的去中心化音樂共享模型.采用IPFS 為區(qū)塊鏈提供數(shù)據(jù)存儲,創(chuàng)作者將音樂數(shù)據(jù)存儲在IPFS 上,而在區(qū)塊鏈上只存儲該數(shù)據(jù)的hash 值,在保證數(shù)據(jù)安全可靠的前提下,減少區(qū)塊鏈的數(shù)據(jù)存儲空間,從而實現(xiàn)海量音樂數(shù)據(jù)的分布式可靠存儲;通過設計用戶個性化訪問控制策略設置創(chuàng)作者和普通用戶之間的訪問權限,利用智能合約保證交易的可靠性和透明度,交易信息經(jīng)過全網(wǎng)節(jié)點共識驗證后寫入?yún)^(qū)塊鏈;通過數(shù)據(jù)測試實驗驗證了模型和智能合約的有效性,實驗結果表明,所設計模型提高了運行效率,實現(xiàn)了高可靠性的音樂數(shù)據(jù)存儲.

1 區(qū)塊鏈技術和IPFS

區(qū)塊鏈源于比特幣的底層技術.為了保證數(shù)據(jù)的不可篡改性,區(qū)塊鏈引入了一種以區(qū)塊為單位并按時間順序相連的方式組合而成的鏈式數(shù)據(jù)結構[7],如圖1 所示.

圖1 區(qū)塊鏈結構Fig.1 Structure of blockchain

以太坊是一個基于公有鏈的去中心化區(qū)塊鏈平臺,它通過共識機制和各個節(jié)點共同參與來保證系統(tǒng)運行,同時以太坊支持智能合約,并可以執(zhí)行圖靈完備的腳本語言[8].共識機制致力于解決在去中心化的分布式互連網(wǎng)絡中所有節(jié)點如何達成一致的問題[9].以太坊中的共識機制分為PoW(proof of work,工作量證明)和 PoA(proof of authority, 權利證明[10]).

智能合約是運行在區(qū)塊鏈上的一段計算機程序,它擴展了區(qū)塊鏈的功能,但是合約不能直接運行在區(qū)塊鏈節(jié)點上[11].以太坊自定義了Solidity 等圖靈完備的腳本語言以開發(fā)智能合約, 外部去中心化應用(decentralized application,DApp)需要調(diào)用智能合約,并依照合約執(zhí)行交易和訪問狀態(tài)數(shù)據(jù).

IPFS 是一個點對點的分布式文件系統(tǒng),提供了數(shù)據(jù)的永久性分布式存儲[12],可以與區(qū)塊鏈的不可篡改和時間戳證明等特性相結合.IPFS 網(wǎng)絡是不固定的、細粒度的、 分布式的網(wǎng)絡,可以很好地共享圖像、音樂、視頻流等各類數(shù)據(jù).

2 基于聯(lián)盟區(qū)塊鏈和IPFS的音樂共享模型設計

2.1 模型架構

本文基于聯(lián)盟區(qū)塊鏈和IPFS 設計的去中心化音樂共享模型系統(tǒng)架構如圖2 所示,分為2 層,上層為用戶交互層,下層為數(shù)據(jù)訪問層.

圖2 模型系統(tǒng)架構Fig.2 System architecture of the model

模型采用Web3 和智能合約實現(xiàn)上層應用與以太坊區(qū)塊鏈和IPFS 的連接,利用以太坊PoA 共識機制的Clique 算法實現(xiàn)全網(wǎng)節(jié)點之間的分布式共識,通過可信任的簽名者產(chǎn)生新區(qū)塊,避免了算力挖礦.雖然PoA 的去中心化程度較弱,但是其可靠的權威節(jié)點認證機制和高效的共識效率更適用于音樂聯(lián)盟鏈的應用場景.

用戶交互層為用戶提供可視化的操作接口,是用戶與系統(tǒng)交互的橋梁,包括系統(tǒng)基礎功能模塊,能夠?qū)⒂脩舻牟僮髡埱筠D(zhuǎn)化為虛擬資產(chǎn)和交易發(fā)送給底層的以太坊區(qū)塊鏈,并永久保存在鏈上.

數(shù)據(jù)訪問層由分布式的以太坊P2P 網(wǎng)絡和IPFS網(wǎng)絡共同實現(xiàn)存儲操作.以太坊網(wǎng)絡中各個節(jié)點組成聯(lián)盟體,利用共識算法達成一致,為系統(tǒng)提供去中心化的數(shù)據(jù)存儲服務.區(qū)塊鏈存儲的數(shù)據(jù)由聯(lián)盟鏈中的所有節(jié)點共同管理,保證數(shù)據(jù)不可被篡改.IPFS 具有去中心化和可基于內(nèi)容尋址的特性, 用于存儲大文本、音頻等數(shù)據(jù)文件,文件內(nèi)容的hash 值則保存在以太坊區(qū)塊鏈上.

2.2 模型工作流程設計

模型工作流程如圖3 所示.

圖3 模型工作流程Fig.3 Work flow of the model

(1)創(chuàng)作者是音樂數(shù)字內(nèi)容的版權所有者(即數(shù)據(jù)擁有者),創(chuàng)作者創(chuàng)建智能合約,并且制定用戶訪問控制策略acpi,通過身份驗證后將音樂文件Fi進行加密,形成密文Ci上傳到IPFS;

(2)IPFS 根據(jù)音樂文件Fi計算出唯一的hash 值hashi并返回給創(chuàng)作者,然后創(chuàng)作者調(diào)用智能合約將該hashi和其他音樂屬性信息以交易的形式存儲在以太坊區(qū)塊鏈上;

(3)創(chuàng)作者可以根據(jù)該hashi驗證版權, 查看音樂內(nèi)容是否發(fā)生篡改,同時允許其他普通用戶訪問音樂數(shù)據(jù);

(4)普通用戶要獲取Fi,首先要通過請求區(qū)塊ID來獲取鏈上存儲的hashi, 當滿足用戶訪問策略后才能根據(jù)該唯一的hashi在IPFS 中查詢到所需內(nèi)容,通過密鑰keyi解密文件獲取數(shù)據(jù).

音樂文件加密后存入IPFS,實現(xiàn)文件的分布式共享存儲.創(chuàng)作者和普通用戶之間利用智能合約產(chǎn)生交易,從而實現(xiàn)交易過程的透明化和自動化.同時,交易信息在全網(wǎng)節(jié)點廣播驗證后寫入?yún)^(qū)塊鏈,保證交易信息不可篡改.

2.3 訪問控制策略設計

針對數(shù)據(jù)存儲訪問權限,設計用戶訪問控制策略為 acpi=(〈Ui,seqi〉,R,P), 其中: Ui為數(shù)據(jù)擁有者用戶集合,seqi為允許請求訪問的數(shù)據(jù)序列號,R 為一組角色集合(即用戶在系統(tǒng)中的身份屬性集合),P 為數(shù)據(jù)擁有者允許訪問seqi的用戶屬性權限.acpi通過控制訪問者的角色實現(xiàn)用戶自定義的個性化訪問控制.訪問控制策略acpi以交易的形式存儲在區(qū)塊鏈中,每個交易中可能存在一條或多條訪問控制策略.對于用戶發(fā)送的訪問請求seqi,若該請求屬性信息滿足acpi中的用戶屬性權限P,則根據(jù)策略描述來允許或拒絕該請求.策略信息對任何用戶都是可驗證、可追溯且不可篡改的, 這保證了系統(tǒng)的魯棒性和可信性.訪問控制策略的判決過程通過智能合約實現(xiàn),避免了第三方機構參與.用戶訪問控制流程如圖4 所示.

圖4 訪問控制流程Fig.4 Flow of access control

用戶要訪問音樂數(shù)據(jù),首先需要進行身份驗證,如果滿足訪問控制策略則擁有訪問請求.普通用戶和創(chuàng)作者擁有不同的訪問控制,創(chuàng)作者可以直接查看或上傳音樂數(shù)據(jù),而普通用戶則需要驗證其權限是否符合制定的acpi,若符合則可以直接訪問音樂數(shù)據(jù),否則拒絕訪問.

2.4 智能合約結構體設計

智能合約是音樂共享模型的核心組件,用于實現(xiàn)平臺的業(yè)務邏輯[13],為數(shù)據(jù)存儲服務提供支持,完成數(shù)據(jù)的上傳、 存儲等操作.本文模型中用戶有2 種身份:音樂創(chuàng)作者和普通用戶.智能合約可以將用戶操作轉(zhuǎn)換成區(qū)塊鏈中的交易, 完整記錄在以太坊網(wǎng)絡中.智能合約中需要結構體(Struct)來記錄音樂共享等信息.本文模型的智能合約結構體包括音樂數(shù)據(jù)結構體和普通用戶數(shù)據(jù)結構體.

2.4.1 音樂數(shù)據(jù)結構

創(chuàng)作者注冊新的音樂作品,將音樂的音頻、 歌詞等數(shù)據(jù)上傳至IPFS,并將唯一的hash 值記錄到區(qū)塊鏈中,形成智能合約交易.以太坊的挖礦節(jié)點將交易寫入?yún)^(qū)塊,則表明合約交易創(chuàng)建成功.音樂數(shù)據(jù)結構體設計見表1.

表1 音樂數(shù)據(jù)結構體Tab.1 Struct of music data

2.4.2 普通用戶數(shù)據(jù)結構

創(chuàng)作者和普通用戶之間的音樂交易,是智能合約處理的主體業(yè)務.普通用戶需要提供賬戶地址,發(fā)起付費購買請求后需要對用戶賬戶的資金余額情況進行驗證,以保證音樂購買流程的安全性.普通用戶結構體設計見表2.

表2 普通用戶結構體Tab.2 Struct of users

2.5 智能合約詳細設計

本文的智能合約基于Truffle 框架[14]開發(fā), 采用Solidity 語言設計實現(xiàn)了創(chuàng)作者和普通用戶之間的去中心化音樂共享.

2.5.1 音樂作品創(chuàng)建模塊

創(chuàng)作者擁有唯一的hash 地址,通過調(diào)用智能合約方法addMusicToBlockchain()創(chuàng)建音樂作品(包括作品名稱、歌詞、價格等),創(chuàng)建過程中消耗一定數(shù)量的Gas.因此,創(chuàng)作者賬戶需要有足夠的以太幣,否則音樂作品會創(chuàng)建失敗, 無法上傳到以太坊區(qū)塊鏈和IPFS.

2.5.2 音樂查詢模塊

普通用戶和創(chuàng)作者都可以根據(jù)音樂編號ID 或音樂名稱查詢相應的音樂作品,音樂編號ID 是唯一的,可以精確定位到某一音樂作品.查詢過程中只調(diào)用合約方法getMusic(),不需要修改數(shù)據(jù),因此沒有產(chǎn)生交易,不消耗Gas.

2.5.3 音樂溯源模塊

創(chuàng)作者將原創(chuàng)音樂作品上傳到IPFS 后,返回的hash 值及音樂信息等元數(shù)據(jù)同時間戳一起被存儲到鏈上,這些數(shù)據(jù)都具有唯一性和不可篡改性.用戶可以根據(jù)音樂作品的hash 值追溯版權,查看該作品擁有者及其他相關信息.溯源過程沒有交易數(shù)據(jù),因此不消耗交易費用.溯源過程的合約算法如下:

2.5.4 普通用戶購買模塊

普通用戶購買音樂的前提條件是:(1)msg.value >music.price,其中:msg 為當前賬戶,value 為該賬戶所持有的以太幣余額,price 為music 的價格;(2)用戶不是創(chuàng)作者本身.

普通用戶查詢到自己需要的音樂作品后,若滿足購買條件且選擇付費購買,則完成一筆交易,區(qū)塊鏈相應增加一條記錄.若當前賬戶余額不足以支付音樂價格,則購買失敗.購買過程的合約算法如下:

3 實驗與分析

3.1 實驗環(huán)境

搭建包含6 個節(jié)點的以太坊聯(lián)盟鏈和IPFS 私有集群,對設計的去中心化音樂共享模型進行測試和驗證實驗.實驗測試環(huán)境見表3.

表3 實驗環(huán)境配置Tab.3 Configuration of experimental environment

以太坊采用go-ethereum 客戶端進行挖礦和同步區(qū)塊數(shù)據(jù),采用puppeth 程序生成創(chuàng)世區(qū)塊的相關信息 Creation.json, 利用 Truffle 框架部署智能合約, 部署之前需要啟動6 個節(jié)點的Geth 客戶端并設定RPC端口.本地IPFS 私有集群的搭建采用go-ipfs 客戶端實現(xiàn)數(shù)據(jù)存儲,所有節(jié)點共享同一個密鑰swarm.key.Geth 節(jié)點之間相互同步和驗證區(qū)塊信息,共同組成一個以太坊網(wǎng)絡.

3.2 實驗測試和驗證

智能合約運行在以太坊虛擬機(EVM)中,經(jīng)過編譯驗證智能合約的正確性,合約部署成功后會返回合約地址以及合約賬戶,用戶交互時會發(fā)送消息給該合約賬戶.通過調(diào)用智能合約測試音樂共享模型的有效性和可行性,同時對IPFS 數(shù)據(jù)存儲和查詢進行驗證.IPFS 根據(jù)創(chuàng)作者上傳的加密音樂數(shù)據(jù)計算出唯一的hash 值,然后將其和其他音樂信息以JSON 文件格式存儲到鏈上并打上時間戳.當普通用戶查詢獲取音樂數(shù)據(jù)時,首先通過請求區(qū)塊ID 獲得區(qū)塊鏈上的hash值,然后IPFS 通過該hash 值訪問一個分布式hash 表快速找到擁有數(shù)據(jù)的節(jié)點進行檢索,并使用hash 值驗證該數(shù)據(jù)是否正確,最后將音頻數(shù)據(jù)返回給用戶.

3.3 實驗分析

3.3.1 安全性分析

區(qū)塊鏈所面臨的主要安全風險來源于攻擊者通過攻擊共識機制來修改區(qū)塊數(shù)據(jù),本文模型采用P2P網(wǎng)絡結構, 避免了單點攻擊, 利用所有節(jié)點共同維護,可以很好地保證系統(tǒng)運行的穩(wěn)定性.以太坊聯(lián)盟鏈采用PoA 共識算法,通過可信任的簽名者產(chǎn)生區(qū)塊,其本身具有較強的防篡改能力.音樂文件以加密的形式存儲在IPFS 上,用戶只有通過記賬節(jié)點對于訪問控制策略的驗證, 才能獲取到密鑰解密文件.IPFS 基于內(nèi)容尋址,利用音樂文件內(nèi)容生成唯一的hash 值,重復的音樂內(nèi)容只存儲一次,保證了音樂內(nèi)容的真實性和不可篡改性.普通用戶購買到解密的音樂文件后,交易記錄被永久存儲在區(qū)塊鏈上.

3.3.2 共識算法分析

PoW 是目前公有區(qū)塊鏈系統(tǒng)采用最多的共識算法,但其性能較PoA 低,而PoA 的去中心化程度較弱.本文通過實驗對這2 種共識算法的CPU 占用率進行對比,結果如圖5 所示.由圖5 可見,PoA 的CPU 消耗率較低.PoA 通過一組授權節(jié)點來負責新區(qū)塊的產(chǎn)生和區(qū)塊驗證,需要更少的算力,避免了PoW 因算力競爭而造成的資源浪費,從而能節(jié)約計算資源,更快地響應數(shù)據(jù)請求.因此本文模型采用PoA 共識算法.

圖5 PoA 和 PoW 的 CPU 占用率Fig.5 CPU utility of PoA and PoW

3.3.3 吞吐量性能分析

吞吐量是衡量系統(tǒng)性能的重要指標之一[15].本文采用每秒交易數(shù)量(transaction per second, TPS)來定義吞吐量, TPS=Transactions/Δt, 其中: Δt 為共識間隔,即出塊時間,Transactions 為間隔Δt 內(nèi)區(qū)塊包含的交易數(shù)據(jù)量.對模型中PoA 算法的吞吐量進行測試, 取 Δt=10、20、40 和 100 s, 對算法進行連續(xù) 10 次無差異實驗, 實驗結果如圖6 所示.由圖6 可見,PoA算法吞吐量相對較穩(wěn)定,可以滿足系統(tǒng)需要.當Δt=10 s 時, TPS 最高可以達到 630, 當 Δt=100 s 時, TPS最高達到335.Δt=40 s 和100 s 的TPS 折線有部分交叉,這是由于區(qū)塊鏈節(jié)點間的網(wǎng)絡通信延遲造成的.

圖6 TPS 折線圖Fig.6 Line chart of TPS

對不同的Δt,分別進行10 次實驗統(tǒng)計TPS 的平均值, 得到 TPS 隨出塊時間 Δt 的變化曲線, 如圖7所示.由圖7 可見,隨著出塊時間增長,因為系統(tǒng)中處理的交易數(shù)量逐漸增多,節(jié)點間的網(wǎng)絡通信逐漸頻繁,算法的共識效率有所下降,TPS 也隨之降低,Δt=100 s 時, TPS 的平均值為 311.

圖7 TPS 隨出塊時間的變化Fig.7 Change of TPS with out-of-block time

以TPS 作為性能評價指標,將本文模型與其他4個區(qū)塊鏈平臺進行比較,結果見表4.由表4 可見,較其他區(qū)塊鏈平臺,本文模型的TPS 明顯提升,在性能上具有一定優(yōu)勢.

表4 不同區(qū)塊鏈平臺的TPS 對比Tab.4 Comparison of TPS under different blockchain platforms

為檢驗本文模型的交易處理效率,統(tǒng)計了不同交易量的系統(tǒng)處理時間,并與文獻[2]模型進行對比,結果如圖8 所示.由圖8 可見,隨著交易量的增加,系統(tǒng)處理時間也隨之增加,文獻[2]模型處理1 000 條交易的時間約為2.3 s,本文模型的處理時間約為1.25 s,說明本文模型的交易處理效率較高.

圖8 不同交易量的系統(tǒng)處理時間Fig.8 Processing time of different transactions

4 結語

目前,音樂領域是區(qū)塊鏈技術應用研究中的一個重要的發(fā)展方向.本文提出的聯(lián)盟式音樂區(qū)塊鏈系統(tǒng)結合IPFS 實現(xiàn)了音樂數(shù)據(jù)的分布式存儲和共享.搭建以太坊聯(lián)盟鏈和IPFS 私有集群對模型進行了實現(xiàn),采用以太坊PoA 共識機制使全網(wǎng)各節(jié)點達成共識,驗證了智能合約的有效性.實驗結果表明,本文模型的TPS 比較穩(wěn)定,在滿足基本功能的前提下,保證了數(shù)據(jù)的不可篡改性、完整性和安全性.在未來的工作中,還需要對共識算法進行改進,以進一步提高全網(wǎng)節(jié)點的共識效率.

猜你喜歡
普通用戶以太合約
以太極為旗,開啟新時代“黃河大合唱”
少林與太極(2023年7期)2023-08-25 05:27:52
即使是普通用戶也需要備一張家庭影院入門攻略:影音調(diào)校工具篇1
車易鏈:做汽車業(yè)的“以太坊”
汽車觀察(2018年9期)2018-10-23 05:46:24
Numerical Analysis of Refueling Drogue Oscillation During Refueling Docking
百通推出入門級快速工業(yè)以太網(wǎng)絡交換器系列
以太互聯(lián) 高效便捷 經(jīng)濟、可靠、易用的小型可編程控制器
自動化博覽(2014年6期)2014-05-29 09:40:16
普通用戶簡單、流暢才是明智選擇
合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
離線發(fā)文件 不是會員也能用
移動一族(2009年3期)2009-05-12 03:14:30
松滋市| 湘潭县| 新宾| 汽车| 武夷山市| 锦州市| 彰化县| 逊克县| 蓬莱市| 湖南省| 湟源县| 和顺县| 焉耆| 玉林市| 尼勒克县| 城步| 石泉县| 遵义县| 惠州市| 鸡东县| 彭水| 贞丰县| 抚松县| 巍山| 望谟县| 盐城市| 平南县| 金平| 新郑市| 石泉县| 丹阳市| 永顺县| 新源县| 邵阳市| 大竹县| 华阴市| 冀州市| 乳源| 郁南县| 龙泉市| 崇礼县|