Recentemente, a introdução do protocolo Arc-20 provocou mais uma vez um frenesi no mercado de inscrições. Este artigo irá aprofundar os detalhes e vantagens e desvantagens dos dois protocolos de uma perspectiva técnica.
O Bitcoin foi originalmente concebido para ser uma moeda digital descentralizada segura, estável e fiável. No entanto, devido à sua arquitetura técnica e linguagem de script relativamente menos flexível em comparação com o Ethereum, o Bitcoin não é adequado para a execução direta de contratos inteligentes.
Apesar disso, as ideias inovadoras dos desenvolvedores e as tentativas ousadas trouxeram prosperidade ao ecossistema Bitcoin. Um exemplo típico é o protocolo Brc-20. A ideia central do protocolo é uma forma experimental de token, centrada em memes. Qualquer pessoa pode cunhar estes tokens diretamente na cadeia Bitcoin por ordem de chegada, sem depender de contratos inteligentes. A principal característica do token Brc-20 é a sua natureza descentralizada, que elimina mecanismos como vendas privadas, pré-vendas e desbloqueio ou staking. Isso garante um envolvimento verdadeiramente descentralizado.
Neste contexto, o protocolo Arc-20 despertou mais uma vez um forte interesse nas inscrições.
Os protocolos Brc-20 e Arc-20 são ambos baseados na cadeia Btc, portanto, antes de introduzirmos formalmente o protocolo Arc-20 e o protocolo Brc-20, vamos entender brevemente UTXO (saída de transação não gasta).
Quando falamos de Bitcoin, o modelo UTXO (saída de transação não gasta) é um conceito de design importante. É um tipo de modelo de conta utilizado pelo Bitcoin, que é diferente dos modelos tradicionais de saldo, como contas bancárias.
No modelo UTXO, cada transação Bitcoin cria uma série de saídas não gastas, com cada saída representando uma certa quantidade de Bitcoin. Estas saídas não gastas são essencialmente unidades não utilizadas de moeda digital, semelhantes a notas de papel ou moedas. Quando recebe Bitcoin, alguém criou uma nova saída não gasta que está associada ao seu endereço Bitcoin. Esta saída é o UTXO.
Vamos explicar o modelo UTXO com um exemplo simples:
Se tiver duas transações, uma a receber 0.7 BTC e a outra a receber 0.5 BTC, terá dois UTXOs, um vale 0.7 BTC e outro vale 0.5 BTC. Quando quer pagar 1 BTC, não pode simplesmente usar um UTXO, mas precisa fundir os dois UTXOs num novo UTXO (com um total de 1.2 BTC) e depois enviar 1 BTC ao destinatário, com os restantes 0.2 BTC devolvidos a si como alteração. No entanto, a alteração real pode ser inferior a 0.2 BTC porque os utilizadores precisam pagar uma taxa de transação aos mineiros para garantir o bom funcionamento da transação.
O BRC-20 é um padrão experimental que demonstra a possibilidade de criar tokens fungíveis na camada 1 do Bitcoin, alavancando a teoria ordinal e inscrições. O protocolo Ordinals (o primeiro token cunhado de acordo com os padrões do protocolo) permite que o conteúdo, incluindo texto, imagens ou vídeos, seja impresso na menor unidade do Bitcoin, Satoshi, criando assim ativos digitais únicos.
A teoria ordinal é a chave para implementar inscrições na rede BTC.
Cada Satoshi é essencialmente o mesmo, e os Ordinais desenvolveram um protocolo de ordenação de Satoshi através da teoria narrativa. Este pedido baseia-se na exploração mineira de Satoshis e na ordem das suas entradas e saídas da transação.
Existem várias maneiras diferentes de representar números ordinais:
A expressão de grau contém quatro partes: A°B′C″De A, B, C e D representam significados diferentes:
A teoria narrativa determina a ordem de um Satoshi através da expressão de graus e define diferentes níveis de raridade para cada Satoshi através da ordem, alcançando assim a singularidade de cada Satoshi
por exemplo, por exemplo, um grau existente é expresso como 1°1′0″0, onde
Com a definição de raridade acima, este Satoshi é definido como stoshi raro.
O processo geral é o seguinte:
py# Calcule a narrativa (recompensa) de um bloco dada a altura
subsídio def (altura):
retornar 50*100_000_000 > > altura//210_000
Esta função é usada para calcular a recompensa para um bloco Bitcoin de uma determinada altura, onde 50*100_000_000 é a recompensa inicial do Bitcoin, > > é o operador de deslocamento para a direita, equivalente a dividir por 2 divisões inteiras. Esta função devolve um número inteiro que representa o valor da recompensa para um bloco a uma determinada altura.
def first_ordinal (altura):
início = 0
para h no alcance (altura):
início += subsídio (h)
retorno início
Esta função calcula o número ordinal da primeira recompensa para um bloco a uma determinada altura. Calcule o número total de recompensas desde o primeiro bloco até uma determinada altura, iterando através das alturas e acumulando as recompensas para cada bloco, resultando no número ordinal da primeira recompensa.
def assign_ordinals (bloco):
primeiro = first_ordinal (block.altura)
último = primeiro + subsídio (block.altura)
coinbase_ordinals =lista (intervalo (primeiro, último))
def assign_ordinals (bloco):
primeiro = first_ordinal (block.altura)
último = primeiro + subsídio (block.altura)
coinbase_ordinals =lista (intervalo (primeiro, último))
para transação em block.transaction [1:]:
ordinais = []
para entrada na transação.entradas:
ordinals.estendam (entrada.ordinais)
para saída em transação.saídas:
output.ordinals = ordinais [:output.value]
dos ordinais [:output.value]
coinbase_ordinals.estender (ordinais)
para saída em block.actions [0] .saídas:
output.ordinals = coinbase_ordinals [:output.value]
dos ordinais coinbase_[ :output.value]
Esta função é usada para atribuir um número ordinal a um determinado bloco Bitcoin. Primeiro calcula o intervalo ordinal da primeira e última recompensa do bloco. Em seguida, itera sobre cada transação no bloco, atribuindo um número ordinal a cada saída. Finalmente, as saídas da transação são atribuídas números ordinais para garantir que todos os satoshis em todo o bloco tenham números ordinais únicos.
Em suma, através da teoria ordinal, os originais tornam cada um essencialmente o mesmo Satoshi único através do processamento e definem uma familiaridade rara para cada Satoshi através de regras, percebendo atributos de coleção ou formulando regras para se adequar à jogabilidade.
O protocolo Atomicais é um protocolo simples e flexível para cunhar, transferir e atualizar objetos digitais (tradicionalmente conhecidos como tokens não fungíveis) numa cadeia de blocos com saídas de transação não gastas (UTXOs) como o Bitcoin. Um atómico (ou “átomo”) é uma forma de gerir a criação, transferência e atualização de objetos digitais - essencialmente uma cadeia de propriedade digital definida por algumas regras simples.
O Arc-20 adota o modelo de moeda colorida, o que significa que um token Arc-20 deve ter um suporte satoshi, ao contrário dos tokens Brc-20 que são diferenciados por encomenda. Uma vez que os tokens Arc-20 são inteiramente baseados em satoshis, podem ser divididos e mesclados (semelhante aos UTXOs mencionados no início do artigo) e podem ser transferidos diretamente através da rede Bitcoin.
Por exemplo, usando o protocolo Atomicais, podemos definir 100 satoshis como 100 “bilhetes de cinema”, e os utilizadores podem usar um destes 100 satoshis para pagar num cinema que suporta o protocolo Atomicais, actuando como um bilhete de cinema.
No entanto, os mineiros e a rede Bitcoin não podem saber quais UTXOs foram “atomicalizados”, o que pode considerar erroneamente os tokens Arc-20 como taxas de mineradores. Para resolver este problema, Atomicais instrui que cada token Arc-20 deve ser a primeira saída de uma transação para evitar a destruição acidental do token.
Em seguida, analisaremos e compararemos as semelhanças e diferenças entre os dois protocolos.
O acordo está dividido aproximadamente em três etapas
{
“p”: “brc-20",
“on”: “implantar”,
“tick”: “Ordi”,
“max”: “21000000”,
“lim”: “1000”
}
Uma vez que a informação do token em si não pode ser reconhecida pelo BTC quando o implementador implementa o token, é necessário um indexador para obter dados relevantes sobre a cadeia e usar esses dados para criar um livro-razão fora da cadeia para registar o histórico relevante e o processo relacionado Operar e executar atualizações de dados.
O indexador fora da cadeia precisa de capturar e atualizar com precisão o livro-razão offline para cada operação de token. No entanto, semelhante ao blockchain, à medida que o número de transações aumenta, os dados armazenados pelos nós tornar-se-ão cada vez maiores. Garantir a integridade do livro-razão e encontrar as informações que precisam de ser modificadas dentro da vasta quantidade de dados tornar-se-á um desafio para o BRC-20.
Da mesma forma, o protocolo Arc-20 também precisa de registar informações relevantes de acordo com o formato na cadeia BTC ao implantar tokens.
program.command ('init-dft')
.description ('Inicializar token fungível (FT) atómico no modo de emissão descentralizado')
.argumento ('<ticker>', 'string')
.argumento ('<mint_amount>', 'número')
.argumento ('<max_mints>', 'número')
.argumento ('<mint_height> ', 'número')
.argumento ('<file> ', 'string')
.option ('—rbf', 'Se deve activar o RBF para transacções')
.option ('—funding <string> ', 'Use a chave wif do alias da carteira para ser usada para financiamento e alteração')
.option ('—satsbyte <number>< número > ', 'Satoshis por byte em taxas',' 15 ')
.option ('—mintbitworkc <string> ', 'Se deve exigir qualquer prova de trabalho de bitwork para cunhar. Aplica-se à transação de compromisso. ')
.option ('—mintbitworkr <string> ', 'Se deve exigir qualquer prova de trabalho de bitwork para cunhar. Aplica-se à transação de revelação. ')
.option ('—bitworkc <string> ', 'Se deve colocar qualquer prova de trabalho de bitwork na moeda do token. Aplica-se à transação de compromisso. ')
.option ('—bitworkr <string> ', 'Se deve colocar qualquer prova de trabalho de bitwork na moeda do token. Aplica-se à transação de revelação. ')
.option ('—parent <string> ', 'Se deve exigir que um pai atómico seja gasto junto com a casa da moeda.')
.option ('—parentowner <string> ', 'Proprietário da carteira dos pais para gastar junto com a casa da moeda.')
.option ('—Disablechalk', 'Se deve desativar o registo marcado em tempo real de cada hash para a mineração Bitwork. Melhorias no desempenho da mineração para definir esta sinalização')
.ação (assíncrono (ticker, mintaMount, MaxMints, minthEight, arquivo, opções) = > {
...
}
No código-fonte atomicals-js cli, pode encontrar as instruções para inicializar um token. Os parâmetros que precisam de ser registados na cadeia são:
ticker: nome do token
mint_amount: quantidade total de hortelã
max_mints: o número de menta numa única vez
mint_altura: especifica a altura do bloco para começar a hortelã
ficheiro: metadados relacionados
Mas ao contrário do Brc20, o Arc20 adota um modelo de moeda colorida. Depois que as informações relacionadas com o token forem inseridas na cadeia BTC, o protocolo ancorará o token com Sats:1 token = 1 sat.
Ao mesmo tempo, o uso do modelo de moeda colorida permite que os utilizadores conduzam transações diretamente através da rede BTC em vez de ledgers fora da cadeia. Como o saldo do token é consistente com os satoshis em UTXO, as alterações relacionadas no token podem ser refletidas intuitivamente na cadeia. O indexador no Arc-20 é utilizado apenas para ler as informações relevantes de implementação de tokens na cadeia e verificar quais os tokens que estão em conformidade com o protocolo Arc-20.
A estrutura de design do Brc-20 depende mais de livros fora da cadeia, enquanto o Arc-20 está mais alinhado com as características do Btc e é mais descentralizado em comparação com o Brc-20. No entanto, o modelo de moeda colorida impede que o Arc-20 conclua a emissão de moedas meme, uma vez que as moedas meme geralmente têm um elevado fornecimento total de tokens, e a característica de 1 token = 1 sat requer que uma grande quantidade de Btc seja consumida ao emitir moedas meme.
autor: < a href= "https://twitter.com/YanAemons" " > @YanAemons
Recentemente, a introdução do protocolo Arc-20 provocou mais uma vez um frenesi no mercado de inscrições. Este artigo irá aprofundar os detalhes e vantagens e desvantagens dos dois protocolos de uma perspectiva técnica.
O Bitcoin foi originalmente concebido para ser uma moeda digital descentralizada segura, estável e fiável. No entanto, devido à sua arquitetura técnica e linguagem de script relativamente menos flexível em comparação com o Ethereum, o Bitcoin não é adequado para a execução direta de contratos inteligentes.
Apesar disso, as ideias inovadoras dos desenvolvedores e as tentativas ousadas trouxeram prosperidade ao ecossistema Bitcoin. Um exemplo típico é o protocolo Brc-20. A ideia central do protocolo é uma forma experimental de token, centrada em memes. Qualquer pessoa pode cunhar estes tokens diretamente na cadeia Bitcoin por ordem de chegada, sem depender de contratos inteligentes. A principal característica do token Brc-20 é a sua natureza descentralizada, que elimina mecanismos como vendas privadas, pré-vendas e desbloqueio ou staking. Isso garante um envolvimento verdadeiramente descentralizado.
Neste contexto, o protocolo Arc-20 despertou mais uma vez um forte interesse nas inscrições.
Os protocolos Brc-20 e Arc-20 são ambos baseados na cadeia Btc, portanto, antes de introduzirmos formalmente o protocolo Arc-20 e o protocolo Brc-20, vamos entender brevemente UTXO (saída de transação não gasta).
Quando falamos de Bitcoin, o modelo UTXO (saída de transação não gasta) é um conceito de design importante. É um tipo de modelo de conta utilizado pelo Bitcoin, que é diferente dos modelos tradicionais de saldo, como contas bancárias.
No modelo UTXO, cada transação Bitcoin cria uma série de saídas não gastas, com cada saída representando uma certa quantidade de Bitcoin. Estas saídas não gastas são essencialmente unidades não utilizadas de moeda digital, semelhantes a notas de papel ou moedas. Quando recebe Bitcoin, alguém criou uma nova saída não gasta que está associada ao seu endereço Bitcoin. Esta saída é o UTXO.
Vamos explicar o modelo UTXO com um exemplo simples:
Se tiver duas transações, uma a receber 0.7 BTC e a outra a receber 0.5 BTC, terá dois UTXOs, um vale 0.7 BTC e outro vale 0.5 BTC. Quando quer pagar 1 BTC, não pode simplesmente usar um UTXO, mas precisa fundir os dois UTXOs num novo UTXO (com um total de 1.2 BTC) e depois enviar 1 BTC ao destinatário, com os restantes 0.2 BTC devolvidos a si como alteração. No entanto, a alteração real pode ser inferior a 0.2 BTC porque os utilizadores precisam pagar uma taxa de transação aos mineiros para garantir o bom funcionamento da transação.
O BRC-20 é um padrão experimental que demonstra a possibilidade de criar tokens fungíveis na camada 1 do Bitcoin, alavancando a teoria ordinal e inscrições. O protocolo Ordinals (o primeiro token cunhado de acordo com os padrões do protocolo) permite que o conteúdo, incluindo texto, imagens ou vídeos, seja impresso na menor unidade do Bitcoin, Satoshi, criando assim ativos digitais únicos.
A teoria ordinal é a chave para implementar inscrições na rede BTC.
Cada Satoshi é essencialmente o mesmo, e os Ordinais desenvolveram um protocolo de ordenação de Satoshi através da teoria narrativa. Este pedido baseia-se na exploração mineira de Satoshis e na ordem das suas entradas e saídas da transação.
Existem várias maneiras diferentes de representar números ordinais:
A expressão de grau contém quatro partes: A°B′C″De A, B, C e D representam significados diferentes:
A teoria narrativa determina a ordem de um Satoshi através da expressão de graus e define diferentes níveis de raridade para cada Satoshi através da ordem, alcançando assim a singularidade de cada Satoshi
por exemplo, por exemplo, um grau existente é expresso como 1°1′0″0, onde
Com a definição de raridade acima, este Satoshi é definido como stoshi raro.
O processo geral é o seguinte:
py# Calcule a narrativa (recompensa) de um bloco dada a altura
subsídio def (altura):
retornar 50*100_000_000 > > altura//210_000
Esta função é usada para calcular a recompensa para um bloco Bitcoin de uma determinada altura, onde 50*100_000_000 é a recompensa inicial do Bitcoin, > > é o operador de deslocamento para a direita, equivalente a dividir por 2 divisões inteiras. Esta função devolve um número inteiro que representa o valor da recompensa para um bloco a uma determinada altura.
def first_ordinal (altura):
início = 0
para h no alcance (altura):
início += subsídio (h)
retorno início
Esta função calcula o número ordinal da primeira recompensa para um bloco a uma determinada altura. Calcule o número total de recompensas desde o primeiro bloco até uma determinada altura, iterando através das alturas e acumulando as recompensas para cada bloco, resultando no número ordinal da primeira recompensa.
def assign_ordinals (bloco):
primeiro = first_ordinal (block.altura)
último = primeiro + subsídio (block.altura)
coinbase_ordinals =lista (intervalo (primeiro, último))
def assign_ordinals (bloco):
primeiro = first_ordinal (block.altura)
último = primeiro + subsídio (block.altura)
coinbase_ordinals =lista (intervalo (primeiro, último))
para transação em block.transaction [1:]:
ordinais = []
para entrada na transação.entradas:
ordinals.estendam (entrada.ordinais)
para saída em transação.saídas:
output.ordinals = ordinais [:output.value]
dos ordinais [:output.value]
coinbase_ordinals.estender (ordinais)
para saída em block.actions [0] .saídas:
output.ordinals = coinbase_ordinals [:output.value]
dos ordinais coinbase_[ :output.value]
Esta função é usada para atribuir um número ordinal a um determinado bloco Bitcoin. Primeiro calcula o intervalo ordinal da primeira e última recompensa do bloco. Em seguida, itera sobre cada transação no bloco, atribuindo um número ordinal a cada saída. Finalmente, as saídas da transação são atribuídas números ordinais para garantir que todos os satoshis em todo o bloco tenham números ordinais únicos.
Em suma, através da teoria ordinal, os originais tornam cada um essencialmente o mesmo Satoshi único através do processamento e definem uma familiaridade rara para cada Satoshi através de regras, percebendo atributos de coleção ou formulando regras para se adequar à jogabilidade.
O protocolo Atomicais é um protocolo simples e flexível para cunhar, transferir e atualizar objetos digitais (tradicionalmente conhecidos como tokens não fungíveis) numa cadeia de blocos com saídas de transação não gastas (UTXOs) como o Bitcoin. Um atómico (ou “átomo”) é uma forma de gerir a criação, transferência e atualização de objetos digitais - essencialmente uma cadeia de propriedade digital definida por algumas regras simples.
O Arc-20 adota o modelo de moeda colorida, o que significa que um token Arc-20 deve ter um suporte satoshi, ao contrário dos tokens Brc-20 que são diferenciados por encomenda. Uma vez que os tokens Arc-20 são inteiramente baseados em satoshis, podem ser divididos e mesclados (semelhante aos UTXOs mencionados no início do artigo) e podem ser transferidos diretamente através da rede Bitcoin.
Por exemplo, usando o protocolo Atomicais, podemos definir 100 satoshis como 100 “bilhetes de cinema”, e os utilizadores podem usar um destes 100 satoshis para pagar num cinema que suporta o protocolo Atomicais, actuando como um bilhete de cinema.
No entanto, os mineiros e a rede Bitcoin não podem saber quais UTXOs foram “atomicalizados”, o que pode considerar erroneamente os tokens Arc-20 como taxas de mineradores. Para resolver este problema, Atomicais instrui que cada token Arc-20 deve ser a primeira saída de uma transação para evitar a destruição acidental do token.
Em seguida, analisaremos e compararemos as semelhanças e diferenças entre os dois protocolos.
O acordo está dividido aproximadamente em três etapas
{
“p”: “brc-20",
“on”: “implantar”,
“tick”: “Ordi”,
“max”: “21000000”,
“lim”: “1000”
}
Uma vez que a informação do token em si não pode ser reconhecida pelo BTC quando o implementador implementa o token, é necessário um indexador para obter dados relevantes sobre a cadeia e usar esses dados para criar um livro-razão fora da cadeia para registar o histórico relevante e o processo relacionado Operar e executar atualizações de dados.
O indexador fora da cadeia precisa de capturar e atualizar com precisão o livro-razão offline para cada operação de token. No entanto, semelhante ao blockchain, à medida que o número de transações aumenta, os dados armazenados pelos nós tornar-se-ão cada vez maiores. Garantir a integridade do livro-razão e encontrar as informações que precisam de ser modificadas dentro da vasta quantidade de dados tornar-se-á um desafio para o BRC-20.
Da mesma forma, o protocolo Arc-20 também precisa de registar informações relevantes de acordo com o formato na cadeia BTC ao implantar tokens.
program.command ('init-dft')
.description ('Inicializar token fungível (FT) atómico no modo de emissão descentralizado')
.argumento ('<ticker>', 'string')
.argumento ('<mint_amount>', 'número')
.argumento ('<max_mints>', 'número')
.argumento ('<mint_height> ', 'número')
.argumento ('<file> ', 'string')
.option ('—rbf', 'Se deve activar o RBF para transacções')
.option ('—funding <string> ', 'Use a chave wif do alias da carteira para ser usada para financiamento e alteração')
.option ('—satsbyte <number>< número > ', 'Satoshis por byte em taxas',' 15 ')
.option ('—mintbitworkc <string> ', 'Se deve exigir qualquer prova de trabalho de bitwork para cunhar. Aplica-se à transação de compromisso. ')
.option ('—mintbitworkr <string> ', 'Se deve exigir qualquer prova de trabalho de bitwork para cunhar. Aplica-se à transação de revelação. ')
.option ('—bitworkc <string> ', 'Se deve colocar qualquer prova de trabalho de bitwork na moeda do token. Aplica-se à transação de compromisso. ')
.option ('—bitworkr <string> ', 'Se deve colocar qualquer prova de trabalho de bitwork na moeda do token. Aplica-se à transação de revelação. ')
.option ('—parent <string> ', 'Se deve exigir que um pai atómico seja gasto junto com a casa da moeda.')
.option ('—parentowner <string> ', 'Proprietário da carteira dos pais para gastar junto com a casa da moeda.')
.option ('—Disablechalk', 'Se deve desativar o registo marcado em tempo real de cada hash para a mineração Bitwork. Melhorias no desempenho da mineração para definir esta sinalização')
.ação (assíncrono (ticker, mintaMount, MaxMints, minthEight, arquivo, opções) = > {
...
}
No código-fonte atomicals-js cli, pode encontrar as instruções para inicializar um token. Os parâmetros que precisam de ser registados na cadeia são:
ticker: nome do token
mint_amount: quantidade total de hortelã
max_mints: o número de menta numa única vez
mint_altura: especifica a altura do bloco para começar a hortelã
ficheiro: metadados relacionados
Mas ao contrário do Brc20, o Arc20 adota um modelo de moeda colorida. Depois que as informações relacionadas com o token forem inseridas na cadeia BTC, o protocolo ancorará o token com Sats:1 token = 1 sat.
Ao mesmo tempo, o uso do modelo de moeda colorida permite que os utilizadores conduzam transações diretamente através da rede BTC em vez de ledgers fora da cadeia. Como o saldo do token é consistente com os satoshis em UTXO, as alterações relacionadas no token podem ser refletidas intuitivamente na cadeia. O indexador no Arc-20 é utilizado apenas para ler as informações relevantes de implementação de tokens na cadeia e verificar quais os tokens que estão em conformidade com o protocolo Arc-20.
A estrutura de design do Brc-20 depende mais de livros fora da cadeia, enquanto o Arc-20 está mais alinhado com as características do Btc e é mais descentralizado em comparação com o Brc-20. No entanto, o modelo de moeda colorida impede que o Arc-20 conclua a emissão de moedas meme, uma vez que as moedas meme geralmente têm um elevado fornecimento total de tokens, e a característica de 1 token = 1 sat requer que uma grande quantidade de Btc seja consumida ao emitir moedas meme.
autor: < a href= "https://twitter.com/YanAemons" " > @YanAemons