WEB3DEV

Cover image for Entendendo o WalletConnect
Diogo Jorge
Diogo Jorge

Posted on

Entendendo o WalletConnect

Image description

Curiosidade móvel

Eu passei dois anos construindo aplicativos móveis da web 2.0 e recentemente me perguntei por que a adoção da carteira da web3 não é maior. Carteiras de computador (i.e. Metamask e Phantom) são uma ótima introdução à blockchain. No entanto, é inevitável que as carteiras móveis tenham que ser mais popularizadas.

Rainbow, Argent, Zerion, Trust Wallet e outras carteiras estão abrindo caminho para interações em carteiras de celular. Mas sob a superfície, todas elas são alimentadas pelo WalletConnect, então eu decidi mergulhar mais fundo.

O que é o WalletConnect?

WalletConnect é um protocolo de código aberto que conecta várias carteiras e aplicativos descentralizados ( dApps ). Ao digitalizar um código QR ou clicar em um deep link, o WalletConnect estabelece uma conexão segura e criptografada. Isso é feito sem compartilhar sua chave privada. Desde 2018, mais de 170 carteiras foram integradas a elas e é o padrão comum para conexão de carteira.

Antes do WalletConnect, os desenvolvedores estavam escrevendo um código de autorização separado para conexões com a carteira. Portanto, ter um protocolo unificado de código aberto e permitir que os usuários se conectem ao web3 é uma vitória.

Como tudo funciona?

Nota: Esta informação pertence à v1, pois é suscetível a alterações em sua nova versão v2. Veja Docs.*

Atualmente, o protocolo WalletConnect possui implementações de referências para (escrito em TypeScript):

  1. Cliente
  2. Servidor Bridge
  3. Servidor de push

Estabelecendo conexão

Para estabelecer uma conexão entre o dApp e o Wallet, o cliente e os servidores bridge interagem juntos. O servidor push é um serviço opcional para assinaturas de notificação push.

Image description

Fonte (Docs de conexão de carteira)

O diagrama acima presente nos documentos deles ilustra esse processo por:

  1. O dapp deseja conectar e postar uma Session Request → Servidor Bridge.
  2. dapp usa o formato URI padrão WalletConnect (EIP-1328) para um pagamento criptografado → Servidor Bridge.
  3. Carteira lê o URI através do QR Code / deep link e descriptografa o pagamento da solicitação de conexão → Servidor Bridge
  4. Servidor Bridge → Carteira exibe solicitação de detalhes ao usuário que é ou aprovado ou rejeitado. Se rejeitada, uma mensagem de erro é lançada.
  5. Se aprovado, o dapp receberá as informações sobre chainId e conta.

Interface com outras chamadas JSON-RPC

Depois que a carteira e o dApp são autenticados, o Bridge Server permite qualquer solicitação de chamada JSON-RPC. O servidor push para notificações também pode ser utilizado aqui.

Image description

Fonte (Docs de conexão de carteira)

Bibliotecas / Implementações

O WalletConnect possui vários SDK clientes para Swift, Kotlin e Javascript / Texto datilografado.

Infraestrutura / importância do WalletConnect

Depois de examinar como o WalletConnect é o middleware para carteiras e dApps da web3, comecei a perceber sua importância. Se a App Store ou o Google Playstore não oferecer suporte a produtos nativos da web3, o melhor gateway é o WalletConnect.

Eles são a “cintura estreita” para o ecossistema web3. Conforme descrito por Nichanan Kesonpat em “WalletConnect: o protocolo de cintura estreita entre carteiras e Dapps ”, eles são semelhantes ao TCP / IP da era web3. Eles são agnósticos para cadeias, carteiras e dApps, que é o que o TCP permitiu para a era da Internet.

Image description

Fonte: Nichanan Kesonpat ( 1kx)

Github atual

Olhar para o Github corrente também ajudou a fornecer um retrato do que está sendo construído:

  • WalletConnectKotlinV2
  • WalletConnectSwiftV2
  • Walletconnect-monorepo
  • Gotrue
  • Scarlet
  • Kotlin-walletconnect-lib
  • Walletconnect-utils
  • Web3modal
  • WalletConnectUnity
  • WalletConnectSwift

Isso pressupõe que o V2 seja de alta prioridade, mantendo as bibliotecas / ferramentas existentes, como Web3Modal e Gotrue, que estão sendo trabalhadas.

V2

No final do ano passado, os recursos do Walletconnect V2 foram anunciados e estão sendo lançados no terceiro trimestre de 2022. Conforme detalhado no artigo oficial, V2 introduz:

  • Interface agnóstica de chains
  • Suporte para várias chains
  • Emparelhamento e separação de sessões
  • Permissões JSON-RPC
  • Gerenciamento aprimorado de sessões
  • Retransmissão de mensagens descentralizadas

Com o V2, eles reconheceram que o mundo é de várias cadeias ( ou seja, Cosmos, Solana e Polkadot ). Usuários de vários ecossistemas poderão acessar os dApps. Além disso, eles melhoraram o padrão da sessão de login e estão trabalhando no bate-papo descentralizado. Será interessante ver se o bate-papo na web3 decola.

Futuro do WalletConnect

Foi interessante mergulhar mais fundo em um protocolo de infraestrutura principal. Com o V2, será ótimo ver mais carteiras e dApps com várias cadeias e mensagens na web3.

Recursos

Meu Twitter

Este artigo foi escrito por Tom Terado e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.

Oldest comments (0)