Computational Perspectives
摘要
This chapter transitions from philosophical to computational concepts. Through this shift, we model a network of machines—a community—that collectively aims to reach agreement by participating autonomously in the consensus protocol based on their internal logic (i.e., the prescribed program) and internal state (i.e., accumulated memory). It reasons over every instructional step (i.e., criteria to vote) based on its internal logic, which is arguably innate to each machine. In a sense, the machine perceives inputs from the environment (i.e., exhibiting a limited form of intentional consciousness) and, based on its internal logic, chooses to accept or reject the inputs. This choice is made based on its ongoing collection and refinement of its internal state, namely, its operational observation (cf. lived experience). The provided internal logic sets the rules and boundaries for how a machine will respond or should behave. It operates according to the established rules that constitute a value system, serving as the basis for making a choice. It normalizes what is acceptable, and any deviation is deemed faulty; in a sense, it functions as a moral imperative rooted in that innate logic and its lived operational observations. In reaching an agreement, a democratic election process is invoked, in which each machine collects votes and independently examines their validity, a form of self-reliance without trusting any party. This process serves as the foundation for constructing distributed computational trust in reaching an agreement. More importantly, once an agreement is reached, there is correspondence among states across non-faulty machines, an understanding as a form of harmony that is formalized as state consistency. After laying out the philosophical foundation, we present a universal abstract model of consensus composed of intuitive primitives that capture the common structure of diverse consensus protocols. By consolidating disparate terminology from the literature into a unified framework, we aim to make consensus theory more coherent and accessible. We structure this universal model into (1) system models, e.g., reliability assumptions and fault models, (2) core primitives, e.g., state transition and coordinator transition, (3) correctness criteria, e.g., safety and liveness, and (4) agnostic optimizations, e.g., causal state maintenance, concurrent designs, and sharding strategies.