ブリッジとラップドコイン
ブリッジは ZooBC を Bitcoin および Ethereum とつなぎます。それらのチェーンのカストディアドレスに入金されたコインは、ZooBC 上に 1 対 1 でラップドコインとして現れ、同じ方法で送り返すことができます。単一の当事者がそれを運営することはありません。登録済みノードが投票し、チェーンは一時停止中でない席の 3 分の 2 が合意したときにだけミントまたはバーンを行います。
ブリッジはバージョン 0.5.8 から ZooBC の一部です。キーパーが入金と出金をアテステーションし、チェーンはその投票によってラップドコインをミントおよびバーンします。各チェーンはバージョン 0.5.8 で再始動しますが、その際ブリッジのサービスは開始されません。
ブリッジコイン
14 のジェネシスコインのうち 4 つがブリッジコインです。
| コイン | 表すもの |
|---|---|
| ZBTC | ビットコイン |
| ZETH | イーサ |
| ZUSDC | Ethereum 上の ERC-20 トークンである USDC |
| ZUSDT | Ethereum 上の ERC-20 トークンである USDT |
それぞれが元のチェーンにカストディアドレスを持ち、それはジェネシスで固定され、ジェネシスハッシュに確定されています。GET /api/v1/bridge/coins が 4 つを一覧表示します。他の 10 のジェネシスコインにはカストディアドレスがありません。Z で始まるか Z で終わる 4 文字または 5 文字のシンボルはこの名前空間のために予約されているため、ユーザートークンがブリッジコインの名前を取ることはできません(トークンの発行 を参照)。
キーパーと投票
ZooBC のノードは、外部のチェーンを監視しません。別のキーパーのプログラム zbc-bridge が、ブリッジの設定を持つノードの横で動きます。それはカストディアドレスを監視し、ZooBC 上で AttestEvent トランザクションによって投票します(トリガーとアテステーション を参照)。入金の投票のイベント ID は ZBRDEP1: で、出金の投票のイベント ID は ZBWDR1: で始まります。各投票は手数料のかからない義務で、ノード自身の鍵から手数料ちょうど 0 で送られます。
入金:コインが入る
- ユーザーが Bitcoin または Ethereum のカストディアドレスにコインを送ります。
- 確認された入金を見た各キーパーが、その入金と値(トークン、金額、ZooBC の受取人)を指定したアテステーションを送ります。
- 各ブロックの終わりに、チェーンが票を集計します。集計対象の席、つまり一時停止中でない登録済みノードの 3 分の 2(たとえば 11 のうち 8)がまったく同じ値をアテステーションすると、すべてのノードがその額を受取人へ、1 対 1 で、ブリッジ手数料なしでミントし、イベントは最終的に閉じられます。
一時停止中の席は投票も集計もされません。さらに 2 つの安全策が適用されます。
- 1 日の上限。 ある入金によって、あるコインの 1 日(直近 5,760 ブロック)のミントが、コイン 1 枚分とその供給量の 10 % のうち大きい方を超えてしまう場合は、一時停止中でないすべての席が同意しなければならず、しかもすべての席の 3 分の 2 を下回ってはなりません。
- レジストリの下限。 レジストリが席数および異なるオーナー数の下限 max(3,
min_registry_size) を下回っている間は、ブリッジの決定は何も確定しません(3 分の 2 ルール を参照)。
出金:コインが出る
- ユーザーが、
ZBW1|に続けて宛先アドレスを書いたメッセージとともに、ラップドコインを通常の TransferToken でカストディアカウントへ送ります。その転送がリクエストです。BurnToken は関係せず、ユーザーは外部のチェーンで何も送りません。 - キーパーが動くのは、リクエストが確定してからだけで、それにはそのブロックからおよそ 3 時間から 27 時間かかります(ファイナリティとロールバック を参照)。キーパーは、自分が処理した最後の確定済みブロックからチェーンを走査します。各キーパーの投票は、リクエスト、トークン、金額、宛先を指定し、そのキーパーの外部のチェーン用の署名を運びます。
- 3 分の 2 が合意すると、すべてのノードがリクエストを改めて確認し、それらの単位をカストディアカウントからバーンします。
- API を通じて読み取れる、集められたキーパーの署名が、宛先へのコインの放出を承認します。
720 ブロック(3 時間)の間に新しいアテステーションを受け取らなかったイベントは、検討の対象から外れます。
ZooBC 上のラップドコイン
いったんミントされると、ラップドコインは小数桁数 8 の通常のジェネシストークンです。送金、エスクロー、ストリーム、スワップのオファー、マーケットでの取引ができます。その供給量はブリッジを通じてのみ変わり、それに対する MintToken と BurnToken は拒否されます。ブリッジのミントは、受取人の分配ポリシーによって分けられることはありません(分配ポリシーと取引ポリシー を参照)。ラップドコインのバーンはチェーンのバーンの集計に数えられ、ZBC 自体の集計はゼロのままです。