This weekend I was looking at bit (ha!) at the Bitcoin code. Hoo boy, if you put as much as a single Zimbabwe dollar in that faulting piece of undergraduate code, you are doing it wrong.

  • it actually contains smart contracts but this is kind-of disabled because it is super broken
  • the blockchain contains both child pornography and a buffer overflow attack on the aforementioned smart contracts
  • for one type of transactions, you have to include a bit of garbage because there’s an old bug that’s being kept around for backwards compatibility
  • what’s network byte order? fuck that jazz, we use little endian
  • premature optimization leading to non-canonical number representation (you can represent 42 in 3 different ways, yay!)
  • blocks are less blocks and more stream that have to be read sequentially because damn near everything is variable-length
  • why would you be clear about signedness of numbers in my financial application? somebody apparently used this to steal more bitcoins than will ever exist once

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.