Blockchain Laboratory: βΏitcoin experiments.
brew tap danielfalbo/homebrew-formulae
brew install blockchainlab
Run
blockchainlab
to launch the app in interactive mode: it will guide you through the desing of your own experiment.
blockchainlab <experiment>
Bitcoins are transferred between agents and transactions are validated by miners competing in constructing blockchains.
A malicious agent attempts to create a double-spending transaction by submitting multiple payment attemps summing up to a larger amount of coins than he owns. Will the system allow them to spend more than they own?
A malicious miner attempts to create an invalid block that includes a transaction moving bitcoins to their wallet from someone else's without their consensus.
An attacker gains control of more than 50% of the mining power in the network. Will them be able to validate new malicious transactions and get the invalid blocks to survive in the blockchain?
A malicious agent attempts to flood the network with bogus transactions to disrupt the validation process. Will this slow down the network?
A selfish miner attempts to manipulate the network by withholding valid blocks they have found in order to gain an advantage over other miners. They may then release multiple blocks at once in order to invalidate the work of other miners and gain a larger share of the rewards.
Want to contribute? Read the Developer's Notes
- MultithreadedMiner
- Have
MultithreadedMiner
s get the blocks to mine from some sort of shared queue "pool", and notify all other miners to stop working once a block is mined. - Have
MultithreadedMiner
s to push mined blocks onto another different sort of "pool" of mined blocks, for nodes/validators/whoever to validate them with the blockchain and eventually merge them. - We'll figure it out.
- Professor Pietro Cenciarelli's Assignment (original pdf, md transcript)
- But how does bitcoin actually work? by 3Blue1Brown
- Blockchain 101 - A Visual Demo by Anders Brownworth
- TeachYourselfCrypto
- Whiteboard Crypto
- Satoshi Nakamoto's Bitcoin Paper
- Vitalik Buterin's Ethereum Paper
- My notes for professor Pietro Cenciarelli's course on Programming.