노드 등록
등록은 체인을 따라가기만 하던 노드를 좌석 후보로 바꾸는 단계입니다. 소유자는 노드 키를 명시하고, 스테이크를 잠그고, 소유자와 노드 키가 한 쌍임을 증명하는 트랜잭션 하나를 보냅니다. 그러면 노드는 공개 대기열에 합류합니다. 노드는 입회한 뒤에야 블록을 만듭니다.
등록 트랜잭션
NodeRegistration(유형 2)은 노드 키, 소유자 계정, 스테이크, 소유 증명을 담습니다. 소유자는 다른 트랜잭션과 마찬가지로 여기에 서명합니다. 스테이크와 수수료는 소유자의 계정에서 차감되며, 최소 수수료는 기본 작업 수수료 0.025 ZBC(2,500,000 원자 단위)에 트랜잭션 바이트에 대한 요금을 더한 값입니다(수수료).
운영자를 심사하는 사람도, 하드웨어 테스트도, 승인 단계도 없습니다. 검사는 모든 노드가 같은 방식으로 적용하는 규칙뿐입니다.
소유 증명
소유 증명은 하나의 노드 키를 하나의 소유자에게 묶습니다. 이는 노드 키가 서명한 메시지이며, 일반 ZBC_ 소유자의 경우 구조는 다음과 같습니다.
| 필드 | 바이트 |
|---|---|
| 소유자 계정 유형 | 4 |
| 소유자 키 | 32 |
| 최근 블록의 해시 | 32 |
| 그 블록의 높이 | 4 |
| 노드 키의 Ed25519 서명 | 64 |
처음 72바이트는 먼저 해시하지 않고 그대로 서명되므로, 증명 전체는 136바이트입니다. 모든 노드는 네 가지를 검사합니다.
- 서명이 노드 키로 검증되는지
- 메시지 안의 계정이 트랜잭션의 송신자와 바이트 단위로 정확히 같은지
- 그 블록이 그 해시로, 검사하는 노드 자신의 체인에 존재하는지
- 그 블록이 최대 720블록(3시간) 전의 것인지
증명이 최근 블록을 명시하므로, 오래전에 미리 준비하거나 나중에 다시 쓸 수 없습니다. 스테이크를 증액할 때와 노드를 청구할 때도 같은 증명이 필요하며, 좌석을 새 노드 키로 옮길 때는 새 노드 키가 증명에 서명합니다(노드의 키).
얼마를 잠가야 하는가
노드가 대기열에 들어갈 수 있는 최소 스테이크는 다음 두 값 중 큰 쪽입니다.
- 대기열 최소치: mainnet에서 100 ZBC로 시작합니다. 좌석들이 투표하는 가격 중 하나이며(가격 투표), 1 원자 단위부터 250 ZBC까지 정할 수 있고, 스냅샷 주기마다 최대 한 번 움직이며, 각 투표는 20 % 인상이나 절반으로의 인하까지로 제한됩니다.
- 이미 대기 중인 노드들의 스테이크 중앙값의 절반: 수요를 따라갑니다.
이 검사는 들어갈 때만 적용됩니다. 이미 기다리고 있는 노드는 최소치가 올라도 자리를 유지합니다. 누구나 최소치보다 많이 잠가 대기열에서 앞으로 나아갈 수 있으며(대기열은 스테이크에 기다린 시간을 곱한 값으로 정렬됩니다), 대기 중인 노드는 쌓아 온 대기 시간을 유지하면서 나중에 스테이크를 늘릴 수 있습니다(대기열).
등록한 뒤
등록한 노드는 대기열에 들어갑니다. 아직 참여 점수가 없으며, 하루에 한 번 온라인임을 보여야 합니다(대기열). 입회 타이머가 이 노드에 이르면 기본 점수 20 %를 가진 등록 노드가 되며(입회 속도), 성숙하면 수입을 얻기 시작합니다(성숙과 수입).
입회 전에 노드를 철회하면 스테이크의 10 %를 잃습니다(레지스트리에서 나가기). 좌석이 삭제된 노드 키는 다시 등록할 수 있으며, 새 대기열 기록으로 시작하고 과거의 놓친 차례는 물려받지 않습니다.