Ethereum allows decentralized execution of code and agreements through smart contracts deployed on a blockchain. It aims to be a platform for open development of arbitrary applications in a similar way the internet enabled open communication. In Ethereum, the state is made up of accounts containing a balance, code, and storage. Transactions alter the state by sending messages or deploying contracts. Contract code is executed in a virtual machine using an Ethereum Virtual Machine language to read/write storage and send messages in a deterministic manner while consuming computational resources paid for in gas.