πŸ› οΈETH.Build

An Educational Sandbox For Web3... And Much More.

  • πŸ‘‰Drag-and-Drop Programming
  • 🧩Open Source Building Blocks
  • 🧐Visually Understand How Ethereum Works

πŸ”§BuildπŸ’‘Learn

Hash Function

  • Think of it like a fingerprint of any given input data.
  • Input can be any size, output is always the same size (64 hex chars).
  • Deterministic, you will always get the same hash for a specific input.
  • One directional, given a hash it is impossible to guess the seed.

πŸ”§Build with a Hash Function

Key Pair

  • Consists of a public key derived from a private key.
  • Your address where you send value is derived from your public key.
  • Can be used to sign a message and anyone can recover the signer's address.
  • Anyone can generate an Ethereum account by just generating a random private key.

πŸ”§Build with a Key Pair

Look Ahead: Transactions

  • Users can sign messages that go on-chain to send and receive value.
  • No decimals! Amounts are integers, in Wei. 1 ETH is 10^18 Wei.
  • You can generate accounts by just randomly generating private keys.

πŸ”§Build

Side Quest: Encryption

  • Asymmetric encryption with Ethereum key pairs.
  • A small amount of data can be encrypted with a public key.
  • The private key is used to decrypt the data.
  • Not the best way to encrypt data!

πŸ”§Build

Distributed Ledger

  • Once we have key pairs and we can sign messages, our messages can be objects with to, from, value, etc.
  • A ledger keeps track of everyone's balance and new transactions are added to it.
  • Everyone keeps a copy of the same ledger.
  • Need a 'nonce' to prevent replay attacks.
  • Problems with network topology and consensus...

πŸ”§Build

Byzantine Generals

  • Coordination problem arises without a centralized authority.
  • Network (communication) is public and untrusted.
  • Generals prove their ability to wage war to other generals in messages.
  • Proof of work!

πŸ”§Build

Blockchain

  • Proof of work is brute forcing a one-way hash function.
  • Miners with special hardware work to secure blocks of transactions.
  • Each block references the previous block to make a chain.
  • Longest chain wins and your weird uncle shows up to help with security.

πŸ”§Build

Transactions

  • Send value by signing an object with the details like 'to', 'value', 'data'.
  • 'From' address is cryptographically recovered from the signature.
  • No decimals! Amounts are integers, in Wei. 1 ETH is 10^18 Wei.
  • Miners are incentivized with a fee to package transactions into blocks.
  • This fee is called the gas price and you 'bid' to get mined.

πŸ”§Build

Smart Contracts

  • Send 'machine code' as data in a transaction without a 'to' address.
  • Deployed code has an address just like an "externally owned account" with a private key.
  • Reading data is cheap and can come from any node on the network.
  • Storage and execution are relatively expensive. All nodes have to run and store everything.
  • Call a function on a contract by sending it a transaction with the function args in the data.

πŸ”§Build