Autor: 0xKooKoo, Consultor Técnico para Geek Web3 & Moledao, ex-Líder Técnico na Bybit
**Obrigado a 0xmiddle por sua ajuda na escrita deste artigo. **
Introdução****
Desde o estabelecimento da indústria de blockchain, inúmeros L1/L2 surgiram, e quase todas as cadeias públicas desenvolveram seu próprio ecossistema DeFi. Algumas pessoas só interagem em cadeias públicas específicas, enquanto mais pessoas querem encontrar oportunidades de receita, como negociação e mineração em diferentes cadeias. Entre elas, a transferência de fundos entre cadeias tornou-se uma necessidade rígida indispensável.
Além dos utilizadores comuns, muitas partes do projeto também têm a necessidade de transferir fundos entre diferentes cadeias, orientar a liquidez em diferentes cadeias e conseguir “um dinheiro para múltiplos fins”.
Mas diferentes blockchains são sistemas de consenso isolados, e não há como os fundos cruzarem diretamente de uma cadeia para outra. A essência dos fundos de cadeia cruzada é que a ponte de cadeia cruzada atua como uma contraparte pública para receber fundos de usuários na cadeia de origem e enviar dinheiro para usuários na cadeia de destino (emitindo ativos mapeados ou liberando fundos para usuários do pool de liquidez da cadeia de destino).
No início, as pessoas ainda confiavam nas exchanges centralizadas, e havia um ditado que dizia que “as exchanges centralizadas são as melhores pontes entre cadeias”. No entanto, a operação de “imputação-permuta-levantamento” é muito pesada, e as pessoas esperam que exista um método puramente on-chain para completar a cadeia cruzada de fundos mais diretamente.
Além disso, em comparação com as bolsas centralizadas, as pontes de cadeia cruzada podem completar mensagens de cadeia cruzada mais gerais, não apenas limitadas à transferência de fundos. Por exemplo, se você usar um dApp de empréstimo entre cadeias que fornece garantias da Cadeia A e empresta ativos na Cadeia B, precisará usar mensagens entre cadeias.
Se olharmos para as origens históricas da cadeia cruzada, podemos rastreá-la até os estágios iniciais do desenvolvimento da tecnologia blockchain. Naquela época, o surgimento de diferentes cadeias públicas fez com que as pessoas percebessem que o problema da interoperabilidade entre cadeias tinha que ser resolvido, caso contrário haveria muitos silos de informação/capital. Ao longo do tempo, diferentes tipos de abordagens de cadeia cruzada foram propostos, formando gradualmente o padrão universal de cadeia cruzada de hoje.
Vamos dar uma olhada em alguns dos desenvolvimentos na tecnologia de cadeia cruzada.
Metodologia****
1. Encontre a sua própria contraparte
Vamos pensar sobre isso, qual é a maneira mais intuitiva de cross-chain? Digamos que você tenha 100 USDT na cadeia A e queira transferi-los para a cadeia B. Acontece que há uma pessoa que tem 100 USDT na Cadeia B e quer transferir USDT para a Cadeia A. Os dois viram que isso não estava certo, então eles acertaram.
Mas quando você transfere USDT para o endereço da outra parte na Cadeia A, ele se arrepende e não transfere seu USDT para o seu endereço na Cadeia B.
Portanto, este modelo de transação P2P não é muito confiável, em primeiro lugar, a outra parte pode quebrar o contrato, de modo que você sofra perdas, sem qualquer proteção, e em segundo lugar, essa contraparte não é fácil de encontrar, você pode ter que esperar por um longo tempo para conhecer um usuário que apenas corresponde ao valor que você deseja sair, mas a direção de cadeia cruzada é oposta, e pode nem esperar por muito tempo para esperar por tal contraparte.
2. Regimes Notariais
2.1 Testemunha notária única
Então pensamos, uma vez que a outra parte pode entrar em incumprimento, posso encontrar um terceiro de confiança para negociar?**Eu dou-lhe o dinheiro na cadeia de origem primeiro, e depois ele promete transferir o dinheiro para mim na cadeia alvo. Por exemplo, essa pessoa tem ativos tanto na Cadeia A quanto na Cadeia B, e então ela garante que, enquanto receber meus 100 USDT na Cadeia A, ela definitivamente transferirá 100 USDT da Cadeia B.
Isso é muito melhor do que o primeiro tipo de troca de ativos entre cadeias P2P, porque há uma contraparte pública confiável que tem uma coisa mágica em suas mãos chamada “liquidez” com a qual você pode negociar a qualquer momento.
Em outras palavras, sua transação com ele se torna uma transação “peer-to-pool”, em vez de uma transação “peer-to-peer”. Mas você ainda não se sente seguro, se você negociar 100 USDT com ele, tudo bem, e se você quiser negociar 1 milhão de USDT com ele?
Em última análise, este notário introduziu efetivamente uma espécie de centralização, que ainda não é o método de cadeia cruzada sem confiança que queremos.
2.2 Múltiplos Notários (MultiSig)
E se o notário não for uma única pessoa, mas um grupo de pessoas? Podemos criar uma conta de condomínio, onde vários signatários gerem conjuntamente a conta, e têm de assinar uma mensagem, e o número de assinaturas atinge um limite (normalmente 2/3) antes de os fundos serem transferidos.
Neste caso, se alguns deles (não mais do que 1/3) têm uma mente torta e querem recolher o meu dinheiro na cadeia de origem, mas eles não querem me enviar dinheiro na cadeia de destino, ou se eles ficarem offline, não importa, outros notários honestos ainda assinarão e transferirão o dinheiro que deve ser dado a mim.
**Este esquema é mais confiável, enfraquece o risco de centralização e é mais seguro. Por exemplo, há um total de 20 notários respeitáveis, e a probabilidade de eles terem mentes tortas ao mesmo tempo ainda é muito baixa. (Isso não inclui os 20 nós do Multichain realmente gerenciados por uma pessoa, ou hackers roubando 2/3 das chaves de assinatura do notário, como a ponte Axie.) )
2.3 Múltiplos Cartórios Notariais (MPC)
No entanto, também há muitos inconvenientes no método de gerenciamento de conta de multiassinatura.
O Multisig torna as regras de assinatura mais fáceis de expor. **Se for um esquema de assinatura 5/7, o código de contrato inteligente da carteira multisig irá expor quantos signatários existem, e os hackers podem encontrar esses signatários de forma direcionada e esperar pela oportunidade de roubar a chave privada.
**O Multisig precisa ser adaptado a diferentes cadeias públicas. Por exemplo, algumas cadeias públicas não suportam contratos inteligentes, você tem que usar primitivos criptográficos especiais da cadeia para implementar contas multisig, se isso não for suportado, sua carteira multisig não será capaz de fazê-lo.
A assinatura múltipla não pode ser alterada se o signatário estiver definido. Por exemplo, se você quiser mudar para um esquema de assinatura 6/8, ou se quiser alterar o signatário, você tem que reimplantar o contrato de várias assinaturas, e você também tem que transferir os fundos para o novo contrato de várias assinaturas.
O esquema de cadeia cruzada do primeiro derivado BTC tBTC usa um método de multiassinatura, que foi eliminado porque é muito manco e difícil de usar. **A maioria das atuais pontes de cadeia cruzada adota uma abordagem MPC mais avançada. **
MPC significa Multi-Party-Computation, que é uma tecnologia de fragmentação de chave privada. A conta de várias assinaturas é uma conta gerenciada por várias chaves privadas, enquanto a conta MPC é gerenciada por uma chave privada para gerenciar uma conta, a chave privada é dividida em vários fragmentos e vários signatários possuem um fragmento de chave privada, e uma assinatura completa pode ser sintetizada quando o número de signatários atinge o limite, e a chave privada completa não será exposta durante o processo de assinatura.
A conta MPC tem as seguintes vantagens:**
**Mais confidencialidade do que as carteiras multisig normais. **Quando uma assinatura é necessária, por exemplo, 5/7 fragmentos de chave privada são usados para assinar uns aos outros, e várias subassinaturas são fundidas em uma única peça para formar uma assinatura legal final. Dessa forma, o que você vê na cadeia é uma assinatura única e comum, e você não pode dizer se é de uma conta MPC, muito menos quem é o signatário por trás dela, e você não pode saber o número de fragmentos de chave privada e regras de assinatura específicas.
**Pode ser mais bem adaptado à maioria das cadeias públicas do que as carteiras multisig. MPC é uma tecnologia de assinatura e é agnóstica em cadeia. Uma conta MPC é, na verdade, uma conta comum, independentemente de uma cadeia pública suportar contratos inteligentes ou não, você pode construir uma conta de condomínio através da tecnologia MPC.
**O MPC é mais flexível na alteração de assinaturas. **Ele pode suportar um ajuste mais flexível das regras de assinatura, como alterar o número de fragmentos de chave privada e o limite de assinatura a qualquer momento, e alterar o signatário a qualquer momento, só precisa compartilhar novamente a chave privada.
3. Outras medidas de segurança
3.1 Separação quente e fria
**Depois que a conta de garantia do notário recebeu meus 100 USDT na Cadeia A, ele transferiu 100 USDT para o meu endereço na Cadeia B, como desencadear esse comportamento?
Digamos que cada membro do notário tenha uma máquina ouvindo as transações na cadeia A, e quando eles descobrem que eu transferi 100 USDT para uma conta de depósito de ponte entre cadeias, e a transação afirma que eu quero receber esses USDT em um endereço chamado user2 na cadeia B.
Neste momento, os notários coassinaram e transferiram coletivamente 100 USDT da conta ponte entre cadeias na cadeia B para o utilizador2. Este processo deve ser escrito em código e automatizado, caso contrário o notário terá de estar online em tempo real, e o pedido terá de ser operado imediatamente, o que é demasiado irrealista.
Haverá várias partes neste programa automatizado
Ouvinte: Responsável por monitorar as transações na cadeia de origem, a fim de filtrar transações irrelevantes ou inválidas, esta etapa pode fazer alguma verificação de formato básico;
Procedimento de verificação: Isso incluirá o cliente de nó leve (ou nó completo) do blockchain suportado, que é responsável por verificar se uma transação na cadeia de origem que tem uma relação interativa com o contrato de ponte entre cadeias foi realmente empacotada em um bloco e colocada na cadeia;
Programa de assinatura: Responsável por assinar e iniciar a transação de transferência para o usuário na cadeia de destino.
Mas a automação também traz consigo o problema de que este programa automatizado pode ser hackeado e manipulado. Portanto, a fim de controlar o risco, a ponte de cadeia cruzada tomará medidas para separar quente e frio. **O programa automatizado controla a tecla de atalho, o valor da transferência é limitado e, no caso de uma transferência grande, o notário deve assinar manualmente com a tecla fria. As regras para separação quente e frio podem ser implementadas na conta MPC.
3.2 Isolamento do risco
Portanto, é necessário fazer um bom trabalho de isolar o pool de capital e usar várias contas de custódia para gerenciar fundos de liquidez, como isolar de acordo com diferentes cadeias públicas, como A e B, B e C, C e D são todos pools de capital independentes.
3.3 ETE
**Os procedimentos automatizados de escuta e assinatura executados pelo notário podem ser executados no dispositivo TEE, o que pode aumentar muito a dificuldade de ataques de hackers. **TEE significa Trusted Execution Environment, que é um ambiente de computação executado em um determinado dispositivo que é isolado do sistema operacional principal, como um enclave.
Esse isolamento é imposto por hardware com segurança extremamente alta, para que os TEEs possam executar aplicativos com altos requisitos de segurança, como gerenciamento de chaves criptográficas, autenticação biométrica, processamento seguro de pagamentos e muito mais.
3.4 PoA à esquerda, PoS à direita
A fim de tornar as pontes entre cadeias mais seguras, existem duas direções na seleção dos notários:
**Uma delas é escolher uma grande empresa ou instituição conhecida e com boa reputação, tanto quanto possível. Para essas organizações, o custo de fazer o mal é extremamente alto, e pode custar anos de boa vontade. Além disso, tente torná-los geograficamente diversos o suficiente (evite estar concentrado na mesma jurisdição).
Por exemplo, o projeto de ponte de cadeia cruzada Wormhole escolheu tal modelo, e seus 19 nós são todos instituições bem conhecidas, com grande volume e fundos fortes, que é o caminho do PoA.
A outra maneira é que os notários sem permissão admitam, mas eles são obrigados a fazer uma promessa e, se se comportarem mal, seus fundos prometidos serão cortados. É assim que o PoS funciona. É disso que se trata o ZetaChain.
Não é bom tirar conclusões direta e arbitrariamente sobre quem é superior e quem é inferior nos dois sentidos. Depende de quão bem as partes do projeto de ponte de cadeia cruzada estão se saindo em suas respetivas direções.
Seja PoA ou PoS, você pode fazer uma ponte de cadeia cruzada diretamente em uma cadeia pública, onde cada nó executa o mesmo programa, e todas as solicitações de cadeia cruzada e processos de processamento serão registrados nessa cadeia. A própria cadeia também pode hospedar aplicações, tornando-se assim um polo ecológico.
3.5 Observador
Outra forma de reforçar a segurança é criar um papel de observador. Essa função é responsável por monitorar o comportamento entre cadeias e pode relatar e abortar transações on-chain se forem encontrados problemas. Uma vez que o observador precisa de uma janela para reagir, a hora de chegada da transferência de cadeia cruzada pode ser atrasada, de modo que o observador só intervirá se o usuário aceitar o atraso na transferência para uma transação grande ou operação de cadeia cruzada sensível.
Outras soluções transversais****
Bloqueio de hash
De volta ao primeiro método mencionado neste artigo: P2P para encontrar uma contraparte para swaps de ativos entre cadeias. Se temos medo de que a outra parte fique inadimplente com a dívida, então podemos criar um mecanismo, uma vez que alguém se arrependa, a outra parte pode receber o dinheiro de volta e devolvê-lo a Zhao.
Trata-se do bloqueio de hash, que usa inteligentemente bloqueios de hash e timelocks para forçar o destinatário dos fundos a determinar o recebimento antes do prazo e gerar um certificado de recebimento na cadeia de origem, e o pagador deve obter os ativos equivalentes do destinatário na cadeia de destino com essa prova de recebimento, caso contrário, os fundos de ambas as partes serão devolvidos à maneira original.
No entanto, este método só pode trocar fundos e não pode concluir a transferência geral de informações entre cadeias. E mesmo da perspetiva da transferência cruzada de fundos, a experiência do usuário do bloqueio de tempo de hash é muito ruim:
Se a flutuação do preço da moeda for desfavorável à contraparte (provedor de liquidez), ela pode racionalmente optar por não executar;
Para concluir uma troca de cadeia cruzada, tanto o usuário quanto a contraparte devem executar duas assinaturas.
Como resultado, os bloqueios de tempo de hash, como uma solução de cadeia cruzada, foram em grande parte eliminados. **As primeiras pontes de cadeia cruzada que usavam esta solução (por exemplo, cBridge, Connext) mudaram de rumo.
Cliente leve on-chain
Este método é implantar o contrato light client da cadeia de origem diretamente na cadeia de destino. Se você implantar um contrato em uma cadeia, todos os nós dessa cadeia executarão o código de contrato implantado. Portanto, a solução de cliente leve on-chain é, na verdade, permitir que a cadeia de destino verifique diretamente a transação da cadeia de origem.
Este método é extremamente seguro, mas também é o mais caro. Caro das seguintes formas:**
O contrato de cliente leve da cadeia alvo precisa receber e verificar o novo cabeçalho de bloco da cadeia de origem em tempo real, este processo é muito intensivo em gás, mesmo que ZK seja usado para obter provas concisas, o consumo de gás de verificar uma prova ZK não será inferior a 400.000 Gás (EVM por exemplo), e no esquema MPC, a cadeia só precisa verificar uma assinatura, e o consumo de Gás é apenas mais de 20.000, o que é 20 vezes pior!Uma ponte mais segura, mas 20 vezes mais cara, você vai usá-la?
A quantidade de trabalho envolvido no desenvolvimento de contratos de cliente leve é enorme, e para que as pontes de cadeia cruzada sejam compatíveis com cadeias mais heterogêneas, você precisa implementar contratos de cliente leve para cada cadeia em ambientes de desenvolvimento completamente diferentes em cadeias diferentes, o que é um desafio infernal para os desenvolvedores. Isso leva a uma maior probabilidade de bugs na redação do contrato, ou seja, a segurança da ponte do cliente leve é apenas no nível teórico, e é muito insegura em termos de prática de engenharia. **
A fim de reduzir a quantidade de trabalho de desenvolvimento, uma solução viável é introduzir uma cadeia de relé, para que todas as cadeias e esta cadeia de relé possam estabelecer contratos de cliente leve entre si, o que pode realmente reduzir a carga de trabalho de C(n,2) para n, mas ainda não é muito pequena. O que era originalmente uma transferência direta entre cadeias da cadeia de origem para a cadeia de destino tornou-se também uma transmissão de segunda ordem entre a cadeia de origem → a cadeia de relé → a cadeia de destino, o que gerará consumo adicional de gás e consumo de tempo.
Portanto, as soluções técnicas de clientes leves, atualmente, não podem ser usadas para construir pontes de cadeia cruzada mais universais.
Fim de Jogo****
Em primeiro lugar, diferentes cadeias públicas têm práticas diferentes, e há recursos diferentes por trás delas, desde que não admitam a derrota, a ecologia definitivamente existirá, mesmo que o desenvolvimento não seja muito bom a curto prazo, talvez um dia eles voltem à vida depois de fazer um upgrade. A coisa como este tipo de infra subjacente é ver quem dura muito tempo e quem se ajusta rapidamente ao mercado. **
Bitcoin e Ethereum não podem resolver todos os cenários de aplicação, ou em uma determinada subdivisão, sempre há pessoas que não gostam do primeiro lugar, então eles criam uma nova roda, então o futuro será definitivamente multi-cadeia. Ou, no futuro, a camada inferior não será uma cadeia, então o futuro deve ser multiecológico, como transmitir fundos e informações entre múltiplos ecossistemas, deve haver tecnologia de cadeia cruzada/ecológica!
A que é que os utilizadores prestam mais atenção em matéria de cadeia cruzada?
Velocidade: quanto tempo leva para uma operação de cadeia cruzada ser concluída
Taxas: Quanto tenho de pagar por uma operação de cadeia cruzada
Segurança: se a ponte entre cadeias é segura e se os fundos não serão perdidos
Liquidez: Existe liquidez suficiente para suportar as minhas negociações e um impacto aceitável no preço
Intervalo de conexão: Quantas cadeias você suporta e se você suporta as cadeias que eu preciso para minha operação de cadeia cruzada
Experiência: Se a operação de cadeia cruzada é conveniente, como se suporta pagamento de gás, se a estimativa de custo é precisa, se suporta consulta de progresso e visualização do navegador, se falhas ocorrem com frequência, como lidar com falhas, etc.
**Vamos primeiro dar uma visão geral dos recursos de alguns projetos a partir de três perspetivas claras: segurança, custo e faixa de conexão. **
Clique no link para ver a tabela clara (a tabela está constantemente sendo atualizada):
A fim de explicar completamente a ponte de cadeia cruzada, existem realmente muitas dimensões que precisam ser discutidas, como todas as dimensões e análise de dados na tabela acima. Então, quais elementos você se importa ao encadear entre cadeias?Quais são as pontes de cadeia cruzada que você costuma usar?O que você acha que as pontes de cadeia cruzada devem focar?Se você tiver suas ideias, bem-vindo para se comunicar com os autores.