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

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

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

特許7563814情報処理システム、情報処理方法、及びプログラム
<>
  • 特許-情報処理システム、情報処理方法、及びプログラム 図1
  • 特許-情報処理システム、情報処理方法、及びプログラム 図2
  • 特許-情報処理システム、情報処理方法、及びプログラム 図3
  • 特許-情報処理システム、情報処理方法、及びプログラム 図4
  • 特許-情報処理システム、情報処理方法、及びプログラム 図5
  • 特許-情報処理システム、情報処理方法、及びプログラム 図6
  • 特許-情報処理システム、情報処理方法、及びプログラム 図7
  • 特許-情報処理システム、情報処理方法、及びプログラム 図8
  • 特許-情報処理システム、情報処理方法、及びプログラム 図9
  • 特許-情報処理システム、情報処理方法、及びプログラム 図10
  • 特許-情報処理システム、情報処理方法、及びプログラム 図11
  • 特許-情報処理システム、情報処理方法、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】情報処理システム、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06Q 20/38 20120101AFI20241001BHJP
   G06F 21/33 20130101ALI20241001BHJP
   G06F 21/62 20130101ALI20241001BHJP
   G06F 21/64 20130101ALI20241001BHJP
【FI】
G06Q20/38 310
G06F21/33
G06F21/62 318
G06F21/64
【請求項の数】 15
(21)【出願番号】P 2024073080
(22)【出願日】2024-04-26
【審査請求日】2024-04-26
【早期審査対象出願】
(73)【特許権者】
【識別番号】523469814
【氏名又は名称】株式会社フォリオ
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】西窪 洋平
【審査官】加内 慎也
(56)【参考文献】
【文献】特許第7043672(JP,B1)
【文献】特許第7454903(JP,B1)
【文献】特開2021-119544(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06F 21/33
G06F 21/62
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムであって、
前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備する配備手段と、
前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行う認証手段と、
前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うリクエスト手段と、を備える
情報処理システム。
【請求項2】
利用者ごとに、当該利用者に割り当てる前記コントラクトウォレットのアドレスを決定するアドレス決定手段をさらに備え、
前記アドレス決定手段は、当該利用者の識別子から所定関数を用いた演算によって一意の前記アドレスを決定する
請求項1に記載の情報処理システム。
【請求項3】
前記配備手段は、利用者への前記コントラクトウォレットの割り当てが必要になった際に、当該利用者向けに、前記アドレス決定手段により決定された前記アドレスを有する前記コントラクトウォレットを前記ブロックチェーンネットワークに配備する
請求項2に記載の情報処理システム。
【請求項4】
前記事業者の外部所有アカウントの秘密鍵を、クラウドサービスとしてハードウェアウォレット機能を実現するKMS(Key Management Service)を利用して管理する鍵管理手段をさらに備え、
前記リクエスト手段の前記トランザクションリクエストには、前記KMSが前記秘密鍵に基づいて生成した署名が付与される
請求項1に記載の情報処理システム。
【請求項5】
前記鍵管理手段は、前記KMSへのアクセス権限を有する特定のサービスアカウントにアクセスするためのクラウド秘密鍵を用いて前記KMSへのアクセス管理を行う
請求項4に記載の情報処理システム。
【請求項6】
前記鍵管理手段は、前記クラウド秘密鍵を定期的に更新する
請求項5に記載の情報処理システム。
【請求項7】
前記配備手段は、前記事業者の外部所有アカウントと対応付けられたアドレスのみが関数の実行を可能とするアクセス制限を行う前記コントラクトウォレットを前記ブロックチェーンネットワークに配備する
請求項1に記載の情報処理システム。
【請求項8】
前記配備手段は、前記コントラクトウォレットとして複数のコントラクトウォレットを前記ブロックチェーンネットワークに配備し、且つ、前記アクセス制限を行うためのプログラムであって前記複数のコントラクトウォレットに共通で用いる権限コントラクトを前記ブロックチェーンネットワークにさらに配備する
請求項7に記載の情報処理システム。
【請求項9】
前記配備手段は、
前記トークンの生成及び管理を行うプログラムであるトークンコントラクトと、
前記トランザクションリクエストに応じて前記コントラクトウォレットに対して予め定められたトークン操作のみを実行可能なプログラムである操作コントラクトと、
を前記ブロックチェーンネットワークにさらに配備する
請求項1乃至8のいずれか1項に記載の情報処理システム。
【請求項10】
前記配備手段は、前記事業者の外部所有アカウントのアドレスのみが関数の実行を可能とするアクセス制限を行う前記操作コントラクトを前記ブロックチェーンネットワークに配備する
請求項9に記載の情報処理システム。
【請求項11】
前記配備手段は、前記操作コントラクトとして複数の操作コントラクトを前記ブロックチェーンネットワークに配備し、且つ、前記アクセス制限を行うためのプログラムであって前記複数の操作コントラクトに共通で用いる権限コントラクトを前記ブロックチェーンネットワークにさらに配備する
請求項10に記載の情報処理システム。
【請求項12】
前記配備手段は、前記コントラクトウォレットのアドレスのみが関数の実行を可能とするアクセス制限を行う前記トークンコントラクトを前記ブロックチェーンネットワークに配備する
請求項9に記載の情報処理システム。
【請求項13】
前記配備手段は、複数人の署名が得られたことを条件として、前記操作コントラクトに新たな機能を追加する又は前記操作コントラクトを新たに配備する
請求項9に記載の情報処理システム。
【請求項14】
ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システム実行する情報処理方法であって、
前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備するステップと、
前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行うステップと、
前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うステップと、を有する
情報処理方法。
【請求項15】
ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムに、
前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備するステップと、
前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行うステップと、
前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うステップと、を実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、非代替性トークン(NFT:Non-Fungible Token)や代替性トークン(FT:Fungible Token)等のトークンを発行して管理可能なブロックチェーン技術が注目されている。ブロックチェーン技術では、トランザクションの履歴を含む台帳を複数の利用者のコンピュータが分散保持する自律分散型のネットワーク(「ブロックチェーンネットワーク」とも称する)が構成される。
【0003】
トークンは、ブロックチェーンのアドレス(単に「アドレス」とも称する)に対応付けてブロックチェーンネットワークに記録されるデジタルデータである。あるアドレスに対してトークンが対応付けられた状態を一般に、そのアドレスにより識別される主体がトークンを「所有」しているという。
【0004】
ここで、トークンを所有し得る主体には、利用者に付与される「外部所有アカウント(EOA:Externally Owned Account)」と、ブロックチェーンネットワークに配備されるプログラムである「スマートコントラクト」との2種類が存在し、いずれもブロックチェーンのアドレスを有している。EOAは、「ウォレット」と称されることがある。
【0005】
EOA及びスマートコントラクトはそれぞれトークンを所有し得るが、秘密鍵を有しているEOAがこの秘密鍵を用いてトークンに関するトランザクションを開始することができるのに対し、スマートコントラクトは秘密鍵を有しておらず、トークンに関するトランザクションを開始できない。なお、トランザクションをブロックチェーンに記録するために、利用者には「ガス代」と呼ばれる手数料が発生する。
【0006】
ここで、EOAの秘密鍵は文字列に過ぎず、容易にコピー等が可能であり、一度漏洩すれば、既存の処理系のIDやパスワードのようにパスワード変更等による事後のアクセス制限は不可能で、永遠に同秘密鍵のアドレスに許可された権限にアクセスされてしまう。利用者においても、秘密鍵に対応するニーモニックと呼ばれる文字列を紙に書き写して金庫で保管するというように利便性が低いものとなっている。
【0007】
トークンの所有及び操作に特化したスマートコントラクトは「コントラクトウォレット」(又は「スマートアカウント」)と称される。コントラクトウォレットによれば、ブロックチェーン上のスマートコントラクトを、トークンを所有及び操作するウォレットのように取り扱うことが可能になり得る。コントラクトウォレットの規格としては、例えばERC-4337が存在する(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0008】
【文献】ERC-4337,URL:https://github.com/ethereum/ercs/blob/master/ERCS/erc-4337.md
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、ERC-4337のリファレンス実装では、ブロックチェーンの非中央集権性(すなわち、自律分散性)を守るために、利用者のEOAのアドレスとコントラクトウォレットのアドレスとが1対1で対応しており、これにより認証も兼ねている。
【0010】
そのため、利用者がコントラクトウォレットを介してトランザクションリクエストを行うものの、実際には、利用者が自身でガス代を支払い、且つ利用者が自身でEOAの秘密鍵を管理する必要があり、ブロックチェーンを利用する利用者の利便性が依然として低いという課題があった。
【0011】
そこで、本開示は、セキュリティを担保しつつコントラクトウォレットを用いて利用者の利便性を向上させることが可能な情報処理システム、情報処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本開示の第1の態様に係る情報処理システムは、ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムであって、前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備する配備手段と、前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行う認証手段と、前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うリクエスト手段と、を備える。
【0013】
本開示の第2の態様に係る情報処理方法は、ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムで実行する情報処理方法であって、前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備するステップと、前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行うステップと、前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うステップと、を有する。
【0014】
本開示の第3の態様に係るプログラムは、ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムに、前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備するステップと、前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行うステップと、前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うステップと、を実行させる。
【発明の効果】
【0015】
本開示の一態様によれば、セキュリティを担保しつつコントラクトウォレットを用いて利用者の利便性を向上させることが可能な情報処理システム、情報処理方法、及びプログラムを提供できる。
【図面の簡単な説明】
【0016】
図1】実施形態に係る情報処理システムを含む全体構成例を示す図である。
図2】実施形態に係る各コンピュータのハードウェア構成の一例を示す図である。
図3】実施形態に係るブロックチェーンネットワークにおけるスマートコントラクトに関する機能ブロック構成例を示す図である。
図4】実施形態に係る各スマートコントラクトの動作例を説明するための図である。
図5】実施形態に係る各スマートコントラクトの動作例を説明するための図である。
図6】実施形態に係るブロックチェーンネットワークにおけるスマートコントラクトに関する機能ブロック構成の変更例を示す図である。
図7】実施形態に係る各スマートコントラクトの動作例を説明するための図である。
図8】実施形態に係るブロックチェーンネットワークにおけるスマートコントラクトに関する機能ブロック構成の別の変更例を示す図である。
図9】実施形態に係る情報処理システムの機能ブロック構成例を示す図である。
図10】実施形態に係るウォレットアドレスの決定方法の一例を説明するための図である。
図11】実施形態に係る各利用者に対するNFT発行までの動作例を示すシーケンス図である。
図12】実施形態に係る各利用者がNFT(トークン関連サービス)を利用する際の動作例を示すシーケンス図である。
【発明を実施するための形態】
【0017】
図面を参照しながら、実施形態について説明する。図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0018】
(1)実施形態の概要
実施形態に係る情報処理システムは、ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムであって、トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットをブロックチェーンネットワークに配備する配備手段と、利用者の外部所有アカウント(「利用者EOA」とも称する)とは異なる利用者情報を用いて、当該サービスの利用についての利用者の認証を行う認証手段と、利用者と対応付けられたコントラクトウォレットに対して、当該サービスを提供する事業者の外部所有アカウント(「事業者EOA」とも称する)を用いて、当該コントラクトウォレットを所有者とするトークンに関するトランザクションリクエストを行うリクエスト手段と、を備える。
【0019】
このように、実施形態では、認証手段は、利用者EOAとは異なる利用者情報を用いて、当該サービスの利用についての利用者の認証を行う。これにより、EOA(利用者EOA)を有していない利用者であっても利用者認証が可能であり、セキュリティの低下を維持しつつ利用者が当該サービスを利用可能になる。
【0020】
また、リクエスト手段は、利用者と対応付けられたコントラクトウォレットに対して、当該サービスを提供する事業者のEOAを用いて、当該コントラクトウォレットを所有者とするトークンに関するトランザクションリクエストを行う。つまり、利用者EOAではなく、事業者EOAを用いてトランザクションリクエストを行う。これにより、利用者は自身でEOAの秘密鍵を管理する必要がなく、且つ利用者は自身でガス代を支払う必要がない。具体的には、実施形態では、事業者EOAの秘密鍵の管理及びガス代の支払は、事業者による処理(情報処理システムの処理)の一部として実行される。
【0021】
したがって、実施形態によれば、コントラクトウォレットの操作に不特定多数の利用者EOAを用いず、サービスを提供する事業者の特定のEOAを用いるという、中央集権型のコントラクトウォレット処理系を実現できる。これにより、コントラクトウォレットを用いて利用者の利便性を向上させることが可能である。
【0022】
(2)全体構成例
図1は、本実施形態に係る情報処理システム100を含む全体構成例を示す図である。
【0023】
図示の例では、情報処理システム100と、複数の端末装置200と、ブロックチェーンネットワーク300と、KMS(Key Management Service)システム400とが、ネットワーク5を介して通信可能に接続されている。ネットワーク5は、インターネットを含む。ネットワーク5は、LAN(Local Area Network)及び/又はWAN(Wide Area Network)を含んでもよい。
【0024】
情報処理システム100は、ブロックチェーンネットワーク300で管理されるトークンを用いたサービス(「トークン関連サービス」又は「Web3サービス」とも称する)を提供する事業者のシステムであり、1つ又は複数のサーバを含んで構成される。ブロックチェーンネットワーク300は、トランザクションの履歴を含む台帳を複数の利用者のコンピュータが分散保持し、ピアツーピアによって接続された複数のコンピュータにより構成される自律分散型のネットワークである。なお、用語「ブロックチェーン」は、ブロックチェーン技術を主として意味し、本実施形態では、イーサリアム互換のブロックチェーンを想定するが、Solana等のイーサリアム非互換のブロックチェーンであってもよい。また、用語「ブロックチェーン」は、ブロックチェーンネットワーク300や台帳と互換的に用いられ得る。
【0025】
トークンは、ブロックチェーンのアドレスに対応付けてブロックチェーンネットワークに記録されるデジタルデータである。トークンは、NFTであってもよいし、FTであってもよいが、本実施形態では、トークンがNFTである一例について主として説明する。また、トークンを用いたサービスは、トークンを用いたあらゆるサービスを意味するが、本実施形態では、NFT発行・配布、NFT閲覧、NFT移転、トークンゲート等のNFTを用いたサービスを主として想定する。
【0026】
各端末装置200は、トークン関連サービスを利用する利用者の端末装置であり、例えば、スマートフォン、タブレット端末、パーソナルコンピュータ等、任意のコンピュータによって構成される。各端末装置200は、ネットワーク5を介して情報処理システム100との通信を行う。各端末装置200は、利用者とのインターフェイスを有し、各種の操作を利用者から受け付けるとともに、各種の情報を利用者に提示する。なお、図示の例では、利用者a乃至cに対応する3つの端末装置200a乃至200cが存在するが、利用者及び端末装置200の数はこれに限定されない。
【0027】
従来技術では、ブロックチェーンやトークンを利用する利用者は、自身のEOAを有し、当該EOAの秘密鍵を管理する必要があったが、本実施形態では、利用者は、自身のEOAを有していなくてもよい。但し、利用者の情報は、トークン関連サービス(情報処理システム100)に登録されている必要がある。例えば、利用者は、トークン関連サービス(情報処理システム100)のサービスアカウントを有している。
【0028】
なお、EOAとは、いわゆるウォレットを意味し、トークンを所有することが可能であるが、実態としては秘密鍵である。EOAのアドレスは、当該秘密鍵と対応付けられた公開鍵から一意に算出される値であってもよい。ブロックチェーンネットワーク300の外部で所有証明を行う必要があるため、当該秘密鍵で署名を行い、ブロックチェーンネットワーク300上で署名を検証することで、同アドレスからのリクエストとして処理される。EOAは、トランザクションの起点となることが可能である。トランザクションは、例えば、トークンの発行又は移転等の処理である。トランザクションは、ブロックチェーンにその処理の内容が記録される。
【0029】
ブロックチェーンネットワーク300は、ピアツーピアによって接続された複数のコンピュータのネットワークである。ブロックチェーンには、特定の管理者がいないパブリックチェーン、単一の組織により管理されているプライベートチェーン、複数の組織により管理されているコンソーシアムチェーンの3種類があるが、ブロックチェーンネットワーク300はこれらのいずれであってもよい。典型的な例では、ブロックチェーンネットワーク300は、パブリックチェーンに分類されるイーサリアムネットワーク又はポリゴンネットワーク、或いは、プライベートチェーンに分類されるLINEブロックチェーン等であり得る。
【0030】
従来技術では、ブロックチェーンネットワーク300の利用者は、EOAと呼ばれるブロックチェーンのアカウントを介して、ブロックチェーンネットワーク300を利用する。また、ブロックチェーンネットワーク300は、各種のスマートコントラクト(プログラム)を記録可能に構成される。EOAはアドレス(「ウォレットアドレス」とも称する)により識別され、スマートコントラクトもアドレス(「アカウントコントラクトアドレス」とも称する)により識別される。EOA及びスマートコントラクトはともに、各種トークンの所有主体になることができる。
【0031】
ブロックチェーンネットワーク300は、各種のトランザクションをブロックチェーン(具体的には、台帳)に記録(ミント)可能に構成される。この各種のトランザクションには、アカウント、スマートコントラクト、又はトークンを新たに発行するための発行トランザクションや、トークンの所有権を移転するための移転トランザクション等が含まれる。
【0032】
ブロックチェーンネットワーク300において台帳にトランザクションをミントする処理は、ブロックチェーンネットワーク300に接続されたいくつかのコンピュータ(以下、「マイナー」と称する)によって実行される。具体的に説明すると、ブロックチェーン(台帳)を構成する各ブロックは、ブロックヘッダと、トランザクションの具体的な内容を示すデータ(取引データ)とを含んで構成される。このうちブロックヘッダには、取引データのサイズを圧縮してなるデータであるマークルルートと、1つ前のブロックのハッシュ値と、任意の文字列であるナンス値とが含まれる。ブロックチェーンネットワーク300においては、新たなブロックをブロックチェーンに接続するには、そのブロックのハッシュ値が所定の条件(例えば、「000」で始まる値である、という条件)を満たしていなければならないというルールが定められている。そこで、ブロックチェーンにあるブロックを記録しようとするマイナーは、そのブロックのブロックヘッダのハッシュ値が上記所定の条件を満たすこととなるよう、総当たり的にナンス値を見つける作業(マイニング)を行う。この作業の結果として、最も早くナンス値の発見に成功したマイナーがそのブロックをブロックチェーンに連結することによって、トランザクションのブロックチェーンへのミントが完了する。
【0033】
ブロックチェーンネットワーク300がイーサリアムネットワーク又はポリゴンネットワーク等である場合、トランザクションをブロックチェーンにミントしようとする者は、「ガス」と呼ばれる手数料を仮想通貨によって支払う必要がある。ガスは、ブロックの連結に成功したマイナーに対し、報酬として支払われる。
【0034】
ブロックチェーンのEOA、スマートコントラクト、及びトランザクション(台帳)は、実体としては、ブロックチェーンネットワーク300を構成する複数のコンピュータの1つ以上に記憶されている。以下の説明において、スマートコントラクトが行う処理として説明する処理についても、実際にその処理を実行するのは、ブロックチェーンネットワーク300を構成するいずれかのコンピュータである。
【0035】
KMSシステム400は、クラウドサービスとしてハードウェアウォレット機能を実現するシステムであり、1つ又は複数のサーバを含んで構成される。上述のように、ブロックチェーンでは秘密鍵による署名が必要であり、秘密鍵自体へのアクセスは必要としない。そのため、内部データにアクセス不可能なチップの中に秘密鍵を実装し、USB(Universal Serial Bus)等を経由した入力データに対しての署名のみを出力するハードウェアウォレットという機材が存在し、EOAとして機能する。但し、ハードウェアウォレットは高価であり、使い勝手も一般的な消費者にとって使いやすいとは言い難いものであるため、普及は進んでいない。同様の機能を持つデータセンタ向けの機材としてHSM(Hardware Security Module)が存在し、そのような機材を用いたクラウドサービスをKMSと称する。KMSは、ハードウェアウォレットと同様にEOAとして機能する。トークン関連サービスを提供する事業者は、KMSのサービスアカウントを有し、KMSシステム400を利用して事業者EOAの秘密鍵を管理する。
【0036】
このような全体構成を前提として、情報処理システム100は、トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットをブロックチェーンネットワーク300に配備する。コントラクトウォレットは、スマートコントラクトの一種である。但し、スマートコントラクト処理系を持たないビットコイン等のブロックチェーンにおいても、スマートコントラクト類似の処理系を拡張する動きもあり、コントラクトウォレットは、スマートコントラクト類似の処理系により実現されてもよい。なお、スマートコントラクトは、EOAと同様に一意のアドレスが与えられるが、EOAとは異なり秘密鍵を有していないため、トランザクションの起点となることはできない。
【0037】
また、情報処理システム100は、利用者EOAとは異なる利用者情報を用いて利用者の認証を行う。このような利用者認証は、トークン関連サービス(情報処理システム100)に予め登録された利用者の識別子等の利用者情報を用いた認証であり、従来のログイン(サインイン)認証と同様な認証方法を用いることができる。つまり、情報処理システム100は、EOAの秘密鍵を用いた署名によるブロックチェーン認証(いわゆる、Web3認証)ではなく、パスワード認証及び/又は生体認証等の既存認証(いわゆる、Web2認証)により利用者の認証を行う。
【0038】
そして、情報処理システム100は、利用者と対応付けられたコントラクトウォレットに対して、トークン関連サービスを提供する事業者EOAを用いて、当該コントラクトウォレットを所有者とするトークンに関するトランザクションリクエストを行う。すなわち、情報処理システム100は、コントラクトウォレットの操作に不特定多数の利用者EOAを用いず、事業者EOAを用いるという、中央集権型のコントラクトウォレット処理系を実現する。ここで、事業者EOAの秘密鍵は、KMSシステム400にセキュアに保存及び管理される。事業者EOAのアドレスは、KMSシステム400のアドレスとみなすこともでき、これをKMSアドレスとも称する。
【0039】
本実施形態では、利用者EOA自体を事業者が管理する訳ではないため、ウォレット(利用者EOA)の譲渡や複製等の問題が発生せず、既存の法制度や利用規約がそのまま適用可能である。また、事業者側のEOAが全てのトランザクションリクエストを行い、ガス代を支払うため、利用者はガス代を一切支払う必要がない。そのため、本実施形態によれば、サービスに必要なコンピューティングコストをサービス提供者(事業者)側が支払うというWeb2までの常識に則って、Web3サービスの提供が可能である。
【0040】
また、本実施形態では、コントラクトウォレットの各種操作トランザクションのリクエストは、事業者EOAによる署名によって実行される。例えば、1億以上の異なるアドレスのコントラクトウォレットであっても、1つの事業者EOAによって操作可能な場合もある。このことを中央集権的と呼ぶ。但し、事業者EOAは1つに限らず、複数であってもよい。
【0041】
さらに、利用者EOAの場合、一つの処理が終わるまで次の処理を行うことができず、ブロックチェーンによっては数十秒待たされることもある。一方で、本実施形態によれば、単一のコントラクトウォレットに対しての操作を多数の事業者EOAによって行うことで、同じ数十秒間に多数の処理を行うことも可能である。
【0042】
このようにして、本実施形態に係るコントラクトウォレットでは、ブロックチェーン外、例えば、事業者の既存認証システムで認証された利用者が、事業者の情報処理システム100を通じて、当該利用者に割り当てられたコントラクトウォレットを操作することが可能である。
【0043】
(3)ハードウェア構成例
図2は、本実施形態に係る情報処理システム100、端末装置200、KMSシステム400、及び、ブロックチェーンネットワーク300を構成する各コンピュータのハードウェア構成の一例を示す図である。これらのコンピュータはそれぞれ、図示した構成を有するコンピュータ10によって構成され得る。
【0044】
コンピュータ10は、処理部11と、記憶部12と、通信部13と、入力部14と、出力部15とを有する。処理部11、記憶部12、通信部13、入力部14、及び出力部15は、図示を省略するバスを介して相互に電気的に接続される。
【0045】
処理部11は、CPU(Central Processing Unit)を含み、コンピュータ10の各部を制御するとともに、記憶部12に記憶される各種のプログラムを読み出して実行する装置である。
【0046】
記憶部12は、DRAM(Dynamic Random Access Memory)等の主記憶装置と、ハードディスク等の補助記憶装置とを含み、コンピュータ10のオペレーティングシステムや各種のアプリケーションを実行するための各種のプログラム、及び、これらのプログラムによって利用されるデータを記憶する装置である。各コンピュータそれぞれの処理部11は、それぞれの記憶部12の中に記憶されているプログラムを実行することによって、上述及び後述の動作を実現する。
【0047】
通信部13は、外部の装置と通信するための装置であり、処理部11の指示にしたがってデータの送受信を行う。各コンピュータはそれぞれ、この通信部13を用いて他の装置との通信を行う。
【0048】
入力部14は、外部からの入力を受け付けて処理部11に供給する装置であり、例えばキーボード、マウス、タッチパネルを含んで構成される。出力部15は、処理部11の処理結果を外部に出力する装置であり、例えばディスプレイ、スピーカーを含んで構成される。
【0049】
(4)機能ブロック構成例
本実施形態に係る情報処理システム100、ブロックチェーンネットワーク300、及びKMSシステム400のそれぞれの機能ブロック構成について説明する。
【0050】
(4.1)ブロックチェーンネットワークの構成例
図3は、本実施形態に係るブロックチェーンネットワーク300におけるスマートコントラクトに関する機能ブロック構成例を示す図である。
【0051】
図示の各スマートコントラクトは、情報処理システム100が、例えば事業者EOAを用いて、ブロックチェーンネットワーク300に対してスマートコントラクトの発行トランザクションのリクエストを行うことで、ブロックチェーンネットワーク300に配備されてもよい。図示の各スマートコントラクトは、それぞれ一意のアドレスを有する。
【0052】
図3では、ブロックチェーンネットワーク300には、複数のスマートコントラクトとして、複数のコントラクトウォレット320と、トークンコントラクト330とが配備されている。
【0053】
コントラクトウォレット320は、トークンの所有及び操作に特化したスマートコントラクトであって、利用者ごとに異なる。図示の例では、利用者aと対応付けられたコントラクトウォレット(a)320aと、利用者bと対応付けられたコントラクトウォレット(b)320bと、利用者cと対応付けられたコントラクトウォレット(c)320cとが配備されている。
【0054】
トークンコントラクト330は、トークンの生成及び管理を行うスマートコントラクトである。トークンがNFTである場合にはトークンコントラクト330はNFTコントラクトであり、トークンがFTである場合にはトークンコントラクト330はFTコントラクトであるが、本実施形態では、トークンコントラクト330がNFTコントラクトである場合を主として想定する。1つのNFTコントラクトは、複数のNFTを生成・管理することができ、個々のNFTは、NFTコントラクトのアドレスと、NFTコントラクト内における個々のNFTの識別子(=トークンID)とによって特定される。NFTコントラクトは、自身の記憶領域に各NFTの所有状況を保管している。
【0055】
例えば、トークンコントラクト330のアドレスAに配備されたトークンID:3のNFTの所有確認が行われる場合、トークンコントラクト330は、「ownerOf(3)」といったAPIコールを情報処理システム100(事業者EOA)から受け付け、トークンID:4のNFTの所有者のアドレスを返してもよい。
【0056】
また、例えば、図4に示すように、利用者cと対応付けられたアドレスCから、利用者dと対応付けられたアドレスDへトークンID:4のNFTを移転する移転トランザクションを想定する。この場合、アドレスXを有する事業者EOA(情報処理システム100)は、アドレスCのコントラクトウォレット320に対して移転トランザクションリクエストを行う。アドレスCのコントラクトウォレット320は、アドレスXのみが関数を実行可能とするようにアクセス制限を行う。アドレスCのコントラクトウォレット320は、当該移転トランザクションリクエストを受け付けて、「safeTransferFrom(アドレスC,アドレスD,4)」といった移転トランザクションリクエストをトークンコントラクト330に対して行う。トークンコントラクト330は、アドレスCのみが関数(アドレスCのNFTの移転トランザクション)を実行可能とするようにアクセス制限を行う。トークンコントラクト330は、当該移転トランザクションリクエストがトークンID:4のNFTの所有者であるアドレスCからのものであることを確認し、トークンID:4のNFTの所有者をアドレスCからアドレスDに変更するよう記憶(更新)する。
【0057】
このように、スマートコントラクト間のアドレスによる厳格なアクセス制限を行うことによりオンチェーン上でのセキュリティリスクをゼロにしている。
【0058】
しかし、図5に示すように、ERC-4337に代表される一般的なコントラクトウォレット実装の場合、アプリケーション開発者の一存で全てのコマンド(トランザクションリクエスト)の実行が可能となる。具体的には、コントラクトウォレット320は、特定の関数を実装せず、バイトコードを受け渡し、指定した外部のスマートコントラクト(例えばトークンコントラクト330)の操作を行うため、基本的に全ての操作が可能となる。このような実装では、意図する意図しないに関わらず、深刻なセキュリティ問題を惹き起こす可能性がある。
【0059】
そのため、本実施形態では、図6に示すように、ブロックチェーンネットワーク300には、1つ又は複数の操作コントラクト310が配備されてもよい。図示の例では、2つの操作コントラクト310が存在するが、操作コントラクト310の数はこれに限定されない。
【0060】
各操作コントラクト310は、情報処理システム100(事業者EOA)とコントラクトウォレット320との間に介在し、コントラクトウォレット320に対して予め定められたトークン操作のみを実行可能なスマートコントラクトである。各操作コントラクト310は用途に応じて使い分け可能であり、機能(関数)のグループごとに操作コントラクト310が配備されてもよい。
【0061】
図7に示すように、コントラクトウォレット320の外部スマートコントラクト実行関数の実行権限を一つ又は複数の操作コントラクト310に与え、操作コントラクト310に実装された関数からの実行のみを可能とする。具体的には、操作コントラクト310は、自身にハードコーディングされた関数以外の実行は不可である。このような実装により、操作コントラクト310の機能追加を、分割した権限や承認によって運用することが可能となり、意図しない関数の追加を防ぐことができる。例えば、複数人の署名が得られたことを条件として、操作コントラクト310に新たな機能を追加する又は操作コントラクト310を新たに配備することを可能とする。具体的には、ブロックチェーン上での署名として、事業者側の権限が高い者(管理者等)のEOAの署名が一定数(例えば、最大で5つの署名のうち3つの署名)が集まった場合(多数決)に、操作コントラクト310に新たな機能を追加する又は操作コントラクト310を新たに配備することを可能とする。
【0062】
このように、各スマートコントラクトは、関数毎に役割ベースの実行権限を与え、同役割を所定のアドレスにのみ与えることでブロックチェーン上のセキュリティを担保している。
【0063】
但し、図8に示すように、コントラクトウォレット320が多数の場合、各コントラクトウォレット320に、各コントラクトウォレット320の関数の実行権限を有する主体として、各操作コントラクト310のアドレスを設定していく作業が膨大になる。そのため、本実施形態では、各コントラクトウォレット310の実行権限を管理する共通のスマートコントラクトである権限コントラクト350(認証コントラクト)を全て又は一部の複数コントラクトウォレット320に割り当てる。権限コントラクト350は、権限を有するか否かを確認するための関数を有し、各コントラクトウォレット320からの呼び出しにより当該関数を実行する。これにより、各コントラクトウォレット320に対する設定の作業を大幅に省略するとともに、設定ミスによるセキュリティ問題を回避している。
【0064】
同様に、操作コントラクト310が多数の場合、各操作コントラクト310の関数の実行権限を有する主体として各EOA(各事業者EOA)のアドレスを各操作コントラクト310に設定していく作業が膨大になる。そのため、本実施形態では、各操作コントラクト310の実行権限を管理する共通のスマートコントラクトである権限コントラクト340(認証コントラクト)を全て又は一部の複数操作コントラクト310に割り当てる。権限コントラクト340は、権限を有するか否かを確認するための関数を有し、各操作コントラクト310からの呼び出しにより当該関数を実行する。これにより、各操作コントラクト310に対する設定の作業を大幅に省略するとともに、設定ミスによるセキュリティ問題を回避している。
【0065】
(4.2)情報処理システムの構成例
図9は、本実施形態に係る情報処理システム100の機能ブロック構成例を示す図である。
【0066】
情報処理システム100は、スマートコントラクト配備部110と、利用者認証部120と、トランザクションリクエスト部130と、ウォレットアドレス決定部140と、秘密鍵管理部150と、利用者データベース(DB)101と、クラウド秘密鍵記憶部102とを有する。
【0067】
スマートコントラクト配備部110は、トークンの所有及び操作に特化したスマートコントラクトであって利用者ごとに異なるコントラクトウォレット320をブロックチェーンネットワーク300に配備する。
【0068】
利用者認証部120は、利用者EOAとは異なる利用者情報を用いて利用者の認証(すなわち、Web2認証)を行う。
【0069】
トランザクションリクエスト部130は、利用者と対応付けられたコントラクトウォレット320に対して、事業者EOAを用いて、当該コントラクトウォレット320を所有者とするトークンに関するトランザクションリクエストを行う。
【0070】
ウォレットアドレス決定部140は、利用者ごとに、当該利用者に割り当てるコントラクトウォレット320のアドレス(ウォレットアドレス)を決定する。具体的には、ウォレットアドレス決定部140は、当該利用者の識別子(例えば、利用者ID)から所定関数を用いた演算によって一意のウォレットアドレスを決定する。
【0071】
図10は、本実施形態に係るウォレットアドレスの決定方法の一例を説明するための図である。図10に示すような利用者ごとの情報が利用者DB101に利用者アカウント情報として格納される。図示の例では、ウォレットアドレス決定部140は、利用者のID及び/又はメールアドレス等の識別子から、一意のハッシュ値を識別子ハッシュとして算出し、当該識別子ハッシュから一意のウォレットアドレス(Web3アドレス)を算出する。
【0072】
このように、利用者の識別子から一意のWeb3アドレスを決定する。例えば、ウォレットアドレス決定部140は、Web3アドレスを事前に演算可能な関数(イーサリアムの場合のcreate2等)を用いることで、オフラインの演算のみで利用者識別子に対応するWeb3アドレスを算出可能である。そのため、Web2の利用者DB101に対して、ブロックチェーンとの接続なしにウォレットアドレスアドレスを追加できる。
【0073】
これにより、例えば1億を越える多数の利用者(アカウント)に対してのオンチェーン施策であっても、即時に計画可能である。一方、従来のような利用者EOAを用いる場合、利用者にEOAを作成させる必要があるため、即時の計画は不可能である。
【0074】
また、利用者の識別子から一意のWeb3アドレスを決定することにより、全ての互換ブロックチェーン上で同じアドレスを利用可能である。例えばEVM(Ethreum Virtual Machine)等の同方式のブロックチェーンの場合、異なるブロックチェーン上の同じアドレスにコントラクトウォレットを配備可能である。
【0075】
本実施形態では、スマートコントラクト配備部110は、利用者へのコントラクトウォレット320の割り当てが必要になった際に、当該利用者向けに、ウォレットアドレス決定部140により決定されたアドレスを有するコントラクトウォレット320をブロックチェーンネットワーク300に配備する。FTやNFT等のトークンの受け取りに関しては、コントラクトウォレット320の配備は不要である。コントラクトウォレット320の機能が必要になった際に初めてコントラクトウォレット320を配備することで、ガス代や処理時間の大幅な縮減が可能である。
【0076】
例えば、トークンゲートのような最も多用される利用形態の場合、コントラクトウォレット320の配備は必要ではなく、コントラクトウォレット320を用いる機能(例えば、トークンの移転等のトランザクションの発動)が必要となった際に初めてコントラクトウォレット320がブロックチェーン上に配備される。コントラクトウォレット320を配備するための発行トランザクションは、1つあたりイーサリアムで2,000円前後、他の低廉なブロックチェーンであっても1~2円程度かかるため、1億アカウント規模のサービスの場合には大幅なコスト削減が可能である。
【0077】
秘密鍵管理部150は、事業者EOAの秘密鍵(「ウォレット秘密鍵」とも称する)を、クラウドサービスとしてハードウェアウォレット機能を実現するKMSシステム400を利用して管理する。トランザクションリクエスト部130のトランザクションリクエストには、KMSシステム400が当該ウォレット秘密鍵に基づいて生成した署名が付与される。
【0078】
このように、本実施形態では、利用者EOAではなく、ウォレット秘密鍵へのアクセス不可のKMSにてトランザクション署名を行う。具体的には、事業者EOAにKMS(KMSシステム400)を利用することにより、情報処理システム100のメモリ上にウォレット秘密鍵を展開することなく、署名を行い、ブロックチェーン上のコントラクトウォレット320を操作することができる。また、利用者側のウォレット相当の機能も秘密鍵を持たないコントラクトウォレット320で実現されるため、情報処理システム100から端末装置200に至るまで、一瞬たりともメモリ上にウォレット秘密鍵が存在しない、極めてセキュアな処理系を実現している。
【0079】
クラウド秘密鍵記憶部102は、KMSシステム400へのアクセス権限を有する特定のサービスアカウントにアクセスするためのクラウド秘密鍵を記憶する。秘密鍵管理部150は、KMS(KMSシステム400)へのアクセス権限を有する特定のサービスアカウント(「仮想アカウント」とも称する)にアクセスするためのクラウド秘密鍵を用いてKMSへのアクセス管理を行う。すなわち、KMSには、特定の仮想アカウントのみに最小限のアクセス権限を与え、同仮想アカウントへのアクセス可能なクラウド秘密鍵(非ウォレット秘密鍵)をサーバ等に割り当てることでアクセス管理を行う。
【0080】
秘密鍵管理部150は、クラウド秘密鍵を定期的に更新してもよい。例えば、秘密鍵管理部150は、クラウド秘密鍵を一定期間でローテーションしてもよい。また、秘密鍵管理部150は、クラウド秘密鍵の漏洩時に即座にクラウド秘密鍵を無効化してもよい。これにより、セキュリティレベル担保可能である。
【0081】
本実施形態では、スマートコントラクト配備部110は、図4に示したように、事業者EOAのアドレスのみが関数の実行を可能とするアクセス制限を行うコントラクトウォレット320をブロックチェーンネットワーク300に配備してもよい。また、スマートコントラクト配備部110は、図8に示したように、複数のコントラクトウォレット320をブロックチェーンネットワーク300に配備し、且つ、複数のコントラクトウォレット320に共通で用いる権限コントラクト350をブロックチェーンネットワーク300にさらに配備してもよい。図6及び図7に示したように、操作コントラクト310が配備される場合には、スマートコントラクト配備部110は、操作コントラクト310のアドレスのみが関数の実行を可能とするアクセス制限を行うコントラクトウォレット320をブロックチェーンネットワーク300に配備してもよい。このように、スマートコントラクト配備部110は、事業者EOAと対応付けられたアドレス(事業者EOAのアドレス又は操作コントラクト310のアドレス)のみが関数の実行を可能とするアクセス制限を行うコントラクトウォレット320をブロックチェーンネットワーク300に配備する。
【0082】
スマートコントラクト配備部110は、図6及び図7に示したように、トークンの生成及び管理を行うプログラムであるトークンコントラクト330と、事業者EOAからのトランザクションリクエストに応じてコントラクトウォレット320に対して予め定められたトークン操作のみを実行可能なプログラムである操作コントラクト310と、をブロックチェーンネットワーク300にさらに配備してもよい。スマートコントラクト配備部110は、複数人の署名が得られたことを条件として、操作コントラクト310に新たな機能を追加する又は操作コントラクト310を新たに配備してもよい。
【0083】
ここで、スマートコントラクト配備部110は、事業者EOAのアドレスのみが関数の実行を可能とするアクセス制限を行う操作コントラクト310をブロックチェーンネットワーク300に配備してもよい。スマートコントラクト配備部110は、図8に示したように、複数の操作コントラクト310をブロックチェーンネットワーク300に配備し、且つ、複数の操作コントラクト310に共通で用いる権限コントラクト340をブロックチェーンネットワーク300にさらに配備してもよい。
【0084】
さらに、スマートコントラクト配備部110は、操作コントラクト310のアドレスのみが関数の実行を可能とするアクセス制限を行うトークンコントラクト330をブロックチェーンネットワーク300に配備してもよい。
【0085】
(5)動作シーケンスの一例
実施形態に係る動作シーケンスの一例について説明する。ここでは、トークンがNFTである場合を例に挙げて説明する。
【0086】
図11は、本実施形態に係る各利用者に対するNFT発行までの動作例を示すシーケンス図である。
【0087】
ステップS101において、情報処理システム100は、スマートコントラクト群の発行リクエストをブロックチェーンネットワーク300に対して行う。この段階では、情報処理システム100は、コントラクトウォレット320以外のスマートコントラクト(例えば、操作コントラクト310やトークンコントラクト330等)の発行をブロックチェーンネットワーク300にリクエストしてもよい。或いは、情報処理システム100は、この段階で、少なくとも1つのコントラクトウォレット320の配備をブロックチェーンネットワーク300にリクエストしてもよい。
【0088】
ステップS102において、ブロックチェーンネットワーク300は、情報処理システム100からのリクエストに応じてスマートコントラクト群を配備する。ブロックチェーンネットワーク300は、配備した各スマートコントラクトのアドレスを情報処理システム100に通知してもよい。
【0089】
ステップS103において、情報処理システム100は、各利用者のウォレットアドレス(Web3アドレス)を当該利用者の識別子に基づいて一意に決定し、決定したウォレットアドレスを利用者DB101に付与する。
【0090】
ステップS104において、情報処理システム100は、ステップS103で決定したウォレットアドレスを所有者とするNFTの発行をブロックチェーンネットワーク300にリクエストする。
【0091】
ステップS105において、ブロックチェーンネットワーク300は、情報処理システム100からのリクエストに応じてNFTを発行する。ブロックチェーンネットワーク300は、NFT発行の完了を情報処理システム100に通知してもよい。
【0092】
図12は、本実施形態に係る各利用者がNFT(トークン関連サービス)を利用する際の動作例を示すシーケンス図である。
【0093】
ステップS201乃至S205は、NFT閲覧又はトークンゲート機能の提供に関する動作である。
【0094】
ステップS201において、端末装置200は、利用者からの操作(指示)に応じて、NFT閲覧又はトークンゲート機能を利用するために情報処理システム100(トークン関連サービス)にサインインする。
【0095】
ステップS202において、情報処理システム100は、サインインに対する利用者認証(Web2認証)を行う。ここでは、利用者認証に成功したと仮定して説明を続ける。情報処理システム100は、認証に成功した利用者のウォレットアドレス(Web3アドレス)を利用者DB101から取得する。
【0096】
ステップS203において、情報処理システム100は、当該利用者のウォレットアドレスを所有者とするNFTの所有状況をブロックチェーンネットワーク300に照会する。
【0097】
ステップS204において、ブロックチェーンネットワーク300は、当該所有状況を情報処理システム100に通知する。
【0098】
ステップS205において、情報処理システム100は、ブロックチェーンネットワーク300からの通知に応じてNFT閲覧又はトークンゲート機能を端末装置200(利用者)に提供する。
【0099】
ステップS206乃至S209は、NFT移転に関する動作である。
【0100】
ステップS206において、端末装置200は、利用者からの操作(指示)に応じて、移転先のアドレスを指定したNFT移転指示(移転リクエスト)を情報処理システム100に対して行う。
【0101】
ステップS207において、情報処理システム100は、当該利用者のウォレットアドレス(Web3アドレス)を移転元、指定されたアドレスを移転先とするNFT移転トランザクションリクエストをブロックチェーンネットワーク300に対して行う。ここで、情報処理システム100は、当該利用者のウォレットアドレスと対応付けられたコントラクトウォレット320を未配備である場合、当該コントラクトウォレット320をブロックチェーンネットワーク300に配備するようリクエストする。
【0102】
ステップS208において、ブロックチェーンネットワーク300は、移転トランザクションを完了すると、トランザクション完了通知を情報処理システム100に対して行う。
【0103】
ステップS209において、情報処理システム100は、トランザクション完了通知を端末装置200(利用者)に対して行う。
【0104】
(6)他の実施形態
上述の実施形態において、コントラクトウォレット320は、ERC-4337互換の機能拡張を行うことも可能である。IoTやクレジットカードのPKCS#1 v1.5等のアルゴリズムを利用するコントラクトウォレット関数の実行も可能である。
【0105】
上述の実施形態における動作フロー及び動作例は、必ずしもフロー図に記載された順序に沿って時系列に実行されなくてよい。例えば、動作におけるステップは、フロー図として記載した順序と異なる順序で実行されても、並列的に実行されてもよい。また、動作におけるステップの一部が削除されてもよく、さらなるステップが処理に追加されてもよい。
【0106】
上述の実施形態に係る動作をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記憶媒体であってもよい。非一過性の記憶媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記憶媒体であってもよい。
【0107】
本開示で使用する「に基づいて」、「に応じて」という記載は、別段に明記されていない限り、「のみに基づいて」、「のみに応じて」を意味しない。「に基づいて」という記載は、「のみに基づいて」及び「に少なくとも部分的に基づいて」の両方を意味する。同様に、「に応じて」という記載は、「のみに応じて」及び「に少なくとも部分的に応じて」の両方を意味する。また、「含む(include)」、「備える(comprise)」、及びそれらの変形の用語は、列挙する項目のみを含むことを意味せず、列挙する項目のみを含んでもよいし、列挙する項目に加えてさらなる項目を含んでもよいことを意味する。また、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。本開示において、例えば、英語でのa,an,及びtheのように、翻訳により冠詞が追加された場合、これらの冠詞は、文脈から明らかにそうではないことが示されていなければ、複数のものを含むものとする。
【0108】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0109】
(7)付記
上述の実施形態に関する特徴について付記する。
【0110】
・付記1
ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムであって、
前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備する配備手段と、
前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行う認証手段と、
前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うリクエスト手段と、を備える
情報処理システム。
【0111】
・付記2
利用者ごとに、当該利用者に割り当てる前記コントラクトウォレットのアドレスを決定するアドレス決定手段をさらに備え、
前記アドレス決定手段は、当該利用者の識別子から所定関数を用いた演算によって一意の前記アドレスを決定する
付記1に記載の情報処理システム。
【0112】
・付記3
前記配備手段は、利用者への前記コントラクトウォレットの割り当てが必要になった際に、当該利用者向けに、前記アドレス決定手段により決定された前記アドレスを有する前記コントラクトウォレットを前記ブロックチェーンネットワークに配備する
付記2に記載の情報処理システム。
【0113】
・付記4
前記事業者の外部所有アカウントの秘密鍵を、クラウドサービスとしてハードウェアウォレット機能を実現するKMS(Key Management Service)を利用して管理する鍵管理手段をさらに備え、
前記リクエスト手段の前記トランザクションリクエストには、前記KMSが前記秘密鍵に基づいて生成した署名が付与される
付記1乃至3のいずれかに記載の情報処理システム。
【0114】
・付記5
前記鍵管理手段は、前記KMSへのアクセス権限を有する特定のサービスアカウントにアクセスするためのクラウド秘密鍵を用いて前記KMSへのアクセス管理を行う
付記4に記載の情報処理システム。
【0115】
・付記6
前記鍵管理手段は、前記クラウド秘密鍵を定期的に更新する
付記5に記載の情報処理システム。
【0116】
・付記7
前記配備手段は、前記事業者の外部所有アカウントと対応付けられたアドレスのみが関数の実行を可能とするアクセス制限を行う前記コントラクトウォレットを前記ブロックチェーンネットワークに配備する
付記1乃至6のいずれかに記載の情報処理システム。
【0117】
・付記8
前記配備手段は、前記コントラクトウォレットとして複数のコントラクトウォレットを前記ブロックチェーンネットワークに配備し、且つ、前記アクセス制限を行うためのプログラムであって前記複数のコントラクトウォレットに共通で用いる権限コントラクトを前記ブロックチェーンネットワークにさらに配備する
付記7に記載の情報処理システム。
【0118】
・付記9
前記配備手段は、
前記トークンの生成及び管理を行うプログラムであるトークンコントラクトと、
前記トランザクションリクエストに応じて前記コントラクトウォレットに対して予め定められたトークン操作のみを実行可能なプログラムである操作コントラクトと、
を前記ブロックチェーンネットワークにさらに配備する
付記1乃至8のいずれかに記載の情報処理システム。
【0119】
・付記10
前記配備手段は、前記事業者の外部所有アカウントのアドレスのみが関数の実行を可能とするアクセス制限を行う前記操作コントラクトを前記ブロックチェーンネットワークに配備する
付記9に記載の情報処理システム。
【0120】
・付記11
前記配備手段は、前記操作コントラクトとして複数の操作コントラクトを前記ブロックチェーンネットワークに配備し、且つ、前記アクセス制限を行うためのプログラムであって前記複数の操作コントラクトに共通で用いる権限コントラクトを前記ブロックチェーンネットワークにさらに配備する
付記10に記載の情報処理システム。
【0121】
・付記12
前記配備手段は、前記コントラクトウォレットのアドレスのみが関数の実行を可能とするアクセス制限を行う前記トークンコントラクトを前記ブロックチェーンネットワークに配備する
付記9乃至11のいずれかに記載の情報処理システム。
【0122】
・付記13
前記配備手段は、複数人の署名が得られたことを条件として、前記操作コントラクトに新たな機能を追加する又は前記操作コントラクトを新たに配備する
付記9乃至12のいずれかに記載の情報処理システム。
【0123】
・付記14
ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムで実行する情報処理方法であって、
前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備するステップと、
前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行うステップと、
前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うステップと、を有する
情報処理方法。
【0124】
・付記15
ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システムに、
前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備するステップと、
前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行うステップと、
前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うステップと、を実行させる
プログラム。
【符号の説明】
【0125】
5 :ネットワーク
10 :コンピュータ
11 :処理部
12 :記憶部
13 :通信部
14 :入力部
15 :出力部
100 :情報処理システム
102 :クラウド秘密鍵記憶部
110 :スマートコントラクト配備部
120 :利用者認証部
130 :トランザクションリクエスト部
140 :ウォレットアドレス決定部
150 :秘密鍵管理部
200 :端末装置
300 :ブロックチェーンネットワーク
310 :操作コントラクト
320 :コントラクトウォレット
330 :トークンコントラクト
340 :権限コントラクト
350 :権限コントラクト
400 :KMSシステム
【要約】
【課題】セキュリティを担保しつつコントラクトウォレットを用いて利用者の利便性を向上させること。
【解決手段】ブロックチェーンネットワークで管理されるトークンを用いたサービスを提供するための情報処理システム(100)は、前記トークンの所有及び操作に特化したプログラムであって利用者ごとに異なるコントラクトウォレットを前記ブロックチェーンネットワークに配備する配備手段(110)と、前記利用者の外部所有アカウントとは異なる利用者情報を用いて、前記サービスの利用についての前記利用者の認証を行う認証手段(120)と、前記利用者と対応付けられた前記コントラクトウォレットに対して、前記サービスを提供する事業者の外部所有アカウントを用いて、当該コントラクトウォレットを所有者とする前記トークンに関するトランザクションリクエストを行うリクエスト手段(130)と、を備える。
【選択図】図9
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12