はじめに
本稿ではブロックチェーンプラットフォームSymbolにおける
メタデータ
というビルドイン機能について解説・ユースケースを展開していきます。
そもそもNEM・Symbolって何?という方は以下を参考ください。
メタデータ – Symbolで実現する世界
概要
1024文字までの文字列を、アカウント、ネームスペース、モザイクに紐づけて管理できる機能です。
こういうと、大したことのない機能に思えちゃうように思いますが・・・
メタデータをアセットに括り付けて保存できることは、ブロックチェーンアプリケーション(DApps)を構築する際で非常に役に立つものなのです。
むしろメタデータが容易に使えることが、Symbolを、雑多なアルトコインの1つから、使い勝手の良いDApps開発プラットフォームに押し上げているといっても過言じゃありません。
以降では、なぜメタデータが重要な役割を担うのかをひも解いていきます。
一般的な利用法
メタデータの一般的な利用法は以下の通りです。
- アカウント、ネームスペース、モザイク(トークン)に関連する情報の添付
- 付加された情報をトリガーにチェーン外のシステムに作用させる。
よくわかりませんか?
具体例だとストンと理解できるでしょう。
モザイク(トークン)の具体例
そもそもモザイク(トークン)って何?
まずモザイクとはSymbolプラットフォームがビルドイン機能として提供されている、機能十分で、容易に作成できるトークンのことを指します。
トークンとはブロックチェーン上で新たに作成される暗号通貨やアセットの総称です。
暗号通貨はイメージしやすいですね。
まさにデジタルコインをイメージするといいでしょう。
NEMにおいてはXEM、SymbolにおいてはXYMで定義されていますね。
アセットってどういうこと?
アセットとは、翻訳すると「資産」ということですが、ブロックチェーン上の記録単位が通貨の量だけではなく、その付帯情報を含んで管理されたイメージです。
所有権を保持している資産だけをさすわけでなく、価値ある関連情報群ぐらいなイメージでとらえた方が、ブロックチェーン技術の理解が進みます。
このアセットをブロックチェーンの分散台帳に記録していくことを考えてみましょう。
不動産情報をアセットとして管理
例えば不動産情報を記録する分散台帳を考えてみましょう…
アセットを1つの物件とし管理したときに、どのような情報を管理しましょう?
・不動産の基本情報:名称や住所、地番、構造、築年など
・不動産のコンテンツ情報:外観、内観、周辺情報の画像や動画
・ステークホルダー:所有者、貸主、売主、借主、買主、媒介業者、建物管理者など
・不動産の状態:建築計画、登記、売買・賃貸借状況などの物件や契約の状態
・不動産のカネの情報:売価、仲介手数料、敷礼金など契約金、賃料、管理費、保証料
これら付帯情報を、うまく分類してアセットに紐づくかたちで管理したとします。
特定のアセットを指定すると、現在の該当アセット(不動産)にまつわる情報が芋づる式に把握でき、その情報が確かであると担保されている、非常に便利ですよね。
メタデータの利用イメージ
上記のアセット(資産)の管理においてメタデータが活用できます。
とはいえ、メタデータは「1024文字までの文字列」しか保存できません。
トークンがデータ量的に肥大化すると、チェーン全体のパフォーマンスに影響します。メタデータに格納しうるデータ量には制約をつけたと考えられます。
そこで、前項のアセットの付帯情報は、通常はブロックチェーン上ではなく外部のシステムに保存するのが通常です。
なお、ブロックチェーン外のシステムのことを「オフチェーン」と呼び、ブロックチェーンで管理することを「オンチェーン」といいます。
そのうえで、外部システムに保存された付帯情報のキー情報を、トークンのメタデータに保存する形をとります。
トークンを取得し、メタデータに保管される外部キーを用いることで、オフチェーン上のアセットの諸情報に容易にアクセスできるようになるのです。
あらためてメタデータの一般的な利用法を復習してみましょう。
- アカウント、ネームスペース、モザイク(トークン)に関連する情報の添付
- 付加された情報をトリガーにチェーン外のシステムに作用させる。
ご理解いただけましたか?
メタデータをオフチェーンへのアクセス因子に利用することで、ブロックチェーンは暗号通貨から、非金融分野のアセットを管理する分散台帳に飛躍するのです。
勿論、1024文字内の情報であれば、メタデータにそのまま格納可能です。
オンチェーンのみでアセット情報をある程度が格納できるというのも、DApps開発において優位であるといえるでしょう。
メタデータがアセットを形作る
メタデータの利用方法をみてきましたが、裏を返してみましょう。
上記ツイートで紹介したとおり、メタデータによりアセットが形づくられる、といっても良いほどの重要な役割を担っていくものと考えています。
NFTの実現(おまけ)
たとえば、メタデータがアセットを形作る良い例として・・・
メタデータの活用例として、Symbol上でのNFTの実現が考えられます。
NFTとは?
NFTという言葉をご存じでしょうか?
NFTとは「Non Fungible Token」の頭をとったものです。
「Fungible」とは代えのあること、代替可能なことです。
つまり、NFTとは、代替できない唯一性をもつ固有のトークンのことです。
NFTの利用シーン
NFTはゲームなどに親和性があり、ゲーム中の本来はスタンプのようにコピーできてしまうアセット(キャラクター、カード、アイテム、武器・防具・道具)を、固有の存在に引き上げます。
カードゲームの例
各国のサッカー選手のカードを集めて楽しむカードゲームがあったとしましょう。
発行するカードは全て固有の存在であり有限です。
ゲーム内に1枚だけ存在するレアリティの高いカードを作成し、その希少性を担保しながら流通させることができます。
Symbolにおけるメタデータを利用したNFTの実現
イーサリアムの規格ERC721では、発行トークンが固有のものとなり、NFTの代名詞ともいわれて活用されています。
Symbolで新たに加わるメタデータを利用すると、簡易的なNFTを実装できます。
何度も繰り返しますが、Symbolのメタデータは1024文字までの文字列を保存できます。
ここで固有性が担保しうる文字列を吐くハッシュ関数を利用します。この固有識別可能な文字列を、メタデータに格納したトークンを発行すればよいのです。
おわりに
NEMのビルドイン機能として、モザイク(トークン)発行機能、トランザクション送信時のメッセージ機能がありました。
そして新たなにSymbolからビルドイン機能に、メタデータが加わりました。
メッセージ・文字列を、トランザクションや、アカウント、ネームスペース、トークンに付与できるという機能は、非常に汎用性があり、無限の利用法を秘めていると言っても過言でありません。
例えば、トークンのメタデータに、バイナリデータを分轄して保存する荒業も考えられます。
アグリゲートトランザクションで一挙に転送し、受け口でメタデータを連結し、複合化すれば、ブロックチェーン上で画像を送信することも可能です。
冒頭でメタデータこそがSymbolを、DAppsプラットフォームに押し上げていると述べたことが、少しは共感いただけましたでしょうか?