Protocol Overview. The basic protocol operates in two phases, after which a pos- sible decision is taken. Each process maintains an estimate. In the first phase, each process broadcasts its estimate using a reliable broadcast service, bv-broadcast (discussed below), as introduced previously [1]. The protocol uses a rotating coordinator; whoever is the assigned coordinator for a round broadcasts its estimate with a special designation. All processes then wait until they receive at least one message, and until a timer expires. (The timeout is increased with each iteration, so that eventually once the network stabilizes it is long enough.) If a process receives a message from the coordinator, then it chooses the coordinatorβs value to ΕechoΕΎ, i.e., to rebroadcast to everyone in the second phase. Otherwise, it simply echoes all the messages received in the first phase. At this point, each process ππ waits until it receives enough compatible ECHO messages. Specifically, it waits to receive at least (π β π‘0) messages sent by distinct processes where every value in those messages was also received by ππ in the first phase. In this case, it adopts the collection of values in those (π β π‘0) messages as its candidate set. In fact, if a process ππ receives a set of (π β π‘0) messages that all contain exactly the coordinatorβs value, then it chooses only that value as the candidate value. ππ has only one candidate value π£, then ππ adopts that value π£ as its estimate. In that case, it can decide π£ if it matches the parity of the round, i.e., if π£ = ππ mod 2. Otherwise, if ππ has more than one candidate value, then it adopts as its estimate ππ mod 2, the parity of the round. To see that this ensures agreement (when π‘ < π/3), con- sider a round in which some process ππ decides value π£ = ππ mod 2. Since ππ receives (π β π‘0) echo messages containing only the value π£, we know that every honest process must have value π£ in every possible set of (π β π‘0) echo messages, and hence every honest process included π£ in its candidate set. Every honest process that only had π£ as a candidate also decided π£. The remaining honest processes must have adopted π£ = ππ mod 2 as their estimate when they adopted the parity bit of the round. And if all the honest processes begin a round π with estimate π£, then that is the only possible decision due to the reliable broadcast bv-broadcast in Phase 1 (see below) and all honest processes decide at round π + 2 or earlier (regardless of whether ππΊππ is reached). Processes always continue to make progress, if π‘ < π/3. Termination is a consequence of the coordinator: eventually, after GST when the network stabilizes, there is a round where the coordinator is honest and the timeout is larger than the message delay. At this point, every honest process receives Polygraph 1: bin-propose(π£π ): 2: estπ = π£π 3: rπ = 0 4: timeoutπ = 0 5: ledgeri [0 ] = β
Appears in 1 contract
Samples: Byzantine Consensus Algorithm
Protocol Overview. The basic protocol operates in two phases, after which a pos- sible decision is taken. Each process maintains an estimate. In the first phase, each process broadcasts its estimate using a reliable broadcast service, bv-broadcast (discussed below), as introduced previously [1]. The protocol uses a rotating coordinator; whoever is the assigned coordinator for a round broadcasts its estimate with a special designation. All processes then wait until they receive at least one message, and until a timer expires. (The timeout is increased with each iteration, so that eventually once the network stabilizes it is long enough.) If a process receives a message from the coordinator, then it chooses the coordinatorβs value to ΕechoΕΎβechoβ, i.e., to rebroadcast to everyone in the second phase. Otherwise, it simply echoes all the messages received in the first phase. At this point, each process ππ waits until it receives enougβ β β h compatible ECHO messages. Specifically, it waits to receive at least (π β π‘0) messages sent by distinct processes where every value in those messages was also received by ππ in the first phase. In this case, it adopts the collection of values in those (π β π‘0) messages as its candidate set. In fact, if a process ππ receives a set of (π β π‘0) messages that all contain exactly the coordinatorβs value, then it chooses only that value as the candidate value. ππ has only one candidate value π£, then ππ adopts that value π£ as its estimate. In that case, it can decide π£ if it matches the parity of the round, i.e., if π£ = ππ mod 2. Otherwise, if ππ has more than one candidate value, then it adopts as its estimate ππ mod 2,/ β β + the parity of the round. To see that this ensurπ 3es agreement (when π‘ < π/3), con- sider a round in which some process ππ decides value π£ = ππ mod 2. Since ππ receives (π β π‘0) echo messages containing only the value π£, we know that every honest process must have value π£ in every possible set of (π β π‘0) echo messages, and hence every honest process included π£ in its candidate set. Every honest process that only had π£ as a candidate also decided π£. The remaining honest processes must have adopted π£ = ππ mod 2 as their estimate when they adopted the parity bit of the round. And if all the honest processes begin a round π with estimate π£, then that is the only possible decision due to the reliable broadcast bv-broadcast in Phase 1 (see below) and all honest processes decide at round π + 2 or/ earlier (regardless of whether ππΊππ is reached). π 3Processes always continue to make progress, if π‘ < π/3. Termination is a consequence of the coordinator: eventually, after GST when the network stabilizes, there is a round where the coordinator is honest and the timeout is larger than the message delay. At this point, every honest process receives Polygraph 1: b[ ] β
in-propose(οΏ½οΏ½οΏ½= 6: repeat: d β + 7: ππ ππ 1; increment the round number and the timeout β + 8: timeoutπ timeoutπ 1 β β + d 9: coordπ ((ππ 1) mod π) 1 rotate the coordinator β² Phase 1: [ οΏ½ ): [ β ] [ ] 10: bv-broadcast(EST ππ , estπ , ledgerπ ππ 1 , π, bin_valuesπ ππ ) binary value broadcast the current estimate2: estπ = π£π 3: rπ = 0 4: timeoutπ = 0 5: ledgeri [0 ] = β
Appears in 1 contract
Samples: Accountable Byzantine Agreement
Protocol Overview. The basic protocol operates in two phases, after which a pos- sible decision is taken. Each process maintains an estimate. In the first phase, each process broadcasts its estimate using a reliable broadcast service, bv-broadcast (discussed below), as introduced previously [1]. The protocol uses a rotating coordinator; whoever is the assigned coordinator for a round broadcasts its estimate with a special designation. All processes then wait until they receive at least one message, and until a timer expires. (The timeout is increased with each iteration, so that eventually once the network stabilizes it is long enough.) If a process receives a message from the coordinator, then it chooses the coordinatorβs value to ΕechoΕΎβechoβ, i.e., to rebroadcast to everyone in the second phase. Otherwise, it simply echoes all the messages received in the first phase. At this point, each process ππ waits until it receives enougβ β β h compatible ECHO messages. Specifically, it waits to receive at least (π β π‘0) messages sent by distinct processes where every value in those messages was also received by ππ in the first phase. In this case, it adopts the collection of values in those (π β π‘0) messages as its candidate set. In fact, if a process ππ receives a set of (π β π‘0) messages that all contain exactly the coordinatorβs value, then it chooses only that value as the candidate value. ππ has only one candidate value π£, then ππ adopts that value π£ as its estimate. In that case, it can decide π£ if it matches the parity of the round, i.e., if π£ = ππ mod 2. Otherwise, if ππ has more than one candidate value, then it adopts as its estimate ππ mod 2,/ β β + the parity of the round. To see that this ensurπ 3es agreement (when π‘ < π/3), con- sider a round in which some process ππ decides value π£ = ππ mod 2. Since ππ receives (π β π‘0) echo messages containing only the value π£, we know that every honest process must have value π£ in every possible set of (π β π‘0) echo messages, and hence every honest process included π£ in its candidate set. Every honest process that only had π£ as a candidate also decided π£. The remaining honest processes must have adopted π£ = ππ mod 2 as their estimate when they adopted the parity bit of the round. And if all the honest processes begin a round π with estimate π£, then that is the only possible decision due to the reliable broadcast bv-broadcast in Phase 1 (see below) and all honest processes decide at round π + 2 or/ earlier (regardless of whether ππΊππ is reached). π 3Processes always continue to make progress, if π‘ < π/3. Termination is a consequence of the coordinator: eventually, after GST when the network stabilizes, there is a round where the coordinator is honest and the timeout is larger than the message delay. At this point, every honest process receives Polygraph 1: b[ ] β
in-propose(οΏ½οΏ½οΏ½= 6: repeat: d β + 7: ππ ππ 1; increment the round number and the timeout β + 8: timeoutπ timeoutπ 1 β β + d 9: coordπ ((ππ 1) mod π) 1 rotate the coordinator β² Phase 1: [ οΏ½ ): [ β ] 10: bv-broadcast(EST ππ , estπ , ledgerπ ππ 1 , π, bin_valuesπ ) binary value broadcast the current estimate2: estπ = π£π 3: rπ = 0 4: timeoutπ = 0 5: ledgeri [0 ] = β
Appears in 1 contract
Samples: Byzantine Consensus Algorithm
Protocol Overview. The basic protocol operates in two phases, after which a pos- sible possible decision is taken. Each process pro- cess maintains an estimate. In the first phase, each process broadcasts its estimate using a reliable broadcast service, bv-broadcast (discussed below), as introduced previously [1]. The protocol uses a rotating coordinator; whoever is the assigned as- signed coordinator for a round broadcasts its estimate with a special designation. All processes then wait until they receive at least one messagemes- sage, and until a timer expires. (The timeout is increased with each iteration, so that eventually once the network stabilizes it is long enough.) If a process receives a message from the coordinator, then it chooses the coordinatorβs value to ΕechoΕΎβechoβ, i.e., to rebroadcast to everyone in the second phase. OtherwiseOther- wise, it simply echoes all the messages received in the first phase. At this point, each process ποΏ½pi οΏ½ waits until it receives enough compatible ECHO messages. Specifically, it waits to receive at least (π βn t0 π‘0) messages sent by distinct processes where every value in those messages was also received bypi ππ in the first phase. In this case, it adopts the collection of values in those (n t0π β π‘0) messages as its candidate set. In fact, if a propi cess ππ receives a set n t0of (π β π‘0) messages that all contain exactly the coordinatorβs value, then it chooses only that value as the candidatFinally, the processes try to come to a decision. If process pi e value. ππ has only one canvdidate valpi ue π£, then ππ adov pts that value π£ as its estimate. In that casev , it can decide π£ if it matches the parity of thev rounri d, i.e., if π£ = ππ mopi d 2. Otherwise, if ππ has more than one candidate value, then it adopts as its estimate ππ mod 2, the parity of the round. To see that this t ensurn/3es agreement (consider when π‘ < π/3), con- sider a roupi nd in which somev procri ess ππ decidespi value π£ = ππn t0 mod 2. Since ππ receives (π β π‘0) echov messages containing only the value π£, we know that ev very honest process must have van t0lue π£ in every possible set of (π β π‘0) echo messages, av nd hence every honest process included π£ in its candidate v set. Every honest process that only had π£ as a candidate also decided π£. The remaining honest processes must have adopted π£ = ππ mod 2 as their estimate when they adopted the parity bit of the round. And if all the honest processes begin a round π with estimate π£, then that is the only possible decision due to the reliable broadcast bv-broadcast in Phase 1 (see below) and all honest processes decide at round π + 2 or earlier (regardless of whether ππΊππ is reached). Processes always continue to make progress, if π‘ < π/3. Termination is a consequence of the coordinator: eventually, after GST when the network stabilizes, there is a round where the coordinator is honest and the timeout is larger than the message delay. At this point, every honest process receives Polygraph 1: bin-propose(π£π ): decided2: estπ = π£π 3: rπ = 0 4: timeoutπ = 0 5: ledgeri [0 ] = β
Appears in 1 contract
Samples: Byzantine Consensus Algorithm