Un procesador en el corazón de Hyperledger Sawtooth

Intel Corporation ya en el año 2014 comenzó a trabajar con un proyecto de tecnología de registro distribuido (DLT) de código abierto llamado Sawtooth Lake, una plataforma modular e implementada en Python. En abril de 2016 junto con R3cev (creadores de Corda) lo presentaron a Hyperledger para ser aceptado en la Incubadora. Hyperledger Sawtooth, así se llama ahora, está en estado Activo desde mayo de 2017.

Características principales,

  • Permite diferentes tipos de consenso en la misma cadena de bloques
  • Incluye de forma predeterminada el consenso de Prueba de Tiempo Transcurrido (PoET)
  • Se pueden escribir contratos inteligentes en casi cualquier lenguaje (Python, JavaScript, Go, C++, Java y Rust)
  • Posibilita implementar contratos inteligentes de Ethereum a través de la integración con Hyperledger Burrow
  • Elegible entre cadena pública (sin permiso) o privada (con permiso)
  • Posee una arquitectura modular
  • Gran escalabilidad
  • Cuando es posible las transacciones se ejecutan en paralelo dando un mayor rendimiento

Prueba de Tiempo Transcurrido

De las principales características de Hyperledger Sawtooth para mí la más llamativa es su algoritmo de consenso llamado Prueba de Tiempo Transcurrido o PoET (Proof of Elapsed Time), ya que este algoritmo que conlleva la elección de un líder es implementado en los procesadores de Intel que incorporan SGX (Software Guard Extensions).

El algoritmo de consenso PoET se ejecuta dentro de los entornos de ejecución de confianza disponibles en los procesadores Intel con SGX. SGX es un conjunto de instrucciones de procesador que permiten la ejecución de código dentro de un Enclave (áreas de ejecución protegidas en la memoria). Esta parte es especialmente importante porque es lo único que permite que la Prueba de Tiempo Transcurrido funcione correctamente como un algoritmo de consenso y que los resultados sean verificables por entidades externas.

El algoritmo emula la Prueba de Trabajo de Bitcoin pero en lugar de competir para resolver el desafío criptográfico y extraer el siguiente bloque, cada validador recibe un tiempo de espera aleatorio y aquél con el tiempo de espera más corto para un bloque específico es nombrado líder y es el encargado de crear y verificar el nuevo bloque y de enviarlo a la cadena de bloques certificando que se ha completado la verificación de la transacción correctamente. El algoritmo de consenso PoET es un híbrido de una lotería aleatoria y de un orden de llegada.

Al igual que Prueba de Trabajo, este algoritmo no tiene una finalidad muy buena, ya que después de que se haya añadido un bloque, el cliente tendrá que esperar unos minutos para asegurarse de que no haya una bifurcación en la cadena que sea más larga que la que contiene su transacción.

Hyperledger Sawtooth está diseñado para que se pueda cambiar el mecanismo de consenso sobre la marcha, puede enviar la propuesta del nuevo consenso como una transacción y luego tener una política dentro de su red para aceptar ese nuevo consenso.

Si su red no cuenta con procesadores Intel con SGX también puede implementar el framework de Hyperldeger Sawtooth ya que provee un simulador PoET, que proporciona consenso al estilo PoET en cualquier tipo de hardware, incluso en un entorno virtual en la nube.

Para desarrollar y experimentar con la tecnología de blockchain, Hyperledger Sawtooth dispone de “Dev mode” un algoritmo simplificado de líder aleatorio.

Ejemplos de aplicaciones de Hyperledger Sawtooth en el mundo real:

  • XO: es una familia de transacción de ejemplo incluida en Sawtooth SDK¹. Es una implementación del popular juego de tres en raya.
  • Sawtooth Supply Chain: es una aplicación para ayudarlo a rastrear la procedencia y otra información contextual de cualquier activo. Se puede usar tal cual o personalizarlo para diferentes casos de uso.
  • Sawtooth Marketplace: es una aplicación que permite a los usuarios intercambiar cantidades de “Activos” personalizados con otros usuarios en la cadena de bloques.
  • Sawtooth Private UTXO: demuestra cómo se pueden crear y comercializar los activos. Muestra cómo usar SGX para permitir que los activos se transfieran al libro mayor y se negocie de forma privada, donde solo las partes involucradas conocen los detalles de la transacción.

El marco Hyperledger Sawtooth con su arquitectura simple no solo permite una curva de aprendizaje muy pequeña, sino que también facilita la configuración de una red y la implementación de aplicaciones personalizadas, como una familia de transacciones, y hacer que se ejecute en una red DLT escalable en cuestión de minutos.

Más información, 
📖 Docs
😻🐙 GitHub


¹ SDK (software development kit) o kit de desarrollo de software es generalmente un conjunto de herramientas de desarrollo de software que le permite al programador o desarrollador de software crear una aplicación informática para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etcétera. (Wikipedia)