Technical Whitepaper

F Epoch-Resettable Adversaries

We can also extend our analysis for announcing the blocks in each slot, and thereby our ledger protocol, to cope with epoch-resettable adversaries. In fact, as long as the reputation system ensemble is a sequence of independent (static) reputation systems, we do not need to make any modification to the protocol other than requiring the parties to refresh their key in each epoch; this can be done interactively, by posting a new key on the blockchain in every epoch and erasing the previous key, or non-interactively by using a forward secure signature scheme [2158]. Indeed, although the epoch-resettable adversary will able to predict the next epoch’s committees, he is still bound to select his corrupted parties independently according to their (new) reputation. As long as all reputation vectors (i.e., for each epoch) are feasible, such an adversary will be unable to have a corrupted majority committee chosen, except with negligible probability.

However the above assumption that reputation-vectors of different epoch are independent, might fall short in capturing situations, where malicious parties might try to manipulate their reputation (e.g., by temporarily playing honestly) depending on the protocol’s history. Under the assumption that reputation for the next epoch is already define in the one-but-last slot of the current epoch16 we can tolerate an epoch-resettable adversary by modifying the way this randomness is selected as follows: We adapt the block announcing protocol to have every party in any committee include, in addition to his transaction pool, a fresh random nonce, and the concatenation of all these nonces is included to the block along with the union of the transactions posted by CBC. (The corresponding protocol is given in Figure 14). As the distribution of the reputation vector is decided before the last slot, the choice of all parties in the next epoch will be independent of this distribution and therefore the same guarantees as before will apply.




BlockAnnounce(ˆP,P,Rep,Bρ-1,ρ,δ,ϵ,L = O(1)): Let ˆPρ denote the reputation parties in Slot ρ.
1.
Extract the concatenation of randomness r-1 from the blocks of the previous epoch.
2.
Using the above randomness rρ-1,a each party in P locally runs the reputation-fair lottery L(Pˆ,Rep, (c1,,cm + 1),δ,ϵ,h(rρ-1||0)), where the cjs are as in Theorem 1, to sample a set CBA ˆPρ (of size polylog(n)); out of this set, the parties choose a random subset CBC of constant size L = O(1) by invoking RandSet(CBA,L; h(rρ-1||1)).
3.
Each party ˆ
                    Pi CBC acts as sender in an invocation of Broadcast with receivers the parties in CBA and input ˆ
                    Pi’s current transaction pool Ti along with a random nonce ri; ˆ
                    Pi removes the broadcasted transactions from its local transaction pool.
4.
All parties in CBA compute Y = (ˆT,r), where ˆT = Validate(TH,T) for T = piCBCTi and r is the concatenation of all broadcasted ri’s. If some party ˆ
                    Pj CBA did not broadcast a valid message in the previous round of the protocol, then all parties in CBA set Tj = {(abort,j)} and rj = 0.
5.
Every Pˆj CBA signs h(Y,h = h(Bρ-1)), where Bρ-1 is a hash pointer to the block of the previous round and sends it to every party in CBC.
6.
Each ˆPi CBC: If for some (Y,h,ρ), where ρ is the current slot and h = h(Bρ-1) is a valid hash pointer to the previous block, Pˆi receives at least |CBA|2 signatures from parties in CBA on (Y,h), then ˆPi multicasts (Y,h,ρ) along with all the corresponding signatures to all nodes in P.
7.
Each Pi P: Upon receiving any (Y,h,ρ) along with signatures on it from at least |CBA|2 parties from CBA, create a block consisting of (Y,h,ρ) and the related signatures and add this block to the blockchain as the current slot’s block and mark the current slot as completed.



Fig. 14: Block announcing protocol for Slot ρ for an epoch resettable adversary 


Unfortunately, the above idea is still problematic. Indeed, since with an epoch resettable adversary the corrupted set is “reset” at the beginning of each epoch, the adversary across two epochs might be able to take keys he learned in the first of the two epoch and use them at the beginning slot of the second epoch (before parties have had a chance to erase) thereby effectively holding the keys of a majority of the parties in the latter epoch, even when both epoch’s reputation systems are ϵ-feasible.

To counter this scenarios, we consider the following strengthening of the notion of ϵ-feasibility:

Definition 5. For a reputation system Rep for parties from a reputation set  ˆ
                    P, a (possibly probabilistic) algorithm A for sampling a subset of parties from  ˆ
                    P, and an Rep-adversary A, we say that Rep is strongly (ϵ,A)-feasible for A if, with overwhelming probability,17 A outputs a set of parties such that at most a 14 - ϵ fraction of these parties is corrupted by A.

Note that in the above definition, the corrupted parties are chosen according to Rep from the entire reputation-party set ˆP, and independently of the coins of A. (Indeed, otherwise it would be trivial to always corrupt a majority.)

Definition 6. We say that a reputation system is strongly ϵ-feasible for Rep-adversary A, if there exists a probabilistic polynomial-time (PPT) sampling algorithm A such that Rep is strongly (ϵ,A)-feasible for A.

It is easy to verify that if the reputation systems corresponding to all epochs are strongly ϵ-feasible, then the probability that the adversary in two consecutive epochs can launch the above attach (i.e., using the keys learned in the first of the two epochs exceed a minority of corruptions in the second one) is negligible. This is true as long as the two epochs have the same (distribution on the) size of committees, since even if all corrupted parties from the first epoch are selected in the second one, still the adversary will not be able to reach more than a minority of corruptions (since in each epoch at most 14 - ϵ fraction is corrupted).

Since in each epoch the adversary needs to release the parties from the previous epoch which are not newly corrupted, we can have the parties refresh their signing keys in each epoch—either by erasing the old keys and posting new ones on the blockchain or by using a forward-secure signature scheme—thereby ensuring that the adversary can never corrupt a majority. It is easy to verify that the above modification ensures security of our construction against epoch-resettable adversaries.

16  This is a natural assumption as any reputation adjusting mechanism will need to have parties agree on the adjustment of the reputation, e.g., by extracting is from blocks deep enough in the blockchain.

a  In the version of the protocol using a beacon, the parties can simply use the current-round value of the beacon.

17  The probability is taken over the coins associated the the distribution of the reputation system, and the coins of A and A.