Great post tfa. Glad to see other approaches are in line with each other.
I think it’s harder than this. According to the relocation algorithm it requires two nodes directly next to each other
the target is computed from the two closest nodes and the joining node’s current name
So the difficulty is based on the number of vaults rather than the number of groups (ie about 15 times harder).
One of the main lessons I took from fiddling around with the calculator is that increasing group size is very effective increasing the difficulty of attack. So is increasing the amount of churn.
Things like increasing the chance of success or even the rate of attack are not as effective.
I think improvements to security from node ageing will make attacks very difficult.
I also think offline attacks are difficult (ie precomputing a key that hashes to a specific relocation point) because they’re prone to being interrupted. The larger the network the higher the chance of an interruption. But offline attacks do seem quite feasible… but also unavoidable since the relocation mechanism must be non-predictable but still verifiable.
I think you will appreciate this code comment about quorum: github.com/maidsafe/routing/src/lib.rs
// Quorum is defined as having strictly greater than `QUORUM_NUMERATOR / QUORUM_DENOMINATOR`
// agreement; using only integer arithmetic a quorum can be checked with
// `votes * QUORUM_DENOMINATOR > voters * QUORUM_NUMERATOR`.
pub const QUORUM_NUMERATOR: usize = 1;
pub const QUORUM_DENOMINATOR: usize = 2;
I love the way the network doesn’t ‘know about time’. Using churn events as a form of timing is brilliant. It’s a really underappreciated aspect of the network imo.
I couldn’t find any discussion about this simulation, can anyone help with this? I’d like to add more info to the ‘More Reading’ section of the page than just the repo.
I also wonder this but I think if datachains are used effectively it should pick up on this ‘incorrect’ behaviour of never relocating.