Blockchain Parte 5 – Consenso

Consenso

En la tecnología blockchain se usa el consenso como sistema de gobernanza, cada proyecto blockchain utiliza sus propias reglas de consenso, en el caso de Bitcoin se usa el algoritmo Proof  of Work – prueba de trabajo, pero ya existen varios algoritmos que exponen distintas estrategias para conseguir el consenso en el sistema de forma segura.

El algoritmo alternativo más usado es PoS, Proof of Stake, despues hay varias modificaciones de este e incluso híbridos. Estamos en una fase muy temprana para sacar conclusiones de todas estas alternativas, en este artículo voy a explicar Proof of Work.

Proof of Work

Bitcoin usa HasCash – SHA 256 como algoritmo para su prueba de trabajo, los nodos mineros deben completar este algoritmo más rápido que cualquier otro nodo para obtener el privilegio de escribir el bloque en la cadena.

La dificultad para resolver este algoritmo es de aproximadamente 10 minutos, su complejidad es variable, es decir, el algoritmo de Bitcoin saca una media cada semana del tiempo empleado y decide si aumentar o disminuir su complejidad.

HashCash trata de una búsqueda secuencial sobre un hash de una cadena que conocemos, lo que buscamos es un hash que empiece por ‘000’, que sea el resultado de nuestra cadena original añadiéndole un número entero a la derecha en cada intento, es te número es llamado “nonce”.

De esta forma no es predecible saber que computadora de la red será capaz de resolver antes este acertijo, es muy fácil de verificar pero costoso de procesar.

El nuevo bloque será configura la cabecera con los siguientes datos:

  • Hash de la cabecera del bloque anterior
  • Hash del nodo raiz del Merkle Root – Merkle Root Hash
  • Sello de tiempo en modo Unix
  • Nonce empleado para calcular el HashCash
  • nBits para ajustar la dificultad
  • Version del bloque

Block Chain Overview

Bytes Nombre Tipo de datos Descripción
4
versión
int32_t
El número de versión del bloque indica qué conjunto de reglas de validación de bloqueseguir. Vea la lista de versiones de bloques acontinuación.
32
hash de encabezado de bloque anterior
char [32]
Un hash SHA256 (SHA256 ()) en orden de bytes interno del encabezado del bloque anterior . Esto garantiza que no se puede cambiar ningún bloque anterior sin cambiar también el encabezado de este bloque .
32
merkle roothash
char [32]
Un hash SHA256 (SHA256 ()) en orden de bytes interno . La raíz de merkle se deriva de los valores hash de todas las transacciones incluidas en este bloque , lo que garantiza que ninguna de esas transacciones se pueda modificar sin modificar el encabezado . Vea lasección de árboles merkle a continuación.
4
hora
uint32_t
El tiempo de bloqueo es un tiempo de época Unix cuando el minero comenzó a mezclar elencabezado (según el minero ). Debe ser estrictamente mayor que el tiempo medio de los 11 bloques anteriores . Los nodoscompletos no aceptarán bloques conencabezados más de dos horas en el futuro de acuerdo con su reloj.
4
nBits
uint32_t
Una versión codificada del umbral objetivo delhash del encabezado de este bloque debe ser menor o igual a. Vea el formato nBits que se describe a continuación.
4
nonce
uint32_t
Un número arbitrario, se cambia para modificar el hash del encabezado a fin de producir un hash menor o igual al umbral objetivo .

Incentivos

Los nodos mineros de la red que desempeñan este trabajo reciben dos tipos de incentivos, por un lado una retribución estándar prefijada por la red que se incluyen como primera transferencia de todas las que van a escribir en el bloque.

Por otra parte, reciben comisiones, estas comisiones van en función de la oferta y la demanda del uso de la red, la comisión es pro-activa, un nodo que incluye una transferencia por primera vez en la red decide cuanta comisión está dispuesto a pagar, los nodos minero ordenan la prioridad de sus transacciones en función de la “propina”.

Proof of Stake

La prueba de participación no requiere coste computacional para participar en la red, simplemente los nodos tienen que ser candidatos, deben tener unos fondos, en función de estos fondos su candidatura constará con más probabilidades o menos.

Si uno o varios nodos con la mayor participación de la red realizan un movimiento deshonesto ponen en riesgo sus propios fondos, puede ser detectado y penalizado y lo que es peor, la red puede perder la confianza, esto supone una perdida de valor de todo lo que había conseguido ganar con su supuesto fraude.

Estos nodos liberan su poder computacional de la prueba de trabajo, de esta forma pueden invertir esta capacidad en otras funcionalidades como contratos inteligentes con los que contamos descentralizar el resto de modelos de negocio más allá del sistema financiero.

Ir a  Blockchain Parte 4 – Descentralización

Ir a  Blockchain Parte 6 – Seguridad

Esta entrada fue publicada en BitCoin, blockchain, Criptomoneda, ethereum, smart contracts. Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.