本发明涉及一种结合交易与共识的智能服务交易区块链信誉管理方法和系统,属于区块链领域。
背景技术:
随着比特币的稳定运行和发展,比特币的基础技术区块链逐渐吸引了业界和学术界的广泛关注。近年来,区块链技术的性质和特征使其不仅适用于比特币等数字加密货币领域,而且还适用于需要建立分布式、点对点信任关系的更多领域,例如智能服务交易。
共识机制是区块链的核心技术,比特币、以太坊等主流区块链平台都依赖于分布在世界各地的矿工持续不断地挖矿来维持系统正常运行。根据不同的限制条件,主要有强一致性共识算法和最终一致性共识算法。强一致性共识算法多用于节点数量较少且对一致性和正确性有更强要求的私有链和联盟链中,典型的强一致性共识算法包括考虑拜占庭故障的拜占庭容错机制、实用拜占庭容错机制等。最终一致性共识算法多用于节点数量巨大且很难使所有节点达到100%一致性和正确性的公有链。典型的最终一致性共识算法包括工作量证明、权益证明和委托权益证明等。但是,挖矿激励机制会导致全球算力的集中,这不仅会造成51%攻击而且浪费大量资源。而不基于算力的权益证明、委托权益证明等共识机制的安全性还没有得到理论上的有效证明。实用拜占庭容错算法等强一致性算法又存在算法复杂度高、去中心化程度低等不足。
随着区块链的广泛应用,将信誉系统融入到区块链中成为了一个新的方向。一方面,交易双方需要信誉系统作为互相评判的重要依据;另一方面,将信誉机制融入共识中可以促使共识机制的正常运作。研究人员已做了相关工作,如改进目前信誉评价系统的反馈模型、采用更安全的数据库等。然而,这些工作大多数是在原有的信誉系统基础上进行改进,都无法从根本上解决由于第三方存在导致的问题。repucoin系统将信誉的概念引入区块链的共识机制中。在该方案中矿工的能力取决于其声誉,而不是其在短时间内的计算能力。
但是,现有区块链中使用的基于信誉的共识机制或信誉系统都没有全面的考虑用户在交易过程中的行为与共识行为。并且现有的基于信誉的共识机制中,信誉系统的构建不够完备,无法保障区块链系统的正常运行。
技术实现要素:
为解决上述技术的不足,本发明提出了一种结合交易与共识的智能服务交易区块链信誉管理方法和系统。本方案使用基于信誉的共识机制代替比特币、以太坊等系统中使用的工作量证明(pow)、权益证明(pos)等共识机制,使得节点在交易和共识两部分的行为相互约束。可验证随机函数生成每轮的领导者使得本方案不会造成算力浪费,信誉链的存储方式无需可信第三方进行管理。
本发明采用如下的技术方案:
一种结合交易与共识的智能服务交易区块链信誉管理方法,包括以下步骤:
s1.共识小组选举:生成本轮智能服务交易区块链系统的共识小组中的成员节点;
s2.领导者选举:生成本轮的领导者候选人节点;
s3.交易信息打包:各领导者候选人节点将本轮的全部交易打包到交易区块中并将其和凭证一起发送给共识小组;
s4.区块发布:共识小组中的成员节点根据接收到的交易区块和凭证从领导者候选人节点中确定本轮的领导者节点,运行基于信誉的共识机制后将接收的交易区块blockr发布到区块链上;
s5.信誉更新:领导者节点将本轮的信誉变化更新到信誉区块republockr中并发布。
其中,节点是指区块链网络中运行的终端,可以为计算机或服务器,包括成员节点、领导者节点等。
步骤s1中,通过以下方法生成共识小组中的成员节点:
(1)将本轮(第r轮)智能服务交易区块链系统中的所有节点按照信誉高低进行排序。
(2)选择其中信誉最高的|g|个成员节点作为共识小组gr中的成员节点。其中,|g|中的g表示共识小组,|g|表示系统设定的共识小组g中的节点数量,具体数值可根据系统运行情况进行调整。
其中,步骤(1)所述的按照信誉高低进行排序,“信誉”是指节点的总信誉r,计算方法是:根据上一轮的节点交易情况和参与共识的情况进行迭代更新,具体计算方式见后文步骤s5的说明。
步骤s2中所述的领导者候选人节点设为lr,i,具体通过以下方式获得:利用可验证随机函数,智能服务交易区块链中的每个节点通过自己的私钥ski计算公式h(sigi(r,qr-1))<p是否成立。若成立,则该节点成为本轮的领导者候选人节点,若不成立则不是。
优选的,通过以下方式计算qr:
其中,h表示系统采用的哈希函数,sig表示系统采用的签名算法,q表示可验证随机函数的种子,p表示利用可验证随机函数生成的随机数的合法范围。在本发明所述的区块链系统中,每一轮确定一个区块,即第r轮结束后所确定的区块为第r个区块。
步骤s3中所述的领导者候选人节点lr,i将交易打包到区块blockr,i中并将其和凭证σr,i一起发送给共识小组gr中的成员节点,其发送消息的具体形式为:(blockr,i,σr,i,sigi(h(blockr,i)),其中,σr,i=sigi(r,qr-1)。
步骤s4中所述的区块发布包括以下步骤:
(1)共识小组gr中的成员节点接收所有领导者候选人节点发送的消息,其中,由于消息规模,每个凭证σr,i将先于区块blockr,i被接收到;
(2)共识小组成员节点通过检查凭证将拥有最小哈希值的节点确定为本轮的领导者节点lr;
(3)共识小组成员节点首先检查领导者节点lr发送的区块所对应的签名是否合法;
(4)共识小组成员节点检查领导者节点lr发送的区块是否合法;
(5)若上述两个步骤均合法,共识小组成员节点将h(blockr,i)并附加上自己的数字签名发送给其他共识小组成员节点,若上述两个步骤有一条或以上不合法,则发送⊥;其中⊥表示无效消息;
(6)等待一段时间后,若共识小组成员节点收到
(7)等待一段时间,如果共识小组成员节点收到超过
(8)区块将附加共识小组的签名certr发布到区块链中。
步骤s5中所述的信誉更新具体包括以下步骤:
(1)共识信誉更新;
(2)交易信誉更新;
(3)总信誉更新并写入信誉链。
优选的,通过以下方式计算节点i的新共识信誉
(1)如果节点不是共识小组成员节点或领导者节点,则其共识信誉不变;
(2)如果节点是共识小组成员节点或领导者节点,且其行为合法,则其共识信誉更新为
(3)如果节点是共识小组成员节点且投票与超过三分之二的成员节点不同,则其信誉更新为
(4)如果节点是领导者节点且提交了不合法交易,则其信誉更新为
通过以下方式计算节点的新交易信誉:
(1)将值为在1和-1之间的交易评分tij标准化:
(2)定义矩阵c为[cij];
(3)定义向量
通过以下方式计算总信誉更新并写入信誉链:
(1)计算第r轮的总信誉
(2)本轮的领导者节点将发生变化的节点信誉写成交易的形式写入信誉区块中。
基于同一发明构思,本发明还提供一种结合交易与共识的智能服务交易区块链信誉管理系统,其包括由多个交易区块构成的交易链,以及由多个信誉区块构成的信誉链,所述系统通过以下操作实现信誉管理:生成本轮智能服务交易区块链系统的共识小组中的成员节点;生成本轮的领导者候选人节点;各领导者候选人节点将本轮的全部交易打包到交易区块中并将其和凭证一起发送给共识小组;共识小组中的成员节点根据接收到的交易区块和凭证从领导者候选人节点中确定本轮的领导者节点,运行基于信誉的共识机制后,将交易区块发布到区块链上;领导者节点将本轮的信誉变化更新到信誉区块中并发布。
本发明与现有技术相比的有益效果在于:
(1)在本发明中,共识和交易过程中的行为都会影响节点的信誉。每个区块被添加到区块链中后,将重新计算该节点的信誉。系统中节点的每种行为都会影响其信誉值,具有较高信誉的节点将更有可能被选择为交易对象,并且共识中将有更多的回报。
(2)本发明提出了一种新的基于信誉的共识机制,该机制具有以下三个特征:首先,使用可验证随机函数生成领导者,而不是像比特币系统那样通过解决难题来选举,因此本发明不会消耗大量算力;其次,本发明选择系统中信誉较高的部分节点来实施共识机制,减少共识节点数量从而减少系统负载和网络流量,提高共识效率;最后,信誉评分不仅会影响共识中投票节点的权重,而且会使信誉值较高的节点更有可能通过加权采样算法获得奖励。不诚实的用户将受到信誉评分降低的惩罚。这种激励机制将使用户能够诚实地完成交易和共识协议。
(3)本发明使用信誉链来存储和更新节点的信誉,而无需受信任的第三方来管理信誉。
(4)本发明的共识机制可以抵抗闪电攻击、自私挖矿攻击、日蚀攻击、双花攻击等现有的对区块链系统的主流攻击手段。实验评估表明,本发明所提出的方案是有效且易于部署的。
附图说明
图1是结合交易与共识的智能服务交易区块链信誉管理方法示意图;
图2是智能服务交易交易结构图;
图3是带有信誉管理区块的智能服务交易区块链结构图;
图4是实验效率示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
图1是本发明的结合交易与共识的智能服务交易区块链信誉管理方法的示意图。其中,blockheaderr表示交易区块的区块头;transactionlistr表示交易列表,certr表示共识小组的签名。
图2是智能服务交易交易结构图。其中,req表示购买者首先向服务提供商发送服务请求的消息格式,res为服务提供商返回给购买者的回复消息,(res,rt,σ‘’)为最终区块链上存储的交易形式。图2中,pk表示购买者的公钥,pk’表示服务提供商的公钥(在智能服务交易区块链系统中用公钥标识每个节点,每个节点拥有与其公钥对应的私钥),i表示可公开的交易信息,i’表示交易信息中的隐私信息,h(i’)表示隐私信息的哈希值,σ表示购买者对服务请求消息(pk.pk’,i.h(i’))的签名,σ‘表示服务提供商对回复消息(req,s)的签名,σ‘’表示购买者对发布到区块链上的消息(res,rt)的签名,s表示服务提供商提供服务的相关信息,rt表示购买者对本次服务的信誉评价。
本实施例的一种结合交易与共识的智能服务交易区块链信誉管理方法,包括以下步骤:
s1.共识小组选举:生成第r轮智能服务交易区块链系统的共识小组中的成员节点;
具体的,通过以下方法生成第r轮共识小组成员节点:
(1)经过第r-1轮后,节点的信誉已在对应的信誉区块更新,按照更新后的信誉得分将智能服务交易区块链系统中的所有节点按照信誉高低进行排序。
(2)选择其中信誉最高的|g|个成员作为本轮共识小组gr中的成员节点。
s2.领导者选举:生成本轮的领导者候选人节点lr,i。具体通过以下方式获得:每个节点通过自己的私钥ski计算公式h(sigi(r,qr-1))<p是否成立。若成立,则该节点成为本轮的领导者候选人节点,若不成立则不是。
具体的,通过以下方式计算qr:
其中,h表示系统采用的哈希函数,sig表示系统采用的签名算法,q表示可验证随机函数的种子,p表示利用可验证随机函数生成的随机数的合法范围。在本发明所述的区块链系统中,每一轮确定一个区块,即第r轮结束后所确定的区块为第r个区块。
s3.交易信息打包:各领导者候选人节点lr,i将交易打包到区块blockr,i中,这些交易包含在当前时间之前所有未写入区块链的交易,每条交易的形式如图2所示。并将区块blockr,i和凭证σr,i一起发送给共识小组gr中的成员节点,其发送消息的具体形式为:(blockr,i,σr,i,sigi(h(blockr,i)),其中,σr,i=sigi(r,qr-1)。
s4.区块发布:共识小组成员节点运行基于信誉的共识机制后将区块blockr发布到区块链上。具体的,区块发布的过程如图1所示,区块发布包括以下步骤:
(1)共识小组gr中的成员节点接受所有领导者候选人节点发送的消息,其中,由于消息规模,每个凭证σr,i将先于区块blockr,i被接收到;
(2)共识小组gr成员节点通过检查凭证将拥有最小哈希值的节点确定为本轮的领导者节点lr;即共识小组gr成员节点将各领导者候选人节点lr,i发来的凭证σr,i按照其数值大小选择最小的一个,该拥有数值最小的凭证的领导者候选人节点记为第r轮的领导者节点lr。
(3)共识小组gr成员节点首先检查领导者节点lr发送的区块所对应的签名是否合法;
(4)共识小组gr成员节点检查领导者节点lr发送的区块是否合法;
(5)若上述两个步骤均合法,共识小组gr成员节点将h(blockr,i)并附加上自己的数字签名发送给其他公式小组成员节点,若上述两个步骤有一条或以上不合法,则发送无效消息标识⊥;
(6)等待一段时间后,若共识小组gr成员节点收到
(7)等待一段时间,如果共识小组成员节点收到超过
(8)区块将附加共识小组gr所有成员节点的联合的签名certr作为凭证发布到区块链中。
s5.信誉更新:领导者将本轮的信誉变化更新到信誉区块republockr中并发布。其中信誉更新具体包括以下步骤:
(1)共识信誉更新;
(2)交易信誉更新;
(3)总信誉更新并写入信誉链。
具体的,通过以下方式计算节点i在第r轮结束后的新共识信誉
(1)如果节点不是共识小组成员节点或领导者节点,则其共识信誉不变;
(2)如果节点是共识小组gr成员节点或领导者节点lr,且其行为合法,则其共识信誉更新为
(3)如果节点是共识小组gr成员节点且投票与大多数成员节点不同,则其信誉更新为
(4)如果节点是领导者(即节点lr)且提交了冲突交易,则其信誉更新为:
通过以下方式计算节点的在第r轮结束后的交易信誉:
(1)将值为在1和-1之间的交易评分tij标准化:
(2)定义矩阵c为[cij];
(3)定义向量
通过以下方式计算总信誉更新并写入信誉链:
(1)计算第r轮的总信誉
(2)第r轮的领导者节点lr将发生变化的节点信誉写成交易的形式写入信誉区块中。
图3是带有信誉管理区块的智能服务交易区块链结构图。其中由多个交易区块block构成交易链,由多个信誉区块republock构成信誉链。reputationlist表示记录节点信誉改变的消息列表。与第r轮的区块blockr对应的信誉区块是republockr。republockr块存储第r轮之后的节点信誉。这些信誉变化将由领导者节点计算并发布。因此除了在交易区块上达成共识之外,共识小组成员还需要在信誉区块上达成共识。这样,可以实现信誉的分布式管理。领导者节点生成信誉块后,智能服务交易区块链网络的所有节点都可以共同维护和管理信誉链。
另外,本发明使用增量存储来减小信誉区块的大小:信誉区块仅保存与上一轮相比更改的节点信誉。如果在此轮次中节点的信誉未更改,则该节点的信誉数据将不会保存在此轮次的信誉块中。为了找到节点的信誉信息,方案可以从后向前遍历信誉链,直到在信誉区块中找到该节点的信誉得分为止。在本轮结束后,每个信誉区块仅保存节点的最新信誉,即在本轮中,无论节点的信誉更改多少次,信誉区块中都只会保存该节点的一个数据。假设智能服务交易区块链中活跃节点与节点总数的比为a,则本发明的这种存储模式的压缩率至少为1-a。
图4是实验效率示意图。其横坐标表示智能交易系统中的节点数量n,纵坐标表示达成共识需要的时间。根据该图可以看出,本发明的效率较高,能够很好地适用于智能交易领域。
基于同一发明构思,本发明另一实施例提供一种结合交易与共识的智能服务交易区块链信誉管理系统,其包括由多个交易区块构成的交易链,以及由多个信誉区块构成的信誉链,所述系统通过以下操作实现信誉管理:生成本轮智能服务交易区块链系统的共识小组中的成员节点;生成本轮的领导者候选人节点;各领导者候选人节点将本轮的全部交易打包到交易区块中并将其和凭证一起发送给共识小组;共识小组中的成员节点根据接收到的交易区块和凭证从领导者候选人节点中确定本轮的领导者节点,运行基于信誉的共识机制后,将交易区块发布到区块链上;领导者节点将本轮的信誉变化更新到信誉区块中并发布。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的原理和范围,本发明的保护范围应以权利要求书所述为准。
1.一种结合交易与共识的智能服务交易区块链信誉管理方法,包括以下步骤:
生成本轮智能服务交易区块链系统的共识小组中的成员节点;
生成本轮的领导者候选人节点;
各领导者候选人节点将本轮的全部交易打包到交易区块中并将其和凭证一起发送给共识小组;
共识小组中的成员节点根据接收到的交易区块和凭证从领导者候选人节点中确定本轮的领导者节点,运行基于信誉的共识机制后将交易区块发布到区块链上;
领导者节点将本轮的信誉变化更新到信誉区块中并发布。
2.根据权利要求1所述的方法,其特征在于,通过以下方法生成共识小组中的成员节点:
将本轮即第r轮智能服务交易区块链系统中的所有节点按照信誉高低进行排序;
选择其中信誉最高的|g|个成员节点作为共识小组gr中的成员节点,其中|g|表示系统设定的共识小组g中的节点数量。
3.根据权利要求1所述的方法,其特征在于,通过以下方式生成领导者候选人节点:每个节点通过自己的私钥ski计算公式h(sigi(r,qr-1))<p是否成立,若成立,则该节点成为本轮的领导者候选人节点,若不成立则不是领导者候选人节点;
通过以下方式计算qr:
其中,h表示哈希函数,sig表示签名算法,q表示可验证随机函数的种子,p表示利用可验证随机函数生成的随机数的合法范围。
4.根据权利要求3所述的方法,其特征在于,所述的领导者候选人节点将交易打包到区块blockr,i中并将其和凭证σr,i一起发送给共识小组gr中的成员,其发送消息的形式为:(blockr,i,σr,i,sigi(h(blockr,i)),其中σr,i=sigi(r,qr-1)。
5.根据权利要求1所述的方法,其特征在于,所述将交易区块发布到区块链上,包括以下步骤:
(1)共识小组gr中的成员节点接收所有领导者候选人节点发送的消息,其中,由于消息规模,每个凭证σr,i将先于区块blockr,i被接收到;
(2)共识小组成员节点通过检查凭证将拥有最小哈希值的节点确定为本轮的领导者节点lr;
(3)共识小组成员节点首先检查领导者节点lr发送的区块所对应的签名是否合法;
(4)共识小组成员节点检查领导者节点lr发送的区块是否合法;
(5)若上述两个步骤均合法,共识小组成员节点将h(blockr,i)并附加上自己的数字签名发送给其他共识小组成员节点,若上述两个步骤有一条或以上不合法,则发送无效消息⊥;
(6)等待一段时间后,若共识小组成员节点收到
(7)等待一段时间,如果共识小组成员节点收到超过
(8)区块将附加共识小组的签名certr发布到区块链中。
6.根据权利要求1所述的方法,其特征在于,所述将本轮的信誉变化更新到信誉区块中,包括以下步骤:
(1)共识信誉更新;
(2)交易信誉更新;
(3)总信誉更新并写入信誉链。
7.根据权利要求6所述的方法,其特征在于,通过以下方式计算节点i的新共识信誉
(1)如果节点不是共识小组成员节点或领导者节点,则其共识信誉不变;
(2)如果节点是共识小组成员节点或领导者节点,且其行为合法,则其共识信誉更新为
(3)如果节点是共识小组成员节点且投票与超过三分之二的成员节点不同,则其信誉更新为
(4)如果节点是领导者节点且提交了不合法交易,则其信誉更新为
8.根据权利要求7所述的方法,其特征在于,通过以下方式计算节点的新交易信誉:
(1)将值为在1和-1之间的交易评分tij标准化:
(2)定义矩阵c为[cij];
(3)定义向量
9.根据权利要求8所述的方法,其特征在于,通过以下方式计算总信誉更新并写入信誉链:
(1)计算第r轮的总信誉
(2)本轮的领导者节点将发生变化的节点信誉写成交易的形式写入信誉区块中。
10.一种结合交易与共识的智能服务交易区块链信誉管理系统,其特征在于,包括由多个交易区块构成的交易链,以及由多个信誉区块构成的信誉链,所述系统通过以下操作实现信誉管理:生成本轮智能服务交易区块链系统的共识小组中的成员节点;生成本轮的领导者候选人节点;各领导者候选人节点将本轮的全部交易打包到交易区块中并将其和凭证一起发送给共识小组;共识小组中的成员节点根据接收到的交易区块和凭证从领导者候选人节点中确定本轮的领导者节点,运行基于信誉的共识机制后,将交易区块发布到区块链上;领导者节点将本轮的信誉变化更新到信誉区块中并发布。
技术总结