Es el primer ataque o bien hackeo conocido al Bitcoin y descubierto por quien fue la primera persona en percibir una transacción bitcoin, Hal Finney. El hackeo o bien ataque Finney como fue nombrado en su honor, es un tipo muy singular de ataque de doble gasto que afecta a Bitcoin y cualquier criptomoneda derivada del mismo.

El primer receptor de una transacción Bitcoin fue Hal Finney y fue quien charló por vez primera del lanzamiento de Bitcoin. Asimismo fue el primero en sugerir la posibilidad de un ataque de doble gasto en Bitcoin. Por tal razón, este ataque fue nombrado como Hackeo Finney o bien Ataque Finney en su honor.

El hackeo o bien ataque Finney es un género de hackeo o bien ataque de doble gasto que puede suceder en el momento en que una persona admite una transacción no confirmada en la red. Finney explicó que un minero puede producir un bloque donde incluirá una transacción desde una dirección A cara otra dirección B, donde las dos direcciones le pertenecen. Entonces, efectuará otro pago con exactamente las mismas monedas, mandando desde la dirección A cara una dirección C (la que le pertenezca a otro usuario). Si dicho usuario admite la transacción sin  confirmaciones de la red, el atacante puede liberar el bloque donde está incluida su transacción inicial. Esto inutiliza la transacción efectuada al mercader permitiéndole al atacante efectuar el doble gasto.

Hal Finney el creador del ataque Finney al lado de su esposa

¿De qué forma se ejecuta un hackeo o bien ataque Finney?

Realizar este género de ataque de doble gasto no es una labor simple. Más bien al revés, es realmente difícil de ejecutar por el hecho de que implica que el atacante es un minero capaz de extraer el bloque donde se validará su transacción. Además de esto, precisa que un mercader admita una transacción con cero confirmaciones por parte la red. Unir estas 2 condiciones es difícil.  Sin embargo, teóricamente es posible realizarlo todavía cuando se tenga menos del 51 por ciento del poder de hash de la red. Veamos de qué forma se ejecuta este ataque en tres pasos:

Primer paso

El atacante efectúa una transacción en la que manda sus monedas a una dirección bajo su control. Efectuada esta acción, empieza a minar un bloque válido en el que está incluida dicha transacción.

Segundo paso

Cuando consigue extraer el bloque y también incluir la transacción, no lo transmite a la red. En su sitio, efectúa una adquiere con exactamente la misma cantidad de monedas que empleo en la primera transacción. De esta forma, busca efectuar el pago de algún bien o bien servicio con exactamente la misma cantidad de dinero.

Tercer paso

Luego de efectuarle la transacción al mercader y que este la admita sin confirmaciones, el atacante transmite a la red el bloque minado. Esta acción hace que la red admita el bloque como válido, mientras que inutiliza la transacción efectuada al mercader.

Cuando el atacante tiene éxito, quiere decir que ejecutó un hackeo o bien ataque Finney. No obstante, en dependencia del poder de hash del minero, este ataque es bastante poco probable de ejecutarse. De esta manera, cuanto más bajo es el poder de hashrate del minero, más bajas van a ser las posibilidades de que lo ejecute de manera exitosa. Por otro lado, el ataque va a fallar en el caso de que se halle otro bloque en internet en el tiempo en que el atacante se retarda en hallar un bloque hasta producir la transacción al mercader y que este la admita.

Por lo que efectuar esta clase de ataque de doble gasto precisa de una sincronización cautelosa y de mucha paciencia por la parte del atacante. Puesto que este debe aguardar a hallar un bloque, lo que puede tomar bastante tiempo, más teniendo presente la cantidad de mineros y la complejidad de la red. Además de esto, el atacante debe poder adquirir algún bien o bien abonar algún servicio a un mercader en pocos minutos. Puesto que como mentamos, si otro minero halla y transmite otro bloque, la transacción al mercader si va a ser incluida y su ataque va a fallar.

¿Quiénes son susceptibles a padecer un ataque Finney?

Si una persona o bien mercader admite pagos de transacciones sin confirmar, puede ser objeto de este ataque. Por servirnos de un ejemplo, alguna tienda con servicios on-line como la descarga de juegos que admitan criptomonedas y que dejen la descarga inmediatamente puede ser susceptible a este género de ataques. Asimismo probablemente ocurra en supermercados, si bien en ellos el tiempo de adquiere no es preciso. Esto debido a que pueden haber bastantes personas en la cola de pago lo que evita que un atacante pueda utilizar el tiempo a favor suyo.

¿Cuánto sabes, criptonauta?

¿El ataque Finney no se ha solucionado dado a que los desarrolladores no pueden hacerlo?

¿De qué manera resguardarse de un ataque Finney?

La primera recomendación es aguardar por lo menos seis confirmaciones en internet Bitcoin para dar por segura y también irreversible una transacción. Sin embargo la descentralización de la red ha crecido tanto que en la enorme mayoría de casos con 1 o bien dos puede aun ser suficiente, pudiendo aun a valorar la cantidad de confirmaciones dependiendo de la cantidad transaccionada.

Por ejemplo si vas a admitir menos de cien€, con una confirmación puede ser suficiente debido a que el costo del ataque sería enormemente superior la Teoría de Juegos y el Equilibrio de Nash jamás va a favorecer a ejecutar el ataque.

Como hemos mentado en artículos precedentes sobre las transacciones irreversibles, las transacciones en Bitcoin van a ser irreversibles conforme se produzcan nuevos bloques sobre el que incluye la transacción. Reflejándose cada nuevo bloque como una confirmación a la transacción incluida. Sin embargo, para cantidades notables, se aconseja aguardar seis confirmaciones para cerciorarse de que la transacción es casi imposible de ser revertida. Con lo que queda a peligro de un usuario o bien mercader, admitir transacciones sin confirmar por la parte de otra persona.

Si un atacante pretende emplear el ataque Finney para conseguir algún bien ilíquido, es bastante difícil hacer coincidir la necesidad de este bien con la busca de un bloque. No obstante, si lo emplea como forma de conseguir algo líquido, como intercambiar bitcoins por otra moneda, siempre y en todo momento hay una ocasión de efectuarse. Mas probablemente el mercader le pedí una cantidad de confirmaciones para realizar la acción. Con lo que en la práctica es difícil y también poco probable conseguir algo de esta forma.