O objetivo de uma web verdadeiramente privada e descentralizada está dando um passo em frente. Com o lançamento do recurso vetKeys no Internet Computer Protocol ($ICP) com o marco Niobium, os desenvolvedores agora têm as ferramentas para criar uma nova onda de serviços onchain confiáveis, abrindo um amplo campo de novos dapps.
A natureza aberta das blockchains é uma grande força, mas entra em conflito com a necessidade de privacidade em muitos casos de uso. Esta tem sido uma consideração de longa data na tecnologia blockchain. Como observado por Kristofer Lund, Developer Evangelist da DFINITY Foundation, isso tem sido um fator decisivo para muitos. “Quando você fala com uma pessoa do mundo real sobre a construção de um aplicativo na blockchain”, diz ele, “a conversa para 100% das vezes” no momento em que eles aprendem que seus dados serão públicos. Para muitas organizações, especialmente aquelas que lidam com legislação como o Regulamento Geral de Proteção de Dados (GDPR) da UE, isso torna impossível a construção em uma blockchain pública.
Agora, vetKeys oferece uma resposta a essa preocupação.
Em sua essência, vetKeys trata de “ser capaz de criar chaves criptográficas em um ambiente descentralizado e transportá-las com segurança para o usuário”, como Kristofer coloca. Ele chama isso de “divisor de águas” porque resolve a questão de como manter as informações privadas em uma rede pública.
Em outras palavras, vetKeys oferece o melhor dos dois mundos: você pode usar a confiança e o tempo de atividade de uma blockchain pública sem ter que tornar todos os seus dados públicos. Ele oferece aos desenvolvedores um kit de ferramentas para manter as informações do usuário em segredo, mesmo enquanto elas residem em uma rede transparente. Significativamente, também permite isso sem a necessidade de uma parte centralizada para gerenciar as chaves.
O motor por trás disso é algo chamado derivação de chave de limite criptografada verificável (vetKD). Para ver como ele é usado na prática, vamos percorrer um exemplo do processo seguro que o torna possível:
Essa configuração torna ideias como a criptografia baseada em identidade (IBE) práticas de usar. Por exemplo, em um aplicativo de bate-papo criptografado, você geralmente precisa fazer algum tipo de troca de chaves. Mas com vetKeys, Kristofer explica, “não precisamos mais disso porque posso derivar sua chave pública e apenas usamos seu nome de usuário como identificador”.
Com vetKeys, os contratos inteligentes no Internet Computer podem atuar como porteiros. Em outras palavras, eles podem impor regras para quem pode obter uma chave e quando. Essa poderosa combinação de vetKeys e canisters oferece aos desenvolvedores a chance de criar uma série de novos aplicativos. Aqui estão apenas alguns.
vetKeys permite aplicativos para privacidade puramente pessoal. Este é um padrão que Kristofer destaca como “apenas eu derivando minha própria vetKey e transportando-a com segurança para mim mesmo”.
Neste modelo, você pode construir coisas como um diário onchain seguro, um gerenciador de senhas ou um bloco de notas privado. O usuário deriva uma chave secreta com base em sua própria identidade única, uma que apenas ele pode acessar. Isso permite que eles criptografem seus dados pessoais mais confidenciais e os armazenem na blockchain com a confiança de que são os únicos detentores da chave.
Isso resolve um problema clássico para dapps que lidam com arquivos confidenciais: como um usuário acessa seus documentos criptografados em diferentes dispositivos sem comprometer suas chaves? Ao usar vetKeys para derivar uma chave consistente com base em sua identidade, os usuários podem acessar com segurança seus próprios dados de qualquer dispositivo, um recurso crítico para o gerenciamento de documentos de alta segurança.
vetKeys permite a construção de sistemas onde os usuários podem se comunicar e compartilhar informações com total privacidade, com controle de acesso gerenciado onchain.
Como indicado acima, um caso de uso fundamental é o bate-papo criptografado de ponta a ponta. Um desenvolvedor pode criar um dapp onde um usuário obtém a chave pública de outra pessoa simplesmente usando seu nome de usuário, escreve uma mensagem secreta e a envia. A pessoa que recebe a mensagem, depois de provar quem é, pode então obter sua própria chave privada para lê-la. O canister atua como o porteiro, garantindo que apenas o usuário certo possa obter sua própria chave.
Este recurso desbloqueia aplicativos onde as informações são reveladas somente após um certo período de tempo, tudo imposto pela blockchain.
Para leilões ou votos, você pode querer que os lances sejam mantidos em segredo para que, como Kristofer coloca, “ninguém possa tirar proveito de saber os lances de outra pessoa”. Com vetKeys, os licitantes podem bloquear seus lances usando uma chave vinculada ao horário de encerramento do leilão. Quando o tempo acabar, o canister pode obter a chave, desbloquear todos os lances de uma vez e mostrar os resultados.
Outro caso de uso importante é para um dead-man’s switch. Por exemplo, um jornalista com informações confidenciais pode bloqueá-las com uma chave que tenha um cronômetro. Como Kristofer descreve, “a cada 24 horas eles precisam ir à interface... apertar o botão e eles estenderão o bloqueio de tempo”. Se não o fizerem, por qualquer motivo, o cronômetro se esgota, a chave pode ser encontrada e as informações são reveladas ao mundo.
Para o mundo de DeFi, a tecnologia vetKeys fornece as ferramentas para construir aplicativos que são protegidos contra front-running e outras formas de manipulação de mercado.
Uma grande dor de cabeça em DeFi é o maximal extractable value (MEV). Como a maioria das transações blockchain são transmitidas para uma sala de espera pública antes de serem confirmadas, os atores podem ver essas informações e explorá-las para obter lucro. Ao usar vetKeys para criptografar os detalhes de uma negociação, esses atores são cegados. Eles não podem ver a oportunidade na sala de espera porque o conteúdo da transação é mantido em segredo até depois de ser finalizado em um bloco.
Este simples ato de privacidade imposta desativa toda essa avenida de exploração, tornando o DeFi mais justo.
vetKeys também capacita a criação de jogos ou qualquer sistema onde o resultado precisa ser aleatório e comprovadamente justo para todos os participantes.
Um ótimo exemplo é usar vetKeys como uma verifiable random function (VRF). Isso significa que ele pode criar resultados que não são apenas aleatórios, mas também podem ser verificados por qualquer pessoa para provar que são justos. Isso é fundamental para jogos de cassino honestos, loterias e rare item drops.
Esta tecnologia dá aos contratos inteligentes sua própria “caneta” criptográfica para assinar dados, permitindo que eles interajam de forma autorizada com outras blockchains ou provem fatos para o mundo exterior.
Com vetKeys, um canister pode instruir os nós de sua subnet a produzir uma assinatura BLS padrão, que suporta a agregação de várias assinaturas individuais em uma única assinatura compacta, ou pode ser usada em protocolos de multi-assinatura.
Isso transforma o próprio canister em um assinante descentralizado. Este recurso é um bloco de construção fundamental para um mundo multichain mais interconectado e confiável, permitindo que um canister no Internet Computer assine uma transação que é então enviada para outra chain, ou para emitir uma credencial onchain verificável para um usuário, tudo sem pontes centralizadas.
Chain Fusion já permite que os canisters assinem transações. Ele usa outros esquemas, nomeadamente threshold ECDSA, Schnorr e EdDSA. Com vetKeys, os canisters agora têm um esquema de assinatura adicional à sua disposição, abrindo novas possibilidades para os desenvolvedores.
Projetos no ecossistema $ICP já estão explorando essas possibilidades, desde aplicativos de mensagens e armazenamento de arquivos seguros até novas formas de governança descentralizada.
Um exemplo é o OpenChat, um aplicativo de bate-papo de propriedade da comunidade em execução no Internet Computer. Como Hamish Peebles, cofundador do OpenChat, descreve, “o OpenChat suportará a criptografia de ponta a ponta de mensagens usando vetKeys. Ao usar vetKeys, se um usuário perder seu dispositivo, ele poderá regenerar com segurança sua chave de criptografia e recuperar o acesso às suas mensagens. Isso não é possível em nenhum outro serviço de mensagens criptografadas.”
Outro projeto que integra vetKeys é o Diode.io. De acordo com Hans Rempel, CEO da Diode.io, “com vetKeys, podemos armazenar rapidamente dados privados em um canister sem ter que primeiro criar métodos de criptografia fora de banda. Isso nos permite avançar rapidamente, continuando a fornecer aos nossos usuários auto-custódia, meios privados de conectividade e comunicação.”
Dominic Letz, cofundador e CTO da Diode.io, também destaca o valor de vetKeys para a privacidade do usuário. “Todos os dados, mesmo que estejam vivendo em canisters, são completamente criptografados de ponta a ponta. Não podemos lê-lo, os caras do $ICP não podem lê-lo. É realmente apenas o proprietário dos dados, apenas os usuários do aplicativo, que podem ler seus dados e descriptografá-los.”
Esses exemplos demonstram o valor imediato e prático de vetKeys, e há mais por vir.
Unleashing the power of vetKeys — first public demo and developer bounties
Embora vetKeys abra muitas portas, os desenvolvedores precisam pensar de novas maneiras para abri-las. Como Kristofer adverte, “se você abordá-lo com uma mentalidade de que poderá construir aplicativos da mesma forma que faz na Web2, acabará construindo-os da maneira errada”.
Novas formas de construção são necessárias. Como armazenar dados e criar chaves têm custos onchain, aplicativos que lidam com arquivos grandes ou precisam alterar as chaves com muita frequência devem ser planejados com cuidado. Os projetos bem-sucedidos usarão os pontos fortes da tecnologia, encontrando maneiras inteligentes de trabalhar com as oportunidades que ela traz. Um blog pago, por exemplo, poderia criar uma nova chave para todas as suas postagens a cada mês para manter os custos baixos. Com o tempo, Kristofer diz, “esses novos padrões de design surgirão”. O excitante é que essas oportunidades estão lá e esperando que os desenvolvedores as aproveitem.
É importante notar onde a garantia de privacidade de vetKeys se aplica. Ele fornece segurança para seus dados até o momento em que é desbloqueado. No momento, para a melhor segurança, os dados devem ser desbloqueados apenas no navegador da web do usuário. Depois que um contrato inteligente desbloqueia os dados, você não pode mais presumir que as informações são privadas. “Se você descriptografá-lo no canister”, Kristofer observa, “então ele está a céu aberto novamente”.
Mas isso aponta para o próximo grande salto: Trusted Execution Environments (TEEs). Com os TEEs, um canister poderá desbloquear dados dentro de uma parte segura e isolada de um nó, trabalhar com eles e bloqueá-los novamente sem que o nó nunca veja os dados brutos.
Quando esse dia chegar, Kristofer sugere que a porta se abrirá para “todos e quaisquer casos de uso empresarial Web2 regulares” para serem executados com total privacidade em uma blockchain pública.
A era da privacidade onchain realmente começou. É hora de começar a construir.
Você está pronto para começar a construir com vetKeys? Explore os Developer Docs para guias e exemplos.
Onchain Privacy in Action: A Guide to vetKeys Use Cases foi originalmente publicado em The Internet Computer Review no Medium, onde as pessoas estão continuando a conversa, destacando e respondendo a esta história.