基于交易评估的联盟链共识方法及系统与流程

文档序号:17117327发布日期:2019-03-15 23:27阅读:260来源:国知局
基于交易评估的联盟链共识方法及系统与流程

本申请属于区块链技术领域,具体涉及一种基于交易评估的联盟链共识方法及系统。



背景技术:

作为一种新兴技术,区块链的发展历史比较短暂,在1.0时代它仅仅是支持数字货币比特币交易的技术。然而,随着区块链技术的不断发展,其已经脱离比特币,为更多的行业领域提供去中心化、去信任的独特解决方案,建立值得信赖的网络。区块链实质是由多方参与共同维护的分布式共享账本。不同于传统的集中式记账,区块链系统中节点地位平等,彼此之间无需信任,通过共识方法达成一致后即可获得全部的数据记录,同时通过密码学的机制可以保障其不可篡改,进一步确保交易无法抵赖和破坏并保护用户与交易信息的隐私。

区块链技术根据其使用场景和开放权限的不同分为公有链、私有链和联盟链。其中,联盟链介于公有链和私有链之间,只对特定的团体组织开放。公众可以查阅和交易,对于验证交易或发布智能合约等功能则需获得联盟许可,可以更好的实现部分去中心化,适用于诸多商用场景。linux基金会下的超级账本就是适用于商用场景的联盟链项目。由于通常交易数据的双方多为各大企业与网络运营商,基于联盟链实现去信任的数据交易成为了一个很好的选择。

传统的数据交易平台通常存在各类数据主体缺乏共享理念、缺乏统一交易标准、数据法律属性与归属存争议、存在交易风险等等问题。联盟链具有去中心化、去信任、公开透明、不可篡改、可追踪溯源等特性。基于联盟链的数据交易平台可以很好地解决传统交易平台上的数据共享、数据存储、数据分析和数据流通的问题。然而,联盟链的准入机制使得联盟链的稳定性、去中心、去信任等特性不如比特币等公有链好。基于传统联盟链共识算法达成节点间一致无法满足数据交易平台的性能需求。如何更快速、安全、可信地达成基于联盟链的数据交易平台中各方数据交易信息的分布式一致性成为当下亟需解决的问题。

由linux基金会发起创建的开源区块链分布式账本hyperledgerfabric1.0利用kafka消息队列进行排序,虽然能够提高数据的吞吐量,但是在整个共识流程中,主节点的静态设置直到故障后,才根据pki-id(在超级账本中,每个节点都会有msp颁发的证书,对证书进行哈希处理生成的一个标识符,用于表示节点的身份)重新授权这种机制,是十分不利于整个交易环境的。即使主节点一直不出故障,但如果该主节点日后基本不再进行交易或者很少进行交易,成为主节点对于它来说都是一种资源浪费,就会存在主节点主动退出整个联盟链网络这样的风险,这样也不利于联盟链网络的稳定。同时现有的共识方法也无法与交易平台的业务流程很好地相结合。



技术实现要素:

为至少在一定程度上克服相关技术中存在的问题,本申请提供了一种基于交易评估的联盟链共识方法及系统。

根据本申请实施例的第一方面,本申请提供了一种基于交易评估的联盟链共识方法,其包括以下步骤:

在联盟链网络中设置交易评估模块;

应用程序生成交易提案,并将交易提案发送给背书节点;

背书节点接收交易提案,并模拟执行交易提案,得到模拟执行结果;

交易评估模块对当前交易中用户的交易数据价值和交易行为进行综合评分,得到用户积分,并根据用户积分对主节点进行动态授权;将用户积分返回至背书节点;

背书节点将用户积分和模拟执行结果反馈给应用程序;

应用程序将包含背书签名和模拟执行结果的交易以及用户积分发送给排序服务节点;

排序服务节点对接收到的交易进行排序后生成区块,同时将用户积分记录在区块中,并将区块广播给主节点;

主节点接收区块并将接收到的区块同步给记账节点;

主节点对接收到的区块进行验证后保存到主节点的本地账本中,记账节点对同步到的区块进行验证后保存到记账节点的本地账本中。

进一步地,所述交易数据价值包括:数据样本量、数据品种、数据完整性、数据时间跨度、数据实时性、数据样本覆盖性、数据深度、数据稀缺性和数据获取难易度指标;所述交易行为包括是否遵守交易规则、是否频繁操作、是否及时付款或提供商品指标。

更进一步地,所述对当前交易中用户的交易数据价值和交易行为进行综合评分,得到用户积分的具体过程为:

根据交易数据价值的各项指标及其权重计算得到当前交易达成后的交易数据积分,根据交易行为的各项指标及其权重计算得到当前交易达成后的交易行为积分;

分别对交易数据积分和交易行为积分进行归一化处理,得到交易数据积分归一化值和交易行为积分归一化值;

利用以下公式计算当前交易达成后的用户积分:

ti=ωtbi′p+(1-ω)tdi′

式中,ti表示第i次交易达成后得到的用户积分;p表示惩罚强度;ω表示交易行为积分在最终所得用户积分中所占比重,ω∈(0,1);tdi′表示交易数据积分归一化值;tbi′表示交易行为积分归一化值;

根据当前交易达成后的用户积分和初始积分计算得到用户总积分:

式中,i表示用户在完成交易平台注册、阅读并同意交易平台的交易规则、实名制认证后交易平台给予的初始积分,i∈[1,j],j表示交易次数。

更进一步地,所述交易行为积分在最终所得用户积分中所占比重ω根据以下公式动态设置:

式中,ω随着交易行为积分归一化值tbi′的减少而增加。

更进一步地,所述惩罚强度p为:

式中,λ表示根据交易平台情况所设置的常数参量。

进一步地,所述根据用户积分对主节点进行动态授权的具体过程为:

将所有记账节点以及原主节点为主节点的属性设置为假;

根据更新后的用户积分对记账节点以及原主节点进行排序;

根据排名从高到低授权预设数量的记账节点参与竞争主节点;

授权的记账节点等待网络稳定后向其他未授权记账节点发送竞争消息;其中,如果预设时间内联盟链网络中的节点没有变动,则表示网络稳定;

非授权记账节点在预设时间内收集各竞争消息,并从各竞争消息中选择用户积分最高的授权记账节点,将该授权记账节点记为新的主节点,并向新的主节点反馈竞争结果;

新的主节点接收竞争结果,并将为主节点的属性设置为真;

新的主节点向其他记账节点或原主节点广播声明消息,声明消息用于声明自己为新的主节点;

其他授权记账节点接收声明消息后放弃竞争主节点。

根据本申请实施例的第二方面,本申请提供了一种基于交易评估的联盟链共识系统,其包括:

交易提案生成模块,利用应用程序生成交易提案,并将交易提案发送给背书节点;还用于将包含背书签名和模拟执行结果的交易以及用户积分发送给区块生成模块;

模拟执行模块,利用背书节点接收交易提案,并模拟执行交易提案,得到模拟执行结果;还用于将用户积分和模拟执行结果反馈给交易提案生成模块;

交易评估模块,用于对当前交易中用户的交易数据价值和交易行为进行综合评分,得到用户积分,并根据用户积分对主节点进行动态授权;还用于将用户积分返回至模拟执行模块;

区块生成模块,用于对接收到的交易进行排序后生成区块,同时将用户积分记录在区块中,并将区块广播给主节点;

同步模块,用于将主节点接收到的区块同步给记账节点;

验证保存模块,用于对主节点接收到的区块进行验证后保存到主节点的本地账本中,还用于对记账节点同步到的区块进行验证后保存到记账节点的本地账本。

进一步地,所述交易评估模块根据用户积分对主节点进行动态授权时被配置为:

将所有记账节点以及原主节点为主节点的属性设置为假;

根据更新后的用户积分对记账节点以及原主节点进行排序;

根据排名从高到低授权预设数量的记账节点参与竞争主节点;

授权的记账节点等待网络稳定后向其他未授权记账节点发送竞争消息;其中,如果预设时间内联盟链网络中的节点没有变动,则表示网络稳定;

非授权记账节点在预设时间内收集各竞争消息,并从各竞争消息中选择用户积分最高的授权记账节点,将该授权记账节点记为新的主节点,并向新的主节点反馈竞争结果;

新的主节点接收竞争结果,并将为主节点的属性设置为真;

新的主节点向其他记账节点或原主节点广播声明消息,声明消息用于声明自己为新的主节点;

其他授权记账节点接收声明消息后放弃竞争主节点。

根据本申请实施例的第三方面,本申请提供了一种基于交易评估的联盟链共识装置,其包括:处理器和存储器,所述存储器用于存储能够在所述处理器上运行的计算机程序,所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。

根据本申请实施例的第四方面,本申请还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。

根据本申请的上述具体实施方式可知,至少具有以下有益效果:本申请通过对交易双方的每次交易进行评分,各评分累加后得到用户积分,根据用户积分对主节点进行动态授权,本申请能够保证活跃度较高、信任度较高的记账节点成为主节点,避免过于依赖单一节点,从而实现对交易质量的提升和交易的激励,增加联盟链的可信度,提高数据交易平台中信息达成分布式一致的稳定性和安全性,满足平台交易的实际需求。动态授权的主节点负责从排序服务节点处获取区块并向其他记账节点同步区块,在一定程度上保障了节点间的通信,能够加快区块的广播与同步,还能够增加联盟链的稳定性和可信度,防止恶意攻击。

应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本申请所欲主张的范围。

附图说明

下面的所附附图是本申请的说明书的一部分,其示出了本申请的实施例,所附附图与说明书的描述一起用来说明本申请的原理。

图1为现有技术中联盟链节点的组成示意图。

图2为本申请具体实施方式提供的一种基于交易评估的联盟链共识方法的流程图。

图3为本申请具体实施方式提供的一种基于交易评估的联盟链共识方法中得到用户积分的方法流程图。

图4为本申请具体实施方式提供的一种基于交易评估的联盟链共识方法中根据用户积分动态授权主节点的方法流程图。

图5为本申请具体实施方式提供的一种基于交易评估的联盟链共识系统的结构框图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本申请所揭示内容的精神,任何所属技术领域技术人员在了解本申请内容的实施例后,当可由本申请内容所教示的技术,加以改变及修饰,其并不脱离本申请内容的精神与范围。

本申请的示意性实施例及其说明用于解释本申请,但并不作为对本申请的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。

关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本申请,其仅为了区别以相同技术用语描述的元件或操作。

关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。

关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。

关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。

关于本文中的“多个”包括“两个”及“两个以上”;关于本文中的“多组”包括“两组”及“两组以上”。

关于本文中所使用的用语“大致”、“约”等,用以修饰任何可以细微变化的数量或误差,但这些微变化或误差并不会改变其本质。一般而言,此类用语所修饰的细微变化或误差的范围在部分实施例中可为20%,在部分实施例中可为10%,在部分实施例中可为5%或是其他数值。本领域技术人员应当了解,前述提及的数值可依实际需求而调整,并不以此为限。

某些用以描述本申请的用词将于下或在此说明书的别处讨论,以提供本领域技术人员在有关本申请的描述上额外的引导。

图1为现有技术中联盟链节点组成示意图。其中,联盟链网络中包括背书节点、排序服务节点、记账节点和主节点。应用程序为用户操作的实体,其通过背书节点与联盟链网络进行通信。当交易发起时,应用程序构造交易提案并发送给背书节点。背书节点接收交易提案并模拟执行,对模拟执行结果进行背书后反馈给应用程序。

应用程序将包含背书签名和模拟执行结果的交易发送给排序服务节点。排序服务节点对接收到的交易进行排序后生成区块,并将区块广播给主节点。

主节点接收区块并将接收到的区块同步给记账节点。主节点对接收到的区块进行验证后保存到主节点的本地账本。记账节点对同步到的区块进行验证后保存到记账节点的本地账本。

如图2所示,在联盟链网络中加入交易评估模块,本申请实施例提供了一种基于交易评估的联盟链共识方法,其包括以下步骤:

s1、应用程序生成交易提案,并将交易提案发送给背书节点。

s2、背书节点接收交易提案,并模拟执行交易提案,得到模拟执行结果。

s3、交易评估模块对当前交易中用户的交易数据价值和交易行为进行综合评分,得到用户积分,并根据用户积分对主节点进行动态授权;将用户积分返回至背书节点。其中,当前交易中的用户可以为数据提供方,也可以为数据购买方。交易评估模块作为系统的一部分,以链码的形式部署在所有节点上。

s4、背书节点将用户积分和模拟执行结果反馈给应用程序。

s5、应用程序将包含背书签名和模拟执行结果的交易以及用户积分发送给排序服务节点。

s6、排序服务节点对接收到的交易进行排序后生成区块,同时将用户积分记录在区块中,并将区块广播给主节点。具体地,排序服务节点对交易进行排序时可以按照交易的接收顺序对交易进行排序。

s7、主节点接收区块并将接收到的区块同步给记账节点。

s8、主节点对接收到的区块进行验证后保存到主节点的本地账本中,记账节点对同步到的区块进行验证后保存到记账节点的本地账本中。

本申请对交易双方的每次交易进行评分,各评分累加后得到用户积分,用户积分能够体现数据购买方的购买能力、数据提供方的数据质量以及交易双方的活跃度与信誉度。高质量的交易会增加交易双方的用户积分,低质量的交易(包括大量冗余空缺数据、恶意刷单等)会减少交易双方的用户积分,因此本申请共识方法能够在一定程度上提高交易质量,能够更安全、可信、快速地达成基于联盟链的数据交易平台中各方数据交易信息的分布式一致性。

根据用户积分动态授权主节点,能够保证活跃度较高的记账节点成为主节点,负责从排序服务节点处获取区块并向其他记账节点同步区块,在一定程度上保障了节点间的通信,能够加快区块的广播与同步。根据用户积分动态授权主节点,能够保证信任度较高的记账节点成为主节点,负责从排序服务节点处获取区块并向其他记账节点同步区块,能够增加联盟链的稳定性和可信度,防止恶意攻击。

上述步骤s3中,交易数据价值包括数据样本量、数据品种、数据完整性、数据时间跨度、数据实时性、数据样本覆盖性、数据深度、数据稀缺性和数据获取难易度等指标。交易行为包括是否遵守交易规则、是否频繁操作、是否及时付款或提供商品等指标。以上各项指标可以根据实际数据交易平台进行动态设置,指标权重可以根据主观赋权法、客观赋权法或主观赋权法与客观赋权法的结合来确定。其中,主观赋权法包括专家咨询法、层次分析法、指数加权法和功效系数法等,客观赋权法包括熵值法、主成分分析法、变异系数法、神经网络分析法和灰色关联分析法等。

如图3所示,对当前交易中用户的交易数据价值和交易行为进行综合评分,得到用户积分的具体过程为:

s311、根据交易数据价值的各项指标及其权重计算得到当前交易达成后的交易数据积分tdi,根据交易行为的各项指标及其权重计算得到当前交易达成后的交易行为积分tbi。其中,交易数据积分tdi和交易行为积分tbi均可以为负值。

具体地,针对数据价值评价指标体系和国内外文献无形资产定价方法,比较分析收益现值法、市场价值法、重置成本法、black-scholes期权定价模型和eva方法的原理和适用范围,同时基于数据资产特殊性的基础之上建立基于数据访问频率的cache替换迁移算法、基于信息生命周期的数据价值评估法;应用统计建模、数据挖掘、博弈论、人工智能等方法对数据资产建立数据价值评估模型,利用编程语言等进行评价指标计算和模型求解;检验模型显著性和参数显著性、比较验证模型;确定最优价值评估模型方法并给出交易数据积分tdi。

具体地,针对电子商务平台交易风控系统和证券交易行为分析方法,比较主观赋权法和客观赋权法的原理与适用范围,并将二者相结合;应用统计建模、数据挖掘、博弈论、人工智能等方法对交易行为建立交易行为评估模型;利用编程语言等进行评价指标计算和模型求解;检验模型显著性和参数显著性、比较验证模型;确定最优价值评估模型方法并给出交易行为积分tbi。

s312、分别对交易数据积分tdi和交易行为积分tbi进行归一化处理,得到交易数据积分归一化值tdi′和交易行为积分归一化值tbi′,其中,tdi′∈(0,1),tbi′∈(0,1)。

s313、利用以下公式计算当前交易达成后的用户积分:

ti=ωtbi′p+(1-ω)tdi′

式中,ti表示第i次交易达成后得到的用户积分,即当前交易达成后得到的用户积分;p表示惩罚强度;ω表示交易行为积分在最终所得用户积分中所占比重,ω∈(0,1)。ω可以设置为常量,也可以动态设置为变量。例如,可以根据以下公式动态设置ω:

式中,ω随着交易行为积分归一化值tbi′的减少而增加。当用户交易行为不规范或存在欺诈行为时,增加所得用户积分中交易行为积分的权重,同时减少交易数据积分的权重。当用户进行规范交易时,减少交易行为积分的权重,同时增加交易数据积分的权重,用户积分主要由交易数据的质量决定。

惩罚强度p为:

从上式可以看出,惩罚强度p只有在交易行为积分归一化值tbi′为负值,即用户交易行为不规范时才发挥作用。λ为根据交易平台情况所设置的常数参量。例如,令λ=10,则表示用户进行欺诈交易行为时,会受到正常交易下十倍的惩罚。

s314、根据当前交易达成后的用户积分和初始积分计算得到用户总积分:

式中,i表示用户在完成交易平台注册、阅读并同意交易平台的交易规则、实名制认证等后交易平台给予的初始积分,i∈[1,j],j表示交易次数。

上述步骤s3中,由于每次交易达成后交易双方的用户积分都会发生变动,因此根据用户积分对主节点进行动态授权,能够保证活跃度和信任度较高的用户能够成为主节点。如图4所示,根据用户积分对主节点进行动态授权的具体过程为:

s321、将所有记账节点以及原主节点为主节点的属性设置为假。

s322、根据更新后的用户积分对记账节点以及原主节点进行排序。

s323、根据排名从高到低授权预设数量的记账节点参与竞争主节点。

s324、授权的记账节点等待网络稳定后向其他未授权记账节点发送竞争消息。其中,如果预设时间内联盟链网络中的节点没有变动,则表示网络稳定。

s325、非授权记账节点在预设时间内收集各竞争消息,并从各竞争消息中选择用户积分最高的授权记账节点,将该授权记账节点记为新的主节点,并向新的主节点反馈竞争结果。

s326、新的主节点接收竞争结果,并将为主节点的属性设置为真。

s327、新的主节点向其他记账节点或原主节点广播声明消息,声明消息用于声明自己为新的主节点。

s328、其他授权记账节点接收声明消息后放弃竞争主节点。当经过预设时间周期交易双方的用户积分再次发生变化时,返回步骤s321,重新对主节点进行动态授权。

如图5所示,本申请实施例还提供了一种基于交易评估的联盟链共识系统,其包括:

交易提案生成模块1,利用应用程序生成交易提案,并将交易提案发送给背书节点;还用于将包含背书签名和模拟执行结果的交易以及用户积分发送给区块生成模块4。

模拟执行模块2,利用背书节点接收交易提案,并模拟执行交易提案,得到模拟执行结果;还用于将用户积分和模拟执行结果反馈给交易提案生成模块1。

交易评估模块3,用于对当前交易中用户的交易数据价值和交易行为进行综合评分,得到用户积分,并根据用户积分对主节点进行动态授权;还用于将用户积分返回至模拟执行模块2。

区块生成模块4,用于对接收到的交易进行排序后生成区块,同时将用户积分记录在区块中,并将区块广播给主节点。

同步模块5,用于将主节点接收到的区块同步给记账节点。

验证保存模块6,用于对主节点接收到的区块进行验证后保存到主节点的本地账本中,还用于对记账节点同步到的区块进行验证后保存到记账节点的本地账本。

需要说明的是:上述实施例提供的共识系统仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将共识系统的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的共识系统与共识方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本申请通过设置交易评估模块3,交易评估模块3对交易双方的每次交易进行评分,各评分累加后得到用户积分,用户积分能够体现数据购买方的购买能力、数据提供方的数据质量以及交易双方的活跃度与信誉度。高质量的交易会增加交易双方的用户积分,低质量的交易会减少交易双方的用户积分,因此本申请共识系统能够在一定程度上提高交易质量,能够更安全、可信、快速地达成基于联盟链的数据交易平台中各方数据交易信息的分布式一致性。

基于上述共识系统中各模块的硬件实现,为了实现本申请实施例提供的共识方法,本申请实施例还提供了一种基于交易评估的联盟链共识装置,其包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器。其中所述处理器用于运行所述计算机程序时,执行如下步骤:

应用程序生成交易提案,并将交易提案发送给背书节点。

背书节点接收交易提案,并模拟执行交易提案,得到模拟执行结果。

对当前交易中用户的交易数据价值和交易行为进行综合评分,得到用户积分,并根据用户积分对主节点进行动态授权;将用户积分返回至背书节点。其中,当前交易中的用户可以为数据提供方,也可以为数据购买方。

背书节点将用户积分和模拟执行结果反馈给应用程序。

应用程序将包含背书签名和模拟执行结果的交易以及用户积分发送给排序服务节点。

排序服务节点对接收到的交易进行排序后生成区块,同时将用户积分记录在区块中,并将区块广播给主节点。具体地,排序服务节点对交易进行排序时可以按照交易的接收顺序对交易进行排序。

主节点接收区块并将接收到的区块同步给记账节点。

主节点对接收到的区块进行验证后保存到主节点的本地账本中,记账节点对同步到的区块进行验证后保存到记账节点的本地账本中。

在示例性实施例中,本申请实施例还提供了一种计算机存储介质,是计算机可读存储介质,例如,包括计算机程序的存储器,上述计算机程序可由共识系统中的处理器执行,以完成前述共识方法中的所述步骤。计算机可读存储介质可以是磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory)等存储器。

以上所述仅为本申请示意性的具体实施方式,在不脱离本申请的构思和原则的前提下,任何本领域的技术人员所做出的等同变化与修改,均应属于本申请保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1