ZooBC 위키
앱과 ZooBC 위에서의 개발

프로젝트 아이디어

ZooBC에는 가상 머신이 없으므로 아무도 컨트랙트를 배포하지 않습니다. 대신 미리 만들어진 많은 트랜잭션 유형을 제공하며, 좋은 프로젝트는 이것들을 조합합니다. 체인은 심판이자 장부이고, 앱은 얼굴이며, 흔히 웹 페이지 하나입니다(HTML 페이지 하나로 앱 만들기). 아래의 모든 아이디어는 노드가 이미 실행하는 트랜잭션 유형만 쓰며, 각각에는 개발자가 알아야 할 함정이 함께 적혀 있습니다.

LiquidPayment와 LiquidPaymentStop으로 만드는 강물 결제, 그리고 같은 방식으로 만드는 다른 아이디어들.
LiquidPayment와 LiquidPaymentStop으로 만드는 강물 결제, 그리고 같은 방식으로 만드는 다른 아이디어들.

결제

강물 결제

LiquidPayment(유형 6)는 ZBC나 토큰으로 된 금액을 잠그고, 정한 complete_minutes에 걸쳐 수신자에게 고르게 귀속시킵니다. 끝나면 전체 금액이 자동으로 지급됩니다. 어느 쪽이든 보내는 LiquidPaymentStop(유형 262)은 그때까지 귀속된 몫을 지급하고 나머지를 돌려줍니다. 페이지는 수위만 그리면 됩니다. 알아 둘 점: 분할은 두 트랜잭션의 타임스탬프 사이의 시간을 따르며, 수신자의 몫은 올림합니다. 3분에 걸친 10,000,000단위를 66초 뒤에 중지하면 수신자에게 3,666,667단위가 가고 6,333,333단위가 돌아옵니다(리퀴드 페이먼트 (스트림)).

손해 보증금

세입자가 승인자, 커미션, 기한을 지정한 에스크로 SendZBC로 보증금을 보냅니다(에스크로). 승인자는 승인할 수 있고, 그러면 금액이 집주인에게 갑니다. 거부하면 세입자에게 돌아갑니다. 어느 쪽이든 승인자는 커미션을 받습니다. 아무도 행동하지 않으면, 기한을 넘긴 첫 블록이 금액과 커미션을 세입자에게 돌려줍니다. 주의할 점: 에스크로 임대료는 만들 때 내고 결코 환불되지 않으며, 정리 범위를 넘어선 기한은 트랜잭션의 생존 예치금이 그때까지 보관하는 비용을 내지 않는 한 거부됩니다.

가족 계정

LinkAccount(55), SetMemberPermissions(57), UnlinkAccount(56), TransferGroupControl(58)로 가족이 최대 100개의 주소 뒤에 잔액 하나를 둘 수 있습니다(계정 그룹). 주의할 점: 합류에는 합류하는 주소의 동의가 필요하고 그 주소가 소유한 모든 것이 그룹으로 옮겨집니다. 새 구성원은 컨트롤러가 권한을 줄 때까지 받기만 할 수 있습니다. 그리고 떠나는 구성원은 아무것도 가져가지 않습니다.

게임

주사위 오락실

유형 16~19(주사위 두 개, 동전 던지기, 룰렛, 슬롯)의 CreateApp은 앱 풀을 상대로 플레이합니다. 페이지는 약 30초 뒤에 결과를 보여 주며, /api/v1/apps/pool을 읽어 게임별 최대 판돈을 보여 줄 수 있습니다. 주의할 점: 최대 지급액이 풀의 5 %를 넘는 베팅은 거부되며, 아주 큰 당첨금은 여러 블록에 걸쳐 지급될 수 있습니다(솔로 베팅).

틱택토 키오스크

유형 1을 CreateApp, JoinApp, AppMove, ClaimAppTimeout과 함께 씁니다(멀티플레이어 앱). 주의할 점: 모든 수는 수수료와 블록 대기 시간이 따르는 트랜잭션입니다. 자리를 뜬 플레이어는 상대가 청구할 수 있을 때까지 240블록 동안 게임을 붙잡아 둡니다. 그리고 Ethereum이나 Bitcoin 방식의 키를 가진 계정은 좌석을 차지할 수 없습니다.

번개 대결

SettleApp으로 정산하는 2인 채널 게임입니다(채널 앱). 수는 서명된 수로서 플레이어 사이를 오가고, 체인은 판돈과 정산만 봅니다. 주의할 점: 앱이 플레이어 사이에 수를 전달해야 하며(공식 지갑은 릴레이를 씁니다), 받은 모든 서명된 수를 보관하고, 240블록의 이의 제기 기간을 지켜봐야 합니다.

토큰과 거래

커피 스탬프

IssueToken(유형 10)으로 소수 0자리의 스탬프 토큰을 만들어 정수 단위로만 움직이게 하고, TransferToken(11)으로 손님에게 스탬프를 주며, BurnToken(13)으로 카운터에서 스탬프를 씁니다(토큰 발행). 주의할 점: BurnToken은 상환 가능으로 발행한 토큰에서만 작동하고, 단위의 보유자만 그것을 소각할 수 있습니다. 그리고 토큰은 유지비를 내는 동안에만 유지됩니다(토큰 유지비 (지속)).

스왑 키오스크

CreateSwapOffer(18), AcceptSwapOffer(19), CancelSwapOffer(20)로 어떤 두 자산 사이든 아토믹 스왑 게시판을 만듭니다(스왑 제안). 주의할 점: 테이커 한 명이 원하는 쪽 전체를 지불하며 부분 체결은 없고, 제안의 만료는 수락만 막으므로 만료된 제안은 메이커가 취소할 때까지 잠겨 있습니다.

기록과 메시지

해시 스탬프

메시지에 파일의 SHA-256을 담은 트랜잭션은 그 블록이 만들어졌을 때 그 파일이 존재했음을 보여 주며, FundLongevity(52)나 생존 필드로 정리 이후에도 보관할 수 있습니다(데이터 보관 비용 (롱제비티)). 게이트웨이의 /verify 페이지는 브라우저에서 해시를 계산하고 체인에서 이를 찾습니다(다운로드한 파일 확인). 주의할 점: 롱제비티 예치금이 없으면 일반 노드는 30~60일 뒤에 스탬프를 정리하며, 첫 FundLongevity는 스냅샷 간격 하나, 약 30일 안에 와야 합니다.

봉인된 엽서

"ZBE1"로 표시되고 수신자의 키로 봉인된 암호화 메시지는 최대 268바이트의 텍스트를 담을 수 있습니다(서명된 메시지와 암호화된 메시지). 주의할 점: 봉인되는 것은 텍스트뿐입니다. 송신자, 수신자, 시각을 가진 트랜잭션 자체는 다른 트랜잭션과 마찬가지로 공개됩니다.

ZooBC로 로그인

사이트가 일회용 챌린지를 보여 주면, 사용자는 공개 도구로 이를 ZBC-MSG-v2 메시지로 서명하고(SHA3-256("ZBC-MSG-v2" ‖ 제네시스 해시 ‖ 메시지)에 대한 Ed25519 서명), 사이트는 계정의 키로 서명을 확인합니다. 주의할 점: 메시지 서명은 합의의 일부가 아니며 노드에는 이를 위한 경로가 없으므로, 사이트가 직접 검증합니다. 그리고 공식 웹 지갑은 메시지에 서명하지 않습니다.

노드를 바꿔야 하는 것

  • 자동 마켓 메이커. ZooBC에는 결정에 따라 AMM 풀이 없습니다. 거래소는 오더북과 스왑 제안으로 이루어집니다(마켓과 주문).
  • Solidity나 어떤 EVM 컨트랙트든. 가상 머신이 없습니다.
  • 포커 같은 새 게임. 게임 규칙은 스크립트로 업로드할 수 없으며, 새 게임에는 노드의 새 규칙이 필요합니다.
  • 현금화 버튼이 있는 크래시 게임. 크래시는 목표가 미리 정해지는 솔로 베팅이며, 현금화하는 수는 없습니다.

같이 보기