New & Alternative Cryptocurrencies

Topics Key Management · Hierarchical Wallet · Exchanges · Anonymity · CoinJoin · Timestamping · Overlay Credits Bonneau · Felten · Narayanan · Miller
01 //

Bitcoin Operations & Key Management

A valid transaction requires info from the blockchain and a signature from the owner's secret key. Key management - keeping the private key secret and secure - is central.

Simplest Approach

Store key in a file on computer or phone. Very convenient; as secure as your device.

Risks

Device compromised → key leaked → coins stolen. Device lost/wiped → key lost → coins lost.

Wallet Quiz
  • Hot storage - online; convenient but risky
  • Cold storage - offline; archival but safer

Best of both: use separate keys for hot and cold. Move coins between them; each side needs the other's addresses. If hot is compromised, cold coins stay safe if keys are separate.

02 //

Hierarchical Wallet

Problem: Want a new address per coin sent to cold. Cold is offline - how can hot learn new addresses?

Awkward Solution

Generate a big batch of addresses/keys, transfer to hot beforehand. Drawback: hot must reconnect with cold periodically for more.

Better: Hierarchical Wallet

Instead of single (sk, pk), generate address generation info and private key generation info. From these, derive sequences of addresses and keys such that the ith address pairs with the ith key. Address gen info does not leak private keys. Bitcoin's ECDSA supports this.

Flow
  • Cold: creates and saves both gen infos; one-time transfer of address gen info to hot
  • Hot: generates new address sequentially when sending coin to cold
  • When cold reconnects: generates addresses sequentially, checks blockchain for transfers; can generate keys to send back to hot

Cold Storage Options

Brain Wallet

Encrypt info under passphrase user remembers

Paper Wallet

Print on paper; lock it up. Can rot, be lost, torn, stolen.

Tamperproof Device

Signs for you but won't divulge keys

Cold Wallet Quiz
  • Paper - can rot, be lost, torn, stolen
  • Coin (physical BTC) - if Mg, Sn, Pb, can be destroyed by fire
  • Online - multiple overwrites don't ensure discarded computers can't be hacked
  • USB - data hard to recover if device is old
  • Offline - can be damaged by magnets
03 //

Bitcoin Exchanges & Proof of Reserve

Exchanges accept deposits of Bitcoin and fiat ($, €). Let customers make/receive payments and buy/sell BTC for fiat. Like banks: promise to pay back on demand.

Proof of Reserve

Two parts: (1) Prove you have at least X reserve - publish valid payment-to-self of that amount; sign challenge with same key. (2) Prove customers have at most Y deposited. Reserve fraction ≥ X/Y. No central regulator required.

Merkle Tree with Subtree Totals

Binary tree of hash pointers; each node includes total value in its subtree. Root value = total liabilities. Each customer gets O(log n) items to verify inclusion; if every customer checks, every branch is explored.

Merkle Tree Quiz

Two Merkle trees comparable if same hash depth. Same root hashes ⇒ data blocks the same. In a Bitcoin block, Merkle root stored in block header.

04 //

Anonymity in Bitcoin

Bitcoin addresses = public key hashes (not real identities) → pseudonymity. In CS: anonymity = pseudonymity + unlinkability.

Unlinkability in Bitcoin
  • Hard to link different addresses of same user
  • Hard to link different transactions of same user
  • Hard to link sender to recipient
Anonymity Quiz
  • True: Timestamping service prevents double-spending
  • False: Each user has a single Bitcoin
  • False: Expenditure cannot be tracked - coins can be tracked by chain of signatures

De-Anonymization

Trivial to create new address; best practice = fresh address per receive. Still linkable:

Identifying users: flows through exchanges (traceable); address–identity links in forums; high centralization in service providers.

05 //

Decentralized Mixing: CoinJoin

Proposed by Greg Maxwell. Each signature is separate; mixing principles apply on top of the protocol. Single transaction mixes coins from a group.

CoinJoin Algorithm
  1. 1
    Find peers who want to mix
  2. 2
    Exchange input/output addresses (order randomized)
  3. 3
    Construct transaction
  4. 4
    Send around; each peer checks output is present; collect signatures
  5. 5
    Broadcast transaction
Unlinkability

Participants must exchange addresses so even other peers don't know input→output mapping. Need anonymous communication (e.g., Tor) for inputs. Outputs need not be communicated securely.

06 //

Secure Timestamping & Bitcoin

Goal: Prove knowledge of x at time t (optionally without revealing x). Publishing H(x) is a commitment to x - can reveal later. Applications: proof of knowledge, proof of receipt, hash-based signatures.

Timestamping in Bitcoin

Simplest

Send money to hash of data. Burns coins. Pros: compatible, easy. Cons: unspendable UTXO forever; miners must check forever.

CommitCoin

Encode data into private key; exploit ECDSA property (bad randomness leaks key). Avoids burning; miners don't track unspendable. Very complex.

OP_RETURN

Instruction returns error; data never executed. Encode arbitrary data (e.g., 80 bytes). Preferred since 2014.

Websites collect commitments, combine into Merkle tree, publish one output with tree root - batched timestamping.

07 //

Overlay Currencies

Use Bitcoin as append-only log; write overlay currency data via unspendable outputs. No new consensus mechanism needed.

Properties
  • Miners don't validate overlay data; anyone can write if fee paid
  • Overlay needs its own validation logic in each end-user client
Mastercoin Example

Pros: Smart contracts, user-defined currencies; no new consensus. Cons: Still dependent on Bitcoin; inefficient - overlay must process lots of data (nodes don't filter).

08 //

Summary

New & Alternative Cryptocurrencies - Takeaways
  • Key management - hot (online, risky) vs cold (logged out, safer); hierarchical wallet for cold/hot coordination
  • Proof of reserve - payment-to-self + Merkle tree with subtree totals; independently verifiable
  • Anonymity - pseudonymity yes; unlinkability no (shared spending, change outputs link addresses)
  • CoinJoin - decentralized mixing; anonymous comm for unlinkable input/output exchange
  • Timestamping - H(x) commitment; OP_RETURN preferred; CommitCoin avoids burning
  • Overlay currencies - write into Bitcoin blockchain; e.g. Mastercoin