Qué pasó
El 20 de enero de 2023 Casey Rodarmor anunció que las inscripciones estaban listas para la mainnet de Bitcoin, junto con la publicación de ord 0.4.0. Una inscripción adjunta contenido, una imagen, un archivo de texto, lo que sea, a un satoshi individual, y lo guarda dentro de una transacción de Bitcoin en vez de apuntar a un servidor.
Lo guarda en un script de Taproot. El Ordinal Theory Handbook es directo sobre dónde viven los bytes: el contenido está "entirely on-chain, stored in taproot script-path spend scripts".
El script está escrito de modo que nunca se ejecuta:
OP_FALSE
OP_IF
OP_PUSH "ord"
...
OP_ENDIF
OP_FALSE OP_IF abre una rama que nunca se toma, así que todo lo que va hasta OP_ENDIF
viaja en la transacción y el intérprete lo ignora. Como un gasto por script path necesita
una salida Taproot ya existente, una inscripción requiere dos transacciones: un commit y
después un reveal.
Qué cambia
Cambia lo que cuestan los datos, y lo hace sin tocar una sola regla de consenso.
BIP 141 define el peso del bloque como "Base size * 3 + Total size", con un tope de cuatro millones. Conviene leer la fórmula despacio. Un byte fuera del witness lo cuentan ambos términos, así que cuesta cuatro unidades de peso. Un byte dentro del witness se cuenta una vez, así que cuesta una. Los datos del witness pagan la cuarta parte de la tarifa que paga todo lo demás, y el contenido de una inscripción son datos de witness.
La segunda pieza es BIP 342, que fija las reglas de los scripts bajo Taproot: "The maximum script size of 10000 bytes does not apply. Their size is only implicitly bounded by the block weight limit." Antes de Taproot un script no podía contener casi nada. Ahora el único techo es el bloque.
Sobrevive un límite más antiguo: BIP 342 mantiene el tope de 520 bytes por elemento de la pila, así que el contenido se parte en empujes de 520 bytes.
Ninguna de las dos reglas se escribió pensando en esto. Una pone precio a datos que un nodo puede descartar; la otra permite que una condición de gasto sea arbitrariamente elaborada. Juntas hacen que un megabyte de imagen ocupe el espacio de bloque de 250 kilobytes de pagos.
Qué no cambia
Bitcoin no sabe qué es una inscripción. Un nodo ve un gasto Taproot válido con un witness grande, lo valida y sigue. No hay opcode nuevo, ni tipo de salida nuevo, ni nada que activar.
Bitcoin tampoco rastrea satoshis individuales. La teoría ordinal los numera por convención,
en orden de minado y después primero en entrar, primero en salir a través de las entradas y
salidas de una transacción. Esa convención vive en el indexador ord, no en el consenso, así
que dos indexadores que discrepan producen dos respuestas y la red no opina sobre cuál es la
correcta.
El límite de espacio de bloque queda intacto. Las inscripciones no crean espacio. Pujan por el que ya existe, contra todos los demás que lo quieren.
Contexto
El descuento del witness no es un descuido ni es nuevo. Llegó con SegWit en 2017, que separó los datos de firma del resto de la transacción y les puso un precio menor, porque un nodo puede descartarlos una vez verificados.
Taproot se activó en noviembre de 2021 con un objetivo distinto: que un arreglo de gasto complicado se vea como uno simple. El árbol de condiciones alternativas que introdujo estaba pensado para guardar rutas de recuperación y requisitos de cofirmante. Guarda lo que quepa.
Esto ya lleva semanas funcionando. Rodarmor hizo la primera inscripción en mainnet el 14 de diciembre de 2022, en el bloque 767.430: un PNG de 793 bytes. El comando que crea una siguió deshabilitado para mainnet hasta el 9 de enero. Lo que ocurrió el 20 de enero fue el anuncio.
Ha habido datos arbitrarios en la cadena desde el bloque génesis, cuyo coinbase lleva un titular de periódico. Lo distinto es el precio y el volumen, no la posibilidad.
