Este artigo aborda os principais conceitos de identidade descentralizada, a evolução da identidade na Internet, uma visão geral camada por camada da pilha de infraestrutura de identidade Web3 e o desenvolvimento relacionado de primitivas de privacidade. Prova de personalidade, conformidade e camadas de aplicação serão abordadas em artigos futuros.

Identidade é um atributo emergente que consiste em dados associados a uma pessoa, entidade ou objeto. No mundo físico, armazenamos estes dados nos nossos cérebros sob a forma de reputações abstratas e associações psicológicas. No mundo digital, a identidade é formalizada em dois componentes:

  • Identificador: um conjunto exclusivo de caracteres ou números que identifica um assunto (por exemplo, número do passaporte, ID do Twitter, carteira de estudante).

  • Dados relacionados ao assunto (por exemplo, histórico de viagens, tweets e seguidores, realizações acadêmicas).

Criar uma camada de identidade para a Internet é difícil porque falta consenso sobre o que deveria ser e como deveria funcionar. A identidade digital é contextual e experienciamos a Internet através de uma variedade de conteúdos que existem em pelo menos muitos contextos diferentes. Hoje, grande parte da nossa identidade digital está fragmentada e sob o controlo de um punhado de partes interessadas cujo interesse é evitar que saiamos do seu ambiente para qualquer outro lugar.

  • As empresas veem os relacionamentos com os clientes como ativos críticos e não estão dispostos a abrir mão do controle desses relacionamentos. Até o momento, não existe nenhum método que possa servir de incentivo para fazê-lo. Mesmo uma identidade temporária única é melhor do que uma estrutura sobre a qual eles não têm controle.

  • Setores específicos, como o financeiro, têm necessidades únicas (como conformidade) quando se trata de manter relacionamentos digitais com clientes e fornecedores.

  • Os governos têm necessidades distintas de outros tipos de organizações. Por exemplo, jurisdição sobre cartas de condução e passaportes.

Este modelo cria uma assimetria de poder entre os indivíduos e as partes que gerem as nossas identidades e dados. Limita a nossa autonomia, impedindo-nos de consentir, divulgar seletivamente informações sobre nós mesmos e transportar as nossas identidades entre contextos para experiências consistentes online e offline.

Antes da ascensão da Crypto e da web3, a identidade descentralizada era um esforço coletivo. O objetivo geral é que os indivíduos recuperem a autonomia sobre as suas identidades sem depender de um guardião único e centralizado. O uso indevido dos dados dos clientes e a erosão da confiança nas grandes empresas tornaram a descentralização central para a próxima era da identidade na Internet.

1 O conceito central de identidade descentralizada

Identificadores descentralizados (DIDs) e provas são os principais blocos de construção da identidade descentralizada. Os DIDs são publicados e armazenados em um Registro de Dados Verificáveis ​​(VDR) como um "namespace" autônomo que não é gerenciado centralmente. Além do blockchain, a infraestrutura de armazenamento descentralizada e as redes P2P também podem servir como VDR.

Aqui, entidades (indivíduos, comunidades, organizações) podem usar infraestrutura de chave pública (PKI) descentralizada para autenticar, provar propriedade e gerenciar seu DID. Ao contrário da PKI de rede tradicional, ela não depende de uma autoridade de certificação (CA) centralizada como raiz da rede. confiar.

Os dados sobre identidades são escritos como provas, ou seja, a “reivindicação” de uma identidade para outra (ou para si mesma). A verificação das reivindicações é realizada através de assinaturas criptográficas implementadas pela PKI.

Os identificadores descentralizados têm 4 propriedades principais:

  • Descentralização: Criação sem dependência de instituições centralizadas. As entidades podem ser criadas como quiserem, mantendo as identidades, funções e interações desejadas separadas em diferentes contextos.

  • Persistência: Uma vez criado, é atribuído permanentemente a uma entidade. (Embora alguns DIDs sejam projetados para identidades efêmeras).

  • Analisável: pode ser usado para revelar informações adicionais sobre a entidade.

  • Verificável: As entidades podem comprovar a propriedade de um DID ou reivindicações sobre ele (credenciais verificáveis) sem depender de terceiros, graças a assinaturas e atestados criptográficos.

Essas propriedades distinguem DIDs de outros identificadores, como nomes de usuário (não verificáveis), passaportes (não descentralizáveis) e endereços de blockchain (não persistentes e com capacidade de resolução limitada).

O World Wide Web Consortium (W3C) é uma comunidade internacional de organizações, funcionários e o público que trabalham juntos para desenvolver padrões da web. A especificação DID do W3C define 4 partes principais:

  • Cenário: O prefixo “did” informa a outros sistemas que está interagindo com um DID em vez de outro tipo de identificador, como URL, endereço de e-mail ou código de barras do produto.

  • Método DID: Especifica para outros sistemas como interpretar o identificador. Existem mais de 100 métodos DID listados no site do W3 C, frequentemente associados ao seu próprio VDR e a diferentes mecanismos para criar, analisar, atualizar e desativar identificadores.

  • Identificador Único: Um identificador exclusivo específico para um método DID. Por exemplo, um endereço em uma blockchain específica.

  • Arquivo DID: as três seções acima são analisadas em um arquivo DID, que contém a forma como a entidade pode se autenticar, quaisquer propriedades/declarações sobre a entidade e ponteiros para a localização de dados adicionais sobre a entidade (o "endpoint de serviço").

2 Impacto da criptografia

Embora a infraestrutura de chave pública (PKI) já exista há muito tempo, a Crypto acelerou sua adoção por meio do mecanismo de incentivo da rede de tokens. O que antes era utilizado principalmente por tecnólogos focados na privacidade é agora um pré-requisito para participar na nova economia. Os usuários precisam criar carteiras para autocustódia de ativos e interagir com aplicativos web3. Impulsionados pelo boom da ICO, pelo DeFi Summer, pela mania NFT e pela comunidade de tokenização, os usuários têm mais chaves em mãos do que nunca. O que se segue é um ecossistema vibrante de produtos e serviços que tornam o gerenciamento de chaves mais fácil e seguro. A criptografia tem sido o cavalo de Tróia perfeito para infraestrutura e adoção de identidade descentralizada.

Vamos começar com carteiras. Embora as carteiras ainda sejam pensadas principalmente no contexto da gestão de ativos no sentido financeiro, a tokenização e a história da rede nos permitiram representar nossos interesses (coleções NFT), trabalho (Kudos, 101) e opiniões (votação de governança). Perder suas chaves privadas está se tornando menos parecido com perder seu dinheiro e mais parecido com perder seu passaporte ou conta de mídia social. A criptografia confunde os limites entre o que possuímos e quem somos.

No entanto, as nossas atividades e participações na rede dão uma visão limitada de quem somos (e não preservam a privacidade). Blockchain é apenas uma camada da pilha de identidade descentralizada. Outras pilhas também ajudam a resolver problemas importantes, como:

  • Como nos identificamos e nos autenticamos em redes e ecossistemas?

  • Como podemos provar nossas qualidades (reputação, exclusividade, conformidade) e ao mesmo tempo manter a privacidade?

  • Como concedemos, gerenciamos e revogamos o acesso aos nossos dados?

  • Num mundo onde controlamos as nossas próprias identidades e dados, como interagimos com as aplicações?

As soluções para estes problemas terão um impacto profundo na aparência da Internet nas gerações vindouras.

As seções a seguir percorrem a pilha de identidade do Web3, camada por camada. Ou seja, registo verificável de dados, armazenamento descentralizado, mutabilidade e composição de dados, carteiras, autenticação, autorização e atestado.

3 Pilha de identidade Web3

Blockchain como um registro de dados verificável

A natureza distribuída e imutável do blockchain o torna adequado como um registro de dados verificável para a emissão de DIDs. Na verdade, vários blockchains públicos possuem métodos DID do W3 C, como:

  • No Ethereum, did:ethr:public key representa a identidade da conta Ethereum.

  • Cosmos, did:cosmos:chainspace:namespace:unique-id representa ativos que são compatíveis entre as cadeias do Cosmos.

  • Bitcoin, onde did:btcr: btcr-identifier representa um ID de transação codificado em TxRef que faz referência ao local da transação no blockchain Bitcoin baseado em UTXO.

Notável é did:pkh:address – uma abordagem DID generativa independente de razão projetada para permitir a interoperabilidade em redes blockchain. De acordo com o padrão CAIP-10, é um ID de conta, usado para expressão de pares de chaves entre cadeias.

Fractal é um protocolo de provisionamento e verificação de identidade projetado para aplicativos que exigem níveis exclusivos e variados de KYC para os usuários. Após a conclusão da validade e/ou verificações KYC, o Fractal DID é publicado no endereço Ethereum correspondente e adicionado à lista correspondente. O registro DID do Fractal é um contrato inteligente no Ethereum, segundo o qual as partes da transação podem consultar o DID do Fractal e seu nível de verificação.

Kilt, Dock e Sovrin são blockchains específicos de aplicativos para identidade autossoberana. No momento em que este livro foi escrito, eles eram usados ​​principalmente por empresas para emitir identidades e credenciais para usuários finais. Para participar da rede, os nós precisam apostar tokens nativos para processar transações como a emissão de DID/credenciais, definir esquemas de credenciais e realizar atualizações de revogação.

Armazenamento de dados descentralizado

Embora blockchains de uso geral também possam servir como fonte de dados imutáveis ​​do usuário, como propriedade de ativos e histórico de transações (como rastreadores de portfólio e aplicativos de “pontuação DeFi”), eles podem não ser adequados para armazenar a maioria dos dados sobre os usuários, porque. escrever e atualizar regularmente grandes quantidades de informações é operacionalmente caro e compromete a privacidade porque os dados são visíveis por padrão.

Dito isto, existem alguns blockchains específicos de aplicativos, como o Arweave*, que são projetados para armazenamento permanente. A Arweave paga aos mineradores recompensas em bloco e taxas de transação em troca de cópias de informações armazenadas na rede. Os mineradores precisam fornecer “prova de acesso” para adicionar novos blocos. Uma parte das taxas também é paga a um fundo de doação permanente que será pago aos mineiros no futuro, quando os custos de armazenamento não puderem ser cobertos pela inflação e pelas taxas.

Ethereum e Arweave são exemplos de abordagens baseadas em blockchain para persistência de dados. No Ethereum, cada nó completo deve armazenar toda a cadeia. No Arweave, todos os dados necessários para processar novos blocos e novas transações são registrados no estado de cada bloco individual, permitindo que novos participantes ingressem na rede simplesmente baixando o bloco atual de seus pares confiáveis.

A persistência baseada em contrato significa que os dados não podem ser copiados e armazenados permanentemente por cada nó. Em vez disso, os dados são persistidos por meio de contratos com vários nós, que concordam em manter um bloco de dados por um determinado período de tempo e devem ser renovados sempre que acabarem para manter a persistência dos dados.

O IPFS permite que os usuários armazenem e transmitam dados verificáveis ​​e endereçados por conteúdo em uma rede ponto a ponto. Os usuários podem salvar os dados que desejarem em seus próprios nós IPFS, aproveitar grupos de nós dedicados ou usar serviços "pinnin" de terceiros, como Pinata, Infura ou web3.storage. Enquanto houver um nó armazenando os dados, os dados existirão na rede e estarão disponíveis para outros nós quando eles os solicitarem. Além do IPFS estão camadas criptoeconômicas, como Filecoin e Crust Network, projetadas para incentivar o armazenamento de dados na rede, criando um mercado distribuído para persistência de dados de longo prazo.

Para informações de identificação pessoal (PII), o IPFS autorizado pode ser usado para cumprir o direito de ser esquecido do GDPR/CCPA, pois permite que os usuários excluam seus dados armazenados na rede. A carteira de identidade Nuggets adota essa abordagem e a descentraliza ainda mais, permitindo que comerciantes e parceiros executem nós dedicados.

Outras soluções de armazenamento descentralizado baseadas em contrato incluem Sia e Storj, que criptografam e dividem arquivos individuais em vários nós da rede. Ambos usam codificação de eliminação (exigindo apenas um subconjunto de nós de armazenamento para servir arquivos) para garantir a disponibilidade dos dados mesmo se alguns nós ficarem offline. Eles também têm uma estrutura de incentivos integrada e usam tokens nativos para armazenamento.

Mudanças de dados e composição

Universal Blockchain, Arweave e IPFS garantem imutabilidade, uma propriedade útil para dados como arte NFT estática e registros permanentes. No entanto, nossas interações com a maioria dos aplicativos hoje atualizam constantemente nossos dados. O protocolo Web3 projetado para dados voláteis faz isso, aproveitando a camada de armazenamento descentralizada subjacente.

Ceramic é um protocolo para mutabilidade e composição descentralizada de dados que funciona transformando arquivos imutáveis ​​em redes de armazenamento de dados persistentes como IPFS ou Arweave em estruturas de dados dinâmicas. No Ceramic, esses “fluxos de dados” são como seu próprio livro-razão mutável. Os dados privados podem ser armazenados fora da cadeia, com seu esquema indexado no Ceramic, anexado a um armazenamento de dados DID, levando ao armazenamento privado externo.

Quando os usuários atualizam seu perfil em um aplicativo com tecnologia Ceramic, o protocolo valida essas atualizações como um fluxo, transformando-o em um novo estado enquanto mantém o controle das alterações de estado anteriores. Cada atualização no Ceramic é autenticada por um DID que pode ser mapeado para vários endereços, abrindo caminho para que os usuários atualizem seus dados sem um servidor.

Hoje, as entidades Web2 possuem a UI e o backend, onde armazenam e controlam os dados do usuário. O Google e o Facebook usam esses dados para personalizar algoritmicamente nossa experiência em suas plataformas, produzindo ainda mais os dados que coletam. Novas aplicações têm de ser construídas do zero e não podem proporcionar uma experiência personalizada desde o início, tornando o mercado menos competitivo.

A Web3 democratiza os dados, nivela o campo de atuação para novos produtos e serviços e cria um ambiente aberto para experimentação e mercados competitivos para aplicativos. Em um mundo onde os usuários podem transferir dados de uma plataforma para outra, os desenvolvedores de aplicativos não precisam começar do zero; eles podem personalizar instantaneamente suas experiências. Os usuários podem fazer login com sua carteira e autorizar o aplicativo a ler/gravar em um “banco de dados” sobre o qual eles têm controle total.

ComposeDB on Ceramic é um banco de dados gráfico descentralizado que permite aos desenvolvedores de aplicativos descobrir, criar e reutilizar modelos de dados combináveis ​​usando GraphQL. Os nós no diagrama são contas (DIDs) ou arquivos (fluxos de dados). As arestas no gráfico representam relacionamentos entre nós.

Um DID representa qualquer entidade que possa gravar dados no gráfico, como um usuário final, organização, aplicativo ou qualquer tipo de serviço de autenticação.

Modelos são fluxos Ceramic que armazenam metadados sobre a estrutura de dados do documento, regras de validação, relacionamentos e informações de descoberta. Os desenvolvedores podem criar, combinar e remixar modelos em combinações de dados que servem como banco de dados para seus aplicativos. Isso substitui a tabela de usuários tradicional por um UID centralizado e dados relacionados. Os aplicativos podem ser criados em um conjunto de dados comum controlado pelos usuários, em vez de gerenciar suas próprias tabelas independentes.

Como as aplicações podem definir livremente os modelos que utilizarão em contextos específicos, o mercado de curadoria torna-se importante porque fornece um sinal para os modelos de dados mais úteis (esquema definido para gráficos sociais, postagens em blogs, etc.). Com um mercado para esses modelos de dados, os aplicativos podem sinalizar esses modelos para torná-los mais fáceis de consumir. Isto incentivará conjuntos de dados públicos a produzir melhores análises e infográficos, para que os produtos possam inovar ainda mais nesta base.

Tableland é uma infraestrutura para dados relacionais estruturados e mutáveis, onde cada tabela é cunhada como um NFT em uma cadeia compatível com EVM. O proprietário do NFT pode configurar a lógica de controle de acesso para a tabela, permitindo que terceiros realizem atualizações no banco de dados se essa parte tiver as permissões de gravação apropriadas. Tableland administra uma rede de validadores fora da cadeia que gerenciam a criação de tabelas e alterações subsequentes.

As atualizações dentro e fora da cadeia são tratadas por contratos inteligentes, que apontam para a rede Tableland usando baseURI e tokenURI. Com o Tableland, os metadados NFT podem ser modificados (usando controle de acesso), consultados (usando SQL) e combinados (com outras tabelas no Tableland).

Padrões de contratos inteligentes como ERC-20 e ERC-721 fornecem aos dapps uma linguagem compartilhada sobre como criamos e transferimos tokens, e os padrões de modelo de dados fornecem aos dapps uma compreensão compartilhada de perfis, reputações, propostas de DAO e gráficos sociais. Esses dados podem ser reutilizados por vários aplicativos por meio de um cadastro aberto que qualquer pessoa pode enviar.

A dissociação do aplicativo da camada de dados permite que os usuários portem seu conteúdo, gráfico social e reputação entre plataformas. Os aplicativos podem acessar o mesmo banco de dados e ser usados ​​em seu contexto, permitindo que os usuários obtenham uma reputação combinável em diferentes contextos.

carteira

Em termos gerais, uma carteira inclui as interfaces e a infraestrutura subjacente para gestão de chaves, comunicação (troca de dados entre titulares, emissores e validadores) e apresentação e verificação de reivindicações.

Vale a pena distinguir entre carteiras criptográficas (MetaMask, Ledger, Coinbase Wallet, etc.) e carteiras de identidade. As carteiras criptográficas armazenam chaves criptográficas exclusivas da rede blockchain e são projetadas para enviar/receber moedas e assinar transações. As carteiras de identidade armazenam identidades e permitem que os usuários criem e forneçam declarações para que possam fornecer dados de identidade entre aplicativos e serviços.

Exemplos de carteiras de identidade incluem ONTO, Nuggets e Polygon ID Wallet. Algumas carteiras de identidade, como a Fractal, incluem verificações de validade e KYC como parte de seu processo de integração, para que os usuários possam solicitar o envio de aplicativos que tenham tais requisitos. Isso é muito menos comum em carteiras criptografadas. Além disso, as carteiras de identidade também têm maior probabilidade de oferecer suporte a DIDs sancionados pelo W3C, credenciais verificáveis ​​e implementações de DIDComm, bem como casos de uso fora da web3.

WalletConnect é um protocolo de comunicação que conecta carteiras a carteiras e dapps. Como um protocolo minimalista e imparcial que já atende milhões de usuários de criptomoedas, o WalletConnect pode provar ser uma alternativa poderosa ao DIDComm para acelerar a adoção de uma infraestrutura de identidade autossoberana. Ao contrário do DIDComm, que exige que um provedor de serviços forneça infraestrutura de mediação hospedada, o WalletConnect armazena informações em uma “caixa de correio em nuvem” na rede de retransmissão, que é enviada para a carteira quando a carteira volta a ficar online.

Certificação

A autenticação é a confirmação da identidade de um usuário com base em um ou mais fatores de autenticação. Os fatores de autenticação podem ser algo que o usuário possui (assinatura digital, cartão de identificação, token de segurança), algo que ele conhece (senha, PIN, resposta secreta) ou biométrico (impressão digital, voz, varredura de retina).

Num paradigma de identidade descentralizado, os utilizadores podem autenticar-se utilizando as suas carteiras. Nos bastidores, a carteira usa suas chaves armazenadas para gerar assinaturas digitais que servem como “prova” de que o titular possui as chaves privadas associadas à conta. Como as carteiras criptografadas podem gerar assinaturas, os aplicativos que oferecem login web3 podem permitir que os usuários se autentiquem com seu Metamask ou WalletConnect.

Durante anos, os usuários de criptografia interagiram com dapps por meio de carteiras conectadas. O dapp não tem memória dos usuários conectados e os trata como uma folha em branco sempre que visitam um site.

Hoje, os usuários têm padrões de interação mais profundos com dapps. A identidade descentralizada torna-se útil aqui porque permite que os aplicativos obtenham mais contexto em torno do usuário, permitindo que os indivíduos mantenham o controle de seus dados e, ao mesmo tempo, proporcionem uma experiência personalizada.

Para interações contextuais mais ricas, como carregar preferências do usuário, perfis ou mensagens de bate-papo privadas, o aplicativo precisa primeiro garantir que está conversando com o verdadeiro detentor da chave por trás da conta. Embora as Connected Wallets não ofereçam esta garantia, os padrões de certificação oferecem. A autenticação estabelece uma sessão com o usuário e permite que os aplicativos leiam e gravem seus dados com segurança.

Sign-In with Ethereum (SIWE) é um padrão de autenticação desenvolvido pela Spruce, ENS e pela Ethereum Foundation. SIWE padroniza um formato de mensagem (semelhante ao jwt) para os usuários usarem um serviço de login de conta baseado em blockchain. Sign-In with X (CAIP-122) baseia-se nesta base, tornando o SIWE uma implementação do SIWx centrada no Ethereum, generalizando o padrão para operar em blockchains.

Para os indivíduos, isso significa poder registrar-se ou fazer login em sua carteira web3 sem a necessidade de criar um nome de usuário e uma senha, com uma experiência de usuário de “apenas alguns cliques” que imita o login social, mantendo o controle sobre sua identidade online. Os aplicativos podem usar isso como uma estratégia de marketing para atingir públicos nativos da web3 e atender às necessidades dos usuários.

No médio prazo, a capacidade de fazer login em dapps e outros serviços web2 usando uma carteira criptografada se tornará uma melhoria na experiência do usuário nativa da web3. No entanto, isso exporá os usuários a problemas de correlação e rastreamento que se tornam muito prejudiciais na web2. A autenticação através de peer DIDs ou identificadores autocertificados pode servir como uma solução alternativa.

Ao contrário dos DIDs "normais" descritos acima, os DIDs de pares são projetados para uso entre 2 ou N partes conhecidas. Eles podem ser usados ​​como um identificador único para cada serviço e/ou interação. O endereço da carteira criptografada nesta identidade digital pode ser armazenado no VC como prova de verificação para cada interação de comerciante ou serviço.

Autorização e controle de acesso

A autenticação confirma a identidade de um usuário, enquanto a autorização determina quais recursos uma entidade deve poder acessar e o que ela pode fazer com esses recursos. Esses dois processos são independentes, mas muitas vezes andam de mãos dadas no processo de experiência do usuário. Após fazer login em um serviço de terceiros usando login social, o usuário poderá receber algumas solicitações de autorização, conforme mostrado na figura a seguir:

No modelo de identidade federada, você autoriza aplicativos de terceiros a visualizar ou atualizar seus dados armazenados no provedor de identidade (como o Google), e eles mantêm uma lista e permissões relacionadas que você autorizou para esses aplicativos. A infraestrutura e os padrões de autorização Web3 também ajudam a atingir esse objetivo, exceto que você tem dados autossoberanos e pode conceder a terceiros o direito de descriptografar/ler/atualizar os dados sem a necessidade de um intermediário centralizado.

À medida que a comunidade de tokenização cresceu, também cresceram os produtos de token-gating da web3, como Collab.Land, Guild e Tokenproof. O principal uso dessas ferramentas é o controle de acesso para canais Discord exclusivos para membros, com acesso mais granular com base na função e na reputação. Em vez de atribuir acesso manualmente, as comunidades podem conceder acesso programaticamente com base em posses de tokens, atividades na cadeia ou verificação social.

Lit é um protocolo descentralizado de gerenciamento de chaves e controle de acesso que utiliza tecnologia MPC para distribuir "compartilhamentos" de chaves privadas entre nós da rede Lit. Um par de chaves pública/privada é representado por um NFT PKP (Par de Chaves Programáveis), cujo proprietário é o único controlador do par de chaves. Quando condições definidas arbitrariamente são atendidas, os proprietários de PKP podem acionar a rede para agregar compartilhamentos de chaves para descriptografar arquivos ou assinar mensagens em seu nome.

No contexto do controle de acesso, o Lit permite que os usuários definam condições na cadeia que concedem acesso a recursos fora da cadeia. Por exemplo, um DAO poderia fazer upload de um arquivo para Arweave ou AWS, criptografá-lo com Lit e definir um conjunto de condições (como propriedade de NFT). As carteiras qualificadas assinam e transmitem uma mensagem para os nós do protocolo, que verificam o blockchain para garantir que o signatário é elegível e, em caso afirmativo, agregam compartilhamentos de chaves para o signatário descriptografar o arquivo. Essa mesma infraestrutura também pode ser usada para desbloquear experiências web2, como descontos no Shopify, salas Zoom bloqueadas e espaços Gathertown, transmissão ao vivo e acesso ao Google Drive.

O Kepler organiza os dados em torno de bancos de dados controlados pelo usuário ("Orbits"), que representam uma lista designada de hosts para os dados e, como um contrato inteligente, apenas suas chaves podem controlá-los. Esses bancos de dados podem ser gerenciados por partes confiáveis, mecanismos de consenso entre hosts, proprietários de recursos e validade de permissão. Qualquer pessoa que use o SIWE pode aproveitar imediatamente um banco de dados privado para armazenar suas preferências, certificados digitais e arquivos privados. Com o suporte "traga seu próprio armazenamento" para vários back-ends de armazenamento, os usuários podem auto-hospedar ou usar uma versão gerenciada.

Alguns exemplos de como os aplicativos podem usar combinações dos blocos de construção mencionados anteriormente:

  • Orbis é um aplicativo de rede social ("web3 Twitter/Discord") que usa Ceramic para armazenamento de dados e atualizações. Mensagens privadas são primeiro criptografadas com Lit antes de serem armazenadas.

  • Use o Lit como um sistema de criptografia descentralizado para delegar quem pode descriptografar seus dados do Tableland.

  • O Kepler pode usar documentos de cerâmica como um farol para direcionar para lojas particulares.

  • Crie PKPs Lit que permitem que os aplicativos "possuam" um fluxo Ceramic e concedam às Ações Lit (código em IPFS) a capacidade de assinar e atualizar o banco de dados se condições arbitrárias forem atendidas.

CACAO é um padrão para expressar capacidades de objetos agnósticos de cadeia (OCAP), criado usando Sign-in-With X. Ele define um método para registrar os resultados das operações de assinatura SIWx como capacidades de objeto baseadas em IPLD (OCAP), criando não apenas aceitações de eventos autenticados, mas também recibos de autorização combináveis ​​e reproduzíveis para autorizações verificáveis.

Os métodos de autorização permitem que os usuários concedam aos aplicativos a capacidade detalhada, bem definida e verificável de visualizar/atualizar seus dados. Além disso, pode ser baseado em sessão para que eles não precisem assinar a mensagem a cada atualização, mas, em vez disso, tenham interações ricas no aplicativo e assinem uma vez no final da sessão.

Certificados e Credenciais

Aqui chegamos ao topo da pilha de infraestrutura de identidade descentralizada, conforme mostrado na figura.

Alguns termos:

  • Atestado refere-se à atestação de que uma declaração e assinatura são válidas e surge da necessidade de verificação independente dos eventos registrados.

  • Um voucher é qualquer documento detalhando informações sobre uma entidade, escrito e assinado por outra entidade ou por ela mesma. As credenciais são invioláveis ​​e verificáveis ​​criptograficamente e podem ser armazenadas em uma carteira.

Credenciais verificáveis ​​(VC) são o modelo de dados padrão e o formato de representação para credenciais digitais criptografáveis, conforme definido pela especificação de credenciais verificáveis ​​do W3C:

  • O emissor é a parte que emitiu a credencial (como uma universidade)

  • O titular possui a credencial (por exemplo, estudante)

  • O verificador verifica o certificado (como um potencial empregador)

  • Apresentação verificável ocorre quando os usuários compartilham seus dados com terceiros que podem verificar se a credencial foi realmente assinada pelo emissor

Observe que “emissor”, “titular” e “verificador” aqui são relativos. Cada um tem seu próprio DID e as credenciais que coleta.

As credenciais são a base da reputação, e a reputação é um fenômeno social que muda com a mudança das circunstâncias. Uma ou mais credenciais podem ser usadas como proxy para as qualificações, capacidades ou autoridade de uma entidade. Qualquer um pode dizer para si mesmo que se formou com louvor em uma universidade de prestígio, mas isso não significa nada para mais ninguém. Os certificados detidos pelas universidades são considerados legítimos ou de prestígio.

Embora nem todos os emblemas nativos da Web3 e projetos de certificação X adiram aos padrões VC do W3C, podemos extrair semelhanças dos sistemas descritos acima.

  • O exemplo mais direto são os emblemas NFT intransferíveis, que só podem ser emitidos por carteiras que tenham concluído alguma atividade na rede. Como todo o histórico de transações está na cadeia, ele é verificável e à prova de falsificação desde o início. O DegenScore quantifica seus atributos de macaco agregando suas interações com protocolos DeFi e gera uma pontuação usando regras em um contrato inteligente. Você pode cunhar moedas e mantê-las como uma “credencial DeFi” em sua carteira criptografada. Se houvesse um Degen DAO restrito àqueles com uma determinada pontuação, então você poderia apresentar este NFT ao DAO, e então o protocolo de token gating poderia verificar se você o possui, e você poderia entrar neste DAO - Prova de Degen .

  • POAPs * Prova de que você participou de um evento ou conheceu alguém IRL – Prova de Presença/Prova de Encontro.

  • Enquanto Otterspace permite que um DAO decida o que constitui um trabalho significativo e emita emblemas ntNFT para seus membros, Proved exige que um DAO "assine" uma reivindicação - uma Prova de Contribuição - antes de seus membros cunharem emblemas NFT específicos do DAO para ele.

  • 101 Ao final dos cursos online, após aprovação no teste, o aluno emite o ntNFT – Certificado de Aprendizagem.

  • Kleoverse emite emblemas de competência Typescript, Rust ou Solidity - prova de habilidades - para usuários com base em dados do GitHub.

  • Além dos casos de uso de controle de acesso descritos acima, os Lit PKPs também podem atuar como um notário criptográfico que o Lit Actions verifica antes de assinar um certificado. Por exemplo, uma plataforma educacional descentralizada poderia permitir que os criadores de cursos definissem o que conta como aprovação em um teste e implantassem essas condições como Ações Lit para emitir VC programaticamente usando seu PKP com base nessas condições.

Surgem aqui duas questões: quais desses pontos de dados de certificação são significativos e como os agregamos para ganhar reputação?

O protocolo Orange oferece uma solução para isso: integração desses pontos de dados em modelos bem definidos por meio de provedores de modelos. Na Orange, os deputados geralmente se referem a plataformas que possuem medidas de avaliação de reputação em seus sistemas. Os "fornecedores de dados" permitem que seus dados sejam usados ​​como entrada para modelos projetados por fornecedores de modelos. Os deputados então adicionam métodos de cálculo e atribuem marcadores de reputação a diferentes entidades e disponibilizam esses modelos para uso de terceiros. Os Dapps podem selecionar e conectar-se a esses modelos de reputação para seus casos de uso.

Até agora, Aave, Gitcoin, Snapshot, DAOHaus, etc. forneceram seus dados à Orange. Esses dados são modelados por eles e outros projetos como Dework, TalentDAO e Crypto Sapiens para fornecer ntNFTs aos membros, o que abre uma ampla gama de oportunidades, desde melhorar as permissões do Discord usando CollabLand e Guild, até a governança ponderada pela reputação do Snapshot.

privacidade

Nenhuma discussão sobre a infra-estrutura de identidade está completa sem considerar as preocupações com a privacidade e os princípios técnicos que permitem a privacidade. A privacidade é um fator em todos os níveis da pilha. Na última década, a adoção do blockchain acelerou o desenvolvimento de fortes primitivos criptográficos, como zk-proofs, além de sua aplicação em tecnologias de escalonamento, como rollups que permitem que as identidades façam alterações sutis em informações publicamente verificáveis, declaração de privacidade.

As garantias de privacidade ajudam-nos a evitar as externalidades negativas que advêm da utilização de dados totalmente transparentes para produzir afirmações fiáveis. Sem estas garantias, terceiros podem iniciar interações fora do âmbito (por exemplo, publicidade, assédio) que não estejam relacionadas com a transação original. Aproveitando a criptografia e as tecnologias zk, podemos construir sistemas de identidade onde as interações e o compartilhamento de dados são “sandboxed” dentro de limites claramente definidos e sensíveis ao contexto.

Credenciais verificáveis ​​"normais" normalmente vêm no formato JSON-JWT ou JSON-LD, e cada credencial tem um atestado externo ou incorporado (assinatura digital), tornando-a à prova de falsificação e verificável, de autoria do emissor.

As provas Zk e novos esquemas de assinatura aprimoram os recursos de proteção de privacidade do W3 C VC, como:

  • Resistência à Correlação: Toda vez que um titular compartilha uma credencial, esse identificador é compartilhado, então toda vez que uma credencial é apresentada significa que é possível os validadores conspirarem e verem onde o titular apresentou sua credencial e irá. pessoa. Com o Signature Braille, você pode compartilhar sempre uma prova única de sua assinatura, sem compartilhar a assinatura em si.

  • Divulgação seletiva: Compartilhe apenas os atributos necessários de um VC e oculte o resto. Tanto as credenciais JSON-JWT quanto as credenciais JSON-LD assinadas por LD exigem que o titular compartilhe a credencial inteira com o verificador – não há compartilhamento “parcial”.

  • Prova composta: Combine as propriedades de vários VCs em uma única prova, sem a necessidade de ir ao emissor ou gerar um novo VC.

  • Predição: Permite a utilização de valores ocultos nas operações, com valor fornecido pelo validador. Por exemplo, o saldo da conta de um titular de voucher excede um determinado limite sem divulgar o saldo ou, como é frequentemente citado, provar que você tem idade legal para beber sem divulgar sua data de nascimento.

Uma abordagem promissora é o esquema de assinatura BBS, originalmente proposto pelo MATTR em 2020. A proposta permite que assinaturas BBS sejam usadas com o formato JSON-LD comumente usado por VCs. O titular poderá, opcionalmente, divulgar declarações contidas no certificado originalmente assinado. A prova produzida por este esquema é uma prova de conhecimento zero da assinatura, o que significa que o verificador não pode determinar qual assinatura foi usada para produzir a prova, eliminando assim uma fonte comum de correlação.

Iden3 é um protocolo de identidade nativo do ZK que fornece uma estrutura ZK programável e bibliotecas de código aberto para primitivas de identidade ZK, autenticação e declarações geradas por atestado. O protocolo gera pares de chaves para cada identidade usando curvas elípticas Baby Jubjub, que são projetadas para funcionar de forma eficaz com zk-SNARKs usados ​​para provar propriedade de identidade e reivindicações de maneira que preserve a privacidade. PolygonID atualmente usa o protocolo para sua carteira de identidade.

A aplicação do zkp é uma área ativa de pesquisa e experimentação que gerou muito entusiasmo na comunidade criptográfica nos últimos anos. No web3, vimos isso ser usado nas seguintes aplicações:

  • Airdrop privado: Stealthdrop

  • Provas que preservam a privacidade, mas são confiáveis: Sismo (propriedade), Semaphore (adesão)

  • Mensagens anônimas: heyanon

  • Votação/votação anônima: Melo

4. Conclusão

Algumas implicações gerais deste estudo:

  • Assim como a Crypto catalisou o desenvolvimento e a adoção do DPKI, a reputação composta que concede acesso online/IRL será o catalisador para a infraestrutura de identidade descentralizada. Atualmente, os protocolos de emissão de credenciais (x-proof) estão fragmentados em diferentes casos de uso e redes blockchain. Em 2023, veremos a camada de agregação destes (como perfis) amadurecer e ganhar adoção como uma interface unificada, especialmente se puder ser usada para desbloquear experiências fora da criptografia, como acesso a eventos ou descontos em e-commerce.

  • O gerenciamento de chaves continua sendo um ponto de atrito e sujeito a pontos únicos de falha. Esta é uma experiência desajeitada para a maioria dos usuários nativos de criptografia e completamente inacessível para a maioria dos consumidores. A federação é uma melhoria da experiência do usuário no modelo web1.0 que permite logon único com nome de usuário e senha por aplicativo. Embora a experiência do usuário para autenticação web3 esteja melhorando, ela ainda oferece uma experiência de usuário ruim, requer uma frase-semente e fornece recursos limitados em caso de perda da chave. Veremos melhorias nesta área à medida que a tecnologia MPC amadurece e se espalha entre indivíduos e instituições.

  • A infraestrutura criptográfica está atendendo às necessidades dos usuários na web2. Os primitivos Web3 estão começando a se integrar com aplicativos e serviços web2, trazendo identidade descentralizada para as massas, como Collab.Land integrando-se com Nuggets, permitindo que os usuários do Reddit usem sua reputação como VC para desbloquear o acesso. O middleware de autenticação e autorização Auth0 integra o SIWE como um provedor de identidade e seus clientes corporativos agora podem fornecer login de carteira fora do SSO.

  • À medida que os dados se tornam democratizados, os mecanismos de purificação precisam de ser validados. Assim como o protocolo de indexação, o Graph usa uma rede de curadores e delegadores para sinalizar os subgráficos mais úteis (APIs para dados on-chain), os modelos de dados sobre usuários e a reputação de protocolos como Ceramic e Orange exigem tempo e envolvimento da comunidade para amadurecer além do DAO e casos de uso de criptografia.

  • Considerações sobre privacidade. Os projetos devem considerar cuidadosamente o impacto do armazenamento público ou persistente ao escolher sua pilha. Em relação a uma combinação de VC que preserva a privacidade, efêmero e P&DID, bem como ZKP para atividades dentro/fora da cadeia, NFTs de dados públicos “puros” podem ser adequados para casos de uso limitados (por exemplo, alguma abstração de dados on-chain). atividades) que fornecem recursos como divulgação seletiva, rotação de chaves, anticorrelação e revogabilidade.

  • Novas ferramentas criptográficas como zkSNARKs serão uma parte importante da próxima geração de infraestrutura de identidade. Embora o zkp esteja atualmente sendo implementado em casos de uso isolados, será necessário um esforço coletivo de P&D de baixo para cima para se concentrar em padrões de design de aplicativos, implementações de circuitos ZK para primitivas criptográficas, ferramentas de segurança de circuitos e ferramentas de desenvolvedor. Isso é algo para ficar de olho.

A identidade descentralizada é um grande projeto e requer os esforços de todo o ecossistema para convergir em padrões, iterar em primitivos e verificar uns aos outros quanto ao impacto das decisões de design.