APP下载

基于区块链的数字版权认证模型

2021-02-25胡殿凯李宗霖王金龙

计算机应用与软件 2021年2期
关键词:私钥区块节点

胡殿凯 李宗霖 周 炜 王金龙

(青岛理工大学信息与控制工程学院 山东 青岛 266520)

0 引 言

随着互联网上文本传播的泛滥,文本内容爆炸性增长,依靠第三方机构的传统版权管理控制机制流程繁琐、成本高、效率低下[1],并且维权证据不足,已无法满足文本版权保护的需求。区块链作为比特币[2]的底层实现技术,具有去中心化、可溯源、防篡改和分布式存储的特性[1]。基于以上特性,区块链技术可以被较好地应用在版权管理与保护中。文献[1]提到了区块链技术在解决数字版权问题方面有着天然的优势;文献[3]主要介绍了基于区块链的数字媒体版权保护的基本技术和方法;文献[4-6]主要讲述了区块链技术在保护视频和图像作品方面的应用;文献[7]主要讲述了区块链技术在互联网保护音乐版权方面的方法和缺陷。现有的区块链版权保护系统解决文本版权问题的方法主要有以下几种:

亿书通过使用椭圆曲线密码编码学(Elliptic Curve Cryptography,ECC)对作品进行数字签名,同时用杂凑密码算法生成作品的数字指纹,加上可信时间戳以及作者姓名等信息,一起写入区块链从而保证数据的可信及不可篡改;小犀版权链将作品名称、权利人和登记时间等核心信息生成唯一的数字指纹,并将数字指纹封存于不可篡改的区块链中,实现版权信息的永久存证;保全网通过对原创内容的数字摘要提取确权上链,保证内容的完整性与原创性;原本版权链将原创内容所包含的信息哈希成全网唯一的版权DNA(Copyright Deoxyribonucleic Acid,CDNA)[8],并存储到区块上保证其不可以篡改,以此来保证作品的版权;纸贵科技通过借助以太坊区块链生成包含时间戳、区块链存证ID(Blockchain Confirmation Identification,BCID)、作品名、作者姓名、存在平台和作品唯一MD5码(Message-Digest Algorithm 5 Code,MD5C)的证书的方式进行版权保护[9]。

总结现有区块链版权保护系统对于文本作品版权保护的主要方式是把数字作品的特征值(hash值)存储到区块链中,保证其不可篡改与永久存储,作品具体内容存储在数据库中以备对比[10],因为哈希算法具有输入敏感性。赵丰等[11]也提出了对原作品轻微修改即可躲避特征值再次认证的问题,修改作品即可导致特征值验证失败。邵奇峰等[12]总结了区块链相对于传统数据库的优势以及发展趋势,区块链更适合文本作品内容的存储。作品版权认证还存在如下问题:侵权者利用区块链时间戳存在性证明可以抢先认证作品,即盗取作者创作稿件提前认证作品版权,因为区块链的不可篡改性,作品一旦认证版权,作者就失去修改权[7]。

蔡维德等[13]总结了基于区块链的应用系统的开发方法,给出了区块链应用开发需要注意的关键问题。郝琨等[14]提出了一种基于区块链的去中心化分布式存储模型。文献[15]提出了一种数字版权唯一标识符管控模型,该模型能够有效保障作品唯一标识符不被篡改,但是区块结构信息中只存储作品交易信息签名,只能验证未修改的作品,因为哈希算法的原因导致细微修改的作品并不能准确验证。由于区块信息无法修改,该模型没有针对作品认证版权后作者失去作品修改权的问题提出对应的解决方法。总结上述经验,针对文本作品区块链版权系统存在的问题,本文结合时间戳技术、非对称加密技术、哈希算法和Simhash算法,提出并实现了一种文本作品内容链上存储的区块链版权认证模型。

本文主要贡献如下:

(1) 提出文本作品内容链上存储的区块链版权认证模型,设计存储文本作品内容和版权认证记录的区块模型,解决了作品内容在数据库存储可能导致的链上特征值验证失败的问题。

(2) 提出半成品作品的签名上链存储的方法,结合区块链模型记录创作过程,解决了利用时间戳的存在性证明抢先登记作品的问题。

(3) 提出识别公钥覆盖式认证准则,结合时间戳技术解决了版权认证后作者失去修改权的问题。

1 文本作品区块链认证存储模型设计

区块链是一个分布式账本[16],所有节点都对等存储完整的区块信息,没有中心节点,通过区块头中的工作量证明(Proof of Work,POW)[17]验证值nonce保证各节点中区块信息的一致性。本模型中区块链设定为私有链,采用POW共识算法,从而确保了交易确认速度快,节点作恶成本高,区块信息无法篡改。每个区块都存储前一区块的哈希值,以此来保证区块数据不被篡改,即要修改某一区块的信息需要计算此区块之前所有区块的哈希值,并且修改所有节点中对应区块的信息,由此可见区块链非常适合构建安全的存储系统。同时区块链是多节点分布式存储,能够有效预防单节点故障造成的问题,即某一节点数据被篡改,其他节点也能够有效工作,并且恢复该节点的数据。区块链的防篡改特性能够有效地保证区块链中数据的完整性。系统结构模型如图1所示。

图1 系统结构模型

各层功能简介:

(1) 用户层:主要供用户向验证层提交版权认证或验证所需的信息,信息与区块链中的交易(Transaction,TX)记录信息一一对应,可以做到作品信息完整上链。

(2) 验证层:主要包括系统节点、矿工节点、用户节点。系统节点的主要功能是接收其他节点的请求指令并处理,把对应的信息发送给其他节点。矿工节点的主要功能是接收系统节点发来的用户节点交易信息,进行验证生成新区块。用户节点的主要功能是供用户操作,进行信息上链存储和信息验证查询。

(3) 区块链层:主要功能是各节点保存到本地的全局状态区块链,挖矿节点总数小于系统节点和用户节点总数之和,所有节点通过定期同步验证的方式来保证本地区块链的一致性,系统节点和用户节点通过同步挖矿节点新挖出的区块来维持本地区块链的有效性,同步区块有两个条件:① 待同步区块高度比本地最新区块高度大1;② 待同步区块的父块哈希值为本地最新区块的哈希值。区块同步条件保证了即使挖矿节点作恶,系统节点和用户节点也不会同步区块。

区块链中作品的相关信息保存在若干个区块中,区块包括区块头和区块体两部分。区块头中本区块的hash值由前一区块hash值与本区块头中的其他值哈希计算而成,这样就把所有区块连接成依赖其前一区块的链式数据存储结构。区块体主要包含交易数据,针对应用领域不同,保存的交易数据类型也不相同,如在比特币等加密货币中,保存的是用户转账交易信息,而在以太坊[18]等智能合约应用中,保存的是用户的智能合约。不同于这些应用领域,本文模型的区块体中主要保存作品版权认证信息。区块结构模型如图2所示。

图2 区块结构模型

区块结构与现有的大多数区块链系统的区块结构类似,区块头包括时间戳、父块hash、本区块hash、区块高度、Nonce和TX哈希值,Nonce值由POW机制对父块hash、TX哈希值、时间戳、Nonce测试值和挖矿难度值target进行计算得出,可以方便地验证区块中数据的正确性,保证了区块前后的关联性,增加了区块的篡改难度,从而保证区块数据的正确性。本文模型与多数现有的区块链相比不同之处在于TX记录不仅包含转账记录还包含版权认证信息,版权认证信息由用户登记作品认证版权时产生,当作品发生版权纠纷时,版权认证信息能够提供包括作品内容、数字签名等准确的版权登记信息,版权认证信息具体内容为用户Id、用户公钥、用户姓名、作品名、作品摘要、作品内容、数字签名、交易哈希、时间戳等。

作品具体内容可以跟随认证信息一同上链存储,不需要传统数据库存储,依靠区块链的不可篡改性保证其完整性和正确性。由于椭圆加密算法具有私钥加密公钥解密的特性,依据链上的作品内容、私钥签名和公钥便可验证私钥签名,避免了数据库存储的作品内容被更改导致的私钥签名验证失败的问题。因为私钥签名具有唯一性,所以通过验证私钥签名便可鉴定作品版权的归属。

本文模型TX记录中的版权认证信息部分不仅可以记录作者登记作品版权时的版权认证信息,还可以记录作者保存半成品作品时的作品创作记录,即作者在创作过程中,可以阶段性地上链存储作品创作记录,能够完整地记录作品创作过程中的各种版本,作品创作记录具体内容为用户id、用户公钥、用户姓名、作品名、作品摘要、作品内容、数字签名、时间戳等。

假设作者创作完成作品后未及时登记作品认证版权,侵权者盗取作品抢先登记作品认证版权,作者依然可以通过链上存储作品创作记录证明作品的版权归属,能够有效地避免侵权者利用时间戳存在性证明抢先登记作品认证版权的问题。

因为区块链的不可篡改性,当侵权者抢先认证版权或作者认证版权之后,链上的作品内容便无法修改,作者便失去了对作品的修改权。本文模型针对作品的修改制定了识别私钥覆盖式认证的准则:设定链中作品的版权认证信息以最新的认证信息为有效记录,通过验证版权认证信息中的私钥签名,可以躲避作品内容查重再次登记作品认证版权,新的版权认证信息会覆盖之前的版权认证信息成为有效版权认证记录。依据该准则作者可以采用识别私钥的方法修改作品的内容重新认证版权,同时也可以修正侵权者抢先认证版权造成的错误版权认证记录。

针对抄袭作品登记认证版权的问题,本文模型首先采用Simhash算法对作品进行查重比对,筛除抄袭作品,保证登记作品不被抄袭。虽然通过某种手段可以躲过Simhash查重,但是本文模型的版权认证记录包含作品内容和时间戳证明,即抄袭作品认证版权的证据会永久存储,通过时间戳很容易就能判定抄袭行为,能够有效避免抄袭作品认证版权的问题。

2 作品版权认证和验证

本文模型主要包括作品版权认证和作品版权验证两部分。作品版权认证主要包括:在创作过程中,作者进行链上记录作品创作进度;在完成创作之后,作者进行作品登记认证作品版权。作品版权验证包括:当发生版权纠纷时,通过链上查询验证作品,得出准确的版权归属记录,解决版权纠纷。

2.1 作品创作进度登记

2.1.1作品创作进度登记流程

作品创作进度登记需要的信息主要包括:用户姓名,用户密码,作品名,作品内容文件名。具体流程如图3所示。

图3 作品进度登记流程

针对创作过程中的作品,用户可以用私钥加密作品内容生成私钥签名,将作品内容和私钥签名等信息上链存储来记录作品的创作过程。

2.1.2对比改进

与现有系统对比,本文模型提供阶段性作品登记记录的功能,作者不仅可以登记完整作品认证版权,还可以对阶段性创作的作品进行签名登记,签名记录跟版权认证记录一样上链存储,可以全程记录作品的创作过程,为作者提供有效的版权证明,能够有效地避免侵权者盗取稿件提前登记作品认证版权的问题。

2.2 作品认证版权

2.2.1作品认证版权流程

认证版权需要的信息主要包括:用户姓名,用户密码,作品名称,作品摘要,作品内容文件名。具体流程如图4所示。

图4 版权认证流程

作者修改已认证版权的作品之后,再次登记作品认证版权的流程如图5所示。

图5 作品内容修改版权认证流程

作者修改已认证版权的作品后再次认证版权时,省去了Simhash算法查重环节,添加了对比私钥识别版权所有者的环节,这也就是本文模型制定的识别私钥覆盖式注册准则,该方法使得作者可以随时修改已认证版权的作品,有利于作者完善作品。

2.2.2对比改进

区块链的防篡改性和Simhash去重性导致了一旦作品的版权认证成功,作者便无法修改作品,即失去了作品的修改权。与现有区块链版权系统比较,本文模型结合时间戳技术制定了识别私钥覆盖式认证的准则,实现了作者对已认证版权作品进行修改的功能,避免了作品认证版权后作者失去修改权的问题。虽然通过某些技术可以躲避Simhash算法查重,对作品内容进行修改或者重新认证,但是本文模型中存储有作品的创作记录和版权认证记录,当发生版权纠纷时,通过查询依据时间戳可以判定侵权行为,有效地为作者提供正确的版权证明支援。

2.2.3版权认证算法

输入:待认证作品信息work,作者信息user。

输出:包含作品认证信息的新区块newblock。

1. useradd=Getadd(user.password,user.name)

2. if validateadd(useradd){

3. simhash=Simhash(work.content)

4. for bsimhash in Blockchain{

5. if comp(simhash,bsimhash)

6. print(“作品重复率过高”)

7. }

8. }

//simhash查重

9. signEcc(privateKey,content)

//私钥签名

10. crete workdata and transaction

11. if verifytransaction(TXinput){

12. send transaction to systemnode

13. }

//验证transaction输入

14. if miningsuccess {

15. print{newblock}

//输出新区块

16. send message to everynode

17. }

//各节点同步新区块

18. }

2.3 作品版权验证

作品版权验证主要通过区块链存储的作品版权认证信息和用户提供的公钥验证作品的私钥签名,进而判断版权归属解决作品的版权纠纷问题。

2.3.1版权验证流程

作品版权验证需要的信息包括:待验证作品的名称,用户公钥。本文模型验证机制如图6所示。

图6 作品版权归属验证机制

现有区块链版权保护系统验证机制如图7所示。

图7 现有区块链版权系统版权验证机制

2.3.2对比改进

本文模型与现有的区块链版权保护系统在验证机制方面最大的区别为:本文模型针对文字作品设计了包含作品内容的TX记录模型,整个验证过程全在链上完成。当发生作品版权纠纷时,如图7所示,现有区块链系统通过查询区块链得到作品认证版权的私钥签名,采用公钥和数据库中的作品内容解密私钥签名的方式验证版权归属,得出作品版权归属的结论。传统数据库中的作品内容存在被更改的可能性,比如添加一个标点符号,一旦被篡改便会导致新的私钥签名、数字指纹等特征值与原特征值完全不同,即便区块链中的私钥签名、数字指纹等特征值保持不变,交易记录依旧存在,没有准确的作品内容也无法证明作品的版权归属。如图6所示,本文模型只需要查询验证区块链信息便可得到准确的私钥签名、公钥和作品内容,通过公钥对比以及解密私钥签名即可验证作品的版权归属,依靠区块链不可篡改的特性来保证所需验证信息不被篡改,进而能够用没有被篡改的信息去证明作品的版权归属,有效地保护了作者的作品所有权。

2.3.3版权验证算法

输入:作品信息workdata,作者公钥pub。

输出:作品版权归属信息blockwork或验证失败提示。

1. find block TX in blockchain by workdata

2. if Pow.Validate(block.Prehash,hashTXs(),

Timestamp,target,nonce){

//POW验证区块信息

3. if pub==TX.pubkey{

4. if verifySignEcc(TX.content,pub,TX.contentkey){

//公钥解密验证私钥签名

5. print(blockwork)

6. }else{

7. print(公钥解密失败)

8. }

9. }

10. }else{

11. print(区块被篡改,请同步区块再次验证)

12. }

3 安全性分析

假设区块链为BC={bc1,bc2,bc3,…,bcn},bci(1≤i≤n)为第i个区块,txij表示第i个区块中的第j个TX记录信息,设定txijw表示第i个区块中第j个交易对应的作品w的版权认证信息。由版权认证信息可知,其包含作品对应的内容信息和作者信息,通过链上信息查询可以得到TX记录信息,进而得到作品和作者信息,因此作品版权归属是可查询的。由于每个版权认证信息或者作品创作记录信息均包含时间戳证明,通过相应的作者和作品信息可查询到对应的TX记录信息,依据时间戳顺序可以追溯到最早的版权认证记录或者作品创作记录,因此作品版权是可以溯源的。综上所述,本文模型中的作品版权认证、作品创作记录登记均可以溯源查询。

本文模型中设定了多个矿工节点,矿工节点之间是协作关系,不存在竞争关系,即所有矿工节点同时收集验证新产生的TX信息,最先收集到规定数量的交易信息并且成功验证的节点获得记账权,同时会广播消息给其他矿工节点令其结束当前过程,这样也就保证了某一时刻只有一个矿工节点可以对全局区块链进行修改,避免了区块链分叉的问题。用户节点对已上链数据只有查询权限,并且用户节点会及时同步新生成的区块,保证了本地区块中数据的正确性和实时性。本文模型中,虽然矿工节点负责产生新区块,但是矿工节点只有收集交易信息验证私钥签名的权限,并不能修改交易信息,保证了新生成区块的正确性。矿工节点负责生成区块,理论上掌握一半以上算力即可修改区块,因为系统节点同步新区块的条件,所以即使挖矿节点修改区块,系统节点和用户节点也不会同步;又因为挖矿节点总数少于系统节点和用户节点总数之和,即使所有挖矿节点都修改同步了区块,系统中所有节点定期同步验证区块时,依然会因为挖矿节点是少数节点而被改为正确区块。这样挖矿节点作恶变得毫无意义,从而保证了所有链上信息的正确性。

4 实验分析

实验的硬件环境是Intel Core i5-3230 CPU @ 2.60 GHz×4,RAM为3.4 GB,节点系统模拟由3个矿工节点、1个系统存储节点、3个用户节点组成,采用POW共识算法生成新区块。所有算法代码均由Go语言实现,使用多线程技术模拟多个节点的应用。实验数据为普通的文本文档数据,本文模型区块哈希采用双SHA-256哈希算法计算生成。

实验测试主要分为以下几组:

(1) 当有足够数量的TX信息时,测试本文模型验证TX信息生成区块所需的时间,如图8所示。

图8 出块时间折线图

经过30次测试,本文模型验证TX信息生成区块的平均时间为0.56 s,考虑到实际应用会由多个用户节点同时发起上链交易,因此本文模型测试由3个用户节点同时发起TX上链交易,平均0.56 s产生一个区块的测试结果足以满足实际用户的需要。

(2) 当作品字数不同时,测试作品版权认证消耗的时间,作品字数分别为:5 397、28 262、32 691、39 817、42 141、55 815、69 489、83 163、166 326、249 489、332 652,如图9所示。

图9 不同字数的作品认证版权耗时折线图

不同字数的作品版权认证时所消耗的时间与作品字数多少无关,并且通过区块查询也可以准确地查看作品内容,332 652远大于正常文章的字数,因此足以满足实际用户需要。

(3) 测试字数不同的作品进行版权认证时区块存储的开销情况,测试作品为第二项测试中的作品,设作品文本存储的开销为R1、区块链中版权认证记录的存储开销(只包含该认证记录的区块开销)为R2,P为区块记录存储开销与文本存储开销的比值,如图10和图11所示。

图10 不同字数的作品文本存储开销折线图

图11 作品区块记录存储与文本存储开销比例折线图

由图11可知,区块版权认证记录存储开销约是文本存储的2倍左右,根据作品字数的不同略有波动。由图10和图11可知,在区块链存储33万字的作品认证记录时,存储开销约为3 430 KB,相对于文本存储开销,本文模型并没有过多消耗存储空间,并且文本存储并不包括认证记录开销和区块结构开销,因此,区块存储作品信息开销合理可以实际应用。

(4) 当并发200条TX记录时,测试本文模型处理并发数据的时间消耗,通过时间消耗和并发数据量得出本模型处理并发数据的速度,进行30次测试本文模型所用时间的记录如图12所示。

图12 200条并发交易耗时折线图

在30次测试中本模型处理200条并发交易所用的平均时间为5.1 s,平均每秒可处理39.2条数据,最快处理速度为200条/s,最坏测试结果为16条/s,模型性能较优可以满足实际需要。

5 结 语

本文首先针对现有区块链版权系统在作品版权记录存储验证方面的漏洞,提出作品内容链上存储的方法。通过扩展区块结构,针对作品版权记录设计存储结构,真正意义上实现了作品内容和作品版权记录的上链存储。然后,根据作品版权认证的实际情况,提供半成品作品私钥签名登记记录的功能,使得作者可以全程记录作品的创作过程;制定了识别公钥覆盖式认证准则,使得作者能够修改已经认证版权的作品内容。之后,采用理论证明了模型的安全性、作品版权认证的可追溯性。最后,采用Go语言实现了多节点同步运行的模型,对模型进行了实验测试,实验测试结果表明本文模型具有良好的性能,可以满足管理和保护作品版权的实际需要。

猜你喜欢

私钥区块节点
基于RSSI测距的最大似然估计的节点定位算法
比特币的安全性到底有多高
分区域的树型多链的无线传感器网络路由算法
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
基于图连通支配集的子图匹配优化算法
程序员把7500枚比特币扔掉损失巨大
《红楼梦》的数字化述评——兼及区块链的启示
基于点权的混合K-shell关键节点识别方法
一场区块链引发的全民狂欢
区块链助力企业创新