I'm just starting to read about Factom, so forgive me if I'm missing something obvious.
So far I understand the following, please correct me if I'm wrong (which I probably am) on any of these points:
- the top n servers are the network
- Those n servers can vote each other out of the network (via SFM)
- There's no penalty for posting false SFMs
As I understand these properties, there is no incentive for a server not to send SFMs for every other node in the network, every block. I can't directly gain by increasing my share of the return, but I also can't lose. If I create many identities and many servers, there is a chance, no matter how small, that I will eventually be elected as a majority of nodes if enough nodes get voted out. The counterbalance to this, as I understand it, is community review.
People who control factoids get to vote for "well behaved" servers, so they are unlikely to vote for a server which constantly SFMs every other server. Is that the only defence against this behaviour?
It seems like at its heart, the factom consensus model comes down to starting with a "trusted" group of servers, and all trust stems from there. If the majority of those nodes are malicious, they can control the network ad infinitum. That is true because factom servers have to accept voting transactions. So a majority of servers could collude and decide to reject any votes that change the balance of power.
I'm also thinking that if I can DOS a single node in the network, I can push it out of the federated servers list. If I have sufficient network power to do that, I can seed the network with 100 of my own nodes, and then DOS each node in turn until it gets excluded from the network (for a few hours). If I can get every node above me excluded within those few hours, I can now control the network. I guess I can't change people's votes here, but I could continually SFM the servers as they come back online, and keep them all out of the network indefinitely.
Hmm, seems like a few attack vectors, but I'm probably misunderstanding the protocol.