Conhecimento Completo

Jan 16 2023
por James Austgen, Kushal Babel, Vitalik Buterin, Phil Daian, Ari Juels e Mahimna Kelkar 'Nesta vida, não queremos nada além de fatos, senhor; nada além de fatos!' — Charles Dickens, Hard Times Em um artigo que lançamos hoje, apresentamos uma nova noção criptográfica que chamamos de provas de conhecimento completo (CK). Também relatamos um protótipo que oferece um caminho para tornar o CK prático para uso com smartphones.

por James Austgen, Kushal Babel, Vitalik Buterin, Phil Daian, Ari Juels e Mahimna Kelkar

'Nesta vida, não queremos nada além de fatos, senhor; nada além de fatos!'

—Charles Dickens, Tempos Difíceis

Em um artigo que lançamos hoje , apresentamos uma nova noção criptográfica que chamamos de provas de conhecimento completo (CK). Também relatamos um protótipo que oferece um caminho para tornar o CK prático para uso com smartphones.

As provas de conhecimento, como seu nome sugere, permitem que uma parte, por exemplo, Alice, convença outra parte, por exemplo, Bob, de que ela conhece um segredo específico — como uma chave privada SK . As assinaturas digitais são um exemplo. Considere uma transação de criptomoeda T criada por Alice que gasta fundos de seu endereço A . Para ser válido, T deve ser assinado digitalmente com a chave privada válida SK para A . A assinatura digital aqui prova que Alice, como criadora de T , conhece a chave SK . É esta prova de conhecimento do SK que torna a transação válida: Em um sistema de criptomoeda, o proprietário do endereço Aé por definição quem conhece SK .

Provas de conhecimento são um dos pilares do projeto de sistemas criptográficos. Acontece, no entanto, que os sistemas de prova de conhecimento existentes têm uma séria limitação: Alice pode ser capaz de criar uma prova convincente de que conhece SK , mas ainda pode não conhecê-lo verdadeiramente .

Aqui está uma analogia. Suponha que Mallory queira aparecer como um competidor em Jeopardy . Ela dá uma entrevista com o apresentador do programa (Mayim Bialik). Mallory sabe que receberá perguntas durante a entrevista sobre as capitais dos Estados Unidos, que ela nunca aprendeu na escola. (Ela estava ocupada folheando NFTs durante as aulas de geografia.) Então ela decide trapacear. A amiga de Mallory, Alice, conhece todas as capitais dos estados da metade leste dos Estados Unidos, enquanto seu amigo Bob conhece as do oeste. Mallory, portanto, esconde um dispositivo de comunicação sem fio em cada orelha. O da orelha esquerda se comunica com Alice. O que está em sua orelha direita se comunica com Bob. Graças ao engano de Mallory, quando ela perguntou as capitais de vários estados dos EUA durante sua entrevista, ela sempre respondeu corretamente.

Mas Mallory conhece todas as capitais dos Estados Unidos? Claramente não. Alice ou Bob? A resposta ainda é não. Talvez possamos dizer que Alice e Bob juntos conhecem todas as capitais dos Estados Unidos. Mas suponha que Alice seja estranhamente supersticiosa e se recuse a responder às perguntas sobre a capital do estado às sextas-feiras. Ainda podemos dizer que Alice e Bob juntos conhecem todas as capitais dos Estados Unidos? Sim e não. O conhecimento existe na cabeça de Alice e Bob, mas não é necessariamente possível extraí-lo como desejado . Se Mallory fizer sua entrevista para o Jeopardy em uma sexta-feira, ela estará em apuros.

O conhecimento completo aborda uma lacuna desse tipo no que significa ter conhecimento. Em nossa analogia, a recusa de Alice em responder às perguntas na sexta-feira é uma restrição no acesso ao conhecimento que chamamos de ônus. Para explicar onde as provas existentes de conhecimento em criptografia falham, é útil começar com alguns exemplos potencialmente problemáticos de ônus de chaves secretas em particular.

O problema do ônus

Existem duas tecnologias diferentes que podem sobrecarregar segredos: ambientes de execução confiáveis ​​(TEEs) e computação multipartidária segura (MPC).

TEEs são ambientes computacionais que se assemelham a caixas pretas: seu estado interno é opaco e inviolável. Usando hardware ou software, eles reforçam a integridade e a privacidade dos aplicativos em execução, fornecendo proteção contra adulteração e observação até mesmo pelo proprietário da própria máquina na qual o código está sendo executado. Exemplos de TEEs incluem enclaves (por exemplo, ARM Trustzone) em dispositivos móveis e Intel Software Guard eXtensions (SGX), que está disponível em alguns servidores em nuvem.

Por outro lado, o MPC é uma abordagem algorítmica para alcançar os mesmos objetivos de segurança. Ele divide os segredos e a computação entre uma coleção de servidores geralmente chamada de comitê. A segurança do MPC depende de um quórum de servidores no comitê (por exemplo, uma maioria) se comportando corretamente.

Como os TEEs são muito mais práticos e difundidos do que o MPC hoje, vamos nos concentrar nos TEEs nos exemplos a seguir, começando com um ataque baseado em TEE em sistemas de votação em blockchain. Aqui está um exemplo envolvendo um ataque a esquemas de votação.

O problema de suborno forte e furtivo neste exemplo afeta não apenas os esquemas de votação em blockchain projetados de forma ingênua, mas também aqueles especificamente projetados para resistir ao suborno, como a Minimal Anti-Collusion Infrastructure (MACI) .

Pior ainda, um TEE pode furtivamente incentivar e aumentar uma comunidade de usuários montando um ataque unificado contra um protocolo - um conceito que anteriormente apelidamos de Dark DAO . Tais ataques podem envolver não apenas a adulteração de votos, mas também a manipulação de preços de ativos e possivelmente o ataque a sistemas fora da cadeia .

O que é particularmente pernicioso é que, se Alice enviar uma transação assinada para um contrato inteligente usando uma chave sobrecarregada SK , não há como o contrato informar. A transação de Alice parecerá idêntica a uma criada com uma chave livre. Portanto, parece que é simplesmente impossível evitar ataques de suborno do tipo ilustrado em nosso exemplo.

Mas é mesmo?

Garantindo Conhecimento Completo

Acontece que existe uma maneira de garantir que uma chave SK esteja livre — especificamente que alguém tenha acesso direto a SK . Informalmente, isso é o que queremos dizer com Conhecimento Completo. O efeito do CK é que esquemas de suborno como esse em nosso exemplo não funcionarão, porque não há como um usuário mal-intencionado como Mallory impedir que um usuário use sua chave da maneira que quiser.

Existem duas abordagens básicas para impor CK. Ambos permitem a geração do que chamamos de provas de conhecimento completo (PoCK), e especificamente aquelas que são zero-conhecimento , ou seja, não revelam SK:

  1. A abordagem luta-fogo-com-fogo

A maioria dos usuários tem TEEs em seus aparelhos celulares. Mostramos em nosso artigo como eles podem usá-los em um esquema CK para votação ou qualquer outra aplicação.

Conforme discutimos em nosso artigo, no entanto, existem algumas limitações técnicas para os TEEs, particularmente aqueles em aparelhos celulares. Portanto, também consideramos uma segunda abordagem.

2. Uma abordagem baseada em prova de trabalho

Essa abordagem é um pouco contra-intuitiva. Envolve o uso de um ASIC de mineração, ou seja, um equipamento de hardware de mineração de prova de trabalho, como o tipo usado para Bitcoin. Os ASICs têm duas boas propriedades para fins de CK. Eles podem executar certos cálculos, ou seja, hashing , muito mais rápido que CPUs ou GPUs comuns — na ordem de um milhão de vezes mais rápido que uma CPU de última geração! E não incluem TEEs.²

Baseando-se e modificando as técnicas da literatura sobre a teoria das provas de conhecimento, projetamos um protocolo que envolve o uso de um ASIC para mineração de uma forma que envolve SK (ainda que o esconda de maneira inteligente). Este protocolo gera uma prova de que o SK foi enviado ao ASIC, ou seja, um PoCK. Como o ASIC não possui um TEE, isso significa que o SK está efetivamente exposto ao usuário do ASIC. Essa propriedade é essencialmente equivalente ao que é feito pelo aplicativo TEE especial do RBU: cuspir SK diretamente para o usuário. Como o ASIC é muito mais rápido do que as plataformas que suportam TEEs, não há como gerar um PoCK equivalente usando um TEE.

Nosso artigo mostra experimentalmente que mesmo usando um ASIC barato (aproximadamente US$ 200), obsoleto (por volta de 2017), é possível implementar um PoCK de alta segurança.

Aplicações de CK além da resistência ao suborno

Embora inicialmente tenhamos projetado o CK para lidar com a ameaça de suborno em esquemas de votação, existem muitas outras aplicações. O CK pode ajudar a evitar a oneração de credenciais de identidade descentralizadas, por exemplo, atestado de que um usuário passou por diligências antilavagem de dinheiro. Isso é essencial para evitar os vários tipos de danos possíveis se os usuários puderem alugar suas credenciais, por exemplo, um mercado de credenciais de identidade para contornar as sanções.

CK também tem aplicações interessantes em mercados NFT. Por exemplo, pode ajudar a garantir a execução de pagamentos de royalties para artistas. Hoje, os royalties são aplicados apenas fora da cadeia, ou seja, voluntariamente , pelos mercados NFT. Em vez disso, eles poderiam, em princípio, ser aplicados na cadeia em um contrato inteligente, caso em que a execução seria obrigatória. Uma razão pela qual os pagamentos obrigatórios de royalties não são considerados uma boa prática é que seria injusto para os usuários que transferem NFTs entre seus próprios endereços terem que pagar royalties. O problema é que não há como distinguir entre um endereço de remetente S e um endereço de destinatário R pertencente a um único usuário e endereços S e Rpertencentes a usuários distintos. Portanto, não há como distinguir entre uma transferência de usuário único e uma mudança de propriedade de um NFT.

Com CK, porém, é possível distinguir. Um contrato de mercado NFT pode exigir para transferências isentas de royalties que um PoCK seja aplicado simultaneamente a R e S , provando que uma única entidade conhece ambos . Esta propriedade é uma boa aproximação à propriedade individual. Pelo menos acreditamos que essa abordagem baseada em CK poderia desincentivar fortemente a evasão de royalties.³

Outra aplicação interessante de CK para NFTs é uma noção que chamamos de Atomic NFTs . É comum fracionar NFTs caros, ou seja, subdividir sua propriedade em pequenos pedaços, como aconteceu, por exemplo, com o Doge NFT .

Vários artistas com quem conversamos, no entanto, preferem que suas obras sejam de propriedade e apreciadas por um único indivíduo. Os NFTs atômicos oferecem uma maneira de criar NFTs que respeitam esse desejo e garantem a propriedade exclusiva. Para demonstrar esses recursos, criamos nossa própria pequena coleção de NFTs atômicos, mostrados aqui.

Conclusão

Provas de conhecimento são um conceito bem estudado de décadas em criptografia. Mas tecnologias novas e poderosas, como TEEs e MPC, ameaçam derrubar o cenário clássico de prova de conhecimento por meio da sobrecarga de segredos. O CK oferece uma maneira de evitar tal ônus e restaurar a ideia intuitiva de que o conhecimento é atribuível a uma única entidade ou indivíduo. Além de oferecer uma solução para ataques baseados em ônus — como suborno em esquemas de votação — ele também oferece uma variedade de novos aplicativos.

Acreditamos que o CK pode ser prático. Implementamos um sistema baseado em ASIC de ponta a ponta com um contrato inteligente que verifica as provas PoCK. Nosso protótipo de sistema inclui um registro baseado em contrato inteligente de endereços comprovadamente compatíveis com CK. Também implementamos um protótipo de sistema usando TEEs baseados em aparelhos celulares. Nossos protótipos ainda não estão prontos para o horário nobre, mas acreditamos que há um caminho para a implantação prática de produção. Você pode encontrar uma versão de código aberto de nossas ferramentas aqui . Congratulamo-nos com a colaboração de projetos interessados ​​em realizá-lo.

¹ Felizmente, os TEEs não podem ser aninhados, portanto, não há uma maneira inteligente de Mallory envolver o aplicativo TEE do RBU e, assim, ainda sobrecarregar as chaves dos usuários.

² A maioria dos ASICs tem muito pouca segurança integrada. Eles nem mesmo suportam rede criptografada, como descobrimos quando nosso ASIC foi aparentemente comprometido por um hacker remoto várias vezes durante nossos experimentos.

³ Há uma ressalva aqui. Como discutimos em nosso artigo, se os mecanismos de recuperação social se tornarem comuns, as provas CK de conhecimento simultâneo de chaves não funcionariam mais.