Repolode
ethereum

ethereum/EthLib

Формально верифицированные примитивы Ethereum на Lean — общая библиотека спецификаций и доказательств для проектов на Lean.

Звёзды
83
Форки
22
Открытые issues
25
Последний коммит
24 часа назад

Что это?

EthLib содержит определения компонентов Ethereum и доказательства их свойств на Lean, чтобы проекты на Lean могли использовать общую реализацию, а не поддерживать собственные. Библиотека охватывает базовые элементы протокола: 256-битные слова, хеш-функции и криптографические примитивы для подписей, такие как Keccak, secp256k1, BLS12-381 и KZG, форматы кодирования, включая RLP и SSZ, сетевые компоненты, в том числе параметры discv4, discv5, RLPx и gossipsub, а также компоненты уровня исполнения: опкоды EVM, предкомпиляты, состояние, транзакции, блоки и Merkle Patricia Trie. Определения уровня консенсуса охватывают конфигурацию, слоты и эпохи, комитеты и модели выбора форка.

Библиотека организована по слоям: модуль импортирует только модули своего или нижележащих слоёв, а уровни исполнения и консенсуса разделены. Некоторые примитивы доступны через C bindings; клиенты Ethereum могут использовать их как временное решение до появления нативной реализации или на постоянной основе, если производительности достаточно.

Для сборки нужны elan и Mathlib; команда `lake build` компилирует примитивы и проверяет все доказательства. Отдельный набор тестов проверяет Python bindings.

Ключевые возможности

  • 01Включает 256-битные слова EVM, криптографические хеш-функции и схемы подписей, в том числе secp256k1, BLS и KZG.
  • 02Содержит форматы сериализации RLP и SSZ, используемые на уровнях исполнения и консенсуса.
  • 03Предоставляет определения сетевых компонентов для discv4, discv5, RLPx и параметров gossipsub.
  • 04Моделирует опкоды EVM, все 18 предкомпилятов, состояние, транзакции и блоки для разных форков.
  • 05Предоставляет доступ к некоторым примитивам через C bindings, которые можно использовать в клиентах Ethereum.

Сценарии использования

  • Разработка проекта на Lean, которому нужны верифицированные спецификации Ethereum вместо собственной реализации.
  • Использование bindings в клиенте Ethereum как временного решения до появления нативной реализации.
  • Проверка поведения предкомпилятов EVM или правил обработки транзакций по формальным определениям.
  • Изучение того, как протоколы исполнения и консенсуса Ethereum формализованы в системе доказательств теорем.

Быстрый старт

  1. 1

    Установите elan — менеджер toolchain для Lean — с помощью официального скрипта установки из README

  2. 2

    Загрузите зависимости Mathlib из кеша

    lake exe cache get
  3. 3

    Скомпилируйте примитивы и проверьте все доказательства

    lake build

Что важно знать

  • Для сборки необходимы toolchain Lean через elan и зависимость Mathlib.
  • Для использования привязок Python требуется собрать нативное расширение с помощью uv.

Темы

Частые вопросы

Что такое EthLib?
Формально верифицированные примитивы Ethereum на Lean — общая библиотека спецификаций и доказательств для проектов на Lean. EthLib содержит определения компонентов Ethereum и доказательства их свойств на Lean, чтобы проекты на Lean могли использовать общую реализацию, а не поддерживать собственные. Библиотека охватывает базовые элементы протокола: 256-битные слова, хеш-функции и криптографические примитивы для подписей, такие как Keccak, secp256k1, BLS12-381 и KZG, форматы кодирования, включая RLP и SSZ, сетевые компоненты, в том числе параметры discv4, discv5, RLPx и gossipsub, а также компоненты уровня исполнения: опкоды EVM, предкомпиляты, состояние, транзакции, блоки и Merkle Patricia Trie. Определения уровня консенсуса охватывают конфигурацию, слоты и эпохи, комитеты и модели выбора форка.
EthLib можно использовать бесплатно? Какая у него лицензия?
EthLib распространяется с открытым исходным кодом под лицензией CC0-1.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
EthLib всё ещё поддерживается?
Активно поддерживается. Последний коммит в EthLib — 6 нояб. 2026 г..
Для чего можно использовать EthLib?
Разработка проекта на Lean, которому нужны верифицированные спецификации Ethereum вместо собственной реализации. Использование bindings в клиенте Ethereum как временного решения до появления нативной реализации. Проверка поведения предкомпилятов EVM или правил обработки транзакций по формальным определениям. Изучение того, как протоколы исполнения и консенсуса Ethereum формализованы в системе доказательств теорем.
Как установить EthLib?
Установите elan — менеджер toolchain для Lean — с помощью официального скрипта установки из README Загрузите зависимости Mathlib из кеша: lake exe cache get Скомпилируйте примитивы и проверьте все доказательства: lake build
Где скачать EthLib?
Исходный код и инструкции по установке — на GitHub: https://github.com/ethereum/EthLib

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Виртуальная машина с нулевым разглашением, которая генерирует доказательства корректного выполнения программ на Rust и других языках, компилируемых через LLVM.

1,8 тыс.+6 за неделю722RustApache-2.0Активно поддерживаетсяОбновлён позавчера

Echidna — фаззер на Haskell для тестирования смарт-контрактов Ethereum: он подбирает последовательности вызовов, чтобы нарушить пользовательские инварианты или Solidity-утверждения.

3,2 тыс.+1 за неделю436HaskellAGPL-3.0Обновлён 24 часа назад