Em 1º de fevereiro, a Binance Web3 Wallet lançou oficialmente seu mercado de inscrição, suportando vários protocolos de inscrição como BRC20 e Ethscription. Há alguns dias, a OKX também anunciou seu suporte para protocolos de inscrição, como ARC20, Runes, Doginals etc., o que atraiu a atenção de todo o mercado para as inscrições. Durante a onda de inscrição, vários problemas de segurança surgem frequentemente devido à complexidade e novidade dos protocolos de inscrição. Isso não apenas ameaça a segurança dos ativos dos usuários, mas também tem um impacto negativo no desenvolvimento saudável de todo o ecossistema de inscrição.
Em resposta a isso, a equipe de segurança da Beosin analisará os protocolos de inscrição convencionais para ajudar os usuários a entender a finalidade e a implementação dos protocolos de inscrição e como proteger os ativos de inscrição.
Introdução às inscrições
A inscrição no blockchain serve para registrar algumas informações específicas e significativas sobre o blockchain por meio de certas características do blockchain. Depois que essas informações forem registradas no blockchain, elas serão permanentemente armazenadas no blockchain e serão difíceis de adulterar. As informações registradas no blockchain podem ser de vários tipos, como informações de texto simples, códigos complexos, imagens etc. podem ser gravadas no blockchain. Dessa forma, podemos usar um conjunto de padrões para implementar as funções de ativos digitais.
Status atual das inscrições
Desde o surgimento inicial de inscrições de Bitcoin como BRC-20, até a ecologia atual de inscrição , existem infinitos novos protocolos de inscrição e novos projetos surgindo quase todos dias. Pode-se dizer que o desenvolvimento da Inscrição está progredindo aos trancos e barrancos. Várias cadeias públicas comuns também se juntaram ao ecossistema de inscrição, como o protocolo Ethscription na cadeia pública ETH, o protocolo ARC-20 na cadeia pública BTC, BSC-20 e outros protocolos na cadeia pública BSC e o PRC- em a cadeia pública Polygon. 20 etc acordo …. Esses protocolos são todos gerados com a finalidade de publicar inscrições em suas redes públicas. No conteúdo a seguir, apresentaremos os métodos de implementação e os casos de uso de vários protocolos.
Explicação detalhada da inscrição
Vamos apresentar os protocolos que atualmente atraem muita atenção no mercado, e comparar os pontos em comum e diferenças entre os protocolos de inscrição de várias redes públicas.
1. BRC-20
Para explicar o BRC-20 com clareza, devemos primeiro introduzir UTXO e ordinais.
O BTC usa o modelo UTXO e as transações são transferidas em unidades UTXO. UTXO é a abreviatura de Saída de transação não gasta, que significa saída de transação não gasta. O modelo UTXO é diferente do modelo de conta de cadeias públicas, como Ethereum, pois registra eventos de transação, mas não o status final. Para calcular quantos Bitcoins um usuário tem, você precisa soma todos os UTXOs de seu endereço, e o resultado é o número de moedas detidas pelo usuário.
Ordinais é um protocolo sistemático para numerar Satoshis (sats), a menor unidade de Bitcoin. Ele pode atribuir um número exclusivo a cada Satoshi em cada UTXO (incluindo vários Satoshis). Ordinals também suportam a função de escrever texto, imagens, áudio, vídeo, etc. em satoshis, tornando cada satoshi único, semelhante ao familiar token não fungível Ethereum NFT, que chamamos Bitcoin NFT.
O fundador do BRC20 criou outro conceito baseado no protocolo Ordinais. Como o protocolo Ordinais pode criar NFTs de Bitcoin dando a cada Satoshi diferentes "atributos", ele também pode criar FTs de Bitcoin fornecendo um "formato" e "atributos" unificados, ou seja, tokens homogêneos.
O BRC20 grava dados de texto em formato JSON unificado em Satoshi por meio do protocolo Ordinals. Esses dados de texto são o livro contábil dos tokens BRC-20. Com base nesses dados de texto, os acervos e transferências de tokens podem ser analisados, o que inclui principalmente os seguintes conteúdos:
{
“p”:”brc-20”,
"up": "implantar",
“tick”:”ordi”,
“máx”:”21000000”,
“lim”:”1000”
}
{
“p”:”brc-20”,
“ligado”:”hortelã”,
“tick”:”ordi”,
“valor”:”1000”
}
{
“p”:”brc-20”,
“ligado”:”transferência”,
“carrapato”:”ordi”,
“valor”:”1000”,
}
Os acima são os três padrões do BRC20. Entre eles, o campo op representa a operação que precisa ser realizada, incluindo implantação (implantação), mint (minting) e transferência (transferência). A marca representa o nome do token que precisa ser executado. max representa a quantidade total de tokens emitidos, lim representa o número máximo de moedas cunhadas por token, amt representa o número de tokens que precisam ser operados. No padrão de transferência, também existem campos como "para", mas isso não é necessário. A transferência é feita por A inscrição é enviada para o endereço de destino para implementar a alteração de saldo.
2. ARC-20
ARC-20 ainda é o protocolo de inscrição na cadeia pública Bitcoin. Como o protocolo BRC-20, é implementado gravando dados padrão em UTXO, mas a diferença é que o protocolo ARC-20 não precisa especificar ARC-20 nos dados. Em vez disso, o número de tokens ARC-20 é representado por sats (satoshi, a menor unidade de Bitcoin) no UTXO. A regra é 1 sat=1 token ARC-20.
O protocolo ARC20, assim como o protocolo BRC20, também é dividido em três etapas: implantação, cunhagem e transferência. Na fase de implantação, o nome do token padrão, a quantidade total de tokens, as restrições de transmissão e as informações de bloqueio precisam ser preenchidos no UTXO. , informações de imagem, etc.; no estágio de cunhagem, o usuário precisa preencher o nome do token no UTXO e o número de sats do UTXO é a quantidade de cunhagem do token ARC20 e não é preenchido no UTXO junto com o nome do token; quando o usuário cria tokens ARC20 pode ser enviados para outros endereços. Ao enviar tokens, os usuários não precisam preencher nenhum dado no UTXO, mas transferir diretamente o UTXO que contém o token para outros endereços.
Ao consultar tokens ARC20, apenas um índice é necessário. O servidor de índice off-line pode ler as informações de registro do token e as transações de cunhagem e transferência. Não há necessidade de que o servidor calcule a relação de transferência de fundos e consulte os tokens ARC20 pertencentes ao endereço. A quantidade pode ser obtida lendo diretamente a quantidade de sats do UTXO que contém o token.
Depois de entender o BRC20 e o ARC20, você deve saber por que algumas pessoas transferem por engano ativos inscritos para outros endereços ou os "queimam".
Como os protocolos de inscrição BTC, como BRC20 e ARC20, são baseados em transações UTXO, as transações de inscrição são na verdade anexadas às transações BTC e os usuários podem realizar operações comuns de transferência BTC sem compreender totalmente a inscrição. Seu UTXO atual é mesclado e dividido com outros UTXOs e depois enviado para endereços não intencionais, fazendo com que os ativos inscritos sejam transferidos incorretamente ou "queimados", causando perdas irreversíveis.
3. Etscrição
Ethscription é um protocolo para criar e compartilhar dados no Ethereum. Algumas inscrições usam este protocolo para substituir contratos inteligentes para implementar a emissão de tokens. O uso de inscrições pode reduzir os custos do usuário a níveis extremamente baixos.
Quando Ethereum envia uma transação, ele fornece um bloco de dados dados de chamada. Geralmente, esse bloco de dados será deixado em branco para transferências normais de ETH. Se um contrato inteligente for chamado, o bloco de dados será designado como a assinatura da função de chamada e de cada dado de parâmetro. O protocolo Ethscription usa o bloco de dados calldata para adicionar alguns dados padrão para dar significado relevante ao enviar transferências ETH comuns.
Como o Ethscription especifica esses dados padrão?
Primeiro, se você quiser criar uma Ethscription cujo conteúdo são dados de imagem, você precisa converter a imagem (o tamanho da imagem é limitado a 96 KB) em um URI de dados codificados em Base64 no formato (data:image/png;base64,. ..); próximo Converta o URI em uma string hexadecimal; envie uma transação de transferência comum para o endereço de destino por meio do Ethereum e preencha a string hexadecimal acima em calldata, conforme mostrado abaixo:

Dessa forma, o endereço 0xf1bf possui a Etscrição, e qualquer Etscrição criada posteriormente com os mesmos dados de chamada será considerada inválida.
Se você quiser transferir a Etscrição, precisará que o proprietário da Etscrição envie uma transferência comum para o endereço de recebimento e preencha o hash da transação que criou a Etscrição nos dados da chamada e, em seguida, o endereço de recebimento será proprietário da Etscrição, conforme mostrado abaixo:

4. Inscrição de EVM Blockchain
Para blockchains EVM como BSC Chain, Ethereum e polygon, existe um método comum de gravar inscrições, que é usar o bloco de dados calldata para armazenar dados em formato fixo. Diferente do salvamento de dados de imagem mencionado acima, esse método é escrever um formato padrão nos dados de chamada. dados de texto.
Quando inscrições são gravadas na cadeia BSC, o formato de inscrição é semelhante ao formato de inscrição BRC20. Por exemplo, o formato da inscrição é: data:,{"p":"_","op":"_","tick":"_"," amt":"_"}, então o campo p representa o nome do protocolo, como bsc-20, bnbs-20, ltc-20, bep-20, drc-20, nrc-20, src-20, etc.; O campo op representa a operação, geralmente "mint"; o campo de marcação representa o nome do token; o campo amt representa o número de tokens.
Tomando o token bnbs como exemplo, podemos ver que, desde que uma transferência comum seja enviada para o endereço de destino, preencha os dados:,{"p":"bsc-20","op":"mint" no calldata ,"tick":"bnbs","amt":"1000"} em seguida, conclui a operação de cunhagem de token bnbs, conforme mostrado abaixo. Neste momento, o endereço 0x22ef possui 1.000 tokens bnbs.

Em seguida, você precisa transferir o token. Como acima, você precisa enviar uma transferência normal para o endereço de recebimento e preencher o hash da transação que criou o token bnbs nos dados de chamada. Então, o endereço de recebimento será proprietário do token bnbs, conforme mostrado abaixo:

É basicamente o mesmo no Ethereum, Polygon e outras cadeias, mas deve ser observado que o conteúdo da cadeia BSC acima não é a única situação em que inscrições são criadas na cadeia evm. Pode haver diferenças nos campos de dados de texto preenchidos entre diferentes cadeias de ev ou protocolos diferentes. Também pode haver diferenças na forma como os tokens são transferidos. Mas, para esse tipo de método, todos eles são implementados usando o atributo calldata na cadeia EVM, portanto, parecem ser semelhantes.
Resumo
Neste artigo discutimos os princípios de implementação de inscrições em múltiplas cadeias. Em resumo, as inscrições introduzidas são todos processos que utilizam alguns recursos do sistema de cadeia pública para salvar informações off-line no blockchain de acordo com os padrões prescritos e, em seguida, identificá-las e exibi-las por meio de servidores off-line. Nenhuma das inscrições introduzidas usa contratos inteligentes. Os usuários podem reduzir uma grande quantidade de custos de transação adicionais ao participar. No entanto, os usuários precisam compreender totalmente a implementação do protocolo de inscrição para evitar transferências equivocadas ou queima acidental de inscrições, resultando em perdas de ativos.
Contato
Se você precisar de algum serviço de segurança blockchain, entre em contato conosco:
Site Oficial Beosin EagleEye Twitter Telegram Linkedin