(57)【要約】      （修正有）【課題】ブロックチェーンの台帳データの管理装置及び管理方法を提供する。【解決手段】ブロックチェーンの台帳データの管理装置１００は、無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、該ブロックチェーンにおける各無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査する走査部１０１と、該無効衝突トランザクション及び該無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類する分類部１０２と、該無効衝突トランザクションの発生を回避するように、該衝突パターンに応じて、チェーンコードを改善するための提案を行う提案部１０３と、を含む。【選択図】図１
2020188459.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンの台帳データの管理装置であって、
無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、前記ブロックチェーンにおける各前記無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査する走査部と、
前記無効衝突トランザクション及び前記無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類する分類部と、
前記無効衝突トランザクションの発生を回避するように、前記衝突パターンに応じて、チェーンコードを改善するための提案を行う提案部と、を含む、装置。
【請求項２】
前記走査部は、
前記無効衝突トランザクションの台帳読み出し操作の識別子について、バックトラッキングにより、走査の経路における台帳書き込み操作を検索し、
前記台帳書き込み操作が属する先行トランザクションを、前記無効衝突トランザクションを引き起こした先行トランザクションとして特定する、請求項１に記載の装置。
【請求項３】
前記無効衝突トランザクションと前記先行トランザクションは、同時にコミットされる、請求項２に記載の装置。
【請求項４】
前記衝突パターンは、同一の関数を並行に呼び出すこと、及び異なる関数を並行に呼び出すことを含む、請求項１に記載の装置。
【請求項５】
前記衝突パターンが同一の関数を並行に呼び出すことである場合、前記提案部は、一括バッチ呼び出しを用いてチェーンコードを改善するための提案を行う、請求項４に記載の装置。
【請求項６】
ブロックチェーンの台帳データの管理方法であって、
前記ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出するステップと、
台帳データの照会を提供するように、前記文書構造を用いて前記台帳データを再編成するステップと、を含む、方法。
【請求項７】
抽出された文書構造を異なるタイプに分類するステップと、
分類されたタイプに基づいて、前記ブロックチェーンにおける台帳データを再走査し、全ての文書を前記文書構造として収集するステップと、をさらに含む、請求項６に記載の方法。
【請求項８】
収集された全ての文書を前記文書構造の形式で第三者データベースに記憶するステップ、をさらに含む、請求項７に記載の方法。
【請求項９】
ブロックチェーンの台帳データの管理方法であって、
前記ブロックチェーンの台帳データにおける全てのトランザクションを走査するステップと、
前記台帳データの識別子により前記台帳データを再編成するステップと、
前記識別子について前記台帳データのインデックスを構築するステップと、を含む、方法。
【請求項１０】
履歴データを追跡するように、インデックスを有する台帳データを第三者データベースに記憶するステップ、をさらに含む、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ブロックチェーンの技術分野に関し、具体的には、ブロックチェーンの台帳データの管理装置及び管理方法に関する。
【背景技術】
【０００２】
この部分は、本開示に関連する背景情報を提供するが、必ずしも従来技術ではない。
【０００３】
現在、ハイパーレジャー・ファブリック（Ｈｙｐｅｒｌｅｄｇｅｒ  Ｆａｂｒｉｃ）は、チェーンコードと称されるスマートコントラクトをサポートする最も人気のあるコンソーシアム・ブロックチェーンである。チェーンコードはデータを照会するために幾つかの簡単なアプリケーション・プログラム・インタフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を提供しているが、これらのＡＰＩはハイパーレジャー・ファブリック上にアプリケーションを構築するために用いられる。従来技術では、ユーザが台帳データをオフラインで分析し、或いは詳細なデータ照会を行うための効果的な方法又はツールがない。また、台帳データの整合性を維持するために、Ｆａｂｒｉｃは各トランザクションの状態バージョンを検証し、バージョンの検証に失敗すると、無効なトランザクションが発生する。有効なトランザクション及び無効なトランザクションが何れもブロックチェーンに記憶されているが、従来技術では、このような無効な衝突（競合）トランザクションが発生する問題の原因を説明するものがまだない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この部分は、本開示の一般的な概要を提供し、その全範囲又はその全ての特徴を完全に開示するものではない。
【０００５】
無効な衝突トランザクションの発生を明確に理解するために、本開示は、無効な衝突トランザクションの発生原因を解析するための技術を提供し、該無効な衝突トランザクションの発生を回避するように対応する最適化された提案を行う。また、本開示の技術は、ブロックチェーンを構築するアプリケーションのデータ解析のために用いられ、必要に応じてブロックチェーンのデータを照会するための便利な方法を提供し、データが変更された完全な履歴を追跡することができる。
【課題を解決するための手段】
【０００６】
本開示の１つの態様では、ブロックチェーンの台帳データの管理装置であって、無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、前記ブロックチェーンにおける各前記無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査する走査部と、前記無効衝突トランザクション及び前記無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類する分類部と、前記無効衝突トランザクションの発生を回避するように、前記衝突パターンに応じて、チェーンコードを改善するための提案を行う提案部と、を含む、装置を提供する。
【０００７】
本開示のもう１つの態様では、ブロックチェーンの台帳データの管理方法であって、無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、前記ブロックチェーンにおける各前記無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査するステップと、前記無効衝突トランザクション及び前記無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類するステップと、前記無効衝突トランザクションの発生を回避するように、前記衝突パターンに応じて、チェーンコードを改善するための提案を行うステップと、を含む、方法を提供する。
【０００８】
本開示のもう１つの態様では、ブロックチェーンの台帳データの管理装置であって、前記ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出する走査部と、台帳データの照会を提供するように、前記文書構造を用いて前記台帳データを再編成する編成部と、を含む、装置を提供する。
【０００９】
本開示のもう１つの態様では、ブロックチェーンの台帳データの管理方法であって、前記ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出するステップと、台帳データの照会を提供するように、前記文書構造を用いて前記台帳データを再編成するステップと、を含む、方法を提供する。
【００１０】
本開示のもう１つの態様では、ブロックチェーンの台帳データの管理装置であって、前記ブロックチェーンの台帳データにおける全てのトランザクションを走査する走査部と、前記台帳データの識別子により前記台帳データを再編成する編成部と、前記識別子について前記台帳データのインデックスを構築するインデックス部と、を含む、装置を提供する。
【００１１】
本開示のもう１つの態様では、ブロックチェーンの台帳データの管理方法であって、前記ブロックチェーンの台帳データにおける全てのトランザクションを走査するステップと、前記台帳データの識別子により前記台帳データを再編成するステップと、前記識別子について前記台帳データのインデックスを構築するステップと、を含む、方法を提供する。
【００１２】
本開示のもう１つの態様では、機器読み取り可能な命令コードを記憶しているプログラムプロダクトであって、前記命令コードがコンピュータにより読み取られて実行される際に、前記コンピュータに本開示のブロックチェーンの台帳データの管理方法を実行させることができる、プログラムプロダクトを提供する。
【００１３】
本開示のもう１つの態様では、本開示のプログラムプロダクトを記録した機器読み取り可能な記憶媒体を提供する。
【００１４】
本開示の技術を用いることで、ブロックチェーンにおける無効な衝突トランザクションの発生を回避することができる。また、本開示は、必要に応じてブロックチェーンデータにアクセスするための便利な方法を提供し、ブロックチェーンの開発者、保守担当者又はデータ分析担当者によるデータ分析の効率を効果的に向上させることができる。
【００１５】
ここで行われる説明により、本開示の適用可能な範囲はより明確になる。この部分における説明及び特定の例は、単なる例示するためのものであり、本開示の範囲を限定するものではない。
【図面の簡単な説明】
【００１６】
ここで説明される図面は、好ましい実施例を例示するためのものであり、全ての可能な実施例ではなく、本開示の範囲を限定するものではない。
【図１】本開示の１つの実施例に係るブロックチェーンの台帳データの管理装置１００を示すブロック図である。
【図２】本開示の１つの実施例に係るブロックチェーンでの無効衝突トランザクションの発生の概略図である。
【図３】図３Ａは、本開示の１つの実施例に係る無効衝突を引き起こしやすい関数を示す図である。図３Ｂは、本開示の１つの実施例に係る図３Ａにおける無効衝突を引き起こしやすい関数についての改善提案を示す図である。
【図４】本開示のもう１つの実施例に係るブロックチェーンの台帳データの管理装置２００を示すブロック図である。
【図５】本開示の１つの実施例に係るブロックチェーンに記憶されたＪＳＯＮ文書形式の台帳データに対して構造解析を行って得られた例示的な構造Ａ及び構造Ｂを示す図である。
【図６】本開示のもう１つの実施例に係るブロックチェーンの台帳データの管理装置３００を示すブロック図である。
【図７】本開示の１つの実施例に係る履歴追跡を提供するための再編成された台帳データであって、そのキーｋｅｙ１、ｋｅｙ２及びｋｅｙ３により再編成され、データが変更された完全な履歴をアクセスする能力を提供する台帳データを示す図である。
【図８】本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法を示すフローチャートである。
【図９】本開示のもう１つの実施例に係るブロックチェーンの台帳データの管理方法を示すフローチャートである。
【図１０】本開示のもう１つの実施例に係るブロックチェーンの台帳データの管理方法を示すフローチャートである。
【図１１】本開示の実施例に係るブロックチェーンの台帳データの管理装置及び管理方法を実現可能な汎用パーソナルコンピュータの例示的な構成を示すブロック図である。  本開示に対して各種の変更及び代替を行うことができるが、その特定の実施例は図面を参照しながら詳細に説明される。なお、特定の実施例の説明は本開示を開示の具体的な態様に限定するものではなく、本開示の主旨及び範囲内で各種の変更、均等的なものへの変形、代替を行ってもよい。なお、図面において、同一の構成部は同一の符号で示されている。
【発明を実施するための形態】
【００１７】
以下は、図面を参照しながら本開示の例示的な実施例を詳細に説明する。以下の説明は単なる例示的なものであり、本開示、応用及び用途を限定するものではない。
【００１８】
以下は、本開示を詳細に説明し、当業者が本開示の範囲を十分に理解するために、例示的な実施例を提供する。本開示の実施例を詳細に理解させるために、多くの特定の細部、例えば特定の手段、装置及び方法の例を説明する。なお、当業者が分かるように、特定の細部を用いる必要がなく、異なる方式を用いて例示的な実施例を実施してもよく、これらの実施例は本開示の範囲を制限するものではない。一部の例示的な実施例では、周知のプロセス、周知の構成及び周知の技術が詳細に説明されていない。
【００１９】
現在、ハイパーレジャー・ファブリック（Ｈｙｐｅｒｌｅｄｇｅｒ  Ｆａｂｒｉｃ）では、トランザクションが同時にコミットされ、且つ先行のトランザクションでキー値が変更された場合、後続のトランザクションで該キー値が読み取られると、後続のトランザクションはキーのバージョンの衝突により無効になる可能性がある。キーのバージョンが先行のトランザクションにより変更されているため、後続のトランザクションのキーのバージョンと一致していない。従来技術では、ユーザは、ブロックチェーンに存在する無効な衝突トランザクションの数、及びこのような無効な衝突トランザクションの発生の理由を知らない。従って、無効な衝突トランザクションの発生を回避するために、全ての無効衝突トランザクションを分析し、ユーザのチェーンコードを改善するように最適化の提案を行う技術が求められている。
【００２０】
本開示は、無効衝突トランザクションの発生の原因を分析する技術を提供し、該無効衝突トランザクションの発生を回避するように対応する最適化の提案を行う。
【００２１】
＜実施例１＞
本開示の１つの実施例では、ブロックチェーンの台帳データの管理装置であって、無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、該ブロックチェーンにおける各無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査する走査部と、該無効衝突トランザクション及び該無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類する分類部と、該無効衝突トランザクションの発生を回避するように、該衝突パターンに応じて、チェーンコードを改善するための提案を行う提案部と、を含む、装置を提供する。
【００２２】
図１に示すように、本開示の１つの実施例に係るブロックチェーンの台帳データの管理装置１００は、走査部１０１、分類部１０２及び提案部１０３を含んでもよい。
【００２３】
本開示の１つの実施例では、走査部１０１は、無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、ブロックチェーンにおける各無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査してもよい。例えば、無効衝突トランザクションを引き起こした先行トランザクションを検索するように、ブロックチェーンにおける各無効衝突トランザクションについて、その所在ブロック及びその前の１つ又は複数のブロックにおける先行トランザクションを走査する。
【００２４】
本開示の１つの実施例では、例えば、走査部１０１は、無効衝突トランザクションの台帳読み出し操作の識別子（キー値）について、バックトラッキング（ｂａｃｋｔｒａｃｋｉｎｇ）により、走査の経路における台帳書き込み操作を検索し、該台帳書き込み操作が属する先行トランザクションを、該無効衝突トランザクションを引き起こした先行トランザクションとして特定してもよい。
【００２５】
例えば、図２に示すように、ブロックＢにおける無効衝突トランザクションＴｘＦにおける読み出しセットＲｅａｄｓ［］におけるキーＡ（ｋｅｙＡ）について、バックトラッキングにより、その所在ブロックＢにおける先行トランザクションＴｘＥ及びＴｘＤ、並びにブロックＢの隣接ブロックＡにおける先行トランザクションＴｘＣを走査し、ブロックＡにおける先行トランザクションＴｘＣにおける書き込みセットＷｒｉｔｅｓ［］からｋｅｙＡに対する書き込みを見つけることができ、即ちブロックＡにおける先行トランザクションＴｘＣからｋｅｙＡに対する書き込みを見つけることができるため、該先行トランザクションＴｘＣがこのｋｅｙＡのバージョンを更新したと判断する。このようなバージョンの更新は、後続の無効衝突トランザクションの発生を引き起こす。なお、本実施例に係る読み出しセット、書き込みセットは単なる例示的なものであり、本開示はこれに限定されない。
【００２６】
本開示の１つの実施例では、該無効衝突トランザクションと該先行トランザクションは、同時にコミットされてもよい。なお、これらのトランザクションが同時にコミットされることも単なる例示的なものである。
【００２７】
次に、全ての無効衝突トランザクションのペア（即ち、無効衝突トランザクションとそれを引き起こした先行トランザクションにより構成された衝突ペア）が特定された後に、本開示の１つの実施例では、分類部１０２は、該無効衝突トランザクションのペアを、異なる衝突パターンに分類してもよい。本開示の１つの実施例では、衝突パターンは、同一の関数を並行に呼び出すこと、及び異なる関数を並行に呼び出すことを含むが、これに限定されない。なお、該衝突パターンは、単なる例示的なものであり、本開示はこれに限定されない。
【００２８】
次に、本開示の１つの実施例では、提案部１０３は、該無効衝突トランザクションの発生を回避するように、該衝突パターンに応じて、チェーンコードを改善するための提案を行ってもよい。例えば、衝突パターンが同一の関数を並行に呼び出すことである場合、本実施例に係る提案部１０３は、そのアプリケーションプログラムにおいて該関数を同時に呼び出すことなく、そのスマートコントラクト（チェーンコード）においてバッチ呼び出しを行うサービス論理をユーザに提案してもよい。例えば、図３Ａに無効衝突を引き起こしやすい関数を例示的に示しており、この例では、同一の台帳のバッチ資産移転が存在する可能性があるため、同一の関数の並行的な呼び出し衝突が発生する可能性が高い。本実施例に係る提案部１０３は、図３Ｂに示すように、チェーンコードを改善し、即ちチェーンコードにおいて一括バッチ呼び出しを行うサービス論理するように提案してもよい。図３Ｂには、図３Ａにおける無効衝突を引き起こしやすい関数についての改善提案を示している。なお、図３Ａ及び図３Ｂに示す関数及び提案は単なる例示的なものであり、本開示はこれに限定されない。
【００２９】
本開示の無効衝突トランザクションの発生原因の分析技術によれば、対応するチェーンコードの最適化を提案することで、該無効衝突トランザクションの発生を回避することができる。
【００３０】
現在、ハイパーレジャー・ファブリック（Ｈｙｐｅｒｌｅｄｇｅｒ  Ｆａｂｒｉｃ）では、チェーンコードを介してブロックチェーンのデータにアクセスすることしかできず、チェーンコードはデータを照会するために幾つかの簡単なＡＰＩのみを提供し、複雑なデータ照会ＡＰＩを提供していない。一方、チェーンコードはアプリケーションプログラムを開発するために設計されており、オフラインのデータ分析のためのものではない。このため、従来のチェーンコードでは、ユーザがデータをオフラインで分析するための、ブロックチェーンの台帳データにアクセスするＡＰＩが提供されていない。本開示では、詳細な台帳データ照会を提供するように、ブロックチェーンの台帳データを再編成する技術を提供する。
【００３１】
＜実施例２＞
本開示の１つの実施例では、ブロックチェーンの台帳データの管理装置であって、該ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出する走査部と、台帳データの照会を提供するように、前記文書構造を用いて前記台帳データを再編成する編成部と、を含む、装置を提供する。
【００３２】
図４に示すように、本開示の１つの実施例に係るブロックチェーンの台帳データの管理装置２００は、走査部１０１及び編成部２０１を含んでもよい。
【００３３】
通常、データはＪＳＯＮ文書という形式でブロックチェーンに記憶されている。従来の方法及びツールでは、ブロックチェーンに記憶された文書の種類を表示できず、台帳データを理解させるための文書階層構造がないため、ユーザは必要に応じて台帳データを操作することが困難であり、開発者自身も時間とともに記憶されたデータフォーマットを忘れる可能性がある。
【００３４】
従って、詳細なデータ照会を提供する前に、ユーザに台帳データを理解させるために、まず各種のＪＳＯＮ文書構造を抽出する。
【００３５】
本開示の実施例に係る走査部１０１は、ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出してもよい。次に、分類部１０２は、抽出された文書構造を異なるタイプに分類してもよい。次に、走査部１０１は、分類されたタイプに基づいて、該ブロックチェーンにおける台帳データを再走査し、全ての文書を該文書構造として収集してもよい。
【００３６】
次に、本開示の実施例に係る編成部２０１は、台帳データの照会を提供するように、該文書構造を用いて、走査された台帳データを再編成してもよい。
【００３７】
例えば、図５には、ブロックチェーンに記憶されたＪＳＯＮ文書形式の台帳データに対して構造解析を行って得られた例示的な構造Ａ及び構造Ｂを示している。例えば、解析後の構造Ａはスタッフ情報に関し、スタッフ情報は、スタッフ要素により構成されてもよい。該スタッフ要素は、姓名、部門、電話、電子メール及びスタッフ番号などを含んでもよい。解析後の構造Ｂは住所に関し、住所は、部屋番号、町、都市、県、郵便番号及び国などを含んでもよい。なお、上記の文書構造は単なる例示的なものであり、本開示はこれに限定されない。
【００３８】
本開示の１つの実施例では、より詳細なデータ照会、例えばクロス集計照会（ｃｒｏｓｓｔａｂ  ｑｕｅｒｙ）、フィールドに基づく照会などを提供するように、収集された全ての文書を該文書構造の形式で第三者データベースに記憶してもよい。
【００３９】
本開示の実施例に係るブロックチェーンの台帳データの管理装置を用いることで、文書構造に基づくより詳細なデータ照会を提供することができる。
【００４０】
ブロックチェーンの主な特徴の１つは、改ざんできないことである。このため、各文書について、その履歴操作のレコードは、トランザクションに基づいてブロックチェーンの台帳に記憶されてもよい。しかし、ブロックチェーンは、操作履歴にアクセス又は操作履歴を追跡するための便利な方法を提供していない。従って、本開示は、履歴追跡の方法を提供するように台帳データを再編成する方法を提供する。
【００４１】
＜実施例３＞
本開示の１つの実施例では、ブロックチェーンの台帳データの管理装置であって、該ブロックチェーンの台帳データにおける全てのトランザクションを走査する走査部と、該台帳データの識別子により該台帳データを再編成する編成部と、該識別子について該台帳データのインデックスを構築するインデックス部と、を含む、装置を提供する。
【００４２】
図６に示すように、本開示のもう１つの実施例に係るブロックチェーンの台帳データの管理装置３００は、走査部１０１、編成部２０１及びインデックス部３０１を含んでもよい。
【００４３】
走査部１０１は、ブロックチェーンの台帳データにおける全てのトランザクションを走査してもよい。次に、編成部２０１は、該台帳データのキー（識別子）により該台帳データを再編成してもよい。次に、インデックス部３０１は、該キーについて該台帳データのインデックスを構築してもよい。
【００４４】
図７は、履歴追跡を提供するための再編成された台帳データを示しており、ここで、該台帳データは、そのキー、例えばｋｅｙ１、ｋｅｙ２及びｋｅｙ３により再編成され、データが変更された完全な履歴をアクセスする能力を提供する。
【００４５】
本開示の１つの実施例では、ブロックチェーンの台帳データの管理装置３００は、履歴データを追跡するように、インデックスを有する台帳データを第三者データベースに記憶する記憶部（図示せず）をさらに含んでもよい。
【００４６】
本開示の実施例に係るブロックチェーンの台帳データの管理装置を用いることで、ユーザは、キー（識別子）の履歴レコードを便利に追跡することができ、キーの変更された完全な履歴レコードにアクセスすることができる。
【００４７】
以上は、本開示に係るブロックチェーンの台帳データの管理装置の３つの実施例を説明している。なお、本開示に係るブロックチェーンの台帳データの管理装置は上記３つの実施例に限定されない。言い換えれば、当業者が実際の要求に応じて、本開示に係るブロックチェーンの台帳データの管理装置における各部を任意に組み合わせてもよく、上記３つの組み合わせに限定されない。
【００４８】
以下は、図８〜図１０を参照しながら、本開示の実施例に係るブロックチェーンの台帳データの管理方法を説明する。本開示の１つの実施例では、図８に示すように、本開示の実施例に係るブロックチェーンの台帳データの管理方法は、ステップＳ８１０から開始する。
【００４９】
ステップＳ８１０において、無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、ブロックチェーンにおける各無効衝突トランザクションについて、その所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査する。
【００５０】
次に、ステップＳ８２０において、該無効衝突トランザクション及び該無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類する。
【００５１】
次に、ステップＳ８３０において、該無効衝突トランザクションの発生を回避するように、該衝突パターンに応じて、チェーンコードを改善するための提案を行う。
【００５２】
本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法は、該無効衝突トランザクションの台帳読み出し操作の識別子について、バックトラッキングにより、走査の経路における台帳書き込み操作を検索するステップと、該台帳書き込み操作が属する先行トランザクションを、該無効衝突トランザクションを引き起こした先行トランザクションとして特定するステップと、をさらに含む。
【００５３】
本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法では、該無効衝突トランザクションと該先行トランザクションは、同時にコミットされる。
【００５４】
本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法は、該衝突パターンは、同一の関数を並行に呼び出すこと、及び異なる関数を並行に呼び出すことを含む。
【００５５】
本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法は、該衝突パターンが同一の関数を並行に呼び出すことである場合、一括バッチ呼び出しを用いてチェーンコードを改善するための提案を行う。
【００５６】
本開示のもう１つの実施例では、図９に示すように、本開示の実施例に係るブロックチェーンの台帳データの管理方法は、ステップＳ９１０から開始する。
【００５７】
ステップＳ９１０において、該ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出する。
【００５８】
次に、ステップＳ９２０において、台帳データの照会を提供するように、該文書構造を用いて該台帳データを再編成する。
【００５９】
本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法は、抽出された文書構造を異なるタイプに分類するステップと、分類されたタイプに基づいて、該ブロックチェーンにおける台帳データを再走査し、全ての文書を該文書構造として収集するステップと、をさらに含む。
【００６０】
本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法は、収集された全ての文書を該文書構造の形式で第三者データベースに記憶するステップ、をさらに含む。
【００６１】
本開示のもう１つの実施例では、図１０に示すように、本開示の実施例に係るブロックチェーンの台帳データの管理方法は、ステップＳ１０１０から開始する。
【００６２】
ステップＳ１０１０において、該ブロックチェーンの台帳データにおける全てのトランザクションを走査する。
【００６３】
次に、ステップＳ１０２０において、該台帳データの識別子により該台帳データを再編成する。
【００６４】
次に、ステップＳ１０３０において、該識別子について該台帳データのインデックスを構築する。
【００６５】
本開示の１つの実施例に係るブロックチェーンの台帳データの管理方法は、履歴データを追跡するように、インデックスを有する台帳データを第三者データベースに記憶するステップ、をさらに含む。
【００６６】
本開示の実施例に係るブロックチェーンの台帳データの管理方法の上記ステップの各具体的な実施形態は既に詳細に説明されているため、ここでその説明を省略する。
【００６７】
なお、本開示のブロックチェーンの台帳データの管理方法の各処理は、各種の機器が読み取り可能な記憶媒体に記憶されたコンピュータ実行可能なプログラムにより実現されてもよい。
【００６８】
また、本開示の目的は、上記実行可能なプログラムコードを記憶した記憶媒体をシステム又は装置に直接的又は間接的に提供し、該システム又は装置におけるコンピュータ又は中央処理装置（ＣＰＵ）が該プログラムコードを読み出して実行することによって実現されてもよい。この場合は、該システム又は装置はプログラムを実行可能な機能を有すればよく、本開示の実施形態はプログラムに限定されない。また、該プログラムは任意の形式であってもよく、例えばオブジェクトプログラム、インタプリタによって実行されるプログラム、又はオペレーティングシステムに提供されるスクリプトプログラム等であってもよい。
【００６９】
上記の機器が読み取り可能な記憶媒体は、各種のメモリ、記憶部、半導体装置、光ディスク、磁気ディスク及び光磁気ディスクのようなディスク、並びに情報を記憶可能な他の媒体等を含むが、これらに限定されない。
【００７０】
また、コンピュータがインターネット上の対応するウェブサイトに接続され、本開示のコンピュータプログラムコードをコンピュータにダウンロード、インストール、そして実行することによって、本開示の実施形態を実現することができる。
【００７１】
図１１は、本開示の実施例に係るブロックチェーンの台帳データの管理装置及び管理方法を実現可能な汎用パーソナルコンピュータ１３００の例示的な構成を示すブロック図である。
【００７２】
図１１に示すように、ＣＰＵ１３０１は、読み出し専用メモリ（ＲＯＭ）１３０２に記憶されているプログラム、又は記憶部１３０８からランダムアクセスメモリ（ＲＡＭ）１３０３にロードされたプログラムにより各種の処理を実行する。ＲＡＭ１３０３には、必要に応じて、ＣＰＵ１３０１が各種の処理を実行するに必要なデータが記憶されている。ＣＰＵ１３０１、ＲＯＭ１３０２、及びＲＡＭ１３０３は、バス１３０４を介して互いに接続されている。入力／出力インターフェース１３０５もバス１３０４に接続されている。
【００７３】
入力部１３０６（キーボード、マウスなどを含む）、出力部１３０７（ディスプレイ、例えばブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、及びスピーカなどを含む）、記憶部１３０８（例えばハードディスクなどを含む）、通信部１３０９（例えばネットワークのインタフェースカード、例えばＬＡＮカード、モデムなどを含む）は、入力／出力インターフェース１３０５に接続されている。通信部１３０９は、ネットワーク、例えばインターネットを介して通信処理を実行する。必要に応じて、ドライバ１３１０は、入力／出力インターフェース１３０５に接続されてもよい。取り外し可能な媒体１３１１は、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどであり、必要に応じてドライバ１３１０にセットアップされて、その中から読みだされたコンピュータプログラムは必要に応じて記憶部１３０８にインストールされている。
【００７４】
ソフトウェアにより上記処理を実施する場合、ネットワーク、例えばインターネット、又は記憶媒体、例えば取り外し可能な媒体１３１１を介してソフトウェアを構成するプログラムをインストールする。
【００７５】
なお、これらの記憶媒体は、図１１に示されている、プログラムを記憶し、機器と分離してユーザへプログラムを提供する取り外し可能な媒体１３１１に限定されない。取り外し可能な媒体１３１１は、例えば磁気ディスク（フロッピーディスク（登録商標）を含む）、光ディスク（光ディスク−読み出し専用メモリ（ＣＤ−ＲＯＭ）、及びデジタル多目的ディスク（ＤＶＤ）を含む）、光磁気ディスク（ミニディスク（ＭＤ）（登録商標））及び半導体メモリを含む。或いは、記憶媒体は、ＲＯＭ１３０２、記憶部１３０８に含まれるハードディスクなどであってもよく、プログラムを記憶し、それらを含む機器と共にユーザへ提供される。
【００７６】
なお、本開示のシステム及び方法では、各ユニット又は各ステップを分解且つ、或いは再組み合わせてもよい。これらの分解及び／又は再組み合わせは、本開示と同等であると見なされる。また、本開示の方法は、明細書に説明された時間的順序で実行するものに限定されず、他の時間的順序で順次、並行、又は独立して実行されてもよい。このため、本明細書に説明された方法の実行順序は、本開示の技術的な範囲を限定するものではない。
【００７７】
以上は図面を参照しながら本開示の実施例を詳細に説明しているが、上述した実施形態及び実施例は単なる例示的なものであり、本開示を限定するものではない。当業者は、特許請求の範囲の主旨及び範囲内で本開示に対して各種の修正、変更を行ってもよい。これらの修正、変更は本開示の保護範囲に含まれるものである。
【００７８】
また、上述の各実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
ブロックチェーンの台帳データの管理装置であって、
無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、前記ブロックチェーンにおける各前記無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査する走査部と、
前記無効衝突トランザクション及び前記無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類する分類部と、
前記無効衝突トランザクションの発生を回避するように、前記衝突パターンに応じて、チェーンコードを改善するための提案を行う提案部と、を含む、装置。
（付記２）
前記走査部は、
前記無効衝突トランザクションの台帳読み出し操作の識別子について、バックトラッキングにより、走査の経路における台帳書き込み操作を検索し、
前記台帳書き込み操作が属する先行トランザクションを、前記無効衝突トランザクションを引き起こした先行トランザクションとして特定する、付記１に記載の装置。
（付記３）
前記無効衝突トランザクションと前記先行トランザクションは、同時にコミットされる、付記２に記載の装置。
（付記４）
前記衝突パターンは、同一の関数を並行に呼び出すこと、及び異なる関数を並行に呼び出すことを含む、付記１に記載の装置。
（付記５）
前記衝突パターンが同一の関数を並行に呼び出すことである場合、前記提案部は、一括バッチ呼び出しを用いてチェーンコードを改善するための提案を行う、付記４に記載の装置。
（付記６）
前記走査部は、前記ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出し、
前記装置は、台帳データの照会を提供するように、前記文書構造を用いて前記台帳データを再編成する編成部、をさらに含む、付記１に記載の装置。
（付記７）
前記分類部は、抽出された文書構造を異なるタイプに分類し、
前記走査部は、分類されたタイプに基づいて、前記ブロックチェーンにおける台帳データを再走査し、全ての文書を前記文書構造として収集する、付記６に記載の装置。
（付記８）
収集された全ての文書を前記文書構造の形式で第三者データベースに記憶する記憶部、をさらに含む、付記７に記載の装置。
（付記９）
前記走査部は、前記ブロックチェーンの台帳データにおける全てのトランザクションを走査し、
前記装置は、
前記台帳データの識別子により前記台帳データを再編成する編成部と、
前記識別子について前記台帳データのインデックスを構築するインデックス部と、を含む、付記１に記載の装置。
（付記１０）
履歴データを追跡するように、インデックスを有する台帳データを第三者データベースに記憶する記憶部、をさらに含む、付記９に記載の装置。
（付記１１）
ブロックチェーンの台帳データの管理方法であって、
無効衝突トランザクションを引き起こした先行トランザクションが特定されるまで、前記ブロックチェーンにおける各前記無効衝突トランザクションの所在ブロック及びその隣接ブロックにおける１つ又は複数の先行トランザクションを走査するステップと、
前記無効衝突トランザクション及び前記無効衝突トランザクションを引き起こした先行トランザクションにより構成された衝突ペアを、異なる衝突パターンに分類するステップと、
前記無効衝突トランザクションの発生を回避するように、前記衝突パターンに応じて、チェーンコードを改善するための提案を行うステップと、を含む、方法。
（付記１２）
前記無効衝突トランザクションの台帳読み出し操作の識別子について、バックトラッキングにより、走査の経路における台帳書き込み操作を検索するステップと、
前記台帳書き込み操作が属する先行トランザクションを、前記無効衝突トランザクションを引き起こした先行トランザクションとして特定するステップと、をさらに含む、付記１１に記載の方法。
（付記１３）
前記無効衝突トランザクションと前記先行トランザクションは、同時にコミットされる、付記１２に記載の方法。
（付記１４）
前記衝突パターンは、同一の関数を並行に呼び出すこと、及び異なる関数を並行に呼び出すことを含む、付記１１に記載の方法。
（付記１５）
前記衝突パターンが同一の関数を並行に呼び出すことである場合、一括バッチ呼び出しを用いてチェーンコードを改善するための提案を行う、付記１４に記載の方法。
（付記１６）
前記ブロックチェーンにおける全てのブロックを走査し、各トランザクションの文書構造を抽出するステップと、
台帳データの照会を提供するように、前記文書構造を用いて前記台帳データを再編成するステップと、をさらに含む、付記１１に記載の方法。
（付記１７）
抽出された文書構造を異なるタイプに分類するステップと、
分類されたタイプに基づいて、前記ブロックチェーンにおける台帳データを再走査し、全ての文書を前記文書構造として収集するステップと、をさらに含む、付記１６に記載の方法。
（付記１８）
収集された全ての文書を前記文書構造の形式で第三者データベースに記憶するステップ、をさらに含む、付記１７に記載の方法。
（付記１９）
前記ブロックチェーンの台帳データにおける全てのトランザクションを走査するステップと、
前記台帳データの識別子により前記台帳データを再編成するステップと、
前記識別子について前記台帳データのインデックスを構築するステップと、をさらに含む、付記１１に記載の方法。
（付記２０）
機器読み取り可能な命令コードを記憶しているプログラムプロダクトであって、前記命令コードがコンピュータにより読み取られて実行される際に、前記コンピュータに付記１１乃至１９の何れかに記載の方法を実行させることができる、プログラムプロダクト。
【図１】
2020188459.tif 000003
【図２】
2020188459.tif 000004
【図３】
2020188459.tif 000005
【図４】
2020188459.tif 000006
【図５】
2020188459.tif 000007
【図６】
2020188459.tif 000008
【図７】
2020188459.tif 000009
【図８】
2020188459.tif 000010
【図９】
2020188459.tif 000011
【図１０】
2020188459.tif 000012
【図１１】
2020188459.tif 000013