Quando zk-SNARKs se tornam o "escudo" da identidade digital, podemos perder o direito à anonimidade devido ao "um indivíduo, uma identidade" - essa é a verdadeira disputa por trás da tecnologia.
Escrito por: Vitalik Buterin
Compilado por: Saoirse, Foresight News
Atualmente, a utilização de zk-SNARKs em sistemas de identidade digital para proteger a privacidade tornou-se, até certo ponto, mainstream. Diversos projetos de passaporte baseado em zk-SNARKs estão desenvolvendo pacotes de software extremamente amigáveis para os usuários, permitindo que eles provem que possuem uma identificação válida sem revelar nenhum detalhe da sua identidade. O World ID (anteriormente conhecido como Worldcoin), que utiliza tecnologia de biometria para verificação e garante a privacidade através de zk-SNARKs, recentemente ultrapassou a marca de 10 milhões de usuários. Um projeto governamental de identidade digital na região de Taiwan, China, também utiliza zk-SNARKs, e a União Europeia tem dado cada vez mais atenção ao zk-SNARKs em seu trabalho na área de identidade digital.
À primeira vista, a identidade digital baseada na tecnologia zk-SNARKs parece estar amplamente adotada e pode ser uma grande vitória para o d/acc* (Nota: conceito proposto por Vitalik em 2023, que defende o avanço da tecnologia descentralizada por meio de ferramentas tecnológicas (como criptografia, blockchain, etc.), acelerando o progresso tecnológico enquanto defende riscos potenciais e equilibrando a inovação tecnológica com segurança, privacidade e a autonomia humana.)*. Ela pode proteger nossas mídias sociais, sistemas de votação e diversos serviços da internet contra ataques de bruxas e manipulação por robôs, sem sacrificar a privacidade. Mas será que as coisas são realmente tão simples assim? A identidade baseada em zk-SNARKs ainda apresenta riscos? Este artigo irá esclarecer os seguintes pontos:
zk-SNARKs embalagem (ZK-wrapping) resolveu muitos problemas importantes.
A identificação embalada em zk-SNARKs ainda apresenta riscos. Esses riscos parecem estar pouco relacionados com a biometria ou passaportes, sendo que a maior parte dos riscos (vazamento de privacidade, vulnerabilidade a coação, erro de sistema, etc.) provém principalmente da manutenção rígida da propriedade de "uma pessoa, uma identificação".
O outro extremo, que é usar a "prova de riqueza (Proof of wealth)" para combater ataques de bruxas, na maioria dos cenários de aplicação é insuficiente, por isso precisamos de algum tipo de solução "semelhante à identificação".
O estado ideal teórico situa-se entre os dois, ou seja, o custo de obter N identidades é N².
Esta condição ideal é difícil de alcançar na prática, mas uma "identificação múltipla" se aproxima dela, sendo, portanto, a solução mais realista. A identificação múltipla pode ser explícita (por exemplo, uma identidade baseada em um gráfico social) ou implícita (várias tipos de zk-SNARKs coexistem, e nenhuma dessas tipos tem uma participação de mercado próxima de 100%).
Como funciona a identificação embalada em zk-SNARKs?
Imagine que você obteve um World ID ao escanear sua íris, ou usou o leitor NFC do seu celular para escanear seu passaporte, obtendo uma identificação baseada em zk-SNARKs. Para os fins deste artigo, as propriedades centrais dessas duas abordagens são consistentes (existem apenas algumas diferenças marginais, como no caso de múltiplas nacionalidades).
No seu telemóvel, há um valor secreto s. No registo global em cadeia, existe um valor hash público H(s). Ao fazer login na aplicação, você irá gerar um ID de utilizador específico para essa aplicação, ou seja, H(s, app_name), e validar através de zk-SNARKs: este ID origina-se do mesmo valor secreto s que algum valor hash público no registo. Assim, cada valor hash público pode gerar apenas um ID para cada aplicação, mas nunca revelará qual ID exclusivo de uma aplicação corresponde a qual valor hash público.
Na verdade, o design pode ser um pouco mais complexo. No World ID, o ID exclusivo do aplicativo é na verdade o valor hash que contém o ID do aplicativo e o ID da sessão, permitindo que diferentes operações dentro do mesmo aplicativo possam ser desvinculadas umas das outras. O design baseado em zk-SNARKs para passaportes também pode ser construído de maneira semelhante.
Antes de discutir as desvantagens deste tipo de identificação, é necessário reconhecer as vantagens que ele traz. Fora do nicho da identificação por zk-SNARKs (ZKID), para provar a sua identidade a serviços que necessitam de verificação, você é obrigado a revelar sua identidade legal completa. Isso viola gravemente o "princípio do menor privilégio" da segurança computacional: um processo deve ter apenas as permissões e informações mínimas necessárias para realizar sua tarefa. Eles precisam provar que você não é um robô, que tem mais de 18 anos ou que vem de um país específico, mas o que obtêm é apenas uma indicação da sua identidade completa.
A melhor solução de melhoria atualmente realizável é o uso de tokens indiretos, como números de telefone e números de cartão de crédito: neste caso, a entidade que conhece o seu número de telefone / número de cartão de crédito associado a atividades dentro da aplicação e a entidade que sabe o seu número de telefone / número de cartão de crédito associado à identidade legal (empresa ou banco) estão separadas entre si. No entanto, essa separação é extremamente frágil: o número de telefone e outros tipos de informações podem ser divulgados a qualquer momento.
E com a ajuda da tecnologia de embalagem zk-SNARKs* (ZK-wrapping, uma técnica que utiliza zk-SNARKs para proteger a privacidade da identidade dos usuários, permitindo que os usuários provem sua identidade sem revelar informações sensíveis)*, os problemas mencionados acima foram em grande parte resolvidos. Mas o que se segue é um ponto que é menos mencionado: ainda existem algumas questões que não foram resolvidas, e que podem até se agravar devido à rígida limitação de "uma pessoa, uma identidade" nesses tipos de soluções.
zk-SNARKs por si só não podem realizar anonimato
Suponha que uma plataforma de identificação baseada em zk-SNARKs funcione exatamente como esperado, reproduzindo rigorosamente toda a lógica acima mencionada, e que até tenha encontrado uma maneira de proteger as informações privadas de usuários não técnicos a longo prazo, sem depender de instituições centralizadas. Mas, ao mesmo tempo, podemos fazer uma suposição realista: os aplicativos não cooperarão ativamente com a proteção da privacidade; eles seguirão o princípio do "pragmatismo", e as soluções de design adotadas, embora aleguem "maximizar a conveniência do usuário", parecem sempre favorecer seus próprios interesses políticos e comerciais.
Em tais cenários, as aplicações de redes sociais não adotam designs complexos como a rotação frequente de chaves de sessão, mas atribuem a cada usuário um ID exclusivo e específico da aplicação. E, como o sistema de identificação segue a regra de "uma pessoa, uma identidade", os usuários só podem ter uma conta (o que contrasta com a "identidade fraca (weak ID)" atual, onde uma pessoa comum pode facilmente registrar cerca de 5 contas, como a conta do Google). No mundo real, a realização do anonimato geralmente requer várias contas: uma para a "identidade regular" e outras para várias identidades anônimas (veja "finsta e rinsta"). Portanto, nesse modelo, a anonimidade que os usuários podem realmente obter pode ser inferior ao nível atual. Assim, mesmo um sistema "uma pessoa, uma identidade" embalado por zk-SNARKs pode nos levar gradualmente a um mundo onde todas as atividades devem depender de uma única identidade pública. Em tempos de riscos crescentes (como a vigilância por drones, etc.), privar as pessoas da escolha de se protegerem através do anonimato terá sérias consequências negativas.
zk-SNARKs não podem proteger você de coerção
Mesmo que você não divulgue seu valor secreto s, ninguém pode ver as associações públicas entre suas contas, mas e se alguém for forçado a divulgar? O governo pode exigir a revelação de seu valor secreto para verificar todas as suas atividades. Isso não é uma conversa vazia: o governo dos EUA já começou a exigir que os solicitantes de visto divulguem suas contas de mídia social. Além disso, empregadores também podem facilmente exigir a divulgação de informações públicas completas como condição para a contratação. Até mesmo, aplicativos individuais podem tecnicamente exigir que os usuários revelem sua identificação em outros aplicativos antes de permitir o registro (usar login em app executa isso por padrão).
Da mesma forma, nestes casos, o valor da propriedade zk-SNARKs desaparece, mas as desvantagens da nova propriedade "uma pessoa, uma conta" ainda persistem.
Podemos talvez reduzir o risco de coerção através de otimização de design: por exemplo, adotando um mecanismo de cálculo multipartidário para gerar um ID exclusivo para cada aplicação, permitindo que os usuários participem conjuntamente com as partes de serviço. Assim, se não houver a participação do operador da aplicação, os usuários não poderão provar seu ID exclusivo naquela aplicação. Isso aumentaria a dificuldade de forçar outros a revelar sua identificação completa, mas não eliminaria completamente essa possibilidade, além de que esse tipo de solução ainda possui outras desvantagens, como exigir que os desenvolvedores da aplicação sejam entidades ativas em tempo real, em vez de serem contratos inteligentes passivos na blockchain (que não requerem intervenção contínua).
zk-SNARKs em si não conseguem resolver riscos não relacionados à privacidade
Todas as formas de identificação têm casos limítrofes:
Baseado na identificação emitida pelo governo (Government-rooted ID), incluindo passaporte, não cobre pessoas apátridas e não inclui pessoas que ainda não obtiveram tais documentos.
Por outro lado, este tipo de sistemas de identificação baseados no governo concederá privilégios únicos aos detentores de múltiplas nacionalidades.
A entidade emissora de passaportes pode ser alvo de ataques de hackers, e as agências de inteligência de países hostis podem até falsificar milhões de identidades falsas (por exemplo, se as "eleições de guerrilha" ao estilo russo se tornarem comuns, pode-se usar identidades falsas para manipular as eleições).
Para aqueles cujas características biológicas relevantes estão danificadas devido a doenças ou lesões, a identificação biométrica tornará-se completamente ineficaz.
A identificação biométrica pode ser facilmente enganada por cópias. Se o valor da identificação biométrica se tornar extremamente alto, podemos até ver pessoas especializadas em cultivar órgãos humanos apenas para "produzir em massa" esse tipo de identificação.
Esses casos extremos representam o maior perigo para sistemas que tentam manter a propriedade de "uma pessoa, uma identificação", e não têm relação com a privacidade. Portanto, zk-SNARKs não podem ajudar nesse aspecto.
Confiar na "prova de riqueza" para prevenir ataques de bruxas não é suficiente para resolver o problema, por isso precisamos de algum tipo de sistema de identificação.
Num grupo puramente de ciberpunk, uma alternativa comum é: confiar completamente na "prova de riqueza" para prevenir ataques de bruxas, em vez de construir qualquer forma de sistema de identificação. Ao fazer com que cada conta gere um certo custo, é possível impedir que alguém crie facilmente um grande número de contas. Essa prática já tem precedentes na internet, por exemplo, o fórum Somethingawful exige que as contas registradas paguem uma taxa única de 10 dólares, que não será reembolsada se a conta for banida. No entanto, isso na prática não é um verdadeiro modelo econômico criptográfico, pois o maior obstáculo para criar uma nova conta não é o reembolso de 10 dólares, mas sim obter um novo cartão de crédito.
Em teoria, é até possível tornar os pagamentos condicionais: ao registrar uma conta, você apenas precisa fazer um depósito de fundos, e só perderá esse montante em casos extremamente raros, como quando a conta é banida. Em teoria, isso pode aumentar significativamente o custo de ataque.
Este plano tem um efeito significativo em muitos cenários, mas em certos tipos de cenários é completamente ineficaz. Irei focar em duas categorias de cenários, que chamarei provisoriamente de "cenários semelhantes ao rendimento básico universal (UBI-like)" e "cenários semelhantes à governança (governance-like)".
necessidade de identificação em cenários semelhantes a Renda Básica Universal (UBI-like)
A chamada "cenário de rendimento básico quase universal" refere-se a situações em que é necessário distribuir uma certa quantidade de ativos ou serviços a uma vasta (idealmente, a totalidade) gama de usuários, sem considerar a sua capacidade de pagamento. O Worldcoin é um exemplo sistemático disso: qualquer pessoa que possua um World ID pode receber regularmente uma pequena quantidade de tokens WLD. Muitos airdrops de tokens também realizam objetivos semelhantes de forma mais informal, tentando fazer com que pelo menos uma parte dos tokens chegue ao maior número possível de usuários.
Na minha opinião, não acho que o valor desses tipos de tokens possa atingir um nível suficiente para sustentar o sustento pessoal. Em uma economia impulsionada por inteligência artificial, com uma escala de riqueza que atinge mil vezes a atual, esses tipos de tokens podem ter valor para sustentar a vida; mas mesmo assim, projetos liderados por governos que têm riqueza em recursos naturais como apoio, ainda ocuparão uma posição mais importante no nível econômico. No entanto, acredito que o que esses "mini-UBIs" podem realmente resolver é: permitir que as pessoas obtenham uma quantidade suficiente de criptomoedas para realizar algumas transações básicas na cadeia e compras online. Os exemplos podem incluir:
Obter nome ENS
Publicar um hash na cadeia para inicializar uma identificação zk-SNARKs
pagamento de taxas de plataformas de redes sociais
Se as criptomoedas forem amplamente adotadas em todo o mundo, essa questão deixará de existir. Mas, na atualidade em que as criptomoedas ainda não estão disseminadas, isso pode ser o único meio para as pessoas acessarem aplicações não financeiras em blockchain e serviços de produtos online relacionados, caso contrário, elas podem não ter acesso a esses recursos.
Além disso, existe outra maneira de alcançar um efeito semelhante, que é a «identificação de serviços básicos universais»: fornecer a cada pessoa com identificação a permissão para enviar um número limitado de transações gratuitas dentro de aplicativos específicos. Esta abordagem pode estar mais alinhada com os mecanismos de incentivo e ter maior eficiência de capital, pois cada aplicativo que se beneficia dessa adoção pode fazê-lo sem ter que pagar por usuários não ativos; no entanto, isso também vem com uma certa troca, ou seja, a universalidade será reduzida (os usuários só podem garantir acesso aos aplicativos que participam deste programa). Mas, mesmo assim, ainda é necessária uma solução de identificação aqui para evitar que o sistema sofra ataques de spam, ao mesmo tempo em que se evita a exclusividade, que surge da exigência de que os usuários paguem de alguma forma, e esses métodos de pagamento podem não estar disponíveis para todos.
A última categoria importante que merece destaque é o «depósito de segurança básica universal (universal basic security deposit)». Uma das funções da identificação é fornecer um alvo que pode ser utilizado para responsabilização, sem a necessidade de os usuários empenharem um montante de capital equivalente ao incentivo. Isso também ajuda a alcançar um objetivo: reduzir a dependência do montante de capital pessoal na barreira de entrada (mesmo sem a necessidade de qualquer capital).
necessidade de identificação em cenários semelhantes à governança (governance-like)
Imagine um sistema de votação (por exemplo, os "likes" e compartilhamentos em plataformas de redes sociais): se os recursos do usuário A são 10 vezes maiores que os do usuário B, então seu poder de voto também será 10 vezes maior que o de B. Mas, do ponto de vista econômico, cada unidade de poder de voto traz a A um retorno 10 vezes maior do que a B (porque A tem uma dimensão maior e qualquer decisão terá um impacto mais significativo em seu nível econômico). Portanto, no geral, o voto de A traz 100 vezes mais benefício para ele mesmo do que o voto de B traz para B. É por isso que vemos que A investe muito mais esforço em participar das votações, estudar como votar para maximizar seus próprios objetivos, e até mesmo pode manipular estrategicamente os algoritmos. Esta é também a razão fundamental pela qual as "baleias" podem exercer uma influência excessiva no mecanismo de votação baseado em tokens.
Uma razão mais universal e mais profunda é a seguinte: o sistema de governança não deve atribuir o mesmo peso a "uma pessoa controlando 100 mil dólares" e "1000 pessoas possuindo 100 mil dólares". O último representa 1000 indivíduos independentes, portanto, conterá informações valiosas mais ricas, em vez de uma alta repetição de informações de pequeno volume. Os sinais de 1000 pessoas também tendem a ser mais "moderados", pois as opiniões de diferentes indivíduos muitas vezes se anulam.
Este ponto aplica-se tanto a sistemas de votação formais como a "sistemas de votação informais", por exemplo, a capacidade das pessoas de participar na evolução cultural através da expressão pública.
Isto indica que os sistemas de governança não estarão realmente satisfeitos com a abordagem de "independentemente da origem dos fundos, todos os pacotes de fundos de igual dimensão são tratados da mesma forma". O sistema na verdade precisa entender o nível de coordenação interna desses pacotes de fundos.
É importante notar que, se você concorda com a minha estrutura de descrição dos dois tipos de cenários (cenário de rendimento básico universal e cenário de governança), então, do ponto de vista técnico, a necessidade de uma regra clara como "um homem, um voto" já não existe.
Para aplicações de cenários semelhantes a uma Renda Básica Universal (UBI-like), o verdadeiro esquema de identificação necessário é: a primeira identificação é gratuita, e há um limite no número de identificações disponíveis. Quando o custo de obter mais identificações se torna suficientemente alto a ponto de tornar as ações de ataque ao sistema sem sentido, o efeito de limitação é alcançado.
Para aplicações do tipo governança, a necessidade central é: ser capaz de determinar, através de algum indicador indireto, se o recurso com o qual você está lidando é controlado por um único agente ou se pertence a um grupo "naturalmente formado", com um nível de coordenação relativamente baixo.
Em ambos os cenários, a identificação continua a ser muito útil, mas a exigência de seguir regras rigorosas como "uma pessoa, uma identificação" já não existe.
O estado ideal teórico é: o custo para obter N identidades é N²
A partir dos argumentos acima, podemos ver que há duas pressões de extremos opostos que limitam a dificuldade esperada de obter múltiplas identificações no sistema de identificação:
Primeiro, não se deve estabelecer um limite rígido e claramente visível para o "número de identidades que podem ser facilmente obtidas". Se uma pessoa só pode ter uma identidade, a anonimidade não pode ser discutida, e ela pode ser coagida a revelar sua identidade. Na verdade, mesmo um número fixo maior que 1 apresenta riscos: se todos souberem que cada pessoa tem 5 identidades, você pode ser coagido a revelar todas as 5.
Outro motivo que apoia isso é que a anonimidade em si é muito frágil, portanto, é necessário um espaço de segurança suficientemente grande. Com as ferramentas de IA modernas, a correlação de comportamentos de usuários entre plataformas tornou-se fácil; usando hábitos de linguagem, horários de postagem, intervalos de postagem, tópicos de discussão e outras informações públicas, é possível identificar uma pessoa com precisão com apenas 33 bits de informação. As pessoas podem usar ferramentas de IA para se defender (por exemplo, quando publiquei conteúdo anonimamente, escrevi primeiro em francês e depois traduzi para inglês usando um modelo de linguagem executado localmente), mas mesmo assim, não se deseja que um único erro acabe completamente com a própria anonimidade.
Além disso, a identificação não pode estar completamente ligada às finanças (ou seja, o custo para obter N identidades é N), pois isso permitiria que grandes entidades obtivessem facilmente uma influência excessiva (resultando na completa perda de voz das pequenas entidades). O novo mecanismo do Twitter Blue reflete isso: a taxa de certificação de 8 dólares por mês é muito baixa, não consegue efetivamente limitar comportamentos abusivos, e hoje os usuários basicamente ignoram esse tipo de identificação.
Além disso, talvez não queiramos que um sujeito com uma quantidade de recursos N vezes maior possa agir de forma imprudente e cometer N vezes mais comportamentos inadequados.
Com base nos argumentos acima, esperamos obter múltiplas identidades da forma mais fácil possível, desde que as seguintes condições sejam atendidas: (1) limitar o poder de grandes entidades em aplicações de governança; (2) restringir comportamentos abusivos em aplicações de rendimento básico universal.
Se adotarmos diretamente o modelo matemático de aplicações de governança mencionado anteriormente, obteremos uma resposta clara: se ter N identidades traz um poder de influência de N², então o custo para obter N identidades deve ser N². Coincidentemente, essa resposta também se aplica a aplicações de rendimento básico universal.
Os leitores antigos deste blog talvez tenham notado que isso é exatamente igual ao gráfico de um post anterior sobre "quadratic funding", o que não é uma coincidência.
O sistema de identificação pluralista (Pluralistic identity) pode alcançar este estado ideal
O chamado "sistema de múltiplas identidades" refere-se a um mecanismo de identidade que não possui uma única entidade emissora dominante, seja essa entidade um indivíduo, uma organização ou uma plataforma. Este sistema pode ser realizado de duas maneiras:
Identificação pluralista explícita (Explicit pluralistic identity, também conhecida como "identificação baseada em grafo social social-graph-based identity"). Você pode validar sua identidade (ou outras declarações, como comprovar que é membro de uma determinada comunidade) através das provas de outras pessoas na sua comunidade, e a identidade desses provedores também é validada pelo mesmo mecanismo. O artigo "Sociedade descentralizada" oferece uma explicação mais detalhada sobre esse tipo de design, e Circles é um exemplo que está atualmente em funcionamento.
Identificação pluralista implícita (Implicit pluralistic identity). Esta é a situação atual, com muitos diferentes provedores de identificação, incluindo Google, Twitter, plataformas semelhantes em vários países e vários documentos de identificação emitidos pelo governo. Muito poucos aplicativos aceitam apenas um tipo de autenticação de identidade, a maioria dos aplicativos é compatível com vários, pois só assim pode alcançar usuários potenciais.
A última captura do gráfico de identificação Circles. Circles é um dos maiores projetos de identificação baseados em gráficos sociais atualmente.
A identidade múltipla explícita possui naturalmente uma característica de anonimato: você pode ter uma identidade anônima (ou até várias), e cada identidade pode estabelecer uma reputação na comunidade através de suas próprias ações. Um sistema ideal de identidade múltipla explícita pode até não necessitar do conceito de "identidades discretas"; em vez disso, você pode ter um conjunto difuso composto por ações passadas verificáveis e ser capaz de provar diferentes partes dele de forma refinada conforme a necessidade de cada ação.
zk-SNARKs tornará mais fácil a realização de anonimato: você pode usar uma identificação principal para iniciar uma identidade anônima, fornecendo em particular o primeiro sinal para que a nova identidade anônima seja reconhecida (por exemplo, provando zk-SNARKs que possui uma certa quantidade de tokens, permitindo que publique conteúdo em anon.world; ou provando zk-SNARKs que seus seguidores do Twitter possuem uma certa característica). Pode haver maneiras ainda mais eficazes de usar zk-SNARKs.
A "curva de custo" da identidade múltipla oculta é mais íngreme do que a curva quadrática, mas ainda possui a maior parte das características necessárias. A maioria das pessoas possui algumas das formas de identidade listadas neste artigo, em vez de todas. Você pode obter uma forma de identidade adicional com algum esforço, mas quanto mais formas de identidade você possui, menor é a relação custo-benefício para obter a próxima. Assim, isso fornece a necessária contenção contra ataques de governança e outros comportamentos abusivos, garantindo ao mesmo tempo que os coercedores não possam exigir (e não possam razoavelmente esperar) que você revele um conjunto fixo de identidades.
Qualquer forma de sistema de múltipla identificação (seja ela implícita ou explícita) possui uma maior resiliência natural: pessoas com deficiência nas mãos ou nos olhos ainda podem ter passaporte, e apátridas ainda podem provar a sua identificação através de alguns canais não governamentais.
É importante notar que, se a quota de mercado de uma determinada forma de identificação se aproximar de 100% e se tornar a única opção de login, as características acima deixarão de ser válidas. Na minha opinião, este é o maior risco que os sistemas de identificação que buscam excessivamente a "universalidade" podem enfrentar: uma vez que a sua quota de mercado se aproxime de 100%, isso empurrará o mundo de um sistema de identidades diversas para um modelo de "uma pessoa, uma identidade", e, como discutido neste artigo, esse modelo apresenta várias desvantagens.
Na minha opinião, o resultado ideal do atual projeto "uma pessoa, uma identificação" é a fusão com um sistema de identificação baseado em gráficos sociais. O maior problema enfrentado pelos projetos de identificação baseados em gráficos sociais é a dificuldade de escalar para um número massivo de usuários. O sistema "uma pessoa, uma identificação" pode ser usado para fornecer suporte inicial ao gráfico social, criando milhões de "usuários sementes", e, nesse momento, o número de usuários será suficientemente grande para desenvolver com segurança um gráfico social distribuído globalmente a partir dessa base.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Vitalik: A identificação digital usando a tecnologia ZK não apresenta riscos?
Escrito por: Vitalik Buterin
Compilado por: Saoirse, Foresight News
Atualmente, a utilização de zk-SNARKs em sistemas de identidade digital para proteger a privacidade tornou-se, até certo ponto, mainstream. Diversos projetos de passaporte baseado em zk-SNARKs estão desenvolvendo pacotes de software extremamente amigáveis para os usuários, permitindo que eles provem que possuem uma identificação válida sem revelar nenhum detalhe da sua identidade. O World ID (anteriormente conhecido como Worldcoin), que utiliza tecnologia de biometria para verificação e garante a privacidade através de zk-SNARKs, recentemente ultrapassou a marca de 10 milhões de usuários. Um projeto governamental de identidade digital na região de Taiwan, China, também utiliza zk-SNARKs, e a União Europeia tem dado cada vez mais atenção ao zk-SNARKs em seu trabalho na área de identidade digital.
À primeira vista, a identidade digital baseada na tecnologia zk-SNARKs parece estar amplamente adotada e pode ser uma grande vitória para o d/acc* (Nota: conceito proposto por Vitalik em 2023, que defende o avanço da tecnologia descentralizada por meio de ferramentas tecnológicas (como criptografia, blockchain, etc.), acelerando o progresso tecnológico enquanto defende riscos potenciais e equilibrando a inovação tecnológica com segurança, privacidade e a autonomia humana.)*. Ela pode proteger nossas mídias sociais, sistemas de votação e diversos serviços da internet contra ataques de bruxas e manipulação por robôs, sem sacrificar a privacidade. Mas será que as coisas são realmente tão simples assim? A identidade baseada em zk-SNARKs ainda apresenta riscos? Este artigo irá esclarecer os seguintes pontos:
Como funciona a identificação embalada em zk-SNARKs?
Imagine que você obteve um World ID ao escanear sua íris, ou usou o leitor NFC do seu celular para escanear seu passaporte, obtendo uma identificação baseada em zk-SNARKs. Para os fins deste artigo, as propriedades centrais dessas duas abordagens são consistentes (existem apenas algumas diferenças marginais, como no caso de múltiplas nacionalidades).
No seu telemóvel, há um valor secreto s. No registo global em cadeia, existe um valor hash público H(s). Ao fazer login na aplicação, você irá gerar um ID de utilizador específico para essa aplicação, ou seja, H(s, app_name), e validar através de zk-SNARKs: este ID origina-se do mesmo valor secreto s que algum valor hash público no registo. Assim, cada valor hash público pode gerar apenas um ID para cada aplicação, mas nunca revelará qual ID exclusivo de uma aplicação corresponde a qual valor hash público.
Na verdade, o design pode ser um pouco mais complexo. No World ID, o ID exclusivo do aplicativo é na verdade o valor hash que contém o ID do aplicativo e o ID da sessão, permitindo que diferentes operações dentro do mesmo aplicativo possam ser desvinculadas umas das outras. O design baseado em zk-SNARKs para passaportes também pode ser construído de maneira semelhante.
Antes de discutir as desvantagens deste tipo de identificação, é necessário reconhecer as vantagens que ele traz. Fora do nicho da identificação por zk-SNARKs (ZKID), para provar a sua identidade a serviços que necessitam de verificação, você é obrigado a revelar sua identidade legal completa. Isso viola gravemente o "princípio do menor privilégio" da segurança computacional: um processo deve ter apenas as permissões e informações mínimas necessárias para realizar sua tarefa. Eles precisam provar que você não é um robô, que tem mais de 18 anos ou que vem de um país específico, mas o que obtêm é apenas uma indicação da sua identidade completa.
A melhor solução de melhoria atualmente realizável é o uso de tokens indiretos, como números de telefone e números de cartão de crédito: neste caso, a entidade que conhece o seu número de telefone / número de cartão de crédito associado a atividades dentro da aplicação e a entidade que sabe o seu número de telefone / número de cartão de crédito associado à identidade legal (empresa ou banco) estão separadas entre si. No entanto, essa separação é extremamente frágil: o número de telefone e outros tipos de informações podem ser divulgados a qualquer momento.
E com a ajuda da tecnologia de embalagem zk-SNARKs* (ZK-wrapping, uma técnica que utiliza zk-SNARKs para proteger a privacidade da identidade dos usuários, permitindo que os usuários provem sua identidade sem revelar informações sensíveis)*, os problemas mencionados acima foram em grande parte resolvidos. Mas o que se segue é um ponto que é menos mencionado: ainda existem algumas questões que não foram resolvidas, e que podem até se agravar devido à rígida limitação de "uma pessoa, uma identidade" nesses tipos de soluções.
zk-SNARKs por si só não podem realizar anonimato
Suponha que uma plataforma de identificação baseada em zk-SNARKs funcione exatamente como esperado, reproduzindo rigorosamente toda a lógica acima mencionada, e que até tenha encontrado uma maneira de proteger as informações privadas de usuários não técnicos a longo prazo, sem depender de instituições centralizadas. Mas, ao mesmo tempo, podemos fazer uma suposição realista: os aplicativos não cooperarão ativamente com a proteção da privacidade; eles seguirão o princípio do "pragmatismo", e as soluções de design adotadas, embora aleguem "maximizar a conveniência do usuário", parecem sempre favorecer seus próprios interesses políticos e comerciais.
Em tais cenários, as aplicações de redes sociais não adotam designs complexos como a rotação frequente de chaves de sessão, mas atribuem a cada usuário um ID exclusivo e específico da aplicação. E, como o sistema de identificação segue a regra de "uma pessoa, uma identidade", os usuários só podem ter uma conta (o que contrasta com a "identidade fraca (weak ID)" atual, onde uma pessoa comum pode facilmente registrar cerca de 5 contas, como a conta do Google). No mundo real, a realização do anonimato geralmente requer várias contas: uma para a "identidade regular" e outras para várias identidades anônimas (veja "finsta e rinsta"). Portanto, nesse modelo, a anonimidade que os usuários podem realmente obter pode ser inferior ao nível atual. Assim, mesmo um sistema "uma pessoa, uma identidade" embalado por zk-SNARKs pode nos levar gradualmente a um mundo onde todas as atividades devem depender de uma única identidade pública. Em tempos de riscos crescentes (como a vigilância por drones, etc.), privar as pessoas da escolha de se protegerem através do anonimato terá sérias consequências negativas.
zk-SNARKs não podem proteger você de coerção
Mesmo que você não divulgue seu valor secreto s, ninguém pode ver as associações públicas entre suas contas, mas e se alguém for forçado a divulgar? O governo pode exigir a revelação de seu valor secreto para verificar todas as suas atividades. Isso não é uma conversa vazia: o governo dos EUA já começou a exigir que os solicitantes de visto divulguem suas contas de mídia social. Além disso, empregadores também podem facilmente exigir a divulgação de informações públicas completas como condição para a contratação. Até mesmo, aplicativos individuais podem tecnicamente exigir que os usuários revelem sua identificação em outros aplicativos antes de permitir o registro (usar login em app executa isso por padrão).
Da mesma forma, nestes casos, o valor da propriedade zk-SNARKs desaparece, mas as desvantagens da nova propriedade "uma pessoa, uma conta" ainda persistem.
Podemos talvez reduzir o risco de coerção através de otimização de design: por exemplo, adotando um mecanismo de cálculo multipartidário para gerar um ID exclusivo para cada aplicação, permitindo que os usuários participem conjuntamente com as partes de serviço. Assim, se não houver a participação do operador da aplicação, os usuários não poderão provar seu ID exclusivo naquela aplicação. Isso aumentaria a dificuldade de forçar outros a revelar sua identificação completa, mas não eliminaria completamente essa possibilidade, além de que esse tipo de solução ainda possui outras desvantagens, como exigir que os desenvolvedores da aplicação sejam entidades ativas em tempo real, em vez de serem contratos inteligentes passivos na blockchain (que não requerem intervenção contínua).
zk-SNARKs em si não conseguem resolver riscos não relacionados à privacidade
Todas as formas de identificação têm casos limítrofes:
Esses casos extremos representam o maior perigo para sistemas que tentam manter a propriedade de "uma pessoa, uma identificação", e não têm relação com a privacidade. Portanto, zk-SNARKs não podem ajudar nesse aspecto.
Confiar na "prova de riqueza" para prevenir ataques de bruxas não é suficiente para resolver o problema, por isso precisamos de algum tipo de sistema de identificação.
Num grupo puramente de ciberpunk, uma alternativa comum é: confiar completamente na "prova de riqueza" para prevenir ataques de bruxas, em vez de construir qualquer forma de sistema de identificação. Ao fazer com que cada conta gere um certo custo, é possível impedir que alguém crie facilmente um grande número de contas. Essa prática já tem precedentes na internet, por exemplo, o fórum Somethingawful exige que as contas registradas paguem uma taxa única de 10 dólares, que não será reembolsada se a conta for banida. No entanto, isso na prática não é um verdadeiro modelo econômico criptográfico, pois o maior obstáculo para criar uma nova conta não é o reembolso de 10 dólares, mas sim obter um novo cartão de crédito.
Em teoria, é até possível tornar os pagamentos condicionais: ao registrar uma conta, você apenas precisa fazer um depósito de fundos, e só perderá esse montante em casos extremamente raros, como quando a conta é banida. Em teoria, isso pode aumentar significativamente o custo de ataque.
Este plano tem um efeito significativo em muitos cenários, mas em certos tipos de cenários é completamente ineficaz. Irei focar em duas categorias de cenários, que chamarei provisoriamente de "cenários semelhantes ao rendimento básico universal (UBI-like)" e "cenários semelhantes à governança (governance-like)".
necessidade de identificação em cenários semelhantes a Renda Básica Universal (UBI-like)
A chamada "cenário de rendimento básico quase universal" refere-se a situações em que é necessário distribuir uma certa quantidade de ativos ou serviços a uma vasta (idealmente, a totalidade) gama de usuários, sem considerar a sua capacidade de pagamento. O Worldcoin é um exemplo sistemático disso: qualquer pessoa que possua um World ID pode receber regularmente uma pequena quantidade de tokens WLD. Muitos airdrops de tokens também realizam objetivos semelhantes de forma mais informal, tentando fazer com que pelo menos uma parte dos tokens chegue ao maior número possível de usuários.
Na minha opinião, não acho que o valor desses tipos de tokens possa atingir um nível suficiente para sustentar o sustento pessoal. Em uma economia impulsionada por inteligência artificial, com uma escala de riqueza que atinge mil vezes a atual, esses tipos de tokens podem ter valor para sustentar a vida; mas mesmo assim, projetos liderados por governos que têm riqueza em recursos naturais como apoio, ainda ocuparão uma posição mais importante no nível econômico. No entanto, acredito que o que esses "mini-UBIs" podem realmente resolver é: permitir que as pessoas obtenham uma quantidade suficiente de criptomoedas para realizar algumas transações básicas na cadeia e compras online. Os exemplos podem incluir:
Se as criptomoedas forem amplamente adotadas em todo o mundo, essa questão deixará de existir. Mas, na atualidade em que as criptomoedas ainda não estão disseminadas, isso pode ser o único meio para as pessoas acessarem aplicações não financeiras em blockchain e serviços de produtos online relacionados, caso contrário, elas podem não ter acesso a esses recursos.
Além disso, existe outra maneira de alcançar um efeito semelhante, que é a «identificação de serviços básicos universais»: fornecer a cada pessoa com identificação a permissão para enviar um número limitado de transações gratuitas dentro de aplicativos específicos. Esta abordagem pode estar mais alinhada com os mecanismos de incentivo e ter maior eficiência de capital, pois cada aplicativo que se beneficia dessa adoção pode fazê-lo sem ter que pagar por usuários não ativos; no entanto, isso também vem com uma certa troca, ou seja, a universalidade será reduzida (os usuários só podem garantir acesso aos aplicativos que participam deste programa). Mas, mesmo assim, ainda é necessária uma solução de identificação aqui para evitar que o sistema sofra ataques de spam, ao mesmo tempo em que se evita a exclusividade, que surge da exigência de que os usuários paguem de alguma forma, e esses métodos de pagamento podem não estar disponíveis para todos.
A última categoria importante que merece destaque é o «depósito de segurança básica universal (universal basic security deposit)». Uma das funções da identificação é fornecer um alvo que pode ser utilizado para responsabilização, sem a necessidade de os usuários empenharem um montante de capital equivalente ao incentivo. Isso também ajuda a alcançar um objetivo: reduzir a dependência do montante de capital pessoal na barreira de entrada (mesmo sem a necessidade de qualquer capital).
necessidade de identificação em cenários semelhantes à governança (governance-like)
Imagine um sistema de votação (por exemplo, os "likes" e compartilhamentos em plataformas de redes sociais): se os recursos do usuário A são 10 vezes maiores que os do usuário B, então seu poder de voto também será 10 vezes maior que o de B. Mas, do ponto de vista econômico, cada unidade de poder de voto traz a A um retorno 10 vezes maior do que a B (porque A tem uma dimensão maior e qualquer decisão terá um impacto mais significativo em seu nível econômico). Portanto, no geral, o voto de A traz 100 vezes mais benefício para ele mesmo do que o voto de B traz para B. É por isso que vemos que A investe muito mais esforço em participar das votações, estudar como votar para maximizar seus próprios objetivos, e até mesmo pode manipular estrategicamente os algoritmos. Esta é também a razão fundamental pela qual as "baleias" podem exercer uma influência excessiva no mecanismo de votação baseado em tokens.
Uma razão mais universal e mais profunda é a seguinte: o sistema de governança não deve atribuir o mesmo peso a "uma pessoa controlando 100 mil dólares" e "1000 pessoas possuindo 100 mil dólares". O último representa 1000 indivíduos independentes, portanto, conterá informações valiosas mais ricas, em vez de uma alta repetição de informações de pequeno volume. Os sinais de 1000 pessoas também tendem a ser mais "moderados", pois as opiniões de diferentes indivíduos muitas vezes se anulam.
Este ponto aplica-se tanto a sistemas de votação formais como a "sistemas de votação informais", por exemplo, a capacidade das pessoas de participar na evolução cultural através da expressão pública.
Isto indica que os sistemas de governança não estarão realmente satisfeitos com a abordagem de "independentemente da origem dos fundos, todos os pacotes de fundos de igual dimensão são tratados da mesma forma". O sistema na verdade precisa entender o nível de coordenação interna desses pacotes de fundos.
É importante notar que, se você concorda com a minha estrutura de descrição dos dois tipos de cenários (cenário de rendimento básico universal e cenário de governança), então, do ponto de vista técnico, a necessidade de uma regra clara como "um homem, um voto" já não existe.
Em ambos os cenários, a identificação continua a ser muito útil, mas a exigência de seguir regras rigorosas como "uma pessoa, uma identificação" já não existe.
O estado ideal teórico é: o custo para obter N identidades é N²
A partir dos argumentos acima, podemos ver que há duas pressões de extremos opostos que limitam a dificuldade esperada de obter múltiplas identificações no sistema de identificação:
Primeiro, não se deve estabelecer um limite rígido e claramente visível para o "número de identidades que podem ser facilmente obtidas". Se uma pessoa só pode ter uma identidade, a anonimidade não pode ser discutida, e ela pode ser coagida a revelar sua identidade. Na verdade, mesmo um número fixo maior que 1 apresenta riscos: se todos souberem que cada pessoa tem 5 identidades, você pode ser coagido a revelar todas as 5.
Outro motivo que apoia isso é que a anonimidade em si é muito frágil, portanto, é necessário um espaço de segurança suficientemente grande. Com as ferramentas de IA modernas, a correlação de comportamentos de usuários entre plataformas tornou-se fácil; usando hábitos de linguagem, horários de postagem, intervalos de postagem, tópicos de discussão e outras informações públicas, é possível identificar uma pessoa com precisão com apenas 33 bits de informação. As pessoas podem usar ferramentas de IA para se defender (por exemplo, quando publiquei conteúdo anonimamente, escrevi primeiro em francês e depois traduzi para inglês usando um modelo de linguagem executado localmente), mas mesmo assim, não se deseja que um único erro acabe completamente com a própria anonimidade.
Além disso, a identificação não pode estar completamente ligada às finanças (ou seja, o custo para obter N identidades é N), pois isso permitiria que grandes entidades obtivessem facilmente uma influência excessiva (resultando na completa perda de voz das pequenas entidades). O novo mecanismo do Twitter Blue reflete isso: a taxa de certificação de 8 dólares por mês é muito baixa, não consegue efetivamente limitar comportamentos abusivos, e hoje os usuários basicamente ignoram esse tipo de identificação.
Além disso, talvez não queiramos que um sujeito com uma quantidade de recursos N vezes maior possa agir de forma imprudente e cometer N vezes mais comportamentos inadequados.
Com base nos argumentos acima, esperamos obter múltiplas identidades da forma mais fácil possível, desde que as seguintes condições sejam atendidas: (1) limitar o poder de grandes entidades em aplicações de governança; (2) restringir comportamentos abusivos em aplicações de rendimento básico universal.
Se adotarmos diretamente o modelo matemático de aplicações de governança mencionado anteriormente, obteremos uma resposta clara: se ter N identidades traz um poder de influência de N², então o custo para obter N identidades deve ser N². Coincidentemente, essa resposta também se aplica a aplicações de rendimento básico universal.
Os leitores antigos deste blog talvez tenham notado que isso é exatamente igual ao gráfico de um post anterior sobre "quadratic funding", o que não é uma coincidência.
O sistema de identificação pluralista (Pluralistic identity) pode alcançar este estado ideal
O chamado "sistema de múltiplas identidades" refere-se a um mecanismo de identidade que não possui uma única entidade emissora dominante, seja essa entidade um indivíduo, uma organização ou uma plataforma. Este sistema pode ser realizado de duas maneiras:
A última captura do gráfico de identificação Circles. Circles é um dos maiores projetos de identificação baseados em gráficos sociais atualmente.
A identidade múltipla explícita possui naturalmente uma característica de anonimato: você pode ter uma identidade anônima (ou até várias), e cada identidade pode estabelecer uma reputação na comunidade através de suas próprias ações. Um sistema ideal de identidade múltipla explícita pode até não necessitar do conceito de "identidades discretas"; em vez disso, você pode ter um conjunto difuso composto por ações passadas verificáveis e ser capaz de provar diferentes partes dele de forma refinada conforme a necessidade de cada ação.
zk-SNARKs tornará mais fácil a realização de anonimato: você pode usar uma identificação principal para iniciar uma identidade anônima, fornecendo em particular o primeiro sinal para que a nova identidade anônima seja reconhecida (por exemplo, provando zk-SNARKs que possui uma certa quantidade de tokens, permitindo que publique conteúdo em anon.world; ou provando zk-SNARKs que seus seguidores do Twitter possuem uma certa característica). Pode haver maneiras ainda mais eficazes de usar zk-SNARKs.
A "curva de custo" da identidade múltipla oculta é mais íngreme do que a curva quadrática, mas ainda possui a maior parte das características necessárias. A maioria das pessoas possui algumas das formas de identidade listadas neste artigo, em vez de todas. Você pode obter uma forma de identidade adicional com algum esforço, mas quanto mais formas de identidade você possui, menor é a relação custo-benefício para obter a próxima. Assim, isso fornece a necessária contenção contra ataques de governança e outros comportamentos abusivos, garantindo ao mesmo tempo que os coercedores não possam exigir (e não possam razoavelmente esperar) que você revele um conjunto fixo de identidades.
Qualquer forma de sistema de múltipla identificação (seja ela implícita ou explícita) possui uma maior resiliência natural: pessoas com deficiência nas mãos ou nos olhos ainda podem ter passaporte, e apátridas ainda podem provar a sua identificação através de alguns canais não governamentais.
É importante notar que, se a quota de mercado de uma determinada forma de identificação se aproximar de 100% e se tornar a única opção de login, as características acima deixarão de ser válidas. Na minha opinião, este é o maior risco que os sistemas de identificação que buscam excessivamente a "universalidade" podem enfrentar: uma vez que a sua quota de mercado se aproxime de 100%, isso empurrará o mundo de um sistema de identidades diversas para um modelo de "uma pessoa, uma identidade", e, como discutido neste artigo, esse modelo apresenta várias desvantagens.
Na minha opinião, o resultado ideal do atual projeto "uma pessoa, uma identificação" é a fusão com um sistema de identificação baseado em gráficos sociais. O maior problema enfrentado pelos projetos de identificação baseados em gráficos sociais é a dificuldade de escalar para um número massivo de usuários. O sistema "uma pessoa, uma identificação" pode ser usado para fornecer suporte inicial ao gráfico social, criando milhões de "usuários sementes", e, nesse momento, o número de usuários será suficientemente grande para desenvolver com segurança um gráfico social distribuído globalmente a partir dessa base.