Hooks: Ferramentas poderosas para expandir a funcionalidade de aplicativos
Hooks são um padrão de programação que permite aos desenvolvedores inserir código personalizado durante a execução do sistema. Através de funções ou blocos de código pré-definidos, os desenvolvedores podem estender e personalizar o comportamento da aplicação sem modificar o código original. Este método é amplamente utilizado em sistemas operacionais, frameworks, bibliotecas, desenvolvimento web e sistemas de plugins, entre outros campos.
A utilização de Hooks pode aumentar significativamente a escalabilidade e flexibilidade de um programa. Os desenvolvedores não precisam fazer alterações drásticas no código existente a cada ajuste de funcionalidade, mantendo assim a limpeza e estabilidade do código. Este mecanismo de extensão elegante torna os Hooks um modelo de programação indispensável no design de software.
Vale a pena mencionar que a Programação Orientada a Aspectos (AOP) é frequentemente comparada à programação Hook. A AOP visa a modularização de preocupações transversais, tendo como objetivo também aumentar ou alterar funcionalidades sem afetar a lógica central do negócio. A AOP pode ser vista como uma forma de programação Hook em um nível de abstração mais alto.
Uniswap V4: A Inovação dos Hooks
Em junho de 2023, a Uniswap lançou um rascunho do white paper V4, onde a característica mais notável é a introdução do mecanismo de Hooks.
Na verdade, os Hooks já têm uma ampla aplicação nos sistemas financeiros tradicionais, principalmente para atender às necessidades de personalização e escalabilidade. Por exemplo, inserir lógica de validação adicional durante o processo de processamento de transações, como autenticação em duas etapas, detecção de controle de riscos e estratégias de combate à lavagem de dinheiro. Além disso, os Hooks também podem ser usados para integrar APIs externas ou microserviços, expandindo novas funcionalidades como autenticação, conversão de taxas e gateways de pagamento. No entanto, a introdução de Hooks no campo das finanças descentralizadas (DeFi) foi, sem dúvida, iniciada pelo Uniswap.
Os Hooks no Uniswap V4 são essencialmente um contrato externo que pode ser vinculado ao criar uma piscina de liquidez. Em seguida, essa piscina chamará o contrato Hook vinculado em diferentes estágios do ciclo de vida para executar operações específicas, oferecendo uma personalização extremamente alta. Isso permite que os desenvolvedores construam cenários de negociação mais personalizados e aplicações descentralizadas (DApp) ricas em funcionalidades com base nos Hooks do Uniswap.
Uniswap V4 suporta atualmente quatro grupos de callbacks Hook, cada grupo contendo um par de funções de callback:
beforeInitialize/afterInitialize: usado para a inicialização do pool de liquidez
beforeModifyPosition/afterModifyPosition: usado para adicionar, reduzir ou remover liquidez
beforeSwap/afterSwap: usado para troca de tokens
beforeDonate/afterDonate: Usado para a funcionalidade de doação (Nova funcionalidade do Uniswap V4 que oferece recompensas aos provedores de liquidez dentro do intervalo de negociação)
Esses Hooks podem ser executados antes do início e após o término da negociação, permitindo funcionalidades avançadas como ordens de limite on-chain. Os usuários podem definir ordens de limite no contrato Hook e, em seguida, no callback afterSwap, determinar se o preço atende às condições com base em oráculos personalizados ou geridos, decidindo assim se executam ou cancelam a negociação.
Através de Hooks, a Uniswap V4 vincula estreitamente a liquidez ao desenvolvimento de DApps, não apenas melhorando a funcionalidade dos DApps, mas também fortalecendo o efeito de rede da Uniswap, tornando-a a infraestrutura central do ecossistema DeFi.
Desafios de segurança dos Hooks do Uniswap V4
Uma equipe de segurança realizou uma análise aprofundada dos potenciais riscos de segurança do mecanismo Hooks no Uniswap V4. Além dos riscos inerentes a contratos Hook maliciosos, mesmo contratos Hook benignos podem apresentar vulnerabilidades. A análise revelou que mais de 30% dos projetos apresentam riscos de segurança. Essas vulnerabilidades decorrem principalmente das interações complexas entre Hooks, PoolManager e terceiros externos, podendo ser divididas em duas grandes categorias:
Problemas de controle de acesso: Refere-se principalmente às funções de callback no Uniswap V4, que devem ser chamadas apenas pelo PoolManager e não por outros endereços (incluindo contas externas e contratos). Por exemplo, no cenário de distribuição de recompensas, se as funções relevantes puderem ser chamadas por qualquer conta, as recompensas podem ser erroneamente reivindicadas. Portanto, para Hooks, é crucial estabelecer um mecanismo de controle de acesso robusto, especialmente quando eles podem ser chamados por partes fora do pool.
Problemas de validação de entrada: Devido à validação inadequada de entrada em algumas implementações de Hook vulneráveis, podem ocorrer vários tipos de ataques, incluindo ataques de reentrada. A situação mais comum é quando funções Hook críticas chamam contratos externos não confiáveis. Um atacante pode registrar um pool de fundos malicioso para um token falso e, em seguida, acionar o Hook para executar operações no pool de fundos. Ao interagir com o pool de fundos, a lógica do token malicioso pode sequestrar o fluxo de controle, resultando em comportamentos indesejados.
Mesmo com o controle de acesso necessário aplicado a funções externas/públicas sensíveis e a validação dos parâmetros de entrada, reduzindo os riscos de segurança relacionados aos Hooks mencionados, as vulnerabilidades do contrato em si ainda não podem ser completamente evitadas. Especialmente quando o Hook é implementado como um contrato atualizável, podem surgir problemas relacionados a vulnerabilidades em contratos atualizáveis, semelhantes aos de uma conhecida biblioteca de contratos inteligentes.
As causas fundamentais desses desafios de segurança residem no fato de que a programação Hook aumentou a complexidade dos contratos inteligentes, ampliando assim a superfície de ataque. Embora algumas bibliotecas de contratos inteligentes ofereçam melhores práticas, essencialmente ainda adicionam "restrições de uso seguro" para os desenvolvedores. Em comparação com contratos comuns, os contratos Hook exigem normas de uso seguro mais rigorosas. Portanto, para que a programação Hook seja amplamente adotada, é necessário um quadro abrangente, incluindo um ambiente de execução seguro, paradigmas de programação adequados para Hook e restrições de uso mais rigorosas.
Protocolo nativo de uma plataforma de blockchain: suporte a programação Hook a nível de protocolo
Dado que os Hooks do Uniswap V4 são implementados através de contratos inteligentes, as questões de segurança também decorrem das limitações inerentes dos contratos inteligentes. Então, existe uma solução que suporte a programação de Hooks a partir do nível do protocolo? O mecanismo de extensão nativo de uma plataforma de blockchain nos fornece a resposta.
A plataforma é uma rede de blockchain Layer 1 compatível com EVM, de alta escalabilidade e alto desempenho, projetada para desenvolvedores criarem aplicações modulares, ricas em funcionalidades, escaláveis e personalizáveis. A plataforma introduz um novo tipo de módulo programável chamado módulo de extensão nativa, que inova ao trazer programação orientada a aspectos (AOP) para a rede de blockchain.
Este extension nativa requer um ponto de conexão específico, ou seja, a localização em que será executado durante todo o ciclo de vida do processamento da transação, semelhante ao callback de um Hook. Os pontos de conexão incluem:
Inicialização do bloco
Validação de transações
Antes da execução
Após a execução
Confirmação final do bloco
Atualmente, esta extensão nativa suporta apenas TypeScript, cujo código é compilado em WebAssembly (WASM) bytecode e implantado na rede. Após a implantação, o proprietário do contrato inteligente pode vincular o contrato à extensão nativa. O proprietário do contrato inteligente refere-se à conta externa (EOA) cujo endereço pode ser verificado através do isOwner(address) retorna (bool).
A extensão nativa da plataforma é implementada como Hooks em nível de protocolo, apresentando vantagens significativas em relação aos Hooks do Uniswap V4:
Primeiro, as extensões nativas usam WASM para executar seu código, cuja eficiência de execução é várias ordens de magnitude superior à do EVM.
Em segundo lugar, a extensão nativa pode capturar todo o ciclo de vida da transação, e não apenas a lógica central do DeFi, permitindo a construção de aplicações descentralizadas mais ricas em funcionalidades.
Por fim, e o mais importante, a extensão nativa opera de forma independente em um ambiente seguro de sandbox, e esse isolamento garante que a execução da extensão não afete a segurança da execução do contrato.
A natureza isolada das extensões nativas limita a chamada mútua entre contratos Hook e outros contratos externos como contratos normais, resolvendo efetivamente as dores de acesso e validação de entradas dos Hooks do Uniswap V4. Para contratos DeFi como o Uniswap, o lançamento nesta plataforma pode desfrutar de uma experiência de Hook mais rápida, forte e segura.
Resumo
Como um importante participante e líder no campo das finanças descentralizadas, a Uniswap desempenhou um papel fundamental na promoção do progresso do setor e na melhoria das funcionalidades. Os Hooks introduzidos na Uniswap V4 sem dúvida irão direcionar o desenvolvimento das exchanges descentralizadas, tornando-se um objeto de emulação para os seguidores.
No entanto, os Hooks do Uniswap V4 estão limitados às próprias limitações dos contratos inteligentes; não importa quão rigoroso seja o design do protocolo ou quão completo seja a biblioteca de ferramentas, não é possível impedir fundamentalmente a chamada mútua entre o contrato Hook e outros contratos externos, existindo potenciais riscos de segurança.
Uma rede de blockchain Layer 1 compatível com EVM de alto desempenho, desde o início do design do protocolo, levou em consideração um mecanismo de extensão nativo que opera de forma independente em WASM, oferecendo suporte nativo para programação de Hooks, o que aumenta significativamente a segurança. Isso fornece uma solução avançada para protocolos de finanças descentralizadas que consideram a segurança como uma linha de vida.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
18 Curtidas
Recompensa
18
4
Compartilhar
Comentário
0/400
TokenEconomist
· 07-15 19:46
na verdade, hooks são apenas middleware 2.0, não vamos complicar as coisas.
Ver originalResponder0
GateUser-cff9c776
· 07-14 12:31
O gancho de Schrödinger, pendurado, não se sabe se vai subir ou cair.
Uniswap V4 Hooks e extensões nativas: um novo capítulo em segurança e inovação nas Finanças Descentralizadas
Hooks: Ferramentas poderosas para expandir a funcionalidade de aplicativos
Hooks são um padrão de programação que permite aos desenvolvedores inserir código personalizado durante a execução do sistema. Através de funções ou blocos de código pré-definidos, os desenvolvedores podem estender e personalizar o comportamento da aplicação sem modificar o código original. Este método é amplamente utilizado em sistemas operacionais, frameworks, bibliotecas, desenvolvimento web e sistemas de plugins, entre outros campos.
A utilização de Hooks pode aumentar significativamente a escalabilidade e flexibilidade de um programa. Os desenvolvedores não precisam fazer alterações drásticas no código existente a cada ajuste de funcionalidade, mantendo assim a limpeza e estabilidade do código. Este mecanismo de extensão elegante torna os Hooks um modelo de programação indispensável no design de software.
Vale a pena mencionar que a Programação Orientada a Aspectos (AOP) é frequentemente comparada à programação Hook. A AOP visa a modularização de preocupações transversais, tendo como objetivo também aumentar ou alterar funcionalidades sem afetar a lógica central do negócio. A AOP pode ser vista como uma forma de programação Hook em um nível de abstração mais alto.
Uniswap V4: A Inovação dos Hooks
Em junho de 2023, a Uniswap lançou um rascunho do white paper V4, onde a característica mais notável é a introdução do mecanismo de Hooks.
Na verdade, os Hooks já têm uma ampla aplicação nos sistemas financeiros tradicionais, principalmente para atender às necessidades de personalização e escalabilidade. Por exemplo, inserir lógica de validação adicional durante o processo de processamento de transações, como autenticação em duas etapas, detecção de controle de riscos e estratégias de combate à lavagem de dinheiro. Além disso, os Hooks também podem ser usados para integrar APIs externas ou microserviços, expandindo novas funcionalidades como autenticação, conversão de taxas e gateways de pagamento. No entanto, a introdução de Hooks no campo das finanças descentralizadas (DeFi) foi, sem dúvida, iniciada pelo Uniswap.
Os Hooks no Uniswap V4 são essencialmente um contrato externo que pode ser vinculado ao criar uma piscina de liquidez. Em seguida, essa piscina chamará o contrato Hook vinculado em diferentes estágios do ciclo de vida para executar operações específicas, oferecendo uma personalização extremamente alta. Isso permite que os desenvolvedores construam cenários de negociação mais personalizados e aplicações descentralizadas (DApp) ricas em funcionalidades com base nos Hooks do Uniswap.
Uniswap V4 suporta atualmente quatro grupos de callbacks Hook, cada grupo contendo um par de funções de callback:
Esses Hooks podem ser executados antes do início e após o término da negociação, permitindo funcionalidades avançadas como ordens de limite on-chain. Os usuários podem definir ordens de limite no contrato Hook e, em seguida, no callback afterSwap, determinar se o preço atende às condições com base em oráculos personalizados ou geridos, decidindo assim se executam ou cancelam a negociação.
Através de Hooks, a Uniswap V4 vincula estreitamente a liquidez ao desenvolvimento de DApps, não apenas melhorando a funcionalidade dos DApps, mas também fortalecendo o efeito de rede da Uniswap, tornando-a a infraestrutura central do ecossistema DeFi.
Desafios de segurança dos Hooks do Uniswap V4
Uma equipe de segurança realizou uma análise aprofundada dos potenciais riscos de segurança do mecanismo Hooks no Uniswap V4. Além dos riscos inerentes a contratos Hook maliciosos, mesmo contratos Hook benignos podem apresentar vulnerabilidades. A análise revelou que mais de 30% dos projetos apresentam riscos de segurança. Essas vulnerabilidades decorrem principalmente das interações complexas entre Hooks, PoolManager e terceiros externos, podendo ser divididas em duas grandes categorias:
Problemas de controle de acesso: Refere-se principalmente às funções de callback no Uniswap V4, que devem ser chamadas apenas pelo PoolManager e não por outros endereços (incluindo contas externas e contratos). Por exemplo, no cenário de distribuição de recompensas, se as funções relevantes puderem ser chamadas por qualquer conta, as recompensas podem ser erroneamente reivindicadas. Portanto, para Hooks, é crucial estabelecer um mecanismo de controle de acesso robusto, especialmente quando eles podem ser chamados por partes fora do pool.
Problemas de validação de entrada: Devido à validação inadequada de entrada em algumas implementações de Hook vulneráveis, podem ocorrer vários tipos de ataques, incluindo ataques de reentrada. A situação mais comum é quando funções Hook críticas chamam contratos externos não confiáveis. Um atacante pode registrar um pool de fundos malicioso para um token falso e, em seguida, acionar o Hook para executar operações no pool de fundos. Ao interagir com o pool de fundos, a lógica do token malicioso pode sequestrar o fluxo de controle, resultando em comportamentos indesejados.
Mesmo com o controle de acesso necessário aplicado a funções externas/públicas sensíveis e a validação dos parâmetros de entrada, reduzindo os riscos de segurança relacionados aos Hooks mencionados, as vulnerabilidades do contrato em si ainda não podem ser completamente evitadas. Especialmente quando o Hook é implementado como um contrato atualizável, podem surgir problemas relacionados a vulnerabilidades em contratos atualizáveis, semelhantes aos de uma conhecida biblioteca de contratos inteligentes.
As causas fundamentais desses desafios de segurança residem no fato de que a programação Hook aumentou a complexidade dos contratos inteligentes, ampliando assim a superfície de ataque. Embora algumas bibliotecas de contratos inteligentes ofereçam melhores práticas, essencialmente ainda adicionam "restrições de uso seguro" para os desenvolvedores. Em comparação com contratos comuns, os contratos Hook exigem normas de uso seguro mais rigorosas. Portanto, para que a programação Hook seja amplamente adotada, é necessário um quadro abrangente, incluindo um ambiente de execução seguro, paradigmas de programação adequados para Hook e restrições de uso mais rigorosas.
Protocolo nativo de uma plataforma de blockchain: suporte a programação Hook a nível de protocolo
Dado que os Hooks do Uniswap V4 são implementados através de contratos inteligentes, as questões de segurança também decorrem das limitações inerentes dos contratos inteligentes. Então, existe uma solução que suporte a programação de Hooks a partir do nível do protocolo? O mecanismo de extensão nativo de uma plataforma de blockchain nos fornece a resposta.
A plataforma é uma rede de blockchain Layer 1 compatível com EVM, de alta escalabilidade e alto desempenho, projetada para desenvolvedores criarem aplicações modulares, ricas em funcionalidades, escaláveis e personalizáveis. A plataforma introduz um novo tipo de módulo programável chamado módulo de extensão nativa, que inova ao trazer programação orientada a aspectos (AOP) para a rede de blockchain.
Este extension nativa requer um ponto de conexão específico, ou seja, a localização em que será executado durante todo o ciclo de vida do processamento da transação, semelhante ao callback de um Hook. Os pontos de conexão incluem:
Atualmente, esta extensão nativa suporta apenas TypeScript, cujo código é compilado em WebAssembly (WASM) bytecode e implantado na rede. Após a implantação, o proprietário do contrato inteligente pode vincular o contrato à extensão nativa. O proprietário do contrato inteligente refere-se à conta externa (EOA) cujo endereço pode ser verificado através do isOwner(address) retorna (bool).
A extensão nativa da plataforma é implementada como Hooks em nível de protocolo, apresentando vantagens significativas em relação aos Hooks do Uniswap V4:
Primeiro, as extensões nativas usam WASM para executar seu código, cuja eficiência de execução é várias ordens de magnitude superior à do EVM.
Em segundo lugar, a extensão nativa pode capturar todo o ciclo de vida da transação, e não apenas a lógica central do DeFi, permitindo a construção de aplicações descentralizadas mais ricas em funcionalidades.
Por fim, e o mais importante, a extensão nativa opera de forma independente em um ambiente seguro de sandbox, e esse isolamento garante que a execução da extensão não afete a segurança da execução do contrato.
A natureza isolada das extensões nativas limita a chamada mútua entre contratos Hook e outros contratos externos como contratos normais, resolvendo efetivamente as dores de acesso e validação de entradas dos Hooks do Uniswap V4. Para contratos DeFi como o Uniswap, o lançamento nesta plataforma pode desfrutar de uma experiência de Hook mais rápida, forte e segura.
Resumo
Como um importante participante e líder no campo das finanças descentralizadas, a Uniswap desempenhou um papel fundamental na promoção do progresso do setor e na melhoria das funcionalidades. Os Hooks introduzidos na Uniswap V4 sem dúvida irão direcionar o desenvolvimento das exchanges descentralizadas, tornando-se um objeto de emulação para os seguidores.
No entanto, os Hooks do Uniswap V4 estão limitados às próprias limitações dos contratos inteligentes; não importa quão rigoroso seja o design do protocolo ou quão completo seja a biblioteca de ferramentas, não é possível impedir fundamentalmente a chamada mútua entre o contrato Hook e outros contratos externos, existindo potenciais riscos de segurança.
Uma rede de blockchain Layer 1 compatível com EVM de alto desempenho, desde o início do design do protocolo, levou em consideração um mecanismo de extensão nativo que opera de forma independente em WASM, oferecendo suporte nativo para programação de Hooks, o que aumenta significativamente a segurança. Isso fornece uma solução avançada para protocolos de finanças descentralizadas que consideram a segurança como uma linha de vida.