JP2021174261A - 実行判定プログラム、実行判定方法および情報処理装置 - Google Patents

実行判定プログラム、実行判定方法および情報処理装置 Download PDF

Info

Publication number
JP2021174261A
JP2021174261A JP2020077845A JP2020077845A JP2021174261A JP 2021174261 A JP2021174261 A JP 2021174261A JP 2020077845 A JP2020077845 A JP 2020077845A JP 2020077845 A JP2020077845 A JP 2020077845A JP 2021174261 A JP2021174261 A JP 2021174261A
Authority
JP
Japan
Prior art keywords
transaction
user
information
unit
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2020077845A
Other languages
English (en)
Inventor
一寛 山下
Kazuhiro Yamashita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020077845A priority Critical patent/JP2021174261A/ja
Publication of JP2021174261A publication Critical patent/JP2021174261A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】ユーザの利便性を向上させることを課題とする。【解決手段】クライアント端末は、複数のトランザクションを含むブロックを連結させたブロックチェーンを用いて、複数のトランザクションそれぞれを実行するシステムから、システムで実行された最新のブロックに関する最新ブロック情報を取得する。クライアント端末は、入力された入力情報に基づき、トランザクションを生成し、最新ブロック情報に基づき、トランザクションの実行結果を判定する。【選択図】図11

Description

本発明は、実行判定プログラム、実行判定方法および情報処理装置に関する。
近年、様々な分野でブロックチェーンを用いたサービスが利用されている。ブロックチェーンは、取引情報などの複数のトランザクションの塊(ブロック)を時系列に繋げたものであり、このブロックチェーンを各ユーザが相互に正当性を確認することで、信頼性を担保している。
ブロックチェーンのプラットフォームの1つに、Orderer、Node、クライアントアプリケーションなどを有するHyperledger Fabric(HLF)が知られている。HLFは、ブロックチェーンの最新の状態をKey−Value Store(KVS)形式でブロックチェーンとは別に保持しており、新しいトランザクションを作るときに、この最新の状態と矛盾しないかの確認が実行される。例えば、クライアントアプリケーションは、トランザクションを発行するアプリケーションである。Nodeは、トランザクションの履歴などを含む台帳を管理するPeerと、トランザクションを検証して正当であることを承認するEndorsing Peerとを含む。Ordererは、承認を受けたトランザクションを受け取り、ソートしてブロックを生成する。
例えば、入札者(買い手)は相互に提示価格を知ることができ、最終的に最も高い価格を提示した買い手に販売されるイングリッシュオークションを例にして説明する。入札者のクライアントアプリケーションは、商品への入札を行うトランザクションを生成して、各Endorsing Peerに送信する。各Endorsing Peerは、受信したトランザクションの正当性を判定する。入札者のクライアントアプリケーションは、各Endorsing Peerの判定結果により正当性が承認された場合に、トランザクションをOrdererに送信する。
Ordererは、一定時間内に各クライアントアプリケーションから受信された複数のトランザクションを用いて1つのブロックを生成し、生成されたブロックを各Endorsing PeerとPeerに送信する。各Endorsing PeerとPeerは、ブロックを受信し、ブロック内のトランザクションを用いて、自装置で管理するデータベースの更新を実行する。
特開2018−36893号公報 特表2018−531431号公報
しかしながら、上記技術では、トランザクションを発行したユーザが、トランザクションの結果を上記一連の処理が完了するまで知ることができないので、ユーザの利便性が良くない。
例えば、上記イングリッシュオークションの例で説明すると、入札者は、入札が最高値を更新するか更新できないかに関わらず、各Peerによるデータベース更新が実行されるまで、入札の結果を知ることができない。このような状況は、各種オークションや証券取引などのように時間が限られているシステムを利用する、なるべく早く最新の状況を把握したいユーザにとって、好ましい状況とは言い難い。
一つの側面では、ユーザの利便性を向上させることができる実行判定プログラム、実行判定方法および情報処理装置を提供することを目的とする。
第1の案では、実行判定プログラムは、コンピュータに、複数のトランザクションを含むブロックを連結させたブロックチェーンを用いて、前記複数のトランザクションそれぞれを実行するシステムから、前記システムで実行された最新のブロックに関する最新ブロック情報を取得する処理を実行させる。実行判定プログラムは、コンピュータに、入力された入力情報に基づき、トランザクションを生成し、前記最新ブロック情報に基づき、前記トランザクションの実行結果を判定する処理を実行させる。
一実施形態によれば、ユーザの利便性を向上させることができる。
図1は、実施例1にかかるシステムの全体構成例を説明する図である。 図2は、BCネットワークを説明する図である。 図3は、BCネットワークを用いたトランザクションのフローを説明する図である。 図4は、トランザクションの衝突を説明する図である。 図5は、実施例1にかかる各装置の機能構成を示す機能ブロック図である。 図6は、キー情報DBに記憶される情報の例を示す図である。 図7は、最新ブロックDBに記憶される情報の例を示す図である。 図8は、キー履歴DBに記憶される情報の例を示す図である。 図9は、商品リストDBに記憶される情報の例を示す図である。 図10は、最新ブロック情報の取得例を説明する図である。 図11は、最新ブロック情報によるユーザ通知例を説明する図である。 図12は、ユーザ処理の流れを示すフローチャートである。 図13は、クライアント端末が実行する処理の流れを示すフローチャートである。 図14は、BCネットワークで実行される処理の流れを示すフローチャートである。 図15は、ハードウェア構成例を説明する図である。
以下に、本願の開示する実行判定プログラム、実行判定方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
図1は、実施例1にかかるシステムの全体構成例を説明する図である。図1に示すように、このシステムは、複数のクライアント端末10とBC(Block Chain)ネットワーク1とを有するシステムである。実施例1では、オークションを例にして具体例を説明するが、適用システムを限定するものではなく、証券取引など他の取引や分野に適用することができる。
複数のクライアント端末10は、クライアントアプリケーションを実行し、取引データであるトランザクション(以下では、「tx」と記載する場合がある)を生成して、BCネットワーク1に送信する。例えば、クライアント端末10は、オークションに出品されている商品Aに対する入札情報をユーザから受け付けて、入札情報に関するトランザクションを生成してBCネットワーク1に送信する。
BCネットワーク1は、ネットワーク内で同期された台帳を分散管理し、ブロックチェーンのプラットフォームを適用したシステムの一例であり、Endorsing Peer50、Orderer70、Peer90などの装置を有する。Endorsing Peer50は、クライアント端末10から受信したトランザクションの正当性を判定する装置である。Orderer70は、一定時間内に各クライアント端末10から受信された複数のトランザクションを用いて1つのブロックを生成し、生成されたブロックを各Endorsing Peer50とPeer90に送信する装置である。Peer90は、BCネットワーク1内の台帳を管理する装置である。
次に、BCネットワーク1について説明する。図2は、BCネットワーク1を説明する図である。BCネットワーク1では、クライアント端末10で実行されるクライアントアプリケーションからトランザクションが入力され、プラットフォームでトランザクションの承認等が実行された後、ブロックチェーンとして処理される。
ブロックチェーンは、複数のトランザクションを含むブロックが連なるように保存された状態である。例えば、ユーザAは、送信するデータをもとにハッシュ値を算出し、秘密鍵によって暗号化したものを、データや公開鍵とともにユーザBへ送信する。ユーザBは、ユーザAの公開鍵を用いて暗号化されたハッシュ値を復号し、受信したデータをもとに自ら算出したハッシュ値と比較し、ユーザAから送られたハッシュ値と、ユーザBが算出したハッシュ値が一致すれば、受信したデータが正しいと判断する。このようにして、BCネットワーク1は、改ざん耐性に優れたデータ構造により、ユーザの取引を実行する。
ここで、一般的なBCネットワーク1内の処理フローについて説明する。図3は、BCネットワーク1を用いたトランザクションのフローを説明する図である。図3に示すように、クライアント端末10は、ユーザの入力に応じてトランザクションを生成し(S101)、各Endorsing Peer50に送信する(S102からS104)。各Endorsing Peer50は、受信したトランザクションの検証を実行して正当性を判定し、判定結果をクライアント端末10に送信する(S105からS110)。
そして、クライアント端末10は、各Endorsing Peer50による検証を受信し、例えば閾値以上の承認が受信できたなどの条件を満たす場合、トランザクションをOrderer70に送信する(S111とS112)。
Orderer70は、所定数のトランザクションが集まると、ブロックを生成する(S113)。そして、Orderer70は、生成したブロックを各Endorsing Peer50とPeer90にブロードキャストで送信する(S115からS118)。そして、各Endorsing Peer50は、受信したブロックによりDBを更新し(S119からS122)、Peer90は、受信したブロックにより台帳を更新する(S122)。
その後、Orderer70は、トランザクションの結果をクライアント端末10に応答し(S123とS124)、クライアント端末10は、トランザクションの結果をディスプレイ等に表示してユーザに通知する(S125)。
このように、通常、ユーザは、トランザクションの生成のための取引情報の入力を行ってから上記処理が完了するまで、その取引の結果を取得することができない。例えば、Orderer70におけるブロック生成までに時間を要する場合など、ユーザが取引の結果を取得するまでに時間がかかることがあり、早く次の取引等を行いたいユーザにとっては利便性が悪い。
さらに、トランザクションが送信されたタイミングによっては、トランザクション間の衝突が発生して、処理遅延を招くこともある。例えば、BCネットワーク1では、トランザクションの実行時に不整合がないか否かのチェックが実行される。その際、「Read−write set」と呼ばれるデータが生成される。「Read set」は、ユニークなキーのリストとその時点でのキーのバージョンを含み、「Write set」は、ユニークなキーのリストと更新後の新しい値を含む。Committerは、「read set」のキーのバージョンと現状の「World State」に含まれるキーのバージョンが等しければ正当なトランザクションとみなす。したがって、トランザクションがreadのみの場合、チェックは行われず衝突は起きない。
図4は、トランザクションの衝突を説明する図である。図4では、キーとバリュー(値)とバージョンを管理する初期状態のWorld state「(k1,1,v1)、(k2,1,v2)、(k3,1,v3)、(k4,1,v4)、(k5,1,v5)」に対して、トランザクションを順に処理することを考える。トランザクションの順番は以下の通りとする。なお、World stateは、キーと値とバージョンで構成される、トランザクションを管理するKVS形式のDBであり、例えば台帳などである。
トランザクションT1:Write(k1,v1´)、Write(k2,v2´)
トランザクションT2:Read(k1)、Write(k3,v3´)
トランザクションT3:Write(k2,v2´´)
トランザクションT4:Write(k2,v2´´´)、Read(k2)
トランザクションT5:Write(k6,v6´)、Read(k5)
このとき、T1、T3、T5の検証は成功するが、T2とT4はキーがT1、T3それぞれと衝突しているために不正とみなされる。具体的には、T2は、初期状態のキーk1に対応するデータを読み出したいのに、その前のT1により該当データが更新されてしまい、意図したデータの読み出しができない。同様に、T4も、読み出す前に、その前のT3により該当データが更新されてしまい、意図したデータの読み出しができない。
このように、ユーザは、トランザクションの衝突が発生しても、その結果を迅速に取得することができない。このような状態は、トランザクションの結果をなるべく早く知り、次の行動に移りたいという要求が存在するシステムやアプリケーションを利用するユーザにとっては、好ましい状況とは言い難い。
そこで、実施例1にかかるシステムでは、クライアント端末10が、最新のブロックに関する最新ブロック情報をBCネットワーク1から取得して保持しておく。そして、クライアント端末10は、ユーザの入力に応じた新たなトランザクションを生成してBCネットワーク1に送信する一方で、BCネットワーク1からの結果を待たずに、最新ブロック情報を参照して、トランザクションの結果を判定してユーザに通知する。このようにすることで、BCネットワーク1内の処理を維持しつつ、なるべく早く処理結果をユーザに通知することができるので、ユーザの利便性を向上させることができる。
[機能構成]
次に、図1に示した各装置の機能構成について説明する。図5は、実施例1にかかる各装置の機能構成を示す機能ブロック図である。図5に示すように、クライアント端末10とBCネットワーク1内の各装置とは、ネットワークNを介して接続される。ネットワークNには、有線や無線を問わず、インターネットや専用線などの各種ネットワークを用いることができる。ここでは、クライアント端末10、Endorsing Peer50、Orderer70、Peer90の機能構成について説明する。
(クライアント端末10の構成)
図5に示すように、クライアント端末10は、通信部11、記憶部12、制御部15を有する。通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースにより実現される。例えば、通信部11は、BCネットワークにトランザクションを送信し、BCネットワーク1からトランザクションの承認結果やトランザクションの実行結果などを受信する。
記憶部12は、データやプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどにより実現される。この記憶部12は、キー情報DB12aと最新ブロックDB12bを記憶する。
キー情報DB12aは、クライアント端末10を利用するユーザを識別するユニークなキーを記憶するデータベースである。例えば、キー情報DB12aは、自身が使用するユニークなキーやBCネットワーク1で使用される他ユーザのキーを記憶する。
図6は、キー情報DB12aに記憶される情報の例を示す図である。図6に示すように、キー情報DB12aは、{キー、ユーザ名}として{uniq_u1key,ユーザ01}、{uniq_u2key,ユーザ02}などを記憶する。なお、キー情報DB12aは、クライアント端末10が使用するキーがわかるように区別して記憶する。ここで記憶するキーは、新規ユーザの入札時に、BCネットワーク1から各クライアントに通知される。また、各クライアントは他のユーザのキー名を保持する。また、キーは、ユーザごとに設定されるだけでなく、オークションの対象の商品ごとに設定されてもよい。
最新ブロックDB12bは、最新のブロックに関する情報である最新ブロック情報を記憶するデータベースである。具体的には、最新ブロックDB12bは、BCネットワーク1から、ブロックが処理されるごとに通知される最新ブロック情報を記憶する。
図7は、最新ブロックDB12bに記憶される情報の例を示す図である。図7に示すように、最新ブロックDB12bは、「トランザクション,{キー,処理内容}」として、「tx02,{uniq_u2key,A,120円}」、「tx05,{uniq_u5key,B,200円}」を記憶する。この例では、最新ブロックがトランザクションtx01、tx03、tx05の順で実行されたことを示す。このうち、tx02は、キーが「uniq_u2key」であるユーザのトランザクションであり、「商品Aに対して120円を入札する」トランザクションである。
制御部15は、クライアント端末10全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部15は、トランザクション処理部16、最新状態管理部17、比較判定部18を有する。なお、トランザクション処理部16、最新状態管理部17、比較判定部18は、プロセッサが有する電子回路として実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
トランザクション処理部16は、ユーザから入札情報を受付けてトランザクションを生成する処理部である。例えば、トランザクション処理部16は、ユーザから入札情報として「商品A,100円」を受け付けると、キー情報DB12aからユーザのキー「uniq_u1key」を取得し、これらを組み合わせたトランザクション「tx01,{uniq_u1key,A,100円}」を生成し、記憶部12等に保持する。
そして、トランザクション処理部16は、生成したトランザクションtx01を、各Endorsing Peer50に送信して、承認を要求する。その後、トランザクション処理部16は、トランザクションtx01が承認された通知を所定数のEndorsing Peer50から受信すると、トランザクションtx01をOrderer70に送信して、トランザクションtx01の処理を要求する。
その後、トランザクション処理部16は、Orderer70もしくは各Endorsing Peer50からトランザクションtx01の実行結果を受信すると、実行結果を記憶部12に格納したり、ディスプレイ等に表示したりする。例えば、トランザクション処理部16は、トランザクションが正常に実行されて最高額の入札者となった場合は、「Accept」などを表示し、最高額の入札者とはならない入札であって場合は、「Denied」などを表示する。
最新状態管理部17は、BCネットワーク1から最新ブロック情報を取得して管理する処理部である。具体的には、最新状態管理部17は、BCネットワーク1で最新のブロックが処理された場合に、BCネットワーク1から送信された最新ブロック情報を受信して、最新ブロックDB12bに格納する。なお、最新状態管理部17は、BCネットワーク1でブロックが処理されるたびに、最新ブロックDB12bの最新ブロック情報を更新する。
比較判定部18は、BCネットワーク1からのトランザクションの実行結果の受信を待たずに、クライアント端末10内で、最新ブロック情報に基づきトランザクションの結果を判定する処理部である。具体的には、比較判定部18は、トランザクション処理部16により生成されたトランザクションから処理内容を取得するとともに、最新ブロックDB12bに記憶される最新ブロック情報から該当する情報を取得する。そして、比較判定部18は、両方を比較した比較結果を、記憶部12に格納したり、ディスプレイ等に表示したりする。
上記例で説明すると、比較判定部18は、トランザクション処理部16により生成されたトランザクション「tx01,{uniq_u1key,A,100円}」から処理内容「A,100円」を取得する。また、比較判定部18は、最新ブロック情報「tx02,{uniq_u2key,A,120円}」、「tx05,{uniq_u5key,B,200円}」から、トランザクションによる処理対象の商品Aに関する{uniq_u2key,A,120円}を取得する。
そして、比較判定部18は、トランザクションにおける商品Aへの入札額「100円」より、最新ブロック情報における「uniq_u2keyによる商品Aへの入札額「120円」」の方が大きい額であることを判定する。この結果、比較判定部18は、今回の入札では最高額を更新することができないと判定し、「Denied」などをディスプレイ等に表示する。
このように、比較判定部18は、BCネットワーク1から最新のトランザクションの実行結果が送信されるのを待たずに、実行結果を判定することができるので、ユーザに最新の状況を通知することができる。
(Endorsing Peer50の構成)
図5に示すように、Endorsing Peer50は、通信部51、記憶部52、制御部55を有する。通信部51は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースにより実現される。例えば、通信部51は、クライアント端末10からトランザクションを受信し、クライアント端末10にトランザクションの承認結果を送信し、Orderer70からブロックを受信する。
記憶部52は、データやプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどにより実現される。この記憶部52は、キー情報DB52a、キー履歴DB52b、商品リストDB52cを記憶し、各DBは、例えばKVS形式で情報を記憶する。
キー情報DB52aは、BCネットワーク1で使用されるユーザのキーに関する情報を記憶するデータベースである。ここで記憶される情報は、図6と同様なので、詳細な説明は省略する。
キー履歴DB52bは、各キーのトランザクションの履歴を記憶するデータベースである。図8は、キー履歴DB52bに記憶される情報の例を示す図である。図8に示すように、キー履歴DB52bは、ユーザのキーである「uniq_u1key」、「uniq_u2key」のそれぞれに関して、トランザクションの履歴を記憶する。
例えば、キー履歴DB52bは、キー「uniq_u1key」に関して「{tx01,A,80円}、{tx02,A,100円}・・・」などを記憶する。この例の場合、キー「uniq_u1key」に該当するユーザが、商品Aに80円の入札を行った後、商品Aに100円の入札を行った履歴を示している。
商品リストDB52cは、入札対象の商品に関する情報を記憶するデータベースであり、例えば台帳の一例である。例えば、商品リストDB52cは、上記World Stateに該当する情報を記憶する。図9は、商品リストDB52cに記憶される情報の例を示す図である。図9に示すように、商品リストDB52cは、「商品:{入札情報(最高値,ユーザ,期限}」として「A:{120円,uniq_u2key,2020/5/1}」や「B:{200円,uniq_u5key,2020/5/1}」などを記憶する。
この例の場合、入札期限が2020/5/1である商品Aに対して、ユーザ「uniq_u2key」の「120円」が現時点の最高額であることを示している。同様に、入札期限が2020/5/1である商品Bに対して、ユーザ「uniq_u5key」の「200円」が現時点の最高額であることを示している。
制御部55は、Endorsing Peer50全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部55は、承認判定部56、実行部57を有する。なお、承認判定部56、実行部57は、プロセッサが有する電子回路として実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
承認判定部56は、クライアント端末10から受信したトランザクションの承認判定を実行する処理部である。例えば、承認判定部56は、クライアント端末10から送られてきたトランザクションをEndorsement Policyを基に検証し、結果に自身の署名をしてクライアント端末10に返信する。
実行部57は、Orderer70から送信されるブロックを受信し、ブロック内のトランザクションを実行する処理部である。具体的には、実行部57は、受信したブロックからトランザクションを順番に読み出して実行し、商品リストDB52cやキー履歴DB52bを更新する。
例えば、実行部57は、ブロック内にトランザクションtx09、tx10、tx13が格納されている場合、tx09、tx10、tx13の順に実行して、商品リストDB52cを更新することで、ユーザによる入札を実行する。また、実行部57は、キー情報DB52aのキーごとに、トランザクションtx09、tx10、tx13の実行結果を取得して、キー履歴DB52bを更新する。なお、実行部57は、各トランザクションの実行結果やブロックの実行結果を、トランザクションの送信元のクライアント端末10やOrderer70に送信することもできる。
(Orderer70の構成)
図5に示すように、Orderer70は、通信部71、記憶部72、制御部75を有する。通信部71は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースにより実現される。例えば、通信部71は、クライアント端末10からトランザクションを受信し、各Endorsing Peer50やPeer90にブロックを送信する。
記憶部72は、データやプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどにより実現される。なお、記憶部72は、Endorsing Peer50と同様の各DBを記憶することもできる。
制御部45は、Orderer70全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部75は、ブロック生成部76、ブロック送信部77、イベント送信部78を有する。なお、ブロック生成部76、ブロック送信部77、イベント送信部78は、プロセッサが有する電子回路として実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
ブロック生成部76は、各クライアント端末10から受信した複数のトランザクションを用いてブロックを生成する処理部である。例えば、ブロック生成部76は、一定数のトランザクションを受信すると、各トランザクションのタイムスタンプにより実行順を確定する。そして、ブロック生成部76は、各トランザクションを実行順で並べたブロックを生成し、当該ブロックに署名などを行って、ブロック送信部77に出力する。例えば、ブロック生成部76は、トランザクション「tx02,{uniq_u2key,A,120円}」、トランザクション「tx05,{uniq_u5key,B,200円}」を含むブロックを生成する。
ブロック送信部77は、ブロック生成部76により生成されたブロックを送信する処理部である。例えば、ブロック送信部77は、各Endorsing Peer50およびPeer90にブロードキャストで、ブロックを送信する。なお、ブロック送信部77は、各Endorsing Peer50から、ブロックの実行結果や各トランザクションの実行結果を受信した場合、トランザクションの送信元のクライアント端末10に各実行結果を送信することもできる。
イベント送信部78は、ブロック生成部76により生成されたブロックに関する情報をクライアント端末10に送信する処理部である。つまり、イベント送信部78は、新たなブロックが生成されるたびに、イベントを発行して、最新ブロック情報を各クライアント端末10に送信する。例えば、イベント送信部78は、生成されたブロックに含まれる「トランザクション「tx02,{uniq_u2key,A,120円}」、トランザクション「tx05,{uniq_u5key,B,200円}」」を含む最新ブロック情報を各クライアント端末10に送信する。
(Peer90の構成)
図5に示すように、Peer90は、通信部91、記憶部92、制御部95を有する。通信部91は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースにより実現される。例えば、通信部91は、Orderer70からブロックを受信する。
記憶部92は、データやプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどにより実現される。この記憶部92は、キー情報DB92a、キー履歴DB92b、商品リストDB92cを記憶する。なお、キー情報DB92a、キー履歴DB92b、商品リストDB92cは、Endorsing Peer50のキー情報DB52a、キー履歴DB52b、商品リストDB52cと同様の情報を記憶するので、詳細な説明は省略する。
制御部95は、Peer90全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部95は、台帳管理部96を有する。なお、台帳管理部96は、プロセッサが有する電子回路として実現することもでき、プロセッサが実行するプロセスとして実現することもできる。
台帳管理部96は、受信したブロックに基づき、商品リストDB92c等を更新する処理部である。例えば、台帳管理部96は、受信したブロックからトランザクションを順番に取得して、商品リストDB52cやキー履歴DB52bを更新する。なお、更新手法は、Endorsing Peer50の実行部57と同様なので、詳細な説明は省略する。
[具体例]
次に、クライアント端末10がイベント(最新ブロック情報)を受信して、トランザクションの実行結果を待たずに、入札状況を判定する例を具体的に説明する。図10は、最新ブロック情報の取得例を説明する図である。図11は、最新ブロック情報によるユーザ通知例を説明する図である。
図10に示すように、BCネットワーク1のOrderer70は、最新のブロック情報を生成すると、イベントを発行し、最新ブロックに関する最新ブロック情報「「tx14,{uniq_u2key,A,120円}」,「tx15,{uniq_u3key,B,200円}」」を、クライアント端末10に送信する。そして、クライアント端末10は、Orderer70からのイベントにより、上記最新ブロック情報を受信して記憶する。なお、Orderer70は、入札の有無に関わらず、すべてのクライアント端末10に最新ブロック情報を送信することもでき、入札しているクライアント端末10のみに最新ブロック情報を送信することもできる。
続いて、図11に示すように、クライアント端末10は、ユーザ1から「商品A、値段100円」の入札情報を受付けると、この入札情報にしたがって、トランザクションtx17「key:uniq_u1key,商品A,値段100円」を生成して、BCネットワーク1の各Endorsing Peer50に送信する。
その一方で、クライアント端末10は、ユーザ1から受け付けた入札情報から入札対象の「商品A」を特定し、最新ブロック情報から「商品A」の最新情報として、「{uniq_u2key,A,120円}」を取得する。そして、クライアント端末10は、取得した情報と各DBを参照して、「ユーザ2が商品Aに120円を入札済み」を特定する。その後、クライアント端末10は、入力された入札情報「商品Aに100円を入札」と最新ブロック情報「ユーザ2が商品Aに120円を入札済み」とを比較する。
この結果、クライアント端末10は、入札しても最新の入札額を越えないと判定し、レスポンスとして「Denied」をユーザに提示する。なお、クライアント端末10は、入札により最新の入札額を超えると判定した場合、レスポンスとして「Accept」をユーザに提示する。
[処理の流れ]
次に、図1に示したシステムで実行される各処理を説明する。ここでは、ユーザ視点の処理、クライアント端末10が実行する処理、BCネットワーク1内で実行される処理について説明する。
(ユーザ視点の処理)
図12は、ユーザ処理の流れを示すフローチャートである。図12に示すように、ユーザは、クライアント端末10に入札情報を入力する(S201)。続いて、ユーザは、クライアント端末10を用いて、トランザクションの結果または最新ブロック情報による判定結果を閲覧する(S202)。
そして、ユーザは、落札できた場合または最高値を更新した場合(S203:Yes)、入札を終了する。一方、ユーザは、落札できない場合または最高値を更新できない場合(S203:No)、商品の落札を諦めるかどうかを判断する(S204)。ここで、ユーザは、商品の落札を諦めない場合(S204:No)、S201に戻り入札を繰り返す。一方、ユーザは、商品の落札を諦める場合(S204:Yes)、入札を終了する。
(クライアント端末10の処理)
図13は、クライアント端末10が実行する処理の流れを示すフローチャートである。図13に示すように、クライアント端末10の最新状態管理部17は、BCネットワーク1からイベントを取得すると(S301:Yes)、イベントにより、最新ブロック情報を取得して記憶部32に保持する(S302)。
その後、トランザクション処理部16は、入札情報を受付けると(S303:Yes)、トランザクションを生成する(S304)。その後、S305からS307までの処理と、S308からS312までの処理が並列に実行される。
具体的には、比較判定部18は、最新ブロック情報から該当する商品の最高値を取得し(S305)、S303で入力された入力値と比較する(S306)。そして、比較判定部18は、比較結果をユーザに通知する(S307)。
その一方で、トランザクション処理部16は、各Endorsing Peer50にトランザクションの承認要求を送信する(S308)。そして、トランザクション処理部16は、承認された場合(S309:Yes)、Orderer70にトランザクションを送信する(S310)。その後、トランザクション処理部16は、トランザクションの実行結果をBCネットワーク1から受信し(S311)、トランザクションの実行結果をユーザに通知する(S312)。
また、S309において、トランザクション処理部16は、承認されなかった場合(S309:No)、承認結果(未承認)をユーザに通知する(S313)。
なお、この例では、最新ブロック情報の取得とトランザクション処理とを同じフローで説明したが、別々のフローで実行することもできる。また、最新ブロック情報を取得していない場合は、トランザクション処理のみが実行される。
(BCネットワーク1の処理)
図14は、BCネットワーク1で実行される処理の流れを示すフローチャートである。図14に示すように、各Endorsing Peer50は、クライアント端末10からトランザクションを受信すると(S401:Yes)、トランザクションの承認判定を実行し(S402)、トランザクションの承認判定の結果をクライアント端末10に応答する(S403)。
続いて、Orderer70は、クライアント端末10から、承認されたトランザクションを受信すると(S404:Yes)、複数のトランザクションを用いてブロックを生成する(S405)。
そして、Orderer70は、生成したブロックを各Endorsing Peer50およびPeer90に、ブロードキャストで送信する(S406)。ここで、各Endorsing Peer50およびPeer90では、ブロック内のトランザクションによる台帳更新が実行される。
その後、Orderer70は、生成したブロックに関するイベントを発行して、最新ブロック情報をクライアント端末10に送信する(S407)。また、Orderer70もしくは各Endorsing Peer50は、トランザクションの実行結果をクライアント端末10に送信する(S408)。
[効果]
上述したように、クライアント端末10は、新規ブロック発行時に、ユーザの発行したトランザクションが含まれているかどうかに限らず、イベントを受け取り、最新ブロック時点の最高値を取得する。そして、クライアント端末10は、ユーザの入札した値と最新ブロック情報とを比較した結果をユーザに通知することができる。この結果、ユーザの入札した値が現在の最高値よりも小さい場合、ユーザの入札は無効となるので、ユーザは次の入札作業に移ることができる。
また、上述したように、クライアント端末10は、ユニークなキーを用いることで、トランザクションの衝突を抑制し、処理遅延を抑制することができる。また、各ユーザの入札は、ブロックチェーンに保存されるので、改ざんされることなく経過を振り返ることができる。
例えば、ユーザ1とユーザ2が同時に入札することを考える。現在の最高値が90円の状態で、ユーザ1が[入札:{uniq_u1key,A,100円}]を実行した後、ユーザ2が[入札:{uniq_u2key,A,120円}]を実行した場合、ユニークなキーにより、各ユーザのトランザクションの衝突が発生しない。この結果、より高値であるユーザ2のトランザクションが反映される。
また、ユーザ1よりも前に入札したユーザ2が存在する場合を考える。つまり、ユーザ1とユーザ2のトランザクションは衝突せず、ユーザ1は自身のトランザクションの処理を待つ時間が発生している状況である。例えば、現在の最高値が90円の状態で、ユーザ2のトランザクション[入札:{uniq_u2key,A,120円}]を含むブロックが生成された後に、ユーザ1のトランザクション[入札:{uniq_u1key,A,100円}]が発生する。
この場合、ユーザ2のブロックが生成された時点で、ユーザ1のクライアント端末10がイベントを受け取り、ユーザ2の入札値を最高値として検出できる。したがって、ユーザ1の入札)のトランザクションの進捗状況に関わらず、保持する最新ブロック情報により、ユーザ1の入札値とユーザ2の入札値の比較が行われ、ユーザ1の入札が反映されないことをユーザ1に迅速に通知し、ユーザ1は次の入札に移ることができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[数値等]
上記実施例で用いた数値、装置の数、具体例、適用対象、トランザクションの記述例、各DBの構成例、最新ブロック情報の記述例等は、あくまで一例であり、任意に変更することができる。また、ユニークなキー(一意なキー)は、商品ごとやユーザごとに生成することができる。商品ごとの場合、保存されるkey-valueのvalueにユーザIDが含まれ、商品とキーの対応が別途テーブル等で取られている。ユーザごとの場合、保存されるkey-valueのvalueに商品IDの情報が含まれる。
なお、上記実施例では、クライアント端末10が、トランザクションをBCネットワーク1に送信しつつ、最新ブロック情報に基づきトランザクションの処理結果を予想して、その結果をユーザに通知する例を説明したが、これに限定されるものではない。例えば、クライアント端末10は、最新ブロック情報に基づくトランザクションの予想により最高入札額となる場合に、トランザクションをBCネットワーク1へ送信することもできる。この結果、BCネットワーク1内のトランザクション量を削減でき、処理を高速化することができる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。なお、最新状態管理部17は、取得部の一例であり、トランザクション処理部16は、生成部の一例であり、比較判定部18は、判定部の一例である。また、BCネットワーク1は、システムの一例である。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
次に、ハードウェア構成例を説明する。図1に示した各装置は、同様のハードウェア構成を有するので、ここでは、コンピュータ100として説明する。
図15は、ハードウェア構成例を説明する図である。図15に示すように、コンピュータ100は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、図15に示した各部は、バス等で相互に接続される。
通信装置100aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD100bは、図5に示した機能を動作させるプログラムやDBを記憶する。
プロセッサ100dは、図5に示した各処理部と同様の処理を実行するプログラムをHDD100b等から読み出してメモリ100cに展開することで、図5等で説明した各機能を実行するプロセスを動作させる。例えば、クライアント端末10を例にして説明すると、このプロセスは、クライアント端末10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ100dは、トランザクション処理部16、最新状態管理部17、比較判定部18等と同様の機能を有するプログラムをHDD100b等から読み出す。そして、プロセッサ100dは、トランザクション処理部16、最新状態管理部17、比較判定部18等と同様の処理を実行するプロセスを実行する。
このように、コンピュータ100は、プログラムを読み出して実行することで各種情報処理方法を実行する情報処理装置として動作する。また、コンピュータ100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
1 BCネットワーク
10 クライアント端末
11 通信部
12 記憶部
12a キー情報DB
12b 最新ブロックDB
15 制御部
16 トランザクション処理部
17 最新状態管理部
18 比較判定部
50 Endorsing Peer
51 通信部
52 記憶部
52a キー情報DB
52b キー履歴DB
52c 商品リストDB
55 制御部
56 承認判定部
57 実行部
70 Orderer
71 通信部
72 記憶部
75 制御部
76 ブロック生成部
77 ブロック送信部
78 イベント送信部
90 Peer
91 通信部
92 記憶部
92a キー情報DB
92b キー履歴DB
92c 商品リストDB
95 制御部
96 台帳管理部

Claims (6)

  1. コンピュータに、
    複数のトランザクションを含むブロックを連結させたブロックチェーンを用いて、前記複数のトランザクションそれぞれを実行するシステムから、前記システムで実行された最新のブロックに関する最新ブロック情報を取得し、
    入力された入力情報に基づき、トランザクションを生成し、
    前記最新ブロック情報に基づき、前記トランザクションの実行結果を判定する
    処理を実行させることを特徴とする実行判定プログラム。
  2. 前記生成する処理は、ユーザまたは処理対象を識別する識別子と前記入力情報とを用いて、前記システム内で一意な前記トランザクションを生成し、
    前記判定する処理は、前記トランザクションを前記システムに送信する、ことを特徴とする請求項1に記載の実行判定プログラム。
  3. 前記判定する処理は、前記トランザクションを前記システムに送信しつつ、前記最新ブロック情報に基づき、前記トランザクションの実行結果を判定する、ことを特徴とする請求項2に記載の実行判定プログラム。
  4. 前記判定する処理は、前記最新ブロック情報に基づく前記トランザクションの実行結果の判定により、前記トランザクションが前記システム内で有効であると判定された場合に、前記トランザクションを前記システムに送信する、ことを特徴とする請求項2に記載の実行判定プログラム。
  5. コンピュータが、
    複数のトランザクションを含むブロックを連結させたブロックチェーンを用いて、前記複数のトランザクションそれぞれを実行するシステムから、前記システムで実行された最新のブロックに関する最新ブロック情報を取得し、
    入力された入力情報に基づき、トランザクションを生成し、
    前記最新ブロック情報に基づき、前記トランザクションの実行結果を判定する
    処理を実行することを特徴とする実行判定方法。
  6. 複数のトランザクションを含むブロックを連結させたブロックチェーンを用いて、前記複数のトランザクションそれぞれを実行するシステムから、前記システムで実行された最新のブロックに関する最新ブロック情報を取得する取得部と、
    入力された入力情報に基づき、トランザクションを生成する生成部と、
    前記最新ブロック情報に基づき、前記トランザクションの実行結果を判定する判定部と
    を有することを特徴とする情報処理装置。
JP2020077845A 2020-04-24 2020-04-24 実行判定プログラム、実行判定方法および情報処理装置 Withdrawn JP2021174261A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020077845A JP2021174261A (ja) 2020-04-24 2020-04-24 実行判定プログラム、実行判定方法および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020077845A JP2021174261A (ja) 2020-04-24 2020-04-24 実行判定プログラム、実行判定方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2021174261A true JP2021174261A (ja) 2021-11-01

Family

ID=78281876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020077845A Withdrawn JP2021174261A (ja) 2020-04-24 2020-04-24 実行判定プログラム、実行判定方法および情報処理装置

Country Status (1)

Country Link
JP (1) JP2021174261A (ja)

Similar Documents

Publication Publication Date Title
EP3574464B1 (en) Computer implemented method and system
US7356500B1 (en) Method for directing and executing certified trading interests
WO2021217863A1 (zh) 订单标识生成方法、装置、服务器及存储介质
US20220164791A1 (en) Method for distributing collectables ownership based on blockchain networks and online transaction server using the same
CN111641629B (zh) 一种异常行为检测方法、装置、设备及存储介质
US20230108983A1 (en) Digital Content Control Based on Nonfungible Tokens
US20230137867A1 (en) Generating non-fungible tokens (nfts) representing digital assets
CN111063050A (zh) 一种签到方法、装置、服务器及存储介质
JP2015194796A (ja) 電子決済システム、電子決済方法、電子決済端末、及びプログラム
CN115730277A (zh) 使用非同质化代币nft的补充数字内容访问控制
CN117136373A (zh) 信息处理装置、信息处理方法和信息处理程序
US20230103398A1 (en) Security Deposits Using Tokenized Reputation Scores
JP2014117354A (ja) オンラインゲームサーバー
CN115641180A (zh) 一种请求处理的方法、相关装置及设备
JP2016051396A (ja) 取引管理システムおよび取引管理方法
WO2017125034A1 (zh) 一种信息处理方法及服务器
WO2020122011A1 (ja) 人材仲介支援装置、人材仲介支援方法、及びプログラム
JP2021174261A (ja) 実行判定プログラム、実行判定方法および情報処理装置
CN115809879A (zh) 一种区块链数据处理方法、装置、设备和存储介质
WO2022073517A1 (zh) 产品推荐方法、装置、电子设备及存储介质
WO2015035933A1 (en) Methods and systems for processing trading data
CN112968769B (zh) 一种区块链中随机数的生成方法及装置
CN113434069A (zh) 菜单配置方法、装置、设备及存储介质
CN106657024B (zh) 防cookie被篡改的方法及装置
CN111311362A (zh) 产品属性更新方法以及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231109

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20240126