Red de conocimiento informático - Problemas con los teléfonos móviles - Principios del mecanismo de consenso de poder

Principios del mecanismo de consenso de poder

El mecanismo de conocimiento * * * de Bitcoin es el conocimiento PoW***, que se basa en el método de procesamiento de HashCash. Primero hablemos de cómo Bitcoin entiende PoW***.

Desde la estructura del encabezado del bloque, podemos ver un valor Nonce de 4 bytes. Los cambios en el valor Nonce afectarán el valor hash de todo el encabezado del bloque. El nodo de minería prueba diferentes valores de Nonce (generalmente comenzando desde 0 y aumentando en 1 cada vez) para encontrar un valor hash que sea menor que el valor de dificultad especificado por el objetivo de dificultad.

El proceso de prueba de PoW, también conocido como proceso de minería, busca el valor hash apropiado.

El proceso de encapsulación de bloques no se describe en detalle aquí. Los bloques se generan mediante un determinado algoritmo y, por supuesto, la generación requiere un cierto costo.

Cada valor en el encabezado del bloque no es aleatorio, sino que se obtiene mediante un algoritmo fijo. El valor hash raíz de Merkle consiste en empaquetar la transacción en un árbol Merkle y finalmente obtener el valor hash raíz. El valor de dificultad se ajusta continuamente según el algoritmo y la velocidad de marcha mantiene una marcha cada 10 minutos.

Primero empaquete todas las transacciones para generar un árbol Merkle, calcule el valor hash de la raíz de Merkle, luego ensamble el encabezado del bloque, realice continuamente la operación SHA 256 (encabezado del bloque) de doble hash en el encabezado del bloque y luego determine si es menor que el valor objetivo de la red. En este caso, en realidad lo convertimos en binario, cuántos bits hay antes del binario que no son ceros, porque si hay unos, el valor decimal debe ser muy grande. Si es mayor que este valor objetivo, significa que los primeros dígitos no cumplen con la condición de que los primeros dígitos sean 0 y el hash no tiene éxito. Luego, el valor aleatorio se cambia para formar un nuevo encabezado de bloque y el. El hash continúa.

Esto significa que una mina ha sido minada, y es muy sencillo para otros nodos verificarlo. Solo necesita hacer SHA256 (SHA256 (encabezado del bloque de verificación)) una vez para determinarlo.

El método de ajuste de dificultad para la minería de Bitcoin es muy simple. El ajuste del objetivo de dificultad consiste en reducir continuamente el valor de dificultad de 256 bits. Por ejemplo, el valor de dificultad del bloque 277315 se expresa en hexadecimal: 0x 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.

En representación binaria, los primeros 60 bits de este número son todos ceros. Si desea aumentar la dificultad, simplemente baje este valor. A medida que disminuye el valor de dificultad, aumenta el número de ceros iniciales, disminuye el rango de hashes buscables y la minería se vuelve más difícil.

Los ajustes de dificultad ocurren de forma independiente y automática en cada nodo completado. Cada 2016 bloques, todos los nodos ajustarán automáticamente la dificultad de acuerdo con una fórmula unificada. Si la velocidad de generación de bloques es superior a 10 minutos, la dificultad aumenta; si es inferior a 10 minutos, la dificultad disminuye.

La fórmula se puede resumir como: nuevo valor de dificultad = valor de dificultad anterior × (tiempo invertido en los últimos 2016 bloques/20160 minutos).

Ventajas

Desventajas

1: ¿Por qué necesitamos calcular el valor hash dos veces al minar?

Cuando Satoshi Nakamoto diseñó el algoritmo de minería de Bitcoin, consideró que el algoritmo SHA2-256 podía ser crackeado, aunque en teoría no existe ningún ataque al algoritmo SHA2-256. Para debilitar la amenaza de ataques, el algoritmo SHA2-256 requiere dos operaciones en los datos del encabezado del bloque.

2. Si todos los nodos prueban valores de Nonce a partir de 0, ¿los nodos con alta potencia informática no siempre calcularán primero los resultados válidos y los nodos con baja potencia informática nunca tendrán la esperanza de tener éxito en la minería?

La mayor parte de la información en el encabezado del bloque es la misma, pero Merkle Root es definitivamente diferente para cada nodo, porque cada nodo tendrá su propia transacción base de Bitcoin, que tiene minería de nodos La dirección del servidor es diferente para cada nodo minero independiente. Según el efecto de avalancha de la función hash, la raíz de Merkle de cada nodo independiente debe ser significativamente diferente.

3. ¿Cómo solucionar el problema bizantino?

La prueba de trabajo aumenta el costo de envío de información y reduce la velocidad a la que los nodos envían mensajes, asegurando así que solo un nodo esté transmitiendo a la vez y, al mismo tiempo, su propia firma. adjunta durante la transmisión. La certificación de la carga de trabajo en realidad equivale a aumentar el costo de ser un traidor (liberar bloques falsos). Solo el primer nodo en completar la certificación puede transmitir el bloque. La competencia es muy difícil y requiere una gran potencia informática. Si no tiene éxito, su potencia informática se desperdiciará y todo el sistema será más estable.