Bitcoin, Explained — The Technical Side of Bitcoin

Episode 83: The Milk Sad Vulnerability

In this episode, Aaron (@AaronvanW) and Sjors (@provoost) discuss a vulnerability in Libbitcoin dubbed “Milk Sad”, which allowed people to generate private key seeds with such weak entropy that their private keys could b...

2023-08-17

Episode notes

In this episode, Aaron (@AaronvanW) and Sjors (@provoost) discuss a vulnerability in Libbitcoin dubbed “Milk Sad”, which allowed people to generate private key seeds with such weak entropy that their private keys could be brute forced and their coins stolen. Aaron and Sjors examine how this vulnerability (could have) ended up in Libbitcoin as well as in Andreas Antonopoulos’ book Mastering Bitcoin, to what extent it should be considered a bug, and more.

For more information on Milk Sad, see: https://milksad.info/

Libbitcoin lead developer Eric Voskuil on Milk Sad: https://youtu.be/3uwl5xDdc7c


Addendum 2023-08-18: The Mersenne Twister pseudo-random number generated was not intended to be cryptographically secure. So my claim that it was thought to be secure was incorrect. It’s simply the wrong tool for the job (of creating a private key with real money at stake).


Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425


Chapters


00:00:00 Listener boosts and Lightning payment splits

00:01:50 Milk Sad and the Libbitcoin toolkit

00:06:18 The unsafe bx seed command

00:09:11 32-bit seeds, stolen coins and Trust Wallet

00:14:21 Mastering Bitcoin and the changing library

00:20:56 Why use an insecure random number generator?

00:25:46 Vague warnings and the risks of making your own keys

00:33:53 Was Milk Sad intentional? Examining the evidence

00:40:24 Preventing misuse and risks to other wallets


THIS EPISODE’S SPONSORS:


⁠Voltage Cloud⁠


⁠Bitcoin Magazine⁠