以下、適宜図面を参照し、本願明細書で開示される発明(以下、「本発明」ということがある。)の様々な実施形態を説明する。なお、複数の図面において共通する構成要素には当該複数の図面を通じて同一の参照符号が付されている。以下で説明される本発明の実施形態は特許請求の範囲にかかる発明を限定するものではない。以下の実施形態で説明されている諸要素が発明の解決手段に必須であるとは限らない。
図1は、一実施形態による動画伝送システム1を示すブロック図である。図1に示されている動画伝送システム1は、サーバ20を備える。サーバ20は、ユーザ装置10a、ユーザ装置10b、ユーザ装置10c、ブロックチェーンネットワーク30、ファイルシステム40、及び取引所50とネットワーク5を介して互いに通信可能に接続されている。サーバ20に加えて、ユーザ装置10a、ユーザ装置10b、ユーザ装置10c、ブロックチェーンネットワーク30、及びファイルシステム40のうちの一部又は全部が、動画伝送システム1の構成要素であってもよい。
ネットワーク5は、単一のネットワークであってもよく、複数のネットワークが接続されて構成されていてもよい。ネットワーク5は、例えば、インターネット、移動通信網、及びこれらの組み合わせである。ネットワーク5としては、電子機器間の通信を可能とする任意のネットワークが適用され得る。
動画伝送システム1においては、サーバ20からユーザ装置10a、10b、10cに対して動画データが送信される。ユーザ装置10a、10b、10cは、サーバ20から動画データを受信すると、その動画データに基づいて生成された動画を再生することができる。動画は、動画フレームのシーケンスとして生成される。ユーザ装置10a、10b、10cの各々のユーザは、各ユーザ装置において再生される動画を視聴することができる。動画データには、仮想空間に含まれるオブジェクトに関するオブジェクトデータ(例えば、仮想空間に配置されるオブジェクトを特定するデータ、仮想空間に配置されるオブジェクトの仮想空間内での位置を示す座標データ)、アバターの外観を表現するためのアバター表示データ、アバターの動きを表現するためのモーションデータ、及びこれら以外の動画の生成に必要な各種データを含むことができる。アバターの動きを表現するためのモーションデータは、ユーザの顔の動き(表情の変化)や体の動きを時系列的にデジタル表現したデータであってもよい。モーションデータは、ユーザ装置に備えられているカメラやユーザに装着されるモーションセンサによって生成され得る。モーションデータは、時間の経過に伴って随時生成されてもよい。モーションデータは、所定のサンプリング時間間隔ごとに生成されてもよい。モーションデータに基づいて動画データをレンダリングすることにより、ユーザの表情の変化や体の動きに同期して動くアバターのアニメーションを含む動画を生成することができる。
動画データに基づく動画の生成は、動画伝送システムに含まれるいずれの機器で行われてもよい。一態様において、動画データに基づく動画の生成は、ユーザ装置10a、10b、10cの各々により実行されてもよい。例えば、動画データに基づく動画の生成は、ユーザ装置において描画アプリケーションプログラム(例えば、レンダリングエンジン)を実行することにより行われてもよい。ユーザ装置10a、10b、10cの各々において描画アプリケーションプログラムを実行することで動画データから動画を生成する方式を、本明細書では「クライアントレンダリング方式」と呼ぶことがある。動画伝送システム1は、クライアントレンダリング方式を採用することができる。クライアントレンダリング方式において、ユーザ装置10a、10b、10cの各々は、動画を生成する前に、例えばアプリケーション配信プラットフォームから描画アプリケーションを取得していてもよい。ユーザ装置10a、10b、10cの各々は、動画の再生処理を開始する前から、アバターの外観を表現するためのアバター表示データを保持していてもよい。クライアントレンダリング方式において、ユーザ装置10a、10b、10cの各々は、サーバ20から、アバターの識別情報(アバタID)、アバターの動きを表現するためのモーションデータ、音声データ、及び必要に応じて前記以外のレンダリングに必要な情報を受信し、サーバ20から受信した情報と予め保持していた情報とに基づいて動画を生成し、生成した動画を表示することができる。
別の態様において、動画データからの動画の生成は、ユーザ装置10a、10b、10cがサーバ20からウェブページを取得し、このウェブページに含まれているコンピュータプログラム(例えば、Javaスクリプト)をユーザ装置10a、10b、10cに備えられているブラウザにより実行することにより行われてもよい。このウェブページには、動画の生成に必要なデータ(例えば、オブジェクトデータ、アバター表示データ、モーションデータ等)の格納場所が記述されていてもよい。例えば、ウェブページに含まれているJavaスクリプトは、当該ウェブページに記述されているデータの格納場所から各種データを取得し、この取得したデータに基づいて動画を生成することができる。ブラウザは、HTMLで記述されたウェブページを閲覧するためのソフトウェアであり、描画アプリケーションプログラムとは別のソフトウェアである。ブラウザは、サーバ20から取得するウェブページ以外にも、様々なサーバから提供されているウェブページを閲覧するために用いられ得る。本明細書では、ブラウザで動画データから動画を生成する方式を、「ブラウザレンダリング方式」と呼ぶことがある。動画伝送システム1は、ブラウザレンダリング方式を採用することができる。
さらに別の態様において、動画データに基づく動画の生成は、サーバ20で実行されてもよい。サーバ20により動画が生成される場合には、サーバ20において生成された動画が、サーバ20からユーザ装置10a、10b、10cに送信される。ユーザ装置10a、10b、10cは、サーバ20から受信した動画を再生(表示)する。動画データからの動画の生成がサーバ20で行われる方式を、本明細書では「サーバレンダリング方式」と呼ぶことがある。サーバレンダリング方式においては、サーバ20において生成された動画がユーザ装置10a、10b、10cに送信される。
以上のように、動画伝送システム1は、クライアントレンダリング方式、ブラウザレンダリング方式、及びサーバレンダリング方式のいずれを採用することもできる。このため、サーバ20からユーザ装置10a、10b、10cに「動画データ」を送信することには、サーバ20で動画データから生成された「動画」を送信することが含まれる。例えば、動画伝送システム1がクライアントレンダリング方式を採用する場合には、サーバ20からユーザ装置10a、10b、10cに対して、レンダリング前の動画データ(例えば、上記のオブジェクトデータ、アバター表示データ、モーションデータ等)が送信されるのに対して、動画伝送システム1がサーバレンダリング方式を採用する場合には、サーバ20からユーザ装置10a、10b、10cに対して、サーバ20で生成された動画がフレーム単位で送信される。つまり、本明細書においてサーバ20からユーザ装置10a、10b、10cに送信される「動画データ」は、レンダリング前の動画データであってもよいし、レンダリング後の動画データ(つまり、レンダリング前の動画データから生成された動画)であってもよい。
このように、サーバ20は、ユーザ装置10a、10b、10c等のユーザ装置に対して、動画送信サービスを提供する。説明の簡潔さのために、図1には、3台のユーザ装置のみが図示されているが、サーバ20は、4台以上の多数のユーザ装置に対して動画データを送信することができる。本明細書においては、ユーザ装置10aは、ユーザAにより使用され、ユーザ装置10bは、ユーザBにより使用され、ユーザ装置10cは、ユーザCにより使用されると想定する。また、本明細書では、サーバ20が提供する動画送信サービスを利用するためにユーザが使用する装置を「ユーザ装置」と呼ぶ。
ユーザ装置10a、10b、10cには、サーバ20から送信される動画データを再生するための動画再生用アプリケーションが記憶されていてもよい。動画再生用アプリケーションに含まれる命令は、ユーザ装置10a、10b、10cの各々のプロセッサによって実行され得る。動画データに基づいて動画を生成する描画アプリケーションプログラム(例えば、レンダリングエンジン)は、動画再生用アプリケーションの一部であってもよい。動画再生用アプリケーションは、例えば、不図示のアプリケーション配信プラットフォームから、ユーザ装置10a、10b、10cにダウンロードされてもよい。
サーバ20の管理者(例えば、当該サーバの提供主体)は、仮想空間(仮想空間プラットフォーム)を運営し、その仮想空間を利用したサービスをユーザに提供することができる。サーバ20から送信される動画データは、仮想空間の一部の領域を仮想カメラで撮影した当該仮想空間のビューを表すデータを含んでもよい。サーバ20は、仮想空間を構成する様々なオブジェクトをユーザに提供し、ユーザは、サーバ20から提供されたオブジェクトを用いて仮想空間の一部又は全部を構築することができる。例えば、ユーザは、サーバ20が提供する仮想空間内に自らが作成したオブジェクトを配置することができる。サーバ20が提供する仮想空間には、三次元のグローバル座標系で定義されるワールドが設定されていてもよい。この場合、ユーザのアバターは、ユーザの操作に応じて仮想空間内を歩き回ることができる。サーバ20が提供する仮想空間には、3次元のワールドが定義されていなくてもよい。サーバ20が提供する仮想空間に3次元のワールドが定義されていない場合には、ユーザのアバターは、仮想空間内を移動しなくてもよい。この場合、仮想空間には、ユーザのアバターと、それ以外のオブジェクト(例えば、背景を構成するオブジェクト、他のユーザからギフティングされたオブジェクト)が配置されていてもよい。以下では、サーバ20によって提供される仮想空間を運営している主体又はその仮想空間のビューを送信する動画送信サービスを運営している主体を、便宜上、「仮想空間運営者」と呼ぶことがある。
サーバ20は、ユーザがボクセルベースでオブジェクトを作成する機能を提供してもよい。この場合、ユーザは、ボクセルを利用して様々な形状を有するオブジェクトを作成することができる。
サーバ20により提供される仮想空間を構成するオブジェクト、アイテム、ボクセル、及び前記以外の仮想空間を構成する要素を、当該仮想空間において使用される「デジタルアセット」と総称することがある。
動画伝送システム1において、動画データは、サーバ20から送信される。サーバ20から送信される動画データから生成される動画には、仮想空間運営者が運営する仮想空間のビューを含むことができる。仮想空間のビューは、仮想空間を構成する様々なオブジェクト、仮想空間内に配置される仮想カメラの設定情報(仮想空間内での位置、注視位置、注視方向、及び画角)、及び必要に応じて前記以外の情報に基づいて生成される。仮想空間のビューは、当該仮想空間に参加しているユーザのアバターから見た(つまり、アバターと同じ位置に配置された仮想カメラにより撮影された)一人称視点での当該仮想空間のビューであってもよい。仮想空間のビューは、当該仮想空間に参加しているユーザのアバターの位置とは別の位置に配置された仮想カメラによって撮影された三人称視点での当該仮想空間のビューであってもよい。ユーザが、三人称視点での仮想空間のビューを含む動画を視聴する場合、当該仮想空間のビューには、当該ユーザのアバターが含まれていてもよい。
サーバ20が提供する仮想空間は、ユーザのアバターを含むことができる。ユーザは、サーバ20が提供する動画送信サービスにサインインすることにより、自らのアバターを用いて仮想空間に参加することができる。言い換えると、ユーザは、サーバ20が提供する仮想空間に自らのアバターを表示させることができる。ユーザは、例えば、仮想空間において、自らのアバターを介して他のユーザのアバターと交流することができる。一例として、ユーザは、テキストチャット、ボイスチャット、又はこれら以外のコミュニケーション機能を用いて他のユーザと交流することができる。この場合、ユーザのアバター同士が仮想空間内でチャットを行うアニメーションが生成され、そのアニメーションを含む動画データがユーザ装置に送信されてもよい。ユーザ同士は、チャット以外の方法で交流することもできる。例えば、ユーザは、他のユーザとともに仮想空間内でゲームをプレイすることができる。ユーザは、他のユーザと協力してゲームをプレイしてもよいし、ゲームにおいて他のユーザと対戦してもよい。ユーザのアバターは、他のユーザのアバターとともに仮想空間内を移動してもよい。この場合、ユーザのアバターは、他のユーザのアバターとともに、仮想空間内のイベントに参加したり、仮想空間内に設置された仮想的な店舗で買い物をしたり、又は前記以外の態様で他のアバターと仮想空間でのエクスペリエンスを共有することができる。
ユーザは、仮想空間内で使用可能な及び/又は仮想空間内に設置可能なオブジェクトを生成してもよいし、仮想空間運営者から提供されるオブジェクトを使用してもよい。ユーザは、仮想空間運営者からオブジェクトを有償又は無償で入手することができてもよい。このようなオブジェクトには、アバターが装着するアイテムを表すオブジェクト、アバターもしくはアバター以外のキャラクター又はそのパーツ(頭部、ヘアスタイル、目、鼻、口等)、アバターの背景を構成する背景オブジェクト、仮想空間内に設置されるインテリアを表すオブジェクト、及びゲームにおいて使用されるアイテム、ツール、装備、武器、及びこれら以外のゲーム内で使用されるゲーム内オブジェクトが含まれ得る。ユーザは、作成したオブジェクトを仮想空間内に設置してもよい。ユーザは、仮想空間内に配置されているオブジェクトとインタラクトしてもよい。例えば、ユーザは、仮想空間内のオブジェクトを移動、破壊、又は改変してもよい。ユーザは、仮想空間内で提供されているゲームをプレイしてもよい。ユーザが仮想空間内で提供されているゲームをプレイする場合には、ユーザが保有しているオブジェクトが当該ゲームにおいて使用可能であってもよい。ユーザは、仮想空間内で、オブジェクトやアイテム等のデジタルアセットを入手、購入、交換、貸与、又は販売してもよい。
図2に、サーバ20が提供する仮想空間のビューの例を示す。図2に示されている仮想空間のビュー80は、仮想空間の一部とユーザAのアバター70aを含んでいる。仮想空間のビューには、2以上のアバターが含まれてもよい。仮想空間内には、様々なオブジェクトが含まれ得る。図2に示されているビュー80は、仮想空間内に配置された家の室内にいるアバター70aを、仮想空間内に設置された仮想カメラで撮影することにより生成される。この仮想空間の室内には、オブジェクト81、82、83、84が配置されている。ユーザAによるユーザ装置10の操作に応じて、アバター70aが仮想空間内を移動してもよい。オブジェクト81、82、83、84の一部又は全部は、仮想空間運営者によって、仮想空間内に予め配置されていてもよい。オブジェクト81、82、83、84の一部又は全部は、ユーザが仮想空間内に配置してもよい。ユーザは、オブジェクト81、82、83、84を仮想空間から撤去したり(仮想空間から削除したり)、設置場所を移動させたりしてもよい。
サーバ20が提供する仮想空間において、ユーザAのアバターは、ユーザ装置10aによりキャプチャされたユーザAの表情及び/又は体の動きに応じて仮想空間内で動いたり、それ以外の態様で外観を変更させるように生成又はレンダリングされてもよい。仮想空間内には、ユーザAのアバターだけでなく、複数のユーザの各々に対応する複数のアバターが存在してもよい。仮想空間内には、ユーザのアバター以外にも、仮想空間内を移動するキャラクター(例えば、マインクラフトのMob)が存在してもよい。仮想空間内を移動するキャラクターは、所定のアルゴリズムに基づいて、仮想空間内の所定の位置に出現してもよい(スポーンされてもよい)。
サーバ20によって提供される仮想空間は、メタバース空間であってもよい。このメタバース空間には、複数のユーザが各自のアバターを介して同時に参加することができる。本明細書において、「仮想空間」には「メタバース空間」も含まれる。メタバース空間では、ユーザ同士の交流、複数のユーザが参画する仕事、複数のユーザが参加する遊び、及びこれら以外の実社会における社会的活動が仮想的に再現される。ユーザは、各自のアバターを介してメタバース空間に参加することができる。メタバース空間のワールドは、三次元のグローバル座標系で定義されてもよい。ユーザのアバターは、メタバース空間のワールド内を自由に歩き回り、互いにコミュニケーションをとることが可能である。
サーバ20は、仮想空間にアバターを介して参加している複数のユーザのうちの一のユーザを配信ユーザとする動画の動画データを送信してもよい。あるユーザが配信ユーザとなる場合には、その配信ユーザにより配信される動画には、当該ユーザのアバターを含む仮想空間のビューが含まれる。あるユーザのアバターを含む仮想空間のビューは、仮想空間内に配置される仮想カメラの設定情報(仮想空間内での位置、注視位置、注視方向、及び画角)を、当該アバターを含むように設定することで生成することができる。
サーバ20から送信される動画データから生成される動画を視聴するユーザを視聴ユーザと呼ぶことがある。配信ユーザと視聴ユーザとの区別は、固定的なものではない。仮想空間に参加しているユーザが動画を配信する場合、当該ユーザは、その動画を配信している間は配信ユーザとなるが、配信を行わずに他のユーザから配信されている動画を視聴している間は視聴ユーザとなる。また、ユーザが動画の配信も視聴も行わずにアバターを介して仮想空間において他のユーザと交流している間は、当該ユーザは配信ユーザでも視聴ユーザでもない。このように、特定のユーザが配信ユーザとして固定的に定められているのではなく、仮想空間に参加するユーザのうち動画の配信を行うユーザが、その動画に関して配信ユーザと呼ばれる。
配信ユーザは、自らのアバターを含み他のユーザのアバターを含まないソロ動画を配信してもよいし、他のユーザとコラボレーションして複数のユーザのアバターを含むコラボ動画を配信してもよい。配信ユーザは、複数のユーザが参加可能なビデオチャットまたはボイスチャットを主催し、このビデオチャットまたはボイスチャットを配信してもよい。配信ユーザは、複数のユーザが参加可能な仮想空間上でのイベント(パーティなど)を主催または開催し、このイベントを配信してもよい。
視聴ユーザは、配信ユーザから配信された動画を視聴する。視聴ユーザは、動画を単に視聴するだけでなく、視聴している動画に対するリアクションを自らのユーザ装置に入力することができる。視聴ユーザがコラボ配信にゲストとして参加する場合には、その視聴ユーザは、ゲストユーザと呼ばれることがある。視聴ユーザが、ビデオチャット、ボイスチャット、又はイベントに参加する場合には、当該視聴ユーザは、参加ユーザと呼ばれてもよい。視聴ユーザがビデオチャット又はボイスチャットに参加せず視聴だけする場合には、当該視聴ユーザは、リスナーと呼ばれてもよい。
動画伝送システム1によって伝送される動画データから生成される動画は、仮想空間のビューを含む。仮想空間のビューは、仮想カメラの設定情報(例えば、仮想空間内における位置、注視位置、注視方向、及び画角)を定め、この仮想カメラの設定情報に基づいて定められる仮想空間のうちの一部の描画領域である。ユーザAのユーザ装置10aにおいて再生される動画に含まれる仮想空間のビュー80は、ユーザAのアバター70aを含むように定められてもよい。仮想空間のビュー80は、上述したように、アバター70aからの視点(つまり、一人称視点)で定められてもよい。アバター70aからの視点で定められる仮想空間のビューには、アバター70aは、全く含まれなくてもよいし、アバター70aの視界に入るアバター70aの一部のみ(例えば、手先)が含まれてもよい。
ユーザAは、ユーザ装置10aを介して、仮想空間のビューを含む動画を他のユーザに配信するための配信要求をサーバ20に送信することができる。この仮想空間のビューには、上記のとおり、アバター70aを含んでもよいし、含まなくてもよい。ユーザAからの要求によって配信された動画を、「ユーザAの配信動画」、「ユーザAからの配信動画」などと呼ぶことがある。ユーザAから動画の配信要求を受け付けると、サーバ20は、ユーザAのルームを作成してもよい。他のユーザは、ユーザAのルームにアクセスすることにより、ユーザAの動画を視聴することができる。このように、動画伝送システム1のユーザは、仮想空間を含む動画を配信することができるし、また、他のユーザから配信された動画を視聴することもできる。一実施形態において、視聴ユーザは、アバター70aが含まれる仮想空間のビューを含む動画を、ユーザAのルームにアクセスすることで視聴できる。別の実施形態において、視聴ユーザは、ユーザAのルームにアクセスしなくても、仮想空間内にいるユーザAのアバター70aを含むように生成された仮想空間のビューを含む動画を視聴することができる。例えば、仮想空間内を移動するアバター70aを追跡するように仮想カメラを設定することにより、アバター70aを含む仮想空間のビューが生成され、視聴ユーザは、このようにして生成されたアバター70aが含まれる仮想空間のビューを含む動画を視聴することができる。仮想空間のビューは、例えば、仮想カメラの視点からのビューである。仮想カメラは、仮想空間内の特定の位置に固定されてもよい。例えば、仮想カメラは、仮想空間内に設置された仮想的なイベントスペースに固定的に設置され、この固定された仮想カメラによって生成される仮想空間のビューを含む動画が生成されてもよい。この場合、アバター70aが仮想空間内で当該イベントスペースに移動したときに、生成される動画にアバター70aが含まれることになる。
ユーザ装置10a、10b、10cは、サーバ20から送信された動画データ又は当該動画データから生成される動画を再生可能な情報処理装置である。ユーザ装置10a、10b、10cは、例えば、スマートフォン、パーソナルコンピュータ(PC)、携帯電話機、タブレット端末、パーソナルコンピュータ、電子書籍リーダー、ウェアラブルコンピュータ、ゲーム用コンソール、ヘッドマウントディスプレイ、またはこれら以外の各種情報処理装置である。図示は省略されているが、ユーザ装置10a、10b、10cはいずれも、プロセッサ、メモリ、ユーザの入力を受け付ける入力インタフェース、情報を出力するディスプレイやスピーカ等の出力インタフェース、通信インタフェース、ストレージ、及びこれら以外のユーザ装置10a、10b、10cを情報処理装置として動作させるために必要な構成を備えている。ユーザ装置10a、10b、10cは、カメラを備えてもよい。このカメラは、ユーザの顔の特徴点を検出するために、人物の顔の奥行きを検出可能な3Dカメラであってもよい。
サーバ20の運営者によって運営される仮想空間においては、上記のとおり、様々なデジタルアセットが使用される。この仮想空間において使用されるデジタルアセットの一部は、詳しくは後述するように、ブロックチェーンネットワーク30上で非代替性トークンとしてトークン化され得る。説明の便宜のために、本明細書では、デジタルアセットを非代替性トークンとしてトークン化することを、当該デジタルアセットを「NFT化する」ということがある。仮想空間運営者は、仮想空間において使用されるデジタルアセットをNFT化するために、ブロックチェーンネットワーク30において当該仮想空間運営者をユニークに識別するアドレス(運営者アドレス)を保有する。
サーバ20は、仮想空間運営者のブロックチェーンネットワーク30内でのアドレスを表す運営者アドレス情報25eを保持している。運営者アドレス情報25eは、公開鍵と、この公開鍵とペアになる秘密鍵と、のセットである。ブロックチェーンネットワーク30としてイーサリアムが用いられる場合には、運営者アドレス情報は、ERC-721互換のウォレットやマーケットプレイスを実装するために利用される。運営者アドレス情報の公開鍵は、ブロックチェーンネットワーク30上でトークンの発行や移転を行う際に、ブロックチェーンネットワーク30における仮想空間運営者に固有のアドレスとして使用される。秘密鍵は、ブロックチェーンネットワーク30への記録のためにブロックチェーンネットワーク30に送信されるトランザクションデータを暗号化(デジタル署名)するために用いられる。
動画伝送システム1に含まれる他の情報処理装置(例えば、ユーザ装置10a、10b、10c)は、ブロックチェーンネットワーク30におけるアドレスを有していてもよいし、有していなくてもよい。図1に示されている実施形態では、ユーザ装置10bがユーザウォレットW10bを備え、または、ユーザウォレットW10bに対応付けられているのに対し、ユーザ装置10a、10cは、ウォレットを備えておらず、ユーザウォレットW10bに対応付けられていない。このため、ユーザ装置10a、10cは、ブロックチェーンネットワーク30において、NFT等のトークンの移転を受けるためのアドレスを有していない。他方、サーバ20は、サーバ20が提供するサービスのユーザのためのウォレットを備える(ホスティングする)ことができる。サーバ20は、例えば、サーバ20が提供する仮想空間を利用したサービス(例えば、動画送信サービス)において各ユーザを識別するユーザ識別情報と対応付けて、各ユーザのウォレットを管理することができる。図1に示されている例では、サーバ20は、仮想空間を利用したサービスにおいてユーザAを識別するユーザ識別情報と対応付けてユーザA用のウォレットW10aをホスティングする。ユーザAは、サーバ20にホスティングされるウォレットW10aを用いて、NFTの購入、生成、及び前記以外のNFTに関する取り引きを行うことができる。このように、サーバ20により提供される仮想空間を利用したサービスを利用するユーザAは、ウォレットを備えないユーザ装置10aを使用して当該サービスを利用する場合でも、サーバ20がユーザAのために管理するウォレットW10aを利用してNFTに関する取り引きを行うことができる。よって、サーバ20が提供する仮想空間を利用したサービスは、ウォレットを備えるユーザ装置を利用しているユーザだけでなく、ウォレットを備えていないユーザ装置を利用するユーザによっても利用可能である。図1に示されている例では、サーバ20は、ユーザC用のウォレットをホスティングしていない。サーバ20は、ユーザCからの要求に基づいて、ユーザCを識別するユーザ識別情報と対応付けてユーザC用のウォレットをホスティングすることができる。
図1には、サーバ20がホスティングするウォレットとしてユーザAに対応付けられているウォレットW10aのみが図示されているが、サーバ20は、仮想空間を利用する他のユーザのユーザ識別情報と対応付けられたウォレットを備えてもよい。以下では、説明の簡潔さのために、ユーザAと対応付けられるウォレットW10aについて説明するが、ウォレットW10aに関する説明は、サーバ20において仮想空間の他のユーザに対応付けて管理される他のウォレットにも当てはまる。
ウォレットW10aは、公開鍵と、この公開鍵とペアになる秘密鍵と、を対応付けて管理する。ウォレットW10aの公開鍵は、ブロックチェーンネットワーク30においてウォレットW10aに固有のアドレスとして使用される。
一実施形態において、ウォレットW10aは、NFTの取得、デジタルアセットのNFT化、及びこれら以外のウォレットW10aが必要な処理が行われる際に、ユーザAのユーザ識別情報と対応付けて生成されてもよい。
別の実施形態において、ウォレットW10aは、ユーザAがサーバ20によって提供されるサービスへの利用登録を行う際に、ユーザAのユーザ識別情報と対応付けて生成されてもよい。例えば、ウォレットW10aは、ユーザAがサーバ20により提供されるサービスにアカウントを作成したことに応じて際に生成されてもよい。
ウォレットW10aは、サーバ20が提供する仮想空間内でのみ利用可能なクローズドなウォレットであってもよい。クローズドなウォレットW10aは、サーバ20の外部のマーケットプレイスや取引所50と接続されなくてもよい。このため、クローズドなウォレットW10aが利用される場合には、NFTや暗号資産の取り引きは、サーバ20が提供するサービスを利用するユーザ間でのみ行われる。クローズドなウォレットW10aが用いられる場合には、サーバ20が提供する仮想空間で利用される非代替性アセットに対応付けられるNFTは、後述するサーバ20の内部マーケットプレイスにおいて取り引き可能であり、外部のマーケットプレイスでは取り引きできなくともよい。クローズドなウォレットW10aは、後述するスマートコントラクトを実行することで生成されるユーティリティトークンの受け取りのために用いられてもよい。
ウォレットW10aは、サーバ20の外部にある取引所(例えば、取引所50)やマーケットプレイスと接続可能なオープンなウォレットであってもよい。ブロックチェーンネットワーク30としてイーサリアムが用いられる場合には、オープンなウォレットW10aとして、ERC-721互換のウォレットを用いることができる。ERC-721互換のウォレットとして、メタマスクが知られている。
ウォレットW10aは、クローズドなウォレットとしての機能を利用するための第1アカウントと、オープンなウォレットとしての機能を利用するための第2アカウントと、を有していてもよい。ユーザは、この2つのアカウントを有するウォレットW10aを用いることにより、第1アカウントを用いてサーバ20の内部での取り引きを行い、第2アカウントを用いてサーバ20の外部との取り引きを行うことができる。
ユーザ装置10bに備えられているユーザウォレットW10bは、公開鍵と、この公開鍵とペアになる秘密鍵と、を対応付けて管理している。ユーザウォレットW10bの公開鍵は、ブロックチェーンネットワーク30においてユーザウォレットW10bに固有のアドレスとして使用される。ユーザ装置10bは、必要に応じて、公知のアプリケーション提供プラットフォームからユーザウォレット(例えば、ユーザウォレットW10b)をダウンロードすることができる。ユーザ装置10bにダウンロードされたユーザウォレット(例えば、ユーザウォレットW10b)は、ダウンロード後に、サーバ20の運営者のアドレスと接続される。ブロックチェーンネットワーク30としてイーサリアムが用いられる場合には、ユーザウォレットW10bとして、ERC-721互換のウォレット(例えば、メタマスク)を用いることができる。
ユーザウォレットW10bは、ウォレットW10aと同様に、サーバ20のユーザ間でのNFTや暗号資産の取り引きや、ユーティリティトークンの受け取りのために用いられてもよい。この場合、サーバ20は、ユーザBに対応付けられたウォレットを生成しなくてもよい。サーバ20は、ユーザBのユーザ識別情報と対応付けられたウォレットを生成してもよい。この場合、ユーザBは、ユーザ装置10bに備えられているユーザウォレットW10bと、サーバ20によりホスティングされているウォレットと、を切り替えて使用することができる。
ファイルシステム40は、複数のノードから構成され、IPFS(InterPlanetary File System)に従ってファイルを非中央集権的に管理するシステムである。IPFSは、P2P型のハイパーメディアプロトコルである。IPFSは、公知のプロトコルであるため、詳細な説明を省略する。サーバ20がファイルシステム40を構成するノードの一つであってもよい。サーバ20により提供されるデジタルアセットのうち、NFT化されたデジタルアセット(非代替性トークンに関連付けられたデジタルアセット)は、動画送信サービスのためにサーバ20に記憶されているが、NFT化されたデジタルアセットが消失するリスクを低減するために、NFT化されたデジタルアセットのバックアップがファイルシステム40に保存される。
取引所50は、法定通貨(例えば、日本円や米ドル)と暗号資産との取り引き又は暗号資産同士の取り引きを行う取り引きプラットフォームである。取引所50は、例えば、CEX(Centralized Exchange)である。取引所50は、未決済の売買注文リストであるデジタルオーダーブックを持ち、買い手と売り手をマッチングすることで資産同士の取り引きを執行する。デジタルオーダーブックには、売り手の売り数量と売り価格及び買い手の買い数量と買い価格とが記述されている。取引所50は、暗号資産と法定通貨との間の交換レートを公表する。取引所50は、動画伝送システム1の外部に設けられていてもよい。つまり、取引所50は、サーバ20の運営者(仮想空間運営者)とは別の主体により運営されていてもよい。取引所50の運営者として、BinanceやCoinbaseが知られている。
ブロックチェーンネットワーク30は、複数のコンピュータノードから構成され、ビザンチンフォールトトレランスを持つ分散型コンピューティングプラットフォームである。ブロックチェーンネットワーク30として、公知のパブリック・プルーフ・オブ・ワーク型ブロックチェーンを用いることができる。例えば、ブロックチェーンネットワーク30として、イーサリアムを用いることができる。サーバ20がブロックチェーンネットワーク30を構成するコンピュータノードの一つであってもよい。
ブロックチェーンネットワーク30に保持されるブロックチェーンについて、図3を参照して説明する。図3は、動画伝送システム1において、トークンの発行、トランザクションの記録、スマートコントラクトのデプロイ、及び必要に応じて前記以外の目的で用いられるブロックチェーン31を模式的に示している。ブロックチェーン31は、複数のブロックを含む。図3には、説明の便宜上、3つのブロック31n-1、31n、31n+1が示されている。ブロック31nは、ブロック31n-1の後に連結されたブロックであり、ブロック31n+1は、ブロック31nの後に連結されたブロックである。
ブロックチェーン31に含まれる各ブロックは、前のブロックのハッシュ値、自ブロックのハッシュ値、及びトランザクション情報を含んでいる。図示は省略されているが、各ブロックは、リプレイアタックを防止するために、「ナンス」(Number used once)を含むことができる。各ブロックは、タイムスタンプを含むことができる。各ブロックのハッシュ値は、例えば、前ブロックのハッシュ値、自ブロックのトランザクション情報に含まれる全トランザクションデータ、及びナンスをハッシュ関数に入力することで得られる。各ブロックにおけるハッシュ関数への入力は、前ブロックのハッシュ値も含むため、ブロックチェーン31内の一部のトランザクション情報が改ざんされると、ブロックチェーン31内でハッシュ値の一貫性がなくなる。このため、ブロックチェーン上に記録されたトランザクション情報の改ざんは事実上不可能と考えられている。
各ブロックのトランザクション情報は、複数のトランザクションデータを含む。各トランザクションデータは、トランザクションの内容を記述する。トランザクションデータは、例えば、サーバ20から送信される。具体的には、サーバ20は、トランザクションデータを運営者アドレス情報25eの秘密鍵で暗号化してデジタル署名データを生成し、そのデジタル署名データ及びトランザクションデータを含むトランザクションをブロックチェーンネットワーク30に送信する。トランザクションが受信されると、ブロックチェーンネットワーク30は、公知の方式、例えば、公知のプルーフ・オブ・ワーク方式により、当該デジタル署名データの真正性を検証する。デジタル署名データの真正性が確認されると、ブロックチェーンネットワーク30は、当該デジタル署名データに関連付けられているトランザクションデータを、ブロックチェーン31の最新のブロックに記録する。このブロックに記録されるトランザクションデータは、ブロックチェーンネットワーク30を構成する全てのノードに同期して保存されてもよい。トランザクションデータは、サーバ20においてユーザ識別情報と対応付けて管理されているウォレットW10a等のウォレットからブロックチェーンネットワーク30に対して送信されてもよい。トランザクションデータは、ユーザが使用するユーザ装置に備えられるユーザウォレット(例えば、ユーザウォレットW10b)から送信されてもよい。
サーバ20から送信されるトランザクションには、ブロックチェーン31上におけるスマートコントラクトのデプロイを要求するデプロイ要求が含まれ得る。図3に示されている例では、ブロック31n-1にスマートコントラクト32、33が記録されている。言い換えると、ブロックチェーン31上には、スマートコントラクト32、33がデプロイされている。
スマートコントラクト32は、非代替性トークンを発行するためのトークン発行トランザクション(NFT発行トランザクション)に基づいて実行される。NFT発行トランザクションは、ウォレットW10aから送信されてもよいし、ユーザウォレットW10bから送信されてもよい。スマートコントラクト32が実行されると、NFT発行トランザクションの送信元のアドレス(例えば、サーバ20が管理している運営者アドレス情報のアドレス、ウォレットW10aの公開鍵で特定されるアドレス、又はユーザウォレットW10bの公開鍵で特定されるアドレス)に対して非代替性トークンが発行される。スマートコントラクト32は、ERC-721において定められている各種のメソッドを使用して記述され得る。スマートコントラクト32がERC-721において定められているメソッドを利用して記述されている場合には、スマートコントラクト32の実行により、ERC-721規格に従った非代替性トークンが発行される。ERC-721規格に従って発行された非代替性トークンは、NFT-721トークンと呼ばれることがある。スマートコントラクト32は、当該スマートコントラクト32をデプロイしたアドレスに対してだけNFTを発行可能なように記述されてもよい。スマートコントラクト32は、ERC-721の代わりにERC-1125やこれ以外の規格において定められている各種のメソッドを使用して記述されてもよい。
スマートコントラクト32を実行して非代替性トークンが発行されると、その非代替性トークンを発行するトランザクションを記述したNFT発行トランザクションデータがブロックチェーン31上の現在のブロックに記録される。図3に示されている例では、ブロック31nにNFT発行トランザクションデータ32a、32bが記録されている。
ブロックチェーン31は、ブロックチェーン内の全アドレスの最新の状態を示すステートデータ34が記録されてもよい。ステートデータには、サーバ20から提供されている仮想空間運営者のアドレス及びサーバ20が管理するユーザのユーザ識別情報と対応付けられたウォレット(例えば、ウォレットW10a)のアドレスを含むブロックチェーン31における全てのアドレスの最新の状態が記述されている。ステートデータには、ユーザウォレットW10bのアドレスの最新の状態の記述が含まれてもよい。
スマートコントラクト32によって所定のアドレスに対して発行された非代替性トークンは、別のアドレスに移転することができる。アドレスAからアドレスBに非代替性トークンを移転させる場合には、アドレスAからブロックチェーンネットワーク30に対してNFT移転トランザクションが送信される。このNFT移転トランザクションには、アドレスAからアドレスBへの非代替性トークンの移転を記述したNFT移転トランザクションデータと、NFT移転トランザクションデータをアドレスAの秘密鍵で暗号化したデジタル署名データと、が含まれる。ブロックチェーンネットワーク30においてデジタル署名データの真正性が確認されると、ブロックチェーンネットワーク30は、当該デジタル署名データに関連付けられているNFT移転トランザクションデータを、ブロックチェーン31の最新のブロックに記録する。図3の例においては、ブロック31n+1に、NFT移転トランザクションデータ32cが記録されている。NFT移転トランザクションデータがブロックチェーン31に記録される際には、ステートデータ34もNFT移転トランザクションデータに記述されている非代替性トークンの移転を反映するように更新され、その更新されたステートデータ34がブロック31n+1に記録されてもよい。
ブロックチェーン31上で発行された非代替性トークンは、ブロックチェーン31と互換性のあるブロックチェーン31以外のブロックチェーンのアドレスに移転可能である。例えば、ブロックチェーン31上で発行される非代替性トークンがERC-721トークンである場合には、ERC-721に準拠している別のブロックチェーンのアドレスに当該非代替性トークンを移転することができる。例えば、サーバ20において、各ユーザのユーザ識別情報と対応付けて管理されているウォレット間で、非代替性トークンを移転することができる。サーバ20がオープンなウォレットを備える場合には、取引所50やそれ以外のマーケットプレイスで非代替性トークンを取り引きし、その取り引きによる移転を記述したNFT移転トランザクションデータをブロックチェーン31に記録することができる。
スマートコントラクト33は、サーバ20(サーバ20が管理している運営者アドレス情報のアドレス)から送信されたトークン発行トランザクション(UT発行トランザクション)に基づいて実行される。UT発行トランザクションに基づいて、スマートコントラクト33が実行されると、サーバ20が管理している運営者アドレス情報のアドレスに対してユーティリティトークンが発行される。スマートコントラクト33は、ERC-20において定められている各種のメソッドを使用して記述され得る。例えば、スマートコントラクト33では、ユーティリティトークンの総供給量が定められている。また、スマートコントラクト33は、ユーティリティトークンを保有している各ユーザの残高を管理しており、アドレスからの要求に応じて、当該アドレスのユーティリティトークン残高を当該アドレスに返すことができる。スマートコントラクト33がERC-20において定められているメソッドを利用して記述されている場合には、スマートコントラクト33の実行により、ERC-20規格に従ったERC-20トークンが発行される。
ユーティリティトークンを発行するためのUT発行トランザクションは、ウォレットW10aやユーザウォレットW10bから送信されてもよい。例えば、後述するように、各ユーザにはユーティリティトークンに変換可能なポイントが発行されてもよい。このポイントがユーザAに付与されている場合には、ユーザAは、当該ポイントをユーティリティトークンに変換するためのUT発行トランザクションを、ウォレットW10aからブロックチェーンネットワーク30に送信することで、ポイントをユーティリティトークンに変換することができる。ユーティリティトークンに変換される前のポイントは、ブロックチェーンネットワーク30に記録されていないので、サーバ20において、オフチェーンのユーティリティトークンとして取り扱われてもよい。このオフチェーンのユーティリティトークンと区別するために、ブロックチェーンネットワーク30に記録されているユーティリティトークンを「オンチェーン」のユーティリティトークンと呼ぶことができる。
スマートコントラクト33を実行してオンチェーンのユーティリティトークンが発行されると、UT発行トランザクションデータがブロックチェーン31の現在のブロックに記録される。図3に示されている例では、ブロック31n+1にUT発行トランザクションデータ33aが記録されている。スマートコントラクト33により所定のアドレスに対して発行されたユーティリティトークンは、別のアドレスに移転されてもよい。ユーティリティトークンをアドレスAからアドレスBに移転するためには、UT移転トランザクションがアドレスAからブロックチェーンネットワーク30に送信される。UT移転トランザクションは、ユーティリティトークンのアドレスAからアドレスBへの移転を記述するUT移転トランザクションデータを含んでもよい。UT移転トランザクションに基づいてスマートコントラクト33が実行されると、ユーティリティトークンがアドレスAからアドレスBに移転される。図3に示されている態様では、UT移転トランザクションデータ33bがブロック31n+1に記録されている。
ブロックチェーン31は、ユーティリティトークンを有するアドレスごとに、ユーティリティトークンの残高を記録しているUT残高リスト35を保持することができる。
非代替性トークンのデータ構造について図4を参照して説明する。図4には、ERC721規格に従って発行される非代替性トークンのデータ構造が概略的に示されている。図示されているように、非代替性トークン(NFT)は、当該非代替性トークンを識別するトークンID、当該非代替性トークンの保有者のアドレスを示す保有者アドレス情報、及びメタデータの保存場所を示すトークンURIを含む。非代替性トークンは、前記以外のデータを含んでもよい。
トークンIDは、非代替性トークンを一意に識別する識別子である。非代替性トークンには、トークンIDが対応付けられているため、他のトークンから区別される。つまり、非代替性トークンに対応付けられているトークンIDのユニーク性により、非代替性トークンの非代替性が担保される。トークンIDは、トークンの発行要求があるたびに「1」ずつインクリメントされる整数であってもよい。
非代替性トークンの保有者アドレス情報は、当該非代替性トークンを保有する保有者のアドレスを示す。保有者アドレス情報は、当該非代替性トークンの保有者が利用しているウォレットのアドレス(例えば、公開鍵)で表されてもよい。スマートコントラクト32が、非代替性トークンの発行先としてサーバ20が提供する仮想空間の運営者のみを指定している場合には、スマートコントラクト32により発行される非代替性トークンの保有者アドレス情報には、当該仮想空間の運営者のアドレスが設定される。保有者アドレス情報には、ウォレットW10aの公開鍵で表されるアドレス又はユーザウォレットW10bの公開鍵で表されるアドレスが設定されてもよい。保有者が非代替性トークンを「保有」することは、当該保有者がブロックチェーンネットワーク30において当該非代替性トークンの保有者として正当に記録されていることを意味するが、当該保有者が当該非代替性トークンに関連付けられている非代替アセットの所有権や著作権を有することを意味するものではない。非代替性アセットは、無体物であるから、法的管轄によっては、非代替性アセットに所有権が成立しない。例えば、日本国では、本出願の出願時点において、データのような無体物に所有権は認められていない。また、非代替性アセットに関する著作権の移転やその著作権に関する使用権の設定は、非代替性トークンの移転とは別に取り決められる。したがって、(オフチェーンでの)別段の合意がなければ、非代替性トークンを保有していること自体は、当該非代替性トークンに関連付けられた非代替性アセットの著作権の移転の合意が成立することを意味しない。
トークンURIは、非代替性トークンのメタデータの格納場所を示すインデックスデータである。非代替性トークンのメタデータは、当該非代替性トークンを発行するためのNFT発行トランザクションデータに記述されていてもよい。非代替性トークンのメタデータには、当該非代替性トークンの名前(item name)、媒体(media)、説明(description)、対象データの参照情報、及びこれら以外の当該非代替性トークンに関するデータが含まれ得る。「名前(item name)」は、非代替性トークンの名称を表す。「名前(item name)」は、仮想空間において当該非代替性トークンに関連付けられた非代替性アセットを識別する識別情報(例えば、アセットID)、当該非代替性トークンに関連付けられた非代替性アセットが使用されるゲームにおいて当該非代替性アセットを識別する識別情報、及び/又は当該非代替性トークンに関連付けられる非代替性アセットを識別可能な前記以外の文字列であってもよい。「媒体(media)」は、非代替性トークンに関連付けられるデータのファイルタイプを表す。本明細書では、非代替性トークンに関連付けられるデータを「対象データ」と呼ぶことがある。「媒体(media)」の例は、JPG、GIF、及びこれら以外のファイルタイプである。「説明(description)」は、対象データに関する説明である。対象データが仮想空間においてアバターに装着される眼鏡のオブジェクトである場合には、例えば、「2022年に、100本限定で制作。」などと記述される。「説明(description)」は、NFT発行トランザクションデータに、テキスト数の上限以内で適宜定められ得る。対象データの参照情報は、対象データの保存場所を特定するデータであり、例えばURLである。
非代替性トークンのメタデータは、ファイルシステム40に格納される。非代替性トークンのメタデータは、ファイルシステム40以外のユーザ装置10a、10b、サーバ20、及びブロックチェーンネットワーク30がアクセス可能なストレージに記憶されてもよい。非代替性トークンのメタデータは、非代替性トークンの一部として、ブロックチェーン31に記録されてもよい。
非代替性トークンに関連付けられている対象データは、サーバ20が提供する仮想空間において使用されるデジタルアセットであり、例えば、当該仮想空間内に配置されるオブジェクトやアバターである。非代替性トークンに関連付けられている対象データは、仮想空間での使用のためにサーバ20に格納される。対象データのバックアップがファイルシステム40に格納される。この場合、メタデータに含まれる対象データの参照情報は、ファイルシステム40内での対象データの格納場所を特定するURLであってもよい。
以上のとおり、非代替性トークンのうち、トークンID、保有者アドレス情報、トークンURI等の一部のデータセットのみがブロックチェーン31に記録され、メタデータ及び対象データは、ブロックチェーン31には記録されず、ファイルシステム40に記録されている。非代替性トークンのうち、ブロックチェーン31に記録されるデータセットを、当該非代替性トークンのインデックスデータと呼ぶことがある。非代替性トークンをブロックチェーン31に記録することは、非代替性トークンの一部のみ、具体的にはインデックスデータのみを記録することを意味してもよい。言い換えると、非代替性トークンのうちインデックスデータがブロックチェーン31に記録されているときに、当該非代替性トークンはブロックチェーン31に記録されているとみなすことができる。
別の例では、非代替性トークンのメタデータ及び当該非代替性トークンに関連付けられた対象データをブロックチェーン31に記録してもよい。インデックスデータだけでなく、メタデータ及び対象データもブロックチェーンに記録する方式は、非代替性トークンの全体がブロックチェーンに記録されるため、「フルオンチェーン」と呼ばれることがある。動画伝送システム1で用いられる非代替性トークンは、フルオンチェーンでブロックチェーン31に記録されてもよい。
動画伝送システム1において使用される非代替性トークンやユーティリティトークンを発行するためには、ブロックチェーン31以外のブロックチェーンを利用してもよい。仮想空間運営者は、ガス代やトランザクションのスピードを考慮して適切なブロックチェーンを選択することができる。
次に、図5をさらに参照して、サーバ20の機能及びサーバ20に記憶されるデータについて説明する。
サーバ20は、プロセッサ21及びストレージ25を備える。図示は省略されているが、サーバ20は、メモリ、ユーザの入力を受け付ける入力インタフェース、情報を出力する出力インタフェース、通信インタフェース、及びこれら以外の構成要素を備えてもよい。プロセッサ21は、ストレージ25又はそれ以外のストレージからオペレーティングシステムやそれ以外の様々なプログラムをメモリにロードし、ロードしたプログラムに含まれる命令を実行する演算装置である。プロセッサ21は、例えば、CPU、MPU、DSP、GPU、これら以外の各種演算装置、又はこれらの組み合わせである。ストレージ25は、プロセッサ11によりアクセスされる外部記憶装置である。ストレージ15は、例えば、磁気ディスク、光ディスク、半導体メモリ、又はデータを記憶可能な前記以外の各種記憶装置である。
ストレージ25には、仮想空間アセット25a、アセット管理データ25b、ユーザ管理データ25c、アバター管理データ25d、及び運営者アドレス情報25eが格納される。ストレージ25には、前記以外のデータが格納されてもよい。
仮想空間アセット25aは、サーバ20が提供する仮想空間において使用されるデジタルアセットである。仮想空間アセット25aは、仮想空間を構築するために使用される。仮想空間アセット25aには、ユーザのアバターを表示するためのアバター表示データ、仮想空間内に配置される建築物、家具、及びその他の構造物を表す構造物データ、及びこれら以外の仮想空間を構築するために利用される様々なデータが含まれ得る。仮想空間アセット25aには、仮想空間におけるオブジェクトの位置を示すオブジェクト位置情報が含まれてもよい。仮想空間における位置は、当該仮想空間内に設定される三次元のグローバル座標系における座標値で指定され得る。仮想空間アセット25aには、仮想空間を構築するために使用されるオブジェクト及び/又は仮想空間内で用いられるオブジェクトを当該仮想空間内で識別するオブジェクト識別情報が含まれてもよい。
アバター表示データは、アバターを動画内に表示するために用いられる情報である。アバター表示データには、例えば、頭部、ヘアスタイル、顔のパーツ(目、鼻、口など)、胴部、及びこれら以外のアバターを構成するパーツの画像を示すパーツデータが含まれ得る。
アバター表示データには、仮想空間内でアバターに装着させることができる装着アイテムを表す装着アイテムデータが含まれ得る。装着アイテムは、仮想空間内でアバターの特定の部位と関連付けられるオブジェクトである。装着アイテムには、アバターに装着されるアクセサリ(カチューシャ、ネックレス、イヤリングなど)、衣服(Tシャツ、パーカー、スカートなど)、コスチューム、及びこれら以外のアバターが装着可能なアイテムである。装着アイテムデータには、装着アイテムがアバターのどの部位に関連付けられるかを示す装着位置情報が含まれてもよい。
仮想空間アセット25aには、ユーザ間でギフティング可能なデジタル的なギフトとなるギフトオブジェクトを表すギフトオブジェクトデータが含まれてもよい。ギフトオブジェクトは、例えば、ぬいぐるみ、花束、バッグ、アクセサリを模したオブジェクトであってもよい。ギフトオブジェクトは、アバターに装着される装着アイテムであってもよい。ユーザは、仮想空間においてアバターに装着されるアクセサリを表す装着アイテムをギフトとして他のユーザにギフティングすることができる。他のユーザにギフティングできるデジタルアセットは、前記のものには限られない。サーバ20が提供する仮想空間において用いられる様々なデジタルアセット(家具を表すオブジェクト、ブロック、アバターのパーツ等)がユーザ間でギフティング可能とされてもよい。
図6を参照して、仮想空間アセット25aについてさらに説明する。図6に示されているように、仮想空間アセット25aは、ユーザに付与されるユーザ用アセットと、もっぱら仮想空間運営者によって利用される環境用アセットと、を含んでもよい。ユーザ用アセットの例は、上述のアバター表示データである。ユーザは、アバター表示データを入手し、入手したアバター表示データに基づいて、自らの個性に応じたアバターを作成することができる。また、ユーザは、構造物データを取得し、取得した構造物データに基づいて仮想空間内に好みの構造物を設置してもよい。ユーザ用アセットは、ボクセルベースのブロックであってもよい。例えば、仮想空間におけるレンガブロックを表す構造物データを取得し、そのレンガブロックを仮想空間内の所望の位置に設置することにより、家の外壁を作成することができる。環境用アセットは、例えば、仮想空間のインフラに該当する地面や地形などを表すデータである。ただし、土地の区画に関する土地区画データは、ユーザ用アセットであってもよい。土地区画データは、仮想空間内の座標を用いて、仮想空間内の区画を指定するデータであってもよい。このような土地区画データがNFT化され、その土地区画データに対応するNFTがユーザに付与又は販売されてもよい。
ユーザ用アセットには、代替性アセットと、非代替性アセットと、が含まれる。図6においては、代替性アセット60、62~63及び非代替性アセット61、64がユーザ用アセットの例として示されている。非代替性アセットには、ユーザに付与又は販売される前にNFT化されたネイティブ非代替性アセットと、ユーザに付与された後に当該ユーザからのミント要求に基づいてNFT化された変換非代替性アセットと、が含まれ得る。
代替性アセットは、ブロックチェーンネットワーク30又はブロックチェーンネットワーク30以外のブロックチェーンネットワークにより非代替性トークンとしてトークン化されていないアセットを意味する。ユーザ用アセットが代替性アセットか非代替性アセットかは、例えば、後述するアセット管理データ25bを参照することで決定される。ユーザは、サーバ20から提供されている動画送信サービスにおいて代替性アセットを取得し、取得した代替性アセットをサーバ20が提供する仮想空間において使用することができる。代替性アセットは、動画伝送システム1の外部で取り引きすることはできない。代替性アセットの動画伝送システム1の外部での取引きは、サーバ20から提供されている動画送信サービスの提供を受けるに際しユーザが同意するユーザ規約において禁止されてもよい。例えば、ユーザは、代替性アセットとして、アバターが着用するTシャツを表す装着アイテムを取得することができる。当該ユーザは、取得した装着アイテムをサーバ20が運営する仮想空間内で使用できる。例えば、ユーザは、当該装着アイテムを仮想空間内でアバターに着用されることができる。他方、ユーザは、取得した装着アイテム(代替性アセット)を、動画伝送システム1の外部で使用又は取引きすることはできない。
代替性アセットの仮想空間内での使用には、代替性アセットを他のユーザへ贈ること、代替性アセットを他のユーザが保有する他のユーザ用アセットと交換すること、及び代替性アセットを廃棄することが含まれてもよい。代替性アセットは、動画伝送システム1の外部での取り引きは禁止されるが、動画伝送システム1内での取り引きは、許可されてもよい。
非代替性アセットも、代替性アセットと同様に、仮想空間において使用される。これに加えて、非代替性アセットに関連付けられている非代替性トークンは、動画伝送システム1の外部においても取り引きすることができる。非代替性トークンの取り引きは、動画伝送システム1の外部にあるマーケットプレイスで行われてもよい。非代替性トークンは、マーケットプレイスにおいて、ユーザが指定する価格で販売されてもよいし、オークション形式で販売されてもよい。非代替性トークンの売買には、イーサ(Either)等の仮想通貨が取引通貨(取引用トークン)として用いられてもよい。非代替性トークンの取り引きは、公知のマーケットプレイス、例えばOpenSeaで行うことができる。非代替性トークンが他のアドレスに移転されたことに応じて、サーバ20の運営者(仮想空間運営者)に対して、所定の手数料が支払われてもよい。非代替性トークンの移転の際に必要な手数料は、非代替性トークンを発行するスマートコントラクトに記述しておくことができる。サーバ20の内部マーケットプレイスを利用して、サーバ20が提供するサービスのユーザ間で非代替性トークンが移転される際には、移転手数料は無料であってもよい。言い換えると、サーバ20が提供する仮想空間で利用可能な非代替性アセットに関連付けられている非代替性トークンがサーバ20の外部において取り引きされる場合(例えば、OpenSea等の外部マーケットプレイスで取り引きされる場合)にのみ移転手数料が支払われるようにスマートコントラクトが記述されてもよい。非代替性トークンの移転手数料は、移転の都度徴収されてもよいし、最初の移転時にのみ徴収されてもよい。移転手数料は、オンチェーン又はオフチェーンのユーティリティトークンにより支払われてもよい。
サーバ20が提供する仮想空間の一部には、入場条件を満たしたアバターのみが入場することができるクローズド空間が設けられていてもよい。クローズド空間は、仮想空間内に設置された仮想的なライブ会場、パーティー会場、及びこれら以外の仮想空間内において区画された領域を表す。入場条件は、例えば、ユーザが、当該クローズド空間に関連付けられた特定の非代替性アセットを保有していることである。本明細書では、クローズド空間への入場が許可されるためにユーザが保有している必要がある特定の非代替性アセットを「入場用非代替性アセット」と呼ぶことがある。一実施形態において、クローズド空間への入場が許可されるためにユーザが保有している必要がある入場用非代替性アセットは、ネイティブ非代替性アセット(例えば、非代替性アセット61)である。別の実施形態において、入場用非代替性アセットは、変換非代替性アセット(例えば、非代替性アセット64)である。入場用非代替性アセットは、ネイティブ非代替性アセット及び変換非代替性アセットの少なくとも一方であってもよい。一実施形態において、クローズド空間への入場が許可されるために複数の非代替性アセットが必要とされてもよい。例えば、ユーザがネイティブ非代替性アセット及び変換非代替性アセットの両方を保有していることが、クローズド空間への入場が許可されるための条件とされてもよい。
別の実施形態においては、クローズド空間を設置する際に、当該クローズド空間に関連付けられた非代替性トークン(以下、「入場チケットトークン」という。)を発行し、そのチケットトークンを保有するユーザのアバタのみがクローズド空間への入場を許可されてもよい。チケットトークンの発行数を調整することにより、クローズド空間に入場できるアバターの数を制限することができる。
ユーザは、仮想空間内にクローズド空間を設置することができてもよい。クローズド空間を設置するユーザを、便宜上、主催者ユーザと呼ぶ。主催者ユーザは、例えば、仮想空間内のある区画をクローズド空間として指定し、そのクローズド空間に関連する非代替性トークン(入場チケットトークン)の発行をブロックチェーンネットワーク30に要求することができる。主催者ユーザは、入場チケットトークンをマーケットプレイスで販売することができる。サーバ20の運営者(仮想空間運営者)は、クローズド空間を設置する対価を主催者ユーザから徴収してもよい。クローズド空間を設置する対価は、オンチェーン又はオフチェーンのユーティリティトークンにより支払われてもよい。主催者ユーザは、クローズド空間を設置するために対価を支払い、チケットトークンを発行するためにガス代を支払う必要があるが、入場チケットトークンを販売することにより収益を上げることができる。
ユーザは、様々な態様で、代替性アセット及び非代替性アセットを取得することができる。例えば、サーバ20により提供される動画送信サービスにユーザがログインしたときにログインボーナスとして、代替性アセット及び/又は非代替性アセットをユーザに付与してもよい。ユーザは、ログイン後に、アイテム購入画面を訪れて、そのアイテム購入画面に表示されているアイテムを購入してもよい。
図7には、ユーザがユーザ用アセットを購入するためのアイテム購入画面の例が示されている。アイテム購入画面は、ユーザ装置(例えば、ユーザ装置10a)のディスプレイに表示される。ユーザは、ユーザ装置10aを介して、アイテム購入画面から所望のユーザ用アセットを購入することができる。図7のアイテム購入画面には、3つのアイテム、すなわちアイテム61、62、63を表す画像が表示されている。アイテム61は、ネイティブ非代替性アセットの例であり、アイテム62、63は、代替性アセットの例である。アイテム61を表す画像の付近には、NFTマーク61aが表示されている。NFTマーク61aは、アイテム61が非代替性アセットであることを示す表示要素の例である。アイテム62、63は非代替性アセットではない(代替性アセットである)ため、NFTマークは、アイテム62、63と関連付けては表示されない。アイテムを購入するための対価は、法定通貨、サーバ20が提供するサービス内でユーザに付与されるポイント、ユーティリティトークン、又は暗号資産により支払われる。
ユーザは、代替性アセットを取得(例えば、購入)した後に、ユーザ装置10aを介して、当該代替性アセットをNFT化することができる。例えば、ユーザAは、サーバ20に対して、当該代替性アセットをNFT化するためのトークン化要求を送ることができる。トークン化要求が受信されると、サーバ20は、ブロックチェーンネットワーク30に対して、当該代替性アセットを非代替性トークンとしてトークン化するためのトランザクションデータ(NFT発行トランザクションデータ)を送信する。ブロックチェーンネットワーク30において、当該トランザクションデータの検証が行われた後に、当該代替性アセットがトークン化されたNFTが、NFT発行トランザクションデータを送信したアドレスに対して発行される。例えば、ユーザAに対応付けられているウォレットW10aから送信されたNFT発行トランザクションデータに基づいてNFTが発行された場合には、このNFTの保有者アドレス情報には、ウォレットW10aの公開鍵で表されるウォレットW10aのアドレスが設定される。代替性アセットをNFT化するためのNFT発行トランザクションデータは、ユーザウォレットを備えるユーザ装置(例えば、ユーザ装置10b)から、ブロックチェーンネットワーク30に送信されてもよい。この場合、代替性アセットがトークン化されたNFTが、NFT発行トランザクションデータを送信したユーザ装置に備えられるウォレットのアドレスに対して発行される。このようにして、代替性アセットがNFT化される。代替性アセットは、サーバ20が提供するサービスのユーザ間での移転が行われた後にNFT化されてもよい。例えば、ユーザAが仮想空間運営者から購入した代替性アセットがユーザBに譲渡された後、ユーザBが当該代替性アセットをNFT化してもよい。この場合、ユーザBのユーザウォレットW10bからブロックチェーンネットワーク30に対してNFT発行トランザクションデータが送信されてもよい。スマートコントラクト32が非代替性トークンの発行先を仮想空間運営者に限っている場合には、変換非代替性アセット64に関連付けられるNFTは、仮想空間運営者に発行された後にトークン化要求を行ったユーザのアドレスに移転されてもよい。
図8に示されているように、代替性アセット62がNFT化されると、代替性アセット62が非代替性アセット64に変換される。非代替性アセット64は、変換非代替性アセットの例である。非代替性アセット64がユーザ装置において表示される場合には、非代替性アセット64の付近に、NFTマーク64aが表示される。NFTマーク64aは、非代替性アセット64から離れた位置に表示されてもよい。NFTマーク64aは、表示されなくてもよい。非代替性アセット64は、代替性アセット62と同じ外観を呈するが、非代替性アセット64の近傍に又は非代替アセット64に重畳してNFTマーク64aが表示されるため、非代替性アセット64を代替性アセット62と外観上区別することができる。変換非代替性アセット64を識別するために表示されるNFTマーク64aは、ネイティブ非代替性アセット61を識別するために表示されるNFTマーク61aとは異なる外観を有していてもよい。例えば、変換非代替性アセット64を識別するために表示されるNFTマーク64aは、ネイティブ非代替性アセット61を識別するために表示されるNFTマーク61aと異なる形状及び/又は色彩を有していても良く、異なる文字列を含んでいてもよい。これにより、ユーザは、非代替性アセットの近傍に表示されるNFTマークを見て、当該非代替性アセットがネイティブ非代替性アセットか変換非代替性アセットかを区別することができる。
サーバ20が提供する仮想空間においては、動画伝送システム1の外部(例えば、サーバ20が提供するサービス以外のサービス)で作成されNFT化された非代替性アセットを使用できてもよい。図6には、動画伝送システム1の外部で作成された非代替性アセットの例として外部非代替性アセット65が示されている。外部非代替性アセット65は、他の非代替性アセット61、64と同様に、ERC-721トークンであると仮定する。サーバ20が提供するサービスのユーザは、ERC-721に準拠したユーザウォレットを用いることにより、外部のマーケットプレイスで販売されている外部非代替性アセット65を購入し、外部非代替性アセット65に関連付けられているNFTを当該ユーザに移転することができる。動画伝送システム1のユーザは、このように外部のマーケットプレイスで取得した非代替性アセットを、サーバ20が提供する仮想空間において使用することができる。
ユーザが外部非代替性アセット65を仮想空間において使用する使用態様の例について、図9を参照して説明する。図9は、アバターの着せ替え画面の例である。アバターの着せ替え画面は、ユーザのユーザ装置(例えば、ユーザ装置10a、10b)への操作に応じて、当該ユーザ装置に表示される。着せ替え画面は、例えば、ログイン後に画面の下部に表示される選択ボタン71がユーザによって選択されることによって、ユーザ装置に表示される。着せ替え画面においては、ユーザが保有している装着アイテムのリストが表示される。外部非代替性アセット65も、このリストに含められて、着せ替え画面に表示される。外部非代替性アセット65のアイコンの近傍には、外部非代替性アセット65がNFT化されていることを示すNFTマーク65aも表示されている。
この着せ替え画面において、ユーザによって外部非代替性アセット65が選択されると、当該ユーザのアバターが外部非代替性アセット65を装着することができる。ユーザによって外部非代替性アセット65が選択されたことに応じて、サーバ20は、当該ユーザが外部非代替性アセット65に関連付けられているNFTを保有しているか否かを確認してもよい。外部非代替性アセット65に関連付けられているNFTを発行したスマートコントラクトには、NFTを発行する関数に加えて、発行済みのNFTの保有者アドレス情報をリクエストに応じて返す関数が含まれていてもよい。サーバ20は、外部非代替性アセット65に関連付けられているNFTを発行したスマートコントラクトにアクセスすることで、外部非代替性アセット65の保有者を確認することができる。サーバ20は、ユーザによって外部非代替性アセット65が選択された場合に、非代替性アセット65を選択したユーザが、外部非代替性アセット65に関連付けられているNFTの保有者と一致した場合にのみ外部非代替性アセット65の使用を許可し、不一致の場合には当該ユーザによる外部非代替性アセット65の使用を許可しなくともよい。
サーバ20は、外部非代替性アセット65が、サーバ20が提供するサービスにおいて利用可能なデジタルアセットか否かを確認し、利用可能であることが確認できた場合にのみ、サーバ20が提供する仮想空間での利用を許可してもよい。例えば、サーバ20は、外部非代替性アセット65に関連付けられている非代替性トークンを発行したスマートコントラクトがサーバ20により提供される仮想空間で用いられるデジタルアセットをNFT化するためのスマートコントラクト(例えば、スマートコントラクト32)と同一か否かを検証し、同一であることが確認された場合に、サーバ20が提供する仮想空間における外部非代替性アセット65の利用を許可することができる。別の態様では、サーバは、外部非代替性アセット65に関連付けられているNFTのメタデータに含まれているアセットIDが、サーバ20から提供されたデジタルアセットに付与されているアセットIDと一致するか否かを検証し、一致することが確認された場合に、サーバ20が提供する仮想空間における外部非代替性アセット65の利用を許可することができる。アセットIDについては、以下で説明する。
アセット管理データ25bについて、図10を参照して説明する。アセット管理データ25bは、ユーザ用アセットを管理するためのデータが構造的に記憶されたデータセットである。アセット管理データ25bには、ユーザ用アセットを識別するアセット識別情報と、ユーザ用アセットの仮想空間内での保有者を特定するアセット保有者情報と、ユーザ用アセットに関連付けられている非代替性トークンを識別するトークン情報と、が含まれる。
あるユーザ用アセットのアセット識別情報は、例えば、当該ユーザ用アセットを識別するアセットIDである。アセットIDは、動画伝送システム1において、ユーザ用アセットの各々を一意に特定する。アセットIDは、ユーザ用アセットが仮想空間内で流通する前に仮想空間運営者によって各ユーザ用アセットに付与される。
あるユーザ用アセットのアセット保有者情報は、例えば、サーバ20が提供する仮想空間において当該ユーザ用アセットを保有するユーザのユーザIDである。ユーザ用アセットを識別するアセットIDと当該ユーザ用アセットを保有するユーザのユーザIDとを対応付けて記憶することにより、各ユーザ用アセットがどのユーザに保有されているかを特定することができる。いずれのユーザにも保有されていないユーザ用アセットのアセット保有者情報には、Null値が設定されてもよい。あるユーザ用アセットのアセット保有者情報は、ブロックチェーンネットワーク30におけるNFTの保有者を示すデータではなく、仮想空間内で当該ユーザ用アセットを保有する権限を有するユーザを特定するデータである。例えば、ユーザAが非代替性アセット61を、例えば、図7に示すアイテム購入画面を介して購入した場合には、そのユーザAのユーザIDが非代替性アセット61のアセットIDと対応付けられて、アセット管理データ25bの一部として記憶される。
あるユーザ用アセットのトークン情報は、例えば、当該ユーザ用アセットに関連付けられている非代替性トークンを識別するトークンIDである。ユーザ用アセットが非代替性アセットである場合には、当該非代替性アセットに関連付けられたNFTのトークンIDが、当該ユーザ用アセットのトークン情報として記憶されてもよい。ユーザ用アセットが代替性アセットである場合には、当該ユーザ用アセットに関連付けられたトークンIDは存在しないので、当該ユーザ用アセットのトークン情報には、Null値が設定される。ユーザ用アセットを識別するアセットIDと当該ユーザ用アセットに関連付けられたトークンIDとを対応付けて記憶することにより、各ユーザ用アセットが非代替性アセットであるか代替性アセットであるかを判定することができる。また、ユーザ用アセットが非代替性アセットである場合には、当該ユーザ用アセットがどの非代替性トークンと関連付けられているかを特定することができる。
ユーザ管理データ25cについて図11を参照して説明する。ユーザ管理データ25cには、動画伝送システム1の各ユーザのユーザ識別情報と、各ユーザが利用するアバターに関するアバター情報と、各ユーザが保有するユーザ用アセットを特定するための保有アセット情報と、各ユーザの仮想空間内でのアクティビティを示すアクティビティ情報と、サーバ20によりホスティングされているウォレットに関するウォレット情報と、各ユーザが保有するポイントに関するポイント情報と、が含まれる。
あるユーザのユーザ識別情報は、例えば、当該ユーザを識別するユーザIDである。ユーザのユーザIDは、当該ユーザがユーザ装置(例えば、ユーザ装置10a)を介してサーバ20から提供される動画送信サービスへの利用登録を行うときに発行されてもよい。この動画送信サービスは、サーバ20から送信される動画データ又は当該動画データから生成される動画をユーザに視聴させるサービスである。
あるユーザのアバター情報は、例えば、当該ユーザが動画伝送システム1内で利用するアバターを識別するアバターIDである。アバターIDは、ユーザがアバターの登録を行うことにより当該ユーザに割り当てられる。図2に示した例では、ユーザAがアバター70aを介して仮想空間を利用している。この例では、ユーザAのユーザIDと対応付けて、アバター70aのアバターIDがユーザ管理データ25cの一部として記憶される。アバターの登録は、動画伝送システム1において、動画送信サービスの利用登録後に(または、利用登録と同時に)行われる。アバターの登録時には、パーツデータの中から好みのパーツを選択することで、その選択されたパーツを組み合わせてアバターを構成することができる。アバターを構成するパーツは、各パーツを識別するパーツIDと対応付けて、ユーザ管理データ25cの一部として又は別のデータセットの一部として記憶されてもよい。あるアバターが複数のパーツで構成されている場合には、当該アバターを識別するアバターIDと対応付けて、当該アバターを構成する複数のパーツの各々を識別するパーツIDが記憶されてもよい。アバターの登録後であっても、ユーザは、当該アバターのパーツの一部又は全部を変更することができる。例えば、登録後であっても、アバターのヘアスタイル、顔のパーツ、及びこれら以外のアバターを構成するパーツを変更することができる。また、アバターが装着する衣服等の装着アイテムデータを選択し、選択された装着アイテムデータに対応する装着アイテムを仮想空間内でアバターに装着させることができる。アバター情報は、アバターの外観を決めるデジタルアセット(ヘアスタイル、パーツ、衣服、及びアクセサリー等)の組み合わせを特定するコーディネート情報であってもよい。ユーザごとに複数のコーディネート情報が記憶されてもよい。ユーザは、コーディネートを指定することにより、ヘアスタイル、パーツ、衣服等を個別に選択しなくても、アバターの外観を定めることができる。これにより、ユーザは、コーディネート情報を指定することにより、アバターの外観を容易に指定し、また、切り替えることができる。
アバターについて選択されたパーツデータ及び装着アイテムデータは、図12に示されているように、アバター管理データ25dとしてストレージ25に格納される。
アバター表示データには、動画にアバターを2D表示するための2D表示情報と、動画にアバターを3D表示するための3D表示情報とが含まれてもよい。アバターを3D表示するための3D表示情報には、アバターを動画内で立体的に表示するためのパーツの画像を示すパーツデータに加えて、アバターの3次元での動きを表現するためのリグデータ、及びこれら以外のアバターを立体的に表示するために用いられている公知のデータを含むことができる。
各ユーザのウォレット情報には、当該ユーザがサーバ20により提供されるサービス内で利用可能でありサーバ20によりホスティングされるウォレットに関する情報が含まれる。あるユーザのユーザ識別情報に対応付けられているウォレット情報は、例えば、ウォレットを識別するウォレットIDと、当該ユーザにより利用されるウォレットの公開鍵と、この公開鍵とペアになる秘密鍵と、が含まれる。ユーザがサーバ20によりホスティングされるウォレットを利用しない場合には、ウォレット情報には、Null値が格納されてもよい。ユーザは、サーバ20によりホスティングされるウォレットではなく、自らのユーザ装置が備えるウォレット(例えば、ユーザウォレットW10b)を用いて、サーバ20により提供されるサービス内で非代替性トークンの取り引きを行ったり、オンチェーンのユーティリティトークンを使用したりすることができる。このようにユーザが自らのユーザ装置が備えるウォレットを用いておりサーバ20によりホスティングされるウォレットを用いない場合には、当該ユーザ装置に備えられているウォレットを識別するための識別情報を格納してもよい。例えば、あるユーザのウォレット情報として、当該ユーザのユーザ装置に備えられているウォレットが用いる鍵ペアのうちの公開鍵が格納されてもよい。具体例で説明すると、ユーザ管理データ25cにおいては、ユーザBのユーザIDと対応付けて、ユーザBのユーザ装置10bに備えられているユーザウォレットW10bを識別する識別情報(例えば、ユーザウォレットW10bが使用する公開鍵)が格納されてもよい。ユーザが自らのユーザ装置が備えるウォレットを用いておりサーバ20によりホスティングされるウォレットを用いない場合には、当該ユーザのユーザ識別情報に対応付けられるウォレット情報には、Null値が格納されてもよい。また、ユーザは、非代替性トークンやオンチェーンのユーティリティトークンを利用せずに、サーバ20が提供するサービスを利用することもできる。このような非代替性トークンを利用しないユーザのユーザ識別情報に対応付けられるウォレット情報にも、Null値が格納される。
各ユーザの保有アセット情報は、各ユーザが保有するユーザ用アセットに関する情報である。あるユーザの保有アセット情報は、例えば、当該ユーザが保有するユーザ用アセットのアセットIDである。ユーザを識別するユーザIDと当該ユーザが保有するユーザ用アセットを識別するアセットIDとを対応付けて記憶することにより、各ユーザがどのユーザ用アセットを保有しているかを特定することができる。アセット管理データ25bにおいてユーザ用アセットのアセットIDと当該ユーザ用アセットを保有するユーザのユーザIDとを対応付けているため、ユーザ管理データ25cには保有アセット情報が含まれなくともよい。
サーバ20は、一のユーザから他のユーザの保有アセット情報の閲覧要求を受け付けると、当該他のユーザの保有アセット情報を参照して当該他のユーザが保有するユーザ用アセットのリストを作成し、当該保有アセットリストを当該一のユーザのユーザ装置に送信してもよい。あるユーザの保有アセットリストには、当該ユーザが保有するユーザ用アセットの全部又は一部に関する情報が含まれる。ユーザの保有アセットリストには、当該ユーザが保有する非代替性アセットのみが含まれてもよい。ユーザの保有アセットリストは、例えば、当該ユーザが保有する一又は複数のユーザ用アセットの名称と対応付けて、各ユーザ用アセットを示すアイコン、各ユーザ用アセットが代替性アセットか非代替性アセットかを示す代替性情報、各ユーザ用アセットのうち非代替性アセットについては当該非代替性アセットがネイティブ非代替性アセットか変換非代替性アセットかを識別するネイティブ識別情報、及びこれら以外の当該ユーザが保有するユーザ用アセットに関する情報を含むことができる。一のユーザからの要求に応じて、他のユーザの保有アセットリストがサーバ20から一のユーザのユーザ装置に送信されると、当該一のユーザのユーザ装置のディスプレイには、保有アセットリストに含まれる情報が表示される。これにより一のユーザは、他のユーザがどのユーザ用アセットを保有しているかを知ることができる。また、保有アセットリストに代替性情報が含まれている場合には、一のユーザは、他のユーザが保有する非代替性アセットを知ることができる。
各ユーザのアクティビティ情報には、各ユーザの仮想空間内でのアクティビティを示す様々な情報が含まれ得る。あるユーザのアクティビティ情報には、例えば、以下の情報が含まれ得る。
(アクティビティ情報の例)
・当該ユーザがサーバ20によって提供される動画送信サービスへログインした時間及び/又はログイン回数
・当該ユーザが友人として登録している他のユーザの数(フレンド数)
・当該ユーザがフォローしている他のユーザの数(フォロー数)
・当該ユーザをフォローしている他のユーザの数(フォロワー数)
・当該ユーザが他のユーザのために贈った投げ銭の額
・当該ユーザが他のユーザが配信している動画において、当該他のユーザのために贈ったギフトの数
・当該ユーザが他のユーザが配信している動画において送信したコメントの数
・当該ユーザが他のユーザ配信している動画に対して行った肯定的なフィードバックの数(例えば、「いいね」を選択した数)
・当該ユーザが他のユーザから送られた投げ銭の額
・当該ユーザが動画伝送システム1により提供された動画を視聴した視聴時間及び/又は視聴回数
・当該ユーザが動画伝送システム1において配信した動画の配信時間、配信回数、及び/又は視聴者数
・動画伝送システム1において管理されている各種ランキングにおける当該ユーザのランク
・動画伝送システム1において管理されている当該ユーザの階級(例えば、Sランク、Aランク、Bランク、Cランクに分けられる。)
・当該ユーザが仮想空間内に設けられたルーム、ワールド、ライブ会場、又は前記以外の他と区別させる区画を訪問した回数
・当該ユーザによって制作された仮想空間内に設置可能なオブジェクトの数(オブジェクト制作数)
・当該ユーザによって制作された仮想空間内に設置されたオブジェクトの数(オブジェクト設置数)
・当該ユーザによって作成された仮想空間内のコンテンツ(UGC)の数(UGC制作数)
・当該ユーザによってカスタマイズされたワールド(仮想空間のテンプレートから作成される仮想空間のインスタンス)の数
・当該ユーザによって作成されたゲームの数(ゲーム作成数)
・当該ユーザによって開催されたライブやイベントの回数(イベント開催数)
・他のユーザによって開催されたイベントに当該ユーザが参加した回数(イベント参加回数)
・仮想空間内において特定のイベントへ参加するためのイベントチケットが当該ユーザによって購入された購入金額(購入金額)
・当該ユーザが保有するユーザ用アセットの数(アセット数)
・サーバ20において提供される動画送信サービスにおいて有償のガチャが提供されている場合における、当該ユーザによるガチャの購入金額
・仮想空間における当該ユーザの活動の活発さを表す上記以外の指標
・当該ユーザによるテキストチャット機能の使用回数及び/又は使用時間
・当該ユーザによるビデオチャット機能の使用回数及び/又は使用時間
・サーバ20により提供される動画送信サービスにおける当該ユーザの活動の活発さを表す上記以外の指標
動画伝送システム1においては、ユーザに対してポイントが発行されてもよい。各ユーザのポイント情報は、各ユーザが保有するポイント数を表す。動画伝送システム1におけるポイントは、例えば、動画送信サービスへのログイン回数、動画の視聴時間、動画の視聴回数、及びこれら以外の動画伝送システム1内でのアクティビティに応じて付与される。ポイント情報は、アクティビティ情報に含まれてもよい。
次に、サーバ20のプロセッサ21により実行される機能について説明する。コンピュータプロセッサ21は、ストレージ25に記録されたプログラムに含まれるコンピュータ読み取り可能な命令を実行することにより、動画送信部21aとして機能する。
サーバ20は、様々な種類の動画を送信することができる。以下では、サーバ20がユーザAが配信者となる動画(以下、「ユーザAの配信動画」という。)の動画データを送信し、ユーザBがユーザ装置10bによりこのユーザAの配信動画を視聴することを想定する。既述のとおり、動画データからの動画の生成は、動画伝送システム1内のいずれの機器により行われてもよい。ユーザAの配信動画は、サーバレンダリング方式、クライアントレンダリング方式、又はブラウザレンダリング方式のいずれかにより生成される。ユーザ装置ごとに異なるレンダリング方式が使用されてもよい。例えば、ユーザ装置10aにおいては、クライアントレンダリング方式により生成されたユーザAの配信動画が再生され、ユーザ装置10bにおいては、サーバレンダリング方式により生成されたユーザAの配信動画が再生されてもよい。
動画送信部21aは、ユーザAがログインすると、ユーザ管理データ25cを参照して、ユーザAのユーザIDに対応付けられているアバターIDを特定し、そのユーザAのアバターIDに対応付けられているアバター表示データに基づいて、ユーザAのアバター70aを生成する。ユーザAのアバター70aは、仮想空間内に、例えば図2に示されているように表示される。ユーザAのアバター70aが含まれる仮想空間が生成され、ユーザAからの動画の配信要求がサーバ20に送信されると、ユーザAのアバターを含む仮想空間のビューを含む動画を視聴するための「ルームA」を含むルーム選択画面が、動画を視聴するために動画送信サービスにログインしているユーザのユーザ装置に表示される。例えば、ユーザBは、ユーザ装置10bを用いて動画送信サービスにログインし、ユーザ装置10bに表示されたホーム画面において動画を視聴するための動画視聴ボタンを選択すると、ユーザ装置10bには、視聴対象の動画を選択するためのルーム選択画面が表示される。ルーム選択画面の例は、図13に示されている。図13に示されているように、ルーム選択画面には、ユーザAの配信動画を視聴するためのルームAの他に、ルームB~ルームDが表示されている。ユーザBがユーザ装置10bを操作してルームAを選択すると、ユーザAのアバターを含むユーザAの配信動画がユーザ装置10bにおいて再生される。ユーザBは、ユーザAの配信動画の視聴中に、ユーザAとテキストチャット機能やビデオチャット機能により対話したり、ユーザAにギフトオブジェクトを贈ったり、投げ銭をしたり、評価をフィードバックしたりすることができる。
ルーム選択画面に表示されるルーム(例えば、ルームA~ルームD)のうち、一部のルームについては、特定の視聴許可条件を満たした場合にのみ選択可能とされてもよい。視聴許可条件は、例えば、動画を視聴しようとするユーザ(上記の例では、ユーザB)が非代替性アセットを少なくとも一つ保有していることであってもよい。
動画送信部21aは、上記以外の方法で動画データを送信してもよい。例えば、動画送信部21aは、サーバ20が提供するサービスにサインインしたユーザのユーザ装置に対して、仮想空間内に設置された仮想カメラにより撮影された当該仮想空間のビューを含む動画の動画データを送信することができる。これにより、当該ユーザは、特定の配信ユーザからの配信動画ではない仮想空間のビューを含む動画を視聴することができる。
プロセッサ21は、動画送信部21aとしての機能以外にも様々な機能を実行することができる。例えば、プロセッサ21は、ストレージ25に記録されたプログラムに含まれるコンピュータ読み取り可能な命令を実行することにより、NFT発行要求部21b、NFT移転処理部21c、NFT取引部21d、報酬付与部21e、及びウォレット生成部21fとして機能することができる。
NFT発行要求部21bは、代替性アセットについてNFT発行トランザクションデータを生成する。例えば、図6に示されているように、代替性アセット60は、ユーザに付与される前にNFT化される。代替性アセット60をNFT化するために、NFT発行要求部21bは、代替性アセット60のバックアップデータをファイルシステム40に格納する。また、NFT発行要求部21bは、代替性アセットを非代替性トークンとしてトークン化するためのトランザクションデータ(NFT発行トランザクションデータ)をブロックチェーンネットワーク30に送信する。ブロックチェーンネットワーク30では、NFT発行トランザクションデータに基づいてスマートコントラクト32が実行される。スマートコントラクト32の実行により、代替性アセット60がNFT化されて非代替性アセット61となり、この非代替性アセット61に関連付けられたトークンIDを有するNFTが仮想空間運営者のアドレスに対して発行される。このNFTを発行するトランザクションは、ブロックチェーン31上の最新のブロックに記載される。また、NFT発行要求部21bは、発行されたNFTのトークンIDを、非代替性アセット61のアセットIDと対応付けて、アセット管理データ25bの一部としてストレージ25に記憶することができる。
NFT発行要求部21bは、代替性アセットを保有するユーザからの要求に応じて、当該代替性アセットをNFT化することができる。本明細書では、ユーザからの代替性アセットをNFT化する要求を、「トークン化要求」又は「ミント要求」ということがある。例えば、図6に示されているように、ユーザが代替性アセット62を保有する場合には、当該ユーザは、ユーザ装置の操作により、代替性アセット62のNFT化を要求するトークン化要求をサーバ20に送信することができる。サーバ20においてトークン化要求が受信されると、NFT発行要求部21bは、代替性アセット62をNFT化するために、代替性アセット62のバックアップデータをファイルシステム40に格納し、また、代替性アセットを非代替性トークンとしてトークン化するためのトランザクションデータ(NFT発行トランザクションデータ)をブロックチェーンネットワーク30に送信する。このNFT発行トランザクションデータに基づいてスマートコントラクト32が実行されることにより、代替性アセット62がNFT化されて非代替性アセット64となり、この非代替性アセット64に関連付けられたトークンIDを有するNFTが発行される。発行されたNFTは、トークン化要求を行ったユーザのユーザ識別情報と対応付けてサーバ20にホスティングされているウォレット(例えば、ウォレットW10a)のアドレスに対して発行される。このNFTを発行するトランザクションは、ブロックチェーン31上の最新のブロックに記載される。また、NFT発行要求部21bは、発行されたNFTのトークンIDを、非代替性アセット64のアセットIDと対応付けて、アセット管理データ25bの一部としてストレージ25に記憶することができる。
代替性アセットは、一つずつNFT化されてもよいし、複数の代替性アセットのセットがNFT化されてもよい。例えば、アバターに装着される装着アイテムをコーディネートし、そのコーディネートされた複数の装着アイテムのセットをNFT化してもよい。この場合、複数の装着アイテムのセットに対して一つの非代替性トークンが発行される。複数の装着アイテムのセットが、この発行された非代替性トークンに関連付けられる対象データとなる。
複数の代替性アセットをセットとしてNFT化する場合、そのNFT化される代替性アセットのセットを、セットデータと呼ぶ。ユーザは、セットデータを構成する複数の代替性アセットを、例えば、自らが保有する保有アイテムの中から選択することができる。セットデータは、アバターの複数のパーツの組み合わせであってもよい。例えば、セットデータは、アバターの特定の顔のパーツと特定のヘアスタイルのパーツとの組み合わせであってもよい。上述したように、ストレージ25には、ユーザが使用するアバターのアバターIDと対応付けて、アバターの外観を決めるデジタルアセット(ヘアスタイル、パーツ、衣服、及びアクセサリー等)の組み合わせを特定するコーディネート情報が記憶されていてもよい。このコーディネート情報を構成するデジタルアセットの組み合わせがセットデータとされてもよい。ユーザのアバターが、仮想空間内で行われた特定のイベントに参加した場合、当該ユーザは、当該イベントに参加した際のアバターの外観を決めるデジタルアセット(ヘアスタイル、パーツ、衣服、及びアクセサリー等)の組み合わせをセットデータとして指定することができる。ユーザは、例えば、アバターを介して参加した仮想空間内のイベントを指定することにより、そのイベントにおいて当該ユーザのアバターの外観を定めていたデジタルアセットの組み合わせをセットデータとして選択し、その選択されたセットデータをNFT化することができる。
NFT移転処理部21cは、移転元のアドレスから移転先のアドレスに、NFTを移転させるための処理を行う。例えば、ユーザAがユーザBに非代替性アセット61を譲渡する場合、NFT移転処理部21cは、非代替性アセット61に関連付けられているNFTを、ユーザAのアドレスからユーザBのアドレスに移転させるためのNFT移転トランザクションデータを生成する。このNFT移転トランザクションデータには、ユーザAのウォレットW10aのアドレスからユーザBのユーザウォレットW10bのアドレスへの、非代替性アセット61に関連付けられているNFTの移転が記述されている。NFT移転トランザクションデータは、サーバ20がホスティングしているユーザAのウォレットW10aの秘密鍵で暗号化されてデジタル署名データが生成される。NFT移転トランザクションデータは、生成されたデジタル署名データとともに、サーバ20からブロックチェーンネットワーク30に送信される。ブロックチェーンネットワーク30においてデジタル署名データの真正性が確認されると、ブロックチェーンネットワーク30は、当該デジタル署名データに関連付けられているNFT移転トランザクションデータを、ブロックチェーン31の最新のブロックに記録する。
NFT移転処理部21cは、サーバ20が提供するサービスのユーザ以外のアドレスからNFT移転要求を受け付けてもよい。このNFT移転要求が、ブロックチェーンネットワーク30と互換性のあるブロックチェーンネットワークのアドレスから送信されている場合には、NFT移転処理部21cは、上述したユーザBのアドレスへの移転と同様の手順でNFTを移転することができる。例えば、移転対象のNFTがERC-721規格に従った非代替性トークンである場合には、ERC-721規格に従って作成された外部のブロックチェーンネットワークのアドレス(例えば、ERC-721に準拠したウォレットのアドレス)に対して、非代替性アセットに関連付けられたNFTを移転させるための処理を行うことができる。
NFT取引部21dは、NFT化されている非代替性アセットのユーザ間での取り引きを実行する。NFT取引部21dは、ユーザによるユーザ装置の操作に応じて、図14に示されている取引画面を当該ユーザ装置に表示する。図14は、ユーザ装置に表示される取引画面の例である。取引画面には、ユーザによって出品されている非代替性アセットの一覧を含む。図14に示されている取引画面には、非代替性アセット61、64、66が含まれている。図示は省略されているが、取引画面においては、非代替性アセット61、64、66の各々のアイコンの近傍にNFTマークが表示されてもよい。取引画面において、非代替性アセットだけでなく代替性アセットも取り引きされる場合には、NFTマークにより非代替性アセットと代替性アセットとを区別することができる。非代替性アセット61、64、66の各々は、各非代替性アセットを保有するユーザによって出品されたものである。非代替性アセット61、64、66の各々は、例えば、各非代替性アセットを保有するユーザによって、各非代替性アセットを売却するために出品されたものである。非代替性アセット61、64、66の取引きには、ユーティリティトークンを用いることができる。非代替性アセット61、64、66の各々には、各アセットを取得するための対価が、ユーティリティトークンの数量として表示されている。例えば、非代替性アセット61と関連付けて、3.49RLTと表示されている。動画伝送システム1において用いられるユーティリティトークンの単位を「RLT」とする。動画伝送システム1において用いられるユーティリティトークンの単位として、別の単位を用いられてもよい。図示されている実施形態では、ユーザは、3.49RLTの支払いと引き換えに非代替性アセット61を入手することができる。図14の例では、各非代替性アセットと関連付けてユーザが指定する価格が表示されているが、非代替性アセットは、オークション形式で販売されてもよい。このように、NFT取引部21dは、マーケットプレイスの機能を提供する。NFT取引部21dによって提供されるマーケットプレイスの機能を、サーバ20又はサーバ20が提供するサービスの「内部マーケットプレイス」と呼ぶことがある。取引画面において(内部マーケットプレイスにおいて)非代替性アセットを取得するためには、ユーザは、ウォレットを利用できることが必要である。ユーザは、サーバ20が提供するサービスにおける自らのユーザ識別情報と対応付けてサーバ20によりホスティングされているウォレットを用いて、非代替性アセットの取り引きを行うことができる。例えば、ユーザAは、サーバ20によりホスティングされているウォレットW10aを用いて、非代替性アセットの取り引きを行うことができる。ユーザは、自らが利用するユーザ装置が備えるウォレットを用いて、非代替性アセットの取り引きを行うこともできる。例えば、ユーザBは、ユーザ装置10bを用いて、非代替性アセットの取り引きを行うことができる。
報酬付与部21eは、動画送信サービスにログインしているユーザのアクションに応じて、当該ユーザにポイントを付与することができる。報酬付与部21eは、例えば、あるユーザについて上述したアクティビティ情報のうちのいずれかが、所定の閾値以上となった場合に、当該ユーザに対してポイントを付与することができる。一例として、視聴時間が1時間を超えた場合にポイントを付与することができる。別の一例として、ログインを行うたびにログインボーナスとしてポイントを付与することができる。報酬付与部21eは、あるユーザに対して付与したポイントを、当該ユーザのユーザIDに対応付けてユーザ管理データ25cの一部としてストレージ(例えば、ストレージ25)に記憶することができる。ポイントは、法定通貨と交換可能であってもよい。ポイントは、仮想空間内で使用できるアイテムと交換可能であってもよい。
ユーザがブロックチェーンネットワーク30のアドレスとして使用できるウォレットを利用している場合には、報酬付与部21eは、ポイントに代えて又はポイントに加えて、ユーザのアクションに応じて、当該ユーザにスマートコントラクト33を実行することで発行されるユーティリティトークンを付与することができる。ユーティリティトークンの付与条件は、ポイントの付与条件と同じでもよいし、異なっていてもよい。
ユーザがブロックチェーンネットワーク30のアドレスとして使用できるウォレットを利用している場合には、当該ユーザは、自らのポイントをユーティリティトークンに変換することができる。例えば、報酬付与部21eは、ポイントとユーティリティトークンとの交換レートをユーザに通知する。ユーザのユーザ装置から送信された交換要求がサーバ20で受信されると、報酬付与部21eは、交換要求があったポイント数と交換レートとに基づいてスマートコントラクト33を実行させ、当該ユーザにユーティリティトークンを発行することができる。
ユーティリティトークンを入手したユーザは、DEX(分散型取引所)で、保有するユーティリティトークンを他のERC-20トークンと交換してもよい。DEXは、例えば、ブロックチェーン31上においてスマートコントラクトを実行することにより、オーダーブック形式又は自動マーケットメイカー形式で、ERC-20トークン同士の取り引きを行うことができる。ただし、オーダーブック形式の場合、売買注文はオフチェーンで行い、決済をオンチェーンで行う。DEXは、ユーティリティトークンを法定通貨とは交換はできなくともよい。ユーティリティトークンが取引所50又はそれ以外の取引所において上場されている場合には、ユーティリティトークンと法定通貨との交換が可能である。
ウォレット生成部21fは、ユーザのユーザ識別情報と対応付けてウォレットを生成する。ウォレット生成部21fにより生成されたウォレットは、サーバ20によりホスティングされ、ユーザによりNFTの取り引き、ユーティリティトークンの管理、及びこれら以外の処理のために用いられる。ウォレット生成部21fは、例えば、ERC-721互換のウォレットを生成することができる。一態様において、ウォレット生成部21fは、ユーザがサーバ20により提供されるサービスのアカウントを生成する際(つまり、サーバ20が提供するサービスの利用を開始する際)に、当該ユーザ用のウォレットを生成してもよい。別の態様において、ウォレット生成部21fは、ユーザがサーバ20のサービスの利用を開始した後に、当該ユーザにウォレットが必要となった場合に、当該ユーザ用のウォレットを生成する。例えば、ウォレット生成部21fは、ユーザがユーザ装置を通じてウォレットを必要とする処理の要求を行った場合に、当該ユーザ用のウォレットを生成することができる。ユーザがユーザ装置を通じて行うウォレットを必要とする処理の要求には、(1)サーバ20が提供するサービスにおけるNFT又は非代替性アセットの購入及び/又は取得を要求する処理、(2)非代替性アセットをNFT化する要求、及び(3)(オンチェーンの)ユーティリティトークンを取得する要求が含まれる。ユーザがユーザ装置を通じて行うウォレットを必要とする処理の要求は、上記のものには限られない。別の例において、ウォレット生成部21fは、他のユーザからの要求に応じて又はサーバ20の処理に応じてユーザにウォレットが必要となった場合に、当該ユーザ用のウォレットを生成することができる。例えば、ウォレットを利用していない一のユーザに対して他のユーザからNFTや非代替性アセットが贈られた場合、ウォレット生成部21fは、当該一のユーザのためにウォレットを生成することができる。また、ウォレット生成部21fは、ウォレットを利用していない一のユーザに対してオンチェーンのユーティリティトークンを付与する場合、当該一のユーザのためにウォレットを生成することができる。
一実施形態において、ウォレット生成部21fは、ユーザがサーバ20のサービスの利用を開始した後に当該サービス内でウォレットが必要となったことに応じて、当該ユーザのユーザ装置にウォレットを生成するためのグラフィカルユーザーインターフェース(GUI)を表示する。本明細書では、ウォレットを生成するためのGUIを「ウォレット作成UI」と呼ぶ。ウォレット作成UIは、例えば、ウォレットに関する利用規約を表示し、ユーザがGUIに含まれる操作ボタンを操作することにより当該利用規約にユーザが同意した場合に、パスワードを設定するための画面を表示する。ユーザによって、パスワードが設定されると、当該ユーザ用の鍵ペアを作成し、この鍵ペアを用いるウォレットを当該ユーザのために生成する。ユーザのためのウォレットが生成された後は、当該ユーザは、生成されたウォレットを用いて、NFTの取り引きやユーティリティトークンの取得を行うことができる。
ウォレット生成UIは、ウォレットを利用していないユーザが、ユーザ装置においてNFT化要求をサーバに送信する処理を行ったことに応じて、当該ユーザ装置に表示されてもよい。
次に、図15を参照して、ユーザAが非代替性アセットを取得する処理の流れを説明する。ユーザAが利用するユーザ装置10aは、ブロックチェーンネットワーク30に接続されたユーザウォレットを備えていないが、ユーザAは、サーバ20によりホスティングされているウォレットW10aを利用していると想定する。
まず、ステップS11において、ユーザ装置10aは、サーバ20に対して非代替性アセット61を取得するためのアセット取得要求を送信する。例えば、図7に示されているアイテム購入画面において非代替性アセット61に関連付けられている購入ボタンが選択されると、非代替性アセット61を取得するためのアセット取得要求がユーザ装置10aからサーバ20に送信される。非代替性アセット61を購入するための対価は、法定通貨、ユーザに付与されたポイント、ユーティリティトークン、又は暗号資産等により支払われてもよい。非代替性アセット61の購入の対価がユーティリティトークンにより支払われる場合には、ユーザAは、非代替性アセット61の価格に対応する数量のユーティリティトークンを消費する。これにより、ウォレットW10aで管理されているユーザAのユーティリティトークンの残高が非代替性アセット61の価格に対応する数量だけ減少する。
アセット取得要求が受信されると、ステップS12において、ユーザAのユーザ識別情報と対応付けられているウォレットを特定するために、ユーザ管理データ25cが参照される。サーバ20は、ユーザAのユーザ識別情報と対応付けられているウォレットをホスティングしているから、ユーザAのウォレットW10aを特定することができる。サーバ20は、当該アセット取得要求において指定されている非代替性アセット61をユーザAに付与する。サーバ20は、ユーザ管理データ25cにおいて、ユーザAのユーザIDと関連付けられている保有アセット情報に、非代替性アセット61のアセットIDを追加することができる。
ステップS12の後に又はステップS12と並行して、ステップS13において非代替性アセット61に関連付けられている非代替性トークンをユーザAに移転する処理が開始される。例えば、ステップS13において、サーバ20は、非代替性アセット61に関連付けられている非代替性トークンを、仮想空間運営者の運営者アドレスからユーザAのウォレットW10aのアドレスに移転させるためのNFT移転トランザクションデータを生成し、生成されたNFT移転トランザクションデータをブロックチェーンネットワーク30に送信する。NFT移転トランザクションデータは、NFT移転トランザクションデータをウォレットW10aの秘密鍵で暗号化することで生成されたデジタル署名データとともにブロックチェーンネットワーク30に送信される。
次に、ステップS14において、ブロックチェーンネットワーク30においてデジタル署名データの真正性が検証される。デジタル署名データの真正性が確認されると、ブロックチェーンネットワーク30は、当該デジタル署名データに関連付けられているNFT移転トランザクションデータを、ブロックチェーン31の最新のブロックに記録する。これにより、非代替性アセット61に関連付けられた非代替性トークンが仮想空間運営者からユーザAに移転されたことが、ブロックチェーン31上に記録される。
NFT移転トランザクションデータにおいては、ブロックチェーンネットワーク30が検証を行うための手数料(ガス代と呼ばれる。)を指定することができる。このガス代は、例えば、ユーティリティトークンで支払うことが可能である。ガス代は、仮想空間運営者によって負担されてもよいし、ユーザAによって負担されてもよい。ユーザAがガス代を負担する場合には、ステップS14での検証がなされたことに応じて、ガス代に対応するユーティリティトークンの数量がユーザAのユーティリティトークンの残高から差し引かれる。
ユーザAは、サーバ20から取得した非代替性アセット61をサーバ20が提供する仮想空間内で利用することができる。例えば、ユーザAは、自らのアバター70aに、取得した非代替性アセット61を装着させることができる。非代替性アセット61が仮想空間で使用されるときには、非代替性アセット61がNFT化されていることを示す表示要素が、非代替性アセット61に関連付けて表示されてもよい。例えば、着せ替え画面では、非代替性アセット61のアイコンの近傍にNFTマーク61aが表示されてもよい。アバターが非代替性アセット61を装着した後にも、当該非代替性アセット61がNFT化されていることを示すために、非代替性アセット61に関連付けて、NFTマーク又はそれ以外の非代替性アセット61がNFT化されていることを示す表示要素が表示されてもよい。
ユーザAは、非代替性アセット61に関連付けられている非代替性トークンも取得しているので、非代替性アセット61をマーケットプレイスに出品することができる。マーケットプレイスに出品された非代替性アセット61は、図14に示されているように、取引画面に表示される。このように、ユーザAは、マーケットプレイスを通じて、非代替性アセット61を二次流通させることができる。
次に、図16を参照して、ユーザBが非代替性アセットを取得する処理の流れを説明する。ユーザBが利用するユーザ装置10bは、図1に記載されているように、ブロックチェーンネットワーク30に接続されたユーザウォレットW10bを備えていると想定する。
まず、ステップS21において、ユーザ装置10bは、サーバ20に対して非代替性アセット61を取得するためのアセット取得要求を送信する。例えば、図7に示されているアイテム購入画面において非代替性アセット61に関連付けられている購入ボタンが選択されると、非代替性アセット61を取得するためのアセット取得要求がユーザ装置10bからサーバ20に送信される。この非代替性アセット61の購入は、ユーティリティトークンを用いて行われてもよい。非代替性アセット61がユーザBによって購入された場合、ユーザBは、非代替性アセット61の価格に対応する数量のユーティリティトークンを消費する。これにより、ユーザBのユーティリティトークンの残高が非代替性アセット61の価格に対応する数量だけ減少する。
アセット取得要求が受信されると、ステップS22において、サーバ20は、当該アセット取得要求において指定されている非代替性アセット61をユーザBに付与する。サーバ20は、ユーザ管理データ25cにおいて、ユーザBのユーザIDと関連付けられている保有アセット情報に、非代替性アセット61のアセットIDを追加することができる。ステップS22においては、ユーザBのユーザ識別情報と対応付けられているウォレットを特定するために、ユーザ管理データ25cが参照されてもよい。ユーザ管理データ25cにおいてユーザウォレットW10bの識別情報(例えば、ユーザウォレットW10bの公開鍵)が格納されている場合には、サーバ20は、ユーザBのユーザウォレットW10bを特定することができる。別の実施形態では、ユーザ装置10bから送信されるアセット取得要求に、ユーザウォレットW10bの識別情報(例えば、ユーザウォレットW10bの公開鍵)が含まれていてもよい。ユーザ装置10bから、アセット取得要求と関連付けて、ユーザウォレットW10bの識別情報(例えば、ユーザウォレットW10bの公開鍵)が送信されてもよい。これらの場合、サーバ20は、ユーザ装置10bから受信したユーザウォレットW10bの識別情報に基づいて、ユーザBが使用するウォレットを特定することができる。
ステップS22の後に又はステップS22と並行して、ステップS23において非代替性アセット61に関連付けられている非代替性トークンをユーザBに移転する処理が開始される。例えば、ステップS23において、サーバ20は、非代替性アセット61に関連付けられている非代替性トークンを、仮想空間運営者の運営者アドレスからユーザBのアドレスに移転させるためのNFT移転トランザクションデータを生成し、生成されたNFT移転トランザクションデータをブロックチェーンネットワーク30に送信する。ユーザBのブロックチェーンネットワーク30におけるアドレスは、ユーザウォレットW10bの公開鍵で表される。NFT移転トランザクションデータは、NFT移転トランザクションデータを運営者アドレスの秘密鍵で暗号化することで生成されたデジタル署名データとともにブロックチェーンネットワーク30に送信される。
次に、ステップS24において、ブロックチェーンネットワーク30においてデジタル署名データの真正性が検証される。デジタル署名データの真正性が確認されると、ブロックチェーンネットワーク30は、当該デジタル署名データに関連付けられているNFT移転トランザクションデータを、ブロックチェーン31の最新のブロックに記録する。これにより、非代替性アセット61に関連付けられた非代替性トークンが仮想空間運営者からユーザBに移転されたことが、ブロックチェーン31上に記録される。
NFT移転トランザクションデータにおいては、ブロックチェーンネットワーク30が検証を行うための手数料(ガス代と呼ばれる。)を指定することができる。このガス代は、例えば、ユーティリティトークンで支払うことが可能である。ガス代は、仮想空間運営者によって負担されてもよいし、ユーザBによって負担されてもよい。ユーザBがガス代を負担する場合には、ステップS24での検証がなされたことに応じて、ガス代に対応するユーティリティトークンの数量がユーザBのユーティリティトークンの残高から差し引かれる。
ユーザBは、サーバ20から取得した非代替性アセット61をサーバ20が提供する仮想空間内で利用することができる。非代替性アセット61が仮想空間で使用されるときには、非代替性アセット61がNFT化されていることを示す表示要素が、非代替性アセット61に関連付けて表示されてもよい。例えば、着せ替え画面では、非代替性アセット61のアイコンの近傍にNFTマークが表示されてもよい。アバターが非代替性アセット61を装着した後にも、当該非代替性アセット61がNFT化されていることを示すために、非代替性アセット61に関連付けて、NFTマーク又はそれ以外の非代替性アセット61がNFT化されていることを示す表示要素が表示されてもよい。
ユーザBは、非代替性アセット61に関連付けられている非代替性トークンも保有しているので、非代替性アセット61をマーケットプレイスに出品することができる。マーケットプレイスに出品された非代替性アセット61は、図14に示されているように、取引画面に表示される。このように、ユーザBは、マーケットプレイスを通じて、非代替性アセット61を二次流通させることができる。
次に、図17を参照して、ユーザCが非代替性アセットを取得する処理の流れを説明する。ユーザCが利用するユーザ装置10cは、ブロックチェーンネットワーク30に接続されたユーザウォレットを備えておらず、ユーザCは、サーバ20によりホスティングされているウォレットも利用していないと想定する。
まず、ステップS31において、ユーザCのユーザ装置10cは、サーバ20に対して非代替性アセット61を取得するためのアセット取得要求を送信する。例えば、図7に示されているアイテム購入画面において非代替性アセット61に関連付けられている購入ボタンが選択されると、非代替性アセット61を取得するためのアセット取得要求がユーザ装置10cからサーバ20に送信される。非代替性アセット61を購入するための対価は、法定通貨又はユーザに付与されたポイントにより支払われてもよい。
アセット取得要求が受信されると、ステップS32において、ユーザCのユーザ識別情報と対応付けられているウォレットを特定するために、ユーザ管理データ25cが参照される。サーバ20は、ユーザCのユーザ識別情報と対応付けられているウォレットをホスティングしていないから、サーバ20は、ユーザC用にウォレットが設定されていないと判定し、ユーザCのユーザ識別情報と対応付けてウォレットを生成する。サーバ20は、ステップS32において、ウォレットの生成のために、ウォレット作成UIをユーザ装置10cに表示させてもよい。ウォレット作成UIは、ステップS31によりアセット取得要求が送信された後、後述するステップS34においてNFT移転トランザクションデータが作成される前の任意のタイミングでユーザ装置10cに表示されてもよい。ユーザC用のウォレットが生成されると、ユーザCのユーザ識別情報と対応付けてユーザC用に設定されたウォレットの鍵ペア(公開鍵と秘密鍵とのペア)がユーザ管理データ25cの一部として記憶される。
ユーザC用のウォレットが設定されると、次に、ステップS33において、サーバ20は、当該アセット取得要求において指定されている非代替性アセット61をユーザCに付与する。サーバ20は、ユーザ管理データ25cにおいて、ユーザCのユーザIDと関連付けられている保有アセット情報に、非代替性アセット61のアセットIDを追加することができる。
ユーザC用のウォレットが設定された後は、ユーザCは、図17に示されている非代替性アセットの取得以外の処理においても当該ウォレットを用いることができる。ユーザCは、例えば、ユーティリティトークンの取得、消費、NFTの取り引き、及び前記以外のウォレットの機能を利用することができる。
図15を参照して説明したように、ユーザAも、サーバ20がホスティングしているウォレットW10aを用いて非代替性アセットを取得する。ユーザAが使用するウォレットW10aは、ユーザCのウォレットと同様に、サーバ20が提供するサービスにおいてウォレットが必要な処理が行われる際に生成されてもよく、ユーザAがサーバ20のサービスの利用を開始する際に生成されてもよい。
ステップS33の後に又はステップS33と並行して、ステップS34において非代替性アセット61に関連付けられている非代替性トークンをユーザCに移転する処理が開始される。例えば、ステップS34において、サーバ20は、非代替性アセット61に関連付けられている非代替性トークンを、仮想空間運営者の運営者アドレスから、ステップS32で設定されたユーザCのウォレットのアドレスに移転させるためのNFT移転トランザクションデータを生成し、生成されたNFT移転トランザクションデータをブロックチェーンネットワーク30に送信する。NFT移転トランザクションデータは、NFT移転トランザクションデータをウォレットW10aの秘密鍵で暗号化することで生成されたデジタル署名データとともにブロックチェーンネットワーク30に送信される。
次に、ステップS35において、ブロックチェーンネットワーク30においてデジタル署名データの真正性が検証される。デジタル署名データの真正性が確認されると、ブロックチェーンネットワーク30は、当該デジタル署名データに関連付けられているNFT移転トランザクションデータを、ブロックチェーン31の最新のブロックに記録する。これにより、非代替性アセット61に関連付けられた非代替性トークンが仮想空間運営者からユーザCに移転されたことが、ブロックチェーン31上に記録される。
ユーザCは、サーバ20から取得した非代替性アセット61をサーバ20が提供する仮想空間内で利用することができる。また、ユーザCは、非代替性アセット61に関連付けられている非代替性トークンも取得しているので、非代替性アセット61をマーケットプレイスに出品することができる。
図15ないし図17では、ユーザAないしユーザCが仮想空間運営者から非代替性アセット61を購入するための処理の流れを説明したが、非代替性アセット61は、仮想空間運営者からユーザに対して無償で付与されてもよい。例えば、サーバ20が提供する仮想空間内でユーザAが所定のアクションを取った場合、ユーザAのアクティビティ情報のうちのいずれかが所定の閾値以上となった場合、又はユーザAについてこれら以外の条件が満たされた場合に、非代替性アセット61又はこれ以外の非代替性アセットを、ユーザAに対して無償で付与してもよい。また、他のユーザからユーザAに対して、非代替性アセット61又はこれ以外の非代替性アセットが無償で付与(ギフティング)されてもよい。ユーザAへの無償での付与と同様に、ユーザBやそれ以外のユーザに対しても、無償で非代替性アセットが付与されてもよい。ユーザAが有償での購入以外の方法で非代替性アセット61を入手した場合には、その非代替性アセット61を入手した後に、又は、その非代替性アセット61を入手する処理と並行してステップS13の処理が行われ、購入以外の方法で入手した非代替性アセット61に関連付けられている非代替性トークンのユーザAへの移転処理が行われる。ユーザBが有償での購入以外の方法で非代替性アセット61を入手した場合には、その非代替性アセット61を入手した後に、又は、その非代替性アセット61を入手する処理と並行してステップS23の処理が行われ、購入以外の方法で入手した非代替性アセット61に関連付けられている非代替性トークンのユーザBへの移転処理が行われる。
以上のように、サーバ20によりホスティングされているウォレットW10aを使用するユーザAは、ユーザ装置10bに備えられているユーザウォレットW10bを使用するユーザBと同じように、非代替性アセットを取得し、当該非代替性アセットに関連付けられた非代替性トークンの移転を受けることができる。また、非代替性アセットの取得要求を送信する時点では、サーバ20によりホスティングされているウォレット(例えば、ウォレットW10c)を使用していないユーザCも、サーバ20において生成されたウォレットを用いることにより、非代替性トークンの移転を受けることができる。よって、ユーザA及びユーザCは、自らのユーザ装置10a、10cにウォレットを備えていなくても、サーバ20によりホスティングされているウォレット(例えば、ウォレットW10a)を利用することにより、非代替性アセットを取得し当該非代替性アセットに関連付けられた非代替性トークンを保有することができる。
次に、図18を参照して、ユーザBがユーザ装置10bを使用して代替性アセットを取得し、取得したアセットをNFT化する(ミントする)処理の流れを説明する。
まず、ステップS41において、ユーザ装置10bは、サーバ20に対して代替性アセット62を取得するためのアセット取得要求を送信する。例えば、図7に示されているアイテム購入画面において代替性アセット62に関連付けられている購入ボタンが選択されると、代替性アセット62を取得するためのアセット取得要求がユーザ装置10bからサーバ20に送信される。
アセット取得要求が受信されると、ステップS42において、サーバ20は、当該アセット取得要求において指定されている代替性アセット62をユーザBに付与する。サーバ20は、ユーザ管理データ25cにおいて、ユーザBのユーザIDと関連付けられている保有アセット情報に、代替性アセット62のアセットIDを追加することができる。
ユーザは、代替性アセット62を指定して有償で購入する以外にも様々な態様で代替性アセット62を取得することができる。例えば、ユーザは、サーバ20が提供する仮想空間内で利用可能なガチャ(又はルートボックス)により、ランダムに(又は擬似ランダムに)選択された代替性アセットを入手することができる。また、代替性アセット62を購入するための対価及び/又は代替性アセットを入手するためのガチャの利用のための対価は、法定通貨、ユーザに付与されたポイント、ユーティリティトークン、又は暗号資産により支払われてもよい。
ユーザBが購入又はそれ以外の方法で入手した代替性アセット62をNFT化することを望む場合には、ステップS43において、NFT化を要求するための処理が行われる。具体的には、ステップS43において、代替性アセット62をNFT化するために、非代替性トークンを発行するためのNFT発行トランザクションをブロックチェーンネットワーク30に送信する。ステップS44では、NFT発行トランザクションに基づいて、ブロックチェーンネットワーク30上でスマートコントラクト32が実行され、これにより、代替性アセット62に関連付けられた非代替性トークンがユーザBのユーザウォレットW10bのアドレスに発行される。また、代替性アセット62に関連付けられた非代替性トークンが発行されると、その非代替性トークンを発行するトランザクションを記述したNFT発行トランザクションデータがブロックチェーン31の最新のブロックに記録される。このようにして、代替性アセット62は、非代替性アセット64に変換される。
非代替性アセット64に関連付けられた非代替性トークンがユーザウォレットW10bのアドレスに対して発行された後、ユーザ装置10bからサーバ20に対して、代替性アセット62が非代替性アセット64に変換されたことを通知してもよい。この通知には、非代替性アセット64に関連付けられた非代替性トークンのトークンIDが含まれてもよい。サーバ20は、この通知に基づいて、アセット管理データ25bにおいて、代替性アセット62のアセットIDに関連付けられているトークン情報に、受信した通知に含まれているトークンIDを書き込むことができる。
スマートコントラクト32を実行するためには、ガス代の支払いが必要となる。ガス代は、仮想空間運営者によって負担されてもよいし、ユーザBによって負担されてもよい。ユーザBがガス代を負担する場合には、非代替性トークンが発行されたことに応じて、ガス代に対応するユーティリティトークンの数量がユーザBのユーティリティトークンの残高から差し引かれる。
以上のとおり、ユーザBは、取得した代替性アセット62を非代替性アセット64に変換することができる。ユーザは、仮想空間運営者から購入した代替性アセットだけでなく、購入以外の態様で入手した代替性アセットを、図18と同様のフローに従って非代替性アセットに変換することができる。非代替性アセットに変換される代替性アセットには、ガチャで入手した代替性アセット、他のユーザからギフティングされた代替性アセット、自ら作成した代替性アセットが含まれる。
ユーザBは、ステップS43でNFT発行トランザクションをブロックチェーンネットワーク30に送信した後も、代替性アセット62を仮想空間内で継続して使用することができる。例えば、ブロックチェーンネットワーク30でNFTが発行されるまでは、ユーザBは、代替性アセット62を仮想空間内で継続して使用し、NFTが発行された後は、代替性アセット62から変換された非代替性アセット64を仮想空間内で使用することができる。非代替性アセット64は、NFT化されている点以外は、代替性アセット62と同じであるから、ユーザBは、仮想空間内で、NFT化された非代替性アセット64をNFT化される前の代替性アセット62と同様の態様で使用することができる。例えば、図7に示されているように、代替性アセット62がアバターによって装着される衣服を表すオブジェクトであり、代替性アセット62のNFT化前にユーザBのアバターが代替性アセット62を装着していた場合には、ユーザBのアバターは、代替性アセット62がNFT化されて非代替性アセット64に変換された後も、代替性アセット62から変換された非代替性アセット64を装着することができる。このため、NFT化の前後で、ユーザBのアバターは、外観上の一貫性を保持することができる。ただし、ユーザBのアバターに装着されている非代替性アセット64の近傍には、NFTマーク等の非代替性アセット64が非代替性アセットであること(NFT化されていること)を示す表示要素が表示されてもよい。このNFT化されていることを示す表示要素が表示される点では、ユーザBのアバターの外観に違いが生じる。
続いて、図19を参照して、ユーザAがユーザ装置10aを使用して代替性アセットを取得し、取得したアセットをNFT化する(ミントする)処理の流れを説明する。
まず、ステップS51において、ユーザ装置10aは、サーバ20に対して代替性アセット62を取得するためのアセット取得要求を送信する。アセット取得要求が受信されると、ステップS52において、サーバ20は、当該アセット取得要求において指定されている代替性アセット62をユーザAに付与する。ユーザAが代替性アセット62を取得する処理は、ユーザBが代替性アセット62を取得する処理と同じであってもよい。
ユーザAが購入又はそれ以外の方法で入手した代替性アセット62をNFT化することを望む場合には、ステップS53において、ユーザAは、ユーザ装置10aを操作することにより、代替性アセット62のNFT化を要求するNFT化要求をユーザ装置10aからサーバ20に送信する。
NFT化要求がサーバ20において受け付けられると、ステップS54において、ユーザAのユーザ識別情報と対応付けられているウォレットW10aが特定される。ユーザAのユーザ識別情報と対応付けられているウォレットW10aは、例えば、ユーザ管理データ25cを参照することにより特定される。サーバ20は、代替性アセット62をNFT化するために、ウォレットW10aの公開鍵で特定されるアドレスに非代替性トークンを発行するためのNFT発行トランザクションを生成し、生成したNFT発行トランザクションをブロックチェーンネットワーク30に送信する。
次に、ステップS55では、NFT発行トランザクションに基づいて、ブロックチェーンネットワーク30上でスマートコントラクト32が実行され、これにより、代替性アセット62に関連付けられた非代替性トークンが、サーバ20によってホスティングされているユーザAのウォレットW10aのアドレスに発行される。また、代替性アセット62に関連付けられた非代替性トークンが発行されると、その非代替性トークンを発行するトランザクションを記述したNFT発行トランザクションデータがブロックチェーン31の最新のブロックに記録される。
以上のようにして、ユーザAが使用するユーザ装置10aからサーバ20に送信されたNFT化要求に基づいて、代替性アセット62は、非代替性アセット64に変換される。このように、一実施形態においては、ウォレットを備えないユーザ装置10aを使用するユーザAも、サーバ20でホスティングされているウォレットを使用することにより代替性アセットをNFT化することができる。
続いて、図20を参照して、ユーザCがユーザ装置10cを使用して代替性アセットを取得し、取得したアセットをNFT化する(ミントする)処理の流れを説明する。以下の説明では、図20の処理開始時点で、サーバ20は、ユーザCのユーザ識別情報に対応付けられたウォレットをホスティングしていないことを想定している。
まず、ステップS61において、ユーザ装置10cは、サーバ20に対して代替性アセット62を取得するためのアセット取得要求を送信する。アセット取得要求が受信されると、ステップS62において、サーバ20は、当該アセット取得要求において指定されている代替性アセット62をユーザCに付与する。ユーザCが代替性アセット62を取得する処理は、ユーザA及びユーザBが代替性アセット62を取得する処理と同じであってもよい。
ユーザCが購入又はそれ以外の方法で入手した代替性アセット62をNFT化することを望む場合には、ステップS63において、ユーザCは、ユーザ装置10cを操作することにより、代替性アセット62のNFT化を要求するNFT化要求をユーザ装置10cからサーバ20に送信する。
NFT化要求がサーバ20において受け付けられると、ステップS64において、ユーザCのユーザ識別情報と対応付けられているウォレットを特定するために、ユーザ管理データ25cが参照される。サーバ20は、ユーザCのユーザ識別情報と対応付けられているウォレットをホスティングしていないから、サーバ20は、ユーザC用にウォレットが設定されていないと判定し、ユーザCのユーザ識別情報と対応付けてウォレットを生成する。サーバ20は、ステップS64において、ウォレットの生成のために、ウォレット作成UIをユーザ装置10cに表示させてもよい。ウォレット作成UIは、ステップS61によりアセット取得要求が送信された後、後述するステップS65においてNFT発行トランザクションデータが作成される前の任意のタイミングでユーザ装置10cに表示されてもよい。ユーザC用のウォレットが生成されると、ユーザCのユーザ識別情報と対応付けてユーザC用に設定されたウォレットの鍵ペア(公開鍵と秘密鍵とのペア)がユーザ管理データ25cの一部として記憶される。
ユーザC用のウォレットが設定されると、次にステップS65において、サーバ20は、ユーザC用に設定されたウォレットの公開鍵で特定されるアドレスに非代替性トークンを発行するためのNFT発行トランザクションを生成し、生成したNFT発行トランザクションをブロックチェーンネットワーク30に送信する。
次に、ステップS66では、NFT発行トランザクションに基づいて、ブロックチェーンネットワーク30上でスマートコントラクト32が実行され、これにより、代替性アセット62に関連付けられた非代替性トークンが、サーバ20によってホスティングされているユーザCのウォレットのアドレスに発行される。また、代替性アセット62に関連付けられた非代替性トークンが発行されると、その非代替性トークンを発行するトランザクションを記述したNFT発行トランザクションデータがブロックチェーン31の最新のブロックに記録される。
このように、一実施形態においては、サーバ20がホスティングするウォレットを使用していないユーザCからNFT化要求がなされたことに応じて、ユーザC用のウォレットを設定し、このNFT化要求後に設定されたウォレットを使用することにより代替性アセットをNFT化することができる。
以上のとおり、サーバ20のサービスを利用する各ユーザは、サーバ20のサービスで利用される代替性アセットをNFT化して非代替性アセットに変換し、この非代替性アセットに関連付けられたNFTを保有することができる。代替性アセットは、複製可能なデジタルデータであり、複製の作成が容易であることから、実世界において資産的価値が認められにくい。上記の実施形態によれば、ユーザは、サーバ20のサービスで利用される代替性アセットをNFT化することができ、発行されたNFTの保有をユーザに認めることにより(つまり、発行されたNFTの保有者アドレス情報として当該ユーザが使用するウォレットのアドレスを記録することにより)、ユーザは、唯一無二のNFTの保有者となることができる。NFTは、マーケットプレイスにおいて暗号資産を用いて売買可能であり、暗号資産は、法定通貨と交換可能であるから、ユーザに代替性アセットをNFT化することで発行されるNFTの保有者となることを認めることにより、当該代替性アセットに由来する実世界での資産的価値を当該代替性アセットのNFT化を行ったユーザに帰属させることができる。
サーバ20が提供するサービスにおいて、希少性が高い代替性アセットをNFT化することで発行されるNFTについては、多くのユーザが入手を望むと考えられる。このため、サーバ20が提供するサービスにおいて希少性が高い代替性アセットをNFT化することで発行されたNFTは、需給関係により、高い資産的価値を有すると考えられる。サーバ20が提供するサービスにおいて希少性が高い代替性アセットの例は、仮想空間運営者からユーザに提供された数が少ない代替性アセット、仮想空間運営者からユーザへの提供数量に上限が定められている代替性アセット、仮想空間運営者から過去にユーザに提供され現在は提供されていない代替性アセット、期間限定でユーザに提供された代替性アセット、ユーザが作成した代替性アセット、及び人気ユーザに保有されている代替性アセットである。人気ユーザには、所定数以上のフォロワーによってフォローされているユーザ、及び、所定以上のランクを獲得しているユーザが含まれる。
サーバ20は、希少性が高い代替性アセットを保有するユーザに対して、当該代替性アセットをNFT化することをレコメンドする通知を送信する機能を備えてもよい。例えば、サーバ20は、代替性アセットごとにユーザへ付与された付与数を管理し、この付与数が閾値よりも小さい代替性アセットをレコメンドアセットとして特定し、このレコメンドアセットを保有するユーザのユーザ装置にNFTレコメンド通知を送付することができる。NFTレコメンド通知には、レコメンドアセットを識別するアセットIDが含まれていてもよい。NFTレコメンド通知を受信したユーザ装置は、当該NFTレコメンド通知に含まれているレコメンドアセットのアセットIDに基づいて、ユーザが保有する代替性アセットの中からレコメンドアセットを特定することができる。
サーバ20は、ユーザのユーザ装置にNFTレコメンド通知を送信する際に、ユーザ管理データ25cを参照して、当該ユーザがウォレットを利用しているか否かを判定することができる。NFTレコメンド通知の通知先のユーザがサーバ20がホスティングするウォレットを利用していない場合、サーバ20は、当該ユーザのユーザ装置に上述したウォレット生成UIを表示させてもよい。これにより、NFTレコメンド通知を受け取ったユーザがNFT化要求をサーバ20に送信する前にウォレットを当該ユーザのために生成することができるので、代替性アセットのNFT化要求を行った後に、スムースに(つまり、ウォレットの生成のための処理によりインタラプトされることなく)
当該代替性アセットをNFT化することができる。
ユーザ装置(例えば、ユーザ装置10a、10b、10c)は、当該ユーザ装置を使用するユーザが保有する代替性アセットを一覧形式で表すアセットリストを表示することができる。ユーザ装置は、アセットリストにおいて、レコメンドアセットを、それ以外の代替性アセットと区別して表示することができる。ユーザ装置に表示されるアセットリストの例を図21に示す。図21の例では、アセットA1~A5の5つの代替性アセットを含むアセットリストが表示されている。アセットA1がレコメンドアセットである場合、図示されているように、ユーザ装置は、アセットA1を示すアイコンがそれ以外のアイコンよりも強調して表示する。
サーバ20は、代替性アセットの各々について、所定のアルゴリズムに基づいて市場価値を算出し、算出された各代替性アセットの市場価値を、各代替性アセットのアセットIDと対応付けて管理することができる。代替性アセットは、サーバ20が提供する仮想空間内で使用されることが想定されているので、市場価値は、仮想空間内での各代替性アセットの需給に影響を与える要素に基づいて算出される。代替性アセットの市場価値に影響を与える要素には、仮想空間運営者からユーザに提供された当該代替性アセットの数(供給数)、仮想空間運営者からユーザへの提供可能な当該代替性アセットの数の上限(供給上限数)、仮想空間運営者から当該代替性アセットが現在提供されているか否か(入手可能性)、及び当該代替性アセットがユーザに提供されてからの経過時間のうちの一又は複数が含まれ得る。サーバ20は、仮想空間のユーザごとに、各ユーザが入手を望むデジタルアセット(例えば、アイテム)を管理するウィッシュリストを管理してもよい。ウィッシュリストは、ストレージ25又はそれ以外のサーバ20がアクセス可能なストレージに格納され得る。ウィッシュリストには、各ユーザのユーザIDと対応付けて、各ユーザが入手を望むデジタルアセットのアセットIDを格納することができる。ウィッシュリストは、ユーザからの指示に応じて随時更新され得る。サーバ20は、代替性アセットごとにウィッシュリストへ登録しているユーザ数を集計し、そのユーザ数が多いほど市場価値が高くなるように、各代替性アセットの市場価値を算出することができる。代替性アセットの市場価値に影響を与える要素は、上記の要素には限定されない。
ユーザ装置は、アセットリストに含まれる代替性アセットを、市場価値の高い順に並べて表示することができる。例えば、図21に示されているアセットリストにおいては、市場価値が最も高いアセットA1が先頭(トップ)に表示され、市場価値が低い代替性アセットほど下方に表示されてもよい。ユーザ装置は、アセットリストにおいて、市場価値が所定の基準値よりも高い代替性アセットを、それ以外の代替性アセットとは区別して表示してもよい。
以上のように、ユーザ装置においては、希少性が高い代替性アセットや市場価値が高い代替性アセットがユーザに選択されやすい位置に表示することができる。これにより、ユーザは、NFT化した場合に発行されるNFTの価値が高くなると予想される代替性アセットの発見や選択を容易に行うことができる。
ユーザは、アセットリストからNFT化する代替性アセットを選択して、その選択した代替性アセットをNFT化することができる。例えば、図21に示されているアセットリストにおいてユーザの操作によりアセットA1が選択されると、ユーザ装置は、アセットA1のNFT化を行うためのNFT発行画面を表示する。ユーザ装置に表示されるNFT発行画面の例が図22に示されている。図示されているように、NFT発行画面には、アセットA1に関する情報が表示されるウィンドウ71と、NFT化を実行するためのNFT化ボタン72と、が含まれている。ウィンドウ71には、アイテムリストにおいて選択されたアセットA1に関する情報が表示されている。図示の例では、ウィンドウ71に、仮想空間運営者からユーザへ提供可能なアセットA1の上限数(500個)と、これまでに実際にユーザに提供された総提供数(324個)と、アセットA1をNFT化することにより発行可能なNFTの上限を示すNFT発行上限(10個)と、これまでに実際にアセットA1をNFT化することで発行されたNFTの数を表すNFT発行数(7個)と、が表示されている。NFT発行画面には、上記以外の情報が含まれてもよい。ユーザは、ウィンドウ71に表示されるアセットA1に関する情報に基づいて、アセットA1の希少性やアセットA1をNFT化することで発行されるNFTの資産的価値を評価することができる。
ユーザは、アセットA1のNFT化を望む場合には、NFT化ボタン72を選択する。ユーザ装置においてNFT化ボタン72が選択されると、当該ユーザ装置がウォレットを備えているか否かに応じた処理フローでアセットA1がNFT化される。当該ユーザ装置がウォレットを備えている場合には、ブロックチェーンネットワーク30に対して、アセットA1をNFT化するためにNFT発行トランザクションを送信する。ブロックチェーンネットワーク30においては、NFT発行トランザクションに基づいて、ブロックチェーンネットワーク30上でスマートコントラクト32が実行され、これにより、アセットA1に関連付けられた非代替性トークンが当該ユーザ装置のウォレットのアドレスに発行される(図18のステップS44の処理を参照)。当該ユーザ装置がウォレットを備えていない場合には、当該ユーザ装置からサーバ20に対してアセットA1のNFT化を要求するNFT化要求が送信される。サーバ20が当該ユーザ装置のユーザのウォレットをホスティングしている場合には、図19のステップS54と同様に、サーバ20においてNFT発行トランザクションが生成され、生成されたNFT発行トランザクションがブロックチェーンネットワーク30に対して送信される。他方、サーバ20が当該ユーザ装置のユーザのウォレットをホスティングしていない場合には、図20のステップS64と同様の処理によりサーバ20において当該ユーザのウォレットを設定し、ステップS65と同様の処理によりサーバ20においてNFT発行トランザクションが生成され、生成されたNFT発行トランザクションがブロックチェーンネットワーク30に対して送信される。ブロックチェーンネットワーク30においては、NFT発行トランザクションに基づいて、ブロックチェーンネットワーク30上でスマートコントラクト32が実行され、これにより、アセットA1に関連付けられた非代替性トークンがサーバ20でホスティングされているウォレットのアドレスに発行される。
サーバ20は、代替性アセットの各々について、発行可能なNFTの数の上限を定めることができる。代替性アセットの各々について定められたNFTの発行数の上限は、例えば、スマートコントラクト32に記述される。サーバ20は、同じ種類の代替性アセットの供給数量の上限を定めることにより、当該代替性アセットをNFT化することで発行されるNFTの数の上限を間接的に定めることができる。つまり、ある代替性アセットのユーザへの供給数の上限が定められていれば、当該代替性アセットをNFT化して発行されるNFTの数は、当該代替性アセットの供給数の上限を超えることはない。
続いて、動画送信サービスにおける共演機能について説明する。動画送信サービスにおける共演機能は、2人以上のユーザを動画内で各々のアバターを介して共演させる機能を意味する。以下の説明では、図23に示されているように、ユーザAのアバター70aが含まれている動画をユーザBがユーザ装置10bで視聴しており、その視聴中にユーザBがユーザAとの共演を申請することを想定する。
図23に示されているように、ユーザBのユーザ装置10bにおいて、ユーザAのアバター70aを含む動画が再生されている。アバター70aは、非代替性アセット61を装着している。再生されている動画において、アバター70aに装着されている非代替性アセット61の近傍に又は非代替性アセット61に重畳させてNFTマーク61a(図23では、図示省略。)が表示されてもよい。ユーザ装置10bにおいては、再生中の動画に、視聴者から投稿されたコメント72と、共演申請ボタン73と、がオーバーレイ表示されている。ユーザ装置10bにおいて共演申請ボタン73が選択されると、ユーザ装置10bからサーバ20に対して共演申請が送信される。
共演申請を受信すると、サーバ20は、ユーザBとユーザAとの共演を許可するか否かを判定する。ユーザBとユーザAとの共演が許可されると、図24に示されているように、視聴中の動画にユーザAのアバター70aに加えてユーザBのアバター70bが登場する。このアバター70aとアバター70bとを含む動画(共演動画)の動画データがサーバ20から送信される。このようにして、ユーザAとユーザBとは、それぞれのアバター70a、70bを介して動画において共演することができる。
ユーザBからの共演要求がなされた場合、サーバ20は、ユーザBが特定の非代替性アセットを保有していることを条件にユーザAとの共演を許可し、ユーザBが特定の非代替性アセットを一つも保有していない場合には共演を拒否してもよい。これにより、特定の非代替性アセットを保有することを共演が許可されることの条件とすることができる。本明細書では、共演申請ユーザ(上記の例では、ユーザB)からの共演要求が許可されるために、共演申請ユーザが保有している必要がある特定の非代替性アセットを「共演用非代替性アセット」と呼ぶことがある。一実施形態において、ユーザBが保有している必要がある共演用非代替性アセットは、ネイティブ非代替性アセット(例えば、非代替性アセット61)である。別の実施形態において、共演用非代替性アセットは、変換非代替性アセット(例えば、非代替性アセット64)である。共演用非代替性アセットは、ネイティブ非代替性アセット及び変換非代替性アセットの少なくとも一方であってもよい。ユーザBがネイティブ非代替性アセット及び変換非代替性アセットの両方を保有していることが、ユーザBの共演が許可されるための条件とされてもよい。
一実施形態において、共演用非代替性アセットは、ユーザAによってNFT化された変換非代替性アセットであってもよい。これにより、ユーザAとの共演が許可されるためには、共演申請ユーザは、ユーザAによってNFT化された変換非代替性アセットを保有していることが求められる。ユーザAとの共演が許可されるためにユーザAによってNFT化された変換非代替性アセットを保有していることを条件とすることにより、ユーザAがNFT化した変換非代替性アセットに関連付けられているNFTの効用を増加させ、当該NFTの価値を向上させることができる。
別の実施形態において、ユーザAとの共演に必要な共演用非代替性アセットは、ユーザBによってNFT化された変換非代替性アセットであってもよいし、ユーザA及びユーザB以外のユーザによってNFT化された変換非代替性アセットであってもよい。
一実施形態において、共演用非代替性アセットは、所定の条件を満たす非代替性アセットであってもよい。所定の条件を満たしており共演用非代替性アセットとして使用され得る非代替性アセットは、特定の期間中に発行されたネイティブ非代替性アセットであってもよいし、特定の期間中にNFT化された変換非代替性アセットであってもよい。所定の条件を満たしており共演用非代替性アセットとして使用され得る非代替性アセットは、特定の種類の非代替性アセットであってもよい。この特定の種類の非代替性アセットは、共演のために発行された共演チケット又は共演のためにNFT化された共演チケットであってもよい。
ユーザAとの共演のための共演用非代替性アセットは、ユーザAによりNFT化された非代替性アセットであってもよい。つまり、ユーザBがユーザAとの共演を許可されるためには、ユーザBが、ユーザAによってNFT化された非代替性アセットを保有することが条件とされてもよい。ユーザAは、代替性アセットをNFT化することで、自らと共演するための共演用非代替性アセットを生成することができる。ユーザAは、共演を受け付けるキャパシティ、自らのブランディング戦略、及びこれら以外の要素に応じて、共演用非代替性アセットの発行量を調整することができる。ユーザAによってNFT化される共演用非代替性アセットには、共演用非代替性アセットとして用いることができる有効期限が設定されていてもよい。
続いて、図25を参照して、サーバ20から送信される動画データのNFT化について説明する。サーバ20から送信される動画データは、所定期間(例えば、配信終了から1週間)、サーバ20のストレージ25にアーカイブされてもよい。図25は、ユーザAの配信動画をアーカイブした動画データ90を示している。ユーザAは、アーカイブされている動画データ90のうち一部の区間を指定し、その一部の区間をNFT化することができる。例えば、ユーザAは、動画データ90から、その一部である部分動画90aを選択し、当該部分動画90aをNFT化するNFT化要求をサーバ20に送信することができる。部分動画90aは、動画データ90とは別の部分動画ファイルとしてストレージ25に格納されてもよい。ユーザAは、アーカイブされている動画データ90の全体をNFT化してもよい。
動画データ90は、ユーザAが仮想空間内に仮想的なライブ会場を設定し、その仮想的なライブ会場で行ったライブイベントを撮影した動画をアーカイブしたデータであってもよい。ユーザAは、人気があるライブイベントを撮影した動画データ90又はその一部である部分動画90aをNFT化し、そのNFT化された動画データ90又は部分動画90aに関連付けられたNFTを販売することにより収益を得ることができる。
動画データ90は、ユーザAのアバターが仮想空間内を移動する間、ユーザAのアバターの視点から撮影された動画をアーカイブしたデータであってもよい。ユーザAのアバターの視点から撮影された動画には、ユーザAの個性が反映されるので、ユーザAは、自らの個性が反映された動画に対応する動画データ90又はその一部である部分動画90aをNFT化することができる。ユーザAは、NFT化された動画データ90又は部分動画90aに関連付けられたNFTを販売することにより収益を得ることができる。
動画データ90は、ユーザAがプレイしたゲームのプレイ動画をアーカイブしたデータであってもよい。
仮想的なライブ会場には、複数の仮想カメラが設定されてもよい。ライブ会場に設置される仮想カメラには、ライブ会場のステージ最前列に配置されておりステージの方向を向いている第1仮想カメラ、ライブ会場のステージ上に設置され観客席の方向を向いている第2仮想カメラ、及びライブに出演又は参加しているアバターのうちの一つを追跡する第3仮想カメラを含むことができる。動画データ90は、このような複数の仮想カメラで同じ時間帯に撮影された複数の動画データのセットであってもよい。例えば、動画データ90は、第1仮想カメラにより撮影された動画を表す第1動画データと、第2仮想カメラにより撮影された動画を表す第2動画データと、第3仮想カメラにより撮影された動画を表す第3動画データと、のセットであってもよい。ユーザAは、第1動画データ、第2動画データ、及び第3動画データの中から部分動画90aを選択し、この選択した部分動画90aをNFT化してもよい。これにより、多様な動画データをNFT化することができる。仮想的なライブ会場に設置される仮想カメラの台数には制限はなく、4台以上の仮想カメラがライブ会場で行われるイベントを撮影するために設置されてもよい。複数の仮想カメラが撮影するイベントは、仮想的なライブ会場でのライブイベントには限られない。仮想空間に設置されるクローズド空間が複数の仮想カメラによって撮影され、当該複数の仮想カメラの各々が撮影した動画が複数の動画データとしてアーカイブされ得る。
ユーザAは、第1動画データ、第2動画データ、及び第3動画データの中から複数の部分動画90aを選択し、その選択した複数の部分動画を繋ぎ合わせて編集部分動画を作成し、この編集部分動画をNFT化してもよい。映像の編集を行うことができるユーザは、編集部分動画をNFT化し、そのNFT化された編集部分動画に関連付けられたNFTを販売することにより収益を得ることができる。
動画データ90が表す動画は、仮想空間のビューを含む。部分動画90aは、ユーザAのアバター70aが含まれている仮想空間のビューを含んでもよい。仮想空間のビューを含む動画データ90には、当該ビュー内にユーザAのアバター70aが存在する区間と、当該ビュー内にアバター70aが存在しない区間と、が含まれていてもよい。ユーザAは、動画データ90のうち、仮想空間のビュー内にアバター70aが存在する区間を部分動画90aとして選択することができる。動画データ90に含まれる仮想空間のビュー内にアバター70aが存在する領域は、動画データ90又は動画データ90に対応付けて記憶される関連データに基づいて、所定のアルゴリズムに基づいて抽出されてもよい。例えば、動画データ90とともに、タイムラインごとに仮想カメラの設定情報及びアバター70aの存在位置を表す座標情報が記憶されていてもよい。この場合、各タイムラインにおける仮想カメラの設定情報とアバター70aの位置を表す座標情報とに基づいて各タイムラインにおける仮想空間のビューにアバター70aが存在するか否かが判定される。ユーザAのユーザ装置10aは、ユーザAによる部分動画90aの選択を支援するために、動画データ90のうち仮想空間のビュー内にアバター70aが存在する領域を他の領域から区別して表示してもよい。
サーバ20は、代替性アセットについてNFT化要求を受信した場合と同様に、NFT化要求において指定された部分動画90aをNFT化する処理を行うことができる。ユーザAがNFT化要求を行うためには、ユーザウォレットを取得し、そのユーザウォレットをブロックチェーンネットワーク30に接続すること(ブロックチェーンネットワーク30上のアドレスを取得すること)が必要である。
サーバ20は、NFT化された部分動画90aについては、アーカイブ期間が経過してもストレージから削除しない。動画データ90のうちNFT化された部分動画90a以外のデータは、アーカイブ期間の経過後に削除される。また、サーバ20は、バックアップのために部分動画90aをファイルシステム40に保存する。このようにして、NFT化された部分動画90aについては、アーカイブ期間が経過してもユーザの要求に応じて視聴可能なようにサーバ20及び/又はファイルシステム40により保持され続ける。
ユーザAとユーザBとが共演した共演動画も所定期間(例えば、配信終了から1週間)、サーバ20のストレージ25にアーカイブされてもよい。図26には、共演動画に対応する動画データ95が示されている。ユーザAは、動画データ90における部分動画90aの選択と同様に、アーカイブされている動画データ95のうち一部の区間を指定し、その一部の区間をNFT化することができる。例えば、ユーザAは、動画データ95から、その一部である部分動画95aを選択し、当該部分動画95aをNFT化するNFT化要求をサーバ20に送信することができる。
共演動画には、ユーザAのアバター70aだけでなくユーザBのアバター70bも含まれているので、ユーザBも動画データ95のうち一部の区間(例えば、部分動画95bに対応する区間)を指定し、その一部の区間をNFT化することができる。
スマートコントラクト32において、共演動画の動画データ95から生成されたNFTが取引された場合に、その収益の分配ルールを定めておいてもよい。例えば、スマートコントラクト32には、動画データ95から生成されたNFTが販売された場合に、その対価を所定の割合でユーザAとユーザBとに分配するルールが定められてもよい。ユーザAの配信動画にユーザBが参加することで生成された共演動画においては、ユーザAがホストであり、ユーザBがゲストとなる。共演動画の動画データ95から生成されたNFTが取引された場合の対価は、ホストとなるユーザに対して、ゲストとなるユーザよりも多く支払われてもよい。
共演動画の動画データに含まれる部分動画のNFT化は、共演動画において共演していた全てのユーザの許諾が得られた場合に実行可能とされてもよい。
続いて、上記の実施態様により実現される作用効果の一部を説明する。
上記の実施態様においては、ウォレットを備えないユーザ装置10aを使用しているユーザAも、サーバ20においてユーザAのユーザ識別情報と対応付けて生成されたウォレットW10aを利用することで、サーバ20が提供する仮想空間内で非代替性アセットを利用することができる。このため、サーバ20が提供する非代替性アセットが使用される仮想空間において、ウォレットを備えていないユーザ装置10aを利用するユーザAと、ユーザウォレットW10bを備えるユーザ装置10bを利用するユーザBと、を共存させることができる。言い換えると、ウォレットを備えていないユーザ装置10aを利用するユーザAも、ユーザウォレットW10bを備えるユーザ装置10bを利用するユーザBも、自らのアバターを介してサーバ20が提供する仮想空間に参加することができる。よって、上記の実施形態によれば、サーバ20が提供する仮想空間(又はそのプラットフォーム)において、ユーザ装置でウォレットを利用していないユーザ(例えば、ユーザA)を、ユーザ装置でウォレットを利用しているユーザと共存させることができる。
上記の実施形態において、サーバ20が提供する仮想空間においては、サーバ20によりホスティングされているウォレットを利用するユーザA及びユーザ装置10bに備えられているユーザウォレットW10bを利用するユーザBに加えて、ウォレットを利用していないユーザCも共存することができる。例えば、ユーザCは、自らのアバターを用いて仮想空間に参加し、この仮想空間においてウォレットを利用しているユーザA及びユーザBと交流することができる。また、ユーザCがウォレットを利用した処理を行う場合には、サーバ20においてユーザCのユーザ識別情報と対応付けてウォレットが生成されるので、ユーザCも非代替性アセットやNFTを利用することができる。このように、ユーザCは、ウォレットを利用せずにサーバ20が提供するサービスを利用し、必要が生じた場合にウォレットの利用を開始することができる。
ユーザAは、自らのユーザ装置10aにウォレットを備えていなくても、サーバ20において自らのユーザ識別情報と対応付けてホスティングされているウォレットを利用しブロックチェーンネットワーク30と接続することにより、非代替性アセットをマーケットプレイスに出品して収益を上げることもできる。
上記の実施形態によれば、ユーザウォレットW10bを備えるユーザ装置10bを利用するユーザBだけでなく、ウォレットを備えていないユーザ装置10a、10cをそれぞれ利用するユーザA及びユーザCにもサーバ20がホスティングするウォレットを利用して、ブロックチェーンネットワーク30を利用した機能を提供することができる。これにより、上記の実施形態により、ブロックチェーンネットワークを利用するユーザ層の拡大に貢献することができる。
上記の実施形態において、代替性アセットを保有するユーザは、当該代替性アセットをNFT化することができる。ユーザが仮想空間で代替性アセットを使用することにより、当該代替性アセットが当該ユーザを象徴するアイテムとなることがある。現実世界では、著名人が同じ服を繰り返し着用することにより、本来は代替性がある既製服が、その著名人を象徴するアイテムとなることがある。仮想空間においても同様に、代替性アセットがあるユーザを象徴するアイテムとなり得る。この場合、当該ユーザは、その代替性アセットを唯一無二のものとすることを望むであろう。上記の実施形態によれば、サーバ20から取得した代替性アセットを、ユーザからのトークン化要求に応じて、非代替性トークンとしてトークン化するので、代替性アセットをNFT化したいというユーザの要望に応えることができる。NFTは、実世界において取り引きされ、資産的価値を有するので、サーバ20から提供される代替性アセットやユーザが作成した代替性アセットをNFT化する機会を与えることにより、ユーザにサーバ20が提供するサービスの利用を通じて実世界での資産を形成する機会を与えることができる。
上記の実施形態において、第1ユーザの第1アバターと第2ユーザの第2アバターとを含む仮想空間を含む動画から、第1ユーザと第2ユーザとが互いと異なる部分動画を非代替性トークンとしてトークン化することができる。これにより、複数のユーザがアバターを介して参加している動画から各ユーザの個性に応じて部分動画が抽出され、その個性が表れた部分動画を非代替性トークンとしてトークン化することができる。
図1に示されている動画伝送システム1は、本発明を適用可能なシステムの例であり、本発明を適用可能なシステムは、図1に示されたものには限定されない。本発明を適用可能な動画伝送システム1は、図示されている構成要素の一部を備えなくてもよい。例えば、非代替性トークンがフルオンチェーンで実装される場合には、動画伝送システム1は、ファイルシステム40を備えなくともよい。動画伝送システム1は、図示されていない構成要素を備えてもよい。図1には説明の簡略化のためにユーザ装置10が3台だけ記載されているが、動画伝送システム1は、4台以上の任意の数のユーザ装置10を含むことができる。動画伝送システム1は、ユーザ装置10又はサーバ20によって実行されるべき処理を分散して処理するためのクラウド環境を備えていてもよい。
動画伝送システム1において、データの格納場所には特段の制限はない。例えば、ストレージ25に記憶され得る各種データは、ストレージ25とは物理的に別体のストレージやデータベースサーバに格納されてもよい。本明細書において、ストレージ25に記憶されると説明されているデータは、単一のストレージに記憶されてもよいし、複数のストレージに分散して記憶されてもよい。本明細書及び特許請求の範囲において、単に「ストレージ」という場合には、文脈上許される限り、単一のストレージと複数のストレージの集合のいずれを指し示すこともある。
本発明の実施形態は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で様々な変更が可能である。例えば、プロセッサ21で実行される機能の一部又は全部は、発明の趣旨を逸脱しない限り、本明細書で明記されていないプロセッサにより実現されてもよい。図5においては、プロセッサ21が単一の構成要素として図示されているが、プロセッサ21は複数の物理的に別体のプロセッサの集合であってもよい。本明細書において、プロセッサ21によって実行されるとして説明されるプログラム又は当該プログラムに含まれる命令は、単一のプロセッサで実行されてもよいし、複数のプロセッサにより分散して実行されてもよい。また、プロセッサ21によって実行されるプログラム又は当該プログラムに含まれる命令は、一又は複数の仮想プロセッサにより実行されてもよい。
プロセッサ21で実行されるプログラムは、図示されているストレージ以外にも様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)に格納され得る。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例には、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、Compact Disc Read Only Memory(CD-ROM)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、Programmable ROM(PROM)、Erasable PROM(EPROM)、フラッシュROM、Random Access Memory(RAM))を含む。
上述したように、本発明は、動画伝送システム1だけでなく他のシステムにも適用可能である。例えば、本発明は、ユーザ装置とサーバとが協働してゲームを提供するゲームシステムに適用することが可能である。本発明が適用されるゲームシステムは、図1に示されているのと同様のアーキテクチャを採用することができる。より具体的には、本発明が適用されるゲームシステムは、図1に示されている動画伝送システムを次のように変更することで実現される。すなわち、ユーザ装置10a~10cは、ゲームアプリケーションプログラムに含まれる命令セットを実行することによりゲームに関する様々な機能を実現するように構成される。サーバ20は、ユーザ装置10a~10cに対してゲームに関する様々な機能を提供するように構成される。ユーザ装置10a~10cとサーバ20とは、互いに協働してゲームの様々な機能を実現することができる。
以下では、本発明がゲームシステムに適用される実施形態について説明する。以下の説明において、「ゲームシステム」という用語は、本発明が適用可能なゲームシステムを意味することができ、「ゲーム」という用語は、本発明が適用されたゲームシステムにより提供されるゲームを意味することができる。ゲームシステムによって提供されるゲームでは、様々なゲーム媒体が使用され得る。ゲーム媒体は、ゲームにおいて使用される電子データである。ゲーム媒体は、例えば、キャラクター、カード、アイテム、ポイント、サービス内通貨(又はゲーム内通貨)、チケット、キャラクター、アバター、パラメータ、及びこれら以外のゲームで使用される電子データを含み得る。ゲーム媒体は、ユーザによってゲーム内で取得、所有、使用、管理、交換、合成、強化、売却、廃棄、又は贈与等され得る。ゲーム媒体は、前記以外の方法で利用されてもよい。
ゲームにおいては、様々なデジタルアセットが使用される。ゲーム媒体は、ゲームにおいて使用されるデジタルアセットの例である。ゲーム空間を構成する様々なオブジェクトも、デジタルアセットの一種とすることができる。ゲーム空間は、例えば、ユーザのキャラクターが移動できる3次元の仮想空間であってもよい。このゲームにおいて使用されるデジタルアセットは、上述した動画伝送サービスの仮想空間において使用されるデジタルアセットと同様に、代替性アセット及び非代替性アセットを含む複数の区分に分類され得る。
本明細書に含まれている動画伝送システム1で利用される代替性アセット及び非代替性アセットに関する説明は、本発明が適用されるゲームシステムで利用される代替性アセット及び非代替性アセットについても当てはまる。例えば、本発明が適用されるゲームシステムで提供されるゲームにおいて、ユーザは、非代替性アセットであるアイテムを取得し、取得した非代替性アセットを当該ゲームにおいて使用することができてもよい。また、ユーザは、代替性アセットであるアイテムを取得し、その代替性アセットであるアイテムをNFT化してもよい。
ゲームがユーザによってクリアされることを想定したクエストやミッションを含む場合、所定の非代替性アセットの入手が、当該クエストやミッションをクリアするための条件とされてもよい。または、所定の非代替性アセットを所持していることが、ゲームに含まれるクエストやミッションへ参加するための参加条件とされてもよい。
本発明がゲームを提供するゲームシステムに適用される場合には、そのゲームのゲーム空間(仮想空間)を構成する土地の区画、ゲーム空間内の建造物、及び前記以外のゲーム空間内の構成要素がNFT化され、そのNFT化されたゲーム空間の構成要素がユーザに付与又は販売されてもよい。
動画伝送システム1に関して説明したのと同様に、本発明が適用されるゲームシステムが提供するゲームにおいては、ユーザ装置に備えられたウォレットを利用するユーザと、サーバによってホスティングされているウォレットを利用するユーザと、ウォレットを利用しないユーザとが共存することができる。例えば、ウォレットを備えないユーザ装置10aを使用しているユーザAは、サーバ20においてユーザAのユーザ識別情報と対応付けて生成されたウォレットW10aを利用することで、サーバ20が提供するゲームにおいて非代替性アセットを利用することができる。このため、サーバ20が提供する非代替性アセットが使用されるゲームにおいて、ウォレットを備えていないユーザ装置10aを利用するユーザAと、ユーザウォレットW10bを備えるユーザ装置10bを利用するユーザBと、を共存させることができる。また、本発明が適用されるゲームシステムが提供するゲームにおいては、ウォレットを利用していないユーザCも共存することができる。例えば、ユーザCは、代替性アセットであるアイテムやキャラクターを利用して、ユーザAやユーザCとともにゲームをプレイすることができる。ユーザCがウォレットを利用した処理を行う場合には、サーバ20においてユーザCのユーザ識別情報と対応付けてウォレットが生成されるので、ユーザCも非代替性アセットやNFTを利用することができる。このように、ユーザCは、ウォレットを利用せずにサーバ20が提供するサービスを利用し、必要が生じた場合にウォレットの利用を開始することができる。
本発明が適用されるゲームシステムには、様々な種類のゲームを提供することができる。本発明が適用されるゲームシステムにより提供されるゲームには、ロールプレイイングゲーム、シューティングゲーム、カードゲームを用いたバトルゲーム、及びこれらの以外の各種ゲームを含み得る。
本発明が適用されるゲームシステムが提供するゲームは、上記のように、当該ゲームのアプリケーションプログラムを格納したユーザ装置を介してユーザに提供されてもよい。つまり、本発明が適用されるゲームシステムが提供するゲームは、ネイティブアプリによりプレイ可能なネイティブゲームであってもよい。アプリケーションプログラムは、デジタルコンテンツの配信プラットフォームからユーザ装置にダウンロードされてもよい。本発明が適用されるゲームシステムが提供するゲームは、当該ゲームを提供するための専用アプリケーションではなくウェブブラウザにより実行されるウェブゲームであってもよい。
本発明が適用されるゲームシステムは、Move to Earnのメカニズムを利用したゲーム(以下、「Move to Earnゲーム」という。)であってもよい。Move to Earnゲームでは、ユーザは、ユーザ装置を持って又は身につけて移動した距離に応じて、ゲーム内で使用できるトークン、ポイント、経験値、及び/又はこれら以外の報酬を獲得することができる。Move to Earnゲームでは、ユーザが移動した距離に応じて、当該ユーザに対してNFT化されたアイテムが付与されてもよい。
本発明が適用されるゲームシステムは、動画伝送システム1と組み合わされてもよい。本発明が適用されるゲームシステムは、動画伝送システム1に組み込まれてもよい。例えば、ユーザは、本発明が適用されるゲームシステムにおいて、ユーザ装置を用いてゲームをプレイし、そのプレイしているゲームの画面を含む動画を、サーバを介して配信してもよい。本発明が適用されるゲームシステムのユーザは、いわゆるゲーム実況を行うことができる。ユーザから配信されるゲームの画面を含む動画は、他のユーザによって視聴され得る。
本発明は、動画伝送システム1やゲームシステムだけでなく、ブロックチェーン技術(例えば、上記のブロックチェーンネットワーク30)を利用した各種分散型アプリケーションサービスに適用可能である。例えば、本発明は、ブロックチェーン技術を利用したDeFi(分散型金融)サービスや保険サービスにも適用可能である。
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
本明細書において説明された処理手順、特にフロー図又はシーケンス図を用いて説明された処理手順においては、その処理手順を構成する工程(ステップ)の一部を省略すること、その処理手順を構成する工程として明示されていない工程を追加すること、及び/又は当該工程の順序を入れ替えることが可能であり、このような省略、追加、順序の変更がなされた処理手順も本発明の趣旨を逸脱しない限り本発明の範囲に含まれる。
本明細書及び特許請求の範囲における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
本明細書では、以下の各項の技術も開示される。
[付記1]
第1ユーザを含む複数のユーザの各々に対応付けられたアバターが参加可能な仮想空間のビューを含む動画データを送信する動画データ伝送方法であって、
前記仮想空間において前記第1ユーザを識別する第1ユーザ識別情報に対応付けて第1ウォレットを生成する工程と、
前記第1ユーザからの第1取得要求に応じて、前記仮想空間において使用されるデジタルアセットであって非代替性トークンとしてトークン化されている一又は複数の非代替性アセットのうち第1非代替性アセットを前記第1ユーザに付与し、前記第1ウォレットのアドレスに記第1非代替性アセットに関連付けられている第1非代替性トークンを移転する工程と、
を備える動画データ伝送方法。
[付記2]
前記第1ユーザからの第2取得要求に応じて、前記仮想空間において使用されるデジタルアセットであって非代替性トークンとしてトークン化されていない一又は複数の代替性アセットのうち第1代替性アセットを前記第1ユーザに付与する工程と、
前記第1ユーザからのトークン化要求に応じて、前記第1代替性アセットを非代替性トークンとしてトークン化するためのトークン化処理を行う工程と、
をさらに備える[付記1]に記載の動画データ伝送方法。
[付記3]
前記第1ウォレットは、前記第1ユーザに前記第1ウォレットが必要となったことに応じて生成される、
[付記1]又は[付記2]に記載の動画データ伝送方法。
[付記4]
前記第1ウォレットは、前記第1取得要求を受信したこと、前記トークン化要求を受信したこと、又は、前記第1ユーザ識別情報が作成されたことに応じて生成される、
[付記2]に記載の動画データ伝送方法。
[付記5]
前記一又は複数のプロセッサは、前記第1非代替性アセットに関連付けられている第1非代替性トークンの保有者を前記第1ウォレットのアドレスへ移転するトランザクションをブロックチェーン上に記録するための移転トランザクションデータをブロックチェーンネットワークに送信する工程をさらに備える、
[付記1]から[付記4]のいずれか1項に記載の動画データ伝送方法。
[付記6]
前記仮想空間内で利用可能なユーティリティトークンを発行するためのトークン発行処理を行う工程をさらに備える、
[付記1]から[付記5]のいずれか1項に記載の動画データ伝送方法。
[付記7]
前記ユーティリティトークンは、前記ユーティリティトークン以外の暗号資産と交換可能である、
[付記6]に記載の動画データ伝送方法。
[付記8]
前記ユーティリティトークンは、前記仮想空間内での前記第1ユーザのアクティビティに応じて前記第1ユーザに付与される、
[付記6]又は[付記7]に記載の動画データ伝送方法。
[付記9]
前記第1取得要求に応じて、前記第1ユーザの前記ユーティリティトークンが前記第1非代替性アセットの価格に対応する数量だけ消費される、
[付記8]に記載の動画データ伝送方法。
[付記10]
前記仮想空間内で利用可能なユーティリティトークンを発行するためのトークン発行処理を行う工程をさらに備え、
前記トークン化処理のためのコストは、前記第1ユーザのユーティリティトークンにより支払われる、
[付記1]から[付記9]のいずれか1項に記載の動画データ伝送方法。
[付記11]
前記仮想空間内で利用可能なユーティリティトークンを発行するためのトークン発行処理を行う工程をさらに備え、
前記移転トランザクションデータを前記ブロックチェーンネットワーク上に記録するためのコストは、前記第1ユーザのユーティリティトークンにより支払われる、
[付記5]に記載の動画データ伝送方法。
[付記12]
前記仮想空間には、前記第1ユーザに対応付けられた第1アバターが参加しており、
前記一又は複数のプロセッサは、前記第1ユーザからの第1動画トークン化要求に応じて、前記動画データの一部であり前記第1アバターを含む前記仮想空間のビューを含む第1部分動画を非代替性トークンとしてトークン化するための処理を行う工程をさらに備える、
[付記1]から[付記11]のいずれか1項に記載の動画データ伝送方法。
[付記13]
前記仮想空間には、第2ユーザに対応付けられた第2アバターがさらに参加しており、
前記第2ユーザからの第2動画トークン化要求に応じて、前記動画の一部であり前記第2アバターを含む前記仮想空間のビューを含む第2部分動画を非代替性トークンとしてトークン化するための処理を行う工程をさらに備える、
[付記12]に記載の動画データ伝送方法。
[付記14]
第2ユーザから前記第2ユーザに対応付けられた第2アバターと前記第1ユーザに対応付けられた第1アバターとの共演を要求する共演要求を受け付けたことに応じて、前記第2ユーザが前記一又は複数の非代替性アセットのうちの少なくとも一つを保有している場合に前記第1アバター及び前記第2アバターを含む共演動画の動画データを送信し、前記第2ユーザが前記一又は複数の非代替性アセットを一つも保有していない場合に前記第1アバターとの共演を拒否する工程をさらに備える、
[付記1]から[付記11]のいずれか1項に記載の動画データ伝送方法。
[付記15]
第2ユーザから前記第2ユーザに対応付けられた第2アバターと前記第1ユーザに対応付けられた第1アバターとの共演を要求する共演要求を受け付けたことに応じて、前記第2ユーザが前記一又は複数の代替性アセットのうちの少なくとも一つが非代替性トークンとしてトークン化された変換非代替性アセットを保有している場合に、前記第1アバター及び前記第2アバターを含む共演動画の動画データを送信し、記第2ユーザが前記変換非代替性アセットを保有していない場合に前記第1アバターとの共演を拒否する工程をさらに備える、
[付記1]から[付記14]のいずれか1項に記載の動画データ伝送方法。
[付記16]
前記仮想空間は、クローズド空間を含み、
前記第1ユーザが前記一又は複数の非代替性アセットのうちの少なくとも一つを保有している場合に前記第1ユーザに対応付けられた第1アバターが前記クローズド空間へ入ることを許可し、前記第1ユーザが前記一又は複数の非代替性アセットを一つも保有していない場合に前記クローズド空間へ入ることを拒否する工程をさらに備える、
[付記1]から[付記15]のいずれか1項に記載の動画データ伝送方法。
[付記17]
前記仮想空間は、クローズド空間を含み、
前記第1ユーザが前記一又は複数の代替性アセットのうちの少なくとも一つが非代替性トークンとしてトークン化された変換非代替性アセットを保有している場合に前記第1ユーザに対応付けられた第1アバターが前記クローズド空間へ入ることを許可し、前記第1ユーザが前記変換非代替性アセットを一つも保有していない場合に前記クローズド空間へ入ることを拒否する工程をさらに備える、
[付記1]から[付記16]のいずれか1項に記載の動画データ伝送方法。
[付記18]
前記第1ユーザは、前記一又は複数の代替性アセットのうち前記仮想空間において前記第1ユーザの第1アバターが装着可能な複数の装着アセットを保有しており、
前記一又は複数のプロセッサは、前記第1ユーザからのトークン化要求に応じて、前記複数の装着アセットのセットを非代替性トークンとしてトークン化するための処理を行う工程をさらに備える、
[付記1]から[付記17]のいずれか1項に記載の動画データ伝送方法。
[付記19]
一又は複数のプロセッサを備え、第1ユーザを含む複数のユーザの各々に対応付けられたアバターが参加可能な仮想空間のビューを含む動画データを送信する動画データ送信システムであって、
前記一又は複数のプロセッサは、コンピュータ読み取り可能な命令を実行することにより、
前記仮想空間において前記第1ユーザを識別する第1ユーザ識別情報に対応付けて第1ウォレットを生成し、
前記第1ユーザからの第1取得要求に応じて、前記仮想空間において使用されるデジタルアセットであって非代替性トークンとしてトークン化されている一又は複数の非代替性アセットのうち第1非代替性アセットを前記第1ユーザに付与し、前記第1ウォレットのアドレスに前記第1非代替性アセットに関連付けられている第1非代替性トークンを移転する、
動画データ送信システム。
[付記20]
一又は複数のプロセッサに、第1ユーザを含む複数のユーザの各々に対応付けられたアバターが参加可能な仮想空間のビューを含む動画データを送信させるための動画データ送信プログラムであって、
前記一又は複数のプロセッサに、
前記仮想空間において前記第1ユーザを識別する第1ユーザ識別情報に対応付けて第1ウォレットを生成する工程と、
前記第1ユーザからの第1取得要求に応じて、前記仮想空間において使用されるデジタルアセットであって非代替性トークンとしてトークン化されている一又は複数の非代替性アセットのうち第1非代替性アセットを前記第1ユーザに付与し、前記第1ウォレットのアドレスに記第1非代替性アセットに関連付けられている第1非代替性トークンを移転する工程と、
を実行させる動画データ送信プログラム。