¿Cómo firmar un mensaje con tu dirección bitcoin?

Una de las peculiaridades más básicas de Bitcoin (y asimismo más útiles) es la capacidad de firmar y contrastar un mensaje utilizando las claves públicas y privadas de las direcciones Bitcoin, algo que te vamos a enseñar a emplear en el próximo artículo. 

Una de las funciones más interesantes de Bitcoin, y quizás menos conocidas para quienes comienzan en el planeta cripto, es su capacidad de firmar un mensaje con tu dirección bitcoin, e inclusive, cifrar y contrastar la autenticidad de mensajes con seguridad. Un proceso que es posible merced a que Bitcoin emplea criptografía asimétrica.

Por ejemplo, posiblemente una persona firme un mensaje con su dirección bitcoin, para probar al planeta que el autor de un determinado texto es la persona que tiene la clave privada de una dirección Bitcoin específica. Y no es algo exclusivo de Bitcoin, otras muchas criptomonedas tienen esta capacidad, puesto que sus fundamentos criptográficos de clave pública / privada son exactamente los mismos. Todo ello sin exponer información sensible.

Pero ¿De qué forma podemos hacer eso de esta función? Puesto que bien, eso lo descubrirás en este interesante artículo, donde te vamos a mostrar como efectuar este procedimiento.

Utilidad de firmar mensajes utilizando tu dirección de Bitcoin

Ahora bien ¿Cuál es la utilidad real de firmar mensajes utilizando tu dirección de Bitcoin? Como comentamos al comienzo, efectuar este procedimiento te deja hacer pública una determinada información que puede ser verificada por cualquier persona sin mayores inconvenientes y con toda seguridad.

Existe una enorme pluralidad de casos de empleo donde esta función puede ser útil. Ahora, te vamos a mostrar ciertos de esos casos de usos:

  1. Verificación de procedencia de fondos. Por servirnos de un ejemplo, si hemos decidido efectuar una adquiere utilizando bitcoins de una dirección, mas nos piden una verificación de que esa dirección y fondos son nuestros, entonces firmar un mensaje con esa dirección solventa el inconveniente.
  2. Poder hacer pagos a una dirección específica seguramente. Por servirnos de un ejemplo, nos mandan un mensaje, y precisamos saber que el mensaje no ha sido detenido y cambiado (ej: mudando la dirección para el pago). Para esto, se firmaría el texto completo (dónde asimismo aparece la dirección a donde abonar) y agregaremos la firma digital. De este modo, el receptor podría tomar el mensaje, la dirección y la firma y contrastar que todo es adecuado.
  3. Como un anterior para la configuración de monederos multisig o bien multifirmas. Si un conjunto de personas han decidido crear un monedero multisig un paso anterior podría ser contrastar que ciertamente tenemos el control de la dirección que nos toca y para esto podemos firmar un mensaje utilizando dicha dirección.
  4. Poder probar que eres el dueño de una dirección. Esto es una cosa que se le solicitó a Craig Wright, puesto que chilla a los cuatro vientos que es Satoshi Nakamoto, mas no es capaz de probar que tiene control sobre las direcciones atribuidas a Satoshi Nakamoto. Sencillamente firmando un mensaje con cualquiera de las direcciones lo podría probar. Uno más de los motivos con lo que se le conoce como un estafador.

En este punto, está claro que es una función bastante útil y que puede amoldarse a las necesidades de quien vaya a utilizar exactamente la misma y, con un tanto de inventiva, localizar nuevos y revolucionarios escenarios.

Herramientas para firmar y contrastar mensajes utilizando tu dirección Bitcoin

Ahora bien ¿Qué precisamos para poder hacer empleo de esta función? Puesto que bien, lo cierto es que cualquier monedero Bitcoin con la función “Firmar y Contrastar Mensajes” te deja emplear esta función. Entre los monedero con esta capacidad podemos mencionar:

  1. Bitcoin Core, el software oficial de Bitcoin te deja hacer empleo de esta función perfectamente.
  2. Electrum Wallet, es otro renombrado monedero que te deja hacer empleo de esta función sin mayores dificultades.
  3. Trezor Wallet, este monedero hardware asimismo cuenta con la función de firmar y contrastar mensajes en su interfaz.
  4. Herramientas on line Bitcoin Signature Tool, te deja con perfección hacer eso de esta función.
  5. Librerías de código open source, como bitcoinjs, para crear tus programas y también ideas.

Firmando y Comprobando información utilizando Bitcoin Core

Para saber de qué manera manejar esta función hemos escogido utilizar como un ejemplo Bitcoin Core, el software oficial de Bitcoin. La razón para esto es que este es el monedero más completo y seguro de Bitcoin que existe por el momento, aparte de que emplear esta alternativa con este monedero es bastante fácil.

Lo primero que vas a deber hacer es descargar y también instalar el monedero Bitcoin Core en tu computador. Para esto, te invitamos a ir a la página web oficial y descargar la versión de Bitcoin Core para tu sistema operativo. Efectuada la instalación, entonces vamos a poder empezar a utilizar las opciones de Contrastar y Firmar mensajes.

Firmar un mensaje utilizando Bitcoin Core

Para firmar un mensaje utilizando Bitcoin Core, la primera cosa que vas a deber hacer es ejecutar el programa primordial, lo que va a dejar con una interfaz como esta.

Pantalla primordial de Bitcoin Core

En ese punto, ya antes de iniciar la primera cosa que vas a deber hacer es efectuar una ligera configuración del monedero. Esto es preciso debido a que por el momento la firma de mensaje solo es soportada utilizando dirección legacy (aquellas direcciones que comienzan con “1”), quedando a la espera de la activación del BIP-322 para habilitar la firma de mensaje utilizando todas y cada una de las direcciones soportadas por Bitcoin.

En tal sentido, la primera cosa que vas a deber hacer es ir al menú “Configuración” y hacer click en “Opciones”.

Pantalla de configuración de Bitcoin Core

Una vez allá, vas a deber hacer click en “Abrir fichero de Configuración” y, una vez abierto el fichero, vas a deber incluir la próxima línea:

addresstype=legacy

Guarda la configuración y reinicia el programa a fin de que los cambios tengan efectos. Este cambio lo que hace es ordenarle a Bitcoin Core que use de manera predeterminada direcciones legacy para producir nuestras direcciones, de este modo vamos a poder emplear la firma de mensajes utilizando Bitcoin Core sin inconvenientes.

Ahora bien, efectuados estos cambios y reiniciado Bitcoin Core, lo siguiente va a ser producir una dirección nueva a fin de que sea nuestra base de firma de mensaje. Esta dirección es la que te dejará emplear la función de firmar un mensaje. Para producir esta dirección, vas a deber dirigirte a la opción “Recibir” y hacer click en el botón “Crear nueva dirección para recepción”.

¡ADVERTENCIA!

Ten mucho cuidado con alterar valores en el fichero de configuración de Bitcoin Core. En un caso así, nuestra recomendación es válida y reconocida por la comunidad y los desarrolladores de Bitcoin, mas pueden haber casos donde personas maliciosas pueden darte instrucciones para conseguir acceso a tu monedero sin darte cuenta. Siempre y en toda circunstancia ten cuidado, estudia sobre lo que haces ya antes de hacerlo.

Así que nuestra dirección a emplear para la firma del mensaje es la 18FgxNdGSemUZNybpdrgdr1rbdRFbuAwL9

Ahora bien, para firmar un mensaje la primera cosa que vas a deber hacer es ir al menú “Archivo” y elegir “Firmar mensaje”, de esta forma se desplegará frente a ti la próxima nueva ventana.

En este punto, vas a deber tomar la dirección ya generada y poner exactamente la misma en el campo donde se te pide la dirección. Hecho esto, vas a deber redactar el mensaje a firmar, en nuestro caso el mensaje es:

Esta es una prueba de firma de mensaje utilizando una dirección de Bitcoin, para Bit2Me Academy.

Realizado estos 2 puntos va a deber quedarte algo como esto:

Mensaje a firmar en Bitcoin Core

Para acabar con el proceso de firma, solo vas a deber hacer click en el botón “Firmar mensaje”, el resultado se muestra de la próxima forma.

El resultado es una firma digital que es la siguiente:

IJQ9jOGl5ZdjmsUNDYmAwUlFqfjp/FfAi5dzdgiQTfjheDYmBxfBq40URLPOoggonqRYtGydTdwmiRn8ZElcSjc=

Como puedes ver el proceso es bastante fácil, y no oculta mayor complejidad que efectuar los pocos pasos con corrección.

Verificar un mensaje utilizando Bitcoin Core

Para contrastar un mensaje utilizando Bitcoin Core, el proceso es bastante similar. Primeramente, vas a deber ir al menú “Archivo” y elegir la opción “Verificar mensaje”, con lo que te aparecerá la próxima ventana.

En este punto, para efectuar la verificación vas a deber copiar la dirección de Bitcoin que se atribuye el mensaje, en un caso así usaremos la dirección del ejemplo precedente, la que es: 18FgxNdGSemUZNybpdrgdr1rbdRFbuAwL9.

El segundo paso es, tomar el mensaje original y copiarlo en el próximo área:

Esta es una prueba de firma de mensaje utilizando una dirección de Bitcoin, para Bit2Me Academy.

Y por último ponemos el mensaje codificado y firmado que se atribuye esa dirección, que en nuestro caso es:

IJQ9jOGl5ZdjmsUNDYmAwUlFqfjp/FfAi5dzdgiQTfjheDYmBxfBq40URLPOoggonqRYtGydTdwmiRn8ZElcSjc=

Al poner todos estos textos, nos va a quedar lo siguiente:

Comprobando mensaje en Bitcoin Core

Para acabar, solo debemos presionar el botón “Verificar mensaje” y de esta forma vamos a poder contrastar la autenticidad del mensaje y que efectivamente ha sido emitido por quien controla esa dirección.

Seguridad de este sistema

Seguramente te vas a preguntar si este sistema es verdaderamente seguro y no puede ser roto de alguna forma. Si esa es una de tus preocupaciones quizá te guste saber que no tienes nada de qué preocuparte: esta función es segura, en verdad es enormemente segura.

Esto es posible merced a que Bitcoin utiliza el algoritmo de firma digital ECDSA para efectuar todas y cada una estas operaciones, y por el momento, dicho algoritmo al lado dela curva secp256k1, es considerado enormemente seguro. En resumen, la seguridad tanto de Bitcoin, como de esta función está protegida por criptografía muy potente que no ha sido rota por el momento. A fin de que te hagas una idea de su seguridad has de saber que este proceso se fundamenta en una seguridad superior que prácticamente cualquiera que emplees en tu día tras día en ciertos procesos con la banca on line, correo, telefonía,…

Por otro lado, y como puedes ver, es un proceso verdaderamente fácil, en verdad, si conoces de sistemas de cifrado y descifrado de mensajes como PGP (o bien GPG) te vas a dar cuenta que marcha utilizando exactamente la misma base de principios.

El objetivo de todo esto es brindarte una herramienta para mandar y contrastar información de manera segura y sin ningún género de intercesor para esto. Como siempre y en toda circunstancia, Bitcoin apunta a la descentralización desde sus principios y funciones como estas solo dan fe de ese esmero.

bitcoin
Bitcoin (BTC) $ 65,139.00
ethereum
Ethereum (ETH) $ 4,192.81
binance-coin
Binance Coin (BNB) $ 498.41
cardano
Cardano (ADA) $ 2.27
tether
Tether (USDT) $ 1.00
solana
Solana (SOL) $ 184.22
xrp
XRP (XRP) $ 1.15
polkadot
Polkadot (DOT) $ 43.99
dogecoin
Dogecoin (DOGE) $ 0.254213
usd-coin
USD Coin (USDC) $ 1.00