(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-28
(45)【発行日】2023-09-05
(54)【発明の名称】DAppで要求する高いトランザクション処理量をブロックチェーンで効率的に処理するための方法およびシステム
(51)【国際特許分類】
G06Q 20/06 20120101AFI20230829BHJP
【FI】
G06Q20/06
(21)【出願番号】P 2021523193
(86)(22)【出願日】2018-11-05
(86)【国際出願番号】 KR2018013315
(87)【国際公開番号】W WO2020096072
(87)【国際公開日】2020-05-14
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,ホジン
(72)【発明者】
【氏名】イ,ジホン
(72)【発明者】
【氏名】イ,ヘジン
(72)【発明者】
【氏名】ソ,ホンソプ
(72)【発明者】
【氏名】キム,ジェソク
(72)【発明者】
【氏名】ジャン,ウンホ
(72)【発明者】
【氏名】イ,ホンキュ
【審査官】山崎 雄司
(56)【参考文献】
【文献】中国特許出願公開第108376106(CN,A)
【文献】国際公開第2018/177245(WO,A1)
【文献】国際公開第2008/105099(WO,A1)
【文献】国際公開第2018/126059(WO,A1)
【文献】特開2018-160828(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
分散型アプリケーション(DApp)で要請したトランザクションを受信する段階、
前記トランザクションのためのトランザクション識別子を生成する段階、
前記生成されたトランザクション識別子を含む応答を前記DAppに送信する段階、および
前記生成されたトランザクション識別子が付与されたトランザクションがキューサーバに含まれるキューに格納された後、コンシューマサーバによってブロックチェーンに順に記録されるように、前記生成されたトランザクション識別子が付与された前記トランザクションを前記キューサーバに送信する段階
を含み、
前記DAppに送信された応答が含む前記トランザクション識別子により、前記DAppが要請した前記トランザクションに対してブロックに最終コミットがなされたかが前記DAppによって照会される、トランザクション処理方法。
【請求項2】
前記トランザクションのためのトランザクション識別子を生成する段階は、
前記トランザクションに対するハッシュ値をトランザクション識別子として生成することを特徴とする、
請求項1に記載のトランザクション処理方法。
【請求項3】
ユーザのユーザ識別子および前記ユーザの秘密鍵を記録する段階、および
前記生成されたトランザクション識別子を前記ユーザの秘密鍵によって署名する段階
をさらに含み、
前記生成されたトランザクション識別子が付与された前記トランザクションを前記キューサーバに送信する段階は、
前記ユーザの秘密鍵によって前記署名されたトランザクション識別子を前記トランザクションとともに前記キューサーバに送信すること
を特徴とする、請求項1に記載のトランザクション処理方法。
【請求項4】
前記キューサーバは、受信した前記トランザクションをキューに順に格納するように実現され、
前記コンシューマサーバは、前記キューに格納された前記トランザクションが前記ブロックチェーンに順に記録されるように、前記ブロックチェーンネットワークの第1ノードのうちの1つに前記トランザクションを送信するように実現されること
を特徴とする、請求項1に記載のトランザクション処理方法。
【請求項5】
前記ブロックチェーンネットワークの第1ノードそれぞれは、前記第1ノードの間での合意により、前記コンシューマサーバから受信される前記トランザクションに対するブロックを生成して前記ブロックチェーンに追加するように実現されること
を特徴とする、請求項4に記載のトランザクション処理方法。
【請求項6】
コンピュータ装置と結合して請求項1~5のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録される、コンピュータプログラム。
【請求項7】
請求項1~5のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体。
【請求項8】
コンピュータ装置であって、
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサにより、
分散型アプリケーション(DApp)で要請したトランザクションを受信し、
前記トランザクションのためのトランザクション識別子を生成し、
前記生成されたトランザクション識別子を含む応答を前記DAppに送信し、
前記生成されたトランザクション識別子が付与された
トランザクションを
キューサーバに送信し、
前記キューサーバに前記トランザクションをキューに格納させた後、コンシューマサーバに前記トランザクションをブロックチェーンに順に記録させ、
前記DAppに送信された応答が含む前記トランザクション識別子により、前記DAppが要請した前記トランザクションに対してブロックに最終コミットがなされたかが前記DAppによって照会されることを特徴とする、コンピュータ装置。
【請求項9】
前記少なくとも1つのプロセッサにより、
前記トランザクションに対するハッシュ値をトランザクション識別子として生成すること
を特徴とする、請求項8に記載のコンピュータ装置。
【請求項10】
前記少なくとも1つのプロセッサにより、
ユーザのユーザ識別子および前記ユーザの秘密鍵を記録し、
前記生成されたトランザクション識別子を前記ユーザの秘密鍵によって署名し、
前記ユーザの秘密鍵によって前記署名されたトランザクション識別子を前記トランザクションとともに前記キューサーバに送信すること
を特徴とする、請求項8に記載のコンピュータ装置。
【請求項11】
前記キューサーバは、受信した前記トランザクションをキューに順に格納するように実現され、
前記コンシューマサーバは、前記キューに格納された前記トランザクションが前記ブロックチェーンに順に記録されるように、前記ブロックチェーンネットワークの第1ノードのうちの1つに前記トランザクションを送信するように実現されること
を特徴とする、請求項8に記載のコンピュータ装置。
【請求項12】
前記ブロックチェーンネットワークの第1ノードそれぞれは、前記第1ノードの間での合意により、前記コンシューマサーバから受信される前記トランザクションに対するブロックを生成して前記ブロックチェーンに追加するように実現されること
を特徴とする、請求項11に記載のコンピュータ装置。
【請求項13】
分散型アプリケーション(DApp)で要請したトランザクションを受信して前記トランザクションのためのトランザクション識別子を生成し、前記生成されたトランザクション識別子を含む応答を前記DAppに送信し、前記生成されたトランザクション識別子が付与されたトランザクションを送信する受信サーバ、
前記生成されたトランザクション識別子が付与された前記トランザクションを受信してキューに格納するキューサーバ、および
前記キューサーバの前記キューに格納された前記トランザクションをブロックチェーンに順に記録するコンシューマサーバ
を含み、
前記DAppに送信された応答が含む前記トランザクション識別子により、前記DAppが要請した前記トランザクションに対してブロックに最終コミットがなされたかが前記DAppによって照会される、トランザクション処理システム。
【請求項14】
前記コンシューマサーバは、前記キューサーバの前記キューに格納された前記トランザクションが前記ブロックチェーンに順に記録されるように、ブロックチェーンネットワークの第1ノードのうちの1つに前記トランザクションを送信し、
前記ブロックチェーンネットワークの第1ノードそれぞれは、前記第1ノードの間での合意により、前記コンシューマサーバから受信される前記トランザクションに対するブロックを生成して前記ブロックチェーンに追加するように実現されること
を特徴とする、請求項13に記載のトランザクション処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、分散型アプリケーション(Decentralized Application、以下「DApp」とする)で要求する高いトランザクション処理量をブロックチェーンで効率的に処理するためのトランザクション処理方法およびシステムに関する。
【背景技術】
【0002】
ブロックチェーン(block-chain)とは、電子台帳(electronic ledger)であって、トランザクションのためのブロックで構成されたコンピュータベースの分散型、P2P(peer-to-peer)のシステムで実現される。各トランザクション(Transaction:Tx)は、ブロックチェーンシステム内の参加者にデジタル資産の制御送信をエンコードするデータ構造を有し、少なくとも1つの入力と少なくとも1つの出力を含む。各ブロックは1つ前のブロックのハッシュを含み、該当のブロックがともに連結することにより、初めからブロックチェーンに記録されたすべてのトランザクションの永久的な、変更することのできない(unalterable)記録を生成する。例えば、特許文献1では、ブロックチェーンに基づくユーザ定義の貨幣取引システムおよびその動作方法を開示している。
【0003】
ここで、DAppは、バックエンドコードが分散化されたP2Pネットワーク上で回り(あるいは、データの呼び出しや登録をブロックチェーンデータベースにし)、これをフロントエンドでインタフェースとして提供するアプリケーションを意味する。このとき、ブロックチェーンにおけるトランザクションの書き込み(write)は、ブロックチェーンネットワーク上のノードの間での合意によってブロックを生成してチェーンに連結する過程が要求されるため極めて遅く、ブロックチェーン自体もスケールアウト(scale out)できない。例えば、ブロックチェーンネットワークでブロックを生成するためのノードを追加したとしても、ブロックを生成するための合意費用が増加するだけで、トランザクションに対するブロックの生成速度は増加しない。したがって、DAppが要求する高いトランザクション量をブロックチェーンで処理しきれないという問題を抱えている。
【先行技術文献】
【特許文献】
【0004】
【文献】韓国特許出願公開第10-2018-0113143号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
DAppで要求する高いトランザクション処理量をブロックチェーンで効率的に処理するためのトランザクション処理方法およびシステムを提供する。
【0006】
DAppで要請したトランザクションに受信サーバで固有のトランザクション識別子を付与してキュー(queue)サーバに送信してキューイングし、別のコンシューマサーバでキューイングされたトランザクションをブロックチェーンに順に記録することにより、スケールアウト(scale out)が不可能なブロックチェーンに対しても、DAppが要求する高いトランザクション量を処理することができる、トランザクション処理方法およびシステムを提供する。
【0007】
トランザクション識別子をDAppにリターンすることにより、後に、該当のトランザクションに対してブロックチェーンでブロックに最終コミット(commit)がなされたかをDAppで照会できるようにする、トランザクション処理方法およびシステムを提供する。
【課題を解決するための手段】
【0008】
DAppで要請したトランザクションを受信する段階、前記トランザクションのためのトランザクション識別子を生成する段階、前記生成されたトランザクション識別子を含む応答を前記DAppに送信する段階、および前記生成されたトランザクション識別子が付与されたトランザクションがキュー(queue)サーバに含まれるキューに格納された後、コンシューマ(consumer)サーバによってブロックチェーンに順に記録されるように、前記生成されたトランザクション識別子が付与されたトランザクションを前記キューサーバに送信する段階を含む、トランザクション処理方法を提供する。
【0009】
コンピュータ装置と結合してトランザクション処理方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録される、コンピュータプログラムを提供する。
【0010】
トランザクション処理方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体を提供する。
【0011】
コンピュータ装置であって、コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、DAppで要請したトランザクションを受信し、前記トランザクションのためのトランザクション識別子を生成し、前記生成されたトランザクション識別子を含む応答を前記DAppに送信し、前記生成されたトランザクション識別子が付与されたトランザクションがキュー(queue)サーバに含まれるキューに格納された後、コンシューマ(consumer)サーバによってブロックチェーンに順に記録されるように、前記生成されたトランザクション識別子が付与されたトランザクションを前記キューサーバに送信することを特徴とする、コンピュータ装置を提供する。
【0012】
DAppで要請したトランザクションを受信して前記トランザクションのためのトランザクション識別子を生成し、前記生成されたトランザクション識別子を含む応答を前記DAppに送信し、前記生成されたトランザクション識別子が付与されたトランザクションを送信する受信サーバ、前記生成されたトランザクション識別子が付与されたトランザクションを受信してキューに格納するキュー(queue)サーバ、および前記キューサーバのキューに格納されたトランザクションをブロックチェーンに順に記録するコンシューマ(consumer)サーバを含む、トランザクション処理システムを提供する。
【発明の効果】
【0013】
DAppで要求する高いトランザクション処理量をブロックチェーンで効率的に処理することができる。
【0014】
DAppで要請したトランザクションに受信サーバで固有のトランザクション識別子を付与してキュー(queue)サーバに送信してキューイングし、キューイングされたトランザクションを別のコンシューマ(consumer)サーバでブロックチェーンに順に記録することにより、スケールアウト(scale out)が不可能なブロックチェーンに対しても、DAppが要求する高いトランザクション量を処理することができる。
【0015】
トランザクション識別子をDAppにリターンすることにより、後に、該当のトランザクションに対してブロックチェーンでブロックに最終コミット(commit)がなされたかをDAppで照会することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。
【
図3】本発明の一実施形態における、トランザクション処理システムの概略的な例を示した図である。
【
図4】本発明の一実施形態における、トランザクション処理方法の例を示したフローチャートである。
【発明を実施するための形態】
【0017】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0018】
本発明の実施形態に係るトランザクション処理システムは、以下で説明する少なくとも1つのコンピュータ装置によって実現されてよい。コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の一実施形態に係るトランザクション処理方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してトランザクション処理方法をコンピュータ装置に実行させるために、コンピュータ読み取り可能な記録媒体に記録されてよい。
【0019】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。また、
図1のネットワーク環境は、本実施形態に適用可能な環境のうちの一例を説明したものに過ぎず、本実施形態に適用可能な環境が
図1のネットワーク環境に限定されることはない。
【0020】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、
図1では、電子機器1(110)の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器1(110)は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
【0021】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0022】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、ビデオ通話サービス、金融サービス、決済サービス、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービス、コンテンツ提供サービス、質疑応答サービスなど)を提供するシステムであってよい。
【0023】
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、
図2に示したコンピュータ装置200によって実現されてよく、本発明の実施形態に係る方法は、このようなコンピュータ装置200によって実現されてよい。
【0024】
このとき、
図2に示すように、コンピュータ装置200は、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、ディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
【0025】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0026】
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の電子機器(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0027】
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、カメラ、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
【0028】
また、他の実施形態において、コンピュータ装置200は、
図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術の構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、データベースなどのような他の構成要素をさらに含んでもよい。
【0029】
図3は、本発明の一実施形態における、トランザクション処理システムの概略的な例を示した図である。
図3は、DApp310、受信サーバ320、ノード330、キュー(queue)サーバ340、およびコンシューマ(consumer)サーバ350を示している。このとき、受信サーバ320、ノード330、キューサーバ340、およびコンシューマサーバ350はそれぞれ、上述したコンピュータ装置200によって実現されてよい。実施形態によって、受信サーバ320、ノード330、キューサーバ340、およびコンシューマサーバ350のうちの少なくとも2つ以上が1つのコンピュータ装置200に含まれるように実現されてもよい。
【0030】
DApp310は、分散型アプリケーションであって、一例として、ブロックチェーンをベースとしたプラットフォームでスマートコントラクト(smart contract)によって作動するアプリケーションサービスであってよい。このようなDApp310は、ブロックチェーン上にデータを登録(または、記録)して呼び出すことができる。例えば、DApp310は、トランザクション(transaction:Tx)を受信サーバ320に伝達し、ブロックチェーン上にトランザクションデータを登録してよい。
【0031】
受信サーバ320は、DApp310からトランザクションを受信してブロックチェーンに登録しようとする。このとき、DApp310は、処理しなければならない、一定の期間内のまたは一定の量のデータ(トランザクション)を整理して一度に処理する。言い換えれば、受信サーバ320は、DApp310から一定の期間内または一定の量のトランザクションを一度に受信して処理しなければならない状況が発生するのである。しかし、ブロックチェーンの一定の期間(一例として、分または秒)の処理量には制限があり、このような処理量を増やすためのスケールアウト(scale out)は不可能であるという特徴があるため、受信サーバ320でブロックチェーンの処理量を超えるトランザクションを一度に登録しようとする場合には、ブロックチェーンの処理量を超えた瞬間からすべてのトランザクション登録が失敗となるという問題がある。
【0032】
このような問題を解決するために、受信サーバ320がトランザクションをブロックチェーンのノード350に直接送信する代わりに、キューサーバ340に送信することが考えられる。このために、受信サーバ320は、DApp310で要請されたトランザクションそれぞれのためのトランザクション識別子(TxID)を生成してよい。例えば、受信サーバ310は、トランザクションに対するハッシュ値を、該当のトランザクションのためのトランザクション識別子として生成してよい。このとき、受信サーバ320は、トランザクション識別子を含む応答をDApp310に送信してDApp310の要請に応答してよく、トランザクション識別子が付与されたトランザクションをキューサーバ340に送信してよい。
【0033】
このとき、受信サーバ320は、トランザクション識別子を該当のトランザクションのユーザの秘密鍵(private key)によって署名し、秘密鍵によって署名されたトランザクション識別子(sign(TxID))を生成してよく、このような署名されたトランザクション識別子が付与されたトランザクションをキューサーバ340に送信してもよい。例えば、受信サーバ320は、少なくとも1つのユーザのための電子財布を含んでよい。このような電子財布は、ユーザのDApp310のユーザ識別子、ユーザの秘密鍵、およびブロックチェーンのためのパブリックアドレスなどの情報を含んでよい。このとき、受信サーバ320は、特定のユーザのトランザクション識別子を該当のユーザの秘密鍵を利用して署名してよい。
【0034】
キューサーバ340は、受信サーバ320から送信されたトランザクションをキュー341に格納してよい。このとき、コンシューマサーバ350は、キューサーバ340のキュー341に格納されたトランザクション(それぞれ固有のトランザクション識別子(または、署名されたトランザクション識別子)が付与されたトランザクション)をブロックチェーンに順に記録するために、トランザクションをブロックチェーンのノード350に送信してよい。このように、DApp310が一度に伝達する一定の期間内または一定の量のトランザクションはキューサーバ340のキュー341に格納され、コンシューマサーバ350を経てブロックチェーンに順に登録されるようになるため、本実施形態に係るトランザクション処理システムは、DApp310が要求する高いトランザクション処理量をブロックチェーンで効率的に処理できるように手助けすることが可能となる。
【0035】
ノード350は、ブロックチェーンネットワークに参加するノードのうちの1つであってよい。このとき、ノード350にトランザクションが受信される場合、ノード350は、ノードの間での合意により、受信したトランザクションに対するブロックを生成してブロックチェーンに追加するように実現されてよい。例えば、ブロックチェーンネットワークにおいて、合意のためのノードのうちの全部(または、予め設定された割合以上のノード)で合意が成立した場合、ノード350は、トランザクションのためのブロックを生成し、合意のためのノードにもブロックの生成を指示してよい。この場合、それぞれのノードではブロックが生成され、該当のノードが格納しているブロックチェーンに追加されてよい。合意のためのノードは、ブロックチェーンネットワークのすべてのノードであってもよいが、実施形態によっては、ブロックチェーンネットワークのすべてのノードのうちから選定された一部のノードであってもよい。
【0036】
図4は、本発明の一実施形態における、トランザクション処理方法の例を示したフローチャートである。本実施形態に係るトランザクション処理方法は、上述したコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が
図4の方法に含まれる段階410~440を実行するようにコンピュータ装置200を制御してよい。
【0037】
段階410で、コンピュータ装置200は、DAppで要請したトランザクションを受信してよい。上述したように、DAppは、処理しなければならないデータ(トランザクション)を、一定の期間内または一定の量を一度に整理して送信することがあり、コンピュータ装置200は、DAppから一定の期間内または一定の量のトランザクションを一度に受信することがある。このとき、ブロックチェーンの一定の期間内の処理量には制限があり、スケールアウトも不可能であることから、コンピュータ装置200は、DAppが要求する高いトランザクション処理量をブロックチェーンで効率的に処理できるようにするために、以下の段階420~440を実行してよい。
【0038】
段階420で、コンピュータ装置200は、トランザクションのためのトランザクション識別子を生成してよい。このとき、コンピュータ装置200は、トランザクションに対するハッシュ値をトランザクション識別子として生成してよい。例えば、トランザクションの内容は、予め設定されたハッシュ関数の入力パラメータであってよく、ハッシュ関数の出力値であるハッシュ値がトランザクション識別子として利用されてよい。
【0039】
段階430で、コンピュータ装置200は、生成されたトランザクション識別子を含む応答をDAppに送信してよい。このとき、DAppに送信された応答が含むトランザクション識別子は、後に、DAppが要請したトランザクションに対してブロックに最終コミット(commit)がなされたかをブロックチェーンで照会するために利用されてよい。
【0040】
段階440で、コンピュータ装置200は、生成されたトランザクション識別子が付与されたトランザクションがキューサーバに含まれるキューに格納された後、コンシューマサーバによってブロックチェーンに順に記録されるように、生成されたトランザクション識別子が付与されたトランザクションをキューサーバに送信してよい。実施形態によっては、コンピュータ装置200は、ユーザのユーザ識別子およびユーザの秘密鍵を予め記録しておき、生成されたトランザクション識別子をユーザの秘密鍵によって署名し、署名されたトランザクション識別子を生成してもよい。この場合、コンピュータ装置200は、段階440で、ユーザの秘密鍵によって署名されたトランザクション識別子をトランザクションとともにキューサーバに送信してよい。
【0041】
このとき、キューサーバは、受信するトランザクションをキューに順に格納するように実現されてよく、コンシューマサーバは、キューに格納されたトランザクションがブロックチェーンに順に記録されるように、ブロックチェーンネットワークの第1ノードのうちの1つにトランザクションを送信するように実現されてよい。このとき、ブロックチェーンネットワークの第1ノードそれぞれは、第1ノードの間での合意により、コンシューマサーバから受信したトランザクションに対するブロックを生成してブロックチェーンに追加するように実現されてよい。このように、DAppが要求する高いトランザクション処理量をブロックチェーンに直接要請するのではなく、キューサーバが含むキューにトランザクションを格納した後、コンシューマサーバを経て順に処理されるようにすることにより、ブロックチェーンがトランザクションを効率的に処理できるように手助けすることが可能となる。
【0042】
以上のように、本発明の実施形態によると、DAppで要求する高いトランザクション処理量をブロックチェーンで効率的に処理することができる。DAppで要請したトランザクションに受信サーバで固有のトランザクション識別子を付与してキュー(queue)サーバに送信してキューイングし、キューイングされたトランザクションを別のコンシューマ(consumer)サーバでブロックチェーンに順に記録することにより、スケールアウト(scale out)が不可能なブロックチェーンに対しても、DAppが要求する高いトランザクション量を処理することができる。トランザクション識別子をDAppにリターンすることにより、後に、該当のトランザクションに対してブロックチェーンでブロックに最終コミット(commit)がなされたかをDAppで照会することができる。
【0043】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0044】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0045】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。このような記録媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されてはならず、ネットワーク上で分散して存在するものであってもよい。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0046】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0047】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。