(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024070023
(43)【公開日】2024-05-22
(54)【発明の名称】コンピュータシステム実装方法及びコンピュータシステム
(51)【国際特許分類】
G06Q 20/38 20120101AFI20240515BHJP
【FI】
G06Q20/38 310
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2022180360
(22)【出願日】2022-11-10
(71)【出願人】
【識別番号】520295029
【氏名又は名称】Xクリエーション株式会社
(71)【出願人】
【識別番号】518003096
【氏名又は名称】Bacoor dApps株式会社
(71)【出願人】
【識別番号】320003367
【氏名又は名称】株式会社AI商事
(74)【代理人】
【識別番号】100111567
【弁理士】
【氏名又は名称】坂本 寛
(72)【発明者】
【氏名】河上 昌浩
(72)【発明者】
【氏名】春名 幸雄
(72)【発明者】
【氏名】竹内 仁
【テーマコード(参考)】
5L020
5L055
【Fターム(参考)】
5L020AA71
5L055AA71
(57)【要約】
【課題】非所有者ユーザに、所有者と同一の役割又は所有者に近い役割を担わせるための新たな技術的手段を提供する。
【解決手段】開示の方法は、コンピュータシステムによって実行されるコンピュータシステム実装方法であって、ノンファンジブルトークンの操作のリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、第2アカウントによって、ブロックチェーンにおける前記ノンファンジブルトークンの前記操作を実行する、ことを備え、前記第1アカウントは、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録されている、又は、前記操作によって前記非所有者ユーザとして前記ブロックチェーンに記録される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータシステムによって実行されるコンピュータシステム実装方法であって、
ノンファンジブルトークンの操作のリクエストを、第1アカウントから受け付け、
前記リクエストを受け付けると、第2アカウントによって、ブロックチェーンにおける前記ノンファンジブルトークンの前記操作を実行する、
ことを備え、
前記第1アカウントは、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録されている、又は、前記操作によって前記非所有者ユーザとして前記ブロックチェーンに記録される
コンピュータシステム実装方法。
【請求項2】
前記操作を前記ブロックチェーンに記録するために前記ブロックチェーンへ支払うべきガス代は、前記第2アカウントから支払われる
請求項1に記載のコンピュータシステム実装方法。
【請求項3】
前記操作を実行するため、前記ガス代とは別の手数料の支払いを、前記コンピュータシステムが前記第1アカウントから受け付ける
ことを更に備える、
請求項2に記載のコンピュータシステム実装方法。
【請求項4】
前記手数料は、前記ガス代とは異なる額である
請求項3に記載のコンピュータシステム実装方法。
【請求項5】
前記第1アカウントからの前記手数料の支払いは、前記ガス代の支払いに用いられる暗号資産とは異なる種類の暗号資産の支払い、又は、暗号資産の支払い以外の決済によって行われる
請求項3に記載のコンピュータシステム実装方法。
【請求項6】
前記操作は、前記コンピュータシステムが前記第1アカウントから手数料の支払いを受け付けることなく実行される
請求項2に記載のコンピュータシステム実装方法。
【請求項7】
前記操作は、前記ノンファンジブルトークンの前記非所有者ユーザの変更操作を含む
請求項1に記載のコンピュータシステム実装方法。
【請求項8】
前記ノンファンジブルトークンは、前記ブロックチェーンにおいて、前記所有者の変更不可に設定されている
請求項1に記載のコンピュータシステム実装方法。
【請求項9】
前記第2アカウントは、前記コンピュータシステムによって管理されている
請求項1に記載のコンピュータシステム実装方法。
【請求項10】
前記第2アカウントは、前記ノンファンジブルトークンの所有者として前記ブロックチェーンに記録されている
請求項1に記載のコンピュータシステム実装方法。
【請求項11】
前記ノンファンジブルトークンは、借主が前記ブロックチェーンに記録されるレンタル可能なノンファンジブルトークンであり、
前記非所有者ユーザは、前記借主である
請求項1から請求項10のいずれか1項に記載のコンピュータシステム実装方法。
【請求項12】
コンピュータシステムによって実行されるコンピュータシステム実装方法であって、
ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、
前記リクエストを受け付けると、ノンファンジブルトークンの生成を、第2アカウントによって実行することで、前記第2アカウントを、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録し、
前記第1アカウントを、生成された前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録する
ことを備える
コンピュータシステム実装方法。
【請求項13】
前記リクエストは、識別子を含み、
生成された前記ノンファンジブルトークンは、前記コンピュータシステム又は前記ブロックチェーンにおいて、前記識別子に対応付けられている
請求項12に記載のコンピュータシステム実装方法。
【請求項14】
前記ノンファンジブルトークンの生成は、前記識別子が前記コンピュータシステムに登録されている場合に実行される
請求項13に記載のコンピュータシステム実装方法。
【請求項15】
コンピュータシステムによって実行されるコンピュータシステム実装方法であって、
ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、
前記リクエストを受け付けると、ノンファンジブルトークンに対する操作を、第2アカウントによって実行する
ことを備え、
前記第2アカウントは、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録されており、
前記操作は、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして、前記第1アカウントを前記ブロックチェーンに記録することを含む
コンピュータシステム実装方法。
【請求項16】
前記リクエストは、識別子を含み、
前記ノンファンジブルトークンは、前記コンピュータシステム又は前記ブロックチェーンにおいて、前記識別子に対応付けられている
請求項15に記載のコンピュータシステム実装方法。
【請求項17】
コンピュータシステムであって、
ノンファンジブルトークンの操作のリクエストを、第1アカウントから受け付け、
前記リクエストを受け付けると、第2アカウントによって、ブロックチェーンにおける前記ノンファンジブルトークンの前記操作を実行する、
よう構成され、
前記第1アカウントは、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録されている、又は、前記操作によって前記非所有者ユーザとして前記ブロックチェーンに記録される
コンピュータシステム。
【請求項18】
コンピュータシステムであって、
ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、
前記リクエストを受け付けると、ノンファンジブルトークンの生成を、第2アカウントによって実行することで、前記第2アカウントを、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録し、
前記第1アカウントを、生成された前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録する
よう構成されたコンピュータシステム。
【請求項19】
コンピュータシステムであって、
ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、
前記リクエストを受け付けると、ノンファンジブルトークンに対する操作を、第2アカウントによって実行する
よう構成され、
前記第2アカウントは、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録されており、
前記操作は、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして、前記第1アカウントを前記ブロックチェーンに記録することを含む
コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ノンファンジブルトークンのためのコンピュータシステム実装方法及びコンピュータシステムに関する。
【背景技術】
【0002】
ノンファンジブルトークンが利用されるブロックチェーンゲーム等においては、ノンファンジブルトークンの所有者以外のユーザへ、ノンファンジブルトークンがレンタルされることがある。例えば、ノンファンジブルトークンの借り手は、高額なノンファンジブルトークンを購入することなくレンタルし、そのノンファンジブルトークンを使用してゲームをプレイすることができる。
【0003】
ノンファンジブルトークンのレンタル機能は、例えば、イーサリアムのEIP4907規格に規定されている(非特許文献1参照)。EIP4907は、イーサリアムのトークン規格であるERC721を拡張したものである。EIP4907では、「user」という役割が追加されている。EIP4907の「user」は、ノンファンジブルトークンの所有者(owner)とは異なり、ノンファンジブルトークンを譲渡することはできない。ただし、EIP4907の「user」は、ノンファンジブルトークンを使用することはできる。このように、EIP4907の「user」は、所有者に比べて、ノンファンジブルトークンに対する権限が制約されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】EIPs/eip-4907.md,[online],GitHub,[2022年10月31日検索],<URL:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4907.md>
【発明の概要】
【0005】
ブロックチェーンには、ノンファンジブルトークンの所有者とは別に、EIP4907における「user」のような非所有者ユーザが、ノンファンジブルトークンに関連付けて記録されることがある。非所有者ユーザは、ノンファンジブルトークンを所有してはいないが、ノンファンジブルトークンの所有者がブロックチェーンに記録されるのと同様に、非所有者ユーザもブロックチェーンに記録される。
【0006】
EIP4907における「user」のような非所有者ユーザは、ノンファンジブルトークンに関連していることが、ブロックチェーンの記録によって証明されるという利点がある。また、ブロックチェーンのガス代は、一般に、所有者によって支払われるものであるため、非所有者ユーザは、ガス代を支払う必要がないという利点もある。
【0007】
しかし、非所有者ユーザは、ブロックチェーンにおいては、所有者とは役割が異なる。このため、非所有者ユーザは、ブロックチェーンにおいて、ノンファンジブルトークンに対して所有者が実行し得る操作を実行できないことがある。また、一般に、ノンファンジブルトークンの生成した者は、そのノンファンジブルトークンの所有者となり、非所有者ユーザとなるわけではない。
【0008】
本発明者らは、非所有者ユーザに、所有者と同一の役割又は所有者に近い役割を担わせることで、ブロックチェーンにおける非所有者ユーザが有する利点を活用しつつも、非所有者ユーザの役割を実質的に拡大する、という新規な着想を得た。非所有者ユーザの役割を実質的に拡大させることで、ブロックチェーンゲームなどの分散型アプリケーション等において、非所有者ユーザの活用についての新たな途がひらかれる。
【0009】
以上の観点から、非所有者ユーザに、所有者と同一の役割又は所有者に近い役割を担わせるための新たな技術的手段が望まれる。
【0010】
本開示のある側面は、コンピュータシステムによって実行されるコンピュータシステム実装方法である。開示の方法は、ノンファンジブルトークンの操作のリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、第2アカウントによって、ブロックチェーンにおける前記ノンファンジブルトークンの前記操作を実行する、ことを備え、前記第1アカウントは、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録されている、又は、前記操作によって前記非所有者ユーザとして前記ブロックチェーンに記録される。
【0011】
他の観点における本開示の方法は、ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンの生成を、第2アカウントによって実行することで、前記第2アカウントを、前記ノンファンジブルトークンの所有者として前記ブロックチェーンに記録し、前記第1アカウントを、生成された前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録することを備える。
【0012】
他の観点における本開示の方法は、ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンに対する操作を、第2アカウントによって実行することを備え、前記第2アカウントは、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録されており、前記操作は、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして、前記第1アカウントを前記ブロックチェーンに記録することを含む。
【0013】
本開示の他の側面は、コンピュータシステムである。開示のコンピュータシステムは、ノンファンジブルトークンの操作のリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、第2アカウントによって、ブロックチェーンにおける前記ノンファンジブルトークンの前記操作を実行する、よう構成され、前記第1アカウントは、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録されている、又は、前記操作によって前記非所有者ユーザとして前記ブロックチェーンに記録される。
【0014】
他の観点における本開示のシステムは、ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンの生成を、第2アカウントによって実行することで、前記第2アカウントを、前記ノンファンジブルトークンの所有者として前記ブロックチェーンに記録し、前記第1アカウントを、生成された前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録するよう構成されている。
【0015】
他の観点における本開示のシステムは、ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンに対する操作を、第2アカウントによって実行するよう構成され、前記第2アカウントは、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録されており、前記操作は、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして、前記第1アカウントを前記ブロックチェーンに記録することを含む。
【0016】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【0017】
【
図1】
図1は、実施形態に係るシステムの構成図である。
【
図2】
図2は、システムの構成要素を示す概略図である。
【
図3】
図3は、コンピュータシステムの構成図である。
【
図4】
図4は、NFT生成/ユーザ変更操作のフローチャートである。
【
図5】
図5は、NFT生成/ユーザ変更のシナリオを示すフローチャートである。
【
図6】
図6は、NFTの使用のフローチャートである。
【
図7】
図7は、NFT生成操作のフローチャートである。
【
図8】
図8は、NFT生成操作のフローチャートである。
【
図9】
図9は、NFTユーザ変更操作のフローチャートである。
【
図10】
図10は、NFTユーザ変更操作のフローチャートである。
【発明を実施するための形態】
【0018】
<1.コンピュータシステム実装方法及びコンピュータシステム>
【0019】
(1)実施形態に係る方法は、コンピュータシステムによって実行されるコンピュータシステム実装方法であって、ノンファンジブルトークンの操作のリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、第2アカウントによって、ブロックチェーンにおける前記ノンファンジブルトークンの前記操作を実行する、ことを備え得る。前記第1アカウントは、前記操作を実行する権限を有していなくてもよい。第2アカウントは、前記操作を実行する権限を有し得る。前記第1アカウントは、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録されている、又は、前記操作によって前記非所有者ユーザとして前記ブロックチェーンに記録される。
【0020】
(2)前記操作を前記ブロックチェーンに記録するために前記ブロックチェーンへ支払うべきガス代は、前記第2アカウントから支払われるのが好ましい。
【0021】
(3)前記コンピュータ実装方法は、前記操作を実行するため、前記ガス代とは別の手数料の支払いを、前記コンピュータシステムが前記第1アカウントから受け付けることを更に備えるのが好ましい。
【0022】
(4)前記手数料は、前記ガス代とは異なる額であるのが好ましい。
【0023】
(5)前記第1アカウントからの前記手数料の支払いは、前記ガス代の支払いに用いられる暗号資産とは異なる種類の暗号資産の支払い、又は、暗号資産の支払い以外の決済によって行われるのが好ましい。
【0024】
(6)前記操作は、前記コンピュータシステムが前記第1アカウントから手数料の支払いを受け付けることなく実行されてもよい。
【0025】
(7)前記操作は、前記ノンファンジブルトークンの前記非所有者ユーザの変更操作を含み得る。
【0026】
(8)前記ノンファンジブルトークンは、前記ブロックチェーンにおいて、前記所有者の変更不可に設定され得る。
【0027】
(9)前記第2アカウントは、前記コンピュータシステムによって管理されているのが好ましい。
【0028】
(10)前記第2アカウントは、前記ノンファンジブルトークンの所有者として前記ブロックチェーンに記録されているのが好ましい。前記非所有者ユーザは、前記ブロックチェーンにおいて、前記所有者よりも前記ノンファンジブルトークンに対する権限が少ないユーザであり得る。前記操作は、前記ノンファンジブルトークンの非所有者ユーザの変更操作を含み得る。前記所有者は、前記非所有者ユーザの変更操作を行う権限を有し得る。前記非所有者ユーザは、前記非所有者ユーザの変更操作を行う権限を有しないユーザであり得る。
【0029】
(11)前記ノンファンジブルトークンは、借主が前記ブロックチェーンに記録されるレンタル可能なノンファンジブルトークンであり得る。前記非所有者ユーザは、前記借主であり得る。前記ノンファンジブルトークンは、EIP4907規格のノンファンジブルトークンであり得る。前記非所有者ユーザは、前記EIP4907規格における「user」であり得る。
【0030】
(12)実施形態に係る方法は、コンピュータシステムによって実行されるコンピュータシステム実装方法であって、ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンの生成を、第2アカウントによって実行することで、前記第2アカウントを、前記ノンファンジブルトークンの所有者として前記ブロックチェーンに記録し、前記第1アカウントを、生成された前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録することを備えるのが好ましい。
【0031】
(13)前記リクエストは、識別子を含み得る。生成された前記ノンファンジブルトークンは、前記コンピュータシステム又は前記ブロックチェーンにおいて、前記識別子に対応付けられているのが好ましい。
【0032】
(14)前記ノンファンジブルトークンの生成は、前記識別子が前記コンピュータシステムに登録されている場合に実行されるのが好ましい。
【0033】
(15)実施形態に係る方法は、コンピュータシステムによって実行されるコンピュータシステム実装方法であって、ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンに対する操作を、第2アカウントによって実行することを備え得る。前記第2アカウントは、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録されているのが好ましい。前記操作は、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして、前記第1アカウントを前記ブロックチェーンに記録することを含むのが好ましい。
【0034】
(16)前記リクエストは、識別子を含み得る。前記ノンファンジブルトークンは、前記コンピュータシステム又は前記ブロックチェーンにおいて、前記識別子に対応付けられているのが好ましい。
【0035】
(17)実施形態に係るシステムは、コンピュータシステムであって、ノンファンジブルトークンの操作のリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、第2アカウントによって、ブロックチェーンにおける前記ノンファンジブルトークンの前記操作を実行する、よう構成され得る。前記第1アカウントは、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録されている、又は、前記操作によって前記非所有者ユーザとして前記ブロックチェーンに記録されるのが好ましい。
【0036】
(18)実施形態に係るシステムは、コンピュータシステムであって、ノノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンの生成を、第2アカウントによって実行することで、前記第2アカウントを、前記ノンファンジブルトークンの所有者として前記ブロックチェーンに記録し、前記第1アカウントを、生成された前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして前記ブロックチェーンに記録するよう構成されているのが好ましい。
【0037】
(19)実施形態に係るシステムは、コンピュータシステムであって、ノンファンジブルトークンのリクエストを、第1アカウントから受け付け、前記リクエストを受け付けると、ノンファンジブルトークンに対する操作を、第2アカウントによって実行するよう構成され得る。前記第2アカウントは、前記ノンファンジブルトークンの所有者としてブロックチェーンに記録されているのが好ましい。前記操作は、前記ノンファンジブルトークンに関連付けられた非所有者ユーザとして、前記第1アカウントを前記ブロックチェーンに記録することを含むのが好ましい。
【0038】
<2.コンピュータシステム実装方法及びコンピュータシステムの例>
【0039】
実施形態に係るコンピュータシステム50Aは、実施形態に係るコンピュータシステム実装方法を実行する。コンピュータシステム50Aは、ブロックチェーン20を利用して、当該方法を実行する。なお、コンピュータシステム50A及びブロックチェーン20を含むシステムが、「コンピュータシステム10」と呼ばれてもよい。以下では、「コンピュータシステム10」を、「システム10」という。
【0040】
実施形態に係るコンピュータシステム50Aは、一例として、分散型アプリケーション(dApp)のためのプログラムを実行する1又は複数のコンピュータを備えるコンピュータシステムによって構成され得る。分散型アプリケーション(dApp)では、ブロックチェーンなどの分散ネットワーク技術が利用される。分散型アプリケーションは、例えば、分散型金融(Decentralized Finance:DiFi)のためのアプリケーション、ブロックチェーンゲーム、及びデジタル通貨などのアプリケーションなどがある。なお、分散型アプリケーションは、少なくともバックエンドが、ブロックチェーン20などの分散ネットワーク(分散コンピュータネットワークシステム)によって実行されればよく、ユーザインターフェースを提供するフロントエンド(クライアントサイド)は、実施形態に係るコンピュータシステム50Aのように管理者によって中央集権的に管理されるサーバ、又は、ユーザ端末によって実行されてもよい。バックエンドは、例えば、分散ネットワーク(ブロックチェーン)によって実行されるスマートコントラクトによって構成され得る。なお、フロントエンドも、分散ネットワークによって実行されてもよい。
【0041】
ブロックチェーン20は、複数のコンピュータが相互に接続されたP2P(Peer to Peer)のコンピュータネットワークによって構成されている。
【0042】
ブロックチェーン20においては、ブロックチェーンアドレスによって、ブロックチェーンの操作が可能である。操作は、例えば、トークンの取引、トークンの非所有者ユーザの設定等である。ブロックチェーン20における操作のトランザクションは、ブロックチェーン20の分散台帳に記録される。操作は、例えば、ブロックチェーン20のスマートコントラクトを呼び出すことで実行される。
【0043】
ブロックチェーンアドレスは、例えば、ブロックチェーン20におけるアカウント25A,25Bを示す。アカウント25A,25Bを示すブロックチェーンアドレスは、例えば、ウォレットアドレスである。アカウント25A,25Bを示すブロックチェーンアドレスは、例えば、外部所有アカウント(Externally Owned Account:EOA)である。例えば、あるユーザU1が、ブロックチェーン20にアカウント25Aを有している場合、そのアカウントは、所定のブロックチェーンアドレス(ウォレットアドレス)を有する。
図1においては、一例として、第1ユーザU1によって管理されたブロックチェーンアドレスは、「0x11aa」であり、第2ユーザU2によって管理されたブロックチェーンアドレスは、「0x11bb」である。
【0044】
図1では、一般のユーザU1,U2のアカウント25A,25Bは、「第1アカウント」と総称される。一般のユーザU1,U2とは、コンピュータシステム50A(の管理者)とは異なるユーザである。
【0045】
ここで、ユーザU1,U2それぞれは、ユーザU1,U2によって管理された第1アカウント25A,25Bに対応するプライベートキーPA,PBを有する、又は、当該プライベートキーPA,PBを使用可能である。より具体的には、ユーザU1,U2の端末31,32は、ユーザU1,U2によって管理された第1アカウント25A,25Bに対応するプライベートキーPA,PBを有する、又は、当該プライベートキーPA,PBを使用可能である。
【0046】
図1では、ユーザU1の端末31は、アドレス0x11aaに対応したプライベートキーPAを有しており、このプライベートキーPAを使用して、ブロックチェーン20におけるトランザクションに電子署名することができる。ユーザU2の端末32は、アドレス0x11bbに対応したプライベートキーPBを有しており、このプライベートキーPBを使用して、ブロックチェーン20におけるトランザクションに電子署名することができる。
【0047】
また、
図1では、コンピュータシステム50A(の管理者)によって管理されたブロックチェーンアドレス25Cが示されている。
図1において、コンピュータシステム50Aのブロックチェーンアドレス25Cは、「0x2222」である。アカウント25Cに対応したブロックチェーンアドレスは、外部所有アカウント(Externally Owned Account:EOA)であり得る。また、アカウント25Cに対応したブロックチェーンアドレスは、後述のコントラクトアドレスであってもよい。
【0048】
図1では、アカウント25Cが第2アカウントとして示されている。コンピュータシステム50Aは、第2アカウント25Cに対応するプライベートキーPCを有する、又は、当該プライベートキーPCを使用可能である。
図1では、コンピュータシステム50Aは、アドレス0x2222に対応したプライベートキーPCを有しており、このプライベートキーPCを使用して、第2アカウント25Cによって実行されるトランザクションに電子署名することができる。
【0049】
ブロックチェーン20おいては、例えば、トークンの取引等の操作が可能である。ブロックチェーン20において取引等の操作が可能なトークンとしては、例えば、ファンジブルトークン(代替性トークン;Fungible Token:FT)と、ノンファンジブルトークン(非代替性トークン;Non-Fungible Token:NFT)と、がある。ファンジブルトークンは、例えば、イーサリアム(Ethereum)におけるイーサ(Ether)などの暗号資産(ネイティブトークン)である。ファンジブルトークンは、企業又は個人などの特定の発行主体によってブロックチェーンにおいて発行される独自ファンジブルトークンであってもよい。
【0050】
ノンファンジブルトークン(NFT)は、ファンジブルトークン(FT)とは異なり、代替性を有さないトークンである。非代替性の確保のため、NFTは、ブロックチェーン20において、他のNFTとの区別を可能にするための固有のトークン識別子(TokenID)を有する。このトークン識別子は、NFT識別子(NFT_ID)とも呼ばれる。トークン識別子は、例えば、NFTの格納のためのブロックチェーンアドレス(コントラクトアドレス)において記録される。コントラクトアドレスは、コントラクトアカウントとも呼ばれる。
【0051】
ブロックチェーン20において、NFT又はファンジブルトークンは、所有者のアカウント(ブロックチェーンアドレス)に対応付けて記録される。本実施形態では、一例として、NFT400は、コンピュータシステム50Aによって所有され得る。すなわち、NFT400は、コンピュータシステム50Aによって管理されたブロックチェーンアドレス25C(管理者アドレス;第2アカウント)に対応付けて、ブロックチェーン20に記録され得る。
図1では、第2アカウント25Cであるアドレス:0x2222が、TokenID:#0001であるNFT400の所有者として、ブロックチェーン20に記録されている。すなわち、
図1では、第2アカウント25Cが、TokenID:#0001のNFT400を所有している。なお、アドレス:0x2222は、NFT400が配置されたスマートコントラクトのコントラクトアドレスであってもよい。このスマートコントラクトは、NFT400に対する操作を実行し得る。また、
図1では、第2アカウント25Cは、ある数量のファンジブルトークン(FT)を所有していることが示されている。このファンジブルトークン(FT)は、後述のガス代の支払い等に用いられ得る。
【0052】
ブロックチェーン20において、NFT400には、非所有者ユーザが関連付けて記録され得る。
図1においては、NFT400に関連付けてブロックチェーン20に記録された非所有者ユーザデータ450が示されている。非所有者ユーザデータ450は、非所有者ユーザのアドレスと、期限と、を有し得る。非所有者ユーザは、NFT400の所有者とは別に、NFT400に関連付けられたユーザである。期限は、非所有者ユーザの有効期限であり、期限が経過すると、非所有者ユーザは、非所有者ユーザではなくなる。
【0053】
図1に示す非所有者ユーザデータ450においては、一例として、TokenID:#0001であるNFT400の非所有者ユーザとして、第1ユーザU1(第1アカウント)のアドレス:0x11aaが記録されている。また、
図1に示す非所有者ユーザデータ450においては、非所有者ユーザの有効期限が設定されていないが、設定されていてもよい。
【0054】
実施形態においては、一例として、NFT400は、レンタル可能な(rentable)NFTである。NFTのレンタルは、NFTの所有者が、他者(非所有者ユーザ)にNFTを貸し出すことである。NFTのレンタルによって、例えば、NFTの所有者が、そのNFTの所有権を保持したまま、他者にそのNFTをブロックチェーンゲーム等において使用させることができる。
【0055】
レンタル可能なNFTは、例えば、EIP4907規格に規定されたレンタルNFTである。EIP4907は、イーサリアムのトークン規格であるERC721を拡張したものである。EIP4907では、「user」という役割が追加されている。EIP4907の「user」は、NFTの所有者(owner)とは異なり、NFT400を譲渡することはできない。ただし、EIP4907の「user」は、ノンファンジブルトークンを使用することはできる。NFTの所有者は、NFT400を譲渡し、使用し、そのNFT400にEIP4907の「user」を設定できる。NFT400の所有者は、EIP4907の「user」の期限を設定できる。
【0056】
このように、非所有者ユーザであるEIP4907の「user」は、ブロックチェーン20において、NFT400の所有者よりもNFT400に対する権限が少ない。したがって、非所有者ユーザであるEIP4907の「user」は、NFTについての所定の操作を行う権限を有しないが、所有者は、当該操作を行う権限を有する。例えば、非所有者ユーザであるEIP4907の「user」は、NFTの所有者の変更操作を行う権限を有しないが、所有者は、当該変更操作を行う権限を有する。また、非所有者ユーザであるEIP4907の「user」は、NFTのEIP4907「user」を設定又は変更する操作(設定/変更操作)を行う権限を有しないが、所有者は、当該設定/変更操作を行う権限を有する。
【0057】
実施形態においては、ユーザU1,U2(第1アカウント25A,25B)が、NFT400の非所有者ユーザとなり得る。NFT400の所有者は、第2アカウント25Cであり、第1アカウント25A,25Bは、所有者にはならない。このため、第1アカウント25A,25Bは、NFTの操作が制限されている。制限された操作は、第1アカウント25A,25Bの代わりに、第2アカウント25Cによって実行される。例えば、第1アカウント25Aが、コンピュータシステム50Aに対して、NFT400の操作をリクエストすると、第1アカウント25Aのために、第2アカウント25Cによって、リクエストされた操作が実行される。すなわち、第1アカウント25Aは、コンピュータシステム50Aにリクエストすることで、第1アカウント25Aによっては行えない操作を、代わりに実行してもらえる。または、第1アカウント25Aは、NFT400の生成のように、操作の実行者がNFT400の所有者になるのが通常である操作を、第2アカウント25Cに代わりに実行してもらえる。この結果、ブロックチェーン20においては制限されている第1アカウント25A,25Bの操作権限を、実質的に拡張することができる。
【0058】
例えば、第1アカウント25A,25Bは、コンピュータシステム50Aに対して、EIP4907「user」の変更操作をリクエストして、EIP4907「user」を変更することができる。また、第1アカウント25A,25Bは、コンピュータシステム50Aに対して、NFT400の生成をリクエストして、NFT400を生成してもらい、生成されたNFT400のEIP4907「user」として第1アカウント25A,25Bを設定してもらうことができる。このように、実施形態に係るコンピュータシステム50Aは、第1アカウント25A,25Bが、NFT400の所有者と同一視できる役割を果たせるように、第1アカウント25A,25Bの権限を実質的に拡張し得る。
【0059】
また、一般には、第1アカウント25A,25Bによって、NFTを生成(MINT)すると、生成されたNFT400の所有者は、NFT生成操作を実行した第1アカウント25A,25Bになる。しかし、本実施形態では、第1アカウント25A,25Bのリクエストに基づいて、NFT生成操作が実行されると、第1アカウント25A,25Bは、生成されたNFT400の非所有者ユーザとして設定される。実施形態においては、非所有者ユーザである第1アカウント25A,25Bは、所有者と同様の権限を有するように、権限が拡張されるため、生成されたNFT400を所有しているかのように、NFT400を操作することができる。
【0060】
権限が拡張された第1アカウント25A,25Bは、NFTが利用されるシステム50B(NFT利用システム50B)において、NFT400の所有者としてみなされ得る。NFT利用システム50Bは、例えば、ブロックチェーンゲーム又はその他のNFTが利用されるシステムである。第1アカウント25A,25Bを有するユーザは、NFT利用システム50Bにおいて、実質的に、NFT400の所有者として扱われ得る。なお、NFT利用システム50Bは、コンピュータシステム50Aが備えていてもよい。
【0061】
実施形態のコンピュータシステム50A,50Bにおいて、NFTの実質的な所有者とみなされる非所有者ユーザは、ブロックチェーン20においては、所有者ではない。ブロックチェーン20においては、NFTの所有者は、あくまでも、コンピュータシステム50Aによって管理された第2アカウント25Cである。非所有者ユーザは、所有者によってコントロール可能という利点があるが、実質的な所有者とみなされる非所有者ユーザも、この利点を有する。例えば、一般に、トークン所有者のブロックチェーンアカウントがハッキングされると、そのアカウントが有しているトークン等の資産は、他者へ移転されて、失われることが多い。これに対して、実施形態においては、実質的な所有者とみなされるユーザは、あくまで非所有者であるため、非所有者のアカウントがハッキングされて、あるトークンの非所有者ユーザが無断で変更されても、所有者である第2アカウント25C(コンピュータシステム50Aの管理者アカウント)によって、非所有者ユーザの再設定が可能であり、盗難されたトークンを取り戻すことが可能である。
【0062】
実施形態においては、NFT400の所有者である第2アカウント25CがNFT400の送信操作(すなわち、NFT400の所有者変更操作)をしないかぎり、NFT400の所有者は変更されず、NFT400の盗難が防止される。ただし、安全性をより高めるため、ブロックチェーン20において、NFT400は、所有者の変更不可に設定されているのが好ましい。すなわち、NFT400は、所有者変更不可であることがブロックチェーン20に記録されているのが好ましい。ブロックチェーン20において、NFT400の所有者が変更不可に設定されていると、NFT400の所有者であってもNFT400の送信操作(所有者変更操作)が行えなくなる。この結果、NFT400の所有者は、第2アカウント25Cであることが保証され、NFT400の所有者が無断で変更されることによる盗難を防止して、安全性が高まる。しかも、NFT400の所有者が変更不可であっても、実質的な所有者とみなされる非所有者ユーザの設定/変更によって、実質的な所有者の変更は可能である。すなわち、NFT400の所有者が変更不可に設定されても、非所有者ユーザを変更することで、NFT400を取引することが実質的に可能になる。
【0063】
図2は、実施形態に係るシステム10を構成する要素の一例を示している。実施形態における一例として、システム10は、NFTの生産システムとして動作し得る。生産システム10は、物体40が有する固有識別子を利用して、NFTを生産(生成)する。また、システム10は、生産されたNFT等の管理システムとして動作し得る。管理システム10は、物体40が有する固有識別子を利用して、生産されたNFTを管理する。管理システム10は、物体40が有する固有識別子を利用して、他のトークンを管理してもよい。また、管理システム10は、NFTの操作システム10と呼ばれてもよい。操作システム10は、NFTの生産又はその他のNFTの操作のための操作システムとして動作し得る。
【0064】
図2に示すシステム10は、ネットワーク15に接続されたサーバ50Aを備え得る。サーバ50Aは、複数のコンピュータによって構成されてもよい。サーバ50Aは、管理者によって管理され得る。一例として、当該サーバ50Aが、前述のコンピュータシステム50Aとして動作し得る。
【0065】
ユーザU1,U2の端末31,32は、ネットワーク15を介して、コンピュータシステム50Aにアクセスし得る。端末31,32は、ユーザのブロックチェーンによって、コンピュータシステム50Aにログインする。また、端末31,32は、ネットワーク15を介して、NFT利用システム50Bにログインし得る。ユーザU1の端末31は、アドレス:0x11aaによって、コンピュータシステム50A又はNFT利用システム50Bにログインし得る。また、ユーザU2の端末32は、アドレス:0x11bbによって、コンピュータシステム50A又はNFT利用システム50Bにログインし得る。
【0066】
端末31は、例えば、スマートフォン又はタブレットなどのモバイルデバイスである。以下では、端末31の構成に関して説明するが、端末32も同様の構成であり得る。
【0067】
端末31は、インターネットなどのネットワーク15に接続可能である。ユーザ端末31は、プロセッサ31A及び記憶装置31Bを備えるコンピュータによって構成され得る。記憶装置31Bは、プロセッサ31Aに接続されている。記憶装置31Bは、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置31Bは、プロセッサ31Aによって実行されるコンピュータプログラム31Cを備える。プロセッサ31Aは、記憶装置31Bに格納されたコンピュータプログラム31Cを読み出して実行する。コンピュータプログラム31Cは、端末31として機能するコンピュータによって実行される命令を示すプログラムコードを有する。
【0068】
また、コンピュータプログラム31Cは、NFCモジュール31Dによる近距離無線通信を介して、NFCタグ40から、データを受信するための機能を提供し得る。コンピュータプログラム31Cは、ブロックチェーン20のアカウント25AのためのプライベートキーPAを、端末31の記憶装置31Bに保存する機能を提供し得る。プライベートキーPAは、ユーザU1のアカウント25Aに対応付けられている。
【0069】
実施形態においては、ユーザ端末31,32は、物体40が有する識別子46の読取器として動作し得る。物体40は、その物体40を識別するための識別子46を有するものであれば特に限定されないが、一例として、物体40は、固有識別子を有する集積回路(integrated circuit:IC)を備える。識別子46は、一例として、当該集積回路が有する固有識別子である。集積回路40は、例えば、固有識別子等のデータを記憶するメモリを備え、固有識別子等のデータを外部と通信可能に構成された集積回路モジュール(ICモジュール)であってもよい。集積回路モジュール40は、その形態に応じて、集積回路タグ(ICタグ)又は集積回路カード(ICカード)と呼ばれることがある。
【0070】
集積回路モジュール40は、接触式であってもよいし、非接触式であってもよい。接触集積回路モジュール(接触ICモジュール)は、リーダライタ装置などの外部通信機との接点を有し、接点が外部通信機に接触することで通信可能である。非接触集積回路モジュール40(非接触ICモジュール40)は、アンテナを有し、外部無線通信機と非接触で通信可能である。外部通信機は、例えば、集積回路モジュールからデータを読み取るリーダ、集積回路モジュールにデータを書き込むライタ、又はデータ読み取り及び書き込みが可能なリーダライタである。
【0071】
集積回路モジュール40は、電池を内蔵するアクティブ集積回路モジュールであってもよいし、電池を内蔵しないパッシブ集積回路モジュールであってもよい。
【0072】
物体40である集積回路40は、固有識別子などのデータを記憶するメモリを備える。メモリは、例えば、読み取り専用メモリ(Read Only Memory:ROM)である。集積回路40の固有識別子46は、読み取り専用メモリに記憶されるのが好ましい。メモリは、不揮発性メモリを備えるのが好ましい。不揮発性メモリは、読み取り専用メモリを構成し得る。集積回路40の固有識別子46は、不揮発性メモリに記憶されているのが好ましい。不揮発性メモリは、例えば、マスクROM、PROM,EPROM,EEPROM、又はFeRAM、又はフラッシュメモリである。
【0073】
集積回路40の固有識別子46は、集積回路40のメーカによって集積回路40に付与された、書き換え不能な固有識別子であるのが好ましい。集積回路40の固有識別子46(Unique Identifier:UID)は、他の集積回路と区別してその集積回路40を特定するために用いられる。メーカが集積回路40に付与した固有識別子46(UID)は、例えば、集積回路40の製造時にメモリに書き込まれる。固有識別子46は、遅くとも、メーカが集積回路40を出荷する時までにメモリに書き込まれている。したがって、メーカが出荷した集積回路40の購入者は、すでに、固有識別子46が書き込まれた集積回路40を入手できる。この結果、集積回路40の購入者又はユーザは、集積回路40に固有識別子46を書き込む手間が不要である。実施形態において、集積回路40に書き込まれた固有識別子46は、ブロックチェーンにおいて、トークンに関する操作に用いられ得る。集積回路40のメモリは、集積回路40の購入者又はユーザがデータを書き込み可能な領域を有し得る。ユーザ等がデータ書き込み可能なメモリ領域には、例えば、ノンファンジブルトークンの生成に用いられる生成用データをシステムが識別するために用いられるデータが書き込まれ得る。なお、ノンファンジブルトークンの生成に用いられる生成用データをシステムが識別するために用いられるデータは、識別子46であってもよい。
【0074】
固有識別子を有する非接触ICモジュールは、無線識別(Radio Frequency identification:RFID)装置とも呼ばれる。無線識別(RFID)装置は、固有識別子等のデータを外部無線通信機へ無線通信により送信する。送信されるデータは、メモリに記録されたデータであり、生成用データをシステムが識別するために用いられるデータを含み得る。外部無線通信機は、無線識別装置(RFID)装置から送信された固有識別子等のデータを受信することで、固有識別子を読み取ることができる。無線識別(RFID)装置は、タグの形態を有する場合、無線識別(RFID)タグと呼ばれることもある。
【0075】
無線識別(RFID)装置は、近距離無線通信(Near Field Communication)装置であってもよい。近距離無線通信は、NFC規格に従った通信であるのが好ましい。NFCは、例えば、13.56MHz帯の周波数を使った無線通信である。近距離無線通信の通信距離は、10cm以下であるのが好ましい。近距離無線通信(NFC)装置は、タグの形態を有する場合、近距離無線通信(NFC)タグと呼ばれることもある。
【0076】
物体40は、固有識別子を有する集積回路を備えるものに限定されず、識別子を有するその他の物品であってもよい。識別子は、例えば、物体40としての製品に付与されたシリアル番号であってもよい。シリアル番号は、個々の製品を識別するために製品に付与される。シリアル番号は製造番号とも呼ばれる。製品は、ソフトウェアであってもよい。固有識別子は、例えば、物体40としてのチケットに付与されたチケット番号であってもよい。チケットは、例えば、乗り物への搭乗のためのチケット又は映画・コンサートなどのイベントの参加又は入場チケットである。
【0077】
識別子は、例えば、物体40としての証明書に付与された証明書番号であってもよい。証明書は、例えば、運転免許証、学生証、社員証、又は健康保険証などである。固有識別子は、例えば、物体40としてクレジットカードに付与されたクレジットカード番号又は物体40としてのキャッシュカードに付与されたキャッシュカード番号であってもよい。
【0078】
識別子は、バーコード又は2次元コードなどの機械読み取り可能なコードによって表されてもよいし、人間が読み取り可能な数字・文字・記号によって表されてもよい。識別子が機械読み取り可能なコードである場合、読取器は、コードリーダの機能を有していればよい。コードリーダは、例えば、コードスキャナまたはカメラを有して構成される。識別子が数字・文字・記号によって表されている場合、読取器は、カメラと文字認識器とを備えていればよい。カメラを備えるスマートフォンは、読取器として好適に用いられる。
【0079】
識別子は、ネットワーク機器に付与された、Media Access Control address(MACアドレス)であってもよい。MACアドレスは、ネットワーク機器を識別するためにネットワーク機器に一意に割り当てられたアドレスである。ネットワーク機器を通信してMACアドレスを取得できる機器は、固有識別子の読取器として好適に用いられる。
【0080】
以下では、一例として、物体40はNFCタグであるものとして説明するが、物体40をNFCタグに限定する趣旨ではない。なお、物体40は、物品と呼ばれてもよい。
【0081】
NFCタグ40の読取器として機能する端末31,32は、NFCタグ40との間で、近距離無線通信を行うことができる。実施形態においては、NFCタグ40から、読取器である端末31,32へ、固有識別子46などのデータが送信される。例えば、ユーザU1,U2が、端末31,32を、NFCタグ40にかざすことで、近距離無線通信によって、固有識別子46などのデータが、端末31,32へ送信される。読取器である端末31,32が読み取った固有識別子46は、コンピュータシステム50Aへ送信される。コンピュータシステム50Aは、読取器である端末31,32から固有識別子46などのデータを取得し得る。端末31,32は、識別子46を有するリクエストをコンピュータシステム50Aへ送信し得る。リクエストは、例えば、NFT400の生成/非所有者ユーザ設定などのトークン操作のリクエストである。識別子46は、コンピュータシステム50Aが操作対象のトークンを識別するため、又は生成されたトークンに対応付けられるために用いられる。なお、端末31,32がコンピュータシステム50Aへ送信するリクエストは、識別子46を有していなくてもよい。
【0082】
図3に示すようにコンピュータシステム50Aは、プロセッサ51A及び記憶装置51Bを備えるコンピュータによって構成され得る。記憶装置51Bは、プロセッサ51Aに接続されている。記憶装置51Bは、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置51Bは、プロセッサ51Aによって実行されるコンピュータプログラム51Cを備える。プロセッサ51Aは、記憶装置51Bに格納されたコンピュータプログラム51Cを読み出して実行する。コンピュータプログラム51Cは、コンピュータを、実施形態に係るコンピュータシステム50Aとして機能させるための命令を示すプログラムコードを有する。
【0083】
記憶装置51Bは、固有識別子テーブル51Dを備え得る。固有識別子テーブル51Dには、複数の固有識別子が登録され得る。固有識別子テーブル51Dには、例えば、NFTの生成に利用されるNFCタグ40の固有識別子46が登録され得る。また、固有識別子テーブル51Dには、生成されたNFTに対応付けたいNFCタグ40の固有識別子46が登録され得る。
図3では、一例として、「00:00:00:00:00:0a」「00:00:00:00:00:0b」「00:00:00:00:00:0c」という3つの異なる固有識別子が、固有識別子テーブル51Dに登録されている。
【0084】
一例ではあるが、固有識別子テーブル51Dを利用することで、NFTの生成に利用できるNFCタグ40(物体40)を、固有識別子テーブル51Dに固有識別子が予め登録されているものに限ることができる。この場合、固有識別子を有するNFCタグ40又はその他の物体であっても、固有識別子テーブル51Dに固有識別子が登録されていないものは、NFTの生成に利用できない。
【0085】
実施形態のコンピュータシステム50Aは、一例として、コンピュータシステム50Aに登録されていない固有識別子を取得してもNFTを生成しないが、コンピュータシステム50Aに登録された固有識別子と同じ固有識別子を取得するとNFTを生成するよう構成されている。
【0086】
すなわち、実施形態の生産方法は、物体が有する固有識別子を読み取った読取器から送信された固有識別子を、コンピュータシステム50Aによって受信し、受信した固有識別子が登録されている場合、コンピュータシステム50Aによって、ノンファンジブルトークンを生成する、ことを備え得る。この生産方法によれば、システム50Aに固有識別子が登録されている物体40は、NFTの生成に利用できるが、登録されていない物体は、NFTの生成に利用できない。
【0087】
このように、実施形態においては、NFTの生成などのNFTの操作に利用できるNFCタグ40(物体40)を、固有識別子等の識別子が登録されているものに限ることができる。この場合、固有識別子が登録されているNFCタグ40(物体40)は、固有識別子が登録されていないNFCタグ40(物体40)に比べて、NFTを生成するなどのNFTの操作に利用できるという付加価値を有するものとなる。つまり、NFCタグ40などの物体の高付加価値化が可能となる。
【0088】
また、固有識別子が登録されたNFCタグ40は、NFTの生成などのNFTの操作への利用というNFCタグ40の新規な使用方法に用いることができる。NFTは、唯一性を持つため、NFTを識別するためのデータは、NFT毎に異なる。したがって、NFTを識別するためのデータが付与された物体40を大量に準備しようとすると、大量の物体40対象物に、それぞれ異なるデータを付与する手間が必要となり、その作業負荷は大きい。一方、固有識別子を有するNFCタグ40などのように、固有識別子を予め有する物体をNFTの操作などに利用することで、物体40にデータを付与する手間を省略することができる。
【0089】
記憶装置51Bは、対応データテーブル51Eを備え得る。対応データテーブル51Eは、一例として、NFCタグ40の固有識別子と、NFTのトークン識別子と、の対応を示す対応データを、備え得る。対応データが登録されることで、NFTを、固有識別子に対応付けることができる。すなわち、固有識別子46を有する物体40と、NFTと、を対応付けることができる。
【0090】
NFCタグ40とNFTとの対応関係が、対応データテーブル51Eに記録されていることで、固有識別子を有するNFCタグ40をNFTの操作に利用することが可能となる。すなわち、NFCタグ40が有する固有識別子を、操作対象であるNFTの識別子として、利用することができる。
【0091】
図3では、一例として、固有識別子:00:00:00:00:00:0aにはトークン識別子:#0001が対応付けられ、固有識別子:00:00:00:00:00:0bにはトークン識別子:#0002が対応付けられ、固有識別子:00:00:00:00:00:0cにはトークン識別子:#0003が対応付けられている。
【0092】
コンピュータシステム50Aは、対応データテーブル51Eを参照することで、NFCタグ40(物体40)の固有識別子から、操作すべきNFTのトークン識別子を得ることができる。つまり、コンピュータシステム50Aは、取得した固有識別子から操作すべきNFTを識別することができる。また、対応データテーブル51Eを参照することで、NFTのトークン識別子からNFCタグ40(物体40)の固有識別子を得ることができる。なお、一つのNFCタグ40(物体40)の固有識別子に、複数のトークン識別子が対応付けられていてもよい。また、一つのトークン識別子に複数のNFCタグ40(物体)の固有識別子が対応付けられていてもよい。
【0093】
NFCタグ40の固有識別子とNFTのトークン識別子との対応を示す対応データは、コンピュータシステム50A以外のブロックチェーン20外のコンピュータに記録されていてもよいし、ブロックチェーン20に記録されていてもよい。
【0094】
コンピュータシステム50Aのプロセッサ51Aがコンピュータプログラム51Cに従って実行する処理は、NFTの生成操作、及び、NFTの生成操作以外のトークン操作を含み得る。トークン操作は、例えば、ブロックチェーンに記録されたNFTの参照、NFT又はFTの送信、NFT又はFTの受信、及びNFTの非所有者ユーザの設定/変更操作のうちの少なくとも一つである。
【0095】
記憶装置51Bは、画像データベース52(コンテンツデータベース52)を備え得る。データベース52は、NFTの生成に用いられる画像(コンテンツ)を備える。コンピュータシステム50Aは、NFT生成のリクエストを受け付けた場合、データベース52から、当該リクエストが有する識別子によって識別されるコンテンツ(例えば、画像)を選択し、選択されたコンテンツを用いて、当該コンテンツを有するNFTを生成し得る。また、コンピュータシステム50Aは、NFT生成のリクエストを受け付けた場合、所定のルール又はランダムに決定されるコンテンツを用いて、当該コンテンツを有するNFTを生成し得る。なお、コンピュータシステム50Aは、NFT生成のリクエストの送信元(例えば、ユーザU1,U2)から取得したコンテンツを用いて、当該コンテンツを有するNFTを生成してもよい。
【0096】
図4は、コンピュータシステム50Aによって実行されるNFT生成及び非所有者ユーザ変更操作のための手順の一例を示している。
図5は、
図4の手順を実行するコンピュータシステム50Aを、ユーザU1,U2が利用するシナリオの一例を示している。
図4のステップS41において、コンピュータシステム50Aは、第1アカウントから識別子を受信する。ここでの第1アカウントは、例えば、
図5に示すように、ユーザU1の第1アカウント25A(アドレス:0x11aa)である。この場合、コンピュータシステム50Aは、コンピュータシステム50AへログインしているユーザU1の端末31から、識別子を受信する。識別子は、例えば、前述の物体40が有する識別子46である。コンピュータシステム50Aは、例えば、識別子を有するリクエストを第1アカウント25Aから受信することで、識別子を受信し得る。また、端末31は、物体40から識別子46を読み取って、その識別子46をコンピュータシステム50Aへ送信し得る。
【0097】
ステップS42において、コンピュータシステム50Aは、受信した識別子が識別子テーブル51Dに登録されている登録済み識別子であるか否かを判定する。
【0098】
受信した識別子が、登録されていない場合、コンピュータシステム50Aは、エラー判定をする(ステップS43)。エラー判定がされた場合、NFTの生成等の操作は行われない。受信した識別子が登録されている場合、コンピュータシステム50Aは、ステップS44の判定をする。
【0099】
ステップS44において、コンピュータシステム50Aは、受信した識別子がNFT生成に既に用いられているかどうかを判定する。ステップS44は、省略されてもよい。例えば、識別子が複数のNFT生成に用いられる場合には、ステップS44(及びステップS47,S48)は省略されてもよい。
【0100】
受信した識別子が登録されており、かつ、その識別子がNFTの生成に未だ用いられていない場合、コンピュータシステム50Aは、第2アカウント25Cによって、NFT生成のための操作を行う(ステップS45)。コンピュータシステム50Aは、第1アカウントを代理して、第2アカウント25CによってNFTを生成し得る。NFT生成等の操作は、例えば、コンピュータシステム50Aが、第2アカウント25Cから、当該操作のためにブロックチェーン20に構築されたスマートコントラクトを呼び出すことによって、実行され得る。スマートコントラクトは、呼び出されると、NFT生成等に必要な処理を自動的に実行する。また、コンピュータシステム50Aが、第2アカウント25Cとしてのコントラクトアドレスを有するスマートコントラクトを呼び出し、スマートコントラクト50Aが、第2アカウント25Cを用いて、NFTを生成してもよい。
【0101】
NFT生成のためのトランザクションは、生成に用いられた第2アカウント25CのプライベートキーPCによって電子署名される。生成されたNFT400は、ブロックチェーン20に記録される。ここでは、一例として、TokenID:#0001を有するNFT400が生成される。生成されたNFT400の所有者は、第2アカウント25Cであるものとしてブロックチェーン20に記録される(
図1参照)。つまり、生成されたNFT400の所有者は、第2アカウント25Cである。
【0102】
NFT生成の際には、生成されたNFTをブロックチェーン20に記録するためにブロックチェーン20へガス代を支払う必要がある。ガス代は、ブロックチェーン20に記録するための手数料である。ガス代は、一般に、ブロックチェーン20のネイティブトークン(例えば、イーサリアムの「イーサ」)によって支払われる必要がある。
【0103】
ステップS45では、NFT生成は、第2アカウント25Cによって行われるため、ガス代は、第2アカウント25Cから支払われる。つまり、NFT生成のガス代は、コンピュータシステム50Aが管理するアカウント25Cから支払われる。したがって、NFT生成をリクエストした第1アカウントは、ガス代を支払う必要がない。
【0104】
一般に、NFTを生成したいユーザは、NFT生成のためのガス代を支払う必要がある。ガス代を支払うには、ユーザが、ブロックチェーン20のネイティブトークンを有している必要がある。しかし、ネイティブトークンなどの暗号資産に馴染みがないユーザは、そもそもネイティブトークンを有していないことが多い。ガス代の支払いに用いられるネイティブトークンを有していないユーザは、NFT生成(MINT)をすることはできない。しかし、本実施形態では、ガス代はコンピュータシステム50Aが負担するため、第1アカウントを有しているユーザは、ガス代を支払う必要がない。したがって、第1アカウントを有しているユーザは、ネイティブトークンを有していなくても、NFT生成をリクエストすることができる。
【0105】
また、コンピュータシステム50Aは、生成されたNFT400と受信した識別子との対応関係を記録し得る。当該対応関係は、例えば、ブロックチェーン20又はブロックチェーン20外のコンピュータに記録され得る。当該対応関係は、例えば、対応データテーブル51Eに記録され得る。当該対応関係は、例えば、NFT400を構成するデータの一部として識別子がブロックチェーン20に記録されることで、ブロックチェーン20に記録され得る。
【0106】
ステップS46において、コンピュータシステム50Aは、User設定操作を実行する。具体的には、コンピュータシステム50Aは、第2アカウント25Cによって、生成したNFT400のEIP4907「user」として、第1アカウントのアドレスをブロックチェーン20に記録する。例えば、リクエストを送信したのがユーザU1の第1アカウント25Aである場合、アドレス:0x11aaが、NFT400のEIP4907「user」としてブロックチェーン20に記録される(
図1の非所有者ユーザデータ450参照)。なお、EIP4907「user」の期限は、無期限に設定されてもよいし、所定の期限に設定されてもよい。
【0107】
User設定操作は、例えば、コンピュータシステム50Aが、第2アカウント25Cから、当該操作のためにブロックチェーン20に構築されたスマートコントラクトを呼び出すことによって、実行され得る。また、コンピュータシステム50Aが、第2アカウント25Cとしてのコントラクトアドレスを有するスマートコントラクトを呼び出し、スマートコントラクト50Aが、第2アカウント25Cを用いて、User設定操作を実行してもよい。
【0108】
ステップS46のUser設定のためのトランザクションは、第2アカウント25Cに対応したプライベートキーPCによって電子署名される。
【0109】
ステップS46のUser設定の際には、そのUser設定(
図1のユーザデータ450)をブロックチェーン20に記録するために、ブロックチェーン20へガス代を支払う必要がある。
【0110】
ステップS46では、User設定は、第2アカウント25Cによって行われるため、そのガス代は、第2アカウント25Cから支払われる。つまり、User設定のガス代は、コンピュータシステム50Aが管理するアカウント25Cから支払われる。したがって、第1アカウントは、ガス代を支払う必要がない。したがって、第1アカウントを有しているユーザは、ネイティブトークンを有していなくても、NFT生成をリクエストし、生成されたNFTの実質的な所有者(非所有者ユーザ)になることができる。
【0111】
なお、
図4及び
図5のステップS45及びステップS46では、第1アカウントのユーザは、ガス代を支払う必要がない。また、第1アカウントのユーザは、ガス代以外の他の手数料(
図4のステップS47参照)を支払う必要もない。すなわち、ステップS45及びステップS46の操作は、コンピュータシステム50Aが第1アカウントから手数料の支払いを受け付けることなく実行される。ただし、第1アカウントは、コンピュータシステム50Aに対して、所定の手数料(後述のステップS47参照)を支払ってもよい。
【0112】
ユーザU1の第1アカウント25AがNFT400のEIP4907「user」として設定された場合、ユーザU1は、NFT400を、ブロックチェーンゲームなどのNFT利用システム50Bにおいて、使用することができる(一例として、
図5のステップS51参照)。
【0113】
例えば、ユーザU1が、第1アカウント25A(アドレス:0x11aa)によってNFT利用システム50Bにログインしている場合、
図6に示すように、NFT利用システム50Bは、EIP4907「user」がアドレス:0x11aaであることがブロックチェーン20に記録されているNFT400を識別する(ステップS61)。すなわち、NFT利用システム50Bは、ユーザU1が使用可能であるNFT400を識別する。
【0114】
NFT利用システム50Bは、ステップS61において識別されたNFT400を、ユーザU1によって使用させる。例えば、ユーザU1は、NFT400に対応付けられたキャラクター又はアイテムを、NFT利用システム50Bであるブロックチェーンゲームにおいて使用してプレイすることができる。
【0115】
ユーザU1は、ブロックチェーンゲームをプレイすることで、ネイティブトークンなどのFT又はその他の暗号資産を獲得し得る。つまり、ユーザU1は、NFT利用システム50BにおけるNFT400の使用を通じて、暗号資産を獲得し得る。このように、ユーザU1は、ネイティブトークン等の暗号資産を有していなくても、NFT400を実質的に獲得し、NFT利用システム50BにおけるNFT400の使用を通じて、暗号資産を獲得し得る。一般に、暗号資産を有していないユーザが、暗号資産を保有するのは、心理的な理由又は暗号資産取得の手間の煩雑さのため、容易でないことがある。しかし、本実施形態によれば、暗号資産を有していないユーザであっても、NFT400を実質的に獲得し、NFT利用システム50Bの使用を通じて、暗号資産を容易に獲得し得る。暗号資産を獲得したユーザは、有料のNFTを購入に動機付けられることが期待される。この結果、NFTの取引マーケットの参加者が増加し、取引マーケットが活性化する。
【0116】
図4のステップS44に戻り、コンピュータシステム50Aは、受信した識別子が登録されており、かつ、その識別子がNFTの生成に既に用いられている場合、第2アカウント25Cによって、User変更のための操作を行う(ステップS48)。
【0117】
ステップS48のUser変更は、例えば、
図5に示すように、NFT400の生成に用いられた識別子46を有する物体40が、ユーザU1からU2に譲渡された場合に生じる。物体40の譲渡は、例えば、現物の取引が行われるオンラインマーケットにおいて、物体40が売買されることによって行われる。
【0118】
後述のように、物体40を有しているユーザは、物体40に対応するNFT400の非所有者ユーザ(実質的な所有者)なることができる権利を有しているため、現物の取引が行われるオンラインマーケットにおける物体40の価値は、NFT400の価値に応じたものとなる。例えば、ユーザU1が、NFT400に対応付けられたキャラクターを、ゲームにおいて育成し、そのキャラクターの価値が増加した場合、NFT400の価値も増加する。その結果、物体40の価値も増加する。したがって、ユーザU1は、物体40を高値で販売することができる。
【0119】
物体40を入手したユーザU2は、物体40に対応するNFT400を取得するため、端末32によって、物体40から識別子46を読み取る。端末32は、その識別子46をコンピュータシステム50Aへ送信する(ステップS41)。コンピュータシステム50Aは、ユーザU2の第1アカウント(アドレス:0x11bb)から識別子46を受信する。つまり、コンピュータシステム50Aは、識別子46を有するリクエストを受信する。
【0120】
識別子46を受信したコンピュータシステム50Aは、ステップS48において、受信した識別子に対応付けられたNFT400のEIP4907「user」の変更を、ブロックチェーン20に記録する。
【0121】
例えば、受信した識別子に対応付けられたNFT400についての現在のEIP4907「user」のアドレスが、ユーザU1のアドレス:0x11aaである場合、コンピュータシステム50Aは、新たなEIP4907「user」のアドレスとして、ユーザU2のアドレス0x11bbを、ブロックチェーン20に記録する。
【0122】
User変更操作は、例えば、コンピュータシステム50Aが、第2アカウント25Cから、当該操作のためにブロックチェーン20に構築されたスマートコントラクトを呼び出すことによって、実行され得る。また、コンピュータシステム50Aが、第2アカウント25Cとしてのコントラクトアドレスを有するスマートコントラクトを呼び出し、スマートコントラクト50Aが、第2アカウント25Cを用いて、User変更操作を実行してもよい。
【0123】
また、ステップS48のUser変更のためのトランザクションに対して、第2アカウント25Cに対応したプライベートキーPCによって電子署名がなされる。以上の処理により、ユーザU2は、NFT400についての新たなEIP4907「user」になることができる。つまり、ユーザU2は、NFT400についての、新たな非所有者ユーザ(実質的な所有者)になることができる。換言すると、ユーザU2は、NFT400を獲得できる。
【0124】
例えば、ユーザU2の第1アカウント25BがNFT400のEIP4907「user」として設定された場合、ユーザU2は、NFT400を、ブロックチェーンゲームなどのNFT利用システム50Bにおいて、使用することができる(例えば、
図5のステップS52参照)。
【0125】
なお、非所有者ユーザの変更が無断で行われるのを防止するため、NFT400の非所有者ユーザの変更には、コンピュータシステム50Aから、ユーザU2に対して、パスワード入力が要求されてもよい。パスワードは、例えば、非所有者ユーザであるユーザU1によって設定される。パスワードは、ユーザU1からユーザU2へ伝えられる。パスワードが設定されていることにより、ユーザU1が意図しないユーザ変更がなされることを防止して、安全性を高めることができる。
【0126】
さて、ステップS48のUser変更の際には、そのUser変更をブロックチェーン20に記録するために、ブロックチェーン20へガス代が支払われる必要がある。
【0127】
ステップS48では、User変更は、第2アカウント25Cによって行われるため、そのガス代は、第2アカウント25Cから支払われる。つまり、User設定のガス代は、コンピュータシステム50Aが管理するアカウント25Cから支払われる。したがって、第1アカウントは、ブロックチェーン20に対してガス代を支払う必要がない。つまり、
図5のユーザU2は、ブロックチェーンに対してガス代を支払うことなく、NFT400の非所有者ユーザになることができる。
【0128】
ただし、一例ではあるが、
図4に示す手順では、第1アカウントは、ステップS47において、コンピュータシステム50Aから、User変更のための手数料の支払いが求められる。したがって、
図5のユーザU2は、ガス代とは別の手数料を、コンピュータシステム50Aに対して支払う。
【0129】
ガス代は、ブロックチェーン20によって決定されるが、コンピュータシステム50Aに対して支払われる手数料は、コンピュータシステム50A(の管理者)によって決定され得る。ガス代は、ブロックチェーン20おいて発生するトランザクション数などの影響を受けてブロックチェーン20において自動的に決定されるため、変動することがあり、コンピュータシステム50Aがコントロールすることができない。一方、ステップS47において支払われる手数料は、コンピュータシステム50A(の管理者)によって自由に決定できる。
【0130】
例えば、ステップS47で支払われる手数料は、ガス代とは異なる額であり得る。すなわち、ステップS47で支払われる手数料は、ガス代より高くてもよいし、低くてもよい。また、ガス代は変動することがあるが、ステップS47で支払われる手数料は、定額であってもよい。
【0131】
ガス代の支払いに使用できる暗号資産は、ブロックチェーン20において予め決まっているため、ガス代の支払いに、他の暗号資産又は他の決済手段(例えば、クレジットカードによる支払い)を利用することはできないという制約がある。しかし、ステップS47において支払われる手数料は、コンピュータシステム50A(の管理者)が受け取るものであるため、ガス代のような制約がない。このため、ステップS47の手数料の支払いは、ガス代の支払いに用いられる暗号資産とは異なる種類の暗号資産の支払い、又は、暗号資産の支払い以外の決済によって行われてもよい。
【0132】
なお、ステップS47の手数料は、無料としてもよい。つまり、コンピュータシステム50Aは、第1アカウントからステップS47の手数料を受け付けることなく、ステップS48の操作を実行してもよい。
【0133】
図7は、コンピュータシステム50Aによって実行されるNFT生成操作の他の手順の例を示している。
図7に関し、特に説明しない点については、
図4のNFT生成操作と同様であり得る。なお、
図7に示す手順は、
図4のNFT生成操作に適用されてもよい。
【0134】
図7のステップS71において、コンピュータシステム50Aは、第1アカウントから識別子を受信する。ここでの第1アカウントは、例えば、
図5に示すように、ユーザU1の第1アカウント25A(アドレス:0x11aa)である。この場合、コンピュータシステム50Aは、コンピュータシステム50AへログインしているユーザU1の端末31から、識別子を受信する。識別子は、例えば、前述の物体40が有する識別子46である。コンピュータシステム50Aは、例えば、識別子を有するリクエストを第1アカウント25Aから受信することで、識別子を受信し得る。また、端末31は、物体40から識別子46を読み取って、その識別子46をコンピュータシステム50Aへ送信し得る。
【0135】
ステップS72において、コンピュータシステム50Aは、データベース52に登録されたコンテンツのうち、識別子によって識別されたコンテンツを用いて、NFT生成のための操作を行う。この場合、識別されたコンテンツを有するNFT400が生成される。第1アカウントのユーザは、識別子をコンピュータシステム50Aへ渡せばよく、NFT生成のためのデータをコンピュータシステム50Aに渡す必要がない。なお、コンピュータシステム50Aは、識別子によって識別された複数のコンテンツから、ランダム又は所定のルールに従って、複数のコンテンツのうちの一部のコンテンツを選択し、選択されたコンテンツを用いてNFTを生成してもよい。また、コンピュータシステム50Aは、受信した識別子とは無関係に、データベース52に登録されたコンテンツから、ランダム又は所定のルールに従って選択されたコンテンツを用いてNFTを生成してもよい。すなわち、リクエストは識別子を有していなくてもよい。コンピュータシステム50Aは、生成されたNFTと識別子との対応関係を記録してもよいし、記録しなくてもよい。
【0136】
コンピュータシステム50Aは、第1アカウントを代理して、第2アカウント25CによってNFTを生成し得る。NFT生成等の操作は、コンピュータシステム50Aが、第2アカウント25Cから、当該操作のためにブロックチェーン20に構築されたスマートコントラクトを呼び出すことによって、実行され得る。また、コンピュータシステム50Aが、第2アカウント25Cとしてのコントラクトアドレスを有するスマートコントラクトを呼び出し、スマートコントラクト50Aが、第2アカウント25Cを用いて、生成操作を実行してもよい。
【0137】
コンピュータシステム50Aは、NFT生成のためのトランザクションに、プライベートキーPCによって電子署名する。生成されたNFT400は、ブロックチェーン20に記録される。ここでは、一例として、TokenID:#0001を有するNFT400が生成される。生成されたNFT400の所有者は、第2アカウント25Cであるものとしてブロックチェーン20に記録される(
図1参照)。つまり、生成されたNFT400の所有者は、第2アカウント25Cである。
【0138】
NFT生成のためのガス代は、第2アカウント25Cから支払われ、第1アカウントは、ガス代を支払わなくてもよい。なお、第1アカウントは、ガス代とは別の手数料をコンピュータシステム50Aに支払ってもよい。
【0139】
ステップS73において、コンピュータシステム50Aは、NFT400の所有者である第2アカウント25Cによって、NFT400のUser設定の操作を行う。この操作は、コンピュータシステム50Aが、第2アカウント25Cから、当該操作のためにブロックチェーン20に構築されたスマートコントラクトを呼び出すことによって、実行され得る。コンピュータシステム50Aは、生成したNFT400のEIP4907「user」として、第1アカウントのアドレスをブロックチェーン20に記録する。例えば、ステップS71のリクエストを送信したのがユーザU1の第1アカウント25Aである場合、アドレス:0x11aaが、NFT400のEIP4907「user」としてブロックチェーン20に記録される(
図1の非所有者ユーザデータ450参照)。
【0140】
コンピュータシステム50Aは、ステップS46のUser設定のためのトランザクションに、第2アカウント25Cに対応したプライベートキーPCによって電子署名する。
【0141】
ステップS73のUser設定のためのガス代は、第2アカウント25Cから支払われ、第1アカウントは、ガス代を支払わなくてもよい。なお、第1アカウントは、ガス代とは別の手数料をコンピュータシステム50Aに支払ってもよい。
【0142】
ステップS73によって、第1アカウントを有しているユーザは、生成されたNFTの実質的な所有者(非所有者ユーザ)になることができる。
【0143】
図8は、コンピュータシステム50Aによって実行されるNFT生成操作の他の手順の例を示している。
図8に関し、特に説明しない点については、
図4又は
図7のNFT生成操作と同様であり得る。
【0144】
図8のステップS81において、コンピュータシステム50Aは、第1アカウントからリクエストを受信する。リクエストは、NFT生成のリクエストであり得る。リクエストは、
図4又は
図7のリクエストが有する識別子を有していなくてもよい。
【0145】
ステップS81において、第1アカウントは、NFTの生成リクエストとして、NFTの生成に用いられるコンテンツデータを、コンピュータシステム50Aへ送信し得る。この場合、第1アカウントが希望するコンテンツデータをNFT化することができる。
【0146】
ステップS82において、コンピュータシステム50Aは、第2アカウント25Cによって、NFT生成のための操作を行う。NFT生成は、第1アカウントから送信されたコンテンツデータを用いて行われる。この場合、NFTは、第1アカウントから送信されたコンテンツデータを有するNFTが生成される。
【0147】
コンピュータシステム50Aは、第1アカウントを代理して、第2アカウント25CによってNFTを生成し得る。コンピュータシステム50Aは、NFT生成のためのトランザクションに、プライベートキーPCによって電子署名する。生成されたNFT400は、ブロックチェーン20に記録される。生成されたNFT400の所有者は、第2アカウント25Cである。NFT生成のためのガス代は、第2アカウント25Cから支払われ、第1アカウントは、ガス代を支払わなくてもよい。
【0148】
ステップS83において、コンピュータシステム50Aは、NFT400の所有者である第2アカウント25Cによって、NFT400のUser設定の操作を行う。コンピュータシステム50Aは、ステップS46のUser設定のためのトランザクションに、第2アカウント25Cに対応したプライベートキーPCによって電子署名する。これにより、第1アカウントが、NFT400の非所有者ユーザとして設定される。ステップS83のUser設定のためのガス代は、第2アカウント25Cから支払われ、第1アカウントは、ガス代を支払わなくてもよい。
【0149】
このように、NFT化したいコンテンツデータを送信した第1アカウントは、NFTの所有者になるのではなく、非所有者ユーザになることができる。本実施形態では、非所有者ユーザの権限は、所有者と同程度に拡張されているため、非所有者ユーザとなった第1カウントのユーザは、所有者のように振る舞うことができる。
【0150】
図9は、コンピュータシステム50Aによって実行されるユーザ変更操作の他の手順の例を示している。
図9に関し、特に説明しない点については、
図4のユーザ変更操作と同様であり得る。
【0151】
図9のステップS91において、コンピュータシステム50Aは、第1アカウントからリクエストを受信する。リクエストは、NFTの非所有者ユーザを、リクエストを送信した第1アカウントに変更する操作のリクエストであり得る。リクエストは、
図4のリクエストが有する識別子を有していなくてもよい。ただし、リクエストは、変更操作の対象となるNFTを識別するための他のデータを含み得る。NFTを識別し得るデータは、例えば、TokenIDである。
【0152】
リクエストを受信したコンピュータシステム50Aは、変更操作の対象NFT400に対して、第2アカウント25Cによって、User変更のための操作を行う(ステップS92)。この操作は、例えば、第2アカウント25Cから、User変更のための処理を実行するスマートコントラクトを呼び出すことによって実行される。
【0153】
リクエストを受信したコンピュータシステム50Aは、ステップS92において、対象NFT400のEIP4907「user」の変更を、ブロックチェーン20に記録する。例えば、新たなEIP4907「user」として、リクエストを送信した第1アカウントのアドレスが記録される。また、コンピュータシステム50Aは、ステップS92のUser変更のためのトランザクションに、第2アカウント25Cに対応したプライベートキーPCによって電子署名する。以上の処理により、リクエストを送信した第1アカウントのユーザは、NFT400についての新たなEIP4907「user」になることができる。User変更のためのガス代は、第2アカウント25Cから支払われ、非所有者ユーザとなる第1アカウントは、ガス代を支払わなくてもよい。
【0154】
図10は、コンピュータシステム50Aによって実行されるユーザ変更操作の他の手順の例を示している。
図10に関し、特に説明しない点については、
図4又は
図9のユーザ変更操作と同様であり得る。
【0155】
図10のステップS101において、コンピュータシステム50Aは、ユーザU1の第1アカウント25Aからリクエストを受信する。ユーザU1は、リクエストがなされた時点において、NFT400のEIP4907「user」であるものとする。
【0156】
リクエストは、NFT400のEIP4907「user」を、他のユーザU2のアカウントに変更する操作のリクエストであり得る。すなわち、このリクエストは、NFT400のEIP4907「user」を、リクエストを送信したアカウント25Aから、当該アカウント25Aによって指定された他のアカウントへ変更することのリクエストであり得る。このリクエストは、
図4のリクエストが有する識別子を有していなくてもよい。ただし、リクエストは、変更操作の対象となるNFTを識別するための他のデータを含み得る。NFTを識別し得るデータは、例えば、TokenIDである。リクエストは、新たなEIP4907「user」となるユーザU2のアドレス:0x11bbを含み得る。
【0157】
リクエストを受信したコンピュータシステム50Aは、変更操作の対象NFT400に対して、第2アカウント25Cによって、User変更のための操作を行う(ステップS102)。この操作は、例えば、第2アカウント25Cから、User変更のための処理を実行するスマートコントラクトを呼び出すことによって実行される。
【0158】
リクエストを受信したコンピュータシステム50Aは、ステップS102において、対象NFT400のEIP4907「user」として、ユーザU2のアドレスをブロックチェーンに記録する。また、コンピュータシステム50Aは、ステップS102のUser変更のためのトランザクションに、第2アカウント25Cに対応したプライベートキーPCによって電子署名する。以上の処理により、リクエストを送信した第1アカウントのユーザは、NFT400の実質的な所有権(非所有者ユーザとしての役割)を、ユーザU2に譲り渡すことができる。User変更のためのガス代は、第2アカウント25Cから支払われ、ユーザU1,U2は、ガス代を支払わなくてもよい。なお、ユーザU1及びユーザU2のいずれか一方又は両方からガス代とは別の手数料を、コンピュータシステム50Aが受け取ってもよい。
【0159】
ブロックチェーン20において、EIP4907「user」のような非所有者ユーザ自身は、非所有者ユーザの設定/変更を行う権限を有しないが、本実施形態のコンピュータシステム50Aでは、非所有者ユーザの権限が拡張されているため、非所有者ユーザは、コンピュータシステム50Aに対してリクエストすることにより、非所有者ユーザの設定/変更を行うことができる。
【0160】
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【0161】
10 :システム
15 :ネットワーク
20 :ブロックチェーン
25A :第1アカウント
25B :第1アカウント
25C :第2アカウント
31 :端末
31A :プロセッサ
31B :記憶装置
31C :コンピュータプログラム
31D :NFCモジュール
32 :端末
40 :集積回路(対象物)
46 :識別子
50A :コンピュータシステム
50B :NFT利用システム
51A :プロセッサ
51B :記憶装置
51C :コンピュータプログラム
51D :識別子テーブル
51E :対応データテーブル
52 :データベース
400 :ノンファンジブルトークン(NFT)
450 :非所有者ユーザデータ
PA :プライベートキー
PB :プライベートキー
PC :プライベートキー
U1 :ユーザ
U2 :ユーザ