Runas
Las runas permiten que las transacciones de Bitcoin graben, minteen y transfieran productos digitales nativos de Bitcoin.
Mientras que cada inscripción es única y diferente, una unidad de runa es idéntica. Son tokens intercambiables, hechos para servir una variedad de propósitos.
Piedras Rúnicas (Runestones)
Los mensajes del protocolo de runas, llamados piedras rúnicas, se almacenan en las salidas de las transacciones de Bitcoin.
El pubkey del script de salida de una piedra rúnica comienza con un OP_RETURN
, seguido por OP_13
, seguido por cero o más pushes de datos. Estos push de datos se concatenan y decodifican en una secuencia de enteros de 128 bits, finalmente estos se analizan y se convierten en una piedra rúnica.
Una transacción puede tener como máximo una piedra rúnica.
Una piedra rúnica puede grabar una runa nueva, mintear una runa existente y transferir runas de las entradas de una transacción a sus salidas.
La salida de una transacción puede contener saldos de cualquier cantidad de runas.
Las runas se identifican por ID, las cuales consisten en el bloque en el que se grabó una runa y el índice de la transacción de grabado dentro de ese bloque, su representación textual sería BLOQUE:TX
. Por ejemplo, el ID de la runa grabada en la transacción 20 del bloque 500 es 500:20
.
Grabado
Las runas cobran vida al ser grabadas. El grabado crea una runa y establece sus propiedades. Una vez establecidas, estas propiedades son inmutables, incluso para quien las grabó.
Nombre
Los nombres consisten en letras de la A a la Z y tienen entre una y veintiséis letras. Por ejemplo, UNCOMMONGOODS
es un nombre de runa.
Los nombres pueden tener separadores, representados como un punto en medio, para facilitar su lectura. UNCOMMONGOODS
podría ser grabado como UNCOMMON•GOODS
.
La exclusividad de un nombre no depende de los separadores. Por lo tanto, una runa no puede ser grabada con la misma secuencia de letras a la de una runa existente, incluso si tiene diferentes separadores.
Los separadores solo pueden colocarse entre dos letras. Finalmente, los separadores no cuentan como letras.
Divisibilidad
La divisibilidad de una runa es la capacidad de dividirse en unidades. La divisibilidad se expresa como el número de dígitos permitidos después del punto decimal en una cantidad de runas. Una runa con divisibilidad 0 no puede dividirse. Una unidad de una runa con divisibilidad 1 puede dividirse en diez subunidades, una runa con divisibilidad 2 puede dividirse en cien, y así sucesivamente.
Símbolo
El símbolo de una runa es un punto de código Unicode, por ejemplo, $
, ⧉
o 🧿
, que se muestra después de las cantidades de esa runa.
101 unidades de una runa con divisibilidad 2 y el símbolo 🧿
se representarían como 1.01 🧿
.
Si una runa no tiene símbolo, se debe usar el signo de moneda genérico ¤
, también llamado escarabajo.
Premina
El grabador de una runa puede asignarse a sí mismo unidades de la runa que está grabando. Esta asignación se llama premina.
Términos
Una runa puede tener un minteo abierto, permitiendo que cualquiera cree y asigne unidades de esa runa para sí mismo. Un minteo abierto está sujeto a términos, los cuales se establecen al grabar.
Un minteo está abierto mientras se cumplan todos los términos, y se cierra cuando alguno de ellos no se cumple. Por ejemplo, un minteo puede estar limitado a una altura inicial, una altura final y un límite, y estará abierto entre la altura inicial y la altura final, o hasta que se alcance el límite, cual sea que ocurra primero.
Tope
El tope es la cantidad de veces que se puede mintear una runa. El minteo termina una vez que se alcance el tope.
Cantidad
Cada vez que se realiza una transacción de minteo, se produce una cantidad fija de nuevas unidades de una runa.
Altura Inicial
Un minteo comienza en el bloque de la altura inicial dada.
Altura Final
Una runa no puede ser minteada en o después del bloque de la altura final especificada.
Desplazamiento Inicial
Un minteo se abre comenzando en el bloque cuya altura es igual al desplazamiento inicial más la altura del bloque en el que se grabó la runa.
Desplazamiento Final
Una runa no puede ser minteada en o después del bloque cuya altura es igual al desplazamiento final más la altura del bloque en el que se grabó la runa.
Minteo
Mientras que el minteo de una runa esté abierto, cualquiera puede crear una transacción de minteo que genere una cantidad fija de nuevas unidades de esa runa, sujeta a los términos del minteo.
Transferencia
Cuando las entradas de una transacción contienen runas, o se crean nuevas runas mediante una premina o minteo, esas runas se transfieren a las salidas de esa transacción. La runa de una transacción puede modificar cómo las runas de entrada se transfieren a las salidas.
Edictos (Edicts)
Una runa puede contener cualquier cantidad de edictos. Los edictos consisten en un ID de runa, una cantidad y un número de salida. Los edictos se procesan en orden, asignando runas que no han sido asignadas a las salidas.
Puntero
Una vez procesados todos los edictos, las runas no asignadas se transfieren a la primera salida de la transacción que no sea OP_RETURN
. De manera opcional, una runa puede incluir un puntero que indique una salida predeterminada diferente.
Quemar
Las runas pueden ser quemadas transfiriéndolas a una salida OP_RETURN
que tenga un edicto o puntero.
Cenotafios
Las runas pueden estar mal formadas por varias razones, incluyendo opcodes no pushdata en el OP_RETURN
de la runa, varints inválidos o campos de runas no reconocidos.
Las runas mal formadas se denominan cenotafios.
Las runas ingresadas a una transacción con un cenotafio se queman. Las runas grabadas en una transacción con un cenotafio se consideran no minteables. Los minteos en una transacción con un cenotafio cuentan para el tope del minteo, pero las runas creadas se queman.
Los cenotafios actúan como un mecanismo de actualización, permitiendo que las runas adopten nuevas semánticas que modifiquen cómo se crean y transfieren. Esto se logra sin confundir a los clientes desactualizados acerca de la ubicación de las runas, ya que dichos clientes las percibirán como si hubieran sido quemadas.