Bitcoin: A Peer-to-Peer Electronic Cash System
- Bitcoin is an anonymous digital coin that changes hands based on unique cryptographic keys, validated through a decentralized distributed (P2P) ledger that A) is publicly-run by transaction chronology verification from decentralized volunteer compute nodes that solve a “proof-of-work” (proof of this node’s goodwill) in exchange for the coin itself and B) incentivizes actors with malicious intent to support the system because it is more profitable for them to perform A rather than attack it (antifragile).
- Contemporary currencies exchange hands through financial institutions that act as third-parties in fraud disputes, remove the possibility of double-spending, and increase overhead costs through acquiring trust (background checks/validations) in parties
- The alternative called Bitcoin consists of two parts: a digital coin of digital signatures, and a public time-stamp server run by public compute nodes (that anybody can partake and join) to verify public transactions (the blockchain) and prevent double-spending
- Wrap your head around the coin itself: It’s a history of transactions, with the latest transaction having a hash, a sender/payor (owner), and a recipient/payee (receiver).
- The blockchain is a history of previously verified transactions grouped into blocks, with public compute nodes verifying new blocks and adding to the chain
- Wrap your mind around this again: Each node is running independently, with it’s own copy of the blockchain, only interacting with its neighbors (decentralized).
- If there is a lag and two candidate blocks are circulated around, the longer one wins out (Re-organization)
- Each node is collecting it’s own block to verify real transactions (senders and receivers), and also acts as an independent validator of what other nodes send and claim as “verified new blocks” before it is accepted to it’s local blockchain (there is no ‘global’ blockchain)
- In other words: every node is attempting to verify a non-mutually exclusive subset of all the unconfirmed transactions it has received and selected by first verifying the right signatures of senders, then solving an arbitrary hard search problem to prove it’s marbles, and sending out the solution for approval by other nodes if and when it solves it
- The Merkle is a chained hash tree of transactions as its leaves, grouped together hierarchically with a unique root hash which is the block hash
- The security comes from the public and the decentralization: there is a checks and balances in everyone is trying to verify new transactions, and the one who succeeds must present its case for other nodes to verify, to finally get rewarded more coin and add its block to the chain
- The mint is the network: the one who adds the block successfully completing the proof-of-work gets the chest of new bitcoin
Reference: Screenshot from blockchain.com
The process (
Protip: It’s intuitive to play around and look through blockchain.com’s history )
- Summary: new transactions are passed around, each node selects transactions to put in it’s own merkle tree (block), then brute-force searches the solution to the root of this merkle tree block, and sends it to other nodes to verify and add to their chains.
- At any given point in time, there may be different versions of blockchains, but the “true/verified” majority voted version will converge as the nodes vote to find it
- Transactions contain multiple inputs and outputs to split and combine value
- Anonymity is maintained (but not bulletproof) because public keys (bitcoin address wallets) are not linked to identity. New key pairs every transaction can mitigate this, but linking still carries some risk