WEB3DEV

Cover image for As vantagens da privacidade da Blockchain nos computadores com Internet Computer
Lorenzo Battistela
Lorenzo Battistela

Posted on

As vantagens da privacidade da Blockchain nos computadores com Internet Computer

Como os canister smart contracts protegem a privacidade de usuários finais melhor do que a web tradicional.

Este artigo escrito por Jens Groth foi traduzido por Lorenzo Battistela, e pode ser encontrado originalmente aqui.

A privacidade online tem a ver com proteger você de intrusões vindas de fora, seja envolvendo restrições de uso de dados, anúncios não desejados, pesquisas e rastreamento ou proteção de abusos. Esse princípio é central para a blockchain Internet Computer, onde os usuários podem interagir com canister smart contracts que os desenvolvedores criaram e implantaram para rodar aplicações descentralizadas (dapps), plataformas DeFi, NFTs, sites e serviços de internet tokenizados diretamente na open web.

Qualquer um pode desenvolver e implantar um canister na Internet Computer - e as intenções de um desenvolvedor podem ir de conscientes sobre a privacidade até intrusivos. O presente artigo explica os limites pelos quais os canisters operam, e como eles fornecem melhor proteção para usuários finais do que na web tradicional. Também descreve a arquitetura por trás do Internet Computer e suas implicações na privacidade.

Privacidade da camada de aplicação

Primeiro discutiremos a privacidade oferecida na camada da aplicação pelas interfaces padrão dos canisters. Os desenvolvedores podem carregar dapps na forma de canisters na Internet Computer. Usuários podem usar software para interagir com os canisters através de chamadas de query, que são processadas em milissegundos, e atualizar chamadas, o que pode levar alguns segundos. Uma chamada de query permite que o seu software leia um canister - você pode, por exemplo, fazer uma query das últimas mensagens recebidas no OpenChat ou ler um perfil de outro usuário no Distrikt. Uma chamada de query não pode mudar o estado em um canister, o que significa que o canister não pode armazenar nenhuma informação da sua requisição. Os desenvolvedores podem oferecer interfaces read-only em seu canister, permitindo processamento sofisticado de dados, mas o canister não lembrará nenhuma informação da sua query. Ele não sabe nem que processou sua query.

Para armazenar algo em um canister, seu software deve fazer uma chamada de atualização. Quando você manda uma mensagem no OpenChat ou atualiza seu perfil no Distrikt, a informação tem que ser armazenada em um canister relevante de maneira que possa ser mostrado para outros usuários. Os canisters têm diferença no processamento de dados. Um canister pode, em princípio, gravar todas as chamadas de atualização que você mandar e vender seu histórico de chamadas de atualização para terceiros.

Uma maneira da coleta de dados ser contrariada é por meio de pseudônimos. Uma chamada de atualização tem uma identificação de quem mandou - um principal. Se um canister permitir, você pode se conectar usando um principal especial e anônimo. Nesse caso, o canister não aprende quem mandou a requisição. Se um canister exigir o principal, você deve ter um principal para interagir com o canister de maneira que ele não poderá ser conectado às suas interações com outros canisters.

Internet Identityé um sistema de autenticação criptografada que providencia principals com pseudônimos. Internet Identity aplica uma função pseudo randômica semeada com um salt para criar um principal diferente em seu comportamento cada vez que você se autenticar com ele. Para alguém que não sabe o valor do salt (cuja segurança é discutida na seção de privacidade da plataforma abaixo), os principals não são conectáveis entre eles. Os canisters podem, é claro, rastrear múltiplos acessos com o mesmo principal, e podem até a partir de payloads e o timing de chamadas de atualização descobrir algumas informações sobre você, mas comparado com software da web tradicional, eles são mais restritos no que podem fazer.

Implicitamente, nós confiamos no software do usuário para atender as chamadas de query e chamadas de atualização de maneira apropriada. A especificação de interface do Internet Computer detalha a interface para os canisters, e qualquer um pode escrever software para interagir com o Internet Computer. Se o software que você usa contorna sua privacidade, o Internet Computer não pode consertar isso. Agora, o software pode não ser independente do canister que você está usando, o desenvolvedor pode tê-lo fornecido para facilitar a interação com os canisters dele. De fato, se você acessar o Internet Computer por meio do seu navegador, geralmente você acessa um canister a partir de um front-end fornecido pelo dapp. _Um _front-end malicioso pode tentar interceptar chamadas de atualização ao invés de chamadas de query para vazar informação para um canister; _também pode vazar informação para um _canister através de payloads ou transmitir diretamente para terceiros. Mas comparado com a web tradicional, esses ataques são mais difíceis de serem disfarçados. Já que as chamadas de query são processadas usualmente dentro de milissegundos, enquanto as chamadas de atualização podem demorar alguns segundos, trocar uma pela outra resulta em problemas de tempo significativos. O vazamento para terceiros pode ser detectado monitorando o padrão de comunicação. A melhor solução é usar, em primeiro lugar, software honesto como descrito abaixo, sendo mais fácil fazer a verificação de confiabilidade de software no Internet Computer do que na web tradicional.

À medida que o Internet Computer crescer de maneira mais sofisticada, nós esperamos que a transparência aumente. Uma opção é a construção verificável de canisters. Canisters são fornecidos pelos desenvolvedores na forma de módulos WebAssembly (Wasm). Compiladores determinísticos podem ligar um módulo Wasm diretamente ao código fonte original. A inspeção do código fonte de um canister construído de maneira verificável permite ver exatamente como os dados são processados, assim como quais informações o canister compartilha com outros canisters e usuários. Já que os canisters são executados deterministicamente no Internet Computer, também podemos ter garantias sobre o que eles servem para os usuários, ou seja, que o front-end que eles servem e os usuários acessam através do navegador são benignos. Mesmo se alguns canisters não quiserem revelar seus códigos fontes, pode existir ajuda no caminho. Na verdade, podem existir canisters construídos de maneira verificável que oferecem proteção de privacidade como um serviço e agem como intermediários entre usuários e canisters de fonte fechada para garantir sua privacidade. Internet Identity pode ser visto como um exemplo de serviço de proteção de privacidade, oferecendo acesso para outros canisters por meio de um principal com pseudônimo.

Privacidade da plataforma

Observando a camada da aplicação onde os canisters rodam, também precisamos entender as implicações de privacidade da plataforma. O Internet Computer está rodando em uma rede descentralizada, onde os dados e a computação são replicados através de nós em centros de dados localizados ao redor do mundo. Essa estrutura descentralizada é boa sob uma perspectiva de disponibilidade e integridade. A habilidade de processar dados e garantir processamento correto vem dessa arquitetura descentralizada. Outra ferramenta da descentralização é que os detentores do token do ICP votam em mudanças propostas na rede do Internet Computer fazendo o staking de tokens em neurônios votantes dentro do sistema nervoso de rede. As mudanças no Internet Computer podem ser publicamente revisadas, e os votantes são incentivados a apoiar mudanças que aumentam a demanda e satisfação do usuário.

A questão que sobra tem seu centro na confiabilidade. No seu design atual, o Internet Computer consiste em um core descentralizado rodando em um conjunto diverso de nós. Para proteger o core contra ataques denial-of-service (recusa de serviço) e rotear as mensagens do usuário para os canisters corretos, a comunicação com o Internet Computer depende de um conjunto de nós de limite (fronteira). Esses nós de fronteira podem ver, por exemplo, o endereço IP do usuário de envio, assim como para qual canister o usuário está enviando e a payload. (Toda a comunicação com o Internet Computer e dentro dele é criptografada, mas os nós de fronteira decodificam o tráfego de entrada e depois o codificam novamente). No futuro nós esperamos uma estrutura de nós de fronteira descentralizada para garantir a disponibilidade e, por exemplo, usar o roteamento onion para manter a confidencialidade dos dados do usuário.

Nós agora voltamos nossa atenção para o core do Internet Computer, onde a computação replicada tem lugar. Já que os dados são replicados através de múltiplos nós, com cada nó pertencente a um provedor distinto e independente de outros, existe o risco de que um deles seja malicioso e tente vender dados do usuário para terceiros ou tente abusar dos dados. Nós estamos trabalhando em duas estratégias que o Internet Computer pode usar para processar dados confidenciais: confidencialidade apoiada por hardware e computação multi-party segura.

Manufatureiros de hardware estão desenvolvendo enclaves seguros para fornecer ambientes de computação isolados. Uma meta chave é proteger os dados do usuário na nuvem. Em computação de nuvem, os hipervisores alocam a computação dos usuários para separar máquinas virtuais. Na computação de nuvem tradicional o provedor da nuvem tem acesso completo a todos os dados. Colocar máquinas virtuais dentro de enclaves seguros reduz esse risco. As soluções mais recentes nesse espaço, como a Virtualização Encriptada e Segura da AMD (SEV), fornecem um atestado que garante que um pedaço de código esteja rodando dentro de um enclave seguro, com confidencialidade por meio de criptografia de memória e registros. O Internet Computer pode exigir nós (nodes) para rodar réplicas dentro de enclaves seguros, o que restringe até provedores de nós maliciosos de acessar os dados do usuário. A comunidade precisará decidir, entretanto, entre confiar apenas em um manufatureiro de hardware ou usar soluções de segurança com base em hardware de múltiplos fornecedores, com o risco de vazamento de dados se um deles for defeituoso.

Nós acreditamos que a confidencialidade baseada em hardware vai ser suficiente para muitos usuários. Mas para dados altamente sensíveis - material chave, por exemplo - prevemos a computação segura multi-party como um serviço no Internet Computer. Computação segura multi-party oferece integridade, disponibilidade e confidencialidade quando a maioria dos nós são honestos. Nessa visão, a segurança não é baseada em suposições de hardware, ela é, ao invés disso, incorporada a um protocolo de computação segura multi-party e conquistada colaborativamente. Não só a diversidade de hardware é tolerada, mas também reforça a garantia de privacidade. O lado ruim da computação segura multi-party é a sobrecarga de eficiência. Assim, esperamos que as duas soluções coexistam: para dados muito sensíveis, os canisters podem usar o serviço de computação segura multi-party oferecido pelo Internet Computer, enquanto dados privados, mas não críticos, podem rodar em subredes com enclaves seguros.

Top comments (0)