Opcionalmente, lo único que necesitas es un calculador de SHA-256. Si tienes linux puedes probar lo siguiente:
echo -n "Esta es mi brainwallet" | shasum -a 256
Esto te dará la clave privada que luego puedes importar a un monedero Bitcoin que luego te dará la dirección pública. Opcionalmente también puedes usar una versión offline de Bitaddress.org y en wallet details te dará la dirección pública de la dirección privada.
Es decir, únicamente necesitas un calculador de SHA256.
¿Qué?¿Cómo?¿Qué?
Repite eso con más detalle, por favor. Antes que cualquier calculadora del internec para brainwallets me fio mucho más de un programa que traiga de serie linux.
Una brainwallet es una clave privada formada pasando un texto a través de un Hash SHA256. La página web brainwallet.org hace exactamente lo mismo.
Un hash es una función matemática irreversible que identifica de manera única aquello que procese. Es como una huella digital.
Es decir, si yo hago el hash de "Hola, te doy 1 BTC" el resultado será algo parecido a:
"f8d607abf8d5552402bad661643d712b786ad8cd6a2ac993873e562cd4ae44c9"
Esta es la huella digital de la frase anterior. Si yo cambio un sólo bit, letra o dígito de la frase anterior el hash es totalmente distinto. Supongamos que un falsificador cambia la frase y pone "Hola, te doy 1000 BTC" entonces el hash sería:
"1c069b3a1938c07a3f08df1d9781a8848cf2b9716eececdc052e57cbf2fc1bb8"
Como puedes ver es totalmente distinto. Este es principio fundamental que permite la firma digital y las transacciones de Bitcoin.
Además, ningún otro texto dará el mismo hash.
Las propiedades del hash pueden también ser usados para crear claves privadas Bitcoin. Generalmente, cuando se genera una dirección bitcoin suele usarse un número aleatorio. Una brainwallet, sin embargo, toma como fuente una frase de texto.
Sabemos que todas las claves privadas de Bitcoin tienen 256 bits. ¿Cómo convertimos un texto cualquiera en un número único e irrepetible de 256 bits? ¡Usando un hash de 256 bits! En este caso se trata de SHA-256, una función hash muy conocida.
Escribe esto en cualquier terminal linux:
echo -n "Esta es mi clave privada" | shasum -a 256
Aquí estamos usando dos programas. En primer lugar "echo" y el argumento -n reproduce el texto tal y como lo escribimos y lo envía mediante la tubería ( | ) al programa shasum. El programa shasum lo pasa por el hash Sha-256 usando el argumento "-a 256".
Y así obtenemos:
732400c7f6fd900844917005b6a8d7011691fcc96ee9f2009a6796f16f228ad8
Si vas a brainwallet.org y escribes "Esta es mi clave privada" (sin comillas y respetando mayúsculas) obtendrás el mismo resultado.
El resultado es un número que está escrito en hexadecimal y que muchos programas como Blockchain, multibit, electrum o armory aceptan para importar una clave privada. Una vez importes esa clave privada te dirán cual es la dirección pública que le corresponde.