Broadcast protocols are a crucial building block for some Agreement protocols. These are protocols used to reach an agreement on common values, action or datum in a distributed system through sending it in a message for other processes to accept it \cite{bracha1987asynchronous}.
...
Broadcast protocols are a crucial building block for some Agreement protocols. These are protocols used to reach an agreement on common values, action or datum in a distributed system through sending it in a message for other processes to accept it \cite{bracha1987asynchronous}. Byzantine processes are processes that hinder the network from reaching the agreement by sending malicious (malicious processes) or faulty messages(faulty processes).\newline \newline Many broadcast protocols for distributed systems have been presented, depending on the topology, synchronicity(the network is asynchronous or synchronous), etc. One of these protocols, we are going to refer to as Bracha-Dolev, has been presented in the paper Practical Byzantine Reliable Broadcast on Partially Connected Networks\cite{bonomi2021practical}. Bracha-Dolev protocol can be used to reach an agreement in at least 2f+1-connected, asynchronous network \cite{bonomi2021practical}.\newline The second protocol we're going to come across in this paper is a protocol we're going to refer to as Bracha-CPA. Both Bracha-Dolev and Bracha-CPA are built by combining two protocols. Bracha-Dolev is built through combining the protocol presented by Gabriel Bracha \cite{bracha1987asynchronous} and the protocol presented by Danny Dolev et al \cite{dolev1982efficient}. We're going to refer to these protocols with Bracha's and Dolev's protocol. Bracha-CPA is built combining Bracha's broadcast protocol and the protocol presented by Chiu-Yuen \cite{koo2004broadcast} called Certified Propagation Algorithm.\newline There are two important metrics when talking about broadcast protocol the first one is the average message complexity which is the average number of messages until all processes accept the message. The second is the average delivery time, which is the average time until all the processes deliver the message. This paper demonstrates that by applying some of the optimizations applied to Bracha-Dolev \cite{bonomi2019multi}, we can decrease the average message complexity of Bracha-CPA up to 20\%. the average delivery time doesn't seem to decrease. The paper will also demonstrate that CPA has the highest probability of succeeding on a network with a k-diamond or k-pasted graph when we have a maximum number of Byzantine nodes.