Básico
Spot
Opera con criptomonedas libremente
Margen
Multiplica tus beneficios con el apalancamiento
Convertir e Inversión automática
0 Fees
Opera cualquier volumen sin tarifas ni deslizamiento
ETF
Obtén exposición a posiciones apalancadas de forma sencilla
Trading premercado
Opera nuevos tokens antes de su listado
Contrato
Accede a cientos de contratos perpetuos
TradFi
Oro
Plataforma global de activos tradicionales
Opciones
Hot
Opera con opciones estándar al estilo europeo
Cuenta unificada
Maximiza la eficacia de tu capital
Trading de prueba
Introducción al trading de futuros
Prepárate para operar con futuros
Eventos de futuros
Únete a eventos para ganar recompensas
Trading de prueba
Usa fondos virtuales para probar el trading sin asumir riesgos
Lanzamiento
CandyDrop
Acumula golosinas para ganar airdrops
Launchpool
Staking rápido, ¡gana nuevos tokens con potencial!
HODLer Airdrop
Holdea GT y consigue airdrops enormes gratis
Launchpad
Anticípate a los demás en el próximo gran proyecto de tokens
Puntos Alpha
Opera activos on-chain y recibe airdrops
Puntos de futuros
Gana puntos de futuros y reclama recompensas de airdrop
Inversión
Simple Earn
Genera intereses con los tokens inactivos
Inversión automática
Invierte automáticamente de forma regular
Inversión dual
Aprovecha la volatilidad del mercado
Staking flexible
Gana recompensas con el staking flexible
Préstamo de criptomonedas
0 Fees
Usa tu cripto como garantía y pide otra en préstamo
Centro de préstamos
Centro de préstamos integral
Centro de patrimonio VIP
Planes de aumento patrimonial prémium
Gestión patrimonial privada
Asignación de activos prémium
Quant Fund
Estrategias cuantitativas de alto nivel
Staking
Haz staking de criptomonedas para ganar en productos PoS
Apalancamiento inteligente
Apalancamiento sin liquidación
Acuñación de GUSD
Acuña GUSD y gana rentabilidad de RWA
Heródoto: ¿Cómo aprovechar la prueba de almacenamiento de Starknet para demostrar el estado de Ethereum?
原文:Herodotus: Probando el estado de Ethereum usando pruebas de almacenamiento en Starknet
Traducción y corrección: Comunidad china de Starknet"
Descripción general
Introducción
Es importante tener acceso demostrable al estado histórico de Ethereum. Pero hasta ahora, hemos podido acceder a un historial limitado y sin confianza hasta la última hora.
Pero Starknet es una empresa vibrante, en constante innovación, que supera los límites de lo que es posible. Ahora, gracias a Herodotus y StarkWare, podemos rastrear y obtener todos los hashes de bloques de Ethereum desde el bloque génesis de una manera nativa de la cadena y demostrable.
Echemos un vistazo más de cerca a cómo Heródoto y StarkWare lograron esto y qué significa todo esto. Comenzaremos con los antecedentes de la prueba de almacenamiento.
¿Qué es la prueba de almacenamiento?
La prueba de almacenamiento nos permite demostrar que un estado realmente existió en algún momento del pasado sin ninguna confianza en un tercero. Al almacenar pruebas, la confianza se incorpora a las matemáticas. La prueba de almacenamiento también se puede utilizar para acceder a estos estados a través de las cadenas.
En un artículo reciente sobre Proof of Storage, presentamos a Heródoto, el equipo que lidera la investigación y la innovación de Proof of Storage. Actualmente, el equipo de Herodotus ha implementado una nueva tecnología que permite una prueba sin confianza del estado de Ethereum desde la creación del bloque, mejorando significativamente el rendimiento de la prueba de almacenamiento.
Exploremos cómo Heródoto logra esto y por qué es importante.
Prueba de los bloques fundacionales de Ethereum en la cadena
En primer lugar, tenemos que entender cómo funcionan los encabezados de bloque y los hashes de bloque de Ethereum.
¿Qué es un encabezado de bloque y un hash de bloque? **
El encabezado de bloque es la parte del bloque que resume toda la información contenida en el bloque, incluido el hash del bloque principal, la marca de tiempo del bloque, la raíz del estado, etc.
! [Heródoto: ¿Cómo aprovechar la prueba de almacenamiento de Starknet para demostrar el estado de Ethereum?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/2f7bf27a826afe72e5e7dcdee98a10e5.jpeg)
Encabezado de bloque de Ethereum y árbol de Merkle de estado (fuente de contenido)
El encabezado del bloque contiene mucha información. En este artículo, nos centramos en las raíces estatales. Veamos por qué.
Como puede ver en la imagen de arriba, debajo del encabezado del bloque está el estado de la cuenta de Ethereum. Cada cuenta de Ethereum tiene un espacio de almacenamiento asociado que almacena las variables de la cuenta (esencialmente el estado del contrato inteligente). Una vez que se aplica un hash al compromiso criptográfico almacenado por la cuenta, se almacena como una raíz de almacenamiento, junto con el saldo de la cuenta, el número aleatorio y el hash del código. En conjunto, estos forman básicamente un resumen del estado de la cuenta.
Se construye un árbol de Merkle Patricia Trie que contiene el estado de todas las cuentas de Ethereum, y su hash se almacena como una raíz de estado en el encabezado del bloque (etiquetado como stateRoot en la imagen de arriba). Esta raíz de estado contiene toda la información necesaria para demostrar el estado de toda la red Ethereum en un momento dado.
Finalmente, dado que cada bloque en Ethereum (y la cadena EVM) contiene esta raíz de estado, y cada bloque también tiene una cadena asociada llamada hash de bloque (que es el resultado de hashear todo en el encabezado del bloque, incluida la raíz de estado), el hash de bloque es el compromiso criptográfico de todo el estado de Ethereum en un momento específico.
Hash de bloque histórico en EVM
Dada la gran cantidad de información crítica almacenada en los hashes de bloque, a menudo necesitamos acceder a su historial.
En Solidity, si queremos recuperar el hash de un bloque minado hace dos bloques (el recuento de retroceso comienza desde el bloque que contiene la transacción), podemos usar la siguiente sintaxis:
! [Heródoto: ¿Cómo aprovechar la prueba de almacenamiento de Starknet para demostrar el estado de Ethereum?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/29fbdb1146f58b1d0023649d585188fb.jpeg)
El método es muy sencillo. Pero hay un problema: este método de hash de bloque solo puede recuperar el hash de los últimos 256 bloques. Basado en el promedio de 12 segundos de un bloque en Ethereum, equivale a un historial de 51,2 minutos en la cadena.
El límite de 256 bloques suele ser suficiente para las personas que desean utilizar el hash de bloque histórico como fuente de entropía (aleatoriedad). Sin embargo, dada la historia de ocho años de Ethereum, si desea usar un hash de bloque para obtener su estado histórico en un bloque en particular, un historial de 51 minutos no es suficiente.
Este límite de recuperación de hash en cadena de 256 bloques está destinado principalmente a mejorar la eficiencia del almacenamiento de estado y reducir los posibles problemas de crecimiento del estado.
Herodotus hace posible obtener un historial completo de hash de bloques
Cómo Heródoto resuelve esta limitación y nos permite lograr:
La clave está en el poder de las pruebas criptográficas.
Profundicemos en los pasos procedimentales del acumulador de hash de bloque histórico de Heródoto:
Paso 1: Registrar un hash de bloque reciente
En la red principal de Ethereum, un hash de bloque reciente se registra en un contrato inteligente llamado SharpFactsAggregator. Este hash de bloque se puede recuperar utilizando el código de operación de hash de bloque (valor de código de operación 0x40) y guardarse como una variable de cadena simple en el contrato inteligente anterior. También puede registrar el número de bloque correspondiente para acceder a él más adelante.
Suponiendo que el número de bloque registrado es 18.000.000, podemos ver a través de Etherscan que el valor hash de este bloque es 0x95b1… 4baf3。
Paso 2: Probar el hash del último bloque
El siguiente paso es recuperar la información del encabezado del bloque 18.000.000 de un nodo de archivo, calcular su valor de hash de bloque fuera de la cadena y 0x95b1 con el valor de hash de bloque registrado… 4BAF3. Este proceso de cálculo también utiliza un probador para crear una prueba de este cálculo.
El hash de este bloque se añade a la Cordillera de Merkle. Esta es una variante del árbol de Merkle, y agregar nuevos elementos al árbol no requiere muchos cálculos.
Paso 3: Probar el hash del bloque X-1
Una vez que hemos demostrado que el encabezado de bloque recuperado del nodo de archivo es válido, tomamos el encabezado de bloque del bloque X-1, calculamos su valor hash y lo comparamos con el hash principal del bloque X (este valor se puede encontrar en el encabezado de bloque del bloque X que recuperamos anteriormente).
Si los hashes coinciden, podemos estar seguros de que el encabezado del bloque X-1 también es válido. Dado que todo el cálculo se puede modelar como una función, se puede crear una prueba STARK de ese cálculo al mismo tiempo. Esto dio como resultado una prueba de la validez del encabezado del bloque X-1 (ver figura a continuación).
! [Heródoto: ¿Cómo aprovechar la prueba de almacenamiento de Starknet para demostrar el estado de Ethereum?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/50db34684e403b4d5dd508de876d3e94.jpeg)
Paso 4: Probar recursivamente el hash del bloque anterior
El hash de bloque de todos los bloques de pre-pedido se calcula de manera similar hasta que se rastrea hasta el bloque génesis de la red principal de Ethereum. Estos hashes se anexan al árbol MMR, creando una raíz MMR final.
! [Heródoto: ¿Cómo aprovechar la prueba de almacenamiento de Starknet para demostrar el estado de Ethereum?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/00e168dfc3307b7451050fe994a42d13.jpeg)
Es importante tener en cuenta que estos cálculos se realizan fuera de la cadena, y Heródoto también genera pruebas de cálculo.
Paso 5: Publicar la prueba en la cadena y su uso posterior
Una vez que se ha generado la raíz MMR final, esta raíz se puede publicar en la cadena (en un contrato inteligente de agregación de pruebas) junto con las pruebas computacionales de millones de bloques. El costo de verificar estas pruebas en la cadena se justifica debido al costo extremadamente bajo de verificar las pruebas STARK generadas.
Hemos implementado una forma de rastrear y acceder a todo el estado de Ethereum desde el bloque génesis.
El equipo de Herodotus se refiere a estos MMR como “acumuladores históricos de hash de bloques” e implementa el objetivo EIP-2935 propuesto por Vitalik Buterin y Tomasz Stanczak en 2020, una forma de acceder a más de 256 bloques de datos históricos. ¡Este es un tema que ha estado abierto durante más de tres años! Sin embargo, Heródoto y Starknet han logrado esto sin cambiar ninguna capa de protocolo.
Algunos puntos clave sobre el proceso anterior:
! [Heródoto: ¿Cómo aprovechar la prueba de almacenamiento de Starknet para demostrar el estado de Ethereum?] ](https://cdn-img.panewslab.com//panews/2022/11/6/images/7442f10afdba6bed044c215b9f057a7c.jpeg)
Una vez que la raíz MMR se encuentra en la cadena, se puede demostrar que la MMR contiene un hash de cada bloque (que es una propiedad fundamental del árbol de Merkle).
Antes de enviar las pruebas a la red principal de Ethereum, los Provers del equipo de Herodotus utilizan el sistema SHARP creado por el equipo de StarkWare. La principal ventaja del sistema SHARP es su capacidad para reducir costes y aumentar la eficiencia de la generación de pruebas.
El flujo de trabajo anterior se está replicando en dos MMR separados, uno usando la función hash Keccak256 y el otro usando Poseidon. Ethereum utilizará la variante Keccak256, mientras que Starknet utilizará la variante Poseidón.
La raíz MMR de la red principal de Ethereum se envía a Starknet a través del protocolo de mensajería nativo Starknet L1 a L2 para su uso en Starknet. El acumulador de hash de bloques de Herodotus también implementa la capacidad de acceder a datos históricos de Ethereum en Starknet. El sistema de mensajería Starknet L1 a L2 se puede utilizar para reenviar hashes de bloque L1 y raíces MMR verificadas a Starknet de forma segura. Una vez enviada a Starknet, la prueba de almacenamiento de los datos históricos de Ethereum puede verificarse con estos compromisos.
Nuevas oportunidades para el acumulador de hash de bloques de Heródoto
Herodotus y StarkWare están trayendo acumuladores de hash de bloque a Ethereum como un bien público. Una vez que la raíz final de MMR y la prueba de cálculo se publican en la red principal de Ethereum, cualquier desarrollador puede aprovecharlas para acceder al estado demostrable en cualquier momento desde el inicio de la cadena.
Dado que la raíz MMR de Ethereum también se enviará a Starknet a través del protocolo nativo de mensajería entre cadenas, se puede acceder a la información de estado entre cadenas de una manera simple y sin confianza. Los protocolos DeFi pueden beneficiarse de la prueba de estado histórica al aprovechar la información de saldo de una cuenta o la información de posición apalancada de una cuenta en un momento específico. Es posible generar números aleatorios más robustos utilizando un registro hash de bloque histórico más grande. La votación entre cadenas también se ha simplificado, ya que los usuarios no necesitan transferir activos entre cadenas antes de votar en L2. Hay muchas más posibilidades que vienen con esto.
Conclusión
En un mundo en el que la escalabilidad, la descentralización y la verificabilidad de la cadena de bloques están en constante evolución, el equipo de Starknet se está convirtiendo en un faro de innovación. Los proyectos creados en Starknet se están convirtiendo en un elemento clave para escalar Ethereum. A medida que nos adentramos en este nuevo futuro, familiarizarse con el ecosistema de Starknet sentará las bases para su crecimiento futuro.