Una de las cosas que más importancia tiene en el mundo de las criptomonedas es la responsabilidad que el usuario toma respecto a la gestión de sus fondos. Puede tomar la decisión de optar por mantener sus activos cedidos a un tercero provocando que se pierdan algunas características de dicho activo, como serían:
La escasez del activo (no tenemos claro si el tercero mantiene el 100% de nuestros fondos o los ha prestado).
La censura, estaríamos sujetos a los designios de un tercero en lo que se refiere a libertad de movimientos de nuestros activos.
El anonimato, al tener que, en muchos casos proceder a identificarnos ante un Exchange centralizado para operar en el.
La decisión contraria es ser nosotros los propios custodios de nuestros activos, y es aquí dónde las cosas se ponen serias. Podemos decir que como en un árbol todo empieza en la semilla, y de la salud en la creación de esa semilla, como la conservamos y dónde la plantamos depende que el árbol este seguro, sano y pueda soportar los ataques a los que eventualmente podría enfrentarse.
Lo primero que deberías hacer, sino lo sabes ya, es ir al Especial Semilla y darle una vuelta a todo el concepto. Aquí solo veremos cuales son las diferentes alternativas a la hora de generarla.
Y ahora sí, ¿que opciones tenemos?
Definamos ante una palabra: Confianza, pero solo nos quedamos con los primeros puntos.
confianza
De confiar.
1. f. Esperanza firme que se tiene de alguien o algo.
2. f. Seguridad que alguien tiene en sí mismo.
Aquí jugamos con o bien confiar en un tercero o confiar en nosotros mismos.
¿Cuándo confiamos en un tercero?
Cualquier Hardware Wallet que tengas o vayas a comprar te va a ofrecer un sistema de generación de semilla. Dentro de todos los anteriores vas a encontrar sistemas abiertos, por ejemplo el que te ofrece Keystone Pro o Bitbox02 o sistemas más cerrados como el que pueda proporcionarte Safepal S1 o Ellipal.
En todos los casos el fabricante te va a decir que su sistema de generación de semilla lleva la suficiente entropía (aleatoriedad recogida por un sistema operativo o una aplicación para su uso en criptografía o para otros usos que requieren datos aleatorios.).
Ten en cuenta que estás confiando que un dispositivo similar a cientos vendidos por la misma empresa te va a generar un dato único. ¿Cómo de único es? Bueno si tienes tiempo te diría que pases a ver que dice Andreas Antonopoulos sobre las posibilidades de que alguien adivine o genere la misma seed que tu.
Combinaciones posible con 2048 palabras;
No conozco nadie, que una vez se da cuenta que las palabras que puedes generar están limitadas a 2048 no haya pensado, ¿y puedo caer en la wallet de <inserte aquí su Exchange de referencia>. Y si, si puedes. Con 20148 palabras hay un número limitado de direcciones bitcoin que pueden generarse.
Momento de matemáticas:
Bitcoin usa el RIPEMD-160 que es una cosa que no te voy explicar, para eso vas a la Wikipedia. Pero viene a determinar que existen 2^160 direcciones de bitcoin. Es decir multiplicar 2x2 y luego de nuevo x2 así hasta 160 veces. Si multiplico 20 veces son direcciones 524.288 direcciones. Si hago x2 de nuevo ya nos vamos a más de 1 millón….y ya empezamos a subir muy rápido. Y así hasta 160 veces x2 el resultado obtenido.
Bueno, que el numero dicen que es: 1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.976.
Lo dicen porque lo he buscado, no lo he hecho yo.
Eso son numero de direcciones únicas, que si lo dividimos entre los habitantes de la tierra tocamos a: 196.385.600.286.334.710.857.791.565.804.391.698.421 direcciones de bitcoin.
Más datos, ¿sabes cuantos granos de arena hay en la tierra? Se calcula que 2^63.
Hay mucha diferencia entre 2^63 y 2^160. Pero muuuuucha.
Si en cada grano de arena de los existentes ponemos tanta población como tiene la tierra, y dividimos el numero de direcciones de bitcoin entre esa población (población de la tierra x 2^63)…..aún tocamos a 3.5 miles de millones (o 3.5 billones americanos). Y aún podría si peor si usáramos la alternativa, SHA256.
Profundiza más en esto en este enlace, que es de dónde saqué la información.
Volvemos a la parte de que generas la combinación de palabras con el dispositivo:
Es decir si el dispositivo hace lo que te dice que hace no tendrás problemas. Te va a generar con toda certeza una combinación única de palabras solo para ti, a las que adicionalmente podrás añadirle una passphrase, que es una capa extra de seguridad, una palabra inventada por ti, que hace más difícil aún que alguien caiga en la clave privada que tu usas.
Pero, ¿Y si no? ¿Cómo no sabemos que ciertos dispositivos han sido alterados y están generando claves privadas predefinidas por el fabricante y que solamente tienen que esperar un tiempo para restaurar esa semilla cuando tu añadas fondos?
¿La semilla proporcionada por el ledger es segura? Por concepto Si, si lo es. Pero tendrás que confiar en que sea así.
En el fondo una semilla es generada por un software que puede ser auditable. Pero yo no conozco a nadie que haya verificado dicho código, siempre te fias de un tercero. Es decir:
Confío en el fabricante para generar mi semilla en su dispositivo pensando que está comportándose de manera legítima.
O confío en la persona que dice haber auditado el código que genera la semilla, que sea el mismo código instalado y que la persona tenga los conocimientos para encontrar un posible fallo en el.
Un ejemplo curioso lo tenemos en el caso de los dispositivos fabricados por Ellipal el Titan y el Titan Mini. Ninguno de ellos son dispositivos Open Source y tenemos que confiar en ellos en lo que a la generación de la seed se refiere. Como ellos saben de la importancia del Open Source (y aquí lo dicen) nos ofrecen una alternativa: El Ellipal Joy.
Básicamente es un dispositivo simple, solo hace una cosa, generar seed, sin almacenar, sin generar direcciones, con muy poco código, que no requiere conectividad a aplicaciones de móvil, ni uso de códigos QR. Su código es más sencillo de verificar y lo tienes disponible aquí. Pero ojo, a no ser que lo hagas tu, estás aquí aún:
Confío en el fabricante para generar mi semilla en su dispositivo pensando que está comportándose de manera legítima.
O confío en la persona que dice haber auditado el código que genera la semilla, que sea el mismo código instalado y que la persona tenga los conocimientos para encontrar un posible fallo en el.
Algo similar se puede hacer con la wallet Coldcard, aquí te dejo un video. Si que es cierto que es una wallet que no he probado y no conozco con detalle.
Dejemos de confiar en un tercero
Si hemos dicho que la lista de palabras se compone de 2048 palabras, ¿y si las elegimos nosotros mejor? Pues dicen que no somos buenos siendo aleatorios, y si lo dicen yo esas cosas me las creo. Y lo he leído desde siempre, “no elijas tu propia seed”.
Por un lado podríamos seguir este manual de Estudio Bitcoin dónde necesitamos elegir de forma aleatoria 23 palabras para lo cual lanzaríamos la moneda 256 veces y anotando 0 y 1 según tengamos cara o cruz como resultado. Dichos valores los introduciremos en una plantilla de papel.
Tendrás realmente un sistema binario de 0 y 1 que vas a tener que convertir en decimal y posteriormente cuando los lanzamientos de los dados estén convertidos a decimal podríamos obtener la lista de palabras, todo ello con lápiz y papel y usando matemáticas.
Pero nos falta una palabra, o al menos una parte. Piensa en este punto que sería como tener un DNI (un DNI es un documento de identidad en España que lleva asociado unos números y una letra, dicha letra se calcula en base a los números anteriores). Pues bien, tendríamos un DNI y tendríamos que calcular la letra a mano.
Para eso podemos hacerlo con un software en un ordenador 100% offline, o usando un SpecterDIY, un Hardware wallet que puedes hacerte tu mismo.
Si este sistema te parece interesante ya no es necesario que te lo describa más aquí, ve a la página web que te indico y documéntate y sigue bien el proceso. Es muy interesante y está muy bien explicado.
Aquí tendrías otro sistema similar, que al final acabas en el mismo problema, necesitas un software o un dispositivo que te genere la 24ª palabra.
Finalmente tienes el sistema que podrías obtener si usaras un Hardware Wallet:
Por un lado tienes la opción de usar Bitbox02 dónde con 5 dados, 1 moneda, y la plantilla e instrucciones que ellos te proporcionan podrías generar la seed en muy tiempo con mucho grado de privacidad, seguridad y entropía. En este sistema tienes que hacer 23 tiradas de 5 dados y posteriormente cara o cruz.
Keystone Essential y Keystone Pro tienen un sistema dónde en el momento de crear la seed te pide que hagas 100 tiradas de dados e insertes el resultado, inputs que supuestamente generan suficiente entropía para garantizar la aleatoriedad de la generación de la semilla. Es bastante más sencillo que el sistema anterior, aquí solo necesitas un dado, pero de nuevo debes confiar en que los inputs que tu introduces valen para algo. Aquí tienes las instrucciones con capturas de pantalla muy detalladas.
Adicionalmente, Airgap tiene un sistema que también puede valerte. Mira este enlace.
Finalmente
En todos los sistemas hay un paso, la obtención de la palabra 24º que no es aleatoria sino generada basada en la aleatoriedad de las 23 anteriores, para el que necesitas confiar en un tercero.
Cuantos más datos puedan haber sido obtenidos por ti, ya sea lanzando dados, monedas o fichas de los coches de choque más confianza tendrás en que la semilla ha sido generada de forma aleatoria y menos necesitas confiar en que el dispositivo no te da una semilla pre-generada.
Hasta la generación simple de una semilla en cualquier Hardware Wallet debería ser lo suficientemente segura, pero de nuevo te digo:
confianza
De confiar.
1. f. Esperanza firme que se tiene de alguien o algo.
2. f. Seguridad que alguien tiene en sí mismo.
Adicionalmente, usa una passphrase.
Y hasta aquí la forma de generar una seed de forma segura, aleatoria y de manera independiente, confiando lo que tu quieras (más o menos) en dispositivos y sistemas de terceros.
Y ahora bien, una vez que tienes la semilla, ¿has pensando en como conservarla? Y que información guardar además con ella? En breve estaremos hablando de una solución que pinta muy bien: Notebook Wallet.
Seguimos. Preguntas en los comentarios.