¿Qué es Proof of Elapsed Time (PoET)?

Desde sus principios, el planeta de las criptomonedas ha estado lleno de nuevas ideas, y una de ellas es Proof of Elapsed Time (PoET). Este es un algoritmo de acuerdo absolutamente nuevo, renovador y con una escalabilidad sin parangón.

Entre los algoritmos de consenso y minería blockchain, uno de los algoritmos más atractivos es Proof of Elapsed Time (PoET), que en castellano es Prueba de Tiempo Transcurrido. Este es un algoritmo de acuerdo desarrollado desde su base para ser enormemente escalable y dirigido a blockchains privadas. Por esa razón, difícilmente lo vamos a ver manteniendo la actividad de una blockchain de una criptomoneda pública, como el caso de Bitcoin.

Sin embargo, el potencial de PoET está orientado para ser aplicado en el desarrollo de blockchains como una parte de sistemas con alto tráfico informativo. Por poner un ejemplo, empresas que precisen sistemas integrados de auditoría que garanticen la imperturbabilidad de dicha información. Este sería el caso de las líneas de montaje enormemente tecnificadas y automatizadas, laboratorios químicos y de medicinas, entre otras muchas.

Pero probablemente te vas a preguntar ¿Cuál es el origen de esta tecnología? ¿De qué manera marcha PoET? ¿Cuáles son sus inconvenientes y ventajas? ¿Quienes utilizan esta tecnologías? Puesto que bien esas y otras preguntas las responderemos ahora en este nuevo artículo de Bit2Me Academy.

Origen de PoET

El origen de PoET nos remonta por año dos mil dieciseis cuando los estudiosos de Intel, la mayor empresa mundial de creación y diseño de procesadores empieza a participar en el proyecto Hyperledger, dirigido ya entonces por la Linux Foundation. En ese entonces, Intel anunció su participación en el proyecto, aparte del comienzo del desarrollo de “Sawtooth Lake”. Este era un interesante desarrollo blockchain sostenido por Hyperledger que procuraba desarrollar tecnología para una blockchain privada exageradamente escalable.

Fue en ese instante cuando Intel presentó Proof of Elapsed Time (PoET) como un algoritmo de acuerdo basado en lotería de tiempo, protegido por criptografía. Un término revolucionario que empleaba toda la tecnología que Intel puede proveer en sus procesadores. En verdad, la tecnología está con fuerza ligada a los productos de Intel hasta el punto en que no es aprovechable con garantías fuera de sus productos.

¿De qué forma marcha Proof of Elapsed Time (PoET)?

Básicamente lo que hace PoET es crear un anillo de confianza donde un conjunto de  participantes son ordenados por un supervisor. Este supervisor, tiene la labor de tomar el trabajo de las personas del anillo de confianza y contrastar que es adecuado. Para esto, el supervisor comparte un reloj cronómetro y una serie de pruebas criptográficas que habilitan a los participantes de forma azarosa para generar bloques en la blockchain.

Una vez que un partícipe es escogido, este produce el bloque, desarrolla la prueba criptográfica y la manda al supervisor. Cuando el supervisor recibe la prueba la comprueba y, de ser adecuada, admite el bloque. De lo contrario lo desecha. Ante esta última resolución, dispara de nuevo el reloj cronómetro a fin de que se empiece el proceso de selección de nuevo y se produzca la prueba por otro partícipe. El proceso prosigue este ciclo de reiteraciones dejando que el funcionamiento de la red se sostenga de forma indefinida.

Por supuesto esto es una forma sencillísima de explicar de qué forma marcha PoET, mas te va a dar una idea general del proceso, y te va a ayudar a comprender mejor la explicación que vamos a hacer ahora.

Inicio del proceso de selección de PoET

La base del funcionamiento de PoET está en el proceso de selección creado por el algoritmo de verificación del proceso. El trabajo de este algoritmo de selección es concederle a cada participantes un objeto de tiempo. Este objeto de tiempo podemos verlo como un contador recesivo que tiene una determinada cantidad de tiempo descrita en el. Al acabar ese tiempo, el reloj cronómetro empieza un acontecimiento de activación del partícipe quien desde ese instante pasa a ser un generador de bloques.  Puedes ver entonces este objeto de tiempo como un reloj despertador, que al llegar a la hora indicada, sonará la alarma indicándote que es la hora de trabajar para producir un bloque.

Aleatoriedad, la clave del proceso

Este proceso de selección es azaroso y es alimentado por las instrucciones de generación de números azaroso de Intel, la instrucción RDRAND. Esta instrucción única en los procesadores Intel (si bien AMD asimismo tiene una equivalente) produce números azarosos de forma acelerada utilizando la entropía (o bien caos) que se produce eléctricamente en los procesadores. Un proceso que teóricamente produce números azarosos realmente difíciles de advertir. Esta es la base de este proceso inicial, y nos afirma asimismo, lo exageradamente dependiente que es PoET a estos procesadores.

Pero auxiliar, la única forma en que un partícipe pueda transformarse en generador de bloques es presentando un certificado que lo avale para esto. Este certificado es generado utilizando las instrucciones SGX (Software Guard Extensions de Intel). Estas instrucciones están expertas en criptografía, y se utilizan para producir un certificado digital seguro. El certificado generado es guardado en una cúpula hardware (como las de las wallets hardware, un HSM) o bien TEE (Trusted Execution Environment) que se halla en el mismo procesador.

Solo los participantes que cumplan con tener un certificado válido en el sistema, con las claves públicas y privadas en su TEE, y que tengan un objeto de tiempo verificado y activo, van a poder participar en la generación de bloques utilizando el algoritmo PoET.

Fase de generación

Ahora bien, cuando el partícipe recibe su objeto de tiempo y este se activa, se da comienzo al proceso de generación. Desde el preciso instante en el que el objeto de tiempo “despierta” al partícipe, este está habilitado para producir un bloque. Todo el proceso precedente garantiza que ese partícipe haya cumplido con las reglas anteriores a la generación que son:

  1. Generar un certificado seguro utilizando RDRAND, SGX y guardando exactamente el mismo en su TEE.
  2. Compartir el certificado con la red. Esto con el objetivo de transformarse en un partícipe activo y reconocido en la red.

Como ven estos 2 pasos son meridianamente puntos de control de acceso, que garantizan que absolutamente nadie que no esté reconocido por las autoridades centrales de la red pueda participar en exactamente la misma. En suma, estamos en frente de un protocolo de acuerdo desarrollado particularmente para redes privadas o bien permisionadas.

Comienza la generación del hash

La fase de generación de PoET es fácil. El partícipe o bien generador de bloque activos, solo debe tomar las transacciones de la red, añadirlas al bloque, producir un hash para exactamente el mismo y emitirlo a la red a fin de que sea admitido. El hash utilizado puede cambiar en dependencia de la implementación, mas es viable emplear SHA-doscientos cincuenta y seis, mas sin precisar hacer una prueba de trabajo como en Bitcoin, puesto que PoET hace superfluo esto. Es suficiente con producir  un hash asociado a la información del bloque para producir dicho bloque. En suma, un proceso que no debería llevar, ni de lejos, 0,1 segundos.

Al producir el bloque, este es emitido a la red así como un certificado digital del partícipe. En tal certificado va una lista de próximos generadores de bloques de la red, cerrando con esto el proceso de generación.

Pros y Contras de PoET

Pros

  1. Es un algoritmo de acuerdo y generación de bloques exageradamente eficaz y escalable.
  2. El proceso es idóneo para aplicarse a redes blockchain privadas, en verdad, está dirigido a espacios empresariales controlados.
  3. La selección y aceptación de validadores garantiza que la red es resistente a ataques externos y también internos.
  4. El proceso de generación se descentraliza. Su proceso de generación es descentralizado. Los objetos de tiempo y la activación garantizan que todos van a tener exactamente las mismas ocasiones de generación de bloques.

Contra

  1. Extremadamente dependiente de la tecnología de Intel. Aunque el algoritmo es software libre y puede amoldarse a otras plataformas, los cambios harían a dichas redes prácticamente incompatibles o bien con arduos problemas de incompatibilidad.
  2. Existen automóviles de ataque a estas redes que explotan las vulnerabilidades conocidas de los procesadores Intel.

¿Cuánto sabes, criptonauta?

¿Una blockchain utilizando Proof of Elapsed Time (PoET) es enormemente escalable?

Vulnerabilidades

Si bien PoET es un algoritmo de acuerdo segurísimo conceptualmente, la estructura que utiliza para marcha ha empezado a flaquear: Intel y sus procesadores están infestados de fallos, los que son conocidos en público mas no reciben solución.

Si bien no hay ningún hardware o bien software libre de fallos, Intel se ha enfrentado en los últimos diez años a arduos problemas. Inconvenientes que se han acentuado considerablemente más últimamente.  Casos de vulnerabilidades como Meltdown, Spectre, SGX Crack, Prime+Probe, LVI, Plundervolt, Replay SGX o bien Enclave, tienen incidencia directa sobre la seguridad de PoET. En verdad, tienen incidencia directa sobre la seguridad general de nuestras computadoras.

Aunque los automóviles y medios de ataque son enormemente complejos, son posibles y cualquier pirata informático o bien conjunto de piratas informáticos con recursos puede explotarlos. Los gobiernos en su anhelo de supervisarlo todo, gastan fortunas por hacerse con esta clase de vulnerabilidades para desarrollar herramientas que le dejen espiar a sus ciudadanos y otros gobiernos, aun a todo el mundo de ser posible. En verdad, existen sospechas de que por poner un ejemplo RDRAND, es una instrucción troyanizada o bien desgastada intencionalmente para facilitar el espionaje.

Las vulnerabilidades en hardware son las más riesgosas

Todo este conjunto de vulnerabilidades hasta determinado punto pueden asistir a crear herramientas con la capacidad de romper criptografía. Por servirnos de un ejemplo, una instrucción RDRAND desgastada (como se sospecha que de forma intencionada hace Intel) dejaría que el generador de números azaroso fuera “predecible” conociendo las peculiaridades internas de su funcionamiento, algo que solo Intel sabe. Esto podría abrir las puertas a fin de que algoritmos que estimamos seguros como AES, ECDSA, RSA o bien demás puedan ser vulnerados cuando se ejecutan sobre un procesador Intel, comprometiendo nuestra seguridad y dinero. Esto, que puede sonar a ciencia ficción para ojos inexpertos, es una realidad. En verdad, ya hay un precedente con el caso de Dual-RDBG y la consola PS de Sony. Recordemos que la criptografía anticopia de esta consola fue rota por un inconveniente de seguridad de esta naturaleza.

Afortunadamente ningún proyecto de criptomonedas como Bitcoin o bien Ethereum, emplea este género de instrucciones. Mucho menos Zcash o bien Monero, donde los desarrolladores son cautelosos al extremo con la calidad de las implementaciones criptográficas que utilizan. Además de esto, exactamente el mismo desarrollo de Bitcoin cuestionó herramientas  criptográficas  conocidas, como es elcaso de OpenSSL, abandonando su empleo a favor de sus herramientas. Una muestra más de la seriedad de la seguridad en el desarrollo de esta criptomoneda.

Casos de empleo de PoET

HyperLedger

El caso de empleo más esencial de PoET es el proyecto HyperLedger, donde PoET es el algoritmo por defecto de soluciones que utilizan el framework (marco de trabajo y desarrollo de software) HyperLedger Sawtooth. Sawtooth en verdad es el sitio de nacimiento y desarrollo de PoET.

bitcoin
Bitcoin (BTC) $ 66,293.00
ethereum
Ethereum (ETH) $ 4,289.38
binance-coin
Binance Coin (BNB) $ 495.18
cardano
Cardano (ADA) $ 2.28
tether
Tether (USDT) $ 1.00
solana
Solana (SOL) $ 190.12
xrp
XRP (XRP) $ 1.16
polkadot
Polkadot (DOT) $ 44.43
dogecoin
Dogecoin (DOGE) $ 0.255316
usd-coin
USD Coin (USDC) $ 1.00