Displaying 1 - 3 of 3

Testing Bitcoin with Testnet wallets and coins

Bitcoin is, among many things, a software system with many participants running Bitcoin software and who all connect to each other over the internet forming a Bitcoin network. It's a live system yet the software that runs it is continuously under development. This is what the Bitcoin Core dev team does, and sometimes they allow other people to participate in development like an open source project. There are other developers who also develop other Bitcoin code which fulfills the same purposes. Then all of the various Bitcoin nodes run a version of the software.

Of course, any...

Random number generation in JavaScript

Generating a random number in JavaScript is simple if you don't care about quality, more complicated if you do. When I say "in JavaScript" I mean both of the JavaScript runtimes - the browsers with their DOM/window, and Node.js without those things - and without all the modern browser APIs.

  1. The default, old-fashioned way to get a random number in JavaScript is by using Math.random(). However, the numbers produced from Math.random() are not secure for crypto applications as they are known to contain predictable patterns. The reason for this non-randomness isn't simply

  2. ...

What is a pseudo-random number generator (PRNG) and why do they matter?

Recently, a problem was discovered in the pseudo-random number generator which Google Chrome and Node.js's V8 JavaScript engine uses and depends on. The problem was that a pattern was discovered in the series of numbers which the RNG algorithm produced, meaning you could guess the "random" outcome at a probability higher than chance, giving you an advantage - whether the application is breaking encryption or passwords or beating games of chance.

Edward Snowden, who had worked for the CIA, warned of problems or backdoors in hardware random number generators which many computers...