Introducing the state machine

The state machine is a mechanism that keeps track of the state changes that occur on the blockchain. For instance, a normal day has two simple states, either day or night. A state machine would record the situation of each day at every moment so that when the sun goes down, the state of the day changes to night. It is the same thing with the days of the week. Each day can be one out of seven different states, such as Monday or Friday. Whenever it changes at 12 am, the state that keeps track of the day of the week gets updated in the state machine.

The state machine enforces consensus rules to make sure that users are processing valid transactions in a Byzantine resistant system:

  • A P2P network: It connects the participants and propagates the transactions and blocks of verified transactions. This is the network used by the nodes of the blockchain to propagate information between them to achieve consensus.
  • An incentivization scheme: In the case of Ethereum, that scheme is PoW for creating an economically secure state machine. Ethereum developers plan to move to a PoS system where the users will process transactions using a passive system of transaction verification based on the number of ETH that the miner locks at that moment.
  • An open source client: This client is the one used by the nodes to interact with the blockchain. In Ethereum, we have Geth, Parity, and many others that allow you to connect to the blockchain for mining and processing transactions and all sorts of tasks after downloading the blockchain.
You can download a light version of the blockchain by downloading the client Geth and running geth --fast, which only keeps track of the reference numbers of each block to limit the download size of the blockchain, since it can reach several hundreds of gigabytes. The purpose of the light client is to make the Ethereum blockchain available for low-spec computers with limited storage and computing power.