Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Unidad 4 - Modelos de Consenso

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

TECNICATURA SUPERIOR EN
Nuevas Tecnologías Aplicadas al Agro

BLOCKCHAIN

Módulo: Tecnología en la Gestión Agroindustrial II

Modelos de consenso
ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

Índice

Contenido

Índice ........................................................................................................... 2

Modelos de consenso .............................................................................. 3

Introducción .......................................................................................... 3

Prueba de Trabajo (Proof of work) ....................................................... 3

Prueba de participación (Proof of stake) .............................................. 7

Prueba de Round Robin ..................................................................... 11

Prueba de autoridad ........................................................................... 11

Prueba de tiempo transcurrido ........................................................... 12

Referencias Bibliográficas ......................................................................... 13


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

Modelos de consenso

Introducción

Un aspecto clave de la tecnología blockchain es determinar qué usuario

publica el siguiente bloque. Esto se resuelve mediante la implementación de uno

de los muchos modelos de consenso posibles. Para las redes blockchain sin

permiso, generalmente hay muchos nodos de publicación que compiten al mismo

tiempo para publicar el siguiente bloque. Por lo general, hacen esto para ganar

criptomonedas y / o tarifas de transacción. Son usuarios que desconfían

mutuamente y que solo se conocen por sus direcciones públicas. Es probable que

cada nodo de publicación esté motivado por un deseo de obtener ganancias

financieras, no por el bienestar de los otros nodos de publicación o incluso de la

propia red.

Tal situación, ¿por qué un usuario propagaría un bloqueo que otro usuario

está intentando publicar? Además, ¿quién resuelve los conflictos cuando varios

nodos publican un bloque aproximadamente al mismo tiempo? Para que esto

funcione, las tecnologías blockchain utilizan modelos de consenso para permitir que

un grupo de usuarios que desconfían mutuamente trabajen juntos.

Prueba de Trabajo (Proof of work)

En el modelo de prueba de trabajo (PoW), un usuario publica el siguiente

bloque siendo el primero en resolver un rompecabezas computacionalmente

intensivo. La solución a este rompecabezas es la "prueba" de que han realizado el

trabajo. El rompecabezas está diseñado de tal manera que resolver el

rompecabezas es difícil, pero verificar que una solución sea válida es fácil. Esto
ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

permite que todos los demás nodos completos validen fácilmente cualquier bloque

siguiente propuesto, y cualquier bloque propuesto que no satisfaga el

rompecabezas sería rechazado.

Un método de rompecabezas común es requerir que el resumen hash de un

encabezado de bloque sea menor que un valor objetivo. Los nodos de publicación

realizan muchos cambios pequeños en su encabezado de bloque (por ejemplo,

cambiando el nonce) tratando de encontrar un resumen hash que cumpla con el

requisito. Para cada intento, el nodo de publicación debe calcular el hash para todo

el encabezado del bloque; muchas veces se convierte en un proceso

computacionalmente intensivo. El valor objetivo puede modificarse con el tiempo

para ajustar la dificultad (hacia arriba o hacia abajo) para influir en la frecuencia con

la que se publican los bloques. Por ejemplo, Bitcoin, que utiliza el modelo de prueba

de trabajo, ajusta la dificultad del rompecabezas cada 2016 bloques para influir en

la tasa de publicación de bloques para que sea de alrededor de una vez cada diez

minutos. El ajuste se realiza al nivel de dificultad del rompecabezas, y

esencialmente aumenta o disminuye el número de ceros iniciales requeridos. Al

aumentar el número de ceros iniciales, aumenta la dificultad del rompecabezas,

porque cualquier solución debe ser menor que el nivel de dificultad, lo que significa

que hay menos soluciones posibles. Al disminuir el número de ceros iniciales,

disminuye el nivel de dificultad, porque hay más soluciones posibles. Este ajuste es

para mantener la dificultad computacional del rompecabezas y, por lo tanto,

mantener el mecanismo de seguridad central de la red Bitcoin.

La potencia informática disponible aumenta con el tiempo, al igual que el

número de nodos de publicación, por lo que la dificultad del rompecabezas

generalmente aumenta. Los ajustes al objetivo de dificultad tienen como objetivo


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

garantizar que ninguna entidad pueda hacerse cargo de la producción de bloques,

pero como resultado, los cálculos de resolución de rompecabezas requieren un

consumo significativo de recursos. Debido al importante consumo de recursos de

algunas redes blockchain de prueba de trabajo, hay un movimiento para agregar

nodos de publicación a áreas donde hay un suministro excedente de electricidad

barata.

Como ejemplo, considere un rompecabezas donde, utilizando el algoritmo

SHA-256, una computadora debe encontrar un valor hash que cumpla con los

siguientes criterios objetivo (conocido como nivel de dificultad):

SHA256(“blockchain” + Nonce) = Hash Digest starting with “000000”

En este ejemplo, la cadena de texto "blockchain" se agrega con un valor

nonce y luego se calcula el resumen hash. Los valores nonce utilizados serán sólo

valores numéricos. Este es un rompecabezas relativamente fácil de resolver y

algunos resultados de muestra siguen:

SHA256("blockchain0") =
0xbd4824d8ee63fc82392a6441444166d22ed84eaa6dab11d49
23075975acab938 (not solved)

SHA256("blockchain1") =
0xdb0b9c1cb5e9c680dfff7482f1a8efad0e786f41b6b89a758
fb26d9e223e0a10 (not solved)

SHA256("blockchain10730895") =
0x000000ca1415e0bec568f6f605fcc83d18cac7a4e6c219a95
7c10c6879d67587 (solved)

Para resolver este rompecabezas, se necesitaron 10,730,896 conjeturas

(completadas en 54 segundos en hardware relativamente antiguo, comenzando en

0 y probando un valor a la vez). En este ejemplo, cada valor adicional de "cero


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

inicial" aumenta la dificultad. Al aumentar el objetivo en un cero inicial adicional

("0000000"), el mismo hardware tomó 934,224,175 conjeturas para resolver el

rompecabezas (completado en 1 hora, 18 minutos, 12 segundos):

SHA256("blockchain934224174")=
0x0000000e2ae7e4240df80692b7e586ea7a977eacbd031819d0e603257edb3a81

Actualmente no se conoce ningún acceso directo a este proceso; Los nodos

de publicación deben dedicar esfuerzo, tiempo y recursos de cálculo para encontrar

el valor nonce correcto para el destino. A menudo, los nodos de publicación intentan

resolver este rompecabezas computacionalmente difícil para reclamar una

recompensa de algún tipo (generalmente en forma de una criptomoneda ofrecida

por la red blockchain). La perspectiva de ser recompensado por extender y

mantener la cadena de bloques se conoce como un sistema de recompensa o

modelo de incentivo. Una vez que un nodo de publicación ha realizado este trabajo,

envían su bloque con un nonce válido a nodos completos en la red blockchain. Los

nodos completos receptores verifican que el nuevo bloque cumple con el requisito

del rompecabezas, luego agregan el bloque a su copia de la cadena de bloques y

reenvían el bloque a sus nodos pares. De esta manera, el nuevo bloque se

distribuye rápidamente a través de la red de nodos participantes. La verificación del

nonce es fácil ya que solo se necesita hacer un solo hash para verificar si resuelve

el rompecabezas.

Para muchas redes blockchain basadas en pruebas de trabajo, los nodos de

publicación tienden a organizarse ellos mismos en "grupos" o "colectivos" en los

que trabajan juntos para resolver acertijos y dividir la recompensa. Esto es posible

porque el trabajo se puede distribuir entre dos o más nodos en un colectivo para

compartir la carga de trabajo y las recompensas. Al dividir el programa de ejemplo


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

en cuartos, cada nodo puede tomar una cantidad igual del rango de valores de

nonce para probar:

• Node 1: check nonce 0000000000 to 0536870911


• Node 2: check nonce 0536870912 to 1073741823
• Node 3: check nonce 1073741824 to 1610612735
• Node 4: check nonce 1610612736 to 2147483647

El siguiente resultado fue el primero en ser encontrado para resolver el

rompecabezas:

SHA256("blockchain1700876653")=
0x00000003ba55d20c9cbd1b6fb34dd81c3553360ed918d07acf16dc9e75d7c7f1

Este es un nonce completamente nuevo, pero aún así resolvió el

rompecabezas. Tomó 90,263,918 conjeturas (completadas en 10 minutos, 14

segundos). Dividir el trabajo entre muchas más máquinas produce resultados

mucho mejores, así como recompensas más consistentes en un modelo de prueba

de trabajo. El uso de un rompecabezas computacionalmente difícil ayuda a

combatir el "Ataque Sybil", un ataque de seguridad informática (no limitado a las

redes blockchain) donde un atacante puede crear muchos nodos (es decir, crear

múltiples identidades) para ganar influencia y ejercer control. El modelo de prueba

de trabajo combate esto al tener el foco de la influencia de la red siendo la cantidad

de potencia computacional (hardware, que cuesta dinero) mezclada con un sistema

de lotería (la mayoría del hardware aumenta la probabilidad, pero no la garantiza)

versus en las identidades de red (que generalmente no tienen costo de crear).

Prueba de participación (Proof of stake)

El modelo de prueba de participación (PoS) se basa en la idea de que cuanto

más haya invertido el usuario en participar en el sistema, más probable es que


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

quiera que el sistema tenga éxito y menos probable es que quiera subvertirlo. La

participación es a menudo una cantidad de criptomoneda que el usuario de la red

blockchain ha invertido en el sistema (a través de diversos medios, como bloquearla

a través de un tipo de transacción especial, o enviarla a una dirección específica, o

mantenerla dentro de un software de billetera especial). Una vez apostada, la

criptomoneda generalmente ya no se puede gastar. Las redes blockchain de prueba

de participación utilizan la cantidad de participación que tiene un usuario como

factor determinante para publicar nuevos bloques. Por lo tanto, la probabilidad de

que un usuario de la red blockchain publique un nuevo bloque está vinculada a la

relación de su participación con respecto a la cantidad total de criptomoneda

apostada de la red blockchain.

Con este modelo de consenso, no hay necesidad de realizar cálculos

intensivos en recursos (que involucran tiempo, electricidad y potencia de

procesamiento) como se encuentra en la prueba de trabajo. Dado que este modelo

de consenso utiliza menos recursos, algunas redes blockchain han decidido

renunciar a una recompensa de creación de bloques; Estos sistemas están

diseñados para que toda la criptomoneda ya esté distribuida entre los usuarios en

lugar de generar nuevas criptomonedas a un ritmo constante. En tales sistemas, la

recompensa por la publicación en bloque suele ser la obtención de tarifas de

transacción proporcionadas por el usuario.

Los métodos de cómo la red blockchain utiliza la participación pueden variar.

Aquí discutimos cuatro enfoques: selección aleatoria de usuarios apostados,

votación de varias rondas, sistemas de antigüedad de monedas y sistemas de

delegación.
ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

Independientemente del enfoque exacto, los usuarios con más participación

tienen más probabilidades de publicar nuevos bloques. Cuando la elección del

editor de bloques es una elección aleatoria (a veces denominada prueba de

participación basada en cadena), la red blockchain analizará a todos los usuarios

con participación y elegirá entre ellos en función de su proporción de participación

a la cantidad total de criptomonedas apostadas. Por lo tanto, si un usuario tuviera

el 42% de toda la participación de la red blockchain, sería elegido el 42% del tiempo;

aquellos con un 1 % serían elegidos el 1 % del tiempo.

Cuando la elección del editor del bloque es un sistema de votación de varias

rondas (a veces denominado prueba de participación de tolerancia a fallas bizantina

[12]) hay una complejidad adicional. La red blockchain seleccionará varios usuarios

apostados para crear bloques propuestos. Luego, todos los usuarios apostados

votarán por un bloque propuesto. Varias rondas de votación pueden ocurrir antes

de que se decida un nuevo bloque. Este método permite que todos los usuarios

apostados tengan una voz en el proceso de selección de bloques para cada nuevo

bloque.

Cuando la elección del editor de bloques es a través de un sistema de edad

de monedas denominado prueba de participación de edad de moneda, la

criptomoneda apostada tiene una propiedad de edad. Después de un cierto período

de tiempo (como 30 días), la criptomoneda apostada puede contar para el usuario

propietario que está siendo seleccionado para publicar el siguiente bloque. La

criptomoneda apostada tiene su edad restablecida, y no se puede volver a usar

hasta después de que haya pasado el tiempo requerido. Este método permite a los

usuarios con más participación publicar más bloques, pero no dominar el sistema,

ya que tienen un temporizador de enfriamiento adjunto a cada moneda de


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

criptomoneda contada para crear bloques. Las monedas más antiguas y los grupos

más grandes de monedas aumentarán la probabilidad de ser elegidas para publicar

el siguiente bloque. Para evitar que las partes interesadas acumulen criptomonedas

antiguas, generalmente hay un máximo incorporado para la probabilidad de ganar.

Cuando la elección del editor de bloques es a través de un sistema delegado,

los usuarios votan para que los nodos se conviertan en nodos de publicación,

creando así bloques en su nombre. El poder de voto de los usuarios de la red

blockchain está vinculado a su participación, por lo que cuanto mayor sea la

apuesta, más peso tendrá el voto. Los nodos que reciben más votos se convierten

en nodos de publicación y pueden validar y publicar bloques. Los usuarios de la red

Blockchain también pueden votar en contra de un nodo de publicación establecido,

para intentar eliminarlos del conjunto de nodos de publicación. La votación por

nodos de publicación es continua y seguir siendo un nodo de publicación puede ser

bastante competitivo. La amenaza de perder el estado del nodo de publicación y,

por lo tanto, las recompensas y la reputación es constante, por lo que los nodos de

publicación están incentivados a no actuar maliciosamente. Además, los usuarios

de la red blockchain votan por delegados, que participan en la gobernanza de la

cadena de bloques. Los delegados propondrán cambios y mejoras, que serán

votados por los usuarios de la red blockchain.

Vale la pena señalar que un problema conocido como "nada en juego" puede

surgir de algunos algoritmos de prueba de participación. Si existieran múltiples

cadenas de bloques competidoras en algún momento, un usuario apostado podría

actuar en cada una de esas cadenas competidoras, ya que es esencialmente libre

de hacerlo. El usuario apostado puede hacer esto como una forma de aumentar

sus probabilidades de ganar una recompensa. Esto puede hacer que múltiples
ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

ramas de blockchain continúen creciendo sin reconciliarse en una rama singular

durante largos períodos de tiempo.

Prueba de Round Robin

Round Robin es un modelo de consenso que es utilizado por algunas redes

blockchain autorizadas. Dentro de este modelo de consenso, los nodos se turnan

para crear bloques. Este modelo tiene una larga historia basada en la arquitectura

de sistemas distribuidos. Para manejar situaciones en las que un nodo de

publicación no está disponible para publicar un bloque a su vez, estos sistemas

pueden incluir un límite de tiempo para permitir que los nodos disponibles publiquen

bloques para que los nodos no disponibles no causen una interrupción en la

publicación de bloques. Este modelo garantiza que ningún nodo cree la mayoría de

los bloques. Se beneficia de un enfoque sencillo, carece de rompecabezas

criptográficos y tiene bajos requisitos de energía. Dado que existe una necesidad

de confianza entre los nodos, el round robin no funciona bien en las redes

blockchain sin permiso utilizadas por la mayoría de las criptomonedas. Esto se debe

a que los nodos maliciosos podrían agregar continuamente nodos adicionales para

aumentar sus probabilidades de publicar nuevos bloques. En el peor de los casos,

podrían usar esto para subvertir el correcto funcionamiento de la red blockchain.

Prueba de autoridad

El modelo de consenso de prueba de autoridad (también conocido como

prueba de identidad) se basa en la confianza parcial de los nodos de publicación a

través de su vínculo conocido con identidades del mundo real. Los nodos de

publicación deben tener sus identidades probadas y verificables dentro de la red

blockchain (por ejemplo, documentos de identificación que han sido verificados y


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

notariados e incluidos en la blockchain). La idea es que el nodo de publicación está

apostando su identidad/reputación para publicar nuevos bloques. Los usuarios de

la red blockchain afectan directamente a la reputación de un nodo de publicación

en función del comportamiento del nodo de publicación. Los nodos de publicación

pueden perder reputación al actuar de una manera con la que los usuarios de la

red blockchain no están de acuerdo, al igual que pueden ganar reputación actuando

de una manera con la que los usuarios de la red blockchain estén de acuerdo.

Cuanto menor sea la reputación, menor será la probabilidad de poder publicar un

bloque. Por lo tanto, a un nodo de publicación le interesa mantener una alta

reputación. Este algoritmo solo se aplica a redes blockchain autorizadas con altos

niveles de confianza.

Prueba de tiempo transcurrido

Dentro del modelo de consenso de prueba de tiempo transcurrido (PoET),

cada nodo de publicación solicita un tiempo de espera de una fuente de tiempo de

hardware segura dentro de su sistema informático. El origen de tiempo de hardware

seguro generará un tiempo de espera aleatorio y lo devolverá al software del nodo

de publicación. Los nodos de publicación toman el tiempo aleatorio que se les da y

se vuelven inactivos durante ese período. Una vez que un nodo de publicación se

despierta del estado inactivo, crea y publica un bloque en la red blockchain,

alertando a los otros nodos del nuevo bloque; cualquier nodo de publicación que

aún esté inactivo dejará de esperar y todo el proceso comenzará de nuevo.


ISPC / Tecnicatura Superior en Nuevas Tecnologías Aplicadas al Agro

Referencias Bibliográficas
• Yaga, Dylan; Mell, Peter; Roby, Nik (2018). Blockchain Technology

Overview. USA, National Institute of Standards and Technology.

También podría gustarte