面向版权授权交易的区块链共识机制

2022-07-21 03:33李一帆徐雅斌刘欣然
计算机工程与设计 2022年7期
关键词:共识信用区块

李一帆,徐雅斌+,刘欣然

(1.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京 100101; 2.北京信息科技大学 计算机学院,北京 100101)

0 引 言

随着我国文化产业的迅猛发展,版权贸易日益频繁,特别是在版权授权交易领域[1]。版权授权交易一方面能够为版权拥有者宣传推广作品,实现原创作品价值的最大化,另一方面版权需求者可以快速获取优秀的作品,满足个人或企业的需求。

但现如今,传统的版权授权交易模式已无法满足互联网时代的需求。出现了例如版权归属难以厘清、版权交易缺乏透明度、集中式存储导致版权信息及交易数据容易被窃取、篡改等诸多难以解决的问题[2]。为此,设计采用区块链技术来实现可信的版权登记与授权交易,通过结合区块链所具有的分布式存储、去中心化、不可篡改等技术特点[3],可以有效解决传统版权授权交易存在的确权难、交易不透明、数据安全性难以保障等难题。

而其中的共识算法作为区块链系统最核心的组成部分,直接影响着版权登记与授权交易的安全性和效率。相比较而言,委托权益证明(delegated proof of stake,DPOS)共识算法由于其在主流公有链共识算法中相对出色的性能,能够与版权交易业务实际需求相匹配,故选择其作为此区块链系统的共识机制。但是目前该算法却在安全性上存在着不足。在共识过程中,各个节点往往为了让自身获取更大的利益,极易进行作恶。而恶意节点将会篡改区块信息、产生持续生成无效区块等行为[4],使区块链版权交易数据的安全性大幅降低,并且该算法在效率上也有着一定的提升空间。因此,为了保障版权的登记与授权交易的安全性并提高其运行效率,本文将对区块链DPOS共识算法开展研究。

本文的突出贡献如下:

(1)首先针对DPOS共识算法使用的代表节点可信度不高的问题,提出了基于信用值和币龄的DPOS共识算法,该算法采用CES生产函数模型对节点可信程度进行衡量,可显著减少作恶节点当选代表节点的概率;

(2)由于经典的顺序出块方法极易被预测到下一个出块节点,为此我们采用基于混合同余算法的随机出块策略,使出块的随机性更强,安全性更高。同时增加改进区块合法性验证策略,使辨别合法区块更加客观、公正,整体提高共识算法的安全性;

(3)为了提高DPOS共识机制的效率,增加了基于出块时间的信用值奖惩机制。该机制通过赋予网络带宽与节点性能更好的代表节点信用值奖励,增大其成为出块节点的概率,进一步提高系统的效率。

1 相关工作

现如今区块链技术在版权交易领域的应用越来越广泛。例如MineLabs公司开发的区块链系统Mediachain[5],该系统借助区块链技术在互联网上注册、识别和跟踪作品,实现发行商和创作者间的版权交易。Ascribe[6]利用比特币区块链技术为知识产权进行时间标记,给原创版权作品创建了可持续所有权,并且使用区块链技术对版权交易进行记录。而目前,国内基于区块链的版权交易模式的建设才刚刚起步,如由上海七印科技推出的基于以太坊的版权交易平台Primas[7],该平台将内容的特征值存入区块链实现版权交易保护,但其采用工作量证明(proof of work,POW)作为共识机制,POW共识机制的核心是各个节点通过算力竞争来争夺区块的记账权[8]。因此该算法在很大程度上造成了不必要的资源浪费,而且其性能较低,不能满足快速交易的需要。

针对POW存在的问题,2012年股权证明机制(proof of stake,POS)由Sunny King[9]等提出,该算法是通过币龄进行区块记账权的竞争,权益越大越容易获得记账权,该策略虽解决了POW中浪费资源的问题,减少了共识的时间,但是问题也很明显,单纯使用币龄会造成权益集中化的现象,增大作恶的风险。

DPOS是POS的演化版本,在DPOS共识算法[10]中每个拥有权益的节点都具有投票的权利,每个节点将可以给自己认为可信的节点投票,而得票数最多的节点,将成为代表节点进入委员会,代表节点的职责是生产区块并进行区块的验证。在每一轮选举结束之后,代表节点会轮流生产区块,并且区块的验证只在代表节点内部进行。

DPOS共识机制与POS相比大幅缩小参与验证和记账的节点的数量,效率有大幅提升。但与此同时,DPOS共识机制还存在一些不足。首先是安全性问题。如果代表节点中存在恶意节点,在产生区块时,将会进行作恶,整个区块链系统安全性也将无法保障[11]。其次是在效率上问题,目前基于DPOS的共识机制虽然部分算法可达到秒级,但与一些基于拜占庭共识的算法相比,仍有差距[12]。

DPOS共识机制作为目前区块链系统研究领域的热门方向,在国内外对于该算法的改进研究主要从两个方向上展开。第一个方向是DPOS与拜占庭类算法进行结合。如国外最知名的项目商用分布式设计区块链操作系统(enterprise operation system,EOS)[13]对DPOS机制进行了改进,DPOS与拜占庭容错算法(Byzantine fault tolerance,BFT)进行结合。在改进后的机制中,每轮只选出21位代表节点。虽然这种方式可以提高出块速率,但是代表节点数量的减少会进一步导致系统中心化程度降低,导致节点作恶更加容易,破坏了系统的安全性。

第二个方向主要基于信用的奖惩机制进行设计,以降低异常节点成为代理节点的概率。此方法对代理节点的处理,相比于之前的算法无疑对系统安全性有了质的提高,但是也存在着一定的不足。Fu等[14]在文献中通过对节点信用值进行分级评价,以实现信用参数的选取。这种方法虽然也可以从宏观上对节点的可信度进行大致判断,但其颗粒度较粗,无法进行更有针对性的取舍。Zhang等[15]对DPOS的改进点在于,采用综合其信用值加投票票数的方式对可信度进行评价。该方案的不足之处在于,对于代理节点选举而言,一定会将投票目标选择较为可靠的节点。但在论文中对节点可靠性的概念未有一个准确的定义,或给出一个量化的标准,甚至会有一些恶意的同行节点可以通过贬低其它节点来间接提高自己的得票数[16]。因此,将导致节点投票的随机性较大,并且极有可能选择恶意节点作为代表节点,或产生恶意节点共谋,不利于对最优节点的选择,导致区块链整体安全性并未得到显著提升。

2 基于信用值和币龄的DPOS共识算法设计

传统的DPOS共识机制作为区块链核心模块在安全性上有所不足。若在DPOS算法的代表节点中存在作恶节点,而作恶节点将只为了获取自身利益而产生非法的区块甚至不产生区块,此问题严重影响着整个区块链系统的安全性,目前无法适用于版权登记与授权交易情景中。

为此,本文针对DPOS共识算法开展研究,创新性的采用综合信用值机制、随机出块算法、时间激励算法、区块验证策略等技术手段对DPOS共识机制的各个重要环节进行全方位的改进,全面提升整个区块链系统的效率和安全性,有效解决DPOS共识机制中恶意节点被选为代表节点进行作恶的问题,从而有效降低版权登记与交易系统的风险。

2.1 委员会代表节点选择

2.1.1 综合信用值评分机制设计

综合信用值评分采用千分制,每轮通过评分机制计算得出各个节点的综合信用值,根据综合信用值由高到低进行排序,选择综合信用值较高的前N个节点作为代表节点,负责产生区块。同时利用该机制取代经典算法中的投票机制进行代表节点的选择,从而避免了在DPOS算法中出现投票不积极的现象,节省了投票时间,对安全性及效率具有一定程度的提升作用。

(1)综合信用值参数的选择

本文将节点信用值得分及其币龄作为改进方案中计算综合信用值的变量,通过信用值可以直接反应该节点的可信程度。每个节点初始信用值设置为500分。币龄即该账户的持币量与持币时间的乘积,如式(1)所示

币龄=持币量*持币时间

(1)

在传统POS共识算法中,作为区块记账权竞争的主要因素,拥有币量越大的节点币龄就越大;持有时间越长的节点越容易获得记账权。采用币龄作为综合信用值评分参数时,作恶节点若想在前期获取优势,则需投入大量资本,且持有一定时间。这样,显然增加了节点作恶的成本,从而降低了DPOS中节点作恶的意愿与能力,相应提高了安全性。

为避免因单纯使用币龄而导致权益集中化的现象,本文对有效持币时间进行了修改,限制持币时间为30天,币龄的最大上限为1500分,以解决因币龄无限增长而带来的权益无限增大的问题。同时规定,每轮出块节点出块后的币龄在数值上不进行重置。以此构建综合信用值评分模型,并在模型中强化信用值对记账权竞争的影响。

(2)综合信用值评分模型的构建

本文采用改进CES生产函数[17]模型对节点综合信用值进行评价,从而使代表节点的推选更加公平。CES生产函数即不变替代弹性生产函数,是由阿罗和罗素等提出的。该模型不仅符合双影响因素综合评价规律,而且具有较好的统计特性,所以本文最终选取CES生产函数作为综合信用值评分模型,如式(2)所示

Y=A(α1K-P+α2L-P)-1/P

(2)

其中,A为技术进步参数,且A>0;K与L分别代表投入的劳动与资金两种生产要素;α1与α2分别为劳动与资金的密集参数,α1与α2均大于0,且α1+α2=1;P为替代参数,且P≥-1。生产函数主要反映了在实际经济问题中,投入不同的生产要素与产出的关系。这里,我们基于该模型计算综合信用值,实现对节点可信程度的评价。将信用值与币龄作为模型中的初始投入生产要素,参数值α1与α2可根据实际情况进行调整,产出即为综合信用值,以此作为区块链节点是否可信赖的判断依据,同时使推选代表节点的过程相对公平。

2.1.2 信用值重置机制设计

为了防止数轮过后,由于节点综合信用值差异过大而导致少数节点长期被选为代表节点,从而导致中心化,并可能发生潜在的作恶心理,我们设计了信用值重置机制。若节点信用值大于1000,则重置该节点信用值为500,从而保证代理节点合理的更替与轮换,且防止代表节点产生惰性,降低节点主观作恶的意愿。

2.2 委员会中节点出块方式设计

传统DPOS算法在选举出代表节点后,节点将顺序轮流出块。在本设计中,我们结合DPOS代表节点数量少、效率高的特点,采用混合同余算法进行随机出块计算。经测试,该算法近300轮才会出现重复的随机数。相比于其它普通随机算法来说,其随机性更高、质量更好。委员会中节点随机出块,可避免恶意攻击者预测到下一个出块节点,并进行共谋,从而提升区块链系统的安全性。算法步骤如下:

假定代表节点的总数为N,每个节点的下标为1~N,将使用混合同余算法生成的0到N-1之间的随机数设为i。那么,下标为i+1对应的节点则为出块节点,该节点进行出块;若此代表节点成功生成区块,完成出块使命后,则代表节点总数变化为N-1,直至所有节点均完成出块。

2.3 区块合法性验证

DPOS共识机制最突出的安全隐患即为恶意节点当选为代表节点,以至于代表节点所生产的区块也并非是完全可信的。因此就需要在生成区块之后对区块进行验证。在DPOS机制与其它文献的DPOS机制改进设计中,区块的产生及验证均是通过委员会中的代表节点来实现。但如此设计,代表节点可类比为既当裁判员又当运动员,极易发生共谋,对恶意节点的验证并不合理,因此本文将对区块合法性验证方式进行改进,将区块验证的权力从代表节点上脱离,赋予给除代表节点外综合信用值较高,较为可信的一组节点,并且只有在验证节点验证结果一致的情况下,才可以把区块添加到区块链中。

具体区块合法性验证的过程如下,在DPOS共识机制选择综合信用值高的节点组成委员会后,选择剩余节点中综合信用值高的前N个节点组成验证节点集,这N个节点即为区块链的验证节点;接下来生成的区块需要通过验证节点进行验证,验证内容包括:区块结构是否完整;利用区块链时间戳机制判断新区块的生成时间是否在上一个区块之后;区块体中的交易MerkleRoot是否与区块头中的MerkleRoot一致,在N个验证节点对该区块判断结果均为合法的情况下,才可确认其为正常区块,并在区块通过验证后将其保存到本地数据库中,并广播给周围节点,至此完成共识机制的全部流程。本文中的改进区块合法性验证策略可更加客观、公正的辨别合法区块,提高区块链系统的安全性。

3 基于出块时间的信用值奖惩机制

为了弥补传统DPOS共识机制在安全性及效率上的不足,本文增加了代表节点的信用值奖惩机制。对产生合法区块的代表节点予以奖励,对产生非法区块或未生成区块的代表节点予以惩罚,以减少作恶节点成为代表节点的概率,从而提升区块链的安全性。在设计上,通过采用基于出块时间的信用值奖惩机制,还可以增加性能更好的节点成为出块节点的概率,从而提高区块链系统的效率。

3.1 代表节点信用值奖惩机制

对经过区块验证产生合法区块的节点,若该节点名称在委员会节点列表中,则将其信用值增加50分,对节点进行奖励;对产生非法区块或未能成功生成区块等行为的节点,若该节点名称在委员会节点列表中,则扣除信用值200分,以达到惩罚的目的。

算法1:代表节点奖惩算法

输入:需计算信用值奖惩的代表节点

输出:节点信用值

Begin

If(经验证该节点生成区块为合法区块)

If(该节点名称在委员会节点列表中)

节点信用值增加50

End if

Else

If(该节点名称在委员会节点列表中)

节点信用值减少200

End if

End

若有n个代表节点进行出块操作,该算法的时间复杂度为O(n)。

3.2 基于出块时间的信用值奖惩机制

令ΔT等于设置的限定出块时间减去本轮该节点的出块时间,若出块时间小于限定的出块时间,则说明该节点性能较好,可进行信用值奖励,奖励信用值为λ(ΔT)n(λ>0,n>1, 参数可根据实际情况确定);若λ(ΔT)n大于50,则出块奖励为50,以限定奖励信用值额度。若出块时间大于K倍的限定出块时间,则不进行奖励。若出块时间大于K倍的限定出块时间(K为参数,可根据实际情况确定)时仍未出块,则视为未能生成区块,本出块轮结束,将对该出块节点进行信用值惩罚,节点信用值减去200。该模型将使网络带宽与节点性能更好的节点获得信用值奖励,增加其下一轮选举出块的概率,提高系统的效率。算法如下:

算法2:基于出块时间的信用值奖惩机制算法

输入:需计算基于时间奖惩的出块节点

输出:节点信用值

Begin

If(出块时间小于限定出块时间)

If(该节点名称在委员会节点列表中)

If(λ(ΔT)n大于50)

节点信用值增加50

Else

节点信用值增加λ(ΔT)n

End if

End if

If(出块时间大于K倍的限定出块时间)

If(该节点名称在委员会节点列表中)

节点信用值减少200

End if

End if

End

若有n个出块节点进行出块操作,该算法的时间复杂度为O(n)。

4 实 验

4.1 实验环境

在Goland进行搭建中仿真实验环境,Goland是JetBrain公司推出的Go语言集成开发环境。在仿真平台上模拟建立了一个拥有20个节点的分布式网络,能够模拟出改进前后DPOS共识算法推选委员会代表节点、生产区块、验证区块等全过程。同时为确保实验中的节点更加贴近现实情况,在实验中授予不同节点不同的优先级,使不同节点的性能有所不同。根据实际业务及安全性特征,在本实验中综合信用值评分模型中常量取值为:A=1,P=-1,信用值参数值α1=0.9,币龄参数值α2=0.1,该取值保证了信用值在公式中起主导作用地位,同时避免由于币龄因素导致作恶节点未得到应有惩罚;在基于出块时间的信用值奖励机制中常量根据实际情况确定,本实验中为了保证其奖励的公平性取T=0.5ms,λ=1000,n=2。实验中采用的软硬件设备的性能参数见表1。

表1 实验环境配置

4.2 单作恶节点安全性对比实验

在我们提出的改进DPOS共识机制中,在每轮出块前计算各个节点的综合信用值,根据综合信用值由高到低的排名得到代表节点列表,由这些代表节点负责产生区块。

为了验证改进DPOS共识算法的有效性,首先在系统中进行两轮出块操作。设定节点A为唯一的作恶节点,且为第一轮负责出块的代表节点,统计此时节点A的综合信用值排名,并完成第一轮出块操作。接下来,以此次结果为基础进行第二轮出块,得到节点A第二轮出块的综合信用值排名,并可由此判断节点A是否将再次成为代表节点。经过30次实验计算,得到节点A再次成为代表节点的概率。其概率越低,则其作恶的机会越低,算法的安全性越高。

分别统计30次实验中节点A进行两轮出块的综合信用值排名,绘制出的折线如图1所示。

图1 A节点两轮出块综合信用值排名对比

从图1中可以看出。在改进后的DPOS共识算法中,作恶节点A第二轮综合信用值的排名均比第一轮排名靠后。且经计算,作恶节点再次获得代理节点的次数仅有一次,占总次数的比例约为3%。这是由于节点A在第一轮产生区块时发生了作恶行为,经过基于信用值和币龄的综合信用值评分,该节点综合信用值大幅降低,导致节点在第二轮的代表节点的选择中排名靠后。实验验证,改进后的DPOS共识算法能够有效降低作恶节点再次成为代表节点的概率,从而提高了区块链系统的安全性。

在相同的实验环境下,将本文提出的方法与传统的DPOS共识算法及胡亚菲[18]提出的改进算法进行第二轮综合信用值排名的对比结果如图2所示。

图2 A节点第二轮综合信用值排名对比

从图2中可以看出,在30次实验中,本文提出的改进算法作恶节点A在第二轮的综合信用值排名比改进前的传统算法更加靠后。统计得到的数据如下:改进前作恶节点获得代理节点共有25次,概率约为84%。对比图2中胡亚菲[18]论文中的实验结果表明,其第二轮出块获得代理节点的次数有4次,占总次数的比例约为13%,而在本文提出的改进算法中,作恶节点A再次获得代理节点的次数仅有1次,概率约为3%。这是因为相比改进前以及同类算法,该改进算法的综合信用值评分方式更为合理,并增加了代表节点随机性出块与合法性验证机制,能够对作恶节点准确进行惩罚,因此显著降低了作恶节点成为代理节点的概率,对于安全性的提升更加明显。

4.3 多作恶节点安全性对比实验

为了验证在真实多作恶节点环境中,我们改进后的DPOS共识机制在安全性方面的提升情况,在相同实验环境下,与传统的DPOS共识算法在作恶节点数量上进行对比实验,若作恶节点数量越少,则验证该算法的安全性越高。对比实验结果如图3所示。

图3 DPOS共识机制作恶节点数量对比

从图3可以发现,在30轮实验中,改进前的算法每轮作恶节点数在1~4个之间,一直处于较高的水平。在高迎等[19]提出的方法中,需要将近9轮才会到达稳定状态。这是由于基于币龄和信用值的DPOS共识机制使作恶节点的综合信用值降低,从而导致在下一轮被快速剔除,无法进入委员会成为代表节点。而诚实节点由于正确地产生区块,综合信用值得到提升,在下一轮的委员会节点选择中更占据优势。

在我们提出的改进DPOS共识机制中,作恶节点数量持续减少。在经过5轮之后,到达一个稳定状态,并且之后的每轮几乎无作恶节点成为代表节点。相比于高迎等[19]的方法,对作恶节点剔除的更快,效果更加明显。由此表明:本文提出的改进DPOS共识机制相比于同类方法,整体的安全性有较好的提升。

4.4 区块生产时间对比实验

为了评价我们改进后的DPOS共识机制的效率,在相同环境下,设定每轮产生的区块数量相同,改进前后两种共识机制每轮生成区块所消耗的时间如图4所示。

图4 DPOS共识机制产生区块时间对比

从图4中可以看到,随着出块轮次的增加,两种DPOS共识机制的出块时间都呈现出线性递增的趋势。但在每轮生成区块数量相同的情况下,我们改进后的DPOS共识算法生成区块所花费的时间对比改进前的共识机制略有降低。由此表明,本文提出的改进DPOS共识机制并没有因为增加综合信用值的计算过程而导致区块生成时间有所增加,反而由于在系统中增加了基于出块时间的信用值奖惩机制,导致性能较好的节点更容易成为出块节点,从而产生区块的时间更短,效率略有提升。

5 结束语

本文结合版权授权交易的实际应用,给出了采用区块链技术进行版权登记交易的总体框架。并针对共识机制存在的问题,提出了基于信用值和币龄的DPOS共识机制。该机制具有以下明显优势:①显著减少了作恶节点当选代表节点的概率,可有效解决大量恶意节点当选代理节点的问题;②通过随机出块策略与可信区块验证策略,大大增强了生产区块的安全性;③使用基于出块时间的信用值奖惩机制,增大了网络带宽与节点性能更好的节点成为出块节点的概率,进而提升了系统的效率。

实验结果表明,本文提出的改进DPOS共识机制不仅可以有效降低区块链系统的安全性风险,而且还可以在一定程度上提高系统的运行效率,从而在版权登记与交易领域进行应用,实现可信的版权登记与授权交易。

未来,将进一步对DPOS共识机制算法进行优化。通过增加加密策略实现安全性的进一步提升,使区块链技术可以更好应用到各种版权交易场景当中,为原创版权作品的推广和应用保驾护航。

猜你喜欢
共识信用区块
中美信用减值损失模型的比较及启示
共识 共进 共情 共学:让“沟通之花”绽放
区块链:一个改变未来的幽灵
论思想共识凝聚的文化向度
区块链:主要角色和衍生应用
《红楼梦》的数字化述评——兼及区块链的启示
商量出共识
加快信用立法 护航“诚信河南”
信用收缩是否结束
一场区块链引发的全民狂欢