【プロジェクト研究】BCH版 Omni Layer 「 Wormhole 」

こんにちは! デザイナーの みぞ @3izorin です。

今回は、先日行われた Scaling for Consensus in HK🇭🇰 で知った、BCH版 Omni Layerの Wormholeについて紹介します。

f:id:mizonit:20180807183212p:plain

開発までの背景

EthereumでいうERC20トークンプロトコルのような、各自がトークン発行できる仕組みをBitcoinCashのチェーンでも作ろうと多くの開発者たちが取り組んでいます。

ただ、1次レイヤーでの変更はコンセンサス自体のアップグレードを必要とするので、どうしても論争になりがちでなかなか実現しません。

もちろん、この論争のおかげでセキュリティやプロトコルの安全性は担保されているのですが、これじゃイノベーションはおこせない!

ということでBitmain率いるWormhole が着目したのが、Omni Layerという、OP_RETURNを通じてトークン発行を実現するプロトコルです。代表的な例だとUSDTがありますね。

Wormholeは、このOmni LayerをフォークしBitcoindに統合して実装されるので、コンセンサスのアップグレードは意識する必要はありません。

参考までに Omni Layer(旧 Master Coin) の Visualization です。 一番下のビットコインプロトコルレイヤーの変更が不要だということがわかりますね👇

f:id:mizonit:20180808220725p:plain

Wormholeとは

Wormhole protocolから具体的な情報が公開されているわけではないので、あくまで推測な部分もありますが、少し具体的に見ていきましょう。

WHCトークンとは

Wormhole protocolで使われる基本通貨が Wormhole Cash= WHC で、このWHCトークンはProof-of-Burnで生成されます。 流れとしては、ユーザーがバーンアドレス bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu08dsyxz98whc にBCHを送り、1000 confirmation つくと 1BCH = 100WCH のレートで 送り元のアドレスに対して送金分のWCHが生成されるといった感じです。 ここでの 1000 confirmationは BCHのチェーンがロールバックする際のリスクを考慮して1000とされています。

⚠️ 2点注意があります!送金される場合は自己責任でお願いします🙏 ⚠️

1. 送金量が1BCH より少ないと、ただBCHを失うだけ。

そのままですね。1BCH以下を送金してもなにも返ってきません。1BCHを送るのは結構ハードルが高いので、@usatie がツイートしているように CoinEx で買うこともできます。この時点だと、ほとんどレート通りですね。

2. 何もせずにバーンアドレスに送ると、ただBCHを失うだけ。OP_CODEに情報を入れる必要がある!

上記した通り、WormholeはOmni Layerをフォークして実装されているので踏襲している部分があります。 実際にエクスプローラーで見てみると OP_RETURN に 0877686300000044 という情報が入っています。

f:id:mizonit:20180808222250j:plain

正しい情報が出ていないので、あくまでOmni Layerからのフォークを根拠とした推測ですが、下のイメージのように 16進数の数字をそれぞれのFieldごとに意味をもたせているかと思われます。 f:id:mizonit:20180808225726p:plain

Block ABC でデコードされたものを見ると、"Burn BCH Get WHC" とあるので、おそらく 0877686300000044 は WHCトークンの新規発行の際に入れる情報みたいです。最後の 44 は 16進数で 68 なので、 Raw data 内でいう type_int にあたるのかなと思います。

f:id:mizonit:20180808231059p:plain

Proof-of-Burnについては、Hashhubの東さんが書いてくれてます。こちらを参照ください👇

Proof of burn. コインを燃やすとは? - ビットコインダンジョン2.0

Block ABCのエクスプローラーは👇

Wormhole | BlockABC

WHCのユースケース

WHCは、主に下記のケースで使われます。

  • ネットワーク乱用防止
  • 新しいトークン作成時の手数料(1WHC)
  • 1対多でのトークン送信時(Airdropなど)
  • Smart ContractのGAS

ロードマップ 🛣

下記の4フェーズに分かれています。

Phase What they do
Earth (beginning) 2018.08 Omni Layerをフォークしてトークン発行管理にフォーカスしたスマートコントラクトを実装 / Bitcoin ABC の version 0.17.2 上に実装(随時アップデート) / WPのリリース
Tropos 2018.11 Wormhole protocol-basedのDEXプロトコルの実装 / Android・iOS・ PC向けのウォレットの参照実装
Ionize 2019.01 Wormhole protocolにERC721実装 / 多言語の開発・分析用SDKの開発 / WHCのコールドウォレット
Exophere 2019.06 パーミッションレススマートコントラクト / スケーリング対策として、Plasma protocol の実装 / 新世代のスマートコントラクト仮想マシンの実装

ちなみに今のフェーズは Earth-0.0.6-pre-release となっています。

下記のgithubのリンクから確認できます👇

github.com

f:id:mizonit:20180808004111p:plain

参考

wormhole.cash

coinandpeace.hatenablog.com

t.me

宣伝

今度、モバイルディベロッパー向けにビットコインのハッカソンやります! ハンズオンがあったり、豪華な審査員の方々がいらっしゃったりと最高なイベントです。

ぜひ!!来てください!👇

connpass.com

このハッカソンでは、BitcoinCashKit というOSSを使ってアプリを作ります。

スターしてください⭐️

github.com

最後に

今回は、Wormholeについて紹介しました。

不勉強で、香港で開催されたScaling for Consensus に行った際に初めて知りました。 ホワイトペーパーは中国語でのみで、yoursの記事などを参考にして書きましたが、まだまだ未公開な情報が多く、もっと詳しく知りたいところです。知っている方いれば教えてください!

間違いの指摘やご質問も大歓迎です!Twitterなどでご連絡お待ちしています。