ZooBC 위키
참여 증명 (PoP)

참여 점수

참여 점수는 등록 노드가 일을 얼마나 잘하는지를 나타내는 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에 이른 노드는 퇴출됩니다. 단, 그 결과 활성 노드가 셋 미만으로 남게 되는 경우는 예외입니다.

그것이 전부입니다. 점수는 생산자 추첨의 입력이 아니며, 포크 선택에서 블록의 가중치에도 들어가지 않습니다.

두 패널: 생산자 추첨에서 90 % 노드와 30 % 노드의 몫은 같고(1 : 1), 코인베이스 추첨에서는 3 : 1입니다. 점수는 블록 생산이 아니라 보상을 움직입니다.
두 패널: 생산자 추첨에서 90 % 노드와 30 % 노드의 몫은 같고(1 : 1), 코인베이스 추첨에서는 3 : 1입니다. 점수는 블록 생산이 아니라 보상을 움직입니다.

권한과 수입을 분리하는 이유

점수를 추첨에서 배제한 것은 의도적인 설계입니다. 점수가 높은 노드도 체인에 대해 추가 권한을 얻지 못합니다. 블록을 더 많이 만들지도, 시드를 더 많이 고르지도, 트랜잭션을 빼놓을 기회를 더 많이 얻지도 않습니다. 블록 생산 권한은 좌석마다 균일하게 유지되고, 수입은 측정된 일을 따릅니다. 스테이크는 둘 중 어디에도 관여하지 않으며, 노드를 대기열에 들여보낼 뿐입니다.

시작값 20 %, 오르고 떨어지는 비율 같은 모든 점수 관련 수치는 체인의 제네시스 파라미터입니다.

같이 보기