Shoot Bird
Workblogging: Blockchain Basics
Thu Dec 13, 2018 · 793 words

For some reason, I’ve found myself elbow-deep in Ethereum’s geth Github repository and am googling the finer points of token issuance and "where does Bitcoin come from".

In an effort to stay sane and make sure that if things fall out of my head, some of those things can be at least found here where future-me can point to and say "hey, you looked this up", I’m writing what I’ve found so far here. Hopefully, it’ll also be useful for you.

So here we go.

Concepts: Accounts

  • To transact on a blockchain network, you need an account.

  • Sometimes, these accounts are called wallets.

  • Each account is represented by one or more addresses, depending on the rules established by the blockchain network.

    • The Bitcoin network allows a single account to have link:multiple addresses. Bitcoin sent to any of these addresses will be credited to the same account.

    • Ethereum allows only one address per account.

  • Your account is not tied to your identity — no emails, no names, no phone numbers. The only way your account is definitively yours is that you know the key to open it.

  • You can own one or more accounts.

  • As far as the blockchain is concerned, you don’t exist on the blockchain — only your account does.

  • You can trace transactions to an account, but to tie an account to a person, you must have other corroborating evidence e.g. having that account managed by a platform that associates your email address with it.

Concepts: Private and Public Keys, Addresses

  • Each account has a private and a public key.

  • Private and public keys must operate in pairs to be cryptographically secure. (In Bitcoin’s case, because each account has multiple addresses, each address must have its own private-public key pair.)

Because there are many technically-correct ways to generate a key pair, we’ll keep it simple and assume here that we’re only talking about generating a key pair for the Ethereum network.

  • A 256-bit private key is randomly generated. This must be kept secret.

  • Using this private key, a 512-bit public key is derived.

  • The 512-bit public key is then hashed to produce a public key hex, which then functions as the account’s address.

  • A hash is a one-way function that takes some data, runs it through an algorithm, and produces a fixed-length string of characters.

  • Ethereum uses the Keccak256 hashing algorithm to hash the 512-bit public key into a 160-bit public key hash.

  • That 160-bit public key hash is then written out in base-16 (hex). What we get is a 40-character string (prefixed with 0x) like this: 0xc54f51438cdf5fe2f05ead3e6d53b6559b81a320

  • This is your account address.

Concepts: Blockchain as datastore

  • A blockchain is a decentralized and immutable store of data.

Decentraized:

  • All nodes in the blockchain network must agree/come to a consensus about the data written to the chain.

  • The network is designed to withstand manipulation by bad actors.

  • In a chain running a Proof of Work consensus mechanism, an actor must control 51% of the computing power on the chain to manipulate what data is written to the chain.

Immutable:

  • Data once written to the chain cannot be changed or removed. This means that you can only read or write records to the chain, but you cannot remove anything from it once written.

  • The only mitigation or recourse, then, would be to write a new record to the chain stating that the previously written data should be disregarded (or otherwise, depending).

Concepts: Cryptocurrencies and money supply

  • Cryptocurrencies ≠ Blockchain

  • Remember that blockchains are (1) distributed, and (2) immutable.

  • Cryptocurrencies work by using the blockchain as an immutable record of who owns how much currency.

  • When a transaction is made, a new record is written to the blockchain stating X amount of currency deducted from Account A is now credited to Account B.

  • Money supply is determined by the design of the blockchain network.

  • How much money supply there is for a particular cryptocurrency depends on how the cryptocurrency is designed to contain and produce.

    • Bitcoin is designed to have a maximum of 21 million bitcoins in circulation. The Bitcoin network is designed to release a fixed amount of Bitcoin for every block mined on the network. This trickle of Bitcoins for every block mined decreases over time, such that for every 210,000 blocks mined, the amount of bitcoins generated is halved.

    • Ethereum has no money supply cap. Each block mined adds a fixed amount of Ethereum to the money supply.

Other resources:

Work in progress:

  • What is the "crypto" in "cryptocurrency"?

  • Smart Contracts are bots on a blockchain.

  • What makes a Token.

Author | Zed is a former educator and currently a professional explainer. He writes about software, video games, and narrative design. If you have software or a system that needs explaining (to frustrated users, or you just need someone to write stuff down for you), you can contact him for work at zed@shootbird.work.

back · main · 打鳥 (shoot bird?) · hire us · blog