Recientemente, la introducción del protocolo Arc-20 ha vuelto a provocar un frenesí en el mercado de las inscripciones. Este artículo profundizará en los detalles, las ventajas y desventajas de los dos protocolos desde una perspectiva técnica.
Bitcoin se diseñó originalmente para ser una moneda digital descentralizada segura, estable y confiable. Sin embargo, debido a su arquitectura técnica y a su lenguaje de programación relativamente menos flexible en comparación con Ethereum, Bitcoin no es adecuado para ejecutar directamente contratos inteligentes.
A pesar de esto, las ideas innovadoras y los intentos audaces de los desarrolladores han traído prosperidad al ecosistema de Bitcoin. Un ejemplo típico es el protocolo Brc-20. La idea central del protocolo es una forma de token experimental, centrada en memes. Cualquiera puede acuñar estos tokens directamente en la cadena de Bitcoin por orden de llegada sin depender de contratos inteligentes. La característica clave del token Brc-20 es su naturaleza descentralizada, que elimina mecanismos como las ventas privadas, las preventas y el desbloqueo o la apuesta. Esto garantiza un compromiso verdaderamente descentralizado.
En este contexto, el protocolo Arc-20 ha vuelto a despertar un gran interés por las inscripciones.
Los protocolos Brc-20 y Arc-20 se basan en la cadena Btc, por lo que antes de presentar formalmente el protocolo Arc-20 y el protocolo Brc-20, comprendamos brevemente UTXO (salida de transacción no gastada).
Cuando hablamos de Bitcoin, el modelo UTXO (salida de transacciones no gastadas) es un concepto de diseño importante. Es un tipo de modelo de cuenta utilizado por Bitcoin, que es diferente de los modelos de saldo tradicionales como las cuentas bancarias.
En el modelo UTXO, cada transacción de Bitcoin crea una serie de resultados no gastados, y cada resultado representa una cierta cantidad de Bitcoin. Estos productos no gastados son esencialmente unidades de moneda digital no utilizadas, similares a los billetes o monedas. Cuando recibe Bitcoin, alguien ha creado una nueva salida no gastada que está asociada con su dirección de Bitcoin. Esta salida es la UTXO.
Expliquemos el modelo UTXO con un ejemplo sencillo:
Si tiene dos transacciones, una que recibe 0,7 BTC y la otra que recibe 0,5 BTC, tendrá dos UTXO, uno con un valor de 0,7 BTC y otro con un valor de 0,5 BTC. Cuando desee pagar 1 BTC, no puede simplemente usar un UTXO, sino que debe fusionar los dos UTXO en un nuevo UTXO (con un total de 1,2 BTC) y luego enviar 1 BTC al destinatario, con los 0,2 BTC restantes. regresado a ti mismo como cambio. Sin embargo, el cambio real puede ser inferior a 0,2 BTC porque los usuarios deben pagar una tarifa de transacción a los mineros para garantizar el buen funcionamiento de la transacción.
BRC-20 es un estándar experimental que demuestra la posibilidad de crear tokens fungibles en la capa 1 de Bitcoin aprovechando la teoría ordinal y las inscripciones. El protocolo Ordinals (el primer token acuñado según los estándares del protocolo) permite imprimir contenido, incluidos texto, imágenes o videos, en la unidad más pequeña de Bitcoin, Satoshi, creando así activos digitales únicos.
La teoría ordinal es la clave para implementar inscripciones en la red BTC.
Cada Satoshi es esencialmente igual y Ordinals ha desarrollado un protocolo de pedido de Satoshi a través de la teoría narrativa. Este orden se basa en la extracción de Satoshis y el orden de las entradas y salidas de sus transacciones.
Hay varias formas diferentes de representar números ordinales:
La expresión de grado contiene cuatro partes: A°B′C″D‴, y A, B, C y D representan diferentes significados:
La teoría narrativa determina el orden de un Satoshi a través de la expresión de grados y define diferentes niveles de rareza para cada Satoshi a través del orden, logrando así la singularidad de cada Satoshi.
por ejemplo, por ejemplo, un grado existente se expresa como 1°1′0″0‴, donde
Con la definición de rareza anterior, este Satoshi se define como stoshi raro.
El proceso general es el siguiente:
py# Calcular la narrativa (recompensa) de un bloque dada una altura
subsidio def (altura):
devolver 50*100_000_000 >> altura // 210_000
Esta función se utiliza para calcular la recompensa por un bloque de Bitcoin de una altura determinada, donde 50*100_000_000 es la recompensa inicial de Bitcoin, >> es el operador de desplazamiento a la derecha, equivalente a dividir por 2 divisiones enteras. Esta función devuelve un número entero que representa el monto de la recompensa por un bloque a una altura determinada.
def primer_ordinal(altura):
inicio = 0
para h en rango (altura):
inicio += subsidio(h)
inicio de regreso
Esta función calcula el número ordinal de la primera recompensa por un bloque a una altura determinada. Calcule el número total de recompensas desde el primer bloque hasta una altura determinada iterando a través de las alturas y acumulando las recompensas para cada bloque, lo que da como resultado el número ordinal de la primera recompensa.
def asignar_ordinales(bloque):
primero = primer_ordinal(bloque.altura)
último = primero + subsidio (bloque.altura)
coinbase_ordinals = lista (rango (primero, último))
def asignar_ordinales(bloque):
primero = primer_ordinal(bloque.altura)
último = primero + subsidio (bloque.altura)
coinbase_ordinals = lista (rango (primero, último))
para transacción en block.transactions[1:]:
ordinales = []
para entrada en transacción.entradas:
ordinales.extender(entrada.ordinales)
para salida en transacción.salidas:
salida.ordinales = ordinales[:salida.valor]
de los ordinales[:salida.valor]
coinbase_ordinals.extend(ordinales)
para salida en block.transactions[0].outputs:
salida.ordinales = coinbase_ordinals[:salida.valor]
de coinbase_ordinals[:output.value]
Esta función se utiliza para asignar un número ordinal a un bloque de Bitcoin determinado. Primero calcula el rango ordinal de la primera y última recompensa del bloque. Luego, itera sobre cada transacción en el bloque, asignando un número ordinal a cada salida. Finalmente, a las salidas de la transacción se les asignan números ordinales para garantizar que todos los satoshis en todo el bloque tengan números ordinales únicos.
En resumen, a través de la teoría ordinal, los originales hacen que cada Satoshi sea esencialmente único a través del procesamiento y definen una familiaridad poco común para cada Satoshi a través de reglas, realizando atributos de colección o formulando reglas para adaptarse al juego.
El protocolo Atomicals es un protocolo simple y flexible para acuñar, transferir y actualizar objetos digitales (tradicionalmente conocidos como tokens no fungibles) en una cadena de bloques con salidas de transacciones no gastadas (UTXO) como Bitcoin. Un Atomical (o “átomo”) es una forma de gestionar la creación, transferencia y actualización de objetos digitales; esencialmente una cadena de propiedad digital definida por algunas reglas simples.
Arc-20 adopta el modelo de moneda de colores, lo que significa que una ficha Arc-20 debe tener un soporte satoshi, a diferencia de las fichas Brc-20 que se diferencian por orden. Dado que los tokens Arc-20 se basan completamente en satoshis, se pueden dividir y fusionar (similar a los UTXO mencionados al principio del artículo) y se pueden transferir directamente a través de la red Bitcoin.
Por ejemplo, usando el protocolo Atomicals, podemos definir 100 satoshis como 100 “entradas de cine”, y los usuarios pueden usar uno de estos 100 satoshis para pagar en una sala de cine que admita el protocolo Atomicals, actuando como una entrada de cine.
Sin embargo, los mineros y la red Bitcoin no pueden saber qué UTXO han sido "Atomicalizados", lo que puede considerar erróneamente los tokens Arc-20 como tarifas de minero. Para resolver este problema, Atomicals indica que cada token Arc-20 debe ser el primer resultado de una transacción para evitar la destrucción accidental del token.
A continuación, analizaremos y compararemos las similitudes y diferencias entre los dos protocolos.
El acuerdo se divide aproximadamente en tres pasos.
{
“p”: “brc-20”,
“encendido”: “implementar”,
“tick”: “ordi”,
“máximo”: “21000000”,
“lím”: “1000”
}
Dado que BTC no puede reconocer la información del token en sí cuando el implementador implementa el token, se necesita un indexador para obtener datos relevantes en la cadena y usar estos datos para crear un libro de contabilidad fuera de la cadena para registrar el historial relevante y los procesos relacionados. Operar y realizar datos actualizaciones.
El indexador fuera de la cadena debe capturar y actualizar con precisión el libro mayor fuera de línea para cada operación de token. Sin embargo, al igual que en la cadena de bloques, a medida que aumenta el número de transacciones, los datos almacenados por los nodos serán cada vez más grandes. Garantizar la integridad del libro mayor y encontrar la información que debe modificarse dentro de la gran cantidad de datos se convertirá en un desafío para BRC-20.
De manera similar, el protocolo Arc-20 también necesita registrar información relevante según el formato en la cadena BTC al implementar tokens.
programa.comando('init-dft')
.description('Inicializar token fungible (FT) atómico en modo de emisión descentralizada')
.argument('<ticker>', 'cadena')
.argument('<mint_amount>', 'número')
.argument('<max_mints>', 'número')
.argument('<mint_height>', 'número')
.argumento('<file>', 'cadena')
.option('—rbf', 'Si se debe habilitar RBF para transacciones.')
.option('—funding <string>', 'Usar alias de billetera con clave para usar para financiamiento y cambios')
.option('—satsbyte <number><número>', 'Satoshis por byte en tarifas', '15')
.option('—mintbitworkc <string>', 'Si se requiere alguna prueba de trabajo de bitwork para acuñar. Se aplica a la transacción de confirmación.')
.option('—mintbitworkr <string>', 'Si se requiere alguna prueba de trabajo de bitwork para acuñar. Se aplica a la transacción de revelación.')
.option('—bitworkc <string>', 'Si se debe colocar alguna prueba de trabajo de bitwork en el token mint. Se aplica a la transacción de confirmación.')
.option('—bitworkr <string>', 'Si se debe colocar alguna prueba de trabajo de bitwork en el token mint. Se aplica a la transacción de revelación.')
.option('—parent <string>', 'Si se requiere que se gaste un átomo principal junto con la menta.')
.option('—parentowner <string>', 'Propietario de la billetera del padre para gastar junto con la menta.')
.option('—disablechalk', 'Si se debe deshabilitar el registro con tiza en tiempo real de cada hash para la minería Bitwork. Mejoras en el rendimiento de la minería al establecer esta bandera')
.action(async (ticker, mintAmount, maxMints, mintHeight, archivo, opciones) => {
…..
}
En el código fuente de atomicals-js cli , puede encontrar las instrucciones para inicializar un token. Los parámetros que deben registrarse en la cadena son:
ticker: nombre del token
mint_amount: cantidad total de menta
max_mints: el número de mentas en una sola vez
mint_height: especifica la altura del bloque para iniciar mint
archivo: metadatos relacionados
Pero a diferencia de Brc20, Arc20 adopta un modelo de moneda coloreada. Después de ingresar la información relacionada con el token en la cadena BTC, el protocolo anclará el token con Sats:1 token = 1 sat。
Al mismo tiempo, el uso del modelo de moneda coloreada permite a los usuarios realizar transacciones directamente a través de la red BTC en lugar de libros de contabilidad fuera de la cadena. Debido a que el saldo del token es consistente con los satoshis en UTXO, los cambios relacionados en el token se pueden reflejar intuitivamente en la cadena. . El indexador en Arc-20 solo se usa para leer la información de implementación relevante de los tokens en la cadena y verificar qué tokens cumplen con el protocolo Arc-20.
La estructura de diseño de Brc-20 se basa más en libros de contabilidad fuera de la cadena, mientras que Arc-20 está más en línea con las características de Btc y está más descentralizado en comparación con Brc-20. Sin embargo, el modelo de moneda de color impide que Arc-20 complete la emisión de monedas meme, ya que las monedas meme a menudo tienen un suministro total de tokens alto, y la característica de 1 token = 1 sat requiere que se consuma una gran cantidad de Btc al emitir meme. monedas.
autor:https://twitter.com/YanAemons@YanAemons
Recientemente, la introducción del protocolo Arc-20 ha vuelto a provocar un frenesí en el mercado de las inscripciones. Este artículo profundizará en los detalles, las ventajas y desventajas de los dos protocolos desde una perspectiva técnica.
Bitcoin se diseñó originalmente para ser una moneda digital descentralizada segura, estable y confiable. Sin embargo, debido a su arquitectura técnica y a su lenguaje de programación relativamente menos flexible en comparación con Ethereum, Bitcoin no es adecuado para ejecutar directamente contratos inteligentes.
A pesar de esto, las ideas innovadoras y los intentos audaces de los desarrolladores han traído prosperidad al ecosistema de Bitcoin. Un ejemplo típico es el protocolo Brc-20. La idea central del protocolo es una forma de token experimental, centrada en memes. Cualquiera puede acuñar estos tokens directamente en la cadena de Bitcoin por orden de llegada sin depender de contratos inteligentes. La característica clave del token Brc-20 es su naturaleza descentralizada, que elimina mecanismos como las ventas privadas, las preventas y el desbloqueo o la apuesta. Esto garantiza un compromiso verdaderamente descentralizado.
En este contexto, el protocolo Arc-20 ha vuelto a despertar un gran interés por las inscripciones.
Los protocolos Brc-20 y Arc-20 se basan en la cadena Btc, por lo que antes de presentar formalmente el protocolo Arc-20 y el protocolo Brc-20, comprendamos brevemente UTXO (salida de transacción no gastada).
Cuando hablamos de Bitcoin, el modelo UTXO (salida de transacciones no gastadas) es un concepto de diseño importante. Es un tipo de modelo de cuenta utilizado por Bitcoin, que es diferente de los modelos de saldo tradicionales como las cuentas bancarias.
En el modelo UTXO, cada transacción de Bitcoin crea una serie de resultados no gastados, y cada resultado representa una cierta cantidad de Bitcoin. Estos productos no gastados son esencialmente unidades de moneda digital no utilizadas, similares a los billetes o monedas. Cuando recibe Bitcoin, alguien ha creado una nueva salida no gastada que está asociada con su dirección de Bitcoin. Esta salida es la UTXO.
Expliquemos el modelo UTXO con un ejemplo sencillo:
Si tiene dos transacciones, una que recibe 0,7 BTC y la otra que recibe 0,5 BTC, tendrá dos UTXO, uno con un valor de 0,7 BTC y otro con un valor de 0,5 BTC. Cuando desee pagar 1 BTC, no puede simplemente usar un UTXO, sino que debe fusionar los dos UTXO en un nuevo UTXO (con un total de 1,2 BTC) y luego enviar 1 BTC al destinatario, con los 0,2 BTC restantes. regresado a ti mismo como cambio. Sin embargo, el cambio real puede ser inferior a 0,2 BTC porque los usuarios deben pagar una tarifa de transacción a los mineros para garantizar el buen funcionamiento de la transacción.
BRC-20 es un estándar experimental que demuestra la posibilidad de crear tokens fungibles en la capa 1 de Bitcoin aprovechando la teoría ordinal y las inscripciones. El protocolo Ordinals (el primer token acuñado según los estándares del protocolo) permite imprimir contenido, incluidos texto, imágenes o videos, en la unidad más pequeña de Bitcoin, Satoshi, creando así activos digitales únicos.
La teoría ordinal es la clave para implementar inscripciones en la red BTC.
Cada Satoshi es esencialmente igual y Ordinals ha desarrollado un protocolo de pedido de Satoshi a través de la teoría narrativa. Este orden se basa en la extracción de Satoshis y el orden de las entradas y salidas de sus transacciones.
Hay varias formas diferentes de representar números ordinales:
La expresión de grado contiene cuatro partes: A°B′C″D‴, y A, B, C y D representan diferentes significados:
La teoría narrativa determina el orden de un Satoshi a través de la expresión de grados y define diferentes niveles de rareza para cada Satoshi a través del orden, logrando así la singularidad de cada Satoshi.
por ejemplo, por ejemplo, un grado existente se expresa como 1°1′0″0‴, donde
Con la definición de rareza anterior, este Satoshi se define como stoshi raro.
El proceso general es el siguiente:
py# Calcular la narrativa (recompensa) de un bloque dada una altura
subsidio def (altura):
devolver 50*100_000_000 >> altura // 210_000
Esta función se utiliza para calcular la recompensa por un bloque de Bitcoin de una altura determinada, donde 50*100_000_000 es la recompensa inicial de Bitcoin, >> es el operador de desplazamiento a la derecha, equivalente a dividir por 2 divisiones enteras. Esta función devuelve un número entero que representa el monto de la recompensa por un bloque a una altura determinada.
def primer_ordinal(altura):
inicio = 0
para h en rango (altura):
inicio += subsidio(h)
inicio de regreso
Esta función calcula el número ordinal de la primera recompensa por un bloque a una altura determinada. Calcule el número total de recompensas desde el primer bloque hasta una altura determinada iterando a través de las alturas y acumulando las recompensas para cada bloque, lo que da como resultado el número ordinal de la primera recompensa.
def asignar_ordinales(bloque):
primero = primer_ordinal(bloque.altura)
último = primero + subsidio (bloque.altura)
coinbase_ordinals = lista (rango (primero, último))
def asignar_ordinales(bloque):
primero = primer_ordinal(bloque.altura)
último = primero + subsidio (bloque.altura)
coinbase_ordinals = lista (rango (primero, último))
para transacción en block.transactions[1:]:
ordinales = []
para entrada en transacción.entradas:
ordinales.extender(entrada.ordinales)
para salida en transacción.salidas:
salida.ordinales = ordinales[:salida.valor]
de los ordinales[:salida.valor]
coinbase_ordinals.extend(ordinales)
para salida en block.transactions[0].outputs:
salida.ordinales = coinbase_ordinals[:salida.valor]
de coinbase_ordinals[:output.value]
Esta función se utiliza para asignar un número ordinal a un bloque de Bitcoin determinado. Primero calcula el rango ordinal de la primera y última recompensa del bloque. Luego, itera sobre cada transacción en el bloque, asignando un número ordinal a cada salida. Finalmente, a las salidas de la transacción se les asignan números ordinales para garantizar que todos los satoshis en todo el bloque tengan números ordinales únicos.
En resumen, a través de la teoría ordinal, los originales hacen que cada Satoshi sea esencialmente único a través del procesamiento y definen una familiaridad poco común para cada Satoshi a través de reglas, realizando atributos de colección o formulando reglas para adaptarse al juego.
El protocolo Atomicals es un protocolo simple y flexible para acuñar, transferir y actualizar objetos digitales (tradicionalmente conocidos como tokens no fungibles) en una cadena de bloques con salidas de transacciones no gastadas (UTXO) como Bitcoin. Un Atomical (o “átomo”) es una forma de gestionar la creación, transferencia y actualización de objetos digitales; esencialmente una cadena de propiedad digital definida por algunas reglas simples.
Arc-20 adopta el modelo de moneda de colores, lo que significa que una ficha Arc-20 debe tener un soporte satoshi, a diferencia de las fichas Brc-20 que se diferencian por orden. Dado que los tokens Arc-20 se basan completamente en satoshis, se pueden dividir y fusionar (similar a los UTXO mencionados al principio del artículo) y se pueden transferir directamente a través de la red Bitcoin.
Por ejemplo, usando el protocolo Atomicals, podemos definir 100 satoshis como 100 “entradas de cine”, y los usuarios pueden usar uno de estos 100 satoshis para pagar en una sala de cine que admita el protocolo Atomicals, actuando como una entrada de cine.
Sin embargo, los mineros y la red Bitcoin no pueden saber qué UTXO han sido "Atomicalizados", lo que puede considerar erróneamente los tokens Arc-20 como tarifas de minero. Para resolver este problema, Atomicals indica que cada token Arc-20 debe ser el primer resultado de una transacción para evitar la destrucción accidental del token.
A continuación, analizaremos y compararemos las similitudes y diferencias entre los dos protocolos.
El acuerdo se divide aproximadamente en tres pasos.
{
“p”: “brc-20”,
“encendido”: “implementar”,
“tick”: “ordi”,
“máximo”: “21000000”,
“lím”: “1000”
}
Dado que BTC no puede reconocer la información del token en sí cuando el implementador implementa el token, se necesita un indexador para obtener datos relevantes en la cadena y usar estos datos para crear un libro de contabilidad fuera de la cadena para registrar el historial relevante y los procesos relacionados. Operar y realizar datos actualizaciones.
El indexador fuera de la cadena debe capturar y actualizar con precisión el libro mayor fuera de línea para cada operación de token. Sin embargo, al igual que en la cadena de bloques, a medida que aumenta el número de transacciones, los datos almacenados por los nodos serán cada vez más grandes. Garantizar la integridad del libro mayor y encontrar la información que debe modificarse dentro de la gran cantidad de datos se convertirá en un desafío para BRC-20.
De manera similar, el protocolo Arc-20 también necesita registrar información relevante según el formato en la cadena BTC al implementar tokens.
programa.comando('init-dft')
.description('Inicializar token fungible (FT) atómico en modo de emisión descentralizada')
.argument('<ticker>', 'cadena')
.argument('<mint_amount>', 'número')
.argument('<max_mints>', 'número')
.argument('<mint_height>', 'número')
.argumento('<file>', 'cadena')
.option('—rbf', 'Si se debe habilitar RBF para transacciones.')
.option('—funding <string>', 'Usar alias de billetera con clave para usar para financiamiento y cambios')
.option('—satsbyte <number><número>', 'Satoshis por byte en tarifas', '15')
.option('—mintbitworkc <string>', 'Si se requiere alguna prueba de trabajo de bitwork para acuñar. Se aplica a la transacción de confirmación.')
.option('—mintbitworkr <string>', 'Si se requiere alguna prueba de trabajo de bitwork para acuñar. Se aplica a la transacción de revelación.')
.option('—bitworkc <string>', 'Si se debe colocar alguna prueba de trabajo de bitwork en el token mint. Se aplica a la transacción de confirmación.')
.option('—bitworkr <string>', 'Si se debe colocar alguna prueba de trabajo de bitwork en el token mint. Se aplica a la transacción de revelación.')
.option('—parent <string>', 'Si se requiere que se gaste un átomo principal junto con la menta.')
.option('—parentowner <string>', 'Propietario de la billetera del padre para gastar junto con la menta.')
.option('—disablechalk', 'Si se debe deshabilitar el registro con tiza en tiempo real de cada hash para la minería Bitwork. Mejoras en el rendimiento de la minería al establecer esta bandera')
.action(async (ticker, mintAmount, maxMints, mintHeight, archivo, opciones) => {
…..
}
En el código fuente de atomicals-js cli , puede encontrar las instrucciones para inicializar un token. Los parámetros que deben registrarse en la cadena son:
ticker: nombre del token
mint_amount: cantidad total de menta
max_mints: el número de mentas en una sola vez
mint_height: especifica la altura del bloque para iniciar mint
archivo: metadatos relacionados
Pero a diferencia de Brc20, Arc20 adopta un modelo de moneda coloreada. Después de ingresar la información relacionada con el token en la cadena BTC, el protocolo anclará el token con Sats:1 token = 1 sat。
Al mismo tiempo, el uso del modelo de moneda coloreada permite a los usuarios realizar transacciones directamente a través de la red BTC en lugar de libros de contabilidad fuera de la cadena. Debido a que el saldo del token es consistente con los satoshis en UTXO, los cambios relacionados en el token se pueden reflejar intuitivamente en la cadena. . El indexador en Arc-20 solo se usa para leer la información de implementación relevante de los tokens en la cadena y verificar qué tokens cumplen con el protocolo Arc-20.
La estructura de diseño de Brc-20 se basa más en libros de contabilidad fuera de la cadena, mientras que Arc-20 está más en línea con las características de Btc y está más descentralizado en comparación con Brc-20. Sin embargo, el modelo de moneda de color impide que Arc-20 complete la emisión de monedas meme, ya que las monedas meme a menudo tienen un suministro total de tokens alto, y la característica de 1 token = 1 sat requiere que se consuma una gran cantidad de Btc al emitir meme. monedas.
autor:https://twitter.com/YanAemons@YanAemons