Anonymous Indexing Problem: Difference between revisions
Adamcolton (talk | contribs) Created page with "If Alice is looking for a resource that Bob can provide, how can Bob know that Alice needs it and provide it without either revealing their IP. Challenges * DDOS * Overhead ..." |
Adamcolton (talk | contribs) No edit summary |
||
| Line 20: | Line 20: | ||
Strictly speaking, this doesn't prevent DDOS, but it distributes it evenly over the network and forces Eve to do a lot more work per request. | Strictly speaking, this doesn't prevent DDOS, but it distributes it evenly over the network and forces Eve to do a lot more work per request. | ||
However, Eve could inject those requests as a [SwitchBoard] node. I'm a little less concerned about this because a user would need to modify the code (not just script kiddy to repeat send), it exposes the malicious node ([SwitchBoard] nodes are IP exposed) and they could potentially be tracked. | However, Eve could inject those requests as a [[SwitchBoard]] node. I'm a little less concerned about this because a user would need to modify the code (not just script kiddy to repeat send), it exposes the malicious node ([[SwitchBoard]] nodes are IP exposed) and they could potentially be tracked. | ||
===== Rate Limit ===== | ===== Rate Limit ===== | ||
| Line 31: | Line 31: | ||
== The Response == | == The Response == | ||
This part is actually pretty easy. If Bob get the request and a return route, he can simply respond. But it can be even easier. If Bob only gets the request and not a return route, he can post a return route in [SwitchBoard] which Alice can check for a few seconds after the request has gone out. | This part is actually pretty easy. If Bob get the request and a return route, he can simply respond. But it can be even easier. If Bob only gets the request and not a return route, he can post a return route in [[SwitchBoard]] which Alice can check for a few seconds after the request has gone out. | ||
[[Category:Waxnet]] | [[Category:Waxnet]] | ||
Revision as of 21:09, 3 May 2016
If Alice is looking for a resource that Bob can provide, how can Bob know that Alice needs it and provide it without either revealing their IP.
Challenges
- DDOS
- Overhead
The Request
There are two ways for Alice to make the request
- Anonymously broadcast that she is looking for the resource
- Check a common index
Broadcasting
If Alice broadcasts the request, it must reach a large number of recipients before any of them can respond. If only a few people see the request, we can narrow down the responder to that set, compromising Bobs anonymity. But this means that sending a single message into the network results in high replication. So Eve can send many requests into the network to maliciously flood the network at high leverage.
DDOS Prevention
Specific Entry
Requests propagate through [SwitchBoard], each node queueing up and passing along requests about once a second. If each node maintains 8 'neighbors', that would propagate the request to 16M nodes in 8 seconds.
Strictly speaking, this doesn't prevent DDOS, but it distributes it evenly over the network and forces Eve to do a lot more work per request.
However, Eve could inject those requests as a SwitchBoard node. I'm a little less concerned about this because a user would need to modify the code (not just script kiddy to repeat send), it exposes the malicious node (SwitchBoard nodes are IP exposed) and they could potentially be tracked.
Rate Limit
The requests are anonymous, so we can't actually rate limit a user. But we could do something like BitCoin and require a hash puzzle. The goal here is to make the work required to post a request equal to the the total work done by the network.
A more interesting, but vastly more complex idea would be to have a sort of network-maintenance queue holding things like EigenTrust problems. In order to post, the requester needs to do some amount of work.
Indexing
I cannot even begin to find a way to make indexing work. Resource aren't necessarily static, so it's not actually possible to index them. If it were, even a short form list could be huge. But that's not possible because each resource needs at least one return route to make the request. So, this just does not seem feasible and I'm going to stop thinking about it.
The Response
This part is actually pretty easy. If Bob get the request and a return route, he can simply respond. But it can be even easier. If Bob only gets the request and not a return route, he can post a return route in SwitchBoard which Alice can check for a few seconds after the request has gone out.