Glosario / Referencia para desarrolladores
OP_RETURN
- ¿Qué es OP_RETURN?
- OP_RETURN es el opcode (código de operación) que hace que una salida de transacción sea demostrablemente imposible de gastar, lo que permite escribir en la blockchain una pequeña cantidad de datos arbitrarios sin inflar el conjunto de monedas vivas.
Nadie puede gastar nunca una salida cuyo script empieza por 0x6a, así que los nodos completos la eliminan del conjunto de UTXO que tienen que mantener a mano. Bitcoin Core 0.9.0 hizo estándar este tipo de salidas en marzo de 2014 con un tamaño permitido de 40 bytes, ampliado a 80 bytes de carga útil en la 0.11.0. Si usted compra y conserva, nunca necesitará crear una, pero paga las de otras personas a través del mercado de comisiones.
Cómo funciona
OP_RETURN hace fallar el script en el instante en que se alcanza. Nada puede satisfacer una salida bloqueada así, y a diferencia de una dirección de quema, donde las monedas se envían a un hash del que nadie tiene la clave, la imposibilidad es visible para el software en lugar de ser solo probable. Esa visibilidad es lo esencial: un nodo mantiene un índice de cada salida gastable, y una salida que se puede demostrar muerta nunca tiene que entrar en él.
Las billeteras que construyen una establecen su valor en cero y colocan la carga útil después del opcode, normalmente como una sola inserción de datos. El resultado es una transacción con una salida normal que paga a alguien y una segunda salida que lleva bytes y nada de dinero.
La primera versión del opcode fue un desastre. En 2010, un script de desbloqueo y un script de bloqueo se ejecutaban unidos, y OP_RETURN terminaba la evaluación informando de éxito, así que quien gastaba podía añadirlo al final y llevarse monedas que pertenecían a otra persona. La corrección de ese año separó las dos mitades de la ejecución y, a la vez, convirtió el opcode en un fallo incondicional. Su uso moderno como salida portadora de datos llegó cuatro años después, cuando los desarrolladores ya metían datos en claves públicas falsas que los nodos nunca podían podar.
Después llegaron los límites de retransmisión, y ninguno de ellos era una regla de consenso. Bitcoin Core incluyó una salida portadora de datos estándar de 40 bytes en la versión 0.9.0, duplicó el tamaño permitido a 80 bytes en la 0.11.0, en julio de 2015, y permitió una salida de este tipo por transacción. La versión 30.0 eliminó el tope de tamaño predeterminado y la regla de una sola salida tras una discusión pública larga y agria, con el argumento de que los límites se eludían trivialmente y desviaban los datos hacia lugares peores. Bitcoin Knots mantuvo los valores predeterminados más estrictos, y la división en la política de los nodos es uno de los desacuerdos vivos de bitcoin hoy.
Por qué importa cuando compra bitcoin
Nunca se le pedirá que cree una salida OP_RETURN, y si un sitio web le dice que envíe bitcoin a una, es una estafa: no hay nada a lo que enviar. Algunos exchanges y cadenas usan campos memo, pero un retiro de bitcoin nunca necesita uno.
Lo que le llega a usted es la comisión. Los datos escritos on-chain compiten con su retiro por el mismo espacio limitado, y el efecto se puede medir. El bloque 840.000, minado el 20 de abril de 2024, recaudó aproximadamente 37,6 bitcoin en comisiones, la cifra más alta de cualquier bloque hasta la fecha, porque un nuevo protocolo de tokens se activó exactamente a esa altura y miles de personas se lanzaron a escribir en él. Cualquiera que por casualidad retirara fondos de un exchange esa tarde pagó varias veces la comisión por vB habitual por el privilegio.
La defensa es elegir el momento, no indignarse. Las comisiones varían un orden de magnitud en una sola semana, así que consolidar sus monedas, retirarlas de un exchange o hacer cualquier transferencia no urgente en un fin de semana tranquilo cuesta una fracción de lo que cuesta esa misma transferencia durante una fiebre de datos. Por eso mismo conviene preferir las billeteras que le permiten elegir su propia comisión por vB en lugar de adivinarla por usted. Si la cuestión de política le importa mucho, ejecutar Bitcoin Knots en lugar de Bitcoin Core es la forma directa de expresarlo, ya que cada operador de nodo elige individualmente la política de retransmisión.
Ejemplo práctico: lo que cuestan 80 bytes
Una salida portadora de datos heredada (legacy) de tamaño máximo ocupa 92 bytes en la red: 8 bytes de valor puesto a cero, un byte para la longitud del script y luego 83 bytes de script formados por el opcode, una instrucción de inserción de datos, un byte de longitud y 80 bytes de carga útil. Nada de eso son datos de testigo, así que cada byte cuenta cuatro unidades de peso, lo que da 368 unidades de peso o 92 bytes virtuales. A 10 satoshis por byte virtual, eso son 920 satoshis antes de contar el resto de la transacción.
Como comparación, una salida SegWit nativa corriente ocupa 31 bytes, o 31 bytes virtuales, así que la salida portadora de datos cuesta tres veces más que pagar a alguien. Los datos nunca han sido gratis, y el mercado de comisiones es el único mecanismo de racionamiento que tiene bitcoin.
OP_RETURN frente a transacción de datos nulos
OP_RETURN es el opcode; transacción de datos nulos es el nombre que Bitcoin Core da a todo el patrón de la transacción cuando aparece en ella una de estas salidas. El software indica el tipo de salida como "nulldata" en el JSON decodificado, y esa cadena de caracteres es lo que suelen mostrar los exploradores de bloques. La distinción es pequeña, pero evita una lectura errónea habitual: una transacción de datos nulos no es una transacción que no mueva dinero. Casi siempre paga también a alguien, y los datos viajan en una segunda salida.
OP_RETURN frente a inscripción
Las inscripciones no usan OP_RETURN en absoluto, y de ahí viene una confusión interminable sobre el almacenamiento de datos en bitcoin. El esquema Ordinals, publicado en enero de 2023, oculta el contenido dentro de una rama de script de Taproot que nunca se ejecuta, y esa rama vive en el testigo, donde cada byte cuesta una unidad de peso en lugar de cuatro. La consecuencia práctica es la escala. La política de retransmisión limitó durante una década la carga útil de OP_RETURN a 80 bytes, mientras que una sola inscripción puede acercarse al tamaño de un bloque entero a una cuarta parte del costo en peso por byte. Runes, lanzado en abril de 2024, fue en la dirección contraria y codifica deliberadamente sus mensajes de protocolo en OP_RETURN, y por eso las dos discusiones sobre datos en bitcoin son en realidad discusiones sobre dos mecanismos distintos.