La cadena de balizas consiste en bloques y estado progresivo; los bloques se producen, firman, propagan a través de la red y luego se usan para actualizar el estado. La siguiente figura muestra las principales interrelaciones:
- Una línea continua indica una relación de agregación y una línea discontinua indica una relación de dependencia. es decir, la parte que emite la flecha se agrega/depende de a qué apunta la flecha:
Este diagrama se basa en la versión 0.10.1 de la especificación Ethereum 2.0. En comparación con la versión 0.11.0 recién lanzada, el contenido descrito en la figura anterior es ligeramente diferente en la parte del cálculo del Dominio, pero la relación general es consistente con la versión anterior.
Crear un nuevo bloque
Para crear un bloque, comience desde la parte superior de la cadena de bloques actual.
Si actualmente hay una cadena de bifurcación corta (por ejemplo, se omite un intervalo de tiempo porque la velocidad de propagación del bloque es demasiado lenta, lo que genera diferencias en los últimos bloques obtenidos por diferentes validadores), el algoritmo de selección de bifurcación, para ayudarlo a seleccionar el " más adecuado" (cuanto mayor sea el peso del mensaje testigo del verificador obtenido, más "adecuado") la cabeza de la cadena de bloques.
Además, incluso si se omiten algunos espacios (no se produjeron bloques), el estado sigue avanzando (pero no hace nada).
El BeaconBlockBody ("cuerpo del bloque de la cadena de balizas") contendrá todas las operaciones que deben realizarse (depósitos de bonos, mensajes de atestación, salidas del validador, etc.). Estas operaciones se utilizarán para cambiar el estado y generar un nuevo BeaconState ("estado de la cadena de balizas").
El intervalo de tiempo, la raíz del bloque principal y el hash de la raíz de la operación (raíz del cuerpo, raíz del cuerpo del bloque) se agregarán al estado como elementos constituyentes de BeaconBlockHeader ("encabezado del bloque de la cadena de balizas"). Cabe señalar que la raíz del estado de uno de los elementos constituyentes de BeaconBlockHeader es cero (0x000...), porque el estado no puede contener recursivamente su propio hash, de lo contrario se producirá un bucle infinito.
Penumbra, una red de capa de privacidad ecológica de Cosmos, completó una ronda inicial de financiamiento de $ 4,75 millones: el 5 de noviembre, Penumbra Labs completó una ronda inicial de financiamiento de $ 4,75 millones, dirigida por Dragonfly Capital, Interchain Foundation, Lemniscap, Robot Ventures, Volt Capital, Figment , Strangelove Ventures, Informal Systems y ZKValidator participaron. Los fondos recaudados se utilizarán para incubar la red de capa de privacidad ecológica Cosmos Penumbra, que permite a los usuarios no exponer información personal, actividades de cuenta y estrategias comerciales durante transacciones, promesas, intercambios de tokens y creación de mercado. [2021/11/5 6:32:44]
El hash raíz del estado final (el estado con el valor 0x000... anterior) se calcula y se agrega al bloque, y luego el hash del bloque obtiene la raíz del bloque ("raíz del bloque") y la une con el Dominio de la cadena esparcida en la red. El significado de Dominio es evitar que el bloque se propague a otras redes principales o redes de prueba debido a colisiones.
Ejecutar transición de estado
Después de que el nodo recibe SignedBeaconBlock ("bloque de cadena de balizas firmado"), debe realizar algunas verificaciones, que incluyen: confirmar la validez de la firma y si existe un estado correspondiente al bloque principal (el bloque principal está determinado por el raíz progenitora "bloque progenitor") tubérculos de raíz” señaló).
Al avanzar la ranura de estado a la ranura del bloque (puede ser la ranura omitida), y luego realizar las operaciones contenidas en BeaconBlockBody (como depósito de depósito, mensaje testigo, salida del validador, etc.), podemos actualizar el estado.
Cabe señalar que cuando se produce un salto de franja horaria, también se generará un nuevo estado interno y se avanzará el estado actual a la siguiente franja horaria, la diferencia es que no habrá otras acciones de ejecución incidentales.
El estado resultante debe ser el mismo que el obtenido por el productor del bloque, por lo que podemos verificarlo con la raíz del estado registrada en el bloque recibido calculando el valor hash del nuevo BeaconState (que contiene 0x000...).
BeaconBlockHeader*
El estado de la cadena de balizas contiene tres de los cuatro componentes básicos del bloque: el intervalo de tiempo, el hash raíz del bloque principal y el hash raíz del BeaconBlockBody (es decir, la operación a realizar).
Al calcular el estado interno, el intervalo de tiempo del último bloque debe ser diferente del intervalo de tiempo del último estado, porque si hay un intervalo de tiempo omitido, el intervalo de tiempo del último bloque y el intervalo de tiempo del estado serán inconsistentes. Por ejemplo, si se omite la ranura 7, aún tendremos la ranura 6 como el bloque más reciente, y tanto la raíz del bloque principal como el hash de la raíz del cuerpo del bloque seguirán apuntando al bloque en la ranura 6.
Estos elementos actúan como un clúster, usando la misma estructura que BeaconBlockHeader, pero usando un estado raíz de bloque que siempre es cero (0x000...), porque los estados no pueden contener recursivamente su propio hash; denotado "BeaconBlockHeader" en el diagrama.
La ventaja de esto es que podemos calcular fácilmente el estado de la raíz del bloque: calculando el hash raíz del estado, luego creando una copia del encabezado del bloque e insertando el estado raíz correcto, y finalmente calculando el hash de todo el bloque. encabezado (este valor será el mismo que el hash del bloque recibido).
Los bloques vinculados aumentan la confianza
Una característica importante de blockchain es que reemplaza la confianza original entre individuos (contrapartes de transacciones o terceros) con confianza sistemática (la mayoría de los procesadores se alcanzan a través de algoritmos).
La confianza sistemática se puede describir por las siguientes características:
1. Una gran cantidad de procesadores (por ejemplo, cadenas públicas): cuanto más descentralizados están estos procesadores, más confiables son.
2. Diversidad de clientes (por ejemplo, equipo de desarrollo): si hay varios clientes para que los usuarios elijan, más pueden evitar el control centralizado del algoritmo.
3. Código abierto: permite tanto la inspección pública del algoritmo como la bifurcación (si la mayoría de la gente quiere cambiar la dirección del sistema).
El encadenamiento de bloques también aumenta la confianza en el sistema, porque cuanto antes se produce un bloque, más peso tiene. En libros de contabilidad distribuidos generales/bases de datos distribuidas, dado que no se requiere una confianza sistemática, dichos enlaces no son necesarios.
Un ataque del 51% solo en el último bloque podría tener éxito, pero si desea cambiar un bloque hace 100 espacios, el atacante debe tener un procesador que controle una gran mayoría durante esos 100 espacios (muy difícil).
Para los ataques de bifurcación de corto alcance, toda la red puede tener dudas sobre "qué cadena es la cadena principal"; por ejemplo, dos bloques en competencia se propagan a través de la red a diferentes velocidades.
Pero la buena noticia es que, dado que los bloques están vinculados entre sí, la cadena principal real se confirmará antes y otras cadenas bifurcadas ya no tendrán la oportunidad de dar marcha atrás.
De esta manera, se puede garantizar la seguridad y el sistema puede permitir tranquilamente a los verificadores retirar sus propios fondos sin preocuparse por los ataques de "nada en juego".
Título original: Popular Science | Transiciones de estado en la cadena de balizas Ethereum 2.0
Enlace original:
https://sgryphon.wordpress.com/2020/03/17/eth-2-0-state-transition/ Autor: Sly Gryphon Traductor y corrector: IAN LIU& A Jian. { }
Tags:
El Banco de Inglaterra permanece abierto al posible papel de las empresas privadas en la emisión de CBDC.En un seminario web el martes, Ben Dyson.
El 7 de abril, las acciones del concepto de moneda digital aumentaron en todos los ámbitos, y 16 de las 32 acciones tenían su límite diario, y el aumento general del sector llegó al 7,21%. Al cierre del día.
Según los datos de Feixiaohao, el 8 de abril, el volumen de operaciones de 24 horas de Huobi Global fue de 80.865 millones de yuanes, ocupando el primer lugar en el ranking de operaciones. De hecho.
La cadena de balizas consiste en bloques y estado progresivo; los bloques se producen, firman.
Se estima que a las 19:45 hora de Beijing, BCH completará oficialmente la primera reducción a la mitad, y la recompensa del bloque será de 6.
El objetivo del proyecto Filecoin Dev Grant es estimular el nacimiento de nuevos proyectos e invitar a los colaboradores a explorar herramientas y experimentos técnicos que ayudarán a expandir el ecosistema inicial de.
Jinjin Finance News, la Fundación Maker anunció el lanzamiento de 13 propuestas de mejora de Maker.