Tenha um TEE com Polkadot

Por: Alain Brenzikofer

Olá da equipe SubstraTEE do Supercomputing Systems AG! Neste post, gostaríamos de apresentar os principais conceitos de computação off-chain confiáveis. Mostraremos o que você pode fazer com nossa ferramenta, SubstraTEE, hoje e qual é nossa visão para aplicações futuras.

SubstraTEE é uma estrutura que integra ambientes de execução confiáveis (TEEs) com blockchains construídas no Substrate — em outras palavras, cadeias construídas usando a ferramenta de construção nativa da Polkadot e as mais fáceis de se conectar com a rede Polkadot. O SubstraTEE visa melhorar a privacidade, escalabilidade e interoperabilidade de blockchains descarregando atualizações de estado em TEEs.

O que é um TEE?

Nós nos acostumamos com o fato de que temos que confiar em nossos administradores de TI. Enquanto esses administradores costumavam ser funcionários internos em nossas empresas, hoje trabalhamos frequentemente em plataformas de nuvem alugadas.

Esses administradores podem ler e modificar todos os dados processados ​​em qualquer máquina que gerenciam. Infelizmente, essa capacidade se estende não apenas a administradores conhecidos em quem confiamos, mas também a hackers que podem obter privilégios de administrador. Nenhuma empresa, por mais qualificada que seja, está imune a tais ataques.

Insira os TEEs.

Você pode imaginar um TEE como um co-processador que gerencia suas próprias chaves criptográficas e executa apenas programas cujo hash ou impressão digital corresponde ao código original. O fabricante do processador garante, pelo design de seu hardware, que ninguém tem acesso às chaves internas do TEE ou pode ler sua memória. Além disso, o fabricante pode autenticar cada TEE e fornecer atestado remoto a um usuário para confirmar que seu programa não adulterado está realmente sendo executado em um TEE genuíno, mesmo que a máquina esteja fisicamente localizada em um data center externo.

Os TEEs prometem, em suma, integridade e confidencialidade da computação (remota). No entanto, você deve estar ciente de possíveis ameaças à segurança.

Assumindo que confiamos na integridade e competência de design dos fabricantes de TEEs, os TEEs nos permitem executar qualquer atualização de estado sem compartilhar nossos dados com o validador da blockchain ou outros usuários. Transferências de tokens privados, contratos inteligentes privados e canais estatais privados tornam-se assim possíveis e relativamente baratos.

Alcançando a Privacidade em Blockchains

Blockchains são transparentes por natureza. Elas têm que ser para garantir a descentralização. Você pode obter um pseudonimato facilmente, mas muitos casos de uso exigem confidencialidade. As empresas não querem vazar segredos comerciais e precisam cumprir as leis europeias de privacidade de dados ( GDPR ). O último significa que nenhum dado pessoal deve tocar em uma blockchain não autorizada. Validar a integridade dos cálculos sem poder ler os dados processados representa outro desafio. Aqui os TEEs oferecem uma solução perfeita: integridade e confidencialidade dos cálculos.

TEE vs. Provas de Conhecimento Zero

As provas de conhecimento zero (ZKP) permitem que o ZCash obtenha transferências de tokens privados. Embora os ZKPs garantam privacidade sem confiar nos fabricantes de hardware, eles vêm com computação pesada e grandes tamanhos de transação. Além disso, ZKP é um campo de pesquisa de ponta e entendê-los requer conhecimento especializado.

Os TEEs, por outro lado, já entraram no mainstream e oferecem uma facilidade de uso razoável. Os puristas podem reclamar que os fabricantes hoje em dia não compartilham seus projetos com o público, evitando assim a revisão científica por pares. A Keystone já lançou um projeto de TEE de código aberto que pode resultar em TEEs bem auditados um dia. Ainda precisaríamos, no entanto, confiar no fabricante Keystone ASICs, que deve fornecer atestado remoto.

Transações Privadas com SubstraTEE

A Supercomputing Systems tem trabalhado arduamente para concluir uma prova de conceito funcional de seu produto SubstraTEE. As transações de token privado estão no centro dos primeiros casos de uso.

Vamos ver um exemplo de como uma transação de token privado funcionaria. Alice quer transferir 100 tokens para Bob sem que ninguém além de Bob saiba dos detalhes dessa transferência. Ela cria uma transação SubstraTEE protegida:

let call = TrustedCall::balancetransfer(alice\incognito.public(), bob\incognito.public(), 100);

Alice criptografa essa chamada com a chave de proteção do trabalhador SubstraTEE e envia para o módulo de tempo de execução SubstraTeeRegistry como um normal extrínseco do Substrate. Como a carga útil é criptografada, ninguém, exceto o TEE do trabalhador SubstraTEE, pode descriptografá-la e ver os detalhes dessa chamada. O SubstraTeeRegistry atua como um proxy e despacha um evento incluindo a carga opaca.

O trabalhador SubstraTEE escuta tais eventos de invocação e encaminha a carga para seu TEE. O TEE então descriptografa a carga útil e recupera a chamada original, que é processada pela função de transição de estado (STF). Para esta demonstração, o STF é exatamente o mesmo código do módulo de tempo de execução de saldos do Substrate.

O STF opera em um estado off-chain criptografado e executa a atualização de estado. Nesse caso, ele transfere 100 tokens da conta alice incognito para bob incognito. O estado resultante é criptografado e armazenado em IPFS. O trabalhador então envia uma confirmação extrínseca à cadeia, incluindo o hash da chamada e o hash do estado atualizado.

Alice agora pode convencer Bob de que a transferência aconteceu enviando a ele a chamada bruta por qualquer canal de comunicação privado. Bob agora pode verificar as confirmações on-chain para o hash dessa chamada. Bob também pode ver seu saldo atualizado consultando o trabalhador diretamente por meio de uma interface websocket.

Você pode assistir a esta demonstração do SubstraTEE no YouTube.

Atestado Remoto

Como Alice e Bob podem ter certeza de que o trabalhador SubstraTEE está realmente executando o código esperado em um TEE genuíno?

Atestado remoto é o processo de pedir ao fabricante do TEE para autenticar um TEE e assinar um relatório que confirma a autenticidade do TEE, bem como o hash do binário que o TEE está executando. Esse relatório também inclui a chave de assinatura pública do TEE, para que possamos ter certeza de que estamos realmente falando com o TEE certo, verificando sua assinatura.

O SubstraTEE simplifica esse processo para seus usuários armazenando atestados remotos on-chain no SubstraTeeRegistry. Desta forma, evitamos a necessidade de os usuários se registrarem nos serviços de atestado de fabricantes.

Redundância

O que acontece se um trabalhador SubstraTEE ficar offline? Se houver apenas um único trabalhador, todo o estado pode se perder para sempre. Para alcançar a redundância, precisamos de vários trabalhadores para operar no mesmo estado. Todos eles precisam saber a chave de criptografia do estado.

Projetamos o SubstraTEE para não ter depender de permissão de terceiros e permitir que qualquer pessoa se junte ao conjunto de trabalhadores fornecendo regularmente atestados remotos ao nosso SubstraTeeRegistry. Um trabalhador recém-ingressado pedirá as chaves a um trabalhador estabelecido. Os dois trabalhadores realizarão o atestado remoto mútuo e as chaves serão provisionadas. O novo trabalhador buscará o estado mais recente do IPFS e começará imediatamente a processar solicitações em paralelo com todos os outros trabalhadores. Agora podemos matar todos menos um trabalhador e a rede permanece viva e reativa.

Panorama

Mostramos como o SubstraTEE melhora a privacidade. Em seguida, vem o acesso sem a necessidade de confiança de terceiros ao estado da cadeia. Estamos trabalhando para fornecer computação privada genérica com contratos ink! e construir pontes em cadeia.

Em breve poderemos implementar a invocação direta, aumentando a escalabilidade. Embora nossa solução atual exija 1+N transações on-chain por solicitação (N sendo o número de trabalhadores), a invocação direta significa que as solicitações são enviadas diretamente ao trabalhador e são confirmadas on-chain em lotes, permitindo milhares de solicitações por segundo. A invocação direta vem com outro benefício em relação ao GDPR: o direito ao apagamento. Como nenhum dado pessoal atinge a blockchain, o direito ao apagamento pode ser implementado como uma funcionalidade do STF.

Este trabalho foi financiado por um grant da Web3 Foundation

0
3rgB4v…s2VAU4Post author

I found in cryptocurrencies a way to always be learning and contributing to the expansion of this sector. I do translation of articles, text in general, from English or Italian to Portuguese

0 comments

I found in cryptocurrencies a way to always be learning and contributing to the expansion of this sector. I do... Show More