본문으로 건너뛰기
0%

Ethereum commitment levels란 무엇인가요?

Alchemy team headshot

작성자 Alchemy

2022년 9월 13일에 게시됨3분 읽기

Beacon Chain는 PoW 체인의 기존 latest 레이블과 함께 블록을 표시하는 데 사용되는 두 가지 새로운 Ethereum 커밋 레벨, _safe_와 _finalized_를 도입합니다. latest 블록 태그는 Ethereum의 블록체인에 가장 최근에 추가된 블록으로 "head"라고도 하며, safe 커밋 레벨은 현재 에포크보다 1 에포크(즉 32 슬롯) 뒤에 있고, finalized 커밋 레벨은 가장 최근에 _safe_로 표시된 블록보다 1 에포크 뒤에 있습니다.

Ethereum 커밋 레벨은 Ethereum의 Proof-of-Stake 알고리즘 변경으로 가능해진, reorg될 가능성이 낮은 블록을 쿼리하기 위한 유용한 프리미티브를 web3 개발자에게 제공하기 때문에 유용합니다.

개발자는 justifiedfinalized 블록이 reorg될 가능성이 낮다는 더 높은 보장을 갖게 되므로, 스마트 컨트랙트와 탈중앙화 애플리케이션에 더 강력한 가정을 반영할 수 있습니다.

블록 번호란 무엇인가?

블록 번호는 블록체인에 추가된 블록의 순서를 지정하는 데 사용되는 숫자 값입니다. 예를 들어, 빌드 및 검증 중인 대기 블록의 블록 번호가 100이라면, 가장 최근에 검증된 블록(즉 latest 블록)의 블록 번호는 99가 됩니다.

체인 재구성(reorg)이란 무엇인가?

체인 재구성이란 정규 체인(즉 메인 체인, 또는 가장 긴 체인)에 추가되었던 블록이 제거되고 다른 블록으로 대체되는 것을 말합니다. 정규 체인에 추가된 블록이 reorg를 통해 변경될 수 있기 때문에, reorg는 결제 최종성에 영향을 미칩니다.

reorg는 익스플로잇이나 Maximal Extractable Value(MEV)의 결과로 발생할 수 있기 때문에, latest 블록이 확정되었다고 신뢰하는 것은 개발자에게 어려운 가정입니다.

Proof-of-Work에서 Proof-of-Stake로의 마이그레이션과 함께, Ethereum의 Beacon Chain은 개발자에게 더 강력한 보장을 제공하기 위해 safefinalized 블록 커밋 레벨을 도입했습니다.

에포크란 무엇인가?

머지 이후의 Ethereum 환경에서, Beacon Chain은 새로운 블록이 빌드될 수 있는 기회인 슬롯과, 32 슬롯에 해당하는 에포크를 도입합니다. 새로운 블록은 정확히 12초마다 검증될 수 있기 때문에, 하나의 에포크는 6.4분에 해당합니다.

각 에포크 동안, Beacon Chain은 블록체인에 추가되는 블록의 유효성을 증명하는 검증자 위원회를 무작위로 선정합니다. safefinalized 블록 커밋 레벨은 에포크를 기준으로 결정됩니다.

각 에포크에는 32개의 슬롯이 있지만, 드문 경우(1% 미만)에는 모든 슬롯에서 블록이 검증되지 않을 수 있어, 일부 에포크는 32개보다 적은 블록을 가질 수 있습니다. 무작위로 선정된 검증자가 오프라인인 경우가 그 예입니다.

Ethereum 커밋 레벨이란 무엇인가?

Ethereum 커밋 레벨은 검증된 블록을 latest, justified, 또는 finalized로 표시하는 데 사용되는 태그로, 개발자에게 블록이 재구성될 가능성에 관한 특정 보장을 제공합니다.

1. Latest

latest 블록은 Ethereum 검증자에 의해 빌드되고 검증된 가장 최근 블록입니다. Beacon Chain이 재구성되지 않는다는 보장이 없고, 이 블록이 Uncle Block, 즉 정규 체인에 추가되지 않은 블록이 될 수 있으므로, latest 블록은 주의해서 사용해야 합니다.

2. Safe

safe 블록은 Ethereum 검증자 세트의 3분의 2로부터 attestation을 받은 블록입니다. safe 블록은 reorg될 가능성이 낮은 것으로 이해됩니다.

예를 들어, safe 블록이 체인 재구성을 겪을 수 있는 몇 안 되는 경우 중 하나는 네트워크에 대한 대규모의 조직적인 공격이 발생하는 경우입니다.

3. Finalized

finalized 블록은 가장 최근에 _justified_된 블록보다 1 에포크 뒤에 있는 justified 블록입니다. finalized 블록은 검증자의 3분의 2 다수가 경쟁 블록 체인을 finalize하는 경우를 유일한 예외로 하여, 재구성될 가능성이 극히 낮습니다.

Safe 및 finalized 커밋 레벨은 어떻게 결정되는가?

Safe 및 finalized 커밋 레벨은 에포크의 완료에 의해 결정됩니다. Safe 및 finalized 블록이 어떻게 작동하는지 시각화하기 위해 The Merge 이후 처음 세 개의 에포크(에포크 0, 1, 2)를 상상해 봅시다.

  • 에포크 0 = 블록 0-31
  • 에포크 1 = 블록 32-63
  • 에포크 2 = 블록 64-95
  • 에포크 3 = 블록 96-127

latest 블록이 에포크 3의 시작이자 에포크 2의 끝을 표시하는 블록 96이라고 가정해 봅시다.

블록 96은 블록 64에 대한 attestation(즉, 제안된 정규 블록 head가 참임을 나타내는 검증자의 투표)을 포함하고 있으므로, Beacon Chain이 검증자의 3분의 2로부터 attestation을 받으면 블록 64는 _justified(safe)_로 표시됩니다.

블록 64가 justified로 표시되고 _safe_로 표시되면, 이전에 justified되었던 블록은 _finalized_로 표시됩니다. safe 및 finalized 블록은 에포크의 시작 부분에서 발생하기 때문에, 블록 32(에포크 1의 첫 번째 블록)가 _finalized_로 표시됩니다.

현재 블록 번호가 96인 경우, 이를 시각화하는 또 다른 방법은 다음과 같습니다:

  • 블록 96(에포크 3의 시작) = latest
  • 블록 64(에포크 2의 시작) = justified(safe)
  • 블록 32(에포크 1의 시작) = finalized
Background gradient

블록체인 매직을 만드세요

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