A base do ecossistema Web3 é a carteira, um aplicativo ou extensão de navegador que permite que os usuários verifiquem suas identidades na web e autorizem transações. Mas usar uma carteira sempre envolveu uma curva de aprendizado íngreme. Novos usuários devem aprender a copiar suas palavras-semente e armazená-las em um lugar seguro, criar uma senha forte para criptografar seu arquivo keystore, copiar endereços com precisão ao enviar fundos e outras coisas que eles podem nunca ter que aprender ao usar um aplicativo Web2.

Se um novo usuário quiser tornar a integração mais acessível, uma opção é usar um provedor de carteira custodial, como uma exchange centralizada. Mas usuários experientes de criptomoedas quase sempre os alertarão contra isso por um bom motivo. O mundo testemunhou exchanges centralizadas como Mt. Gox, QuadrigaX e FTX irem à falência por causa de hacks ou fraudes diretas, fazendo com que alguns clientes perdessem todos os seus fundos devido ao uso de uma carteira custodial.

Por causa desse risco, muitos usuários de criptomoedas ainda veem uma carteira sem custódia apoiada por um conjunto de palavras-semente como a única maneira segura para um usuário proteger sua identidade Web3.

Mas os usuários sempre têm que escolher entre segurança e conveniência? Ou há uma maneira de combinar a segurança de uma carteira não custodial com a conveniência de uma exchange?

Algumas empresas Web3 estão tentando criar carteiras que sejam fáceis de usar, mas também não exijam que o usuário deposite toda a sua confiança em um custodiante centralizado. Empresas como Magic, Dfns, Kresus, Web3Auth, Immutable e outras acreditam que uma carteira pode ser tão fácil de usar quanto uma conta de e-mail, e segura o suficiente para ser confiável para proteger a identidade e os fundos do usuário. Essas empresas estão usando diferentes tipos de nova infraestrutura de carteira para tornar essa ideia uma realidade.

Aqui está um resumo de algumas das soluções usadas pelos desenvolvedores de carteiras:

Magia

Um novo sistema é o Magic software developer kit (SDK), produzido pela Magic Labs. É um kit de desenvolvedor e infraestrutura de carteira que permite que desenvolvedores criem carteiras sem sementes para usuários.

Em vez de armazenar a chave privada no dispositivo do usuário, uma cópia criptografada é mantida em um Amazon Web Services Hardware Security Module (HSM). A criptografia é realizada usando uma Master Key que não pode sair do HSM. Toda a assinatura é feita dentro do HSM, impedindo que a chave do usuário seja transmitida para a internet.

Carteiras mágicas não usam senhas. Em vez disso, quando os usuários se inscrevem pela primeira vez em uma carteira mágica, eles enviam seu endereço de e-mail para o retransmissor Magic. O retransmissor então envia um token de uso único para o usuário por meio de seu e-mail. Este token só funcionará se usado pelo dispositivo que enviou a solicitação e apenas por um tempo limitado.

O token é usado para autenticação com a Amazon Web Services quando o usuário clica em um link dentro do e-mail. As chaves públicas e privadas da conta da carteira blockchain são então geradas no dispositivo do usuário e enviadas para o HSM. A Magic Labs diz que não consegue ver a chave privada gerada, pois ela nunca vai para seus servidores.

Quando os usuários param de usar suas carteiras e fecham seus navegadores, eles podem reabrir suas carteiras repetindo o processo. Eles enviam seus endereços de e-mail para a Magic novamente e recebem um novo token de uso único. Desta vez, após a autenticação, eles recuperam o acesso à sua carteira.

A Magic Labs criou uma demonstração mostrando como o sistema funciona. Parece permitir que qualquer um crie uma carteira sem baixar uma extensão do navegador ou copiar palavras-semente. Também permite que os usuários fechem seus navegadores e retornem às suas carteiras mais tarde, efetuando login na mesma conta Web3 novamente.

Atualmente, a demonstração só funciona em redes de teste como Goerli, Sepolia e Mumbai.

Carteiras baseadas em Magic

Algumas carteiras diferentes foram lançadas ou estão atualmente em desenvolvimento que usam Magic. Um exemplo notável é a carteira Kresus, um aplicativo móvel que permite aos usuários armazenar e manter Bitcoin (BTC), Ether (ETH), Solana (SOL), Polygon (MATIC) e tokens dessas redes. Ela também permite que os usuários enviem criptomoedas usando nomes de domínio .kresus em vez de endereços de criptomoedas.

O Kresus foi lançado na Apple App Store em 11 de maio. A equipe disse ao Cointelegraph que uma versão para Android seria lançada no final de 2023.

Immutable Passport é outro exemplo. É uma interface de programação de aplicativos (API) construída pelo desenvolvedor de jogos Web3 Immutable. Quando os jogos participantes integram seus sites com o Passport, ele permite que os jogadores criem carteiras diretamente pelo site do jogo.

A Immutable disse ao Cointelegraph que as carteiras Passport se conectam à rede Immutable X, um protocolo Ethereum de camada 2, que permite aos jogadores armazenar todos os seus itens colecionáveis ​​de jogos Immutable em uma conta, independentemente do jogo com o qual se inscreveram inicialmente.

A Immutable implementou recentemente o Passport como o método de login padrão para seu portal de desenvolvedores e planeja usá-lo em pelo menos uma página de login do jogo até o verão de 2023, disse a equipe.

Preocupações de segurança com Magic

O Magic SDK contém uma falha de segurança conhecida, que os desenvolvedores tomaram medidas para mitigar. Como ele depende de tokens de e-mail para autenticar um usuário, um invasor pode potencialmente obter acesso ao HSM de um usuário invadindo sua conta de e-mail e, em seguida, solicitando a autenticação do próprio dispositivo do invasor. Depois que eles tiverem acesso ao HSM, eles podem autorizar quaisquer transações da conta do usuário.

Por esse motivo, tanto o Immutable Passport quanto o Kresus planejam usar a autenticação de dois fatores (2FA) como uma camada adicional de segurança caso a conta de e-mail de um usuário seja comprometida.

Carteiras baseadas em Magic não têm senhas, então elas não podem ser hackeadas através do método usual de roubar e quebrar um hash de senha.

Web3Auth

Outra nova infraestrutura de carteira que os desenvolvedores costumam usar é o Web3Auth.

Web3Auth é uma rede de gerenciamento de chaves que depende de computação multipartidária (MPC) para tornar chaves privadas recuperáveis. Quando os usuários se inscrevem para uma conta usando Web3Auth, eles geram uma chave privada como de costume. Então, essa chave é dividida em três “compartilhamentos”.

O primeiro compartilhamento é armazenado no dispositivo deles, o segundo é armazenado pela rede Web3Auth por meio de um provedor de login, e o terceiro é um compartilhamento de backup que deve ser armazenado em um dispositivo separado ou offline. O terceiro compartilhamento também pode ser gerado a partir de perguntas de segurança, se o usuário preferir.

Devido à forma como a computação multipartidária funciona, um usuário pode gerar a chave privada e confirmar transações com apenas dois dos três compartilhamentos. Isso significa que o usuário ainda pode recuperar sua carteira se seu dispositivo travar ou perder sua chave de backup. Ao mesmo tempo, o provedor de login não pode executar transações sem a permissão do usuário, pois o provedor tem apenas um compartilhamento.

O provedor também não pode censurar transações. Se o provedor se recusar a dar ao usuário seu segundo compartilhamento após ele ter se autenticado corretamente, o usuário pode gerar sua chave privada usando uma combinação do compartilhamento armazenado em seu dispositivo mais o compartilhamento de backup.

No Web3Auth, o compartilhamento do provedor de login é dividido em nove shards diferentes e distribuído por uma rede de nós de armazenamento, com cinco shards sendo necessários para reconstruir o compartilhamento do provedor. Isso impede que o provedor de login armazene seus compartilhamentos em sua própria infraestrutura.

Carteiras Web3Auth

O Web3Auth foi integrado a várias carteiras de varejo, incluindo a Binance Wallet e uma versão beta fechada da Trust Wallet. Na versão de extensão da Binance Wallet, os usuários podem criar contas de carteira usando seus logins do Google. Na versão da Trust Wallet, Google, Apple, Discord e Telegram são opções de provedores de login, de acordo com um vídeo oficial da conta do Twitter da Web3Auth.

Em ambos os casos, o usuário ainda precisa copiar as palavras-semente. No entanto, a conta pode ser recuperada mesmo se essas palavras forem perdidas, desde que o usuário ainda tenha acesso ao seu dispositivo e à conta do provedor de login.

Em declarações ao Cointelegraph, o CEO da Web3Auth, Zhen Yu Yong, argumentou que a transição para o uso de múltiplos compartilhamentos de chaves no Web3 é semelhante à evolução do 2FA em sites Web2, afirmando:

“Nomes de usuário e senhas no início dos anos 2000 ou no final dos anos 1990 eram incrivelmente fáceis de perder. Naquela época, pensávamos que aplicativos financeiros nunca seriam criados na internet.”

“Com nomes de usuário e senhas, eventualmente progredimos para a autenticação de dois fatores”, continuou Yong. “Acho que é a mesma transição que estamos tentando impulsionar aqui [...] Em vez de usar uma frase de semente de fator único, estamos dividindo isso em vários fatores diferentes [...] e fazendo isso de forma que sejam todos os seus pontos de acesso, então tudo ainda é autocustodial.”

Dfns

Dfns, pronunciado como “defesa”, é uma rede de gerenciamento de chaves MPC que permite que instituições, desenvolvedores e usuários finais criem carteiras sem senha e sem sementes. Ela mantém a chave privada de cada blockchain como múltiplos shards espalhados entre nós por toda a rede Dfns.

Para autorizar uma transação, os nós Dfns devem produzir em conjunto uma assinatura usando cada fragmento.

Diferentemente do Web3Auth, o Dfns não mantém uma parte da chave privada do blockchain no dispositivo do usuário ou como um backup. Todos os shards são mantidos na própria rede.

Os nós Dfns usam um protocolo chamado “WebAuthn” para verificar se um usuário autorizou uma transação. Este protocolo foi criado pelo World Wide Web Consortium para permitir que os usuários façam login em sites sem uma senha. No Dfns, os nós são programados apenas para assinar uma transação com seu shard se o usuário final tiver se autenticado usando este protocolo.

Quando um usuário se registra em um site usando WebAuthn, o site cria uma chave privada no dispositivo do usuário. Essa chave privada não é usada em nenhum blockchain. Ela existe apenas para permitir que o usuário faça login no site.

O usuário é solicitado a proteger a chave com um código PIN ou bloqueio biométrico quando a chave é criada. Em um PC Windows, esse bloqueio pode ser criado por meio do Windows Hello, que faz parte do sistema operacional, ou por meio de um dispositivo separado, como um telefone celular ou Yubikey. Em um dispositivo móvel, o bloqueio é gerado usando a segurança interna do dispositivo.

Exemplo de um prompt de registro WebAuthn. Fonte: WebAuthn.io

Em um site que implementa o registro WebAuthn, o usuário não precisa de um endereço de e-mail ou senha para se registrar. Em vez disso, o dispositivo usa seu próprio sistema de segurança para identificar o usuário.

Quando uma equipe de desenvolvimento de carteira cria uma carteira usando Dfns, eles podem passar esse método de autenticação para o usuário final. Nesse caso, a carteira é considerada não custodial porque o provedor da carteira não tem o dispositivo do usuário, código PIN ou dados biométricos e, portanto, não pode autorizar transações.

O usuário final também pode adicionar dispositivos a uma carteira se a primeira falhar.

Os desenvolvedores de carteiras também podem criar carteiras custodiais usando Dfns. Nesse caso, o desenvolvedor de carteiras precisa se autenticar com a rede usando WebAuthn. Eles podem usar qualquer método para autenticar um usuário com eles mesmos, incluindo até mesmo nomes de usuários e senhas.

Carteiras que usam Dfns

Em declarações ao Cointelegraph, a fundadora da Dfns, Clarisse Hagège, afirmou que muitos dos clientes da plataforma são instituições e equipes de desenvolvimento no mercado business-to-business.

No entanto, a equipe começou a atrair mais provedores de carteiras business-to-consumer recentemente. O aplicativo de economia de criptomoedas de varejo SavingBlocks usa Dfns, e a empresa está em negociações com algumas exchanges descentralizadas para ajudar a criar carteiras para seus clientes também, disse ela.

Hagège argumentou que para que a adoção em massa das criptomoedas aconteça, os usuários nem deveriam estar cientes de que existe uma chave privada de blockchain quando fazem transações.

“O que estamos mirando são as centenas de milhares de desenvolvedores que construirão casos de uso direcionados à adoção em massa de blockchain, direcionados a pessoas que não querem saber que têm uma chave privada”, ela explicou. “Temos uma rede de servidores que opera essa geração de chaves […], e o que é importante não é realmente possuir a chave privada ou o compartilhamento de chaves, mas possuir o acesso à API.”

A nova tecnologia de carteira será adotada pelas massas?

Se essas novas tecnologias de carteira levarão à adoção em massa ou mesmo serão aceitas pelos usuários atuais ainda não se sabe. Apesar de sua simplicidade, elas ainda podem ser muito complexas para usuários que preferem manter suas criptomoedas em uma exchange. Por outro lado, usuários que acreditam no mantra “não suas chaves, não suas criptomoedas” podem desconfiar de confiar em uma rede MPC ou módulo de segurança de hardware de propriedade da Amazon para autorizar transações para eles.

Ainda assim, alguns usuários podem decidir que as vantagens do MPC ou dos links mágicos são boas demais para deixar passar. Só o tempo dirá.

Enquanto isso, essas novas tecnologias provavelmente provocarão discussões sobre como garantir que os usuários mantenham o controle de seus fundos ou o que “autocustódia” realmente significa.