Certified Blockchain Professional - Module 04: Bitcoin


As previously discussed, I'm doing the Certified Blockchain Professional course. It is self-directed learning, so I'm going through it at my own pace. In order to consolidate my learning, and help organise my thoughts, I'm blogging about my reflections on each module.

These are mostly notes to myself - but I hope if you find something interesting (or incorrect) that you'll leave a comment.

Another poorly edited chapter full of grammatical mistakes and logical leaps. Oh well! I've booked this course, so it's too late to back out now.

This is a massive chapter - and it took me a couple of sessions to get through it.

Bitcoin … has proven to be extremely secure and stable from a network and protocol point of view. As a currency, bitcoin is quite unstable and highly volatile…

Amazing! Yes, there have been few successful attacks. But its throughput is low and it doesn't work as a store of value.

It goes into a little of the history of digital currencies (as distinct from payments). For example Chaum's Blind Signatures paper. Chaum's paper is brilliant - an interesting scheme for issuing ballots, or money, which is relatively anonymous but easy to be de-anonymised with the consent of the parties. One core limitation is that it relied on a central authority to issue, check, and invalidate notes.

Similarly, the early e-Cash paper makes some interesting ideas - but it still relies on a central authority to check for double-spending. It also allows that central authority to revoke any coins which it has been issued.

The term Proof of Work emerged and got popular later with Bitcoin, but in Wei Dai's B-money a scheme of creating money was introduced by providing a solution to a previously unsolved computational problem. It was referred in the paper as a solution to a previously unsolved computational problem.

Seriously, this is the level of proof-reading in this book!

Anyway, hashCash was originally designed to stop spam by making it computationally unfeasible to send large amounts of spam.

The B-Money Paper presents an early form of cryptocurrency - using distributed databases where coins are created through solving mathematical puzzles. There's also a prototype smart contract as well. It also recognises the rapid advance in computing power which makes crypto so problematic.

Then there's the Auditable, Anonymous Electronic Cash paper from 1999. Introduces Merkle trees to represent coins and Zero Knowledge Proofs to display ownership.

Bitcoin can be defined in various ways; it's a protocol, a digital currency, and a platform. It is a combination of peer-to-peer networks, protocols, software that facilitate the creation, and usage of the digital currency named bitcoin. Nodes in this peer-to-peer network talk to each other using the Bitcoin protocol.

A bit sycophantic, but OK. I hadn't realised that Bitcoin was the protocol and bitcoin was the currency. Which one is the monster?

Private keys it Bitcoin are 256 bit secp256k1 ECDSA curve numbers. They are usually converted to Base58 (with a few other bits) to make the Wallet Import Format. This does not seem to make the string much easier to use. So what's the point? Mini private keys can be used where space is limited, like QR codes. (This seems odd, QR should have no problem with a 256 bit number.)

If you need to refresh the relevant cryptography concepts, you can refer to Chapter 4, Public Key Cryptography, where ECC was explained.

I am in Chapter 4. It has not described Elliptic Curve Cryptography. Ah, this book is plagiarising content from elsewhere!

The algorithm for constructing a wallet address - Public Key → SHA-256 → RIPEMD-16. Points to an utter failure of usability.

Happily admits that Bitcoin has no intrinsic value, but points to Metcalfe's law of networks to show proportional value to participants.

The Bitcoin structure is interesting but, again, rather theoretical. I don't understand why double SHA-256 is used.

A high level discussion of SPV and Stratum nodes. All very poorly explained.

Repetition of PoW. Bitcoin has a possible 21 million coins which are generated at a decreasing rate. There's no explanation for why they think this counters inflation.

Brief discussion of the "Script" language for bitcoin spending. Not Turing complete and no loops (to avoid hanging the network). It's a Forth style(!) language with Reverse Polish Notation.

UTXO - remaining scraps of coins not spent. Sounds like the plot of a Superman film.

Wallets don't actually "store" bitcoins. They are private keys which prove ownership of coins on the network. Most keys are non-deterministic. But you can have deterministic wallets which use human-readable words to create a keyphrase which "unlocks" the keypairs.

A "paper wallet" is just a bit of paper with they key printed on it. Challenge to keep safe.

Privacy - all transactions are public. Can use "mixers" - which is risky, but can disrupt graph analysis.

KYC is required in many parts of the world - as is effective securities regulations.

Various alternatives / extensions to Bitcoin to deal with its slowness etc.

Forking - either intentional or unintentional. Unintentional usually due to bugs. Hard forks require a new chain and new software. Soft fork, usually can continue working on the old chain with old software but might not be able to fully participate due to change in protocols.


Leave a Reply

Your email address will not be published. Required fields are marked *