Stanford CS251: Lecture 11
Lecture 11: Altcoins
Three ways to improve Bitcoin
- Code update – This can update or change the P2P network
- Soft fork – To introduce a stricter verification for example P2SH
- Hard fork – transaction improvements and consensus change
Altcoin = Any cryptocurrency except Bitcoin
Launching an altcoin
- Sales pitch – new features
- Value/exchange rate
- Miners – the value of the currency will bring them or go for merge mining (explained below)
- Genesis block – For bootstrapping the right blockchain, it can be rooted in Bitcoin as well
- Mazacoin – For sovereign tribes in the US
- Auroracoin – For Iceland. Only 30K out of 300K claimed it. Price immediately tanked.
How to do the initial allocation?
- Just start mining – Bitcoin approach.
- Pre-mine – allocated to the founders or “pre-mine with delay” to allocate after a certain time has passed
- Hard fork Bitcoin – everyone who owns Bitcoin gets a proportion of the new currency
- One-way peg – Proof-by-burn of Bitcoin. The person burns Bitcoin by sending it to H(pk) = “Altcoin Id|Ka”. XCP (Counterparty) did this. One gets the coins by publishing the proof of burn onto a new chain. This sets up the ceil for the exchange rate as well as ceil for the new coin’s price.
- Two-way peg – side chains.
This requires a soft fork of BTC.
Mining new coin is risky since there is no mining power backing the new coin, coiledcoin was killed by 51% attack. Alternatively, launch using a new Proof-of-work.
Another alternative is merge mining – BTC miner can mine altcoins for free. Miners including the hash of the altcoin block in the coinbase of the BTC block. Altcoin becomes a little less efficient since one has to check both the validity of the altcoin and that the bitcoin block contains the hash of the altcoin block – the bitcoin block does not even have to be valid. That’s why it is possible to merge mine altcoin block faster than bitcoin as well.
Use Bitcoin blockchain as a ledger. For example, Mastercoin and Counterparty. The only problem is that one cannot prevent double-spending of an altcoin like that, so, one has to parse the full chain of Bitcoin to verify to ensure that the altcoin is not being double-spent => no light nodes are possible.
Application-specific Cryptocurrencies (Namecoin)
Namecoin’s goal was decentralized name-value mapping. Added three op-codes, NAME_NEW to add a new hash(name). NAME_FIRST_UPDATE to add (name, value) pair, and NAME_UPDATE to update the value for an existing name. Name claims expire after one year (unless updated). Hash was done to avoid front-running attack but a randomized commitment would have been better to avoid brute-forcing. This didn’t work that well in practice since all the good names were taken by squatters.