Repolode
ethereum

ethereum/EthLib

Lean으로 작성한 형식 검증된 Ethereum 기본 요소로, Lean 프로젝트에서 함께 사용할 사양과 증명을 제공하는 공용 라이브러리입니다.

스타
83
포크
22
열린 이슈
25
마지막 커밋
19시간 전

어떤 프로젝트인가요?

EthLib는 Ethereum 정의와 그 증명을 Lean으로 제공하므로, 각 Lean 프로젝트가 자체 구현을 따로 관리하는 대신 공통 구현을 기반으로 개발할 수 있습니다. 프로토콜의 기본 구성 요소를 폭넓게 다룹니다. 256비트 워드, Keccak·secp256k1·BLS12-381·KZG 같은 해시 및 서명 기본 요소, RLP와 SSZ 같은 인코딩, discv4·discv5·RLPx 및 gossipsub 매개변수를 비롯한 네트워킹 요소, 그리고 EVM opcode·precompile·상태·트랜잭션·블록·Merkle Patricia Trie 같은 실행 레이어 구성 요소가 포함됩니다. 합의 레이어 정의에는 설정, 슬롯과 에포크, 위원회, 포크 선택 모델이 포함됩니다.

라이브러리는 계층별로 구성되어 있으며, 각 모듈은 자신과 같은 계층이나 더 낮은 계층의 모듈만 가져옵니다. 실행 레이어와 합의 레이어는 서로 분리되어 있습니다. 일부 기본 요소는 C 바인딩으로 제공되며, Ethereum 클라이언트는 네이티브 구현이 나올 때까지 임시 대안으로 사용하거나 성능이 충분하다면 계속 사용할 수 있습니다.

빌드하려면 elan과 Mathlib이 필요하며, `lake build`로 기본 요소를 컴파일하고 모든 증명을 검사합니다. 별도의 테스트 스위트에서는 Python 바인딩을 테스트합니다.

핵심 기능

  • 01256비트 EVM 워드, 암호화 해시, secp256k1·BLS·KZG를 비롯한 서명 방식을 다룹니다.
  • 02실행 및 합의 레이어에서 사용하는 RLP와 SSZ 직렬화를 포함합니다.
  • 03discv4, discv5, RLPx 및 gossipsub 매개변수의 네트워킹 정의를 제공합니다.
  • 04포크별 EVM opcode, 18개 precompile 전체, 상태, 트랜잭션, 블록을 모델링합니다.
  • 05일부 기본 요소를 Ethereum 클라이언트에서 사용할 수 있는 C 바인딩으로 제공합니다.

활용 사례

  • 자체 구현 대신 검증된 Ethereum 사양을 필요로 하는 Lean 프로젝트를 개발할 때.
  • 네이티브 구현이 마련되기 전 임시 대안으로 Ethereum 클라이언트에서 바인딩을 사용할 때.
  • 형식 정의와 대조해 EVM precompile 동작이나 트랜잭션 규칙을 확인할 때.
  • 정리 증명기에서 Ethereum의 실행 및 합의 프로토콜을 어떻게 명세하는지 살펴볼 때.

빠른 시작

  1. 1

    README의 공식 설치 스크립트를 사용해 Lean 툴체인 관리자인 elan을 설치합니다

  2. 2

    캐시에서 Mathlib 종속성을 다운로드합니다

    lake exe cache get
  3. 3

    프리미티브를 컴파일하고 모든 증명을 확인합니다

    lake build

사용 전 알아둘 점

  • 빌드하려면 elan을 통한 Lean 툴체인과 Mathlib 종속성이 필요합니다.
  • Python 바인딩을 사용하려면 uv로 네이티브 확장을 빌드해야 합니다.

토픽

자주 묻는 질문

EthLib은(는) 무엇인가요?
Lean으로 작성한 형식 검증된 Ethereum 기본 요소로, Lean 프로젝트에서 함께 사용할 사양과 증명을 제공하는 공용 라이브러리입니다. EthLib는 Ethereum 정의와 그 증명을 Lean으로 제공하므로, 각 Lean 프로젝트가 자체 구현을 따로 관리하는 대신 공통 구현을 기반으로 개발할 수 있습니다. 프로토콜의 기본 구성 요소를 폭넓게 다룹니다. 256비트 워드, Keccak·secp256k1·BLS12-381·KZG 같은 해시 및 서명 기본 요소, RLP와 SSZ 같은 인코딩, discv4·discv5·RLPx 및 gossipsub 매개변수를 비롯한 네트워킹 요소, 그리고 EVM opcode·precompile·상태·트랜잭션·블록·Merkle Patricia Trie 같은 실행 레이어 구성 요소가 포함됩니다. 합의 레이어 정의에는 설정, 슬롯과 에포크, 위원회, 포크 선택 모델이 포함됩니다.
EthLib은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
EthLib은(는) CC0-1.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
EthLib은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. EthLib의 마지막 커밋은 2026년 11월 6일입니다.
EthLib은(는) 어디에 사용할 수 있나요?
자체 구현 대신 검증된 Ethereum 사양을 필요로 하는 Lean 프로젝트를 개발할 때. 네이티브 구현이 마련되기 전 임시 대안으로 Ethereum 클라이언트에서 바인딩을 사용할 때. 형식 정의와 대조해 EVM precompile 동작이나 트랜잭션 규칙을 확인할 때. 정리 증명기에서 Ethereum의 실행 및 합의 프로토콜을 어떻게 명세하는지 살펴볼 때.
EthLib는 어떻게 설치하나요?
README의 공식 설치 스크립트를 사용해 Lean 툴체인 관리자인 elan을 설치합니다 캐시에서 Mathlib 종속성을 다운로드합니다: lake exe cache get 프리미티브를 컴파일하고 모든 증명을 확인합니다: lake build
EthLib은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ethereum/EthLib

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트