Common use of Protocol Overview Clause in Contracts

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

AutoNDA by SimpleDocs

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

AutoNDA by SimpleDocs

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

Draft better contracts in just 5 minutes Get the weekly Law Insider newsletter packed with expert videos, webinars, ebooks, and more!