## 1 Introduction  
Propagation (broadcast) is a process of dissemination of information in a distributed system where each system process receives a message broadcast by legitimate source(s). Propagation is used in numerous applications, including communication protocols, consensus, distributed coordination, and network management. The properties of propagation, namely _propagation safety_ and _propagation reliability_, play a crucial role in securing network protocols, defending against attacks, and maintaining effective control in a system [1, 2, 3, 4, 5]. A propagation algorithm is said to possess the propagation safety property if each message received by the system processes is always the same message that was last broadcast by a legitimate source process. In other words, propagation safety ensures sending of only those messages that have truly originated from legitimate sources. A legitimate source process for a broadcast algorithm refers to a process which initiates the message broadcast. Any other process from which a message has originated is referred to as an _illegitimate source_. A broadcast initiated by the legitimate source process is referred to as a _legitimate broadcast_ and an _illegitimate broadcast_ otherwise. On the other hand, a system is said to implement _propagation reliability_ if each message sent by a legitimate source is received exactly once by every node in the system and the receipt of the message by all processes is acknowledged by the source within a finite time. Without the properties of propagation safety and reliability, a distributed system may not operate as intended, leading to incorrect results, security breaches, and possibly even hazardous outcomes [6]. More formally, a property \(S\) of a system is said to be _safe_ if, for any execution \(E=\gamma_{1},\gamma_{2},\ldots,\gamma_{k}\) of the system, where \(\gamma_{i}\) (for \(i\geq 1\)) denotes a _system configuration_ and \(E\) is a finite or infinite sequence of such configurations, if \(E\) satisfies \(S\), then every prefix or postfix of \(E\) also satisfies \(S\). The system configuration is given as the product of its processes' states, where a process's state refers to the collection of the process's values of variables. A system configuration satisfying \(S\) is said to be a safe system configuration and _unsafe_ otherwise. The system executes local actions (transitions) through which it enters new system configurations. If the transition causes the system to enter a safe system configuration from a safe or an unsafe system configuration, the transition is said to be safe, and the transition is said to be a _specification violation_ if it is from a safe system configuration to an unsafe system configuration. A specification violation may cause a broadcast algorithm to enter a system configuration in which the broadcast is discontinued, though some system processes did not receive the broadcast yet violating the propagation reliability. Analogously, a specification violation might cause a broadcast algorithm to reach a system configuration in which a process is ready to transmit or receive a broadcast that did not originate from a legitimate source, violating the propagation safety property. Though it is critical, safety in most distributed systems has a high overhead due to requiring system specification to be continuously maintained. It has been established that propagation safety cannot be achieved in a system starting in an arbitrary initial system configuration [2]. Nevertheless, weaker forms of propagation safety, such as 1-propagation safety, are achievable. A distributed broadcast algorithm is considered 1-propagation-safe iff any message that was not broadcasted by a legitimate source process (referred to as a _spurious message_) can only be sent from a process to a neighboring process and cannot be transmitted further. Propagation reliability can be implemented with numerous semantics.