JP7311020B2 - 制御方法、情報処理装置及び制御プログラム - Google Patents

制御方法、情報処理装置及び制御プログラム Download PDF

Info

Publication number
JP7311020B2
JP7311020B2 JP2022502693A JP2022502693A JP7311020B2 JP 7311020 B2 JP7311020 B2 JP 7311020B2 JP 2022502693 A JP2022502693 A JP 2022502693A JP 2022502693 A JP2022502693 A JP 2022502693A JP 7311020 B2 JP7311020 B2 JP 7311020B2
Authority
JP
Japan
Prior art keywords
transaction
user
key
transaction data
users
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.)
Active
Application number
JP2022502693A
Other languages
English (en)
Other versions
JPWO2021171457A1 (ja
JPWO2021171457A5 (ja
Inventor
龍 新崎
郁弥 小林
俊 石原
淳也 平松
雄介 口脇
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
Publication of JPWO2021171457A1 publication Critical patent/JPWO2021171457A1/ja
Publication of JPWO2021171457A5 publication Critical patent/JPWO2021171457A5/ja
Application granted granted Critical
Publication of JP7311020B2 publication Critical patent/JP7311020B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、制御方法、情報処理装置及び制御プログラム
に関する。
ブロックチェーンを構成するデータとして分散台帳に記録される各ブロックは、一定時間間隔ごと又は一定の取引数ごと等の所定の単位ごとに生成される。したがって、一つのブロック内には、複数の取引に関する情報が含まれうる。
なお、取引とは、例えば、仮想通貨の取引であれば、送金元の取引者から送金先の取引者への送金をいい、送金元の取引者(例えば、ユーザA)、送金先の取引者(例えば、ユーザB)、送金額等をパラメータとする。このような取引では、各取引者の残高の識別情報(例えば、「Aの残高」)をキーとし、当該残高を示す数値を値として管理するデータベースが更新される。ユーザAからユーザBへの送金の取引であれば、「Aの残高」キーに対応する値から送金額が減算され、「Bの残高」キーに対応する値に送金額が加算される。
国際公開第2018/124297号
同一のブロックに含まれる複数の取引に基づくデータベースの更新は、一括して実行される。したがって、同一のキーに対する値を更新対象とする複数の取引が同一のブロックに含まれている場合、複数の取引の間でコンフリクトが発生し、当該キーの値について、整合性を保持できない可能性が有る。そのため、同一のキーに対する値を更新対象とする複数の取引が同一のブロックに含まれている場合、当該複数の取引のうちの最初の取引のみが実行され、2番目以降の取引はエラーとしてその実行が抑制されている。
この場合、実行が抑制された取引を再実行する必要が生じ、取引の実行が遅延してしまうことになる。さらに、取引を再実行したとしても、再実行時のブロックでも同じ状況になる可能性がある。
そこで、一側面では、本発明は、データベースの更新のコンフリクトを抑制することを目的とする。
一つの案では、ブロックチェーンに記録された取引データに含まれる取引量の集計値を記録する集計項目を含むデータベースの制御方法において、前記ブロックチェーンに記録された複数の前記取引データを取得する処理と、前記集計項目に対応付く第1のユーザとの取引相手である複数の第2のユーザごとに、前記複数の取引データに基づいて前記第1のユーザとの取引時期を特定する処理と、前記取引時期の非類似性に基づいて、前記複数の第2のユーザを複数のグループに分類する処理と、前記グループ別の集計項目を前記データベースに生成する処理と、をコンピュータが実行する。
一態様によれば、データベースの更新のコンフリクトを抑制することができる。
本発明の実施の形態における取引管理システム1の構成例を示す図である。 本発明の実施の形態における取引管理システム1を構成する各ノード10のハードウェア構成例を示す図である。 本発明の実施の形態における取引管理システム1を構成する各ノード10の機能構成例を示す図である。 キーの分割処理の処理手順の一例を説明するためのフローチャートである。 取引履歴Hに基づく他ユーザ別の単位時間ごとの取引数の時系列の集計結果の一例を示す図である。 他ユーザのクラスタリング結果の一例を示す図である。 他ユーザのグループへの分類例を示す図である。 残高キーの分割後において実行される残高DB161の更新処理の処理手順の一例を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における取引管理システム1の構成例を示す図である。図1において、複数のユーザ端末20は、インターネット等のネットワークを介して取引管理システム1に接続される。
ユーザ端末20は、送金等の各種の取引(以下、単に「取引」という。)の当事者(送金元のユーザ及び送金先のユーザ(以下、単に「ユーザ」という。))が利用する端末である。例えば、PC(Personal Computer)、スマートフォン又はタブレット端末等がユーザ端末20として利用されてもよい。
取引管理システム1は、ユーザ端末20間で行われる取引を管理するP2Pネットワーク(ブロックチェーンネットワーク)であり、分散型台帳技術が適用された複数のコンピュータ又は情報処理装置(ノード10)の集合を含む。各ノード10は、ブロックチェーンネットワークによって接続され、共通の台帳情報を分散して管理する記憶部(以下、「台帳」という。)を有する。台帳には、取引の履歴を示すブロックチェーンが記録される。例えば、Hyperledger Fabric等のフレームワーク実装が用いられて取引管理システム1が実現されてもよい。
図2は、本発明の実施の形態における取引管理システム1を構成する各ノード10のハードウェア構成例を示す図である。各ノード10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
ノード10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってノード10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
図3は、本発明の実施の形態における取引管理システム1を構成する各ノード10の機能構成例を示す図である。図3に示されるように、各ノード10は、台帳16等の記憶部を利用する。台帳16は、例えば、補助記憶装置102、又はノード10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
台帳16は、上記したように、各ノード10が共通の台帳情報を分散して管理するための記憶部である。台帳16は、ブロックチェーンC1及び残高DB161等を格納する。
ブロックチェーンC1は、ブロックの順序付けられたリストである。各ブロックには、一定時間間隔ごと又は一定の取引数ごと等の所定の単位ごとに発生した1以上の各取引について、それぞれのパラメータを含むデータ(以下、「取引データ」という。)が格納される。本実施の形態では、ユーザ間の送金を取引の一例として説明する。したがって、例えば、送金日時、送金元のユーザ名、送金先のユーザ名及び送金額等が取引データに含まれる。
残高DB161は、ユーザ間の取引量(取引額)の集計値(ユーザごとの残高)を記録する集計項目を含むデータベースである。各ユーザの残高に対応する集計項目の値(集計値)は、取引の実行によって更新される。すなわち、送金元のユーザの残高から送金額が減算され、送金先のユーザの残高に送金額が加算される。なお、残高DB161において、各ユーザの残高は、キー・バリュー形式で格納される。残高の集計項目は、キーに対応し、集計値はバリューに対応する。すなわち、残高DB161は、ユーザごとに、当該ユーザの残高を識別するためのキー(例えば、「Aの残高」)に対応付けて、当該残高を示す数値を記憶する。但し、残高DB161は、RDB(Relational Database)等、キーバリューストア以外のデータベースであってもよい。例えば、残高DB161がRDBであれば、「Aの残高」という項目名がキーに対応し、「Aの残高」という項目の値がバリューに対応する。
ここで、同一キーにアクセスする複数の取引データが一つのブロックに含まれている場合、当該複数の取引データに係る各取引の実行のコンフリクト(衝突)のため、最初の取引データ以外の取引データに係る各取引は失敗してしまう。本実施の形態では、斯かるコンフリクトを回避するため、コンフリクトが発生しやすいキーを複数のキーに分割することを考える。具体的には、キー「Aの残高」を「Aの食費残高」及び「Aの光熱費残高」に分割することを考える。こうすることにより、「Aの残高」を更新する取引のうち、ユーザAの食費の残高を更新する取引であれば、「Aの食費残高」の値を更新対象とし、ユーザAの食費の光熱費を更新する取引であれば、「Aの光熱費残高」の値を更新対象とする。その結果、更新対象のキーが分散されるため、同一キーに対するアクセス頻度の低下を期待できる。したがって、同一キーへのアクセスのコンフリクトの回避を期待することができる。
しかしながら、この場合、例えば、そもそも「Aの残高」に対する取引のほとんどが、「Aの食費残高」キーに対応する取引であった場合、同一キーへのアクセスのコンフリクトの回数の低減効果は少ないと考えられる。また、ユーザは、分割後のキーに合わせて、取引を分割して行う必要があり、結果として取引数の増加を招いてしまう。
そこで、本実施の形態の各ノード10は、上記の問題も回避可能とするために、取引履歴取得部11、取引時期特定部12、ユーザ分類部13、キー分割部14及び更新部15等を有する。これら各部は、ノード10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。例えば、スマートコントラクト(Hyperledger Fabricの場合、チェーンコード)がCPU104に実行させる処理により各部が実現されてもよい。
取引履歴取得部11は、ユーザごとに、直近の過去の一定期間T1においてブロックチェーンC1のいずれかのブロックに格納された取引データ(当該ユーザが送金元又は送金先である取引データ)の集合を取得する。取引時期特定部12は、一定期間T1を細分化する単位時間T2ごとに、各ユーザについて、当該ユーザとの取引相手の各ユーザの取引時期を時系列順に特定する。ユーザ分類部13は、ユーザごとに、当該ユーザとの取引相手の各ユーザを、当該ユーザとの取引時期の非類似性に基づいて複数のグループに分類する。キー分割部14は、ユーザごとに、当該ユーザの取引の残高を集計するキー(集計項目)を、当該ユーザについて分類されたグループ別に生成することで、当該キーを実質的に分割する。更新部は、取引データに基づいて残高DB161を更新する。
以下、各ノード10が実行する処理手順について説明する。図4は、キーの分割処理の処理手順の一例を説明するためのフローチャートである。なお、図4の処理手順は、一定期間T1間隔で繰り返し実行される。一定期間T1は、ブロックチェーンC1に接続される新たなブロックが生成される周期と同じであってもよい。この場合、図4の処理手順は、新たなブロックの生成に応じて実行されてよい。
まず、取引を行う候補者であるユーザごとに、ステップS101~S110を含むループ処理L1が実行される。ループ処理L1において処理対象とされているユーザを「対象ユーザ」という。
ステップS101において、取引履歴取得部11は、直近の過去の一定期間T1においてブロックチェーンC1のいずれかのブロックに格納された取引データのうち、対象ユーザに対応する取引データの集合(以下、「取引履歴H」という。)をブロックチェーンC1から取得する。対象ユーザに対応する取引データとは、対象ユーザを送金先又は送金元とする取引データ(すなわち、対象ユーザの残高の更新の原因となる取引データ)をいう。したがって、例えば、ユーザAが対象ユーザである場合、ユーザAが送金先又は送金元であり、直近の一定期間T1における取引データの集合が取引履歴Hとして取得される。
続いて、取引時期特定部12は、一定期間T1を細分化する単位時間T2ごとに、取引履歴Hにおける取引データの数(つまり、取引数)を対象ユーザとの取引相手であるユーザ(以下、「他ユーザ」という。)別に時系列に集計する(S102)。
図5は、取引履歴Hに基づく他ユーザ別の単位時間ごとの取引数の時系列の集計結果の一例を示す図である。図5において、1行目は、各単位時間が何番目の単位時間であるのかを示すために便宜上付与された行である。図5の例では、一定期間T1がM個の単位時間に区切れられた例が示されている。
2行目以降の各行の各列は、他ユーザ別の各列に対応する各時間帯における取引数の集計結果である。図5の集計結果により、対象ユーザ以外の複数の他ユーザのそれぞれについて、対象ユーザとの取引時期を特定することができる。なお、他ユーザごとの各行は、各単位時間の集計値を要素とし、長さMのベクトルとみなすことができる。以下、当該ベクトルを「集計値ベクトル」という。
続いて、ユーザ分類部13は、複数の他ユーザのそれぞれの集計値ベクトルの類似性に基づいて、当該複数の他ユーザを公知の方法でクラスタリングして、N個のクラスタを生成する(S103)。すなわち、当該複数の他ユーザが複数(N個)のクラスタg1~gNに分類される。集計値ベクトルの類似性は、例えば、集計値ベクトルの類似度によって評価されてもよい。当該類似度としては、コサイン類似度等、公知の指標が用いられればよい。
図6は、他ユーザのクラスタリング結果の一例を示す図である。図6では、ユーザB及びDがクラスタg1に分類され、ユーザCがクラスタg2に分類された例が示されている。このことは、AとBとの間の取引と、AとDとの間の取引とは同じ時間帯に発生する傾向に有る(すなわち、コンフリクトしやすい)ことを示す。
続いて、キー分割部14は、ユーザ分類部13によって生成されたN個の各クラスタの要素数の中での最大値k個分のグループG1~Gkを生成する(S104)。図6の例によれば、クラスタg1の要素数(ユーザ数)=2が最大である。したがって、この場合、グループG1及びグループG2の2つのグループが生成される。
続いて、キー分割部14は、各クラスタのi番目(1≦i≦k)の他ユーザを、i番目のグループGiに分類する(S105)。したがって、取引時期の傾向が類似しない他ユーザ同士が同じグループに分類される。すなわち、ステップS105では、他ユーザが、取引時期の非類似性に基づいて複数のグループに分類される。
図7は、他ユーザのグループへの分類例を示す図である。図7では、ユーザB及びCが同一グループ(グループG1)に分類され、ユーザDが別のグループ(グループG2)に分類された例が示されている。
続いて、キー分割部14は、対象ユーザの残高に対応するキー(以下、「残高キー」という。)の分割処理が過去に実行されたことが有るか否か判定する(S106)。すなわち、対象ユーザについて、ステップS107が実行されたことが有るか否かが判定される。この判定方法については後述する。
対象ユーザの残高キーの分割処理が実行されたことが無い場合(S106でNo)、キー分割部14は、残高DB161における対象ユーザの残高キーのキー名を、「<対象ユーザのユーザ名>-分割時残高」に置換する(S107)。ここで、<対象ユーザのユーザ名>には、対象ユーザのユーザ名が入る。したがって、ユーザAが対象ユーザであれば、残高DB161における「Aの残高」キーのキー名が、「A-分割時残高」に置換される。「A-分割時残高」キーは、ユーザAの残高キーの分割時における当該残高キーの値(すなわち、キーの分割時にユーザAの残高がいくらであったのか)を保持するためのキーである。以下、置換後のキー名に係るキーを「分割時残高キー」という。
続いて、キー分割部14は、ステップS104において生成されたグループごとに、当該グループに対応する取引キーを残高DB161に生成する(S110)。この際、生成された各取引キーに対応する値は0に初期化される。ここで、グループに対応する取引キーとは、対象ユーザと当該グループに属するユーザとの取引の集計値を値とするキーをいう。例えば、グループG1に対応する取引キーは、ユーザAとユーザBとの間の取引額、又はユーザAとユーザCとの間の取引額の集計値を値とするキーである。本実施の形態では、グループG1に対応する取引キーのキー名を「A-B,C」とし、グループG2に対応するキー名を「A-D」とすることとする。すなわち、取引キーのキー名は、「対象ユーザのユーザ名-他ユーザのユーザ名」という形式を有する。すなわち、「-」の前が対象ユーザのユーザ名であり、「―」の後が対象ユーザとの取引相手となる1以上の他ユーザのユーザ名である。このような取引キーの値(取引額)は、「-」の前のユーザ名に係るユーザからの送金に応じて送金額分だけ減算され、当該ユーザへの「-」の後のユーザ名に係るユーザからの送金に応じて送金額分だけ加算される。例えば、「A-D」キーの値(取引額)であれば、ユーザAからDへの送金に応じて送金額が減算され、ユーザDからAへの送金に応じて送金額が加算される。すなわち、取引キーとは、残高キーの分割後の取引量の集計値を値とするキーである。また、各取引によっていずれのキーの値が更新対象となるのかについては、キー名によって識別可能である。すなわち、取引キーのキー名には、取引に係るユーザと更新対象のキーとの対応情報が含まれる。但し、このような対応情報が含まれない文字列(例えば、「Aの取引1」、「Aの取引2」等)が取引キーのキー名とされてもよい。この場合は、「Aの取引1」キーが、AとB又はAとCとの間の取引に対応するキーであり、「Aの取引2」キーが、AとDとの間の取引に対応するキーであることを示す対応情報が、別途、補助記憶装置102等に記憶されてもよい。
一方、ステップS106において、対象ユーザの残高キーの分割処理が実行されたことが有ると判定された場合(S106でYes)、ステップS107の代わりにステップS108及びS109が実行される。なお、上述したように、ステップS107が実行されたユーザの残高キーのキー名は「<対象ユーザのユーザ名>-分割時残高」に置換される。したがって、ステップS106の判定は、対象ユーザの分割時残高キーの有無に基づいて行うことができる。
ステップS108において、キー分割部14は、対象ユーザの分割時残高キーの値を、対象ユーザの各取引キーの値によって更新する。具体的には、キー分割部14は、対象ユーザの各取引キーの値を対象ユーザの分割時残高キーの値に加算する。例えば、対象ユーザがユーザAであり、ユーザAの取引キーが上記した通りである場合、「A-分割時残高」キーの値に対して、「A-B,C」キーの値と「A-D」キーの値とが加算される。その結果、前回のユーザAの取引キーの生成後における、ユーザAと他ユーザとの取引の結果がユーザAの分割時残高キーに反映される。
続いて、キー分割部14は、対象ユーザの全ての取引キー及び当該取引キーに対応する値を残高DB161から削除する(S109)。続けて、ステップS110が実行されることにより、対象ユーザの残高キーについて、改めて分割がし直されることになる。
上述したステップS101~S110が全てのユーザについて実行され、ループ処理L1が終了すると、図4の処理手順の実行は終了する。
図4の処理手順が繰り返し(一定期間Tごとに)実行されることにより、各ユーザの残高を管理するためのキーは、以下のように変更されうる。
例えば、上記のように、「Aの残高」キーが、「A-分割時残高」キー、「A-B,C」キー、及び「A-D」キーに分割された後において、A-B間の取引とA-C間の取引が衝突しやすくなると、図4の処理手順の再度の実行により(この際は、S108及びS109が実行される)、ユーザAに関するキーは、以下のように分割し直される。
-「A-分割時残高」キー
-「A-B」キー
-「A-C」キー
-「A-D」キー
すなわち、或るキーの値の更新が衝突しやすいことが後から分かった場合でも、当該キーをより細かく分割し直すことができる。したがって、上記の例では、A-B間の取引とA-C間の取引の衝突を抑制することが可能となる。
一方、A-B間の取引、A-C間の取引、A-D間の取引が衝突しにくいのであれば、図4の処理手順の再度の実行により、ユーザAに関するキーは、以下のように分割し直される。
-「A-分割時残高」キー
-「A-B,C,D」キー
すなわち、衝突しにくいキーが複数の分割されてしまっている場合、当該キーが結合しなおすことができる。上記の例では、ユーザAと他のユーザとの間の取引キーが結果的に一つにまとめられることになる。その結果、ユーザAの残高の集計のための読み出し回数を減らすことができ、平均処理時間を抑えることができる。
続いて、残高キーの分割後において実行される残高DB161の更新処理について説明する。図8は、残高キーの分割後において実行される残高DB161の更新処理の処理手順の一例を説明するためのフローチャートである。
更新部15は、新たな取引データ(当該取引データのキーの値の更新要求)を受信すると(S201でYes)、当該取引データ(以下、「対象取引データ」という。)を、現在生成途中のブロックの最後尾に追加する(S202)。続いて、更新部15は、対象ブロックが完成したか否かを判定する(S203)。例えば、対象ブロックの生成開始からの経過時間が一定時間に到達したか、又は対象ブロックに含まれる取引データの数が一定数以上であるか等によって、対象ブロックが完成したか否かが判定される。
対象ブロックが完成していない場合(S203でNo)、ステップ201へ戻る。対象ブロックが完成した場合(S203でYes)、更新部15は、対象ブロック内において更新のコンフリクトが有るか否かを判定する(S204)。すなわち、対象ブロックについて、同一キーの値を更新対象とする複数の取引データの有無が判定される。
更新のコンフリクトが無い場合(S204でNo)、更新部15は、対象ブロック内の各取引データに基づいて、残高DB161のキーの値を更新する(S205)。この際、取引データごとに、当該取引データにおいて送金元のユーザの取引キーの値(集計値)と、当該取引データにおいて送金先のユーザの取引キーの値(集計値)とが、当該取引データの送金額(取引量)に基づいて更新とされる。具体的には、送金元のユーザの取引キーの値から送金額が減算され、送金先の取引キーの値に対して送金額が加算される。例えば、ユーザAからユーザBへの送金であれば、「A-B*」キー(*は、ユーザA以外の0以上のユーザ名)の値から送金額が減算され、「B-A*」キー(*は、ユーザB以外の0以上のユーザ名)の値に送金額が加算される。
一方、更新のコンフリクトが有る場合(S204でYes)、更新部15は、対象ブロック内において、同一キーの値を更新する後発の取引データを除外した各取引データに基づいて、残高DB161のキーの値を更新する(S206)。すなわち、同一キーの値を更新する後発の取引データに係る取引は失敗する。ステップS205又はS206に続いて、ステップS201へ戻る。
なお、本実施の形態では、図4の処理手順の実行により、更新のコンフリクトの抑制が期待されるため、ステップS206の実行(すなわち、取引の失敗)を抑制することができる。
上述したように、本実施の形態によれば、各ユーザについて、過去の当該ユーザに係る取引データに基づいて、当該ユーザとの取引相手ごとに取引時期が特定され、取引時期の非類似性に基づいて取引相手群が複数のグループに分類され、グループ別のキー(集計項目)が残高DB161に生成される。したがって、取引時期が類似するユーザ間の取引に関する集計は、異なるキー(集計項目)によって行われるようになる。その結果、データベース(残高DB161)の更新のコンフリクトを抑制することができる。
なお、本実施の形態において、ノード10は、情報処理装置の一例である。残高DB161は、データベースの一例である。取引履歴取得部11は、取得部の一例である。取引時期特定部12は、特定部の一例である。ユーザ分類部13は、分類部の一例である。キー分割部14は、生成部の一例である。
1 取引管理システム
10 ノード
11 取引履歴取得部
12 取引時期特定部
13 ユーザ分類部
14 キー分割部
15 更新部
16 台帳
20 ユーザ端末
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
161 残高DB
B バス
C1 ブロックチェーン

Claims (6)

  1. ブロックチェーンに記録された取引データに含まれる取引量の集計値を記録する集計項目を含むデータベースの制御方法において、
    前記ブロックチェーンに記録された複数の前記取引データを取得する処理と、
    前記集計項目に対応付く第1のユーザとの取引相手である複数の第2のユーザごとに、前記複数の取引データに基づいて前記第1のユーザとの取引時期を特定する処理と、
    前記取引時期の非類似性に基づいて、前記複数の第2のユーザを複数のグループに分類する処理と、
    前記グループ別の集計項目を前記データベースに生成する処理と、
    をコンピュータが実行することを特徴とする制御方法。
  2. 前記分類する処理は、前記取引時期の類似性に基づいて、前記複数の第2のユーザを複数のクラスタに分類し、同一の前記クラスタに分類された前記第2のユーザ同士が同一のグループに含まれないように、前記第2のユーザを複数のグループに分類する、
    ことを特徴とする請求項1記載の制御方法。
  3. 前記特定する処理は、前記第2のユーザごとに、前記複数の取引データに基づいて時系列順に単位時間ごとの前記第1のユーザとの取引数を集計し、
    前記分類する処理は、前記単位時間ごとの取引数の集計結果の類似性に基づいて、前記複数の第2のユーザを複数のクラスタに分類する、
    ことを特徴とする請求項2記載の制御方法。
  4. 前記グループ別の集計項目の生成後に前記ブロックチェーンに記録される取引データに含まれる取引量に基づいて、当該取引データにおいて前記第1のユーザとの取引相手である前記第2のユーザが属するグループに対応する集計項目の集計値を更新する処理、
    をコンピュータが実行することを特徴とする請求項1乃至3いずれか一項記載の制御方法。
  5. ブロックチェーンに記録された取引データに含まれる取引量の集計値を記録する集計項目を含むデータベースを制御する情報処理装置であって、
    前記ブロックチェーンに記録された複数の前記取引データを取得する取得部と、
    前記集計項目に対応付く第1のユーザとの取引相手である複数の第2のユーザごとに、前記複数の取引データに基づいて前記第1のユーザとの取引時期を特定する特定部と、
    前記取引時期の非類似性に基づいて、前記複数の第2のユーザを複数のグループに分類する分類部と、
    前記グループ別の集計項目を前記データベースに生成する生成部と、
    を有することを特徴とする情報処理装置。
  6. ブロックチェーンに記録された取引データに含まれる取引量の集計値を記録する集計項目を含むデータベースの制御をコンピュータに実行させる制御プログラムであって、
    前記ブロックチェーンに記録された複数の前記取引データを取得する処理と、
    前記集計項目に対応付く第1のユーザとの取引相手である複数の第2のユーザごとに、前記複数の取引データに基づいて前記第1のユーザとの取引時期を特定する処理と、
    前記取引時期の非類似性に基づいて、前記複数の第2のユーザを複数のグループに分類する処理と、
    前記グループ別の集計項目を前記データベースに生成する処理と、
    をコンピュータに実行させることを特徴とする制御プログラム。
JP2022502693A 2020-02-27 2020-02-27 制御方法、情報処理装置及び制御プログラム Active JP7311020B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/007938 WO2021171457A1 (ja) 2020-02-27 2020-02-27 制御方法、情報処理装置及び制御プログラム

Publications (3)

Publication Number Publication Date
JPWO2021171457A1 JPWO2021171457A1 (ja) 2021-09-02
JPWO2021171457A5 JPWO2021171457A5 (ja) 2022-09-05
JP7311020B2 true JP7311020B2 (ja) 2023-07-19

Family

ID=77491080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022502693A Active JP7311020B2 (ja) 2020-02-27 2020-02-27 制御方法、情報処理装置及び制御プログラム

Country Status (4)

Country Link
US (1) US20220360458A1 (ja)
EP (1) EP4113313A4 (ja)
JP (1) JP7311020B2 (ja)
WO (1) WO2021171457A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12014368B2 (en) * 2021-01-21 2024-06-18 Bank Of America Corporation System for analyzing and resolving disputed data records

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055473A (ja) 2016-09-29 2018-04-05 富士通株式会社 管理システム、管理方法及び管理プログラム
US20190238316A1 (en) 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment
JP2019200580A (ja) 2018-05-16 2019-11-21 株式会社日立製作所 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752233B2 (en) * 2006-03-29 2010-07-06 Massachusetts Institute Of Technology Techniques for clustering a set of objects
US8560488B2 (en) * 2008-08-08 2013-10-15 Nec Corporation Pattern determination devices, methods, and programs
CN102737327B (zh) * 2011-03-31 2016-02-10 国际商业机器公司 一种划分客户群集的计算机实现的方法和系统
JP6867769B2 (ja) * 2016-09-15 2021-05-12 健 坪井 仮想通貨アドレスについての預金口座情報開示システム
US11636477B2 (en) 2016-12-28 2023-04-25 Takayuki Nakamura Data usage method, system, and program thereof employing blockchain network (BCN)
US10726501B1 (en) * 2017-04-25 2020-07-28 Intuit Inc. Method to use transaction, account, and company similarity clusters derived from the historic transaction data to match new transactions to accounts
US10341105B2 (en) * 2017-06-07 2019-07-02 At&T Intellectual Property I, L.P. Blockchain-based social media history maps
US10341372B2 (en) * 2017-06-12 2019-07-02 International Business Machines Corporation Clustering for detection of anomalous behavior and insider threat
US10846564B2 (en) * 2018-01-04 2020-11-24 Facebook, Inc. Capturing a cluster effect with targeted digital-content exposures
US20200027084A1 (en) * 2018-07-23 2020-01-23 Mastercard International Incorporated Method and System for Hybrid Payment Authorization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055473A (ja) 2016-09-29 2018-04-05 富士通株式会社 管理システム、管理方法及び管理プログラム
US20190238316A1 (en) 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment
JP2019200580A (ja) 2018-05-16 2019-11-21 株式会社日立製作所 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード

Also Published As

Publication number Publication date
JPWO2021171457A1 (ja) 2021-09-02
WO2021171457A1 (ja) 2021-09-02
EP4113313A4 (en) 2023-06-07
EP4113313A1 (en) 2023-01-04
US20220360458A1 (en) 2022-11-10

Similar Documents

Publication Publication Date Title
US20220335338A1 (en) Feature processing tradeoff management
US20210374610A1 (en) Efficient duplicate detection for machine learning data sets
US10255108B2 (en) Parallel execution of blockchain transactions
US20200050968A1 (en) Interactive interfaces for machine learning model evaluations
US10339465B2 (en) Optimized decision tree based models
Fard et al. Vertica-ml: Distributed machine learning in vertica database
WO2017143908A1 (zh) 关联分析方法和装置
Osman et al. Towards real-time analytics in the cloud
Duque Barrachina et al. A big data methodology for categorising technical support requests using Hadoop and Mahout
Zdravevski et al. Cluster-size optimization within a cloud-based ETL framework for Big Data
JP2016100005A (ja) リコンサイル方法、プロセッサ及び記憶媒体
US10586169B2 (en) Common feature protocol for collaborative machine learning
JP2020098388A (ja) 需要予測方法、需要予測プログラムおよび需要予測装置
JP7311020B2 (ja) 制御方法、情報処理装置及び制御プログラム
Kimball The evolving role of the enterprise data warehouse in the era of big data analytics
Abdul et al. Database workload management through CBR and fuzzy based characterization
US9965355B2 (en) System and method for dynamic collection of system management data in a mainframe computing environment
Gonzalez-Aparicio et al. Evaluation of ACE properties of traditional SQL and NoSQL big data systems
JP5637071B2 (ja) 処理プログラム、処理方法及び処理装置
Reniers et al. Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF
Shahmirzadi et al. Analyzing the impact of various parameters on job scheduling in the Google cluster dataset
CN114168628A (zh) 筛选目的数据的方法及系统
TWI643075B (zh) 雲端頻繁序列型樣資料探勘方法
JP7031232B2 (ja) 検索システム、検索方法および検索プログラム
JP2016045698A (ja) 更新処理プログラム、装置、及び方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220628

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230619

R150 Certificate of patent or registration of utility model

Ref document number: 7311020

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150