Entendiendo los Monederos (Wallets) para Bitcoin

Una vez que te convences de entrar al futuro del dinero y te preparas a comprar tu primer Bitcoin o fracción de el, veras que es necesario tener un monedero (wallet) para guardar tu dinero. Un monedero de Bitcoin (y otras criptomonedas) es un programa (software) que sirve para enviar, recibir y guardar tus Bitcoin. En realidad no guarda Bitcoin sino las Llaves Privadas (private keys) que te permiten consumir los Bitcoin de las direcciones publicas (Bitcoin address) a las cuales te dan acceso. La dirección publica o dirección Bitcoin es a su vez es una derivación de la Llave Pública.

Es decir, con la Llave Privada generas la Llave Pública, y con esta generas la dirección de Bitcoin (Bitcoin address, la que entregas para que te manden BTC). Todo esto lo hace tu wallet. Entonces, básicamente lo que tu wallet contiene es una lista de llaves privadas y su par de llaves públicas. Quien controla la llave privada es el dueño de los Bitcoin.

Por ejemplo si quieres recibir Bitcoin tu wallet crea una dirección para que otro usuario te puede enviar los Bitcoin. Lo que sucede por detrás es que tu wallet crea aleatoriamente una llave privada, con la cual crea una llave pública y finalmente te muestra la dirección Bitcoin generada de esta ultima.

Pero porque crear una dirección para cada transacción, no puedo hacer que envíen todo a la misma dirección, es decir, reutilizar la dirección? Es correcto, uno puede reutilizar la dirección y varias personas pueden enviar Bitcoin a la misma dirección, y como tu wallet tiene la llave privada puedes consumirlos. Pero existen dos potenciales problemas de seguridad:

  1. Es mas fácil saber de quien es la cuenta, y como la blockchain es transparente, cualquiera podría saber cuantos Bitcoin tienes en tu cuenta. Esto es el equivalente a que tu Banco publique tus nombres y apellidos con tu estado de cuenta.
  2. Cuando consumes tus Bitcoin de una cuenta debes firmar la transacción, y en esa firma se publica tu llave publica de la dirección usada. Si bien es extremadamente difícil derivar la llave privada de la publica, es aun mas difícil derivarla de la dirección Bitcoin (son 2 pasos versus 1 paso).

El punto 2 es la razón principal por la que se consume siempre la totalidad de Bitcoin de una dirección en cada transacción, lo cual nos lleva a otra función del wallet. Cuando consumes los Bitcoin de una dirección, es muy probable que no necesites consumir el total, es decir, se generara cambio. Este cambio es enviado en la transacción a otra cuenta generada por tu wallet (llave privada, publica y dirección) automáticamente. Es decir, de tu cuenta A que tiene 0.3 BTC enviás a B 0.1 BTC y tu wallet crea la cuenta C a donde dirige los 0.2 BTC de cambio.

Tu wallet guarda las llaves privadas en un archivo que por lo general se llama wallet.dat. Este archivo es vital, y si lo pierdes o te lo roban perderás todos tus Bitcoin. Entonces existen dos medidas de seguridad no negociables:

  1. Encripta tu wallet, es decir agrega una contraseña para poder leer el archivo wallet.dat. Tu wallet tiene una función para esto. Ahora si alguien roba tu archivo wallet.dat no podrá leerlo para hacerse de tus BTC.
  2. Haz copias de seguridad de tu wallet. Como podrás apreciar, después de cada transacción deberías hacer una copia de seguridad, pero por razones practicas, al menos al final de cada uso de tu wallet.

Este proceso de mantener un archivo con tu llaves puede ser tedioso y también peligroso si por alguna razón pierdes el backup del archivo, ademas que el mismo esta en una computadora que podría ser hackeada. Esto genero que los desarrolladores creen las hierarchical deterministic (HD) wallets. Estos monederos utilizan una lista de palabras, 12 o 24, para generar una llave privada raíz de la cual se pueden derivar innumerables llaves privadas, y con ellas innumerables llaves publicas y direcciones. Entonces ya no necesitamos guardar el archivo wallet.dat, sino solo necesitamos anotar las 12 o 24 palabras, y eso puede ser en una hoja de papel que no esta conectada a ninguna computadora y por lo tanto inhackeable. Claro que esta hoja debe ser también guardada en un lugar seguro, e idealmente, en varios lugares seguros.

Existen dos (2) categorías de wallets:

  1. Hot Wallet, aquellos que están constantemente conectados a Internet.
  2. Cold Wallet, aquellos que se conectan solo cuando es necesario mover BTC. Por ejemplo los Hardware Wallets y los Paper Wallets (wallets en papel).

Dentro de los Hot Wallet tenemos también tres diferencias:

  1. Lightweight o ligero, significa que el wallet lee la blockchain de otro nodo en Internet, lo cual da la ventaja de no consumir los mas de 200GB en tu disco duro para guardar la blockchain de Bitcoin.
  2. Full Node wallet, significa que el wallet baja a tu computadora la blockchain completa, lo cual de una ventaja de seguridad al no depender de un tercero.
  3. Web Wallet, que como su nombre dice son servicios de wallet en Internet. El problema es que en estos servicios no controlas tu llave privada y por lo tanto dependes de terceros, es la opción menos recomendable.

En los Cold Wallet exploraremos las dos opciones:

  1. Hardware Wallet, que guarda tu llave privada del tipo HD y te permite generar casi ilimitadas direcciones. Es muy segura porque solo la conectas a la PC e Internet cuando necesitas hacer transferencias.
  2. Paper Wallet, que lo que se entiende, un wallet de papel, donde esta escrita tu llave privada y dirección Bitcoin (así como el código QR). Esta también es muy segura porque no esta conectada a Internet, pero debes tomar en cuenta que para consumir los Bitcoin de la misma deberás importar tu llave privada a un Hot Wallet (software). Otro punto a tomar en cuenta es que siempre se consume el total, y por lo tanto el cambio lo recibirás en una nueva dirección que tu wallet generará, mientras que en la dirección del paper wallet no quedara nada.

Cual es el Wallet mas recomendable? Pues depende para que se quiere usar. Por ejemplo para el día a día, y montos pequeños, un wallet en el celular es bastante seguro y practico ya que permite leer códigos QR. Pero en general yo prefiero un hardware wallet como por ejemplo el Ledger Nano X.

Algunos Wallets:

  1. Mycelium (Android, IPhone)
  2. Unstoppable Wallet (IPhone)
  3. Electrum (Linux, Windows, Android, Mac)
  4. Exodus (Para principiantes, Linux, Windows, Mac, IPhone, Android)
  5. Atomic (Para principiantes, Linux, Windos, Mac, IPhone, Android)
  6. Bitcoin Core (Linux, Windows, Mac)
  7. Bitcoin Paper Wallet 
  8. Ledger Live, se usa con Ledger Nano (Linux, Windows, Mac, Androis, Iphone)

Ranking de seguridad de Wallets de peor a mejor:

  1. Servicio de custodia donde no controlas tu llave privada con interfaz web y sin 2FA (Two Factor Authentication), realmente quien guarde así sus criptos es un suicida. Ejemplo: Exchanges (Casas de Cambio)
  2. Servicio de custodia donde no controlas tu llave privada con interfaz web y con 2FA (Two Factor Autherntication). Ejemplo: Exchanges (Casas de Cambio, 2FA por SMS es un riesgo)
  3. Wallet basado en web no custodiado (es decir, uno mismo controla su llave privada) sin 2FA. El riesgo de phishing es alto. Ejemplo: blockchain.comMyEtherWallet usando el archivo Keystore
  4. Una PC con poca seguridad usando un wallet en caliente (hot wallet). Por ejemplo tener un Windows pirata, o un Windows sin todos los updates. Podrías tener instalado un troyano o keylogger.
  5. Apps de Wallet para el teléfono móvil donde controlas tu llave privada y tienes tu copia de Mnemonic keys.
  6. Hardware Wallet.

Ahora estas listo para iniciar tu camino por el futuro de la banca, la no banca, o la banca en tu bolsillo.

Deja una respuesta