Atualmente, a identidade está subjacente a praticamente todos os aspectos das nossas vidas. Utilizar serviços online, abrir uma conta bancária, votar em eleições, comprar um imóvel, garantir um emprego - tudo isto requer a prova da sua identidade.
No entanto, os sistemas tradicionais de gestão de identidades há muito que dependem de intermediários centralizados que emitem, detêm e controlam os identificadores e sua validação. Isto significa que não pode controlar as informações relacionadas com a sua identidade ou decidir quem tem acesso a informações pessoalmente identificáveis (IPI) e qual o grau de acesso que essas entidades têm.
Para resolver estes problemas, temos sistemas de identidade descentralizados construídos em blockchains públicos como o Ethereum. A identidade descentralizada permite aos indivíduos gerir a informação relacionada com a sua identidade. Com soluções de identidade descentralizadas, podemos criar identificadores e reivindicar e manter as nossas certificações sem depender de autoridades centrais, como fornecedores de serviços ou governos.
O que é a identidade?
Identidade significa o sentido de individualidade de um indivíduo, definido por caraterísticas únicas. A identidade refere-se a ser um indivíduo, ou seja, uma entidade humana distintiva. A identidade pode também referir-se a outras entidades não humanas, como uma organização ou autoridade.
O que são identificadores?
Um identificador é um tipo de informação que funciona como um identificador para uma identidade ou identidades específicas. Os identificadores mais comuns incluem:
- Nome
- Número da segurança social/número de identificação fiscal
- Número de telemóvel
- Data e local de nascimento
- Credenciais de identificação digital, por exemplo, endereços de correio eletrónico, nomes de utilizador, avatares
Estes exemplos convencionais de identificadores são emitidos, detidos e controlados por entidades centrais. É necessária uma autorização do governo para alterar o nosso nome ou de uma plataforma de rede social para alterar o nosso nome de utilizador.
O que são certificações?
Uma certificação é uma afirmação feita por uma entidade sobre outra entidade. Se vive nos Estados Unidos, a carta de condução que lhe é emitida pelo Department of Motor Vehicles (uma entidade) atesta que você (outra entidade) está legalmente autorizado a conduzir um determinado tipo de veículo.
As certificações são diferentes dos identificadores. Uma certificação contém identificadores que fazem referência a uma determinada identidade e faz uma declaração sobre um atributo relacionado com essa identidade. Assim, a sua carta de condução tem identificadores (nome, data de nascimento, morada) mas é também a certificação do seu direito legal de conduzir.
O que são identificadores descentralizados?
Os identificadores tradicionais, como o seu nome jurídico ou endereço de correio eletrónico, dependem de terceiros - governos e fornecedores de correio eletrónico. Os identificadores descentralizados (DIDs) são diferentes - não são emitidos, geridos ou controlados por uma entidade central.
Os identificadores descentralizados são emitidos, detidos e controlados por pessoas singulares. Uma conta Ethereum é um exemplo de um identificador descentralizado. Pode criar tantas contas quantas quiser sem a permissão de terceiros e sem a necessidade de as armazenar num registo central.
Os identificadores descentralizados são armazenados em registos distribuídos ("blockchains") ou em redes peer-to-peer. Isto torna os DIDs únicos a nível mundial, resolúveis com elevada disponibilidade e criptograficamente verificáveis(opens in a new tab). Um identificador descentralizado pode ser associado a diferentes entidades, incluindo indivíduos, organizações ou instituições governamentais.
O que torna possíveis os identificadores descentralizados?
1. Infraestrutura de chave pública (PKI)
A infraestrutura de chave pública (PKI) é uma medida de segurança da informação que gera uma e uma para uma entidade. A criptografia de chave pública é utilizada nas redes de blockchain para autenticar as identidades dos utilizadores e provar a propriedade de ativos digitais.
Alguns identificadores descentralizados, como uma conta Ethereum, têm chaves públicas e privadas. A chave pública identifica o responsável pelo controlo da conta, enquanto as chaves privadas podem assinar e desencriptar mensagens para esta conta. A PKI fornece as provas necessárias para autenticar entidades e impedir a falsificação de identidade e a utilização de identidades falsas, utilizando assinaturas criptográficas(opens in a new tab) para verificar todas as declarações.
2. Datastores descentralizados
Um blockchain funciona como um registo de dados verificável: um repositório de informação aberto, isento e descentralizado. A existência de blockchains públicas elimina a necessidade de armazenar identificadores em registos centralizados.
Se alguém precisar de confirmar a validade de um identificador descentralizado, pode procurar a chave pública associada no blockchain. Isto é diferente dos identificadores tradicionais que exigem a autenticação de terceiros.
Como é que os identificadores e as certificações descentralizadas permitem a identidade descentralizada?
A identidade descentralizada é a noção de que as informações relacionadas com a identidade devem ser autocontroladas, privadas e portáteis, sendo os identificadores e as certificações descentralizadas os principais blocos de construção.
No contexto da identidade descentralizada, as certificações (também conhecidas como Verifiable Credentials(opens in a new tab)) são afirmações à prova de adulteração e criptograficamente verificáveis efetuadas pelo emissor. Cada atestado ou Credencial Verificável que uma entidade (por exemplo, uma organização) emite está associado ao seu DID.
Uma vez que os DIDs são armazenados no blockchain, qualquer um pode verificar a validade de um atestado através da verificação cruzada do DID do emissor no Ethereum. Basicamente, a blockchain Ethereum funciona como um diretório global que permite a verificação de DIDs associados a determinadas entidades.
Os identificadores descentralizados são a razão pela qual os certificados são autocontrolados e verificáveis. Mesmo que o emissor já não exista, o titular tem sempre uma prova da proveniência e validade do certificado.
Os identificadores descentralizados são também cruciais para proteger a privacidade das informações pessoais através da identidade descentralizada. Por exemplo, se alguém apresentar um comprovativo de um certificado (uma carta de condução), a parte verificadora não precisa de verificar a validade das informações contidas no comprovativo. Neste caso, o verificador só precisa de garantias criptográficas da autenticidade do certificado e da identidade da organização emissora para determinar se a prova é válida.
Tipos de certificados na identidade descentralizada
A forma como as informações de certificação são armazenadas e recuperadas num ecossistema de identidade baseado no Ethereum é diferente da gestão de identidade tradicional. Segue-se uma visão geral das várias abordagens à emissão, armazenamento e verificação de certificados em sistemas de identidade descentralizados:
Certificados Off-chain
Uma preocupação com o armazenamento de certificados na cadeia é o facto de poderem conter informações que as pessoas pretendem manter privadas. A natureza pública da blockchain Ethereum torna pouco atrativo o armazenamento de tais certificados.
A solução consiste em emitir certificados, detidos pelos utilizadores fora da cadeia em carteiras digitais, mas assinados com o DID do emissor armazenado na cadeia. Estes certificados são codificados como JSON Web Tokens(opens in a new tab) e contêm a assinatura digital do emissor, o que permite uma fácil verificação de declarações fora da cadeia.
Apresentamos aqui um cenário hipotético para explicar os certificados fora da cadeia:
Uma universidade (o emissor) gera um certificado (um diploma académico digital), assina com as suas chaves e emite-o para Bob (o proprietário da identidade).
Bob candidata-se a um emprego e quer provar as suas habilitações académicas a um empregador, pelo que partilha o certificado na sua carteira móvel. A empresa (o verificador) pode então confirmar a validade do certificado verificando o DID do emissor (ou seja, a sua chave pública no Ethereum).
Certificados fora da cadeia com acesso persistente
De acordo com esse esquema, os certificados são transformados em ficheiros JSON e armazenados fora da cadeia (idealmente numa plataforma de armazenamento descentralizado na nuvem, como IPFS ou Swarm). No entanto, um do ficheiro JSON é armazenado na cadeia e ligado a um DID através de um registo na cadeia. A DID associada pode ser a do emissor do certificado ou a do destinatário.
Esta abordagem permite que os certificados ganhem persistência com base na blockchain, mantendo a informação dos pedidos encriptada e verificável. Permite também a divulgação seletiva, uma vez que o detentor da chave privada pode decifrar a informação.
Certificados Off-chain
Os certificados na cadeia são mantidos em smart contracts na blockchain Ethereum. O contrato inteligente (agindo como um registo) mapeará um certificado para um identificador descentralizado correspondente na cadeia (uma chave pública).
Segue-se um exemplo para mostrar como os certificados na cadeia podem funcionar na prática:
Uma empresa (XYZ Corp) pretende vender ações de propriedade usando um contrato inteligente, mas só quer compradores que tenham concluído uma verificação do seu historial.
A XYZ Corp pode fazer com que a empresa que efetua verificações de historiais emita certificados na cadeia no Ethereum. Este certificado comprova que uma pessoa passou o inquérito pessoal sem expor qualquer informação pessoal.
O contrato inteligente que efetua a venda de ações pode verificar no contrato de registo as identidades dos compradores selecionados, o que permite ao contrato inteligente determinar quem está autorizado a comprar ou não ações.
Tokens Soulbound (de alma) e identidade
Tokens Soulbound(opens in a new tab) (NFTs não transferíveis) podem ser utilizados para recolher informações exclusivas de uma carteira específica. Isto cria efetivamente uma identidade única na cadeia ligada a um endereço Ethereum específico que pode incluir tokens que representam realizações (por exemplo, terminar um curso online específico ou passar uma pontuação limite num jogo) ou participação na comunidade.
Benefícios da identidade descentralizada
A identidade descentralizada reforça o controlo individual das informações de identificação. Os identificadores e certificados descentralizados podem ser verificados sem depender de autoridades centralizadas ou serviços de terceiros.
As soluções de identidade descentralizadas facilitam um método sem necessidade de confiança, sem falhas e com proteção da privacidade para verificar e gerir a identidade do utilizador.
A identidade descentralizada aproveita a tecnologia blockchain, que cria relações de confiança entre diferentes partes e fornece garantias criptográficas para provar a validade dos certificados.
A Identidade descentralizada torna portáteis os dados de identidade. Os utilizadores armazenam certificados e identificadores na carteira móvel e podem partilhá-los com qualquer entidade à sua escolha. Os identificadores e certificados descentralizados não ficam bloqueados na base de dados da organização emissora.
A identidade descentralizada deve funcionar perfeitamente com as tecnologias emergentes de conhecimento zero que permitirão aos indivíduos provar que possuem ou realizaram algo sem revelar o que é esse algo. Esta pode tornar-se uma forma poderosa de combinar confiança e privacidade em aplicações como votações.
A identidade descentralizada permite que os mecanismos anti-Sybil identifiquem quando um indivíduo humano está a fingir ser vários humanos para jogar ou enviar spam para um sistema.
Casos de utilização de identidade descentralizada
A identidade descentralizada tem muitos exemplos potenciais de utilização:
1. Logins universais
A identidade descentralizada pode ajudar a substituir os logins baseados em palavra-passe por autenticação descentralizada(opens in a new tab). Os prestadores de serviços podem emitir certificados para os utilizadores, que podem ser armazenados numa carteira Ethereum. Um exemplo de certificado seria um NFT que concede ao titular acesso a uma comunidade online.
Uma função Sign-In com Ethereum(opens in a new tab) permitiria então aos servidores confirmar a conta Ethereum do utilizador e obter o atestado necessário a partir do endereço da sua conta. Isto significa que os utilizadores podem aceder a plataformas e websites sem terem de memorizar palavras-passe longas e permite melhorar a experiência online dos utilizadores.
2. Autenticação KYC
A utilização de muitos serviços online exige que as pessoas forneçam certificados e credenciais, como a carta de condução ou o passaporte emitido pelo Estado. Mas esta abordagem é problemática porque as informações privadas do utilizador podem ser comprometidas e os prestadores de serviços não podem verificar a autenticidade do certificado.
A identidade descentralizada permite que as empresas ignorem os processos Conheça o seu cliente (KYC)(opens in a new tab) convencionais e autentiquem as identidades dos utilizadores através de credenciais verificáveis. Isto reduz o custo de gestão da identidade e previne a utilização de documentação falsa.
3. As votações e as comunidades online
A votação online e as redes sociais são duas novas aplicações que permitem a descentralização da identidade. Os sistemas de votação online são suscetíveis à manipulação, especialmente se atores criminosos criarem identidades falsas para votar. Pedir às pessoas que apresentem certificados na cadeia pode melhorar a integridade dos processos de votação online.
A identidade descentralizada pode contribuir para a criação de comunidades online livres de contas falsas. Por exemplo, cada utilizador pode ter que autenticar a sua identidade usando um sistema de identidade na cadeia, como o Ethereum Name Service, limitando a possibilidade de bots.
4. Proteção anti-Sybil
Os ataques Sybil referem-se a pessoas individuais que iludem um sistema, fazendo-o pensar que são várias pessoas para aumentar a sua influência. Aplicações de atribuição de subsídios(opens in a new tab) que utilizam votação quadrática(opens in a new tab) são vulneráveis a estes ataques Sybil porque o valor de um subsídio aumenta quando mais indivíduos votam nele, incentivando os utilizadores a dividir as suas contribuições por muitas identidades. As identidades descentralizadas ajudam a evitar esta situação, colocando sobre cada participante o ónus de provar que é realmente humano, embora muitas vezes sem ter de revelar informações privadas concretas.
Usar identidade descentralizada
Existem muitos projetos ambiciosos que utilizam o Ethereum como base para soluções de identidade descentralizadas:
- Ethereum Name Service (ENS)(opens in a new tab) - Um sistema de nomenclatura descentralizado para identificadores legíveis por computadores on-chain, como endereços de carteira Ethereum, hashes de conteúdo e metadados.
- SpruceID(opens in a new tab) - Um projeto de identidade descentralizado que permite aos utilizadores controlar a identidade digital com contas Ethereum e perfis ENS em vez de dependerem de serviços de terceiros.
- Ethereum Attestation Service (EAS)(opens in a new tab) - Um livro-razão/protocolo descentralizado para fazer certificações na cadeia ou fora da cadeia sobre qualquer coisa.
- Proof of Humanity(opens in a new tab) - Proof of Humanity (ou PoH) é um sistema de verificação de identidade social desenvolvido em Ethereum.
- BrightID(opens in a new tab) - Uma rede de identidade social descentralizada e de código aberto que procura reformular a verificação de identidade através da criação e análise de um diagrama social.
- Proof-of-personhood Passport (Passaporte de prova de identidade)(opens in a new tab) - Um agregador de identidade digital descentralizado.
Leitura adicional
Artigos
- Exemplos de uso de blockchain: Blockchain na Identidade Digital(opens in a new tab) - ConsenSys
- O que é o Ethereum ERC725? Gestão da identidade auto-soberana na Blockchain(opens in a new tab) - Sam Town
- Como a blockchain pode resolver o problema da identidade digital(opens in a new tab) - Andrew R. Chow
- O que é identidade descentralizada e por que motivo nos devemos interessar?(opens in a new tab) - Emmanuel Awosika
Vídeos
- Identidade descentralizada (sessão de transmissão ao vivo como bónus)(opens in a new tab) - Um excelente vídeo explicativo sobre identidade descentralizada por Andreas Antonopolous
- Sign-in com Ethereum e identidade descentralizada com Ceramic, IDX, React e 3ID Connect(opens in a new tab) - Tutorial no YouTube sobre a elaboração de um sistema de gestão de identidade para criar, ler e atualizar o perfil de um indivíduo usando a carteira Ethereum por Nader Dabit
- BrightID - Identidade descentralizada no Ethereum(opens in a new tab) - Episódio de podcast sobre o BrightID, uma solução de identidade descentralizada para o Ethereum
- A Internet fora da cadeia: Identidade Descentralizada & Credenciais Verificáveis(opens in a new tab) - EthDenver 2022 apresentação feita por Evin McMullen
Comunidades
- Aliança ERC-725 no GitHub(opens in a new tab) - Apoiantes da norma ERC725 para a gestão da identidade na blockchain Ethereum
- Servidor Discord do SpruceID(opens in a new tab) - Comunidade para entusiastas e programadores que trabalham no Sign-in com Ethereum
- Veramo Labs(opens in a new tab) - Uma comunidade de programadores que contribui para a criação de uma estrutura de dados verificáveis para aplicações