Desde o seu início, o mundo das criptomoedas está repleto de novas ideias, e uma delas é a Proof of Elapsed Time (PoET). Este é um algoritmo de consenso totalmente novo e inovador com escalabilidade incomparável.

Entre os algoritmos de consenso e mineração blockchain, um dos algoritmos mais marcantes é Proof of Elapsed Time (PoET), o que em português é Prova deTempo Decorrido. Este é um algoritmo de consenso projetado desde o início para ser altamente escalável e direcionado a blockchains privados. Por esse motivo, dificilmente o veremos sustentando a atividade de blockchain de uma criptomoeda pública, como no caso de Bitcoin.

No entanto, o potencial do PoET está orientado para ser aplicado no desenvolvimento de blockchains como parte de sistemas com alto tráfego de informação. Por exemplo, empresas que necessitam de sistemas integrados de auditoria que garantam a imutabilidade dessas informações. Seria o caso de linhas de montagem altamente técnicas e automatizadas, laboratórios químicos e de medicamentos, entre outros.

Mas certamente se pergunta: qual é a origem desta tecnologia? Como funciona o PoET? Quais são os seus prós e contras? Quem usa esta tecnologia? Bem, vamos responder a essas e outras perguntas neste novo artigo da Bit2Me Academy.

Origem do PoET

A origem do PoET remonta ao ano 2016 quando investigadores da Intel, a maior empresa de design e criação de processadores do mundo, começaram a participar do projeto Hyperledger, liderado já então pela Fundação Linux. Na ocasião, a Intel anunciou a sua participação no projeto, além do início do desenvolvimento do "Sawtooth Lake". Este foi um desenvolvimento de blockchain interessante suportado pela Hyperledger que procurou desenvolver tecnologia para uma blockchain privada extremamente escalável.

Foi nesse momento que a Intel apresentou a Proof of Elapsed Time (PoET) como um algoritmo de consenso baseado na lotaria do tempo, protegido por criptografia. Um conceito revolucionário que aproveitou toda a tecnologia que a Intel pode oferecer nos seus processadores. Na verdade, a tecnologia está fortemente ligada aos produtos Intel a ponto de não ser utilizável com garantias fora dos seus produtos.

Como funciona a Proof of Elapsed Time (PoET)?

Basicamente, o que o PoET faz é criar um anel de confiança onde um grupo de participantes é coordenado por um controlador. Este controlador tem a função de pegar o trabalho das pessoas do anel de confiança e verificar se está correto. Para fazer isso, o controlador compartilha um cronômetro e uma série de testes criptográficos que permitem aos participantes produzir blocos aleatoriamente dentro do blockchain.

Assim que um participante é escolhido, ele gera o bloco, desenvolve a prova criptográfica e envia para o controlador. Quando o controlador recebe a prova, verifica e, se correto, aceita o bloco. Se não, descarta-o. Diante desta última decisão, ele aciona novamente o cronómetro para que o processo de seleção seja reiniciado e a prova seja gerada por outro participante. O processo segue este ciclo de repetições permitindo que o funcionamento da rede seja mantido indefinidamente.

Claro que esta é uma forma muito simples de explicar como funciona o PoET, mas lhe dará uma ideia geral do processo e ajudará a entender melhor a explicação que faremos a seguir.

Iniciação do processo de seleção PoET

A base do funcionamento do PoET está no processo de seleção criado pelo algoritmo de verificação do processo. O trabalho desse algoritmo de seleção é dar a cada participante um objeto de tempo. Podemos ver este objeto de tempo como uma contagem regressiva que possui uma certa quantidade de tempo descrita. Ao término desse tempo, o cronômetro inicia um evento de ativação para o participante, que a partir desse momento se torna um gerador de blocos. Você pode então ver este objeto de tempo como um despertador, que ao atingir a hora indicada, o alarme soará indicando que é hora de trabalhar para gerar um bloqueio.

Aleatoriedade, a chave do processo

Este processo de seleção é aleatório e é baseado nas instruções de geração de números aleatórios da Intel, a instrução RDRAND. Esta instrução única nos processadores Intel (embora a AMD também tenha um equivalente) gera números aleatórios de forma acelerada usando entropia (ou caos) que se origina eletricamente nos processadores. Um processo que em teoria gera números aleatórios muito difíceis de detectar. Esta é a base para este processo inicial e também nos diz o quão extremamente dependente o PoET é destes processadores.

Mas, além disso, a única forma pela qual um participante pode se tornar um gerador de bloco é apresentando um certificado que o endossa para ele. Este certificado é gerado usando o Instruções SGX (Intel Software Guard Extensions). Essas instruções são especializadas em criptografia e são usadas para gerar um certificado digital seguro. O certificado gerado é armazenado num cofre de hardware (como os de carteiras de hardware, um HSM) ou TEE (Trusted Execution Environment) que está dentro do mesmo processador.

Apenas os participantes que cumpram ter um certificado válido no sistema, com as chaves pública e privada no seu TEE, e que tenham um objeto de tempo verificado e ativo, poderão participar na geração de blocos utilizando o algoritmo PoET.

Fase de geração

Agora, quando o participante recebe o seu objeto de tempo e ele é ativado, o processo de geração é iniciado. A partir do momento preciso em que o objeto tempo “acorda” o participante, é habilitado a gerar um bloco. Todo o processo acima garante que aquele participante cumpriu as regras de pré-geração, que são:

  1. Gerar um certificado seguro usando RDRAND, SGX e armazena-o no seu TEE.
  2. Partilha o certificado com a rede. Isso para se tornar um participante ativo e reconhecido dentro da rede.

Como pode ver, estas duas etapas são claramente pontos de controlo de acesso, que garantem que ninguém que não seja reconhecido pelas autoridades centrais da rede poderá participar. Em suma, estamos diante de um protocolo de consenso projetado especificamente para redes privadas ou permissivas.

A geração de hash começa

A fase de geração do PoET é direta. O participante ou gerador do bloco ativo deve apenas pegar as transações da rede, adicioná-las ao bloco, gerar um hash para ele e enviá-lo para a rede para que sejam aceitas. O hash utilizado pode variar dependendo da implementação, mas é viável o uso do SHA-256, mas sem a necessidade de fazer uma prova de trabalho como no Bitcoin, já que o PoET torna isso desnecessário. Basta gerar um hash associado à informação do bloco para emitir o referido bloco. Resumindo, um processo que não deve demorar nem perto de 0,1 segundo.

Quando o bloco é gerado, é emitido para a rede junto com um certificado digital do participante. No referido certificado existe uma lista dos próximos geradores de blocos na rede, fechando assim o processo de geração.

Prós e Contras do PoET

Prós

  1. É um algoritmo de consenso e geração de blocos extremamente eficiente e escalável.
  2. O processo é perfeito para ser aplicado em redes de blockchain privadas, na verdade, está dirigido para espaços de negócios controlados.
  3. A seleção e aceitação de validadores garantem que a rede seja resistente a ataques externos e internos.
  4. O processo de geração é descentralizado. O seu processo de geração é descentralizado. Itens de tempo e ativação garantem que todos tenham as mesmas oportunidades de geração de blocos.

Contras

  1. Extremamente dependente da tecnologia Intel. Embora o algoritmo seja um software livre e possa ser adaptado para outras plataformas, as mudanças tornariam estas redes praticamente incompatíveis ou com sérios problemas de incompatibilidade.
  2. Existem veículos de ataque nestas redes que exploram vulnerabilidades conhecidas nos processadores Intel.

Quanto sabes, criptonauta?

Uma blockchain usando Proof of Elapsed Time (PoET) é altamente escalável?

VERDADEIRO!

Uma rede PoET pode escalar acima de um milhão de transações por segundo, embora com a desvantagem de não ser uma rede aberta e sem censura como Bitcoin ou Ethereum.

Vulnerabilidades

Embora o PoET seja um algoritmo de consenso conceitualmente muito seguro, a estrutura que usa para funcionar começou a vacilar: a Intel e os seus processadores estão crivados de bugs, que são publicamente conhecidos, mas não resolvidos.

Embora não haja nenhum hardware ou software livre de erros, a Intel enfrentou sérios problemas nos últimos 10 anos. Problemas que se acentuaram muito mais recentemente. Casos de vulnerabilidades como Meltdown, Spectre, SGX Crack, Prime+Probe, LVI, Plundervolt, Replay SGX ou Enclave, têm um impacto direto na segurança PoET. Na verdade, têm um impacto direto na segurança geral dos nossos computadores.

Embora os veículos e meios de ataque sejam altamente complexos, são possíveis e qualquer hacker ou grupo de hackers com recursos pode explorá-los. Os governos, na sua busca por controlar tudo, gastam fortunas para se apoderarem destes tipos de vulnerabilidades para desenvolver ferramentas que lhes permitam espiar os seus cidadãos e outros governos, até mesmo o mundo inteiro, se possível. Na verdade, há suspeitas de que, por exemplo, RDRAND, seja uma instrução trojanizada ou intencionalmente enfraquecida para facilitar a espionagem.

Vulnerabilidades de hardware são as mais arriscadas

Todo este grupo de vulnerabilidades até certo ponto pode ajudar a criar ferramentas com a capacidade de quebrar a criptografia. Por exemplo, uma instrução RDRAND enfraquecida (como suspeita-se que a Intel tenha feito intencionalmente) permitiria que o gerador de números aleatórios fosse "previsível" ao conhecer as características internas da sua operação, algo que apenas a Intel conhece. Isto pode abrir as portas para algoritmos que consideramos seguros como AES, ECDSA, RSA ou outros podem ser comprometidos quando executados num processador Intel, comprometendo a nossa segurança e dinheiro. Isto, que pode soar como ficção científica para olhos inexperientes, é uma realidade. Na verdade, já existe um precedente com o caso de Dual-RDBG e a consola PlayStation da Sony. Lembre-se de que a criptografia anti-cópia desta consola foi quebrada devido a um problema de segurança desta natureza.

Felizmente, nenhum projeto de criptomoeda como Bitcoin ou Ethereum, faz uso desses tipos de instruções. Muito menos Zcash ou Monero, onde os desenvolvedores são extremamente cuidadosos com a qualidade das implementações criptográficas que usam. Além disso, o desenvolvimento do Bitcoin questionou ferramentas criptográficas conhecidas, como OpenSSL, abandonando o seu uso em favor das suas próprias ferramentas. Mais um exemplo da seriedade da segurança no desenvolvimento desta criptomoeda.

Casos de uso PoET

HyperLedger

O caso de uso mais importante do PoET é o projeto HyperLedger, onde PoET é o algoritmo padrão para soluções que usam o framework HyperLedger Sawtooth (framework e desenvolvimento de software). Sawtooth é de facto o berço e o desenvolvimento do PoET.