基于区块链的数字版权保护方法
技术领域
本发明涉及区块链技术和数字版权保护技术领域。
背景技术
随着区块链技术的不断发展,数字版权保护迎来了新的发展空间。区块链作为一种去中心化、分布式的共享数据库,它按时间顺序将数据区块以链的方式组合成特定的数据结构,其中利用密码学的方式保证了区块数据的安全。区块链技术的去中心化、分布式存储、不可篡改、安全透明、可扩展等特点为知识成果数据的数字版权保护提供了一套比较完美和适用的解决方案,并为数字版权保护的发展变革提供了有力支撑。
Fabric是联盟区块链中一个被许可的区块链平台,Fabric的项目结构包括各种组件,如智能合约、背书节点、提交人、验证节点和订购者。Fabric也是一个模块化、可扩展的开源系统,方便部署和操作联盟区块链。
IPFS是一个面向全球的、点对点的分布式版本文件系统。IPFS系统的内容可寻址、版本化、P2P传输等诸多特征为大量的数据存储提供了一种新型的存储方式和方法。
国密算法是由国家密码管理局所规定的一大类商业应用密码的算法,是由我们国家自己研发应用和创新的一套新型数据加密算法。在我国,国密算法的标准为商用密码,被应用于我国各类商业领域中,可以实现对不涉及国家秘密内容的一些敏感内部信息和数据的安全保护。
发明内容
本发明的目的是提供一种基于区块链的数字版权保护方法。
本发明是基于区块链的数字版权保护方法,其步骤为:在该数字版权保护方法的系统中,为用户提供了数字作品的数字版权登记、数字版权确权和数字版权信息的查询与数据共享这三类应用功能;每一类应用功能的实施步骤分别为:
(1)数字版权登记{Tx→System:L}
对于数字作品数据的数字版权登记,用户首先将数字作品的版权信息Tx上传至该数字版权保护系统,在系统对数字版权信息进行多方面的验证和共识之后,数字版权信息便以一笔“交易”的形式写进了区块链账本中;数字版权登记的步骤为:
①数字作品的IPFS存储:用户在成功登陆系统之后,利用系统提供的IPFS功能模块对数字作品进行存储,存储成功之后,系统的IPFS模块将会提供给用户该数字作品的唯一哈希值Datahash;
②数据哈希值的加密{(Datahash,Pk)→SDatahash}:针对数字作品本身的特殊性,利用系统为用户提供基于其身份的密钥信息(Pk,Sk)对数字作品的Datahash进行非对称加密操作:{(Datahash,Pk)→SDatahash},加密后的哈希值为SDatahash;
③构建数字版权信息Tx=(Id,Authinf,SDatahash,Timestamp,Prevhash):首先用户节点user1通过应用程序客户端将需要进行数字版权登记的数字作品M上传至数字版权保护系统中;然后系统根据相关方案对数字作品M进行处理,在得到数字作品的加密哈希值(SDatahash)后,在元数据结构
MetadataStructure={ID,Author information,Data type,Data attributes,Datahash,Indexaddress}和区块数据结构Block={BlockHeader,BlockData,BlockMetadata}的基础上,选取版权信息编号(Id)、作者个人信息(Authinf)、加密后的知识成果数据哈希值(SDatahash)、时间戳(Timestamp)和前一区块哈希值(Prevhash)等信息一起打包合成为一笔数字版权信息Tx;
④数字版权信息的背书{(user1:Tx)→System(E:e1)}:user1将数字作品的数字版权信息Tx发送给系统;系统中的背书节点E对客户端提交的Tx进行背书操作,然后将背书结果信息e1回馈给user1;
⑤交易的排序{System(E→e1)→Order:block}:系统中的客户端检查返回的结果,检查通过后,将Tx签名后发给系统中的排序节点Order;排序节点Order对以上信息进行排序,同时将构造好的区块block;
⑥交易写进区块链账本{(Order:block)→C:L}:排序节点Order将排序好的区块发送给系统中的确认节点C;系统中确认节点C确认通过后,将以上信息写进区块账本L,并更新区块链账本信息,至此完成数字版权信息的登记;
(2)数字版权确权{(Tx,d,p,R,s)→yes/no}
当用户在把数字作品在本方法中的系统进行数字版权登记后,用户利用SM2算法所生成的密钥信息对数字作品的哈希值进行加密和数字签名与验证;数字签名的原理和特点保障了数字版权确权的实现;同时区块链的链式结构、可追溯性和时间戳等特征为用户版权信息的确权提供了一种具有现实社会中法律公正的一种存证方式;数字版权确权的具体步骤为:
①准备需要确权的数字版权信息Tx和用户的密钥对(d,p)等信息;
②生成数字签名{Tx,d,p→(r,s)}
用户A首先利用公式e=hash(Tx)得到该数字版权信息的哈希值,然后随机选取一个数k,且k∈[1,n-1],计算椭圆曲线点(x1,y1)=k[G],然后根据公式r=(e+x1)modn和s=((1+d)-1*(k-r*d))modn来获取r和s;最后得到的(r,s)便是数字作品的数字版权信息的签名信息;
③数字签名验证{(R,s)→yes/no}
用户B首先利用公式e=hash(M)得到该数字作品的哈希值,然后利用公式t=(r+s)modn来获取t的值,计算(x,y)=[s]G+[t]p,R=(e+x)modn,最终对比R=s→yes/no,如果两者的值相等,则说明该数字作品的数字版权的确归用户A所有;如果不相等,则该数字作品的数字版权信息不属于用户A;
(3)数字版权信息查询与数据共享{(userB,Pkb,Tx)→(userA,Ska,SDatahash)}
当系统中的用户节点执行查询数字版权信息操作时,系统会将查询到的数字版权信息返回给用户;当用户根据查询到的数字版权信息需要对数字作品的数据进行下载与应用的时候,用户还需要同数字作品持有者发送解密请求,当请求通过后,用户便可以进入系统中的IPFS来进行数字作品数据的查询与下载;这一实现过程的具体步骤为:
①userB→(System:Tx),用户B登录该数字版权保护系统,获取区块链账本中用户A的数字版权信息;
②(userB,Pkb)→userA,在用户B查询到数字作品持有者的数字版权信息后,用户B将个人的公钥Pkb以及对数字版权信息中的哈希值解密请求一并通过系统网络发送给用户A;
③(userA,Ska,Pkb)→S,用户A利用用户B发送来的秘钥Pkb对个人的私钥Ska进行加密,并将加密后的秘钥信息S上传至系统的网络中;
④(S,Skb)→Ska,用户B获取到加密的秘钥信息S,用自身的秘钥Skb进行解密,解密后得到用户A的私钥Ska;
⑤(Tx,Ska)→Datahash,用户B通过利用Ska对Tx中的加密哈希值解密,解密得到Datahash,然后用户B根据Datahash便可以从IPFS中下载数字作品。
本发明的有益之处在于:
(1)加强了数字版权信息的保护
本发明利用区块链技术构造实现的该系统,为数字作品数据提供了一种简单快捷的去中心化的数字版权登记、确权、数字版权信息查询与数据共享的功能。简单快捷的为数字作品数据提供了数字版权保护,加强了对数字作品数据的数字版权信息保护。
(2)提供了一种安全的数据存储方式
数字作品的数字版权信息全部存储在了区块链的账本中,为用户的数字版权信息提供了一种可追溯,安全透明和不可篡改的存储方式与安全保障。
(3)解决了区块容量低的问题
由于区块链中区块的数据存储容量受到限制,因此采用IPFS实现了对数字作品数据的安全分布式存储,IPFS中返回的哈希值作为数字版权信息的一部分,这样一来解决了区块链中区块数据存储容量小的难题。
(4)保护了数字版权信息的隐私性
在本方法的系统中,利用国密算法实现了对数字作品数据的加密操作,在有效的保护了系统中数字作品的隐私性同时,又提升了系统在数据保护方面的安全性。
附图说明
图1为基于区块链的数字版权保护系统的应用功能图。
具体实施方式
本发明是一种基于区块链的数字版权保护方法,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细完整的说明。下面用实施例进一步展开本发明。具体实施步骤为:
1.本发明实施例中提供的数字版权保护的系统应用功能包括数字版权登记、数字版权确权和数字版权信息的查询与数据共享。具体的功能实现包括以下步骤:
(1)数字版权登记{Tx→System:L}。
对于数字作品数据的数字版权登记,用户首先将数字版权信息Tx上传至该数字版权保护系统,在系统对数字版权信息进行多方面的验证和共识之后,数字版权信息便以一笔“交易”的形式写进了区块链账本中。数字版权登记的具体描述如下:
1)数字作品的IPFS存储。用户在成功登陆系统之后,利用系统提供的IPFS功能模块对数字作品进行存储,存储成功之后,系统的IPFS模块将会提供给用户该数字作品的唯一哈希值Datahash。
2)数据哈希值的加密{(Datahash,Pk)→SDatahash}。针对数字作品本身的特殊性,因此利用系统为用户提供基于其身份的密钥信息(Pk,Sk)对数字作品的Datahash进行非对称加密操作:{(Datahash,Pk)→SDatahash},加密后的哈希值为SDatahash。
3)构建数字版权信息Tx=(Id,Authinf,SDatahash,Timestamp,Prevhash)。首先用户节点user1通过应用程序客户端将需要进行数字版权登记的数字作品M上传至数字版权保护系统中。然后系统根据相关方案对数字作品M进行处理。在得到数字作品的加密哈希值(SDatahash)后,在元数据结构Metadata Structure={ID,Author information,Datatype,Data attributes,Data hash,Index address}和区块数据结构Block={BlockHeader,BlockData,BlockMetadata}的基础上,选取版权信息编号(Id)、作者个人信息(Authinf)、加密后的知识成果数据哈希值(SDatahash)、时间戳(Timestamp)和前一区块哈希值(Prevhash)等信息一起打包合成为一笔数字版权信息Tx。
4)数字版权信息的背书{(user1:Tx)→System(E:e1)}。user1将数字作品的数字版权信息Tx发送给系统。系统中的背书节点E对客户端提交的Tx进行背书操作,然后将背书结果信息e1回馈给user1。
5)交易的排序{System(E→e1)→Order:block}。系统中的客户端检查返回的结果,检查通过后,将Tx签名后发给系统中的排序节点Order。排序节点Order对以上信息进行排序,同时将构造好的区块block。
6)交易写进区块链账本{(Order:block)→C:L}。排序节点Order将排序好的区块发送给系统中的确认节点C。系统中确认节点C确认通过后,将以上信息写进区块账本L,并更新区块链账本信息,至此完成数字版权信息的登记。
(2)数字版权确权{(Tx,d,p,R,s)→yes/no}
当用户在把数字作品在本方法中的系统进行数字版权登记后,用户利用SM2算法所生成的密钥信息对数字作品的哈希值进行加密和数字签名与验证。数字签名的原理和特点保障了数字版权确权的实现。同时区块链的链式结构、可追溯性和时间戳等特征为用户版权信息的确权提供了一种具有现实社会中法律公正的一种存证方式。数字版权确权的具体描述如下:
1)准备需要确权的数字版权信息Tx和用户的密钥对(d,p)等信息。
2)生成数字签名{Tx,d,p→(r,s)}
用户A首先利用公式e=hash(Tx)得到该数字版权信息的哈希值,然后随机选取一个数k,且k∈[1,n-1],计算椭圆曲线点(x1,y1)=k[G],然后根据公式r=(e+x1)modn和s=((1+d)-1*(k-r*d))modn来获取r和s。最后得到的(r,s)便是数字作品的数字版权信息的签名信息。
3)数字签名验证{(R,s)→yes/no}
用户B首先利用公式e=hash(M)得到该数字作品的哈希值,然后利用公式t=(r+s)modn来获取t的值,计算(x,y)=[s]G+[t]p,R=(e+x)modn,最终对比R=s→yes/no,如果两者的值相等,则说明该数字作品的数字版权的确归用户A所有。如果不相等,则该数字作品的数字版权信息不属于用户A。
(3)数字版权信息查询与数据共享{(userB,Pkb,Tx)→(userA,Ska,SDatahash)}
当系统中的用户节点执行查询数字版权信息操作时,系统会将查询到的数字版权信息返回给用户。当用户根据查询到的数字版权信息需要对数字作品的数据进行下载与应用的时候,用户还需要同数字作品持有者发送解密请求,当请求通过后,用户便可以进入系统中的IPFS来进行数字作品数据的查询与下载。这一实现过程的具体描述如下:
1)userB→(System:Tx),用户B登录该数字版权保护系统,获取区块链账本中用户A的数字版权信息。
2)(userB,Pkb)→userA,在用户B查询到数字作品持有者的数字版权信息后,用户B将个人的公钥Pkb以及对数字版权信息中的哈希值解密请求一并通过系统网络发送给用户A。
3)(userA,Ska,Pkb)→S,用户A利用用户B发送来的秘钥Pkb对个人的私钥Ska进行加密,并将加密后的秘钥信息S上传至系统的网络中。
4)(S,Skb)→Ska,用户B获取到加密的秘钥信息S,用自身的秘钥Skb进行解密,解密后得到用户A的私钥Ska。
5)(Tx,Ska)→Datahash,用户B通过利用Ska对Tx中的加密哈希值解密,解密得到Datahash,然后用户B根据Datahash便可以从IPFS中下载数字作品。
符号说明:Pk:用户公钥,Sk:用户私钥,
d:国密算法生成的用户公钥,p:国密算法生成的农户私钥,
Datahash:数据哈希值,SDatahash:加密后的哈希值,
Id:版权信息编号,Authinf:作者信息,
Timestamp:时间戳,Prevhash:前一区块哈希值,
BlockHeader:区块头,BlockData:区块数据,
BlockMetadata:区块元数据,Tx:数字版权信息,
L:区块链账本,M:数字作品,
E:背书节点,e1:背书结果,
Order:排序节点,block:区块,
C:确认节点,(r,s):数字签名信息,
(R,s):签名验证信息,k:随机数。