Infraestrutura DAPP Omnichain em um só lugar

intermediário2/29/2024, 3:40:32 AM
Este artigo se aprofunda nos aspectos técnicos da solução omnichain da ZetaChain, explicando como ela serve como infraestrutura subjacente para a interoperabilidade omnichain dos DAPPs, permitindo a resolução e o processamento contínuos de mensagens entre cadeias.

Encaminhar o título original: Insights técnicos sobre o ZetaChain: Uma infraestrutura DAPP OmniChain de uma só vez

A ZetaChain é uma cadeia pública de POS baseada no Cosmos SDK, em que seus blocos registram mensagens e dados entre cadeias iniciados em "cadeias externas". Os usuários de cadeias externas, como o BTC, podem comunicar suas intenções à rede ZetaChain publicando mensagens em um formato específico, semelhante ao protocolo Ordinals. Os nós da ZetaChain empregam um mecanismo de consenso para determinar quais mensagens devem ser processadas e suas sequências e, por fim, utilizam o Threshold Signature Scheme (TSS) para gerar uma assinatura digital na cadeia de destino. Esse processo envolve a liberação de ativos da conta pública da cadeia, acionando as etapas de transação subsequentes.


A lista atual de nós de validação na ZetaChain inclui vários projetos e instituições, como OKX, HashKey Cloud, Dora Factory, entre outros. Devido à compatibilidade EVM inerente da ZetaChain, ela suporta a implantação da lógica de contrato. Os desenvolvedores de DApp de cadeia completa podem escrever diretamente programas de processamento de mensagens entre cadeias no ZetaChain, eliminando a necessidade de implantar contratos de ativos de ponte em várias cadeias e, assim, economizar custos de desenvolvimento. Do ponto de vista do usuário, teoricamente, a interação com os contratos da ZetaChain é suficiente, eliminando a necessidade de várias interações com contratos de ponte entre as cadeias de origem e de destino e reduzindo os custos das taxas de transação. Semelhante a alguns projetos da Intent com um efeito de "cadeia de custódia de ativos em um único local", o ZetaChain suporta a implantação de contratos de ativos ou protocolos DeFi. Os usuários podem gerar mensagens específicas no frontend de DApps em diferentes cadeias para chamar de forma assíncrona os contratos DeFi ou os estados de ativos da ZetaChain. Essa configuração também é compatível com as contas da cadeia BTC. Isso é semelhante a permitir que a ZetaChain hospede diretamente uma conta de ativos universalmente unificada em todas as cadeias. No entanto, para obter esse efeito, é necessário um front-end DApp dedicado para colaborar. Até o momento, a principal função da ZetaChain é servir como infraestrutura subjacente para a interoperabilidade da omnichain. Ele pode analisar e processar mensagens específicas entre cadeias e também atuar como plataforma de execução de lógica comercial para DApps de várias cadeias. O principal modelo de negócios gira em torno de cenários típicos de B a B a C.

Corpo: Com o desenvolvimento contínuo do setor de blockchain, nos encontramos em uma era de interconexão de várias cadeias. Nessa era, diferentes cadeias públicas com características distintas deram origem a cenários de aplicação diversificados, criando experiências variadas para os usuários. Entretanto, ao mesmo tempo, o isolamento entre as cadeias se tornou mais pronunciado. Muitas vezes, as contas em diferentes cadeias não conseguem se comunicar, e os ativos dos usuários em todas as cadeias permanecem em um estado fragmentado e não unificado. Isso aumenta o limite de uso e diminui significativamente a experiência do usuário.

Pode-se dizer que o problema da fragmentação e da incompatibilidade entre cadeias heterogêneas é um dos principais obstáculos para aumentar as taxas de conversão dos usuários. A popularidade do ecossistema BTC atualmente destaca ainda mais os problemas de interoperabilidade entre cadeias heterogêneas. Como Vitalik Buterin declarou há muitos anos, "Multichain é o futuro". Embora a coexistência de várias cadeias tenha se tornado uma tendência imparável, estabelecer pontes entre cadeias heterogêneas continua sendo uma tarefa desafiadora.

Para resolver a questão da interoperabilidade da omnichain, LayerZero, Polyhedra, Map Protocol, Bool Network e até mesmo Cosmos e Polkadot propuseram soluções diferentes para mensagens entre cadeias. A recém-lançada ZetaChain, que apresentou seu token, é um participante essencial no cenário da infraestrutura de omnichain.

A seguir, apresentaremos uma breve perspectiva técnica sobre a solução de omnichain da ZetaChain, explicando como ela serve como infraestrutura subjacente para DApps interoperáveis de omnichain, obtendo análise e processamento de mensagens entre cadeias.

Desafios das soluções existentes para toda a cadeia

Na realidade, o cenário mais simples que uma ponte entre cadeias precisa abordar é a transferência de ativos entre cadeias diferentes. Por exemplo, ao transferir ativos da ETH para a Polygon, o senhor precisa primeiro transferir ativos para um endereço de depósito designado na cadeia da ETH e, em seguida, receber uma quantia equivalente na cadeia da Polygon. O desafio surge porque os nós do Polygon não podem confirmar o que aconteceu na cadeia ETH e não sabem se o senhor realmente depositou o valor especificado. Se alguém alegar falsamente ter depositado 100 USDT no endereço ETH designado e iniciar uma reivindicação de retirada na cadeia Polygon para liberar seus 100 USDT, isso levará ao problema de "retirada do nada". A chave para uma ponte entre cadeias é resolver esse problema, confirmando que todas as reivindicações de saque correspondem às atividades reais de depósito. Essencialmente, isso envolve provar na cadeia B que houve de fato N transações relacionadas à ponte entre cadeias na cadeia A.


Atualmente, as principais pontes entre cadeias tendem a adotar um mecanismo notário, que envolve a criação de um grupo de nós notários que chegam a um "consenso" por meio de assinaturas múltiplas ou MPC. Desde que a maioria dos nós de cartório concorde que sua ação entre cadeias possa ser aprovada, seus ativos poderão ser cruzados sem problemas. Algumas pontes entre cadeias usam um hash-lock mais seguro ou implementam nós leves de outras cadeias por meio de contratos na cadeia. Essas pontes confirmam a validade das atividades entre cadeias ao receber provas de merkle ou provas de zk. No entanto, o custo dessas pontes entre cadeias é geralmente mais alto e acaba sendo transferido para as taxas de transação dos usuários. Portanto, a maioria das pontes entre cadeias ainda escolhe o modelo de nó notário fora da cadeia para o consenso de várias assinaturas. Referência: Explicando quais são as considerações importantes ao projetar pontes de correntes cruzadas? Notavelmente, as pontes entre cadeias baseadas em cartórios geralmente enfrentam riscos significativos, incluindo vulnerabilidade a hackers ou roubo de informações privilegiadas. De acordo com as estatísticas da SlowMist Hacked, houve 16 incidentes de segurança envolvendo pontes entre cadeias em 2022, resultando em uma perda total de US$ 1,21 bilhão. Isso representou 32% do total de perdas decorrentes de incidentes de ataque na cadeia naquele ano, destacando os perigos das vulnerabilidades de segurança nas pontes entre cadeias.


Além disso, muitas soluções de ponte entre cadeias existentes adotam principalmente o modelo Lock-Mint, em que os ativos são bloqueados na Cadeia A e os ativos mapeados correspondentes são emitidos na Cadeia B para realizar a transferência de ativos entre cadeias. No entanto, o fluxo de processamento de depósitos e saques em tais soluções exige várias interações com o contrato de ativos mapeado, o que leva a um atrito significativo e à possível perda de fundos. Além disso, várias soluções de ponte entre cadeias suportam apenas transferências de ativos entre cadeias compatíveis com EVM, enfrentando desafios nas interações entre cadeias heterogêneas, como Solana e Bitcoin, devido a diferenças nos padrões técnicos. Considerando as questões relacionadas à segurança e às taxas, as principais soluções de ponte entre cadeias muitas vezes têm dificuldades para alcançar os melhores resultados e não conseguem garantir a transferência de ativos "nativos entre cadeias". No atual ecossistema de Bitcoin, há um desejo crescente por uma experiência de interação perfeita e nativa entre cadeias, antecipando uma solução mais eficiente. A ZetaChain enfrenta esse desafio com sua abordagem exclusiva.

Funcionalidades da ZetaChain: A infraestrutura subjacente para DAPPs interoperáveis entre cadeias

A ZetaChain se posiciona como a infraestrutura fundamental para DApps interoperáveis omnichain, especializando-se no suporte a vários protocolos de aplicativos para interações entre cadeias - um exemplo de infraestrutura subjacente B To B To C. Ele emprega um mecanismo de admissão PoS, permitindo que os nós que apostam em ativos entrem na rede e sirvam como notários. Todos os nós de PoS, utilizando a tecnologia TSS, participam da verificação e do processamento de mensagens entre cadeias, com o objetivo de aumentar a segurança o máximo possível. Simultaneamente, a ZetaChain facilita a implantação de contratos inteligentes, incorporando a lógica comercial relacionada a trocas de ativos. Os usuários podem enviar mensagens em um formato específico em qualquer cadeia, chamando o ZetaChain ou seus contratos DeFi compatíveis em várias cadeias. Por exemplo, no BTC, os usuários podem chamar indiretamente as funcionalidades DeFi no Polygon. O resultado é a facilitação da transmissão de mensagens entre diferentes blockchains, alcançando a interoperabilidade.


Os DApps baseados no cenário de interoperabilidade omnichain podem implantar a lógica comercial de troca de ativos na ZetaChain, facilitando a conversão automática de tokens de gás em diferentes cadeias para os usuários. Por exemplo, usando o frontend de determinados DApps da omnichain, o senhor pode emitir uma mensagem de formato específico no BTC, semelhante ao protocolo Ordinals, indicando uma chamada para um contrato no Solana. Os nós da ZetaChain detectarão essa mensagem e, posteriormente, o contrato AMM na ZetaChain poderá calcular automaticamente a relação de troca entre BTC e SOL. Em seguida, ele libera uma quantidade equivalente de SOL na cadeia Solana, concluindo as etapas subsequentes, como a chamada de contratos e, finalmente, a transferência dos ativos merecidos de volta para seu endereço BTC ou Solana. Esse processo é chamado de "interoperabilidade omnichain", em que o senhor só precisa publicar uma mensagem em uma cadeia para chamar remotamente DApps em várias cadeias. Nesse contexto, a ZetaChain pode ser conceituada como uma "camada de liquidação de cadeia de cadeias". Em todos os cenários de interação com várias cadeias, como iniciar uma chamada da Cadeia A para um DApp na Cadeia B, é como se a Cadeia A se estabelecesse primeiro com a ZetaChain. Em seguida, o ZetaChain sincroniza os resultados pré-processados da liquidação com a conta correspondente na Cadeia B, concluindo as etapas subsequentes. Em todo esse processo, não há interação excessiva com contratos de ativos de mapeamento nem atrito nas taxas de transação. A circulação de ativos é facilitada pelas contas públicas da ZetaChain em diferentes cadeias, eliminando a necessidade de implantação frequente de contratos de ativos de mapeamento em várias cadeias, como visto em aplicativos tradicionais entre cadeias.

Atualmente, parece que os aplicativos omnichain baseados na ZetaChain podem poupar uma quantidade considerável de problemas, eliminando a necessidade de projetar meticulosamente contratos de ativos de mapeamento em diferentes cadeias. Todos os detalhes referentes à entrada e saída de ativos entre as cadeias de origem e destino são tratados pela ZetaChain. Em outras palavras, o senhor só precisa implantar a lógica comercial relacionada às transações entre cadeias no ZetaChain. Isso facilita que diferentes aplicativos de cadeia completa ofereçam suporte a cadeias não-EVM, como Solana, Algorand, Bitcoin e DogeCoin no frontend, sem a necessidade de implementar extensivamente contratos de aplicativos dedicados entre cadeias em diferentes cadeias. Além disso, a própria ZetaChain suporta a implantação de contratos de ativos ou contas AA (Autonomous Asset). Os usuários de diferentes cadeias podem enviar mensagens em um formato específico para chamar esses contratos, como se estivessem operando uma conta unificada em todas as cadeias. Essa abordagem de design, também refletida na Particle Chain da Particle Network, permite que os usuários centralizem os registros de dados de seus ativos na ZetaChain ou na Particle Chain. Quando necessário, os usuários podem chamar de forma assíncrona seus contratos de ativos na ZetaChain enviando mensagens de invocação por meio do frontend de DApps em "cadeias externas". Posteriormente, a ZetaChain, por meio da conta pública na cadeia externa, transfere uma determinada quantidade de ativos para o endereço especificado pelo usuário ou interage com o protocolo DeFi especificado pelo usuário.


Essa série de operações requer a implementação de DApps de front-end especializados. Em outras palavras, o ZetaChain em si só fornece serviços como a infraestrutura subjacente para o omnichain, e é preciso haver uma entrada de front-end dedicada no final do aplicativo para gerar mensagens em um formato específico.

Modelo de segurança da ZetaChain: Uma grande rede de nós de cartório baseada em staking de POS

Em última análise, a ZetaChain é essencialmente uma rede de nós validadores projetados para o processamento de mensagens entre cadeias. Criado com base no Cosmos SDK, ele é composto por vários nós de validação e utiliza o POS como mecanismo de admissão, o que garante resistência contra ataques Sybil e segurança subjacente.

Na rede ZetaChain, os nós validadores, que atuam como notários descentralizados, confirmam quais solicitações pendentes entre cadeias foram acionadas em outras cadeias. Por meio de consenso, eles registram esses comportamentos entre cadeias e prosseguem com as etapas subsequentes. Usando assinaturas de chaves distribuídas TSS, a ZetaChain pode gerar instruções de transação em outras cadeias. Pode-se dizer que o que os validadores fazem tem alguma semelhança com o modo notário das pontes entre cadeias, mas com o staking de PDV, os nós do validador são mais confiáveis, resolvendo o problema da Sybil.


(A lista atual de nós do validador do Zetachain inclui muitas partes ou instituições do projeto) O cliente do validador do Zetachian inclui dois módulos, ZetaCore e ZetaClient. O módulo ZetaCore participa da geração de blocos ZetaChain e do processo de consenso, enquanto o módulo ZetaClient observa eventos em cadeias externas e assina transações de saída. Aqui, "outbound" pode ser simplesmente entendido como a gravação do registro de transações no ZetaChain e o envio para "cadeias externas" (referindo-se a cadeias fora do ZetaChain). Isso aciona as ações correspondentes na cadeia de destino, com o conteúdo incluindo principalmente o endereço do contrato, o ID da cadeia e o conteúdo da mensagem declarado pelo usuário na mensagem, semelhante à seção Log nas transações da Ethereum.


Por outro lado, a "entrada" pode ser entendida como o registro de mensagens/transações relevantes em cadeias externas fora da ZetaChain, como solicitações entre cadeias, chamadas de contratos inteligentes no zEVM, etc., na ZetaChain. É importante observar que, ao executar nós do Validator para a ZetaChain, o código do cliente inclui três módulos: Validator, Observer e TSS Signer. Esses três módulos têm funcionalidades diferentes, mas todos pertencem ao cliente ZetaChain.

Módulos do observador e do signatário do TSS

Em primeiro lugar, todos os nós da ZetaChain têm um módulo "validador", com funcionalidades semelhantes às dos nós validadores das cadeias públicas de PoS, participando da geração de blocos e dos processos de consenso. Além disso, os nós podem votar em propostas na cadeia com base na proporção de tokens apostados (ZETA). Os blocos da ZetaChain contêm todos os registros processados entre cadeias e interações com contratos inteligentes da omnichain, atuando como um registro.

O módulo "observer" no cliente ZetaChain executa outros full nodes/light nodes da cadeia pública, monitorando formatos específicos de transações/mensagens entre cadeias. O módulo Observer opera em dois modos: ativo e passivo. Diferentes nós do ZetaChain podem optar por mudar o módulo Observer para um desses modos. O módulo Observer monitora continuamente se há mensagens/eventos relacionados à ZetaChain em outras cadeias. Em caso afirmativo, o módulo Observer do nó ZetaChain informa a situação ao módulo Validator. Essas mensagens observadas entre cadeias são então enviadas ao bloco da ZetaChain e confirmadas coletivamente por meio de consenso.

Há dois modos de observação: ativo e passivo. No modo ativo, os nós verificam continuamente as transações/eventos/estados em outras cadeias de blocos fora da ZetaChain, executando nós completos dessas cadeias. No modo passivo, os nós não sincronizam blocos completos de outras cadeias de blocos; em vez disso, eles recebem passivamente mensagens analisadas entre cadeias de outros nós da ZetaChain. No entanto, embora os nós no modo passivo não sincronizem os blocos completos da cadeia externa, eles sincronizarão os cabeçalhos dos blocos e confirmarão, por meio da prova de Merkle, que essas mensagens/ dados de transação entre cadeias realmente existem na cadeia externa.

A vantagem do modo ativo é que a maioria dos nós da ZetaChain sincroniza dados de cadeias externas, o que proporciona uma forte resistência à censura. Nesse modo, qualquer interação do usuário com a ZetaChain pode ocorrer quando um nó detecta uma solicitação iniciada em uma cadeia externa. No entanto, no modo ativo, a execução de nós tem custos mais altos. Além de executar o cliente de nó ZetaChain, os nós também precisam executar nós completos de cadeias externas, sincronizando dados e realizando varreduras continuamente. Por outro lado, o modo passivo oferece custos operacionais significativamente mais baixos para nós observadores regulares. Somente nós específicos executam o cliente de nó completo de cadeias externas, enquanto outros nós executam clientes leves sem sincronizar blocos completos de cadeias externas. Isso resulta em custos mais baixos e escalabilidade mais fácil da contagem de nós no modo passivo, facilitando a integração com várias cadeias externas. No entanto, a desvantagem do modo passivo é que a atividade de observação de dados em cadeias externas depende de poucos nós, o que leva a uma resistência mais fraca à censura. Para aliviar essa situação, a ZetaChain incentiva os nós a executar o modo ativo do módulo Observer.


(No modo ativo, os nós precisam executar o cliente de nó completo de cadeias externas. No modo passivo, apenas clientes leves de cadeias externas são executados, recebendo mensagens entre cadeias e provas de Merkle dos nós da ZetaChain no modo ativo para confirmar a validade das mensagens)

Assinatura TSS

Todas as mensagens entre cadeias observadas e verificadas pelos nós da ZetaChain acabarão por desencadear uma transação na cadeia de destino por meio do endereço da conta pública da ZetaChain, levando a operações subsequentes. Nesse processo, é necessário gerar uma assinatura digital para essa transação entre cadeias na cadeia de destino. Para garantir a segurança e a confiabilidade, a geração de assinaturas é realizada por todos os nós da ZetaChain, armazenando coletivamente fragmentos de chaves para a geração de assinaturas. Esses fragmentos de chave são distribuídos entre vários signatários e, somente quando a maioria dos signatários fornecer suas assinaturas, a assinatura digital da transação poderá ser gerada na cadeia externa. Em um determinado momento, uma única entidade ou um pequeno subconjunto de nós não pode representar a ZetaChain no acionamento de transações ou na assinatura de mensagens em cadeias externas.


No modelo de cadeia cruzada da ZetaChain, é necessário apenas ter um endereço de conta comum em cadeias diferentes, sem a necessidade de implantar contratos inteligentes complexos. O algoritmo de várias assinaturas do ZetaChain emprega o TSS, o Threshold Signature Scheme. Embora as assinaturas digitais de transações visíveis externamente correspondam a uma única chave privada, chave pública e endereço, na realidade, essa chave privada é gerada por muitos fragmentos distribuídos em todos os dispositivos de nós da ZetaChain, gerados sem o envolvimento de intermediários. Em um determinado momento, uma única entidade ou alguns validadores não podem representar toda a rede para reunir fragmentos de chaves privadas e assinar mensagens. O processo de geração e assinatura de chaves do TSS é realizado por meio da MPC (Multi-Party Computation, computação multipartidária), garantindo que nenhum segredo dos nós participantes seja vazado. Os nós da ZetaChain podem gerar assinaturas de transações em diferentes cadeias. Além de ser compatível com várias cadeias EVM, o ZetaChain adiciona o recurso de chamar remotamente contratos inteligentes para Bitcoin ou cadeias de contratos não inteligentes. A experiência do usuário é análoga à dos usuários do Bitcoin que chamam diretamente determinadas funcionalidades do DeFi.


Esse cenário é particularmente adequado para hospedar aplicativos DeFi de várias cadeias no ecossistema BTC. Como o blockchain do BTC não pode implementar uma lógica de negócios excessivamente complexa, ele depende de uma infraestrutura externa para chamar remotamente determinados contratos DeFi. Os recursos do ZetaChain são adequados para que os usuários do ecossistema BTC chamem contratos DeFi de forma assíncrona.

zEVM: Plataforma de contratos DAPP de cadeia cruzada de uma só vez

Ao contrário das soluções tradicionais entre cadeias, que exigem a implantação de contratos de ativos de mapeamento em cada cadeia, a ZetaChain alcança a funcionalidade entre cadeias implantando um contrato inteligente apenas uma vez em sua própria cadeia. No ZetaChain, há uma camada de execução compatível com EVM chamada zEVM, onde os contratos inteligentes entre cadeias podem ser implantados diretamente. O zEVM oferece suporte aos seguintes recursos: qualquer pessoa pode enviar dados de transação em um formato específico na cadeia externa e chamar um contrato no zEVM; a lógica do contrato no zEVM pode controlar os dados de transação de saída gerados na cadeia externa. Esses dois recursos adicionais permitem que o zEVM ofereça suporte à programação geral, implemente lógica comercial específica e modifique atomicamente o estado em diferentes cadeias. Se ocorrer uma operação entre cadeias e o ZetaChain detectar que as etapas subsequentes dessa operação entre cadeias não foram bem-sucedidas na cadeia de destino, os dados modificados pela transação entre cadeias no contrato do ZetaChain poderão ser revertidos, como se nada tivesse acontecido. Além disso, o DAPP do aplicativo omnichain não precisa implantar contratos de ativos de mapeamento em cadeias diferentes. Ele só precisa usar o contrato na cadeia ZetaChain para configurar centralmente a lógica de processamento de mensagens entre cadeias em uma única parada, sem a necessidade de implantar frequentemente contratos entre cadeias em uma rede com várias cadeias. Isso pode reduzir significativamente o custo de desenvolvimento do DAPP de cadeia completa. No nível do usuário, como não há necessidade de interagir frequentemente com contratos de ativos mapeados em várias cadeias, o custo é menor do que o das principais pontes entre cadeias que exigem a implantação de contratos de ativos mapeados em diferentes cadeias. Além disso, contratos DeFi especiais e ativos ZRC-20 ou mesmo NFT também podem ser implantados na ZetaChain para sincronizar dados sobre o status dos ativos ou implantar contas AA. Isso lhe confere recursos de plataforma de gerenciamento unificado de ativos (registro de status). Como não precisamos mais trabalhar duro para possuir ativos em várias cadeias, esse cenário de contas de ativos unificadas em toda a cadeia pode gerar mais potencial no futuro.

Conclusão

Com base no que discutimos neste artigo, conseguimos entender melhor a "infraestrutura de interoperabilidade omnichannel" da ZetaChain. Por meio do módulo observador no cliente validador, a ZetaChain monitora mensagens/transações específicas em cadeias externas, informa-as ao módulo validador, obtém consenso sobre as mensagens dentro da rede ZetaChain, analisa os dados contidos nas mensagens, gera assinaturas digitais usando o TSS e aciona os processos de transação subsequentes nas cadeias-alvo correspondentes, realizando assim interações entre cadeias em toda a rede. Ao mesmo tempo, os contratos inteligentes omnichain baseados no ZetaChain nos permitem interagir estreitamente com diferentes blockchains sem a necessidade de usar contratos de ativos de mapeamento em diferentes cadeias. Isso elimina a necessidade de chamar a lógica de contratos redundantes, economizando custos de transação. Além disso, como o ZetaChain é compatível com EVM, qualquer desenvolvedor de DApp ou até mesmo usuários individuais podem implementar uma lógica personalizada de processamento de mensagens entre cadeias. Em teoria, é possível implantar todo o contrato DApp de uma só vez. Os desenvolvedores de aplicativos entre cadeias não precisam implantar/atualizar com frequência a lógica do contrato de ativos de mapeamento em cadeias diferentes, eliminando o custo de desenvolvimento redundante.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de[极客 Web3], Todos os direitos autorais pertencem ao autor original[Howe & Faust, 极客web3]. Se houver alguma objeção a essa reimpressão, entre em contato com a equipe do Gate Learn, que tratará do assunto imediatamente.
  2. Isenção de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são de responsabilidade exclusiva do autor e não constituem consultoria de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Infraestrutura DAPP Omnichain em um só lugar

intermediário2/29/2024, 3:40:32 AM
Este artigo se aprofunda nos aspectos técnicos da solução omnichain da ZetaChain, explicando como ela serve como infraestrutura subjacente para a interoperabilidade omnichain dos DAPPs, permitindo a resolução e o processamento contínuos de mensagens entre cadeias.

Encaminhar o título original: Insights técnicos sobre o ZetaChain: Uma infraestrutura DAPP OmniChain de uma só vez

A ZetaChain é uma cadeia pública de POS baseada no Cosmos SDK, em que seus blocos registram mensagens e dados entre cadeias iniciados em "cadeias externas". Os usuários de cadeias externas, como o BTC, podem comunicar suas intenções à rede ZetaChain publicando mensagens em um formato específico, semelhante ao protocolo Ordinals. Os nós da ZetaChain empregam um mecanismo de consenso para determinar quais mensagens devem ser processadas e suas sequências e, por fim, utilizam o Threshold Signature Scheme (TSS) para gerar uma assinatura digital na cadeia de destino. Esse processo envolve a liberação de ativos da conta pública da cadeia, acionando as etapas de transação subsequentes.


A lista atual de nós de validação na ZetaChain inclui vários projetos e instituições, como OKX, HashKey Cloud, Dora Factory, entre outros. Devido à compatibilidade EVM inerente da ZetaChain, ela suporta a implantação da lógica de contrato. Os desenvolvedores de DApp de cadeia completa podem escrever diretamente programas de processamento de mensagens entre cadeias no ZetaChain, eliminando a necessidade de implantar contratos de ativos de ponte em várias cadeias e, assim, economizar custos de desenvolvimento. Do ponto de vista do usuário, teoricamente, a interação com os contratos da ZetaChain é suficiente, eliminando a necessidade de várias interações com contratos de ponte entre as cadeias de origem e de destino e reduzindo os custos das taxas de transação. Semelhante a alguns projetos da Intent com um efeito de "cadeia de custódia de ativos em um único local", o ZetaChain suporta a implantação de contratos de ativos ou protocolos DeFi. Os usuários podem gerar mensagens específicas no frontend de DApps em diferentes cadeias para chamar de forma assíncrona os contratos DeFi ou os estados de ativos da ZetaChain. Essa configuração também é compatível com as contas da cadeia BTC. Isso é semelhante a permitir que a ZetaChain hospede diretamente uma conta de ativos universalmente unificada em todas as cadeias. No entanto, para obter esse efeito, é necessário um front-end DApp dedicado para colaborar. Até o momento, a principal função da ZetaChain é servir como infraestrutura subjacente para a interoperabilidade da omnichain. Ele pode analisar e processar mensagens específicas entre cadeias e também atuar como plataforma de execução de lógica comercial para DApps de várias cadeias. O principal modelo de negócios gira em torno de cenários típicos de B a B a C.

Corpo: Com o desenvolvimento contínuo do setor de blockchain, nos encontramos em uma era de interconexão de várias cadeias. Nessa era, diferentes cadeias públicas com características distintas deram origem a cenários de aplicação diversificados, criando experiências variadas para os usuários. Entretanto, ao mesmo tempo, o isolamento entre as cadeias se tornou mais pronunciado. Muitas vezes, as contas em diferentes cadeias não conseguem se comunicar, e os ativos dos usuários em todas as cadeias permanecem em um estado fragmentado e não unificado. Isso aumenta o limite de uso e diminui significativamente a experiência do usuário.

Pode-se dizer que o problema da fragmentação e da incompatibilidade entre cadeias heterogêneas é um dos principais obstáculos para aumentar as taxas de conversão dos usuários. A popularidade do ecossistema BTC atualmente destaca ainda mais os problemas de interoperabilidade entre cadeias heterogêneas. Como Vitalik Buterin declarou há muitos anos, "Multichain é o futuro". Embora a coexistência de várias cadeias tenha se tornado uma tendência imparável, estabelecer pontes entre cadeias heterogêneas continua sendo uma tarefa desafiadora.

Para resolver a questão da interoperabilidade da omnichain, LayerZero, Polyhedra, Map Protocol, Bool Network e até mesmo Cosmos e Polkadot propuseram soluções diferentes para mensagens entre cadeias. A recém-lançada ZetaChain, que apresentou seu token, é um participante essencial no cenário da infraestrutura de omnichain.

A seguir, apresentaremos uma breve perspectiva técnica sobre a solução de omnichain da ZetaChain, explicando como ela serve como infraestrutura subjacente para DApps interoperáveis de omnichain, obtendo análise e processamento de mensagens entre cadeias.

Desafios das soluções existentes para toda a cadeia

Na realidade, o cenário mais simples que uma ponte entre cadeias precisa abordar é a transferência de ativos entre cadeias diferentes. Por exemplo, ao transferir ativos da ETH para a Polygon, o senhor precisa primeiro transferir ativos para um endereço de depósito designado na cadeia da ETH e, em seguida, receber uma quantia equivalente na cadeia da Polygon. O desafio surge porque os nós do Polygon não podem confirmar o que aconteceu na cadeia ETH e não sabem se o senhor realmente depositou o valor especificado. Se alguém alegar falsamente ter depositado 100 USDT no endereço ETH designado e iniciar uma reivindicação de retirada na cadeia Polygon para liberar seus 100 USDT, isso levará ao problema de "retirada do nada". A chave para uma ponte entre cadeias é resolver esse problema, confirmando que todas as reivindicações de saque correspondem às atividades reais de depósito. Essencialmente, isso envolve provar na cadeia B que houve de fato N transações relacionadas à ponte entre cadeias na cadeia A.


Atualmente, as principais pontes entre cadeias tendem a adotar um mecanismo notário, que envolve a criação de um grupo de nós notários que chegam a um "consenso" por meio de assinaturas múltiplas ou MPC. Desde que a maioria dos nós de cartório concorde que sua ação entre cadeias possa ser aprovada, seus ativos poderão ser cruzados sem problemas. Algumas pontes entre cadeias usam um hash-lock mais seguro ou implementam nós leves de outras cadeias por meio de contratos na cadeia. Essas pontes confirmam a validade das atividades entre cadeias ao receber provas de merkle ou provas de zk. No entanto, o custo dessas pontes entre cadeias é geralmente mais alto e acaba sendo transferido para as taxas de transação dos usuários. Portanto, a maioria das pontes entre cadeias ainda escolhe o modelo de nó notário fora da cadeia para o consenso de várias assinaturas. Referência: Explicando quais são as considerações importantes ao projetar pontes de correntes cruzadas? Notavelmente, as pontes entre cadeias baseadas em cartórios geralmente enfrentam riscos significativos, incluindo vulnerabilidade a hackers ou roubo de informações privilegiadas. De acordo com as estatísticas da SlowMist Hacked, houve 16 incidentes de segurança envolvendo pontes entre cadeias em 2022, resultando em uma perda total de US$ 1,21 bilhão. Isso representou 32% do total de perdas decorrentes de incidentes de ataque na cadeia naquele ano, destacando os perigos das vulnerabilidades de segurança nas pontes entre cadeias.


Além disso, muitas soluções de ponte entre cadeias existentes adotam principalmente o modelo Lock-Mint, em que os ativos são bloqueados na Cadeia A e os ativos mapeados correspondentes são emitidos na Cadeia B para realizar a transferência de ativos entre cadeias. No entanto, o fluxo de processamento de depósitos e saques em tais soluções exige várias interações com o contrato de ativos mapeado, o que leva a um atrito significativo e à possível perda de fundos. Além disso, várias soluções de ponte entre cadeias suportam apenas transferências de ativos entre cadeias compatíveis com EVM, enfrentando desafios nas interações entre cadeias heterogêneas, como Solana e Bitcoin, devido a diferenças nos padrões técnicos. Considerando as questões relacionadas à segurança e às taxas, as principais soluções de ponte entre cadeias muitas vezes têm dificuldades para alcançar os melhores resultados e não conseguem garantir a transferência de ativos "nativos entre cadeias". No atual ecossistema de Bitcoin, há um desejo crescente por uma experiência de interação perfeita e nativa entre cadeias, antecipando uma solução mais eficiente. A ZetaChain enfrenta esse desafio com sua abordagem exclusiva.

Funcionalidades da ZetaChain: A infraestrutura subjacente para DAPPs interoperáveis entre cadeias

A ZetaChain se posiciona como a infraestrutura fundamental para DApps interoperáveis omnichain, especializando-se no suporte a vários protocolos de aplicativos para interações entre cadeias - um exemplo de infraestrutura subjacente B To B To C. Ele emprega um mecanismo de admissão PoS, permitindo que os nós que apostam em ativos entrem na rede e sirvam como notários. Todos os nós de PoS, utilizando a tecnologia TSS, participam da verificação e do processamento de mensagens entre cadeias, com o objetivo de aumentar a segurança o máximo possível. Simultaneamente, a ZetaChain facilita a implantação de contratos inteligentes, incorporando a lógica comercial relacionada a trocas de ativos. Os usuários podem enviar mensagens em um formato específico em qualquer cadeia, chamando o ZetaChain ou seus contratos DeFi compatíveis em várias cadeias. Por exemplo, no BTC, os usuários podem chamar indiretamente as funcionalidades DeFi no Polygon. O resultado é a facilitação da transmissão de mensagens entre diferentes blockchains, alcançando a interoperabilidade.


Os DApps baseados no cenário de interoperabilidade omnichain podem implantar a lógica comercial de troca de ativos na ZetaChain, facilitando a conversão automática de tokens de gás em diferentes cadeias para os usuários. Por exemplo, usando o frontend de determinados DApps da omnichain, o senhor pode emitir uma mensagem de formato específico no BTC, semelhante ao protocolo Ordinals, indicando uma chamada para um contrato no Solana. Os nós da ZetaChain detectarão essa mensagem e, posteriormente, o contrato AMM na ZetaChain poderá calcular automaticamente a relação de troca entre BTC e SOL. Em seguida, ele libera uma quantidade equivalente de SOL na cadeia Solana, concluindo as etapas subsequentes, como a chamada de contratos e, finalmente, a transferência dos ativos merecidos de volta para seu endereço BTC ou Solana. Esse processo é chamado de "interoperabilidade omnichain", em que o senhor só precisa publicar uma mensagem em uma cadeia para chamar remotamente DApps em várias cadeias. Nesse contexto, a ZetaChain pode ser conceituada como uma "camada de liquidação de cadeia de cadeias". Em todos os cenários de interação com várias cadeias, como iniciar uma chamada da Cadeia A para um DApp na Cadeia B, é como se a Cadeia A se estabelecesse primeiro com a ZetaChain. Em seguida, o ZetaChain sincroniza os resultados pré-processados da liquidação com a conta correspondente na Cadeia B, concluindo as etapas subsequentes. Em todo esse processo, não há interação excessiva com contratos de ativos de mapeamento nem atrito nas taxas de transação. A circulação de ativos é facilitada pelas contas públicas da ZetaChain em diferentes cadeias, eliminando a necessidade de implantação frequente de contratos de ativos de mapeamento em várias cadeias, como visto em aplicativos tradicionais entre cadeias.

Atualmente, parece que os aplicativos omnichain baseados na ZetaChain podem poupar uma quantidade considerável de problemas, eliminando a necessidade de projetar meticulosamente contratos de ativos de mapeamento em diferentes cadeias. Todos os detalhes referentes à entrada e saída de ativos entre as cadeias de origem e destino são tratados pela ZetaChain. Em outras palavras, o senhor só precisa implantar a lógica comercial relacionada às transações entre cadeias no ZetaChain. Isso facilita que diferentes aplicativos de cadeia completa ofereçam suporte a cadeias não-EVM, como Solana, Algorand, Bitcoin e DogeCoin no frontend, sem a necessidade de implementar extensivamente contratos de aplicativos dedicados entre cadeias em diferentes cadeias. Além disso, a própria ZetaChain suporta a implantação de contratos de ativos ou contas AA (Autonomous Asset). Os usuários de diferentes cadeias podem enviar mensagens em um formato específico para chamar esses contratos, como se estivessem operando uma conta unificada em todas as cadeias. Essa abordagem de design, também refletida na Particle Chain da Particle Network, permite que os usuários centralizem os registros de dados de seus ativos na ZetaChain ou na Particle Chain. Quando necessário, os usuários podem chamar de forma assíncrona seus contratos de ativos na ZetaChain enviando mensagens de invocação por meio do frontend de DApps em "cadeias externas". Posteriormente, a ZetaChain, por meio da conta pública na cadeia externa, transfere uma determinada quantidade de ativos para o endereço especificado pelo usuário ou interage com o protocolo DeFi especificado pelo usuário.


Essa série de operações requer a implementação de DApps de front-end especializados. Em outras palavras, o ZetaChain em si só fornece serviços como a infraestrutura subjacente para o omnichain, e é preciso haver uma entrada de front-end dedicada no final do aplicativo para gerar mensagens em um formato específico.

Modelo de segurança da ZetaChain: Uma grande rede de nós de cartório baseada em staking de POS

Em última análise, a ZetaChain é essencialmente uma rede de nós validadores projetados para o processamento de mensagens entre cadeias. Criado com base no Cosmos SDK, ele é composto por vários nós de validação e utiliza o POS como mecanismo de admissão, o que garante resistência contra ataques Sybil e segurança subjacente.

Na rede ZetaChain, os nós validadores, que atuam como notários descentralizados, confirmam quais solicitações pendentes entre cadeias foram acionadas em outras cadeias. Por meio de consenso, eles registram esses comportamentos entre cadeias e prosseguem com as etapas subsequentes. Usando assinaturas de chaves distribuídas TSS, a ZetaChain pode gerar instruções de transação em outras cadeias. Pode-se dizer que o que os validadores fazem tem alguma semelhança com o modo notário das pontes entre cadeias, mas com o staking de PDV, os nós do validador são mais confiáveis, resolvendo o problema da Sybil.


(A lista atual de nós do validador do Zetachain inclui muitas partes ou instituições do projeto) O cliente do validador do Zetachian inclui dois módulos, ZetaCore e ZetaClient. O módulo ZetaCore participa da geração de blocos ZetaChain e do processo de consenso, enquanto o módulo ZetaClient observa eventos em cadeias externas e assina transações de saída. Aqui, "outbound" pode ser simplesmente entendido como a gravação do registro de transações no ZetaChain e o envio para "cadeias externas" (referindo-se a cadeias fora do ZetaChain). Isso aciona as ações correspondentes na cadeia de destino, com o conteúdo incluindo principalmente o endereço do contrato, o ID da cadeia e o conteúdo da mensagem declarado pelo usuário na mensagem, semelhante à seção Log nas transações da Ethereum.


Por outro lado, a "entrada" pode ser entendida como o registro de mensagens/transações relevantes em cadeias externas fora da ZetaChain, como solicitações entre cadeias, chamadas de contratos inteligentes no zEVM, etc., na ZetaChain. É importante observar que, ao executar nós do Validator para a ZetaChain, o código do cliente inclui três módulos: Validator, Observer e TSS Signer. Esses três módulos têm funcionalidades diferentes, mas todos pertencem ao cliente ZetaChain.

Módulos do observador e do signatário do TSS

Em primeiro lugar, todos os nós da ZetaChain têm um módulo "validador", com funcionalidades semelhantes às dos nós validadores das cadeias públicas de PoS, participando da geração de blocos e dos processos de consenso. Além disso, os nós podem votar em propostas na cadeia com base na proporção de tokens apostados (ZETA). Os blocos da ZetaChain contêm todos os registros processados entre cadeias e interações com contratos inteligentes da omnichain, atuando como um registro.

O módulo "observer" no cliente ZetaChain executa outros full nodes/light nodes da cadeia pública, monitorando formatos específicos de transações/mensagens entre cadeias. O módulo Observer opera em dois modos: ativo e passivo. Diferentes nós do ZetaChain podem optar por mudar o módulo Observer para um desses modos. O módulo Observer monitora continuamente se há mensagens/eventos relacionados à ZetaChain em outras cadeias. Em caso afirmativo, o módulo Observer do nó ZetaChain informa a situação ao módulo Validator. Essas mensagens observadas entre cadeias são então enviadas ao bloco da ZetaChain e confirmadas coletivamente por meio de consenso.

Há dois modos de observação: ativo e passivo. No modo ativo, os nós verificam continuamente as transações/eventos/estados em outras cadeias de blocos fora da ZetaChain, executando nós completos dessas cadeias. No modo passivo, os nós não sincronizam blocos completos de outras cadeias de blocos; em vez disso, eles recebem passivamente mensagens analisadas entre cadeias de outros nós da ZetaChain. No entanto, embora os nós no modo passivo não sincronizem os blocos completos da cadeia externa, eles sincronizarão os cabeçalhos dos blocos e confirmarão, por meio da prova de Merkle, que essas mensagens/ dados de transação entre cadeias realmente existem na cadeia externa.

A vantagem do modo ativo é que a maioria dos nós da ZetaChain sincroniza dados de cadeias externas, o que proporciona uma forte resistência à censura. Nesse modo, qualquer interação do usuário com a ZetaChain pode ocorrer quando um nó detecta uma solicitação iniciada em uma cadeia externa. No entanto, no modo ativo, a execução de nós tem custos mais altos. Além de executar o cliente de nó ZetaChain, os nós também precisam executar nós completos de cadeias externas, sincronizando dados e realizando varreduras continuamente. Por outro lado, o modo passivo oferece custos operacionais significativamente mais baixos para nós observadores regulares. Somente nós específicos executam o cliente de nó completo de cadeias externas, enquanto outros nós executam clientes leves sem sincronizar blocos completos de cadeias externas. Isso resulta em custos mais baixos e escalabilidade mais fácil da contagem de nós no modo passivo, facilitando a integração com várias cadeias externas. No entanto, a desvantagem do modo passivo é que a atividade de observação de dados em cadeias externas depende de poucos nós, o que leva a uma resistência mais fraca à censura. Para aliviar essa situação, a ZetaChain incentiva os nós a executar o modo ativo do módulo Observer.


(No modo ativo, os nós precisam executar o cliente de nó completo de cadeias externas. No modo passivo, apenas clientes leves de cadeias externas são executados, recebendo mensagens entre cadeias e provas de Merkle dos nós da ZetaChain no modo ativo para confirmar a validade das mensagens)

Assinatura TSS

Todas as mensagens entre cadeias observadas e verificadas pelos nós da ZetaChain acabarão por desencadear uma transação na cadeia de destino por meio do endereço da conta pública da ZetaChain, levando a operações subsequentes. Nesse processo, é necessário gerar uma assinatura digital para essa transação entre cadeias na cadeia de destino. Para garantir a segurança e a confiabilidade, a geração de assinaturas é realizada por todos os nós da ZetaChain, armazenando coletivamente fragmentos de chaves para a geração de assinaturas. Esses fragmentos de chave são distribuídos entre vários signatários e, somente quando a maioria dos signatários fornecer suas assinaturas, a assinatura digital da transação poderá ser gerada na cadeia externa. Em um determinado momento, uma única entidade ou um pequeno subconjunto de nós não pode representar a ZetaChain no acionamento de transações ou na assinatura de mensagens em cadeias externas.


No modelo de cadeia cruzada da ZetaChain, é necessário apenas ter um endereço de conta comum em cadeias diferentes, sem a necessidade de implantar contratos inteligentes complexos. O algoritmo de várias assinaturas do ZetaChain emprega o TSS, o Threshold Signature Scheme. Embora as assinaturas digitais de transações visíveis externamente correspondam a uma única chave privada, chave pública e endereço, na realidade, essa chave privada é gerada por muitos fragmentos distribuídos em todos os dispositivos de nós da ZetaChain, gerados sem o envolvimento de intermediários. Em um determinado momento, uma única entidade ou alguns validadores não podem representar toda a rede para reunir fragmentos de chaves privadas e assinar mensagens. O processo de geração e assinatura de chaves do TSS é realizado por meio da MPC (Multi-Party Computation, computação multipartidária), garantindo que nenhum segredo dos nós participantes seja vazado. Os nós da ZetaChain podem gerar assinaturas de transações em diferentes cadeias. Além de ser compatível com várias cadeias EVM, o ZetaChain adiciona o recurso de chamar remotamente contratos inteligentes para Bitcoin ou cadeias de contratos não inteligentes. A experiência do usuário é análoga à dos usuários do Bitcoin que chamam diretamente determinadas funcionalidades do DeFi.


Esse cenário é particularmente adequado para hospedar aplicativos DeFi de várias cadeias no ecossistema BTC. Como o blockchain do BTC não pode implementar uma lógica de negócios excessivamente complexa, ele depende de uma infraestrutura externa para chamar remotamente determinados contratos DeFi. Os recursos do ZetaChain são adequados para que os usuários do ecossistema BTC chamem contratos DeFi de forma assíncrona.

zEVM: Plataforma de contratos DAPP de cadeia cruzada de uma só vez

Ao contrário das soluções tradicionais entre cadeias, que exigem a implantação de contratos de ativos de mapeamento em cada cadeia, a ZetaChain alcança a funcionalidade entre cadeias implantando um contrato inteligente apenas uma vez em sua própria cadeia. No ZetaChain, há uma camada de execução compatível com EVM chamada zEVM, onde os contratos inteligentes entre cadeias podem ser implantados diretamente. O zEVM oferece suporte aos seguintes recursos: qualquer pessoa pode enviar dados de transação em um formato específico na cadeia externa e chamar um contrato no zEVM; a lógica do contrato no zEVM pode controlar os dados de transação de saída gerados na cadeia externa. Esses dois recursos adicionais permitem que o zEVM ofereça suporte à programação geral, implemente lógica comercial específica e modifique atomicamente o estado em diferentes cadeias. Se ocorrer uma operação entre cadeias e o ZetaChain detectar que as etapas subsequentes dessa operação entre cadeias não foram bem-sucedidas na cadeia de destino, os dados modificados pela transação entre cadeias no contrato do ZetaChain poderão ser revertidos, como se nada tivesse acontecido. Além disso, o DAPP do aplicativo omnichain não precisa implantar contratos de ativos de mapeamento em cadeias diferentes. Ele só precisa usar o contrato na cadeia ZetaChain para configurar centralmente a lógica de processamento de mensagens entre cadeias em uma única parada, sem a necessidade de implantar frequentemente contratos entre cadeias em uma rede com várias cadeias. Isso pode reduzir significativamente o custo de desenvolvimento do DAPP de cadeia completa. No nível do usuário, como não há necessidade de interagir frequentemente com contratos de ativos mapeados em várias cadeias, o custo é menor do que o das principais pontes entre cadeias que exigem a implantação de contratos de ativos mapeados em diferentes cadeias. Além disso, contratos DeFi especiais e ativos ZRC-20 ou mesmo NFT também podem ser implantados na ZetaChain para sincronizar dados sobre o status dos ativos ou implantar contas AA. Isso lhe confere recursos de plataforma de gerenciamento unificado de ativos (registro de status). Como não precisamos mais trabalhar duro para possuir ativos em várias cadeias, esse cenário de contas de ativos unificadas em toda a cadeia pode gerar mais potencial no futuro.

Conclusão

Com base no que discutimos neste artigo, conseguimos entender melhor a "infraestrutura de interoperabilidade omnichannel" da ZetaChain. Por meio do módulo observador no cliente validador, a ZetaChain monitora mensagens/transações específicas em cadeias externas, informa-as ao módulo validador, obtém consenso sobre as mensagens dentro da rede ZetaChain, analisa os dados contidos nas mensagens, gera assinaturas digitais usando o TSS e aciona os processos de transação subsequentes nas cadeias-alvo correspondentes, realizando assim interações entre cadeias em toda a rede. Ao mesmo tempo, os contratos inteligentes omnichain baseados no ZetaChain nos permitem interagir estreitamente com diferentes blockchains sem a necessidade de usar contratos de ativos de mapeamento em diferentes cadeias. Isso elimina a necessidade de chamar a lógica de contratos redundantes, economizando custos de transação. Além disso, como o ZetaChain é compatível com EVM, qualquer desenvolvedor de DApp ou até mesmo usuários individuais podem implementar uma lógica personalizada de processamento de mensagens entre cadeias. Em teoria, é possível implantar todo o contrato DApp de uma só vez. Os desenvolvedores de aplicativos entre cadeias não precisam implantar/atualizar com frequência a lógica do contrato de ativos de mapeamento em cadeias diferentes, eliminando o custo de desenvolvimento redundante.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de[极客 Web3], Todos os direitos autorais pertencem ao autor original[Howe & Faust, 极客web3]. Se houver alguma objeção a essa reimpressão, entre em contato com a equipe do Gate Learn, que tratará do assunto imediatamente.
  2. Isenção de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são de responsabilidade exclusiva do autor e não constituem consultoria de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!