Sobre la reducción de la variación de la recompensa de bloque de RSK
Por Sergio Demián Lerner, Director Científico de RSK
La seguridad de Bitcoin depende de los incentivos económicos que existan para que los mineros amplíen la cadena con la mayor dificultad acumulada (por lo general, la más extensa). En la actualidad, dichos incentivos los brinda la recompensa de bloque, que consiste en el subsidio del bloque y las tarifas por transacción. Sin embargo, el subsidio (12,5 BTC) es considerablemente superior a las tarifas promedio por transacción por bloque (0,4 BTC). El subsidio de Bitcoin se reduce a la mitad cada cuatro años y, sin una apreciación inversa del precio del BTC, el incentivo dependería solo de las tarifas por transacción. Para mantener el nivel de seguridad actual, el costo por transacción debería multiplicarse por treinta. ¿Será este un problema para Bitcoin? ¿La seguridad de Bitcoin puede depender solo de las tarifas por transacción? ¿Bitcoin necesitará bifurcaciones suaves o duras para adaptarse a esta nueva era? Mostré cómo Bitcoin podía volverse inestable en 2014 cuando presenté el Ataque FRONTAL. Carlsten et al. (2016) analizaron este problema en profundidad, pero no pudieron encontrar una solución satisfactoria. No solo Bitcoin tiene este problema, sino que deberán enfrentarlo todas las criptomonedas cuya emisión monetaria se reduzca con el tiempo.
No obstante, por el momento, Bitcoin no tiene de qué preocuparse. El problema se presentará en diez o veinte años, o incluso más tarde. Hace poco, se lo ha vuelvo a estudiar, mediante análisis que, o bien destacan su gravedad, o bien le restan importancia.
Recompensas de bloque de RSK
Desde sus inicios, RSK tuvo que enfrentar el desafío de vivir solo con las tarifas por transacción; por lo tanto, tuvo que estar preparada para tarifas anormalmente altas. Fue la primera cadena lateral lista para la producción y, para lograr consenso, recurre a la minería combinada. Sus mineros esperan recibir una compensación económica por ejecutar un nodo completo de RSK y por revisar los cambios cuando necesitan actualizar sus nodos.
Si bien algunos otros libros mayores distribuidos, como Ripple, no emiten monedas para pagarles a los productores de bloques, las organizaciones que los respaldan han preminado las monedas suficientes para convertirse ellas mismas en productoras de bloques o para proporcionar una compensación a terceros productores mediante canales alternativos. RSK, por su parte, enfrenta las condiciones más exigentes: no emite ni premina moneda. RSK representa un banco de prueba para nuevas tecnologías que se utilizarán en el futuro en otras blockchains y apunta a convertirse en un ejemplo de cómo puede ser sostenible una blockchain sin subsidio. Una de esas nuevas tecnologías es la reducción de la variación de la recompensa de bloque (también llamada reducción de la variación de las tarifas), que RSK aplicó desde su lanzamiento en 2016.
Adam Back, director ejecutivo de Blockstream, mencionó hace poco la reducción de la variación al hablar sobre el presupuesto de seguridad a largo plazo de Bitcoin: “Entre otras ideas de la era de los bajos subsidios a largo plazo, figura promediar las tarifas en todos los intervalos de bloques para reducir la variación de los ingresos por tarifas”.
https://twitter.com/adam3us/status/1097031151921713152
Estudiemos con mayor detalle la reducción de la variación de las tarifas para comprender por qué es necesaria. La reducción de la variación de las tarifas es una norma de consenso que distribuye las tarifas de minado entre los mineros de una manera más igualitaria al pagar a cada minero una función de las recompensas de bloque pasadas. La función puede ser lineal o no lineal y, en general, se trata de algún tipo de filtro de paso bajo que se aplica a las tarifas acumuladas. RSK emplea una función de reducción de variación muy simple: un filtro de respuesta infinita de impulsos (IIR, por sus siglas en inglés) en el que α = 0,1. Si un minero resuelve un bloque a la altura N, se lo compensará con el 10% de las tarifas por transacción del bloque y el 10% de todas las tarifas de minero no pagadas que se hayan acumulado con anterioridad. En otras palabras, existe una cuenta “compartida” en la cual cada minero aporta las tarifas por transacción y se lleva el 10 % para sí.
Existen varias razones por las que el diseño de RSK incluye la reducción de la variación de la recompensa. En primer lugar, les da a los mineros más flexibilidad para establecer límites personales de combustible por bloque, lo que evita demoras en la producción de bloque sin sufrir grandes penalizaciones en las recompensas de bloque. En segundo lugar, la reducción de variación de tarifas es necesaria porque el incentivo para ampliar la blockchain debe ser superior al incentivo para reminar un bloque pasado para recibir sus tarifas pagas. Supongamos que una transacción T en un bloque a una altura N paga tarifas de 100 monedas, pero que la recompensa promedio de bloque es de solo 10 monedas. De este modo, la mejor estrategia para cada minero es tomar la transacción T e intentar minar un bloque a la misma altura N (una recompensa de 100 monedas frente a una de 10) y, luego, seguir minando los bloques secundarios de su cadena egoísta hasta que alcance la extensión suficiente para que los mineros restantes (que también optarán por hacer lo mismo) se den por vencidos. La transacción con tarifa elevada atomiza la minería en beneficio del conjunto más amplio de transacciones, que tiene mayores posibilidades de minar T más el número suficiente de bloques de confirmación. Resulta curioso que, cuanto más descentralizada es la red de minería, mayor es la alteración que provocan esas transacciones. Por ejemplo, si, en una blockchain con un intervalo de bloque promedio de 10 minutos, 100 mineros tuvieran cada uno un 1 % de la tasa total de hash, la red se haría 100 veces más lenta en varios bloques hasta que pueda converger. ¡La red no podría usarse durante dos días! Y, después de ese período, la blockchain también es inestable: para los comerciantes que esperan una única confirmación de bloque para un pago, existen más probabilidades de que dicho pago les sea revertido.
El ataque de atomización de mineros
La transmisión de una transacción con tarifas muy elevadas puede considerarse un intento de llevar a cabo un ataque de denegación de servicios. Un minero inexperto puede considerar tales transacciones un soborno para revertir la blockchain, pero, en realidad, se trata de una carnada para atomizar el minado. Si bien existen otras medidas de protección complementarias, la reducción de la variación de la recompensa es la principal protección de las redes de una criptomoneda contra ese tipo de ataques. Volvamos al ejemplo anterior: un soborno de 100 monedas frente a la recompensa promedio de bloque de 10 monedas. En RSK, el bloque a la altura N pagaría una recompensa de 19 monedas, mientras que el bloque siguiente pagaría 18,1 monedas. El minero egoísta necesita ahora diez veces más poder de hashing que cualquier otro minero para que el ataque sea redituable.
Hay dos medidas de protección complementarias que pueden aplicarse. RSK utiliza la primera: un protocolo de consenso de recompensa compartida llamado DECOR. DECOR divide las recompensas de bloque de manera pareja entre los bloques del mismo nivel (si hay más de uno). Esto reduce el incentivo para llevar a cabo ataques de atomización porque los mineros saben que puede pagárseles apenas una onceava parte de la recompensa de bloque si todos minan el mismo bloque, ya que la blockchain puede referir hasta diez bloques del mismo nivel. Eso significa que, para alterar la red de RSK, el soborno debe ser 110 veces superior a la recompensa promedio de bloque.
La segunda medida de protección complementaria, que en la actualidad RSK no utiliza, consiste en limitar el precio de combustible por transacción a un múltiplo del precio mínimo de combustible (por ejemplo, 10 veces este precio). Propuse una medida similar para Bitcoin en 2013. RSK podría hacer esto con facilidad, dado que cada bloque anuncia el precio mínimo de combustible por transacción aceptado. No obstante, establecer un precio máximo de combustible no resuelve el problema por completo si la red se encuentra en un estado en el cual los bloques no consumen todo el combustible por bloque. La tarifa elevada de T puede ser el resultado de un consumo superior de combustible y no de un precio superior de este.
Soborno de mineros
La reducción de la variación de la recompensa no es la solución final, ya que los atacantes pueden usar una plataforma de smart contract para sobornar mineros y conseguir que hagan casi cualquier cosa. En 2014, expuse una teórica “opción eterna para el ataque del lado oscuro” (ECDSA, por sus siglas en inglés) como un modo de mostrar de qué manera podía sobornarse a los mineros para que no se comporten con honestidad. McCorry et al. (2018) presentó una amplia gama de ataques teóricos de soborno. No obstante, el nivel de comprensión y preparación necesario para recibir sobornos basados en smart contract es considerable, ya que hace falta programar el control de los sobornos y sus respuestas. Eso hace que sea mucho más difícil perpetrar ataques de soborno basados en smart contract, dado que el minero debe estar al tanto del contrato de soborno y comprender cómo interactuar con este. No obstante, es inevitable: si la plataforma puede pagarle a un minero, también puede ejecutar un smart contract que le pague al mismo minero. Eso se debe a que tanto el lenguaje de programación en el que se programó el consenso como el que utilizan los smart contracts son “Turing completos”. No se puede evitar el pago de alguien dispuesto a pagarle a un tercero que, a su vez, está dispuesta a recibir dicho pago. ¡No basta con limitar las capacidades de lenguaje en determinada plataforma, ya que puede utilizarse cualquier plataforma de smart contract Turing completa para pagarles sobornos a mineros de otra blockchain! Por ejemplo, RSK y Ethereum pueden usarse para pagar sobornos a mineros de Bitcoin. Desde luego, en ese caso, la coordinación es todavía más difícil.
La solución a largo plazo es asegurarse de que todos los mineros conozcan la teoría lúdica sobre la cual se sostienen los ataques de atomización para así desalentarlos: si todos reminan un bloque y van tras la carnada, todos pierden. Si unos pocos mineros van por la carnada, pero la mayoría mantiene un comportamiento honesto, la minoría malintencionada perderá. Para reducir las posibilidades de que una mayoría honesta se convierta en una minoría, en RSK, podemos aplicar un contrato de reducción de la variación de la recompensa que se asemeje al mismo IIR que utilizamos para el RBTC, pero para cualquier token, y enseñarles a los mineros cómo devolver cualquier soborno recibido a ese contrato, de manera que compartir el soborno se convierta en el punto focal.
Resumen
Se sabe que ciertas blockchains tienen un problema potencial de inestabilidad de red que se debe a que una transacción pague tarifas anormalmente altas. Este problema es de especial relevancia en las cadenas laterales de Bitcoin, como RSK. RSK utiliza, como medida de protección contra dicho problema, la reducción de la variación de la recompensa de bloque. Esto también ofrece otras ventajas, como incentivar la cooperación por sobre la competencia en la minería. Si bien esta protección funciona para las tarifas explícitas, el caso general de los sobornos pagados mediante smart contracts requiere control activo de red y análisis en mayor profundidad.