(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023094491
(43)【公開日】2023-07-05
(54)【発明の名称】サーバ、トークン配布システム、及びコンピュータ実装方法
(51)【国際特許分類】
G06F 21/62 20130101AFI20230628BHJP
【FI】
G06F21/62 318
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021210014
(22)【出願日】2021-12-23
(71)【出願人】
【識別番号】518003096
【氏名又は名称】Bacoor dApps株式会社
(71)【出願人】
【識別番号】320003367
【氏名又は名称】株式会社AI商事
(74)【代理人】
【識別番号】100111567
【弁理士】
【氏名又は名称】坂本 寛
(72)【発明者】
【氏名】春名 幸雄
(72)【発明者】
【氏名】竹内 仁
(57)【要約】
【課題】トークンの受け取りを希望するユーザが、ブロックチェーンアドレスを有していない場合であっても、少ない負担で、ユーザが、ブロックチェーンにおけるトークンを受け取れるようにする。
【解決手段】本開示のサーバは、ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンが送信されるように、前記ブロックチェーンを操作する、ことを備える処理を実行するよう構成されている。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、
前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、
受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンが送信されるように、前記ブロックチェーンを操作する、
ことを備える処理を実行するよう構成されている、サーバ。
【請求項2】
前記処理は、前記トークンリクエストの送信元である前記ユーザに割り当てられた割当済ブロックチェーンアドレスの有無を判定することを更に備え、
前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記ユーザに割り当てられた前記割当済ブロックチェーンアドレスが無いと判定された場合に実行される、
請求項1に記載のサーバ。
【請求項3】
前記トークンリクエストは、第1コードを含み、
前記処理は、前記トークンリクエストの有効性を、前記第1コードを用いて判定することを更に備え、
前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記トークンリクエストが有効であると判定された場合に実行される、
請求項1に記載のサーバ。
【請求項4】
前記トークンリクエストは、第1コードを含み、
前記処理は、
前記トークンリクエストの有効性を、前記第1コードを用いて判定し、
前記トークンリクエストの送信元である前記ユーザに割り当てられた割当済ブロックチェーンアドレスの有無を判定する、
ことを更に備え、
前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記トークンリクエストが有効であると判定され、かつ、前記ユーザに割り当てられた前記割当済ブロックチェーンアドレスが無いと判定された場合に実行される、
請求項1に記載のサーバ。
【請求項5】
前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記受信用ブロックチェーンアドレスを、前記サーバにおける前記ユーザのアカウントに割り当てることを含む、
請求項1から請求項4のいずれか1項に記載のサーバ。
【請求項6】
前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、
前記サーバにおける前記ユーザのアカウントを生成し、
前記受信用ブロックチェーンアドレスを、生成された前記アカウントに割り当てる、
ことを含む、
請求項1から請求項4のいずれか1項に記載のサーバ。
【請求項7】
前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、
予め発行された複数の割当候補ブロックチェーンアドレスから、前記ユーザに割り当てられる割当用ブロックチェーンアドレスを選択し、
前記割当用ブロックチェーンアドレスを、前記受信用ブロックチェーンアドレスとして、前記ユーザに割り当てる、
ことを含む、
請求項1から請求項6のいずれか1項に記載のサーバ。
【請求項8】
前記ブロックチェーンを操作することは、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンが送信されるように、前記トークンを送信するよう構成されたスマートコントラクトを呼び出すことを含む、
請求項1から請求項7のいずれか1項に記載のサーバ。
【請求項9】
前記ブロックチェーンを操作することは、
第2コードを生成し、
前記第2コードを前記スマートコントラクトへ送信する、
ことを更に含み、
前記第2コードは、前記スマートコントラクトが、
送信すべきトークンを識別するため、
送信すべきトークンのタイプを識別するため、又は
送信のために生成すべきトークンのタイプを識別するため、に用いられる、
請求項8に記載のサーバ。
【請求項10】
ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、
前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、
受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンを送信する、
ことを備える処理を実行するよう構成されている、トークン配布システム。
【請求項11】
前記処理は、前記トークンリクエストを受信した後に、前記受信用ブロックチェーンアドレスへ送信するための前記トークンを生成することを更に備える、
請求項10に記載のトークン配布システム。
【請求項12】
前記処理は、前記トークンリクエストを受信した後に、生成される前記トークンのタイプを決定することを更に備える、
請求項11に記載のトークン配布システム。
【請求項13】
前記タイプは、ランダムに決定される
請求項12に記載のトークン配布システム。
【請求項14】
トークン配布のため、コンピュータが実行するコンピュータ実装方法であって、
ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、
前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、
受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンを送信する、
ことを備える、コンピュータ実装方法。
【請求項15】
前記トークンリクエストを受信した後に、前記受信用ブロックチェーンアドレスへ送信するための前記トークンを生成することを更に備える、
請求項14に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、サーバ、トークン配布システム、及びコンピュータ実装方法に関する。
【背景技術】
【0002】
特許文献1は、ブロックチェーンにおけるノンファンジブルトークンを、ユーザへ送信することを開示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【0004】
ブロックチェーンにおいて送信されたトークンをユーザが受信するには、そのユーザは、ブロックチェーンアドレスを有している必要がある。ユーザがブロックチェーンアドレスを有していない場合、そのユーザへのトークン送信はできない。
【0005】
企業又は団体等が、キャンペーン等のために、ノンファンジブルトークン等のブロックチェーンにおけるトークンを、企業の顧客等のユーザへ広く配布したい場合がある。しかし、そのユーザが、ブロックチェーンアドレスを有していなければ、ユーザは、トークンを受け取ることができない。
【0006】
トークンを受け取るために、ブロックチェーンアドレスを取得する手続負担をユーザに課すと、トークンを広く配布することが困難になる。このため、例えば、トークンを広く配布することがキャンペーンの目的である場合、そのキャンペーンの目的が達成できなくなる。
【0007】
したがって、トークンの受け取りを希望するユーザが、ブロックチェーンアドレスを有していない場合であっても、少ない負担で、ユーザが、ブロックチェーンにおけるトークンを受け取れるようにすることが望まれる。
【0008】
本開示のある側面は、サーバである。開示のサーバは、ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンが送信されるように、前記ブロックチェーンを操作する、ことを備える処理を実行するよう構成されている。
【0009】
本開示の他の側面は、トークン配布システムである。開示のトークン配布システムは、ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンを送信する、ことを備える処理を実行するよう構成されている。
【0010】
本開示の他の側面は、コンピュータ実装方法である。開示の方法は、トークン配布のため、コンピュータが実行するコンピュータ実装方法であって、ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンを送信する、ことを備える。
【0011】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【0012】
【
図3】
図3は、ブロックチェーンのスマートコントラクト及びブロックチェーンアドレスを示す図である。
【
図4】
図4は、トークンの配布手順を示す図である。
【
図5】
図5は、トークン配布処理のフローチャートである。
【
図6】
図6は、ブロックチェーンアドレスの割り当てを示す概要図である。
【
図7】
図7は、第1送信処理のフローチャートである。
【
図9】
図9は、第2送信処理のフローチャートである。
【発明を実施するための形態】
【0013】
<1.サーバ、トークン配布システム、及びコンピュータ実装方法の概要>
【0014】
(1)実施形態に係るサーバは、ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンが送信されるように、前記ブロックチェーンを操作する、ことを備える処理を実行するよう構成されている。サーバは、トークンリクエストを受信すると、ユーザにブロックチェーンアドレスを割り当てるため、ユーザは、ブロックチェーンアドレスを有していない場合であっても、トークンを受け取ることができる。したがって、ユーザの負担が少ない。
【0015】
(2)前記処理は、前記トークンリクエストの送信元である前記ユーザに割り当てられた割当済ブロックチェーンアドレスの有無を判定することを更に備えるのが好ましい。前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記ユーザに割り当てられた前記割当済ブロックチェーンアドレスが無いと判定された場合に実行されるのが好ましい。この場合、トークンリクエストの送信元であるユーザに割り当てられた割当済ブロックチェーンアドレスが無い場合に、ブロックチェーンアドレスが割り当てられる。したがって、ユーザに割り当てられた割当済ブロックチェーンアドレスが有る場合には、ブロックチェーンアドレスの割り当てを省略できる。
【0016】
(3)前記トークンリクエストは、第1コードを含むのが好ましい。前記処理は、前記トークンリクエストの有効性を、前記第1コードを用いて判定することを更に備えるのが好ましい。前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記トークンリクエストが有効であると判定された場合に実行されるのが好ましい。この場合、トークンリクエストが有効である場合に、ブロックチェーンアドレスの割り当てが行われ、トークンリクエストが有効でない場合には、ブロックチェーンアドレスの割り当てを省略できる。
【0017】
(4)前記トークンリクエストは、第1コードを含むのが好ましい。前記処理は、前記トークンリクエストの有効性を、前記第1コードを用いて判定し、前記トークンリクエストの送信元である前記ユーザに割り当てられた割当済ブロックチェーンアドレスの有無を判定する、ことを更に備えるのが好ましい。前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記トークンリクエストが有効であると判定され、かつ、前記ユーザに割り当てられた前記割当済ブロックチェーンアドレスが無いと判定された場合に実行されるのが好ましい。この場合、トークンリクエストが有効、かつ、割当済ブロックチェーンアドレスが無い場合に、ブロックチェーンアドレスの割り当てが行われ、そうでない場合には、ブロックチェーンアドレスの割り当てを省略できる。
【0018】
(5)前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記受信用ブロックチェーンアドレスを、前記サーバにおける前記ユーザのアカウントに割り当てることを含むのが好ましい。この場合、サーバにおけるユーザのアカウントにブロックチェーンアドレスが割り当てられる。
【0019】
(6)前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、前記サーバにおける前記ユーザのアカウントを生成し、前記受信用ブロックチェーンアドレスを、生成された前記アカウントに割り当てる、ことを含むのが好ましい。この場合、ユーザアカウントの生成も行われるため、ユーザは、サーバにおけるユーザアカウントを有していなくても、ブロックチェーンアドレスの割り当てを受けることができる。
【0020】
(7)前記受信用ブロックチェーンアドレスを前記ユーザに割り当てることは、予め発行された複数の割当候補ブロックチェーンアドレスから、前記ユーザに割り当てられる割当用ブロックチェーンアドレスを選択し、前記割当用ブロックチェーンアドレスを、前記受信用ブロックチェーンアドレスとして、前記ユーザに割り当てる、ことを含むのが好ましい。この場合、ブロックチェーンアドレスの割り当てを迅速に行うことができる。
【0021】
(8)前記ブロックチェーンを操作することは、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンが送信されるように、前記トークンを送信するよう構成されたスマートコントラクトを呼び出すことを含むのが好ましい。この場合、スマートコントラクトによってトークンが送信される。
【0022】
(9)前記ブロックチェーンを操作することは、第2コードを生成し、前記第2コードを前記スマートコントラクトへ送信する、ことを更に含み、前記第2コードは、前記スマートコントラクトが、送信すべきトークンを識別するため、送信すべきトークンのタイプを識別するため、又は送信のために生成すべきトークンのタイプを識別するため、に用いられるのが好ましい。
【0023】
(10)実施形態に係るトークン配布システムは、ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンを送信する、ことを備える処理を実行するよう構成されている。
【0024】
(11)トークン配布システムが実行する前記処理は、前記トークンリクエストを受信した後に、前記受信用ブロックチェーンアドレスへ送信するための前記トークンを生成することを更に備えるのが好ましい。
【0025】
(12)トークン配布システムが実行する前記処理は、前記トークンリクエストを受信した後に、生成される前記トークンのタイプを決定することを更に備えるのが好ましい。
【0026】
(13)前記タイプは、ランダムに決定されるのが好ましい。この場合、ユーザは、ランダムに決定されるタイプのNFTを受け取ることができる。
【0027】
(14)実施形態に係る方法は、トークン配布のため、コンピュータが実行するコンピュータ実装方法であって、ブロックチェーンにおけるトークン送信を要求するトークンリクエストを、ユーザのクライアント端末から受信し、前記トークンリクエストを受信すると、前記トークンリクエストに応じて送信されるトークンを受信するための受信用ブロックチェーンアドレスを前記ユーザに割り当て、受信した前記トークンリクエストに応じて、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンを送信する、ことを備える。
【0028】
(15)コンピュータ実装方法は、前記トークンリクエストを受信した後に、前記受信用ブロックチェーンアドレスへ送信するための前記トークンを生成することを更に備えるのが好ましい。
【0029】
<2.サーバ、トークン配布システム、及びコンピュータ実装方法の例>
【0030】
以下、図面を参照しつつ、本発明の実施形態の一例をより詳細に説明する。
【0031】
図1は、実施形態に係るシステム10の一例を示している。このシステム10は、ブロックチェーン20を利用したシステムである。実施形態に係るシステム10は、トークン配布システムを構成し得る。トークン配布システムは、ユーザに対して、ブロックチェーンにおけるトークンを配布する。
【0032】
実施形態に係るシステム10は、ネットワーク15に接続されたサーバ51を備え得る。ネットワーク15は、例えば、インターネットである。サーバ51は、ネットワーク15を介してブロックチェーン20にアクセスし得る。サーバ51は、1つのコンピュータによって構成されていてもよいし、複数のコンピュータによって構成されていてもよい。サーバ51は、システム10の管理者によって管理され得る。管理者は、例えば、トークン配布のための管理者である。管理者は、後述のスマートコントラクト22の管理者でもあり得る。
【0033】
図2に示すように、サーバ51は、プロセッサ51A及び記憶装置51Bを備えるコンピュータによって構成され得る。記憶装置51Bは、プロセッサ51Aに接続されている。記憶装置51Bは、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置51Bは、プロセッサ51Aによって実行されるコンピュータプログラム51Cを備える。プロセッサ51Aは、記憶装置51Bに格納されたコンピュータプログラム51Cを読み出して実行する。コンピュータプログラム51Cは、トークン配布処理51Kをコンピュータに実行させる命令を示すプログラムコードを有する。トークン配布処理51Kについては後述される。
【0034】
記憶装置51Bは、様々なデータ又は情報を保存し得る。例えば、記憶装置51Bは、判定条件51Dを有し得る。また、記憶装置51Bは、コードリスト51Eを有し得る。また、記憶装置51Bは、ブロックチェーンアドレスリスト51Fを有し得る。また、記憶装置51Bは、NFTリスト51Gを有し得る。また、記憶装置51Bは、NFTタイプリスト51Hを有し得る。これらのデータ又は情報については後述される。
【0035】
サーバ51は、クライアント端末31とともにクライアント・サーバシステムを構成する。サーバ51は、クライアント端末31からのリクエストに応じて処理を実行する。サーバ51によって実行される処理は、例えば、トークン配布処理51Kである。サーバ51は、トークン配布のため、クライアント端末31からトークンリクエストを受信する。以下では、トークンリクエストを受信するサーバ51は、トークンリクエスト受付サーバ51とも呼ばれる。サーバ51によって実行される処理は、ユーザにブロックチェーンアドレスを割り当てるアドレス設定処理(
図5のステップS55参照)を含み得る。実施形態において、アドレス設定処理は、トークン配布処理51Kの一部を構成し得る。
【0036】
クライアント端末31は、トークンを受け取るユーザの端末である。クライアント端末31は、例えば、スマートフォン、タブレット、又はパーソナルコンピュータである。トークンの受け取りを希望するユーザは、クライアント端末31を操作し、クライアント端末31から、サーバ51へ、トークンリクエストを送信する。有効なトークンリクエストを送信したユーザは、トークンを受け取ることができる。
【0037】
実施形態においては、ユーザが、ブロックチェーンにおけるトークンを入手するため、管理者等によって、コードがユーザへ配布される。ユーザに配布されるコードを、以下では、トークンコード又は第1コードという。トークンコードは、システム10によるトークン配布に利用される。ユーザに配布される複数のトークンコードは、それぞれが異なるユニークなコードであるのが好ましい。コードは、例えば、数字、文字、又は記号からなる複数桁のコードである。トークンコードは、例えば、機械読み取り可能な形式で表され得る。機械読み取り可能な形式は、例えば、二次元コード60の形式又はバーコードの形式である。トークンコードは、例えば、紙などの有形媒体101に印刷によって付される。トークンコードは、クライアント端末31へデータ送信可能な装置へ格納された状態で配布されてもよい。データ送信可能な装置は、例えば、クライアント端末31と通信可能なICタグ(無線タグ)である。トークンコードを有する有形媒体101又は装置は、有償又は無償でユーザへ配布される。トークンコードは、クライアント端末31へデジタルデータとして配布されてもよい。
【0038】
実施形態においては、一例として、トークンコード(例えば、qC2oFsNKrHimID6u)は、トークンコードを含むユニフォームリソースアイデンティファイア120(URI)を表す二次元コード60の形式で、有形媒体101に印刷によって付される。URI120は、スキームと、オーソリティと、を備える。ここでのURIは、一例として、ユニフォームリソースロケータ(URL)である。スキームは、例えば、https:である。オーソリティは、スキームに後続して記述され、資源の場所などを示す。なお、URI120は、スキームを含んでいなくてもよい。なお、
図1の有形媒体101は、人が読み取れる形式でトークコード(qC2oFsNKrHimID6u)を表したコード表示部101Bを備えている。
【0039】
実施形態において、オーソリティは、例えば、
図1に示すURI120のように、URI本体123Aと、トークンコード123Cと、を備え得る。URI本体123Aは、例えば、ホストを含む。ホストは、サーバ51の名前(ドメイン名)を示す。トークンコード123Cは、例えば、URI本体123Aに後続して記述されたパス(path)であり得る。なお、URI本体123Aもパスを含んでもよい。
図1に示すオーソリティおいて、URI本体123Aは、一例として、「aaa....com」であり、トークンコード123Cは、一例として「qC2oFsNKrHimID6u」である。なお、クライアント端末31が、URI本体123Aを予め把握している場合には、二次元コード60は、URI本体123Aを含まず、トークンコード及びその他必要なデータだけを含んでもよい。
【0040】
クライアント端末31は、例えば、クライアント端末31が備えるカメラ(図示省略)によって、二次元コード60を読み取ることで、URI120を取得する。すなわち、クライアント端末31は、二次元コード60を読み取ることで、トークンコード123Cを取得する。なお、クライアント端末31によるトークンコードの取得は、人が読み取り可能に有形媒体101に付されたトークンコード123Cを、ユーザが、手動操作でクライアント端末31へ入力することによって行われてもよい。クライアント端末31は、ネットワーク15又はその他の通信手段を介して、他の装置から、デジタルデータとしてトークンコード123Cを取得してもよい。
【0041】
トークン配布に利用されるブロックチェーン20は、複数のコンピュータが相互に接続されたP2P(ピアーツーピア;Peer to Peer)のコンピュータネットワークシステムによって構成されている。
【0042】
ブロックチェーン20においては、ブロックチェーンアドレス間で取引が可能である。
図3では、第1ブロックチェーンアドレス25A、第2ブロックチェーンアドレス25B、及び第3ブロックチェーンアドレス25Cが例示されている。一例として、第1ブロックチェーンアドレス25Aは、0x11111で表され、第2ブロックチェーンアドレス25Bは、0x33333で表され、第3ブロックチェーンアドレス25Cは、0x55555で表される。ブロックチェーンアドレス25A,25B,25Cは、例えば、ブロックチェーン20におけるユーザアカウントを示す。ブロックチェーンアドレス25A,25B,25C及びブロックチェーン20における取引のトランザクションは、ブロックチェーン20の分散台帳に記録される。
【0043】
ブロックチェーン20おいては、例えば、トークンの取引が可能である。ブロックチェーン20において取引可能なトークンとしては、ファンジブルトークン(代替性トークン;Fungible Token:FT)と、ノンファンジブルトークン(非代替性トークン;Non-Fungible Token:NFT)と、がある。ファンジブルトークンは、例えば、イーサリアム(Ethereum)におけるイーサ(Ether)などの暗号通貨である。ファンジブルトークンは、企業又は個人によってブロックチェーンにおいて発行される独自ファンジブルトークンであってもよい。
【0044】
ノンファンジブルトークン(NFT)は、ファンジブルトークン(FT)とは異なり、代替性を有さないトークンである。非代替性の確保のため、NFTは、ブロックチェーン20において、他のNFTとの区別を可能にするための固有の識別子を有する。以下では、この識別子をNFT識別子という。
【0045】
実施形態に係るシステム10は、NFTを配布してもよいし、FTを配布してもよいし、NFT及びFTの両方を配布してもよい。
【0046】
ブロックチェーン20において、ユーザ所有するNFT又はFTは、ユーザが有するブロックチェーンアドレス25A,25B,25Cに対応付けて記録される。
【0047】
ブロックチェーン20は、スマートコントラクト22を備える。スマートコントラクト22は、実施形態に係るシステム10を構成し得る。スマートコントラクト22は、ブロックチェーンにおいて実行可能に実装されたソフトウェア(コンピュータプログラム)によって構成されている。スマートコントラクト22は、自動取引等の所定のプロトコルを自動的に実行する。
【0048】
スマートコントラクト22は、トークン配布のため、サーバ51と協働し得る。以下では、一例として、トークンの配布のために、ユーザから送信されたトークンリクエストを受信したサーバ51が、スマートコントラクト22を呼び出し、呼び出されたスマートコントラクト22が、トークンをユーザへ送信する。
【0049】
前述のブロックチェーンアドレスは、スマートコントラクト22のコントラクトアドレスを示すこともある。コントラクトアドレスは、スマートコントラクト22が格納されているブロックチェーンアドレスである。
【0050】
ブロックチェーン20においては、スマートコントラクト22もNFT又はFTを所有できる。ブロックチェーン20において、ユーザへの配布のためにスマートコントラクト22が所有するNFT又はFTは、スマートコントラクト22のコントラクトアドレスに対応付けて記録される。
【0051】
スマートコントラクト22によって実行される処理は、例えば、トークンの操作である。トークンの操作は、例えば、トークンの所有者変更である。トークンの所有者変更の操作は、トークンの送信とも呼ばれる。すなわち、トークンの所有者を第1ブロックチェーンアドレス25Aから第2ブロックチェーンアドレス25Bに変更することは、第1ブロックチェーンアドレス25Aから第2ブロックチェーンアドレス25Bへトークンを送信することもでもある。
【0052】
トークンの送信は、例えば、スマートコントラクト22のコントラクトアドレスから、他のブロックチェーンアドレス25A,25B,25Cへトークンを送信することであり得る。つまり、ユーザへのトークンの配布元は、スマートコントラクト22であり得る。なお、ユーザへのトークンの配布元は、システム10の管理者のブロックチェーンアドレスであってもよい。
【0053】
スマートコントラクト22は、例えば、スマートコントラクト22外からの呼び出し操作によって呼び出されることで、スマートコントラクト22における処理23,24が実行される。スマートコントラクト22は、例えば、システム10の管理者のブロックチェーンアドレス又はユーザのブロックチェーンアドレス25A,25B,25Cから呼び出される。スマートコントラクト22によって実行される処理23,24は、
図3に示す第1送信処理23又は第2送信処理24を含み得る。なお、第1送信処理23及び第2送信処理24は、少なくともいずれか一方が実行されば足りる。
【0054】
図4は、クライアント端末31におけるトークン取得のための大まかな手順の一例を示している。まず、企業のトークン配布キャンペーン等のため、トークンコードが多数のユーザへ配布される。トークンコードの配布方法の例は、前述のとおりであり、特に限定されない。各ユーザが取得するトークンコードは、それぞれ異なるユニークコードあり得る。
【0055】
ユーザのクライアント端末31は、配布されたトークンコードを取得する(ステップS41)。トークンコードは、例えば、トークンコードを含むURI120の形式で取得される。URI120は、トークン配布システム10へのアクセスに用いられる。クライアント端末31は、例えば、クライアント端末にインストールされたウェブブラウザアプリケーションプログラム又はシステム10へのアクセスのための専用アプリケーションプログラムを利用して、URI120へアクセスする。アクセスは、例えば、システム10のサーバ51によって受け付けられる。このアクセスによって、システム10は、ユーザが取得したトークンコードを受信し得る。
【0056】
アクセスを受け付けたシステム10は、クライアント端末31のディスプレイに表示される第1画面表示31Aを、クライアント端末31に提供する(ステップS42)。第1画面表示31Aは、例えば、サーバ51によって提供され得る。第1画面表示31Aは、例えば、ユーザが取得したトークンコードの表示301を有し得る。第1画面表示31Aは、トークンを取得するかどうかのユーザの意思確認のための操作部302を有し得る。操作部302は、例えば、グラフィカルユーザインターフェースとしてのボタン又はアイコンである。意思確認は、ユーザにブロックチェーンアドレスを割り当てることの意思確認でもあり得る。
【0057】
トークンコードを利用したトークンの受け取りを希望するユーザによって、操作部302が操作されると、クライアント端末31から、トークン配布システム10へ、第1トークンリクエストR1が送信される(ステップS43)。第1トークンリクエストR1には、前述のトークンコードが対応付けられている。第1トークンリクエストR1に対応付けられたトークンコードは、第1トークンリクエストR1とともに送信されてもよいし、第1トークンリクエストR1よりも前又は後に送信されてもよい。第1トークンリクエストR1は、例えば、サーバ51によって受信される。
【0058】
トークン配布システム10は、第1トークンリクエストR1を送信したユーザのブロックチェーンアドレスへ、NFT等のトークンを送信する。システム10は、ユーザが受信したトークンをクライアント端末31のディスプレイに表示させる第2画面表示31Bを、クライアント端末31に提供する(ステップS44)。第2画面表示31Bは、例えば、サーバ51によって提供される。ユーザは、第2画面表示31Bを参照することで、取得したトークンを閲覧することができる。ユーザは、取得したトークンを、他者へ譲渡、販売することができる。取得したトークンは、他のトークンとの交換に利用されてもよい。
【0059】
第2画面表示31Bは、例えば、ユーザが有するNFTの一覧の表示、及びユーザが有するFTの数量の表示の少なくともいずれか一方又は両方を有し得る。
図4の第2画面表示31Bは、ユーザが有するNFT一覧を示している。
図4では、一例として、ブロックチェーンにおけるNFT識別子としてNft_id01を有し、シリアル番号012345を有するNFT501が示されている。
【0060】
図5は、システム10のサーバ51が実行するトークン配布処理51Kの手順を示している。まず、サーバ51は、クライアント端末31から、ネットワーク15を介して、第1トークンリクエストR1を受信する(ステップS51)。サーバ51は、受信した第1トークンリクエストR1に対応付けられたトークンコードを用いて、第1トークンリクエストR1の有効性を判定する(ステップS52)。有効性の判定には、例えば、コードリスト51E(
図2参照)が用いられ得る。コードリスト51Eは、例えば、配布された全てのトークンコードを示す。第1トークンリクエストR1に対応付けられたトークンコードが、コードリスト51Eに含まれていれば、第1トークンリクエストは有効であると判定され、コードリスト51Eに含まれていなければ、第1トークンリクエストは無効であると判定される。第1トークンリクエストR1が無効であると判定された場合、ユーザへトークンが配布されることなく、トークン配布処理51Kは終了する。
【0061】
有効性の判定には、コードリスト51Eに加えて又は替えて、判定条件51Dが用いられてもよい。判定条件51Dを満たした場合、第1トークンリクエストR1は有効であると判定され、判定条件51Dを満たさない場合、無効であると判定される。判定条件51Dは、例えば、「トークンリストに含まれるトークンコードが未使用である」ことである。この場合、一つのトークンコードの利用は1回に制限される。他の判定条件51Dは、例えば、「同一ユーザによるトークンリクエストが同日に無い」ことである。この場合、一つのトークンコードを繰り返し使用できるが、同一ユーザによる使用は、1日1回に制限される。
【0062】
ステップS52において、第1トークンリクエストR1が有効であると判定された場合、第1トークンリクエストR1の送信元であるユーザに割り当てられたブロックチェーンアドレス(割当済ブロックチェーンアドレス)の有無が判定される(ステップS53)。第1トークンリクエストR1の送信元ユーザに割り当てられた割当済ブロックチェーンアドレスが既に有る場合には、サーバ51は、ユーザへのトークン送信のため、ステップS54を実行する。割当済ブロックチェーンアドレスが無い場合、サーバ51は、ユーザへのブロックチェーンアドレスの割り当てのためのアドレス設定(ステップS55)を行ってから、ステップS54を実行する。
【0063】
ステップS54において、サーバ51は、ユーザアカウントに割り当てられたブロックチェーンアドレスへ、トークンが配布されるように、ブロックチェーン20を操作する。ここでのブロックチェーン20の操作の一例は、トークンを送信するスマートコントラクト22の呼び出しである。なお、ブロックチェーン20の操作は、スマートコントラクト22を利用することなく、システム10の管理者のブロックチェーンアドレスからトークンが送信されるブロックチェーン20を操作することであってもよい。
【0064】
さて、ステップS55が実行されるのは、例えば、ユーザが、初めてシステム10のサーバ51にアクセスした場合、又は、ユーザは、システム10のサーバ51にアクセスしたことはあるが、トークンの取得などブロックチェーン20に関連したサービスの提供を受けたことがない場合である。
【0065】
ステップS55において、サーバ51は、ユーザがサーバ51にログインするためのユーザアカウント500を生成する(ステップS55A)。ユーザアカウント500は、サーバ51が提供するオンラインサービスのためのアカウントである。サーバ51が提供するオンラインサービスは、例えば、トークンの送受信・トークンの閲覧などブロックチェーンに関連したサービスを含むことができる。サーバ51が提供するオンラインサービスは、ブロックチェーンに直接関連しないサービスを含んでもよい。ブロックチェーンに直接関連しないサービスは、例えば、ソーシャルネットワークサービス(SNS)、オンラインショッピングサービス、オンラインゲームサービス、音楽、動画又は電子出版物のオンライン提供サービス、オンライン教育サービス、及びメタバース(Metaverse)サービスのいずれかである。トークン配布を契機として、これらのサービスのユーザアカウント500がユーザのために生成されることで、これらのサービスのユーザ数を増加させることができる。
【0066】
ユーザアカウント500の生成のため、必要に応じて、ユーザのID及びパスワードが設定される。ユーザのID及びパスワードは、サーバ51が決定してもよいし、ユーザが決定してもよい。ユーザアカウント500のID及びパスワードとしては、後述のブロックチェーンアドレス及びプライベートキーが用いられてもよい。この場合、ブロックチェーンアドレス及びプライベートキーが、ユーザアカウント500のID及びパスワードに兼用されるため、ユーザの利便性が高まる。
【0067】
サーバ51は、ユーザアカウント500に、ユーザのためのブロックチェーンアドレスを割り当てる(ステップS55B)。ユーザアカウント500に割り当てられるブロックチェーンアドレスは、第1トークンリクエストR1に応じて、トークン配布処理51Kによってユーザへ送信されるトークンを受信するための受信用ブロックチェーンアドレスである。受信用ブロックチェーンアドレスは、ユーザに割り当てられると、前述の割当済ブロックチェーンアドレスとして扱われる。なお、ユーザに割り当てられた受信用ブロックチェーンアドレスは、トークンの送信等の他の用途に用いられてもよい。
【0068】
実施形態においては、サーバ51によってユーザにブロックチェーンアドレスが割り当てられるため、ユーザは、ブロックチェーンアドレスの取得の手間から解放される。また、ユーザは、ブロックチェーンアドレスの取得を特に意識することなく、ブロックチェーンアドレスの割り当てを受けることも可能である。
【0069】
なお、第1トークンリクエストR1を送信したユーザが、サーバ51におけるユーザアカウント500を既に有しているが、そのユーザアカウント500にブロックチェーンアドレスが未割当の場合もあり得る。例えば、ユーザが、前述の「ブロックチェーンに直接関連しないサービス」(前述のソーシャルネットワークサービス(SNS)など)を既に利用しており、そのサービスのユーザアカウント500を既に有している場合である。そのサービスにおいて、トークン配布が行われる場合、そのユーザは、ユーザアカウント500にログインした状態で、サーバ51へ第1トークンリクエストを送信してもよい。この場合、アドレス設定(ステップS55)において、ユーザアカウント500の生成(ステップS55A)は、省略され得る。
【0070】
以上のように、本実施形態において、第1トークンリクエストR1は、ブロックチェーンアドレスの割り当てを伴うこともある。したがって、第1トークンリクエストR1は、サーバ51がユーザアカウント500にブロックチェーンアドレスを割り当てることを要求する「割当リクエスト」又はサーバ51がブロックチェーンアドレスを割り当てることを承認する「割当承認」などのユーザ指示として捉えることができる。サーバ51は、ブロックチェーンアドレスを割り当てるためのユーザ指示R1を受け付けると、サーバ51におけるユーザの既存ユーザアカウント500にブロックチェーンアドレスを割り当てる。これにより、ユーザは、ブロックチェーン20を利用できない既存ユーザアカウント500を、ブロックチェーン20を利用できるユーザアカウント500に変更することができる。なお、ブロックチェーンアドレスを割り当てるためのユーザ指示R1は、トークンコードが対応付けられていなくてもよい。
【0071】
既存ユーザアカウント500を、ブロックチェーン20をも利用できるユーザアカウント500に更新した場合、ユーザは、そのユーザアカウント500にログインした状態で、ブロックチェーン20におけるトークンの取引・閲覧等のブロックチェーン関連サービスを利用することができる。例えば、ユーザは、ソーシャルネットワークサービス(SNS)、オンラインショッピングサービス、オンラインゲームサービス、音楽、動画又は電子出版物のオンライン提供サービス、オンライン教育サービス、又はメタバース(Metaverse)サービスなどのオンラインサービスにログインした状態で、ブロックチェーン20におけるトークンの取引・閲覧等のブロックチェーン関連サービスを利用することができる。
【0072】
実施形態においては、受信用ブロックチェーンアドレスは、一例として、予め発行された複数の割当候補ブロックチェーンアドレスから、サーバ51によって選択される。予め発行された複数の割当候補ブロックチェーンアドレスは、例えば、ブロックチェーンアドレスリスト51F(
図2参照)に格納されている。ブロックチェーンアドレスリスト51Fに格納された割当候補ブロックチェーンアドレスは、システム10の管理者等によって、ブロックチェーン20において発行済みであるが、ユーザに未割当のアドレスである。
図2に示すブロックチェーンアドレスリスト51Fには、一例として、
図3に示す第1~第3ブロックチェーンアドレス25A,25B,25Cが格納されている。サーバ51は、ブロックチェーンアドレスリスト51Fから、適宜、一つの割当用ブロックチェーンアドレスを選択し、選択された割当用ブロックチェーンアドレスを、受信用ブロックチェーンアドレスとして、ユーザに割り当てることができる。
【0073】
ブロックチェーンアドレスの発行は、ブロックチェーン20に記録される必要があり、ブロックチェーン20への記録には時間を要することがある。このため、ブロックチェーンアドレスの発行には時間を要することがある。しかし、複数のブロックチェーンアドレスを、割当用として予め発行しておくことで、割り当てが必要となったときに、迅速にブロックチェーンアドレスを割り当てることができる。特に、ブロックチェーンアドレス予め発行しておくことで、多数の割り当てを短時間で行わなければならない場合にも容易に対処でき有利である。
【0074】
なお、サーバ51は、割り当ての必要が生じてから、ブロックチェーンアドレス(プライベートキー)の発行のための処理を実行してもよい。例えば、ステップS53において、割当済ブロックチェーンアドレスが無いと判定されてから、ユーザに割り当てるための割当用ブロックチェーンアドレスを発行してもよい。この場合、予めブロックチェーンアドレス(プライベートキー)を発行しておく必要がなく、簡便である。
【0075】
図2に示すブロックチェーンアドレスリスト51Fには、割当候補ブロックチェーンアドレスに対応するプライベートキーも格納されている。ブロックチェーン20において、プライベートキーは、取引に必要である。前述のように、ブロックチェーンアドレス及びプライベートを、サーバ51におけるユーザアカウント500のためのID及びパスワードとして用いてもよい。
【0076】
割当候補ブロックチェーンアドレスに対応するプライベートキーは、割当候補ブロックチェーンアドレスがユーザに割り当てられた際に、そのユーザに送信されて、ユーザにおいて保存されるのが好ましい。この場合、ユーザは、プライベートキーを用いて、ブロックチェーン20においてトークンの取引をすることができる。
【0077】
また、割当候補ブロックチェーンアドレスに対応するプライベートキーは、割当候補ブロックチェーンアドレスがユーザに割り当てられた後においても、引き続きサーバ51に保存されてもよい。この場合、サーバ51は、ユーザのために、プライベートキーを安全に保管し、ユーザの必要に応じて、プライベートキーをユーザに使用させることができる。
【0078】
図6は、ユーザアカウント500へ第1ブロックチェーンアドレス25Aを割り当てる例を示している。
図6に示すステップS61の状態において、ブロックチェーン20では、第1ブロックチェーンアドレス25A(0x11111)が予め発行されており、サーバ51は、第1ブロックチェーンアドレス25Aを割当候補ブロックチェーンアドレスとして有している。また、サーバ51は、第1ブロックチェーンアドレスに対応するプライベートキーも有している。
図6に示すステップS61の状態において、サーバ51は、第1トークンリクエストR1を受信する。なお、
図6のステップS61は、
図5のステップS51に対応する。
【0079】
サーバ51は、第1トークンリクエストR1を受信すると、ユーザアカウント500を生成し、そのユーザアカウント500に第1ブロックチェーンアドレス25Aを割り当てる(ステップS62)。なお、
図6のステップS62は、
図5のステップS55に対応する。
【0080】
サーバ51は、ユーザアカウント500を生成すると、既に受信している第1トークンリクエストR1を、ユーザアカウント500からのリクエストとして扱う。つまり、サーバ51は、ユーザアカウント500が存在しない状態で受信した第1トークンリクエストR1を、事後的に生成したユーザアカウント500において受信したリクエストとして扱う。
【0081】
ユーザアカウント500には第1ブロックチェーンアドレス25Aが割り当てられているため、第1トークンリクエストR1は、ユーザアカウント500を介して、第1ブロックチェーンアドレス25Aに関連付けられる。つまり、サーバ51は、第1トークンリクエストR1を有するユーザアカウント500によって、第1トークンリクエストR1に応じたトークンの送信先が、ユーザアカウント500に割り当てられた第1ブロックチェーンアドレス25Aであることを認識することができる。
【0082】
以上のように、
図5のステップS55Bが実行された場合、ステップS55においてユーザに割り当てられた受信用ブロックチェーンアドレス25Aが、第1トークンリクエストR1に応じて送信されるトークンの送信先アドレスとして設定される。すなわち、サーバ51は、ユーザに割り当てられたブロックチェーンアドレス25Aをトークン送信先として、トークンが送信されるようにブロックチェーン20を操作する。例えば、サーバ51は、ユーザに割り当てられたブロックチェーンアドレス25Aをトークン送信先として指定して、スマートコントラクト22を呼び出す。スマートコントラクト22は、呼び出されるとトークンを指定された送信先へ送信するよう構成されているため、指定された送信先であるブロックチェーンアドレス25A(0x11111)へ、第1トークンリクエストR1に応じたトークンが送信される。
【0083】
以上のように、ユーザに割り当てられたブロックチェーンアドレス25Aへトークンが送信されると、ユーザは、そのトークンを所有していることになる。ユーザが所有するトークンは、サーバ51のユーザアカウント500において参照又は取引可能となる。
【0084】
図7は、スマートコントラクト22が実行するトークン送信のための第1送信処理23(
図3参照)の例を示している。第1送信処理23では、第1トークンリクエストR1を受信する前において予め発行されているNFT501,502,503が、第1トークンリクエストR1に応じて送信される。
図3に示すスマートコントラクト22は、予め発行された複数のNFT501,502,503を有している。スマートコントラクト22は、複数のNFT501,502,503から選択された1又は複数のNFTを、指定された送信先へ送信するよう構成されている。
【0085】
図7に示す第1送信処理23では、スマートコントラクト22は、サーバ51から呼び出されると、所有するNFTの中から、指定された送信先へ送信するNFTを決定する(ステップS71)。スマートコントラクト22は、決定したNFTを指定された送信先へ送信する(ステップS72)。
【0086】
ステップS71の決定は、スマートコントラクト22が所有するNFTの中からランダムに行われてもよいし、所定の規則に基づいて行われてもよいし、サーバ51から送信された第2コードに基づいて決定されてもよい。サーバ51は、必要に応じて、スマートコントラクト22へ第2コードを送信することができる(ステップS70)。第2コードは、スマートコントラクト22が、送信すべきNFTを識別するための情報を示す。例えば、第2コードは、送信すべきNFTのNFT識別子(例えば、Nft_id01)、スマートコントラクト22が送信すべきNFTのNFT識別子を識別し得るその他のデータ(識別子)、又は、送信すべきNFTのタイプを示すデータ、である。
【0087】
図8は、スマートコントラクト22が第2コードを受信する例を示している。第2コードは、サーバ51が、例えば、スマートコントラクト22を呼び出す際に、サーバ51からスマートコントラクト22へ送信される(ステップS81)。サーバ51は、第2コードの送信に先立って、スマートコントラクト22へ送信すべき第2コードを決定する。例えば、サーバ51は、第1トークンリクエストR1を受信すると、第2コードを決定する。
【0088】
第2コードは、トークンコード(第1コード)に基づいて決定されてもよいし、トークンコード(第1コード)とは無関係に決定されてもよい。第2コードが第1コードに基づいて決定される場合、ユーザに送信されるトークンは、ユーザに配布された第1コードによって決定されることになる。第2コードを第1コードに基づいて決定するには、例えば、サーバ51が、第1コードと第2コードとが対応付けられたテーブルを有しておき、そのテーブルを参照することで、サーバ51が受信した第1コードから第2コードを求めればよい。また、第2コードは、第1コードと同じでもよい。
【0089】
第2コードが第1コードとは無関係に決定される場合、第1コードは専ら第1トークンリクエストR1の有効性に用いられる。第1コードに基づいて第1トークンリクエストR1が有効であると判定された場合、サーバ51が、独自に第2コードを決定することができる。
【0090】
第2コードがNFT識別子である場合、サーバ51は、スマートコントラクト22が有するNFTのNFT識別子を有するNFTリスト51G(
図2参照)を参照し、第2コードとなるNFT識別子を決定することができる。サーバ51は、NFTリストに含まれるNFT識別子のうち、NFTが未送信であるものを適宜選択する。選択されるNFT識別子は、1つでもよいし、複数でもよい。ここでのNFT識別子は、ブロックチェーン20におけるNFT識別子(例えば、Nft_id01)であってもよいし、スマートコントラクト22が、ブロックチェーン20におけるNFT識別子(例えば、Nft_id01)を識別するためのその他の識別子であってもよい。
【0091】
第2コードがNFTのタイプを示すデータである場合、サーバ51は、NFTのタイプの一覧を示すNFTタイプリスト51H(
図2参照)を参照し、第2コードとなるNFTタイプを決定することができる。サーバ51は、NFTのタイプをランダム又は所定の規則に従って決定できる。サーバ51は、第1コードに基づいて、第2コードとなるNFTタイプを決定してもよい。
【0092】
ここで、「タイプ」とは、トークンの種類をいう。FTのタイプは、FTの名称によって区別され得る。NFTのタイプは、2以上のNFTが共通して有する性質によって区別され得る。例えば、2以上のNFTが同じ画像を共通して有している場合、それらのNFTは同じタイプになり得る。「タイプ」は、スマートコントラクト22によって識別され得るものであれば、特に限定されない。スマートコントラクト22は、例えば、NFTタイプを示す第2コードを受信すると、第2コードが示すNFTタイプを有するNFTを、送信すべきNFTとして決定することができる。
【0093】
図2に示すNFTタイプリスト51Hでは、一例として、「TypeA」、「TypeB」、「TypeC」の3つが格納されている。例えば、TypeAは、あるスポーツ選手P1の画像を持つNFTのタイプである。TypeBは、他のスポーツ選手P2の画像を持つNFTのタイプである。TypeCは、さらに他のスポーツ選手P3の画像を持つNFTのタイプである。なお、同一の画像を持つなどの同一タイプのNFTは、そのNFTに付されたシリアル番号(
図4参照)によって、区別され得る。
【0094】
第2コードを受信したスマートコントラクト22は、第2コードに基づいて決定されたNFTを、指定された送信先である第1ブロックチェーンアドレス25Aへ送信する(ステップS82)。なお、スマートコントラクト22への第2コードの送信は、スマートコントラクト22へ、トークン送信を要求するトークンリクエストともいえる。したがって、第2コードの送信は、第2トークンリクエストの送信ともいえる。
【0095】
第2コードがNFT識別子である場合、スマートコントラクト22は、送信すべきNFTをNFT識別子に基づいて一意に決定できる。第2コードがNFTタイプである場合、スマートコントラクト22は、第2コードが示すNFTタイプを有する複数のNFTの中から、適宜選択した1又は複数のNFTを、送信すべきNFTとして決定することができる。なお、送信すべきトークンが、FTである場合、スマートコントラクト22は、第2コードに応じて、送信すべきFTの数量を決定してもよい。
【0096】
図9は、トークン送信のための第2送信処理24(
図3参照)を示している。第1送信処理23では、予め発行されたNFTが送信されるが、第2送信処理24では、送信の必要が生じてからNFTが生成させ、生成されたNFTが送信される。第1送信処理23では、送信に備えて、多数のNFTを在庫として、システム10が予め保有している必要がある。在庫としてのNFTを保有する場合、在庫管理が煩雑となる。例えば、在庫となるNFTが少ないと在庫切れのおそれがある。逆に、在庫切れを回避しようとすると、システム10の管理者は、予め膨大な数のNFTを予め生成しておいて、スマートコントラクト22等に格納しておく必要がある。システムに在庫となるNFTを多く保有させる場合、システム10の管理者は、膨大な数のNFTを予め生成する作業負担を負うことになる。これに対して、第2送信処理24では、トークンリクエストを受けてからNFTが生成されるため、トークンリクエストを受信する前の時点においては、NFTを非保有でよい。すなわち、システム10は、送信すべきNFTの在庫を保有する必要がない。
【0097】
システム10が、複数のタイプのNFTを配布・提供するよう構成されている場合、NFTのタイプ毎に多数のNFTを予め準備する必要が生じる。しかし、第2送信処理24では、第2コードによって、生成すべきNFTのタイプが識別されるため、適切なタイプのNFTを生成して、送信することができる。したがって、NFTのタイプ毎に多数のNFTを予め準備する必要がない。
【0098】
図9に示す第2送信処理24では、スマートコントラクト22は、NFTのタイプを示す第2コードを受信すると、第2コードが示すタイプのNFTを生成し(ステップS91)、生成したNFTを指定された送信先へ送信する(ステップS92)。なお、NFTの生成は、外部の装置(例えば、サーバ51又は他のサーバ)によって行われてもよい。スマートコントラクト22は、外部の装置にNFTの生成を委ね、外部の装置によって生成されたNFTを送信してもよい。
【0099】
サーバ51は、スマートコントラクト22へ第2コードを送信するため、送信すべき第2コードを決定する(ステップS92)。サーバ51は、NFTのタイプの一覧を示すNFTタイプリスト51H(
図2参照)を参照し、第2コードとなる1又は複数のNFTタイプを決定することができる。サーバ51は、NFTタイプリスト51Hの中から、NFTタイプをランダム又は所定の規則に従って決定できる。サーバ51は、第1コードに基づいて、第2コードとなるNFTタイプを決定してもよい。
【0100】
スマートコントラクト22は、第2コードを受信すると、受信した第2コードに基づいて、生成すべきNFTタイプを識別する。NFTの生成のため、タイプ毎に、NFT化されるデータが予め用意されている。NFT化されるデータは、例えば、画像データである。NFTの生成は、第2コードに基づいて識別されたタイプに対応するデータを、NFT化することによって行われる。同じタイプ又は同じデータを有するNFTを区別するため、NFTには、シリアル番号(
図4参照)が付与され得る。
【0101】
NFT化のために、一つのタイプに対応するデータは、1つでもよいが、複数であるのが好ましい。例えば、ある一人のスポーツ選手P1が一つのタイプである場合、そのスポーツ選手の複数の異なる画像データが用意されているのが好ましい。この場合、受信した第2コードに基づいて、生成すべきNFTタイプがスポーツ選手P1であると識別されると、更に、そのスポーツ選手P1の複数の異なる画像データの中から、NFT化される画像データが決定される。NFT化される画像データの決定は、ランダムに行われてもよいし、所定のルールに基づいて行われてもよい。また、第2コードは、生成すべきNFTタイプ及びNFT化される画像データの両方を示してもよく、この場合、NFT化される画像データは、第2コードに基づいて決定される。
【0102】
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【0103】
<3.付記>
本開示は、以下の事項も含む。
【0104】
[項1]
トークンリクエストを、ユーザのクライアント端末から受信し、
前記トークンリクエストを受信すると、前記ユーザに割り当てられた前記受信用ブロックチェーンアドレスへ前記トークンを送信する、
ことを備える処理を実行するよう構成されている、トークン配布システム又はその方法。
【0105】
前記の項1によれば、トーク配布システムは、送信すべきノンファンジブルトークンを予め在庫として保有する必要がない。
【0106】
[項2]
トークンリクエストを、ユーザのクライアント端末から受信し、
前記トークンリクエストの有効性を判定し、前記トークンリクエストが有効であると判定されると、ノンファンジブルトークンを生成し、
生成した前記ノンファンジブルトークンを、前記ユーザのブロックチェーンアドレスへ送信する
ことを備える処理を実行するよう構成されている、トークン配布システム又はその方法。
【0107】
前記の項2によれば、有効なトークンリクエストを受信すると、ノンファンジブルトークンが生成され、送信される。
【0108】
[項3]
コードを、ユーザのクライアント端末から受信し、
前記コードの有効性を判定し、前記コードが有効であると判定されると、ノンファンジブルトークンを生成し、
生成した前記ノンファンジブルトークンを、前記ユーザのブロックチェーンアドレスへ送信する
ことを備える処理を実行するよう構成されている、トークン配布システム又はその方法。
【0109】
前記の項3によれば、有効なコードを受信すると、ノンファンジブルトークンが生成され、送信される。
【0110】
[項4]
既存ユーザアカウントに対して、ブロックチェーンアドレスを割り当てるためのユーザ操作を、ユーザのクライアント端末から受け付け、
前記ユーザ操作を受け付けると、ブロックチェーンアドレスを、前記既存ユーザアカウントに割り当てる
ことを備える処理を実行するよう構成されているトークン配布システム又はその方法。
【0111】
前記の項4によれば、既存ユーザアカウントにブロックチェーンアドレスを割り当てることができる。
【符号の説明】
【0112】
10 :トークン配布システム
15 :ネットワーク
20 :ブロックチェーン
22 :スマートコントラクト
23 :第1送信処理
24 :第2送信処理
25A :第1ブロックチェーンアドレス
25B :第2ブロックチェーンアドレス
25C :第3ブロックチェーンアドレス
31 :クライアント端末
31A :第1画面表示
31B :第2画面表示
51 :トークンリクエスト受付サーバ
51A :プロセッサ
51B :記憶装置
51C :コンピュータプログラム
51D :判定条件
51E :コードリスト
51F :ブロックチェーンアドレスリスト
51G :NFTリスト
51H :NFTタイプリスト
51K :トークン配布処理
60 :二次元コード
101 :有形媒体
101B :コード表示部
120 :ユニフォームリソースアイデンティファイア
120 :URI
123A :URI本体
123C :トークンコード
301 :表示
302 :操作部
500 :ユーザアカウント
501 :NFT
502 :NFT
503 :NFT
R1 :第1トークンリクエスト