En alguna de las respuestas dijeron que el método Counterparty/Omni es de hecho mas costoso, así incluso eso sería una pequeña ganancia a desincentivar el spam. Habrá que seguir leyendo a veces abren otros hilos y me pierdo, pero bueno.
Esto ya lo refuté
en uno de los hilos ingleses Creo que haría falta una explicación detallada (se un poco del tema, si bien nunca desarrollé nada para Counterparty/Omni, pero usé otro mecanismo similar para crear tokens experimentales para una altcoin que cuenta con la misma tecnología que Bitcoin).
Supongo que sabes que las transacciones que usan Segwit tienen un "descuento": es decir en una parte (la ScriptSig que contiene las firmas digitales o Signatures y la clave pública, el llamado "Witness" / Testigo) su peso "ponderado" en vBytes es de solo una cuarta parte de su peso real en Bytes (se estima que una transacción simple pesa aprox. un tercio menos en vBytes si usa Segwit, y por ende es más barata en cuanto a fees, pero siempre depende del porcentaje de la transacción ocupada por Witnesses).
Primero vamos al
método OP_RETURN (Omni/Counterparty):
Counterparty/Omni almacenan metadatos en una salida (output) OP_RETURN cuando se crean y se transfieren tokens. Estos no cuentan con el descuento que ofrece Segwit. Es decir que su peso "ponderado" en vBytes es exactamente igual a su peso "real" en Bytes. Si este conjunto de metadatos es muy grande entonces esto puede encarecer bastante la transacción.
Las entradas (inputs) de las transacciones Counterparty/Omni pueden, sin embargo, beneficiarse del descuento, si se envían desde una dirección Segwit, es decir si cuentan con un witness que fue creado con los métodos de Segwit. Las transacciones que enlazó alani123
aquí no usaron Segwit en ninguna entrada ni salida. Por ende tuvieron un peso de 1 Byte=1 vByte para toda la transacción. Si hubieran usado Segwit, podrían haber sido significativamente (hasta 35% en el caso de CP y 31% en el caso de Omni) menos pesadas (en vBytes), como también figura en el explorador de bloques que visualiza estas transacciones.
Uno se puede preguntar por qué los que crearon estos tokens no usaron Segwit. Es posible que algunos software populares de Counterparty/Omni simplemente no cuenten con soporte para esta tecnología. Pero desde el punto de vista técnico no hay nada que impide usar direcciones Segwit para transacciones Counterparty/Omni. Las partes que no están en OP_RETURN son idénticas a transacciones que transfieren Bitcoins. (Edit: Finalmente encontré
una transacción de Counterparty que usa Segwit, y tiene un "peso" similar a las transacciones de BRC-20 que enlazó alani123. Pero es verdad, la mayoría de las tx de Counterparty entre las últimas del
explorador Xchain no usan Segwit. Muy extraño ...).
En general se necesita una transacción en Counterparty para crear un token, y otra, para transferir tokens de este tipo (a la address del creador y/o a otras direcciones). Cada vez que se transfiere el token se necesita solamente una transacción.
Ahora vamos a
Ordinals / BRC-20:
En BRC-20, lo que se hace es que se crea primero un script en TapScript. Este script contiene los metadatos del token y las reglas. Luego se crea un hash de este script.
Este hash en Taproot funciona como el hash de la clave pública en transacciones de BTC comunes (P2PKH/P2WPKH), y se usa para una primera transacción (llamada "commit transaction"). En general es una transacción pequeña y se puede usar el descuento de Segwit para el Witness si se envía desde una dirección Segwit.
Ahora se crea una segunda transaccion, la "reveal transaction", con el script completo y la firma como Witness. Es decir: los metadatos también gozan del descuento Segwit.
Pero hay un gran PERO: Hasta ahora, solamente creamos los tokens sin distribuirlos, y ya hemos necesitado dos transacciones (commit y reveal transaction).
Ahora para transferir los tokens a otra address, tenemos que volver a realizar un proceso muy similar (solo con otros metadatos): crear ¡una commit transaction y una reveal transaction!
Y eso no es todo: para cada una de las addresses a la que queremos transferir tokens BRC-20, tenemos que repetir el proceso (otra vez 2 transacciones). En cambio, en el caso de Counterparty/Omni, si funcionan igual que el estándar con el que trabajé yo, se pueden transferir tokens, con una sola transacción, a decenas de addresses.
ConclusiónEs posible que un "mint" de BRC-20 sea más barato que un "mint" de Counterparty (u Omni), a pesar de necesitar dos transacciones, si el mint de Counterparty no se realiza desde una dirección Segwit. Pero para transferir los tokens (es decir, de hecho para venderlos y generar un beneficio) necesito siempre dos transacciones, mientras que en Counterparty solo necesito una. Es decir como mínimo tengo 117 vBytes más; y es difícil conseguir tanto descuento con el Witness Discount de la salida Taproot como para contrarrestar esto. Cuanto más transacciones se realizan con el token, mayor es el ahorro de espacio (real y también "ponderado", si se usa Segwit) que beneficia a usuarios de Counterparty.
A esto se suma que BRC-20 está tan mal hecho que usaron texto (en vez de un formato binario) tanto para el tipo MIME como para los metadatos (para los cuales se usa JSON, que es todavía más ineficiente). Los estándares como Counterparty en general usan formatos binarios que ahorran más de la mitad de los datos.