No dia 1 de fevereiro, a Binance Web3 Wallet lançou oficialmente o seu mercado de inscrições, suportando vários protocolos de inscrição, tais como BRC-20 e Ethscription. Há alguns dias, a OKX anunciou também o seu apoio a protocolos de inscrição como o ARC-20, Runes, Doginals, etc., o que despertou a atenção de todo o mercado para as inscrições. Durante a onda de inscrição, surgem frequentemente vários problemas de segurança devido à complexidade e novidade dos protocolos de inscrição. Isto não só ameaça a segurança dos bens dos utilizadores, como também tem um impacto negativo no desenvolvimento saudável de todo o ecossistema da Inscription.
Em resposta a esta situação, a equipa de segurança da Beosin analisará os principais protocolos de inscrição para ajudar os utilizadores a compreender a finalidade e a aplicação dos protocolos de inscrição e a forma de proteger os bens inscritos.
A chamada inscrição na cadeia de blocos consiste em registar algumas informações específicas e significativas na cadeia de blocos através de determinadas características da cadeia de blocos. Uma vez registada na cadeia de blocos, esta informação ficará permanentemente armazenada na cadeia de blocos e será difícil de adulterar. As informações registadas na cadeia de blocos podem ser de muitos tipos, tais como informações de texto simples, códigos complexos, imagens, etc., que podem ser gravadas na cadeia de blocos. Desta forma, podemos utilizar um conjunto de normas para implementar as funções dos activos digitais.
Desde o aparecimento inicial das inscrições Bitcoin, como o BRC-20, até à atual ecologia de inscrições, há uma infinidade de novos protocolos de inscrição e novos projectos que surgem quase todos os dias. Pode dizer-se que o desenvolvimento da inscrição está a avançar a passos largos. 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, o BSC-20 e outros protocolos na cadeia pública BSC e o PRC- na cadeia pública Polygon. 20 etc. acordo .... Estes protocolos são todos gerados com o objetivo de publicar inscrições nas suas cadeias públicas. No conteúdo seguinte, apresentaremos os métodos de implementação e os casos de utilização de vários protocolos.
Vamos apresentar os protocolos que atualmente atraem muita atenção no mercado e comparar os pontos comuns e as diferenças entre os protocolos de inscrição de várias cadeias públicas.
Para explicar claramente o BRC-20, é necessário introduzir primeiro o UTXO e os ordinais.
O BTC utiliza o modelo UTXO e as transacções são transferidas em unidades UTXO. UTXO é a abreviatura de Unspent Transaction Output, que significa saída de transação não gasta. O modelo UTXO é diferente do modelo de conta das cadeias públicas, como a Ethereum, na medida em que regista eventos de transação, mas não o estado final. Para calcular quantos Bitcoins um utilizador tem, precisa de somar todos os UTXOs do seu endereço, e o resultado é o número de moedas detidas pelo utilizador.
Ordinals é um protocolo sistemático para numerar Satoshis (sats), a unidade mais pequena de Bitcoin. Pode atribuir um número único a cada Satoshi em cada UTXO (incluindo vários Satoshis). O Ordinals também suporta 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 NFT do Ethereum, que chamamos de Bitcoin NFT.
O fundador do BRC-20 propôs um outro conceito baseado no protocolo Ordinals. Uma vez que o protocolo Ordinals pode criar Bitcoin NFTs dando a cada Satoshi diferentes "atributos", também pode criar Bitcoin FTs dando um "formato" e "atributos" unificados, ou seja, tokens homogéneos.
O BRC-20 escreve dados de texto em formato JSON unificado no Satoshi através do protocolo Ordinals. Estes dados de texto são o livro de contabilidade dos tokens BRC-20. Com base nestes dados de texto, pode analisar as participações e transferências de fichas. Inclui principalmente os seguintes conteúdos:
Estas são as três normas do BRC-20. Entre eles, o campo op representa a operação que tem de ser efectuada, incluindo deployment (implantação), mint (cunhagem) e transfer (transferência). O tique representa o nome do token que precisa de ser executado. max representa o montante total de fichas emitidas, lim representa o número máximo de moedas cunhadas por ficha, amt representa o número de fichas que precisam de ser operadas. Na norma de transferência, existem também campos como "para", mas tal não é necessário. A transferência é efectuada por A inscrição é enviada para o endereço de destino para efetuar a alteração do saldo, como mostra a figura abaixo:
Source:https://twitter.com/blockpunk2077/status/1725513817982136617
O ARC-20 continua a ser o protocolo de inscrição na cadeia pública da Bitcoin. Tal como o protocolo BRC-20, é implementado escrevendo dados padrão em UTXO, mas a diferença é que o protocolo ARC-20 não precisa de especificar ARC-20 nos dados. Em vez disso, o número de tokens ARC-20 é representado por sats (satoshi, a unidade mais pequena de Bitcoin) no UTXO. A regra é 1 sat=1 ficha ARC-20.
O protocolo ARC-20, tal como o protocolo BRC-20, está igualmente dividido em três etapas: implantação, cunhagem e transferência. Na fase de implementação, o nome do token padrão, a quantidade total de tokens, as restrições de casting e as informações do bloco precisam de ser preenchidas no UTXO. Na fase de cunhagem, o utilizador tem de preencher o nome da ficha no UTXO, e o número de sats do UTXO é o montante de cunhagem da ficha ARC-20, e não é preenchido no UTXO juntamente com o nome da ficha; quando o utilizador cunhar fichas ARC-20, estas podem ser enviadas para outros endereços. Ao enviar tokens, os utilizadores não precisam de preencher quaisquer dados no UTXO, mas transferem diretamente o UTXO que contém o token para outros endereços.
Source:https://twitter.com/blockpunk2077/status/1725513817982136617
Ao consultar tokens ARC-20, apenas é necessário um índice. O servidor de índice offline pode ler as informações de registo do token e as transacções de cunhagem e transferência. Não é necessário que o servidor calcule a relação de transferência de fundos e consulte os tokens ARC-20 pertencentes ao endereço. A quantidade pode ser obtida através da leitura direta da quantidade sats do UTXO que detém a ficha.
Depois de ter compreendido o BRC-20 e o ARC-20, deve saber porque é que algumas pessoas transferem, por engano, os bens inscritos para outros endereços ou os "queimam".
Uma vez que os protocolos de inscrição BTC, tais como o BRC-20 e o ARC-20, se baseiam em transacções UTXO, as transacções de inscrição são, na realidade, anexadas às transacções BTC e os utilizadores podem efetuar operações normais de transferência BTC sem compreenderem totalmente a inscrição. O seu UTXO atual é fundido e dividido com outros UTXOs e depois enviado para endereços não desejados, fazendo com que os activos inscritos sejam mal transferidos ou "queimados", causando perdas irreversíveis.
Ethscription é um protocolo para criar e partilhar dados no Ethereum. Algumas inscrições utilizam este protocolo para substituir os contratos inteligentes para implementar a emissão de tokens. A utilização de inscrições pode reduzir os custos de utilização para níveis extremamente baixos.
Quando o Ethereum envia uma transação, fornece um bloco de dados calldata. Geralmente, este bloco de dados será deixado em branco para transferências ETH normais. Se um contrato inteligente for chamado, o bloco de dados será designado como a assinatura da função de chamada e os dados de cada parâmetro. O protocolo Ethscription usa o bloco de dados calldata para adicionar alguns dados padrão para dar um significado relevante ao enviar transferências ETH comuns.
Como é que o Ethscription especifica estes dados normalizados?
Em primeiro lugar, se pretender criar uma Ethscription cujo conteúdo é constituído por dados de imagem, tem de converter a imagem (o tamanho da imagem está limitado a 96 KB) num URI de dados codificados em Base64 no formato (data:image/png;base64,...); em seguida, converta o URI numa cadeia hexadecimal; envie uma transação de transferência normal para o endereço de destino através do Ethereum e preencha a cadeia hexadecimal acima referida em calldata, como se mostra abaixo:
Desta forma, o endereço 0xf1bf é o proprietário da Ethscription, e qualquer Ethscription criada posteriormente com os mesmos calldata será considerada inválida.
Se quiser transferir a Ethscription, precisa que o proprietário da Ethscription envie uma transferência normal para o endereço de receção, e preencha o hash da transação que criou a Ethscription nos dados de chamada, e então o endereço de receção será o proprietário da Ethscription, como mostrado abaixo:
Para as cadeias de blocos EVM como BSCChain, Ethereum, Polygon, etc., existe um método comum de inscrição chamado calldata. Este método utiliza blocos de dados para armazenar dados de formato fixo. Ao contrário do armazenamento de dados de imagem mencionado acima, este método envolve a escrita de dados de texto formatados padrão para o calldata.
Na cadeia BSC, as inscrições são gravadas com um formato semelhante ao formato de inscrição BRC20. Por exemplo, o formato de inscrição é: data:,{“p”:””,”op”:””,”tick”:””,”amt”:””}; em que 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, normalmente "mint". O campo "tick" representa o nome do token e o campo "amt" representa a quantidade do token.
Tomando o token bnbs como exemplo, podemos ver que, desde que uma transferência normal seja enviada para o endereço de destino, o preenchimento de data:,{“p”:”bsc-20”,”op”:”mint” in the calldata ,”tick”:”bnbs”,”amt”:”1000”} completa a operação de cunhagem do token bnbs, como mostrado abaixo. Neste momento, o endereço 0x22ef tem 1.000 tokens bnbs.
Em seguida, tem de transferir a ficha. Tal como acima, tem de enviar uma transferência normal para o endereço de receção e preencher o hash da transação que criou o token bnbs nos dados da chamada. Em seguida, o endereço de receção possuirá o token bnbs, como mostrado abaixo:
É basicamente o mesmo no Ethereum, Polygon e outras cadeias, mas deve ter em atenção que o conteúdo da cadeia BSC acima referida não é a única situação em que as inscrições são criadas na cadeia evm. Poderá haver diferenças nos campos de dados de texto preenchidos entre diferentes cadeias de evm ou diferentes protocolos. Também pode haver diferenças na forma como os tokens são transferidos. Mas para este tipo de método, todos eles são implementados utilizando o atributo calldata na cadeia EVM, pelo que parecem ser semelhantes.
Neste artigo, discutimos os princípios de implementação de inscrições em cadeias múltiplas. Em resumo, as inscrições introduzidas são todos os processos que utilizam algumas características do sistema de cadeia pública para guardar informações offline na cadeia de blocos de acordo com as normas prescritas e, em seguida, identificá-las e apresentá-las através de servidores offline. Nenhuma das inscrições introduzidas utiliza contratos inteligentes. Os utilizadores podem reduzir uma grande quantidade de custos de transação adicionais ao participarem. No entanto, os utilizadores têm de compreender bem a aplicação do protocolo de inscrição para evitar transferências erradas ou a queima acidental de inscrições, o que resultaria em perdas patrimoniais.
No dia 1 de fevereiro, a Binance Web3 Wallet lançou oficialmente o seu mercado de inscrições, suportando vários protocolos de inscrição, tais como BRC-20 e Ethscription. Há alguns dias, a OKX anunciou também o seu apoio a protocolos de inscrição como o ARC-20, Runes, Doginals, etc., o que despertou a atenção de todo o mercado para as inscrições. Durante a onda de inscrição, surgem frequentemente vários problemas de segurança devido à complexidade e novidade dos protocolos de inscrição. Isto não só ameaça a segurança dos bens dos utilizadores, como também tem um impacto negativo no desenvolvimento saudável de todo o ecossistema da Inscription.
Em resposta a esta situação, a equipa de segurança da Beosin analisará os principais protocolos de inscrição para ajudar os utilizadores a compreender a finalidade e a aplicação dos protocolos de inscrição e a forma de proteger os bens inscritos.
A chamada inscrição na cadeia de blocos consiste em registar algumas informações específicas e significativas na cadeia de blocos através de determinadas características da cadeia de blocos. Uma vez registada na cadeia de blocos, esta informação ficará permanentemente armazenada na cadeia de blocos e será difícil de adulterar. As informações registadas na cadeia de blocos podem ser de muitos tipos, tais como informações de texto simples, códigos complexos, imagens, etc., que podem ser gravadas na cadeia de blocos. Desta forma, podemos utilizar um conjunto de normas para implementar as funções dos activos digitais.
Desde o aparecimento inicial das inscrições Bitcoin, como o BRC-20, até à atual ecologia de inscrições, há uma infinidade de novos protocolos de inscrição e novos projectos que surgem quase todos os dias. Pode dizer-se que o desenvolvimento da inscrição está a avançar a passos largos. 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, o BSC-20 e outros protocolos na cadeia pública BSC e o PRC- na cadeia pública Polygon. 20 etc. acordo .... Estes protocolos são todos gerados com o objetivo de publicar inscrições nas suas cadeias públicas. No conteúdo seguinte, apresentaremos os métodos de implementação e os casos de utilização de vários protocolos.
Vamos apresentar os protocolos que atualmente atraem muita atenção no mercado e comparar os pontos comuns e as diferenças entre os protocolos de inscrição de várias cadeias públicas.
Para explicar claramente o BRC-20, é necessário introduzir primeiro o UTXO e os ordinais.
O BTC utiliza o modelo UTXO e as transacções são transferidas em unidades UTXO. UTXO é a abreviatura de Unspent Transaction Output, que significa saída de transação não gasta. O modelo UTXO é diferente do modelo de conta das cadeias públicas, como a Ethereum, na medida em que regista eventos de transação, mas não o estado final. Para calcular quantos Bitcoins um utilizador tem, precisa de somar todos os UTXOs do seu endereço, e o resultado é o número de moedas detidas pelo utilizador.
Ordinals é um protocolo sistemático para numerar Satoshis (sats), a unidade mais pequena de Bitcoin. Pode atribuir um número único a cada Satoshi em cada UTXO (incluindo vários Satoshis). O Ordinals também suporta 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 NFT do Ethereum, que chamamos de Bitcoin NFT.
O fundador do BRC-20 propôs um outro conceito baseado no protocolo Ordinals. Uma vez que o protocolo Ordinals pode criar Bitcoin NFTs dando a cada Satoshi diferentes "atributos", também pode criar Bitcoin FTs dando um "formato" e "atributos" unificados, ou seja, tokens homogéneos.
O BRC-20 escreve dados de texto em formato JSON unificado no Satoshi através do protocolo Ordinals. Estes dados de texto são o livro de contabilidade dos tokens BRC-20. Com base nestes dados de texto, pode analisar as participações e transferências de fichas. Inclui principalmente os seguintes conteúdos:
Estas são as três normas do BRC-20. Entre eles, o campo op representa a operação que tem de ser efectuada, incluindo deployment (implantação), mint (cunhagem) e transfer (transferência). O tique representa o nome do token que precisa de ser executado. max representa o montante total de fichas emitidas, lim representa o número máximo de moedas cunhadas por ficha, amt representa o número de fichas que precisam de ser operadas. Na norma de transferência, existem também campos como "para", mas tal não é necessário. A transferência é efectuada por A inscrição é enviada para o endereço de destino para efetuar a alteração do saldo, como mostra a figura abaixo:
Source:https://twitter.com/blockpunk2077/status/1725513817982136617
O ARC-20 continua a ser o protocolo de inscrição na cadeia pública da Bitcoin. Tal como o protocolo BRC-20, é implementado escrevendo dados padrão em UTXO, mas a diferença é que o protocolo ARC-20 não precisa de especificar ARC-20 nos dados. Em vez disso, o número de tokens ARC-20 é representado por sats (satoshi, a unidade mais pequena de Bitcoin) no UTXO. A regra é 1 sat=1 ficha ARC-20.
O protocolo ARC-20, tal como o protocolo BRC-20, está igualmente dividido em três etapas: implantação, cunhagem e transferência. Na fase de implementação, o nome do token padrão, a quantidade total de tokens, as restrições de casting e as informações do bloco precisam de ser preenchidas no UTXO. Na fase de cunhagem, o utilizador tem de preencher o nome da ficha no UTXO, e o número de sats do UTXO é o montante de cunhagem da ficha ARC-20, e não é preenchido no UTXO juntamente com o nome da ficha; quando o utilizador cunhar fichas ARC-20, estas podem ser enviadas para outros endereços. Ao enviar tokens, os utilizadores não precisam de preencher quaisquer dados no UTXO, mas transferem diretamente o UTXO que contém o token para outros endereços.
Source:https://twitter.com/blockpunk2077/status/1725513817982136617
Ao consultar tokens ARC-20, apenas é necessário um índice. O servidor de índice offline pode ler as informações de registo do token e as transacções de cunhagem e transferência. Não é necessário que o servidor calcule a relação de transferência de fundos e consulte os tokens ARC-20 pertencentes ao endereço. A quantidade pode ser obtida através da leitura direta da quantidade sats do UTXO que detém a ficha.
Depois de ter compreendido o BRC-20 e o ARC-20, deve saber porque é que algumas pessoas transferem, por engano, os bens inscritos para outros endereços ou os "queimam".
Uma vez que os protocolos de inscrição BTC, tais como o BRC-20 e o ARC-20, se baseiam em transacções UTXO, as transacções de inscrição são, na realidade, anexadas às transacções BTC e os utilizadores podem efetuar operações normais de transferência BTC sem compreenderem totalmente a inscrição. O seu UTXO atual é fundido e dividido com outros UTXOs e depois enviado para endereços não desejados, fazendo com que os activos inscritos sejam mal transferidos ou "queimados", causando perdas irreversíveis.
Ethscription é um protocolo para criar e partilhar dados no Ethereum. Algumas inscrições utilizam este protocolo para substituir os contratos inteligentes para implementar a emissão de tokens. A utilização de inscrições pode reduzir os custos de utilização para níveis extremamente baixos.
Quando o Ethereum envia uma transação, fornece um bloco de dados calldata. Geralmente, este bloco de dados será deixado em branco para transferências ETH normais. Se um contrato inteligente for chamado, o bloco de dados será designado como a assinatura da função de chamada e os dados de cada parâmetro. O protocolo Ethscription usa o bloco de dados calldata para adicionar alguns dados padrão para dar um significado relevante ao enviar transferências ETH comuns.
Como é que o Ethscription especifica estes dados normalizados?
Em primeiro lugar, se pretender criar uma Ethscription cujo conteúdo é constituído por dados de imagem, tem de converter a imagem (o tamanho da imagem está limitado a 96 KB) num URI de dados codificados em Base64 no formato (data:image/png;base64,...); em seguida, converta o URI numa cadeia hexadecimal; envie uma transação de transferência normal para o endereço de destino através do Ethereum e preencha a cadeia hexadecimal acima referida em calldata, como se mostra abaixo:
Desta forma, o endereço 0xf1bf é o proprietário da Ethscription, e qualquer Ethscription criada posteriormente com os mesmos calldata será considerada inválida.
Se quiser transferir a Ethscription, precisa que o proprietário da Ethscription envie uma transferência normal para o endereço de receção, e preencha o hash da transação que criou a Ethscription nos dados de chamada, e então o endereço de receção será o proprietário da Ethscription, como mostrado abaixo:
Para as cadeias de blocos EVM como BSCChain, Ethereum, Polygon, etc., existe um método comum de inscrição chamado calldata. Este método utiliza blocos de dados para armazenar dados de formato fixo. Ao contrário do armazenamento de dados de imagem mencionado acima, este método envolve a escrita de dados de texto formatados padrão para o calldata.
Na cadeia BSC, as inscrições são gravadas com um formato semelhante ao formato de inscrição BRC20. Por exemplo, o formato de inscrição é: data:,{“p”:””,”op”:””,”tick”:””,”amt”:””}; em que 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, normalmente "mint". O campo "tick" representa o nome do token e o campo "amt" representa a quantidade do token.
Tomando o token bnbs como exemplo, podemos ver que, desde que uma transferência normal seja enviada para o endereço de destino, o preenchimento de data:,{“p”:”bsc-20”,”op”:”mint” in the calldata ,”tick”:”bnbs”,”amt”:”1000”} completa a operação de cunhagem do token bnbs, como mostrado abaixo. Neste momento, o endereço 0x22ef tem 1.000 tokens bnbs.
Em seguida, tem de transferir a ficha. Tal como acima, tem de enviar uma transferência normal para o endereço de receção e preencher o hash da transação que criou o token bnbs nos dados da chamada. Em seguida, o endereço de receção possuirá o token bnbs, como mostrado abaixo:
É basicamente o mesmo no Ethereum, Polygon e outras cadeias, mas deve ter em atenção que o conteúdo da cadeia BSC acima referida não é a única situação em que as inscrições são criadas na cadeia evm. Poderá haver diferenças nos campos de dados de texto preenchidos entre diferentes cadeias de evm ou diferentes protocolos. Também pode haver diferenças na forma como os tokens são transferidos. Mas para este tipo de método, todos eles são implementados utilizando o atributo calldata na cadeia EVM, pelo que parecem ser semelhantes.
Neste artigo, discutimos os princípios de implementação de inscrições em cadeias múltiplas. Em resumo, as inscrições introduzidas são todos os processos que utilizam algumas características do sistema de cadeia pública para guardar informações offline na cadeia de blocos de acordo com as normas prescritas e, em seguida, identificá-las e apresentá-las através de servidores offline. Nenhuma das inscrições introduzidas utiliza contratos inteligentes. Os utilizadores podem reduzir uma grande quantidade de custos de transação adicionais ao participarem. No entanto, os utilizadores têm de compreender bem a aplicação do protocolo de inscrição para evitar transferências erradas ou a queima acidental de inscrições, o que resultaria em perdas patrimoniais.