참여 점수
참여 점수는 등록 노드가 일을 얼마나 잘하는지를 나타내는 ZooBC의 척도입니다. 0부터 100 %까지이며, 모든 노드는 20 %에서 시작합니다. 노드 자신의 블록이 데이터 중계로 얻은 영수증을 담으면 점수가 오르고, 차례를 건너뛴 뒤 누락 상태인 동안에는 점수가 떨어집니다. 점수는 새 ZBC를 나누는 코인베이스 추첨에서 노드의 기회를 결정하며, 점수가 0에 이른 노드는 좌석을 잃습니다. 점수는 누가 블록을 만드는지는 바꾸지 않습니다.
척도
내부적으로 점수는 0부터 10^13까지의 정수이며, 0~100 %로 표시됩니다. 모든 노드는 제네시스 좌석을 포함해 기본값인 2 × 10^12, 즉 20 %에서 시작합니다. 대기열에 있는 노드에는 점수가 없으며, 입회할 때 기본값이 기록됩니다. 점수는 모든 노드가 체인 자체로부터 계산합니다. 사용자가 매기는 평점이 아니며, 스테이크도 아닙니다.
오르는 방식: 자기 블록에 담긴 영수증
중계로 얻는 것은 점수가 아니라 영수증입니다. 점수는 노드의 차례가 왔을 때 움직입니다. 노드는 자신이 만든 블록에 얻은 영수증의 표본을 공개하고, 모든 검증자가 그것을 검사합니다. 보여 준 영수증의 수는 기준점과 비교됩니다.
pivot = floor(min(|S| − 1, P) / 2)
여기서 S는 추첨 집합(정지되지 않은 활성 노드)이고, P는 우선 피어의 수로 mainnet에서는 12입니다. 선택 가능한 노드가 11개이면 기준점은 5이고, 13개부터는 6입니다. 다시 말해 기준점은 생산자가 보여 줄 수 있었던 양의 약 절반입니다.
기준점보다 많은 영수증을 보여 주면 생산자의 점수가 오르고, 적게 보여 주면 떨어집니다. 변화의 크기는 활성 노드 수에 따라서도 조정됩니다. 결과는 언제나 0~100 % 사이로 유지됩니다. 따라서 블록에 영수증을 적게 담는 노드는 차례를 한 번도 놓치지 않더라도 점점 아래로 밀려납니다.
점수는 의도적으로 천천히 오릅니다. 노드가 2,880개 미만일 때, 모든 블록을 영수증과 함께 만드는 노드도 0에서 100 %까지 가는 데 30일이 걸리며, 이는 12시간인 점수 단위마다 평균 약 1.67점입니다.
떨어지는 방식: 누락 상태
건너뛴 차례부터 다음 자기 블록까지 노드는 누락 상태이며, 점수 단위(노드가 2,880개 미만이면 12시간)마다 5점을 잃습니다. 완벽한 노드가 오르는 속도보다 세 배 빠릅니다. 노드가 2,880개 미만일 때 침묵하는 노드는 20 %에서 0까지 2일, 100 %에서는 10일 만에 떨어집니다. 놓친 차례, 정지, 퇴출을 참조하십시오.
점수를 전혀 움직이지 않는 것들도 있습니다. 실패한 저장 증명은 점수를 깎지 않습니다. 다수 의견에 밀린 저장 보유자는 그 에포크의 저장 보상만 잃습니다(분산 저장소 풀 참조). 체인이 가동을 시작하는 높이 40 이전에는 어떤 점수도 바뀌지 않습니다. 그리고 매시간의 출석 확인도, 투표도 없습니다. 점수는 오직 블록이 담는 것과 노드가 건너뛴 차례에서만 나옵니다.
점수가 결정하는 것
수입. 모든 블록의 새 코인과 수수료는 코인베이스 추첨으로 나뉩니다. 블록의 보상 풀(코인베이스, 수수료, 롱제비티 풀의 한 조각)은 추첨 한 번에 하나씩 같은 몫으로 나뉩니다. 각 추첨은 이전 블록의 시드와 태그 zbc-coinbase로 시작하는 생성기에서 점수에 비례하는 확률로 노드를 고르므로, 모든 노드가 같은 당첨자를 계산합니다. 한 노드가 한 블록에서 여러 번 당첨될 수 있으며, 점수가 낮은 노드도 당첨될 수 있습니다. 추첨은 이전 두 블록 사이 간격 1초마다 한 번이며 최대 600회이고, 티켓 보유자 수보다 많아지지 않습니다(풀이 크면 같은 한도 안에서 횟수가 늘어날 수 있습니다). 티켓 보유자는 성숙했으며 누락 상태도 정지 상태도 아닌 등록 노드입니다. 그중 아무도 점수가 없으면 풀은 균등하게 나뉩니다.
좌석. 점수가 0에 이른 노드는 퇴출됩니다. 단, 그 결과 활성 노드가 셋 미만으로 남게 되는 경우는 예외입니다.
그것이 전부입니다. 점수는 생산자 추첨의 입력이 아니며, 포크 선택에서 블록의 가중치에도 들어가지 않습니다.
권한과 수입을 분리하는 이유
점수를 추첨에서 배제한 것은 의도적인 설계입니다. 점수가 높은 노드도 체인에 대해 추가 권한을 얻지 못합니다. 블록을 더 많이 만들지도, 시드를 더 많이 고르지도, 트랜잭션을 빼놓을 기회를 더 많이 얻지도 않습니다. 블록 생산 권한은 좌석마다 균일하게 유지되고, 수입은 측정된 일을 따릅니다. 스테이크는 둘 중 어디에도 관여하지 않으며, 노드를 대기열에 들여보낼 뿐입니다.
시작값 20 %, 오르고 떨어지는 비율 같은 모든 점수 관련 수치는 체인의 제네시스 파라미터입니다.