A fundamental component of the FPC protocol is the capability to query nodes at random, although potentially with reputation-weight probability. This property increases the resilience against eclipse attacks and splits in the network, since the adversary cannot predict the quorum that the honest node selects.
However, the FPC approach brings also new challenges: due to the randomness in the queries (and also due to a random threshold) the protocol may require many rounds in order to finalize an opinion and, therefore, could require a larger message overhead. Random queries may allow an adversary to overquery nodes. Also a reputation system would naturally lead to overquery for nodes with high reputation. Finally opinion exchange as well as message gossip are asynchronous processes which leads to some challenges. These topics are listed below.
We want to assess the communication overhead for FPC, since this may pose a bottle neck and decide for which applications it can be employed. Initial calculations show that the message overhead for FPC voting on a large proportion of the txs is less than the gossip overhead for txs (if compression is utilized) as the following spreadsheet shows:
Open questions: How does this compare to CA? Given the constraints in the spreadsheet, for what voting objects is FPC a viable option?
Gossip of opinion
In a reputation based system (e.g. mana) nodes are selected with a probability proportional to their reputation. Since nodes with a high reputation may be querried excessively, it may be a viable option to allow the “richest” nodes to gossip their opinion instead of being queried.
Open questions: When is it reasonable to gossip an opinion? How can this be rate-controlled? Should there be a randomized middle range, where sometimes some of the nodes can broadcast and what is the advantage of this?
Due to asynchronicity, many nodes may not have seen a particular tx or are aware about a conflict in time and would therefore not have an opinion about it nor want to vote on it. Parts of the nodes would, therefore, effectively be unable to participate in a vote. This would give an adversary an advantage about the decision on a tx for nodes that see the tx early, since the effective adversary proportion is increased. (The adversary can vote 1, where honest nodes would vote 0). Nodes may also receive less responses than k in this case.
Open questions: When queried about an unfamiliar conflict, what should a node reply? Should it reply at all? What are the consequences? Can we wait for C_1 since solidification and reply 0 if its less than C_2 ? If during a voting round most of the votes are “I don’t know this tx”, should we kill the round? What is the threshold and why? Should there be a minimum number of responses to accept a round and would this be attackable?