本发明涉及网络节点可信度的评价方法,具体的说,是涉及一种对等网络集合中最佳交易节点的选择方法、系统及存储介质。
背景技术
节点交易是指一个节点j为另一个节点i提供服务,服务结束后节点i给节点j信任值评分的过程,如:节点i需要下载一个文件,而这个文件在节点j上有,节点i请求节点j给予其下载文件,而节点j允许节点i下载自己的文件,则交易完成;完成交易后,节点i根据节点j的下载速度、文件完整度等方面给予节点j信任值评分,下载速度快,文件完整度好,则交易满意,直接信任值增高,如果不满意,则信任值降低。但现有的对等网络节点集合中,常存在振荡节点,振荡节点是节点间交易过程中根据多次交易结果对某一节点的信任值作出的评价,振荡节点是一般先通过提供优质服务来积累信任值,当信任值到达其自身设定的阈值后,就开始作恶的节点,振荡节点的出现,明显提高了节点交易的风险。
现有的对等网络集合中最佳交易节点的选择方法,主要是为每个节点i设置一个信任列表,用于记录节点i对另一个节点j的满意交易次数sat(i,j)和不满意交易次数unsat(i,j),当节点i需要一个交易服务时,通过对信任列表中每个节点的信任值进行计算(节点i对节点j的满意交易次数sat(i,j)减去不满意交易次数unsat(i,j)即为节点j相对于节点i的信任值),求出相对于节点i的其他节点的信任值,找出信任值最大的节点,即为最满意节点。但这种方法由于信任列表中只记录了交易的成功和失败的次数,而没有记录交易的时间序列,导致无法遏制“振荡节点”的攻击。
还有一些对等网络集合中最佳交易节点的选择方法中,如在每个节点上用“时序立体数据表”来保存节点与其他节点的交易信任值,并通过在计算信任值时对交易时间进行二次加权的方法来防范振荡节点的攻击,但计算复杂性过高,对于节点的计算性能要求较高。
因此,有必要提供一种既能抵抗振荡节点,同时计算过程又简便的对等网络集合中最佳交易节点的选择方法。
技术实现要素:
为了解决上述技术问题,本发明提供了一种对等网络集合中最佳交易节点的选择方法、系统及存储介质,通过记录节点交易过程中的最近m次交易的信任值,同时为每次交易的信任值赋予一个权重,离当前时间点越近的交易权重越大,离当前时间点越远的交易权重越小;且交易满意的信任分数远小于交易不满意的信任分数。通过上述技术方案使得最近作恶的交易节点的综合信任值快速下降,而要通过友好交易累积信任值却很慢,降低了遭遇“振荡节点”攻击的概率。
本发明涉及的术语解释:
信任值,即度量节点之间信任程度的数值,该数值在[-1,1]区间范围内;
直接信任值,即节点通过与对方的直接交易记录来计算出对对方的信任值;
间接信任值,即节点从第三方节点获得对对方节点的信任值来推算出对方的信任值;
对等网络集合,包含多个同类型节点的网络集合。
为了实现上述目的,本发明的一个方面提供了一种对等网络集合中最佳交易节点的选择方法,该方法包括如下步骤:
对当前对等网络集合内各个节点间的各次交易记录分别赋予交易信任值,使得交易满意的信任分数远小于交易不满意的信任分数,以降低振荡节点被选中的可能性;
通过所述交易信任值构建当前对等网络节点集合中每个节点与其他节点的二维交易数组,并根据交易发生的时间对所述二维交易数组中的每个交易信任值赋予一个权重,使得离当前时间点越近的交易权重越大;
根据所述二维交易数组计算每个节点对其他各个节点的直接信任值,并根据其他各个节点之间的直接信任值计算当前节点对其他各个节点的间接信任值;
根据当前节点对其他节点的直接信任值和间接信任值计算当前节点对其他各个节点的综合信任值,选取综合信任值最高的节点与当前节点进行交易。
作为一种优选的技术方案,所述对当前对等网络集合内各个节点间的各次交易记录分别赋予交易信任值,使得交易满意的信任分数远小于交易不满意的信任分数,具体为:根据各节点对其他节点的交易评价,将节点间交易结果分为“交易满意”和“交易不满意”两类,并分别赋予“交易满意”和“交易不满意”不同的常数,对交易不满意的赋值至少为对交易满意赋值的5倍,以使得交易满意的信任分数远小于交易不满意的信任分数。
作为一种优选的技术方案,所述通过所述交易信任值构建当前对等网络节点集合中每个节点与其他节点的二维交易数组,具体为:设当前对等网络节点集合为n,为每一个节点i设置一个n-1行、m列的二维交易数组,用于记录节点i与对等网络中其他节点的各次交易得分,其中,i∈n,m为任意两个节点间的最大交易次数,需要注意的是,当某两个节点之间的总交易次数小于m时,为不影响计算结果,二维交易数组的相应位置用“0”填补,此外,若当前对等网络节点集合中存在从未与其他节点交易过的节点a(可能由于活跃度不高或新加入该集合造成),可根据实际对该节点a的评估,将其综合信任值设定为一个常数。
作为一种优选的技术方案,所述根据交易发生的时间对所述二维交易数组中的每个交易信任值赋予一个权重,具体为:将任意两节点间的第t次交易的交易信任值的权重设为exp(-t),t的数值越小,说明该次交易时间点离当前时间越近,其中,t∈[0,m-1],这就使得交易时间距离当前时间越近的交易结果所占的权重越高,便于掌握各个节点近期的交易情况,有利于提高选择结果的准确性。
作为一种优选的技术方案,所述根据所述二维交易数组计算每个节点对其他各个节点的直接信任值的具体方法为:对二维交易数组中每一行的交易信任值取加权平均数,该加权平均数即为相应的直接信任值。
作为一种优选的技术方案,所述根据其他各个节点之间的直接信任值计算当前节点对其他各个节点的间接信任值的具体方法为:设当前节点为节点i,对等网络节点集合中的某一其他节点为节点j,则该对等网络节点集合内,对除节点i之外的所有其他节点对j的直接信任值进行预处理,得到节点i对节点j的间接信任值,其中,(i、j∈n,j≠i)。
作为一种优选的技术方案,所述对除节点i之外的所有其他节点对j的直接信任值进行预处理,具体为:除节点i之外的所有其他节点对节点j的直接信任值两两相乘再相加,所得之和即为节点i对节点j的间接信任值。
作为一种优选的技术方案,所述根据当前节点对其他节点的直接信任值和间接信任值计算当前节点对其他各个节点的综合信任值,具体为:将当前节点对某一其他节点的直接信任值与间接信任值相加,两者之和即为当前节点对该节点的综合信任值。
本发明的另一个方面,提供一种对等网络集合中最佳交易节点的选择系统,包括交易记录赋值模块、数组构建模块、时间权重赋值模块、信任值计算模块及选择模块,所述交易记录赋值模块、所述数组构建模块、所述时间权重赋值模块以及所述信任值计算及选择模块依次连接;
所述交易记录赋值模块,对当前对等网络集合内各个节点间的各次交易记录分别赋予交易信任值,使得交易满意的信任分数远小于交易不满意的信任分数;
所述数组构建模块,通过所述交易信任值构建当前对等网络节点集合中每个节点与其他节点的二维交易数组;
所述时间权重赋值模块,根据交易发生的时间对所述二维交易数组中的每个交易信任值赋予一个权重,使得离当前时间点越近的交易权重越大;
所述信任值计算及选择模块,根据所述二维交易数组计算每个节点对其他各个节点的直接信任值,根据其他各个节点之间的直接信任值计算当前节点对其他各个节点的间接信任值,再根据当前节点对其他节点的直接信任值和间接信任值计算当前节点对其他各个节点的综合信任值,选取综合信任值最高的节点与当前节点进行交易。
作为一种优选的技术方案,所述时间权重赋值模块,根据交易发生的时间对所述二维交易数组中的每个交易信任值赋予一个权重,具体为:将任意两节点间的第t次交易的交易信任值的权重设为exp(-t),t的数值越小,说明该次交易时间点离当前时间越近,其中,t∈[0,m-1]。
作为本发明的再一个方面,提供一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的选择方法的步骤。
与现有技术相比,本发明的有益效果为:
1)本发明通过对交易满意度进行赋值使得交易满意的信任分数远小于交易不满意的信任分数,通过采用上述技术方案使得最近作恶的交易节点的综合信任值快速下降,而要通过友好交易累积信任值却很慢,降低了遭遇“振荡节点”攻击的概率。
2)本发明还通过为每次交易的信任值赋予一个权重,实现了离当前时间点越近的交易权重越大,离当前时间点越远的交易权重越小的目的,将近期交易的可信度提高,有利于掌握各个节点近期的交易信任度,进而有利于提高最佳交易节点的准确性。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的限定。
图1是实施例一所述的对等网络集合中最佳交易节点的选择方法的示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一
设当前对等网络节点集合为n,为每个节点i(i∈n)设置一个(n-1)行、m列的二维数组a,用于记录节点i与网络中其他节点j交易的交易信任值得分,交易信任值得分越高表示节点j为节点i提供的服务越好,得分越低则节点j为节点i提供的服务越差,二维数组a中每一行表示网络中的一个节点与节点i每次交易的得分。
本实施例的对等网络集合中有4个节点,即n为4,每个节点分别用0~3来表示,取每个节点保存与其他节点最近4次交易的交易信任值得分,即m为4。基于此,计算节点0对本对等网络集合中的其他节点进行最佳交易节点筛选,具体为:
s01:对当前对等网络集合内各个节点间的各次交易记录分别赋予交易信任值,使得交易满意的信任分数远小于交易不满意的信任分数,以降低振荡节点被选中的可能性;具体的:
根据以往的交易记录,若交易满意则即为0.01分,若交易不满意,则即为-0.5分,即在本实施例中,交易不满意的信任分数的绝对值是交易满意的信任分数的50倍。
s02:通过前一步骤得到的交易信任值构建当前对等网络节点集合中每个节点与其他节点的二维交易数组,并根据交易发生的时间对所述二维交易数组中的每个交易信任值赋予一个权重,使得离当前时间点越近的交易权重越大;以节点i为例,其与其他节点的由交易信任值构建的二维交易数组为:
其中,
根据当前各个节点间交易的交易信任值构建得到的各个节点与其他节点的二维交易数组以表格的形式呈现,分别如表1、表2、表3和表4所示,其中两个节点如果没有直接交易过,则其直接信任值为0,将任意两节点间的第t次交易的交易信任值的权重设为exp(-t),t的数值越小,说明该次交易时间点离当前时间越近,其中,t∈[0,3],那么,第0次的权重为exp(0),第1次的权重为exp(-1),第2次的权重为exp(-2),第3次的权重为exp(-3)。
表1.节点0对其他节点的二维交易数组
表2.节点1对其他节点的二维交易数组
表3.节点2对其他节点的二维交易数组
表4.节点3对其他节点的二维交易数组
s03:根据所述二维交易数组计算每个节点对其他各个节点的直接信任值,并根据其他各个节点之间的直接信任值计算当前节点对其他各个节点的间接信任值;
现在节点0想要在网络中找到一个节点进行交易,即当前节点为节点0,其选择最佳交易节点的方法如下:
s031:对二维交易数组的每一行做如下计算,获取当前节点对其他节点的直接信任值:
对于第k行的第t个元素a[k][t](k>=0&k<n,k≠i,t>=0&t<m),计算节点i对节点k的直接信任值
trsat<<trunsat
其中,
具体的,根据上述技术方案,计算节点0对其他各个节点的直接信任值得分,其计算步骤如下:
1)节点0对节点1的直接信任值:
2)节点0对节点2的直接信任值:
3)节点0对节点3的直接信任值:
依此类推,最后整理得各个节点之间的直接信任值如下表5所示:
表5.各个节点间的直接信任值
s032:根据其他节点互相之间的直接信任值计算当前节点对其他各个节点的间接信任值,以从节点j处获取对等网络集合n内节点k的间接信任值为例,其计算过程如下:
首先,计算节点i对节点j的直接信任值得分
其次,计算节点j对节点k的直接信任值得分
最后,节点i从节点j处得到的对节点k的推荐信任值(即:节点i对节点k的间接信任值)得分为
1)节点0对节点1的间接信任值为:
2)节点0对节点2的间接信任值为:
3)节点0对节点3的间接信任值为:
s04:根据当前节点对其他节点的直接信任值和间接信任值计算当前节点对其他各个节点的综合信任值,选取综合信任值最高的节点与当前节点进行交易。具体的,计算节点k对于节点i的综合信任值,计算公式如下:
其中,
体现在本实施例中,计算节点0对其他各个节点的综合信任值的具体步骤如下:
1)节点0对节点1的综合信任值:
2)节点0对节点2的综合信任值:
3)节点0对节点3的综合信任值:
根据数值大小对节点1、节点2以及节点3的综合信任值进行排序,得出节点2相对于节点0的综合信任值最高,即节点0的最佳交易节点为节点2,因此,选择节点2进行交易。
此外,若上述方法中选出的最佳交易节点为节点j,则交易执行后,需要更新节点i保存的信任值二维数组a,对二维数组a的第j行做如下处理:
删除a[j][m-1]元素,
将a[j][0]~a[j][m-2]依次平移到a[j][1]~a[j][m-1],即a[j][m-2]的值放到a[j][m-1],a[j][m-3]的值再放到a[j][m-2],依次类推;
如果节点j提供了满意的服务,则a[j][0]=trsat;否则,a[j][0]=trunsat。
体现在本实施例中,根据2号节点提供的交易是否满意,对保存在0号节点上的二维数组进行更新。具体为:
将tr02行的第3次交易数据删除,即删除tr02行的最右边一列数据0.01,然后将tr02行左边的三个数据依次右移,将节点0对节点2的本次交易信任值填入至左侧位置,若节点0对节点2此次交易满意,则填入0.01,若不满意,则填入-0.5。
本实施例通过对“交易满意”和“交易不满意”分别赋值为0.01和-0.5,使得交易满意的信任分数远小于交易不满意的信任分数,通过采用上述技术方案使得最近作恶的交易节点的综合信任值快速下降,而要通过友好交易累积信任值却很慢,降低了遭遇“振荡节点”攻击的概率。
另外,本实施例还通过为每次交易的信任值赋予一个权重,实现了离当前时间点越近的交易权重越大,离当前时间点越远的交易权重越小的目的,将近期交易的可信度提高,有利于掌握各个节点近期的交易信任度,进而有利于提高最佳交易节点的准确性。
实施例二:
本实施例提供一种对等网络集合中最佳交易节点的选择系统,该系统包括交易记录赋值模块、数组构建模块、时间权重赋值模块、信任值计算模块及选择模块,其中,交易记录赋值模块、数组构建模块、时间权重赋值模块以及信任值计算及选择模块依次连接;
具体的,交易记录赋值模块,对当前对等网络集合内各个节点间的各次交易记录分别赋予交易信任值,例如,将满意交易赋值为0.1,将不满意交易赋值为-0.5,这就使得交易满意的信任分数远小于交易不满意的信任分数,一旦振荡节点进行作恶,则其交易信任度断崖式下跌,且较难补救,通过这种方式降低振荡节点再次参与交易的可能性;
数组构建模块,通过交易信任值构建当前对等网络节点集合中每个节点与其他节点的二维交易数组,具体为:将与各个其他节点的交易信任值对应的填充入数组内;
时间权重赋值模块,根据交易发生的时间对所述二维交易数组中的每个交易信任值赋予一个权重,使得离当前时间点越近的交易权重越大,通过对交易时间点设置权重,使得交易时间距离当前时间越近的交易结果所占的权重越高,便于掌握各个节点近期的交易情况,有利于提高选择结果的准确性。
信任值计算及选择模块,根据上述得到的二维交易数组计算每个节点对其他各个节点的直接信任值,根据其他各个节点之间的直接信任值计算当前节点对其他各个节点的间接信任值,再通过将当前节点对其他节点的直接信任值和间接信任值相加,计算得到当前节点对其他各个节点的综合信任值,在得到的对其他节点的综合信任值最高的一项对应的节点与当前节点进行交易。
上述实施例均是通过对交易满意度进行赋值使得交易满意的信任分数远小于交易不满意的信任分数,通过采用上述技术方案使得最近作恶的交易节点的综合信任值快速下降,而要通过友好交易累积信任值却很慢,降低了遭遇“振荡节点”攻击的概率。
另外,上述实施例通过为每次交易的信任值赋予一个权重,实现了离当前时间点越近的交易权重越大,离当前时间点越远的交易权重越小的目的,将近期交易的可信度提高,有利于掌握各个节点近期的交易信任度,进而有利于提高最佳交易节点的准确性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
当然,这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令还可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
此外,需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。