Skip to content

Instantly share code, notes, and snippets.

@mimoo
Last active June 6, 2020 23:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mimoo/0d61ebbfda006f65b433b2af379c1495 to your computer and use it in GitHub Desktop.
Save mimoo/0d61ebbfda006f65b433b2af379c1495 to your computer and use it in GitHub Desktop.
broadcast protocols

Broadcast Protocols

Abstract

  • broadcast protocols are about sending a request to enough peers, and the peers successfuly receiving it

  • there are different types of broadcasts protocols, and byzantine broadcast protocols work in the presence of adversaries

  • an atomic broadcast is what people refer to as a consensus protocol

  • byzantine broadcast protocols

    • the sender can be byzantine
    • properties:
      • Consistency. no two correct processes deliver different messages.
      • Totality. either all correct processes deliver a message or none does.
      • Validity. if the sender is correct, all correct processes eventually deliver the broadcast message.

A specific party (the sender) wants to distribute a message among n parties in such a way that all correct parties obtain the same message, even when some of the parties are malicious. The malicious misbehavior is modeled by a central adversary who corrupts up to t parties and takes full control of their actions. Corrupted parties are called Byzantine and the remaining parties are called correct. Broadcast requires that all correct parties agree on the same value v, and if the sender is correct, then v is the value proposed by the sender. Broadcast is one of the most fundamental primitives in distributed computing. It is used to implement various protocols like voting, bidding, collective contract signing, etc.

Byzantine reliable broadcast is a powerful primitive that allows a set of processes to agree on a message from a designated sender, even if some processes (including the sender) are Byzantine.

Byzantine broadcast is a distributed primitive that allows a specific party to consistently distribute a message among n parties in the presence of potential misbehavior of up to t of the parties

from wikipedia:

In fault-tolerant distributed computing, an atomic broadcast or total order broadcast is a broadcast where all correct processes in a system of multiple processes receive the same set of messages in the same order; that is, the same sequence of messages.[1][2] The broadcast is termed "atomic" because it either eventually completes correctly at all participants, or all participants abort without side effects. Atomic broadcasts are an important distributed computing primitive.

(Byzantine) Broadcast vs Consensus

Timeline

  • 2020 - Rachid Guerraoui, Petr Kuznetsov, Matteo Monti, Matej, Pavlovic, Dragos-Adrian Seredinschi, and Yann Vonlanthen - Scalable Byzantine Reliable Broadcast
    • about byzantine reliable broadcast
  • 2020 - Mathieu Baudet, George Danezis, Alberto Sonnino - FastPay: High-Performance Byzantine Fault Tolerant Settlement
  • 2014 - Martin Hirt and Pavel Raykov - Multi-valued Byzantine Broadcast: The t<n Case
  • 2011 - Christian Cachin, Rachid Guerraoui, and Lu´ıs Rodrigues - Introduction to Reliable and Secure Distributed Programming
  • 2011 - Juan A Garay, Jonathan Katz, Ranjit Kumaresan, and Hong-Sheng Zhou - Adaptively Secure Broadcast, Revisited
  • 2002 - Fernando Pedone and Andr´e Schiper - Handling message semantics with generic broadcast protocols.
  • 1997 - Dahlia Malkhi, Michael Merritt, and Ohad Rodeh - Secure Reliable Multicast Protocols in a WAN
  • 1993 - Vassos Hadzilacos and Sam Toueg - Fault-tolerant broadcasts and related problems
  • 1987 - Gabriel Bracha - Asynchronous Byzantine agreement protocols
    • introduces byzantine reliable broadcast
  • 1980 - Pease, M.C., Shostak, R.E., Lamport, L - Reaching agreement in the presence of faults

Type of broadcast protocols

  • byzantine reliable broadcasts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment