Post
Topic
Board Development & Technical Discussion
Re: Reused R values again
by
johoe
on 15/12/2014, 20:53:35 UTC
Are you sure this is incredible incompetence? The transactions are no reusing the same R values but there are an (unknown) patterm instead. That cannot be incompetence nor accident, it has to be programmed as it is in bc.i by developers (very talented developers indeed).

I know this pattern and I know how it was "programmed in".  It was a bug: one variable was not initialized.

It's bad that this was not caught before it went into production.  Testing a random number generator is of course hard.  How can you see whether a random number is really random.  One needs to restart the program several times to get a collision.  In this case a unit test or some additional debugging outputs checking that the changed code behaves correctly would have helped, though. The javascript code is sometimes a bit messy and the fact that javascript has no type-checking makes such problems harder to avoid.

You can also ask, who profits?   This incident has given bc.i bad publicity, a lot of work to handle support request, and some bitcoins have been stolen.  Of course, I profited from this a lot - but I'm sure bc.i doesn't think I caused it.

PS: I'm still seeing week R values in some transactions!  Most are okay, but someone is still using the bad RNG.