Metamask: usando uma carteira Ethereum para assinar transações na Waves
Este artigo traz os conceitos de contas-espelho e gateways de delegação, que permitem o uso de uma carteira vinculada a uma blockchain específica, como a Metamask na rede Ethereum.
Esta é uma visão geral da nova ferramenta que trará mais avanços para a tecnologia entre blockchains. Estamos apresentando uma maneira segura de usar uma carteira vinculada a uma blockchain específica, como Metamask para a rede Ethereum, e interagir perfeitamente com outras redes de blockchain. Utilizamos o conceito de gateways de delegação, disponibilizados através da rede Gravity, e as chamadas contas-espelho.
Contas-espelho
Temos o prazer de anunciar a conta-espelho: um lançamento fundamental, que tem como objetivo reduzir as taxas de blockchain e simplificar a experiência do usuário. A tecnologia subjacente a este conceito é muito simples; cada usuário tem duas contas de blockchain:
- Uma conta principal na blockchain de origem, com alguns tokens de saldo.
- Uma conta-espelho, que é criada dinamicamente pelo sistema, quando o usuário tenta interagir com uma blockchain que não é nativa da carteira que está usando. Esta conta corresponde às transações assinadas por um proprietário de conta Ethereum em uma blockchain de destino, como a Waves.
Este mecanismo fornece uma única conta blockchain, capaz de acessar várias funções em cada blockchain que comporta a criação de contas-espelho. Nesse sentido, não estamos restritos a blockchains baseadas na EVM e compatíveis com os contratos inteligentes Ethereum, pois é importante estendermos a tecnologia interchain para além desse ecossistema.
Por que a Waves?
Escolhemos Ethereum como a rede de origem principalmente devido a sua popularidade: a maioria dos usuários de DeFi (finanças descentralizadas) pertence ao ecossistema Ethereum, proporcionando tração e liquidez. No entanto, atualmente as taxas de gás da rede Ethereum são exorbitantemente altas para que usuários regulares possam pagar pela execução de contratos inteligentes.
Por outro lado, a blockchain Waves tem taxas de transação fixas e consideravelmente mais baixas, o que significa que uma conta-espelho na Waves pode ser usada para executar contratos inteligentes de maneira acessível, realizar cálculos e manter o estado.
Detalhes da implementação
Demo
Nesta demonstração, a carteira Metamask é usada para assinar transações com chaves privadas Ethereum. Você pode ver a demonstração aqui.
Geração de uma nova seed Waves no navegador
A primeira ação necessária é criar uma nova conta Waves por meio da API Waves. Para prosseguir, também é necessário que a conta-espelho obtenha, de alguma forma, uma pequena quantidade de Waves para taxas de transação. Este problema não é trivial e atualmente é resolvido por meio de um controlador de taxa de transação, mas no futuro pode ser resolvido de outras formas.
Nota: Criar uma nova conta-espelho na Waves é invocado como um procedimento fora da rede, mas é seguro porque usa uma biblioteca nativa da Waves.
Implantando contas inteligentes
A implementação de contas-espelho na Waves oferece máxima segurança, devido à funcionalidade da conta inteligente. Cada conta inteligente pode carregar sua própria lógica de verificação da transação, por exemplo, proibindo transações que excedam um certo limite de valor ou verificando o remetente da transação. Neste caso, usa-se a função Ride ecrecover para verificar se a assinatura gerada pelo proprietário de uma conta Ethereum corresponde à chave pública desta conta.
O principal benefício de usar uma conta inteligente Waves é a capacidade de passar a chave privada para a conta espelho.
Nota: o método da API Metamask personal_sign modifica os dados, anexando um prefixo antes de assinar, o que significa que o contrato na conta-espelho deve conduzir uma modificação de byte semelhante. Apenas dados de transação de waves base64 podem ser enviados. Se necessário, ele pode ser facilmente decodificado para visualizar os detalhes da transação.
Enviando transações na Waves
Esta combinação de gateways de delegação e contas-espelho permite o envio de qualquer tipo de transação na Waves usando Metamask no frontend, abrindo oportunidades infinitas para melhorar a experiência do usuário entre as blockchains.
Demonstração
Conclusão
Acreditamos que este sistema, que utiliza o protocolo Gravity, é um passo importante para uma experiência interchain mais integrada. No futuro, ele pode ser estendido para permitir a interação com outras redes de blockchain, como BSC, Tron, Avalanche, Fantom e Heco. Essa tecnologia fornece uma nova maneira de conectar mais blockchains, tornando o uso da tecnologia cross-chain ininterrupta e coerente para os usuários finais.
Referências
Demonstração de trabalho: https://sandbox.graviton.one/
Site da Venlab: https://venlab.dev