Las redes blockchain basadas PoW son propensas a ataques del 51% en sus primeras etapas cuando la tasa de hash es baja, especialmente cuando hay grandes cantidades de potencia de computación en la nube disponibles a bajo costo. ETC, Grin y Verge han enfrentado ataques del 51% durante el último año.
Para evitar posibles ataques del 51%, Conflux Network implementará una blockchain basada en PoS independiente. Los participantes en el consenso de PoS firmarán el bloque pivote del Tree-Graph en intervalos regulares. El bloque pivote con suficientes firmas estará incluido en la blockchain pivote por todos los mineros de PoW, incluso si su bloque hermano tiene más peso. En pocas palabras, cuando PoS asigna un bloque pivote, todos los mineros de PoW deben seguirlo.
Esto significa que cuando el consenso de PoS vota por un bloque dinámico, incluso si un atacante del 51% intenta modificar este bloque, el nodo de PoW no lo aprobará.
Conflux Network requiere el consenso de PoS para usar su “bloque de asignación de pivote” de manera restringida. Será necesario confirmar un bloque de acuerdo con la regla de PoW durante un cierto período de tiempo, y luego el nodo de PoS de confianza firmará el bloque. Esto significa que los mineros de PoW aún completan la orden de bloque y la confirmación para la estructura del Tree-Graph.
La siguiente instrucción proporcionará claridad sobre el concepto básico con respecto a la finalidad de PoS. En este documento, la cadena Conflux se refiere a la cadena PoW actual.
Cuenta PoS:
Dirección (Address)
En general, el modelo de cuenta en blockchain es: la llave privada genera una llave pública; la llave pública genera una dirección de cartera.
El modelo de cuenta en la blockchain PoS es similar al de la blockchain PoW. Sin embargo, hay dos llaves privadas llamadas llave privada BLS y llave privada VRF en la blockchain PoS en lugar de una. La dirección se genera a través de dos cálculos de clave pública keccak-hash (con salida de 256 bits)
Cartera
La blockchain PoS en Conflux solo evita un posible ataque del 51% y aumenta la seguridad de la red. Por lo tanto, a excepción de las funciones básicas como votar para el bloque dinámico y elegir el nodo de consenso, la blockchain PoS no contiene otras funciones generales de la blockchain (por ejemplo, enviar transacciones, ejecutar contratos inteligentes…). La cuenta PoS no tiene el concepto de balance, y la función principal de la cuenta PoS es mantener el consenso de Conflux.
Cada cuenta de PoS es el mantenedor de la red Conflux, no el usuario general. Cada cuenta de PoS debe operar un nodo completo de Conflux individual. El código principal conflux-rust instalará internamente las funciones de cartera de una cuenta PoS, como:
- Al ejecutar el nodo Conflux por primera vez, si la configuración determina la operación utilizando el modelo de cuenta de PoS, se generará automáticamente una llave privada de PoS y requerirá que el usuario establezca una contraseña. La llave privada se cifrará con la contraseña y se guardará como un archivo local.
- Al reiniciar el nodo Conflux y se detecta un archivo de llave privada cifrada, los usuarios deberán ingresar la contraseña para desbloquear el archivo de la llave privada.
- La ejecución de un nodo Conflux enviará transacciones automáticamente a través del consenso de PoS; el usuario no requiere pasos adicionales.
Vincular la cuenta de PoW:
Los usuarios deberán vincular su cuenta PoW a la cuenta PoS cuando creen por primera vez una cuenta PoS; este proceso se llama “registro”. La cuenta PoW otorga su derecho de voto a la cuenta PoS vinculada a través del replanteo y la posición bloqueada de PoS. El proceso se completa mediante la interacción con el contrato interno específico en la cadena Conflux. Solo una cuenta de PoS con derechos de voto puede convertirse en un nodo de consenso de PoS. Los incentivos del consenso de participación de PoS se distribuirán a su cuenta PoW vinculada.
Proceso de vinculación:
- Cuando registras una cuenta de PoS, conflux-rust escuchará automáticamente la información de registro y realizará la operación correspondiente. El usuario no requiere pasos adicionales. La sincronización del registro de la blockchain Conflux a la blockchain PoS tarda unos 10 minutos. Una vez completada la sincronización, las cuentas de PoS pueden participar en el consenso de PoS.
- Los usuarios pueden bloquear en stake más tokens CFX en la blockchain Conflux para aumentar su recuento de votos de PoS.
Desvincular proceso:
- Las cuentas vinculadas a PoW pueden cancelar todo o parte del peso de voto de su cuenta PoS a través de la interacción con el smart contract interno. A esto se le llama “retirarse”. Los usuarios pueden retirarse después de 7 días de vincular. Los CFX se desbloquearán 7 días después de iniciar el proceso.
- El CFX desbloqueado aparecerá en estado de staking, pero los usuarios pueden retirar sus CFX en cualquier momento. (Aviso: la blockchain Conflux PoS genera 1 bloque aproximadamente cada 1 minuto. Los “7 días” mencionados anteriormente y a continuación se referirán al número de bloque de PoS correspondiente. Por ejemplo, los 7 días después de el retiro se refieren a 10080 bloques de PoS después de la transacción de retiro. En la práctica, la blockchain PoS genera bloques más rápido o más lento que la frecuencia de 1 bloque / minuto, y el tiempo necesario depende del número de bloque real).
Consenso de PoS:
Comité de Consenso:
- El consenso de PoS lo construye un comité que tiene como máximo 300 votos. El comité operará la blockchain PoS a través del protocolo de consenso Hotstuff.
- Los miembros del comité pueden votar por el hash del bloque pivote de la blockchain de Conflux. Se registrará el hash del bloque dinámico con más de 2/3 votos. El bloque pivote que recopila todas las firmas se denomina decisión de pivote.
- Los miembros del comité solo firman los bloques que han sido confirmados durante al menos 5 minutos bajo el protocolo PoW.
Elección del Comité:
- El comité consta de 300 lugares. Cada miembro del comité sirve durante 6 horas. Aproximadamente una sexta parte de los puestos del comité (50 votos) se someten a elecciones cada hora.
- Las cuentas de PoS participarán en la elección a través de VRF (función aleatoria verificable).
- La semilla VRF será generada por el hash del bloque de decisión pivote cuando comience la elección.
- La elección de cada término del comité comenzará con 1.5 horas de anticipación y finalizará con 0.5 horas de anticipación.
- Al elegir, cada voto para una cuenta de PoS se considerará como un candidato individual. Si una cuenta de PoS tiene 10 votos, se considerará como 10 candidatos que participan en la elección. Si la cuenta tiene 2 votos elegidos, la cuenta tendrá 2 pesos de voto en este término del comité; el resto de 8 votos pueden participar en las próximas elecciones.
- Una dirección de PoS puede contener varios votos. Al participar en las elecciones, cada voto del candidato se adjuntará a una salida VRF (función aleatoria verificable), que es uniformemente aleatoria e independiente. Los 50 votos con salida mínima ganarán la elección.
- Hemos realizado optimizaciones del sistema en las que, siempre que la cuenta PoS envíe 1 transacción, todos los votos se considerarán candidatos. Si se eligen varios votos, la cuenta de PoS solo necesita firmarse una vez para participar en el consenso.
Mecanismo de incentivos:
Entre las elecciones de 2 comités, las cuentas de PoS recibirán puntos en función de sus diferentes interacciones, 6,000,000 de puntos como máximo. Durante este tiempo, los intereses generados por la blockchain Conflux se dividirán a partes iguales en 6,000,000 de acciones y se enviarán a las cuentas PoW vinculadas. Si los puntos generados son inferiores a 6,000,000, se quemarán los intereses no enviados.
Composición de puntos:
- Al participar en la elección del comité, los votos dentro de los 10,000 valores hash más bajos recibirán 120 puntos cada uno. (1,200,000 en total como recompensa por participación)
- Los miembros del comité recibirán 90,000 puntos por cada voto. 50 votos recibirán 4,500,000 puntos en total.
- Al convertirse en el líder del bloque PoS, cada bloque recibirá 3,000 puntos; 60 bloques en un total de 180,000 puntos.
- Cada bloque de PoS requerirá la firma de 201 de los 300 miembros del comité. Sin embargo, el líder puede empacar más de 200 firmas de miembros. Alentamos al líder a empacar más firmas para demostrar que cada miembro del comité participa activamente en el consenso.
- Después de 200 firmas, se premiarán 20 puntos por cada firma, 2,000 puntos como máximo. 60 bloques en un total de 120,000 puntos.
Interés generado:
- El interés de cada bloque de la blockchain de Conflux se genera de la siguiente manera: sqrt (valor en staking total * circulación total de CFX) * 4% / número de bloque de 1 año de Conflux
- Supón que el PoS no ha comenzado las próximas elecciones y distribuye las acciones de interés después de 7,200 bloques sucesivos de la blockchain Conflux (alrededor de 1 hora). En ese caso, no se generarán nuevos intereses hasta que ocurran las próximas elecciones. El propósito de esto es evitar que los nodos de PoS ralenticen intencionalmente el consenso para obtener más interés.
Penalización:
- Si un usuario no participa en la elección del comité, no habrá incentivos ni sanciones.
- Para el miembro del comité que no firme después de 60 bloques sucesivos, el miembro del comité será retirado de forma coercitiva. Todos los votos estarán en la etapa de espera de desbloqueo y perderán los derechos de voto.
- Si la cuenta de PoS firma para dos bloques de PoS que tienen la misma altura de bloque, su token CFX se bloqueará permanentemente. Sin embargo, los tokens después de la etapa de espera de desbloqueo no se verán afectados. Esto es operado por el código y se basa en el protocolo de consenso de PoS. Un usuario honesto nunca realizará tal acción.