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

intermediário5/21/2024, 3:41:36 PM
Este artigo explica o conceito do modelo de programação Hooks, que permite aos desenvolvedores inserir código personalizado no caminho de execução do sistema, aplicativo ou biblioteca por meio de funções predefinidas ou blocos de código, melhorando a escalabilidade e customização do programa. O Uniswap V4 introduz Hooks, por meio dos quais funções como taxas dinâmicas, ordens limitadas de preço on-chain e market makers médios ponderados pelo tempo podem ser implementadas, aprimorando as funções do DApp e o efeito de rede do Uniswap.

O que são ganchos

Hooks, ou Programação de Hooks, é um modelo de programação que permite aos desenvolvedores inserir código personalizado no caminho de execução de um sistema, aplicativo ou biblioteca através de Hooks, que são funções predefinidas ou blocos de código. Não há necessidade de 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-in.

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

Em particular, AOP (Aspect-oriented Programming) é frequentemente comparado com a programação de 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 aprimora ou modifica a funcionalidade, se necessário. Não vou me aprofundar em AOP aqui. Você pode simplesmente pensar em AOP como uma abstração de nível mais alto da programação de Hook.

Uniswap V4: Revolução de Ganchos

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

Hooks têm sido amplamente utilizados em sistemas financeiros Web2, porque esses sistemas geralmente exigem 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 após a execução da transação, como verificação secundária, detecção de controle de riscos e estratégias de prevenção à 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, gateways 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 pelos desenvolvedores. Quando um pool de liquidez é criado, você pode escolher 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, 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 adaptar melhor às condições de mercado;
  • Ordens Limitadas On-chain: Hooks podem criar e executar ordens limitadas na cadeia, permitindo que os usuários 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 distribuir uniformemente as transações de grandes pedidos ao longo do tempo.

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

  • 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 pelo Uniswap V4, dica para provedores de liquidez dentro do escopo de negociação).

O diagrama a seguir ilustra o processo de gancho beforeSwap/afterSwap conforme apresentado no whitepaper. Pode-se observar que antes e depois de executar a troca, ele primeiro verifica se a flag correspondente do Gancho da piscina de liquidez está habilitada. Se estiver habilitado, ele então chamará as funções correspondentes do contrato de Gancho.

Esses Hooks podem ser executados antes de uma negociação começar e após uma negociação terminar, possibilitando funcionalidades semelhantes às ordens limitadas on-chain. O usuário coloca uma ordem limitada no contrato de Hook e, em seguida, usa um oráculo personalizado ou gerenciado na chamada afterSwap para determinar se o preço atende ao limite. Se atender, a transação será executada. Caso contrário, a transação será cancelada.

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

Questões de segurança dos ganchos Uniswap V4

A equipe da 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 Hook benignos também são extremamente propensos a vulnerabilidades. A equipe da BlockSec analisou o repositório Awesome Uniswap v4 Hooks (hash do commit 3a0a444922f26605ec27a41929f3ced924af6075) e descobriu que mais de 30% dos projetos no repositório eram vulneráveis. Essas vulnerabilidades geralmente se originam de interações de risco entre Hook, PoolManager e terceiros externos, e podem ser principalmente divididas em duas categorias:

  • Problemas de controle de acesso: A principal preocupação são as funções de retorno de chamada no Uniswap V4. Essas funções devem ser chamadas apenas 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 reivindicadas incorretamente se a função correspondente puder ser chamada por qualquer conta. Portanto, os Hooks devem estabelecer mecanismos fortes de controle de acesso, especialmente uma vez que podem ser chamados por outras partes além do próprio pool;
  • Insira a pergunta de verificação: Vários tipos de ataques, incluindo os conhecidos ataques de reentrada, resultam da validação inadequada de entrada em algumas implementações vulneráveis de 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 registrar um pool de fundos malicioso para seus próprios tokens falsos e, em seguida, chamar o Hook para usar os fundos. O pool executa operações. Ao interagir com o pool, a lógica de token malicioso sequestra o fluxo de controle para se envolver em comportamentos indesejados.

Mesmo que o controle 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 aos dois tipos de Hooks acima, a vulnerabilidade do contrato em si não pode ser completamente evitada, especialmente se o Hook for atualizável. Se o contrato for implementado, você também pode encontrar problemas semelhantes à vulnerabilidade UUPSUpgradeable da OpenZeppelin.

A razão reside no fato de que a programação Hook aumenta a complexidade dos contratos inteligentes, ampliando 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 nele sejam seguros. No entanto, fundamentalmente, ela adiciona 'restrições de uso de segurança' para os desenvolvedores. Em comparação, os contratos Hook exigem 'restrições de uso de segurança' ainda mais rígidas do que os contratos regulares. Portanto, para que a programação Hook seja amplamente aplicada, um framework abrangente é necessário: ele requer um ambiente de execução seguro, paradigmas de programação aplicáveis para Hooks e restrições de uso mais rígidas.

Artela Aspect: Suporte em nível de protocolo para Programação de Hook

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

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

  • Inicialização de Bloco
  • Verificação da Transação
  • Pré Executar
  • Post Execute
  • 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(endereço) retorna (bool) no contrato inteligente.

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

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

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

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

Finalmente, e mais importante, Artela Aspects é executado de forma independente em um ambiente de sandbox seguro. 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 obstinado do controle de acesso e verificação de entrada dos Hooks do Uniswap V4. Para contratos DeFi como Uniswap, você pode desfrutar de uma experiência de Hook mais rápida, mais forte e mais segura ao implantá-lo na Artela.

Resumo

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

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

Artela, como uma rede de blockchain de camada 1 de alto desempenho compatível com EVM, projetou 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 “Evolução dos Ganchos DeFi: Da Segurança do Contrato Uniswap V4 ao Protocolo Nativo Artela” é reproduzido de [ 小猪Web3]. Todos os direitos autorais pertencem ao autor original [web3 朱大胆]. Se você tiver alguma objeção à reprodução, entre em contato com o Gate Learnequipe, a equipe lidará com isso o mais rápido possível.

  2. Isenção de responsabilidade: As visões e 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. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

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

intermediário5/21/2024, 3:41:36 PM
Este artigo explica o conceito do modelo de programação Hooks, que permite aos desenvolvedores inserir código personalizado no caminho de execução do sistema, aplicativo ou biblioteca por meio de funções predefinidas ou blocos de código, melhorando a escalabilidade e customização do programa. O Uniswap V4 introduz Hooks, por meio dos quais funções como taxas dinâmicas, ordens limitadas de preço on-chain e market makers médios ponderados pelo tempo podem ser implementadas, aprimorando as funções do DApp e o efeito de rede do Uniswap.

O que são ganchos

Hooks, ou Programação de Hooks, é um modelo de programação que permite aos desenvolvedores inserir código personalizado no caminho de execução de um sistema, aplicativo ou biblioteca através de Hooks, que são funções predefinidas ou blocos de código. Não há necessidade de 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-in.

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

Em particular, AOP (Aspect-oriented Programming) é frequentemente comparado com a programação de 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 aprimora ou modifica a funcionalidade, se necessário. Não vou me aprofundar em AOP aqui. Você pode simplesmente pensar em AOP como uma abstração de nível mais alto da programação de Hook.

Uniswap V4: Revolução de Ganchos

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

Hooks têm sido amplamente utilizados em sistemas financeiros Web2, porque esses sistemas geralmente exigem 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 após a execução da transação, como verificação secundária, detecção de controle de riscos e estratégias de prevenção à 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, gateways 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 pelos desenvolvedores. Quando um pool de liquidez é criado, você pode escolher 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, 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 adaptar melhor às condições de mercado;
  • Ordens Limitadas On-chain: Hooks podem criar e executar ordens limitadas na cadeia, permitindo que os usuários 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 distribuir uniformemente as transações de grandes pedidos ao longo do tempo.

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

  • 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 pelo Uniswap V4, dica para provedores de liquidez dentro do escopo de negociação).

O diagrama a seguir ilustra o processo de gancho beforeSwap/afterSwap conforme apresentado no whitepaper. Pode-se observar que antes e depois de executar a troca, ele primeiro verifica se a flag correspondente do Gancho da piscina de liquidez está habilitada. Se estiver habilitado, ele então chamará as funções correspondentes do contrato de Gancho.

Esses Hooks podem ser executados antes de uma negociação começar e após uma negociação terminar, possibilitando funcionalidades semelhantes às ordens limitadas on-chain. O usuário coloca uma ordem limitada no contrato de Hook e, em seguida, usa um oráculo personalizado ou gerenciado na chamada afterSwap para determinar se o preço atende ao limite. Se atender, a transação será executada. Caso contrário, a transação será cancelada.

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

Questões de segurança dos ganchos Uniswap V4

A equipe da 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 Hook benignos também são extremamente propensos a vulnerabilidades. A equipe da BlockSec analisou o repositório Awesome Uniswap v4 Hooks (hash do commit 3a0a444922f26605ec27a41929f3ced924af6075) e descobriu que mais de 30% dos projetos no repositório eram vulneráveis. Essas vulnerabilidades geralmente se originam de interações de risco entre Hook, PoolManager e terceiros externos, e podem ser principalmente divididas em duas categorias:

  • Problemas de controle de acesso: A principal preocupação são as funções de retorno de chamada no Uniswap V4. Essas funções devem ser chamadas apenas 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 reivindicadas incorretamente se a função correspondente puder ser chamada por qualquer conta. Portanto, os Hooks devem estabelecer mecanismos fortes de controle de acesso, especialmente uma vez que podem ser chamados por outras partes além do próprio pool;
  • Insira a pergunta de verificação: Vários tipos de ataques, incluindo os conhecidos ataques de reentrada, resultam da validação inadequada de entrada em algumas implementações vulneráveis de 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 registrar um pool de fundos malicioso para seus próprios tokens falsos e, em seguida, chamar o Hook para usar os fundos. O pool executa operações. Ao interagir com o pool, a lógica de token malicioso sequestra o fluxo de controle para se envolver em comportamentos indesejados.

Mesmo que o controle 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 aos dois tipos de Hooks acima, a vulnerabilidade do contrato em si não pode ser completamente evitada, especialmente se o Hook for atualizável. Se o contrato for implementado, você também pode encontrar problemas semelhantes à vulnerabilidade UUPSUpgradeable da OpenZeppelin.

A razão reside no fato de que a programação Hook aumenta a complexidade dos contratos inteligentes, ampliando 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 nele sejam seguros. No entanto, fundamentalmente, ela adiciona 'restrições de uso de segurança' para os desenvolvedores. Em comparação, os contratos Hook exigem 'restrições de uso de segurança' ainda mais rígidas do que os contratos regulares. Portanto, para que a programação Hook seja amplamente aplicada, um framework abrangente é necessário: ele requer um ambiente de execução seguro, paradigmas de programação aplicáveis para Hooks e restrições de uso mais rígidas.

Artela Aspect: Suporte em nível de protocolo para Programação de Hook

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

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

  • Inicialização de Bloco
  • Verificação da Transação
  • Pré Executar
  • Post Execute
  • 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(endereço) retorna (bool) no contrato inteligente.

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

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

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

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

Finalmente, e mais importante, Artela Aspects é executado de forma independente em um ambiente de sandbox seguro. 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 obstinado do controle de acesso e verificação de entrada dos Hooks do Uniswap V4. Para contratos DeFi como Uniswap, você pode desfrutar de uma experiência de Hook mais rápida, mais forte e mais segura ao implantá-lo na Artela.

Resumo

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

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

Artela, como uma rede de blockchain de camada 1 de alto desempenho compatível com EVM, projetou 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 “Evolução dos Ganchos DeFi: Da Segurança do Contrato Uniswap V4 ao Protocolo Nativo Artela” é reproduzido de [ 小猪Web3]. Todos os direitos autorais pertencem ao autor original [web3 朱大胆]. Se você tiver alguma objeção à reprodução, entre em contato com o Gate Learnequipe, a equipe lidará com isso o mais rápido possível.

  2. Isenção de responsabilidade: As visões e 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. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!