Las transacciones OP_RETURN son una forma muy curiosa de almacenar información en la Blockchain. Inicialmente permitían hasta 80 kB de datos, pero desde 2014 la cantidad máxima se redujo a 40 KB. En cuanto a sus posibilidades, se utilizan (entre otras muchas cosas) para crear pruebas de existencia de archivos.
Contenidos
- 1 ¿Cuáles son las principales formas de almacenar información en la Blockchain?
- 2 ¿Cómo se realizan las transacciones OP_RETURN?
- 3 ¿Dónde se pueden ver las transacciones OP_RETURN?
- 4 Ventajas e inconvenientes de las transacciones OP_RETURN
- 5 ¿Qué utilidades pueden tener las salidas OP_RETURN?
- 6 Conclusiones de las transacciones OP_RETURN
¿Cuáles son las principales formas de almacenar información en la Blockchain?
Hay bastantes formas ingeniosas de grabar mensajes o datos en la Blockchain, las más sencillas permiten grabar textos de 20 caracteres y, en el lado opuesto, se pueden encontrar servicios que permiten hasta 60 kB de información.
Los métodos más comunes y fáciles de realizar a nivel usuario son los siguientes:
- Escribir un mensaje simple en la Blockchain: Es un método que consiste en convertir un mensaje de texto en lenguaje hexadecimal. Posteriormente, el código hexadecimal se convierte en una dirección bitcoin y, de esa forma, mediante una transacción a esa dirección se puede grabar un mensaje de hasta 20 caracteres.
- Almacenar datos mediante transacciones P2PKH: Actualmente hay algunas páginas web que han mejorado el primer método y, basándose en transacciones P2PKH, pueden generar salidas a múltiples direcciones que esconden hasta 60 kB de información.
- Transacciones OP_RETURN: Es la forma que más me gusta de almacenar datos en la Blockchain, pues no genera entradas falsas como ocurre en otros casos. Es decir, los otros métodos envían pequeñas cantidades a direcciones públicas aleatorias sin tener la clave privada de las mismas y, por tanto, esas pequeñas cantidades de bitcoin se pierden para siempre. En este artículo y tutorial se explica más en profundidad su funcionamiento.
¿Cómo se realizan las transacciones OP_RETURN?
El método OP_RETURN se basa en un código que marca la transacción saliente como invalida y, en consecuencia, puede emplearse para grabar datos sin necesidad de enviar los bitcoins a direcciones aleatorias (método empleado en otras formas de almacenaje).
Actualmente hay bastantes tipos de monederos que permiten las transacciones OP_RETURN, uno de ellos es el monedero TREZOR para bitcoins y será el empleado en este tutorial. No obstante, si quieres enviar un mensaje a otra dirección y adjuntarle una salida OP_RETURN, lo puedes hacer fácilmente desde cualquier monedero que permita este tipo de transacciones.
Para hacer el tutorial voy a enviar el mensaje “La página web Comprarbitcoins.org es la mejor página web de criptomonedas” a la dirección de un amigo que tiene otra web sobre criptomonedas. De esa forma, cuando reciba una transferencia simbólica de 0.00001 BTC verá que tiene una salida OP_RETURN y, entonces, leerá mi mensaje secreto.
Preparar la transacción OP_RETURN
Cuando se accede al monedero TREZOR, en la parte inferior derecha aparece la opción de “transacciones OP_RETURN”. Aunque se pueda realizar una transacción OP_RETURN sin destinatario, yo voy a poner la dirección de mi amigo para que lea mi mensaje y, de esa forma, se enterará de que mi página es mejor que la suya. En la cuenta debes tener algo de bitcoins y, si todavía no tienes, puedes consultar en mi página los mejores sitios para comprar bitcoins.
Para preparar la transacción OP_RETURN, he rellenado los siguientes campos:
- La dirección bitcoin de mi amigo.
- Le envío una cantidad simbólica de 0.00001 BTC y, de esa forma, recibirá una transacción y verá que tiene una salida OP_RETURN.
- Escribo el mensaje en texto y el monedero lo convierte automáticamente a lenguaje hexadecimal.
Una vez terminada, solo hay que pulsar el botón de enviar y el mensaje estará enviado.
¿Dónde se pueden ver las transacciones OP_RETURN?
Ahora voy a simular que soy la persona que ha recibido la transacción del punto anterior. Para ver e interpretar una transacción OP_RETURN se puede hacer fácilmente de dos formas.
Convertir el código hexadecimal a texto
El primer paso sería extraer el código hexadecimal que va en la transacción OP_RETURN. Para eso hay que entrar en un explorador de blockchain que lo permita.
Por ejemplo, en la imagen se puede ver que la dirección de origen tiene dos salidas: una salida a la dirección de mi amigo y otra salida OP_RETURN con el mensaje hexadecimal. Para explorar la blockchain y ver las transacciones OP_RETURN se puede acudir a alguno de los siguientes exploradores:
- https://blockexplorer.com
- https://www.blocktrail.com
El siguiente paso sería convertir el codigo en un texto legible. Hay bastantes sitios donde hacerlo.
En la página web https://codebeautify.org/hex-string-converter se puede convertir fácilmente un código hexadecimal en texto. Una vez convertido, el mensaje estaría descifrado.
Explorador de transacciones OP_RETURN que se graban en la Blockchain
Otra forma es acceder a páginas como http://coinsecrets.org/ que van publicando todas las transacciones OP_RETURN que aparecen en la Blockchain.
Al poco de enviar la transacción a mi amigo he accedido a http://coinsecrets.org/ y he podido ver el envío tal y como se muestra en la foto superior.
Ventajas e inconvenientes de las transacciones OP_RETURN
Las ventajas más significativas son las siguientes:
- No producen entradas falsas, pues no envían el dinero a direcciones muertas.
- Se crean fácilmente y pueden almacenar más datos que otros métodos más simples.
- No se pueden modificar y están asociadas temporalmente.
- Consumen menos recursos que los métodos basados en envíos a direcciones muertas.
Algunas de sus desventajas son las siguientes:
- Están limitadas a 40 kB.
- Algunas personas critican los métodos que almacenan información en la blockchain, pues dicen que no era su propósito original.
¿Qué utilidades pueden tener las salidas OP_RETURN?
Actualmente este tipo de transacciones se están utilizando principalmente con dos propósitos:
- Enviar mensajes de texto.
- Realizar pruebas de existencia de archivos.
Las pruebas de existencia (tratadas en otro tutorial) permiten certificar la existencia de un archivo en un tiempo determinado. Mediante una transacción OP_RETURN no se puede subir un archivo a la Blockchain y, si se pudiera, tampoco sería recomendable pues lo vería todo el mundo.
A pesar de que no se puede subir un archivo, sí que se puede grabar en la blockchain un resumen del mismo y, de esa forma, poder demostrar en un futuro que el archivo existía en el momento que se envió la transacción OP_RETURN.
Normalmente los resúmenes que se graban mediante el envío de una OP_RETURN, son una función hash 256. Para que se entienda, una función hash es un algoritmo que transforma un archivo o un texto en un único valor de longitud fija (el «hash»). Este hash obtenido de un archivo no permite obtener el archivo y, por tanto, todo el mundo puede ver el hash pero nadie podrá reproducir el archivo a través del hash.
Conclusiones de las transacciones OP_RETURN
Tanto si son empleadas para crear una prueba de existencia, para grabar un código criptográfico en la blockchain o para enviar un mensaje de texto, el procedimiento es muy fácil a nivel usuario y, por tanto, es un excelente método para almacenar datos en la blockchain.