ZooBC 위키
ZooBC 기본

ZooBC란 무엇인가

ZooBC는 자체 코인 ZBC를 가진 공개 블록체인입니다. 누구나 계정을 열고, 트랜잭션을 보내고, 모든 블록을 검사하는 노드를 운영할 수 있습니다. ZooBC의 합의 방식인 참여 증명에는 채굴이 없습니다. 블록은 추첨으로 뽑힌 등록 노드들이 차례로 만들며, 새 코인은 네트워크를 위해 데이터를 중계하는 일을 한 노드들에게 돌아갑니다.

자체 코인을 가진 공개 체인

ZooBC는 다른 네트워크 위의 토큰이 아닙니다. 자체 체인, 자체 노드, 그리고 트랜잭션 수수료, 노드 스테이크, 임대료를 지불하는 자체 네이티브 코인 ZBC를 가지고 있습니다. 체인을 따라가거나 검사하는 데 누구의 허락도 필요하지 않습니다. 모든 블록, 잔액, 트랜잭션은 공개되어 있으며, 어느 노드의 API든 누구에게나 응답합니다(계정과 주소).

ZooBC 네트워크는 devnet, testnet, mainnet의 세 가지가 서로 별개로 존재합니다(devnet, testnet, mainnet). 각 네트워크는 자체 제네시스 블록으로 시작하며, 그 해시가 체인의 신원입니다.

블록이 만들어지는 방식

새 블록은 약 15초마다 나옵니다(블록과 시간). 블록은 퍼즐을 풀어서 얻는 것이 아닙니다. 노드 레지스트리는 블록을 만들 수 있는 노드들의 온체인 집합이며, 각 블록 이후 그 블록의 시드로 하는 무작위 추첨이 다음 블록을 만들 수 있는 노드를 지명합니다(추첨). 모든 노드가 이 추첨을 재현해 같은 답을 얻을 수 있으므로, 추첨되지 않은 노드가 만든 블록은 거부됩니다. 모든 활성 좌석은 추첨에서 같은 기회를 갖습니다. 하드웨어, 잔액, 스테이크는 이를 바꾸지 않습니다.

참여 증명은 또한 네트워크를 살아 있게 하는 일, 즉 블록과 트랜잭션을 다른 노드에 전달하는 일을 측정합니다. 등록 노드가 다른 등록 노드로부터 데이터를 받으면 그에 대한 영수증에 서명하며, 노드가 보여 줄 수 있는 영수증이 그 노드의 참여 점수를 움직입니다. 점수는 각 블록의 새 코인과 수수료를 나누는 코인베이스 추첨에 가중치를 줍니다. 보안은 소비한 에너지가 아니라 Ed25519 서명과 SHA3-256 해시에 기댑니다.

블록은 15초마다 나오며, 블록마다 노드 레지스트리의 노드 하나가 추첨으로 뽑혀 그 블록을 만듭니다. 채굴은 없습니다.
블록은 15초마다 나오며, 블록마다 노드 레지스트리의 노드 하나가 추첨으로 뽑혀 그 블록을 만듭니다. 채굴은 없습니다.

노드란 무엇인가

노드는 컴퓨터에서 실행되는 ZooBC 소프트웨어입니다. 노드는 체인을 내려받고, 모든 블록과 트랜잭션을 다른 모든 노드와 같은 규칙으로 검사하며, 그 결과인 상태, 즉 잔액, 토큰, 노드 레지스트리 등을 보관합니다. 또한 공개 HTTP API(노드 API)와 /wallet의 공식 지갑 페이지(지갑 만들기와 안전한 보관)를 제공합니다.

노드는 두 가지 수준으로 참여할 수 있습니다.

  • 팔로워. 누구나 체인을 따라가며 검사하기만 하는 노드를 운영할 수 있습니다. 이런 노드는 소유자가 누구도 신뢰하지 않고 모든 것을 검증할 수 있게 해 주지만, 블록은 만들지 않습니다.
  • 생산자. 노드 레지스트리에 합류한 노드는 블록을 만들 수 있습니다. 소유자는 일반 계정에서 노드 키를 등록하고, 스테이크를 잠그고, 노드가 입회할 때까지 대기열에서 기다립니다(노드 등록). 그때부터 노드는 블록을 만들도록 추첨되고, 프로토콜이 배정한 피어들에게 데이터를 중계하고, 받은 것에 대해 영수증에 서명하며, 점수에 따라 새 코인을 나눠 받습니다.

지갑은 노드가 아닙니다. 지갑은 노드의 API와 통신하는 클라이언트입니다. 그리고 어떤 ZooBC 노드도 채굴하지 않습니다.

프로토콜에 내장된 기능

ZooBC에는 사용자 코드를 위한 가상 머신도, EVM도, 가스도 없습니다. 모든 기능은 바이트 배치와 규칙이 고정된 내장 트랜잭션 유형입니다. ZBC 보내기, 토큰 발행, 마켓에 주문 내기, 에스크로 만들기, 파일 저장, 계정을 그룹으로 연결하기, 결제 예약 등이 있습니다. 버전 0.5.8부터 프로토콜은 73개의 트랜잭션 유형 번호를 정의합니다(트랜잭션, ZooBC로 할 수 있는 일).

이는 의도적인 절충입니다. 모든 노드가 트랜잭션이 할 수 있는 모든 일을 미리 알고 정확히 같은 방식으로 적용하므로, 트랜잭션의 효과는 누가 처리하느냐에 따라 달라지지 않으며, 지갑은 서명하기 전에 최소 수수료를 계산할 수 있습니다. 그 대신 새로운 종류의 기능은 컨트랙트 배포가 아니라 프로토콜 릴리스와 함께 도입됩니다(릴리스와 업데이트).

기능은 트랜잭션 유형으로 ZooBC 프로토콜에 내장되어 있습니다. ZBC 보내기, 토큰, 마켓, 에스크로, 데이터셋, 파일, 앱, 계정 그룹, 예약이 있으며, 버전 0.5.8부터 트랜잭션 유형은 73개입니다. 사용자 코드를 위한 가상 머신은 없습니다.
기능은 트랜잭션 유형으로 ZooBC 프로토콜에 내장되어 있습니다. ZBC 보내기, 토큰, 마켓, 에스크로, 데이터셋, 파일, 앱, 계정 그룹, 예약이 있으며, 버전 0.5.8부터 트랜잭션 유형은 73개입니다. 사용자 코드를 위한 가상 머신은 없습니다.

어떤 키로도 바꿀 수 없는 규칙

체인의 규칙은 제네시스와 노드 소프트웨어와 함께 정해집니다. 버전 0.5.8부터 체인에는 121개의 합의 규칙이 있으며, 모두 높이 0부터 적용됩니다. 어떤 키도 메시지에 서명하는 것으로 규칙, 파라미터, 잔액을 바꿀 수 없습니다. 잔액은 모든 노드가 검증하는 트랜잭션을 통해서만 바뀌며, 레지스트리의 좌석들은 정해진 범위 안에서 몇 가지 가격만 움직일 수 있습니다(가격 투표). ZooBC Foundation은 각 체인의 첫 좌석들을 보유하고 명령줄 도구를 공개하지만, 마스터 키는 가지고 있지 않습니다.

같이 보기