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

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

▶ 株式会社フォリオの特許一覧

特許7545780情報処理システム、情報処理方法、及びプログラム
<>
  • 特許-情報処理システム、情報処理方法、及びプログラム 図1
  • 特許-情報処理システム、情報処理方法、及びプログラム 図2
  • 特許-情報処理システム、情報処理方法、及びプログラム 図3
  • 特許-情報処理システム、情報処理方法、及びプログラム 図4
  • 特許-情報処理システム、情報処理方法、及びプログラム 図5
  • 特許-情報処理システム、情報処理方法、及びプログラム 図6
  • 特許-情報処理システム、情報処理方法、及びプログラム 図7
  • 特許-情報処理システム、情報処理方法、及びプログラム 図8
  • 特許-情報処理システム、情報処理方法、及びプログラム 図9
  • 特許-情報処理システム、情報処理方法、及びプログラム 図10
  • 特許-情報処理システム、情報処理方法、及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-28
(45)【発行日】2024-09-05
(54)【発明の名称】情報処理システム、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06Q 20/28 20120101AFI20240829BHJP
   G06F 16/27 20190101ALI20240829BHJP
【FI】
G06Q20/28
G06F16/27
【請求項の数】 14
(21)【出願番号】P 2024061406
(22)【出願日】2024-04-05
【審査請求日】2024-04-05
【早期審査対象出願】
(73)【特許権者】
【識別番号】523469814
【氏名又は名称】株式会社フォリオ
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】西窪 洋平
【審査官】早川 学
(56)【参考文献】
【文献】特開2023-130420(JP,A)
【文献】米国特許出願公開第2022/0180432(US,A1)
【文献】韓国登録特許第10-2475530(KR,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ブロックチェーン上でトークンを管理するための情報処理システムであって、
所定周期内で発行したトークンの発行時刻を、前記所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、前記正規化タイムスタンプに基づくキー情報を生成する生成手段と、
前記キー情報と前記発行したトークンの数量とを含むレコードからなる配列を管理する管理手段と、を備える
情報処理システム。
【請求項2】
前記生成手段は、新たなトークンの発行時に当該新たなトークンについて前記キー情報を生成し、
前記管理手段は、前記生成手段が生成した前記キー情報に合致する前記レコードを前記配列から特定し、当該特定したレコード中の前記数量に前記新たなトークンの数量を加算する
請求項1に記載の情報処理システム。
【請求項3】
前記生成手段は、トークンの発行時に、当該トークンについて生成した前記正規化タイムスタンプと、当該トークンの受け取り手のアドレスとから、所定演算によって前記キー情報を生成し、
前記管理手段は、前記受け取り手のアドレスごとにトークン残高を算出するための前記配列を管理する
請求項1に記載の情報処理システム。
【請求項4】
前記生成手段は、トークンの発行時に、当該トークンについて生成した前記正規化タイムスタンプと、予め定められたダミーアドレスとから、所定演算によって前記キー情報を生成し、
前記管理手段は、トークン全体についてトークン残高を算出するための前記配列を管理する
請求項1に記載の情報処理システム。
【請求項5】
前記生成手段は、UTC時刻で表現される前記発行時刻に対して、前記トークンを用いたサービスが行われる国の時差を示す時刻オフセットを付与し、前記時刻オフセットが付与された前記発時刻に対して前記正規化を行う
請求項1に記載の情報処理システム。
【請求項6】
前記トークンは、有効期間が定められた有効期限付きトークンであり、
前記管理手段が管理する前記配列を用いて、前記有効期間内の前記トークンの数量の合計をトークン残高として算出する算出手段をさらに備える
請求項1乃至5のいずれか1項に記載の情報処理システム。
【請求項7】
前記算出手段は、現在時刻を基準として、前記有効期間に相当する数の過去の各所定周期について前記正規化タイムスタンプを生成すると共に、生成した各正規化タイムスタンプについてキー情報を生成し、生成したキー情報に合致する各レコードを前記配列から特定し、特定した各レコード中の前記数量を積算することで前記トークン残高を算出する
請求項6に記載の情報処理システム。
【請求項8】
前記有効期限付きトークンは、前払式支払手段として用いられる有効期限付きトークンであり、
購入額及び第1のアドレスを指定する前記有効期限付きトークンの購入リクエストを受け付ける受付手段をさらに備え、
前記管理手段は、前記購入リクエストを受け付けたことに応じて、前記購入額分の前記有効期限付きトークンの前記第1のアドレスへの発行又は移転を前記ブロックチェーンに記録するとともに、前記購入額に対応する前記数量と発行日時に対応する前記キー情報とを用いて前記第1のアドレスについて前記配列を更新する
請求項6に記載の情報処理システム。
【請求項9】
前記受付手段は、決済額を指定するとともに、移転元として前記第1のアドレスを、移転先として第2のアドレスをそれぞれ指定する前記有効期限付きトークンの移転リクエストを受け付け、
前記算出手段は、前記移転リクエストを受け付けたことに応じて、前記配列の中から前記発行日時からの経過時間が前記有効期間内である前記数量の合計を前記トークン残高として算出し、
前記管理手段は、前記算出されたトークン残高が前記決済額を下回る場合に、移転不可を示す情報を通知する
請求項8に記載の情報処理システム。
【請求項10】
前記管理手段は、前記算出されたトークン残高が前記決済額以上である場合、前記決済額分の通貨トークンの前記第2のアドレスへの移転を前記ブロックチェーンに記録するとともに、前記決済額分のレコードを前記配列から消去する
請求項9に記載の情報処理システム。
【請求項11】
前記決済額分の通貨トークンの前記第2のアドレスへの移転の前記ブロックチェーンへの記録は、前記ブロックチェーンに記録されたスマートコントラクトを所有者として前記ブロックチェーンに記録されている通貨トークンの前記第2のアドレスへの移転を前記ブロックチェーンに記録することによって実行される
請求項10に記載の情報処理システム。
【請求項12】
前記管理手段は、前記算出されたトークン残高が前記決済額以上である場合、前記第1のアドレスを所有者として前記ブロックチェーンに記録されている前記決済額分の前記有効期限付きトークンを焼却する
請求項10に記載の情報処理システム。
【請求項13】
ブロックチェーン上でトークンを管理するための情報処理システム実行する情報処理方法であって、
所定周期内で発行したトークンの発行時刻を、前記所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、前記正規化タイムスタンプに基づくキー情報を生成する生成ステップと、
前記キー情報と前記発行したトークンの数量とを含むレコードからなる配列を管理する管理ステップと、を有する
情報処理方法。
【請求項14】
ブロックチェーン上でトークンを管理するためのプログラムであって、コンピュータに、
所定周期内で発行したトークンの発行時刻を、前記所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、前記正規化タイムスタンプに基づくキー情報を生成する生成ステップと、
前記キー情報と前記発行したトークンの数量とを含むレコードからなる配列を管理する管理ステップと、を実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
スマートコントラクト等のブロックチェーン上の処理体系によって実現される暗号資産は、個別の属性情報や自身の振舞いを制御する固有のロジックを持つことから、プログラマブルマネーと呼ばれることもある。このような暗号資産は、ブロックチェーン上でトークン(具体的には代替性トークン(FT:Fungible Token))として管理される。
【0003】
特定のサービスの中でのみ通用するサービス内通貨のような、法定通貨ではない支払手段としてトークンを用いる場合を想定する。例えば、イーサリアム(Ethereum)の規格であるERC20に準拠するトークンをサービス内通貨として用いることで、堅牢性や非改ざん性を確保できるのは勿論、スマートコントラクトを用いて自動的に決済を行うことが可能になる。
【0004】
トークンに有効期限を設ける場合、発行時から有効期間内のトークンのみを有効なトークンとして扱うが、ERC20のような従来の規格には、トークンの有効期間という概念がない。
【先行技術文献】
【特許文献】
【0005】
【文献】特表2023-535605号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、前払式支払手段に関する内閣府令では、供託や登録が不要とされる条件として「有効期限6ヶ月以内かつ総残高10百万円」という条件が規定されており、有効期限についてブロックチェーン上のスマートコントラクト等の処理系で管理できると考えられる。
【0007】
有効期間内のトークン数量の合計を残高として算出する処理を行う場合、既存の情報系では、一般的に、1)トークンの発行ごとに発行数量及び発行時刻のレコードを保存し、2)「現在時刻-発行時刻<有効期限」で該当レコードを検索し、3)検索されたレコード中の発行数量を積算して残高とする処理が行われる。
【0008】
しかしながら、このような処理をブロックチェーン上のスマートコントラクト等の処理系で行おうとした場合、1回のトランザクションでの処理量に限界があることから不可能であることがある。例えば、イーサリアムの場合、足し合せ可能なレコード数の上限が1万程度に限定されるため、有効期間内のレコード数が当該上限を超えると、処理が破綻するという課題がある。
【0009】
そこで、本発明は、ブロックチェーン上のスマートコントラクト等の処理系で有効期間内のトークン数量の合計を適切に算出可能とする情報処理システム、情報処理方法、及びプログラムを提供する。
【課題を解決するための手段】
【0010】
第1の態様に係る情報処理システムは、ブロックチェーン上でトークンを管理するための情報処理システムであって、所定周期内で発行したトークンの発行時刻を、前記所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、前記正規化タイムスタンプに基づくキー情報を生成する生成手段と、前記キー情報と前記発行したトークンの数量とを含むレコードからなる配列を管理する管理手段と、を備える。
【0011】
第2の態様に係る情報処理方法は、ブロックチェーン上でトークンを管理するための情報処理システムで実行する情報処理方法であって、所定周期内で発行したトークンの発行時刻を、前記所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、前記正規化タイムスタンプに基づくキー情報を生成する生成ステップと、前記キー情報と前記発行したトークンの数量とを含むレコードからなる配列を管理する管理ステップと、を有する。
【0012】
第3の態様に係るプログラムは、ブロックチェーン上でトークンを管理するためのプログラムであって、コンピュータに、所定周期内で発行したトークンの発行時刻を、前記所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、前記正規化タイムスタンプに基づくキー情報を生成する生成ステップと、前記キー情報と前記発行したトークンの数量とを含むレコードからなる配列を管理する管理ステップと、を実行させる。
【発明の効果】
【0013】
本発明によれば、ブロックチェーン上のスマートコントラクト等の処理系で有効期間内のトークン数量の合計を適切に算出可能とする情報処理システム、情報処理方法、及びプログラムを提供できる。
【図面の簡単な説明】
【0014】
図1】実施形態に係る情報処理システムの構成を示す図である。
図2】実施形態に係る各コンピュータのハードウェア構成の一例を示す図である。
図3】実施形態に係るスマートコントラクト(X)の機能ブロック構成を示す図である。
図4】実施形態に係るスマートコントラクト(X)の動作を説明するための図である。
図5】実施形態に係るスマートコントラクト(X)の動作を説明するための図である。
図6】実施形態に係るスマートコントラクト(X)の動作を説明するための図である。
図7】実施形態に係る情報処理システムにおける初期設定動作を示す図である。
図8】上場済みの通貨トークン(A)を用いる場合に関して、利用者による有効期限付きトークン(X)の購入に関する動作を示すシーケンス図である。
図9】未上場の通貨トークン(A)を用いる場合に関して、利用者による有効期限付きトークン(X)の購入に関する動作を示すシーケンス図である。
図10】有効期限付きトークン(X)の利用者ごとの残高及び総残高の確認動作を示すシーケンス図である。
図11】有効期限付きトークン(X)による商品の購入に関する動作を示すシーケンス図である。
【発明を実施するための形態】
【0015】
図面を参照しながら、実施形態について説明する。図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0016】
(1)システム構成
図1は、本実施形態に係る情報処理システム1の構成を示す図である。本実施形態に係る情報処理システム1は、ブロックチェーン上でトークンを管理するためのシステムである。
【0017】
情報処理システム1は、端末装置100と、店舗装置200と、トークン管理サーバ300と、ブロックチェーンネットワーク400とを有する。端末装置100、店舗装置200、トークン管理サーバ300、及びブロックチェーンネットワーク400は、ネットワーク5に接続されており、ネットワーク5を介して相互に通信可能である。ネットワーク5は、インターネットを含む。ネットワーク5は、LAN(Local Area Network)及び/又はWAN(Wide Area Network)を含んでもよい。
【0018】
情報処理システム1は、ERC20に準拠するトークンをサービス内通貨として発行するとともに、当該トークンを支払手段とした決済を実現する。このようなトークンをサービス内通貨として用いることで、堅牢性や非改ざん性を確保できるのは勿論、スマートコントラクトを用いて自動的に決済を行うことが可能になる。
【0019】
本実施形態では、ERC20に準拠するトークンを支払手段として用いる。支払手段の提供は、「資金決済に関する法律(資金決済法)」「資金決済に関する法律施行令(資金決済法施行令)」等の法令による規制を受ける。資金決済法によれば、(1)金額等の財産的価値が記載・記録される、(2)金額・数量に応じる対価を得て発行される、(3)証票等、番号、記号その他の符号の発行である、(4)代価の弁済等に使用される、という4つの要件を満たす支払手段は「前払式支払手段」と呼ばれ、利用者等を保護するため、発行者に対して数多くの義務が課せられる(資金決済法第3条第1項第1号)。しかしながら、それだけではサービスの提供を促進できないことから、一定の要件を満たす場合に限り、義務の適用を除外する適用除外が定められている(資金決済法第4条)。そのうちの1つは「発行の日から政令で定める一定の期間内に限り使用できる」というもので(資金決済法第4条第1項第2号)、資金決済法施行令には、この一定の期間(以下、「有効期間」という)が6ヶ月であることが定められている(資金決済法施行令第4条第2項)。
【0020】
このような事情から、本実施形態では、ERC20に準拠するトークンを有効期限(有効期間)付きの前払式支払手段として用いる。例えば、トークンの有効期限は、当該トークンの発行の日から6ヶ月(180日)である。有効期限付きトークンの約款において有効期間が定められていてもよい。以下において、このようなトークンを「有効期限付きトークン(X)」と称する。情報処理システム1では、発行時から有効期間内のトークンのみを有効なトークンとして扱う。
【0021】
なお、有効期限付きトークン(X)の具体的な例としては、特定のオンラインゲーム内で通用するゲーム内通貨、EC(Electronic Commerce)サイト内で各種商品(衣服、書籍、電化製品、非代替性トークン等)を購入するために使用できるサイト内通貨、リアルの店舗において各種商品を購入するために使用できる前払式のポイント等が挙げられる。
【0022】
ここで、情報処理システム1が行う処理の概要を説明する。
【0023】
ブロックチェーンネットワーク400により実現されるブロックチェーンには、有効期限付きトークン(X)管理用のスマートコントラクト(以下、「スマートコントラクト(X)」と称する)410が予め記録(デプロイ)される。スマートコントラクト(X)410は、端末装置100からのリクエストに応じて有効期限付きトークン(X)を発行し、端末装置100の利用者の外部所有アカウントに移転する処理を行う。これにより、利用者は、有効期限付きトークン(X)を所有している状態となる。
【0024】
スマートコントラクト(X)410は、有効期限付きトークン(X)の発行に際し、発行した有効期限付きトークン(X)と同額の通貨トークン(以下、「通貨トークン(A)」と称する)を入手して保持しておく。通貨トークン(A)は、有効期限付きトークン(X)のような特定のサービス内でのみ通用するトークンとは異なり、より汎用的なトークンであって、有効期限を有しない。このような通貨トークン(A)は、ベーストークンとも称される。通貨トークン(A)の種類は特に限定されず、ビットコインやイーサリアム等の上場済みの通貨トークンであってもよいし、未上場の通貨トークンであってもよい。上場済みの通貨トークン(A)を用いる場合、スマートコントラクト(X)410は、利用者の外部所有アカウントからスマートコントラクト(X)410に対し、発行した有効期限付きトークン(X)と同額の通貨トークン(A)を移転させればよい。一方、未上場の通貨トークン(A)を用いる場合、スマートコントラクト(X)410は、有効期限付きトークン(X)を発行する際、発行する有効期限付きトークン(X)と同額の通貨トークン(A)を自身に対して発行すればよい。
【0025】
店舗(オンライン/リアルを問わない)において有効期限付きトークン(X)を用いて決済をしようとする利用者は、決済額分の数量の有効期限付きトークン(X)を店舗の外部所有アカウントに移転するよう、スマートコントラクト(X)410にリクエストする。このリクエストを受けたスマートコントラクト(X)410は、決済額分の数量の有効期限付きトークン(X)を焼却するとともに、決済額分の数量の通貨トークン(A)を自身から店舗の外部所有アカウントに対して移転する。これにより、利用者が有効期限付きトークン(X)で支払っているにも関わらず、店舗は通貨トークン(A)で受け取ることができるので、有効期限付きトークン(X)による買い物が成立する。
【0026】
しかし、ここまでで述べた処理だけでは、有効期間を過ぎた有効期限付きトークン(X)を利用者が利用してしまうことを防止できない。そこで本実施形態では、スマートコントラクト(X)410として、有効期間を考慮して決済の可否を判定できるようにERC20のデフォルトのスマートコントラクトをカスタマイズしたものを用いる。具体的には、スマートコントラクト(X)410は、有効期限付きトークン(X)の購入額(発行数量)と購入日時(発行日時)を利用者ごとに記憶し、決済の際に、購入日時からの経過時間が所定の有効期間内である有効期限付きトークン(X)の総額を算出し、算出した総額が決済額より少なければ決済を許可しない機能を組み込む。こうすることで、情報処理システム1では、有効期間を過ぎた有効期限付きトークン(X)による決済が行われることを防止することが可能になる。
【0027】
端末装置100は、有効期限付きトークン(X)を購入し、購入した有効期限付きトークン(X)による決済を行う利用者によって使用される端末であり、スマートフォン、タブレット端末、パーソナルコンピュータ等任意のコンピュータによって構成される。端末装置100は、ブロックチェーンネットワーク400に記録されている情報を確認する用途でも用いられ得る。
【0028】
店舗装置200は、利用者に対して商品を販売する販売者によって使用されるコンピュータである。一例では、店舗装置200はオンラインゲームを提供するサーバコンピュータであり、利用者に対してゲームアイテムの販売を行う。また、他の一例では、店舗装置200はECサイトを提供するサーバコンピュータであり、利用者に対して各種商品の販売を行う。さらに他の一例では、店舗装置200は、リアルの店舗に設置される端末型のコンピュータ(POS端末を含む)であり、利用者による商品購入の決済処理を行う。
【0029】
トークン管理サーバ300は、端末装置100とスマートコントラクト(X)410との間に立ち、利用者による有効期限付きトークン(X)の購入を仲介するコンピュータである。なお、トークン管理サーバ300は、通貨トークン(A)の取引所や非代替性トークンのマーケットプレイスを構成するサーバであってよい。また、本実施形態においてトークン管理サーバ300が行うものとして説明する処理の一部又は全部について、スマートコントラクト(X)410に行わせることとしてもよい。
【0030】
ブロックチェーンネットワーク400は、ピアツーピアによって接続された複数のコンピュータのネットワークである。ブロックチェーンには、特定の管理者がいないパブリックチェーン、単一の組織により管理されているプライベートチェーン、複数の組織により管理されているコンソーシアムチェーンの3種類があるが、ブロックチェーンネットワーク400はこれらのいずれであってもよい。典型的な例では、ブロックチェーンネットワーク400は、パブリックチェーンに分類されるイーサリアムネットワーク又はポリゴンネットワーク、或いは、プライベートチェーンに分類されるLINEブロックチェーンであり得る。
【0031】
ブロックチェーンネットワーク400の利用者は、外部所有アカウントと呼ばれるブロックチェーンのアカウントを介して、ブロックチェーンネットワーク400を利用する。また、ブロックチェーンネットワーク400は、スマートコントラクト(X)410を含む各種のスマートコントラクト(プログラム)を記録可能に構成される。外部所有アカウントは「ウォレットアドレス」により、スマートコントラクトは「アカウントコントラクトアドレス」によりそれぞれ識別される。外部所有アカウント及びスマートコントラクトはともに、有効期限付きトークン(X)及び通貨トークン(A)を含む各種トークンの所有主体になることができる。
【0032】
ブロックチェーンネットワーク400は、各種のトランザクションをブロックチェーン(具体的には、台帳)に記録(ミント)可能に構成される。このような台帳は、ピアツーピアによって接続された各コンピュータが保持する台帳であって、分散型台帳とも称される。この各種のトランザクションには、アカウント、スマートコントラクト、又はトークンを新たに発行するための発行トランザクション、トークンの所有権を移転するための移転トランザクション等が含まれる。
【0033】
ブロックチェーンネットワーク400において台帳にトランザクションをミントする処理は、ブロックチェーンネットワーク400に接続されたいくつかのコンピュータ(以下、「マイナー」と称する)によって実行される。具体的に説明すると、ブロックチェーン(台帳)を構成する各ブロックは、ブロックヘッダと、トランザクションの具体的な内容を示すデータ(取引データ)とを含んで構成される。このうちブロックヘッダには、取引データのサイズを圧縮してなるデータであるマークルルートと、1つ前のブロックのハッシュ値と、任意の文字列であるナンス値とが含まれる。ブロックチェーンネットワーク400においては、新たなブロックをブロックチェーンに接続するには、そのブロックのハッシュ値が所定の条件(例えば、「000」で始まる値である、という条件)を満たしていなければならないというルールが定められている。そこで、ブロックチェーンにあるブロックを記録しようとするマイナーは、そのブロックのブロックヘッダのハッシュ値が上記所定の条件を満たすこととなるよう、総当たり的にナンス値を見つける作業(マイニング)を行う。この作業の結果として、最も早くナンス値の発見に成功したマイナーがそのブロックをブロックチェーンに連結することによって、トランザクションのブロックチェーンへのミントが完了する。
【0034】
ブロックチェーンネットワーク400がイーサリアムネットワーク又はポリゴンネットワークである場合、トランザクションをブロックチェーンにミントしようとする者は、「ガス」と呼ばれる手数料を仮想通貨によって支払う必要がある。ガスは、ブロックの連結に成功したマイナーに対し、報酬として支払われる。
【0035】
ブロックチェーンの外部所有アカウント、スマートコントラクト、トランザクションは、実体としては、ブロックチェーンネットワーク400を構成する複数のコンピュータの1つ以上に記憶されている。以下の説明において、スマートコントラクト(スマートコントラクト(X)410を含む)が行う処理(記憶する処理を含む)として説明する処理についても、実際にその処理を実行するのは、ブロックチェーンネットワーク400を構成するいずれかのコンピュータである。
【0036】
(2)各装置のハードウェア構成
図2は、本実施形態に係る端末装置100、店舗装置200、トークン管理サーバ300、及び、ブロックチェーンネットワーク400を構成する各コンピュータのハードウェア構成の一例を示す図である。
【0037】
端末装置100、店舗装置200、トークン管理サーバ300、及び、ブロックチェーンネットワーク400を構成する各コンピュータはそれぞれ、図示した構成を有するコンピュータ10によって構成され得る。なお、店舗装置200及びトークン管理サーバ300を構成するコンピュータ10は、複数のコンピュータの結合によって構成されるコンピュータであってもよい。
【0038】
コンピュータ10は、処理部11と、記憶部12と、通信部13と、入力部14と、出力部15とを有する。処理部11、記憶部12、通信部13、入力部14、及び出力部15は、図示を省略するバスを介して相互に電気的に接続される。
【0039】
処理部11は、CPU(Central Processing Unit)を含み、コンピュータ10の各部を制御するとともに、記憶部12に記憶される各種のプログラムを読み出して実行する装置である。
【0040】
記憶部12は、DRAM(Dynamic Random Access Memory)等の主記憶装置と、ハードディスク等の補助記憶装置とを含み、コンピュータ10のオペレーティングシステムや各種のアプリケーションを実行するための各種のプログラム、及び、これらのプログラムによって利用されるデータを記憶する装置である。後述する各種シーケンス図に示す処理は、端末装置100、店舗装置200、トークン管理サーバ300、及び、ブロックチェーンネットワーク400を構成する各コンピュータそれぞれの処理部11が、それぞれの記憶部12の中に記憶されているプログラムを実行することによって実現される。
【0041】
通信部13は、外部の装置と通信するための装置であり、処理部11の指示にしたがってデータの送受信を行う。端末装置100、店舗装置200、トークン管理サーバ300、及び、ブロックチェーンネットワーク400を構成する各コンピュータはそれぞれ、この通信部13を用いて、図1に示したネットワーク5を含む他の装置との間で通信を行う。
【0042】
入力部14は、外部からの入力を受け付けて処理部11に供給する装置であり、例えばキーボード、マウス、タッチパネルを含んで構成される。出力部15は、処理部11の処理結果を外部に出力する装置であり、例えばディスプレイ、スピーカーを含んで構成される。
【0043】
(3)スマートコントラクト(X)の機能ブロック構成
図3は、本実施形態に係るスマートコントラクト(X)410の機能ブロック構成を示す図である。
【0044】
スマートコントラクト(X)410は、生成部411と、管理部412と、配列413と、算出部414と、受付部415とを有する。配列413は、配列(a)413aと、配列(b)413bとを有する。配列(a)413a及び配列(b)413bを特に区別しないときは、単に配列413と称する。例えば、配列413内の各レコードは、データを識別するためのキー情報と、当該キー情報と対をなすバリューとによって構成されるキーバリュー型のデータ構造を有する。このような配列は、「mapping」と称されることがある。本実施形態では、当該バリューは、有効期限付きトークン(X)の発行数量(以下、単に「数量」とも称する)である。これら配列413は、実体としては、スマートコントラクト(X)410のソースコード内に記述される。
【0045】
配列(a)413aは、有効期限付きトークン(X)の購入額(発行数量)及び購入日時(発行日時)を利用者ごとに記憶するための配列である。算出部414は、決済の際に、購入日時(発行日時)からの経過時間が所定の有効期間内である有効期限付きトークン(X)の総額(すなわち、トークン数量の合計)を算出する。算出した総額が決済額より少なければ決済を許可しないことで、有効期間を過ぎた有効期限付きトークン(X)による決済が行われることを防止できる。
【0046】
ここで、有効期間内のトークン数量の合計を残高として算出する処理を行う場合、一般的に、1)有効期限付きトークン(X)の発行ごとに発行数量及び発行時刻のレコードを保存し、2)「現在時刻-発行時刻<有効期限」で該当レコードを検索し、3)検索されたレコード中の発行数量を積算して残高とする処理が行われる。しかしながら、このような処理をスマートコントラクト等の処理系で行おうとした場合、1回のトランザクションでの処理量に限界があることから不可能であることがある。例えば、イーサリアムの場合、足し合せ可能なレコード数の上限が1万程度に限定されるため、有効期間内のレコード数が当該上限を超えると、処理が破綻する。
【0047】
そこで、本実施形態では、生成部411は、所定周期内で発行した有効期限付きトークン(X)の発行時刻を、当該所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、当該正規化タイムスタンプに基づくキー情報を生成する。管理部412は、生成部411が生成したキー情報と、当該発行した有効期限付きトークン(X)の数量と、を含むレコードからなる配列413を管理する。
【0048】
本実施形態では、有効期限(有効期間)が180日であると仮定しており、所定周期は1日である。この場合、生成部411は、ある1日内で発行した各有効期限付きトークン(X)の発行時刻を、当該1日内の特定時刻(例えば、0時0分0秒又は23時59分59秒)に正規化した正規化タイムスタンプを生成する。これにより、ある1日内で頻繁に有効期限付きトークン(X)を発行しても、当該発行された有効期限付きトークン(X)の正規化タイムスタンプは同じ値になる。そのため、同じ正規化タイムスタンプを有するレコードを統合することが可能になり、配列413内のレコード数を削減可能になる。よって、足し合せ可能なレコード数が限定されていても、処理が破綻することを防止できる。
【0049】
なお、有効期限が3年又は10年といった長期間である場合には、所定周期を例えば1週間又は1ヶ月(30日)というように設定してもよい。一般のサービスにおいても長期のものは月ごと又は年ごとの期限が一般的であるため、実用上は問題ないものと考えられる。
【0050】
生成部411が正規化タイムスタンプに基づいて生成するキー情報は、正規化タイムスタンプそのものであってもよいし、正規化タイムスタンプ及び付加情報の組み合わせであってもよいし、正規化タイムスタンプを所定演算(例えばハッシュ演算)により変換したものであってもよいし、正規化タイムスタンプ及び付加情報を所定演算により変換したものであってもよい。本実施形態では、キー情報は、正規化タイムスタンプ及び付加情報を所定演算により変換したものとする。また、本実施形態では、付加情報は、ブロックチェーン上のアドレスとする。但し、所定基準でカテゴリ分けするような用途においては、付加情報としてカテゴリを示す値を用いてもよい。
【0051】
生成部411は、新たな有効期限付きトークン(X)の発行時に当該新たな有効期限付きトークン(X)についてキー情報を生成する。管理部412は、生成部411が生成したキー情報に合致するレコードを配列413から特定し、当該特定したレコード中のトークン数量(発行数量)に新たな有効期限付きトークン(X)の数量を加算する。これにより、有効期限付きトークン(X)を新たに発行する場合でも、当該新たな有効期限付きトークン(X)の発行数量及び発行日時だけを示す新たなレコードを配列413に追加する必要がなくなるため、配列413中のレコード数の増加を抑制できる。よって、足し合せ可能なレコード数が限定されていても、処理が破綻することを防止できる。
【0052】
本実施形態では、生成部411は、有効期限付きトークン(X)の発行時に、当該有効期限付きトークン(X)について生成した正規化タイムスタンプと、当該有効期限付きトークン(X)の受け取り手のアドレスとから、所定演算によってキー情報を生成する。管理部412は、受け取り手のアドレスごとにトークン残高を算出するための配列(a)413aを管理する。受け取り手のアドレスとは、例えば、有効期限付きトークン(X)を購入した利用者の外部所有アカウントのアドレスである。正規化タイムスタンプ及び受け取り手のアドレスからキー情報を生成することにより、有効期間内のトークンの合計数量(すなわち、トークン残高)を、キー情報に基づいて利用者ごとに容易に算出可能になる。
【0053】
本実施形態では、キー情報を生成するための所定演算は、ハッシュ演算である。ハッシュ演算により、決まったデータ長のキー情報を生成できる。例えば、イーサリアム互換のスマートコントラクト実行環境(EVM)では、32bytes長のデータ(bytes32)が最も効率よく処理されるように設計されているため、このようなハッシュ演算が効果的である。但し、所定演算は、ハッシュ演算に限定されるものではなく、例えば正規化タイムスタンプとアドレスとを連結(結合)する演算であってもよい。
【0054】
生成部411は、有効期限付きトークン(X)の発行時に、当該有効期限付きトークン(X)について生成した正規化タイムスタンプと、予め定められたダミーアドレスとから、所定演算によってキー情報を生成してもよい。管理部412は、有効期限付きトークン(X)全体についてトークン残高を算出するための配列(b)413bを管理してもよい。これにより、配列(a)413a及び配列(b)413bに対する処理及びデータ構造を統一しつつ、有効期間内の有効期限付きトークン(X)全体の残高を、配列(b)413bを用いて容易に算出可能になる。
【0055】
生成部411は、UTC時刻で表現される発行時刻に対して、有効期限付きトークン(X)を用いたサービスが行われる国(以下、「サービス提供国」と称する)の時差を示す時刻オフセットを付与し、時刻オフセットが付与された発行時刻に対して正規化を行ってもよい。時刻オフセットは、例えば、サービス提供国が日本であれば「+9時間」である。ブロックチェーンネットワーク400では、通常のタイムスタンプはUNIX時間で表現されており、UNIX時間はUTC時刻を基準としている。このようなタイムスタンプで発行時刻を表現すると、UTC時刻での発行時刻になる。しかしながら、有効期間内のトークン残高を算出する際に参照される現在時刻は、サービス提供国の時刻である。そのため、正規化に先立ち、UTC時刻での発行時刻をサービス提供国の時刻に変換するために時刻オフセットを付与することとしている。
【0056】
算出部414は、管理部412が管理する配列413を用いて、有効期間内の有効期限付きトークン(X)の数量の合計をトークン残高として算出する。具体的には、算出部414は、現在時刻を基準として、有効期間に相当する数の過去の各所定周期について正規化タイムスタンプを生成する。当該各所定周期について生成された正規化タイムスタンプからなる群を「正規化タイムスタンプ配列」とも称する。算出部414は、生成した各正規化タイムスタンプについてキー情報を生成し、生成したキー情報に合致する各レコードを配列413から特定し、特定した各レコード中の数量を積算(合計)することでトークン残高を算出する。
【0057】
例えば、所定周期が1日であって、有効期間が180日である場合、算出部414は、過去180日分の正規化タイムスタンプからなる正規化タイムスタンプ配列(すなわち、180個の正規化タイムスタンプ)を生成する。そして、算出部414は、正規化タイムスタンプ配列を構成する各正規化タイムスタンプについてキー情報(すなわち、180個のキー情報)を生成する。算出部414は、生成した180個のキー情報をキーとして配列413からレコードを検索し、検索された各レコード中の数量を積算してトークン残高を得る。
【0058】
ここで、ある利用者についてトークン残高を算出する場合には、算出部414は、当該利用者の外部所有アカウントのアドレス(以下、「アドレスU」と称する)と180個の正規化タイムスタンプとから所定演算によって180個のキー情報を生成する。そして、算出部414は、生成した180個のキー情報をキーとして配列(a)413aからレコードを検索し、検索された各レコード中の数量を積算して当該利用者のトークン残高を得る。
【0059】
一方、有効期限付きトークン(X)の全体についてトークン残高を算出する場合には、算出部414は、予め定められたダミーアドレスと180個の正規化タイムスタンプとから所定演算によって180個のキー情報を生成する。そして、算出部414は、生成した180個のキー情報をキーとして配列(b)413bからレコードを検索し、検索された各レコード中の数量を積算して有効期限付きトークン(X)全体のトークン残高を得る。
【0060】
有効期限付きトークン(X)の発行時の動作として、受付部415は、購入額及び第1のアドレスを指定する有効期限付きトークン(X)の購入リクエストを受け付けてもよい。当該リクエストは、発行数量及び第1のアドレスを指定する有効期限付きトークン(X)の発行リクエストでもある。管理部412は、当該リクエストを受け付けたことに応じて、購入額分の有効期限付きトークン(X)の第1のアドレスへの発行又は移転をブロックチェーン(台帳)に記録するとともに、購入額に対応する数量と発行日時に対応するキー情報とを用いて当該第1のアドレスについて配列(a)413aを更新してもよい。
【0061】
有効期限付きトークン(X)を用いた決済時(例えば、商品購入時)の動作として、受付部415は、決済額を指定するとともに、移転元として第1のアドレスを、移転先として第2のアドレスをそれぞれ指定する有効期限付きトークン(X)の移転リクエストを受け付けてもよい。算出部414は、当該移転リクエストを受け付けたことに応じて、当該第1のアドレスについて、配列(a)413aの中から発行日時からの経過時間が有効期間内である数量の合計をトークン残高として算出してもよい。管理部412は、算出部414により算出されたトークン残高が決済額を下回る場合に、移転不可を示す情報を通知してもよい。
【0062】
一方、算出部414により算出されたトークン残高が決済額以上である場合、管理部412は、決済額分の通貨トークン(A)の当該第2のアドレスへの移転をブロックチェーン(台帳)に記録するとともに、決済額分のレコードを配列413から消去してもよい。
【0063】
決済額分の通貨トークン(A)の当該第2のアドレスへの移転のブロックチェーン(台帳)への記録は、スマートコントラクト(X)410を所有者としてブロックチェーン(台帳)に記録されている通貨トークン(A)の当該第2のアドレスへの移転をブロックチェーン(台帳)に記録することによって実行されてもよい。
【0064】
管理部412は、算出部414により算出されたトークン残高が決済額以上である場合、第1のアドレスを所有者としてブロックチェーン(台帳)に記録されている決済額分の有効期限付きトークン(X)を焼却してもよい。
【0065】
(4)スマートコントラクト(X)の動作例
図4乃至図6は、本実施形態に係るスマートコントラクト(X)410の動作を説明するための図である。
【0066】
図4に示すように、生成部411は、所定周期内で発行した有効期限付きトークン(X)の発行時刻(日時)を、当該所定周期内の特定時刻(特定日時)に正規化した正規化タイムスタンプを生成する。生成部411は、UTC時刻で表現される発行時刻(日時)に対して、有効期限付きトークン(X)のサービス提供国の時差を示す時刻オフセットを付与し、時刻オフセットが付与された発行時刻(日時)に対して正規化を行ってもよい。
【0067】
図4の例では、(A)に示すタイムスタンプは、有効期限付きトークン(X)の発行時刻(日時)を示すタイムスタンプである。このタイムスタンプを日時に変換すると、(B)に示すような日時になる。(D)は、正規化後の日時(正規化日時)である。ここでは、1日単位で正規化を行うこととし、1日内で発行した各有効期限付きトークン(X)の発行時刻が23時59分59秒になるように正規化している。(C)は、正規化日時のタイムスタンプ(正規化タイムスタンプ)である。
【0068】
図5に示すように、生成部411は、新たな有効期限付きトークン(X)の発行時に、当該有効期限付きトークン(X)について生成した正規化タイムスタンプと、当該有効期限付きトークン(X)の受け取り手のアドレス(具体的には、外部所有アカウントのアドレス)とから、ハッシュ演算によってキー情報を生成する。図示の例では、(A)に示す受け取り手のアドレス及び正規化タイムスタンプに対して、(B)に示すようにハッシュ演算(ハッシュ化)を行い、(C)に示すキー情報を生成する。
【0069】
そして、管理部412は、生成部411が生成したキー情報に合致するレコードを配列(a)413aから特定し、当該特定したレコード中のバリューであるトークン数量(発行数量)に、新たな有効期限付きトークン(X)の数量(図示の例では、「100」)を加算する。一方、生成部411が生成したキー情報に合致するレコードが配列(a)413aに存在しない場合、管理部412は、(C)に示すキー情報及びバリューからなるレコードを配列(a)413aに追加する。
【0070】
図6に示すように、生成部411は、新たな有効期限付きトークン(X)の発行時に、当該有効期限付きトークン(X)について生成した正規化タイムスタンプと、予め定められたダミーアドレスとから、ハッシュ演算によってキー情報を生成してもよい。図示の例では、(A)に示すダミーアドレス及び正規化タイムスタンプに対して、(B)に示すようにハッシュ演算(ハッシュ化)を行い、(C)に示すキー情報を生成する。
【0071】
そして、管理部412は、生成部411が生成したキー情報に合致するレコードを配列(b)413bから特定し、当該特定したレコード中のバリューであるトークン数量(発行数量)に、新たな有効期限付きトークン(X)の数量(図示の例では、「100」)を加算する。一方、生成部411が生成したキー情報に合致するレコードが配列(b)413bに存在しない場合、管理部412は、(C)に示すキー情報及びバリューからなるレコードを配列(b)413bに追加する。
【0072】
(5)システム動作
本実施形態に係る情報処理システム1の動作について説明する。
【0073】
(5.1)初期設定
図7は、本実施形態に係る情報処理システム1における初期設定動作を示す図である。
【0074】
ステップS101において、有効期限付きトークン(X)を発行する発行体(例えば、トークン管理サーバ300)は、スマートコントラクト(X)410をブロックチェーンネットワーク400にデプロイするためのデプロイリクエストをブロックチェーンネットワーク400に対して行う。デプロイリクエストは、各種設定値として、通貨トークン(A)に関するアドレスと、所定周期(例えば、1日)と、有効期間(例えば、180日)と、時間オフセット(日本の場合、9時間)とを含む。
【0075】
ステップS102において、ブロックチェーンネットワーク400は、ステップS101の設定値を保存し、スマートコントラクト(X)410をデプロイする。これにより、スマートコントラクト(X)410を利用可能になる。
【0076】
(5.2)有効期限付きトークン(X)購入動作
本実施形態に係る情報処理システム1における有効期限付きトークン(X)の購入動作(発行動作)について説明する。
【0077】
(5.2.1)上場済みの通貨トークン(A)を用いる場合
図8は、上場済みの通貨トークン(A)を用いる場合に関して、利用者による有効期限付きトークン(X)の購入に関する動作を示すシーケンス図である。
【0078】
この場合の利用者は、前提として、これから購入しようとする有効期限付きトークン(X)の購入額に相当する通貨トークン(A)を購入して所持している必要がある(ステップS201)。具体的には、利用者の外部所有アカウントを所有者とする通貨トークン(A)がブロックチェーンネットワーク400の台帳に記録されている必要がある。
【0079】
利用者が端末装置100からトークン管理サーバ300に対し、購入額を指定して有効期限付きトークン(X)の購入をリクエストすると(ステップS202)、トークン管理サーバ300は、端末装置100に対し、購入額に相当する通貨トークン(A)のスマートコントラクト(X)410への移転をリクエストする(ステップS203)。
【0080】
ステップS203のリクエストを受けた端末装置100は、トークン管理サーバ300を介して、購入額に相当する通貨トークン(A)をスマートコントラクト(X)410に移転するための処理を実行する(ステップS204)。具体的には、購入額に相当する通貨トークン(A)を利用者の外部所有アカウントからスマートコントラクト(X)410に移転するための移転トランザクションをブロックチェーンネットワーク400の台帳に記録する処理を行う。なお、ここでは、ブロックチェーンネットワーク400への移転トランザクションの記録をトークン管理サーバ300が実行する例を説明しているが、トークンの取引を仲介する他のサーバが実行することとしてもよい。
【0081】
続いてトークン管理サーバ300は、ブロックチェーン(台帳)を確認し(ステップS205)、購入額に相当する通貨トークン(A)のスマートコントラクト(X)410への移転が完了したか否かを判定する。ここで完了していないと判定したトークン管理サーバ300は、端末装置100にエラー(購入不可)をリターンする。この場合、利用者への有効期限付きトークン(X)の払い出し(発行)は実行されないことになる。
【0082】
一方、完了したと判定したトークン管理サーバ300は、ステップS202で指定された購入額に相当する有効期限付きトークン(X)の発行をスマートコントラクト(X)410にリクエストする(ステップS206)。このリクエストを受けたスマートコントラクト(X)410は、購入額に相当する有効期限付きトークン(X)をスマートコントラクト(X)410に対して発行する(ステップS207)。具体的には、購入額に相当する有効期限付きトークン(X)のスマートコントラクト(X)410に対する発行を示す発行トランザクションをブロックチェーン(台帳)に記録する処理を行う。
【0083】
その後、スマートコントラクト(X)410は、発行した有効期限付きトークン(X)を、有効期限付きトークン(X)の購入をリクエストした利用者の外部所有アカウントに対して移転する(ステップS208)。具体的には、スマートコントラクト(X)410から利用者の外部所有アカウントへの、発行した有効期限付きトークン(X)の移転を示す移転トランザクションをブロックチェーン(台帳)に記録する処理を行う。
【0084】
ステップS208が終了した後、スマートコントラクト(X)410は、配列(a)413a及び配列(b)413bのそれぞれを、新たに発行した有効期限付きトークン(X)の情報を追加するよう更新する(ステップS209)。具体的には、購入額及び購入日時を含むレコードを配列(a)413a及び配列(b)413bのそれぞれに反映する。
【0085】
利用者はこの後、必要に応じて、購入した有効期限付きトークン(X)が自身の外部所有アカウントに追加されたことを確認する(ステップS210)。具体的には、「イーサスキャン」等のブロックチェーン・エクスプローラを用いて自身のウォレットにアクセスすることにより確認してもよいし、トークン管理サーバ300を介して自身のウォレットにアクセスすることにより確認してもよい。この確認を行うことにより、利用者は、購入をリクエストした有効期限付きトークン(X)が無事に自分の物になったことを確認できることになる。
【0086】
(5.2.2)未上場の通貨トークン(A)を用いる場合
図9は、未上場の通貨トークン(A)を用いる場合に関して、利用者による有効期限付きトークン(X)の購入に関する動作を示すシーケンス図である。
【0087】
この場合、端末装置100からトークン管理サーバ300に対し、購入額を指定する有効期限付きトークン(X)の購入リクエストが送信される(ステップS301)。このリクエストを受けたトークン管理サーバ300は、端末装置100との間で所定の決済処理を実行する(ステップS302)。この決済処理は、法定通貨又は上場済みの仮想通貨を用いて行われる。
【0088】
決済処理を実行したトークン管理サーバ300は、決済が完了したかどうかを判定する。その結果、完了していないと判定したトークン管理サーバ300は、端末装置100にエラー(購入不可)をリターンする。この場合、有効期限付きトークン(X)の利用者への払い出し(発行)は実行されないことになる。
【0089】
一方、完了したと判定したトークン管理サーバ300は、ステップS301で指定された購入額に相当する有効期限付きトークン(X)及び通貨トークン(A)の発行をスマートコントラクト(X)410に指示する(ステップS303)。この指示を受けたスマートコントラクト(X)410は、購入額に相当する有効期限付きトークン(X)及び通貨トークン(A)をスマートコントラクト(X)410に対して発行する(ステップS304)。具体的には、購入額に相当する有効期限付きトークン(X)のスマートコントラクト(X)410に対する発行を示す発行トランザクションと、購入額に相当する通貨トークン(A)のスマートコントラクト(X)410に対する発行を示す発行トランザクションとをブロックチェーン(台帳)に記録する処理を行う。
【0090】
その後の処理は、図8に示したステップS208~S210と同様である(ステップS305~S307)。結果として、利用者の外部所有アカウントに有効期限付きトークン(X)が追加されるとともに、同額の通貨トークン(A)がスマートコントラクト(X)410に追加され、配列(a)413a及び配列(b)413bには購入額及び購入日時を含むレコードが反映されることになる。
【0091】
(5.3)有効期限付きトークン(X)の利用者ごとの残高と総残高の確認動作
図10は、有効期限付きトークン(X)の利用者ごとの残高及び総残高の確認動作を示すシーケンス図である。同図には、図8又は図9の処理により発行した有効期限付きトークン(X)に関して、有効期間内の有効期限付きトークン(X)の利用者ごとの残高と総残高を情報処理システム1の利用者(又は管理者)が確認するための処理を示している。
【0092】
まず初めに、利用者ごとの有効期限付きトークン(X)の残高を確認する処理について説明すると、利用者(又は管理者)は、トークン管理サーバ300からスマートコントラクト(X)410に対し、自身のウォレットアドレスU(第1のアドレス)を指定して残高の確認をリクエストする(ステップS401)。
【0093】
このリクエストを受けたスマートコントラクト(X)410は、指定されたウォレットアドレスUにより配列(a)413aを参照し、購入日時からの経過時間が所定の有効期間内であるレコードを抽出する。そして、抽出したレコードに含まれる購入額の合計を算出することにより、指定されたウォレットアドレスUに対応する有効期間内のトークン残高を算出する。
【0094】
具体的には、スマートコントラクト(X)410は、現在時刻を基準として、有効期間に相当する数の過去の各所定周期について正規化タイムスタンプ(正規化タイムスタンプ配列)を生成する(ステップS402)。スマートコントラクト(X)410は、生成した各正規化タイムスタンプについて、当該正規化タイムスタンプ及び指定されたウォレットアドレスUからキー情報を生成し(ステップS403)、生成したキー情報に合致する各レコードを配列(a)412aから取得し、取得した各レコード中の数量を積算(合計)することでトークン残高を算出する(ステップS404)。
【0095】
そして、スマートコントラクト(X)410は、算出した残高を利用者(又は管理者)にリターンする。これにより利用者(又は管理者)は、指定したウォレットアドレスUに対応する有効期限付きトークン(X)のうち有効期間内のものの残高を知ることができるので、利用者ごとの有効期限付きトークン(X)の有効な残高を知ることが可能になる。
【0096】
次に、有効期限付きトークン(X)の総残高を確認する処理について説明すると、管理者(例えば、トークン管理サーバ300)は、トークン管理サーバ300からスマートコントラクト(X)410に対し、総残高の確認をリクエストする(ステップS401)。このリクエストを受けたスマートコントラクト(X)410は、配列(b)413bを参照し、購入日時からの経過時間が所定の有効期間内であるレコードを抽出する。そして、抽出したレコードに含まれる購入額の合計を算出することにより、有効期間内の総残高を算出する。
【0097】
具体的には、スマートコントラクト(X)410は、現在時刻を基準として、有効期間に相当する数の過去の各所定周期について正規化タイムスタンプ(正規化タイムスタンプ配列)を生成する(ステップS402)。スマートコントラクト(X)410は、生成した各正規化タイムスタンプについて、当該正規化タイムスタンプ及び予め定められたダミーアドレスからキー情報を生成し(ステップS403)、生成したキー情報に合致する各レコードを配列(b)412bから取得し、取得した各レコード中の数量を積算(合計)することでトークン残高を算出する(ステップS404)。
【0098】
ステップS41の算出を行ったスマートコントラクト(X)410は、算出した総残高を管理者(例えば、トークン管理サーバ300)にリターンする。これにより管理者は、有効期間内の有効期限付きトークン(X)の総残高を知ることができる。
【0099】
以上のように、本実施形態に係るスマートコントラクト(X)410によれば、情報処理システム1の利用者又は管理者は、有効期間内の有効期限付きトークン(X)の利用者ごとの残高及び総残高を知ることが可能になる。なお、本実施形態に係るスマートコントラクト(X)410は、配列(b)413bを用いて総残高を算出しているが、配列(a)413aの残高を合計することにより総残高を算出することとしてもよい。この場合、スマートコントラクト(X)410のソースコードに配列(b)413bを記述しなくてもよく、配列(a)413aにのみ、新たに発行した有効期限付きトークン(X)の情報を追加すればよい。
【0100】
(5.4)有効期限付きトークン(X)による商品の購入に関する動作
図11は、有効期限付きトークン(X)による商品の購入に関する動作を示すシーケンス図である。
【0101】
この動作では、オンライン又はリアルの店舗で商品を購入しようとする利用者が端末装置100を操作することにより、端末装置100からスマートコントラクト(X)410に対し、店舗の外部所有アカウントへの決済額n分の有効期限付きトークン(X)の移転リクエストが送信される(ステップS501)ことを契機として開始される。この移転リクエストには、移転元としての利用者の外部所有アカウントを特定する情報(具体的には、利用者の外部所有アカウントのウォレットアドレス(第1のアドレスU))と、移転先としての店舗の外部所有アカウントを特定する情報(具体的には、店舗の外部所有アカウントのウォレットアドレス(第2のアドレス))とが含まれる。
【0102】
ステップS501の移転リクエストを受信したスマートコントラクト(X)410は、現在時刻を基準として、有効期間に相当する数の過去の各所定周期について正規化タイムスタンプ(正規化タイムスタンプ配列)を生成する(ステップS502)。スマートコントラクト(X)410は、生成した各正規化タイムスタンプについて降順に、当該正規化タイムスタンプ及び指定された第1のアドレスUからキー情報を生成し(ステップS503)、生成したキー情報に合致するレコードを配列(a)412aから順次取得し、取得した各レコード中の数量を決済額nから順次減算する(ステップS504)。
【0103】
ここで、有効期間内のトークン残高が決済額n未満であると判定したスマートコントラクト(X)410は、例外発生としてトランザクションをリバートし(ステップS505)、端末装置100にエラー(移転不可)をリターンする(ステップS506)。この場合、有効期限付きトークン(X)の移転は実行されず、利用者は商品を購入できないことになる。
【0104】
一方、有効期間内のトークン残高が決済額n以上であると判定したスマートコントラクト(X)410は、決済額n分のレコードを購入日時の古い順に配列413から消去するよう更新する(ステップS507)。この場合において、購入日時の古い順にレコードを消していった結果、次に消去の対象となるレコードに記入されているトークン数量が残りの決済額に満たない場合(すなわち、端数が出た場合)には、スマートコントラクト(X)410は、そのレコードに記入されているトークン数量を残りの決済額分だけ減額する処理を行う。
【0105】
なお、スマートコントラクト(X)410は、有効期限の切れたレコードを配列413から消去する処理を行ってもよい。具体的には、購入日時からの経過時間が所定の有効期間を超えているレコードを抽出し、配列413から消去する。
【0106】
次にスマートコントラクト(X)410は、ステップS501において移転リクエストを送信してきた利用者の外部所有アカウントが所有している有効期限付きトークン(X)のうち、決済額n分の有効期限付きトークン(X)を焼却するとともに、決済額n分の通貨トークン(A)をスマートコントラクト(X)410から店舗の外部所有アカウントに移転する(ステップS508)。具体的に説明すると、スマートコントラクト(X)410は、決済額n分の有効期限付きトークン(X)を利用者の外部所有アカウントから所定の焼却用アカウントに移転する移転トランザクションをブロックチェーン(台帳)に記録する。この記録の結果、焼却された有効期限付きトークン(X)は、決済に使えない状態となる。スマートコントラクト(X)410は、スマートコントラクト(X)410から店舗の外部所有アカウントへの決済額n分の通貨トークン(A)の移転を示す移転トランザクションをブロックチェーン(台帳)に記録する処理を行う。これにより、利用者が支払った有効期限付きトークン(X)と同額の通貨トークン(A)が店舗の外部所有アカウントに移転されることになる(ステップS509)。
【0107】
続いて店舗装置200は、決済額n分の通貨トークン(A)が店舗用の外部所有アカウントに追加されたことを確認してもよい。具体的には、ブロックチェーン・エクスプローラやトークン管理サーバ300を用いて確認すればよい。店舗装置200は、こうして決済額n分の通貨トークン(A)が店舗用の外部所有アカウントに追加されたことを確認した後、端末装置100に対し、商品を引き渡す処理を行う。なお、店舗装置200がリアルの店舗に設置された装置である場合、商品の引き渡しは、利用者に対する手渡しであり得る。
【0108】
このように、本実施形態に係る情報処理システム1によれば、利用者の外部所有アカウント(ウォレットアドレス)ごとに、有効期限付きトークン(X)の購入額及び購入日時が配列(a)413aに記憶されるので、スマートコントラクト(X)410は、有効期限付きトークン(X)を用いる決済の際、受け取り時点(発行時点)からの有効期間を考慮して、利用者の有効期限付きトークン(X)の残高を算出できる。したがって、受け取り時点(発行時点)からの有効期間を過ぎた有効期限付きトークン(X)による決済が行われることをブロックチェーンの機構として無効とすることが可能になる。
【0109】
また、有効期限付きトークン(X)を利用者に払い出す(発行する)際、それと同額の通貨トークン(A)をスマートコントラクト(X)410に所有させているので、利用者が有効期限付きトークン(X)を用いて支払いを行った際、利用者が支払った有効期限付きトークン(X)ではなく、それと同額の通貨トークン(A)を店舗に支払うことが可能になる。
【0110】
(6)他の実施形態
上述の実施形態では、有効期限付きトークン(X)をスマートコントラクト(X)410に対して発行した後、その有効期限付きトークン(X)を利用者の外部所有アカウントに移転していたが、スマートコントラクト(X)410を介さずに、直接的に利用者の外部所有アカウントに対して有効期限付きトークン(X)を発行してもよい。
【0111】
また、上述の実施形態では、移転リクエストが発生した際に、有効期限の切れたレコードを配列413から消去する処理を行う例を説明したが、この消去は、他のタイミング(例えば、定期的なタイミング、トークン管理サーバ300から有効期限付きトークン(X)の発行を指示されたタイミング、利用者(又は管理者)が有効期限付きトークン(X)の残高を確認したタイミング等)にも行うこととしてもよい。
【0112】
上述の実施形態における動作フロー及び動作例は、必ずしもフロー図に記載された順序に沿って時系列に実行されなくてよい。例えば、動作におけるステップは、フロー図として記載した順序と異なる順序で実行されても、並列的に実行されてもよい。また、動作におけるステップの一部が削除されてもよく、さらなるステップが処理に追加されてもよい。
【0113】
上述の実施形態に係る動作をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記憶媒体であってもよい。非一過性の記憶媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記憶媒体であってもよい。
【0114】
本開示で使用する「に基づいて」、「に応じて」という記載は、別段に明記されていない限り、「のみに基づいて」、「のみに応じて」を意味しない。「に基づいて」という記載は、「のみに基づいて」及び「に少なくとも部分的に基づいて」の両方を意味する。同様に、「に応じて」という記載は、「のみに応じて」及び「に少なくとも部分的に応じて」の両方を意味する。また、「含む(include)」、「備える(comprise)」、及びそれらの変形の用語は、列挙する項目のみを含むことを意味せず、列挙する項目のみを含んでもよいし、列挙する項目に加えてさらなる項目を含んでもよいことを意味する。また、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。本開示において、例えば、英語でのa,an,及びtheのように、翻訳により冠詞が追加された場合、これらの冠詞は、文脈から明らかにそうではないことが示されていなければ、複数のものを含むものとする。
【0115】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【符号の説明】
【0116】
1 :情報処理システム
5 :ネットワーク
10 :コンピュータ
11 :処理部
12 :記憶部
13 :通信部
14 :入力部
15 :出力部
100 :端末装置
200 :店舗装置
300 :トークン管理サーバ
400 :ブロックチェーンネットワーク
410 :スマートコントラクト
411 :生成部
412 :管理部
413 :配列
414 :算出部
415 :受付部
【要約】
【課題】ブロックチェーン上のスマートコントラクト等の処理系で有効期間内のトークン数量の合計を適切に算出可能とする。
【解決手段】ブロックチェーン上でトークンを管理するための情報処理システムは、所定周期内で発行したトークンの発行時刻を、前記所定周期内の特定時刻に正規化した正規化タイムスタンプを生成すると共に、前記正規化タイムスタンプに基づくキー情報を生成する生成手段と、前記キー情報と前記発行したトークンの数量とを含むレコードからなる配列を管理する管理手段と、を備える。
【選択図】図3
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11