La Evolución Hacia la Verificabilidad Trivial

Avanzado11/29/2024, 3:11:12 AM
En este artículo, repasaremos los tres tipos clave de nodos que darán forma al futuro de la red Ethereum: nodos sin estado, nodos con estado y nodos completos/archivo. Examinaremos cómo los nodos sin estado pueden permitir la verificación sin confianza de nuevos bloques utilizando pruebas de conocimiento cero, cómo los nodos con estado pueden proporcionar acceso rápido y sin confianza al estado actual de Ethereum, y cómo los nodos completos/archivo pueden almacenar toda la historia de la cadena hasta el génesis.

A medida que la red de Ethereum continúa evolucionando y madurando, el concepto de diferentes tipos de nodos se vuelve cada vez más importante para entender. Sin embargo, la realidad es que la mayoría de los usuarios no están dispuestos a poner esfuerzo para ejecutar un nodo, a pesar de que los requisitos de hardware son alcanzables para muchos. En el "juego final" del desarrollo de Ethereum, es crucial que los usuarios puedan verificar la integridad del estado y la disponibilidad de datos sin necesidad de tener un extenso conocimiento técnico o recursos. Después de todo, un blockchain sin verificabilidad es simplemente una base de datos ineficiente.

En este artículo, repasaremos los tres tipos clave de nodos que darán forma al futuro de la red Ethereum: nodos sin estado, nodos con estado y nodos completos/archivo. Examinaremos cómo los nodos sin estado pueden permitir la verificación sin confianza de nuevos bloques mediante pruebas de conocimiento cero, cómo los nodos con estado pueden proporcionar acceso rápido y sin confianza al estado actual de Ethereum, y cómo los nodos completos/archivo pueden almacenar toda la historia de la cadena desde el comienzo. Al comprender los roles y los compromisos de cada tipo de nodo, podemos trabajar hacia un ecosistema Ethereum más descentralizado, seguro y escalable.

Nodos de estado final sin estado

Como ya hemos visto hoy, la mayoría de los usuarios no están dispuestos a poner mucho esfuerzo en ejecutar ningún tipo de nodo, aunque tanto para Bitcoin como para Ethereum los requisitos de hardware son alcanzables para la mayoría de los usuarios avanzados de ambas cadenas. Aquí, se define como 'usuario avanzado' a alguien con una cantidad decente de activos en la cadena, piénselo como cualquier usuario donde el costo de ejecutar un nodo no es el obstáculo.

La razón principal es probablemente una combinación del hecho de que la gran mayoría de los usuarios no se preocupan por hacerlo, no están dispuestos a gastar unos $100 en el hardware o no tienen los conocimientos técnicos sobre cómo ejecutarlo. Aunque tanto Bitcoin como Ethereum han avanzado mucho para facilitarlo. Aún es una tarea bastante compleja para un usuario no técnico.

Una Visión para un Ethereum Sin Estado

Soy de la opinión de que en el "Endgame" de cada cadena de bloques, los usuarios tendrán que verificar la integridad del estado y la disponibilidad de los datos sin que necesariamente tengan que saber cuáles son esas cosas. La buena noticia es que esta visión es totalmente alcanzable con suficiente ingeniería (tecnología de conocimiento cero y un poco demuestreo de disponibilidad de datos).

En este final del juego, básicamente todas las carteras que valga la pena usar tendrán un nodo sin estado que, para cada nuevo bloque que se añada a la cadena, puede consultar a cualquier nodo completo en la capa p2p para obtener el último bloque de encabezado y una prueba de conocimiento cero de que los cambios de estado desde el bloque de encabezado anterior se ejecutaron correctamente, solicitar algunas muestras de datos aleatorios de algunos pares para obtener una confianza cercana al 100% de que todos los datos (blobs y datos de bloques de ejecución) se han publicado y también una prueba de conocimiento cero que demuestre que la red ha llegado a un consenso y ha finalizado el bloque.

El ancho de banda/computación necesario para hacer esto es muy pequeño y puede hacerse completamente en un teléfono (o incluso en un reloj inteligente como@drakefjustinEl tipo de nodo mencionado anteriormente se clasificaría como un tipo de nodo "sin estado", ya que el nodo puede verificar nuevos bloques sin necesidad de tener el estado actual localmente y en su lugar confiar en diferentes tipos de pruebas para verificar nuevos bloques. (tal como le encanta mencionar a @drakefjustin).

Estas pruebas no tienen que ser a prueba de zk. Tendremos una validación sin estado de la ejecución mucho antes de que podamos hacer lo que describí anteriormente con zk-proofs para la ejecución. De hecho, la ejecución sin estado se puede hacer hoy en día, pero es MUY ineficiente con la estructura actual de Merkle-Patricia-Tree, las pruebas de testigos son demasiado grandes para ser prácticas. (véase @peter_szilagyitweet) de 's).

Ver el tamaño del “testigo” aquí. Este es el principal problema con la ejecución sin estado con el actual árbol Merkle-Patricia, muchos de los bloques en esta captura de pantalla tienen un tamaño muy inferior a 100kb y la prueba que se requiere para permitir la verificación sin estado es a menudo más de 50 veces más grande que el propio bloque.

Estructura MPT de Ethereum

Sin embargo, Ethereum actualizará su estructura de árbol de estado a algo diferente a la estructura actual de Merkle-Patricia-Tree en el futuro. Muchos de ustedes pueden haber oído hablar de los árboles Verkle que han estado en el plan de trabajo durante años (Si no, entonces lean nuestro artículo -Árboles Verkle para el resto de nosotros: Parte 1). Permitirían la creación de clientes sin estado que sean prácticos, ya que la naturaleza de la estructura de árbol Verkle permite testigos/pruebas muy pequeños.

Árbol de Merkle vs. Árboles Verkle

Un problema importante que tienen los árboles Verkle es que no son seguros cuánticamente, lo que significa que, en el mejor de los casos, serán una solución temporal hasta que una solución permanente para la estructura del árbol de estado sea madura y/o lo suficientemente eficiente. Lo más probable es que la solución final sea un árbol de hash binario probado por STARK y es muy posible que se omitan los árboles Verkle a favor de alguna variante de un árbol de hash binario probado por STARK. (meme relevante de @VitalikButerin)

Una opción muy interesante que puede tener un nodo sin estado es la opción de no ser completamente sin estado. Como ejemplo, sería posible almacenar localmente el estado que encuentres relevante para tu caso de uso (suponiendo que tu cliente admita esta función).

Supongamos que tienes tus activos distribuidos en varias direcciones, activos y protocolos DeFi. En ese caso, podrías tener el estado de todo lo relevante para tu caso de uso almacenado localmente en el disco, utilizando solo una cantidad trivialmente pequeña de espacio en disco. Incluso hacer un seguimiento del estado completo de múltiples protocolos DeFi grandes solo ocuparía unos pocos gigabytes y considerando que básicamente todos los teléfonos más nuevos vienen con 128 GB+ de almacenamiento, no solo es posible, sino potencialmente práctico para un usuario mantener todo el estado que encuentren útil escrito en el almacenamiento flash de su teléfono móvil.

(Nota rápida sobre clientes ligeros: En un mundo donde los clientes sin estado pueden verificar eficientemente las transiciones de estado y el consenso de manera trivial, siento que realmente no habrá un caso de uso para un cliente ligero tradicional que dependa de una suposición de mayoría honesta).

Nodos Estatales de Endgame

Los nodos estatales solo mantienen el estado actual y muy reciente, eliminan todo lo anterior a cierta edad (ver laeip-4444propuesta). El estado actual requiere la construcción de bloques localmente y la construcción de bloques locales es algo que los nodos sin estado no son capaces de hacer.

Los nodos estatales no deben confundirse con los nodos completos ya que un nodo estatal no mantendrá todo el historial de la cadena porque esto se volverá muy intensivo en datos en el futuro. Un nodo estatal es útil para cualquier usuario que desee acceso rápido y sin confianza al estado actual de Ethereum, ya sea para consultar datos del estado, construir bloques o utilizar este tipo de nodo para apostar.

Preservar la posibilidad de ejecutar nodos con estado en hardware de consumidores es un objetivo muy importante que creo que nosotros en la comunidad de Ethereum debemos preservar, incluso cuando los nodos sin estado sean muy ligeros y maduros. Una de las razones principales de esto es que todos los nodos sin estado dependen de los nodos con estado para crear el testigo que se necesita para la validación sin estado de los nuevos bloques.

Tener acceso al estado actual también es necesario para saber si una transacción que está en el mempool es válida o no y, por lo tanto, es muy importante que tengamos un conjunto muy descentralizado de nodos estatales en la red que puedan garantizar garantías de resistencia a la censura muy fuertes con algún tipo de diseño de lista de inclusión.

La buena noticia es que con la expiración del estado podemos hacer mucho más fácil ejecutar un nodo con estado, ya que el estado con el que nadie ha interactuado durante un tiempo se puede podar del disco del nodo. Cualquiera que quiera interactuar con un estado que ha expirado tendrá que traer un testigo (esencialmente una prueba de Merkle) para traer de vuelta el estado expirado al estado actual. Cualquier persona con acceso al historial de la cadena puede construir estos tipos de pruebas de manera segura para traer de vuelta el estado expirado. En el momento de escribir esto, el estado de Ethereum se acerca a los 300 GB y hasta que se implemente alguna forma de expiración del estado, el tamaño del estado seguirá creciendo en una tendencia más o menos ascendente.

(Aquíes un artículo muy bueno de@paradigmque profundiza en el tema del crecimiento del estado y la expiración del estado)

Nodos completos/archivo

Con el fin de este artículo voy a agrupar los nodos completos y de archivo juntos, ya que un nodo completo normal, con la información que ha escrito en el disco localmente, puede calcular todos los datos que un nodo de archivo ha escrito en el disco. La diferencia es que un nodo completo poda el estado que ya no es el estado más reciente. No se puede consultar, por ejemplo, “¿cuál era el saldo de ETH de la cuenta X en el bloque Y hace unos 5 años” desde un nodo completo normal, mientras que un nodo de archivo respondería a esa consulta en milisegundos.

Fácil guía sobre Ethereum Full Node Vs Archive Node por @0xZeeve

Dicho esto, teóricamente es posible calcular la respuesta a esta consulta a partir de los datos que un nodo completo ha escrito en el disco (todo el historial de la cadena), pero no muchos clientes de ejecución admiten esta función. Creo que es irrazonable pensar que muchos usuarios, incluso los sofisticados, ejecutarán un nodo completo/archivado en, digamos, 10 años, para que esta sea una opción razonable tendríamos que limitar el rendimiento de L1 a niveles completamente irrazonables cuando podemos obtener mucho más rendimiento en L1 con mínimos compromisos. Cuando la mayoría de los usuarios puedan verificar fácilmente nuevos bloques con una prueba zk, creo que es un compromiso que vale la pena perseguir cuando los beneficios son tan grandes.

Tal vez podamos obtener clientes de ejecución que puedan funcionar eficientemente en HDD y hacer que sea práctico almacenar incluso cientos de TB de estado archivado de manera relativamente económica. Esto podría permitir a los usuarios que, por cualquier motivo, deseen archivar todo Ethereum hacerlo. Sé que uno de los objetivos de Erigon es permitir que se ejecute un nodo de archivo completo en HDD.

Una Nueva Era para Ethereum

Al final, el futuro de Ethereum será moldeado por los nodos que conforman su red. Al abrazar nodos sin estado como la opción más realista para la mayoría de los usuarios, pero aún siendo pragmáticos y reconociendo el valor de una fuerte presencia de nodos con estado, y nodos completos/archivo en la red, podemos crear un equilibrio perfecto entre descentralización, seguridad y escalabilidad que beneficie a todos los usuarios.

Descargo de responsabilidad:

  1. Este artículo ha sido reimpreso de [Investigación 2077)]. Todos los derechos de autor pertenecen al autor original [@centauridoteth]. Si hay objeciones a esta reimpresión, por favor contacte al gate Aprenderequipo, y ellos lo manejarán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. El equipo de gate Learn tradujo el artículo a otros idiomas. Está prohibido copiar, distribuir o plagiar los artículos traducidos a menos que se mencione.

La Evolución Hacia la Verificabilidad Trivial

Avanzado11/29/2024, 3:11:12 AM
En este artículo, repasaremos los tres tipos clave de nodos que darán forma al futuro de la red Ethereum: nodos sin estado, nodos con estado y nodos completos/archivo. Examinaremos cómo los nodos sin estado pueden permitir la verificación sin confianza de nuevos bloques utilizando pruebas de conocimiento cero, cómo los nodos con estado pueden proporcionar acceso rápido y sin confianza al estado actual de Ethereum, y cómo los nodos completos/archivo pueden almacenar toda la historia de la cadena hasta el génesis.

A medida que la red de Ethereum continúa evolucionando y madurando, el concepto de diferentes tipos de nodos se vuelve cada vez más importante para entender. Sin embargo, la realidad es que la mayoría de los usuarios no están dispuestos a poner esfuerzo para ejecutar un nodo, a pesar de que los requisitos de hardware son alcanzables para muchos. En el "juego final" del desarrollo de Ethereum, es crucial que los usuarios puedan verificar la integridad del estado y la disponibilidad de datos sin necesidad de tener un extenso conocimiento técnico o recursos. Después de todo, un blockchain sin verificabilidad es simplemente una base de datos ineficiente.

En este artículo, repasaremos los tres tipos clave de nodos que darán forma al futuro de la red Ethereum: nodos sin estado, nodos con estado y nodos completos/archivo. Examinaremos cómo los nodos sin estado pueden permitir la verificación sin confianza de nuevos bloques mediante pruebas de conocimiento cero, cómo los nodos con estado pueden proporcionar acceso rápido y sin confianza al estado actual de Ethereum, y cómo los nodos completos/archivo pueden almacenar toda la historia de la cadena desde el comienzo. Al comprender los roles y los compromisos de cada tipo de nodo, podemos trabajar hacia un ecosistema Ethereum más descentralizado, seguro y escalable.

Nodos de estado final sin estado

Como ya hemos visto hoy, la mayoría de los usuarios no están dispuestos a poner mucho esfuerzo en ejecutar ningún tipo de nodo, aunque tanto para Bitcoin como para Ethereum los requisitos de hardware son alcanzables para la mayoría de los usuarios avanzados de ambas cadenas. Aquí, se define como 'usuario avanzado' a alguien con una cantidad decente de activos en la cadena, piénselo como cualquier usuario donde el costo de ejecutar un nodo no es el obstáculo.

La razón principal es probablemente una combinación del hecho de que la gran mayoría de los usuarios no se preocupan por hacerlo, no están dispuestos a gastar unos $100 en el hardware o no tienen los conocimientos técnicos sobre cómo ejecutarlo. Aunque tanto Bitcoin como Ethereum han avanzado mucho para facilitarlo. Aún es una tarea bastante compleja para un usuario no técnico.

Una Visión para un Ethereum Sin Estado

Soy de la opinión de que en el "Endgame" de cada cadena de bloques, los usuarios tendrán que verificar la integridad del estado y la disponibilidad de los datos sin que necesariamente tengan que saber cuáles son esas cosas. La buena noticia es que esta visión es totalmente alcanzable con suficiente ingeniería (tecnología de conocimiento cero y un poco demuestreo de disponibilidad de datos).

En este final del juego, básicamente todas las carteras que valga la pena usar tendrán un nodo sin estado que, para cada nuevo bloque que se añada a la cadena, puede consultar a cualquier nodo completo en la capa p2p para obtener el último bloque de encabezado y una prueba de conocimiento cero de que los cambios de estado desde el bloque de encabezado anterior se ejecutaron correctamente, solicitar algunas muestras de datos aleatorios de algunos pares para obtener una confianza cercana al 100% de que todos los datos (blobs y datos de bloques de ejecución) se han publicado y también una prueba de conocimiento cero que demuestre que la red ha llegado a un consenso y ha finalizado el bloque.

El ancho de banda/computación necesario para hacer esto es muy pequeño y puede hacerse completamente en un teléfono (o incluso en un reloj inteligente como@drakefjustinEl tipo de nodo mencionado anteriormente se clasificaría como un tipo de nodo "sin estado", ya que el nodo puede verificar nuevos bloques sin necesidad de tener el estado actual localmente y en su lugar confiar en diferentes tipos de pruebas para verificar nuevos bloques. (tal como le encanta mencionar a @drakefjustin).

Estas pruebas no tienen que ser a prueba de zk. Tendremos una validación sin estado de la ejecución mucho antes de que podamos hacer lo que describí anteriormente con zk-proofs para la ejecución. De hecho, la ejecución sin estado se puede hacer hoy en día, pero es MUY ineficiente con la estructura actual de Merkle-Patricia-Tree, las pruebas de testigos son demasiado grandes para ser prácticas. (véase @peter_szilagyitweet) de 's).

Ver el tamaño del “testigo” aquí. Este es el principal problema con la ejecución sin estado con el actual árbol Merkle-Patricia, muchos de los bloques en esta captura de pantalla tienen un tamaño muy inferior a 100kb y la prueba que se requiere para permitir la verificación sin estado es a menudo más de 50 veces más grande que el propio bloque.

Estructura MPT de Ethereum

Sin embargo, Ethereum actualizará su estructura de árbol de estado a algo diferente a la estructura actual de Merkle-Patricia-Tree en el futuro. Muchos de ustedes pueden haber oído hablar de los árboles Verkle que han estado en el plan de trabajo durante años (Si no, entonces lean nuestro artículo -Árboles Verkle para el resto de nosotros: Parte 1). Permitirían la creación de clientes sin estado que sean prácticos, ya que la naturaleza de la estructura de árbol Verkle permite testigos/pruebas muy pequeños.

Árbol de Merkle vs. Árboles Verkle

Un problema importante que tienen los árboles Verkle es que no son seguros cuánticamente, lo que significa que, en el mejor de los casos, serán una solución temporal hasta que una solución permanente para la estructura del árbol de estado sea madura y/o lo suficientemente eficiente. Lo más probable es que la solución final sea un árbol de hash binario probado por STARK y es muy posible que se omitan los árboles Verkle a favor de alguna variante de un árbol de hash binario probado por STARK. (meme relevante de @VitalikButerin)

Una opción muy interesante que puede tener un nodo sin estado es la opción de no ser completamente sin estado. Como ejemplo, sería posible almacenar localmente el estado que encuentres relevante para tu caso de uso (suponiendo que tu cliente admita esta función).

Supongamos que tienes tus activos distribuidos en varias direcciones, activos y protocolos DeFi. En ese caso, podrías tener el estado de todo lo relevante para tu caso de uso almacenado localmente en el disco, utilizando solo una cantidad trivialmente pequeña de espacio en disco. Incluso hacer un seguimiento del estado completo de múltiples protocolos DeFi grandes solo ocuparía unos pocos gigabytes y considerando que básicamente todos los teléfonos más nuevos vienen con 128 GB+ de almacenamiento, no solo es posible, sino potencialmente práctico para un usuario mantener todo el estado que encuentren útil escrito en el almacenamiento flash de su teléfono móvil.

(Nota rápida sobre clientes ligeros: En un mundo donde los clientes sin estado pueden verificar eficientemente las transiciones de estado y el consenso de manera trivial, siento que realmente no habrá un caso de uso para un cliente ligero tradicional que dependa de una suposición de mayoría honesta).

Nodos Estatales de Endgame

Los nodos estatales solo mantienen el estado actual y muy reciente, eliminan todo lo anterior a cierta edad (ver laeip-4444propuesta). El estado actual requiere la construcción de bloques localmente y la construcción de bloques locales es algo que los nodos sin estado no son capaces de hacer.

Los nodos estatales no deben confundirse con los nodos completos ya que un nodo estatal no mantendrá todo el historial de la cadena porque esto se volverá muy intensivo en datos en el futuro. Un nodo estatal es útil para cualquier usuario que desee acceso rápido y sin confianza al estado actual de Ethereum, ya sea para consultar datos del estado, construir bloques o utilizar este tipo de nodo para apostar.

Preservar la posibilidad de ejecutar nodos con estado en hardware de consumidores es un objetivo muy importante que creo que nosotros en la comunidad de Ethereum debemos preservar, incluso cuando los nodos sin estado sean muy ligeros y maduros. Una de las razones principales de esto es que todos los nodos sin estado dependen de los nodos con estado para crear el testigo que se necesita para la validación sin estado de los nuevos bloques.

Tener acceso al estado actual también es necesario para saber si una transacción que está en el mempool es válida o no y, por lo tanto, es muy importante que tengamos un conjunto muy descentralizado de nodos estatales en la red que puedan garantizar garantías de resistencia a la censura muy fuertes con algún tipo de diseño de lista de inclusión.

La buena noticia es que con la expiración del estado podemos hacer mucho más fácil ejecutar un nodo con estado, ya que el estado con el que nadie ha interactuado durante un tiempo se puede podar del disco del nodo. Cualquiera que quiera interactuar con un estado que ha expirado tendrá que traer un testigo (esencialmente una prueba de Merkle) para traer de vuelta el estado expirado al estado actual. Cualquier persona con acceso al historial de la cadena puede construir estos tipos de pruebas de manera segura para traer de vuelta el estado expirado. En el momento de escribir esto, el estado de Ethereum se acerca a los 300 GB y hasta que se implemente alguna forma de expiración del estado, el tamaño del estado seguirá creciendo en una tendencia más o menos ascendente.

(Aquíes un artículo muy bueno de@paradigmque profundiza en el tema del crecimiento del estado y la expiración del estado)

Nodos completos/archivo

Con el fin de este artículo voy a agrupar los nodos completos y de archivo juntos, ya que un nodo completo normal, con la información que ha escrito en el disco localmente, puede calcular todos los datos que un nodo de archivo ha escrito en el disco. La diferencia es que un nodo completo poda el estado que ya no es el estado más reciente. No se puede consultar, por ejemplo, “¿cuál era el saldo de ETH de la cuenta X en el bloque Y hace unos 5 años” desde un nodo completo normal, mientras que un nodo de archivo respondería a esa consulta en milisegundos.

Fácil guía sobre Ethereum Full Node Vs Archive Node por @0xZeeve

Dicho esto, teóricamente es posible calcular la respuesta a esta consulta a partir de los datos que un nodo completo ha escrito en el disco (todo el historial de la cadena), pero no muchos clientes de ejecución admiten esta función. Creo que es irrazonable pensar que muchos usuarios, incluso los sofisticados, ejecutarán un nodo completo/archivado en, digamos, 10 años, para que esta sea una opción razonable tendríamos que limitar el rendimiento de L1 a niveles completamente irrazonables cuando podemos obtener mucho más rendimiento en L1 con mínimos compromisos. Cuando la mayoría de los usuarios puedan verificar fácilmente nuevos bloques con una prueba zk, creo que es un compromiso que vale la pena perseguir cuando los beneficios son tan grandes.

Tal vez podamos obtener clientes de ejecución que puedan funcionar eficientemente en HDD y hacer que sea práctico almacenar incluso cientos de TB de estado archivado de manera relativamente económica. Esto podría permitir a los usuarios que, por cualquier motivo, deseen archivar todo Ethereum hacerlo. Sé que uno de los objetivos de Erigon es permitir que se ejecute un nodo de archivo completo en HDD.

Una Nueva Era para Ethereum

Al final, el futuro de Ethereum será moldeado por los nodos que conforman su red. Al abrazar nodos sin estado como la opción más realista para la mayoría de los usuarios, pero aún siendo pragmáticos y reconociendo el valor de una fuerte presencia de nodos con estado, y nodos completos/archivo en la red, podemos crear un equilibrio perfecto entre descentralización, seguridad y escalabilidad que beneficie a todos los usuarios.

Descargo de responsabilidad:

  1. Este artículo ha sido reimpreso de [Investigación 2077)]. Todos los derechos de autor pertenecen al autor original [@centauridoteth]. Si hay objeciones a esta reimpresión, por favor contacte al gate Aprenderequipo, y ellos lo manejarán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. El equipo de gate Learn tradujo el artículo a otros idiomas. Está prohibido copiar, distribuir o plagiar los artículos traducidos a menos que se mencione.
Empieza ahora
¡Regístrate y recibe un bono de
$100
!