ZooBC 위키
토큰과 마켓

브리지와 래핑된 코인

브리지는 ZooBC를 Bitcoin, Ethereum과 연결합니다. 그 체인들의 커스터디 주소에 입금한 코인은 ZooBC에 래핑된 코인으로 1 대 1로 나타나며, 같은 방식으로 되돌려 보낼 수 있습니다. 브리지를 운영하는 단일 주체는 없습니다. 등록 노드들이 투표하며, 체인은 정지되지 않은 좌석의 3분의 2가 동의할 때만 발행하거나 소각합니다.

브리지는 버전 0.5.8부터 ZooBC의 일부입니다. 키퍼들이 입금과 출금을 증언하고, 체인은 그 투표에 따라 래핑된 코인을 발행하고 소각합니다. 체인들은 브리지 서비스를 시작하지 않은 채 버전 0.5.8로 재출범합니다.

브리지 코인

14개의 제네시스 코인 중 넷이 브리지 코인입니다.

코인나타내는 것
ZBTC비트코인
ZETH이더
ZUSDCEthereum의 ERC-20 토큰인 USDC
ZUSDTEthereum의 ERC-20 토큰인 USDT

각 코인은 원래 체인에 커스터디 주소를 가지며, 이 주소는 제네시스에 고정되고 제네시스 해시에 포함되어 확정됩니다. GET /api/v1/bridge/coins가 네 코인을 보여 줍니다. 나머지 제네시스 코인 열 개에는 커스터디 주소가 없습니다. Z로 시작하거나 끝나는 4~5자 심볼은 이 이름 공간에 예약되어 있으므로, 어떤 사용자 토큰도 브리지 코인의 이름을 가져갈 수 없습니다(토큰 발행 참조).

키퍼와 투표

ZooBC 노드는 어떤 외부 체인도 감시하지 않습니다. 별도의 키퍼 프로그램인 zbc-bridge가 브리지 구성을 가진 노드 옆에서 실행됩니다. 키퍼는 커스터디 주소를 감시하고, ZooBC에서 AttestEvent 트랜잭션으로 투표합니다(트리거와 증언 참조). 입금 투표의 이벤트 id는 ZBRDEP1:로, 출금 투표의 이벤트 id는 ZBWDR1:로 시작합니다. 각 투표는 수수료 없는 의무이며, 노드 자신의 키에서 수수료 정확히 0으로 보냅니다.

입금: 코인 들여오기

브리지: 이더가 커스터디 주소에 도착하고, 키퍼들이 각각 "Y에게 1 ZETH"를 증언합니다. 집계가 3분의 2를 넘으면 ZETH가 Y에게 발행됩니다. 아래에는 커스터디, 소각, 키퍼들의 서명을 거치는 귀환 경로가 있습니다
브리지: 이더가 커스터디 주소에 도착하고, 키퍼들이 각각 "Y에게 1 ZETH"를 증언합니다. 집계가 3분의 2를 넘으면 ZETH가 Y에게 발행됩니다. 아래에는 커스터디, 소각, 키퍼들의 서명을 거치는 귀환 경로가 있습니다
  1. 사용자가 Bitcoin이나 Ethereum의 커스터디 주소로 코인을 보냅니다.
  2. 확정된 입금을 본 각 키퍼가 입금과 값(토큰, 금액, ZooBC 수신자)을 명시한 증언을 보냅니다.
  3. 매 블록이 끝날 때 체인이 투표를 집계합니다. 집계 대상 좌석, 즉 정지되지 않은 등록 노드의 3분의 2(예를 들어 11개 중 8개)가 정확히 같은 값을 증언하면, 모든 노드가 그 금액을 수신자에게 1 대 1로, 브리지 수수료 없이 발행하며, 이벤트는 영구히 닫힙니다.

정지된 좌석은 투표하지도 집계되지도 않습니다. 여기에 두 가지 안전장치가 더해집니다.

  • 일일 상한. 입금으로 인해 한 코인의 하루(최근 5,760블록) 발행량이 코인 1개와 공급량의 10 % 중 큰 값을 넘게 되면, 정지되지 않은 모든 좌석이 동의해야 하며, 그 수는 결코 전체 좌석의 3분의 2보다 적어서는 안 됩니다.
  • 레지스트리 하한. 레지스트리의 좌석 수와 서로 다른 소유자 수가 하한 max(3, min_registry_size)보다 적은 동안에는 어떤 브리지 결정도 확정되지 않습니다(3분의 2 규칙 참조).

출금: 코인 내보내기

출금: ZBW1 메시지를 담은 커스터디로의 전송, 그 블록의 최종 확정, 외부 체인 서명을 담은 키퍼 투표, 3분의 2 집계, 커스터디에서의 소각, 그리고 서명들이 이더를 목적지로 풀어 줌
출금: ZBW1 메시지를 담은 커스터디로의 전송, 그 블록의 최종 확정, 외부 체인 서명을 담은 키퍼 투표, 3분의 2 집계, 커스터디에서의 소각, 그리고 서명들이 이더를 목적지로 풀어 줌
  1. 사용자는 일반 TransferToken으로 래핑된 코인을 커스터디 계정에 보내며, 메시지는 ZBW1| 뒤에 목적지 주소를 붙인 것입니다. 이 전송이 곧 요청입니다. BurnToken은 관여하지 않으며, 사용자는 외부 체인에서 아무것도 보내지 않습니다.
  2. 키퍼는 요청이 최종 확정된 뒤에만 행동하며, 이는 그 블록 이후 약 3시간에서 약 27시간이 걸립니다(최종성과 롤백 참조). 키퍼는 자신이 처리한 마지막 확정 블록부터 체인을 훑습니다. 각 키퍼의 투표는 요청, 토큰, 금액, 목적지를 명시하고, 그 키퍼의 외부 체인용 서명을 담습니다.
  3. 3분의 2가 동의하면 모든 노드가 요청을 다시 검사하고 커스터디 계정에서 그 단위를 소각합니다.
  4. API로 읽을 수 있는 키퍼들의 모인 서명이 목적지로 코인을 풀어 주는 것을 승인합니다.

720블록(3시간) 동안 새 증언을 받지 못한 이벤트는 고려 대상에서 빠집니다.

ZooBC의 래핑된 코인

발행된 래핑된 코인은 소수 8자리의 일반 제네시스 토큰입니다. 보내고, 에스크로하고, 스트리밍하고, 스왑 제안에 내놓고, 마켓에서 거래할 수 있습니다. 공급량은 브리지를 통해서만 바뀌며, 이에 대한 MintToken과 BurnToken은 거부됩니다. 브리지 발행은 수신자의 분배 정책으로 나뉘지 않습니다(분배 정책과 거래 정책 참조). 래핑된 코인의 소각은 체인의 소각 집계에 포함되며, ZBC 자체의 소각 집계는 0으로 유지됩니다.

같이 보기