Artículo de Blog

Profundizando en el Uso de Energía en Stellar: Eficiencia de Pago con Blockchain Examinada

Autor

Wilhelm Wanecek

Fecha de publicación

Sostenibilidad

Uso de energía

Electricidad

El significativo consumo de electricidad de criptomonedas basadas en prueba de trabajo como Bitcoin y Ethereum ha provocado un examen crítico de cómo se diseña el consenso en soluciones de blockchain. En un mundo con una crisis climática en curso, se requiere una reducción sustancial en el uso de energía en todos los sectores, incluyendo la infraestructura financiera cada vez más digital. Si una red como Stellar va a convertirse en una parte integral de la infraestructura del sistema financiero, es necesario que la tecnología sea sostenible ambientalmente.

En la primavera de 2021, estudié el consumo de electricidad de la red de Stellar, con el objetivo de obtener una estimación generalizada del uso de electricidad de una transacción de pago. En esta entrada de blog, resumiré y discutiré mis hallazgos y el método utilizado para derivarlos. Si te interesan los detalles del estudio, la tesis completa está disponible para que cualquiera la descargue a través de las Bibliotecas de la Universidad de Lund.

Es mi ambición que este estudio pueda proporcionar un paso hacia la construcción de una comprensión más completa del consumo de electricidad de Stellar, mientras se destacan fuentes de incertidumbre y cómo futuros estudios pueden derivar estimaciones más precisas. Espero que esto pueda proporcionar material de reflexión cuando se trata de cómo las blockchains pueden servir mejor a las personas sin incurrir en un consumo de energía significativo.

Antecedentes sobre Stellar y SCP

Stellar es una red descentralizada de membresía abierta optimizada para pagos y construida sobre tecnología blockchain, con el objetivo de permitir que el dinero fluya entre bancos, negocios y personas a través de la infraestructura financiera global, minimizando la latencia y las tarifas de transacción. En el núcleo de la red se encuentra un algoritmo de consenso de votación federada, el Protocolo de Consenso de Stellar (SCP). En términos simples, el objetivo del algoritmo de consenso es asegurar que todos los nodos en la red estén de acuerdo con el contenido de la blockchain (el libro mayor) sin que la red corra el riesgo de dividirse en dos redes en desacuerdo o quedarse atascada.

SCP es un protocolo de acuerdo bizantino federado parcialmente sincrónico que define el mecanismo de consenso. Se basa en la votación en sistemas de quórum, un enfoque bastante común entre los sistemas distribuidos y los protocolos de consenso. SCP introduce un sistema de membresía abierta — un Sistema de Acuerdo Bizantino Federado — donde los nodos aceptan quórums diferentes y en evolución. Esto significa que los nodos pueden unirse y dejar la red sin necesidad de una coordinación centralizada de membresía. Para entender mejor los mecanismos internos del protocolo, recomiendo sinceramente leer la excelente publicación de Marta Lokhava sobre Protocolo de Consenso de Stellar Intuitivo, o ver su charla con el mismo título. Dicho esto, hay dos aspectos principales que vale la pena enfatizar por el bien de entender este estudio.

  1. La esencia del consenso en SCP radica en la intención de los nodos de permanecer en acuerdo ("confiando") con otros nodos, una propiedad que conecta transitivamente a toda la red. A diferencia de los algoritmos de prueba de trabajo, no se requiere trabajo computacional para garantizar la seguridad. Se pueden hacer optimizaciones al rendimiento del protocolo sin ser anuladas por efectos secundarios como el aumento de dificultad.
  2. Con el paso de mensajes siendo una parte integral del protocolo y el tiempo de ronda de consenso siendo tan corto como 3-5 segundos, será necesario transmitir, recibir y posiblemente actuar sobre un gran número de mensajes en un pequeño intervalo de tiempo.

Objetivo y limitaciones del estudio

El objetivo del estudio fue llegar a una estimación generalizada de Wh por transacción para el núcleo de la red de Stellar, y a través del proceso formular y evaluar un método para hacerlo.

El estudio se limita a estimar el consumo de electricidad en funcionamiento de la red de Stellar (stellar-core), y no incluye estimaciones asociadas con el ciclo de vida más amplio del hardware, la construcción de centros de datos o infraestructura TIC, ni con posibles impactos implícitos de, por ejemplo, reemplazar otra infraestructura financiera. Tampoco incluye el consumo de electricidad de ejecutar Horizon, la capa API de Stellar, ni investiga el consumo de electricidad de la reingestión de historia u otros mecanismos de manejo de fallos.

Método — cómo se construyó la estimación

En el núcleo del estudio yace la suposición de que podemos aproximar el consumo de energía de un solo nodo validador como la suma del consumo de electricidad de computación (CPU), uso de memoria (RAM), almacenamiento (HDD/SSD) y el tráfico de red.

Una vez construida una estimación del consumo de electricidad de un solo nodo, se utilizó para construir una estimación de abajo hacia arriba de toda la red. En pocas palabras, el uso promedio estimado de electricidad de un solo nodo se multiplicó por el número de nodos en la red. Esta extrapolación lineal se justificó en parte dentro de los límites de este estudio por una encuesta comunitaria.

Para construir una estimación del consumo de electricidad de un nodo validador básico típico, se alquiló un servidor dedicado en Hetzner, y se realizaron mediciones durante un período de aproximadamente seis semanas. La mayoría de los scripts utilizados se pueden encontrar en el repositorio de GitHub wanecek/eitl01-scripts.



El uso de electricidad de CPU y RAM se estimó utilizando mediciones basadas en software usando la interfaz Intel RAPL, con el uso de electricidad muestreado para intervalos de 1 segundo cada 0-5 segundos al azar. Los retrasos aleatorios se agregaron para distribuir el muestreo a través de diferentes fases de una ronda de consenso.


El uso de electricidad de almacenamiento se estimó asumiendo un consumo de energía constante de un disco duro de 6.5 W, independientemente de la capacidad del disco o la frecuencia de lectura-escritura, como se mostró apropiado por el Informe de Uso de Energía de Centros de Datos de EE. UU..

Para tener en cuenta el uso de energía indirecto en los centros de datos como la refrigeración, el consumo de CPU, RAM y almacenamiento se multiplicó por una eficiencia promedio global de uso de energía de centro de datos (PUE) de 1.67.*

Por último, para tener en cuenta la electricidad utilizada al transmitir mensajes en la infraestructura global de TIC, el consumo de energía de la red se estimó utilizando un factor de conversión general de kWh/GB. Utilicé un coeficiente de 0.06 kWh/GB.

Además, al enviar una encuesta comunitaria, recibimos una visión general de en qué hardware funciona un nodo validador típico, cuántos datos de red se transmiten/reciben, así como el nivel de uso de recursos del sistema.

Resultados

Las mediciones de un solo nodo sugieren que con los coeficientes seleccionados, el tráfico de red es, con mucho, la mayor fuente de consumo de energía – en promedio responsable del 94% del consumo de energía.

Esta cifra fue luego extrapolada a través de los (en el momento del estudio) 132 nodos activos en la red. Dado que la encuesta sugirió que el tráfico de red es aproximadamente el mismo para todos los nodos, independientemente de si son un validador básico o completo, nos atrevemos a aproximar el tráfico de red completo (y por lo tanto el consumo de electricidad) multiplicando nuestras estimaciones con el número de nodos validadores.

Fue especialmente interesante notar que se registraron volúmenes de tráfico similares para nuestro nodo atípico (que ningún otro nodo validador en la red había agregado a su conjunto de quórum) como algunos de los nodos de Nivel 1 (que muchos otros nodos validadores en la red han agregado a sus respectivos conjuntos de quórum). Vale la pena enfatizar que estas suposiciones están vinculadas a un punto discreto en el tiempo y pueden no mantenerse verdaderas a medida que la red crece.


Finalmente, teniendo en cuenta los resultados anteriores, llegamos a un consumo medio de electricidad por transacción de 0.222 Wh por transacción exitosa, o un consumo de energía total medio de 186.5 W por nodo, o 24.6 kW para toda la red.

Conclusión y Próximos Pasos

Con el entendimiento del diseño del algoritmo de consenso, basado en el paso de mensajes en lugar de trabajo computacional, queda claro que el trabajo computacional arbitrario y complejo no va a contribuir al consumo de energía como lo hace en los algoritmos de prueba de trabajo. Además, la ausencia de efectos de rebote incorporados como una dificultad auto-regulable permite más optimizaciones.

Los resultados indican que el paso de mensajes contribuye significativamente al consumo de electricidad de la red. Dicho esto, es importante primero discutir la validez de dichos resultados, así como qué conclusiones pueden extraerse legítimamente de los resultados.

Con cierta incertidumbre respecto al coeficiente de Gb a kWh de la red, no podemos determinar con alta confianza exactamente qué tan grande es la parte del consumo de electricidad atribuible al tráfico de red. Si el valor real es 2x, 5x o 10x menor, el tráfico de red sería responsable del 89 %, 76 % o 62 % respectivamente. Aún así, los resultados parecen indicar claramente que el tráfico de red es un factor significativo del consumo de electricidad de Stellar, a pesar de que el alcance sea incierto. El hecho de que otros operadores de nodos informaron rangos similares de volumen de tráfico (aproximadamente 100 GB por día) reforzó la hipótesis de que el tráfico de red puede aproximarse linealmente a través de la red.

Una incertidumbre similar existe cuando se trata de las mediciones de energía de CPU y RAM. Intuitivamente, las cifras informadas fueron bastante bajas, contribuyendo en promedio con solo menos de 4 W. Sin embargo, al igual que informaron otros nodos validadores, la carga promedio medida de CPU fue de menos del 10 %, con picos altos seguidos por períodos cortos de casi inactividad. Es posible que a cargas de sistema tan bajas, otros componentes del hardware del servidor sean tan significativos como la CPU y la RAM, por lo que sería interesante leer mediciones de un medidor de energía físico, así como mediciones realizadas en una variedad mayor de hardware (un operador de nodo incluso informó que ejecutaba stellar-core en un Raspberry Pi). Nuevamente, aunque la precisión exacta del número es cuestionable, los resultados indican que ni el uso de CPU ni de RAM contribuyen significativamente al consumo de electricidad de la red en este punto.

Para mejorar la precisión, exactitud y relevancia de los resultados, recomendaría que estudios futuros tomen las siguientes medidas:

  • Verificar las mediciones de energía basadas en software de un servidor con lecturas físicas usando un medidor de vatios. Hay cierta incertidumbre respecto a la precisión de las lecturas de la interfaz Intel RAPL, y qué tan bien representa al servidor entero. Aunque estudios previos han mostrado que Intel RAPL es un buen indicador del consumo total de energía de la máquina, lo han hecho a cargas de trabajo más altas. Una variedad de hardware y lecturas físicas traerían mayor confianza a la estimación.
  • Registrar variables adicionales, como el tipo de operación y el número de rondas de votación, para entender mejor qué actividad de red requiere más consumo de electricidad. Esto puede revelar áreas adicionales de optimización.
  • Modelar o simular cómo el consumo de electricidad se ve afectado por el crecimiento de la red. La simulación y modelos teóricos sobre el impacto del crecimiento de la red (más nodos, mayor ancho de banda y un historial de ledger más largo) en el consumo total de electricidad de la red de Stellar darían cuenta mejor de la capacidad de Stellar para soportar una porción más grande de la infraestructura financiera global, y destacarían dónde se deben enfocar los esfuerzos para disminuir el consumo de electricidad.
  • Aplicar un coeficiente más actualizado para la electricidad del tráfico de red.
  • Permitir a los validadores publicar datos que ayuden a entender la red. Una mejor comprensión de cuánto tráfico de datos es enviado/recibido por cada nodo, qué hardware están ejecutando, uso de recursos del sistema y puntos de datos similares podrían ayudar a entender variaciones en la red y cómo extrapolar con mejor precisión el consumo de electricidad a través de la red, sin tener que medir la electricidad de cada nodo.
  • Incluir Horizon y almacenamiento de datos del ledger de validadores completos. Esto expandiría el alcance de la estimación para incluir mejor toda la red.

¿Qué sigue?

A gran escala, podemos ver que el consumo total de electricidad de la red de Stellar sigue siendo bajo, con un uso de recursos comparable al de un servidor web regular. Parece que Stellar ha desacoplado con éxito la descentralización del consumo extremo de energía y, como tal, es un protocolo del que otras implementaciones de blockchain —dentro o fuera de fintech— podrían aprender.

Para poner los números de uso de electricidad por transacción en un contexto, se pueden comparar con servicios similares. Al hacerlo es importante notar que esto es, de cierta manera, comparar manzanas con peras. Por ejemplo, al comparar con VISA, uno debería incluir arguablemente a Horizon – la capa API de Stellar – para una comparación más justa. Sin embargo, proporciona una intuición respecto a la magnitud del consumo de electricidad de Stellar.



A pesar de algunas fuentes de incertidumbre en el estudio, los resultados indican claramente que Stellar ha desacoplado con éxito el uso extremo de electricidad de la descentralización en su algoritmo de consenso. Todavía hay varias áreas donde se pueden hacer mejoras para reducir aún más el consumo de electricidad de toda la red, quizás reduciendo el tráfico duplicado en la red de superposición. Es mi esperanza que la SDF y el ecosistema de Stellar continúen este trabajo para entender mejor y expandir aún más la red de Stellar, asegurando que siga siendo una tecnología sostenible.

Stellar Development Foundation quisiera agradecer a Wilhelm por todo el arduo trabajo e investigación que puso en componer su tesis y en reunir esta publicación de blog. Con sus hallazgos, Wilhelm ha abierto la puerta a entender cómo se utiliza la energía en la red de Stellar, y estamos completamente de acuerdo en que si Stellar va a ser una parte integral de un sistema financiero cada vez más digitalizado, debemos medir y mejorar continuamente la sostenibilidad ambiental. Estamos apoyando investigaciones y análisis académicos adicionales para pintar un cuadro más completo del uso de energía –y por extensión, la sostenibilidad– de la red de Stellar.

–––

* Referencia: R. Bashroush y A. Lawrence, "Más allá de PUE: abordando sus teravatios desperdiciados.," Informe técnico, Uptime Institute, 2020.

**Diferentes estudios científicos llegan a valores significativamente diferentes para este coeficiente dependiendo, por ejemplo, de los métodos utilizados, la antigüedad del estudio y el alcance incluido en las mediciones. Para el propósito de este estudio, utilicé un coeficiente de 0.06 kWh/GB. Esto se eligió basado en un estudio de revisión exhaustiva autorizado por Joshua Aslan et al. Hay razones para estar bastante confiado de que este valor real ha disminuido desde entonces, ya que el volumen global de tráfico ha aumentado significativamente mientras que el consumo total de energía se cree que ha permanecido bastante estable. Como tal, se recomienda verlo como una sobreestimación, aunque en este punto, no puedo especificar por cuánto.