Repolode
ethereum

ethereum/EthLib

Primitivas de Ethereum verificadas formalmente y escritas en Lean, concebidas como una biblioteca compartida de especificaciones y demostraciones para proyectos Lean.

Estrellas
85
Forks
22
Issues abiertos
25
Último commit
hace 37 minutos

¿Qué es?

EthLib proporciona definiciones de Ethereum y sus demostraciones en Lean, para que los proyectos Lean puedan basarse en una implementación común en lugar de mantener cada uno la suya. Abarca los componentes básicos del protocolo: palabras de 256 bits; primitivas de hash y firma, como Keccak, secp256k1, BLS12-381 y KZG; codificaciones como RLP y SSZ; elementos de red, incluidos discv4, discv5, RLPx y los parámetros de gossipsub; y componentes de la capa de ejecución, como los opcodes de la EVM, los precompiles, el estado, las transacciones, los bloques y el Merkle Patricia Trie. Las definiciones de la capa de consenso abarcan la configuración, las ranuras y épocas, los comités y los modelos de elección de bifurcación.

La biblioteca está organizada en capas. Cada módulo importa únicamente elementos de su propia capa o de las inferiores, y las capas de ejecución y consenso se mantienen separadas. Algunas primitivas se exponen mediante bindings de C, que los clientes de Ethereum pueden usar temporalmente hasta que haya una implementación nativa o de forma permanente si el rendimiento es suficiente.

Para compilar se necesitan elan y Mathlib; `lake build` compila las primitivas y comprueba todas las demostraciones. Una suite de pruebas independiente ejercita los bindings de Python.

Funciones clave

  • 01Abarca palabras de la EVM de 256 bits, hashes criptográficos y esquemas de firma, incluidos secp256k1, BLS y KZG.
  • 02Incluye serialización RLP y SSZ, usada por las capas de ejecución y consenso.
  • 03Proporciona definiciones de red para discv4, discv5, RLPx y los parámetros de gossipsub.
  • 04Modela los opcodes de la EVM, los 18 precompiles, el estado, las transacciones y los bloques por bifurcación.
  • 05Expone algunas primitivas mediante bindings de C que pueden usar los clientes de Ethereum.

Casos de uso

  • Crear un proyecto Lean que necesite especificaciones verificadas de Ethereum en lugar de una implementación propia.
  • Usar los bindings en un cliente de Ethereum como solución provisional hasta que exista una implementación nativa.
  • Comprobar el comportamiento de los precompiles de la EVM o las reglas de las transacciones frente a definiciones formales.
  • Estudiar cómo se especifican los protocolos de ejecución y consenso de Ethereum en un demostrador de teoremas.

Inicio rápido

  1. 1

    Instala elan, el gestor de toolchains de Lean, con el script de instalación oficial que aparece en el README

  2. 2

    Descarga las dependencias de Mathlib desde la caché

    lake exe cache get
  3. 3

    Compila los primitivos y comprueba todas las demostraciones

    lake build

Antes de usarlo

  • La compilación requiere la toolchain de Lean mediante elan y la dependencia de Mathlib.
  • Para usar los bindings de Python, es necesario compilar una extensión nativa con uv.

Temas

Preguntas frecuentes

¿Qué es EthLib?
Primitivas de Ethereum verificadas formalmente y escritas en Lean, concebidas como una biblioteca compartida de especificaciones y demostraciones para proyectos Lean. EthLib proporciona definiciones de Ethereum y sus demostraciones en Lean, para que los proyectos Lean puedan basarse en una implementación común en lugar de mantener cada uno la suya. Abarca los componentes básicos del protocolo: palabras de 256 bits; primitivas de hash y firma, como Keccak, secp256k1, BLS12-381 y KZG; codificaciones como RLP y SSZ; elementos de red, incluidos discv4, discv5, RLPx y los parámetros de gossipsub; y componentes de la capa de ejecución, como los opcodes de la EVM, los precompiles, el estado, las transacciones, los bloques y el Merkle Patricia Trie. Las definiciones de la capa de consenso abarcan la configuración, las ranuras y épocas, los comités y los modelos de elección de bifurcación.
¿EthLib es gratuito? ¿Qué licencia tiene?
EthLib es open source bajo la licencia CC0-1.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿EthLib sigue mantenido?
Mantenimiento activo. El último commit de EthLib fue el 7 nov 2026.
¿Para qué puedo usar EthLib?
Crear un proyecto Lean que necesite especificaciones verificadas de Ethereum en lugar de una implementación propia. Usar los bindings en un cliente de Ethereum como solución provisional hasta que exista una implementación nativa. Comprobar el comportamiento de los precompiles de la EVM o las reglas de las transacciones frente a definiciones formales. Estudiar cómo se especifican los protocolos de ejecución y consenso de Ethereum en un demostrador de teoremas.
¿Cómo se instala EthLib?
Instala elan, el gestor de toolchains de Lean, con el script de instalación oficial que aparece en el README Descarga las dependencias de Mathlib desde la caché: lake exe cache get Compila los primitivos y comprueba todas las demostraciones: lake build
¿Dónde consigo EthLib?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ethereum/EthLib

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados