Octubre 29, 2021

3 minutos de lectura

Paper: GeoBlockchain

Índice:


gif-block

Publicado!

Este es el primer borrador que representa la propuesta inicial:

Prueba de trabajo imparcial basada en la geolocalización para la mitigación del control de las mining pools en el blockchain

Introducción

Las criptomonedas son el principal uso del blockchain en la actualidad. Grandes cantidades de dinero y poder computacional mantiene tranquilos a sus usuarios. Esto es debido a que es un sistema que se apoya en hechos y no en la confianza en terceros.

Las recompensas de la prueba de trabajo (proof-of-work) favorecen a los que tienen mayor poder computacional, es por ello que se implementaron las mining pools. Con el propósito de repartir la recompensa entre los nodos que pertenecen y minan dentro del pool.

Mining pools de bitcoin (últimos 3 días, 29/10/2021).

Fuente: https://btc.com/stats/pool

Problemática

Si bien las criptomonedas se basan en un sistema que requiere de una capacidad de cómputo inalcanzable para ser corrompida, eso no las libra de los ataques del 51%. Este ataque significa controlar la mayor parte de los nodos en la red que se dedican a sostener y miniar dentro del blockchain.

Como se explica en el paper de bitcoin: “El sistema es seguro siempre que los nodos honestos controlen colectivamente más potencia de CPU que cualquier grupo cooperante de nodos atacantes.”

Y se tiene la premisa que: “Si un atacante codicioso puede reunir más potencia de CPU que todos los nodos honestos, tendría que elegir entre usarla para defraudar a las personas robándoles sus pagos o usarla para generar nuevas monedas.”

Punto en el cual se tiene que confiar en que un atacante, que logre controlar la red, tome la decisión de tener más recompensa en vez de alterar los bloques a su conveniencia.

Descripción de la propuesta

Descripción

En este proyecto se propone una solución al problema de ataques del 51%. Partiendo de la premisa de que los sistemas de blockchain, como las criptomonedas, se protegen de este tipo de ataques confiando en que dicho atacante prefiera una opción en la que obtenga mayores recompensas.

La presente propuesta solo permite la minería a nodos que se encuentren en zonas geográficas válidas. Siendo las segmentadas aleatoriamente basadas en el “hash root” del Markle tree del bloque a minar.

Solución propuesta

La solución propuesta consta de segmentar aleatoriamente el planeta y de esta forma solo permitir minar a un nodo cuando se encuentre dentro de las zonas permitidas.

Al profundizar en la solución se considera que el patrón aleatorio debe ser accesible por toda la red. De esta forma saber si un nodo será aceptado como minero y posible ganador de la recompensa.

El número aleatorio propuesto se basa en el “hash root” del Merkle Tree de un bloque a minar (el cual está compuesto de los hashes de las transacciones). De esta forma todos los nodos que deseen minar podrán saber si son elegidos para participar en el minado. También, de esta manera el valor será aleatorio e impredecible para toda la red en todo momento.

Además, se deberá adentrar en lo que implica para un nodo estar dentro de una zona permitida. Al estar basado en una red P2P, se puede obtener la geolocalización de un nodo basado en su dirección IP. Los demás nodos tendrán que recibir directamente el bloque minado del nodo que lo encontró, para así poder validar si su ubicación pertenece al segmento permitido.

Descripción General

Con esta propuesta se busca modelar un sistema para mitigar el control que las mining pools podrían tener sobre una red descentralizada al realizar un ataque del 51%. De este modo, contar con una red resistente y segura frente a estos ataques. Al punto de necesitar tener control total de la red para poder vulnerarla.

Para el desarrollo de la propuesta, basado en el funcionamiento de un blockchain, se añaden 2 partes fundamentales:

1. Algoritmo de segmentación geográfica

Un algoritmo para segmentar el planeta en base al “hash root” del Markle tree del bloque a minar, junto con validaciones para saber si una IP se encuentra dentro de las zonas válidas. Al utilizar el “hash root” como semilla (seed), para obtener números aleatorios, se puede generar un mapa en 2 dimensiones el cual sirve para determinar las zonas válidas.

Con ello se puede sincronizar y obtener ubicaciones aleatorias para el minado. Luego un nodo podrá obtener su ubicación (longitud y latitud) basado en su IP y saber si le está permitido participar en el minado.

2. Sistema de distribución de nuevo bloque

Cuando un nodo se encuentre dentro de una zona de minado válida y consiga encontrar un hash para el bloque, debe comunicarlo a la red para que sea aceptado. Además, los demás nodos de la red deben ser capaces de validar de forma remota que el hash encontrado proviene de un nodo válido.

Es suficiente con consultar el bloque y la IP del nodo que minó, verificando con el algoritmo de segmentación. Sin embargo, esto podría saturar al nodo que encontró el hash de muchas peticiones. Es necesario que la IP que figure en el nuevo bloque sea la misma que la del nodo que lo comunica, por lo que es una situación que necesita ser evaluada.

Se propone un sistema de 2 fases. En la primera se intentaría distribuir el bloque (los nodos directos podrían hacer la validación en ese mismo momento) y en la segunda validar con el nodo que minó el bloque.

Fuente: creación propia

Referencias