Re: Some ideas on Freenet architecture

Matthew John Toseland <[email protected]> Tue, 12 Sep 2017 21:20:53 +0100
Newsgroups gmane.network.freenet.devel
Message-ID <[email protected]>
On 11/09/17 22:48, Arne Babenhauserheide wrote:
> 
> Matthew John Toseland <[email protected]> writes:
>> Applied to spam, for example, we could justify banning somebody by
>> showing some of his messages.
>>
>> Does it still allow for spam amplification? Probably, if we immediately
>> propagate inserts to everywhere. But maybe we can resolve the fight
>> within a few small random parts of the network. And the fact that you
>> can only vote once per darknet connection on any given key severely
>> limits the mischief you can do... so maybe it's manageable even with
>> full propagation.
> 
> How would we avoid having to interact with all inserts?

Simple answer: we don't. We propagate every insert to everyone
listening, for a sufficiently popular key.

This is viable on a darknet, because we assume the attacker has a
limited number of edges.

Possibly better, more complex answer: Each insert is routed along a
fixed pseudo-random route. If there is a conflict, we make the newly
inserted data available within a limited range of where it ends up. If
the users/clients like the data, they reinsert it, and it propagates
further. Once there are enough inserts the winning data goes everywhere.
> 
>>> Because it's our only source of scarcity. The whole objective of this
>>> part of the proposal is to create spam-proof, adequately-scalable
>>> distributed keyword search. Or distributed data structures of whatever
>>> other kind, where we can maintain the structure in a collaborative
>>> manner, obtaining a consensus, without having to poll every outbox and
>>> every fork.
> 
> I agree that our darknet structure is our only real source of scarcity
> (but only in the immediate region: One malicious darknet peer can
> introduce an arbitrary number of additional distant peers).
> 
> But I’m wary of mixing the darknet structure too much with content. For
> scalable keyword search we could already use the WoT and merge
> information from identities — with efficient transfer, because the data
> will be widely cached.

I'm skeptical that this can work well:
1) It may or may not be possible to make it scale adequately.
2) It's hard to maintain efficient distributed data structures such as
search indexes.
> 
> What I’d be more interested in is to see whether we can use darknet
> connections with something like blinded tokens to allow introducing WoT
> IDs without CAPTCHAs while keeping the WoT IDs separate from the darknet
> structure. I’d like to be able to offer a friend who installs Freenet
> something which allows him or her to introduce a few WoT IDs.

Exactly. Even if WoT works, it depends on some external source of
scarcity. So we need some way to use darknet scarcity for introductions
(to prevent DoS/spam), without giving away too much information. But as
far as I remember there hasn't been an implementible scarce keys
proposal, just a lot of hand waving. If you have one then by all means
make it.

The above is a slightly different approach, which may have some
advantages for particular applications. But we need *something* in this
approximate area.
> 
> Best wishes,
> Arne
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEc27pBqYIRqYrFuFIDtgl+2jq2pEFAlm4QasACgkQDtgl+2jq
2pGKzRAAkefWp0f0lP7OTpVvWX9jSDVe+zxaxihTLVnC57hwLLNa63rW/wC+n/kT
7o2+ubs7Klw1LkhbYJ0aLOgH27nyg7+tEjNubfvr8aarH74852EbMbEFLg4Nux8l
swawF39oo/czm2vpouilGJ6K8qBpiSRS+xgxjyOXBZc9wBnqSoP4rSg0OoBvlkor
pbo2vBpLCTfiNSlJ+D0wCWVwcOCtm5GmkpVLTw/mcg7jF3jM06Qq1hEbcOfFWDRI
nE5tdj7vEPj6LEnNv2ukMmX9X6Ze3/Q9zUnv6CYigsmmMOfD3xEwM/S4E+K//t+D
3gj3n5nrN6Idl32LiL8dUyMwl998dHl49w1zx9uZ0iH+Wx5NCrda4Ja21QOO/fch
cWSAd1VeQ509qmmwAKJGQi0V3r6geRg3MHBgDoxOf54YoPUUubNuPpXbZKeyYsMs
l2umlM3YTqiE1bk7Bl4uWGh2hbOlXvh0YMCjwy+uAOqKVP0eexZiFOxLbxs1/rhT
x8xgJkjjiSfLQq3qY3UoltMOQUItzuJ8/XBpapKZytjl8txE3012wg3nDZ4PX8in
UZFM1uDvnrIxV2wp9Mwk5Ev/gLal1GgLGx3k8axe+tYU4M3heuA8gzpZkKDsCXrW
Bev9MEADptPMnAYm78c7KMDRhOVhvNb+zMsiAy7ECiYleA+Smh8=
=toJe
-----END PGP SIGNATURE-----