← Back to team overview

p2psp team mailing list archive

Re: Prevention of pollution attacks (GSoC)

 

Hello!,

Here is Python script for computing average number of poisoned chunks in
the network:
http://pastie.org/private/wu1aoi7fnfazwedli88q
It has 3 params, you can use it like: python expected.py -n 9 -t 1 -a 1 (*n*
is team size without splitter, *a* is num of attackers and *t* is num of
trusted respectively)

I performed first tests on team size 9:
a=1, t=1:
expected: 4.5
simulation result : 4.591
a=1, t=2
expected: 3.0
simulation result: 3.006
a=1, t=3
expected: 2.25
simulation result: 2.26
a=2, t=1
expected: 8.5
simulation result: 8.433

I will publish the more detail results later, but first tests is very
promising!


2015-04-01 10:15 GMT+05:00 Ilshat Shakirov <im.shakirov@xxxxxxxxx>:

> For me your reasonings sound fine. Good job!
>>
> thanks!
>
>> Could be:
>>
>> \sum_{j=1}^{A} E(n-j)
>>
>> where E(x) = your formula (where n=x) and A = number of attackers?
>>
> Thanks again! To be honest, I thought the same variant 20 minutes later I
> sent the previous message :D
> So the final variant will be
>
>
> f(n,T) = \sum_{i=1}^{n-T}i*\frac{\binom{n-i-1}{T-1}}{\binom{n-1}{T}}
>
>
> g(n,T,A) = \sum_{i = 1}^{A}f(n-i+1, T)
>
>
> Where g(n,T,A) computes the expected value of poisoned chunks in the team
> with T trusted peers and A attackers. Of course T + A <= n
>
> Thanks again. I will perform tests asap =)
>
>
>
>
> 2015-04-01 3:31 GMT+06:00 Vicente Gonzalez <
> vicente.gonzalez.ruiz@xxxxxxxxx>:
>
>>
>>
>> On Tue, Mar 31, 2015 at 8:29 PM Ilshat Shakirov <im.shakirov@xxxxxxxxx>
>> wrote:
>>
>>> Hello!,
>>>
>>> Thanks for your feedback =)
>>>
>>
>> You're welcome :-)
>>
>>
>>>
>>> I couldnt generalize my formula for different values of trusted peers
>>> and attackers. But I generalized it for different number of trusted peers
>>> in the team.
>>> Here it is:
>>>
>>> ​where n is size of the team without splitter and T is number of trusted
>>> peers.
>>> The main idea is that the attacker will be detected when he will send
>>> poisoned chunk to trusted peer. The time when he will send poisoned chunk
>>> to trusted peer depends on position of trusted peer in his peer list.
>>> So the denominator of fraction is just all the possible combinations of
>>> trusted peers in peer list.
>>> And the numerator is all possible combinations of T-1 trusted peers in
>>> peer list. In more detail:
>>> The attacker is able to send *#i* poisoned chunks when he has trusted
>>> peer exactly in* #i* position in his peer list. In [1, #i) he can't
>>> have trusted peers. So we have T-1 peers and we should place them in
>>> remaining positions ((#i, n-1)) of peer list.
>>>
>>
>> For me your reasonings sound fine. Good job!
>>
>> Tomorrow I will perform experiments on simulator in order to confirm that
>>> formula.
>>>
>>
>> OK.
>>
>>
>>> Now I don't know how to generalize the formula to different number of
>>> attackers, because we expel attacker after we detect him and team size
>>> become lower. I think I need help with that problem =)
>>> Thanks in advance for your feedback =)
>>>
>>
>> Could be:
>>
>> \sum_{j=1}^{A} E(n-j)
>>
>> where E(x) = your formula (where n=x) and A = number of attackers?
>>
>> (The idea is that the size of the team will be reduced by 1 each time a
>> attacker has been uncovered. So, the accumulated average number of poisoned
>> chunks should be the sum the expected number of poisoned chunks, for each
>> number of attackers).
>>
>> Hope this helps!
>>
>>
>>>
>>> ps Python impl is OK =)
>>>
>>
>> OK, thanks.
>>
>> Best,
>> Vi.
>>
>
>

GIF image

GIF image

GIF image


Follow ups

References