Tutorial: Creación de billetera bitcoin multifirma y ejemplos de uso

  • Autor Autor Mautematico
  • Fecha de inicio Fecha de inicio
Mautematico

Mautematico

Gamma
Verificación en dos pasos activada
En este hilo te mostraré cómo crear una billetera bitcoin multifirma, con un ejemplo práctico usando tres dispositivos:
  1. una PC (con GNU/Linux, macOS, Windows, vale para los tres)
  2. un Android
  3. un iPhone
Si sigues el ejemplo de este post, podrás crear tu propia billetera bitcoin multifirma, que te será útil para varios casos de uso. Por ejemplo:
  • Tener una billetera de ahorro con tu pareja, donde son obligatorias las firmas de ambas partes para gastar los fondos.
  • Tener una billetera compartida con tus socios, que permita que sólo si la mayoría* se pone de acuerdo, gasten los fondos.
  • Tener una billetera con doble llave (llave 1 + llave 2) y, además, una llave de respaldo (llave 3) que podrás usar en caso de pérdida de alguna de las principales.
  • Tener una billetera sin punto único vulnerable: ¿qué tanto confías en que tu PC no está infectada con un keylogger? ¿y tu teléfono?

Voy a usar una billetera de software diferente en cada dispositivo, a fin de mostrarte que hay varios estándares que permiten la interoperabilidad entre distintas billeteras y dispositivos.

Específicamente voy a usar:
  1. Sparrow Wallet para la PC de Alice​
  2. Electrum para el Android de Bob​
  3. Bluewallet para el iPhone de Carol​

1. Cada quien instala su propia billetera

1705550319066.png1.1 Para instalar Sparrow Wallet en PC, Alice descarga el ejecutable, ejecútalo y sigue las instrucciones del asistente, hasta llegar a la pantalla de conexión.

Aquí hay varias opciones avanzadas que están fuera del tema de este hilo. Una pantalla correcta de Sparrow listo para crear una nueva billetera, luce así:





1705550741617.jpeg1.2 Electrum para Android está disponible en el sitio web de Electrum y también en Google Play - Electrum. Bob instala y sigue el asistente hasta llegar a la pantalla de crear nueva billetera, que es esta:





IMG_0014.webp1.3 BlueWallet para iOS está disponible en la App Store - BlueWallet. Carol lo instala y abre, y se queda en la pantalla que muestra que no tiene billeteras, ni transacciones, ni nada:
 
Última edición:
2. Cada quien genera su propia clave privada
2.1 Alice genera una semilla BIP39 de 24 palabras en Sparrow Wallet.
Objetivo:
Generar la clave de Alice.
Tener a la vista la Zpub que usaremos más tarde.

Usando la opción "New or Imported Software Wallet", Alice genera su clave privada a partir de una seed de 24 palabras, con el estandar BIP39.
En este ejemplo, la seed BIP39 de Alice consiste en las siguientes 24 palabras:


1705550988017.pngmatrix olympic cactus silent pupil sunset crouch this tunnel comfort borrow cube mention solve emerge alert indicate focus hard ankle enable grief nurse survey

Estas 24 palabras son estrictamente confidenciales y únicamente Alice debe conocerlas; quien las conozca, podrá firmar en su nombre. (claro que las comparto aquí con fines didácticos, para que tú que estás leyendo el hilo puedas seguir los mismos pasos y obtener los mismos resultados).

En estas pantallas hay varias opciones avanzadas que están fuera del alcance de este hilo, así que no las abordaremos por ahora.

1705551473855.pngConfiguraciones importantes:
Policy Type: Multy Signature
Cosigners: 2 / 3
xpub / Zpub: Zpub (cámbialo con el icono )
Label: Alice (esto es solamente una etiqueta, pero ayuda a tener claridad)

Al final de este paso, Alice tiene a la vista su propia Zpub, como se ve en la captura de pantalla.
Esta es una representación de la clave pública de Alice, que tendrá que intercambiar con Bob y Carol más adelante, para completar la configuración de la billetera multifirma.



2.2 Bob genera una semilla de 12 palabras usando Electrum en su Android.

Objetivo:
Generar la clave de Bob.
Tener a la vista la Zpub que usaremos más tarde.


1705552045061.jpeg1705552400803.jpegUsando el asistente, Bob selecciona Multi-signature Wallet y configura 3 cosigners y 2 firmas, como se ve en las capturas de pantalla. Es fundamental que esta configuración coincida con la de Sparrow, de otra forma, las billeteras generadas serán inconsistentes.



Siguiendo el asistente, Bob genera su propia semilla de 12 palabras; para este caso, las 12 palabras son:
bundle monster jaguar adjust bid toss author zone draft surprise spell crystal
Estas 12 palabras son estrictamente confidenciales y únicamente Bob debe conocerlas; quien las conozca, podrá firmar en su nombre.

Bob debe tomar nota (por ejemplo, en una tarjeta de papel) de estas 12 palabras, preservando el orden. La pantalla siguiente pide que Bob confirme las 12 palabras, ingresándolas con un teclado personalizado de Electrum.

1705552032884.jpegAl final de este paso, Bob tiene a la vista su propia Zpub, como se ve en la captura de pantalla.
Esta es una representación de la clave pública de Bob, que tendrá que intercambiar con Alice y Carol más adelante, para completar la configuración de la billetera multifirma.



2.3 Carol genera una semilla de 12 palabras usando BlueWallet, x

Objetivo:
Generar la clave de Carol
Tener a la vista la Zpub que usaremos más adelante


IMG_0019.webpIMG_0017.webpIMG_0018.webpSiguiendo el asistente, Carol inicia el proceso para crear una nueva billetera y selecciona la opción Vault. De forma predeterminada, los Vault de BlueWallet están configurados para crear billeteras multifirma 2-de-3, como se muestra en las capturas.

En el paso siguiente, Carol selecciona Crear nueva clave de la Vault 1.
En este ejemplo, la clave está representada por la siguiente semilla de 12 palabras, que sigue el estandar BIP39:

excuse mandate sweet mind miss inspire melody kite delay misery nut flower
Estas 24 palabras son estrictamente confidenciales y únicamente Carol debe conocerlas; quien las conozca, podrá firmar en su nombre.

IMG_0020.webpEn seguida, Carol da clic al botón de Compartir, lo cual muestra un código QR que es una representación de la clave pública de Carol, que tendrá que intercambiar con Alice y Bob más adelante, para completar la configuración de la billetera multifirma.

 
Última edición:
3. Alice, Bob y Carol intercambian sus claves públicas

Ahora viene el paso colaborativo:
Cada quien tiene un almacén de claves incompleto en este punto; el almacén debe tener 3 participantes (3 claves) pero cada quien tiene únicamente su propia clave.

IMG_0020.PNG1705554784134.png1705554806689.pngLas tres aplicaciones involucradas (electrum, sparrow y bluewallet) son capaces de exportar e importar las claves usando códigos QR.
Las claves públicas de Alice, Bob y Carol se ven como en las capturas de pantalla:


Aquí hay un punto fino y es que BlueWallet codifica el QR usando UR 2.0, mientras que Electrum no lo soporta. Esto hace que actualmente se requieran pasos extra para que Carol le comparta su clave pública a Bob. ¡No te preocupes! Sparrow sí es compatible y, de hecho, es capaz de transformar de UR 2.0 a un formato que sí es compatible con Electrum, así que el problema se resuelve si hacemos el intercambio en este orden:

  1. 1705556777997.png1705556684656.pngAlice escanea la clave de Bob
  2. Alice escanea la clave de Carol
  3. Carol escanea la clave de Alice
  4. Carol escanea la clave de Bob
  5. Bob escanea la clave de Alice
  6. Alice le muestra a Bob el QR de la Zpub de Carol, Bob la escanea
  7. Bob corrobora que la Zpub que escaneó efectivamente sea la misma que muestra en texto el iPhone de Carol.

Una vez que las tres tercias de claves están completas, solamente queda generar la billetera:

1705559712847.webp1705559418651.webpEn sparrow, Alice da clic en el botón Apply, que está abajo a la derecha. En electrum es obligatorio que Bob cree una contraseña de 8 letras (o más) para la billetera. En blue, Carol debe dar clic al botón Crear que se encuentra en la parte inferior de la pantalla
 
Última edición:
4. Cada quien obtiene la misma billetera que las otras dos personas

1705559886713.webp1705559899065.webpCaptura de pantalla 2024-01-17 a la(s) 11.50.45 p.m..webpEn este punto, Alice, Bob y Carol terminaron de crear su billetera multifirma 2-de-3. Dado que las tres billeteras son la misma, cada quien de forma independiente puede verificar que las direcciones para recibir bitcoin son las mismas en las tres aplicaciones:
 
Última edición:
5. Dos firmas son necesarias y suficientes para gastar los fondos

¿Qué pasa si se pierde el iPhone de Carol, y además Carol nunca tomó nota de su semilla de 12 palabras?
No hay problema, los fondos siguen seguros porque Alice y Bob todavía pueden moverlos, pues únicamente se requieren 2 de las 3 firmas.

¿Qué pasa si a Alice le roban su PC... quien la robó puede robarse también los bitcoins? ¡No! Si bien las tres billeteras pueden ver y recibir fondos, es requisito indispensable tener la firma de dos (Alice + Carol; Alice + Bob; Bob + Carol) para poder gastarlos.

¿Qué pasa si Alice y Bob viajan juntos y la PC y el Android caen al fondo del mar, junto con las seeds de ambos, hay forma de recuperar los fondos? No, están perdidos para siempre, a menos que aunque sea una de las semillas esté guardada en copia y Carol no haya perdido también la suya.



La última parte del tutorial la voy a dejar pendiente por el momento. En este post te voy a mostrar un ejemplo real, usando la misma billetera multifirma creada en este hilo, en el que se usan las firmas de Alice y Carol para gastar los fondos de la billetera (fondos que por lo pronto no existen, claro).


Importante:
Como mencioné en los post anteriores, la semilla con la que se genera la clave privada (en este post hay tres: la de Alice, la de Bob y la de Carol), es estrictamente confidencial. No uses ninguna de las semillas de este post para tu verdadera cartera de bitcoins; si lo haces, perderás todo lo que deposites en ella porque las claves, al estar publicadas, ya no son privadas.


Si te sirvió este hilo o si tienes cualquier tipo de retroalimentación, deja un comentario. Si te interesa contactarme para algo relacionado con el uso de Bitcoin, mándame un DM y platiquemos.


--- reservado
 
Última edición:
Informacion top
 
like para parte 3. 😝
 
interesante en caso de querer dejar una herencia a sus hijos en cripto al fallecer
 
interesante en caso de querer dejar una herencia a sus hijos en cripto al fallecer
Herencia en bitcoin. Pienso que hay que atar varios cabos para ese caso de uso específico, pero seguramente sí es posible llegar a una configuración funcional.
 
Acabo de descurbir que existe una sección de tutoriales; ¿debería mover este hilo para allá o aquí está bien? 🤔
 

Temas similares

Atrás
Arriba