본문으로 건너뛰기
Change page

증명

검증자는 매 에포크마다 증명을 생성, 서명 및 브로드캐스트해야 합니다. 이 페이지는 이러한 증명이 어떻게 생겼는지, 그리고 합의 클라이언트 간에 어떻게 처리되고 통신되는지 개략적으로 설명합니다.

증명이란 무엇인가요?

(6.4분)마다 검증자는 네트워크에 증명을 제안합니다. 이 증명은 에포크 내의 특정 슬롯에 대한 것입니다. 증명의 목적은 체인에 대한 검증자의 관점, 특히 가장 최근의 정당화된 블록과 현재 에포크의 첫 번째 블록(sourcetarget 체크포인트로 알려짐)에 찬성하는 투표를 하는 것입니다. 이 정보는 참여하는 모든 검증자에 대해 결합되어, 네트워크가 블록체인의 상태에 대한 합의에 도달할 수 있게 합니다.

증명에는 다음 구성 요소가 포함됩니다.

  • aggregation_bits: 위치가 위원회 내 검증자 인덱스에 매핑되는 검증자의 비트 목록입니다. 값(0/1)은 검증자가 data에 서명했는지 여부(즉, 활성 상태이며 블록 제안자와 동의하는지 여부)를 나타냅니다.
  • data: 아래에 정의된 증명과 관련된 세부 정보입니다.
  • signature: 개별 검증자의 서명을 집계하는 BLS 서명입니다.

증명하는 검증자의 첫 번째 작업은 data를 구성하는 것입니다. data에는 다음 정보가 포함됩니다.

  • slot: 증명이 참조하는 슬롯 번호입니다.
  • index: 주어진 슬롯에서 검증자가 속한 위원회를 식별하는 번호입니다.
  • beacon_block_root: 검증자가 체인의 헤드에서 보는 블록의 루트 해시입니다(포크 선택 알고리즘을 적용한 결과).
  • source: 검증자가 가장 최근의 정당화된 블록으로 보는 것을 나타내는 완결성 투표의 일부입니다.
  • target: 검증자가 현재 에포크의 첫 번째 블록으로 보는 것을 나타내는 완결성 투표의 일부입니다.

data가 구성되면, 검증자는 aggregation_bits에서 자신의 검증자 인덱스에 해당하는 비트를 0에서 1로 뒤집어 참여했음을 표시할 수 있습니다.

마지막으로 검증자는 증명에 서명하고 이를 네트워크에 브로드캐스트합니다.

집계된 증명

모든 검증자에 대해 이 데이터를 네트워크에 전달하는 데는 상당한 오버헤드가 발생합니다. 따라서 개별 검증자의 증명은 더 널리 브로드캐스트되기 전에 서브넷 내에서 집계됩니다. 여기에는 서명을 함께 집계하는 것이 포함되므로, 브로드캐스트되는 증명에는 합의 data와 해당 data에 동의하는 모든 검증자의 서명을 결합하여 형성된 단일 서명이 포함됩니다. 이는 aggregation_bits를 사용하여 확인할 수 있는데, 이는 개별 서명을 쿼리하는 데 사용할 수 있는 위원회(ID는 data에 제공됨) 내 각 검증자의 인덱스를 제공하기 때문입니다.

각 에포크마다 각 서브넷에서 16명의 검증자가 aggregators로 선택됩니다. 집계자는 가십 네트워크를 통해 수신한 증명 중 자신의 것과 동일한 data를 가진 모든 증명을 수집합니다. 일치하는 각 증명의 발신자는 aggregation_bits에 기록됩니다. 그런 다음 집계자는 증명 집계본을 더 넓은 네트워크에 브로드캐스트합니다.

검증자가 블록 제안자로 선택되면, 서브넷의 집계된 증명들을 새 블록의 최신 슬롯까지 패키징합니다.

증명 포함 수명 주기

  1. 생성
  2. 전파
  3. 집계
  4. 전파
  5. 포함

증명 수명 주기는 아래 개요도에 요약되어 있습니다.

attestation lifecycle

보상

검증자는 증명을 제출하면 보상을 받습니다. 증명 보상은 참여 플래그(소스, 타겟 및 헤드), 기본 보상 및 참여율에 따라 달라집니다.

각 참여 플래그는 제출된 증명과 그 포함 지연 시간에 따라 참(true) 또는 거짓(false)이 될 수 있습니다.

가장 좋은 시나리오는 세 개의 플래그가 모두 참일 때 발생하며, 이 경우 검증자는 (올바른 플래그당) 다음을 얻게 됩니다.

reward += base reward * flag weight * flag attesting rate / 64

플래그 증명 비율은 총 활성 유효 잔고와 비교하여 해당 플래그에 대해 증명하는 모든 검증자의 유효 잔고 합계를 사용하여 측정됩니다.

기본 보상

기본 보상은 증명하는 검증자의 수와 그들의 유효 스테이킹된 이더 잔고에 따라 계산됩니다.

base reward = validator effective balance x 2^6 / SQRT(Effective balance of all active validators)

포함 지연

검증자가 체인의 헤드(block n)에 투표할 당시에는 block n+1이(가) 아직 제안되지 않았습니다. 따라서 증명은 자연스럽게 한 블록 뒤에 포함되므로, block n을 체인 헤드로 투표한 모든 증명은 block n+1에 포함되며 포함 지연은 1이 됩니다. 포함 지연이 두 슬롯으로 두 배가 되면 증명 보상은 절반으로 줄어듭니다. 증명 보상을 계산할 때 기본 보상에 포함 지연의 역수를 곱하기 때문입니다.

증명 시나리오

누락된 투표 검증자

검증자는 증명을 제출할 수 있는 최대 1 에포크의 시간을 갖습니다. 에포크 0에서 증명을 놓친 경우, 에포크 1에서 포함 지연과 함께 제출할 수 있습니다.

누락된 집계자

에포크당 총 16명의 집계자가 있습니다. 또한, 무작위 검증자들은 256 에포크 동안 두 개의 서브넷에 가입하여 집계자가 누락될 경우를 대비한 백업 역할을 합니다.

누락된 블록 제안자

경우에 따라 운이 좋은 집계자가 블록 제안자가 될 수도 있다는 점에 유의하세요. 블록 제안자가 누락되어 증명이 포함되지 않은 경우, 다음 블록 제안자가 집계된 증명을 선택하여 다음 블록에 포함시킵니다. 그러나 포함 지연은 1만큼 증가합니다.

더 읽어보기

도움이 된 커뮤니티 리소스를 알고 계신가요? 이 페이지를 편집하고 추가해 주세요!