{
  "id": 7071846,
  "title": "Ethereum cryptography from a Go dev's view",
  "url": "https://urgent.news/2026/09/13/ethereum-cryptography-from-a-go-devs-view",
  "topic": "finance",
  "section": "Finance & Markets",
  "published": "2026-09-13T06:20:02.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/mohsenm4/ethereum-cryptography-from-a-go-devs-view-47h8"
  },
  "original_language": "en",
  "account": "A Go developer built an Ethereum wallet CLI to understand how wallets function beyond simply generating keys, addresses and signing transactions. The project revealed that wallets are more about making cryptographic decisions rather than just being a key container. The implementation exposed hidden complexities such as how random data becomes a human-readable recovery phrase, how one seed can generate thousands of keys, and how signatures can recover public keys. The CLI wallet was chosen for this learning purpose since libraries often hide complexity, but building the library exposes it.\n\nThe process begins with entropy, where for a 12-word mnemonic, BIP39 starts with 128 bits of random entropy. This entropy is then hashed using SHA-256 to form a checksum, which is embedded in the words themselves instead of being stored separately. The resulting bitstring is then split into 11-bit chunks and mapped to the BIP39 word list to form the mnemonic.\n\nThe mnemonic does not directly become a private key. Instead, it generates a seed, which becomes the root of a hierarchical deterministic (HD) wallet. A single master key is used to derive a whole tree of keys. Two types of derivation exist: hardened and non-hardened. Hardened derivation requires the parent private key, while non-hardened derivation allows public keys to be derived without the private key. This distinction is crucial as it prevents an attacker from deriving the master private key from an xpub and one child private key.\n\nEthereum uses secp256k1 as its elliptic curve. A signature in Ethereum usually looks like (r, s, v). However, unlike many other cryptographic systems, Ethereum does not include the public key in the signature. The signature carries enough information to recover the public key. This is a key difference that can lead to compatibility problems, as different tools represent v differently. The CLI wallet addresses this by normalizing the signatures before use.",
  "summary": "I built an Ethereum wallet CLI in Go because I wanted to understand what a wallet actually does. Not just: generate a key create an address sign a transaction done That was my mental model at the beginning. After implementing the pieces myself, I realized a wallet is less like a key container and more like a collection of cryptographic decisions, where small implementation details can break…",
  "key_points": [
    "Go developer built Ethereum wallet CLI to understand wallet functions",
    "Wallets focus on cryptographic decisions, not just key storage",
    "CLI wallet reveals complexities like entropy, seed generation, and signatures"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}