We study the question of "fairly" ordering transactions in a replicated state machine. Each replica receives transactions over a network from clients in a possibly different order, and the system aggregates these orderings into a single, total order. This problem is akin to the classic problem of social choice theory, where rankings on candidates are aggregated into an election result. Three features make this problem novel and distinct. First, the number of transactions is unbounded, so an ordering must be defined over a countably infinite set. Second, decisions must be made quickly and with only partial information. Finally, some faulty replicas might alter reported observations; their influence should be bounded. We study the Ranked Pairs algorithm. Analysis of how missing information propagates through the algorithm enables our streaming version to know when it can output a transaction. Manipulation of a tiebreaking rule gives a protocol that (in a synchronous network) always outputs a transaction after a bounded time. Prior work proposes a "$\gamma$-batch-order-fairness" property on an output ordering, which divides the output into contiguous batches. If a $\gamma$ fraction of replicas receive a transaction $tx$ before another transaction $tx^\prime$, then $tx^\prime$ cannot be in an earlier batch than $tx$. We strengthen this definition to require that batches have minimal size, which must be handled carefully in the presence of faulty replicas. This gives the first notion of order-fairness that cannot be vacuously satisfied by arbitrarily large batches and that is satisfiable in the presence of faulty replicas. Prior work relies on a fixed choice of $\gamma$ and bound on the number of faulty replicas $f$, but we show that Ranked Pairs satisfies our definition for every $\gamma$ simultaneously and for any $f$, where fairness guarantees linearly degrade as $f$ increases.
翻译:暂无翻译