노드의 키
ZooBC 노드 운영자는 두 키를 씁니다. 노드 키는 컴퓨터의 신원입니다. 노드에 있으면서 노드가 하루 종일 하는 일에 서명합니다. 소유자 키는 운영자 지갑에 있는 일반 계정으로, 좌석과 스테이크를 통제합니다. 두 키를 분리해 두면 서버에 침입당하더라도 운영자의 지갑까지 넘어가지 않습니다.
노드 키
노드 키는 32바이트 Ed25519 키이며, 접두사 ZNK_로 적습니다. 노드의 구성 파일인 node.conf에 보관되며, 다음에 서명합니다.
- 노드가 만드는 블록과, 각 블록 시드의 바탕이 되는 증명(블록 시드 (VRF))
- 피어들로부터 받은 블록과 트랜잭션에 대한 영수증(영수증과 네트워크 토폴로지)
- 각 연결을 여는 핸드셰이크를 포함한 피어들에게 보내는 메시지
- 스파인 체인에 대한 서명
- 가격 투표와 릴리스 거부권 같은 증언과 투표
- 분산 저장소의 조각을 보관하고 있다는 증명(분산 저장소 풀)
node.conf에 개인 키가 들어 있으므로, 컴퓨터의 다른 사용자가 그 파일을 읽을 수 있으면 노드는 시작을 거부합니다. 노드가 파일의 소유자일 때는 파일 모드를 직접 0600으로 설정합니다.
노드 자신의 계정
같은 32바이트를 접두사 ZBC_로 적으면 일반 계정, 즉 노드 자신의 계정이 됩니다. 이 계정은 저장 증명, 증언, 투표 같은 노드의 의무 트랜잭션을 수수료 정확히 0으로 보냅니다(수수료). 각 제네시스 좌석은 이 계정에 10 ZBC를 가지고 시작합니다.
한 키의 두 텍스트는 접두사 뒤의 처음 51자가 같고 마지막 다섯 자만 다릅니다. 끝의 3바이트 체크섬이 접두사도 포함하기 때문입니다. 따라서 손으로 ZNK를 ZBC로 바꾸면 체크섬이 깨지고, 수정된 텍스트는 거부됩니다(계정과 주소).
소유자 키
소유자 키는 운영자 지갑에 있는 일반 ZBC_ 계정입니다. 이 키는 레지스트리 트랜잭션에 서명합니다.
- NodeRegistration(유형 2): 노드를 등록하고 스테이크를 잠급니다.
- 스테이크 증액
- NodeRegistrationUpdate(유형 258): 좌석을 새 노드 키로 옮깁니다.
- RemoveNodeRegistration(유형 514): 노드를 제거합니다.
- ClaimNodeRegistration(유형 770): 스테이크를 청구합니다.
스테이크는 이 계정에서 나가며, 노드의 추첨 당첨금은 이 계정으로 지급됩니다. 노드는 소유자의 키를 결코 가지고 있지 않습니다.
서로 묶기: 소유 증명
등록에는 두 키가 모두 필요합니다. 노드 키는 소유자의 계정과 최근 블록을 명시한 짧은 메시지에 서명하고, 소유자 키는 그것을 담은 트랜잭션에 서명합니다. 어느 한 키만으로는 이 쌍을 등록할 수 없으며, 누구도 다른 사람의 노드를 자기 계정으로 등록할 수 없습니다. 스테이크를 증액하거나 청구할 때도 같은 증명이 필요합니다. 정확한 구조는 노드 등록에 있습니다.
운영자는 두 키를 직접 만듭니다. 발급받는 것은 없으며, 다른 누구도 사본을 가지고 있지 않습니다.
좌석을 새 노드 키로 옮기기
노드 키가 노출되었거나 컴퓨터를 교체하는 경우, 소유자는 다시 등록하지 않고 좌석을 새 노드 키로 옮길 수 있습니다. NodeRegistrationUpdate는 새 32바이트 키를, 새 키가 서명한 소유 증명과 함께 담습니다. 노드는 id, 점수, 대기열 상태, 입회 여부를 그대로 유지합니다. 변경은 그것을 포함한 블록 이후 120블록(30분)이 지나면 효력이 생깁니다.
노드 키로도 스테이크를 옮길 수 있습니다
노드 키는 지갑 키만큼 조심스럽게 지키십시오. 노드 키를 가진 사람은 누구나 ClaimNodeRegistration으로 좌석의 스테이크를 자신이 통제하는 계정으로 청구할 수 있습니다. 소유자 자신의 청구는 제거로 취급되며, 같은 7일 쿨다운이 적용됩니다. 다른 사람의 청구는 공지된 뒤 40,320블록(7일) 뒤에 실행되며, 그 전에 소유자가 노드를 제거하면 실행되지 않습니다. 따라서 체인을 지켜보는 소유자에게는 대응할 시간이 일주일 있습니다(레지스트리에서 나가기). 이것은 소유자 계정에 접근할 수 없게 된 소유자를 위한 경로이기도 합니다. 이때 청구는 다른 계정에서 오므로, 이 역시 7일 뒤에 실행됩니다.
그 밖의 키
네이티브 키는 복구 문구에서 m/44'/883'/n'를 따라 도출할 수 있으며, 같은 32바이트 키를 릴레이 키(ZBR_)나 게이트웨이 키(ZBG_)로도 적을 수 있습니다(키와 계정 유형). 프로토콜의 네 역할 키(릴리스 권한자, 페이지 권한자, 트레저리, 마켓 메이커)는 별도 기기에 있는 별도의 키입니다(ZooBC Foundation). 운영자에게는 그중 어떤 것도 필요하지 않습니다.