ERC-777

"O padrão ERC-777 é uma proposta para tokens inteligentes na Ethereum que busca superar as limitações do ERC-20. Ele introduz ganchos de envio/recebimento para maior controle e padroniza a interação com contratos. Ainda em fase inicial, sua adoção pode crescer com a demanda por funcionalidades avançadas. Contudo, preocupações de segurança foram levantadas devido a possíveis ataques de reentrância."

O padrão ERC-777 é uma proposta de interface para tokens inteligentes na Ethereum, que busca superar as limitações do amplamente utilizado padrão ERC-20, com o qual mantém compatibilidade. Introduz uma série de funcionalidades avançadas para facilitar a interação com os tokens, incluindo operadores para enviar tokens em nome de outro endereço e ganchos (hooks) de envio/recebimento para permitir maior controle aos detentores de tokens.

A principal inovação do ERC-777 é o conceito de ganchos. Os ganchos permitem que contratos e endereços regulares registrem funções que podem controlar e rejeitar a transferência de tokens. Isso é feito registrando um gancho de tokensToSend para controlar as saídas de tokens e um gancho de tokensReceived para controlar as entradas. A rejeição é realizada revertendo a função do gancho.

O padrão ERC-777 também define uma maneira padronizada de interagir com um contrato de token, que é semelhante à forma como o Ether é tratado. Os tokens são enviados usando a função send(dest, value, data), que simplifica a interação com o contrato de token em relação ao padrão ERC-20. Isso também ajuda a evitar a confusão entre as funções transfer e approve/transferFrom do ERC-20.

Outro aspecto significativo do ERC-777 é a introdução de operadores. Os operadores são contratos ou endereços que têm permissão para enviar tokens em nome do titular. Isso pode ser útil em cenários como uma troca de criptomoedas, um processador de cheques ou um sistema de cobrança automático. Os operadores precisam ser autorizados pelo titular do token e podem ser revogados a qualquer momento.

Para a implementação efetiva do padrão ERC-777, é essencial registrar a interface ERC777Token com o endereço do contrato de token por meio do registro ERC-1820. O ERC-1820 é um registro universal e central para interfaces em contratos inteligentes na Ethereum, o que permite uma maior interoperabilidade entre diferentes contratos.

Em relação ao padrão ERC-20, o ERC-777 mantém a compatibilidade retroativa, ou seja, os contratos de token podem implementar ambos os padrões ao mesmo tempo. No entanto, quando as funções ERC-20 são chamadas, o contrato de token deve verificar se os ganchos tokensToSend e tokensReceived são implementados, e se forem, devem ser chamados.

O padrão ERC-777 também define o ciclo de vida completo de um token, incluindo a cunhagem (mint), o envio (send) e a queima (burn) de tokens. Isso é importante para manter a consistência e a precisão do fornecimento de tokens.

Apesar do poderoso arsenal de funcionalidades que o ERC-777 traz para a mesa, ele não está isento de críticas. Uma das principais preocupações é a questão da segurança. Como o padrão permite a execução automática de contratos ao receber tokens, existe o risco de contratos maliciosos aproveitarem essa funcionalidade para executar ataques. Este problema, também conhecido como ataque de reentrância, tem sido um ponto de discussão importante na comunidade de desenvolvimento Ethereum.

No entanto, vale a pena notar que os desenvolvedores do padrão ERC-777 forneceram orientações detalhadas sobre como mitigar essas questões de segurança. Por exemplo, eles recomendam a verificação de ganchos apenas a partir de contratos de confiança. Além disso, a funcionalidade do operador é opcional e pode ser desabilitada se o criador do token decidir que o risco associado é muito alto.

A adoção do padrão ERC-777 ainda está em fase inicial. Enquanto o padrão ERC-20 é o mais amplamente usado e reconhecido para a criação de tokens na Ethereum, a complexidade adicional do ERC-777 pode desencorajar alguns desenvolvedores de adotá-lo. No entanto, à medida que a comunidade Ethereum continua a evoluir e novos casos de uso para contratos inteligentes surgem, a demanda por funcionalidades mais avançadas pode acabar favorecendo a adoção do ERC-777.

Last updated