どうも、DRIP エンジニアの小川です。
DRIP は Drecom Invention Project の略称で、ドリコムが発明を生み続けるためのプロジェクトです。
今年は AR とブロックチェーンをメイン領域として活動しています。

DRIP - Drecom Invention Project

そんな DRIP からブロックチェーン関連サービスの1つとして |||||| (6 pillars) を公開しました。
公開同日に blockchain.tokyo #12 を弊社カフェスペースにて開催し、 LoveChain |||||| (6 pillars) について話しました。
資料は SlideShare にアップしてあります。

LoveChainのスマートコントラクトを見てみよう & 非中央集権なトークンのカタチ from Drecom Co., Ltd.

そもそも「DApps って何?」という方も多いかと思います。
今回はそのあたりの補足も含め |||||| (6 pillars) がどんなものなのかを、もう少し深掘りして説明していこうと思います。

  • Ethereum とは「分散アプリケーションのためのプラットフォーム」であり、ブロックチェーンをベースに構築されています。
  • スマートコントラクトとは「契約のスムーズな検証、執行、実行、交渉を意図したコンピュータプロトコル」の事で、本稿では Ethereum 上にデプロイ可能かつ動作するコードそのものを指します。
  • DApps とは「ブロックチェーンを利用した非中央集権の分散型アプリケーション」の事で、本稿では「Ethereum のブロックチェーンを利用したアプリケーション」を指します。参考情報はこちら。

|||||| (6 pillars) とは?

DApps をまたいで利用可能なトークンを、誰でも生成できる ERC721 拡張スマートコントラクトです。
|||||| (6 pillars) を使うと「どんな DApps でも発行可能で、対応している DApps であればどこでも使えるトークン」が利用できます。
似た機能を持ったトークンを使おうと思っている DApps 開発者にとってはスマートコントラクト開発の負担が減り、対応した DApps でトークンを発行したユーザーにとっては所有するトークンが色んな DApps で使えるようになるので楽しみが増えます。

ERC721 とは?

ERC721 は「代替不可能でユニークなトークンを生成するスマートコントラクト」の仕様で、必要なインターフェイスの定義をまとめたものです。
ここで定義されているインターフェイスを全て実装したスマートコントラクトは「ERC721 準拠のスマートコントラクト」となります。

ERC721 準拠のスマートコントラクトがあれば DApps が作れる?

「ERC721 準拠のスマートコントラクト」を使用した有名な DApps として、仮想猫の売買や交配ができる CryptoKitties があります。
仮想猫を1つのトークンとし、トークンは遺伝子を持っていて、遺伝子によって仮想猫の外見が決定します。
「ERC721 準拠のスマートコントラクト」を使えば CryptoKitties のような DApps が作れる!かと言われると答えは No です。
実は ERC721 では、以下の機能が仕様として定義されていません。

トークンの発行

どういった定義で発行すれば良いかは決まっていません。
CryptoKitties の場合は交配ロジックと密接に関係しているため、ユーザーが自由に発行できないように設計されています。

トークンの持つ固有情報

CryptoKitties の場合は遺伝子と呼ばれるデータを持っています。

CryptoKitties では上記のように独自定義する事で、サービス上で扱いやすいトークンを実現しています。
つまり自分たちで DApps を作る場合、要件に沿って足りない定義を決め、実装する必要があります。

|||||| (6 pillars) の行った ERC721 拡張

色々なところを拡張したのですが、重要なのは以下の3点です。

  • トークンは誰でも発行できる
  • トークンに inscription という不変なデータを付与でき、誰でも参照できる
  • トークンは誰に発行されたか、というデータを持ち、誰でも参照できる

その結果、どんな DApps でも発行可能で、対応している DApps であればどこでも使えるトークンが生成できるようになりました。

|||||| (6 pillars) を使うと何ができる?

|||||| (6 pillars) を使うと、Ethereum ブロックチェーン上にトークンを生成することができます。

ブロックチェーン上にトークンを生成するメリットは?

とあるゲームがサービス終了となった場合、

  • キャラクターやアバターそのものの情報(名前、説明、画像など)
  • 誰がどのキャラクターやアバターを所持していたかという情報

が無くなります。
ブロックチェーンに「どのユーザーが何を所有していたか」という情報を記録しておけば、サービスが無くなっても自分はこのキャラクターやアバターを持っている(いた)よ、という証明ができます。

  • ※ ここで言うブロックチェーンは Ethereum の Mainnet を指しています。
  • ※ Ethereum はブロックチェーンそれぞれが「ネットワークID」を持ち、同じネットワークIDを持つチェーン同士のデータは同期され、分散台帳となります。
  • Mainnet とはネットワークID「1」を使用している、いわゆる本番用の Ethereum を指します。

使用例

(1) こっちでは弱いけど、あっちでは強い

強い武器を装備してコロシアム制覇を目指す DApps と、モンスターを生成して最も強いブリーダーを目指す DApps があるとします。
「コロシアムの方で装備を作ったら『普通の短剣』でガッカリしたが、そのトークンをモンスターの方でも使えるようにしたらドラゴンになった」というような体験の提供が可能です。

(2) 別の DApps で作られたトークンをアドオンできる

ボクサーをスカウトして育成し世界一のジム経営を目指す DApps があるとします。
ボクサーは他の DApps で作られたトークンを1つ装備でき、inscription によって効果が変わります。
「あるトークンを装備するとパンチが少し重くなったり、別のトークンを装備したらフットワークが軽くなる、スタミナが増える」というような体験の提供が可能です。

(3) トークンを持っているだけで毎月投票権がもらえる

ユーザー全体で1つの国を作り上げていく DApps があるとします。
毎週議題が上がり、トークンの所有数によって毎回得られる投票数が変わります。
「たくさんトークンを持っていればいるほど、国に対する影響力を強められる」というような体験の提供が可能です。

(4) コンテンツ作者としての証明が残る

自分の著作物について「この時に私が作りました」と証明できる DApps があるとします。
ユーザーが自身で直接トークンを生成し、そのトークンを売買することで著作物の所有権そのものを売買できる仕組みになっています。
「売るたび所有権は移り変わっていくが、トークンの発行元は最初に作った人のアドレスになっているので、誰の著作物かを証明できる」というような体験の提供が可能です。

(5) 特定の発行元トークンを制御できる

「特定の DApps が生成するトークンの inscription が自身の作る DApps で都合が悪いものばかりだった場合、そこが発行するトークンの効果を少し下方修正する」というように、発行元を絡めてトークンの振る舞いを決める事ができます。
逆に、「自身が作った他の DApps のトークンだったらプラスアルファで良い事がある」みたいな体験の提供も可能です。

|||||| (6 pillars) を使わなくてもできる?

「ERC721 準拠のスマートコントラクト」を使った DApps は CryptoKitties をはじめ色々と存在します。
なのでそのコントラクト達にアクセスして、ユーザーが所有しているトークンの情報を取ってくれば可能です。
しかし |||||| (6 pillars) と比べて

  • 対応 DApps を増やすたびに、その DApps が使用している ERC721 準拠のコントラクトアドレスを追加する必要がある
  • コントラクトによってトークンの持つ情報の取得方法が異なるため、解析方法がコントラクトごとに必要となる

※ スマートコントラクトを Ethereum にデプロイすると、そのコントラクトにアドレスが付与され、そのアドレス上で動作し続けます。
※ この時与えられるアドレスを「コントラクトアドレス」と呼んでいます。

という煩わしさが残ります。
|||||| (6 pillars) を使って、自身以外の場所から発行されたトークンをどう扱うかを決めておけば、開発者は対応 DApps が増えるたび実装する必要がなくなります。
端的に言えば、DApps におけるスマートコントラクト開発を楽にしてくれます。

|||||| (6 pillars) のロードマップは?

|||||| (6 pillars) は今後、自身を DApps に採用してもらえるよう活動していく予定です。
|||||| (6 pillars) を使った DApps や、ハッカソンを企画中です!
不明点やフィードバックなど、いつでもどしどし募集しておりますので、公式ページのお問い合わせフォームをご利用ください。

さいごに

ブロックチェーンを用いた DApps は、未だ色々な課題を抱えています。
その中で |||||| (6 pillars) が課題としたのは「トークンを所持する事によるユーザーメリット」です。
どうすればユーザーメリットを拡張して新しい体験を与える事ができるか?という疑問から、トークンの価値が1つの場所だけで決まらない、かつユーザーが自由にトークンを作れる、というスマートコントラクトが生まれました。
DApps 市場はまだまだポテンシャルがあります。
DRIP では |||||| (6 pillars) を利用したサービスや、DApps の課題を解決するスマートコントラクトなど、ブロックチェーン領域での価値創造を目指します!