Red de conocimiento informático - Conocimiento sistemático - Comprensión profunda del mecanismo de consenso y los principios del algoritmo de blockchain

Comprensión profunda del mecanismo de consenso y los principios del algoritmo de blockchain

El llamado "mecanismo de cognición" consiste en completar la verificación y confirmación de las transacciones en muy poco tiempo mediante la votación de nodos especiales para una transacción, si podemos lograr varios nodos con intereses no relacionados; un consenso, podemos pensar que toda la red también puede lograr un consenso sobre esto. Para decirlo de manera más simple, si un influencer chino de Weibo, un jugador de moneda virtual en los Estados Unidos, un estudiante africano y un viajero europeo no se conocen, pero todos coinciden en que usted es una buena persona, entonces básicamente puede ser Concluyó que no eres una mala persona.

Para que todo el nodo de la red blockchain mantenga los mismos datos y garantice la equidad de cada participante, todos los participantes en todo el sistema deben tener un acuerdo unificado, que es lo que necesitamos aquí. El *** Algoritmo de reconocimiento. Todos los nodos de Bitcoin siguen especificaciones de protocolo unificado. La especificación del protocolo (algoritmo de prueba) consta de reglas de prueba relacionadas, que se pueden dividir en dos núcleos principales: prueba de trabajo y el mecanismo de cadena más larga. La máxima expresión de todas las reglas (*** conocimiento) es la cadena más larga de Bitcoin. El propósito del algoritmo de identificación es garantizar que Bitcoin siga funcionando en la cadena más larga, garantizando así la coherencia y confiabilidad de todo el sistema contable.

Los usuarios de la cadena de bloques no necesitan considerar el crédito de la otra parte al realizar transacciones, no necesitan confiar en la otra parte y no necesitan un intermediario confiable o una agencia central. Solo necesitan hacerlo. siga el protocolo blockchain. El requisito previo para transacciones fluidas sin la necesidad de un tercero intermediario confiable es el mecanismo de consenso de blockchain, es decir, en un entorno de mercado de comprensión y confianza mutuas, cada nodo que participa en la transacción considera sus propios intereses. Comportamiento para trampas ilegales. Por lo tanto, cada nodo cumplirá activa y conscientemente las reglas preestablecidas para juzgar la autenticidad y confiabilidad de cada transacción y escribirá los registros que pasan la inspección en la cadena de bloques. Los intereses de cada nodo son diferentes y, lógicamente, no hay ningún incentivo para que se confabulen para engañar. Esto es especialmente evidente cuando algunos nodos de la red tienen buena reputación. La tecnología Blockchain utiliza un algoritmo de consenso basado en principios matemáticos para establecer una red de "confianza" entre nodos y utiliza medios técnicos para lograr una red de crédito innovadora.

En la actualidad, los principales mecanismos de algoritmos de autenticación en la industria de pagos del distrito incluyen cuatro categorías: mecanismo de prueba de carga de trabajo, mecanismo de prueba de equidad, mecanismo de prueba de autorización de acciones y grupo de verificación de grupo.

El mecanismo de prueba de carga de trabajo es la prueba de carga de trabajo, que es un requisito que se debe cumplir al generar una nueva información de transacción (es decir, un nuevo bloque) que se agregará a la cadena de bloques. En una red blockchain construida sobre la base del mecanismo de prueba de carga de trabajo, los nodos compiten por los derechos de contabilidad calculando la solución numérica del hash aleatorio. La capacidad de obtener la solución numérica correcta para generar bloques es una manifestación específica de la potencia informática del nodo. El mecanismo de prueba de trabajo tiene la ventaja de estar completamente descentralizado. En una cadena de bloques basada en el mecanismo de prueba de trabajo, los nodos pueden entrar y salir libremente. La conocida red Bitcoin utiliza un mecanismo de prueba de trabajo para producir nuevas monedas. Sin embargo, dado que la aplicación del mecanismo de prueba de trabajo en la red Bitcoin ha atraído la mayor parte de la potencia informática de las computadoras de todo el mundo, es difícil para otras aplicaciones blockchain que quieran intentar utilizar este mecanismo para obtener la misma escala. de potencia informática para mantener su propia seguridad. Al mismo tiempo, el comportamiento minero basado en el mecanismo de prueba de trabajo también provoca un gran desperdicio de recursos y el ciclo necesario para lograr el consenso también es largo, por lo que este mecanismo no es adecuado para aplicaciones comerciales.

En 2012, un internauta con el seudónimo Sunny King lanzó Peercoin. Esta moneda electrónica cifrada utiliza un mecanismo de prueba de trabajo para emitir nuevas monedas y un mecanismo de prueba de participación para mantener la seguridad de la red. es el papel del mecanismo de prueba de participación en las monedas electrónicas cifradas por primera vez. En lugar de exigir que el certificador realice una cierta cantidad de trabajo computacional, la Prueba de participación simplemente requiere que el certificador proporcione la propiedad de una cierta cantidad de criptomoneda. La forma en que funciona el mecanismo de prueba de participación es que cuando se crea un nuevo bloque, el minero necesita crear una transacción de "derechos de monedas", que envía una cantidad de monedas a los propios mineros de acuerdo con una proporción preestablecida.

El mecanismo de prueba de participación reduce la dificultad de minería de los nodos en proporciones iguales en función de la proporción y el tiempo de los tokens que posee cada nodo según el algoritmo, acelerando así la búsqueda de números aleatorios. Este tipo de mecanismo de consenso puede acortar el tiempo necesario para lograr el consenso, pero esencialmente todavía requiere nodos en la red para realizar operaciones mineras. Por lo tanto, el mecanismo PoS no resuelve fundamentalmente el problema de que el mecanismo PoW sea difícil de aplicar en el campo comercial.

El mecanismo de certificación de autorización de compartir es un nuevo mecanismo de identificación para garantizar la seguridad de la red. Al intentar resolver los problemas del mecanismo tradicional PoW y PoS, también puede compensar los efectos negativos de la centralización mediante la implementación de la democracia tecnológica.

El mecanismo de certificación de autorización de acciones es similar a la votación de la junta directiva. Este mecanismo tiene un sistema de votación de accionistas en tiempo real incorporado, al igual que el sistema convoca una junta de accionistas interminable en cualquier momento, donde. todos los accionistas votan. La descentralización de la cadena de bloques establecida sobre la base del mecanismo DPoS depende de un cierto número de representantes en lugar de de todos los usuarios. En una cadena de bloques de este tipo, todos los nodos votan para elegir un cierto número de representantes de los nodos, quienes actúan en nombre de todos los nodos para confirmar los bloques y mantener el funcionamiento ordenado del sistema. Al mismo tiempo, todos los nodos de la blockchain tienen el poder de remover y nombrar representantes en cualquier momento. Si es necesario, todos los nodos pueden votar para descalificar a los representantes del nodo actual y reelegir nuevos representantes para lograr una democracia en tiempo real.

El mecanismo de certificación de autorización compartida puede reducir en gran medida la cantidad de nodos que participan en la verificación y la contabilidad, logrando así una verificación de identidad de segundo nivel. Sin embargo, este mecanismo de identificación aún no puede resolver perfectamente los problemas de aplicación de blockchain en los negocios, porque este mecanismo de identificación no puede deshacerse de su dependencia de los tokens y muchas aplicaciones comerciales no requieren la existencia de tokens.

El grupo de verificación Pool se basa en la tecnología tradicional de consistencia distribuida y se complementa con un mecanismo de verificación de datos. Es un mecanismo de consenso ampliamente utilizado en la cadena de bloques actual.

El grupo de verificación del grupo puede funcionar sin depender de tokens. Basado en algoritmos de consenso distribuido maduros (Pasox, Raft), puede lograr una autenticación de segundo nivel, que es más adecuada para empresas policéntricas participantes. modelo. Sin embargo, también existen algunas deficiencias en el grupo de verificación del grupo. Por ejemplo, el grado de distribución que puede lograr el mecanismo de prueba no es tan bueno como el mecanismo PoW.

Aquí explicamos principalmente algunos principios del algoritmo. el mecanismo de prueba de carga de trabajo de blockchain y el bit ¿Cómo demuestra la red monetaria su carga de trabajo? Espero que todos puedan tener una comprensión básica del algoritmo de reconocimiento de ***.

La característica principal del sistema de prueba de carga de trabajo es que el cliente tiene que realizar una cierta cantidad de trabajo difícil para obtener un resultado, y el verificador puede usar fácilmente los resultados para verificar si el cliente ha realizado lo correspondiente. trabajar. Una característica central de este esquema es la asimetría: el trabajo es modesto para el solicitante y fácil de verificar para el verificador. Se diferencia de los CAPTCHA, que son más fáciles de resolver por humanos que por computadoras.

La siguiente figura muestra el proceso de prueba de la carga de trabajo.

Por ejemplo, proporcione un carácter básico "¡Hola, mundo!". El requisito de carga de trabajo que damos es que puede agregar un número entero llamado nonce (número aleatorio) después de la creación de este carácter. Valor, realice la operación SHA-256 en la creación del carácter modificado (no agregado) Si el resultado (expresado en forma hexadecimal) comienza con "0000", se pasa la verificación. Para lograr este objetivo de prueba de trabajo, es necesario incrementar continuamente el valor nonce y realizar una operación hash SHA-256 en la creación del carácter resultante. Según esta regla, se necesitan 4251 operaciones para encontrar el hash con 4 ceros a la izquierda.

A través de este ejemplo tenemos una comprensión preliminar del mecanismo de prueba de carga de trabajo. Algunas personas pueden pensar que si la prueba de trabajo es un proceso de este tipo, entonces basta con recordar que el nonce es 4521 para que el cálculo pueda pasar la verificación. Por supuesto que no, esto es solo un ejemplo.

A continuación simplemente cambiaremos la entrada a "¡Hola mundo! Valor entero", el valor entero es 1~1000, es decir, la entrada se convertirá en una matriz de 1~1000: ¡Hola Mundo!1 ;Hola Mundo!2;... ;¡Hola Mundo!1000. Luego, realice la prueba de trabajo anterior en cada entrada de la matriz por turno: encuentre el hash con 4 ceros a la izquierda.

Debido a la naturaleza pseudoaleatoria del valor hash, es fácil de calcular basándose en el conocimiento relevante de la teoría de la probabilidad. Se espera que se necesiten 2 elevado a la 16ª potencia de intentos para obtener un valor. hash con cuatro ceros a la izquierda. Si cuenta los resultados reales de los 1000 cálculos que acaba de realizar, encontrará que el número promedio de cálculos es 66,958, lo que está muy cerca de 2 elevado a la 16ª potencia (65,536). En este ejemplo, la cantidad de cálculos esperados por las matemáticas es en realidad la "carga de trabajo" requerida. Repetir la prueba de la carga de trabajo varias veces será un evento de probabilidad que se ajuste a las leyes estadísticas.

El número real de cálculos utilizados para contar los caracteres de entrada y obtener el resultado objetivo correspondiente es el siguiente:

Para cualquier nodo en la red Bitcoin, si desea generar un nuevo bloquear y agregarlo a En la cadena de bloques, este rompecabezas de la red Bitcoin debe resolverse. Los elementos clave de esta pregunta son la función de prueba de trabajo, el bloque y el valor de dificultad. La función de prueba de carga de trabajo es el método de cálculo de esta pregunta, el bloque son los datos de entrada de esta pregunta y el valor de dificultad determina la cantidad de cálculo necesario para comprender esta pregunta.

La función de prueba de trabajo utilizada en la red Bitcoin es la SHA-256 mencionada anteriormente. En realidad, los bloques se generan en el proceso de prueba de trabajo. Kuangong construye constantemente datos de bloques y verifica si cada resultado calculado cumple con la carga de trabajo requerida, determinando así si el bloque cumple con las dificultades de la red. El encabezado del bloque son los datos de entrada de la función de prueba de trabajo de Bitcoin.

El valor de dificultad es un indicador de referencia importante para que los mineros extraigan. Determina cuántas operaciones hash debe realizar un minero para generar un bloque legal. La red Bitcoin genera un bloque aproximadamente cada 10 minutos. Si la generación de nuevos bloques básicamente mantiene esta velocidad en diferentes condiciones de potencia informática de la red, el valor de dificultad debe ajustarse de acuerdo con los cambios en la potencia informática de toda la red. El principio general es garantizar que la red siempre genere un nuevo bloque en 10 minutos independientemente de la potencia minera.

Los ajustes al valor de dificultad ocurren de forma independiente y automática en cada nodo completo. Cada bloque de 2016, todos los nodos ajustarán automáticamente el valor de dificultad de acuerdo con un formato unificado. Esta fórmula se basa en el tiempo invertido en los últimos bloques de 2016 y el tiempo esperado (suponiendo que se genere un retiro cada 10 minutos, el tiempo esperado es 20160). minutos) y se ajusta en función de la relación entre la duración real y la duración deseada. Es decir, si los bloques se generan en más de 10 minutos, aumente el valor de dificultad de todos modos, disminuya el valor de dificultad; La fórmula se expresa de la siguiente manera:

Nuevo valor de dificultad = valor de dificultad anterior * (20160 minutos/tiempo invertido en los últimos 2016 bloques).

La prueba de trabajo requiere un valor objetivo. La fórmula de cálculo para el valor objetivo (Target) de la prueba de trabajo de Bitcoin es la siguiente:

Valor objetivo = valor objetivo máximo/valor de dificultad, donde el valor objetivo máximo es un valor constante 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Objetivo El tamaño del valor es inversamente proporcional al valor de dificultad. El logro de la prueba de carga de trabajo de Bitcoin es que el valor hash del bloque calculado en la mina debe ser menor que el valor objetivo.

También podemos entender simplemente el proceso de la carga de trabajo de Bitcoin como, al cambiar constantemente el encabezado del bloque (es decir, probar diferentes valores nonce) y tomarlo como entrada, realizar la operación hash SHA-256 para encontrar el proceso. de producir un valor hash con un formato específico (es decir, que requiere un cierto número de ceros iniciales), y cuantos más ceros iniciales se requieran, mayor será la dificultad.

Los pasos del rompecabezas de prueba de trabajo de Bitcoin se pueden resumir a grandes rasgos de la siguiente manera:

El proceso se puede representar mediante la siguiente figura:

Prueba de Bitcoin de trabajo es la principal labor que comúnmente llamamos "minería". Comprender el mecanismo de prueba de la carga de trabajo sentará las bases para que podamos comprender mejor el mecanismo de consenso de la cadena de bloques de Bitcoin.