以下、本発明の実施形態(以降、「本実施形態」とも表す。)について説明する。本実施形態では、電子チケットの自由な流通を実現すると共に、電子チケットの不正利用及び不正取引を防止することが可能な電子チケット管理システム1について説明する。なお、本実施形態では、電子チケットを単に「チケット」とも表す。
本実施形態に係る電子チケット管理システム1では、電子チケットの自由な流通と不正利用及び不正取引の防止とを実現するために、ブロックチェーン技術(又は「分散台帳技術」とも呼ばれる。)を利用したプラットフォームを用いる。ブロックチェーン技術を利用したプラットフォームの具体例としては、Ethereum(登録商標)が挙げられる。本実施形態に係る電子チケット管理システム1は、一例として、Ethereumを用いて実現されているものとする。ただし、これは一例であって、本実施形態に係る電子チケット管理システム1は、任意のブロックチェーン技術を利用したプラットフォーム(例えば、Hyperledger(登録商標) Fabric等)を用いて実現することが可能である。
ブロックチェーン技術の主な特徴としては、以下の(1)~(5)が挙げられる。
(1)システム(つまり、ブロックチェーン技術を利用したプラットフォームを用いて実現されたシステム)の利用者は、公開鍵暗号に基づいて生成可能なアドレス値と呼ばれる識別子で区別される。
(2)共有情報(つまり、システム内で共有される情報)の内容を更新するためには、トランザクションの作成及び送信する必要がある。なお、トランザクションの作成を「トランザクション発行」と呼ぶこともある。
(3)トランザクションには、秘密鍵に基づく電子署名を付加する必要がある。電子署名が付加されることにより、特定のトランザクションが、どのアドレス値の利用者によって作成されたのかを、システムの参加者全員により検証される。
(4)スマートコントラクトと呼ばれる仕組みを利用することができる。スマートコントラクトとは、トランザクションに対して共有情報をどのように更新するか(共有情報を更新しない場合も含む。)という手続きが定義されたプログラムであり、その手続きは事前にシステムの参加者全員で合意される必要がある。スマートコントラクトがデプロイ(つまり、利用可能な状態になる)された場合、当該スマートコントラクトにはアドレス値が付与される(なお、Hyperledger Fabricの場合はChaincode IDが付与される。)。
(5)有効なトランザクションをどの順でスマートコントラクトにより処理するかを、システムの参加者全員で最終的に合意を取ることが可能である。このため、或る程度の時間を掛けることで、システムの参加者全員が確実に同一の情報を共有することができる。なお、どの程度の時間を掛ける必要があるかは合意形成アルゴリズムによって異なるが、数秒から数十秒程度が一般的である。
上記の(1)~(5)の特徴により、ブロックチェーン技術を利用したプラットフォームを用いてシステムを実現することで、参加者間に必ずしも信頼関係があるとは限らない場合であっても、トランザクションの発行者を検証した上で、情報を共有することが可能になる。
ここで、Ethereumにおけるスマートコントラクトの規格の1つとして、ERC721と呼ばれる規格が知られている。ERC721はスマートコントラクト内で代替不可能なトークン(NFT:Non-Fungible Token)を扱えるようにした規格であり、ERC721を用いることでトークンの所有権等を管理することができるようになる。トークンには所有権を有するユーザ(以降、「所有者」とも表す。)を示すアドレス値を格納するためのデータ領域(以降、「所有者格納領域」とも表す。)があり、この所有者格納領域に格納されているアドレス値を書き換えるためには、現時点の所有者等が、新たな所有者を示すアドレス値を指定したトランザクションを発行及び送信する必要がある。所有者格納領域に格納されているアドレス値が、新たな所有者を示すアドレス値に書き換わることで、新たな所有者は所有権を獲得することなり、元の所有者は所有権を失うことなる。
そこで、本実施形態に係る電子チケット管理システム1では、ERC721に準拠したスマートコントラクトを利用して、電子チケットをトークンにより実現する。これにより、必ずしも互いに信頼関係があるとは限らない者の間における電子チケットの自由な流通を実現しつつ、電子チケットの二重譲渡等の不正取引を防止することが可能となる。また、電子チケットを利用する際にその所有権等をサービス提供者が確認することで、電子チケットの不正利用を防止することが可能になる。
なお、電子チケットの利用によって享受可能なサービスは特定のサービスに限定されず、任意のサービスに対して適用可能である。電子チケットの利用によって享受可能なサービスの典型的な例としては、コンサート鑑賞、映画鑑賞、遊園地や動物園等のテーマパークへの入場、テーマパークにおけるアトラクション体験、飲食店における飲食物の提供、交通機関(例えば、電車、バス、タクシー、飛行機等)の利用、デジタルコンテンツ(例えば、音楽ファイル、動画ファイル等)の提供等が挙げられる。また、電子チケットの利用によってサービスを享受する場合以外にも、例えば、電子チケットの利用によって、指定された物品(例えば、景品等)が引き渡される場合に対しても適用可能である。
<電子チケット管理システム1の全体構成>
本実施形態に係る電子チケット管理システム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係る電子チケット管理システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る電子チケット管理システム1には、1以上のチケット利用端末10と、1以上のチケット発行端末20と、1以上のチケット確認端末30と、1以上のチケット販売端末40とが含まれる。また、これらの各端末はP2P(Peer to Peer)のブロックチェーンネットワーク50を形成しているノードに接続されている。
チケット利用端末10は、電子チケットを利用してサービスを享受するチケット利用者が使用する端末である。チケット利用者は、チケット利用端末10を用いて、電子チケットを購入したり、電子チケットを利用したりすることができる。チケット利用端末10としては、例えば、スマートフォン、タブレット端末、携帯型ゲーム機器、ウェアラブルデバイス、PC(パーソナルコンピュータ)等の各種端末を用いることができる。
ここで、チケット利用端末10は、機能部として、利用処理部101を有する。利用処理部101は、例えば、チケット利用端末10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。
利用処理部101は、電子チケットの購入に関する処理や電子チケットの利用に関する処理を実行する。なお、電子チケットの購入とは、例えば、電子チケットの購入の申し込みやその代金の決済等により電子チケットの所有権を自身に移転させることである。また、電子チケットの利用とは、サービスを享受するために電子チケットをサービス提供者に提示等することである。
チケット発行端末20は、電子チケットの発行や販売等を行うと共に、この電子チケットの利用と引き換えにサービスを提供するサービス提供者が使用する端末である。サービス提供者は、チケット発行端末20を用いて、電子チケットの発行や販売を行うことができる。チケット発行端末20としては、例えば、スマートフォン、タブレット端末、PC、汎用サーバ等の各種端末を用いることができる。
ここで、チケット発行端末20は、機能部として、発行処理部201と、販売処理部202とを有する。これらの各機能部は、例えば、チケット発行端末20にインストールされた1以上のプログラムがプロセッサに実行させる処理により実現される。
発行処理部201は、電子チケットの発行に関する処理を実行する。販売処理部202は、電子チケットの販売に関する処理を実行する。なお、電子チケットの発行とは新たな電子チケットを作成することである。また、電子チケットの販売とは、例えば、電子チケットの購入の申し込みやその代金の決済等に応じて、電子チケットの所有権を販売者から購入者に移転することである。
チケット確認端末30は、サービス提供者が使用する端末である。サービス提供者は、チケット確認端末30を用いて、チケット利用者が電子チケットを利用する際にその所有権等を確認することができる。チケット確認端末30としては、例えば、スマートフォン、タブレット端末、PC等の各種端末を用いることができる。ただし、これに限られず、チケット確認端末30は、例えば、サービスを提供する施設等の入口(例えば、テーマパークの入口、コンサート会場の入口、駅のホームへの入口等)に設置等されるゲート装置等であってもよい。
ここで、チケット確認端末30は、機能部として、確認処理部301を有する。確認処理部301は、例えば、チケット確認端末30にインストールされた1以上のプログラムがプロセッサに実行させる処理により実現される。
確認処理部301は、電子チケットの確認に関する処理を実行する。なお、電子チケットの確認とは、電子チケットが利用可能であるか否かを確認することであり、例えば、電子チケットの所有者の確認等が含まれる。ただし、電子チケットの所有者の確認以外にも、例えば、電子チケットの有効期限を過ぎていないか否かの確認等が含まれていてもよい。
チケット販売端末40は、サービス提供者や他のチケット販売者から電子チケットを購入して、電子チケットの販売や転売等を行うチケット販売者が使用する端末である。チケット販売者は、チケット販売端末40を用いて、電子チケットの販売(転売も含む。)を行うことができる。チケット販売端末40としては、例えば、スマートフォン、タブレット端末、PC、汎用サーバ等の各種端末を用いることができる。なお、チケット販売者は電子チケットの販売や転売を行う不特定の事業者のことであり、サービス提供者との間で信頼関係があるとは限らない者(例えば、サービス提供者との間で何等の契約関係もないチケット転売業者等)も含み得るものとする。
ここで、チケット販売端末40は、販売処理部401を有する。販売処理部401は、例えば、チケット販売端末40にインストールされた1以上のプログラムがプロセッサに実行させる処理により実現される。
販売処理部401は、電子チケットの購入に関する処理や電子チケットの販売に関する処理を実行する。
なお、図1に示す電子チケット管理システム1の構成は一例であって、他の構成であってもよい。例えば、全ての電子チケットをサービス提供者が販売する場合には、チケット販売端末40が含まれていなくてもよい。また、チケット発行端末20は、発行処理部201を有する端末と、販売処理部202を有する端末とに分けられてもよい。
また、チケット発行端末20及びチケット確認端末30を使用するサービス提供者には、サービス提供者自身の他に、サービス提供者との間で契約を締結している等により相互に信頼関係を有する者が含まれていてもよい。具体的には、サービス提供者には、サービス提供者の代理人や委託先、協力会社、関連会社等が含まれていてもよい。
[実施例1]
以降では、実施例1について説明する。
<実施例1におけるチケット発行及びチケット購入の流れ(その1)>
まず、サービス提供者が電子チケットを発行し、この電子チケットをチケット利用者が購入する場合の流れについて、図2を参照しながら説明する。図2は、実施例1におけるチケット発行及びチケット購入の流れの一例を示す図(その1)である。
チケット発行端末20の発行処理部201は、新たな電子チケットを発行する(ステップS101)。発行処理部201は、事前にデプロイされたERC721に準拠したスマートコントラクトにより、電子チケット(つまり、ERC721に準拠したトークン(NFT))を発行することができる。このとき、発行処理部201は、全ての電子チケットの所有者をサービス提供者とする(つまり、全ての電子チケットの所有者格納領域に、サービス提供者のアドレス値を格納する。)。これにより、所有者がサービス提供者の電子チケットが発行される。なお、電子チケットの総発行数は、サービス提供者により決められた任意の数とすればよい。
なお、上記のステップS101は、例えば、或る特定のサービスを享受するための電子チケットを発行する際に一度実行されればよい。また、例えば、他の特定のサービスを享受するための電子チケットを発行する際には、この電子チケットに対応するスマートコントラクトを作成し、再度、上記のステップS101を実行すればよい。
チケット利用端末10の利用処理部101は、チケット発行端末20に対して電子チケットの購入要求を行う(ステップS102)。電子チケットの購入要求は任意の方法で行なえばよいが、例えば、チケット利用端末10が備えるWebブラウザや専用のチケット購入アプリケーション等を用いることで電子チケットの購入要求をチケット発行端末20に対して送信すればよい。ただし、これは一例であって、必ずしもチケット利用端末10が購入要求を行う必要はない。例えば、チケットセンター等の窓口において、チケット利用者がチケット販売者に対して電子チケットの購入申し込みを行い、これに対してチケット販売がチケット発行端末20を操作することで電子チケットの購入要求が行われてもよい。
なお、チケット利用者の購入要求に対してチケット販売者がその承諾(及び、必要に応じて購入代金の決済等)を行った場合、電子チケットがチケット販売者からチケット利用者に販売されることになる(すなわち、チケット利用者は当該電子チケットを購入することになる。)。上記のステップS102で電子チケットが購入された場合、チケット発行端末20は、この電子チケットを購入したチケット利用者のアドレス値(又は、アドレス値を特定するための情報)を取得する。このとき、チケット発行端末20は、任意の方法でチケット利用者のアドレス値(又は、アドレス値を特定するための情報)を取得すればよい。例えば、チケット利用端末10からチケット発行端末20にアドレス値(又は、アドレス値を特定するための情報)が送信されてもよいし、チケット発行端末20に対してアドレス値(又は、アドレス値を特定するための情報)の入力操作が行われてもよいし、メール等により事前又は事後にアドレス値(又は、アドレス値を特定するための情報)がチケット発行端末20に通知されてもよい。チケット利用者のアドレス値を特定するための情報としては、アドレス値と対応付けられた任意の情報を用いることが可能であるが、例えば、メールアドレス、ユーザID、電話番号等を用いることが可能である。
チケット発行端末20の販売処理部202は、電子チケットの所有権を移転させるためのトランザクション(以降、「チケット移転トランザクション」とも表す。)を作成する(ステップS103)。このチケット移転トランザクションは、電子チケット(つまり、トークン)の所有者格納領域に格納されているアドレス値を、新たな所有者のアドレス値に更新(書き換える)ためのトランザクションである。したがって、販売処理部202は、新たな所有者のアドレス値として、上記のステップS102で電子チケットを購入したチケット利用者のアドレス値を指定したチケット移転トランザクションを作成する。なお、このとき、販売処理部202は、サービス提供者の秘密鍵を用いてチケット移転トランザクションから電子署名を作成した上で、この電子署名をチケット移転トランザクションに付加する必要がある。
そして、チケット発行端末20の販売処理部202は、上記のステップS103で作成したチケット移転トランザクションをブロックチェーンネットワーク50内に送信する(ステップS104)。チケット移転トランザクションがブロックチェーンネットワーク50内に送信されることでチケット移転トランザクションが複数のノードで検証され、この検証に成功した場合は電子チケットの所有者格納領域に格納されているアドレス値が、新たな所有者のアドレス値に更新される。
これにより、チケット利用者は電子チケットの購入が完了する。なお、チケット移転トランザクションによって電子チケットの所有者格納領域に格納されているアドレス値が、新たな所有者のアドレス値に書き換えられるため、上述したように、チケット利用者は当該電子チケットの所有権を獲得する一方で、サービス提供者は当該電子チケットの所有権を失うことになる。
<実施例1におけるチケット発行及びチケット購入の流れ(その2)>
上記の図2ではチケット利用者がサービス提供者から直接電子チケットを購入する場合について説明したが、以降では、サービス提供者との間で信頼関係があるとは限らないチケット販売者から電子チケットを購入する場合の流れについて、図3を参照しながら説明する。図3は、実施例1におけるチケット発行及びチケット購入の流れの一例を示す図(その2)である。なお、図3では一例として、サービス提供者から電子チケットを購入したチケット販売者が、この電子チケットをチケット利用者に販売する場合について説明する。ただし、これに限られず、チケット販売者は、他のチケット販売者から購入した電子チケットをチケット利用者や更に他のチケット販売者に販売してもよい。
チケット発行端末20の発行処理部201は、図2のステップS101と同様に、新たな電子チケットを発行する(ステップS201)。
チケット販売端末40の販売処理部401は、チケット発行端末20に対して電子チケットの購入要求を行う(ステップS202)。上述したように、電子チケットの購入要求は任意の方法で行なえばよい。なお、上記のステップS202で電子チケットが購入された場合、チケット発行端末20は、図2のステップS102と同様に任意の方法で、この電子チケットを購入したチケット販売者のアドレス値(又は、アドレス値を特定するための情報)を取得する。
チケット発行端末20の販売処理部202は、チケット移転トランザクションを作成する(ステップS203)。このとき、販売処理部202は、新たな所有者のアドレス値として、上記のステップS202で電子チケットを購入したチケット販売者のアドレス値を指定したチケット移転トランザクションを作成する。なお、このとき、販売処理部202は、サービス提供者の秘密鍵を用いてチケット移転トランザクションから電子署名を作成した上で、この電子署名をチケット移転トランザクションに付加する必要がある。
そして、チケット発行端末20の販売処理部202は、図2のステップS104と同様に、上記のステップS203で作成したチケット移転トランザクションをブロックチェーンネットワーク50内に送信する(ステップS204)。これにより、チケット移転トランザクションの検証に成功した場合は電子チケットの所有者がチケット販売者に更新され、チケット販売者の電子チケット購入が完了する。
続いて、チケット利用端末10の利用処理部101は、チケット販売端末40に対して電子チケットの購入要求を行う(ステップS205)。上述したように、電子チケットの購入要求は任意の方法で行なえばよい。なお、上記のステップS205で電子チケットが購入された場合、チケット販売端末40は、図2のステップS102と同様に任意の方法で、この電子チケットを購入したチケット利用者のアドレス値(又は、アドレス値を特定するための情報)を取得する。
チケット販売端末40の販売処理部401は、チケット移転トランザクションを作成する(ステップS206)。このとき、販売処理部401は、新たな所有者のアドレス値として、上記のステップS205で電子チケットを購入したチケット利用者のアドレス値を指定したチケット移転トランザクションを作成する。なお、このとき、販売処理部401は、チケット販売者の秘密鍵を用いてチケット移転トランザクションから電子署名を作成した上で、この電子署名をチケット移転トランザクションに付加する必要がある。
そして、チケット販売端末40の販売処理部401は、上記のステップS206で作成したチケット移転トランザクションをブロックチェーンネットワーク50内に送信する(ステップS207)。これにより、チケット移転トランザクションの検証に成功した場合は電子チケットの所有者がチケット利用者に更新され、チケット利用者の電子チケット購入が完了する。
このように、本実施形態に係る電子チケット管理システム1では、ERC721に準拠したトークンを電子チケットとして用いるため、仮にサービス提供者との間で必ずしも信頼関係があるとは限らないチケット販売者が電子チケットを流通させる場合であっても、電子チケットの不正コピーや二重譲渡等の不正取引を防止することができる。
<実施例1におけるチケット利用の流れ>
次に、チケット利用者がサービスを享受するために電子チケットを利用する場合の流れについて、図4を参照しながら説明する。図4は、実施例1におけるチケット利用の流れの一例を示す図である。
まず、チケット利用端末10の利用処理部101は、電子チケットを利用済みにするためのトランザクション(以降、「チケット利用トランザクション」とも表す。)を作成する(ステップS301)。ここで、電子チケットが利用済みであるとは、チケット利用者が当該電子チケットを再度利用することができないことを意味する。したがって、電子チケットを利用済みとすることには、例えば、電子チケットの所有権をサービス提供者に移転すること、電子チケットを破棄(削除)すること、電子チケットに利用可否フラグが含まれる場合はその値を「利用不可」に更新すること、等が挙げられる。このとき、電子チケットを破棄(削除)すること及び電子チケットに含まれる利用可否フラグを「利用不可」に更新することは、電子チケットの償却と呼ばれてもよい。すなわち、電子チケットを利用済みとすることとは、電子チケットの所有権をサービス提供者等に移転すること又は電子チケットを償却することを意味する。なお、利用処理部101は、チケット利用者の秘密鍵を用いてチケット利用トランザクションから電子署名を作成した上で、この電子署名をチケット利用トランザクションに付加する必要がある。
ここで、上記のステップS301は、例えば、チケット利用者によってチケット利用端末10を用いて電子チケットの利用開始操作が行われたことを契機として実行される。このような利用開始操作としては、例えば、Webブラウザや専用のチケット利用アプリケーション等における電子チケットの選択及び利用操作等が挙げられる。
次に、チケット利用端末10の利用処理部101は、上記のステップS301で作成したチケット利用トランザクションをブロックチェーンネットワーク50内に送信する(ステップS302)。これにより、チケット利用トランザクションの検証に成功した場合は電子チケットの所有権が移転又は電子チケットが償却される。
そして、チケット利用端末10の利用処理部101は、チケット利用をチケット確認端末30に通知する(ステップS303)。チケット利用端末10は、任意の方法でチケット利用をチケット確認端末30に通知すればよい。例えば、任意の通信手段(例えば、Bluetooth(登録商標)や非接触型ICカード等を介した近距離無線通信、インターネット等)により、電子チケットが利用されたことを示す情報をチケット確認端末30に通知する。なお、このとき、電子チケットを識別する識別情報(例えば、トークンIDやチケット番号等)がチケット利用端末10からチケット確認端末30に通知される。以降では、一例として、電子チケットの識別情報はトークンIDであるものとする。
また、例えば、電子チケットが利用されたことを示す情報と当該電子チケットのトークンIDとを、チケット利用端末10のディスプレイ上に表示してもよい。この場合、例えば、チケット利用端末10のディスプレイ上に表示された情報が、チケット確認端末30に入力されることでチケット利用が通知される。なお、この入力は、チケット確認端末30のユーザの入力操作によって行われてもよいし、チケット確認端末30が備える読取装置(例えば、カメラやスキャナ等)によって行われてもよい。
次に、チケット確認端末30の確認処理部301は、上記のステップS303で利用が通知された電子チケット(つまり、トークン)をブロックチェーンネットワーク50上で参照して、当該電子チケットに対応するサービスの提供可否を確認する(ステップS304)。電子チケットの参照は、この電子チケットのトークンIDをキーとして、ブロックチェーンネットワーク50上のノードで共有されている電子チケットを検索することで行うことができる。
ここで、確認処理部301は、例えば、該当の電子チケット(つまり、上記のステップS303で利用が通知された電子チケット)が利用済みとなっているか否かを確認する。すなわち、確認処理部301は、該当の電子チケットの所有権がサービス提供者等に移転されているか又は該当の電子チケットが償却されているかを確認する。そして、確認処理部301は、利用済みとなっている場合にはサービス提供可とし、利用済みとなっていない場合にはサービス提供不可とすればよい。なお、電子チケットが利用済みとなっているか否か以外も、確認処理部301は、例えば、サービス提供に必要な各種条件(例えば、電子チケットの有効期限が過ぎていないか等)を満たしているか否かを確認してもよい。
なお、上記のステップS304で確認されたサービス提供可否は、例えば、チケット利用端末10に通知されてもよい。又は、例えば、チケット確認端末30がゲート装置である場合又はゲート装置と通信ネットワークを介して接続されている場合には、サービス提供可否に応じてゲートの開閉を制御する等してもよい。この他にも、サービス提供可否に応じて、サービスの提供を開始又は阻止するための種々の制御が行われてもよい。
これにより、上記のステップS304でサービス提供可であることが確認された場合には、チケット利用者に対してサービスが提供される。
[実施例2]
以降では、実施例2について説明する。実施例2では、チケット利用者が電子チケットを利用する際に、サービス提供者に二次元コード(例えば、QRコード(登録商標)等)を提示することでサービスを享受する場合について説明する。
なお、実施例2では、主に、実施例1との相違点について説明し、実施例1と同一の構成要素についてはその説明を省略する。
<実施例2におけるチケット利用の流れ(その1)>
実施例1ではチケット利用端末10がチケット利用トランザクションを作成及び送信したが、チケット利用端末10の通信環境によってはチケット利用トランザクションを送信することができない場合がある。例えば、大規模なイベント会場等ではチケット利用端末10の通信回線が混雑していて、チケット利用トランザクションを送信することができない場合がある。
そこで、チケット利用トランザクションが含まれる二次元コードをサービス提供者に提示することで電子チケットを利用し、この二次元コードを読み取ったチケット確認端末30がチケット利用トランザクションを送信する。このチケット利用トランザクションのデータにはチケット利用端末10でしか生成できないデータ(電子署名)が含まれている。そのため、このデータを読み取ったチケット確認端末30は、このチケット利用トランザクションがブロックチェーンネットワーク50で正しく処理されることをもって、データの提示者が電子チケットの所有者であることを確認することができる。
この場合の流れについて、図5を参照しながら説明する。図5は、実施例2におけるチケット利用の流れの一例を示す図(その1)である。なお、チケット確認端末30はチケット利用端末10とは異なる通信回線を利用しており、チケット利用トランザクションを送信することが可能な通信環境であるものとする。
まず、チケット利用端末10の利用処理部101は、図4のステップS301と同様に、チケット利用トランザクションを作成する(ステップS401)。
次に、チケット利用端末10の利用処理部101は、上記のステップS401で作成したチケット利用トランザクションが含まれる二次元コード(例えば、QRコード等)を作成する(ステップS402)。すなわち、利用処理部101は、チケット利用トランザクションを二次元コードに変換(エンコード)する。
なお、二次元コードは一例であって、任意のコード(例えば、バーコード等)でもよい。また、二次元コード以外にも、チケット確認端末30が所定の手段によりチケット利用トランザクションを取得することが可能な情報であれば、チケット利用トランザクションを任意の情報に変換してもよい。このような情報としては、例えば、音波、光の点滅、画像等が挙げられる。
次に、チケット利用端末10の利用処理部101は、上記のステップS402で作成した二次元コードをチケット確認端末30に提示する(ステップS403)。チケット利用端末10は、例えば、二次元コードをディスプレイ上に表示することで二次元コードを提示すればよい。ただし、これ以外にも、例えば、二次元コードが印刷された紙等で提示されてもよい。
チケット確認端末30の確認処理部301は、上記のステップS403で提示された二次元コードを、カメラ等で読み取る(ステップS404)。当該二次元コードを読み取ることで、確認処理部301は、当該二次元コードに含まれるチケット利用トランザクションを取得することができる。
なお、上記のステップS402~ステップS404では、二次元コードをチケット確認端末30が読み取ることで、チケット利用トランザクションが取得されたが、これに限られない。チケット利用端末10は、二次元コードを作成せずに、例えば、任意の通信手段(例えば、Bluetoothや非接触型ICカード等を介した近距離無線通信、インターネット等)により、チケット利用トランザクションをチケット確認端末30に送信してもよい。
次に、チケット確認端末30の確認処理部301は、上記のステップS404で取得したチケット利用トランザクションに含まれるトークンIDを用いて、このトークンIDに対応する電子チケットをブロックチェーンネットワーク50上で参照して、当該電子チケットに対応するサービスの提供可否を確認する(ステップS405)。本ステップでは、確認処理部301は、例えば、サービス提供に必要な各種条件(例えば、電子チケットの有効期限が過ぎていないか等)を満たしているか否かを確認する。
そして、確認処理部301は、サービス提供に必要な各種条件を満たしている場合にはサービス提供可とし、サービス提供に必要な各種条件を満たしていない場合にはサービス提供不可とすればよい。これにより、上記のステップS405でサービス提供可であることが確認された場合には、チケット利用者に対してサービスが提供される。
その後、チケット確認端末30の確認処理部301は、上記のステップS404で取得したチケット利用トランザクションをブロックチェーンネットワーク50内に送信する(ステップS406)。これにより、チケット利用トランザクションの検証に成功した場合は電子チケットの所有権が移転又は電子チケットが償却される。
なお、上記のステップS406は、上記のステップS405の直後に実行されてもよいが、必ずしも直後に実行される必要はなく、上記のステップS405が実行された後の任意のタイミングで実行されればよい。一般に電子チケットの所有権の移転には数秒から数十秒程度の待ち時間が発生するため、上記のステップS406の実行タイミングを後にすることで、例えば、イベント会場やコンサート会場、映画館等の入口における待ち時間を軽減することができる。
<実施例2におけるチケット利用の流れ(その2)>
上記の図5ではチケット利用端末10でチケット利用トランザクションを作成する場合について説明したが、トランザクションの送信には特別な条件が必要なことがある。例えば、Ethereumではトランザクションの送信に「ガス」と呼ばれる手数料が必要であり、この手数料を支払うためには仮想通貨「Eth」が必要である。このため、チケット利用者がガスを所持していない場合、チケット利用トランザクションを送信することができない。
そこで、チケット利用トランザクションをチケット確認端末30で作成及び送信する場合の流れについて、図6を参照しながら説明する。図6は、実施例2におけるチケット利用の流れの一例を示す図(その2)である。
ただし、ERC721では電子チケット(トークン)を更新可能な者は、トークンの所有者(及び、承認されたアドレス値、現在の所有者から認証された者)に限られている。このため、電子チケットの所有者がチケット利用者である場合、サービス提供者がチケット利用トランザクションを作成及び送信して、当該電子チケットの所有権の移転や償却を行うことはできない。
そこで、以降では、スマートコントラクトの管理者(つまり、サービス提供者)であれば、チケット利用トランザクションにより電子チケットの所有権の移転や償却を行うことができるスマートコントラクトがデプロイされているものとする。このスマートコントラクトは、例えば、電子チケットの所有権の移転であれば、transferFrom関数を修正することで実現することができる。より具体的には、transferFrom関数の実行条件文requireに対して、OR条件として、スマートコントラクトの管理者であれば真値を返す関数isContractOwer()を追加することが実現することができる。電子チケットの償却についても同様に、スマートコントラクトの該当の関数の実行条件文に対して、OR条件として、関数isContractOwer()を追加することで実現することができる。
まず、チケット利用端末10の利用処理部101は、チケット利用者の秘密鍵を用いて、このチケット利用者が利用する電子チケットのトークンIDから電子署名を作成した上で、この電子署名を当該トークンIDに付加したデータ(電子署名付きデータ)を作成する(ステップS501)。
次に、チケット利用端末10の利用処理部101は、上記のステップS501で作成した電子署名付きデータが含まれる二次元コードを作成する(ステップS502)。すなわち、利用処理部101は、電子署名付きデータを二次元コードに変換する。
なお、図5のステップS402と同様に、電子署名付きデータは、任意のコードに変換されてもよいし、例えば、音波、光の点滅、画像等の任意の情報に変換されてもよい。
次に、チケット利用端末10の利用処理部101は、上記のステップS502で作成した二次元コードをチケット確認端末30に提示する(ステップS503)。チケット利用端末10は、図5のステップS403と同様に、例えば、二次元コードをディスプレイ上に表示することで二次元コードを提示すればよい。
チケット確認端末30の確認処理部301は、上記のステップS503で提示された二次元コードを、カメラ等で読み取る(ステップS504)。当該二次元コードを読み取ることで、確認処理部301は、当該二次元コードに含まれる電子署名付きデータを取得することができる。
なお、上記のステップS502~ステップS504では、二次元コードをチケット確認端末30が読み取ることで、電子署名付きデータが取得されたが、これに限られない。チケット利用端末10は、二次元コードを作成せずに、例えば、任意の通信手段により、電子署名付きデータをチケット確認端末30に送信してもよい。
次に、チケット確認端末30の確認処理部301は、上記のステップS504で取得した電子署名付きデータからトークンIDとチケット利用者のアドレス値とを取得し、これらのトークンID及びアドレス値を用いて、このトークンIDに対応する電子チケットをブロックチェーンネットワーク50上で参照して、当該電子チケットに対応するサービスの提供可否を確認する(ステップS505)。本ステップでは、確認処理部301は、例えば、当該トークンIDに対応するブロックチェーンネットワーク50上の電子チケットの所有者格納領域に格納されているアドレス値が、電子署名付きデータから取得したアドレス値と一致するか否かを確認する(つまり、当該電子チケットの所有者がチケット利用者であるか否かを確認する。)。なお、本ステップでは、当該電子チケットが利用済みとなっているか否かの確認は行われない。また、上記のアドレス値の一致確認に加えて、確認処理部301は、サービス提供に必要な各種条件を満たしているか否かを確認してもよい。
なお、チケット利用者のアドレス値は、電子署名付きデータに含まれる電子署名から取得することが可能である。すなわち、チケット利用者の公開鍵を用いて電子署名を検証した上で、この検証に成功した公開鍵に対応するアドレス値が、チケット利用者のアドレス値として取得される。
そして、確認処理部301は、上記のアドレス値が一致している場合にはサービス提供可とし、上記のアドレス値が一致していない場合にはサービス提供不可とすればよい。これにより、上記のステップS505でサービス提供可であることが確認された場合には、チケット利用者に対してサービスが提供される。
また、チケット確認端末30の確認処理部301は、上記のステップS504で取得したトークンIDを用いて、チケット利用トランザクションを作成する(ステップS506)。すなわち、確認処理部301は、当該トークンIDの電子チケットの所有権をサービス提供者に移転させるためのチケット利用トランザクション又は当該トークンIDの電子チケットを償却(削除又は利用可否フラグを「利用不可」に更新)するためのチケット利用トランザクションを作成する。
その後、チケット確認端末30の確認処理部301は、上記のステップS506で作成したチケット利用トランザクションをブロックチェーンネットワーク50内に送信する(ステップS507)。これにより、チケット利用トランザクションの検証に成功した場合は電子チケットの所有権が移転又は電子チケットが償却される。しかも、この場合、サービス提供者がチケット利用トランザクションを作成及び送信するため、例えば、チケット利用者はガスを消費することがない。このため、例えば、チケット利用者がガスを所持していない等の事由によって電子チケットが利用できないといった事態を防止することができる。
なお、上記のステップS506~ステップS507は、上記のステップS505の直後に実行されてもよいが、必ずしも直後に実行される必要はなく、上記のステップS505が実行された後の任意のタイミングで実行されればよい。
[実施例3]
以降では、実施例3について説明する。上記の図6で説明した実施例2におけるチケット利用の流れ(その2)では、スマートコントラクトの管理者(つまり、サービス提供者)であればチケット利用トランザクションにより電子チケットの所有権の移転や償却を無条件に行うことができる。そこで、実施例3では、電子チケットの所有者(つまり、チケット利用者)から秘密値が提示された場合のみ当該電子チケットの所有権の移転や償却を行うことができるようにする。秘密値とは、電子チケットの所有者により任意に決められた秘密の値(例えば、任意に決められた英数字の文字列)である。
このために、実施例3では、電子チケットには秘密値のハッシュ値が格納される領域(この領域を「ハッシュ値格納領域」とも表す。)が存在し、電子チケットのパラメータとして、秘密値のハッシュ値が当該ハッシュ値格納領域に格納されるものとする。また、これに伴い、例えば、transferFrom関数の引数には、このハッシュ値が追加される。
なお、実施例3では、主に、実施例2との相違点について説明し、実施例2と同一の構成要素についてはその説明を省略する。
<実施例3におけるチケット発行及びチケット購入の流れ(その1)>
まず、サービス提供者が電子チケットを発行し、この電子チケットをチケット利用者が購入する場合の流れについて、図7を参照しながら説明する。図7は、実施例3におけるチケット発行及びチケット購入の流れの一例を示す図(その1)である。
チケット発行端末20の発行処理部201は、図2のステップS101と同様に、新たな電子チケットを発行する(ステップS601)。
チケット利用端末10の利用処理部101は、チケット利用者が予め決めた秘密値からハッシュ値を計算する(ステップS602)。なお、ハッシュ値の計算に用いられるハッシュ関数は、例えば、スマートコントラクト毎に予め決められた共通のものを使用する。
次に、チケット利用端末10の利用処理部101は、チケット発行端末20に対して電子チケットの購入要求を行う(ステップS603)。このとき、利用処理部101は、上記のステップS602で計算されたハッシュ値を任意の方法でチケット発行端末20に通知する。
なお、上述したように、電子チケットの購入要求は任意の方法で行なえばよい。また、上記のステップS603で電子チケットが購入された場合、チケット発行端末20は、図2のステップS102と同様に任意の方法で、この電子チケットを購入したチケット利用者のアドレス値(又は、アドレス値を特定するための情報)を取得する。
チケット発行端末20の販売処理部202は、電子チケットのハッシュ値格納領域に対して指定されたハッシュ値を格納すると共に電子チケットの所有権を移転させるためのトランザクション(以降、「パラメータ設定及びチケット移転トランザクション」とも表す。)を作成する(ステップS604)。ここで、販売処理部202は、電子チケットのハッシュ値格納領域に格納されるパラメータとして、上記のステップS603でチケット利用端末10から通知されたハッシュ値を指定したパラメータ設定及びチケット移転トランザクションを作成する。なお、このとき、販売処理部202は、サービス提供者の秘密鍵を用いてパラメータ設定及びチケット移転トランザクションから電子署名を作成した上で、この電子署名をパラメータ設定及びチケット移転トランザクションに付加する必要がある。
そして、チケット発行端末20の販売処理部202は、上記のステップS604で作成したパラメータ設定及びチケット移転トランザクションをブロックチェーンネットワーク50内に送信する(ステップS605)。これにより、パラメータ設定及びチケット移転トランザクションが複数のノードで検証され、この検証に成功した場合は電子チケットのハッシュ値格納領域に対して、チケット利用者の秘密値のハッシュ値が格納されると共に、電子チケットの所有権がチケット利用者に移転される。これにより、チケット利用者の電子チケット購入が完了する。上述したように、この電子チケットには、当該チケット利用者が決めた秘密値のハッシュ値が含まれている。
なお、電子チケットの所有者(つまり、チケット利用者)は、任意のタイミングで秘密値の変更及びそのハッシュ値の計算を行った上で、電子チケットのハッシュ値格納領域に対して指定されたハッシュ値を格納するためのトランザクション(以降、「パラメータ設定トランザクション」とも表す。)を作成及び送信することにより、当該電子チケットのハッシュ値格納領域に格納されているハッシュ値を変更することが可能である。
<実施例3におけるチケット発行及びチケット購入の流れ(その2)>
次に、チケット利用者がチケット販売者から電子チケットを購入する場合の流れについて、図8を参照しながら説明する。図8は、実施例3におけるチケット発行及びチケット購入の流れの一例を示す図(その2)である。なお、図8では一例として、サービス提供者から電子チケットを購入したチケット販売者が、この電子チケットをチケット利用者に販売する場合について説明する。ただし、これに限られず、チケット販売者は、他のチケット販売者から購入した電子チケットをチケット利用者や更に他のチケット販売者に販売してもよい。
チケット発行端末20の発行処理部201は、図2のステップS101と同様に、新たな電子チケットを発行する(ステップS701)。
チケット販売端末40の販売処理部401は、チケット販売者が予め決めた秘密値からハッシュ値を計算する(ステップS702)。
次に、チケット販売端末40の販売処理部401は、チケット発行端末20に対して電子チケットの購入要求を行う(ステップS703)。このとき、販売処理部401は、上記のステップS702で計算されたハッシュ値を任意の方法でチケット発行端末20に通知する。
なお、上述したように、電子チケットの購入要求は任意の方法で行なえばよい。また、上記のステップS702で電子チケットが購入された場合、チケット発行端末20は、図2のステップS102と同様に任意の方法で、この電子チケットを購入したチケット販売者のアドレス値(又は、アドレス値を特定するための情報)を取得する。
チケット発行端末20の販売処理部202は、パラメータ設定及びチケット移転トランザクションを作成する(ステップS704)。ここで、販売処理部202は、電子チケットのハッシュ値格納領域に格納されるパラメータとして、上記のステップS703でチケット販売端末40から通知されたハッシュ値を指定したパラメータ設定及びチケット移転トランザクションを作成する。なお、このとき、販売処理部202は、サービス提供者の秘密鍵を用いてパラメータ設定及びチケット移転トランザクションから電子署名を作成した上で、この電子署名をパラメータ設定及びチケット移転トランザクションに付加する必要がある。
そして、チケット発行端末20の販売処理部202は、上記のステップS704で作成したパラメータ設定及びチケット移転トランザクションをブロックチェーンネットワーク50内に送信する(ステップS705)。これにより、パラメータ設定及びチケット移転トランザクションが複数のノードで検証され、この検証に成功した場合は電子チケットのハッシュ値格納領域に対して、チケット販売者の秘密値のハッシュ値が格納されると共に、電子チケットの所有権がチケット販売者に移転される。
続いて、チケット利用端末10の利用処理部101は、チケット利用者が予め決めた秘密値からハッシュ値を計算する(ステップS706)。
次に、チケット利用端末10の利用処理部101は、チケット販売端末40に対して電子チケットの購入要求を行う(ステップS707)。このとき、利用処理部101は、上記のステップS706で計算されたハッシュ値を任意の方法でチケット販売端末40に通知する。
なお、上述したように、電子チケットの購入要求は任意の方法で行なえばよい。また、上記のステップS707で電子チケットが購入された場合、チケット販売端末40は、図2のステップS102と同様に任意の方法で、この電子チケットを購入したチケット利用者のアドレス値(又は、アドレス値を特定するための情報)を取得する。
チケット販売端末40の販売処理部401は、パラメータ設定及びチケット移転トランザクションを作成する(ステップS708)。ここで、販売処理部401は、電子チケットのハッシュ値格納領域に格納されるパラメータとして、上記のステップS707でチケット利用端末10から通知されたハッシュ値を指定したパラメータ設定及びチケット移転トランザクションを作成する。なお、このとき、販売処理部401は、チケット販売者の秘密鍵を用いてパラメータ設定トランザクションから電子署名を作成した上で、この電子署名をパラメータ設定及びチケット移転トランザクションに付加する必要がある。
そして、チケット販売端末40の販売処理部401は、上記のステップS708で作成したパラメータ設定及びチケット移転トランザクションをブロックチェーンネットワーク50内に送信する(ステップS709)。これにより、パラメータ設定及びチケット移転トランザクションが複数のノードで検証され、この検証に成功した場合は電子チケットのハッシュ値格納領域に対して、チケット利用者の秘密値のハッシュ値が格納されると共に、電子チケットの所有権がチケット利用者に移転される。これにより、チケット利用者の電子チケット購入が完了する。上述したように、この電子チケットには、当該チケット利用者が決めた秘密値のハッシュ値が含まれている。
なお、電子チケットの所有者(つまり、チケット販売者又はチケット利用者)は、任意のタイミングで秘密値の変更及びそのハッシュ値の計算を行った上で、このハッシュ値を指定したパラメータ設定トランザクションを作成及び送信することにより、当該電子チケットのハッシュ値格納領域に格納されているハッシュ値を変更することが可能である。
<実施例3におけるチケット利用の流れ(その1)>
次に、秘密値を考慮して、上記の図6で説明したチケット利用を行う場合の流れについて、図9を参照しながら説明する。図9は、実施例3におけるチケット利用の流れの一例を示す図(その1)である。
まず、チケット利用端末10の利用処理部101は、チケット利用者が購入した電子チケットのトークンIDと当該チケット利用者の秘密値とが含まれる二次元コードを作成する(ステップS801)。すなわち、利用処理部101は、トークンIDと秘密値とを二次元コードに変換する。
なお、図6のステップS502と同様に、トークンIDと秘密値とは、任意のコードに変換されてもよいし、例えば、音波、光の点滅、画像等の任意の情報に変換されてもよい。
次に、チケット利用端末10の利用処理部101は、図6のステップS503と同様に、上記のステップS801で作成した二次元コードをチケット確認端末30に提示する(ステップS802)。
チケット確認端末30の確認処理部301は、上記のステップS802で提示された二次元コードを、カメラ等で読み取る(ステップS803)。当該二次元コードを読み取ることで、確認処理部301は、当該二次元コードに含まれるトークンIDと秘密値とを取得することができる。
なお、上記のステップS801~ステップS803では、二次元コードをチケット確認端末30が読み取ることで、トークンIDと秘密値とが取得されたが、これに限られない。チケット利用端末10は、二次元コードを作成せずに、例えば、任意の通信手段により、トークンIDと秘密値とをチケット確認端末30に送信してもよい。
次に、チケット確認端末30の確認処理部301は、図6のステップS505と同様に、二次元コードから取得したトークンIDとチケット利用者のアドレス値とを用いて、このトークンIDに対応する電子チケットをブロックチェーンネットワーク50上で参照して、当該電子チケットに対応するサービスの提供可否を確認する(ステップS804)。
次に、チケット確認端末30の確認処理部301は、二次元コードから取得したトークンIDに対応する電子チケットに含まれるハッシュ値を取得する(ステップS805)。
次に、チケット確認端末30の確認処理部301は、上記のステップS805で取得したハッシュ値と、二次元コードから取得したハッシュ値とを比較して、これらのハッシュ値が一致するか否かを判定する(ステップS806)。このステップS806でハッシュ値が一致すると判定された場合、チケット利用者に対してサービスが提供される。なお、このサービス提供は、上記のステップS804が実行された後に行われてもよいし、後述するステップS808が実行された後に行われてもよい。
そして、上記のステップS805でハッシュ値が一致すると判定された場合は、チケット確認端末30の確認処理部301は、上記のステップS803で取得したトークンIDと秘密値とを用いて、チケット利用トランザクションを作成する(ステップS807)。すなわち、確認処理部301は、当該トークンIDの電子チケットの所有権をサービス提供者に移転させるためのチケット利用トランザクション又は当該トークンIDの電子チケットを償却(削除又は利用可否フラグを「利用不可」に更新)するためのチケット利用トランザクションを作成する。ここで、このチケット利用トランザクションには、トークンIDと秘密値とが指定される。
その後、チケット確認端末30の確認処理部301は、上記のステップS807で作成したチケット利用トランザクションをブロックチェーンネットワーク50内に送信する(ステップS808)。これにより、チケット利用トランザクションの検証に成功した場合は電子チケットの所有権が移転又は電子チケットが償却される。これにより、例えば、電子チケットの所有者であるチケット利用者が正しい秘密値を提示した場合のみ、電子チケットを利用済みとさせることが可能となる。
ここで、例えば、電子チケットの所有権の移転であれば、スマートコントラクトのtransferFrom関数の実行条件文requireに対して、OR条件として、「isContractOwer()、かつ、checkSecretWord(tokenId, secretWord)」を追加することで実現することができる。checkSecretWord(tokenId, secretWord)は、tokenIdが示すトークンIDに対応する電子データに含まれるハッシュ値と、secretWordが示す秘密値のハッシュ値とが一致する場合に真値を返す関数である。また、電子チケットの償却についても同様に、スマートコントラクトの該当の関数の実行条件文に対して、OR条件として、「isContractOwer()、かつ、checkSecretWord(tokenId, secretWord)」を追加することで実現することができる。なお、秘密値のハッシュ値を計算するためのハッシュ関数は、例えば、スマートコントラクト毎に予め決められた共通のものを使用する。
なお、上記のステップS807~ステップS808は、上記のステップS806の直後に実行されてもよいが、必ずしも直後に実行される必要はなく、上記のステップS806が実行された後の任意のタイミングで実行されればよい。ただし、チケット利用者から提示された秘密値が正しい場合のみサービスを提供するようにするためには、上記のステップS807~ステップS808は、上記のステップS806の直後かつサービスが提供される前に実行されることが好ましい。
また、上記の図9では、電子チケットに含まれるハッシュ値と、上記のステップS803で取得した秘密値のハッシュ値とが一致するか否かをチケット確認端末30で検証したが(上記のステップS806)、この検証はブロックチェーンネットワーク50で行われてもよい(例えば、ブロックチェーンネットワーク50のノードのうち、チケット確認端末30以外のノードで検証する等)。この場合、当該検証は、例えば、上記のステップS806で実行されてもよいし、上記のステップS808のチケット利用トランザクションの送信前に実行してもよい。なお、チケット利用トランザクションの送信前に当該検証が実行される場合、当該検証に失敗したときには当該チケット利用トランザクションが破棄されればよい。
<実施例3におけるチケット利用の流れ(その2)>
上記の図7又は図8では電子チケットを購入する際に、チケットを購入する者(サービス利用者又はチケット販売者)は、チケットを販売する者(サービス提供者又はチケット販売者)に対してハッシュ値を提示しているが、この提示は行われなくもよい。この場合、チケット利用者が購入した電子チケットのハッシュ値格納領域にはハッシュ値が含まれていないことになる。以降では、このような電子チケットをチケット利用者が利用する場合の流れについて、図10を参照しながら説明する。図10は、実施例3におけるチケット利用の流れの一例を示す図(その2)である。
まず、チケット利用端末10の利用処理部101は、チケット利用者が予め決めた秘密値からハッシュ値を計算する(ステップS901)。なお、ハッシュ値の計算に用いられるハッシュ関数は、例えば、スマートコントラクト毎に予め決められた共通のものを使用する。
次に、チケット利用端末10の利用処理部101は、チケット利用者が購入した電子チケットのハッシュ値格納領域に対して上記のステップS901で計算されたハッシュ値を格納するためのパラメータ設定トランザクションを作成する(ステップS902)。
そして、チケット利用端末10の利用処理部101は、上記のステップS902で作成したパラメータ設定トランザクションをブロックチェーンネットワーク50内に送信する(ステップS903)。これにより、パラメータ設定トランザクションが複数のノードで検証され、この検証に成功した場合は当該電子チケットのハッシュ値格納領域に対して、上記のステップS901で計算されたハッシュ値が格納される。
次に、チケット利用端末10の利用処理部101は、当該電子チケットのトークンIDと当該チケット利用者の秘密値とが含まれる二次元コードを作成する(ステップS904)。
以降のステップS905~ステップS911は、図9のステップS802~ステップS808とそれぞれ同様であるため、その説明を省略する。
このように、実施例3では、ハッシュ値が含まれない電子チケットをチケット利用者が購入した上で、当該電子チケットの利用前に、秘密値からハッシュ値を計算して当該電子チケットに当該ハッシュ値を格納してもよい。
<データ圧縮について>
ここで、二次元コード(例えば、QRコード)に含まれる情報のデータ量が多い場合、チケット確認端末30がカメラ等で読み取る際に、その読み取り精度が低下することがある。そこで、二次元コードに含まれる情報のデータ量を圧縮する場合について説明する。
例えば、図6のステップS502で電子署名付きデータから二次元コードを作成する場合、この電子署名付きデータは、Ethereumの標準的なフォーマットでは、例えば、図11(a)に示す形式となる。このうち、messageはトークンIDを表し、signatureは電子署名を表すが、電子署名の検証に必要な情報はこの2つのみである。すなわち、図11(a)に示す各情報のうち、messageHash, v, r, sは電子署名の検証に不要な情報である。そこで、これらの情報を削除すると共に、特にデータ量が多いsignatureを圧縮することでデータ量を削減することができる。
messageHash, v, r, sを削除すると共に、signatureの情報を所定の圧縮方式(例えば、base91)でエンコードした電子署名付きデータを図11(b)に示す。なお、図11(b)では、messageをm, signatureをsで表している。
これにより、二次元コードに含まれる情報のデータ量を削減することができるため、チケット確認端末30での読み取り精度の低下を防止することができる。なお、チケット確認端末30では、二次元コードから読み取った電子署名をデコードする必要がある。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、組み合わせ等が可能である。