코인베이스 추첨
코인베이스 추첨은 ZooBC가 노드에게 지급하는 방식입니다. 새로 방출된 코인, 블록의 수수료, 롱제비티 풀의 한 조각으로 이루어진 모든 블록의 보상 풀은 같은 몫으로 나뉘고, 각 몫은 참여 점수에 비례하는 확률로 등록 노드들 사이에서 추첨됩니다. 블록을 만든 노드에게 특별한 권리는 없습니다. 노드는 점수가 측정하는 일을 해서 법니다.
보상 풀
각 블록의 보상 풀은 다음의 합입니다.
- 블록의 코인베이스: 발행 일정이 그 블록에 대해 방출하는 새 ZBC(공급과 발행)
- 블록에 담긴 트랜잭션의 수수료: 송신자에게 환불된 초과 지불분을 뺀 금액(수수료)
- 롱제비티 풀의 한 조각: 롱제비티 풀은 임대료와 벌칙을 모아 매 블록 조금씩 지급합니다(풀).
누가 티켓을 가지는가
티켓 보유자는 성숙했으며 누락 상태도 정지 상태도 아닌 등록 노드입니다.
- 성숙. 새 노드는 입회 후 4 점수 단위가 지나고 자기 블록을 하나 만들 때까지 아무것도 벌지 못합니다. 체인의 노드가 2,880개 미만인 동안에는 2일입니다(성숙과 수입).
- 누락 상태가 아님. 차례를 건너뛴 노드는 다음 자기 블록까지 누락 상태로 간주되며, 그동안 아무것도 벌지 못합니다(놓친 차례, 정지, 퇴출).
- 정지 상태가 아님. 연속 4번 차례를 놓쳐 정지된 노드는 티켓이 없습니다.
아직 대기열에서 기다리는 노드는 점수가 없으므로 티켓도 없습니다.
추첨
풀은 여러 번의 추첨으로 나뉩니다.
- 블록 시간 1초마다 한 번. 블록 시간은 이전 두 블록 사이의 간격으로 재며, 블록의 생산자는 이를 고를 수 없습니다.
- 최대 600회이며, 티켓 보유자 수보다 많아지지 않습니다.
- 풀이 추첨 한 번당 1 ZBC보다 많이 담고 있으면, 같은 두 한도 안에서 추첨 수가 풀의 ZBC 1개당 한 번으로 늘어납니다.
따라서 티켓 보유자가 11개인 체인에서는 블록당 15번이 아니라 11번 추첨합니다. 티켓 보유자 1,000개, 간격 15초, 풀 30 ZBC라면 추첨 수는 15에서 시작하여 추첨당 2 ZBC가 되므로 30으로 늘어납니다.
각 추첨은 같은 몫을 받습니다. 풀을 추첨 수로 나눈 값을 원자 단위로 내림한 것이며, 나머지는 마지막 몫에 더합니다. 당첨금은 노드 키가 아니라 노드의 소유자 계정으로 지급됩니다(노드의 키).
확률은 점수를 따릅니다
각 추첨은 참여 점수에 비례하는 확률로 노드를 고릅니다. 티켓 보유자 둘의 점수가 80 %와 40 %라면, 첫 번째 노드는 어느 추첨에서든 두 번째 노드보다 당첨될 확률이 두 배이며, 두 번째 노드도 어느 추첨에서든 당첨될 수 있습니다. 추첨은 서로 독립이고 복원 추출이므로, 한 노드가 같은 블록의 몫을 여러 개 받을 수 있습니다.
난수는 레이블 zbc-coinbase와 이전 블록의 시드로 시작하는 생성기에서 나오므로(블록 시드 (VRF)), 모든 노드가 같은 당첨자를 계산하고 모든 지급을 확인할 수 있습니다.
시간이 지나면 노드의 기대 수입은 모든 티켓 보유자의 점수 합계에서 그 노드가 차지하는 비율입니다. 스테이크는 아무 역할도 하지 않습니다. 스테이크는 노드를 대기열에 들여보낼 뿐이며, 그 자체로는 아무것도 벌지 않습니다.
특별한 경우
- 어떤 티켓 보유자도 가중치를 줄 수 있는 점수가 없으면, 풀은 티켓 보유자들에게 균등하게 나뉩니다.
- 어떤 노드도 티켓이 없으면, 풀은 다음 블록으로 이월됩니다.
- 마켓의 테이커 수수료는 풀에 포함되지 않습니다. 이는 블록의 생산자에게 가며, 추첨이 아니라 생산자에게 지급되는 유일한 요금입니다. 그 생산자가 아직 성숙하지 않았다면 테이커 수수료는 대신 추첨으로 갑니다(마켓과 주문).
무엇을 보상하는가
점수는 노드 자신의 블록이 배정된 피어들에게 중계한 데이터의 영수증을 담으면 오르고, 노드가 누락 상태인 동안 떨어집니다(참여 점수). 추첨은 점수를 따르고, 누락 상태나 정지 상태의 노드는 아예 티켓이 없으므로, 수입은 계속 블록을 만들고 데이터를 중계하는 노드들에게 갑니다. 스테이크만 보유한 노드는 아무것도 벌지 못합니다.