Este artigo é uma breve descrição de como o ERC-6551 permite que qualquer NFT possua qualquer tipo de criptoativo.
Vamos começar com o que realmente está acontecendo com a maioria dos NFTs.
Os NFTs no Ethereum são apenas entradas de dados em contratos inteligentes que informam quem é o proprietário do NFT, quem pode transferir o NFT e como são os metadados do NFT. Aqui está uma função que retorna informações sobre um determinado NFT:
Obter o proprietário de um determinado NFT
Obtenha o tokenURI de um determinado NFT
Obtenha o endereço da carteira onde o NFT fornecido é aprovado
Ao cunhar NFT, basta definir o valor do proprietário da entrada de dados (endereço da carteira). Ao transferir uma NFT, basta alterar o valor do titular (endereço da carteira). As duas imagens a seguir são códigos relacionados de configurações de propriedade no contrato ERC721:
A função mint no contrato ERC721
A função de transferência no contrato ERC721
A maioria dos contratos NFT são simples assim. Como vimos acima, não há código que permita que esses NFTs possuam outros tokens NFTs, ETH ou ERC20.
Os contratos inteligentes não podem ser alterados, então como o ERC-6551 permite que qualquer NFT possua outros ativos?
A resposta é: registro + carteira de contrato.
Uma carteira de contrato inteligente (carteira CA) é simplesmente um contrato inteligente que pode receber NFT, ERC20 ou ETH e, adicionalmente, realizar transações arbitrárias. Essas carteiras de contrato têm seus próprios endereços (como todos os contratos inteligentes).
Se você não estiver familiarizado com os registros, pense neles como contratos inteligentes individuais que armazenam informações. O registro ERC-6551 contém: informações informando quais NFTs são mapeadas para quais carteiras de contratos inteligentes e também usa um proxy para criar uma carteira de contratos inteligentes (não importa se você sabe disso).
Código do contrato de registro?
Por exemplo, Azuki #4567 pode mapear para uma carteira de contrato inteligente no endereço 0x243F4E0d556EFD1006c52E85A6ddFb6748A4C0b7. Uma NFT pode controlar várias contas de contrato, mas cada conta de contrato pertence apenas a uma NFT, conforme a figura abaixo:
Bem, agora temos um registro que pode criar carteiras para NFTs e vincular NFTs a carteiras, e essa carteira vinculada a NFT agora pode ser usada como uma carteira normal. Esta carteira pode transferir ETH, comprar tokens NFT ou Swap ERC20, é claro que a transação deve ser iniciada pelo proprietário do NFT.
Quero reiterar que essas carteiras vinculadas a NFT são contratos inteligentes. Eles são semelhantes às carteiras de assinatura múltipla em que alguém deve chamar uma função no contrato para que a carteira execute determinadas ações. Para carteiras ERC-6551, o proprietário do NFT chamará uteCall na carteira para iniciar a transação.
Então, o que há de tão especial nessas carteiras com NFT? Quando o proprietário que controla o NFT muda, o controle da carteira também muda simultaneamente. Controlar o NFT significa que você controla tudo na carteira vinculada ao NFT, e o NFT se transformará de um único ativo em um pacote de ativos agrupados.
TL;DR: ERC-6551 permite que todos os NFTs tenham uma carteira usando um registro e uma carteira de contrato inteligente. O registro cria uma carteira de contrato e associa a carteira de contrato ao NFT. As carteiras de contrato podem conter outros ativos e somente o proprietário da NFT pode realizar transações nesta carteira.
Ver original
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.
Análise aprofundada dos princípios subjacentes do ERC-6551
Escrito por: @0xCygaar Traduzido por: MetaCat
Este artigo é uma breve descrição de como o ERC-6551 permite que qualquer NFT possua qualquer tipo de criptoativo.
Vamos começar com o que realmente está acontecendo com a maioria dos NFTs.
Os NFTs no Ethereum são apenas entradas de dados em contratos inteligentes que informam quem é o proprietário do NFT, quem pode transferir o NFT e como são os metadados do NFT. Aqui está uma função que retorna informações sobre um determinado NFT:
Obter o proprietário de um determinado NFT
Obtenha o tokenURI de um determinado NFT
Obtenha o endereço da carteira onde o NFT fornecido é aprovado
Ao cunhar NFT, basta definir o valor do proprietário da entrada de dados (endereço da carteira). Ao transferir uma NFT, basta alterar o valor do titular (endereço da carteira). As duas imagens a seguir são códigos relacionados de configurações de propriedade no contrato ERC721:
A função mint no contrato ERC721
A função de transferência no contrato ERC721
A maioria dos contratos NFT são simples assim. Como vimos acima, não há código que permita que esses NFTs possuam outros tokens NFTs, ETH ou ERC20.
Os contratos inteligentes não podem ser alterados, então como o ERC-6551 permite que qualquer NFT possua outros ativos?
A resposta é: registro + carteira de contrato.
Uma carteira de contrato inteligente (carteira CA) é simplesmente um contrato inteligente que pode receber NFT, ERC20 ou ETH e, adicionalmente, realizar transações arbitrárias. Essas carteiras de contrato têm seus próprios endereços (como todos os contratos inteligentes).
Se você não estiver familiarizado com os registros, pense neles como contratos inteligentes individuais que armazenam informações. O registro ERC-6551 contém: informações informando quais NFTs são mapeadas para quais carteiras de contratos inteligentes e também usa um proxy para criar uma carteira de contratos inteligentes (não importa se você sabe disso).
Código do contrato de registro?
Por exemplo, Azuki #4567 pode mapear para uma carteira de contrato inteligente no endereço 0x243F4E0d556EFD1006c52E85A6ddFb6748A4C0b7. Uma NFT pode controlar várias contas de contrato, mas cada conta de contrato pertence apenas a uma NFT, conforme a figura abaixo:
Bem, agora temos um registro que pode criar carteiras para NFTs e vincular NFTs a carteiras, e essa carteira vinculada a NFT agora pode ser usada como uma carteira normal. Esta carteira pode transferir ETH, comprar tokens NFT ou Swap ERC20, é claro que a transação deve ser iniciada pelo proprietário do NFT.
Quero reiterar que essas carteiras vinculadas a NFT são contratos inteligentes. Eles são semelhantes às carteiras de assinatura múltipla em que alguém deve chamar uma função no contrato para que a carteira execute determinadas ações. Para carteiras ERC-6551, o proprietário do NFT chamará uteCall na carteira para iniciar a transação.
Então, o que há de tão especial nessas carteiras com NFT? Quando o proprietário que controla o NFT muda, o controle da carteira também muda simultaneamente. Controlar o NFT significa que você controla tudo na carteira vinculada ao NFT, e o NFT se transformará de um único ativo em um pacote de ativos agrupados.
TL;DR: ERC-6551 permite que todos os NFTs tenham uma carteira usando um registro e uma carteira de contrato inteligente. O registro cria uma carteira de contrato e associa a carteira de contrato ao NFT. As carteiras de contrato podem conter outros ativos e somente o proprietário da NFT pode realizar transações nesta carteira.