State Machine Replication
Definition
In an SMR protocol, there are two types of nodes: \emph{servers} and \emph{clients}. The servers run the SMR protocol and the clients (can be servers) submit \emph{requests} to the state machine using the interface provided by the SMR protocol. The state output by the servers in an SMR protocol must be consistent across all servers, i.e.,\ no two honest servers output different states at any point. Here, consistency means that the clients should obtain views as though a single state machine executed all requests. We realize the state machine using a distributed linearizable append-only log consisting of a block of client requests. As long as the honest servers agree on the log, they will derive a deterministic and thus, consistent state. \begin{definition}[SMR --- State Machine Replication~\cite{schneiderImplementingFaulttolerantServices1990}]% \label{def:smr} A State Machine replication protocol generates a linearizable log of client requests akin to a single non-faulty server among the servers with the following guarantees: \begin{asparaenum}[(1)] \item \textbf{Safety.} Honest servers do not output different requests at the same log position. \item \textbf{Liveness.} Each client request is eventually output by all honest servers. \end{asparaenum} \end{definition}
Questions to ask when reading an SMR paper
- What network? (Synchrony, etc.)
- What fault? (Crash, Byzantine, etc.)
- What corruption? (Static, Adaptive, etc.)
Notes
- First introduced by Implementing fault-tolerant services using the state machine approach: A tutorial. Fred B Schneider. 1990.
- The safety and liveness definition was first introduced by Consensus in the presence of partial synchrony. Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer. 1988.
- According to https://www.youtube.com/watch?v=HRJzwoArqg4 , the highest fork observed was of length 3.
Surveys
- SoK: Achieving State Machine Replication in Blockchains based on Repeated Consensus. Silvia Bonomi, Antonella Del Pozzo, Álvaro García-Pérez, and Sara Tucci-Piergiovanni. 2022 SoK: Achieving State Machine Replication in Blockchains based on Repeated Consensus
- SoK: A Taxonomy for Critical Analysis of Consensus Mechanisms in Consortium Blockchain. Wei Yao, Fadi P. Deek, Renita Murimi, and Guiling Wang. 2023 SoK: A Taxonomy for Critical Analysis of Consensus Mechanisms in Consortium Blockchain
- SoK: Diving into DAG-based Blockchain Systems. Qin Wang, Jiangshan Yu, Shiping Chen, and Yang Xiang. 2020 SoK: Diving into DAG-based Blockchain Systems
- SoK: A Consensus Taxonomy in the Blockchain Era. Juan Garay, and Aggelos Kiayias. 2018 SoK: A Consensus Taxonomy in the Blockchain Era
- SoK: Consensus in the Age of Blockchains. Shehar Bano, Alberto Sonnino, Mustafa Al-Bassam, Sarah Azouvi, Patrick McCorry, Sarah Meiklejohn, and George Danezis. 2019
- SoK: Consensus for Fair Message Ordering. Zhuolun Li, and Evangelos Pournaras. 2024
- A Survey on Blockchain Scalability. Wei Tong, Jian Li, Lingxiao Yang, Xiyan Huang, Xiangshang Gao, and Zesong Dong. 2024
- A Survey Paper on Blockchain Technology and Consensus Algorithms. Komal Vyas, and Ashwini Deshmukh. 2023
- A Survey on Decentralized Consensus Mechanisms for Cyber Physical Systems. Umesh Bodkhe, Dhyey Mehta, Sudeep Tanwar, Pronaya Bhattacharya, Pradeep Kumar Singh, and Wei-Chiang Hong. 2020
- BFT in Blockchains: From Protocols to Use Cases. Xin Wang, Sisi Duan, James Clavin, and Haibin Zhang. 2021
- A survey on the application of blockchain in cryptographic protocols. Xiangyang Luo, Xingxing Chen, Xiaofeng Chen, and Qingfeng Cheng. 2024