Sim, mas alguns mais do que outros.
Todos se importam com a privacidade em algum grau e todos nós fazemos suposições implícitas sobre a privacidade em nossas vidas diárias. Por exemplo, ao escrever uma mensagem em um grupo da empresa no Slack, você assume que apenas seus colegas de trabalho podem ver as mensagens. Da mesma forma, muitos estão bem com a empresa do cartão de crédito ou banco podendo monitorar suas transações, mas não gostariam de divulgar seu histórico de transações para o resto do mundo.
As corporações têm razões adicionais para se preocupar com a privacidade (competitivas, de segurança e regulatórias) e geralmente têm uma maior disposição para pagar por ela em comparação com os usuários individuais.
Outra pergunta importante é: De quem os usuários querem privacidade?
O primeiro é uma necessidade absoluta para a maioria dos casos de uso e já é alcançável nas redes blockchain hoje, se aceitarmos garantias mais fracas (mais sobre isso mais adiante). O segundo é o que nós, como indústria, estamos trabalhando para oferecer mais controle aos usuários e evitar que empresas com modelos comerciais alavanquem nossos dados sem permissão. O terceiro - privacidade dos governos e órgãos governamentais - é o mais complicado do ponto de vista regulatório e político.
Privacidade não é segredo. Um assunto privado é algo que alguém não quer que o mundo inteiro saiba, mas um assunto secreto é algo que alguém não quer que ninguém saiba. Privacidade é o poder de se revelar seletivamente ao mundo - Manifesto de um Cypherpunk
Privacidade é um assunto complexo que abrange vários tópicos separados (mas relacionados) como soberania dos dados (propriedade individual dos dados), criptografia, etc. Além disso, as pessoas geralmente usam o termo de forma bastante flexível em diferentes contextos, sem definições claras, o que torna difícil raciocinar sobre isso. Termos como confidencialidade (o que) e anonimato (quem) são frequentemente usados de forma intercambiável com privacidade, embora ambos sejam apenas um subconjunto de recursos de privacidade a serem almejados.
Algumas questões-chave sobre privacidade são:
Com base nessas perguntas, poderíamos resumir tudo em uma frase:
Privacidade diz respeito ao usuário (dono dos dados) ter controle sobre quais dados são compartilhados, com quem e sob quais termos, juntamente com garantias sólidas de que o que é programado para ser privado permanece assim.
Considerando o acima - "privacidade" é um termo ruim para o que estamos tentando alcançar? Talvez, talvez não. Depende de como você aborda isso.
Por um lado, o termo “privacidade” parece bastante binário (algo é privado ou não), mas, como destacamos acima, é muito mais sutil do que isso. Diferentes coisas podem ser privadas (entrada, saída, programa interagido, etc), algo pode ser privado para uma pessoa, mas público para outra, e há uma série de pressupostos de confiança por trás de diferentes soluções de privacidade. Além disso, o termo tem uma conotação negativa que pode desviar a discussão do tópico real.
Por outro lado, "privacidade" é um termo bem conhecido com participação de mercado existente. A introdução de novos termos pode ser confusa, especialmente se não houver consenso em torno de qual novo termo deve ser usado. Tentar contornar o assunto usando um termo alternativo também parece um pouco desonesto e devemos ser capazes de falar sobre as coisas como elas são.
Como engenheiros de protocolo e construtores de redes blockchain, olhar as coisas de uma nova perspectiva pode nos ajudar a detectar novos problemas ou lacunas nas soluções atuais. Termos alternativos como controle de fluxo de informação (usado na literatura de privacidade mais ampla) ou divulgações programáveis (nossa sugestão) talvez capturem melhor a nuance. A informação pode ser privada para alguns, mas pública para outros, e cabe aos usuários decidir quais informações serão compartilhadas com quem.
No entanto, neste post, vamos nos ater ao termo privacidade para evitar confusões desnecessárias.
A maioria dos usuários da internet está familiarizada com a “privacidade” da web2. Nossos dados são criptografados durante o trânsito (até 95% de todo o tráfego hoje) e protegidos de outros usuários, mas compartilhados com intermediários e prestadores de serviços confiáveis. Em outras palavras, a “privacidade” (dos outros usuários) vem da confiança em um intermediário.
Esta abordagem dá algum controle ao usuário com quem compartilhar seus dados além do provedor de serviços. No entanto, ela deposita muita confiança (direta ou indiretamente) no provedor de serviços para manter os dados seguros e manipulá-los adequadamente. Além disso, garantias limitadas e pouca transparência sobre como os dados são usados significa que os usuários só podem esperar que os provedores de serviços se comportem como afirmam (modelo baseado em reputação).
As redes blockchain visam reduzir a dependência de intermediários e fornecer garantias mais fortes ao mudar de um modelo baseado em reputação para garantias econômicas ou criptográficas. No entanto, o modelo distribuído também impõe novos desafios, especialmente em relação à privacidade. Os nós precisam sincronizar e chegar a um consenso sobre o estado atual da rede, o que é relativamente fácil quando todos os dados são transparentes e compartilhados entre todos os nós (status quo). Isso se torna significativamente mais difícil quando começamos a criptografar dados - uma das principais razões pelas quais a maioria das redes blockchain são transparentes hoje em dia.
Existem duas maneiras de alcançar privacidade para redes blockchain: privacidade confiável (intermediada) ou privacidade com minimização de confiança (não intermediada).
Ambos são desafiadores, mas por razões diferentes (ideológicas versus técnicas). A privacidade confiável está mais prontamente disponível, mas tem garantias mais fracas e requer sacrificar parte da ideologia das blockchains, confiando em atores e intermediários centralizados. A privacidade minimizada pela confiança pode oferecer garantias muito mais fortes e garantir que os usuários permaneçam no controle de seus dados, mas é mais difícil tanto do ponto de vista técnico quanto político (como permanecer em conformidade com as regulamentações atuais).
A abordagem confiável parece bastante semelhante à privacidade no estilo web2, pois pode alcançar privacidade em relação a outros usuários, mas requer confiar em terceiros ou intermediários para facilitar isso. Não é tão tecnicamente exigente, o que a torna uma escolha pragmática para projetos que exigem algumas garantias de privacidade hoje, mas são sensíveis aos custos e têm transações de menor valor. Um exemplo disso são os protocolos sociais web3 (como Rede de Lentes), que enfatizam mais o desempenho e a praticidade do que a rigidez das garantias de privacidade.
Uma abordagem simples é usar umvalidiumonde um comitê de disponibilidade de dados (DAC) detém o estado atual e os usuários confiam nos operadores do DAC para manter esse estado privado e atualizá-lo conforme necessário. Outro exemplo é extensão do token da Solanaque alcança confidencialidade para pagamentos (ocultando saldos de contas e transações) usando ZKPs, mas permite nomear uma terceira parte confiável com direitos de auditoria para garantir conformidade regulatória.
Argumentaríamos que esse modelo pode estender o paradigma atual da web2, onde você confia exclusivamente em um intermediário para cumprir as regras. Com blockchains, o modelo de confiança pura pode ser combinado com algumas garantias adicionais (econômicas ou criptográficas) de que os intermediários se comportarão conforme o esperado, ou pelo menos aumentarão o incentivo para fazê-lo.
Também existem soluções híbridas onde uma solução minimizada de confiança depende de um componente centralizado para melhorar custo, UX ou desempenho. Exemplos nesta categoria incluem terceirizar a prova para ZKPs privados para um único provador, ou uma rede FHE onde um intermediário centralizado detém a chave de descriptografia.
(Incluímos blockchains permissionados na categoria confiável, mas todas as outras soluções estão relacionadas a blockchains sem permissão).
A abordagem de minimização de confiança evita ter um único ponto de falha através de um intermediário confiável que pode fornecer garantias mais fortes. No entanto, é muito mais difícil de implementar do ponto de vista técnico. Na maioria dos casos, requer uma combinação de soluções criptográficas modernas e mudanças estruturais, como o uso de uma estrutura de conta diferente.
As soluções existentes estão principalmente focadas em casos de uso especializados, como:
Muitos casos de uso, no entanto, dependem de estado compartilhado e se torna muito mais desafiador quando tentamos estender a privacidade minimizada de confiança a esses casos de uso de propósito geral.
Outra coisa a notar é que, embora os casos de uso especializados (pagamentos, votação, identidade, etc.) possam funcionar bem isoladamente, eles exigem que os usuários se movam entre conjuntos blindados (zonas de confiança) para diferentes casos de uso. Isso é sub-ótimo, poisa maioria das informações vazouao entrar e sair de um conjunto protegido.
Portanto, o objetivo deve ser permitir a privacidade para computação de propósito geral (todos os casos de uso, incluindo aqueles que requerem estado compartilhado), expandir o conjunto protegido e adicionar controles granulares de gerenciamento de acesso (expressividade).
Embora o objetivo final seja claro, o caminho para chegar lá é longo. Entretanto, precisamos de quadros para avaliar as soluções actuais e que compensações fazem. Acreditamos que o espaço de compensação pode ser dividido em três grandes categorias:
Quanto mais caixas uma solução pode marcar, melhor. Idealmente, você teria todas elas, mas isso frequentemente requer fazer algumas compensações. A diferença entre função e privacidade do programa é que alguns sistemas permitem ocultar qual função foi chamada (por exemplo, qual lógica de licitação o usuário usou), mas ainda revelam o programa com o qual o usuário interagiu. A privacidade do programa é uma forma mais rigorosa disso, onde todas as chamadas de função são privadas juntamente com o programa com o qual interagiu. Esta categoria também é onde se enquadra a discussão sobre anonimato (quem) versus confidencialidade (o quê).
É importante notar que o usuário tem a opção de divulgar seletivamente algumas (ou todas) delas para certas partes, mas se nenhuma delas for privada por padrão, então o usuário não tem essa opção.
Esta categoria foca na programabilidade da computação privada e onde estão suas limitações:
Como mencionado anteriormente, muitas aplicações (no mundo real) requerem algum estado compartilhado, o que é difícil de alcançar de forma minimamente confiável. Há muito trabalho e pesquisa em curso nessa área para nos ajudar a passar de soluções de privacidade específicas de aplicativos que só exigem estado local (por exemplo, pagamentos), para privacidade programável de propósito geral com estado compartilhado.
A programabilidade também está relacionada à disponibilidade de ferramentas granulares para divulgar seletivamente certas informações e revogar o acesso, se necessário (por exemplo, quando um funcionário se demite, queremos garantir que ele não tenha mais acesso a informações específicas da empresa ou outras informações sensíveis)
A questão central é: Quão certo podemos estar de que o que é privado hoje permanecerá assim no futuro (privacidade futura) e quais são as garantias que sustentam isso?
Isso inclui coisas como:
Como podemos ver acima, essa categoria inclui tanto questões técnicas (por exemplo, qual esquema de prova se escolhe) quanto questões baseadas em design (por exemplo, adicionar incentivos que aumentam o tamanho do conjunto blindado).
No final, isso se resume a quem deve ter controle sobre quais dados compartilhar - os usuários ou os intermediários. As blockchains tentam aumentar a soberania individual, mas é uma luta desafiadora, já que o controle é poder, e as disputas de poder são complicadas. Isso se relaciona também com o aspecto regulatório e de conformidade - uma grande razão pela qual a privacidade não intermediada ou de confiança minimizada será desafiadora (mesmo se resolvermos os obstáculos técnicos).
Hoje, a discussão está amplamente centrada em torno da privacidade dos casos de uso financeiro (pagamentos, transferências, swaps, etc.) - em parte porque é onde está a maior parte da adoção. No entanto, argumentaríamos que os casos de uso não financeiros importam igualmente, se não mais, do que os financeirizados e não têm a mesma pretensão carregada. Jogos que exigem entradas privadas ou soluções de estado (pôquer, couraçado, etc) ou identidade onde o indivíduo deseja manter seu documento original seguro podem atuar como poderosos incentivos para normalizar a privacidade em redes blockchain. Há também a opção de ter diferentes níveis de privacidade dentro do mesmo aplicativo para transações diferentes ou revelar algumas informações se certas condições forem atendidas. A maioria dessas áreas permanece pouco explorada hoje.
Em um mundo ideal, os usuários têm plena expressividade do que é privado e para quem, além de fortes garantias de que o que está programado para ser privado permanece assim. Examinaremos mais de perto as diferentes tecnologias que permitem isso e as compensações entre elas na parte 2 de nossa série de privacidade.
A transição para a computação de propósito geral privada e descentralizada em blockchains será longa e difícil, mas valerá a pena no final.
Sim, mas alguns mais do que outros.
Todos se importam com a privacidade em algum grau e todos nós fazemos suposições implícitas sobre a privacidade em nossas vidas diárias. Por exemplo, ao escrever uma mensagem em um grupo da empresa no Slack, você assume que apenas seus colegas de trabalho podem ver as mensagens. Da mesma forma, muitos estão bem com a empresa do cartão de crédito ou banco podendo monitorar suas transações, mas não gostariam de divulgar seu histórico de transações para o resto do mundo.
As corporações têm razões adicionais para se preocupar com a privacidade (competitivas, de segurança e regulatórias) e geralmente têm uma maior disposição para pagar por ela em comparação com os usuários individuais.
Outra pergunta importante é: De quem os usuários querem privacidade?
O primeiro é uma necessidade absoluta para a maioria dos casos de uso e já é alcançável nas redes blockchain hoje, se aceitarmos garantias mais fracas (mais sobre isso mais adiante). O segundo é o que nós, como indústria, estamos trabalhando para oferecer mais controle aos usuários e evitar que empresas com modelos comerciais alavanquem nossos dados sem permissão. O terceiro - privacidade dos governos e órgãos governamentais - é o mais complicado do ponto de vista regulatório e político.
Privacidade não é segredo. Um assunto privado é algo que alguém não quer que o mundo inteiro saiba, mas um assunto secreto é algo que alguém não quer que ninguém saiba. Privacidade é o poder de se revelar seletivamente ao mundo - Manifesto de um Cypherpunk
Privacidade é um assunto complexo que abrange vários tópicos separados (mas relacionados) como soberania dos dados (propriedade individual dos dados), criptografia, etc. Além disso, as pessoas geralmente usam o termo de forma bastante flexível em diferentes contextos, sem definições claras, o que torna difícil raciocinar sobre isso. Termos como confidencialidade (o que) e anonimato (quem) são frequentemente usados de forma intercambiável com privacidade, embora ambos sejam apenas um subconjunto de recursos de privacidade a serem almejados.
Algumas questões-chave sobre privacidade são:
Com base nessas perguntas, poderíamos resumir tudo em uma frase:
Privacidade diz respeito ao usuário (dono dos dados) ter controle sobre quais dados são compartilhados, com quem e sob quais termos, juntamente com garantias sólidas de que o que é programado para ser privado permanece assim.
Considerando o acima - "privacidade" é um termo ruim para o que estamos tentando alcançar? Talvez, talvez não. Depende de como você aborda isso.
Por um lado, o termo “privacidade” parece bastante binário (algo é privado ou não), mas, como destacamos acima, é muito mais sutil do que isso. Diferentes coisas podem ser privadas (entrada, saída, programa interagido, etc), algo pode ser privado para uma pessoa, mas público para outra, e há uma série de pressupostos de confiança por trás de diferentes soluções de privacidade. Além disso, o termo tem uma conotação negativa que pode desviar a discussão do tópico real.
Por outro lado, "privacidade" é um termo bem conhecido com participação de mercado existente. A introdução de novos termos pode ser confusa, especialmente se não houver consenso em torno de qual novo termo deve ser usado. Tentar contornar o assunto usando um termo alternativo também parece um pouco desonesto e devemos ser capazes de falar sobre as coisas como elas são.
Como engenheiros de protocolo e construtores de redes blockchain, olhar as coisas de uma nova perspectiva pode nos ajudar a detectar novos problemas ou lacunas nas soluções atuais. Termos alternativos como controle de fluxo de informação (usado na literatura de privacidade mais ampla) ou divulgações programáveis (nossa sugestão) talvez capturem melhor a nuance. A informação pode ser privada para alguns, mas pública para outros, e cabe aos usuários decidir quais informações serão compartilhadas com quem.
No entanto, neste post, vamos nos ater ao termo privacidade para evitar confusões desnecessárias.
A maioria dos usuários da internet está familiarizada com a “privacidade” da web2. Nossos dados são criptografados durante o trânsito (até 95% de todo o tráfego hoje) e protegidos de outros usuários, mas compartilhados com intermediários e prestadores de serviços confiáveis. Em outras palavras, a “privacidade” (dos outros usuários) vem da confiança em um intermediário.
Esta abordagem dá algum controle ao usuário com quem compartilhar seus dados além do provedor de serviços. No entanto, ela deposita muita confiança (direta ou indiretamente) no provedor de serviços para manter os dados seguros e manipulá-los adequadamente. Além disso, garantias limitadas e pouca transparência sobre como os dados são usados significa que os usuários só podem esperar que os provedores de serviços se comportem como afirmam (modelo baseado em reputação).
As redes blockchain visam reduzir a dependência de intermediários e fornecer garantias mais fortes ao mudar de um modelo baseado em reputação para garantias econômicas ou criptográficas. No entanto, o modelo distribuído também impõe novos desafios, especialmente em relação à privacidade. Os nós precisam sincronizar e chegar a um consenso sobre o estado atual da rede, o que é relativamente fácil quando todos os dados são transparentes e compartilhados entre todos os nós (status quo). Isso se torna significativamente mais difícil quando começamos a criptografar dados - uma das principais razões pelas quais a maioria das redes blockchain são transparentes hoje em dia.
Existem duas maneiras de alcançar privacidade para redes blockchain: privacidade confiável (intermediada) ou privacidade com minimização de confiança (não intermediada).
Ambos são desafiadores, mas por razões diferentes (ideológicas versus técnicas). A privacidade confiável está mais prontamente disponível, mas tem garantias mais fracas e requer sacrificar parte da ideologia das blockchains, confiando em atores e intermediários centralizados. A privacidade minimizada pela confiança pode oferecer garantias muito mais fortes e garantir que os usuários permaneçam no controle de seus dados, mas é mais difícil tanto do ponto de vista técnico quanto político (como permanecer em conformidade com as regulamentações atuais).
A abordagem confiável parece bastante semelhante à privacidade no estilo web2, pois pode alcançar privacidade em relação a outros usuários, mas requer confiar em terceiros ou intermediários para facilitar isso. Não é tão tecnicamente exigente, o que a torna uma escolha pragmática para projetos que exigem algumas garantias de privacidade hoje, mas são sensíveis aos custos e têm transações de menor valor. Um exemplo disso são os protocolos sociais web3 (como Rede de Lentes), que enfatizam mais o desempenho e a praticidade do que a rigidez das garantias de privacidade.
Uma abordagem simples é usar umvalidiumonde um comitê de disponibilidade de dados (DAC) detém o estado atual e os usuários confiam nos operadores do DAC para manter esse estado privado e atualizá-lo conforme necessário. Outro exemplo é extensão do token da Solanaque alcança confidencialidade para pagamentos (ocultando saldos de contas e transações) usando ZKPs, mas permite nomear uma terceira parte confiável com direitos de auditoria para garantir conformidade regulatória.
Argumentaríamos que esse modelo pode estender o paradigma atual da web2, onde você confia exclusivamente em um intermediário para cumprir as regras. Com blockchains, o modelo de confiança pura pode ser combinado com algumas garantias adicionais (econômicas ou criptográficas) de que os intermediários se comportarão conforme o esperado, ou pelo menos aumentarão o incentivo para fazê-lo.
Também existem soluções híbridas onde uma solução minimizada de confiança depende de um componente centralizado para melhorar custo, UX ou desempenho. Exemplos nesta categoria incluem terceirizar a prova para ZKPs privados para um único provador, ou uma rede FHE onde um intermediário centralizado detém a chave de descriptografia.
(Incluímos blockchains permissionados na categoria confiável, mas todas as outras soluções estão relacionadas a blockchains sem permissão).
A abordagem de minimização de confiança evita ter um único ponto de falha através de um intermediário confiável que pode fornecer garantias mais fortes. No entanto, é muito mais difícil de implementar do ponto de vista técnico. Na maioria dos casos, requer uma combinação de soluções criptográficas modernas e mudanças estruturais, como o uso de uma estrutura de conta diferente.
As soluções existentes estão principalmente focadas em casos de uso especializados, como:
Muitos casos de uso, no entanto, dependem de estado compartilhado e se torna muito mais desafiador quando tentamos estender a privacidade minimizada de confiança a esses casos de uso de propósito geral.
Outra coisa a notar é que, embora os casos de uso especializados (pagamentos, votação, identidade, etc.) possam funcionar bem isoladamente, eles exigem que os usuários se movam entre conjuntos blindados (zonas de confiança) para diferentes casos de uso. Isso é sub-ótimo, poisa maioria das informações vazouao entrar e sair de um conjunto protegido.
Portanto, o objetivo deve ser permitir a privacidade para computação de propósito geral (todos os casos de uso, incluindo aqueles que requerem estado compartilhado), expandir o conjunto protegido e adicionar controles granulares de gerenciamento de acesso (expressividade).
Embora o objetivo final seja claro, o caminho para chegar lá é longo. Entretanto, precisamos de quadros para avaliar as soluções actuais e que compensações fazem. Acreditamos que o espaço de compensação pode ser dividido em três grandes categorias:
Quanto mais caixas uma solução pode marcar, melhor. Idealmente, você teria todas elas, mas isso frequentemente requer fazer algumas compensações. A diferença entre função e privacidade do programa é que alguns sistemas permitem ocultar qual função foi chamada (por exemplo, qual lógica de licitação o usuário usou), mas ainda revelam o programa com o qual o usuário interagiu. A privacidade do programa é uma forma mais rigorosa disso, onde todas as chamadas de função são privadas juntamente com o programa com o qual interagiu. Esta categoria também é onde se enquadra a discussão sobre anonimato (quem) versus confidencialidade (o quê).
É importante notar que o usuário tem a opção de divulgar seletivamente algumas (ou todas) delas para certas partes, mas se nenhuma delas for privada por padrão, então o usuário não tem essa opção.
Esta categoria foca na programabilidade da computação privada e onde estão suas limitações:
Como mencionado anteriormente, muitas aplicações (no mundo real) requerem algum estado compartilhado, o que é difícil de alcançar de forma minimamente confiável. Há muito trabalho e pesquisa em curso nessa área para nos ajudar a passar de soluções de privacidade específicas de aplicativos que só exigem estado local (por exemplo, pagamentos), para privacidade programável de propósito geral com estado compartilhado.
A programabilidade também está relacionada à disponibilidade de ferramentas granulares para divulgar seletivamente certas informações e revogar o acesso, se necessário (por exemplo, quando um funcionário se demite, queremos garantir que ele não tenha mais acesso a informações específicas da empresa ou outras informações sensíveis)
A questão central é: Quão certo podemos estar de que o que é privado hoje permanecerá assim no futuro (privacidade futura) e quais são as garantias que sustentam isso?
Isso inclui coisas como:
Como podemos ver acima, essa categoria inclui tanto questões técnicas (por exemplo, qual esquema de prova se escolhe) quanto questões baseadas em design (por exemplo, adicionar incentivos que aumentam o tamanho do conjunto blindado).
No final, isso se resume a quem deve ter controle sobre quais dados compartilhar - os usuários ou os intermediários. As blockchains tentam aumentar a soberania individual, mas é uma luta desafiadora, já que o controle é poder, e as disputas de poder são complicadas. Isso se relaciona também com o aspecto regulatório e de conformidade - uma grande razão pela qual a privacidade não intermediada ou de confiança minimizada será desafiadora (mesmo se resolvermos os obstáculos técnicos).
Hoje, a discussão está amplamente centrada em torno da privacidade dos casos de uso financeiro (pagamentos, transferências, swaps, etc.) - em parte porque é onde está a maior parte da adoção. No entanto, argumentaríamos que os casos de uso não financeiros importam igualmente, se não mais, do que os financeirizados e não têm a mesma pretensão carregada. Jogos que exigem entradas privadas ou soluções de estado (pôquer, couraçado, etc) ou identidade onde o indivíduo deseja manter seu documento original seguro podem atuar como poderosos incentivos para normalizar a privacidade em redes blockchain. Há também a opção de ter diferentes níveis de privacidade dentro do mesmo aplicativo para transações diferentes ou revelar algumas informações se certas condições forem atendidas. A maioria dessas áreas permanece pouco explorada hoje.
Em um mundo ideal, os usuários têm plena expressividade do que é privado e para quem, além de fortes garantias de que o que está programado para ser privado permanece assim. Examinaremos mais de perto as diferentes tecnologias que permitem isso e as compensações entre elas na parte 2 de nossa série de privacidade.
A transição para a computação de propósito geral privada e descentralizada em blockchains será longa e difícil, mas valerá a pena no final.