Evolução dos Ganchos DeFi: Da Segurança dos Contratos Uniswap V4 ao Protocolo Nativo da Artela

Intermediário5/21/2024, 3:41:36 PM
Este artigo explica o conceito do modelo de programação Hooks, que permite aos programadores inserir código personalizado no caminho de execução do sistema, aplicação ou biblioteca através de funções predefinidas ou blocos de código, melhorando a escalabilidade e personalização do programa. A Uniswap V4 introduz Hooks, através dos quais funções como taxas dinâmicas, ordens de limite de preço on-chain e market makers de média ponderada no tempo podem ser implementadas, melhorando as funções do DApp e o efeito de rede da Uniswap.

O que são Hooks

Hooks, ou Programação de Hook, é um modelo de programação que permite aos programadores inserir código personalizado no caminho de execução de um sistema, aplicação ou biblioteca através de Hooks, que são funções predefinidas ou blocos de código. Não é necessário modificar o código original. Os Hooks são frequentemente utilizados em muitos ambientes e estruturas de programação, como sistemas operacionais, estruturas e bibliotecas, desenvolvimento web e sistemas de plug-ins.

Ao usar Hooks, os desenvolvedores podem aumentar a escalabilidade e personalização do programa sem terem que modificar o código original para cada alteração ou requisito de expansão, o que ajuda a manter o código limpo e estável. Os Hooks fornecem um método de implementação elegante para extensão de software e são um modelo de programação muito útil em design de software.

Em particular, AOP (Aspect-oriented Programming) é frequentemente comparado com a programação Hook. AOP é um paradigma de programação modular que implementa preocupações transversais e o objetivo não é alterar a lógica principal do negócio. Ele melhora ou modifica a funcionalidade, se necessário. Não vou expandir detalhadamente sobre AOP aqui. Você pode simplesmente pensar em AOP como uma abstração de nível superior da programação Hook.

Uniswap V4: Revolução dos Hooks

Em junho de 2023, a Uniswap anunciou e tornou público uma versão preliminar do white paper da Uniswap V4. Uma característica importante da Uniswap V4 é a introdução de Hooks.

Os Hooks têm sido amplamente utilizados nos sistemas financeiros Web2, porque esses sistemas geralmente requerem um alto grau de personalização e escalabilidade. Cenários personalizados, como ao processar transações, usam Hooks para inserir lógica de verificação adicional antes e depois da execução da transação, como verificação secundária, detecção de controle de riscos e estratégias de lavagem de dinheiro (AML). Os cenários de escalabilidade incluem a integração com APIs externas ou microsserviços por meio de Hooks para expandir novas funções no sistema financeiro, como serviços de autenticação de identidade, conversão de taxa de câmbio, portões de pagamento, etc. Mas ao introduzir Hooks no DeFi, a Uniswap estabeleceu um precedente.

Uniswap V4 Hooks são essencialmente um contrato externo criado e definido por desenvolvedores. Quando um pool de liquidez é criado, você pode optar por vincular um contrato de Hook. Depois, o pool de liquidez chamará o contrato de Hook previamente vinculado para realizar operações especificadas em diferentes estágios do ciclo de vida, proporcionando um alto grau de personalização. Os desenvolvedores podem usar os Hooks da Uniswap para atender a cenários de negociação mais personalizados e construir DApps com funções mais ricas, tais como:

  • Taxas dinâmicas: Através de Hooks, as pools de liquidez podem ajustar dinamicamente as taxas com base na volatilidade do mercado ou outros parâmetros de entrada para se adaptarem melhor às condições do mercado;
  • Ordens de Limite On-chain: Os Hooks podem criar e executar ordens de limite na cadeia, permitindo que os utilizadores negociem a preços especificados;
  • Time Weighted Average Market Maker (TWAMM): Utiliza o mecanismo Hooks para criar uma pool de liquidez que suporta a estratégia TWAMM para espalhar uniformemente as transações de grandes encomendas ao longo do tempo. \

Atualmente, o Uniswap V4 suporta quatro grupos de chamadas de gancho, cada grupo contém um par de chamadas de gancho:

  • beforeInitialize/afterInitialize: Inicialize a pool de liquidez;
  • beforeModifyPosition/afterModifyPosition: adicionar/reduzir/remover liquidez;
  • antes da troca/depois da troca: troca;
  • beforeDonate/afterDonate: Doação (um novo recurso introduzido pela Uniswap V4, dica para fornecedores de liquidez dentro do escopo de negociação).

O diagrama seguinte ilustra o processo de Hook antes/depois da troca apresentado no whitepaper. Pode-se observar que antes e depois de executar a troca, primeiro verifica se o sinal correspondente do Hook da pool de liquidez está ativado. Se estiver ativado, então chamará as funções correspondentes do contrato Hook.

Estes Hooks podem ser executados antes de uma negociação começar e depois de uma negociação terminar, permitindo funcionalidades semelhantes às ordens de limite on-chain. O utilizador coloca uma ordem de limite no contrato Hook e depois utiliza um oráculo personalizado ou gerido na chamada afterSwap para determinar se o preço cumpre o limite. Se cumprir, a transação será executada. Se não cumprir, a transação será cancelada.

O Uniswap V4 vincula profundamente a liquidez ao desenvolvimento do próprio DApp através de Hooks. Ele melhora as funções do DApp e também melhora o efeito de rede do Uniswap, tornando-o a infraestrutura subjacente de todo o ecossistema DeFi.

Questões de segurança dos ganchos Uniswap V4

A equipe BlockSec explorou os riscos de segurança do mecanismo Hooks no Uniswap V4. Além do fato de que o contrato Hook em si é malicioso, contratos benignos de Hook também são extremamente propensos a vulnerabilidades. A equipe BlockSec analisou o repositório Awesome Uniswap v4 Hooks (hash de commit 3a0a444922f26605ec27a41929f3ced924af6075) e descobriu que mais de 30% dos projetos no repositório eram vulneráveis. Essas vulnerabilidades têm origem principalmente nas interações de risco entre Hook, PoolManager e terceiros externos, e podem ser divididas principalmente em duas categorias:

  • Problemas de controlo de acesso: A principal preocupação são as funções de retorno de chamada no Uniswap V4. Estas funções só devem ser chamadas pelo PoolManager e não podem ser chamadas por outros endereços (incluindo EOA e contratos). Por exemplo, no caso em que as recompensas são distribuídas pelas chaves do pool, as recompensas podem ser reclamadas incorretamente se a função correspondente puder ser chamada por qualquer conta. Portanto, os Hooks devem estabelecer mecanismos fortes de controlo de acesso, especialmente uma vez que podem ser chamados por outras partes além do próprio pool;
  • Digite a pergunta de verificação: Vários tipos de ataques, incluindo ataques de reentrada bem conhecidos, resultam de validação inadequada de entrada em algumas implementações vulneráveis do Hook. A situação mais comum é que contratos externos não confiáveis são chamados em algumas funções-chave do Hook. Para atacar esses Hooks vulneráveis, o atacante pode registar um pool de fundos maliciosos para os seus próprios tokens falsos e, em seguida, chamar o Hook para usar os fundos. O pool realiza operações. Ao interagir com o pool, a lógica do token malicioso sequestra o fluxo de controle para se envolver em comportamento indesejado.

Mesmo que o controlo de acesso necessário às funções externas/públicas sensíveis seja devidamente implementado e os parâmetros de entrada sejam verificados para reduzir os riscos de segurança relacionados com os dois tipos de Hooks acima mencionados, a vulnerabilidade do contrato em si não pode ser completamente evitada, especialmente se o Hook for atualizável. Se o contrato for implementado, poderá também encontrar problemas relacionados semelhantes à vulnerabilidade UUPSUpgradeable da OpenZeppelin.

A razão reside no facto de que a programação Hook aumenta a complexidade dos contratos inteligentes, aumentando assim a superfície de ataque. Para contratos inteligentes regulares, a OpenZeppelin fornece uma série de bibliotecas de melhores práticas para garantir que os contratos desenvolvidos com base nela sejam seguros. No entanto, fundamentalmente, adiciona “restrições de uso de segurança” para os programadores. Em comparação, os contratos Hook exigem ainda “restrições de uso de segurança” mais rigorosas do que os contratos regulares. Portanto, para que a programação Hook seja amplamente aplicada, é necessário um quadro abrangente: requer um ambiente de execução seguro, paradigmas de programação aplicáveis para Hooks e restrições de uso mais rigorosas.

Aspecto Artela: Suporte ao Nível do Protocolo para Programação de Ganchos

Os Hooks do Uniswap V4 são implementados através de contratos inteligentes, e os seus problemas de segurança também são causados pelas limitações dos contratos inteligentes. Existe alguma solução que suporte a programação de Hooks a partir do nível do protocolo? A Artela Aspect dá-nos a resposta!

Artela é uma rede de blockchain de camada 1 altamente escalável e de alto desempenho compatível com EVM, projetada para que os desenvolvedores construam aplicações modulares, ricas em recursos, escaláveis e personalizáveis. Artela define um novo módulo programável como uma extensão nativa chamada Aspecto, que introduz inovadoramente o AOP na rede blockchain. O Aspecto precisa especificar um ponto de conexão, ou seja, o local onde o Aspecto é executado em todo o ciclo de vida do processamento da transação. Semelhante ao callback do Hook, os pontos de conexão incluem:

  • Iniciar Bloco
  • Verificação da Transação
  • Pré Executar
  • Executar Post
  • Bloco Finalizar

Aspect atualmente suporta apenas TypeScript, e seu código é compilado em bytecode WebAssembly (WASM) e implantado na rede Artela. Após a implantação do Aspect, os proprietários de contratos inteligentes podem vincular seus contratos com o Aspect. Um proprietário de contrato inteligente é definido como um endereço de conta externa (EOA) que pode passar na verificação isOwner(address) returns (bool) no contrato inteligente.

Posteriormente, as transações subsequentes que chamam o contrato inteligente serão tratadas pela Aspect, conforme mostrado no diagrama abaixo:

Como uma implementação de Hooks ao nível do protocolo, Artela Aspects tem grandes vantagens sobre Uniswap V4 Hooks:

Primeiro, a Artela Aspects usa WASM para executar o seu código, e a eficiência de execução é várias ordens de magnitude superior à EVM;

Em segundo lugar, a Artela Aspects pode ligar todo o ciclo de vida da transação, não apenas a lógica central do DeFi, e pode construir DApps com funções mais ricas;

Finalmente, e mais importante, a Artela Aspects funciona de forma independente num ambiente seguro de sandbox. Este isolamento garante que a execução dos Aspects não afetará a segurança da execução do contrato.

O isolamento dos Aspectos da Artela limita as chamadas mútuas entre o contrato Hook como um contrato normal e outros contratos externos, resolvendo o problema teimoso do controle de acesso e verificação de entrada do Uniswap V4 Hooks. Para contratos DeFi como Uniswap, você pode desfrutar de uma experiência Hook mais rápida, mais forte e segura ao implantá-la na Artela.

Sumário

Como participante significativo e líder na indústria DeFi, Uniswap desempenhou um papel crucial no impulso do progresso da indústria e na melhoria da funcionalidade. A introdução de Hooks no Uniswap V4 define, sem dúvida, a direção para o desenvolvimento do DEX e é ansiosamente imitada pelos sucessores.

No entanto, os Hooks do Uniswap V4 são limitados pelas restrições inerentes dos contratos inteligentes. Independentemente de quão robusto seja o design do protocolo e de quão abrangentes sejam os conjuntos de ferramentas, não pode impedir fundamentalmente a invocação mútua entre contratos Hook e contratos externos, representando potenciais vulnerabilidades de segurança.

Artela, como uma rede blockchain de alto desempenho compatível com EVM de Camada 1, projetou o Aspect para funcionar de forma independente em WASM desde o início do protocolo, suportando nativamente a programação Hook. Isso melhora significativamente a segurança, fornecendo uma solução avançada para protocolos DeFi que consideram a segurança como primordial.

Declaração:

  1. Este artigo originalmente intitulado "Evolution of DeFi Hooks: From Uniswap V4 Contract Security to Artela Native Protocol" é reproduzido de [Web3 do porquinho]. Todos os direitos autorais pertencem ao autor original [web3朱大胆]. Se tiver alguma objeção à reimpressão, por favor contacte o Gate Aprenderequipa, a equipa irá tratar disso o mais rapidamente possível.

  2. Aviso Legal: As opiniões expressas neste artigo representam apenas as visões pessoais do autor e não constituem qualquer conselho de investimento.

  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Evolução dos Ganchos DeFi: Da Segurança dos Contratos Uniswap V4 ao Protocolo Nativo da Artela

Intermediário5/21/2024, 3:41:36 PM
Este artigo explica o conceito do modelo de programação Hooks, que permite aos programadores inserir código personalizado no caminho de execução do sistema, aplicação ou biblioteca através de funções predefinidas ou blocos de código, melhorando a escalabilidade e personalização do programa. A Uniswap V4 introduz Hooks, através dos quais funções como taxas dinâmicas, ordens de limite de preço on-chain e market makers de média ponderada no tempo podem ser implementadas, melhorando as funções do DApp e o efeito de rede da Uniswap.

O que são Hooks

Hooks, ou Programação de Hook, é um modelo de programação que permite aos programadores inserir código personalizado no caminho de execução de um sistema, aplicação ou biblioteca através de Hooks, que são funções predefinidas ou blocos de código. Não é necessário modificar o código original. Os Hooks são frequentemente utilizados em muitos ambientes e estruturas de programação, como sistemas operacionais, estruturas e bibliotecas, desenvolvimento web e sistemas de plug-ins.

Ao usar Hooks, os desenvolvedores podem aumentar a escalabilidade e personalização do programa sem terem que modificar o código original para cada alteração ou requisito de expansão, o que ajuda a manter o código limpo e estável. Os Hooks fornecem um método de implementação elegante para extensão de software e são um modelo de programação muito útil em design de software.

Em particular, AOP (Aspect-oriented Programming) é frequentemente comparado com a programação Hook. AOP é um paradigma de programação modular que implementa preocupações transversais e o objetivo não é alterar a lógica principal do negócio. Ele melhora ou modifica a funcionalidade, se necessário. Não vou expandir detalhadamente sobre AOP aqui. Você pode simplesmente pensar em AOP como uma abstração de nível superior da programação Hook.

Uniswap V4: Revolução dos Hooks

Em junho de 2023, a Uniswap anunciou e tornou público uma versão preliminar do white paper da Uniswap V4. Uma característica importante da Uniswap V4 é a introdução de Hooks.

Os Hooks têm sido amplamente utilizados nos sistemas financeiros Web2, porque esses sistemas geralmente requerem um alto grau de personalização e escalabilidade. Cenários personalizados, como ao processar transações, usam Hooks para inserir lógica de verificação adicional antes e depois da execução da transação, como verificação secundária, detecção de controle de riscos e estratégias de lavagem de dinheiro (AML). Os cenários de escalabilidade incluem a integração com APIs externas ou microsserviços por meio de Hooks para expandir novas funções no sistema financeiro, como serviços de autenticação de identidade, conversão de taxa de câmbio, portões de pagamento, etc. Mas ao introduzir Hooks no DeFi, a Uniswap estabeleceu um precedente.

Uniswap V4 Hooks são essencialmente um contrato externo criado e definido por desenvolvedores. Quando um pool de liquidez é criado, você pode optar por vincular um contrato de Hook. Depois, o pool de liquidez chamará o contrato de Hook previamente vinculado para realizar operações especificadas em diferentes estágios do ciclo de vida, proporcionando um alto grau de personalização. Os desenvolvedores podem usar os Hooks da Uniswap para atender a cenários de negociação mais personalizados e construir DApps com funções mais ricas, tais como:

  • Taxas dinâmicas: Através de Hooks, as pools de liquidez podem ajustar dinamicamente as taxas com base na volatilidade do mercado ou outros parâmetros de entrada para se adaptarem melhor às condições do mercado;
  • Ordens de Limite On-chain: Os Hooks podem criar e executar ordens de limite na cadeia, permitindo que os utilizadores negociem a preços especificados;
  • Time Weighted Average Market Maker (TWAMM): Utiliza o mecanismo Hooks para criar uma pool de liquidez que suporta a estratégia TWAMM para espalhar uniformemente as transações de grandes encomendas ao longo do tempo. \

Atualmente, o Uniswap V4 suporta quatro grupos de chamadas de gancho, cada grupo contém um par de chamadas de gancho:

  • beforeInitialize/afterInitialize: Inicialize a pool de liquidez;
  • beforeModifyPosition/afterModifyPosition: adicionar/reduzir/remover liquidez;
  • antes da troca/depois da troca: troca;
  • beforeDonate/afterDonate: Doação (um novo recurso introduzido pela Uniswap V4, dica para fornecedores de liquidez dentro do escopo de negociação).

O diagrama seguinte ilustra o processo de Hook antes/depois da troca apresentado no whitepaper. Pode-se observar que antes e depois de executar a troca, primeiro verifica se o sinal correspondente do Hook da pool de liquidez está ativado. Se estiver ativado, então chamará as funções correspondentes do contrato Hook.

Estes Hooks podem ser executados antes de uma negociação começar e depois de uma negociação terminar, permitindo funcionalidades semelhantes às ordens de limite on-chain. O utilizador coloca uma ordem de limite no contrato Hook e depois utiliza um oráculo personalizado ou gerido na chamada afterSwap para determinar se o preço cumpre o limite. Se cumprir, a transação será executada. Se não cumprir, a transação será cancelada.

O Uniswap V4 vincula profundamente a liquidez ao desenvolvimento do próprio DApp através de Hooks. Ele melhora as funções do DApp e também melhora o efeito de rede do Uniswap, tornando-o a infraestrutura subjacente de todo o ecossistema DeFi.

Questões de segurança dos ganchos Uniswap V4

A equipe BlockSec explorou os riscos de segurança do mecanismo Hooks no Uniswap V4. Além do fato de que o contrato Hook em si é malicioso, contratos benignos de Hook também são extremamente propensos a vulnerabilidades. A equipe BlockSec analisou o repositório Awesome Uniswap v4 Hooks (hash de commit 3a0a444922f26605ec27a41929f3ced924af6075) e descobriu que mais de 30% dos projetos no repositório eram vulneráveis. Essas vulnerabilidades têm origem principalmente nas interações de risco entre Hook, PoolManager e terceiros externos, e podem ser divididas principalmente em duas categorias:

  • Problemas de controlo de acesso: A principal preocupação são as funções de retorno de chamada no Uniswap V4. Estas funções só devem ser chamadas pelo PoolManager e não podem ser chamadas por outros endereços (incluindo EOA e contratos). Por exemplo, no caso em que as recompensas são distribuídas pelas chaves do pool, as recompensas podem ser reclamadas incorretamente se a função correspondente puder ser chamada por qualquer conta. Portanto, os Hooks devem estabelecer mecanismos fortes de controlo de acesso, especialmente uma vez que podem ser chamados por outras partes além do próprio pool;
  • Digite a pergunta de verificação: Vários tipos de ataques, incluindo ataques de reentrada bem conhecidos, resultam de validação inadequada de entrada em algumas implementações vulneráveis do Hook. A situação mais comum é que contratos externos não confiáveis são chamados em algumas funções-chave do Hook. Para atacar esses Hooks vulneráveis, o atacante pode registar um pool de fundos maliciosos para os seus próprios tokens falsos e, em seguida, chamar o Hook para usar os fundos. O pool realiza operações. Ao interagir com o pool, a lógica do token malicioso sequestra o fluxo de controle para se envolver em comportamento indesejado.

Mesmo que o controlo de acesso necessário às funções externas/públicas sensíveis seja devidamente implementado e os parâmetros de entrada sejam verificados para reduzir os riscos de segurança relacionados com os dois tipos de Hooks acima mencionados, a vulnerabilidade do contrato em si não pode ser completamente evitada, especialmente se o Hook for atualizável. Se o contrato for implementado, poderá também encontrar problemas relacionados semelhantes à vulnerabilidade UUPSUpgradeable da OpenZeppelin.

A razão reside no facto de que a programação Hook aumenta a complexidade dos contratos inteligentes, aumentando assim a superfície de ataque. Para contratos inteligentes regulares, a OpenZeppelin fornece uma série de bibliotecas de melhores práticas para garantir que os contratos desenvolvidos com base nela sejam seguros. No entanto, fundamentalmente, adiciona “restrições de uso de segurança” para os programadores. Em comparação, os contratos Hook exigem ainda “restrições de uso de segurança” mais rigorosas do que os contratos regulares. Portanto, para que a programação Hook seja amplamente aplicada, é necessário um quadro abrangente: requer um ambiente de execução seguro, paradigmas de programação aplicáveis para Hooks e restrições de uso mais rigorosas.

Aspecto Artela: Suporte ao Nível do Protocolo para Programação de Ganchos

Os Hooks do Uniswap V4 são implementados através de contratos inteligentes, e os seus problemas de segurança também são causados pelas limitações dos contratos inteligentes. Existe alguma solução que suporte a programação de Hooks a partir do nível do protocolo? A Artela Aspect dá-nos a resposta!

Artela é uma rede de blockchain de camada 1 altamente escalável e de alto desempenho compatível com EVM, projetada para que os desenvolvedores construam aplicações modulares, ricas em recursos, escaláveis e personalizáveis. Artela define um novo módulo programável como uma extensão nativa chamada Aspecto, que introduz inovadoramente o AOP na rede blockchain. O Aspecto precisa especificar um ponto de conexão, ou seja, o local onde o Aspecto é executado em todo o ciclo de vida do processamento da transação. Semelhante ao callback do Hook, os pontos de conexão incluem:

  • Iniciar Bloco
  • Verificação da Transação
  • Pré Executar
  • Executar Post
  • Bloco Finalizar

Aspect atualmente suporta apenas TypeScript, e seu código é compilado em bytecode WebAssembly (WASM) e implantado na rede Artela. Após a implantação do Aspect, os proprietários de contratos inteligentes podem vincular seus contratos com o Aspect. Um proprietário de contrato inteligente é definido como um endereço de conta externa (EOA) que pode passar na verificação isOwner(address) returns (bool) no contrato inteligente.

Posteriormente, as transações subsequentes que chamam o contrato inteligente serão tratadas pela Aspect, conforme mostrado no diagrama abaixo:

Como uma implementação de Hooks ao nível do protocolo, Artela Aspects tem grandes vantagens sobre Uniswap V4 Hooks:

Primeiro, a Artela Aspects usa WASM para executar o seu código, e a eficiência de execução é várias ordens de magnitude superior à EVM;

Em segundo lugar, a Artela Aspects pode ligar todo o ciclo de vida da transação, não apenas a lógica central do DeFi, e pode construir DApps com funções mais ricas;

Finalmente, e mais importante, a Artela Aspects funciona de forma independente num ambiente seguro de sandbox. Este isolamento garante que a execução dos Aspects não afetará a segurança da execução do contrato.

O isolamento dos Aspectos da Artela limita as chamadas mútuas entre o contrato Hook como um contrato normal e outros contratos externos, resolvendo o problema teimoso do controle de acesso e verificação de entrada do Uniswap V4 Hooks. Para contratos DeFi como Uniswap, você pode desfrutar de uma experiência Hook mais rápida, mais forte e segura ao implantá-la na Artela.

Sumário

Como participante significativo e líder na indústria DeFi, Uniswap desempenhou um papel crucial no impulso do progresso da indústria e na melhoria da funcionalidade. A introdução de Hooks no Uniswap V4 define, sem dúvida, a direção para o desenvolvimento do DEX e é ansiosamente imitada pelos sucessores.

No entanto, os Hooks do Uniswap V4 são limitados pelas restrições inerentes dos contratos inteligentes. Independentemente de quão robusto seja o design do protocolo e de quão abrangentes sejam os conjuntos de ferramentas, não pode impedir fundamentalmente a invocação mútua entre contratos Hook e contratos externos, representando potenciais vulnerabilidades de segurança.

Artela, como uma rede blockchain de alto desempenho compatível com EVM de Camada 1, projetou o Aspect para funcionar de forma independente em WASM desde o início do protocolo, suportando nativamente a programação Hook. Isso melhora significativamente a segurança, fornecendo uma solução avançada para protocolos DeFi que consideram a segurança como primordial.

Declaração:

  1. Este artigo originalmente intitulado "Evolution of DeFi Hooks: From Uniswap V4 Contract Security to Artela Native Protocol" é reproduzido de [Web3 do porquinho]. Todos os direitos autorais pertencem ao autor original [web3朱大胆]. Se tiver alguma objeção à reimpressão, por favor contacte o Gate Aprenderequipa, a equipa irá tratar disso o mais rapidamente possível.

  2. Aviso Legal: As opiniões expressas neste artigo representam apenas as visões pessoais do autor e não constituem qualquer conselho de investimento.

  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Comece agora
Inscreva-se e ganhe um cupom de
$100
!