Repolode
ethereum

ethereum/EthLib

Primitivos do Ethereum verificados formalmente em Lean, criados como uma biblioteca compartilhada de especificações e provas para projetos em Lean.

Estrelas
85
Forks
22
Issues abertas
25
Último commit
há 3 horas

O que é?

A EthLib fornece definições do Ethereum e suas provas em Lean, para que projetos em Lean possam usar uma implementação comum em vez de manter cada um a sua própria. Ela cobre os blocos fundamentais do protocolo: palavras de 256 bits, primitivas de hash e assinatura, como Keccak, secp256k1, BLS12-381 e KZG, codificações como RLP e SSZ, componentes de rede — incluindo parâmetros de discv4, discv5, RLPx e gossipsub — e componentes da camada de execução, como opcodes da EVM, precompiles, estado, transações, blocos e a Merkle Patricia Trie. As definições da camada de consenso abrangem configuração, slots e epochs, comitês e modelos de escolha de fork.

A biblioteca é organizada em camadas, e cada módulo importa apenas de sua própria camada ou de camadas inferiores, mantendo separadas as camadas de execução e de consenso. Algumas primitivas são disponibilizadas por meio de bindings C, que clientes Ethereum podem usar temporariamente, até existir uma implementação nativa, ou permanentemente, se o desempenho for adequado.

A compilação exige elan e Mathlib, e `lake build` compila as primitivas e verifica todas as provas. Uma suíte de testes separada exercita os bindings Python.

Recursos principais

  • 01Abrange palavras de 256 bits da EVM, hashes criptográficos e esquemas de assinatura, incluindo secp256k1, BLS e KZG.
  • 02Inclui serialização RLP e SSZ usada pelas camadas de execução e de consenso.
  • 03Fornece definições de rede para discv4, discv5, RLPx e parâmetros de gossipsub.
  • 04Modela opcodes da EVM, os 18 precompiles, estado, transações e blocos por fork.
  • 05Disponibiliza algumas primitivas por meio de bindings C que podem ser usados por clientes Ethereum.

Casos de uso

  • Criar um projeto em Lean que precise de especificações verificadas do Ethereum, em vez de uma implementação própria.
  • Usar os bindings em um cliente Ethereum como solução temporária, até existir uma implementação nativa.
  • Verificar o comportamento de precompiles da EVM ou das regras de transação com base em definições formais.
  • Estudar como os protocolos de execução e consenso do Ethereum são especificados em um provador de teoremas.

Início rápido

  1. 1

    Instale o elan, gerenciador de toolchains do Lean, usando o script oficial de instalação do README

  2. 2

    Baixe as dependências do Mathlib do cache

    lake exe cache get
  3. 3

    Compile os primitivos e verifique todas as provas

    lake build

Antes de usar

  • A compilação requer a toolchain do Lean via elan e a dependência do Mathlib.
  • Para usar os bindings do Python, é necessário compilar uma extensão nativa com uv.

Tópicos

Perguntas frequentes

O que é EthLib?
Primitivos do Ethereum verificados formalmente em Lean, criados como uma biblioteca compartilhada de especificações e provas para projetos em Lean. A EthLib fornece definições do Ethereum e suas provas em Lean, para que projetos em Lean possam usar uma implementação comum em vez de manter cada um a sua própria. Ela cobre os blocos fundamentais do protocolo: palavras de 256 bits, primitivas de hash e assinatura, como Keccak, secp256k1, BLS12-381 e KZG, codificações como RLP e SSZ, componentes de rede — incluindo parâmetros de discv4, discv5, RLPx e gossipsub — e componentes da camada de execução, como opcodes da EVM, precompiles, estado, transações, blocos e a Merkle Patricia Trie. As definições da camada de consenso abrangem configuração, slots e epochs, comitês e modelos de escolha de fork.
EthLib é gratuito? Qual é a licença?
EthLib é open source sob a licença CC0-1.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
EthLib ainda é mantido?
Manutenção ativa. O último commit de EthLib foi em 7 de nov. de 2026.
Para que posso usar EthLib?
Criar um projeto em Lean que precise de especificações verificadas do Ethereum, em vez de uma implementação própria. Usar os bindings em um cliente Ethereum como solução temporária, até existir uma implementação nativa. Verificar o comportamento de precompiles da EVM ou das regras de transação com base em definições formais. Estudar como os protocolos de execução e consenso do Ethereum são especificados em um provador de teoremas.
Como instalar EthLib?
Instale o elan, gerenciador de toolchains do Lean, usando o script oficial de instalação do README Baixe as dependências do Mathlib do cache: lake exe cache get Compile os primitivos e verifique todas as provas: lake build
Onde consigo EthLib?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ethereum/EthLib

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados