原始論文來源 : GeTrust: A Guarantee-Based Trust Model in Chord-Based P2P Networks
簡介
P2P網路的主要特色是去中心化、自治和匿名性。然而,由於使用者可能會有非預期的行為,P2P網路需要一套信任模型來建立節點之間的信任關係。現有的大多數信任模型都是以推薦為基礎,但卻面臨著緩慢收斂和複雜的信任分數計算導致網路壅塞的問題。因此,在本篇論文中,介紹了另一種以擔保為基礎的信任模型GeTrust,其適用於基於Chord的P2P網路。
在GeTrust的模型架構下,提供服務的service peer需要透過guarantee peer的擔保,並拿雙方的reputation進行質押,才有機會提供服務給有服務需求的request peer。為了強化GeTrust的可用性和避免惡意行為,GeTrust設計了激勵機制和採用匿名的reputation管理機制。模擬結果顯示,GeTrust在提高成功交易率、抵抗複雜攻擊、減少網路壅塞和降低計算複雜度方面是有效和高效的。
相關定義
這邊主要說明在理解GeTrust架構時,需要先知道的一些定義。
Service Peer & Service Reputation
- Service Peer
- 在交易中提供服務的節點。
- Service Reputation
- Service Peer節點的聲譽,數值大小代表服務的可信度。
- Service Peer剛進入網路時,設定初始數值為0.5,合法數值則介於[0,1]。
- 當Service Reputation落在(0.5, 1],則Service Peer可以提供擔保成為Guarantee Peer。
- 每次提供服務都需要質押部分的Reputation,所以不可能都是由特定Service Peer提供服務。
Guarantee Peer & Guarantee Reputation
- Guarantee Peer
- 在交易中替Service Peer擔保。
- Guarantee Reputation
- Guarantee Peer的聲譽,數值大小代表擔保的可信度。
- 每次提供擔保都需要質押部分的Reputation,所以不可能都是由特定Guarantee Peer提供擔保。
每個Service Peer都需要有至少一個Guarantee Peer的擔保,並一起對所提供的服務負責(這邊說的負責指的是提供服務和擔保都需要拿出一定的Reputation進行質押)。
Archive peer
- Archive Peer
- 管理所負責的Service Peer、Guarantee Peer的Reputation。
- 管理所負責的Service Peer、Guarantee Peer與Request Peer的交易紀錄。
- 可以根據Request Peer給予的回饋(feedback)調整Service Peer、Guarantee Peer的Reputation。
網路中的每個Peer都有機會變成Archive Peer。
Request Peer
- Request Peer
- 在交易中向Service Peer要求服務。
- 交易後,給予管理參與這次交易的Service Peer和Guarantee Peer的Archive Peer回饋(feedback)。
一個節點可以同時是Request、Service和Guarantee Peer。
Direct Trust
- Direct Trust
- Request Peer在要求服務時,會對參與交易的Service Peer和Guarantee Peer進行trust evaluation,而Request Peer可直接根據過去的交易紀錄進行trust evaluation,不必重新做各種計算,這種評估方式稱為Direct Trust,且越近期的交易,在做Direct Trust時的影響越大。
如果Request Peer沒有過去的交易紀錄,則還是需要做各種計算來評估是否由Service Peer提供服務。
GeTrust運作流程
GeTrust的運作牽涉到很多公式的計算。為了輕鬆且快速的理解GeTrust的運作,以下是簡略的運作流程說明。詳細的流程請參見原始論文。
GeTrust的運作流程 : 建立擔保關係 -> 建立服務關係 -> 計算聲譽。
建立擔保關係
-
Service Peer需要確認有足夠的擔保可以提供服務
Service Peer會有兩個紀錄替它擔保的Guarantee Peers的清單,分別是備援擔保清單(BGL)和目前擔保清單(CGL),當Service Peer要提供新的服務,根據服務的交易量,Service Peer需要質押一定比例的Service Reputation。除此之外,它還需要檢查自己的備援擔保清單(BGL)裡面的Guarantee Peers剩下的Guarantee Reputation的總和與質押的Service Reputation的差值是否大於0,小於0則代表Reputation總和不夠,Service Peer需要到網路中找更多的Guarantee Peers,找不到足夠的Guarantee Peers,Service Peer就需要等待。
BGL裡的Guarantee Peers的剩餘Reputation總和必須大於Service Peer質押的Service Reputation,差值的計算由Service Peer的Archive Peer負責
-
Guarantee Peer需要評估Service Peer是否值得被擔保
當收到來自Service Peer的擔保請求,Guarantee Peer的Archive Peer會先確認Service Peer不在它的黑名單裡面,若在黑名單裡面,則直接拒絕提供擔保,反之則進入後續的評估。根據過去Guarantee Peer為Service Peer提供擔保的紀錄和Service Peer目前的Service Reputation的數值,Guarantee Peer的Archive Peer可以算出對Service Peer的信任度,若計算出的信任度大於0,則Guarantee Peer的Archive Peer就會同意Guarantee Peer對Service Peer進行擔保。
但是剛加入網路的Service Peer的初始Service Reputation很低(0.5),也沒有被任何Guarantee Peer擔保的紀錄,所以很難有Guarantee Peer會為這類的Service Peer提供擔保。但在GeTrust裡面有一群特殊的Guarantee Peers稱為self-recommenders,它們會向Service Peer自我推薦,不必進行任何評估就願意為Service Peer提供擔保。
-
成功建立Service Peer與Guarantee Peer間的擔保關係
當成功建立Service Peer與Guarantee Peer間的擔保關係,Service Peer會把Guarantee Peer的資訊,添加到先前說的兩個清單CGL和BGL裡面,之後只需要在提供服務的時候先確認這兩個清單的資訊,因此相較recommendation-based的信任模型,GeTrust可以大量減少運算與訊息的複雜度。
建立服務關係
-
Service Peer需要評估是否回應Request Peer的服務請求
當收到Request Peer的服務請求,Service Peer需要評估是否回應服務請求。這個評估是根據Request Peer的Service Reputation和Guarantee Reputation依權重算出的總和(前面有說過,一個節點可以同時是Request、Service和Guarantee Peer),再和目前Service Peer剩下的Service Reputation相減的差值來決定,當差值的絕對值小於Service Peer設定的閾值,則Service Peer會願意向Request Peer提供服務。
我們可以歸納出以下原則,擁有high reputation的service peer只會接受
擁有high reputation的request peer的request -
Request Peer需要評估向哪個Service Peer提出服務請求
Request Peer會根據Service Peer過去的成功交易率和Service Peer目前的Service Reputation,以及替Service Peer提供擔保的Guarantee Peer們的平均Guarantee Reputation,來評估要向哪個Service Peer提出服務請求。
Request Peer希望得到最可靠的服務,並嘗試挑出最好的Service Peer,當然Service Peer要不要接受就又是另外一回事了
-
成功建立Service Peer與Request Peer間的服務關係
當成功建立Service Peer與Request Peer間的服務關係,即表示被Request Peer挑出的Service Peer願意回應來自Request Peer的服務請求。
計算聲譽
當交易結束,陸續會發生以下幾件事 :
-
Request Peer會提供參與交易的Service Peer和Guarantee Peer各自的Archive Peers回饋(feedback),可以想成對服務的滿意度評分,但Archive Peers要怎麼知道是不是惡意的評分呢? Archive Peers會計算Request Peer過去的平均評分和評分的變異數來認定這是不是惡意評分,並決定是否接受該滿意度評分。不過就算是不被接受的滿意度評分,還是會被Archive Peers記錄起來,但會被排除在之後過去的平均評分和評分的變異數的計算外。
-
交易結束並收到Request Peer的回饋後,Service Peer和Guarantee Peer各自的Archive Peers會根據回饋更新Service Reputation和Guarantee Reputation,Reputation的調整會因為回饋的類型,而有不同的計算方式,以下簡單說明。
- 正向回饋
- 除了拿回原本質押的Reputation,還可根據交易成功率拿到額外的Reputation獎賞
- 負向回饋
- 拿不回原本質押的Reputation (剩餘Reputation減少)
- 零回饋
- 拿回原本質押的Reputation,不額外調整Reputation
- 正向回饋
當確立與Guarantee Peer的擔保關係,Service Peer就可以開始在網路中提供服務,而當Request Peer的服務請求被同意,交易就可以開始。等待交易完成,Archive Peer就根據Request Peer的回饋調整Reputation,並結束這次的交易,這就是GeTrust基本的運作流程。
GeTrust的特點
- 為受社會信賴關係啟發所建立的以擔保關係為基礎的信賴模型。
- 提出Reputation質押和獎勵機制鼓勵Peer提供有效服務。
- 提出匿名Reputation管理機制,Peer無法得知自己的Reputation由誰管理。
- 提出Guarantee Peer的擔保機制,取代推薦信任模型取得Gobal Trust的繁複過程。
- 提出Peer的回饋機制,使得惡意Peer受到Reputation懲罰,更不易加入交易中。