Open 4meta5 opened 4 years ago
I'm not opposed to experimentation, but think rough specifications are a laudable goal to scout where we're heading. Another dht called Pastry was partially proven correct in TLA https://hal.inria.fr/hal-00768812/file/paper.pdf
I think this is the route we should be taking, and leave Sybil-resistance to be a bridge to be crossed when necessary. Afaik there's no significant coupling with the rest of the system that would invalidate a specification for the rest.
s-kademlia proposes requiring that the hash of a node's public key should have a certain number of trailing (or leading) zeros. This is intended to make it difficult for nodes to generate many
NodeId
s and sybil attack the network, but, as discussed in the #3 and #7 , this isn't effective.A static puzzle might look like:
I've discussed what I don't like about this at length in the open pr(7); here are some of the main points
The proposed solution encourages hashing shared state that changes over time. This would require consensus, but that consensus need not be built on this DHT. If we treat the blockchain as primitive, then we can use it to limit
NodeId
generation -- it is possible to set rules on-chain to enforce a limited number of new members within a certain number of blocks. One method for issuing new membership could bias these decisions to existing members, see next comment (but this is not the only approach I have in mind)@troublescooter thoughts?