BTC também terá sua própria funcionalidade de contratos inteligentes
Recentemente, um projeto chamado Fractal BTC no ecossistema do Bitcoin, após várias rodadas de teste na rede, foi oficialmente lançado na rede principal em setembro. Um dos grandes destaques do Fractal é a sua capacidade de contratos inteligentes, e no lançamento da rede principal, foi apresentado um novo protocolo de token, o CAT20. Quais são as astúcias técnicas do CAT20? O que podemos aprender com isso?
Introdução ao Fractal Bitcoin
Antes de entender o CAT20, precisamos primeiro entender um pouco sobre o Fractal Bitcoin. A relação entre os dois é semelhante à de ERC20 e ETH, o protocolo CAT20 é implantado sobre o Fractal Bitcoin.
Fractal Bitcoin, também conhecido como Bitcoin Fractal, é uma rede "de segunda camada" totalmente compatível com BTC. Em comparação com o BTC, o tempo de confirmação de bloco é mais rápido, levando apenas 1 minuto. O princípio básico, simplificadamente falando, é que a rede BTC foi copiada várias vezes, e cada cadeia pode processar transações, aumentando o número de nós capazes de processar transações, o que naturalmente melhora a velocidade. No entanto, os detalhes específicos, como o método de comunicação entre as diferentes cadeias, ainda não estão muito claros, e a equipe oficial também não forneceu documentação técnica correspondente para referência.
Se apenas uma transação em uma cadeia de segunda camada é mais rápida, parece que isso não é suficiente para empolgar as pessoas. No entanto, a Fractal habilitou o opcode OP_CAT, que foi descontinuado por razões de segurança há muito tempo, o que elevou a capacidade do Fractal Bitcoin a um novo nível. Alguns acreditam que o OP_CAT pode permitir que o BTC tenha a capacidade de contratos inteligentes, o que oferece mais espaço para a imaginação.
Atualmente, já há pessoas que implementaram um protocolo semelhante ao ERC20 no Fractal Bitcoin.
CAT Protocol
Com o suporte do OP_CAT de camada base, logo surgiu o protocolo correspondente, o CAT Protocol. Atualmente, um protocolo que já está em funcionamento é o protocolo CAT20.
Em comparação com o protocolo ERC20 maduro, a implantação de um Token tornou-se muito conveniente para todos. Como o CAT20 implementa um ciclo de vida semelhante ao do ERC20?
Implantar
Antes da implementação, os usuários precisam especificar o seu endereço de carteira e as informações básicas do token, que são semelhantes às do ERC20. Algumas das diferenças do CAT20 incluem a possibilidade de definir pré-mineração e limites de quantidade para cada emissão. Claro, o ERC20 também pode implementar essas funcionalidades através das capacidades do contrato.
Na fase de implementação, serão iniciadas duas transações, que podem ser vistas como duas fases: "commit" e "reveal". Na fase "commit", as informações básicas do token, como o nome e o símbolo do token, serão escritas no script de saída da transação. O hashId da transação iniciada na fase "commit" servirá como identificação desse token, para diferenciá-lo de outros tokens.
Na fase de "reveal", a transação primeiro irá emitir um OP_RETURN, no qual é armazenado o Hash do estado inicial do CAT20. Depois, será emitido um Minter, que desempenha um papel importante no processo de Mint subsequente, sendo utilizado para manter as alterações de estado do processo de Mint.
Todo o processo de Deploy, "commit" e "reveal" segue os dois passos comuns de submissão e revelação na blockchain, sendo uma forma bastante comum de implementar projetos.
Mint
Ao criar um Token, as transações têm as seguintes características:
A entrada do mint é um minter, gerado inicialmente durante o deploy.
Cada vez que um mint é feito, há apenas um minter como entrada, podendo haver múltiplos minters como saída.
Cada mint tem e só tem um token.
A ordem de saída tem requisitos, o minter deve ser seguido pelo token.
O minter como saída da transação mint pode ser 1, múltiplos ou até mesmo 0. Se cada Mint for definido como 1, então o número de minters disponíveis na rede permanecerá inalterado (1 ), o que pode tornar o Mint congestionado. Para evitar essa situação, é necessário definir o número de minters na saída de cada vez como maior que 1, assim, após o mint, o número de minters disponíveis para todos aumentará.
No entanto, cada minter adicional significa que é necessário pagar mais um utxo. Por razões económicas, mais pessoas tenderão a definir o minter como 0, o que inevitavelmente fará com que o minter se torne deflacionário, exigindo que algumas pessoas façam doações, pagando voluntariamente os minters adicionais.
Na versão V2, são gerados automaticamente dois Minter, e os estados dos dois Minter estarão o mais próximos possível.
construção de transações
Por que é possível usar o utxo do minter para construir transações? Isso requer a análise do código-fonte do "contrato".
Durante o processo de revelação, as transações utilizam o commit da saída da transação anterior como entrada. Isso é realizado através de uma reescrita engenhosa da lógica do script, onde o par de chaves públicas e privadas escrito no script é do nosso próprio endereço, permitindo assim o controle de dois UTXOs de endereços diferentes.
Para minter utxo, qualquer pessoa pode usar esses utxo como entrada, isso pode ser a capacidade de contratos inteligentes oferecida pelo OP_CAT, cada minter é um contrato inteligente.
Estado da transação (V2)
O minter retém o estado, armazenando-o em dois locais: um é no OP_RETURN da saída da transação, e o outro é armazenado nos contratos inteligentes.
O Hash que armazena o estado da saída da transação atual em OP_RETURN, e o número restante de Mint de Token armazenado no contrato. Após cada Mint, a quantidade de mint do novo Minter será igual à quantidade restante de mint dividida por dois.
Além de o Minter ser um contrato inteligente, o Token gerado também é um contrato inteligente, ou seja, CAT20. O CAT20 tem dois estados básicos: a quantidade e o endereço do proprietário do Token. Vale ressaltar que, ao contrário do BRC20 ou das inscrições, o CAT20 não está nos UTXO do seu endereço.
Transfer
Ao transferir, a quantidade de tokens de entrada e saída na construção da transação deve ser mantida consistente. Uma mesma transação pode ter vários tokens diferentes, desde que a quantidade de entrada e saída dos diferentes tokens permaneça consistente.
Burn
Para queimar Token, basta transferir o Token para um endereço comum.
Resumo
Todas as operações são construídas pelo próprio usuário, oferecendo muita flexibilidade, portanto a parte dos contratos necessita de muitas lógicas de verificação. Algumas das vulnerabilidades que surgiram atualmente também se devem a negligências na lógica de verificação.
Este design tem algumas vantagens:
Para verificar a posse de todos os Tokens, basta consultar o utxo do token, não é necessário continuar a pesquisa para cima.
Para verificar a situação atual do mint, pode pesquisar transações no OP_RETURN que contêm dados com cat.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
25 gostos
Recompensa
25
10
Partilhar
Comentar
0/400
MercilessHalal
· 07-09 20:02
Outra vez um novo protocolo Até à lua?
Ver originalResponder0
CodeAuditQueen
· 07-08 23:05
Vendo o código fonte, a validação dos parâmetros tem vulnerabilidades.
Ver originalResponder0
MainnetDelayedAgain
· 07-08 03:40
Segundo a base de dados, já foram adiados 92 dias de setembro até agora.
Grande avanço no ecossistema BTC: Fractal lança o protocolo de contratos inteligentes CAT20
BTC também terá sua própria funcionalidade de contratos inteligentes
Recentemente, um projeto chamado Fractal BTC no ecossistema do Bitcoin, após várias rodadas de teste na rede, foi oficialmente lançado na rede principal em setembro. Um dos grandes destaques do Fractal é a sua capacidade de contratos inteligentes, e no lançamento da rede principal, foi apresentado um novo protocolo de token, o CAT20. Quais são as astúcias técnicas do CAT20? O que podemos aprender com isso?
Introdução ao Fractal Bitcoin
Antes de entender o CAT20, precisamos primeiro entender um pouco sobre o Fractal Bitcoin. A relação entre os dois é semelhante à de ERC20 e ETH, o protocolo CAT20 é implantado sobre o Fractal Bitcoin.
Fractal Bitcoin, também conhecido como Bitcoin Fractal, é uma rede "de segunda camada" totalmente compatível com BTC. Em comparação com o BTC, o tempo de confirmação de bloco é mais rápido, levando apenas 1 minuto. O princípio básico, simplificadamente falando, é que a rede BTC foi copiada várias vezes, e cada cadeia pode processar transações, aumentando o número de nós capazes de processar transações, o que naturalmente melhora a velocidade. No entanto, os detalhes específicos, como o método de comunicação entre as diferentes cadeias, ainda não estão muito claros, e a equipe oficial também não forneceu documentação técnica correspondente para referência.
Se apenas uma transação em uma cadeia de segunda camada é mais rápida, parece que isso não é suficiente para empolgar as pessoas. No entanto, a Fractal habilitou o opcode OP_CAT, que foi descontinuado por razões de segurança há muito tempo, o que elevou a capacidade do Fractal Bitcoin a um novo nível. Alguns acreditam que o OP_CAT pode permitir que o BTC tenha a capacidade de contratos inteligentes, o que oferece mais espaço para a imaginação.
Atualmente, já há pessoas que implementaram um protocolo semelhante ao ERC20 no Fractal Bitcoin.
CAT Protocol
Com o suporte do OP_CAT de camada base, logo surgiu o protocolo correspondente, o CAT Protocol. Atualmente, um protocolo que já está em funcionamento é o protocolo CAT20.
Em comparação com o protocolo ERC20 maduro, a implantação de um Token tornou-se muito conveniente para todos. Como o CAT20 implementa um ciclo de vida semelhante ao do ERC20?
Implantar
Antes da implementação, os usuários precisam especificar o seu endereço de carteira e as informações básicas do token, que são semelhantes às do ERC20. Algumas das diferenças do CAT20 incluem a possibilidade de definir pré-mineração e limites de quantidade para cada emissão. Claro, o ERC20 também pode implementar essas funcionalidades através das capacidades do contrato.
Na fase de implementação, serão iniciadas duas transações, que podem ser vistas como duas fases: "commit" e "reveal". Na fase "commit", as informações básicas do token, como o nome e o símbolo do token, serão escritas no script de saída da transação. O hashId da transação iniciada na fase "commit" servirá como identificação desse token, para diferenciá-lo de outros tokens.
Na fase de "reveal", a transação primeiro irá emitir um OP_RETURN, no qual é armazenado o Hash do estado inicial do CAT20. Depois, será emitido um Minter, que desempenha um papel importante no processo de Mint subsequente, sendo utilizado para manter as alterações de estado do processo de Mint.
Todo o processo de Deploy, "commit" e "reveal" segue os dois passos comuns de submissão e revelação na blockchain, sendo uma forma bastante comum de implementar projetos.
Mint
Ao criar um Token, as transações têm as seguintes características:
O minter como saída da transação mint pode ser 1, múltiplos ou até mesmo 0. Se cada Mint for definido como 1, então o número de minters disponíveis na rede permanecerá inalterado (1 ), o que pode tornar o Mint congestionado. Para evitar essa situação, é necessário definir o número de minters na saída de cada vez como maior que 1, assim, após o mint, o número de minters disponíveis para todos aumentará.
No entanto, cada minter adicional significa que é necessário pagar mais um utxo. Por razões económicas, mais pessoas tenderão a definir o minter como 0, o que inevitavelmente fará com que o minter se torne deflacionário, exigindo que algumas pessoas façam doações, pagando voluntariamente os minters adicionais.
Na versão V2, são gerados automaticamente dois Minter, e os estados dos dois Minter estarão o mais próximos possível.
construção de transações
Por que é possível usar o utxo do minter para construir transações? Isso requer a análise do código-fonte do "contrato".
Durante o processo de revelação, as transações utilizam o commit da saída da transação anterior como entrada. Isso é realizado através de uma reescrita engenhosa da lógica do script, onde o par de chaves públicas e privadas escrito no script é do nosso próprio endereço, permitindo assim o controle de dois UTXOs de endereços diferentes.
Para minter utxo, qualquer pessoa pode usar esses utxo como entrada, isso pode ser a capacidade de contratos inteligentes oferecida pelo OP_CAT, cada minter é um contrato inteligente.
Estado da transação (V2)
O minter retém o estado, armazenando-o em dois locais: um é no OP_RETURN da saída da transação, e o outro é armazenado nos contratos inteligentes.
O Hash que armazena o estado da saída da transação atual em OP_RETURN, e o número restante de Mint de Token armazenado no contrato. Após cada Mint, a quantidade de mint do novo Minter será igual à quantidade restante de mint dividida por dois.
Além de o Minter ser um contrato inteligente, o Token gerado também é um contrato inteligente, ou seja, CAT20. O CAT20 tem dois estados básicos: a quantidade e o endereço do proprietário do Token. Vale ressaltar que, ao contrário do BRC20 ou das inscrições, o CAT20 não está nos UTXO do seu endereço.
Transfer
Ao transferir, a quantidade de tokens de entrada e saída na construção da transação deve ser mantida consistente. Uma mesma transação pode ter vários tokens diferentes, desde que a quantidade de entrada e saída dos diferentes tokens permaneça consistente.
Burn
Para queimar Token, basta transferir o Token para um endereço comum.
Resumo
Todas as operações são construídas pelo próprio usuário, oferecendo muita flexibilidade, portanto a parte dos contratos necessita de muitas lógicas de verificação. Algumas das vulnerabilidades que surgiram atualmente também se devem a negligências na lógica de verificação.
Este design tem algumas vantagens: