Além do ZK: o guia definitivo para a privacidade da Web3 (Parte 1)
Secret Network
Uma série de três partes sobre privacidade na Web3, explorando o poder da computação segura e esclarecendo desentendimentos sobre tudo, desde ZKPs a TEEs!
Blockchains sempre tiveram um problema de privacidade por design. A total falta de privacidade on-chain para dados limita severamente o que as blockchains podem alcançar e quais desafios elas podem ser usadas para resolver. No entanto, apenas recentemente as blockchains se tornaram úteis o suficiente (e usadas o suficiente) para que essa fraqueza inerente fosse reconhecida pela comunidade em geral.
No entanto, enquanto mais e mais pessoas entendem o que são blockchains e quais problemas eles podem resolver, há menos clareza sobre como definir adequadamente seu problema de privacidade — e, mais importante, quais soluções existem. Essa lacuna leva a equívocos e mitos populares, com as pessoas muitas vezes atribuindo mais poder a certas soluções do que existe na prática. Como um exemplo simples, a tecnologia “ZK” (conhecimento zero) é útil principalmente para escalabilidade, não privacidade generalizável, e certamente não é a resolução de tudo. Mas você não saberia disso lendo o Twitter ou a maioria das ideias.
Na Secret Network, nos concentramos em abordagens práticas para alcançar a privacidade na produção. Não estamos apenas tentando resolver “privacidade transacional” — o problema muito mais simples de enviar valor de forma privada do ponto A para o ponto B. Temos uma visão muito maior e muito mais significativa: permitir que qualquer pessoa construa aplicativos descentralizados generalizáveis e combináveis com privacidade. Também estamos orgulhosos de ser pioneiros: a Secret Network já é a primeira blockchain L1 a introduzir contratos inteligentes de preservação de privacidade na rede principal — um marco que alcançamos há quase 2 anos.
Como é tão importante para nossa missão que as pessoas não apenas entendam o que estamos construindo, mas por quê estamos construindo, dediquei um tempo para escrever uma série detalhada de três partes sobre privacidade na Web3. Ao final dessas postagens, você terá uma melhor compreensão dos pontos fortes e fracos de várias tecnologias de privacidade, o cenário atual de soluções e por que nós da Secret escolhemos nossa abordagem pragmática e prática particular à privacidade. Com isso dito, o objetivo deste post é ser educacional, não promover especificamente a Secret, e é por isso que fiz o possível para apresentar as diferentes soluções da maneira mais objetiva possível.
Para leitores bem versados, você verá algumas simplificações e generalizações exageradas. Estes foram necessários para poder encaixar esta visão geral exaustiva em uma curta série de posts. Agradecemos seu feedback e sempre podemos fazer melhorias!
Se você gosta deste artigo e compartilha nossa missão de criar o hub de privacidade para toda a Web3, convidamos você a nos ajudar a construir o ecossistema Secret.
Aqui está a estrutura para esta série:
Parte 1 (este post): Vamos definir o problema geral da computação segura, sua relação com a Web3 e por que a privacidade é o elo perdido.
Parte 2: Daremos uma visão abrangente de todas as soluções disponíveis, especialmente suas compensações, e explicaremos como e por que decidimos pela arquitetura atual da Secret Network.
Parte 3: Vamos quebrar mitos comuns sobre soluções de privacidade, incluindo o que a privacidade garante que as provas de conhecimento zero fornecem (e não fornecem).
Vamos mergulhar! 🏊🏻♂️
Uma prévia da nossa análise sobre soluções de privacidade!
Computação Segura
Vamos começar definindo o problema de computação segura, que captura o problema computacional multiusuário. Como mostraremos ao longo deste post, a configuração de computação segura é na prática a configuração para cada blockchain (e não-blockchain!), sem privacidade.
Imagine um mundo idealizado, onde há um servidor único, todo-poderoso e confiável, e todos os outros são clientes que utilizam esse servidor (enviam entradas e recebem saídas). Se tal servidor existe e é acessível a todos e pode realmente ser confiável, podemos utilizá-lo para qualquer serviço digital que possamos imaginar. Esse servidor englobaria toda a web: conteria a infraestrutura digital de nossos governos, nosso sistema bancário, todos os sites, redes sociais, mecanismos de busca, aplicativos etc.
Mesmo em teoria, esse pensamento pode ser inquietante, porque, como todos sabemos, não existe tal entidade em que confiemos para “possuir” este servidor e, com ele, toda a rede mundial de computadores. No entanto, é útil imaginar tal versão ideal da realidade e tentar construir soluções técnicas que tentem imitá-la. Claramente, se pudermos construir tais soluções (por exemplo, usando blockchains, criptografia) que atinjam esse ideal, não precisaríamos confiar apenas na confiança social — a necessidade de confiar cegamente em organizações, governos etc. para fazer a coisa certa.
Então, vamos voltar ao nosso enquadramento ideal por enquanto e assumir que esse servidor confiável realmente existe. Quando dizemos que “confiamos” neste servidor, em que confiamos neste servidor? Bem, claramente, queremos que ele proteja todos os nossos dados e queremos ter certeza de que ele nos forneça serviços úteis (por exemplo, não adultere nossos dados e nos envie resultados incorretos para nossas consultas).
Em outras palavras, nós — os clientes — queremos ter certeza de que podemos proteger a privacidade de nossas entradas (incluindo evitar que o servidor vaze nossos dados para outros clientes) e também garantir a exatidão dos resultados que obtemos de tal servidor . Observe que às vezes é importante que o servidor também garanta que outros clientes não estraguem a computação (por exemplo, fornecendo dados incorretos).
O servidor confiável executa serviços digitais em nome dos usuários.
Essa estrutura que tenta em uma configuração de vários clientes obter privacidade e exatidão é conhecido como o enquadramento computacional seguro do mundo digital ou, alternativamente, o modelo Secure Multi-party Computation (MPC). As soluções para o problema de computação segura tentam usar ferramentas de criptografia e sistemas distribuídos para simular um servidor confiável tão poderoso, sem presumir que ele exista.
Uma observação sobre a terminologia que usaríamos: tanto a computação segura quanto o MPC são frequentemente usados de forma intercambiável, mas como às vezes eles se referem ao problema e outras vezes, como você verá mais tarde, eles se referem a um conjunto específico de soluções, continuaremos para abordar o problema como ‘computação segura’ e usar o MPC para abordar uma classe específica de soluções.
Para ver por que essa estrutura é útil, observe que qualquer operação no mundo digital pode ser essencialmente resumida nesse paradigma ideal. Vamos dar alguns exemplos concretos:
1. Pesquisa na Web: Cada cliente pode compartilhar seu termo de pesquisa, o servidor recupera todas as páginas da Web relacionadas e as retorna ao cliente.
2. Compartilhamento de carona: passageiros e motoristas são os clientes aqui — eles compartilham seus dados de localização com um servidor, que combina passageiros e motoristas próximos (neste caso, tanto um passageiro quanto um motorista obtêm o resultado).
3. Votação: Cada cliente dá seu voto. O servidor contabiliza todos os votos e publica os resultados para todos os indivíduos. Também vemos esse exemplo repetidamente implementado em contratos inteligentes para governança de comunidades de tokens, onde os usuários podem votar proporcionalmente ao número de tokens que possuem.
4. Transferência de token de criptomoeda: Um servidor mantém os saldos de dois clientes, vamos chamá-los de Alice e Bob, que desejam realizar transações. Digamos que Alice deseja transferir X tokens para Bob. O servidor calcula isso e, na maioria das blockchains, permite que todos os clientes saibam (não apenas Alice e Bob!) seus novos saldos.
Para o restante desta série de postagens, nosso objetivo continuará sendo resolver tanto a exatidão quanto à privacidade. Resolver para ambos no caso de uso geral (ou seja, para cada computação/aplicação possível) acaba sendo muito difícil. Observe que existem outras propriedades de interesse, mas que em muitos casos são derivadas dessas duas. Para simplificar, ignoramos principalmente qualquer coisa além de correção e privacidade nesta série.
Como elaboraremos mais adiante, as blockchains hoje (e a Web3 em geral) resolvem apenas metade do problema de computação segura. Blockchains garantem a exatidão, mas não fornecem privacidade alguma. Se você estiver familiarizado com o Secret, saberá que é aqui que entramos — nosso objetivo é fornecer a melhor solução de privacidade para Web3, resolvendo a outra metade do problema de computação segura.
Web2 vs Web3
Até recentemente, todas as soluções técnicas para o problema de computação segura eram apenas teóricas, e a única opção na prática era simplesmente confiar cegamente em uma única entidade — assim como no modelo ideal e não realista que descrevemos acima. É essencialmente assim que a Web2 funciona: os clientes interagem com o servidor de uma empresa específica (por exemplo, Google) e, no processo, permitem que essa empresa acumule e use seus dados da maneira que achar melhor, tudo em troca de receber algum serviço, que os clientes também confie em ser feito corretamente.
Essas abordagens levaram a inúmeras violações de dados, preocupações com privacidade e, eventualmente, regulamentação e novas leis (por exemplo, LGPD) que visam proteger melhor os dados do usuário de uma perspectiva social. A regulamentação, no entanto, é apenas uma peça do quebra-cabeça. Também precisamos de inovação tecnológica.
A invenção do Bitcoin e blockchain — e mais tarde Ethereum — baseou-se em ideias que existem há décadas na literatura acadêmica, mas foram as primeiras tentativas de remover essa confiança em uma única entidade. Um blockchain de contrato inteligente é essencialmente uma coleção de muitos computadores que, embora individualmente não confiáveis, podem ser coletivamente confiáveis para calcular qualquer funcionalidade corretamente. A razão pela qual isso é extremamente poderoso é porque esta solução é genérica — pode ser usada para tudo. Na prática, é uma questão em aberto o quanto podemos dimensionar blockchains para que eles possam realmente substituir soluções centralizadas, mas se realmente pudermos — não seria ótimo construir uma web melhor usando-os? Essa é a ideia central por trás da Web3.
Blockchains ganharam imensa popularidade por sua capacidade de resolver com exatidão, como mencionamos anteriormente, que é metade do problema que definimos para computação segura. Basicamente, isso significa que tudo o que é computado no blockchain pode ser confiável para estar correto e que ninguém (cliente ou servidor) o adulterou.
Portanto, não é surpreendente que os casos de uso em que as blockchains encontraram o maior ajuste ao mercado de produtos até o momento sejam casos de uso financeiros, onde a confiança é escassa. Por exemplo, embora possamos confiar no Google para nos enviar de volta os resultados de pesquisa corretos para nossa consulta (os incentivos estão alinhados), confiaremos nele para gerenciar uma moeda e um livro-razão globais? Provavelmente não.
Ok — então estabelecemos que as blockchains de propriedade de fato resolvem sua exatidão, a próxima pergunta é: e a privacidade? Como se vê, blockchains por design não fornecem privacidade alguma. Nesse sentido, eles são estritamente piores que o modelo Web2:
Ao tentar melhorar o modelo Web2 para exatidão, a Web3 eliminou a privacidade.
Sem ser muito técnico, a principal intuição sobre por que as blockchains são inúteis quando se trata de privacidade está relacionada à forma como elas operam. Em poucas palavras, um blockchain garante a exatidão, permitindo que muitos servidores executem cálculos juntos e verifiquem se todos chegam à mesma conclusão. Como em blockchains sem permissão qualquer pessoa pode executar um servidor, segue-se imediatamente que qualquer pessoa no mundo pode ver os dados de todos, enquanto na Web2 apenas uma única entidade consegue ver esses dados (o que já é ruim o suficiente).
E agora chegamos ao cerne da questão. Como se vê, resolver a privacidade depois de resolver a correção é difícil!
Resolver a privacidade é difícil
Antes de explorarmos o espaço da solução (essa é a Parte 2!),é importante entender intuitivamente por que a resolução de privacidade é difícil e por que provavelmente é mais difícil do que a exatidão. A partir deste ponto, começaremos a ficar um pouco mais técnicos, mas tentaremos manter o nível alto o suficiente para que todos possam entender.
Para exatidão, as blockchains forneceram uma ótima solução: deixamos muitos servidores executarem novamente a computação e eles podem verificar uns aos outros e garantir que ninguém esteja trapaceando. Existem outras soluções para provar a correção, mas no final do dia todas elas voltam para a ideia de que outra pessoa pode verificar seu trabalho.
No entanto, com privacidade, estamos pedindo algo que é completamente contra-intuitivo — estamos pedindo a um servidor (ou vários servidores) para computar dados que não podem ver. Se eles podem ver os dados, podem vazá-los, e isso requer uma confiança que não queremos ter. Na prática, existem várias soluções criptográficas para esse problema, que exploraremos em breve — mas, como tudo na vida, elas vêm com compensações, algumas das quais permanecem muito sérias.
Mais importante, o vazamento de dados é uma forma silenciosa de ataque de segurança: por definição, nós ou outros podemos não saber que os dados foram vazados. Mesmo que acabemos encontrando nossos dados confidenciais carregados em outro lugar na web, pode ser impossível identificar onde ocorreu o vazamento e quem o vazou. Isso é muito diferente da exatidão, onde os ataques “ruidosos” (ou seja, você precisa quebrar o protocolo ativamente e outros podem observá-lo) permitem identificar mais facilmente os agentes mal-intencionados.
Essa questão de ataques ‘silenciosos’ versus ‘ruidosos’ é provavelmente o maior contribuinte para o motivo pelo qual a criação de soluções de preservação de privacidade é tão difícil, porque não podemos incentivar esse tipo de comportamento.
Agora que estamos começando a entender o problema da privacidade na Web3, é hora de nos aprofundarmos em quais soluções estão disponíveis, quais são as vantagens e como a Secret está resolvendo esse problema muito significativo com uma arquitetura única que preserva a privacidade e é programável , e pragmático.
Obrigado por ler a Parte 1 desta série sobre privacidade na Web3! A Parte 2 detalhará as tecnologias individuais, bem como seus pontos fortes e fracos atuais:
- Criptografia homomórfica total ou parcial (HE/FHE)
- Ambientes de Execução Confiáveis (TEEs)
- Computação multipartidária segura (MPC)
- Provas de Conhecimento Zero (ZKPs)
Pensamos profundamente sobre esses problemas nos últimos anos, e a Secret Network tem orgulho de continuar liderando a demanda por computação segura no espaço blockchain. Se essas ideias lhe interessam — e se você está convencido de sua importância — junte-se a nós na construção de soluções e tecnologias que podem nos ajudar a proteger a web descentralizada e dimensionar a Web3!
Se você é um desenvolvedor de aplicativos, confira nossos recursos aqui. (Secret usa Rust!)
Se você é alguém apaixonado por garantir que os usuários da Web3 tenham as proteções de privacidade de dados que eles precisam e merecem, considere se tornar um Agente Secreto! É nossa missão garantir que a web descentralizada que estamos construindo seja realmente capacitada — e acessível a todos. Da conscientização e educação ao crescimento internacional e relações universitárias, há muitas maneiras de ajudar a contribuir para a expansão do ecossistema Secret e a disponibilidade global de tecnologias de privacidade na Web3.
Confira o programa Agentes Secretos e junte-se a uma das melhores e mais comprometidas comunidades em todo o espaço blockchain!
Avante e para cima para a privacidade!
Guy Zyskind é o fundador da Secret Network, CEO da SCRT Labs, ex-pesquisador do MIT e autor de alguns dos documentos de privacidade de blockchain mais citados (incluindo “Decentralizing Privacy”, escrito em 2015).
Dúvidas e caso queira se envolver no projeto da Secret Network, junte-se a nossas redes:
Telegram Secret em português: https://t.me/secret_portuguese
Canal Youtube Secret Network em português: https://www.youtube.com/c/SecretNetworkHubPTBR
Twitter Secret português: https://twitter.com/scrt_portuguese
Instagram: https://www.instagram.com/secretportuguese/
Discord: https://discord.gg/Ug5yx3MN