본문으로 건너뛰기
Change page

Gasper

Gasper는 캐스퍼 FFG(Casper the Friendly Finality Gadget)와 엘엠디 고스트(LMD-GHOST) 포크 선택 알고리즘의 조합입니다. 이 두 구성 요소는 함께 지분 증명(PoS) 이더리움을 보호하는 합의 메커니즘을 형성합니다. Casper는 특정 블록을 "완결된" 상태로 업그레이드하여 네트워크에 새로 진입하는 참여자가 표준 체인을 동기화하고 있다고 확신할 수 있게 해주는 메커니즘입니다. 포크 선택 알고리즘은 누적된 투표를 사용하여 블록체인에 포크가 발생했을 때 노드가 올바른 포크를 쉽게 선택할 수 있도록 보장합니다.

참고: 캐스퍼 FFG의 원래 정의는 Gasper에 포함되기 위해 약간 업데이트되었습니다. 이 페이지에서는 업데이트된 버전을 다룹니다.

전제 조건

이 자료를 이해하려면 지분 증명(PoS)에 대한 소개 페이지를 읽어야 합니다.

Gasper의 역할

Gasper는 노드가 블록을 제안하거나 검증할 때 게으르거나 부정직하게 행동할 경우 파기될 수 있는 보안 보증금으로 이더를 제공하는 지분 증명 블록체인 위에서 작동합니다. Gasper는 검증자가 보상과 처벌을 받는 방식, 수락하거나 거부할 블록을 결정하는 방식, 그리고 블록체인의 어떤 포크를 기반으로 구축할지 정의하는 메커니즘입니다.

완결성이란 무엇인가요?

완결성은 치명적인 합의 실패가 발생하고 공격자가 전체 스테이킹된 이더의 최소 3분의 1을 파기하지 않는 한 되돌릴 수 없음을 의미하는 특정 블록의 속성입니다. 완결된 블록은 블록체인이 확신하는 정보라고 생각할 수 있습니다. 블록이 완결되려면 2단계 업그레이드 절차를 거쳐야 합니다.

  1. 전체 스테이킹된 이더의 3분의 2가 해당 블록을 표준 체인에 포함하는 데 찬성하는 투표를 해야 합니다. 이 조건은 블록을 "정당화된" 상태로 업그레이드합니다. 정당화된 블록은 되돌려질 가능성이 낮지만, 특정 조건에서는 되돌려질 수 있습니다.
  2. 정당화된 블록 위에 다른 블록이 정당화되면, 해당 블록은 "완결된" 상태로 업그레이드됩니다. 블록을 완결하는 것은 해당 블록을 표준 체인에 포함하겠다는 커밋먼트입니다. 공격자가 수백만 이더(수십억 달러)를 파기하지 않는 한 이를 되돌릴 수 없습니다.

이러한 블록 업그레이드는 모든 슬롯에서 발생하지 않습니다. 대신 에포크 경계 블록만 정당화되고 완결될 수 있습니다. 이러한 블록을 "체크포인트"라고 합니다. 업그레이드는 체크포인트 쌍을 고려합니다. 덜 최근의 체크포인트를 완결된 상태로, 더 최근의 블록을 정당화된 상태로 업그레이드하려면 두 연속된 체크포인트 사이에 "절대다수 링크"가 존재해야 합니다(즉, 전체 스테이킹된 이더의 3분의 2가 체크포인트 B가 체크포인트 A의 올바른 후손이라고 투표해야 함).

완결성에는 블록이 표준이라는 3분의 2의 동의가 필요하므로, 공격자는 다음 조건 없이 대안적인 완결된 체인을 생성할 수 없습니다.

  1. 전체 스테이킹된 이더의 3분의 2를 소유하거나 조작합니다.
  2. 전체 스테이킹된 이더의 최소 3분의 1을 파기합니다.

첫 번째 조건은 체인을 완결하는 데 스테이킹된 이더의 3분의 2가 필요하기 때문에 발생합니다. 두 번째 조건은 전체 스테이크의 3분의 2가 두 포크 모두에 찬성 투표를 했다면, 3분의 1은 양쪽 모두에 투표했어야 하기 때문에 발생합니다. 이중 투표는 최대한의 처벌을 받는 슬래싱 조건이며, 전체 스테이크의 3분의 1이 파기됩니다. 2022년 5월 기준으로, 이를 위해서는 공격자가 약 100억 달러 가치의 이더를 소각해야 합니다. Gasper에서 블록을 정당화하고 완결하는 알고리즘은 캐스퍼 FFG(Casper the Friendly Finality Gadget) (opens in a new tab)의 약간 수정된 형태입니다.

인센티브 및 슬래싱

검증자는 정직하게 블록을 제안하고 검증하면 보상을 받습니다. 이더가 보상으로 지급되며 이들의 스테이크에 추가됩니다. 반면, 부재중이거나 호출되었을 때 행동하지 않는 검증자는 이러한 보상을 놓치고 때로는 기존 스테이크의 일부를 잃기도 합니다. 하지만 오프라인 상태에 대한 페널티는 작으며, 대부분의 경우 보상을 놓치는 기회비용에 해당합니다. 그러나 동일한 슬롯에 대해 여러 블록을 제안하거나, 동일한 슬롯에 대해 여러 블록을 증명하거나, 이전 체크포인트 투표와 모순되는 행동 등은 실수로 하기 매우 어려우며 악의적인 인텐트를 나타냅니다. 이러한 행동은 더 가혹하게 처벌받는 "슬래싱 가능한" 행동입니다. 슬래싱은 검증자 스테이크의 일부를 파기하고 검증자 네트워크에서 해당 검증자를 제거하는 결과를 낳습니다. 이 과정은 36일이 걸립니다. 1일 차에는 최대 1 ETH의 초기 페널티가 부과됩니다. 그런 다음 슬래싱된 검증자의 이더는 종료 기간에 걸쳐 서서히 빠져나가지만, 18일 차에는 "상관관계 페널티(correlation penalty)"를 받게 되며, 이는 비슷한 시기에 더 많은 검증자가 슬래싱될수록 커집니다. 최대 페널티는 전체 스테이크입니다. 이러한 보상과 처벌은 정직한 검증자에게 인센티브를 제공하고 네트워크에 대한 공격을 억제하도록 설계되었습니다.

비활동 누수

Gasper는 보안뿐만 아니라 "그럴듯한 활성도(plausible liveness)"도 제공합니다. 이는 전체 스테이킹된 이더의 3분의 2가 정직하게 투표하고 프로토콜을 따르는 한, 다른 활동(공격, 지연 문제 또는 슬래싱 등)과 관계없이 체인이 완결될 수 있는 조건입니다. 다른 말로 하면, 체인이 완결되는 것을 막으려면 전체 스테이킹된 이더의 3분의 1이 어떻게든 손상되어야 합니다. Gasper에는 활성도 실패에 대한 추가적인 방어선인 "비활동 누수"가 있습니다. 이 메커니즘은 체인이 4 에포크 이상 완결되지 못할 때 활성화됩니다. 다수 체인을 적극적으로 증명하지 않는 검증자는 다수가 전체 스테이크의 3분의 2를 회복할 때까지 스테이크가 점진적으로 빠져나가게 되며, 이를 통해 활성도 실패가 일시적인 현상에 그치도록 보장합니다.

포크 선택

캐스퍼 FFG의 원래 정의에는 follow the chain containing the justified checkpoint that has the greatest height 규칙을 부과하는 포크 선택 알고리즘이 포함되어 있었으며, 여기서 높이는 제네시스 블록으로부터의 가장 큰 거리로 정의됩니다. Gasper에서는 원래의 포크 선택 규칙이 더 이상 사용되지 않으며, 엘엠디 고스트(LMD-GHOST)라는 더 정교한 알고리즘이 사용됩니다. 정상적인 조건에서는 포크 선택 규칙이 불필요하다는 점을 인식하는 것이 중요합니다. 모든 슬롯에는 단일 블록 제안자가 있으며 정직한 검증자가 이를 증명합니다. 대규모 네트워크 비동기성이 발생하거나 부정직한 블록 제안자가 모순된 행동을 한 경우에만 포크 선택 알고리즘이 필요합니다. 그러나 이러한 경우가 발생할 때 포크 선택 알고리즘은 올바른 체인을 보호하는 중요한 방어 수단입니다.

LMD-GHOST는 "최근 메시지 기반 탐욕적 가장 무거운 관찰된 하위 트리(latest message-driven greedy heaviest observed sub-tree)"의 약자입니다. 이는 누적된 증명 가중치가 가장 큰 포크를 표준 포크로 선택하고(탐욕적 가장 무거운 하위 트리), 검증자로부터 여러 메시지가 수신된 경우 가장 최근의 메시지만 고려하는(최근 메시지 기반) 알고리즘을 정의하는 전문 용어가 많은 표현입니다. 가장 무거운 블록을 표준 체인에 추가하기 전에 모든 검증자는 이 규칙을 사용하여 각 블록을 평가합니다.

추가 자료