P2P环境下信任社区的形成模型研究
邢艳艳, 苏静
西安电子科技大学信息管理系 西安 710071
摘要

P2P社区是具有相似兴趣节点的集合,相似兴趣节点聚簇有助于提高资源共享和发现的效率。针对P2P网络中节点特性的差异,社区不一定都能够提供高资源共享率的问题,提出一种基于信任的自组织社区形成模型,从节点间信任的建立、信任值的存储、信任值的计算三个方面具体研究。随着节点间信息共享的频繁程度变化和节点间信任值的动态更新,P2P网络中能够呈现不同的社区结构。

关键词: P2P; 信任; 社区; 连接
Research on the Model of Community Formation Based on Trust in Peer-to-Peer Network
Xing Yanyan, Su Jing
Department of Information Management, Xidian University, Xi’an 710071, China
Abstract

P2P community is a set of nodes with similar interest, which can help to improve the efficiency of resource sharing and found. According to the characteristics of the different nodes in P2P network, community can not provide high resource sharing rate,a self-organized P2P community model is put forward based on trust. The main contribution of this paper is the trust establishment, trust value storage and trust value calculation. With the trust value changing and updating, P2P network can show different community structures.

Keyword: Peer-to-Peer; Trust; Community; Link
1 引 言

P2P网络中每个节点之间都有公平的机会同其他节点建立直接的链接关系进行信息共享。正是这种开放性、动态性和匿名性等特点,社区中可能会存在大量的恶意行为,比如“搭便车”、伪造、协同作弊、冒名行为等。如何将P2P网络中的恶意节点进行隔离,避免此类节点带来的安全隐患,找到可靠的节点进行信息共享是亟待解决的问题。社区作为P2P网络的一个特性,能够提高信息资源发现和共享的效率,但是P2P网络中的社区不一定都是高资源共享率的社区,因此在网络中利用节点的信任值来对节点进行过滤,选择信任值高的节点进行信息共享是一种可行的方法。

本文在已有研究的基础上提出了一种基于信任的社区形成模型,通过对节点信任值动态变化的研究,节点更加愿意选择信任值高的节点进行信息共享。随着节点间资源共享次数的不断增加,信任度高的节点聚集在一起,因此P2P网络能够呈现不同的社区结构。根据节点的信任值自发形成的P2P社区不仅能够解决信息过载的问题,而且能够充分挖掘节点间的相互关系,以实现更准确有效的信息共享。

2 相关研究

借鉴人类社会社区的概念,在P2P网络中虚拟社区有助于提高资源共享和发现的效率,节点可以通过更新与其他节点的连接来实现自组织的目的。节点以分布式的方式来更新同其他节点的连接关系,使网络中的节点表现为以社区的形式进行聚集。目前P2P社区形成机制可以分为两类:一类是把节点看作静态对象,根据一定标准对节点进行分组,主要是利用节点本身所提供的共享资源特性发现资源社区[ 1, 2, 3, 4],这种方法的主要思想是通过把自己的本地资源采用本体化描述或是资源向量表示,进行语义相似度聚簇形成社区;另一类是基于节点的自主性,依照一定策略,利用节点之间的交互历史自组织地构造社区[ 5, 6, 7, 8],这种方法的主要思想是通过捕获用户浏览历史或周期性挖掘搜索历史建立节点用户兴趣模型,在考虑用户隐私满足一定保密性要求下,对用户进行兴趣聚类。

基于节点兴趣或者资源相似度进行聚簇的节点没有考虑节点的实际服务能力,就是说即使一些节点具有相似的兴趣,也不一定都能够提供较高质量的资源。目前P2P社区中关于信任的问题已经涉及到资源的质量、下载速率以及节点的可信性问题。信任作为网络中节点的共同特征,本文将其应用到社区的形成机制过程中,利用信任来刻画节点提供服务的能力,可以根据节点间的交互关系来更新同其他节点的连接,从而可以使信任度高的节点提供更高质量的服务。

3 P2P社区的形成模型

社区形成是节点和资源在信息共享过程中进行自组织的过程,因此可以通过研究节点和边的关系来研究社区的形成模型。本文把节点的信任值作为节点间信息共享的标准,当两个节点需要进行信息共享时,节点发送查询请求消息,在消息的生存周期内收到能够提供资源的节点的反馈消息后,节点计算服务节点的信任值,如果服务节点的信任值小于请求节点所能接受的最小信任值,那么请求节点放弃与此服务节点的信息共享,而是选择信任值高的节点进行信息共享。随着信息共享次数的增加和节点间信任值的动态更新,节点更愿意跟信任值高的节点建立连接,从而形成不同的社区结构。由于信息共享次数的不断增加,节点的信任水平不停地发生动态变化,因此P2P社区形成机制涉及到节点间信任的建立、信任值的存储和信任值的计算等问题。

本文将P2P网络定义为一个有向图,通过有向图中节点间信任关系来研究P2P社区的形成机制。P2P社区中有两种节点:管理节点和普通节点。管理节点是一个社区中最可靠的、信任值最高的节点,管理节点通过计算和保存社区中普通节点的信任值,对普通节点进行管理。

3.1 社区形成过程

定义整个P2P网络为一个有向图Gi={Pi,Ei},Pi={pj|pj是P2P网络中的一个节点},Ei={(pj,pk)|pj 到pk的连接,pj,pk∈Pi},N(i)={J(i,j)∈Ei}为节点i的直接邻居节点集合,即节点i可将查询消息转发到的直接邻居节点。P2P网络中的连接是非对称的,代表了节点的资源查询消息的转发通道。P2P网络中有两种连接:连通性连接,就是网络中每个节点存在一部分连接,保证网络的连通性;社区连接,就是信任度比较高而且能够进行资源共享的节点之间的连接。网络中存在和请求匹配的节点,也存在和请求不匹配的节点,也可能存在恶意节点,采用随机游走[ 9]的方法寻找能够满足请求的节点,并进行连接更新,生成社区,P2P社区的形成过程如图1所示:

图1 P2P社区的形成过程

社区的形成步骤为:

(1)节点N向其邻居节点a1、b1、c1、d1、e1、f1、g1发出查询请求,TTL表示消息的生存时间。收到查询的节点首先检查自身是否有满足查询的结果,如果有,则直接返回查询命中节点的消息;如果没有,则沿覆盖网的边向邻居节点转发,邻居节点收到查询后进行同样的处理,以此类推。

(2)在消息的生存周期内发现节点a3、b2、c2、d1、f1可以提供节点N所需要的资源,那么节点a3、b2、c2、d1、f1各自向节点N发送一个应答消息。

(3)节点N计算节点a3、b2、c2、d1、f1的信任值,发现节点c2和f1的信任值小于节点N所能接受的最小信任值,那么节点N放弃与节点c2和f1进行信息共享,选择节点a3、b2、d1进行信息共享,信息共享结束后修改同节点a3、b2、d1的连接,a3、b2、d1加入N所在的社区,同时修改与节点c2和f1的连接为连通性连接。

(4)经过多次信息交互之后,P2P网络中信任度高的节点聚集到一起,形成社区。

3.2 节点间信任的建立

节点间的信任是伴随资源共享的过程而建立的。节点用户发起请求并发送给网络中的其他节点。节点收到其他用户发送的请求后,检查自身的直接信任值库,确认是否与请求节点有过知识共享的历史。如果有知识共享的历史,那么将查询请求与自身的资源进行相似度匹配;如果没有知识共享的历史,则通过自身的推荐信任值库来确定请求节点的信任值,然后与自身的资源进行相似度匹配。匹配成功后将检索结果发送给请求节点,请求节点对查询结果进行评价,并通过评价结果进行信任值的计算。最后请求节点对提供资源节点进行直接信任值和推荐信任值计算,并将计算结果存储到直接信任值和推荐信任值库,同时将推荐信任值发送到其他节点进行信任值更新,整个过程如图2所示:

图2 P2P网络中信任的建立过程

下面对各功能模块和相关数据库进行描述:

(1)请求处理模块:对用户输入的请求进行处理,比如检查拼写错误等。

(2)资源搜索模块:根据网络结构,提出搜索算法。

(3)相似度匹配模块:当节点收到其他节点发出的请求时,根据各种匹配算法进行检索目标与节点资源的匹配处理。

(4)资源输出模块:当提问节点找到满足查询需求的目的节点时,直接连接以获取资源。

(5)用户评价模块:节点用户收到检索结果后,可评价查询结果与提问的相关度,并调整提问,再次提交查询请求。

(6)信任值计算模块:两个节点完成知识共享后,节点根据共享的结果,计算提供服务的节点的直接信任值,并且对提供资源的节点进行评价,产生对提供资源的节点的推荐信任。

①直接信任值库:在P2P网络中,节点之间不停地进行信息共享,共享结束之后每个节点都有一个对其他节点的主观评价,节点i和节点j进行信息共享之后,节点i对节点j的直接评价就存储在此库中。

②推荐信任值库:节点i和节点j进行信息共享结束后,节点i除了对节点j有一个主观意念的评价,还会产生对节点j的一个推荐信任,这个推荐信任就是为P2P网络中的其他节点提供对节点j的信任参考。

(7)信任值存储和更新模块:节点将计算获得的直接信任值存储到直接信任值库中,将对提供资源节点的推荐信任值存储到推荐信任值库中,并将推荐信任值发送到其他节点进行信任值更新。

节点间的信任建立后,每个节点都有两个信任值库,直接信任值库和推荐信任值库,两个库中分别存储节点对其他节点的直接信任值和推荐信任值,但是这两个信任值库的存储都是暂时的,节点的信任值由社区中的管理节点进行存储和更新。

3.3 信任值的存储

每个节点需要不停地对直接信任值、推荐信任值进行存储更新,这两部分信任值如果由节点自行管理和维护不仅影响信任值的准确性和真实性,同时也降低节点间数据传输的效率。为了提高全局信任值的安全性,方便信任值的存储和查询,本文利用Chord[ 10]机制为存储机制,通过分布式Hash表(DHT)[ 11, 12]来放置节点的信任值,每个节点都由多个信任管理节点进行管理,管理节点的分配由 P2P网络的分布式哈希表Chord来计算决定。

每个节点都有一个物理地址ID,对节点i的物理地址进行Hash计算,得到节点i在Chord环形逻辑空间中的逻辑地址IDi,它是节点i的全局唯一标识,是一个m比特的二进制数,对IDi进行Hash计算得到键值key。如果IDi是某键值最近的后继节点标识,则节点i为k所对应节点的管理节点。基于 Chord,网络中每个节点i均被指派了多个管理节点,而同时i又是一个或若干个其他节点的管理节点。i的管理节点具有以下几项功能:

(1)存储节点i的直接信任评价及对i的推荐信任值;

(2)验证所存储数据的合理性;

(3)向其他节点提交i的推荐信任值以及其他节点对i的直接信任评价;

(4)计算它所管理的节点的信任值。

3.4 节点信任值的计算

信任值的计算是社区形成过程中比较重要的部分,节点的信任值是否准确,影响到知识共享的成功或失败。在社区中,节点之间存在着由知识共享带来的信任关系,节点之间进行知识共享之前需要进行信任评价,社区为成员节点提供评价和信息反馈的机会,节点可以在社区范围内进行信息共享。信任评价可以通过直接信任DT和推荐信任RT获得,直接信任是通过两个节点之间直接交易历史的经验获得,推荐信任是通过其他节点的反馈信息获得,这里采用基于权重[ 13]的方法来计算直接信任值和推荐信任值。

(1)直接信任值计算

直接信任是节点A依据自身与节点B之间的交易记录对目标节点B未来行为的主观期望,本文主要从交互的满意程度、交互的次数、信任衰减方面考虑直接信任值计算。

①交互的满意程度,节点A与节点B进行交易后,根据B提供的服务质量或行为给出不同的评价,-1表示负面评价,0表示中性评价,1表示正面评价,这里用T (B)表示节点交易的满意程度,i表示交易的次数,即T (B) ={1,0,-1}。

②交互次数权重,只靠交互的满意程度来决定信任值有很大的缺陷,比如一些节点通过多次小金额的成功交易来提高自己的信任度,然后进行一次大金额的欺骗交易,这样一直重复操作,信任度仍然很高,是不合理的。节点A与B进行第i次交互的权重用W (B)表示,这样,节点即使进行多次金额很小的交易,节点的信任度也不会有很大的提高,提高了信任度评价的合理性。

③信任衰减权重,节点B的近期行为更能反映节点B的信任度,随着交易的进行,越早完成的交易在计算信任值时对其直接信任值和权重应该有较少的影响,这里用交易的间隔次数作为衰减因子,节点A与B进行第i次交易,之前第j(j<i)次交易所产生的信任值和权重应该缩减,缩减率用δ表示,则第N次交易后其信任值计算如下所示:

D (B) =

其中, δN-i表示第N(i<N)次交易的缩减率。

(2)推荐信任值的计算

当一个节点与另一个节点没有直接交互的历史记录时,必须依赖一个或多个第三方节点推荐形成的推荐信任来评定目标节点的信任度。节点A与B进行交易之前,需要计算其他节点对节点B的推荐信任,节点A会向与自己有信任关系的节点广播信任查询消息,再对反馈的信息进行合成得到其他节点对节点B的推荐信任。推荐信任值的计算如下:

RTA(B)=

其中,C∈Dset(A)为所有与节点A有信任关系的集合,TA(C)为节点A对推荐节点C的信任值,在推荐信任计算中,与节点A间信任值越大的节点推荐的权重也越大,权重为RWTC(B),可以有效减少合伙欺骗节点提供的虚假反馈信息;同时,考虑推荐节点与目标节点的交易总额,保证其推荐的信息更可靠。

(3)全局信任值的计算

节点的全局信任包括一个节点对另一个节点的直接信任和从其他节点获得的推荐信任。节点A得到对节点B的直接信任值和推荐信任值后,再对这两个信任值进行合成,得到全局信任值,目标节点的全局信任值计算[ 14]如下:

Tobject= lD (B) + (1-l)RTA(B),0 < l < 1

其中,Tobject是目标节点的全局信任值, l 的取值与交易的次数有关,交易的次数越多则l的取值越大。当请求节点计算出服务节点的信任值后与预设的交易可靠性最低阈值Tmin比较,满足Tobject>Tmin的节点生成一个信任值列表,最后请求节点选择信任值列表中信任值最大的节点作为服务节点进行知识共享。

4 实例分析
4.1 实例研究过程

本实例选取某大学的P2P资源共享BT网站中50个节点作为实验节点,利用Java编程将其处理为0-1结构的矩阵,利用整体网分析工具——UCINET软件将0-1格式的矩阵转换成UCINET格式的数据,然后利用UCINET自带的做图工具NetDraw将P2P网络和网络中的社区结构形态呈现出来,其中P2P网络的结构如图3所示:

图3 P2P网络中社区结构

为了便于表达,选取50个节点中12个节点的信任值变化过程作为研究对象,只对两次信息交互进行统计,假设这12个节点的初始信任值如表1所示:

表1 网络中节点的初始信任值

(1)第一次资源共享过程

节点间都是连通的,第一次资源共享过程中节点1发起查询请求,分别向邻居节点2、3、4发送消息,在消息的生存周期内,收到节点4、5、6的反馈消息,节点1通过计算发现,节点5信任值小于节点1所能接受的最小信任值Tmin=10,所以节点1放弃与节点5进行信息交互,当节点1从节点4和6下载资源后,发现节点4提供的是虚假资源,因此把节点4看作不诚实的节点,最后能提供信息并且信任值比较高的节点是节点6,那么节点1建立与节点6的直接连接。资源共享结束后,根据信任值计算公式,节点1修改其他节点的信任值,更新后的信任值如表2所示:

表2 第一次资源共享过程更新后的信任值列表

(2)第二次资源共享过程

节点3向其邻居节点1、5、6、7发送查询请求,在消息的生存周期内,节点10和节点11返回反馈消息,但是已知节点3同节点10和11没有资源共享的历史,因此节点3参考其他节点对节点10和节点11的推荐信任值,节点3在节点10和11下载资源后,发现节点10提供的资源不准确,因此节点3对节点10的信任降低,与节点11资源共享成功以后,修改同节点11之间的连接,从而建立与节点11的直接连接,并对节点进行信任值更新。更新后的信任值如表3所示:

表3 第二次资源共享过程更新后的信任值列表
4.2 实例结果分析

多次信息交互结束后,社区中交互频率高的节点成为社区的管理节点,用形状大的节点表示,P2P网络中社区呈现结构如图4所示:

图4 引进信任后的P2P网络中的社区结构

图4清晰地展示了P2P网络中的社区结构形态,根据节点的信任值研究社区的形成模型在继承传统的社区形成模型的基础上还解决了一般社区形成模型没有解决的问题,主要有以下优越性:

(1)在基于信任的P2P社区形成过程中,引进信任机制,用信任值来筛选需要提供服务的节点,使得节点下载的资源更加可靠。

(2)在定义社区的时候对社区节点、节点间的连接,以及节点的信任值进行形式化表示。在信任值的计算过程中,考虑到节点的直接信任和其他节点的推荐信任。在直接信任计算中,考虑了节点交互的满意程度、节点交互的次数,以及节点信任值随时间的衰减程度,相比较其他的社区形成模型,使得节点的信任值更加准确。

(3)信任作为一个节点的特定属性,利用信任值来衡量一个节点的提供服务的质量,符合现实社会的规律。本方法通过对节点进行信任评价获得节点的信任值,解决了一般社区形成过程中初始信任值不易获得的问题。

(4)一般的社区形成模型,只是对P2P网络中的节点进行相似兴趣聚类,没有考虑恶意节点的行为,本文提出的社区形成机制通过利用节点的信任值对节点进行筛选,避免了恶意节点提供不可靠的服务,使社区提供服务的质量大为提高。

5 结 语

节点的信任值是伴随着节点间的资源共享而存在的,并且不断变化和更新。本文介绍了一种P2P社区的形成模型,详细论述了社区形成过程中节点间信任的建立、信任值的计算和信任值的存储问题。随着节点间信息共享次数的增加和节点间信任值的动态更新,P2P网络中节点之间的连接呈现不断变化趋势,最终服务能力强、信任度高的节点会聚集在一起,从而形成了网络中的社区结构。在研究过程中发现,通过节点的信任值来构建P2P社区是一种可行的方法,但是在构建过程中没有对恶意节点进行处理,使其仍然保留在网络中,所以未来研究中需要解决的一个问题就是如何对恶意节点进行激励,使其信任值增加,鼓励其加入社区,从而为其他节点提供可信的服务。

参考文献
[1] Wang Y, Vassileva J. Trust-based Community Formation in Peer-to-Peer File Sharing Networks[C]. In: Proceedings of the 2004 IEEE/WIC/ACM International Conference on WebIntelligence. 2005: 341-348. [本文引用:1]
[2] Mei H, Chang S. PP-COSE: A P2P Community Search Scheme[C]. In: Proceedings of the 4th International Conference on Computer and InformationTechnology (CIT’04). 2004: 416-423. [本文引用:1]
[3] Qureshi B, Min G, Kouvatsos D. A Framework for Building Trust Based Communities in P2P Mobile Social Networks[C]. In: Proceedings of the 10th IEEE International Conference on Computer and InformationTechnology(CIT2010). 2010: 567-574. [本文引用:1]
[4] 朱建东, 薛耀锋, 蒋丽丽. 基于P2P知识共享社区网络模型的研究[J]. 情报杂志, 2010, 29(6): 104-109.
(Zhu Jiand ong, Xue Yaofeng, Jiang Lili. The Research of Community Networks Model Based on P2P Knowledge-Sharing[J]. Journal of Intelligence, 2010, 29(6): 104-109. ) [本文引用:1] [CJCR: 0.951]
[5] Khambatti M, Dasgupta P, Ryu K D. A Role-based Trust Model for Peer-to-Peer Communities and Dynamic Coalitions[C]. In: Proceedings of the 2nd IEEE International Information Assurance Workshop. 2004: 141-154. [本文引用:1]
[6] Hai M, Tu Y. A P2P E-Commerce Model Based on Interest Community[C]. In: Proceedings of the 4th International Conference on Mangement of e-Commerce and e-Government. 2010: 362-365. [本文引用:1]
[7] Hossain M D, Kiringa I. Querying Communities of Interest in Peer Database Networks[C]. In: Proceedings of the 2005/2006 International Conference on Databases, Information Systems, and Peer-to-PeerComputing. 2007(4125): 227-234. [本文引用:1]
[8] Bai X, Vasconcelos W, Robertson D. OKBook: Peer-to-Peer Community Formation [C]. In: Proceedings of the 7th International Conference on The Semantic Web: Research and Applications - Volume Part II. 2010: 106-120. [本文引用:1]
[9] Das T, Nand i S, Ganguly N. Community Formation and Search in P2P: A Robust and Self-Adjusting Algorithm[C]. In: Proceedings of the 1st International Conference on Communication Systems and Networks. 2009: 1-8. [本文引用:1]
[10] Stoica I, Morris R, Karger D, et al. Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications[C]. In: Proceedings of the 2001 Conference on Applications, Technologies, Architectures and Protocols for Computer Communications. 2002: 149-160. [本文引用:1]
[11] 陈灿, 胡峰松, 王慧娟. P2P环境下改进的基于信誉的信任模型[J]. 计算机工程与设计, 2010, 31(5): 999-1002.
(Chen Can, Hu Fengsong, Wang Huijuan. Improved Reputation-based Trust Model in P2P Environments[J]. Computer Engineering and Design, 2010, 31(5): 999-1002. ) [本文引用:1] [CJCR: 0.789]
[12] 窦文, 王怀民, 贾焰, . 构造基于推荐的Peer-to-Peer环境下的Trust模型[J]. 软件学报, 2004, 15(4): 571-583.
(Dou Wen, Wang Huaimin, Jia Yan, et al. A Recommendation-based Peer-to-Peer Trust Model[J]. Journal of Software, 2004, 15(4): 571-583. ) [本文引用:1] [CJCR: 2.181]
[13] 王涛春, 罗永龙, 左开中, . P2P 网络中基于权重的动态信任模型[J]. 计算机应用研究, 2011, 28(1): 300-303.
(Wang Taochun, Luo Yonglong, Zuo Kaizhong, et al. Dynamic Trust Model Based on Trade Weight for P2P Network[J]. Application Research of Computers, 2011, 28(1): 300-303. ) [本文引用:1] [CJCR: 0.601]
[14] 董西广, 李艳. 对等网络中基于反馈的多维信任模型[J]. 计算机应用与软件, 2011, 28(7): 209-212.
(Dong Xiguang, LiYan. Feedback-based Multidimensional Trust Model in P2P Networks[J]. Computer Applications and Software, 2011, 28(7): 209-212. ) [本文引用:1] [CJCR: 0.515]