Aceleración de la prueba de trabajo de la IOTA usando FPGAs

El concepto de cadena de bloques ha existido desde principios de la década de 1990, pero mantener un libro mayor distribuido para las transacciones de IO no se implementó ampliamente hasta que la IOTA desarrolló Tangle. La compañía Blockchain fue fundada inicialmente como un inicio de hardware y pivotó para trabajar en la liquidación de transacciones de IO. The Tangle, su arquitectura de libro mayor distribuido basado en un gráfico acíclico dirigido (DAG) funciona como una “cadena de bloques sin los bloques y la cadena”.

Como su nombre lo indica, el Enredo es una red de transacciones que hace referencia a sus dos transacciones pasadas y a una subsección de otras transacciones. En lugar de que los mineros y los apostadores sean responsables del consenso general, todos los participantes activos están involucrados en la aprobación de las transacciones. El proceso de transacción requiere que el cliente firme con sus claves privadas, seleccione dos transacciones aleatorias no confirmadas para ser referenciadas y realice una prueba de trabajo.

La prueba de trabajo tiene una dificultad desafortunadamente alta como se puede esperar. El proceso es similar a encontrar un nonce en la minería de Bitcoin, aunque la dificultad se establece en un umbral más bajo debido a las transacciones que se ejecutan en nodos de menor potencia. Aún así, dado que las transacciones IOTA ocurren comúnmente en pequeñas plataformas embebidas, esto puede tomar varios minutos para completarse, un tiempo relativamente largo considerando que son meras transacciones.

Dado que los hashes de Curl-P81 deben ser computados en paralelo, no pueden ser computados eficientemente en CPUs de propósito general. El informe PiDiver 1.3 , [Thomas Pototschnig]s port de la Implementación de Referencia de IOTA (IRI) PearlDiver , realiza búsquedas de noces. Debido a que funciona con FPGAs, es capaz de acelerar la prueba de trabajo por un factor de más de 140 en comparación con un Pi de frambuesa. La FPGA es capaz de calcular una ronda del hash en un solo ciclo de reloj, y un hash completo en 85 ciclos (así como la prueba de un nonce válido). Se pueden calcular siete hashes paralelos a la vez, dando 15.8MHash/s a una frecuencia de 188MHz. La prueba de trabajo toma ~300ms en la FPGA cuando se compara con los 90s en un Pi de Frambuesa, por lo que esto es una mejora significativa en la velocidad.

Dado que el proyecto es de código abierto, el núcleo puede ser utilizado por IRI para crear una versión modificada de su PearlDiver. El tablero puede ser usado como un Pi HAT de Frambuesa, aunque también puede ser conectado vía USB para trabajar sin el Pi.

Si bien esto no resuelve las preocupaciones de seguridad de usar IOTA con dispositivos de IOTA personal, es ciertamente una mejora significativa en la velocidad de su proceso de prueba de trabajo, y la aceleración del software es increíblemente satisfactoria de ver.

Deja un comentario