증명
검증자는 매 에포크마다 증명을 생성, 서명 및 브로드캐스트해야 합니다. 이 페이지는 이러한 증명이 어떻게 생겼는지, 그리고 합의 클라이언트 간에 어떻게 처리되고 통신되는지 개략적으로 설명합니다.
증명이란 무엇인가요?
매 (6.4분)마다 검증자는 네트워크에 증명을 제안합니다. 이 증명은 에포크 내의 특정 슬롯에 대한 것입니다. 증명의 목적은 체인에 대한 검증자의 관점, 특히 가장 최근의 정당화된 블록과 현재 에포크의 첫 번째 블록(source 및 target 체크포인트로 알려짐)에 찬성하는 투표를 하는 것입니다. 이 정보는 참여하는 모든 검증자에 대해 결합되어, 네트워크가 블록체인의 상태에 대한 합의에 도달할 수 있게 합니다.
증명에는 다음 구성 요소가 포함됩니다.
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에 기록됩니다. 그런 다음 집계자는 증명 집계본을 더 넓은 네트워크에 브로드캐스트합니다.
검증자가 블록 제안자로 선택되면, 서브넷의 집계된 증명들을 새 블록의 최신 슬롯까지 패키징합니다.
증명 포함 수명 주기
- 생성
- 전파
- 집계
- 전파
- 포함
증명 수명 주기는 아래 개요도에 요약되어 있습니다.
보상
검증자는 증명을 제출하면 보상을 받습니다. 증명 보상은 참여 플래그(소스, 타겟 및 헤드), 기본 보상 및 참여율에 따라 달라집니다.
각 참여 플래그는 제출된 증명과 그 포함 지연 시간에 따라 참(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만큼 증가합니다.
더 읽어보기
도움이 된 커뮤니티 리소스를 알고 계신가요? 이 페이지를 편집하고 추가해 주세요!
