Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Evaluación cuantitativa de mineŕıa de criptomonedas en la Universidad de los Andes Juan David Serrano Mugica Ph.D Harold Enrique Castro Barrera Noviembre 2021 Proyecto de grado presentado como postulación para el t́ıtulo de Ingeniero de Sistemas y Computación Departamento de Ingenieŕıa de Sistemas y Computación Universidad de los Andes Colombia 1 Contents 1 Contexto 3 1.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Utilización actual de recursos . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.2 Suposiciones y Restricciones . . . . . . . . . . . . . . . . . 4 2 Minado de Criptomonedas 5 2.1 Criptomonedas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Algoritmos de consenso y prueba de esfuerzo . . . . . . . . . . . 6 2.4 Unidades de procesamiento gráfico (GPU) . . . . . . . . . . . . . 7 2.5 Centralización de la red . . . . . . . . . . . . . . . . . . . . . . . 8 2.5.1 ASIC y FPGA . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5.2 Fondos de mineŕıa . . . . . . . . . . . . . . . . . . . . . . 9 2.6 Algoritmos basados en prueba de esfuerzo duros en memoria . . 10 2.7 Protocolos de consenso basados en prueba de X . . . . . . . . . . 11 3 Alternativas 12 3.0.1 Compatibilidad del software de mineŕıa con anti-virus . . 12 3.0.2 Mineŕıa con CPU . . . . . . . . . . . . . . . . . . . . . . . 13 3.0.3 Tamaño de scratchpad . . . . . . . . . . . . . . . . . . . . 13 3.0.4 Virtualización y GPU Passthrough . . . . . . . . . . . . . 14 4 Propuesta 14 4.1 Arquitectura y contexto . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Monitor de recursos computacionales y desempeño . . . . . . . . 16 4.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.4 Consumo regular de recursos y ajuste de resultados . . . . . . . . 21 4.5 Calculo de rentabilidad . . . . . . . . . . . . . . . . . . . . . . . . 22 5 Conclusiones 24 2 1 Contexto 1.1 Introducción La Universidad de los Andes y el Departamento de Ingenieŕıa de Sistemas y Computación cuentan con una cantidad considerable de recursos computa- cionales. Gran parte de estos recursos son usados por los estudiantes y docentes en labores académicas y de investigación. Sin embargo, gran parte del tiempo estos equipos no son utilizados y, cuando lo son, solo se utiliza una pequeña fracción de sus capacidades [12]. El auge de las criptomonedas en años recientes ha mostrado ser un mercado lucrativo donde se invierten en recursos computa- cionales con el fin de minar alguna divisa digital. Teniendo esto en cuenta, surge la duda de si para una institución como la universidad seŕıa rentable explotar sus recursos computacionales, cuando estos no están siendo utilizados, para mi- nar criptomonedas y tener una fuente de ingresos adicional. El propósito de este proyecto es justificar de forma cuantitativa por qué seŕıa o no rentable para la universidad realizar estas actividades. 1.2 Utilización actual de recursos En la universidad se invierte en infraestructura tecnológica con el objetivo de proveer a los estudiantes y profesores con equipos en los que puedan realizar sus actividades. Estos equipos deben poseer un alto poder computacional para que las tareas se lleven a cabo de forma eficiente y deben de estar disponibles la mayor cantidad de tiempo. La disponibilidad es un atributo de calidad dif́ıcil de cumplir porque suele ser costoso. Gran parte de las técnicas para alcanzar una alta disponibilidad llevan a introducir redundancia al sistema. Con esto en mente, la universidad ha logrado ofrecer servicios de tecnoloǵıa con un alto poder computacional a una alta disponibilidad a costa de tener una baja utilización de la mayoŕıa de sus equipos. Esto se puede demostrar gracias a estudios previos donde se llegaron a estas conclusiones tomando medidas sobre el consumo de recursos en las salas de computación. En la imagen 1 se hace evidente que el consumo de CPU a lo largo de un d́ıa cualquiera en una de estas salas no supera el 10% de su capacidad. Más aún, estos datos se tomaron durante el d́ıa en horarios hábiles, por lo que si se tienen en cuenta las horas de la noche cuando la universidad esta cerrada el consumo podŕıa llegar a ser aún más bajo. Aśı mismo, se monitoreó el consumo de memoria en las salas Waira como se puede ver en la figura 2. Nuevamente, el uso de memoria promedio no supera el 30%, lo que implica, que este recurso también es sub-utilizado. 1.2.1 Objetivos Ciertamente, la razón por la que la universidad invierte en equipos de com- puto es para soportar las labores académicas que se llevan a cabo. Sin em- bargo, dado que los recursos son sub-utilizados es de interés encontrar formas de rentabilizar su utilización. Por esta razón, el objetivo principal del proyecto 3 Figure 1: Consumo promedio de CPU en salas Waira y Turing. Tomado de [30] Figure 2: Consumo promedio de memoria en sub-salas Waira. Tomado de [12] es descubrir si para la Universidad de los Andes seŕıa rentable, desde un punto de vista económico y técnico, utilizar sus recursos computacionales para minar criptomonedas. Adicionalmente, como objetivo secundario, se quiere que los conocimientos adquiridos durante el desarrollo del proyecto sienten las bases para propuestas de investigación sobre el minado de criptomonedas. 1.2.2 Suposiciones y Restricciones El supuesto más importante para el desarrollo de este proyecto fue que se teńıa acceso a los recursos computacionales del Departamento de Ingenieŕıa de Sis- temas y Computación. Una parte del proyecto consistió de identificar qué recur- sos computacionales cumpĺıan con los requisitos necesarios para poder realizar el minado de criptomonedas. Como se verá más adelante, fue importante tener alternativas sobre la infraestructura para llevar a cabo estas pruebas ya que no todos los componentes cumpĺıan con los requisitos. Otro supuesto importante para llevar a cabo el proyecto fue tener las herramientas para el monitoreo de potencia de las máquinas. Finalmente, es importante resaltar que aunque el 4 proyecto trata de un análisis de rentabilidad sobre el minado de criptomonedas, este con base en la infraestructura computacional y no a las fluctuaciones de precio a las cuales están sujetos estos activos. En ningún momento a lo largo del proyecto se intentará predecir el precio futuro de las criptomonedas, solo se usaran los precios históricos. 2 Minado de Criptomonedas Una parte importante del tiempo que se invirtió para realizar este proyecto se usó para investigar sobre las convenciones y prácticas para el minado de criptomonedas. El minado de criptomonedas posee un componente práctico im- portante con el que se deb́ıa familiarizar. A diferencia de otras áreas de investi- gación, estos temas no solamente son abordaos en publicaciones académicas de revistas de renombre, también gran parte de los avances son publicados por or- ganizaciones o grupos que buscan promocionar sus nuevas tecnoloǵıas en canales no académicos y ¨white papers¨. [14] 2.1 Criptomonedas Para empezar, las criptomonedas son divisas digitales que hacen uso de teoŕıa criptográfica para validar las transacciones que se realizan con ellas. Las crip- tomonedas en su mayoŕıa se caracterizan por cumplir tres propiedades. En primer lugar,el anonimato; un usuario que realiza transacciones con la crip- tomoneda tiene acceso a los recursos asignados a su cuenta, sin embargo, mien- tras que él no divulgue su identidad podrá conservar un cierto grado de anon- imato. En segundo lugar, no debe depender de una autoridad central. Las criptomonedas son, en su mayoŕıa, sistemas distribuidos donde el historial de las transacciones es de acceso publico, lo que permite que cualquier individuo o persona pueda verificar la validez de las transacciones sinrequerir del per- miso de una autoridad central. Finalmente, la tercera caracteŕıstica de una criptomoneda es que posee un protocolo de consenso que define los lineamientos para corroborar la validez de cualquier transacción [25] e identificar posibles inconsistencias. Hasta 2008 uno de los mayores problemas a los que se enfrenta- ban las criptomonedas era poder detectar cuando un usuario incurŕıa en un doble gasto [28]. Sin embargo, esto fue resuelto con la aparición de Bitcoin y el protocolo de consenso propuesto [20]. Bitcoin fue la primera criptomoneda en popularizarse y en base a ella es que los protocolos y mecanismos de otras criptomonedas surgieron. Por esta razón, se toma a Bitcoin como caso base para explicar los conceptos de las criptomonedas en general. 2.2 Blockchain Blockchain es un almacén de datos transparente, descentralizado, replicado y resiliente [14]. Existen dos tipos de blockchain: los privados y los públicos. En los blockchain privados, también conocidos como permitidos, las identidades 5 de todos los nodos son conocidas y se consideran de confianza. Además, las transacciones que entran al registro deben ser validadas por una autoridad cen- tral [14]. Por otro lado, los blockchain públicos permiten a cualquier nodo entrar y salir de la red a su disposición [20] y sin que este deba revelar su identidad. Además, es por consenso de la red que se aprueban las transacciones que entran al registro. En el caso de las criptomonedas estas usualmente usan del esquema público para validar las transacciones. De ahora en adelante cada vez que se mencione blockchain se dará por sentado que se refiere al caso publico. Blockchain tiene la estructura de una lista enlazada donde los datos (e.g. transacciones) son agrupados y guardados en bloques. Esto bloques luego son añadidos a la lista uno tras otro. Cada bloque lleva una referencia al bloque inmediatamente anterior por medio de su hash criptográfico lo cual le permite a cualquier nodo en la red corroborar la validez de la cadena. Cualquier intento de alterar el orden de los bloques será detectado. Uno de los propósitos de blockchain es no depender de una autoridad central. En consecuencia, para que un nodo de la red logre añadir un nuevo bloque a la cadena debe cumplir con ciertos requisitos que pueden ser validados por los otros nodos. Una vez otros nodos aprueben el nuevo bloque y esto ocurra con todos los nodos de la red el bloque es añadido [14]. Al conjunto de condiciones y el proceso de validación para añadir nuevos bloques se le conoce como el algoritmo de consenso. 2.3 Algoritmos de consenso y prueba de esfuerzo El algoritmo de consenso es lo que le permite a los blockchain públicos operar sin necesidad de una autoridad central. En 2008 se publicó el white paper de Bitcoin por un autor bajo del seudónimo de Satoshi Nakamoto (hasta el momento aun se desconoce de la identidad verdadera del autor) [20]. Aunque para la época ya hab́ıan estudios sobre algoritmos de consenso y sus aplicaciones, lo que hizo de este trabajo una propuesta innovadora fue el uso de prueba de esfuerzo, o PoW por sus siglas en inglés, como algoritmo de consenso. Originalmente PoW fue propuesto en 1993 como un medio para combatir los correos no deseados. Este consist́ıa en solicitarle al remitente de los correos resolver un rompecabezas criptográfico que le diera cierta validez al correo para que fuera admitido por el destinatario [22]. Más en detalle, el remitente deb́ıa calcular el hash para una cadena de caracteres compuesta del encabezado del correo, la fecha de env́ıo y un número aleatorio llamado nonce. El remitente deb́ıa variar el nonce hasta que se encontrara un hash con un cierto número de ceros al principio [14]. En consecuencia, se deb́ıan probar todas las posibles combinaciones de nonce hasta hallar aquella que generara el hash deseado. A partir de esto, se propuso un algoritmo de consenso basado en PoW con algunas variaciones. La primera diferencia fue que en vez de usar SHA-1 como función de hashing se deb́ıan realizar dos operaciones de SHA-2 consecutivas. La segunda fue que en la cadena de caracteres sobre la cual se calculaba el hash se remplazó el encabezado del correo por el encabezado de los bloques. Por ultimo, la dificultad o número de 0’s deseado al principio de cada hash pasó de ser una constate a un parámetro variable que se recalculaba cada 2016 bloques 6 con el fin de conservar una tasa constante a la cual se añad́ıan nuevos bloques [14]. Idealmente, se deb́ıa de añadir un nuevo bloque cada 10 minutos. En consecuencia, los nodos en la red que quisieran añadir un nuevo bloque deb́ıan de resolver este rompecabezas criptográfico lo cual se conoce popularmente como como minar; los nodos que minan se les conoce como mineros. Con el fin de incentivar la mineŕıa, el algoritmo de consenso define cierta recompensa que le es pagada al minero que logre añadir un nuevo bloque. Esta recompensa es incluida al principio del bloque por añadir en forma de una transacción sin remitente y con destinatario único al minero. Además, en algunos casos, las transacciones pueden incentivar a los mineros para que las incluyan en el bloque que intentan añadir por medio de comisiones. Todas las criptomonedas que utilizan algún algoritmo de consenso basado en prueba de esfuerzo se les puede minar. Uno de los parámetros que hace parte del encabezado de un nuevo bloque es el hash del bloque anterior (el ultimo bloque de la cadena aceptado) es por esta razón que cualquier intento de modificar la cadena es detectado. Aśı mismo, también es la razón por la cual cuando un minero logra añadir un nuevo bloque antes que otros mineros estos últimos deben de iniciar desde cero el rompecabezas, ya que el hash que deben incluir en su encabezado cambió. Sin embargo, debido a que las actualizaciones en la red no se propagan de forma in- mediata pueden llegar a presentarse inconsistencias. Una de ellas ocurre cuando dos o más mineros logran generar nuevos bloques en simultáneo y la red se divide entre los nodos que aceptan uno u otro de estos nuevos bloques como último de la cadena. Para solucionar esta inconsistencia temporal en la red, los nodos deben guardar ambas ramificaciones, o forks, generadas hasta que una de las ramas sea mucho más larga que la otra. Se conserva la cadena más larga porque en esta se invirtió un mayor poder computacional. Esta estrategia permite solucionar tanto la situación donde varios nodos honestos generan bloques en simultaneo como cuando un nodo deshonesto intenta añadir un bloque corrupto a la red como se vera mas adelante [22, 16]. 2.4 Unidades de procesamiento gráfico (GPU) Las unidades de procesamiento gráfico o GPU en un principio se consideraban como hardware especializado en la labor de renderizado de imágenes 3D [24]. Sin embargo, con el tiempo su uso se extendió a otras áreas ya que era posible programar en ellas. Es importante conocer la diferencia entre una GPU dedicada y una GPU integrada. Las iGPU o GPUs integradas se caracterizan por estar incluidas dentro del empaquetado de las CPU. Su capacidad es limitada, sin embargo su consumo de potencia es bajo. Por lo tanto, son componentes de hardware atractivos cuando las tareas de procesamiento gráfico realizadas son de baja intensidad. Por otro lado, las GPUs dedicadas o discretas suelen tener su propio circuito impreso, sistema de refrigeración y se conectan por medio de un puerto PCI-E. Estas últimas son usadas para tareas mucho más exigentes y sus capacidades no se limitan únicamente a tareas de renderizado ya que suelen ser programables. De aqúı en adelante cuando se hable de GPUs nos referiremos a las dedicadas [24]. 7 A diferencia de las unidades centrales de procesamiento (CPU), que se iden- tifican por tener un alto rendimiento por núcleo y una baja latencia, las GPU se caracterizan por su throuhgput ya que son capaces llevar a cabo la ejecución de múltiples tareas en simultáneo[12].Esto se debe a que las GPU poseen un gran numero de núcleos simples, ideales para paralelizar tareas. Actualmente, las GPU son usadas no solamente para tareas de renderizado pero también para aprendizaje profundo y minado de criptomonedas [23]. 2.5 Centralización de la red Una de las bases sobre las cuales opera blockchain es que es una red descentral- izada. Esto implica, en primer lugar, que el registro/secuencia de bloques sea de libre acceso para los nodos en la red, lo que permite a los nodos validar y verificar la consistencia de la cadena. En segundo lugar, implica que los nodos realizan sus actividades de forma independiente entre ellos y que en ningún mo- mento un mismo individuo o grupo de individuos logra controlar la mayoŕıa del poder computacional de la red [28]. En el documento original de Bitcoin se asume que pueden existir nodos maliciosos en la red, sin embargo se menciona que mientras que los nodos honestos posean mas del 50% del poder computacional la red no podrá ser engañada. Cuando algún nodo malicioso intente insertar un bloque corrupto a la red sucederán las siguientes situaciones. En primer lugar, los nodos hon- estos van a rechazar el nuevo bloque cuando se den cuenta de la inconsistencia presente en el bloque y trabajaran en generar otra(s) ramificación(es). En se- gundo lugar, debido a que el atacante no posee mas del 50% del poder computa- cional sus probabilidades de añadir un nuevo bloque sobre el corrupto que acaba de generar decaerán exponencialmente [28]. Por último, debido a que los no- dos honestos en conjunto son capaces de generar ramificaciones mas largas que aquella que posee el bloque corrupto esta última sera descartada [28]. El caso antes descrito muestra la razón por la que Bitcoin es resiliente a ataques. Sin embargo, depende del supuesto de que los atacantes no controlan más de 50% del poder computacional de red. Como se verá a continuación, este supuesto debe ser tomado con cautela debido a la centralización del poder computacional ocasionada por hardware especializada y prácticas realizadas por conjuntos de mineros. 2.5.1 ASIC y FPGA Con el tiempo se desarrollaron componentes de hardware aún más eficientes que las GPU para el minado de criptomonedas. Los primeros fueron las FPGA o matriz de puertas lógicas programable en campo. Estos dispositivos son pro- gramables y eran capaces de minar Bitcoin, sin embargo no eran mucho más veloces que las GPU a la hora de minar. Su ventaja se centraba en que teńıan un consumo energético menor [8]. Sin embargo, son equipos que requieren de cierto conocimiento técnico para lograr operar y programar. 8 En segundo lugar, aparecieron las ASIC o circuitos integrados de aplicación espećıfica. A diferencia de las FPGA, las ASIC son componentes de hardware especializado en minado que se crearon con este único objetivo. En contraste con los procesadores de uso general y las FPGA los componentes de hardware especializado son mucho más veloces en la ejecución de instrucciones y su con- sumo energético es inferior por instrucción. Por ello, poseen una capacidad de minado superior a un menor costo energético. Sin embargo, son máquinas de una complejidad superior, lo que las hace más dif́ıciles de operar y construir. Además, debido a que son de uso especifico, la mayoŕıa de personas no poseen estas máquinas porque sirven únicamente para minar y su precio las hace poco asequibles para el usuario común. Esto hizo que la capacidad de minado se concentrara en aquellos individuos con los recursos económicos y capacidades técnicas para minar con estas máquinas, lo cual ha puesto en riesgo la decen- tralización de la red [14, 20]. 2.5.2 Fondos de mineŕıa Una segunda razón por la que se ha puesto en riesgo la decentralización de la red ha sido la aparición de fondos de mineŕıa. La razón de su aparición fue que con el tiempo la dificultad para hallar nuevos bloques aumentá a tal punto que los mineros que no poséıan granjas de mineŕıa (gran conjunto de maquinas enfocadas a realizar esta actividad) teńıan muy bajas probabilidades de lograrlo. Debido a esto, los mineros, en un intento por aumentar sus probabilidades de ganar el rompecabezas criptográfico, decidieron unirse para aumentar su poder computacional de forma conjunta, a esto se le conoce como un fondo (pool). En un fondo existen los mineros que poseen un cierto poder computacional y el coordinador que se encarga de coordinarlos y repartir las ganancias. En principio, todos los mineros operan en pro del fondo y a este se le reconoce la recompensa por la operación de alguno de sus mineros [14]. Finalmente, estas ganancias se distribuyen a los mineros en base al poder computacional que aportaron al fondo para la resolución de los problemas y se les descuenta una pequeña comisión de cerca del 1%-3% para pagar al coordinador [15]. La forma como los fondos operan es la siguiente. Los coordinadores le reparten a los mineros un borrador del bloque que se intenta añadir a la ca- dena y les piden que encuentren una solución al bloque que este por debajo de cierta dificultad. Esta dificultad usualmente es inferior a la dificultad de la red para que los mineros puedan subir soluciones parciales más rápidamente. Una vez el minero sube una solución parcial válida se le reconoce el esfuerzo invertido asignándole una acción válida (share), si la solución no lo es se le asigna una acción inválida. Una vez el fondo logre añadir un bloque a la red este reparte las ganancias en base a las acciones válidas que posea cada minero e inicia una nueva ronda de minado donde todos los mineros inician sin acciones válidas. Ahora, existen varios esquemas para repartir las ganancias en base a las acciones válidas [29]. El primero de ellos es el esquema proporcional, este es el más simple y consiste en asignarle a cada minero una ganancia proporcional al porcentaje de acciones válidas que ganó durante la ronda de minado. El se- 9 gundo esquema se llama PPS (Pay per share), en este caso se calcula el número estimado de acciones válidas que se esperan repartir para cuando se termine la ronda de minado (se añada un bloque) y en base a eso se paga a los mineros [2]. Este último esquema es riesgoso para el fondo ya que una variación en los tiempos esperados puede hacer que el fondo le termine pagando a los mineros una recompensa mayor a la obtenida una vez se acabo la ronda. Finalmente, el tercer esquema, el cual es utilizado por Bitfly [15], se llama PPLNS (Pay Per Last N Shares). Este esquema es semejante al proporcional pero, a diferencia de este, el pago no se hace en base a todas las acciones válidas repartidas durante la ronda de minado sino solamente sobre las asignadas en el último tramo, la longitud del tramo es definido por el fondo (en el caso de Bitfly es la ultima hora de la ronda [15]). Este último esquema busca privilegiar a los mineros que participan en el fondo de forma continua, ya que bajo el esquema proporcional suele ocurrir que grandes mineros durante una misma ronda de minado se pasan entre diferentes fondos para recibir múltiples recompensas. Los fondos de mineŕıa benefician especialmente a los mineros que poseen un bajo poder computacional sin embargo su presencia pone en riesgo a la decentralización porque concentra el poder de múltiples máquinas bajo el control de una única entidad. Si el coordinador quisiese engañar a la red tendŕıa a su disposición el poder computacional del fondo entero para intentar hacerlo [14] y seŕıa capaz de generar forks más largos. Aunque esta práctica claramente pone en riesgo la decentralización, hoy en d́ıa es muy poco usual que los pequeños mineros logren generar ganancias si no participan en un fondo debido a que los niveles de dificultad a los que se ha llegado en las diferentes plataformas es muy alto. 2.6 Algoritmos basados en prueba de esfuerzo duros en memoria Con el objetivo de contra-restar el dominio de las ASIC, nuevas criptomonedas,posteriores a Bitcoin, han propuesto protocolos de consenso basados en prueba de esfuerzo que poseen algunas alteraciones que permiten atacar esta prob- lemática. A estos algoritmos se les conoce como basados en prueba de esfuerzo duros en memoria. A ellos se les caracteriza porque deben realizar accesos a memoria de forma regular. Estos algoritmos requieren tener cargado en memo- ria un bloque de datos, llamado scratchpad, que se genera aleatoriamente a partir de un nonce [22]. Sobre este scratchpad se realizan las operaciones de lectura y/o escritura de forma aleatoria durante el proceso de minado. Estos accesos aleatorios a memoria reducen la utilización del cache y hacen que las operaciones de minado se vean limitadas en latencia, ancho de banda y tamaño de la memoria. En el caso especifico de las FPGA y ASIC estos poseen una ventaja a la hora de minar criptomonedas cuando estas poseen algoritmos de consenso basados únicamente en prueba de esfuerzo por su velocidad a la hora de ejecutar instrucciones. Sin embargo, pierden esta ventaja cuando la limitante pasa a ser el acceso a la memoria [22]. Algunos de los algoritmos que pertenecen a esta familia de protocolos de con- 10 senso son: Ethash (Ether), CryptoNight (CryoptoNote), Cockoo Cycle, Scrypt, etc [20, 22]. Claramente, estos algoritmos pueden ser diferentes entre ellos, sin embargo todos se caracterizan porque imponen limitantes sobre el acceso a la memoria y/o su capacidad. Por ejemplo, Ethash, en su versión original (actual- mente Ethereum está migrando a un algoritmo de consenso basado en prueba de participación [19]), no solamente teńıa un ciclo intensivo de lecturas aleato- rias sobre el scratchpad este también ocupaba cerca de 1GB (actualmente el scratchpad ocupa más de 4GB [27]). Es importante recalcar, que aunque estas limitantes buscan impedir el dominio de las ASIC sobre las plataformas, el crec- imiento del scratchpad, como ocurre con Ethereum, también es una limitante para procesadores de uso general, especialmente las GPUs, ya que a estos com- ponentes de hardware poseen una memoria propia de tamaño fijo. Esto será de importancia al momento de analizar el hardware disponible para realizar las pruebas en la universidad. 2.7 Protocolos de consenso basados en prueba de X El protocolo de consenso sugerido por Bitcoin fue el primero en permitir que una criptomoneda fuera admitida como medio de pago de forma global. Sin embargo, este y los protocolo de consenso basados en prueba de esfuerzo tienen otros inconvenientes, uno de los cuales es el alto consumo energético [19]. Por esta razón, se han propuesto otros protocolos para llegar al consenso a los cuales se les ha denominado como ”prueba de X” (proof-of-X) o PoX [14]. Al interior de esta familia de protocolos para llegar el consenso hay multiples variaciones pero todas intentan atacar las debilidades energéticas que presenta PoW. El primer conjunto de protocolos de la familia PoX son aquellos que op- eran en base a una prueba de participación (Proof of stake o PoS). Este grupo de protocolos de consenso se caracteriza porque los participantes realizan una votación para decidir qué nuevo bloque es añadido a la cadena. El voto de un nodo es ponderado con respecto a su participación en la red, lo cual se puede medir en términos del número de monedas que posea. Para definir cuál bloque es añadido a la red se elige entre todos los participantes a un ĺıder aleatorio y él es quién lo decide [14]. El segundo conjunto de protocolos se le conoce como prueba de capacidad (Proof of Capacity) o PoC. En PoC los participantes votan por nuevos bloques de forma similar a PoS sin embargo no lo hacen en forma proporcional a su participación de la red sino en términos de su capacidad para alojar información no trivial en sus dispositivos de almacenamiento. Para elegir al ĺıder quien decide cual es el bloque sobre el que se debe votar se deben almacenar segmentos de archivos de tamaños grandes [14]. Existen otros conjuntos de protocolos como prueba de tiempo (PoT) o in- cluso esquemas h́ıbridos. Sin embargo, todos buscan realizar la misma cosa: remplazar los algoritmos de consenso basados en PoW por otras alternativas que tengan menores requisitos sobre el poder computacional y permitan llegar al consenso. Esto con el objetivo de reducir el consumo de enerǵıa asociado regularmente al minado de criptomonedas [14]. 11 3 Alternativas A lo largo del desarrollo del proyecto se analizaron diferentes escenarios para realizar las pruebas de minado. En un principio, se pensó en usar la infraestruc- tura de las salas Turing y Waira para realizar las pruebas. Sin embargo, debido a ciertas limitantes, fue necesario realizar algunas modificaciones. A continuación, se relatan las decisiones de diseño que se tomaron a lo largo del desarrollo para escoger el escenario de pruebas final. 3.0.1 Compatibilidad del software de mineŕıa con anti-virus Durante el desarrollo del proyecto se pensó inicialmente en la posibilidad de usar las máquinas de las salas de cómputo Waira o Turing para realizar las pruebas de minado. En la tabla 1 se pueden ver las especificaciones de los computadores en estas salas. Waira Turing Procesador Intel (R) Core (TM) i7-7700 CPU @ 3.60Hz [ 8 core(s) x64] TM) i7-7700 CPU @4.20GHz [ 8 core(s) x64] Memoria 32 GB DDR4 @1.20 GHz 64 GB DDR4 @1.20 GHz Almacenamiento HDD 1TB HDD 1TB Tarjeta de v́ıdeo Intel (R) HD Graphics 630 (iGPU) Nvidia Quadro P600 Tarjeta de red Intel(R) (2) I219-LM Giga- bit Network Connection 1 Gb/s Intel(R) (2) I219-LM Giga- bit Network Connection 1 Gb/s Sistema Opera- tivo Microsoft Windows 10 En- terprise Microsoft Windows 10 En- terprise Table 1: Especificaciones computadores salas Waira y Turing El primer inconveniente con el que nos encontramos fue que los programas usados para minar criptomonedas suelen ser señalados como programas peli- grosos por los antivirus de Windows [21]. La razón por la que esto ocurre es que los ciber-delincuentes suelen instalar software malicioso con el fin de ro- bar el poder computacional de usuarios, sin que ellos se percaten, para minar criptomonedas; a esta práctica se le conoce como Cryptojacking [26]. Aunque ciertos antivirus han construido gúıas para distinguir aquellos programas de minado de aquellos que realizan Cryptojacking [13], por seguridad continúan marcando los programas como peligrosos para solicitar autorización expĺıcita de los usuarios que desean correrlos. Por otro lado, algunos antivirus justi- fican bloquear por defecto cualquier programa de minado justificando que la mayoŕıa son programas de código abierto, lo que implica que ningún individuo o entidad es responsable su uso y mantenimiento. Esto los hace potencialmente peligrosos ya que aunque no realicen Cryptojacking ahora, en un futuro puede 12 que śı [26]. A causa de esto se descartó la posibilidad de usar los equipos de la universidad de forma directa. Por seguridad se optó por tomar un equipo y montarle una imagen de Ubuntu 20.04, ya que la mayoŕıa de software de mineŕıa posee implementaciones exclusivamente para Linux. La única excepción a esto era NiceHash, sin embargo se pensó en probarlo usando una máquina virtual y realizarle GPU passthrough [12]. 3.0.2 Mineŕıa con CPU El segundo inconveniente con el que nos encontramos fue que, actualmente, para la mayoŕıa de criptomonedas no es rentable minarlas con CPU. El desempeño de un componente de hardware para minado se mide en términos del número de hashes que puede realizar por segundo, generalmente medido en kilo hashes (kH/s) o mega hashes (MH/s) por segundo, y su consumo de potencia. Además, la rentabilidad también depende de forma inversamente proporcional a la ca- pacidad de minado de la red entera para la criptomoneda en cuestión. Aunque la CPU es la unidad de procesamiento más versátil y popular, su capacidad para distribuir tareas usando paralelismo es limitada. Por el contrario, las GPU tienen una capacidadmucho mayor de paralelizar tareas, lo que les permite tener una tasa de cálculo de hashes por segundo mucho más alta [20] con un consumo de potencia similar. Debido a que los usuarios que minan criptomonedas con algoritmos de con- senso duros en memoria lo hacen generalmente con GPU, la capacidad com- putacional de la red ha crecido al punto donde no es rentable minar con CPU. Ciertamente, existen CPU modernas con números de núcleos que rondan en los 32, 64 e incluso 128 que podŕıan llegar a ser un poco rentables, sin embargo, estos equipos son usados por centros de datos y servidores por lo que no repre- sentan el tipo de equipos que posee la universidad. A esto se le suma el hecho de que no hay implementaciones de software recientes para minado con CPU. Debido a esto, se descartó usar los equipos de la sala Waira ya que estos no poseen GPU dedicada. 3.0.3 Tamaño de scratchpad El tercer inconveniente con el que nos encontramos fue descubrir que la mayoŕıa de las criptomonedas con protocolos de consenso basadas en algoritmos de prueba de esfuerzo duros en memoria tienen scratchpads que superan los 2GB de memoria, algunos incluso superan los 4GB. A causa de esto, las GPUs disponibles en la sala Turing no eran capaces de llevar a cabo las operaciones de minado ya que las Nvidia Quadro P600 solo poseen 2GB de memoria dedicada. Sin embargo, al revisar el inventario de las máquinas disponibles se hallaron tarjetas gráficas Nvidia Qaudro K2200 las cuales eran algunas generaciones pasadas que las P600 pero nos permit́ıan realizar las operaciones de minado ya que poseen 4GB de memoria dedicada. En la tabla 2 se puede detallar el tamaño de memoria para algunas criptomonedas. 13 Criptomonedas/Plataformas bios flashbackTamaño Scratchpad (GB) Ethereum 4.55 Ethereum Classic 2.82 Ravencoin 3.11 Ergo 2.10 Table 2: Tamaño de scratchpad para criptomonedas [7] 3.0.4 Virtualización y GPU Passthrough Finalmente, dado que se buscaba analizar todas las opciones para rentabilizar los recursos computacionales de la universidad por medio de minado, se investigó sobre una esquema de renta propuesto por una compañ́ıa llamada NiceHash. A diferencia del t́ıpico software de minado de criptomonedas, NiceHash es una plataforma que ofrece varios programas de minado que en vez de minar para el usuario de la máquina lo que hacen es rentar su poder computacional. Los mineros rentan las máquinas donde corren estos programas, los dueños de las máquinas reciben un pago y NiceHash se lleva una comisión por orquestar el préstamo. El único inconveniente era que NiceHash es uno de los pocos software de mineŕıa que corren sobre Windows 10. Para solucionar esto se pensó en crear una máquina virtual Windows 10 sobre la máquina de pruebas que corŕıa Ubuntu 20.04. Sin embargo, para lo- grarlo, se deb́ıa de realizar una operación llamada GPU passthrough sobre el sistema operativo anfitrión (Ubuntu 20.04) para cederle el control de la GPU al sistema operativo invitado (Windows 10). Para lograr esto, se llevo a cabó el procedimiento sugerido por [3]. Si se desea consultar en más detalle qué her- ramientas y tecnoloǵıas se requieren para lograr esto, se puede consultar a [12] donde se realiza un análisis más detallado. Una vez se logró realizar el paso de la GPU a Windows 10, se instalaron los componentes de software requeridos. Lamentablemente, al momento de correr NiceHash Miner o QuickMiner (pro- gramas de minado sugeridos por NiceHash) estos no reconocieron la presencia de la GPU. Las causas de esto fueron que QuickMiner y NiceHash Miner re- queŕıan que la GPU soportara CUDA 5.2 (plataforma de computación paralela soportada por GPUs Nvidia) y tuviera 6 GB de memoria dedicada respectiva- mente [6]. La GPU Nvidia Quadro K2200 solo soporta hasta CUDA 5.0 y solo posee 4GB de memoria dedicada en consecuencia no fue posible minar usando este esquema. 4 Propuesta Una vez fueron identificados los requisitos del equipo para llevar a cabo las la- bores de mineŕıa se construyó un conjunto de pruebas y se definieron algunos es- cenarios para realizarlas. Inicialmente se queŕıa minar cerca de 8 criptomonedas 14 pero debido a algunas limitantes, como el tamaño del scratchpad, no fue posible y se eligieron solo 4. Solo en el caso de una de las criptomonedas que se eligieron fue posible correr el software de minado aun cuando el scratchpad no cab́ıa en memoria, sin embargo esto fue a costa de una reducción significativa de poder de cómputo. 4.1 Arquitectura y contexto La arquitectura del computador elegida para realizar las operaciones de minado fue el siguiente: Sistema Operativo Ubuntu 20.04.3 LTS CPU Intel Core i7-4790 3.60GHz 4 Núcleos/8 Hilos iGPU Intel HD Graphics 4600 GPU Nvidia Quadro K2200 4 GB GDDR5 Almacenamiento 500.1 GB HDD Memoria 32 GB DDR3 1600 MT/s (8GB x 4) Tarjeta madre Dell 04BDY8-A00 Table 3: Arquitectura elegida para minado Por otro lado, los software de mineŕıa elegidos para realizar las pruebas fueron LolMiner [10], TRexMiner [11] y GMiner [9]. Estos se escogieron después de realizar varias consultas a foros especializados en el tema donde los recomend- aban por ofrecer una alta estabilidad, confianza de los usuarios y seguridad. Aśı mismo, se eligieron las 4 criptomonedas sobre las cuales se realizaŕıan pruebas de minado: Ether, Ethereum Classic, Ravencoin y Ergo. Estas 4 platafor- mas/monedas se escogieron con base en que son relativamente populares, el software de mineŕıa encontrado era capaz de minarlas y los recursos computa- cionales a disposición también. Finalmente, por suerte, se encontró un conjunto de fondos de mineŕıa para estas 4 criptomonedas que operaban bajo la misma empresa, Bitfly [4]. Los nombres para cada uno de estos fondos eran: Ethermine, Ethermine ETC, Flypool Ravencoin y Flypool Ergo, respectivamente. Se esco- gieron estos fondos por dos razones. En primer lugar, todos ellos poséıan una API gratuita que le permitió al monitor de recursos realizar llamados regular- mente para conocer el hashrate del minero detectado por el fondo. La segunda razón fue que estos fondos son unos de los más grandes del mundo y a causa de esto tienen estad́ısticas de suerte que rondan alrededor del 100%. Lo que esto quiere decir es que a causa de que el fondo es muy grande, el tiempo que le toma añadir un nuevo bloque a la cadena suele estar alrededor del tiempo esperado, cosa que para fondos pequeños o mineros solitarios no ocurre ya que hay una variación mucho más alta en los tiempos de éxito. 15 4.2 Monitor de recursos computacionales y desempeño Durante el minado de criptomonedas se queŕıa analizar el consumo de recursos de la máquina. De antemano se sab́ıa que el componente que iba a experimentar una mayor carga era la GPU, sin embargo, se queŕıa conocer si podŕıan llegar a existir otros cuellos de botella para la operación. Por tal razón, se tuvieron algunas consideraciones para simular el comportamiento que se tendŕıa al minar en un equipo de una sala de la universidad. Durante todas las mediciones el chasis estuvo cerrado y la pantalla conectada a la GPU integrada de la CPU para evitar que se consumieran recursos computacionales de la GPU dedicada. También se evitó al máximo correr programas distintos al de minado y al del monitor de métricas de minado en el computador mientras que se llevaron a cabo las pruebas. Ambos programas se corrieron directamente desde la consola. El programa de monitoreo se escribió en Python 3.7 y se uso la libreŕıa pandas. Las métricas se tomaron cada 10 segundos (limitante impuesta por la API de Ethermine [4]) y cada 100 muestras, un equivalente a 17 minutos, las métricas se guardaban en disco usando un hilo de ejecución secundario para evitar la sobrecarga de la CPU y un consumo innecesario de memoria del dispositivo. El monitor en cada toma revisaba las siguientes métricas: consumo de memo- ria, consumo de memoria dedicada de la GPU, porcentaje de utilización de la CPU, porcentajede utilización de la GPU, temperatura del empaquetado de la CPU, temperatura de la GPU, hashrate reportado por la API del fondo de mineŕıa utilizado y frecuencia de la CPU. Aśı mismo se tomaron datos sobre el consumo usando un conector inteligente Emporia [18], las especificaciones sobre este producto se pueden ver en la tabla 4. Consumo de potencia 1W Potencia máxima 1800W @ 120V Máxima carga constante 10A Tiempo entre mediciones 1 seg Precisión 1 W Table 4: Especificaciones de Conector Inteligente Emporia. Tomado de [17] 4.3 Resultados A partir de estas especificaciones fue posible realizar las pruebas de minado y se obtuvieron los siguientes resultados. A primera vista, y tal como se esperaba, el recurso más utilizado es la GPU. En definitiva los programas de minado, independiente del algoritmo o crip- tomoneda que estén minando, utilizan al máximo este componente. Esto se puede evidenciar en las figuras 4a y 5b donde para las 4 sesiones de minado se usa el 100% de la GPU y una parte importante de la memoria dedicada, entre el 50% y 100% de ella. A causa de esto la GPU llega a tener temperaturas relativamente altas, alcanzando en el peor caso, Ravencoin, cerca de 80 gra- 16 (a) Carga sobre la CPU (b) Temperatura de la CPU Figure 3: Desempeño de la CPU durante minado (a) Carga sobre la GPU (b) Temperatura de la GPU Figure 4: Desempeño de la GPU durante minado dos cent́ıgrados. Además, si se comparan las figuras 4b y 3b el ascenso de la temperatura de la GPU tiene un efecto sobre la temperatura de la CPU, aun cuando la utilización de esta no aumentaba, llegando a elevarla entre 10 y 15 grados cent́ıgrados. Ciertamente, el recurso menos utilizado por las operaciones de minado es la CPU que no llega tener una utilización regular mayor del 1% y algunos picos esporádicos apenas llegan al 5%. De las pruebas realizadas la única criptomoneda que parece estar utilizando ligeramente el poder computa- cional de la CPU es Ethereum. Por el contrario, la memoria del computador aunque no es utilizada por completo śı parece ser necesaria para realizar las operaciones de minado, como se puede ver en la figura 5a donde siempre que se empieza a minar se presenta un ligero incremento sobre el consumo en los cuatro escenarios. Por otro lado, los datos sobre consumo de potencia se muestran en la imagen 6 A diferencia de las otras métricas con las que solo se buscaba identificar la utilización de recursos durante el minado, la potencia es un factor de mayor 17 (a) Consumo de memoria (b) Consumo de memoria dedicada de la GPU Figure 5: Consumo de memoria durante minado Figure 6: Consumo de potencia importancia ya que afecta de forma directa la rentabilidad sobre el minado de criptomonedas. Ciertamente, los resultados que se muestran en la figura 6 nos llevan a concluir que el consumo parece ser bastante similar entre las diferentes criptomonedas. A excepción de Ergo donde la gráfica muestra fluctuaciones im- portantes durante el consumo, las operaciones de minado con esta GPU parecen 18 consumir entre 32 y 55 vatios adicionales. Con el fin de tener un análisis mas de- tallado se realizaron los siguientes cálculos sobre el consumo de potencia durante el minado para las diferentes criptomonedas (tabla 5). Promedio Desv. Estándar Mediana Ethereum 80.57W 2.88W 80.4W Ethereum Classic 73.18W 1.14W 73.8W Ravencoin 87.71W 1.09W 87.9 Ergo 76.69W 7.25W 73.6W Table 5: Datos sobre consumo de potencia durante minado Como era de esperarse la criptomoneda que tuvo un consumo más irregular fue Ergo aśı como la que tuvo un rango de consumo más amplio. Sin embargo, al comparar la mediana con el promedio podemos ver que solo hay una diferencia de menos de 3W entre ambas. En consecuencia el promedio es un buen estimativo para el consumo de potencia de la GPU para esta moneda. Por otro lado, el resto de criptomonedas parecen tener comportamientos mucho más estables, siendo Ravencoin la moneda de mayor consumo durante minado con un valor promedio de 87.71W. Finalmente, la última variable que se monitoreó durante el minado fue el hashrate alcanzado por la GPU. A diferencia de las otras métricas, esta hab́ıa que analizarla con un poco más de detalle. Generalmente, los programas de mineŕıa reportan el hashrate alcanzado por los componentes de hardware, sin embargo, este valor puede ser diferente al hashrate percibido por el fondo de mineŕıa. El hashrate percibido por el fondo se calcula en base al número de acciones válidas recibidas por un minero y la dificultad solicitada por el fondo durante una fracción de tiempo. Si se minara un tiempo suficiente, el hashrate percibido por el fondo y el reportado por el programa se debeŕıan igualar [1]. Sin embargo, para realizar un análisis más detallado, por medio de la API de los fondos de Bitify, se monitoreó el hashrate percibido además del hashrate reportado. A continuación en las imágenes 7 y 8 se pueden revisar los resultados de estas métricas. A primera vista, el hallazgo más importante sobre el hashrate fue que teńıa un valor de 0 al minar Ether (tanto el reportado por el programa como el de- tectado por el fondo). Técnicamente, la GPU utilizada no debeŕıa de poder minar esta criptomoneda ya que el tamaño del scratchpad (tabla 2) supera el tamaño de la memoria dedicada. Sin embargo, en LolMiner 1.21 fue habilitado un modo de minado conocido como ”modo zombie”. El modo zombie le permite minar Ether a GPUs con memorias dedicadas de menor tamaño al scratchpad a costa de una reducción en el hashrate. La forma de operar de este ”modo zombie” simplemente consiste en repartir el scratchpad entre la memoria dedi- cada y la memoria RAM del computador. Esto implica que debe de haber una comunicación constante a través del canal PCI-E por el cual está conectada la 19 (a) Hashrate Ethereum (b) Hashrate Ethereum Classic Figure 7: Hashrate sesiones de minado 1 (a) Hashrate Ravencoin (b) Hashrate Ergo Figure 8: Hashrate sesiones de minado 2 GPU y la latencia generada por esta comunicación es la razón de que se reduzca el hashrate [5]. Esto explica por qué el uso de la CPU y el incremento en la utilización de la memoria fue mayor al minar Ethereum. Lamentablemente para el caso de la Nvidia Quadro K2200 el poder computacional es tan reducido que, aunque que se logre correr el programa, el hashrate alcanzado es prácticamente nulo. Respecto a las otras criptomonedas, fue evidente cuan distintos pod́ıan lle- gar a ser el hashrate reportado por el programa con respecto al detectado por el fondo. Estas discrepancias ocurren justamente porque el minero no siempre encuentra las soluciones a la dificultad indicada por el fondo en el tiempo esper- ado. En caso de que se tarde más en encontrar las soluciones, recibirá menos acciones válidas y en consecuencia el hashrate reportado será inferior. Por otro lado, si tiene suerte y se tarda menos en encontrar las soluciones, recibirá más acciones válidas y en consecuencia reportará un hashrate superior al que indica el programa de mineŕıa. A partir de los datos obtenidos se sacaron las siguientes 20 estad́ısticas para cada criptomoneda acerca del hashrate reportado por el fondo y el reportado por el programa de mineŕıa. Promedio Minero (MH/s) Desv. Estándar Minero (MH/s) Promedio Fondo (MH/s) Desv. Estándar Fondo (MH/s) Ethereum N/A N/A N/A N/A Ethereum Classic 1.3700 0 2.3868 0.7098 Ravencoin 1.2500 0 1.0055 0.5136 Ergo 3.2000 0 2.5024 0.8008 Table 6: Estad́ısticas para Hashrates reportados Debido a las diferencias entre ambas mediciones el cálculo de rentabilidad se hará para ambas. Sin embargo, se reitera que para sesiones de minado su- ficientemente largas, el promedio de ambas métricas se debeŕıa igualar, razón por la cual seŕıa de más valor el análisis hecho con el hashrate reportado por el minero. Ahora, si las sesiones de minado no pueden ser tan largas, el análisis hecho con el hashrate reportado por algunas horas es un buen estimativo.4.4 Consumo regular de recursos y ajuste de resultados Aunque los datos sobre el consumo de potencia durante el minado permiten sacar un estimativo de la rentabilidad, es importante tener ciertas considera- ciones. La universidad, a diferencia de un individuo que desea empezar a minar desde cero, ya posee estos equipos y, además, ellos consumen potencia regular- mente tanto cuando hay una persona utilizándolos como cuando no. Es por ello que la universidad no necesariamente tiene que justificar el costo de los equipos y de su consumo en base a la rentabilidad del minado ya que son utilizados principalmente para realizar otras labores. A causa de esto, se debe realizar un ajuste al consumo de potencia detectado para descartar del consumo regular del equipo tanto para el caso cuando se encuentra en reposo como cuando hay un usuario usándolo. En la universidad, por disposición del departamento, los equipos cuando están en ”reposo” en realidad solo apagan la salida de v́ıdeo, no entran en estado suspendido, razón por la cual esa fue la configuración usada para realizar las mediciones de consumo regular en reposo. Por otro lado, para recrear una situación de uso regular se utilizó el equipo para realizar tareas de edición de documentos y se navegó en internet por un periodo de dos horas. Los resultados se pueden ver en la figura 9. A partir de esto fue posible calcular el consumo promedio de potencia del equipo tanto en periodos de reposo como en periodos de uso los cuales se mues- tran en la tabla 9. Teniendo esto en cuenta y asumiendo que tanto las variables sobre el con- sumo en estado estable como durante el minado siguen una distribución nor- 21 Figure 9: Consumo de potencia regular Promedio Desv. Estándar Mediana Uso 49.10W 8.10W 46.5W Reposo 38.25W 2.64W 37.7W Table 7: Datos sobre consumo de potencia durante minado mal, se calculó la diferencia entre ambos y el consumo real asociado al minado. También se asumió que el consumo de minado era independiente del consumo del computador por uso regular o reposo. 4.5 Calculo de rentabilidad Con base en el ajuste realizado se procedió a realizar el cálculo de rentabilidad. Este cálculo se hace con base en diferentes tipos de variables. Por un lado, están las variables externas como el poder computacional neto de la red de minado, el tiempo medio entre bloques, la recompensa por bloque minado, la comisión tomada por el fondo de mineŕıa y el precio de la criptomoneda minada. Por otro lado, las variables especificas sobre el componente de minado son su poder computacional, el consumo de potencia medio y el precio de la potencia del lugar de minado. Con base en estas variables se puede calcular la rentabilidad 22 Promedio Desv. Estándar Promedio (Uso) Desv. Estándar (Uso) Promedio (Reposo) Desv. Estándar (Reposo) Ethereum 80.57W 2.88W 31.47W 8.60W 42.32W 3.91W Ethereum Classic 73.18W 1.14W 24.08W 8.17W 34.83W 2.88W Ravencoin 87.71W 1.09W 38.61W 8.17W 49.36W 2.86W Ergo 76.69W 7.25W 27.59W 10.87W 38.34W 7.72W Table 8: Datos sobre consumo de potencia durante minado con ajuste asociada a un periodo h (en horas) de minado de la siguiente forma. R(h) = HRm HRm +HRn ∗ 60 2 ∗ h TP ∗RB ∗ (1−PF ) ∗PC −h ∗CP ∗CE−CI (1) HRm ∼ Hashrate mineŕıa (Hash/s) HRn ∼ Hashrate neto (Hash/s) TP ∼ Tiempo promedio por bloque (segundos) RB ∼ Recompensa por bloque (criptomoneda) PF ∼ Comisión fondo mineŕıa (%) PC ∼ Precio criptomoneda (USD) CP ∼ Consumo de potencia (kW) CE ∼ Costo de enerǵıa (USD/kW) CI ∼ Costo de inicial (USD) Generalmente, es importante tener en cuenta el costo inicial porque permite saber cuál es el tiempo esperado para recuperar la inversión en caso que se compren los equipos exclusivamente para minar. Sin embargo, para el caso de la universidad estos equipos se compran con propósitos académicos y no de minado, en consecuencia este valor se asume como 0. Para realizar los cálculos se asumieron constantes los siguientes valores en las tablas 9 y 10. Finalmente, con base en los datos recopilados sobre consumo de potencia y poder computacional (hashrate) del equipo de pruebas se construyó la tabla 11 de rentabilidad para un periodo de minado de 24 horas. El análisis de rentabilidad confirmó lo esperado. Solo bajo 4 escenarios de los 18 analizados (3 criptomonedas, 3 formas de consumo de potencia y 2 hashrates posibles) seŕıa rentable minar criptomonedas para la universidad. Ahora, es importante tomar esta afirmación con cautela. De los 4 escenarios, 2 de ellos fueron rentables usando el hashrate medido por el fondo para Ethereum Classic. Ethereum Classic tuvo un hashrate medido por el fondo mayor al reportado por el programa, esto implica que a la hora de correr las pruebas tuvo suerte y pudo generar un número mayor de soluciones al esperado. Por lo tanto, si se llegara a correr por un tiempo prolongado de minado seguramente habŕıan perdidas como ocurre para el caso del otro hashrate. Además, los 4 escenarios se dieron 23 Ravencoin Ethereum Clas- sic Ergo Hashrate Neto (TH/s) 7.8221 25.0739 17.1779 Tiempo prome- dio por bloque (seg) 58.1392 13.0745 120.1668 Recompensa por bloque 5000 3.2 67.5000 Precio crip- tomoneda (USD) 0.1092 48.7910 7.0300 Table 9: Variables externas especificas criptomonedas Comisión fondo mineŕıa 1% Costo de enerǵıa 0.10973 USD (405.28 COP ∼ 3693.36 TDP 2020) Table 10: Variables constantes únicamente cuando se descontó el consumo asociado al uso o reposo de los equipos. En ningún escenario que se usó el consumo base habŕıa ganancias. Por ende, con minar en alguno de estos escenarios la universidad no estaŕıa del todo ganando dinero sino mas bien cubriendo parte del consumo de la potencia que ya se pierde por tener los equipos prendidos de forma constante. A esto hay que sumarle el hecho que los 3 escenarios que generan ganancias cuando los equipos están en uso solo aplicaŕıan bajo la condición de que el usuario usando los equipos no estuviera utilizando la GPU dedicada y esta fuera utilizada solo para las operaciones de minado. Aun sin tener en cuenta todas estas consideraciones las ganancias seŕıan muy bajas. En el mejor caso, por 24 horas de minado solo se ganaŕıan 3.38 centavos de dólar. En el caso hipotético que se minara por 365 d́ıas de forma continua y las otras variables continuaran constantes, solo se ganaŕıan poco mas de 12 dólares por equipo. Esta cifra no justifica el minado de las criptomonedas y todo lo que conlleva: la degradación acelerada del equipo, aumento en el consumo de potencia, aumento de la temperatura en las salas de computo, contaminación ambiental por el consumo de potencia, etc. 5 Conclusiones Para finalizar, los resultados del proyecto mostraron claramente que desde una perspectiva exclusivamente económica no seŕıa rentable para la universidad usar sus equipos para minar criptomonedas. En primer lugar, la mayor parte de los equipos de la salas de cómputo no son viables para el minado de criptomonedas, 24 Criptomoneda Consumo Po- tencia Hashrate (Minero) Hashrate (Fondo) Ravencoin Base -0.1026 -0.1277 Uso 0.0267 0.0016 Reposo -0.0016 -0.0267 Ethereum Classic Base -0.1369 -0.0954 Uso -0.0076 0.0338 Reposo -0.0359 0.0055 Ergo Base -0.1390 -0.1528 Uso -0.0097 -0.0235 Reposo -0.0380 -0.0518 Table 11: Rentabilidad calculada a 24 horas de minado (USD) ya sea porque no poseen los componentes necesarios para minar o porque los componentes no cumplen con los requisitos técnicos. En segundo lugar, los pocos equipos que llegaŕıan a ser capaces de minar criptomonedas son muy antiguos y su capacidad computacional es limitada. Además, al momento de minar criptomonedas, en la mayoŕıa de escenarios, se perdeŕıa más dinero del que se ganaŕıa debido al consumo energético. Finalmente, en los pocos esce- narios que śı seŕıa rentable minar, bajo algunos supuestos, las ganancias seŕıan demasiado bajas como para asumir los costos a largo plazo ocasionados por el uso constante de los equipos.La única manera en que para la universidad seŕıa rentable minar criptomonedas, seŕıa si se invirtiera en equipos capaces de llevar acabo estas labores. Posiblemente se tendŕıan que comprar GPUs de un alto poder computacional y con suficiente memoria dedicada como para soportar operaciones de minado a largo plazo. También hay que tener en cuenta otras perspectivas a la hora de justificar una compra de equipos para minado de criptomonedas. Por un lado, está el hecho de que el sobre uso puede desgastar los componentes computacionales y reducir el tiempo de vida esperado de los equipos. Especialmente, cuando los equipos son sujetos a operaciones prolongadas a altas temperaturas, cosa que ocurre para operaciones de minado. Por otro lado, están las razones medio ambientales. No solo el minado de criptomonedas fomenta el consumo excesivo de enerǵıa, el cual dependiendo del origen puede implicar la quema de combustibles fósiles, sino también tiene un efecto sobre factores de convivencia. Tener equipos minando en salas de computadores de la universidad afecta el ambiente de las salas pues aumenta la disipación de calor y la contaminación auditiva, lo cual puede llevar a un detrimento en las condiciones de trabajo. Por último, es importante recalcar que el mercado de criptomonedas está buscando alternativas a los protocolos basados en prueba de esfuerzo para reducir las afectaciones medioambientales. Por ejemplo, este es el caso de Ethereum donde la plataforma está migrando a un algoritmo de consenso basado en prueba de participación con el fin de reducir el gasto energético y los requer- imientos computacionales, entre otros [19]. Para la universidad entrar a invertir 25 en la infraestructura necesaria para llevar a cabo tareas de minado tradicional cuando las tendencias recientes buscan alternativas a este esquema, podŕıa hacer que se incurrieran en perdidas económicas y en una sub-utilización de recursos aun mayor. References [1] Current vs reported hashrate · issue 1008 · ethereum-mining/ethminer. URL: https://github.com/ethereum-mining/ethminer/issues/1008. [2] Eligiendo un pool para participar en la mineria de bitcoins. — by marvin g. soto — medium. URL: https://marvin-soto.medium.com/ eligiendo-un-pool-para-participar-en-la-mineria-de-bitcoins-510766b2daf0. [3] Gpu passthrough guide for ubuntu 20.04 - youtube. https://www.youtube.com/watch?v=tDMoEvf8Q18&t=1s. [4] Home - ethermine - ethereum (eth) mining pool. https://ethermine.org/. [5] How does zombie mode work? : Ethermining. URL: https://www.reddit. com/r/EtherMining/comments/las51e/how_does_zombie_mode_work/. [6] Is my hardware supported. https://www.nicehash.com/support/mining- help/general-help/is-my-hardware-supported. [7] Minerstat. https://minerstat.com/. [8] Mineŕıa de bitcoin: Fpga, asic, cpu, gpu y pools — by marvin g. soto — medium. URL: https://marvin-soto.medium.com/miner\%C3\ %ADa-de-bitcoin-fpga-asic-cpu-gpu-y-pools-1fa2bf5085dd. [9] Releases · develsoftware/gminerrelease. https://github.com/develsoftware/GMinerRelease/releases. [10] Releases · lolliedieb/lolminer-releases. https://github.com/Lolliedieb/lolMiner- releases/releases. [11] T-rex is a simple in use and highly optimized mining software. https://trex- miner.com/. [12] Gregorio Ospina Arango. Propuesta para el aprovechamiento de los recursos computacionales en la sala alan turing. 2021. URL: http://hdl.handle. net/1992/53010. [13] Avast. Avast threat labs - cryptomining behavior guidelines — avast. https://support.avast.com/en-eu/article/Threat-Lab-cryptomining- behavior-guideline/. [14] Shehar Bano, Alberto Sonnino, Mustafa Al-Bassam, Sarah Azouvi, Patrick McCorry, Sarah Meiklejohn, and George Danezis. Consensus in the age of blockchains. 11 2017. URL: http://arxiv.org/abs/1711.03936. 26 [15] Bitfly. GENERAL TERMS OF OPERATION, 2021. URL: https: //bitfly.at/GTO_v1.6.pdf. [16] Joseph Bonneau, Andrew Miller, Jeremy Clark, Arvind Narayanan, Joshua A. Kroll, and Edward W. Felten. Sok: Research perspectives and challenges for bitcoin and cryptocurrencies. volume 2015-July, pages 104–121. Institute of Electrical and Electronics Engineers Inc., 7 2015. https://doi.org/10.1109/SP.2015.14 doi:10.1109/SP.2015.14. [17] Emporia. Emporia smart plug spec sheet. URL: https: //uploads-ssl.webflow.com/5fff2b7694451e66ba2f5a3d/ 615cbc47de12bb99cf99da22_Smart20Plug20Technical20Specs.pdf. [18] Emporia. How the emporia smart plug works. https://www.emporiaenergy.com/emporia-smart-plug. [19] Ethereum. Proof-of-stake (pos) — ethereum.org. https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/. [20] Zonghao Feng and Qiong Luo. Evaluating memory-hard proof-of-work algo- rithms on three processors. volume 13, pages 898–911. VLDB Endowment, 2020. https://doi.org/10.14778/3380750.3380759 doi:10.14778/3380750. 3380759. [21] Coin Guides. Mining software getting blocked and removed by anti-virus. https://coinguides.org/miner-detected-virus/. [22] Runchao Han, Nikos Foutris, and Christos Kotselidis. Demystifying crypto-mining: Analysis and optimizations of memory-hard pow algo- rithms. pages 22–33. Institute of Electrical and Electronics Engineers Inc., 4 2019. https://doi.org/10.1109/ISPASS.2019.00011 doi:10.1109/ISPASS. 2019.00011. [23] Intel. Cpu vs gpu: ¿cuál es la diferencia? https://www.intel.la/content/www/xl/es/products/docs/processors/cpu- vs-gpu.html. [24] Intel. What is a gpu? graphics processing units defined. https://www.intel.la/content/www/xl/es/products/docs/processors/what- is-a-gpu.html. [25] Jan Lansky. Possible state approaches to cryptocurrencies. Journal of Systems Integration, 9:19–31, 1 2018. https://doi.org/10.20470/jsi.v9i1.335 doi:10.20470/jsi.v9i1.335. [26] McAfee. Why coin miners go bad & how to protect your tech when they do — mcafee blogs. https://www.mcafee.com/blogs/internet-security/why- coin-miners-go-bad-how-to-protect-your-tech-when-they-do/. 27 [27] MinerStat. Calendario y calculadora del tamaño de dag — minerstat. https://minerstat.com/dag-size-calculator?lang=es. [28] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system, 2008. URL: www.bitcoin.org. [29] Matteo Romiti, Aljosha Judmayer, Alexei Zamyatin, and Bernhard Hasl- hofer. A deep dive into bitcoin mining pools: An empirical analysis of mining shares. 5 2019. URL: https://arxiv.org/abs/1905.05999v1. [30] Arthur Alejandro Oviedo Urazmetov. Unacloud msa - plataforma basada en unacloud para la generación y análisis de alineamientos múltiples de secuencias. instname:Universidad de los Andes, 2011. URL: http://hdl. handle.net/1992/14748. 28
Compartir