Patent ID: 6931431

Claim:
A method comprising: achieving agreement among n participating network devices in an asynchronous network for deciding on a common value (v) being validated by a justification (p) together satisfying a predetermined predicate (Q), a agreement arising out of a series of messages being sent and received by each participating network device with up to a number t of faulty devices, each participating network device performing the following steps: i) broadcasting to the participating network devices an echo message comprising a proposed value (w) and a proposed justification (π) by using verifiable and consistent broadcast; ii) receiving n−t echo messages comprising candidate values (w 1 , w 2 , w 3 ) and candidate justifications (π 1 , π 2 , π 3 ) satisfying the predicate (Q), and repeating the following steps 1) to 3) for each participating network device as a candidate device represented by a candidate device identifier (a) according to an order: 1) broadcasting to all participating network devices a vote message comprising the candidate device identifier (a), and either a first agree-value (Y) together with the candidate value (w a ) and the candidate justification (π a ), or a second agree-value (N), 2) receiving vote messages and counting up to n−t vote messages including the second agree-value (N) or the first agree-value (Y), the candidate value (w a ), and the candidate justifications (π a ) satisfying the predicate (Q), 3) performing a Byzantine agreement to determine whether the candidate device has sent the candidate value (w a ) and the candidate justification (π a ) satisfying the predicate (Q), iii) in response to the result of the Byzantine agreement, deciding the common value (v) proposed as the candidate value (w) and the justification (p) proposed as the candidate justification (π) of an agreed candidate device.