Tecnología innovadora PCHAIN: algoritmo de consenso PDBFT 2.0
PDBFT2.0 es un protocolo de tolerancia a fallos bizantinos (BFT) implementado en PChain, una plataforma de cadena de múltiples bloques que procesa más de 100k transacciones de contratos inteligentes por segundo en producción. PDBFT2.0 se basa en el protocolo clásico de PBFT, con 3 mejoras principales: (1) PDBFT2.0 logra el volumen de comunicación en el peor de los casos, en contrato con la O (n4) de PBFT; (2) el líder de cada ronda en PDBFT2.0 se selecciona mediante una función aleatoria verificable (VRF), que evita que el líder sea atacado por DDos; (3) en el caso ordinario, PDBFT2.0 implica solo una ronda de votación en lugar de dos en PBFT, lo que reduce la sobrecarga de comunicación y el tiempo de confirmación.
Es bien sabido que PBFT es un protocolo con tres fases: preparación previa, preparación y compromiso. En la fase de preparación y compromiso, cada validador debe emitir su voto para el bloque propuesto. Al recibir 2f + 1 voto de compromiso, cada validador finaliza el bloque. Debido a la transmisión de votos, la complejidad de la comunicación es O (n²). En su lugar, hay un colector para recoger votos de todos los validadores en PDBFT2.0. Además, PDBFT2.0 adopta la firma de umbral para lograr una comunicación lineal. Una firma de umbral (n, t) en un mensaje m es una firma agregada de tamaño constante que pasa la verificación si y solo si al menos t de los n participantes firman m. Tenga en cuenta que el verificador no necesita conocer las identidades de los firmantes t.
Cada recolector deriva una firma de umbral (n, 2f + 1) después de obtener 2f + 1 votos. La firma de umbral se puede ver como una firma única con tamaño constante. Después de eso, el recolector difunde la firma de umbral y cada validador puede confirmar que más de 2f + 1 validadores han votado por el bloque propuesto a través de la firma de umbral de verificación.
En la PBFT clásica, se implementan dos rondas de votación para garantizar la seguridad y la vida del protocolo. Sin embargo, en PDBFT2.0, una sola ronda de votación es suficiente sin perder seguridad o vitalidad. Señala que los bloques están encadenados por un valor de hash en blockchain. Por lo tanto, el voto para el bloque actual es también la confirmación del bloque anterior. Por lo tanto, un voto puede ser visto como dos votos diferentes. En PDBFT2.0, cada validador simplemente envía un voto para el bloque propuesto. Si el validador recopila más 2f + 1 votos para el bloque actual, el bloque anterior se finaliza a la vez. Vemos que el voto para el bloque actual es la preparación-voto y el compromiso-voto para el bloque actual y el bloque anterior al mismo tiempo. Por lo tanto, cada bloque se finaliza después de dos rondas de votación que prometen seguridad. Además, cada bloque solo consume una ronda de votación en promedio.
De manera similar a PBFT, el subprotocolo de cambio de vista de PDBFT2.0 se activa cuando los validadores no pueden llegar a un consenso en una sola ronda. Esto puede ser debido a una red asíncrona (por ejemplo, cuando más de 1 / 3n nodos están fuera de línea), o la presencia de recolectores / líderes maliciosos. PDBFT2.0 maneja un cambio de vista con el algoritmo de cambio de vista lineal (LVC). La esencia de LVC es que el líder de la próxima ronda envía su certificado de confirmación más alto en lugar de todos los certificados de confirmación, lo que reduce el volumen de transmisión durante un cambio de vista en un factor de O (n). En PBFT o tendermint, cada líder se decide en una programación de round-robin que puede ser predicha por el adversario. PDBFT2.0 evita esta situación seleccionando recolectores (líderes) al azar, usando un VRF. Un VRF es un generador pseudoaleatorio cuya salida es verificable (es decir, si un número dado es realmente la salida del VRF), aleatorio, distribuido uniformemente e impredecible de antemano. Con líderes aleatorios, el líder de la próxima ronda es impredecible y el adversario no puede atacar al líder por adelantado.
Website:https://PCHAIN.org/
Telegram:https://t.me/PCHAIN_org
Telegram español:https://t.me/pchain_spain
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by giobarco from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit