eigentrust (in japanese)
TRANSCRIPT
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
並列分散処理⼯学特論
2012-01-06#10 資料
...1 Intro
...2 EigenTrust
...3 Proposed Method
...4 Evaluations
1/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
論⽂紹介
The EigenTrust Algorithm for ReputationManagement in P2P Networks
Sepandar D. Kamvar, Mario T. Schlosser, and HectorGarcia-Molina
WWW2003 (ACM 1-58113-680-3/03/0005), 2003
2/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
1. Introduction
• P2Pでの悪意あるユーザによる「偽ファイル」の流通を防ぎたい
• ただし、簡単に「偽ファイル」のバリエーションが⽣成できるので、ファイルの同定ではなく「悪意あるピア」の同定が望
ましい
• 中央管理システムなしの、P2Pに向いたピアの信頼度決定メカニズムを提案
3/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
EigenTrustの考え⽅
• よいサイトに⾼い点 (評判)を付ける (local reputation)
ピア iによるピア jの評価 sij:
sij = sat(i, j)− unsat(i, j) (1)
sat(i, j) : 満⾜なダウンロード、unsat(i, j) : 不満⾜なダウンロード
4/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
EigenTrustの考え⽅
• よいサイトに⾼い点 (評判)を付ける (local reputation)ピア iによるピア jの評価 sij:
sij = sat(i, j)− unsat(i, j) (1)
sat(i, j) : 満⾜なダウンロード、unsat(i, j) : 不満⾜なダウンロード
4/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
評価値の正規化
• 評価値の正規化:
cij =max(sij, 0)∑jmax(sij, 0)
(2)
5/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
local valueの集約• より正確な評価のため、local reputationを集約する (※eBayなどの出品者の格付けと同じ)
• ⾃分が iとして、⾃分が知っているピア jによる「ピア kの評価」を集約:
tik =∑jcijcjk (3)
ここで cijはピア jの重みに相当。tikは 2段の集約に相当。
• 再帰的に繰り返すことで全ピアの評価を⽤いた globalな値を求める (すなわち t1k = t2k = · · · = tnk → tk ⇒ t⃗)∑
jcijcjk =
∑jcjkcij ⇒ CTc⃗i → (CT)Nc⃗i = t⃗
6/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
local valueの集約• より正確な評価のため、local reputationを集約する (※eBayなどの出品者の格付けと同じ)
• ⾃分が iとして、⾃分が知っているピア jによる「ピア kの評価」を集約:
tik =∑jcijcjk (3)
ここで cijはピア jの重みに相当。tikは 2段の集約に相当。• 再帰的に繰り返すことで全ピアの評価を⽤いた globalな値を求める (すなわち t1k = t2k = · · · = tnk → tk ⇒ t⃗)∑
jcijcjk =
∑jcjkcij ⇒ CTc⃗i → (CT)Nc⃗i = t⃗
6/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Algorithm 1:non-dist. EigenTrust
再帰的に繰り返して求める (EigenTrust):�1 t⃗(0) = e⃗ ;2 repeat3 t⃗(k+1) = CT⃗t(k) ;4 δ = ||t(k+1) − t(k)|| ;5 unt i l δ < ϵ ;
• この計算は不動点を持つので→有限回の繰り返しで収束• この計算を (例えば)集約サーバで実⾏すれば、各ピアのglobalな評判を決めることができる
7/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
問題点
• 集約サーバは使いたくない
• 悪意あるピアが共謀すると、globalな評判を操作できるのでは?
8/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
4.5 Practical Issues
A priori notions of trust: システムの設計者 (のピア)および初期から存在するユーザ (のピア)は信頼できるので、それらを Pとし、以下の pi:
pi ={
1/|P| if i ∈ P,0 otherwise
(4)
を使って、t⃗ = (CT)ne⃗を t⃗ = (CT)np⃗に置換える。
9/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Inactive Peers & Malicious CollectivesInactive Peers: もしピア iがまだ誰からもダウンロードしてない場合は以下を使う:
cij =
max(sij,0)∑jmax(sij,0) if∑jmax(sij, 0) ̸= 0;
pj otherwise(5)
Malicious Collectives: 悪意ある集団に対抗するため、信頼できるピアに重みを置く:
t⃗(k+1) = (1− α)CT⃗t(k) + αp (6)
10/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Inactive Peers & Malicious CollectivesInactive Peers: もしピア iがまだ誰からもダウンロードしてない場合は以下を使う:
cij =
max(sij,0)∑jmax(sij,0) if∑jmax(sij, 0) ̸= 0;
pj otherwise(5)
Malicious Collectives: 悪意ある集団に対抗するため、信頼できるピアに重みを置く:
t⃗(k+1) = (1− α)CT⃗t(k) + αp (6)
10/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Algorithm 2: Basic EigenTrust
以上の考えをまとめたもの:�1 t⃗(0) = p⃗ ;2 repeat3 t⃗(t+1) = CT⃗t(k) ;4 t⃗(t+1) = (1− α)⃗t(t+1) + αp⃗ ;5 δ = ||t(t+1) − t(t)|| ;6 unt i l δ < ϵ ;
11/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
4.6 Distributed EigenTrust
計算を各ピア iに分散させる:
t(k+1) = (1− α)(c1it(k)i + · · ·+ cnit
(k)n ) + αpi (7)
つまり、C全体は必要ない
12/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Algorithm 3: Distributed EigenTrust• Ai set of peers which have downloaded files frompeer i
• Bi set of peers from which from peer i hasdownloaded files�
1 Each peer i do2 Query a l l peers j ∈ Ai for t(0)j = pj ;3 repeat4 Compute t(k+1)
i = (1− α)(c1it(k)i + · · ·+ cnit
(k)n ) + αpi ;
5 Send cijt(k+1)i to a l l peers j ∈ Bi ;
6 Compute δ = ||t(t+1) − t(t)|| ;7 Wait for a l l peers j ∈ Ai to return cjit
(k+1)j ;
8 unt i l δ < ϵ ;9 end
13/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
5. Secure EigenTrust
⾃分で⾃分の評判を計算するのでは数値の操作ができてしまう
(複数の)管理ピアが代わりに計算
→DHTを利⽤
14/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
5. Secure EigenTrust
⾃分で⾃分の評判を計算するのでは数値の操作ができてしまう
(複数の)管理ピアが代わりに計算
→DHTを利⽤
14/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
5. Secure EigenTrust
⾃分で⾃分の評判を計算するのでは数値の操作ができてしまう
(複数の)管理ピアが代わりに計算
→DHTを利⽤
14/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Algorithm 4: Secure EigenTrust最終バージョン�
1 Each peer i do2 Submit local trust values c⃗i to a l l score managers at
position hm(posi),m = 1 · · ·M− 1 ;3 Collect local trust values c⃗d and sets of acquaintances
Bid of daughter peers d ∈ Di ;4 Submit daughter d’s local trust values cdj to score
managers hm(posd),m = 1 · · ·M− 1, ∀j ∈ Bid ;5 Collect acquaintances Aid of daughter peers ;6 foreach daughter peer d ∈ Di do7 Query a l l peers j ∈ Aid for cjdpj ;8 repeat9 Compute t(k+1)
d = (1− α)(c1dt(k)1 + c2dt
(k)2 · · ·+ cndt
(k)n ) + αpd ;
10 Send cdjt(k+1)d to a l l peers j ∈ Bid ;
11 Wait for a l l peers j ∈ Adi to return cjdt(k+1)j ;
12 unt i l ||t(k+1)d − t(k)d || < ϵ ;
13 end14 end
15/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 1: 収束の速度繰り返し回数はそれほど多くならない
16/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Simulation Settings
• 表 1を参照
• カテゴリ毎に⼈気のあるファイルを設定 (governed by aZipf distribution)
• ダウンロードするピアの選び⽅• 最良選択• ルーレット選択
• 4つの攻撃シナリオ (後述)
17/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 3:最もよいピアを選択する場合
18/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 4:ルーレット選択する場合→以降の実験で使⽤
19/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
4 thread model
シナリオ A 悪意あるピアは sati,jが低いピア (悪意あるピア)を逆に⾼く評価する:si,j = unstat(i, j)− sat(i, j)
シナリオ B 悪意あるピア同⼠は最初からお互いを知っている
シナリオ C 悪意あるピアは確率的に悪意がないようにふるまう
シナリオ D 悪意あるピアの⼀部は (⾼い評価を得るため)完全に正直にふるまう。ただし悪意あるピアを⾼く評価
する
20/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 5:シナリオ A⾮常に低く抑えられる
21/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 6:シナリオ Bほぼシナリオ Aと同じ
22/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 7:シナリオ C確率的ふるまい
23/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 8:シナリオ Cアップロードの⽐率を⾒ると偽ファイルのダウンロード数は増えてない
24/25
.Intro
. . . . . . . .EigenTrust
. . . . .Proposed Method
. . . . . . . . .Evaluations
Fig 9:シナリオ D分業してもそれほど増えない。未使⽤時よりも常によい
25/25