Seguridad Bitcoin IV – 51% y el minero tramposo

Seguridad Bitcoin IV – 51% y el minero tramposo

 

Por Jose Felip Daras

La seguridad no depende solo de nosotros mismos, si no del conjunto de la red de Bitcoin. Los nodos y sobretodo, los mineros, son una pieza fundamental en la seguridad de la red Bitcoin.

Los mineros son los encargados de calcular y verificar cada bloque, para añadirlo a la cadena de bloques (blockchain). Para ello, se usan unas reglas básicas pero a su vez complejas, como el factor de dificultad, basado en la capacidad de cálculo que tiene toda la red de bitcoin (medido en Hash, MegaHash, GigaHash, TeraHash o PetaHash).

Un minero puede ser cualquier dispositivo que pueda realizar una serie de cálculos específicos, que verifiquen un bloque y pueda distribuirlo por la red a los otros nodos para que contrasten sus cálculos y acepten su bloque como “el siguiente” en la cadena de bloques. Para ello tiene que tener la suficiente potencia de cálculo para resolver el algoritmo de verificación de bloques en un intervalo inferior a 10 minutos aproximadamente, por ello, y en base al factor de dificultad, los cálculos son más complejos a mayor dificultad, por lo que a mayor dificultad mayores cálculos se necesitan y más potente debe de ser el dispositivo que actué como minero.

¿A dónde queremos llegar con todo esto?

Queremos saber si uno o varios dispositivos, pueden conseguir la suficiente potencia de cálculo de la red Bitcoin y, con ello, controlar la red y su protocolo actuando como mineros, y la respuesta es “casi SI”.

Si esto se produjese, los mineros con dicho potencial podrían generar, modificar o cambiar las reglas del juego, parte del protocolo, como las comisiones, el valor de premio de minado, o incluso aceptar y rechazar transacciones que quisieran (a esto se le llama “fork”)

Este tipo actuación es conocido como el ataque del 51%, que se basa en centralizar más del 50% de la potencia de cálculo y minado en uno o varios dispositivos controlados.

En este último artículo de seguridad, lo orientaremos más a profesionales, empresas o personas que necesitan una rápida gestión de transacciones, y por ello, su verificación y su seguridad.

Un modo de incrementar la velocidad y la seguridad en las transacciones de la red bitcoin es siendo un nodo de la red. A su vez, si se es propietario y controla varios nodos de la red, es más rápido realizar confirmaciones sobre estos nodos. (En el archivo bitcoin.conf se pueden añadir las direcciones IP de los nodos en los cuales se confíe y controle).

 

bitcoin-conf

El 14 de Junio de 2014, el pool minero Ghash.io, llego a poseer el 51% de potencia de minado de toda la red bitcoin. Un mes después, se firmó un acuerdo de no sobrepasar el 39,99% de la potencia de minado total de la red en el propio pool, obligando a mineros y a la propia empresa, a migrar a otros pools para no superar ese límite.

Pero supongamos, que estos nodos de confianza, los cuales controlamos, sobrepasan el 51% del potencial de cálculo de toda la red, ¿podríamos por ejemplo realizar un doble gasto? ¿Podríamos cancelar transacciones o modificarlas? La respuesta es SI, ¿y qué ocurría entonces?:

  1. Tranquilo, sus bitcoin no se perderían, ni se gastarían, seguirían existiendo en las dos redes.
  2.  En el momento que esto sucediese, el resto de la red se daría cuenta, incluso siendo minoría, y seguiría minando (creando bloques verificados) con su propia cadena de bloques.
  3. Los bitcoins y transacciones comprometidas, siendo mayoría en cálculo de la red, se registrarían, pero en otra cadena de bloques diferente.

Por lo que durante un cierto tiempo existirían dos cadenas de bloques válidas (forks), hasta que la magia de la red bitcoin entrara en acción: se activaría una alerta de red en todos los nodos bitcoin.

 

errors-bitcoin

Podemos ver las alertas mediante un simple comando (getinfo, línea de “errors”), o desde la red: https://bitcoin.org/en/alerts

El 4 de Julio de 2015 ocurrió un problema, el cual, además de solucionarse de manera limpia y rápida, fortaleció y demostró la robustez de la red y el protocolo Bitcoin.

Si quiere ver los detalles puede consultarlo en: https://bitcoin.org/en/alert/2015-07-04-spv-mining

Si quiere ver los detalles de la función “alert” puede consultarlo en: https://en.bitcoin.it/wiki/Alert_system

Incluso puede consultar un artículo del año 2012 de Gavin A. de “como neutralizar un ataque del 51%” en: http://gavintech.blogspot.com.es/2012/05/neutralizing-51-attack.html

¿Y cómo afecta todo esto a la seguridad de mi dirección bitcoin y de mi cartera?

En la confianza de la red: podemos aprovechar características de la red bitcoin, de su protocolo o del software asociado, podemos conectarnos a nodos inicialmente confiables que se pueden volver en nuestra contra, o tener nuestra propia red de nodos, pero si somos comprometidos o se pierde la confianza, nuestra propia seguridad se verá afectada.

Para acelerar las confirmaciones podemos poseer un número elevado de nodos bajo nuestro control, hasta que seamos comprometidos.

Para ejecutar determinadas funciones de manera más eficiente o específica, podemos modificar el software que interactúa con la toda la red, o incluso podemos hacer un fork bajo nuestro interés propio, hasta que la red deje de confiar en nosotros.

Por ello, se deben de cumplir y acatar las normas de la red, por eso fue diseñada de esa manera, y si se modifica debe ser con consenso de una gran mayoría de nodos, no solo por nosotros.

Sientete libre de compartir

No se admiten más comentarios