| OP here. Swapping MD5 for SHA256 is very easy. I'll actually do it - see my other answer above for why MD5. For the other differences to bitcoin and from the top of my head : - In my implementation, wallet addresses are the public key of the owner. Bitcoin addresses are slightly more complicated [1] and a wallet can (and should) generate a new address for each transaction. - Bitcoin uses ECDSA instead of RSA - Bitcoin transactions use a (simpler than ethereum but still) scripting language [2]. - The whole communication part was left out : you need a way to broadcast blocks. I haven't looked into that - Bitcoin uses a Merkle tree to store transactions (and prune spent ones). I think the scripting and communication would be the two biggest tasks. But it would also require unit testing and obviously wouldn't fit in a single notebook. [1] https://en.bitcoin.it/wiki/Technical_background_of_version_1... [2] https://en.bitcoin.it/wiki/Script |
Was wondering, any specific reason to choose RSA vs ECDSA? Signatures would be smaller.
[1] https://en.wikipedia.org/wiki/Length_extension_attack