Certified Blockchain Professional - Module 03: Blockchain Mining
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.
The key to remember is that "mining" really means "solving cryptographic puzzles in order to validate a transaction". The original Bitcoin paper recommends "Proof of Work" on the flawed assumption that would dis-incentivise fraudulent transactions.
Solo mining means getting a computer and running the mining software on your own hardware. This was practical in the early days of Bitcoin, but not really feasible since the invention of specialised hardware. Because...
Mining Pools are groups of people with a vast array of hardware. The act as mini-share-based corporations. All members of the pool share the rewards. It's like a workers' co-op (but evil). Popular models include Pay Per Share (everyone gets an equal cut) and Proportional Fee (where those who contribute the most computing power get a proportionally higher reward).
There's a tedious discussion about the design of mining rigs. Basically Linux and the most powerful GPU you can find. With plenty of cooling.
The transition from CPU (general purpose hardware + general purpose algorithm) to GPU (general purpose hardware + specialised algorithm) to FPGA (Specialised hardware) to ASIC (application specific integrated circuits). None of which are profitable for the individual user any more.
The Sybil attack (51% or, more properly, 50% +1) is a reputation system attack which is possible when a majority of the mining power is controlled by one entity (or multiple entities acting in cohort). This doesn't occur in trust systems like permissioned blockchain.
A 51% attack can lead to double spending, reversing transactions, and total control of the ledger. This has happened several times. It is a feature of powerful pools. The only proposed solutions involve yet more Proof of Work.
Trust systems use computational power of the network to validate a transaction.
The "assignment" is to install PrimeCoin.
The PoW isn't mindless hashing, it's looking for mathematically interesting prime numbers (Cunningham chain and bi-twin chains). Which is fine, I guess. Primes are hard to find, but quick to verify. That said, PrimeCoin appears to be abandoned.
Overall, a rather confusing and vague module. Like most Blockchain texts, there's lots of handwaving.
What links here from around this blog?