본문으로 건너뛰기
0%

실행 레이어(EL) 및 합의 레이어(CL) 노드 클라이언트

Alchemy team headshot

작성자 Alchemy

2022년 7월 8일에 게시됨3분 읽기

Ethereum이 최근 몇 년간 거둔 폭발적인 성공은 블록체인 애호가들 사이에서 그 인기를 끌어올렸습니다. 그 결과 Ethereum은 높은 가스비, 느린 블록 생성 시간, 네트워크 혼잡 등으로 흔히 관찰되는 다양한 확장성 문제를 겪어왔습니다.

Ethereum을 실행 계층(EL)과 합의 계층(CL)이라는 고도로 최적화된 두 개의 계층으로 분리함으로써 네트워크는 더 확장 가능해집니다. 각 계층은 서로 다른 노드 클라이언트 인프라를 필요로 합니다.

이 글에서는 주요 Ethereum 실행 계층 노드 클라이언트를 살펴봅니다:

  • Geth (Go Ethereum)
  • Nethermind
  • Erigon
  • Hyperledger Besu

또한 주요 합의 계층 노드 클라이언트도 살펴봅니다:

  • Prsym
  • Teku
  • Lighthouse
  • Nimbus
  • Lodestar

가장 널리 쓰이는 실행 계층 클라이언트는 무엇인가요?

현재 블록체인 생태계에서 널리 쓰이는 실행 계층 클라이언트는 Geth (80.1%), Erigon (8.7% 채택률), Besu (3.0%), Nethermind (2.6%)입니다.

실행 계층 클라이언트는 실행 계층에서 동작하며 블록체인의 전체 상태를 유지, 관리하는 동시에 가상 머신을 이용해 트랜잭션을 처리합니다.

1. Geth (go ethereum)

Geth를 사용하면 개발자는 명령줄과 Go 프로그래밍 언어를 통해 Ethereum 노드를 이용하여 Ethereum 블록체인과 상호작용할 수 있습니다. 개발자는 Geth를 사용해 Ethereum 트랜잭션을 실행하거나 Ethereum의 네이티브 암호화폐인 ETH를 채굴할 수 있습니다.

MacOS (homebrew)에서 Geth 클라이언트 설정하기

2. Erigon

Erigon은 Go 프로그래밍 언어로 작성된 Ethereum 실행 계층 클라이언트입니다. Erigon은 속도를 중시하는 최적화된 Ethereum 구현체를 제공하며, 주로 대량의 상태 데이터를 관리하는 아카이브 노드를 운영하는 데 사용됩니다.

MacOS에서 Erigon 클라이언트 설정하기

Erigon이 아카이브 노드용으로 널리 쓰이는 클라이언트 구현체이지만, Silkworm (C++)이나 Akula (Rust) 같은 클라이언트도 아카이브 노드 운영에 있어 비슷하거나 그 이상의 성능을 보여주었습니다.

3. Besu

Besu는 Hyperledger가 Java 프로그래밍 언어로 Apache 2.0 라이선스 하에 구축한 Ethereum 실행 계층 클라이언트로, 엔지니어가 Ethereum 노드를 운영할 수 있게 해줍니다.

개발자는 명령줄과 JSON-RPC API를 통해 Besu와 상호작용할 수 있으며, RPC, HTTP, WebSockets을 통해 접근할 수 있습니다. Besu는 ETH 채굴이나 스마트 컨트랙트 및 탈중앙화 애플리케이션 개발에 사용됩니다.

MacOS에서 Besu 클라이언트 설정하기

4. Nethermind

Nethermind는 .NET core 위에 구축된 Ethereum 실행 계층 클라이언트로, 엔지니어가 Ethereum 노드에서 개발할 수 있게 해줍니다.

MacOS에서 Nethermind 클라이언트 설정하기

합의 계층이란 무엇인가요?

합의 계층은 Ethereum 블록체인의 새로운 백엔드 인프라 역할을 하며, 검증자를 호스팅하고 그 유효성을 검증합니다.

PoS 모델에서 검증은 스테이킹의 형태로 이루어지며, 검증자는 ETH를 담보로 스테이킹하고 이는 부정행위 발생 시 네트워크에 의해 몰수(슬래싱)될 수 있습니다.

Ethereum 합의 계층 클라이언트에는 어떤 것들이 있나요?

Lighthouse, Prysm, Nimbus, Teku, Lodestar 등 여러 합의 계층 클라이언트가 존재합니다.

1. Lighthouse

Lighthouse는 Sigma Prime이 Rust 프로그래밍 언어로 개발한 합의 계층 클라이언트입니다. Lighthouse의 구현체는 Ethereum의 PoS로의 머지 과정에서 보안성과 성능 속도를 중시합니다.

MacOS에서 Lighthouse 클라이언트 설정하기

2. Prysm

Prysm은 Prysmatic Labs가 Go 프로그래밍 언어로 개발한 합의 계층 클라이언트입니다. Prysm의 구현체는 Ethereum의 PoS 및 스테이킹 프로토콜을 폭넓게 지원하며, 보안성과 신뢰성에 중점을 둡니다.

MacOS에서 Prysm 클라이언트 설정하기

3. Nimbus

Nimbus는 Rust 프로그래밍 언어로 개발된 합의 계층 클라이언트입니다. Nimbus의 합의 계층 클라이언트 구현체는 다양한 하드웨어 장치에서 호스팅될 수 있는 경량 클라이언트 개발에 집중합니다.

MacOS에서 nimbus 클라이언트 설정하기

4. Teku

Teku는 Besu 팀이 Java 프로그래밍 언어로 개발한 합의 계층 클라이언트입니다. Teku의 구현체는 일반 대중보다는 기관 투자자를 대상으로 합니다.

MacOS에서 teku 클라이언트 설정하기

5. Lodestar

Lodestar는 ChainSafe Systems가 Typescript 프로그래밍 언어로 개발한 합의 계층 클라이언트입니다. Lodestar는 배포가 용이한 경량 클라이언트로 개발되었으며, Typescript 및 Javascript 개발자를 대상으로 합니다.

MacOS에서 lodestar 클라이언트 설정하기

결론

실행 계층과 합의 계층의 분리는 2022년 오랫동안 기다려온 Ethereum Merge 업그레이드의 일부였습니다.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.