## 2 Preliminaries
### Applications of Broadcast  
In a blockchain network, broadcasting is a fundamental component that allows the network to work [58]. When a transaction is completed, it is sent to the network, and all nodes receive a copy of the transaction. The nodes then validate the transaction and add it to their blockchain copy. Similarly, when a new block is extracted, it is sent to the network, and all nodes receive a copy of the block. Nodes then validate the block and add it to their cryptographic copies. This ensures that all nodes have the same blockchain copy, which is necessary for the network to function correctly. In distributed databases, broadcasting is used to replicate data over multiple nodes [59; 60; 61; 62] to increase data availability. When data is updated on a node, it is sent to other nodes in the network, and the data is updated on those nodes to ensure data consistency. Distributed Stream Processing Frameworks (DSPFs) are rapidly becoming one of the most significant IoT ecosystem components [63]. DSPFs are used to steam real-time rapidly changing data through the distributed network. Streaming these data needs to guarantee data consistency among the nodes of the network. Broadcast is the main component when the DSPFs need to stream and guarantee data consistency in a scalable manner. DSPFs can be used as a data analysis layer for intelligent city IoT applications. The most common real-time processing DSPFs are Apache Storm, Apache Spark Streaming, and Apache Flink. In consensus algorithms, reliable broadcasting, such as atomic broadcasts, serves as a fundamental building block for establishing agreement among nodes. Consensus algorithms allow distributed applications to reach a common decision or state. Consensus algorithms require four properties: termination, uniform integrity, uniform agreement, and uniform validity. Termination guarantees that every correct process will eventually decide on a value. Uniform integrity ensures that each process decides at most once, preventing duplicate decisions. The uniform agreement ensures that regardless of their states, no two processes will decide on different values, ensuring consistency. Lastly, uniform validity guarantees that a value chosen by a process in the system was already presented by another process. The authors of [64] introduced the practical Byzantine fault tolerance (PBFT) algorithm, which provides Byzantine fault tolerance and uses a reliable broadcast protocol to establish consensus among nodes. The Raft consensus algorithm, proposed in [65], also uses reliable broadcast to maintain consistency among replicated logs. Path authentication and source authentication are two forms of authentication mechanisms in broadcast algorithms [66]. Path authentication guarantees the integrity of a message during transmission by verifying the path through which the message is traversed. Source authentication ensures message integrity by confirming the authenticity of the message's origin. Though path and source authentication algorithms exist [67; 68; 69], existing algorithms do not consider arbitrary initial system configuration. Hence, they do require initialization or reset and have scalability issues. Apache ZooKeeper [70], Google's Chubby [71], and Microsoft's Azure Service Fabric [72] are all distributed systems that provide mechanisms for achieving reliable broadcast,synchronization, and lock-step synchrony in a distributed environment. Apache ZooKeeper and Google's Chubby both provide distributed lock services, while Microsoft's Azure Service Fabric provides reliable distributed transactions that support lock-step synchrony. These systems are widely used in industry for building large-scale distributed applications that require high availability and consistency. Microsoft's Azure Service Fabric is a distributed system platform providing a wide range of services, including a reliable messaging system and a distributed lock service.