#+date: <2025-07-07 Mon 00:00:00> #+title: Blockchain Series #1: How Blockchain Works Under the Hood: Hashes, Keys, and Signatures Explained #+description: Dive into blockchain's cryptographic foundations. Explore how hash functions, Merkle trees, and digital signatures secure distributed, tamper-resistant ledgers. #+slug: how-blockchain-works #+filetags: :blockchain:encryption: #+draft: t /This is Part 1 of a series I'm writing on blockchain. Stay tuned for further editions./ Blockchain is one of those technologies that seems to generate more marketing buzz than real understanding. Everywhere you look, people talk about decentralization, trustless systems, and the next big disruption. But beneath the hype, blockchain systems rely on well-understood cryptographic building blocks to do something very specific: maintain a secure, tamper-resistant ledger without needing a central authority. If you're serious about understanding blockchain, it's critical to understand the cryptographic primitives that make it work. Hash functions, digital signatures, and public-key cryptography aren't just jargon—they're the core mechanisms that let a distributed network agree on a shared history no one can easily rewrite. This post is Part 1 of a multi-part series on blockchain. Here, we'll focus on these fundamental building blocks—how they work, why they're used, and how they fit together to provide the security and trust that blockchain promises. * What is Blockchain? At its core, a blockchain is a distributed, append-only ledger shared among participants in a network. What does this mean? Essentially, we can think of a standard, non-technical ledger (book of accounts where transactions are recorded against accounts). When introductin the idea of a blockchain, let's extend the idea of a standard ledger and make a few connections: - Each block of transactions is connected cryptographically to the block before it, via a [[https://en.wikipedia.org/wiki/Cryptographic_hash_function][cryptographic hash]]. This is what forms a =chain= of blocks, or records. - Each block consists of: - A list of validated transactions - A timestamp - A cryptographic hash of the previous block (ensuring immutability) - Each transaction within a block is initiated between addresses, signed with cryptographic keys, and sent to the blockchain for validation (e.g., proof-of-work, proof-of-staking, etc.). - The blockchain is shared amongst nodes in the network, who agree on the state of the blockchain through consensus mechanisms. As we can see, the decentralized nature and cryptographic linking of transactions and blocks ensures that modifying the history is infeasible. If you're more of a visual person, here's a very basic diagram of a standard blockchain structure. #+begin_example +------------+ +------------+ +------------+ | Block 1 | -> | Block 2 | -> | Block 3 | |------------| |------------| |------------| | Data | | Data | | Data | | Prev Hash: | | Prev Hash: | | Prev Hash: | | 00000000 | | | | | | Hash: | | Hash: | | Hash: | | | | | | | +------------+ +------------+ +------------+ #+end_example * What Problems is Blockchain Trying to Solve? I will be diving into the technical details of blockchains later in this post, but what exactly is the reason blockchain exists? You may know of cryptocurrencies, such as Bitcoin, but that is only one of many use cases for blockchains. As we learned in the section above, a blockchain can be equated to a ledger. With this in mind, let's dive into a few interesting use cases: ** Immutable record-keeping If you simply need a ledger that cannot be modified easily and can establish a decentralized network to support that, blockchain is a great technology. ** Trust without central authority The use of a decentralized system means that we do not need to rely on a centralized authority (e.g., Social Security, a bank, etc.) to store and provide access to information you need to record. Think of the US Social Security Number (SSN) system. Each time you want to perform actions that require verifying your identify (e.g., opening bank accounts, investment accounts, child birth, etc.), you are currently required to provide your SSN. However, this is a singular number - which means that if someone learns it, they can (essentially) now act as you. Now imagine a scenario where the SSN system is a blockchain where you have both your private key for providing evidence to people that you are you. For example, you open a bank account and sign your form with your private key. Now, the bank can take that and use your public key to decrypt the message and verify that you are you, without needing to know your private key. Another scenario is that, during a background check, a company could use your public key and consult the related blockchain to validate specific pieces of information. For example, if your identity alone is in one block, you could provide that information to your employer without providing your full SSN and all related personal information for as long as they keep your SSN on file. ** Double-spending problem With the introduction of digital assets, such as cryptocurrencies and non-fungible tokens, a new risk is introduced: without control, these assets could be copied and reused at-will. To solve this problem, digital assets are transacted on a blockchain to ensure that the decentralized system of nodes provide consensus on validating transactions, transactions are recorded in a transparent and tamper-resistant manner, and cryptographic functions are performed to order the transactions logically on chain. * The Role of Cryptography in Blockchain - Why cryptography matters - Confidentiality vs. integrity/authenticity - Core goals: - Tamper-evidence - Secure identification - Non-repudiation * Hash Functions - What is a cryptographic hash? - Properties: - Collision resistance - Pre-image resistance - How blockchain uses hashes: - Chaining blocks together - Block headers - Transactions - Example command: #+begin_src bash echo -n "Hello, Blockchain" | sha256sum #+end_src - Optional diagram: chain of blocks with hashes * Merkle Trees - Summarizing many transactions in a single root hash - Use case: efficient inclusion proofs - Example diagram (ASCII art if desired) - Why Merkle roots are in block headers * Public Key Cryptography - Quick refresher - Public/private keypairs - Addresses derived from public keys - Importance of keeping private keys secret * Digital Signatures - Purpose: proving authorship without revealing private key - Mention ECDSA / EdDSA - How transactions are signed - Example snippet: #+begin_example Alice signs transaction with her private key → Anyone can verify with her public key #+end_example - Why signatures prevent forgery * Bringing it All Together: Blockchain Data Structures - Block structure: - Block header with previous block's hash - Merkle root - Timestamp, nonce - How the chain ensures immutability - Example flow: 1. User creates a transaction 2. Signs it 3. Transaction included in block 4. Block hash links to previous block * Proof of Work (Optional) - Hash puzzles to add blocks - Why it's hard to modify history - Keep this section simple * Conclusion - Summarize how these primitives work together - Tease next post: "Next, we'll explore security threats and how blockchain networks mitigate them." - Optional links to further reading: - Bitcoin whitepaper - Ethereum docs - Cryptography references * Optional Extras - Glossary box with terms (hash, signature, Merkle tree) - External references (e.g., NIST docs on hashes)