Algoritmo de consenso de blockchain POA (Prueba de actividad)
Algoritmo de potencia:/p/b23cbafbbad2
Algoritmo POS:/wgnihao/article/details/80635162 p>
En comparación con otros algoritmos, el algoritmo POA puede mejorar la topología de la red, mantener la proporción de nodos en línea, requerir menos costos de transacción y reducir el consumo de energía en el proceso de identificación del algoritmo.
La red requerida por el algoritmo POA también incluye dos tipos de nodos, mineros y participantes comunes, entre los cuales los participantes comunes pueden no estar en línea todo el tiempo. En el algoritmo POA, primero el minero construye un encabezado de bloque y selecciona N monedas del encabezado del bloque. Los propietarios de estas N monedas participan en el proceso posterior de inspección y generación de bloques.
Se puede ver que el algoritmo POA no solo está relacionado con la potencia informática, sino que también la elección posterior de n participantes está completamente determinada por el número total de monedas que poseen los participantes en la red. Cuanto más dinero tenga un participante, mayores serán sus posibilidades de ser seleccionado como uno de los N participantes posteriores. La condición necesaria para la posterior participación de N participantes es que estos N participantes deben estar en línea, lo que también es el origen del nombre POA. El mantenimiento del algoritmo POA depende de nodos activos en la red.
Un proceso básico ideal del algoritmo POA es que, similar al protocolo POW, el minero construye un encabezado de bloque que cumple con los requisitos de dificultad y calcula la cantidad de N monedas a partir del encabezado de bloque obtenido por el minero. Estas monedas pueden ser obtenidas por los participantes actuales. El minero envía este encabezado de bloque a estos N participantes, entre los cuales los primeros N-1 participantes verifican y firman este bloque, y el último N-ésimo participante verifica y agrega la transacción a este bloque, libera este bloque y este bloque se completa. .
La siguiente figura muestra un proceso ideal:
En la operación real, no hay garantía de que todos los participantes de la red estén en línea, y los participantes que no están en línea no pueden verificar ni firmar. Los encabezados de bloque que no se puedan verificar ni firmar se descartarán.
En otras palabras, en la operación real, el minero debe construir un encabezado de bloque y transmitirlo a todos los participantes para su firma, mientras continúa reconstruyendo un nuevo encabezado de bloque para evitar la N derivada del encabezado de bloque anterior. Uno de los participantes está desconectado, lo que provoca que se descarte el bloque.
Entonces, en este caso, la confirmación de un bloque no solo está relacionada con la potencia informática de los mineros, sino también con la proporción de conexión en la red.
En comparación con el POW puro, cuando se genera un bloque al mismo tiempo que Bitcoin (POW) durante 10 minutos, el POA sufre pérdidas debido a los participantes fuera de línea. Por lo tanto, la cantidad de bloques que los mineros podrán construir en 10 minutos será mayor, lo que significa que se reducirá el límite de dificultad de las cabezas de bloque y también se reducirá la pérdida de energía causada por los mineros durante el proceso de minería.
En comparación con POS puro, se puede ver que el proceso de bloqueo de POA no vincula la información relevante en el proceso de bloques de construcción, lo que puede reducir significativamente la cantidad de información redundante generada en la cadena de bloques para mantener el protocolo.
Esta sección analiza algunas configuraciones de parámetros en el protocolo de apelación.
La selección del número de n participantes que verifican el encabezado del bloque y construyen el bloque después de que el minero construye el encabezado del bloque es similar a la selección del tiempo de bloque de cada bloque en Bitcoin. En Bitcoin, se elige 10 minutos como tiempo esperado para cada bloque y se adapta ajustando dinámicamente la dificultad.
El valor de n aquí también se puede seleccionar o ajustar dinámicamente. El ajuste dinámico requiere un contenido de protocolo más complejo, lo que puede provocar una expansión de los datos en la cadena de bloques. Los protocolos complejos también aumentan la posibilidad de que los atacantes ataquen. Además, actualmente no hay forma de demostrar qué beneficios puede aportar el ajuste dinámico. El ajuste estático puede obtener un valor de N=3 en análisis posteriores (4 análisis de seguridad), que es más apropiado.
Como se puede ver en la descripción anterior, además de los mineros, hay N propietarios de monedas derivados del encabezado del bloque. Estos participantes también deberían recibir algún incentivo para permanecer en línea después de que se construya un nuevo bloque.
La proporción de desajuste entre mineros y participantes está relacionada con el estado en línea de los participantes. Los incentivos otorgados a los participantes estuvieron estrechamente relacionados con su entusiasmo por permanecer en línea. Cuantos más participantes estén en línea, mejor será la estabilidad de la red. Por lo tanto, cuando no hay suficientes participantes en línea en la red, se puede aumentar el porcentaje de incentivos de los participantes, estimulando así a más participantes a conectarse.
¿Cómo determinar el estado en línea del participante actual? Cuando el último participante pueda construir un bloque, el encabezado del bloque que se construyó pero se descartó se agregará al bloque. Si la cantidad de bloques descartados es demasiado grande, significa que la cantidad de personas en línea es demasiado baja y es necesario ajustar la proporción de intercambio.
Al mismo tiempo, también es necesario considerar la división entre el último enésimo participante y otros participantes. El enésimo participante debe agregar la transacción al bloque, es decir, mantener el grupo UTXO, y el enésimo participante también debe agregar el encabezado del bloque descartado al bloque recién construido.
Para animarlos a agregar los encabezados de bloque descartados a los bloques recién construidos, se puede agregar un pequeño incentivo apropiado en función de los encabezados de bloque agregados. Aunque agregar más hombres de madera puede aumentar la proporción de participación en la siguiente ronda, debería ser suficiente para motivar a los participantes a agregar al bloque hombres de madera no utilizados (aquí es imposible que los participantes agreguen más hombres de madera para aumentar su participación, cada uno hombre de madera significa la carga de trabajo de un minero).
Un participante no puede construir un bloque sin mantener un pool UTXO, pero puede participar en las primeras firmas N-1. Por lo tanto, para alentar a los participantes a mantener el grupo UTXO, como último participante en construir un bloque, se le deben dar más incentivos, por ejemplo, el doble que los demás participantes.
De la descripción de 3.2, podemos saber que un usuario debe estar en línea y mantener el grupo UTXO para obtener tantos beneficios como sea posible. Este mecanismo llevará inevitablemente a algunos usuarios a confiar sus cuentas a una institución centralizada. Esta organización permanece en línea en todo momento, mantiene sus cuentas para los usuarios, participa en la construcción de bloques y obtiene beneficios cuando es seleccionada como participante en los bloques de construcción. Finalmente, las organizaciones dividen los ingresos de alguna forma.
Como se mencionó anteriormente, los participantes deben firmar con sus propias claves. Después de confiarlo a una organización, la organización puede usar esta clave para firmar el bloque y también puede usar esta clave para consumir la propiedad de los usuarios. Aquí puedes utilizar una clave con un coste limitado. Esta clave tiene dos funciones: una es consumir parte de la propiedad en la cuenta y la otra es transferir toda la propiedad a la cuenta designada. Puede utilizar esta clave al conservarla. Después de que se le informe que parte de la propiedad se ha gastado y de garantizar la seguridad de la propiedad, puede transferir inmediatamente toda la propiedad a otra cuenta suya.
Como se puede ver en el análisis anterior, la seguridad de POA está relacionada con la potencia informática y el capital propiedad del atacante. Suponiendo que el atacante posee un cierto porcentaje de la participación en línea, la potencia informática del atacante tendría que ser el doble que la de todos los demás para llegar a la bifurcación. Suponiendo que la proporción de participación total del atacante y la proporción en línea de usuarios honestos en la red son 0, la potencia informática del atacante debe ser el doble que la de todas las demás potencias informáticas para implementar el ataque.
La tabla de análisis de ataques es la siguiente:
Como se puede ver en el análisis anterior, en comparación con otros algoritmos, el algoritmo POA puede mejorar la topología de la red y mantener la proporción de usuarios en línea. nodos con menores costos de transacción y reducir el consumo de energía en el proceso de identificación del algoritmo. Al mismo tiempo, el coste del ataque del protocolo PoA es mayor que el del protocolo PoW puro de Bitcoin.
Cita: Prueba de actividad: Ampliación de la prueba de trabajo de Coin con prueba de pila