CS4998: Blockchain Development Textbook
  • CS4998: Blockchain Development
  • Prerequisites
  • Introduction
    • Blockchain Theory
      • Bitcoin and the UTXO Model
      • Ethereum and the State-Based Model
    • Remix - A First Glance
    • Hello World!
      • Solidity File Structure
      • Primitive Values & Types
      • Contract Structure
      • Functions
      • Data Structures
      • Summary & Exercises
    • Hello World! Pt. 2
      • Control Flow
      • Interfaces and Inheritance
      • Constructors
      • Contract Interactions
      • Modifiers
      • Dynamic Arrays and Strings
        • Dynamic Arrays
        • Strings
      • Errors
      • Events
      • Units and Global Variables
      • Default Functions
  • Local Development
    • Node Providers
    • Interacting With On-Chain Contracts
    • Migrating to Foundry & VS Code
      • The Basics of Forge
      • Installing and Using Dependencies
      • Cast
      • Anvil
  • Understanding the EVM
    • The Ethereum Virtual Machine
      • A First Look at Computers
      • The Turing Machine
      • EVM Data Structures
      • Operation Codes (Opcodes)
      • Gas
      • Contract Compilation
      • Contract Runtime
    • Gas Optimizations
  • Yul & Advanced EVM Topics
    • Yul
    • Metamorphism
    • Bitwise Manipulations
  • Correctness
    • Security
    • Types of Testing
  • ERC Standards
    • Why ERCs?
    • ERC20
    • ERC721
    • ERC777
    • ERC1155
  • Frequently Used Smart Contracts
    • OpenZeppelin
    • Uniswap
    • Multisignature Contracts
    • AAVE/Compound
  • MEV & Advanced Blockchain Theory
    • Consensus Mechanisms vs Sybil Resistance Mechanisms
    • Maximal Extractable Value (MEV)
    • Looking Past The EVM
  • Etcetera
    • Developer Practices
    • Spring 2023 Past Resources
Powered by GitBook
On this page
  • History of Ethereum
  • Decentralized Programs
  1. Introduction
  2. Blockchain Theory

Ethereum and the State-Based Model

An Alternative to Bitcoin

PreviousBitcoin and the UTXO ModelNextRemix - A First Glance

Last updated 1 year ago

Throughout the early 2010s, Bitcoin began to gain popularity and soon enough, other blockchains such as Litecoin began to pop up. However, although blockchains like Bitcoin and Litecoin fulfilled their tasks as decentralized payment systems, many in the community began to see perhaps the biggest flaw with such blockchains - the lack of decentralized programs.

Recall from the section that each blockchain relies on a virtual machine. Script, the programming language that Bitcoin utilizes, allows developers to write logic which then gets executed on Bitcoin's VM. However, the biggest issue with Script (and the Bitcoin VM as a whole) is that it is catered towards processing the transferring of bitcoin. Bitcoin lacks many features that are required to write sophisticated programs - it is Turing-Incomplete.

This is what motivated the creation of Ethereum - to create a blockchain whose virtual machine was general purpose and Turing-Complete.

History of Ethereum

Decentralized Programs

Bitcoin