Bandプロトコルとは、Web3.0アプリケーション(dApp)向けのデータ管理フレームワーク。信頼できるデータをあらゆるdAppに容易に適用可能にするシステム(オラクル)を提供するオープンプロトコルです。既存のオラクルソリューションとしてChainlinkやAugurのオラクルシステムが挙げられますが、Bandはこれら既存のオラクルが抱える課題、複雑性を解消し、データ処理、データ管理のオープンスタンダードとして機能することを目的に開発が進められています。今回はこのBandの概要、仕組みについてザクっとご紹介致します。
既存のオラクルソリューションの課題
既存のオラクルソリューションには、大きく2点の問題点があるとされています。
一つはオラクルを介してブロックチェーン上に情報を伝達する際に、オラクルそのものが単一障害点になりうること(上画像)。※単一障害点(a single point of Failure)とは、その単一箇所が働かないと、システム全体が障害となるような箇所を指します。
2つ目に既存の解消法がデベロッパーフレンドリーでなく、データフィードの導入が複雑、非効率的である点。例えばオンデマンド(注文対応)オラクルネットワークであるChainlinkやよりアナログなインプット構造になるAugurのオラクルなど。詳しくは後述致します。
Bandのようなオラクルはなぜ必要か
上はブロックチェーンの各レイヤーを示したものです。Bandはこのレイヤーの中でComponent(構成部品)レイヤーに含まれるオラクル/データ管理の部門に属した技術です。オラクルの役割はざっくりというとアプリケーションなどに対して価格などの外部情報を橋渡しすることです。金融向けの分散型アプリケーションなどでは、暗号資産価格、法定通貨、現実社会のイベント情報など外部情報を参照し、それらの情報をdAppに伝える必要性があります。しかしその際に、オラクルを介して信用できない情報がブロックチェーン上に入り込んでしまう可能性もあるため、如何にして信頼性の高いデータだけをブロックチェーン内に持ち込むことができるかが課題となります。※オラクル問題については下記事をご参照ください。
ブロックチェーンで利用されるオラクルにはすでにChainlinkのようなオンデマンドオラクルネットワークやAugurのようなアナログなインプット構造を持つオラクルなどが存在しますが、共にディベロッパーフレンドリーなものとは言い難く、その点が課題とされています。※Chainlinkオラクルの課題については下記事をご参照ください
それに対してBandの場合は、データの収集方法を定義はせずに、コミュニティによってデータの使用方法とキュレーション方法を投票によって決定するという仕組みを採用し、信頼できるデータソースをキュレートすることをコミュニティのインセンティブとして機能するような設計を施しています。以下その仕組みをざっと概観していきます。
Bandオラクル
Bandオラクルはデータのコミュニティガバナンスの標準フレームワークを作成することで、あらゆるdAppが利用できる社会的にスケーラブルな方法を作成することを念頭においています。そのため、これまでのオラクルのように独自のネットワークに限定されるものではなく、Bandプロトコル内の各コミュニティによってあらゆる目的に柔軟に適用できるような仕組みを採用しています。仕組みについて触れる前に、Bandが取り扱うことができるデータの例を以下列記。
- 資産価格フィード:分散型金融サービス向けの暗号資産間、暗号資産⇄法定通貨間、証券、コモディティ価格の取得
- 現実社会のイベントフィード:仲介者を排除した状態での予測市場、ギャンブルアプリ向けのスポーツイベント、IoTデータアプトプット、現実社会決済情報の取得
- 個人情報:認定されたステータス、信用スコア、学歴などの情報
- 地理データ:マップを利用する必要のあるdApp向けのGPSロケーション情報
Bandプロトコル概要
Bandプロトコルはまずイーサリアムブロックチェーン上に構築されますが、将来的にはイーサリアムインフラストラクチャだけに限定されるものではなく、より広範囲(スマートコントラクトプラットフォーム)に利用されることを目的に開発が進められています。
既存のオラクルソリューションの仕組みと課題
まず既存のオラクルがどのようにして、情報を取得しているのかその手順を以下概観します。(上画像参照)
- 現在のトランザクションの状態をコントラクト内ストレージに保存
- コントラクトが、データクエリ(データの問合せ)を要求し、現在のトランザクションを停止
- オフチェーンネットワークが、トランザクションの確認を待つ
- オフチェーンが、指定されたクエリ結果を元にコールバックトランザクションを呼び出し
- コントラクトがトランザクションを検証し、状態を戻して実行を継続
このように既存のデータプロバイダーネットワークは、スマートコントラクトとデータレイヤー間の非同期相互作用の影響を受けてしまい、2つのブロックチェーントランザクションを順番に確認して実行する必要があるため、その分だけ遅延が発生してしまいます。
Bandのソリューション
この遅延の課題に対してBandはdApp(分散型アプリケーション)に対して直感的なクエリインターフェイスを提供(取引所やデータアグリゲーターなどがデータ入力とキュレートを担当)することで、上記のステップ3、4を省略し短時間で応答することが可能になります。既存のものと比較するとデータクエリの実装が容易である点もポイント※上画像参照
データガバナンスグループの仕組み
Bandプロトコル内のデータセットは、独立した「データセット」トークンを持つ個々のデータガバナンスグループに分割されています。(上画像左端)
このデータセットトークンは全て、Bandのネイティブトークン(BAND)によってBonding Curveメカニズムを通じて担保されており、このトークンを使用してTCD(Token-Curated Datasouces/DPoSコンセンサスに類似)を介しデータセットのペグ、キュレート、管理を行います。※Bonding Curveメカニズムとは、Simon Rouviere氏によって提案されたコンセプト。データセットトークン価格は供給量増加に応じて上昇し、このトークンを販売しBandネイティブトークンに交換することが可能です。
ステーキングの仕組み|デュアルトークン機能
Bandプロトコルは、デュアルトークン(2種のトークン)経済モデルを採用して、データセットの作成をユーザーがサポートできるインセンティブ構造を作成しています。以下2種のトークンについて※クエリ報酬などステーク報酬についてはこちらの記事をご参照ください。
1.データセットトークン
データセットトークンとは、各データセットグループ内で利用するトークン(BandネイティブトークンであるBANDで売買可能)です。このトークンそのものはデータセットの共同所有権を示しており、本トークン所有者はデータプロバイダーの選択に参加し、データセットクエリが収集した料金の一部を獲得する権利を持っています。
データセットトークン保有者には大きく2つの役割があり、一つはデータプロバイダーとしての役割、もう一つはステーカー、投票者としての役割です。
データプロバイダー
高品質のデータを管理してスマートコントラクトに提供するということです。データプロバイダーは、賭けられたトークン数に応じてランク付されており、上位のデータプロバイダーは、ネットワークにデータを提供し、クエリ料金の一部を獲得する資格があります。※この際に悪意のある行動を阻止する権利を得るために保証金を支払う必要あり。
ステーカー/投票者
スマートコントラクトにデータ提供しない一般的なデータセットトークン所有者の多くがここに含まれると思います。DPoSと類似した仕組みで、信用できるデータプロバイダーにトークンを預けて委任する方法です。委任したデータプロバイダーが受け取るクエリ報酬の一部がトークンステーク量に応じて投票者も受け取ることができます。
2.BANDトークン
BANDトークンは全てのデータセットトークンの担保として機能します。データセットトークンはBANDトークンをスマートコントラクトに担保することで発行され、Bandプロトコル内でデータセットトークンの価値を追跡できるように設計されています。トークンを償還する際もスマートコントラクトを通じて行います。
Bandプロトコル詳細
- Webサイト:https://bandprotocol.com/
- Medium:https://medium.com/bandprotocol
- Twitter:https://twitter.com/BandProtocol
- Telegram:https://t.me/bandprotocol
- Github:https://github.com/bandprotocol
- Devドキュメント:https://developer.bandprotocol.com/
- Whitepaper v3.0.1:https://bandprotocol.com/whitepaper-3.0.1.pdf