Gavin Wood: Como prevenir ataques Sybil para um airdrop eficaz?

intermediário9/18/2024, 3:22:10 PM
Gavin recentemente focou na questão dos ataques Sybil (resistência civil). Este artigo revisita o discurso principal do Dr. Gavin Wood na Polkadot Decoded 2024, explorando algumas de suas perspectivas sobre a prevenção de ataques Sybil.

Recentemente, Gavin tem se concentrado na questão dos ataques Sybil (resistência civil). A PolkaWorld revisou o discurso principal do Dr. Gavin Wood no Polkadot Decoded 2024, explorando alguns de seus pensamentos sobre como prevenir ataques Sybil. Se você estiver interessado, continue lendo!

O que é um ataque Sybil?

Você já deve saber que estive trabalhando em vários projetos. Estou escrevendo um “gray paper” e focando no projeto JAM, fazendo algum trabalho de codificação ao longo do caminho. Nos últimos dois anos, tenho pensado muito em uma questão crucial que é bastante significativa nesse espaço - como prevenir ataques Sybil (resistência cível). Esse problema está em toda parte. Os sistemas blockchain são construídos em teoria dos jogos e, ao analisar jogos, muitas vezes precisamos limitar o número de participantes ou gerenciar comportamentos imprevisíveis que eles possam exibir.

Ao projetar sistemas digitais, queremos determinar se um ponto final específico - uma interface digital - é operado por um humano. Para esclarecer, não estou discutindo identidade aqui. A identidade é obviamente importante, mas não estamos focando em determinar a identidade real de alguém aqui. Em vez disso, o objetivo é distinguir entre dispositivos e se estão sendo ativamente operados por um humano em determinado momento. Além disso, surge outra pergunta importante: se um dispositivo está de fato sendo operado por um humano, podemos fornecer a eles um pseudônimo que nos permita identificá-los em um contexto específico e, se eles retornarem para interagir conosco, podemos reconhecê-los novamente?

À medida que as nossas interações passaram principalmente a comunicar com outras pessoas (nos anos 80, quando nasci) para interagir com sistemas, sistemas digitais, particularmente sistemas descentralizados da Web3, tornaram-se cada vez mais relevantes. Nos anos 80, as pessoas interagiam principalmente diretamente com outras pessoas; nos anos 90, começamos a interagir com serviços através do telefone, como a banca telefônica. Isto foi uma grande mudança para nós. Inicialmente, a banca telefônica envolvia grandes centros de atendimento operados por humanos, mas ao longo do tempo, esses sistemas evoluíram para os sistemas de resposta de voz automatizados de hoje. Com o surgimento da internet, as interações humanas tornaram-se mais raras, e na maioria dos serviços diários, já não comunicamos diretamente com humanos. Claro que, com o crescimento do comércio eletrônico da Web2, essa tendência tornou-se ainda mais evidente. A Web3 consolida ainda mais isto - dentro da Web3, raramente interage com pessoas. A ideia central da Web3 é que interage com máquinas, e por vezes as máquinas interagem entre si.

Por que estudar os ataques Sybil importa?

Então, por que isso importa? É um elemento fundamental de qualquer sociedade real e está no cerne de muitos sistemas sociais, incluindo negócios, governança, votação e construção de consenso. Todos esses dependem fortemente da prevenção de ataques Sybil para construir comunidades genuínas. Muitos mecanismos que são dados como certos em corporações são baseados na prevenção de ataques Sybil. Seja uso justo, controle de ruído ou gerenciamento de comunidade, todos eles dependem dessa habilidade defensiva. Muitas coisas exigem que confirmemos que uma entidade é realmente um ser humano. Se alguém se comporta de maneira inadequada, podemos querer removê-lo temporariamente da comunidade. Isso é algo que você pode observar em serviços digitais e, é claro, também existe no mundo real.

Ao prevenir ataques de Sybil, podemos introduzir mecanismos que restrinjam o comportamento sem aumentar as barreiras de entrada ou comprometer a acessibilidade do sistema. Por exemplo, existem duas maneiras básicas de incentivar o comportamento: uma é através de uma abordagem de 'cenoura e pau' (um sistema de recompensas e penalidades). O método do 'pau' (penalidade) requer que você pague um depósito e, se se comportar mal, esse depósito é confiscado. O staking é um exemplo simples disso. O método da 'cenoura' (recompensa) pressupõe que você se comportará bem e, se não atender às expectativas, perderá alguns de seus direitos. Basicamente, é assim que a maioria das sociedades civis opera.

No entanto, sem mecanismos para prevenir ataques de Sybil na blockchain, essa abordagem não pode realmente ser aplicada. Na sociedade civil, esses mecanismos funcionam porque, se alguém é preso, não pode cometer o mesmo delito novamente—pelo menos, não enquanto estiver encarcerado. A liberdade é um direito inerente, e o governo, em princípio, pode retirá-la. Não estou sugerindo que prendamos alguém na cadeia, mas atualmente não podemos impor restrições similares na blockchain. Isso torna difícil conter comportamentos ruins ao oferecer serviços gratuitos, e acabamos dependendo apenas de encorajar comportamentos bons. O comércio e as atividades promocionais dependem fortemente da capacidade de confirmar que os usuários são pessoas reais.

Aqui está um screenshot de um site que eu uso às vezes. Ele oferece um uísque muito bom que muitas pessoas adoram, e é difícil de encontrar em seu país de origem. Mas na Europa, é relativamente barato, e parece que eles mantêm os preços baixos limitando o número de garrafas que cada pessoa pode comprar. No entanto, esse tipo de operação é quase impossível de ser aplicada em um sistema Web3 real.

Também existem desafios significativos na construção da comunidade, airdrops e na identificação e distribuição aos membros da comunidade. Os airdrops geralmente são ineficientes quando se trata de despesas de capital, pois visam abranger o maior número possível de pessoas. Para distribuir os airdrops de forma justa, é preciso identificar os indivíduos e dar a mesma quantidade a todos. Mas, na prática, surgem muitos problemas, como saldos variados nas carteiras. Eventualmente, você pode se encontrar em uma situação em que a curva de distribuição se torna extremamente desequilibrada, com disparidades enormes. Como resultado, a maioria das pessoas recebe quase nenhum incentivo.

Sobre a questão do “uso justo”, embora o impacto atual seja pequeno, se você usar em excesso os recursos de rede, o sistema geralmente apenas diminui a velocidade da sua conexão, embora você ainda possa usar a rede.

Olhando para trás 10 a 15 anos atrás, se você usasse muito a internet, seu Provedor de Serviço de Internet (ISP) poderia considerar que você não estava usando esse serviço "ilimitado" de forma responsável. Então, eles cortariam completamente o seu serviço, em vez de apenas diminuir a velocidade como fazem agora. Essa abordagem permitia que eles fornecessem serviços de internet quase ilimitados para a maioria dos usuários porque eles podiam identificar quem estava usando os recursos de forma responsável.

A Web2 é construída em um modelo de serviço avançado, que depende muito da capacidade de identificar usuários. Há vinte anos, os mecanismos de identificação eram menos complexos, mas agora é muito diferente. Se você deseja abrir uma conta, geralmente há pelo menos três maneiras diferentes de confirmar que você é uma pessoa real e que eles não o encontraram antes. Por exemplo, se você tentar registrar uma conta da Apple sem comprar um iPhone, é como passar por um curso de obstáculos. Essas empresas basicamente não querem lhe dar uma conta. Claro, elas anunciam que você pode obter uma conta gratuitamente, mas não sei o que a IA nos bastidores está fazendo. Levei 10 tentativas antes de finalmente conseguir, e no final, ainda tive que comprar um iPhone.

Acredito que se conseguíssemos identificar melhor os indivíduos, muitos processos como a "Oracleização" (verificação de informações) se tornariam muito mais fáceis.

Um exemplo típico de utilização da resistência à Síbila como uma 'prova de humanidade' para verificação de informações na sociedade é o sistema de júri. Quando precisamos de um juiz imparcial (ou seja, um Oráculo) para determinar a culpa de alguém, o sistema seleciona aleatoriamente um número ímpar de pessoas comuns da sociedade para ouvir as evidências e tomar uma decisão. Da mesma forma, em outras áreas da vida social, como representação e coleta de opiniões, a representação é uma parte importante da sociedade, e gerenciamos a representação usando métodos de resistência à Síbila. Claro, esse tipo de gestão nem sempre é perfeito devido às falhas na infraestrutura civil atual, especialmente quando a representação é confundida com identidade. Muitas vezes, quando você quer votar, precisa provar sua identidade real, como mostrando uma carteira de motorista ou passaporte. Mas na realidade, votar representa seus direitos de voto, não um elo direto com sua identidade pessoal.

Como Podemos Prevenir Ataques de Sybil? Quais Soluções Estão Atualmente Disponíveis?

Então, como podemos resolver isso?

Na era da Web 2 e até mesmo antes disso, tínhamos vários métodos para verificar a identidade. Nos sistemas atuais da Web 2, esses métodos são frequentemente combinados. Por exemplo, se você quiser criar uma nova conta no Google, talvez precise passar por um CAPTCHA e verificar tanto seu e-mail quanto seu número de telefone. Às vezes, a verificação por SMS pode substituir a conversa com uma pessoa real. Se você já teve sua conta da Amazon bloqueada, saberá do que estou falando - parece que está navegando por um labirinto complicado até finalmente acertar o botão certo para falar com um representante real do serviço ao cliente. Para prevenir ataques Sybil mais avançados, podemos depender de IDs ou informações de cartão de crédito.

No entanto, quando mudamos para o mundo da Web 3, a solução perfeita permanece elusiva. Existem algumas soluções candidatas, mas diferem muito em três áreas-chave: descentralização, proteção da privacidade e resiliência (a capacidade de resistir a ataques).

A resiliência está se tornando uma questão cada vez mais importante, e a maioria dos sistemas enfrenta desafios nessas áreas.

Um exemplo é o que eu chamo de “sistema de confissão”, onde você divulga suas informações privadas a uma autoridade central. Essa autoridade então detém informações sobre você que você não deseja que outros vejam. Por exemplo, você pode escanear seu passaporte e enviá-lo a uma instituição, dando a eles acesso a todos os seus dados pessoais. Isso os coloca em uma posição poderosa, pois controlam informações sensíveis. Essa abordagem não é adequada para a Web 3.

Você também pode encontrar sistemas que parecem ser Web 3, mas dependem de “instituições centralizadas de gerenciamento de chaves”. Essas instituições têm o poder de decidir quem se qualifica como um usuário legítimo controlando as chaves. Às vezes, eles até mesmo mantêm as chaves para os usuários. Em qualquer caso, eles controlam quem é considerado um participante válido.

Este controle centralizado sobre identidade e privacidade contradiz os princípios centrais da Web 3, que se concentram na descentralização e autonomia do usuário.

Apenas colocar algo na cadeia não o torna Web 3. Você pode transferir práticas da Web 2 ou modelos de autoridade centralizada para o blockchain, mas isso não muda a natureza do sistema. Apenas o torna mais resiliente, mas não o descentraliza. Um longo endereço hexadecimal não garante automaticamente privacidade. Sem medidas específicas de privacidade, essa string ainda poderia ser vinculada a identidades do mundo real.

Se um sistema depende de um "mecanismo de confissão", não é uma solução de preservação da privacidade. Já vimos inúmeras violações de dados que comprovam que armazenar dados atrás de firewalls corporativos ou hardware confiável não garante segurança. Uma solução adequada para a Web 3 não deve se concentrar em identidades locais ou identidades específicas da comunidade, mas sim em identidades globais e descentralizadas. Esses são conceitos completamente diferentes.

Alguns sistemas estão tentando lidar com esse problema, mas muitas vezes dependem de hardware específico e gerenciamento de chaves centralizado, portanto, não atendem completamente aos padrões da Web 3. Por exemplo, o projeto Worldcoin tenta resolver isso com hardware confiável, mas depende de um sistema de gerenciamento de chaves centralizado e fonte de dados, o que não está alinhado com o ethos descentralizado da Web 3.

O Passport do Gitcoin é outro exemplo. É amplamente utilizado na comunidade Ethereum como uma plataforma abrangente de solução de identidade. No entanto, ele depende de um sistema de gerenciamento de chave federada, e as fontes de dados muitas vezes vêm de entidades centralizadas como a Coinbase.

Idena é uma solução Web 3 interessante que não utiliza gerenciamento centralizado de chaves ou autoridades. No entanto, é um mecanismo único, e com o avanço da IA, é incerto se essa abordagem terá a resiliência necessária para o futuro. Até agora, tem se saído bem, mas só tem cerca de mil usuários.

Em resumo, nenhuma solução atual aborda completamente o problema dos ataques de Sybil.

Perspectiva de Gavin sobre a solução de ataques de Sybil

Quando se trata de identidade individual, existem duas abordagens para pensar sobre isso: remota e local. As máquinas não entendem intrinsecamente a “identidade individual” e não é provável que vejamos algum tipo de tecnologia de criptografia resolver isso de repente. Alguns podem argumentar que ferramentas biométricas como impressões digitais poderiam tornar cada ser humano único, e as máquinas poderiam medir isso, mas é difícil para sistemas puramente digitais provar isso. A coisa mais próxima de alcançar isso pode ser a Worldcoin, mas mesmo assim, é apenas uma máquina que pode verificar pessoas de uma maneira difícil de trapacear.

Portanto, precisamos reconhecer que a identidade individual está mais relacionada à autenticação. Trata-se de como os elementos dentro de um sistema digital verificam se outros elementos são indivíduos reais. A questão então se torna: qual é a base para essa autenticação? É o contato físico, ou alguma outra forma de comprovação? Podemos confiar que uma conta está vinculada a uma pessoa real porque a conhecemos e presumimos que ela não interagiu com mais ninguém. Ou talvez confiemos na identidade de alguém com base em certas informações que vemos na tela, respaldadas por outras evidências.

Quando falamos sobre autenticação remota (autenticação sem prova física direta), a IA (inteligência artificial) pode criar complicações. Por outro lado, se confiarmos em evidências físicas, a implementação prática se torna desafiadora. Então, estamos presos entre essas limitações. Mas acredito que, com criatividade e inovação, podemos encontrar soluções viáveis.

O que precisamos fazer?

Qual é a solução? Qual é o plano?

Para tornar o Polkadot mais prático no mundo real (além de apenas DeFi, NFTs e espaços virtuais de blockchain), a chave é encontrar uma maneira simples de identificar indivíduos. Isso não significa saber quem alguém é, como “Eu sei que este é Gavin Wood”, mas mais como reconhecer “este é um indivíduo único”. Eu não acredito que haja uma única solução, então precisamos de um framework modular e escalável.

Primeiro, podemos integrar soluções existentes (como Idena). Em segundo lugar, o sistema não deve ser limitado pelas ideias de uma pessoa ou apenas baseado na visão individual do que poderia funcionar. Ele precisa ser aberto, permitindo que outros contribuam para a solução. Em seguida, precisamos de uma forte pseudonimidade contextual. No início, escrevi 'anonimato', e de certa forma, quero dizer anonimato, especialmente anonimato em relação à sua identidade do mundo real. Mas ao mesmo tempo, queremos pseudonimidade, para que em um contexto específico, você possa provar que é uma pessoa única. Além disso, quando você usa o sistema novamente nesse mesmo contexto, você deve ser capaz de provar que é o mesmo indivíduo de antes.

Finalmente, precisamos de um SDK e API robustos para que essa funcionalidade seja tão fácil de usar quanto qualquer outro recurso nos contratos inteligentes do Substrate ou Polkadot, ou no próximo ecossistema JAM. Precisa ser simples de implementar. Para ser mais específico: se você já escreveu código Frame antes, pode ter encontrado uma linha como let account = ensure_signed (origin). Isso recupera a origem da transação e verifica se ela veio de uma conta, me dizendo qual conta é. Mas uma conta não é a mesma que uma pessoa. Uma pessoa pode usar várias contas, e um script também pode. As contas não fornecem informações sobre a identidade individual. Se quisermos garantir que uma transação venha de uma pessoa real - e não apenas de uma das milhões de contas - precisamos substituir este código por algo como let alias = ensure_person (origin, &b”Meu contexto”).

Existem dois benefícios-chave para isso. Primeiro, em vez de apenas perguntar se uma conta está assinando a transação, estamos perguntando se uma pessoa está assinando. Isso abre muitas novas possibilidades.

Em segundo lugar, diferentes operações ocorrem em diferentes contextos, e podemos manter tanto a anonimidade quanto a proteção de pseudônimos nesses contextos. Quando o contexto muda, o pseudônimo também muda, e os pseudônimos em diferentes contextos não podem ser vinculados nem rastreados até a pessoa por trás deles. Esses pseudônimos são completamente anônimos, o que os torna uma ferramenta poderosa no desenvolvimento de blockchain - especialmente ao desenvolver sistemas úteis no mundo real.

Então, quais restrições podemos impor aos mecanismos que identificam indivíduos? Primeiro, esses mecanismos precisam ser amplamente acessíveis. Se estiverem disponíveis apenas para um grupo seleto de pessoas, não serão muito úteis. Eles não devem exigir a posse de ativos ou ter altas taxas - pelo menos, nada excessivo.

Inevitavelmente haverá compensações entre diferentes mecanismos. Eu não acredito que exista uma solução única. Mas algumas compensações são aceitáveis, enquanto outras não. Não devemos comprometer a resiliência, descentralização ou soberania do usuário. Alguns mecanismos podem exigir menos esforço, mas mais confiança, enquanto outros podem exigir mais esforço, mas oferecem maior garantia. Devemos ter expectativas realistas de que os indivíduos verificados pelo sistema (sejam contas vinculadas a indivíduos ou pseudônimos) são realmente únicos, pessoas reais.

Quando diferentes mecanismos em sistemas descentralizados da Web3 avaliam a identidade individual, usando bases de resiliência e não autoritárias, pode haver algum sobreposição. Isso significa que não devemos esperar a perfeição, mas a margem de erro deve ser muito menor do que uma ordem de magnitude. Além disso, o sistema deve ser altamente resistente ao abuso de identidade para evitar que um pequeno grupo ou organização obtenha controle de um grande número de identidades.

É crucial que o sistema tenha salvaguardas para evitar tal abuso. Alguns mecanismos podem oferecer pontuações de identidade individual com relativamente baixa confiança, o que poderia ser um objetivo mais alto. Alguns podem ter sucesso em alcançar isso, outros não, e alguns podem adotar uma abordagem binária: ou confiamos que a conta pertence a um indivíduo único, ou não. Outros mecanismos podem sugerir que estamos 50% confiantes, o que significa que o indivíduo pode ter duas contas, e estamos 50% confiantes em ambas.

Tudo isso precisa ser sem permissão e relativamente fácil de implementar. Não deveria ter que enfatizar isso, mas o sistema não deve depender de mecanismos comuns de confissão ou de instituições de gestão de chaves.

Qual é o benefício dessa abordagem?

Por que devemos fazer isso? Quais são os benefícios?

Nós falamos sobre como a sociedade usa e depende de identidades individuais, mas como isso pode ser aplicado on-chain? Imagine um sistema Polkadot onde as taxas de transação não precisam ser pagas, tornando o uso razoável gratuito. Imagine algo como uma “cadeia de Plaza” (Plaza), que é essencialmente um Asset Hub atualizado com capacidades de contrato inteligente e um sistema de staking.

Nesse tipo de cadeia Plaza, você pode imaginar um cenário em que taxas de gás não sejam necessárias. Desde que você esteja usando o sistema dentro de limites razoáveis, o gás é gratuito. Claro, se você estiver executando scripts ou realizando um grande número de transações, você precisaria pagar taxas, pois isso vai além do que um usuário típico faria. Imagine esses sistemas se abrindo gratuitamente para o público. Poderíamos iniciar comunidades de forma eficiente usando métodos direcionados como airdrops. Ao mesmo tempo, poderíamos imaginar modelos de governança ainda mais avançados para o Polkadot.

Pessoalmente, não estou completamente convencido da ideia de "uma pessoa, um voto." Em alguns casos, é necessário garantir legitimidade, mas nem sempre produz os melhores resultados. No entanto, poderíamos considerar modelos de votação alternativos, como votação quadrática ou votação regional. Em alguns elementos representativos, "uma pessoa, um voto" pode ser bastante esclarecedor.

Também podemos imaginar um sistema Oracle semelhante a um júri, onde parachains e contratos inteligentes podem utilizar sistemas Oracle locais e subordinados, talvez para previsões de preços ou resolução de disputas de usuários. Eles também poderiam ter um sistema de “grande júri” ou “Supremo Tribunal”, onde os membros são selecionados aleatoriamente de um grupo de indivíduos conhecidos para tomar decisões, ajudar a resolver disputas e receber pequenas recompensas. Como esses jurados são escolhidos aleatoriamente de um grande grupo neutro, esse método ofereceria uma maneira resiliente e confiável de resolver conflitos.

Você também poderia imaginar um sistema de controle de ruído, especialmente dentro de integrações descentralizadas de mídia social, para gerenciar spam e comportamentos indesejáveis. No DeFi, podemos ver sistemas baseados em reputação semelhantes aos scores de crédito, mas mais focados em saber se alguém não pagou em dia. Dessa forma, o sistema poderia operar em um modelo freemium, oferecendo diferentes níveis de serviço.

Tudo bem, isso encerra a primeira parte deste discurso. Espero que tenha sido útil.

Isenção de responsabilidade:

  1. Este artigo é uma reedição de [PolkaWorld]. Copyright belongs to the original author [PolkaWorld]. If there are any concerns about the reprint, please contact theEquipe Gate Learn, e a equipe resolverá o problema o mais rápido possível.
  2. Aviso Legal: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. Outras versões do artigo foram traduzidas pela equipe Gate Learn. A menos que Gate.ioé mencionado, copiar, distribuir ou plagiar o conteúdo traduzido é proibido.

Gavin Wood: Como prevenir ataques Sybil para um airdrop eficaz?

intermediário9/18/2024, 3:22:10 PM
Gavin recentemente focou na questão dos ataques Sybil (resistência civil). Este artigo revisita o discurso principal do Dr. Gavin Wood na Polkadot Decoded 2024, explorando algumas de suas perspectivas sobre a prevenção de ataques Sybil.

Recentemente, Gavin tem se concentrado na questão dos ataques Sybil (resistência civil). A PolkaWorld revisou o discurso principal do Dr. Gavin Wood no Polkadot Decoded 2024, explorando alguns de seus pensamentos sobre como prevenir ataques Sybil. Se você estiver interessado, continue lendo!

O que é um ataque Sybil?

Você já deve saber que estive trabalhando em vários projetos. Estou escrevendo um “gray paper” e focando no projeto JAM, fazendo algum trabalho de codificação ao longo do caminho. Nos últimos dois anos, tenho pensado muito em uma questão crucial que é bastante significativa nesse espaço - como prevenir ataques Sybil (resistência cível). Esse problema está em toda parte. Os sistemas blockchain são construídos em teoria dos jogos e, ao analisar jogos, muitas vezes precisamos limitar o número de participantes ou gerenciar comportamentos imprevisíveis que eles possam exibir.

Ao projetar sistemas digitais, queremos determinar se um ponto final específico - uma interface digital - é operado por um humano. Para esclarecer, não estou discutindo identidade aqui. A identidade é obviamente importante, mas não estamos focando em determinar a identidade real de alguém aqui. Em vez disso, o objetivo é distinguir entre dispositivos e se estão sendo ativamente operados por um humano em determinado momento. Além disso, surge outra pergunta importante: se um dispositivo está de fato sendo operado por um humano, podemos fornecer a eles um pseudônimo que nos permita identificá-los em um contexto específico e, se eles retornarem para interagir conosco, podemos reconhecê-los novamente?

À medida que as nossas interações passaram principalmente a comunicar com outras pessoas (nos anos 80, quando nasci) para interagir com sistemas, sistemas digitais, particularmente sistemas descentralizados da Web3, tornaram-se cada vez mais relevantes. Nos anos 80, as pessoas interagiam principalmente diretamente com outras pessoas; nos anos 90, começamos a interagir com serviços através do telefone, como a banca telefônica. Isto foi uma grande mudança para nós. Inicialmente, a banca telefônica envolvia grandes centros de atendimento operados por humanos, mas ao longo do tempo, esses sistemas evoluíram para os sistemas de resposta de voz automatizados de hoje. Com o surgimento da internet, as interações humanas tornaram-se mais raras, e na maioria dos serviços diários, já não comunicamos diretamente com humanos. Claro que, com o crescimento do comércio eletrônico da Web2, essa tendência tornou-se ainda mais evidente. A Web3 consolida ainda mais isto - dentro da Web3, raramente interage com pessoas. A ideia central da Web3 é que interage com máquinas, e por vezes as máquinas interagem entre si.

Por que estudar os ataques Sybil importa?

Então, por que isso importa? É um elemento fundamental de qualquer sociedade real e está no cerne de muitos sistemas sociais, incluindo negócios, governança, votação e construção de consenso. Todos esses dependem fortemente da prevenção de ataques Sybil para construir comunidades genuínas. Muitos mecanismos que são dados como certos em corporações são baseados na prevenção de ataques Sybil. Seja uso justo, controle de ruído ou gerenciamento de comunidade, todos eles dependem dessa habilidade defensiva. Muitas coisas exigem que confirmemos que uma entidade é realmente um ser humano. Se alguém se comporta de maneira inadequada, podemos querer removê-lo temporariamente da comunidade. Isso é algo que você pode observar em serviços digitais e, é claro, também existe no mundo real.

Ao prevenir ataques de Sybil, podemos introduzir mecanismos que restrinjam o comportamento sem aumentar as barreiras de entrada ou comprometer a acessibilidade do sistema. Por exemplo, existem duas maneiras básicas de incentivar o comportamento: uma é através de uma abordagem de 'cenoura e pau' (um sistema de recompensas e penalidades). O método do 'pau' (penalidade) requer que você pague um depósito e, se se comportar mal, esse depósito é confiscado. O staking é um exemplo simples disso. O método da 'cenoura' (recompensa) pressupõe que você se comportará bem e, se não atender às expectativas, perderá alguns de seus direitos. Basicamente, é assim que a maioria das sociedades civis opera.

No entanto, sem mecanismos para prevenir ataques de Sybil na blockchain, essa abordagem não pode realmente ser aplicada. Na sociedade civil, esses mecanismos funcionam porque, se alguém é preso, não pode cometer o mesmo delito novamente—pelo menos, não enquanto estiver encarcerado. A liberdade é um direito inerente, e o governo, em princípio, pode retirá-la. Não estou sugerindo que prendamos alguém na cadeia, mas atualmente não podemos impor restrições similares na blockchain. Isso torna difícil conter comportamentos ruins ao oferecer serviços gratuitos, e acabamos dependendo apenas de encorajar comportamentos bons. O comércio e as atividades promocionais dependem fortemente da capacidade de confirmar que os usuários são pessoas reais.

Aqui está um screenshot de um site que eu uso às vezes. Ele oferece um uísque muito bom que muitas pessoas adoram, e é difícil de encontrar em seu país de origem. Mas na Europa, é relativamente barato, e parece que eles mantêm os preços baixos limitando o número de garrafas que cada pessoa pode comprar. No entanto, esse tipo de operação é quase impossível de ser aplicada em um sistema Web3 real.

Também existem desafios significativos na construção da comunidade, airdrops e na identificação e distribuição aos membros da comunidade. Os airdrops geralmente são ineficientes quando se trata de despesas de capital, pois visam abranger o maior número possível de pessoas. Para distribuir os airdrops de forma justa, é preciso identificar os indivíduos e dar a mesma quantidade a todos. Mas, na prática, surgem muitos problemas, como saldos variados nas carteiras. Eventualmente, você pode se encontrar em uma situação em que a curva de distribuição se torna extremamente desequilibrada, com disparidades enormes. Como resultado, a maioria das pessoas recebe quase nenhum incentivo.

Sobre a questão do “uso justo”, embora o impacto atual seja pequeno, se você usar em excesso os recursos de rede, o sistema geralmente apenas diminui a velocidade da sua conexão, embora você ainda possa usar a rede.

Olhando para trás 10 a 15 anos atrás, se você usasse muito a internet, seu Provedor de Serviço de Internet (ISP) poderia considerar que você não estava usando esse serviço "ilimitado" de forma responsável. Então, eles cortariam completamente o seu serviço, em vez de apenas diminuir a velocidade como fazem agora. Essa abordagem permitia que eles fornecessem serviços de internet quase ilimitados para a maioria dos usuários porque eles podiam identificar quem estava usando os recursos de forma responsável.

A Web2 é construída em um modelo de serviço avançado, que depende muito da capacidade de identificar usuários. Há vinte anos, os mecanismos de identificação eram menos complexos, mas agora é muito diferente. Se você deseja abrir uma conta, geralmente há pelo menos três maneiras diferentes de confirmar que você é uma pessoa real e que eles não o encontraram antes. Por exemplo, se você tentar registrar uma conta da Apple sem comprar um iPhone, é como passar por um curso de obstáculos. Essas empresas basicamente não querem lhe dar uma conta. Claro, elas anunciam que você pode obter uma conta gratuitamente, mas não sei o que a IA nos bastidores está fazendo. Levei 10 tentativas antes de finalmente conseguir, e no final, ainda tive que comprar um iPhone.

Acredito que se conseguíssemos identificar melhor os indivíduos, muitos processos como a "Oracleização" (verificação de informações) se tornariam muito mais fáceis.

Um exemplo típico de utilização da resistência à Síbila como uma 'prova de humanidade' para verificação de informações na sociedade é o sistema de júri. Quando precisamos de um juiz imparcial (ou seja, um Oráculo) para determinar a culpa de alguém, o sistema seleciona aleatoriamente um número ímpar de pessoas comuns da sociedade para ouvir as evidências e tomar uma decisão. Da mesma forma, em outras áreas da vida social, como representação e coleta de opiniões, a representação é uma parte importante da sociedade, e gerenciamos a representação usando métodos de resistência à Síbila. Claro, esse tipo de gestão nem sempre é perfeito devido às falhas na infraestrutura civil atual, especialmente quando a representação é confundida com identidade. Muitas vezes, quando você quer votar, precisa provar sua identidade real, como mostrando uma carteira de motorista ou passaporte. Mas na realidade, votar representa seus direitos de voto, não um elo direto com sua identidade pessoal.

Como Podemos Prevenir Ataques de Sybil? Quais Soluções Estão Atualmente Disponíveis?

Então, como podemos resolver isso?

Na era da Web 2 e até mesmo antes disso, tínhamos vários métodos para verificar a identidade. Nos sistemas atuais da Web 2, esses métodos são frequentemente combinados. Por exemplo, se você quiser criar uma nova conta no Google, talvez precise passar por um CAPTCHA e verificar tanto seu e-mail quanto seu número de telefone. Às vezes, a verificação por SMS pode substituir a conversa com uma pessoa real. Se você já teve sua conta da Amazon bloqueada, saberá do que estou falando - parece que está navegando por um labirinto complicado até finalmente acertar o botão certo para falar com um representante real do serviço ao cliente. Para prevenir ataques Sybil mais avançados, podemos depender de IDs ou informações de cartão de crédito.

No entanto, quando mudamos para o mundo da Web 3, a solução perfeita permanece elusiva. Existem algumas soluções candidatas, mas diferem muito em três áreas-chave: descentralização, proteção da privacidade e resiliência (a capacidade de resistir a ataques).

A resiliência está se tornando uma questão cada vez mais importante, e a maioria dos sistemas enfrenta desafios nessas áreas.

Um exemplo é o que eu chamo de “sistema de confissão”, onde você divulga suas informações privadas a uma autoridade central. Essa autoridade então detém informações sobre você que você não deseja que outros vejam. Por exemplo, você pode escanear seu passaporte e enviá-lo a uma instituição, dando a eles acesso a todos os seus dados pessoais. Isso os coloca em uma posição poderosa, pois controlam informações sensíveis. Essa abordagem não é adequada para a Web 3.

Você também pode encontrar sistemas que parecem ser Web 3, mas dependem de “instituições centralizadas de gerenciamento de chaves”. Essas instituições têm o poder de decidir quem se qualifica como um usuário legítimo controlando as chaves. Às vezes, eles até mesmo mantêm as chaves para os usuários. Em qualquer caso, eles controlam quem é considerado um participante válido.

Este controle centralizado sobre identidade e privacidade contradiz os princípios centrais da Web 3, que se concentram na descentralização e autonomia do usuário.

Apenas colocar algo na cadeia não o torna Web 3. Você pode transferir práticas da Web 2 ou modelos de autoridade centralizada para o blockchain, mas isso não muda a natureza do sistema. Apenas o torna mais resiliente, mas não o descentraliza. Um longo endereço hexadecimal não garante automaticamente privacidade. Sem medidas específicas de privacidade, essa string ainda poderia ser vinculada a identidades do mundo real.

Se um sistema depende de um "mecanismo de confissão", não é uma solução de preservação da privacidade. Já vimos inúmeras violações de dados que comprovam que armazenar dados atrás de firewalls corporativos ou hardware confiável não garante segurança. Uma solução adequada para a Web 3 não deve se concentrar em identidades locais ou identidades específicas da comunidade, mas sim em identidades globais e descentralizadas. Esses são conceitos completamente diferentes.

Alguns sistemas estão tentando lidar com esse problema, mas muitas vezes dependem de hardware específico e gerenciamento de chaves centralizado, portanto, não atendem completamente aos padrões da Web 3. Por exemplo, o projeto Worldcoin tenta resolver isso com hardware confiável, mas depende de um sistema de gerenciamento de chaves centralizado e fonte de dados, o que não está alinhado com o ethos descentralizado da Web 3.

O Passport do Gitcoin é outro exemplo. É amplamente utilizado na comunidade Ethereum como uma plataforma abrangente de solução de identidade. No entanto, ele depende de um sistema de gerenciamento de chave federada, e as fontes de dados muitas vezes vêm de entidades centralizadas como a Coinbase.

Idena é uma solução Web 3 interessante que não utiliza gerenciamento centralizado de chaves ou autoridades. No entanto, é um mecanismo único, e com o avanço da IA, é incerto se essa abordagem terá a resiliência necessária para o futuro. Até agora, tem se saído bem, mas só tem cerca de mil usuários.

Em resumo, nenhuma solução atual aborda completamente o problema dos ataques de Sybil.

Perspectiva de Gavin sobre a solução de ataques de Sybil

Quando se trata de identidade individual, existem duas abordagens para pensar sobre isso: remota e local. As máquinas não entendem intrinsecamente a “identidade individual” e não é provável que vejamos algum tipo de tecnologia de criptografia resolver isso de repente. Alguns podem argumentar que ferramentas biométricas como impressões digitais poderiam tornar cada ser humano único, e as máquinas poderiam medir isso, mas é difícil para sistemas puramente digitais provar isso. A coisa mais próxima de alcançar isso pode ser a Worldcoin, mas mesmo assim, é apenas uma máquina que pode verificar pessoas de uma maneira difícil de trapacear.

Portanto, precisamos reconhecer que a identidade individual está mais relacionada à autenticação. Trata-se de como os elementos dentro de um sistema digital verificam se outros elementos são indivíduos reais. A questão então se torna: qual é a base para essa autenticação? É o contato físico, ou alguma outra forma de comprovação? Podemos confiar que uma conta está vinculada a uma pessoa real porque a conhecemos e presumimos que ela não interagiu com mais ninguém. Ou talvez confiemos na identidade de alguém com base em certas informações que vemos na tela, respaldadas por outras evidências.

Quando falamos sobre autenticação remota (autenticação sem prova física direta), a IA (inteligência artificial) pode criar complicações. Por outro lado, se confiarmos em evidências físicas, a implementação prática se torna desafiadora. Então, estamos presos entre essas limitações. Mas acredito que, com criatividade e inovação, podemos encontrar soluções viáveis.

O que precisamos fazer?

Qual é a solução? Qual é o plano?

Para tornar o Polkadot mais prático no mundo real (além de apenas DeFi, NFTs e espaços virtuais de blockchain), a chave é encontrar uma maneira simples de identificar indivíduos. Isso não significa saber quem alguém é, como “Eu sei que este é Gavin Wood”, mas mais como reconhecer “este é um indivíduo único”. Eu não acredito que haja uma única solução, então precisamos de um framework modular e escalável.

Primeiro, podemos integrar soluções existentes (como Idena). Em segundo lugar, o sistema não deve ser limitado pelas ideias de uma pessoa ou apenas baseado na visão individual do que poderia funcionar. Ele precisa ser aberto, permitindo que outros contribuam para a solução. Em seguida, precisamos de uma forte pseudonimidade contextual. No início, escrevi 'anonimato', e de certa forma, quero dizer anonimato, especialmente anonimato em relação à sua identidade do mundo real. Mas ao mesmo tempo, queremos pseudonimidade, para que em um contexto específico, você possa provar que é uma pessoa única. Além disso, quando você usa o sistema novamente nesse mesmo contexto, você deve ser capaz de provar que é o mesmo indivíduo de antes.

Finalmente, precisamos de um SDK e API robustos para que essa funcionalidade seja tão fácil de usar quanto qualquer outro recurso nos contratos inteligentes do Substrate ou Polkadot, ou no próximo ecossistema JAM. Precisa ser simples de implementar. Para ser mais específico: se você já escreveu código Frame antes, pode ter encontrado uma linha como let account = ensure_signed (origin). Isso recupera a origem da transação e verifica se ela veio de uma conta, me dizendo qual conta é. Mas uma conta não é a mesma que uma pessoa. Uma pessoa pode usar várias contas, e um script também pode. As contas não fornecem informações sobre a identidade individual. Se quisermos garantir que uma transação venha de uma pessoa real - e não apenas de uma das milhões de contas - precisamos substituir este código por algo como let alias = ensure_person (origin, &b”Meu contexto”).

Existem dois benefícios-chave para isso. Primeiro, em vez de apenas perguntar se uma conta está assinando a transação, estamos perguntando se uma pessoa está assinando. Isso abre muitas novas possibilidades.

Em segundo lugar, diferentes operações ocorrem em diferentes contextos, e podemos manter tanto a anonimidade quanto a proteção de pseudônimos nesses contextos. Quando o contexto muda, o pseudônimo também muda, e os pseudônimos em diferentes contextos não podem ser vinculados nem rastreados até a pessoa por trás deles. Esses pseudônimos são completamente anônimos, o que os torna uma ferramenta poderosa no desenvolvimento de blockchain - especialmente ao desenvolver sistemas úteis no mundo real.

Então, quais restrições podemos impor aos mecanismos que identificam indivíduos? Primeiro, esses mecanismos precisam ser amplamente acessíveis. Se estiverem disponíveis apenas para um grupo seleto de pessoas, não serão muito úteis. Eles não devem exigir a posse de ativos ou ter altas taxas - pelo menos, nada excessivo.

Inevitavelmente haverá compensações entre diferentes mecanismos. Eu não acredito que exista uma solução única. Mas algumas compensações são aceitáveis, enquanto outras não. Não devemos comprometer a resiliência, descentralização ou soberania do usuário. Alguns mecanismos podem exigir menos esforço, mas mais confiança, enquanto outros podem exigir mais esforço, mas oferecem maior garantia. Devemos ter expectativas realistas de que os indivíduos verificados pelo sistema (sejam contas vinculadas a indivíduos ou pseudônimos) são realmente únicos, pessoas reais.

Quando diferentes mecanismos em sistemas descentralizados da Web3 avaliam a identidade individual, usando bases de resiliência e não autoritárias, pode haver algum sobreposição. Isso significa que não devemos esperar a perfeição, mas a margem de erro deve ser muito menor do que uma ordem de magnitude. Além disso, o sistema deve ser altamente resistente ao abuso de identidade para evitar que um pequeno grupo ou organização obtenha controle de um grande número de identidades.

É crucial que o sistema tenha salvaguardas para evitar tal abuso. Alguns mecanismos podem oferecer pontuações de identidade individual com relativamente baixa confiança, o que poderia ser um objetivo mais alto. Alguns podem ter sucesso em alcançar isso, outros não, e alguns podem adotar uma abordagem binária: ou confiamos que a conta pertence a um indivíduo único, ou não. Outros mecanismos podem sugerir que estamos 50% confiantes, o que significa que o indivíduo pode ter duas contas, e estamos 50% confiantes em ambas.

Tudo isso precisa ser sem permissão e relativamente fácil de implementar. Não deveria ter que enfatizar isso, mas o sistema não deve depender de mecanismos comuns de confissão ou de instituições de gestão de chaves.

Qual é o benefício dessa abordagem?

Por que devemos fazer isso? Quais são os benefícios?

Nós falamos sobre como a sociedade usa e depende de identidades individuais, mas como isso pode ser aplicado on-chain? Imagine um sistema Polkadot onde as taxas de transação não precisam ser pagas, tornando o uso razoável gratuito. Imagine algo como uma “cadeia de Plaza” (Plaza), que é essencialmente um Asset Hub atualizado com capacidades de contrato inteligente e um sistema de staking.

Nesse tipo de cadeia Plaza, você pode imaginar um cenário em que taxas de gás não sejam necessárias. Desde que você esteja usando o sistema dentro de limites razoáveis, o gás é gratuito. Claro, se você estiver executando scripts ou realizando um grande número de transações, você precisaria pagar taxas, pois isso vai além do que um usuário típico faria. Imagine esses sistemas se abrindo gratuitamente para o público. Poderíamos iniciar comunidades de forma eficiente usando métodos direcionados como airdrops. Ao mesmo tempo, poderíamos imaginar modelos de governança ainda mais avançados para o Polkadot.

Pessoalmente, não estou completamente convencido da ideia de "uma pessoa, um voto." Em alguns casos, é necessário garantir legitimidade, mas nem sempre produz os melhores resultados. No entanto, poderíamos considerar modelos de votação alternativos, como votação quadrática ou votação regional. Em alguns elementos representativos, "uma pessoa, um voto" pode ser bastante esclarecedor.

Também podemos imaginar um sistema Oracle semelhante a um júri, onde parachains e contratos inteligentes podem utilizar sistemas Oracle locais e subordinados, talvez para previsões de preços ou resolução de disputas de usuários. Eles também poderiam ter um sistema de “grande júri” ou “Supremo Tribunal”, onde os membros são selecionados aleatoriamente de um grupo de indivíduos conhecidos para tomar decisões, ajudar a resolver disputas e receber pequenas recompensas. Como esses jurados são escolhidos aleatoriamente de um grande grupo neutro, esse método ofereceria uma maneira resiliente e confiável de resolver conflitos.

Você também poderia imaginar um sistema de controle de ruído, especialmente dentro de integrações descentralizadas de mídia social, para gerenciar spam e comportamentos indesejáveis. No DeFi, podemos ver sistemas baseados em reputação semelhantes aos scores de crédito, mas mais focados em saber se alguém não pagou em dia. Dessa forma, o sistema poderia operar em um modelo freemium, oferecendo diferentes níveis de serviço.

Tudo bem, isso encerra a primeira parte deste discurso. Espero que tenha sido útil.

Isenção de responsabilidade:

  1. Este artigo é uma reedição de [PolkaWorld]. Copyright belongs to the original author [PolkaWorld]. If there are any concerns about the reprint, please contact theEquipe Gate Learn, e a equipe resolverá o problema o mais rápido possível.
  2. Aviso Legal: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. Outras versões do artigo foram traduzidas pela equipe Gate Learn. A menos que Gate.ioé mencionado, copiar, distribuir ou plagiar o conteúdo traduzido é proibido.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!