Selfish Mining consiste en retener bloques válidos y elegir cuándo publicarlos. Busca obtener una proporción de bloques aceptados superior a la proporción de potencia de cómputo del minero. No permite crear bitcoins fuera de las reglas ni garantiza beneficios: también cuentan las conexiones, los demás mineros y los costes.
Pedro dirige un Mining Pool: un grupo de mineros que reúne potencia y comparte recompensas. Un bloque agrupa transacciones en un lote que se añade al historial compartido. Los mineros del pool de Pedro encuentran un bloque válido. Normalmente lo anunciarían para que otros pudieran continuar sobre él. Esta vez lo guardan y buscan su sucesor. Ana y los demás siguen trabajando sobre el antiguo bloque común. Ignoran que Pedro conoce otra forma de prolongar la historia. Así nace una rama privada, no una nueva moneda. [1] [2]
Pedro puede encontrar el siguiente bloque, pero Ana también puede adelantarse. Las máquinas mineras repiten cálculos con datos del bloque modificados hasta encontrar un resultado numérico que cumpla el límite exigido. La minería no es una carrera regular donde la máquina más rápida siempre llega primero: cada hallazgo es aleatorio. La estrategia responde a ambas ramas, manteniendo el secreto, publicando bloques o abandonando la propia. Hashrate es la velocidad de los intentos de cálculo. Una mayor proporción aumenta la probabilidad de encontrar un bloque, sin garantizar el siguiente. [1] [4]
Supongamos que Pedro oculta un bloque y Ana publica otro sobre el mismo predecesor. Pedro revela el suyo y se produce un empate. Los mineros pueden enterarse primero de bloques distintos y ampliar ramas diferentes. El desenlace depende de los siguientes hallazgos y de cómo se propagan los mensajes. Cuenta el trabajo acumulado en una rama válida, no cuánta gente la apoya; con igual dificultad, más bloques representan más trabajo. La dificultad expresa cuánto cuesta encontrar ese resultado de media. Una dificultad mayor exige más intentos en promedio, no un tiempo fijo por bloque. [1] [3] [4]
Si termina imponiéndose la rama de Pedro, el bloque rival de Ana puede quedar fuera de la historia aceptada como Stale Block. Era válido, pero su recompensa no puede gastarse en la cadena aceptada. Pedro busca que se desperdicie una proporción mayor del trabajo ajeno que del propio. Las transacciones del bloque abandonado no necesariamente desaparecen: si siguen siendo válidas y compatibles con la historia aceptada, pueden incluirse después. [1] [4]
Ittay Eyal y Emin Gün Sirer describieron la estrategia conocida en un artículo de 2013. Comparaban la proporción de bloques aceptados de un minero con su proporción de potencia. Eso no equivale a lo ganado por hora tras pagar la electricidad. Retener bloques puede frenar la cadena pública, y el ajuste posterior de dificultad cambia la economía. Cyril Grunspan y Ricardo Pérez-Marco destacaron después el tiempo y ese ajuste. Un mayor porcentaje de recompensas no promete beneficio neto inmediato. [1] [7]
En el modelo original, α representa la proporción de potencia del atacante. γ es la parte de la potencia de los demás que se suma a su rama durante un empate. Con γ = 0, el umbral de ventaja relativa está en 1/3; con γ = 1/2, en 1/4. La ventaja aparece por encima del umbral correspondiente dentro del modelo. No son fronteras universales de seguridad de la red real. Otras estrategias, retrasos y supuestos cambian el resultado: importan tanto la potencia como la rama que continúan los demás. [1] [6]
Un bloque que llega deprisa tiene más posibilidades de atraer mineros en un empate. La ventaja de red puede complementar la potencia de cálculo. Si un grupo ofreciera rendimientos mejores de forma sostenida, podría atraer a más mineros y aumentar la concentración. Es un incentivo posible, no una prueba de que todo pool grande ataque ni de que los demás vayan a unirse. Un parámetro teórico tampoco es una medición de un operador concreto. [1] [6] [8]
Ana puede adelantarse antes de que el plan de Pedro funcione. Entonces Pedro se queda sin recompensa aunque haya consumido energía y usado sus máquinas. Un umbral calculado para un promedio a largo plazo no promete ganar cada ronda. Unos pocos éxitos tampoco prueban rentabilidad una vez considerados costes y cambios de condiciones. El bloque retenido es una oportunidad arriesgada, no una recompensa guardada a salvo en un cajón. [1] [7]
Un Full Node, un programa que verifica por sí mismo las reglas de Bitcoin, sigue rechazando transacciones inválidas y creación de monedas no autorizada. Pedro debe aportar Proof of Work real, demostrar el trabajo de cálculo exigido y cumplir las mismas reglas que Ana. Compite por imponer una historia válida. No obtiene las claves privadas ajenas, los valores numéricos secretos utilizados para firmar transacciones, ni permiso para gastar las monedas de otras personas. Ganar ventaja minera no equivale a romper las reglas de propiedad. [2] [5]
Una difusión más rápida, por ejemplo mediante Compact Blocks, que aprovechan transacciones ya conocidas para transmitir un bloque con menos datos, reduce retrasos y ciertas desigualdades de red. No elimina Selfish Mining. También se investigan los empates y los incentivos económicos. Un bloque descartado no demuestra un ataque: dos grupos honestos pueden encontrar bloques casi a la vez. Hace falta más contexto para valorar sospechas. La cuestión es si las reglas premian compartir pronto o si, en esas condiciones, conviene ocultar información. [6] [8] [9]
Para obtener la imagen más completa, lee esta entrada junto con Block Propagation, Compact Blocks, Nakamoto Consensus, Sybil Attack, Bitcoin, Minería. También enlazan con esta entrada Byzantine Generals Problem, Sybil Attack, Block Propagation, Block Withholding Attack.