Blockchain e Self Sovereign Identity (identidade auto-soberana). O que é isso? – ZEF | BLOCKCHAIN_
Abril 27, 2018 Abril 27, 2018 zef__1 comentário em Blockchain e Self Sovereign Identity (identidade auto-soberana). O que é isso?
Blockchain e Self Sovereign Identity (identidade auto-soberana). O que é isso?
Depois do recente escândalo Facebook e Cambridge Analytica, o hashtag #deletefacebook virou viral e muitos se perguntaram qual seria a alternativa.
A verdade é que a resposta talvez não passe por uma nova e melhor plataforma, mas antes uma nova infraestrutura. Centrada nas pessoas e que permita o nascimento de um novo ecossistema.
Uma infraestrutura que coloque as pessoas no controle das suas identidades. E isso significa que os cidadãos passam a ter soberania sobre a sua identidade digital, da mesma forma que têm soberania sobre a sua identidade física.
Self sovereign identity – ou em português, identidade auto-soberana.
Com self sovereign identity, os indivíduos deixam de depender que uma terceira entidade como o Facebook, lhes emita um "identificador". Isto é, o indivíduo criará os seus próprios "identificadores", detendo o controle e posse dos mesmos, bem como que informação deseja partilhar, com quem e sob que condições.
Hoje em dia, sob um paradigma onde não detemos nem controlamos os nossos "identificadores" digitais – ou se quisermos, aquilo que nos identifica online – estamos sujeitos aos termos e condições de terceiros, sejam eles empresas (Facebook, Google, etc) ou Governos.
O Ecossistema da Identidade é hoje dominado e controlado por estes intervenientes. No entanto, o surgimento da tecnologia blockchain (ou distributed ledgers) possibilita a inversão da equação, colocando, pela primeira vez, o poder do controle da identidade nas mãos dos indivíduos.
As grandes organizações passarão a estar ao serviço de, e numa relação com, o indivíduo, em vez de uma situação em que o indivíduo esta sujeito a estas entidades.
Self sovereign identity permite uma total mudança de paradigma.
No entanto, perceber como os indivíduos podem recolher, armazenar, gerir e apresentar a sua própria informação e dados pessoais através de devices e serviços que controlem é um desafio enorme.
Os desenvolvimentos científicos e tecnológicos dos últimos anos tornam, no entanto, o conceito de self sovereign identity possível. Algo que há cinco anos atrás, seguramente não o era.
Vamos explorar alguns desses desenvolvimentos.
Namespaces hierárquicos
Até agora, a única maneira de ancorarmos "identificadores" de nós mesmos na internet era através de namespaces (espaços de nomes) hierárquicos.
Por exemplo, num namespace privado, estamos sob os termos de serviço de uma empresa. Essa empresa pode encerrar a nossa identidade digital a qualquer momento por qualquer motivo.
Tal acontece com os endereços de email da Google ou com as contas do Twitter, Facebook, LinkedIn, Instagram e praticamente qualquer outro site onde criamos um nome de usuário e uma palavra-passe, que depois residem num espaço controlado por essa entidade.
Da mesma forma, existem também namespaces hierárquicos globais. Os dois mais comuns são os endereços IP geridos pela IANA (Internet Assigned Numbers Authority) e o sistema de nomes de domínios gerenciado pela Corporação da Internet para Atribuição de Nomes e Números (ICANN). Juntos trabalham para fornecer o sistema de endereços de sites.
Hoje, podemos comprar um domínio numa empresa como a GoDaddy e pagar entre €10 a €15 por ano para ter um nome num namespace que "detemos" dentro do sistema de nomes DNS global. Igualmente, no sistema global de números de telefone, podemos obter um número da nossa companhia telefónica.
Mas nos dois casos, estamos apenas a alugar o nosso identificador. Se não pagarmos a fatura do telefone por 30 dias ou não renovarmos o nome de domínio no próximo ano, o "nosso" número será concedido e o nome do domínio passará a poder ser comprado por outra pessoa.
Uma alternativa sería construir um espaço de nomes global apenas para pessoas. Este parecia ser um caminho razoável há mais de uma década, mas nunca levantou voo.
Hoje, no entanto, temos a possibilidade de uma verdadeira identidade auto-soberana enraizada em identificadores que não estão sob o controle de outra entidade, mas que são verdadeiramente controlados pelo indivíduo, graças à tecnologia blockchain.
Identificadores Descentralizados (DID)
O primeiro desafio é tornar esses identificadores únicos, funcionais ​​e reconhecíveis a uma escala global.
A especificação de Identificadores Descentralizados, desenvolvida sob os auspícios do World Wide Web Consortium (W3C), é a base da solução.
Esta especificação descreve o formato dos identificadores, bem como dos DDO's (DID Descriptor Objects – ou em português, Objetos Descritos por Identificadores Descentralizados) e ainda os documentos que contêm todos os metadados necessários para comprovar o controle e a propriedade de um identificador.
O DDO inclui:
DID (autodescritivo)
Lista de chaves públicas (para o proprietário)
Lista de DIDs de controle (para recuperação de chave)
Lista de terminais de serviço (para interação). Este é o coração de como alguém pode construir novas ferramentas e serviços em torno do indivíduo e coloca informações de identificação pessoal (PII) sob o seu controle.
Timestamps (para histórico de auditoria)
Assinatura digital com a chave privada (garante integridade)
Existem várias variedades de DID e métodos diferentes, mas todos seguem o mesmo esquema básico.
Distributed Ledgers (Ledgers distribuidos)
Existindo agora uma maneira de criar identificadores descentralizados uniformes a uma escala global, é necessário pensar onde serão armazenados. E como poderão ser acessados.
Distributed Ledgers (também conhecidos como blockchains) são a inovação que o permite.
As entradas no banco de dados são periodicamente (de um a dez minutos, dependendo dos detalhes) e criptograficamente "seladas", sendo assim praticamente impossíveis de alterar.
Portanto, quando criamos um DID e o armazenamos num Distributed Ledger, ele não pode, para todos os efeitos, ser apagado.
Temos assim uma solução funcional de um namespace à escala global e, descentralizada. Em seguida, precisamos adicionar segurança na forma de chaves criptográficas.
Public e Private Keys
Como podemos provar que possuimos um DID específico? A resposta é, usando a boa e velha infra-estrutura de Public Keys (PKI).
No passado escrevi sobre public e private keys no contexto geral dos protocolos blockchain aqui.
Resumidamente, chaves públicas e privadas são matematicamente relacionadas, mas com números diferentes. As chaves públicas podem ser reveladas para o mundo, enquanto as chaves privadas devem ser mantidas em segredo para que apenas o seu detentor possa usá-las.
Digamos que eu quero enviar uma mensagem para a Alice. Eu pego na sua chave pública (que tem um relacionamento matemático especial com a sua chave privada), na minha chave pública e na minha chave privada e uso esses três números para "misturar" a mensagem.
Em seguido envio tudo para a Alice. Ela pega na minha chave pública e nas suas chaves pública e privada e usa esses três números para decifrar a mensagem. Esta é a base da criação de canais de comunicação seguros para tudo.
Descobrimos assim como ter identificadores individuais, detidos por pessoas com a capacidade de controlá-los e protegê-los, a uma escala global.
Agora que temos a infraestrutura subjacente, precisamos de serviços.
Mobile apps e serviços cloud
Neste novo sistema, cada indivíduo possui centenas de identificadores para diferentes tipos de relações com diferentes pessoas, aplicativos e provedores de serviços.
Parece um pesadelo, mas felizmente os softwares podem trabalhar em nome do usuário final para gerir todas estas chaves.
Existirão empresas que fornecerão aplicativos e serviços na cloud para isso. No entanto, o poder estará nas mãos do indivíduo caso este queira mudar de prestador de serviço.
Além disso, as pessoas podem ainda delegar esta gestão de dados a agentes confiáveis ​​- que podem ser os pais de uma criança, os filhos adultos de um idoso ou um advogado ou contabilista.
O controle final é com o indivíduo (ou o agente do indivíduo), que tem a capacidade de, a qualquer momento, alterar o prestador de serviço. Da mesma forma que temos, hoje em dia, a capacidade de levantar o nosso dinheiro de um banco e usar um banco diferente para armazenar as nossas economias.
Claims verificáveis
Mas com todos estes identificadores descentralizados, como se pode saber informação chave proveniente de diferentes entidades?
O que irá acontecer é que entidades que têm o conhecimento autorizado de uma determinada informação de um indivíduo poderão emitir uma claim verificável e registar que o fizeram numa Ledger.
Imaginemos a nossa data de nascimento, que é um fato que os nossos pais registaram com o governo após o nosso nascimento. O País ou Estado onde nascemos tem um registo de todos os nascimentos e, neste exemplo específico, será o responsável por emitir estas claims.
Tal claim verificável (o equivalente à informação numa certidão de nascimento) pode depois ser enviada em formato digital para o telemóvel da pessoa e poderá ser usada noutros contextos com entidades que solicitam uma data de nascimento.
Outros tipos de claims verificáveis podem incluir a permissão para conduzir, diplomas ou mesmo algo mais específico, como a aprovação numa cadeira da faculdade ou a prova de que somos funcionários de uma determinada empresa.
A padronização deste processo está a ser feita pelo Grupo de Trabalho de Declarações Verificáveis ​​e pelo Grupo de Comunidade de Credenciais do W3C.
É assim possível garantir a co-existência de identificadores descentralizados e a legitimidade de asserções, reivindicações e atributos-chave.
O problema "phone home"
Imaginemos agora que estamos num bar. Hoje em dia, o barman olha para o nosso cartão de identificação e geralmente acredita na veracidade da data de nascimento – a menos que seja uma farsa óbvia.
Mas e se fosse uma licença digital? Como se pode acreditar (ou não) numa licença digital?
O barman teria que "telefonar para casa" (phone home). Neste caso, para o Estado – o emissor da licença – para verificar se a afirmação digital de que temos mais de 18 anos é verdadeira.
E isso não é algo que queremos que aconteça. O Estado saberia assim todos os lugares onde usámos as nossas claims digitais verificáveis. Em outras palavras, teríamos um Big Brother a controlar todos os nossos passos.
Mas suponhamos que, em vez disso, a prova de emissão das claims pelo emissor é armazenada numa Ledger pública que pode ser consultada pelo "verificador".
Assim, o "verificador" pode estabelecer a veracidade da claim e que esta veio, de fato, do emissor, sem interagir com o mesmo.
Estamos quase a juntar todas as componentes que permitem o surgimento de uma self sovereign identity. Falta agora apenas provar uma claim sem revelar outros segredos.
Como podemos provar que uma claim é verdadeira, não compartilhando todas as outras informações que ela contem?
Voltando ao exemplo do bar, como podemos provar que temos mais de 18 anos sem revelarmos a nossa data de nascimento completa ou, melhor ainda, o nosso nome e morada que, regra geral, também são exibidos nos cartões de identificação?
Felizmente, há matemática extravagante que torna provas criptográficas fáceis.
Quando um tipo de claim Zero Knowledge Proof (ZKP) é emitida para um qualquer indivíduo, ele pode apresentar essa mesma claim ao "verificador". E este pode simplesmente acreditar devido à forma como ela foi codificada criptograficamente.
Podemos usar declarações verificadas para compartilhar alguns, mas não todos, os aspectos de uma claim de um emissor.
Isto é essencial para preservar a privacidade dos indivíduos, porque nem todas as informações são compartilhadas com o verificador que, ainda assim, pode confiar na veracidade da claim.
Contudo, nem todas as provas duram para sempre. Existem casos especiais e precisamos ter o poder de revogar certas claims.
Revogação de claims
Zero-Knowledge Proof já existe há algum tempo e funciona muito bem para o tipo de claims que não podem ser revogadas – como a data de nascimento de alguém. O Estado não volta atrás e diz "afinal esta pessoa não nasceu".
No entanto, ZKP não funciona bem para claims que envolvem revogação.
Por exemplo, se somos atualmente funcionários de uma determinada empresa, mas talvez não o sejamos no próximo ano. Se uma ZKP claim foi emitida no passado, não há como saber se ela já foi ou não revogada.
Porque saber se algo é verdade agora, e não se era verdade no passado, é parte fundamental de qualquer claim – caso contrário estas são inúteis.
Felizmente existe algo chamado CL Proof, que complementa o conceito de ZPK e que é um pouco mais sofisticado matematicamente. O CL Proof concede aos emissores o poder de revogar declarações e permite que os verificadores vejam essas revogações.
Podemos assim passar a usar ZKP's para uma gama de claims muito mais alargada e que engloba, basicamente, quase todo o tipo de identificadores possíveis.
Conculsão
Reunidas todas estas inovações, um sistema de identidade auto-soberano passa agora a ser possível.
Vale a pena notar que este termo é relativamente novo e evolui do termo "identidade centrada no usuário".
Esta nova infraestrutura de padrões abertos estabelece uma base real para uma nova camada da Internet que substituirá o Facebook e outras entidades no ecossistema da Identidade.
Uma nova camada em que as pessoas possuem e controlam as suas identidades e se conectam a quaisquer ferramentas e serviços exclusivamente sob as suas próprias condições e não subjugadas aos termos de outros.
Nos ultimos tempos tenho vindo a acompanhar um projecto (Civic) que promete criar "uma identidade segura para todos". Acredito que muitos outros projetos irão surgir e estou bastante curioso para ver como este espaço vai evoluir no curto e no longo prazo.
Categorias blockchainEtiquetas identidade auto-soberana, self-sovereign identity
Uma opinião sobre "Blockchain e Self Sovereign Identity (identidade auto-soberana). O que é isso?"
Carlos Faria (@CarlosFaria9) Abril 27, 2018 — 10:44 am
Imagino um sistema nacional de saúde, onde os utentes tenham total controle sobre o seu historial médico. A Estónia foi a pioneira num sistema semelhante: https://en.wikipedia.org/wiki/Electronic_health_record#Estonia
Acredito que com um sistema nestes moldes consiga garantir maior privacidade, integridade e confidencialidade dos registos médicos. Acho que são as características desejadas por todos!