Abordagem de privacidade para notificações e armazenamento do usuário
Informações sobre os novos recursos de autenticação, notificações e armazenamento de configurações do usuário disponíveis no MetaMask Web.
Fazer login no MetaMask Web melhora sua experiência, permitindo que você:
Receba notificações sobre a atividade da sua carteira
Sincronize suas configurações e preferências entre os diferentes dispositivos onde você tem o MetaMask instalado. Com o tempo, começaremos a fazer backup e sincronizar sua lista de endereços, histórico de transações, tokens importados e endereços monitorados
Faça backup das suas configurações para quando você trocar ou redefinir seu navegador
Suas configurações são sincronizadas sem comprometer a confidencialidade da sua atividade na MetaMask. Em vez de arquiteturas semelhantes às da web2, onde os provedores de serviço hospedam os dados dos usuários, utilizamos uma abordagem que prioriza a privacidade, na qual suas informações são criptografadas no lado do cliente (ou seja, localmente, no seu dispositivo), e o servidor atua como armazenamento e retransmissor de dados criptografados. Portanto, a MetaMask tem visibilidade zero sobre quais usuários ou endereços estão utilizando este serviço e de que forma.
Quando você tenta fazer login no MetaMask Web, sua carteira MetaMask solicitará que você assine uma mensagem com seu endereço para provar que é o proprietário dessa conta. Após a assinatura, você será conectado ao MetaMask Web com o endereço dessa conta.
Utilizamos um fluxo padrão de Sign-In with Ethereum. Nosso servidor recebe a mensagem assinada e seu endereço, verifica a assinatura, combina o endereço com um salt (um valor aleatório) por meio de hash para gerar seu AccountID e, em seguida, descarta o endereço. O servidor assina seu AccountID e emite um JSON web token (JWT) que o cliente pode usar para acessar os serviços do MetaMask, como o armazenamento de configurações do usuário ou notificações. Como o endereço não é armazenado e o hash do AccountID não é reversível, o MetaMask não sabe quem fez login nem quais endereços foram utilizados.
As configurações do usuário são armazenadas nos servidores da MetaMask, criptografadas com uma chave gerada especialmente e que pertence exclusivamente ao usuário. Ninguém além do próprio usuário pode ler as configurações. Quando você faz login, criamos uma chave no lado do cliente obtendo o hash resultante da aplicação da assinatura da sua conta a uma determinada mensagem. Isso significa que a chave é determinística: ou seja, o resultado dessa assinatura será sempre o mesmo quando a mesma conta assinar a mesma mensagem. Usamos essa chave para realizar a criptografia no lado do cliente de todas as suas configurações de usuário antes de enviá-las aos servidores da MetaMask.
Nesse contexto, a MetaMask funciona apenas como armazenamento e não consegue identificar quem está usando o serviço, nem o conteúdo das configurações, já que tudo é criptografado no lado do cliente. Quando necessário, as informações criptografadas podem ser descriptografadas em outro cliente quando a mesma pessoa fizer login na sua MetaMask a partir de outro dispositivo. Também estamos trabalhando ativamente com o ecossistema para explorar oportunidades de descentralizar o armazenamento de configurações do usuário no futuro.
Armazenamos preferências e configurações, que podem incluir, por exemplo, seu endereço público, moeda, tokens favoritos, configurações de interface ou lista de contatos. Não armazenamos, transferimos ou fazemos backup de sua chave privada ou Secret Recovery Phrase, ambas acessíveis somente por você.
Monitoramos blockchains para você e enviamos notificações push quando algo relevante acontece com seus endereços, como recebimento de tokens, NFTs ou unstaking.
Diferente do serviço de configuração do usuário, que hospeda apenas dados criptografados no lado do cliente, o serviço de notificações precisa salvar versões não criptografadas dos endereços monitorados no lado do servidor. Para garantir que múltiplos endereços não possam ser atribuídos à mesma pessoa, nossos servidores salvam as tarefas de notificações "desvinculadas" dos usuários aos quais pertencem. Isso significa que o vínculo entre os AccountIDs e os endereços é armazenado apenas no lado do cliente.