IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ Xクリエーション株式会社の特許一覧 ▶ bacoor dApps株式会社の特許一覧 ▶ 株式会社AI商事の特許一覧

<>
  • 特開-コンピュータ実装方法及びシステム 図1
  • 特開-コンピュータ実装方法及びシステム 図2
  • 特開-コンピュータ実装方法及びシステム 図3
  • 特開-コンピュータ実装方法及びシステム 図4
  • 特開-コンピュータ実装方法及びシステム 図5
  • 特開-コンピュータ実装方法及びシステム 図6
  • 特開-コンピュータ実装方法及びシステム 図7
  • 特開-コンピュータ実装方法及びシステム 図8
  • 特開-コンピュータ実装方法及びシステム 図9
  • 特開-コンピュータ実装方法及びシステム 図10
  • 特開-コンピュータ実装方法及びシステム 図11
  • 特開-コンピュータ実装方法及びシステム 図12
  • 特開-コンピュータ実装方法及びシステム 図13
  • 特開-コンピュータ実装方法及びシステム 図14
  • 特開-コンピュータ実装方法及びシステム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024103855
(43)【公開日】2024-08-02
(54)【発明の名称】コンピュータ実装方法及びシステム
(51)【国際特許分類】
   G06Q 50/18 20120101AFI20240726BHJP
【FI】
G06Q50/18 310
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023007790
(22)【出願日】2023-01-23
(71)【出願人】
【識別番号】520295029
【氏名又は名称】Xクリエーション株式会社
(71)【出願人】
【識別番号】518003096
【氏名又は名称】Bacoor dApps株式会社
(71)【出願人】
【識別番号】320003367
【氏名又は名称】株式会社AI商事
(74)【代理人】
【識別番号】100111567
【弁理士】
【氏名又は名称】坂本 寛
(72)【発明者】
【氏名】河上 昌浩
(72)【発明者】
【氏名】春名 幸雄
(72)【発明者】
【氏名】竹内 仁
【テーマコード(参考)】
5L049
5L050
【Fターム(参考)】
5L049CC16
5L050CC16
(57)【要約】
【課題】利用可能なブロックチェーンの自由度を高める。
【解決手段】開示の方法は、コンピュータによって実行されるコンピュータ実装方法であって、対象ブロックチェーンを識別するために用いられるチェーン識別データを取得し、前記チェーン識別データに基づいて、複数のブロックチェーンの中から前記対象ブロックチェーンを識別し、識別された前記対象ブロックチェーンを操作することを備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピュータによって実行されるコンピュータ実装方法であって、
対象ブロックチェーンを識別するために用いられるチェーン識別データを取得し、
前記チェーン識別データに基づいて、複数のブロックチェーンの中から前記対象ブロックチェーンを識別し、
識別された前記対象ブロックチェーンを操作する
ことを備える、
コンピュータ実装方法。
【請求項2】
識別された前記対象ブロックチェーンを操作することは、識別された前記対象ブロックチェーンにおけるノンファンジブルトークンを操作することを含む
請求項1に記載のコンピュータ実装方法。
【請求項3】
識別された前記対象ブロックチェーンにおけるノンファンジブルトークンを操作することは、前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させることを含む
請求項2に記載のコンピュータ実装方法。
【請求項4】
前記対象ブロックチェーンは、ユーザによって指定され、
前記アドレスは、前記ユーザのアドレスである
請求項3に記載のコンピュータ実装方法。
【請求項5】
前記対象ブロックチェーンは、第1ユーザによって指定され、
前記アドレスは、前記第1ユーザによって指定された第2ユーザのアドレスである
請求項3に記載のコンピュータ実装方法。
【請求項6】
前記アドレスは、前記複数のブロックチェーンにおける共通のアドレスである
請求項3に記載のコンピュータ実装方法。
【請求項7】
識別された前記対象ブロックチェーンにおけるノンファンジブルトークンを操作することは、前記対象ブロックチェーンにおけるノンファンジブルトークンを生成することを含む
請求項2に記載のコンピュータ実装方法。
【請求項8】
前記複数のブロックチェーンそれぞれは、スマートコントラクトを備え、
識別された前記対象ブロックチェーンを操作することは、前記対象ブロックチェーンが備える前記スマートコントラクトを呼び出すことを含む
請求項1に記載のコンピュータ実装方法。
【請求項9】
前記スマートコントラクトは、前記スマートコントラクトを備えるブロックチェーンにおけるノンファンジブルトークンを、前記スマートコントラクトを備えるブロックチェーンにおけるアドレスに取得させるよう構成されている
請求項8に記載のコンピュータ実装方法。
【請求項10】
前記スマートコントラクトは、前記アドレスにノンファンジブルトークンを取得させるため、前記スマートコントラクトが呼び出されてからノンファンジブルトークンを生成するよう構成されている
請求項9に記載のコンピュータ実装方法。
【請求項11】
前記複数のブロックチェーンそれぞれは、ノンファンジブルトークンを操作するためのスマートコントラクトを備え、
識別された前記対象ブロックチェーンを操作することは、前記対象ブロックチェーンが備える前記スマートコントラクトを、前記対象ブロックチェーンの第1アドレスから呼び出すことを含み、
呼び出された前記スマートコントラクトは、前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおける第2アドレスに取得させることを含み、前記第2アドレスは、前記第1アドレスとは異なる
請求項1に記載のコンピュータ実装方法。
【請求項12】
前記複数のブロックチェーンそれぞれは、前記スマートコントラクトを実行可能な互換性を有する
請求項8から請求項11のいずれか1項に記載のコンピュータ実装方法。
【請求項13】
前記複数のブロックチェーンそれぞれが備える各スマートコントラクトは、前記複数のブロックチェーンにおける共通のコントラクトアドレスを有する
請求項8から請求項11のいずれか1項に記載のコンピュータ実装方法。
【請求項14】
コンピュータによって実行されるコンピュータ実装方法であって、
複数のブロックチェーンの中から対象ブロックチェーンの指定を受け付け、
指定された前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させる
ことを備える、
コンピュータ実装方法。
【請求項15】
対象ブロックチェーンを識別するために用いられるチェーン識別データを受け付け、
前記チェーン識別データに基づいて、複数のブロックチェーンの中から前記対象ブロックチェーンを識別し、
識別された前記対象ブロックチェーンを操作する
ことを備える処理を実行するよう構成されたシステム。
【請求項16】
複数のブロックチェーンの中から対象ブロックチェーンの指定を受け付け、
指定された前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させる
ことを備える処理を実行するよう構成されたシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ実装方法及びシステムに関する。
【背景技術】
【0002】
特許文献1は、ブロックチェーンにおけるノンファンジブルトークンを開示している。
【0003】
さて、従来、ブロックチェーンを基盤とするシステム(例えば、分散型アプリケーション(Decentralized Application):dApp)においては、当該システムのデベロッパーが決めた特定のブロックチェーンが使用される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2021-149904号公報
【発明の概要】
【0005】
システムのデベロッパーが決めた特定のブロックチェーンが使用されるため、システムにおいて操作できるブロックチェーンは、デベロッパーが決めた特定のブロックチェーンに限られる。したがって、ユーザが、あるシステムを利用する場合、ユーザは、そのシステムのデベロッパーが決めた特定のブロックチェーンを利用することになり、他のブロックチェーンを利用することはできなかった。このように、従来は、ブロックチェーンの選択の自由度が低かった。
【0006】
このため、例えば、ブロックチェーンにおけるノンファンジブルトークンを扱う場合、そのノンファンジブルトークンは、デベロッパーが決めたブロックチェーンにおけるノンファンジブルトークンに限られてしまう。
【0007】
したがって、利用可能なブロックチェーンの自由度を高めることが望まれる。
【0008】
本開示のある側面は、コンピュータ実装方法である。開示の方法は、対象ブロックチェーンを識別するために用いられるチェーン識別データを取得し、前記チェーン識別データに基づいて、複数のブロックチェーンの中から前記対象ブロックチェーンを識別し、識別された前記対象ブロックチェーンを操作することを備え得る。
【0009】
開示の方法は、複数のブロックチェーンの中から対象ブロックチェーンの指定を受け付け、指定された前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させることを備え得る。
【0010】
本開示の他の側面は、システムである。開示のシステムは、対象ブロックチェーンを識別するために用いられるチェーン識別データを受け付け、前記チェーン識別データに基づいて、複数のブロックチェーンの中から前記対象ブロックチェーンを識別し、識別された前記対象ブロックチェーンを操作することを備える処理を実行するよう構成され得る。
【0011】
開示のシステムは、複数のブロックチェーンの中から対象ブロックチェーンの指定を受け付け、指定された前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させることを備える処理を実行するよう構成され得る。
【0012】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【0013】
図1図1は、実施形態に係るコンピュータ実装方法の手順を示すフローチャートである。
図2図2は、実施形態に係るコンピュータシステムの構成図である。
図3図3は、実施形態に係るコンピュータシステムにおけるユーザ端末及びサーバの構成図である。
図4図4は、データベースを示す図である。
図5図5は、画像サーバに格納された画像及び画像URLを示す図である。
図6図6は、実施形態に係る方法の手順を示すフローチャートである。
図7図7は、図6に示す手順に含まれるユーザ端末動作を示す図である。
図8図8は、データベースを示す図である。
図9図9は、取得されたNFTの表示画面を示す図である。
図10図10は、実施形態に係る方法の手順を示すフローチャートである。
図11図11は、図10に示す手順に含まれるユーザ端末動作を示す図である。
図12図12は、取得されたNFTの表示画面を示す図である。
図13図13は、実施形態に係る方法の手順を示すフローチャートである。
図14図14は、実施形態に係るコンピュータシステムの構成図である。
図15図15は、図13に示す手順に含まれるユーザ端末動作を示す図である。
【発明を実施するための形態】
【0014】
<1.コンピュータ実装方法及びシステム>
【0015】
(1)実施形態に係る方法は、コンピュータによって実行されるコンピュータ実装方法であって、対象ブロックチェーンを識別するために用いられるチェーン識別データを取得し、前記チェーン識別データに基づいて、複数のブロックチェーンの中から前記対象ブロックチェーンを識別し、識別された前記対象ブロックチェーンを操作することを備える。この場合、システムは、複数のブロックチェーンの中から対象ブロックチェーンを操作することができため、利用可能なブロックチェーンの自由度を高めることができる。
【0016】
(2)識別された前記対象ブロックチェーンを操作することは、識別された前記対象ブロックチェーンにおけるノンファンジブルトークンを操作することを含み得る。この場合、システムは、複数のブロックチェーンのうち、対象ブロックチェーンにおけるノンファンジブルトークンを操作することができる。
【0017】
(3)識別された前記対象ブロックチェーンにおけるノンファンジブルトークンを操作することは、前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させることを含み得る。この場合、システムは、複数のブロックチェーンのうち、対象ブロックチェーンにおけるノンファンジブルトークンを、対象ブロックチェーンにおけるアドレスに取得させることができる。
【0018】
(4)前記対象ブロックチェーンは、ユーザによって指定され得る。前記アドレスは、前記ユーザのアドレスであり得る。この場合、システムは、ユーザによって指定された対象ブロックチェーンを操作し得る。また、システムは、ユーザによって指定された対象ブロックチェーンにおけるノンファンジブルトークンを、当該ユーザに取得させ得る。
【0019】
(5)前記対象ブロックチェーンは、第1ユーザによって指定され得る。前記アドレスは、前記第1ユーザによって指定された第2ユーザのアドレスであり得る。この場合、システムは、第1ユーザによって指定された対象ブロックチェーンにおけるノンファンジブルトークンを、第1ユーザによって指定された第2ユーザに取得させ得る。
【0020】
(6)前記アドレスは、前記複数のブロックチェーンにおける共通のアドレスであり得る。
【0021】
(7)識別された前記対象ブロックチェーンにおけるノンファンジブルトークンを操作することは、前記対象ブロックチェーンにおけるノンファンジブルトークンを生成することを含み得る。ノンファンジブルトークンを生成することは、ユーザ端末から取得したコードによって識別されるコンテンツデータに関連付けられたノンファンジブルトークンを生成することを含み得る。
【0022】
(8)前記複数のブロックチェーンそれぞれは、スマートコントラクトを備え得る。識別された前記対象ブロックチェーンを操作することは、前記対象ブロックチェーンが備える前記スマートコントラクトを呼び出すことを含み得る。
【0023】
(9)前記スマートコントラクトは、前記スマートコントラクトを備えるブロックチェーンにおけるノンファンジブルトークンを、前記スマートコントラクトを備えるブロックチェーンにおけるアドレスに取得させるよう構成され得る。
【0024】
(10)前記スマートコントラクトは、前記アドレスにノンファンジブルトークンを取得させるため、前記スマートコントラクトが呼び出されてからノンファンジブルトークンを生成するよう構成されている。
【0025】
(11)前記複数のブロックチェーンそれぞれは、ノンファンジブルトークンを操作するためのスマートコントラクトを備え得る。識別された前記対象ブロックチェーンを操作することは、前記対象ブロックチェーンが備える前記スマートコントラクトを、前記対象ブロックチェーンの第1アドレスから呼び出すことを含み得る。呼び出された前記スマートコントラクトは、前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおける第2アドレスに取得させることを含み得る。前記第2アドレスは、前記第1アドレスとは異なり得る。
【0026】
(12)前記複数のブロックチェーンそれぞれは、前記スマートコントラクトを実行可能な互換性を有し得る。また、前記複数のブロックチェーンそれぞれは、イーサリアム仮想マシン互換性を有し得る。
【0027】
(13)前記複数のブロックチェーンそれぞれが備える各スマートコントラクトは、前記複数のブロックチェーンにおける共通のコントラクトアドレスを有し得る。
【0028】
(14)実施形態に係る方法は、コンピュータによって実行されるコンピュータ実装方法であって、複数のブロックチェーンの中から対象ブロックチェーンの指定を受け付け、指定された前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させる、ことを備え得る。
【0029】
(15)実施形態に係るシステムは、対象ブロックチェーンを識別するために用いられるチェーン識別データを受け付け、前記チェーン識別データに基づいて、複数のブロックチェーンの中から前記対象ブロックチェーンを識別し、識別された前記対象ブロックチェーンを操作することを備える処理を実行するよう構成され得る。
【0030】
(16)実施形態に係るシステムは、複数のブロックチェーンの中から対象ブロックチェーンの指定を受け付け、指定された前記対象ブロックチェーンにおけるノンファンジブルトークンを、前記対象ブロックチェーンにおけるアドレスに取得させることを備える処理を実行するよう構成され得る。
【0031】
実施形態に係るコンピュータプログラムは、前記コンピュータ実装方法をコンピュータに実行させるよう構成され得る。また、実施形態に係るコンピュータプログラムは、コンピュータを前記システムとして機能させ得る。コンピュータプログラムは、コンピュータ読取可能な非一時的な記録媒体に記録され得る。
【0032】
<2.コンピュータ実装方法及びシステムの例>
【0033】
図1は、実施形態に係るコンピュータ実装方法の手順を示している。この方法は、1又は複数のコンピュータによって構成されるコンピュータシステム(以下、「システム」という)によって実行され得る。
【0034】
図1に示すように、ステップS11において、システムは、チェーン識別データを受信する。システムは、例えば、ネットワークを介して、外部から、チェーン識別データを受信する。システムは、例えば、他のコンピュータから、チェーン識別データを受信する。他のコンピュータは、例えば、ユーザ端末である。
【0035】
チェーン識別データは、システムが、複数のブロックチェーンの中から、操作すべきブロックチェーン(以下、「対象ブロックチェーン)という」を識別するために用いられるデータである。換言すると、チェーン識別データは、対象ブロックチェーンを指定するためのデータである。つまり、システムは、対象ブロックチェーンの指定を受け付けることができる。対象ブロックチェーンとして指定され得る複数のブロックチェーンは、システムにおいて予め設定され得る。
【0036】
実施形態に係るシステムは、複数のブロックチェーンそれぞれを操作可能である。システムは、複数のブロックチェーンに接続されている。システムは、同時に複数のブロックチェーンに接続されて、複数のブロックチェーンのうちの任意のブロックチェーンを操作できるのが好ましい。
【0037】
チェーン識別データは、システムが、対象ブロックチェーンを識別し得るデータであればよく、例えば、対象ブロックチェーンを示す文字列データ、又は、対象ブロックチェーンに対応付けられた記号又は数字を示すデータである。
【0038】
システムは、チェーン識別データに基づいて、複数のブロックチェーンの中から、操作すべきブロックチェーンを識別する(ステップS12)。識別されたブロックチェーンを、「対象ブロックチェーン」という。システムは、識別された対象ブロックチェーンを操作する(ステップS13)。このように、システムは、複数のブロックチェーンのうち、受信したチェーン識別データによって識別された対象ブロックチェーンを操作することができる。換言すると、システムは、複数のブロックチェーンのうち、指定されたブロックチェーンを操作することができる。なお、対象ブロックチェーンの指定は、直接的な指定に限られず、間接的な指定であってもよい。間接的な指定は、例えば、対象ブロックチェーンを特定し得るものの指定である。対象ブロックチェーンを特定し得るものは、例えば、対象ブロックチェーンにおいて記録されたトークンである。あるブロックチェーンに記録されたトークンが指定されると、そのトークンが記録されたブロックチェーンを対象ブロックチェーンとして特定し得る。
【0039】
実施形態に係るシステムは、複数のブロックチェーンを操作できるため、扱えるブロックチェーンの自由度が高い。そして、システムは、複数のブロックチェーンの中から、チェーン識別データが示すブロックチェーンを操作することができる。
【0040】
ブロックチェーンの操作は、例えば、トークン等のその他の暗号資産の移転、トークン等の生成、スマートコントラクトの呼び出し、又はその他の操作である。ブロックチェーンの操作又は操作結果は、ブロックチェーンの分散台帳に記録され得る。トークンは、例えば、ノンファンジブルトークン(非代替性トークン;Non-Fungible Token:NFT)又はファンジブルトークン(代替性トークン;Fungible Token:FT)である。
【0041】
NFTは、ファンジブルトークン(FT)とは異なり、代替性を有さないトークンである。非代替性の確保のため、NFTは、各ブロックチェーン21,22,23において、他のNFTとの区別を可能にするための固有のトークン識別子(TokenID)を有する。このトークン識別子は、NFT識別子(NFT_ID)とも呼ばれる。トークン識別子は、例えば、NFTの格納のためのブロックチェーンアドレス(コントラクトアドレス)において記録される。
【0042】
システムは、例えば、識別された対象ブロックチェーンにおけるNFTを操作することができる(ステップS13)。システムは、NFTを操作すべきブロックチェーンを、チェーン識別データに基づいて識別できる。
【0043】
対象ブロックチェーンが、ユーザによって指定される場合、システムは、ユーザが指定した対象ブロックチェーンを示すチェーン識別データを受信し、識別された対象ブロックチェーンにおけるNFTを操作し得る。例えば、ユーザが、当該ユーザがよく使用するブロックチェーン、当該ユーザの好みのブロックチェーン、又は当該ユーザが暗号資産を保有しているブロックチェーンを利用したい場合、ユーザは、複数のブロックチェーンの中から利用したい対象ブロックチェーンを選択する。すると、システムは、ユーザが選択した対象ブロックチェーンにおけるNFTを操作する。このように、ユーザは、希望するブロックチェーンを指定できるため、ユーザの自由度が高まる。
【0044】
例えば、システムは、ユーザが指定した対象ブロックチェーンにおけるNFTを、ユーザに取得させることができる。この場合、ユーザは、システムのデベロッパーが決めた特定のブロックチェーンのNFTではなく、ユーザ自身が選択したブロックチェーンのNFTを取得できる。
【0045】
ユーザが取得するNFTは、予め生成されていてもよいし、対象ブロックチェーンが指定されてから生成されてもよい。すなわち、システムは、ユーザが指定した対象ブロックチェーンにおけるNFTを生成することができる。この場合、システムは、予めデベロッパーが決めたブロックチェーンではなく、ユーザが指定した対象ブロックチェーンにおいてNFTを生成することができる。システムは、生成したNFTを、対象ブロックチェーンを指定したユーザ又は他のユーザに取得させてもよい。つまり、システムは、ユーザが指定したブロックチェーンにおいてNFTを生成し、そのNFTをユーザ等に取得させてもよい。
【0046】
なお、選択可能な複数のブロックチェーンのうち、ユーザがどのブロックチェーンを選択しても、ユーザが取得できるNFTが有するコンテンツデータ(例えば、画像データ)は同じであるのが好ましい。この場合、ユーザは、どのブロックチェーンを選択しても、同一のコンテンツデータを有するNFTを取得できる。つまり、ユーザは、あるコンテンツデータを有するNFTを、ユーザが選択したどのブロックチェーン上でも取得することができる。なお、ユーザが取得するNFTが有するコンテンツデータは、ユーザによって選択されてもよいし、システムが、適宜決定してもよいし、ランダムに決定されてもよい。
【0047】
ユーザが既に有するNFTを操作したい場合、ユーザは、操作したいNFTを選択することができる。この場合、システムは、選択されたNFTに対応した対象ブロックチェーンを選択し、その対象ブロックチェーンにおいて、ユーザが有するNFTを操作することができる。ここでの対象ブロックチェーンは、選択されたNFTが記録されているブロックチェーンである。例えば、ユーザが有するNFTを他のユーザに譲渡(送信)したい場合、ユーザは、譲渡したいNFTを選択する。すると、システムは、複数のブロックチェーンの中から、選択されたNFTが記録された対象ブロックチェーンを識別し、対象ブロックチェーンにおいて、選択されたNFTを、他のユーザに譲渡する操作を行う。
【0048】
ここで、ユーザがNFTを取得することは、ブロックチェーンの記録上において、当該ユーザと当該NFTとの関連付けを生じさせることである。「当該NFTとの関連付け」とは、例えば、ブロックチェーンの記録上、当該NFTについての現時点の権限者と認識できる状態になることである。権限者とは、例えば、NFTの所有者である。すなわち、「ユーザがNFTを取得する」とは、例えば、当該ユーザのアカウントが、当該NFTを、他のアカウントから受信することで、当該NFTを所有した状態になることである。また、権限者は、イーサリアムのEIP4907規格の「user」であってもよい。EIP4907規格の「user」は、NFTを所有してはいないが、NFTを使用する権限(役割)を有する者としてブロックチェーンに記録される。EIP4907は、イーサリアムのトークン規格であるERC721を拡張したものである。
【0049】
また、ユーザがNFTを譲渡することは、ブロックチェーンの記録上において、当該NFTと関連付けされている権限者を、他者に変更することである。NFTを譲渡することは、「送信」とも呼ばれ得る。また、NFTを譲り受ける又は取得することは、「受信」とも呼ばれ得る。
【0050】
ユーザの便宜のため、システムは、ユーザが、複数のブロックチェーンおいて分散して有するNFT又はその他の暗号資産を、ユーザの端末の画面にまとめて表示させ得る。システムは、複数のブロックチェーンそれぞれにおいて、ユーザのアカウント(ブロックチェーンアドレス)に関連付けられて記録されているNFT又はその他の暗号資産を参照し、それらのNFT又はその他の暗号資産を、まとめて、ユーザの端末に表示させ得る。この場合、ユーザの端末の画面には、複数のブロックチェーンにおけるNFT等が、同時に、混在して表示され得る。複数のブロックチェーンにおけるNFT等が混在して表示されることで、ユーザは、接続するブロックチェーンを切り替える操作をすることなく、複数のブロックチェーンにおけるNFT等をまとめて参照することができる。また、ユーザは、接続するブロックチェーンを切り替える操作をすることなく、複数のブロックチェーンにおけるNFT等の中から、操作したいNFT等を選択することができるため、ユーザの操作性が向上する。
【0051】
仮に、システムが一度に表示できるNFT等が、一つのブロックチェーンに記録されたNFT等だけであると、一人のユーザが、複数のブロックチェーンそれぞれにおいて、NFT等を有している場合に、操作性が低下する。すなわち、ユーザは、あるブロックチェーンのNFT等を操作しようとすると、そのブロックチェーンに接続して、そのブロックチェーンにおいてユーザが有するNFT等を表示させる必要がある。また、ユーザは、他のブロックチェーンのNFT等を操作しようとした場合、当該他のブロックチェーンに接続を切り替えて、当該他のブロックチェーンにおいてユーザが有するNFT等を表示させる必要がある。このような切り替えは、煩雑であり、操作性を低下させる。これに対して、実施形態に係るシステムでは、複数のブロックチェーンのNFT等をまとめて表示できるため、操作性が向上する。
【0052】
本実施形態においては、複数のブロックチェーンは、互換性を有するのが好ましい。互換性は、例えば、各ブロックチェーンにおいて、同じプログラムコードを実行可能なことである。複数のブロックチェーンが互換性を有する場合、ブロックチェーンにおける操作のための共通のプログラムコードを、複数のブロックチェーンそれぞれに配置(デプロイ)して、複数のブロックチェーンそれぞれにおいて実行させることができ有利である。なお、ブロックチェーンに配置されたプログラムコードは、スマートコントラクトと呼ばれ得る。スマートコントラクトは、例えば、ノンファンジブルトークンの生成などの操作を行う。
【0053】
例えば、複数のブロックチェーンそれぞれは、イーサリアム仮想マシン(Ethereum Virtual Machine(EVM))互換性を有するのが好ましい。EVMは、ブロックチェーンの一種であるイーサリアム上でスマートコントラクトなどのプログラムコードを実行するための仮想マシンである。EVM互換性を有するブロックチェーンは、イーサリアムにおいて実行可能なプログラムコード(例えば、スマートコントラクトのプログラムコード)を実行することができる。EVM互換性を有するブロックチェーンは、単に、「イーサリアムと互換性があるブロックチェーン」と言ってもよい。
【0054】
EVM互換性を有するブロックチェーンは、一例として、イーサリアム(Ethereum)、ポリゴン(Polygon)、オプティミズム(Optimism)、アービトラム(Arbitrum)、及びセロ(Celo)である。
【0055】
また、本実施形態においては、複数のブロックチェーンは、共通のブロックチェーンアドレスが利用されるものであるのが好ましい。一例として、EVM互換性を有するブロックチェーンは、共通のブロックチェーンアドレスが利用され得るブロックチェーンである。共通のブロックチェーンアドレスが利用される場合、例えば、ユーザは、複数のブロックチェーンにおいて、共通するブロックチェーンアドレスを当該ユーザのアカウントとして利用できる。また、複数のブロックチェーンそれぞれに配置されたスマートコントラクトは、共通のコントラクトアドレスを備えることができる。この場合、どのブロックチェーンが選択されても、ユーザ又はスマートコントラクトのアドレスが共通であるため、システムにおける処理が容易となる。
【0056】
例えば、システムは、ユーザのアカウントとしての一つのブロックチェーンアドレスを、複数のブロックチェーンそれぞれにおける当該ユーザのアカウントとして認識し得る。また、システムは、スマートコントラクトのコントラクトアドレスとしての一つのブロックチェーンアドレスを、複数のブロックチェーンそれぞれにおける共通のコントラクトアドレスとして認識し得る。共通のコントラクトアドレスを有するスマートコントラクトは、共通の機能を有するのが好ましい。また、共通のコントラクトアドレスを有するスマートコントラクトは、共通のプログラムコードを備えるのがより好ましい。
【0057】
図2は、実施形態に係る方法が実行され得るシステム10の一例を示している。以下では、実施形態に係るシステム10は、複数のブロックチェーン21,22,23を利用し得る。図2では、複数のブロックチェーンの例として、第1ブロックチェーン21、第2ブロックチェーン22、及び第3ブロックチェーン23が示されている。複数のブロックチェーン21,22,23それぞれは、一例として、EVM互換性を有するブロックチェーンである。
【0058】
複数のブロックチェーン21,22,23それぞれは、複数のコンピュータが相互に接続されたP2P(Peer to Peer)のコンピュータネットワークによって構成されている。
【0059】
図2では、システム10を利用するユーザU1が示されている。ユーザU1は、ユーザ端末31を利用して、システム10を利用する。ユーザU1は、一例として、複数のブロックチェーン21,22,23のための共通のブロックチェーンアドレス0x1111を有する。このアドレスは、例えば、ウォレットアドレスである。このアドレスは、例えば、外部所有アカウント(Externally Owned Account:EOA)である。
【0060】
ユーザU1は、アドレス0x1111によって、システム10を介して、複数のブロックチェーンに接続するため、複数のブロックチェーンそれぞれのためのプライベートキーを有し得る。例えば、ユーザU1が、第1ブロックチェーン21に対して、アドレス0x1111で接続する場合、第1ブロックチェーン21のための第1プライベートキーを利用して、第1ブロックチェーン21に接続する。また、ユーザU1が、第2ブロックチェーン22に対して、アドレス0x1111で接続する場合、第2ブロックチェーン22のための第2プライベートキーを利用して、第2ブロックチェーン22に接続する。ユーザU1が、第3ブロックチェーン23に対して、アドレス0x1111で接続する場合、第3ブロックチェーンのための第3プライベートキーを利用して、第3ブロックチェーン23に接続する。第1,第2及び第3プライベートキーはそれぞれ異なるものであり得る。システム10は、ユーザU1のために、複数のブロックチェーン21,22,23に、同時又は個別に接続し得る。各プライベートキーは、対応するブロックチェーンの21,22,23におけるトランザクションへの電子署名に用いられ得る。
【0061】
第1ブロックチェーン21は、ユーザU1のアドレス0x1111で示されるアカウント21Bを備える。第2ブロックチェーン22は、ユーザU1のアドレス0x1111で示されるアカウント22Bを備える。第3ブロックチェーン23は、ユーザU1のアドレス0x1111で示されるアカウント23Bを備える。
【0062】
なお、各ブロックチェーン21,22,23は、システム10のためのアカウント21C,22C,23Cを備える。これらのアカウント21C,22C,23Cは、複数のブロックチェーン21,22,23に共通のブロックチェーンアドレス0x2222を備える。システム10のためのアカウント21C,22C,23Cは、例えば、システム10が、ブロックチェーン21,22,23がブロックチェーン21,22,23を操作するために用いられ得る。操作は、例えば、後述のスマートコントラクト21A,22A,23Aの呼び出しを含み得る。また、アカウント21C,22C,23Cに対応するアドレス0x2222は、システム10の管理者が、後述のスマートコントラクト21A,22A,23Aを各ブロックチェーンにおいて作成するための作成元アドレスとして用いられ得る。
【0063】
複数のブロックチェーン21,22,23それぞれは、スマートコントラクト21A,22A,23Aを備える。スマートコントラクト21A,22A,23Aは、各ブロックチェーン21,22,23において実行可能に実装されたソフトウェア(コンピュータプログラム)である。スマートコントラクト21A,22A,23Aが行う処理は、ブロックチェーン21,22,23を構成する1又は複数のコンピュータによって実行され得る。
【0064】
各スマートコントラクト21A,22A,23Aは、所定の処理を自動的に実行する。また、各スマートコントラクト21A,22A,23Aは、呼び出されると、所定の処理を自動的に実行し得る。スマートコントラクト21A,22A,23Aが実行する処理は、例えば、NFTの生成・送信など、NFTに関する操作(NFT操作)を含み得る。スマートコントラクト21A,22A,23Aは、例えば、NFTを、当該スマートコントラクト21A,22A,23Aが配置されたブロックチェーン21,22,23のアカウント21B,22B,23B,21C,22C,23Cへ送信し得る。また、スマートコントラクト21A,22A,23Aは、NFTを生成し得る。また、スマートコントラクト21A,22A,23Aは、生成されたNFTを、当該スマートコントラクト21A,22A,23Aが配置されたブロックチェーン21,22,23のアカウント21B,22B,23B,21C,22C,23Cへ送信し得る。また、スマートコントラクト21A,22A,23Aは、生成されたNFTが、当該スマートコントラクト21A,22A,23Aが配置されたブロックチェーン21,22,23のアカウント21B,22B,23B,21C,22C,23Cにおいて取得されるようにNFTを生成し得る。スマートコントラクト21A,22A,23Aにより実行されたNFT操作は、当該スマートコントラクトが配置されたブロックチェーン21,22,23に記録され得る。
【0065】
以下では、図2のスマートコントラクト21A,22A,23Aは、一例として、呼び出されると、NFTを生成し、生成したNFTを、呼び出されたスマートコントラクト21A,22A,23Aが配置されたブロックチェーンにおけるユーザのアドレスに取得させる動作をするものとして説明する。なお、NFTの生成は、MINT(ミント)ともいわれる。
【0066】
各スマートコントラクト21A,22A,23Aは、共通のコントラクトアドレスを備える。図2においては、一例として、スマートコントラクト21A,22A,23Aの共通アドレスは、「0x9999」である。
【0067】
図2のスマートコントラクト21A,22A,23Aは、同じプログラムコードからなる。つまり、図2のスマートコントラクト21A,22A,23Aは、スマートコントラクトのための一つのプログラムコードを、複製して、複数のブロックチェーン21,22,23に配置(デプロイ)したものである。
【0068】
異なるブロックチェーン21,22,23に配置される各スマートコントラクト21A,22A,23Aのコントラクトアドレスを共通にするには、例えば、次の2つの条件を満たすようにして、スマートコントラクト21A,22A,23Aを作成・配置すればよい。なお、以下の条件2における「nonce」は、ブロックチェーンのトランザクションに署名する際に指定される値である。
条件1:スマートコントラクト21A,22A,23Aの作成元のアドレスが同じ。
条件2:スマートコントラクト21A,22A,23Aを作成するトランザクションに用いられるnonceが同じ。
【0069】
実施形態に係るシステム10は、サーバコンピュータ50を備える。以下では、「サーバコンピュータ50」を、「サーバ50」という。サーバ50は、複数のコンピュータによって構成されてもよい。サーバ50は、システム10の管理者によって管理され得る。サーバ50は、例えば、Web3サーバである。サーバは、ブロックチェーンアドレス0x2222を用いて、ブロックチェーン21,22,23に接続し得る。
【0070】
ユーザU1の端末31は、システム10のサーバ50にアクセスし得る。端末31は、ユーザU1のブロックチェーンアドレス0x1111によって、システム10にログインする。ユーザU1が、アドレス0x1111によってシステム10にログインする場合、複数のブロックチェーン21,22,23のいずれか一つのブロックチェーンに対応するプライベートキーを用いればよい。例えば、ユーザU1は、第1ブロックチェーン21のアカウント21Bに対応したプライベートキーを用いて、アカウント21B(0x1111)によって、システム10にログインし得る。
【0071】
アカウント21Bのアドレス0x1111は、他のブロックチェーン22,23においても、共通にユーザU1のアカウントを示す。このため、特定のブロックチェーン21のプライベートキーでユーザがログインしても、システム10は、共通のアドレス0x1111を利用して、他のブロックチェーン22,22を参照し得る。例えば、システム10は、共通アドレス0x1111を利用して、ユーザU1が複数のブロックチェーン21,22,23それぞれにおいて取得しているNFT等を参照することができる。システム10は、参照して得られたNFT等を、ユーザ端末31の画面に表示させ得る。
【0072】
図3は、端末31及びサーバ50等の構成を示している。なお、図3に示すように、実施形態に係るシステム10は、NFTの生成に用いられるコンテンツデータが格納するサーバ55(画像サーバ;コンテンツサーバ)を備え得る。NFTの生成の際には、サーバ55に格納されたデータがNFT化される。ここで、NFT化とは、NFTにコンテンツデータを対応付けられることである。コンテンツデータのNFT化は、例えば、コンテンツデータを示すURLを有するNFTを生成することである。画像データが格納されるサーバ55については後述される。
【0073】
端末31は、例えば、スマートフォン又はタブレットなどのモバイルデバイスである。端末31は、インターネットなどのネットワーク15に接続可能である。ユーザ端末31は、プロセッサ31A及び記憶装置31Bを備えるコンピュータによって構成され得る。記憶装置31Bは、プロセッサ31Aに接続されている。記憶装置31Bは、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置31Bは、プロセッサ31Aによって実行されるコンピュータプログラム31C(アプリケーション31C)を備える。プロセッサ31Aは、記憶装置31Bに格納されたコンピュータプログラム31Cを読み出して実行する。コンピュータプログラム31Cは、実施形態に係る端末31が有する機能を、コンピュータに実現させるため、コンピュータに対する命令を示すプログラムコードを有する。
【0074】
コンピュータプログラム31Cによって実現される端末31の機能は、例えば、端末31のディスプレイ(図示省略)に、ユーザU1が取得しているNFT等を表示させ、NFTの操作のための指令を受け付けることを含み得る。また、当該機能は、サーバ50へのログイン機能も含み得る。また、当該機能は、ユーザU1に新たなNFTを取得させるための機能を含み得る。
【0075】
図3に示すようにサーバ50は、プロセッサ51A及び記憶装置51Bを備えるコンピュータによって構成され得る。記憶装置51Bは、プロセッサ51Aに接続されている。記憶装置51Bは、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置51Bは、プロセッサ51Aによって実行されるコンピュータプログラム51Cを備える。プロセッサ51Aは、記憶装置51Bに格納されたコンピュータプログラム51Cを読み出して実行する。コンピュータプログラム51Cは、コンピュータに、実施形態に係る方法(図1参照)を実行させるための命令を示すプログラムコードを有する。
【0076】
サーバ50の記憶装置51Bは、データベース52を備える。データベース52は、NFTの生成等に用いられる。図4は、データベース52の一例を示している。データベース52は、NFTの生成に用いられる画像データ等のコンテンツデータの管理用である。
【0077】
NFTの生成に用いられる画像データ等は、前述のようにサーバ55の記憶装置(図示省略)に格納されている。NFTは、画像データ等のコンテンツデータを唯一無二にするため、当該画像データ等を用いて生成される。図5は、サーバ55に格納された画像データ55A,55B,55Cの例を示している。画像データ55A,55B,55Cは、管理者等によって、サーバ55にアップロードされる。画像データ55A,55B,55Cがアップロードされると、サーバ55は、アップロードされた画像データ55A,55B,55Cを示す識別子を発行する。当該識別子は、例えば、サーバ55に格納された画像データ55A,55B,55Cの、ネットワーク15上における位置及びファイル名を示すURL(画像URL)である。本実施形態では、一例として、NFTは、画像URLを備えるように生成される。これにより、生成されたNFTに画像データが対応付けられる。
【0078】
管理者は、画像URLを、図4に示すデータベース52に登録する。登録された画像URLは、NFT生成に用いられる。NFTは、画像URLを有するように生成される。つまり、画像ULRは、NFTを構成するデータとしてブロックチェーン21,22,23に記録され得る。生成されたNFTは、画像URLが示す画像に対応付けられたものとなる。NFTに対応付けられた画像は、ユーザ端末31の画面においてNFTを表示する際に、当該NFTを示す画像として表示される。
【0079】
データベース52(NFT情報テーブル)には、画像URLに対応付けて、NFT生成に用いられる他のデータも登録される。他のデータは、例えば、図4に示す「NFTタイプ」、「NFTコード」、及び「NFT名称」である。例えば、管理者は、画像URLと、これらの他のデータとを対応付けて、データベース52に登録する。なお、データベース52への画像URL及びその他のデータの登録は、サーバ55及びサーバ50の連携によって自動的に行われてもよい。
【0080】
「NFTタイプ」は、生成されるNFTの種類を示す。NFTの種類は、例えば、NFT化されるコンテンツデータ(画像データ)の違いによって区別される。NFTタイプは、例えば、数値によって示される。例えば、図5に示す第1画像データ55AがNFT化されたNFTのタイプは、第1タイプを示す「1」であり、第2画像データ55BがNFT化されたNFTのタイプは、第2タイプを示す「2」であり、第3画像データ55CがNFT化されたNFTのタイプは、第3タイプを示す「3」である(図4参照)。
【0081】
「NFT名称」は、生成されるNFTの名称を示す。NFTの名称は、例えば、NFT化される画像に付けられた名称であってもよい。例えば、図5では、NFTタイプ=1となるNFTの名称は「NFT1」であり、NFTタイプ=2となるNFTの名称は「NFT2」であり、NFTタイプ=3となるNFTの名称は「NFT3」である。「NFT名称」は、NFTを構成するデータとしてブロックチェーン21,22,23に記録され得る。
【0082】
「NFTコード」は、NFTの生成に用いられるコードである。システム10は、データベース52に登録されているNFTコードを受信すると、そのNFTコードに対応付けられた画像URL等を有するNFTを生成する。
【0083】
図6は、ユーザU1がNFTを取得するための方法の第1例を示している。図6に示す方法では、データベース52を利用して、NFTが生成される。図6に示す方法では、ユーザ端末31は、外部からNFTコードを取得し、取得したNFTコードをシステム10へ送信する。システム10は、受信したNFTコードに対応するNFTを生成し、ユーザのアカウントに取得させる。つまり、ユーザは、端末31によってNFTコードを取得し、そのNFTコードをシステム10へ送信することで、NFTを取得できる。なお、図6に示す方法においてシステム10が実行する手順は、図1に示す方法の一例でもある。
【0084】
図6において、ステップS61からステップS63は、ユーザ端末31において行われる。また、図7は、ステップS61からステップS63のために、ユーザ端末31において行われる動作を示している。
【0085】
ステップS61において、ユーザ端末31は、NFTの取得のために、NFTコードを外部から取得する。端末31が、外部からNFTコードを取得することは、例えば、端末31が、NFTコードを示す2次元コードを読み取る、又は、NFTコードを外部通信装置から無線通信を介して受信することである。外部通信装置は、例えば、近距離無線通信(NFC)のための装置であり得る。外部通信装置は、例えば、無線通信可能な集積回路(IC)である。無線通信可能な集積回路は、例えば、ICタグである。ICタグは、例えば、NFCタグである。NFTコードは、例えば、無線通信可能な集積回路を個別に特定する固有識別子(UID)であり得る。
【0086】
2次元コード又は外部通信装置は、ユーザU1に配布されるか、ユーザU1が訪れる場所に設置される。ユーザU1は、端末31によって2次元コードを読み取ってNFTコードを取得する、又は、端末31を外部通信装置に近づけてNFTコードを取得する。2次元コードの読取機能及び/又は外部通信装置との通信機能は、端末31のコンピュータプログラム31Cが備えているのが好ましい。
【0087】
図7に示すように、取得したNFTコードは、端末31の画面のコード表示部310に表示され得る。図7では、取得したNFTコードが「Bvry9G4Lz」であることが表示されている。
【0088】
そして、ユーザU1は、ブロックチェーン(ネットワーク)を選択する操作を端末31において行う(ステップS62)。例えば、ユーザU1は、端末31の画面のブロックチェーン選択部320において表示される複数のブロックチェーンの中から、一つのブロックチェーンを選択する。図7では、第1ブロックチェーン21を示す「Chain #1」、第2ブロックチェーン22を示す「Chain #2」、及び第3ブロックチェーン23を示す「Chain #3」が表示されており、ユーザU1によって「Chain #1」が選択されている。このように、ユーザU1は、NFTコードに基づいて取得できるNFTを、どのブロックチェーン21,22,23において受け取るかを自由に選択することができる。
【0089】
図7に示すように、NFTを受け取るための「受取」ボタン330をユーザU1が操作すると、NFTコード(Bvry9G4Lz)、選択されたブロックチェーンを示すチェーン識別データ(#1)、及び、ユーザU1のブロックチェーンアドレス0x1111が、端末31からシステム10へ送信される(ステップS63)。システム10は、端末31から送信されたこれらのデータを受信する(ステップS64)。
【0090】
システム10は、データベース52を参照し、受信したNFTコード(Bvry9G4Lz)に対応付けられたデータ(NFTタイプ、NFT名称、画像URL等)を取得する(ステップS65)。
【0091】
また、システム10は、受信したチェーン識別データ(#1)とユーザU1のブロックチェーンアドレス0x1111を、データベース52におけるNFTコードに対応付けて保存する(ステップS66)。図8は、NFTコード(Bvry9G4Lz)に対応付けて、受信したチェーン識別データ(#1)がチェーンIDとして保存され、受信したアドレス0x1111がユーザアドレスとして保存されていることを示している。
【0092】
システム10は、受信したチェーン識別データ(#1)によって識別される対象ブロックチェーンである第1ブロックチェーン21に接続し、第1ブロックチェーン21のスマートコントラクト21A(コントラクトアドレス:0x9999)を呼び出す(ステップS67)。システム10は、例えば、システム10のブロックチェーンアドレスである0x2222から、スマートコントラクト21Aを呼び出し得る。なお、呼び出されるスマートコントラクトのアドレスが複数のブロックチェーン21,22,23において共通である場合、共通のアドレスでスマートコントラクト21Aを呼び出せばよい。ただし、スマートコントラクトのアドレスが複数のブロックチェーンそれぞれで異なる場合には、識別された対象ブロックチェーンにおける特有のアドレスで、スマートコントラクトを呼び出せばよい。
【0093】
また、実施形態に係るシステム10では、ユーザU1のブロックチェーンアドレス(第1アドレス)ではなく、システム10のブロックチェーンアドレス(第2アドレス)からスマートコントラクトが呼び出される。このため、スマートコントラクトの呼び出し等のブロックチェーンの操作に伴ってブロックチェーンに支払うべき手数料(ガス代)は、システム10の負担となり、ユーザU1は負担する必要がない。このように、第1アドレスと第2アドレスとは異なるのが好ましい。なお、スマートコントラクトの呼び出し等の操作は、ユーザU1のアドレス0x1111から行われてもよい。システム10は、ユーザU1のために、ユーザU1のアドレス0x1111からスマートコントラクトの呼び出し等の操作ための処理を実行することができる。
【0094】
スマートコントラクト21Aの呼び出しの際には、システム10からスマートコントラクト21Aへ、NFTの生成に用いられるデータ(画像URL、NFT名称、NFTタイプ)が、与えられる。呼び出されたスマートコントラクト21Aは、システム10から取得したデータを用いて、NFTを生成(MINT)する。また、スマートコントラクト21Aの呼び出しの際には、システム10からスマートコントラクト21Aへ、生成されたNFTを取得するユーザアドレス(0x1111)が与えられる。スマートコントラクト21Aは、生成されたNFTを、第1ブロックチェーン21において、システム10から取得したユーザアドレス0x1111に取得させる。
【0095】
ユーザU1が取得したNFTは、図9に示すように、端末31の画面に表示される。図9では、取得したNFTに対応付けられた画像データ55Bが表示されているとともに、そのNFTの名称が「NFT2」であり、そのNFTが記録されているブロックチェーンが「Chain #1」(=第1ブロックチェーン21)であることが表示されている。図9の画面は、システム10によって、ユーザ端末31に提供され得る。
【0096】
図10は、ユーザU1がNFTを取得するための方法の第2例を示している。図10に示す方法では、システム10は、NFTを有償又は無償で取得できるオンラインマーケットとして機能し得る。図10に示す方法では、ユーザU1は、システム10上でNFTのコンテンツを選択し、選択されたコンテンツのNFTを取得することができる。なお、図10に示す方法において、システム10が実行する手順は、図1に示す方法の一例でもある。
【0097】
図10において、ステップS101からステップS103は、ユーザ端末31において行われる。また、図11は、ステップS101からステップS103のために、ユーザ端末31において行われる動作を示している。
【0098】
ステップS101において、ユーザ端末31は、ユーザU1が取得したいNFTのコンテンツの選択を受け付ける。ステップS101の選択は、NFTタイプの選択でもある。図11に示すように、端末31の画面には、ユーザU1が取得可能な複数のNFTの画像データ55A,55B,55Cの一覧が表示されている。なお、図11の画面は、システム10によって、ユーザ端末31に提供され得る。システム10は、データベース52に登録されている画像URLを、端末31に提供し、端末31の画面に画像データ55A,55B,55Cを表示させ得る。図11は、一例として、NFT名称が「NFT3」のNFTのための画像データ55Cが、ユーザによって選択されていることを示している。つまり、図11では、NFTタイプ=3が選択されている。
【0099】
そして、ユーザU1は、ブロックチェーン(ネットワーク)を選択する操作を端末31において行う(ステップS102)。例えば、ユーザU1は、端末31の画面のブロックチェーン選択部320において表示される複数のブロックチェーンの中から、一つのブロックチェーンを選択する。図11では、第1ブロックチェーン21を示す「Chain #1」、第2ブロックチェーン22を示す「Chain #2」、及び第3ブロックチェーン23を示す「Chain #3」が表示されており、ユーザU1によって「Chain #2」が選択されている。このように、ユーザU1は、選択したコンテンツデータに対応付けられたNFTを、どのブロックチェーン21,22,23において受け取るかを自由に選択することができる。
【0100】
NFTの取得が有償である場合、すなわち、コンテンツデータの選択がNFTの購入である場合、ユーザは、NFTの代金を支払う。NFTの代金の支払いは、例えば、ユーザU1が選択したブロックチェーンにおける暗号資産で行われ得る。例えば、ユーザU1が選択(指定)した対象ブロックチェーンがイーサリアムであれば、NFTの代金は、イーサで支払われ得る。したがって、ユーザU1は、既に暗号資産を有しており、支払いが容易であるブロックチェーンにおいて、NFTを購入できる。
【0101】
また、NFTの代金の支払いは、例えば、ユーザU1が選択した対象ブロックチェーンとは異なるブロックチェーンにおける暗号資産で行われ得る。例えば、ユーザU1は、ポリゴン(Polygon)を対象ブロックチェーンとして選択する一方、支払いのためのブロックチェーンとしてイーサリアムを選択し得る。この場合、ユーザU1は、イーサの支払いで、ポリゴンにおけるNFTを購入できる。
【0102】
図7に示すように、NFTを受け取るための「取得」ボタン340をユーザU1が操作すると、NFTタイプ=3、NFT名称=NFT3、選択されたブロックチェーンを示すチェーン識別データ(#2)、及び、ユーザU1のブロックチェーンアドレス0x1111が、端末31からシステム10へ送信される(ステップS103)。システム10は、端末31から送信されたこれらのデータを受信する(ステップS104)。
【0103】
システム10は、データベース52を参照し、受信したNFTタイプ又はNFT名称に対応付けられたデータ(画像URL等)を取得する(ステップS105)。
【0104】
また、システム10は、受信したチェーン識別データ(#2)とユーザU1のブロックチェーンアドレス0x1111を、データベース52における画像URLに対応付けて保存する(ステップS106)。
【0105】
システム10は、受信したチェーン識別データ(#2)によって識別される対象ブロックチェーンである第2ブロックチェーン22に接続し、第2ブロックチェーン22のスマートコントラクト22A(コントラクトアドレス:0x9999)を呼び出す(ステップS107)。システム10は、例えば、システム10のブロックチェーンアドレスである0x2222から、スマートコントラクト22Aを呼び出し得る。
【0106】
スマートコントラクト22Aの呼び出しの際には、システム10からスマートコントラクト22Aへ、NFTの生成に用いられるデータ(画像URL、NFT名称、NFTタイプ)が、与えられる。呼び出されたスマートコントラクト22Aは、システム10から取得したデータを用いて、NFTを生成(MINT)する。また、スマートコントラクト22Aの呼び出しの際には、システム10からスマートコントラクト22Aへ、生成されたNFTを取得するユーザアドレス(0x1111)が与えられる。スマートコントラクト22Aは、生成されたNFTを、第2ブロックチェーン22において、システム10から取得したユーザアドレス0x1111に取得させる。
【0107】
ユーザU1が取得したNFTは、端末31の画面に表示される。図12に示す端末31では、図6及び図7に示す方法で取得したNFT(NFT名称:NFT2、ブロックチェーン:Chain #1)、及び、図10及び図11に示す方法で取得したNFT(NFT名称:NFT3,ブロックチェーン:Chain #2)の2つのNFTが、画面に表示されている。図12の画面は、システム10によって、ユーザ端末31に提供され得る。
【0108】
図12に示すように、システム10は、複数のブロックチェーンのNFTを混在させて表示させることができる。システム10は、複数のブロックチェーン21,22,23に接続して、ユーザU1の共通アドレス0x1111に関連付けられているNFTを参照し、それらのNFTを、ユーザ端末31の画面に表示させる。
【0109】
図13及び図14は、複数のブロックチェーンを扱えるシステム10において、ユーザU1が有するNFTを、他のユーザに譲渡(送信)する方法の例を示している。なお、図13に示す方法において、システム10が実行する手順は、図1に示す方法の一例である。
【0110】
ステップS131において、ユーザ端末31は、ユーザU1(第1ユーザ)が、他のユーザである第2ユーザ(アドレス0x3333)に送信したいNFTの選択を受け付ける。第2ユーザは、複数のブロックチェーン21,22,23それぞれにおいて、アカウント21D,22D,23Dを有し、それらのアカウント21D,22D,23Dは、共通のアドレス(0x3333)を有する。
【0111】
図15に示すように、端末31の画面には、ユーザU1が有しているNFTの一覧が表示されている。図15の画面では、図12の画面と同様に、複数のブロックチェーンにおけるNFTが混在して表示される。また、図15の画面は、図12の画面と同様に、システム10によってユーザ端末に提供され得る。ユーザU1が有しているNFTは、ユーザU1が、他のユーザに送信可能なNFTでもある。ユーザU1が、図15の画面に表示されているNFTの中から、送信したいNFTを選択することができる。図15は、一例として、NFT名称が「NFT3」であり、記録されているブロックチェーンが第2ブロックチェーン22であり、第2ブロックチェーン22に記録されたNFT_ID(NFT識別子)が#055であるNFTが、ユーザによって選択されていることを示している。端末31は、選択されたNFTが記録されているブロックチェーンを示すチェーン識別データ(#2)を取得する。このように、NFTの選択(指定)によって、そのNFTが記録されている対象ブロックチェーン(#2)が間接的に指定される。
【0112】
また、ユーザU1は、NFTの送信先(第2ユーザ)を指定する操作を端末31において行う(ステップS132)。図15では、送信先アドレス入力部350に、送信先アドレスとして「0x3333」が入力されていることを示す。
【0113】
図15に示すように、NFTを送信するための「送信」ボタン360をユーザU1が操作すると、選択されたNFTを示すNFT_ID=#055、選択されたNFTが記録されたブロックチェーンを示すチェーン識別データ(#2)、送信元であるユーザU1のアドレス0x1111、送信先アドレス入力部350にて指定された送信先アドレス0x3333が、端末31からシステム10へ送信される(ステップS134)。システム10は、端末31から送信されたこれらのデータを受信する(ステップS134)。
【0114】
システム10は、受信したチェーン識別データ(#2)に基づいて、対象ブロックチェーンが第2ブロックチェーン22であることを識別する(ステップS135)。システム10は、識別した対象ブロックチェーンである第2ブロックチェーン22に接続し、その第2ブロックチェーン22において、NFT_ID(#055)で示されるNFTを送信元アドレス0x1111から、送信先アドレス0x3333へ送信する(ステップS136)。このように、システム10は、複数のブロックチェーンのNFTが混在して表示された端末31において選択されたNFTを、そのNFTに対応したブロックチェーンにおいて送信することができる。
【0115】
なお、NFT送信の際には、指定した対象ブロックチェーンにおけるユーザU1のアカウント(0x1111)に対応したプライベートキーによって、NFT送信のためのトランザクションに電子署名される。
【0116】
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【0117】
10 :システム
15 :ネットワーク
21 :第1ブロックチェーン
21A :スマートコントラクト
21B :アカウント
21C :アカウント
21D :アカウント
22 :第2ブロックチェーン
22A :スマートコントラクト
22B :アカウント
22C :アカウント
22D :アカウント
23 :第3ブロックチェーン
23A :スマートコントラクト
23B :アカウント
23C :アカウント
23D :アカウント
31 :ユーザ端末
31A :プロセッサ
31B :記憶装置
31C :コンピュータプログラム
50 :サーバ
51A :プロセッサ
51B :記憶装置
51C :コンピュータプログラム
52 :データベース
55 :サーバ
55A :第1画像データ
55B :第2画像データ
55C :第3画像データ
310 :コード表示部
320 :ブロックチェーン選択部(ブロックチェーン指定部)
330 :ボタン
340 :ボタン
350 :送信先アドレス入力部(送信先指定部)
360 :ボタン
U1 :ユーザ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15