비콘체인이란 (2)

iwin1203·2022년 10월 10일
0

블록체인

목록 보기
7/11
post-custom-banner

스테이킹 보상과 패널티


검증인 보상에 대해, 간략히 여섯개의 주제를 다뤄보겠다.

  1. 증언자 보상
  2. 증언자 패널티
  3. 스테이커들의 리스크
  4. 슬래싱과 밀고 보상
  5. 제안자 보상
  6. 비활동 누수 패널티
  1. 검증인이 증언(LMD GHOST + FFG)을 하고, 이 증언이 다른 검증인의 과반이 동의한 내용이라면 보상을 받는다. 그 블록이 최종화되면 더욱 큰 보상을 받는다.

  2. 반면, 검증인이 아예 증언을 하지 않거나, 최종화에 실패한 블록에 증언을 하는 경우는 패널티를 받게 된다.

  3. 스테이커로써 잃을 수 있는 이더는 얻을 수 있는 양과 비슷하다. 예를 들어, 검증인이 증언자 보상으로 10%의 수익을 낼 것으로 예상한다면, 최악의 경우 7.5%까지의 손실을 입게 된다. 항상 오프라인이거나 항상 최종화에 실패하는 블록에만 투표하는 경우, 검증인은 최종화에 성공하는 블록에 정확히 증언했을 때 얻게 되는 보상의 3/4만큼의 패널티를 입게 된다. 이는 365일 내내 오프라인인 경우를 가정했을 때로, 만약 며칠이나 몇 주 동안만 오프라인이라면 훨씬 적은 손해를 보게 될 것이다. 가령 일 년 중 36일동안 오프라인이라면 0.75%의 손실이 될 것이다.

  4. 슬래싱은 0.5ETH부터 검증인의 전체 지분까지 이를 수 있는 패널티이다. 정직한 검증인이라면 절대 다른 검증인들에 의해 슬래싱될 수 없다. 슬래싱될 수 있는 공격을 저지른 검증인은 밸런스의 1/32 이상을 잃게 되며, 비활성화된다("강제 추방됨"). 해당 검증인은 8192 에폭동안 오프라인이었던 것과 동일한 수준의 패널티를 받게 된다. 비콘체인 프로토콜은 또한 비슷한 시기에 얼마나 많은 검증인들이 슬래싱되었는지에 기반하여 추가적인 패널티를 부과한다. 추가 패널티 기본 공식은 다음과 같다. 검증인의_밸런스 * 3 * 슬래싱된_검증인의_비율 전체 검증인의 1/3이 비슷한 시기에 슬래싱될 수준의 공격을 저지른다면, 검증인들은 그들의 전재산을 잃을 수도 있다. 이러한 공격을 신고하는 검증인은 반대로 밀고 보상을 받게 된다.

  5. 최종화에 성공한 블록의 제안자는 꽤나 큰 보상을 받게 된다. 계속 온라인이고 성실히 일하는 검증인은 블록 제안 보상에 1/8배 정도의 추가 보상을 얻는다. 슬래싱이 발생하는 경우, 제안자들은 슬래싱의 증거를 블록에 포함시킴으로써도 작은 보상을 얻을 수 있다. 현재는 모든 밀고 보상이 사실상 제안자에게 주어지고 있다.

  6. 이더리움은 여러 매커니즘들이 작용하는 시스템이며, 때로는 전체로서 더 의미를 갖는다. 보상과 리워드 설계의 끝은 비활동 누수 패널티이다. 이는 위 3번의 경우와 달리 매우 심각하면서도 드문 경우이다. 기본적으로 최종화가 마지막으로 발생한 지 네 에폭이 지나면, 검증인들은 체크포인트가 최종화될때까지 이차함수적으로 증가하는 비활동 패널티를 받게 된다. 비활동 패널티 (혹은 이차식적 누수)는 다음과 같은 결과를 발생시킨다: 만약 50%의 검증인이 오프라인이 되면, 블록은 18일 이후 다시 최종화가 시작된다. 이차식적 누수가 문제가 있는 검증인들에게 지속적인 패널티를 주고 결과적으로 강제 추방시키게 되고, 정상적인 다른 검증인들이 2/3 압도다수를 차지하게 되어 최종화가 다시 진행될 수 있도록 하는 것이다. 비활동 누수는 정상적으로 작동하는 검증인들에게 피해를 입히지 않는다. 비활동 누수가 발생하는 동안, 증언 보상은 사라지며, 제안자 보상과 밀고 보상은 평소와 같이 주어진다.



슬래싱당할 수 있는 행위들


검증인이 슬래싱당하는 경우에는 세 가지가 있다. 이중 제안, FFG 포위(surround) 투표, FFG 이중 투표가 그것이다. LMD GHOST 투표는 슬래싱당할 수 있는 행위에 포함되지 않는다.

이중 제안은, 제안자가 할당된 슬롯에 두 개 이상의 블록을 제안하는 경우이다.

포위 투표는, 검증인이 한 FFG 투표가 기존 FFG 투표를 포위하거나, 기존 FFG 투표에 포위되는 경우이다. 검증인이 에폭5에서, 32번째 슬롯을 소스로, 128번째 슬롯을 타겟으로 하는 경우를 상정하고, 포위 투표의 예시를 살펴보자.

  • 검증인이 에폭6에서 {소스:64번슬롯}, {타겟:96번슬롯}으로 FFG 투표를 했다. 이는 에폭5 FFG 투표 {소스:32번슬롯}, {타겟:128번슬롯}에 의해 포위되므로, 포위 투표에 해당한다.

  • 검증인이 에폭6에서 {소스:0번슬롯}, {타겟:160번슬롯}으로 FFG 투표를 했다. 이는 에폭5 FFG 투표를 포위하므로, 포위 투표에 해당한다.

이중 투표는 검증인이 한 에폭에서 두 번의 FFG 투표를 한 경우에 해당한다. 이는 포크 상황에서 발생할 수 있다.

(두 개의 FFG 투표 (파란 선으로 표시)는 에폭4에서 두 개의 타겟을 가리키고 있어 이중 투표에 해당한다)

위 다이어그램에서 파란 화살표는 두 FFG 투표를 의미한다. 하나는 왼쪽 포크의 슬롯 128을, 다른 하나는 오른쪽 포크의 슬롯 128을 타겟으로 가리키고 있다. 이러한 식으로 투표한 검증인은 슬래싱당할 수 있는 행위인 이중 투표를 저지른 것으로 판단한다. 이는 소스 체크포인트가 다른 이중 투표에 해당한다.

한편, 소스 체크포인트가 같고 타겟이 다른 이중 투표도 있다. 아래 다이어그램을 보자.

위쪽 포크는 에폭1의 체크포인트로 블록64를 갖는다. 아래쪽 포크는 에폭1의 체크포인트로 블록 63을 갖는다. (이는 아래쪽 포크에서 64번째 슬롯에 제안된 블록이 없기 때문이다.) 에폭1에서 블록64를 타겟으로 투표하고, 블록63을 타겟으로 투표하는 것은 결과적으로 이중 투표가 되는 것이다. 이중 투표는 검증인이 한 에폭 내에서 두 타겟에 대해 FFG 투표를 하는 경우였다는 것을 기억하라.

이중 투표를 슬래싱하는 근본적인 이유는 검증인이 하나의 체인에 대해서만 투표하게 만들기 위함이다.


어떤 검증인을 신고하고자 한다면, 그 검증인이 발생시킨 투표가 컨플릭이 발생함을 보여야 한다. 방대한 양의 투표들 사이에서 이러한 컨플릭을 효율적으로 찾는 것은 결국 알고리즘과 자료구조 싸움이 된다.

검증인이 (결백하다면) 슬래싱을 피하는 것은 매우 간단한 일이다. 단지 어떤 것에 서명했는지를 기억하면 된다. 정직한 검증인은 다른 검증인의 어떠한 행위에 의해서도 슬래싱되지 않는다. 컨플릭이 발생하는 증언이나 제안에 서명한 경우만 아니라면.

검증인 클라이언트는 복수의 비콘 노드를 사용할 수도 있는데, 이는 주로 업타임, 신뢰도, DoS 공격 방어 등을 위해서이다. 이 셋업 과정에는 백업용 클라이언트가 사용되므로 특히나 컨플릭이 발생하는 메세지에 서명하지 않도록 각별한 주의가 필요하다.



비콘체인 검증인의 활성화와 생애주기


모든 검증인은 활성화되기 위해 32ETH가 필요하다. 이더리움 메인넷에 유저가 32ETH를 스테이킹하는 것은 곧 하나의 검증인을 활성화하는 것이다.

비콘체인은 밸런스가 16ETH 이하인 검증인을 비활성화(강제종료)한다. 스테이커들은 2023년부터 남아있는 검증인의 밸런스를 인출할 수 있을 것으로 보인다.

검증인들은 또한 2048번의 에폭, 대략 9일 정도 이후에는 자발적으로 종료할 수 있다.

자발적 종료이든 강제종료이든, 네 번의 에폭이 지나야 스테이커가 그들의 지분을 인출할 수 있다. 다시말해, 네 에폭 이내에 검증인은 여전히 슬래싱될 가능성이 있는 것이다. 정직한 검증인의 벨런스는 대략 27시간 이내에 인출가능해진다. 슬래싱된 검증인은 8192번의 에폭, 대략 36일간 인출이 금지된다.

다음 플로우차트에 대한 설명을 비롯하여 추가적인 기술 관련 사항은 https://notes.ethereum.org/7CFxjwMgQSWOHIxLgJP2Bw#A-note-on-Ethereum-20-phase-0-validator-lifecycle 에서 확인할 수 있다.

짧은 시간동안 검증인 집단이 급격하게 변화하는 상황을 피하기 위해, 한 에폭당 활성화되거나 종료되는 검증인 수를 제한하는 메커니즘들이 작동중이다. 이러한 메커니즘은 시스템을 공격하기 위해 검증인을 대량으로 활성화시키는 경우를 어렵게 만든다.

비콘체인은 효과적 밸런스 라는 심화 개념을 도입하고 있는데, 이는 검증인 밸런스보다 변화가 적고 여러 테크니컬한 최적화를 가능케 한다.



정리


매 에폭마다, 검증인은 슬롯에 균등하게 배분되고, 적절한 사이즈의 위원회로 다시 나눠진다. 검증인은 오직 하나의 슬롯, 하나의 위원회에만 속할 수 있다.

  • FFG 투표: 모든 검증인은 한 에폭 내에서 동일한 체크포인트를 최종화하고자 한다.
  • LMD GHOST 투표: 슬롯에 할당된 모든 검증인은 동일한 비콘체인 헤드에 투표하고자 한다.

비콘체인 제네시스는 2020년 12월 01일, 21,063개의 검증인과 함께 시작되었다. 검증인의 수는 슬래싱이나 자발적 종료를 통해 감소할수도, 스테이커의 스테이킹을 통해 증가할수도 있다. 2년이 다 되어가는 지금, 검증인의 수는 40만을 넘어섰다.

조금 더 깊게 파고들고 싶으면, https://github.com/ethereum/consensus-specs 에서 공식적인 레퍼런스들을 찾아보기를 추천한다. 여기서는 비콘체인 스펙과 다른 주요 리소스, 바운티 관련 이슈들을 찾아볼 수 있다. 다음 도전이나 ethresear.ch, 혹은 Ethereum Magician's forum 를 참고, 컨트리뷰트하고 역사를 써내려가는데 동참하라!

post-custom-banner

0개의 댓글