(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-26
(45)【発行日】2023-07-04
(54)【発明の名称】ブロックチェーントランザクションを追跡するための方法およびデバイス
(51)【国際特許分類】
G06Q 40/04 20120101AFI20230627BHJP
【FI】
G06Q40/04
(21)【出願番号】P 2021551810
(86)(22)【出願日】2020-01-10
(86)【国際出願番号】 CN2020071551
(87)【国際公開番号】W WO2020177488
(87)【国際公開日】2020-09-10
【審査請求日】2021-08-31
(31)【優先権主張番号】201910155057.1
(32)【優先日】2019-03-01
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】513278998
【氏名又は名称】中国▲銀▼▲聯▼股▲ふん▼有限公司
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】▲許▼ 玉壮
(72)【発明者】
【氏名】周 ▲ユ▼
【審査官】速水 雄太
(56)【参考文献】
【文献】CHEN, Wanghu, et al.,Blockchain based provenance sharing of scientific workflows,In 2018 IEEE International Conference on Big Data (Big Data),IEEE,2018年12月10日,pp. 3814-3820
【文献】CAI, Linxiang and WANG, Binjun,Research on tracking and tracing bitcoin fund flows,In 2018 IEEE 4th Information Technology and Mechatronics Engineering Conference (ITOEC) ,IEEE,2018年12月14日,pp. 1495-1499
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
ブロックチェーントランザクションを追跡するための方法であって、
ブロックチェーンシステムにおいて追跡待機のトランザクションTの情報を取得するステップと、
前記追跡待機のトランザクションTの入力値および前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションTを追跡するステップと、を含み、
前記ブロックチェーンシステムにおけるブロックそれぞれにブロックブルームフィルタが設定され、前記ブルームフィルタに前記ブロック内のすべてのトランザクションの出力値が格納され、
前記追跡待機のトランザクションTを追跡するステップは、
前記追跡待機のトランザクション入力値T_ikを決定し、ここで、kはトランザクションの回数であり、前記kは1より大きく、
入力値T_ikごとに、追跡待機の出力値T_okをT_ikとして決定し、対応のスレッドを作成し、
各スレッドにおいて、
前記追跡待機の出力値T_okおよび前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機の出力値T_okを生成するトランザクションT1が位置するブロックを決定し、
前記トランザクションT1が位置するブロックの決定に応答し、前記ブロック内のすべてのトランザクションをスキャンし、前記追跡待機の出力値T_okを生成する第1のトランザクションT1を見つけ、
前記第1のトランザクションT1がコインベーストランザクションである場合、遡及のスレッドを終了し、前記第1のトランザクションT1がコインベーストランザクションではない場合、すべての作成された遡及のスレッドが終了するまでに、前記第1のトランザクションT1を前記追跡待機のトランザクションのリーフノードとして決定し、前記第1のトランザクションT1を追跡するステップを含む
ことを特徴とする、ブロックチェーントランザクションを追跡するための方法。
【請求項2】
前記追跡待機の出力値T_okおよび前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機の出力値T_okを生成するトランザクションT1が位置するブロックを決定するステップは、
前記ブルームフィルタ内のm個のハッシュ関数を使用して前記追跡待機の出力値T_okをハッシュし、m個の対応する位置の値を取得するステップと、
前記m個の対応する位置の値が所定値である場合、前記ブロックを前記追跡待機の出力値T_okを生成するトランザクションT1が位置するブロックとして決定するステップとを含む
ことを特徴とする、請求項1に記載のブロックチェーントランザクションを追跡するための方法。
【請求項3】
前記第1のブロックに対応するブルームフィルタは、前記ブロックヘッダーまたは前記ブロックチェーンシステムのデータベースのブルームフィルタ配列に配置される
ことを特徴とする、請求項1に記載のブロックチェーントランザクションを追跡するための方法。
【請求項4】
ロックチェーントランザクションを追跡するためのデバイスであって、
ブロックチェーンシステムにおいて追跡待機のトランザクションTの情報を取得するための取得ユニットと、
前記追跡待機のトランザクションTの入力値および前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションTを追跡するための処理ユニットと、を含み、
前記ブロックチェーンシステムにおけるブロックそれぞれにブロックブルームフィルタが設定され、前記ブルームフィルタに前記ブロック内のすべてのトランザクションの出力値が格納され、
前記追跡待機のトランザクションTを追跡することは、
前記追跡待機のトランザクション入力値T_ikを決定し、ここで、kはトランザクションの回数であり、前記kは1より大きく、
入力値T_ikごとに、追跡待機の出力値T_okをT_ikとして決定し、対応のスレッドを作成し、
各スレッドにおいて、
前記追跡待機の出力値T_okおよび前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機の出力値T_okを生成するトランザクションT1が位置するブロックを決定し、
前記トランザクションT1が位置するブロックの決定に応答し、前記ブロック内のすべてのトランザクションをスキャンし、前記追跡待機の出力値T_okを生成する第1のトランザクションT1を見つけ、
前記第1のトランザクションT1がコインベーストランザクションである場合、遡及のスレッドを終了し、前記第1のトランザクションT1がコインベーストランザクションではない場合、すべての作成された遡及のスレッドが終了するまでに、前記第1のトランザクションT1を前記追跡待機のトランザクションのリーフノードとして決定し、前記第1のトランザクションT1を追跡することを含む
ことを特徴とする、ブロックチェーントランザクションを追跡するためのデバイス。
【請求項5】
前記処理ユニットは、
前記ブルームフィルタ内のm個のハッシュ関数を使用して前記追跡待機の出力値T_okをハッシュし、m個の対応する位置の値を取得し、
前記m個の対応する位置の値が所定値である場合、前記ブロックを前記追跡待機の出力値T_okを生成するトランザクションT1が位置するブロックとして決定する
ことを特徴とする、請求項4に記載のブロックチェーントランザクションを追跡するためのデバイス。
【請求項6】
前記第1のブロックに対応するブルームフィルタは、前記ブロックヘッダーまたは前記ブロックチェーンシステムのデータベースのブルームフィルタ配列に配置される
ことを特徴とする、請求項4に記載のブロックチェーントランザクションを追跡するためのデバイス。
【請求項7】
コンピュータ可読記憶媒体であって、
コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令は、コンピュータに、請求項1から3のいずれか一項に記載の方法を実行させるように構成される、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年3月1日に中国特許局に提出し、出願番号が201910155057.1であり、発明名称が「ブロックチェーントランザクションを追跡するための方法およびデバイス」との中国特許出願を基礎とする優先権を主張し、その開示の総てをここに取り込む。
【0002】
本発明の実施形態は、ブロックチェーン技術の分野に関し、特にブロックチェーントランザクションを追跡するための方法およびデバイスに関する。
【背景技術】
【0003】
ブロックチェーンベースのデジタル通貨技術プロジェクトの研究を行う場合、UTXO(Unspent Transaction Output,未使用トランザクション出力)アカウントシステムを備えたブロックチェーンシステムで、現在のブロックから特定の祖先ブロックのトランザクションパス(ジェネシスブロックを含む)トランザクションまでのトランザクションを追跡する必要があることがよくある。各ブロックチェーンを順番にスキャンすると、スペースと時間のオーバーヘッドが比較的大きくなり、システムリソースが浪費される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態は、ブロックチェーントランザクションを追跡するための方法およびデバイスを提供し、これは、トランザクションの追跡パスを迅速に構築し、システムオーバーヘッドを節約するために使用される。
【0005】
本発明の実施形態は、ブロックチェーントランザクションを追跡するための方法を提供する。前記方法は、
追跡待機のトランザクションの情報を取得するステップと、
前記追跡待機のトランザクションの入力値およびブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションのリーフノードを決定するステップと、前記追跡待機のトランザクションのリーフノードに従い、前記追跡待機のトランザクションの追跡パスを生成するステップとを含み、
前記追跡待機のトランザクションの情報には、前記追跡待機のトランザクションの入力値が含まれ、
前記ブルームフィルタは、前記ブロックに含まれるトランザクションの出力値を格納する。
【0006】
上記の技術的解決策では、各ブロックに対応するブルームフィルタを設定することにより、追跡待機のトランザクションの入力値に従い、追跡待機のトランザクションの追跡パスを迅速に生成できるため、追跡パスの追跡効率が向上し、システムオーバーヘッドを削減することができる。
【0007】
オプションで、前記追跡待機のトランザクションの入力値およびブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションのリーフノードを決定するステップは、
前記追跡待機のトランザクションの入力値を、追跡待機の出力値として決定するステップと、
前記追跡待機の出力値および前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションが依存するトランザクションが位置するブロックを決定するステップと、
前記追跡待機の出力値に従い、追跡待機のトランザクションが依存するトランザクションが位置するブロックから前記追跡待機の出力値と同じ第1のトランザクションを検索するステップと、
前記第1のトランザクションが、マイニングトランザクションのトランザクションまたは事前設定された終了条件を満たすブロックのトランザクションである場合、追跡を終了し、それ以外の場合、前記第1のトランザクションを前記追跡待機のトランザクションのリーフノードとして決定し、前記第1のトランザクションの入力値を前記追跡待機の出力値として決定し、追跡が終了したと判断されるまで、前記追跡待機のトランザクションが依存するトランザクションを継続的に決定するステップとを含む。
【0008】
オプションで、前記追跡待機の出力値および前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションが依存するトランザクションが位置するブロックを決定するステップは、
前記ブルームフィルタ内のm個のハッシュ関数を使用して前記追跡待機の出力値をハッシュし、m個の対応する位置の値を取得するステップは、
前記m個の対応する位置の値が所定値である場合、前記ブロックを前記追跡待機のトランザクションが依存するトランザクションが位置するブロックとして決定するステップを含む。
【0009】
オプションで、前記追跡待機のトランザクションの情報を取得する前に、
第1のブロックが生成される場合、前記第1のブロック内のすべてのトランザクションの出力値を前記第1のブロックに対応するブルームフィルタに格納する。
【0010】
オプションで、前記第1のブロックに対応するブルームフィルタは、前記ブロックヘッダーまたは前記ブロックチェーンシステムのデータベースのブルームフィルタ配列に配置される。
【0011】
対応的に、本発明の実施形態は、ブロックチェーントランザクションを追跡するためのデバイスをさらに提供する。前記デバイスは、
追跡待機のトランザクションの情報を取得するための取得ユニットと、
前記追跡待機のトランザクションの入力値およびブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションのリーフノードを決定し、前記追跡待機のトランザクションのリーフノードに従い、前記追跡待機のトランザクションの追跡パスを生成するための処理ユニットと、
前記追跡待機のトランザクションの情報には、前記追跡待機のトランザクションの入力値が含まれ、
前記ブルームフィルタは、前記ブロックに含まれるトランザクションの出力値を格納する。
【0012】
オプションで、前記処理ユニットは、具体的に、
前記追跡待機のトランザクションの入力値を、追跡待機の出力値として決定し、
前記追跡待機の出力値および前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションが依存するトランザクションが位置するブロックを決定し、
前記追跡待機の出力値に従い、追跡待機のトランザクションが依存するトランザクションが位置するブロックから前記追跡待機の出力値と同じ第1のトランザクションを検索し、
前記第1のトランザクションが、マイニングトランザクションのトランザクションまたは事前設定された終了条件を満たすブロックのトランザクションである場合、追跡を終了し、それ以外の場合、前記第1のトランザクションを前記追跡待機のトランザクションのリーフノードとして決定し、前記第1のトランザクションの入力値を前記追跡待機の出力値として決定し、追跡が終了したと判断されるまで、前記追跡待機のトランザクションが依存するトランザクションを継続的に決定する。
【0013】
オプションで、前記処理ユニットは、具体的に、
前記ブルームフィルタ内のm個のハッシュ関数を使用して前記追跡待機の出力値をハッシュし、m個の対応する位置の値を取得し、
前記m個の対応する位置の値が所定値である場合、前記ブロックを前記追跡待機のトランザクションが依存するトランザクションが位置するブロックとして決定する。
オプションで、前記処理ユニットはさらに、
前記追跡待機のトランザクションの情報を取得する前に、第1のブロックが生成される場合、前記第1のブロック内のすべてのトランザクションの出力値を前記第1のブロックに対応するブルームフィルタに格納する。
【0014】
オプションで、前記第1のブロックに対応するブルームフィルタは、前記ブロックヘッダーまたは前記ブロックチェーンシステムのデータベースのブルームフィルタ配列に配置される。
【0015】
同様に、本発明の一実施形態はまた、コンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体は、コンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令は、コンピュータに上記のブロックチェーントランザクションを実行させるために使用される。
【0016】
これに応じて、本発明の実施形態は、コンピューティングデバイスをさらに提供し、前記コンピューティングデバイスは、メモリと、プロセッサとを含み、前記メモリ,前記コンピューティングデバイスは、1つまたは複数の実行可能プログラムを格納し、前記プロセッサを構成するために使用され、前記プロセッサには、1つまたは複数の実行可能プログラムが構成され、前記1つまたは複数の実行可能プログラムは、上記のいずれかで説明されているブロックチェーントランザクションを追跡するための方法を実行するために使用される。
【図面の簡単な説明】
【0017】
本発明の実施形態における技術的解決策をより明確に説明するために、以下は、実施形態の説明に必要な図面を簡単に紹介する。明らかに、以下の説明の図面は、本発明のいくつかの実施形態にすぎない。当業者の、創造的な仕事なしで、他の図面はこれらの図面から得ることができる。
【0018】
【
図1】本発明の実施形態によって提供されるシステムアーキテクチャの概略図である。
【
図2】本発明の実施形態によって提供されるブロックチェーントランザクションを追跡するための方法の概略フローチャートである。
【
図3】本発明の実施形態によって提供されるブロックの構造の概略図である。
【
図4】本発明の実施形態によって提供されるブルームフィルタの概略図である。
【
図5】本発明の実施形態によって提供されるリーフノードの概略図である。
【
図6】本発明の実施形態によって提供される追跡パスの概略図である。
【
図7】本発明の実施形態によって提供されるブルームフィルタ配列の概略図である。
【
図8】本発明の実施形態によって提供されるブロックチェーントランザクションを追跡するためのデバイスの構造の概略図である。
【
図9】本発明の実施形態によって提供されるコンピューティングデバイスの構造の概略図である。
【発明を実施するための形態】
【0019】
本発明に係る実施例の目的、技術案及びメリットをより明確にするため、以下、本発明に係る実施例の図面を参考しながら、本発明に係る実施例の技術案を明確かつ完全に説明する。説明した実施例は本発明の一部の実施例にすぎず、全部の実施例ではないのが明らかである。本発明の実施例に基づき、当業者は、創造性作業を行わない限りに得られた他の実施例は、全部本発明の保護範囲に属する。
【0020】
図1は、本発明の実施形態に適用可能なシステムアーキテクチャである。
図1を参照すると、当該システムアーキテクチャは、複数のクライアント100およびブロックチェーンシステム200を含み得る。クライアント100は、ネットワークを介してブロックチェーンシステム200に接続され得る。
【0021】
当該複数のクライアント100は、異なる組織によって使用されるクライアントであり得、当該クライアント100を介してブロックチェーンシステム200にアクセスすることができる。
【0022】
図1に示す構造は一例に過ぎず、本発明の実施形態に限定されないことに留意されたい。
【0023】
上記の説明に基づいて、
図2は、本発明の実施形態によって提供されるブロックチェーントランザクションを追跡するための方法のフローを例示的に示す。当該フローは、ブロックチェーントランザクションを追跡するためのデバイスによって実行することができ、当該デバイスは、上記のブロックチェーンシステムである。
【0024】
図2に示すように、このプロセスには具体的に次のものが含まれる。
【0025】
ステップ201:追跡待機のトランザクションの情報を取得する。
【0026】
本発明の実施形態では、当該追跡待機のトランザクションの情報は、跡待機のトランザクションの入力値を含み得る。UTXOアカウントシステムのブロックチェーンシステムの場合、各トランザクションには入力値と出力値があり、各トランザクションの出力値は、当該トランザクションの次のトランザクションの入力値である。したがって、現在のトランザクションの入力値により、それが依存するすべての履歴トランザクションを追跡する。
【0027】
当該追跡待機のトランザクションの情報を取得する前に、各ブロックを生成するときに対応するブルームフィルタを設定する必要もある。各ブロックは1つのブルームフィルタに対応する。具体的には、第1のブロックが生成される場合、当該第1のブロック内のすべてのトランザクションの出力値を前記第1のブロックに対応するブルームフィルタに格納することができる。
【0028】
当該ブルームフィルタは、当該第1のブロックのブロックヘッダーに配置することも、ブロックチェーンシステムのデータベースのブルームフィルターアレイに配置することもできることに注意してください。ブルームフィルタがブロックヘッダーにある場合、ブロックの特定の構造を
図3に示すことができる。
【0029】
ステップ202:前記追跡待機のトランザクションの入力値およびブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションのリーフノードを決定する。
【0030】
追跡待機の追跡トランザクションの入力値を取得すると、各ブロックに対応するブルームフィルタに従って、当該追跡待機の追跡トランザクションのリーフノードを決定できる。当該リーフノードは、追跡パスのノードでもあり、リーフトランザクションと呼ばれ、当該追跡待機のトランザクションが依存するトランザクションである。
【0031】
具体的には、ブロックごとに、まず追跡待機の追跡トランザクションの入力値を追跡する出力値として決定し、当該追跡待機の出力値とブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、当該追跡待機のトランザクションが依存するトランザクションが位置するブロックを決定する。次に、当該追跡待機の出力値に従って、追跡待機の出力値と同じ第1のトランザクションが、追跡待機のトランザクションが依存するブロックで検出される。最後に、判断が下される。第1のトランザクションがマイニング(コインベース)トランザクションのトランザクション、または事前設定された終了条件を満たすブロックのトランザクションである場合、追跡は終了する。それ以外の場合、第1のトランザクションはリーフノードとして決定される。追跡待機のトランザクションの第1のトランザクションは、追跡待機のトランザクションのリーフノードとして決定される。そして、第1のトランザクションの入力値は、追跡待機の追跡される出力値として決定される。追跡の終了が決定されるまで、追跡待機のトランザクションが依存するトランザクションは、継続的に決定される。当該事前設定された終了条件は、経験に基づいて設定できる。もちろん、ここで第1のトランザクションを決定するとき、第1のトランザクションがジェネシスブロック内のトランザクションであるか、事前設定されたブロックの高さ未満のトランザクションであるかなども判断でき、特定の実施プロセスで合理的な調整を行うことができる。
【0032】
追跡待機のトランザクションが依存するトランザクションが位置するブロックを決定するプロセスでは、ブルームフィルタ内のm個のハッシュ関数を使用して、前記追跡待機の出力値をハッシュし、m個の対応する位置の値を取得できる。次に、判断が行われ、m個の対応する位置の値がすべて所定値である場合、追跡待機のトランザクションが依存するトランザクションが位置するブロックとして当該ブロックが決定される。ここでの所定値は、経験に基づいて設定できる。たとえば、1にすることができる。m個の対応する位置の値がすべて1の場合、追跡待機のトランザクションが依存するトランザクションがブロック内にあると判断できる。
【0033】
ステップ203:前記追跡待機のトランザクションのリーフノードに従い、前記追跡待機のトランザクションの追跡パスを生成する。
【0034】
当該追跡待機のトランザクションのすべてのリーフノードが取得されると、これらのリーフノードに基づいて追跡待機のトランザクションの追跡パスを生成できる。当該追跡パスはツリー構造である。もちろん、特定の実施の場合、他の構造を持つこともできる。グラフ構造などであることもできる。
【0035】
さらに、トランザクションを追跡する場合、複数のスレッド(multithreading)を使用して同時追跡を行うことができるため、追跡の効率が向上する。
【0036】
本発明の実施形態をよりよく説明するために、以下は、特定の実施シナリオを通じたブロックチェーントランザクション追跡のプロセスを説明する。
【0037】
実施形態1
本発明の実施形態では、サイズが1024ビットで誤判定率が0.001のブルームフィルタが選択される。トランザクションTのパスを追跡し、そのパスに4つのレベルのトランザクションがあり、各トランザクションに2つの入力値があるとする。具体的なプロセスは次のとおりである。
【0038】
手順1.ブロックを生成するときは、ブロックヘッダーにブルームフィルタを記録する。このブロック内のすべてのトランザクションの各出力値をブルームフィルタに追加する。
【0039】
手順2. 追跡待機のトランザクションTを追跡する。Tの入力値が{T_i1, T_i2 }であると仮定して、入力値T_ikごとに、追跡待機の出力値T_ok=T_ikを設定し、スレッドを作成して、手順3~5を実行する。
【0040】
手順3.すべてのブロックのブロックヘッダーをスキャンする。ブロックヘッダーからブルームフィルタAを取得し、ブルームフィルタのmハッシュ関数を使用して、出力値T_okをハッシュし、ブルームフィルタAの対応する位置の値が1であるかどうかを判別する。m個の対応する位置の値がすべて1の場合、追跡待機の出力値T_okを生成するトランザクションがこのブロックにあることを意味する。詳細を
図4に示す。
【0041】
手順4.このブロック内のすべてのトランザクションをスキャンし、追跡待機の出力値T_okを生成するトランザクションT1を見つけ、
図5に示すように、トランザクションTのリーフノードとしてT1を使用する。
【0042】
手順5.トランザクションT1の場合、T1がコインベース(coinbase)トランザクションの場合、追跡は終了する。それ以外の場合は、手順2に進む。
【0043】
最後に、
図6に示すように、ツリーのようなトランザクション追跡パスが生成される。ここで、T7、T8、T9、およびT10はコインベーストランザクションである。
【0044】
実施形態2
この実施形態では、サイズが1024ビットで誤判定率が0.001であるブルームフィルタが選択される。トランザクションTのパスを追跡し、そのパスに4つのレベルのトランザクションがあり、各トランザクションに2つの入力値があるとする。具体的なプロセスは次のとおりである。
【0045】
手順1.準備段階:まず、ブロックごとに、ブロック内のすべてのトランザクションの出力値に基づいてブルームフィルタ配列を構築し、
図7に示す構造のデータベースに格納する。
【0046】
手順2.追跡待機のトランザクションTを追跡する。Tの入力値が{T_i1, T_i2}であると仮定して、入力値T_ikごとに、追跡待機の出力値T_ok=T_ikを設定し、スレッドを作成して、手順3~5を実行する。
【0047】
手順3.すべてのブロックのブロックヘッダーをスキャンする。データベースからブルームフィルタ配列Aを取り出し、ブルームフィルタのmハッシュ関数を使用して追跡待機の出力値T_okをハッシュし、ブルームフィルタ配列Aの対応する位置の値が1であるかどうかを判別する。m個の対応する位置の値がすべて1の場合、追跡待機の出力値T_okを生成するトランザクションがこのブロックにあることを意味する。詳細を
図4に示す。
【0048】
手順4.このブロック内のすべてのトランザクションをスキャンし、追跡待機の出力値T_okを生成するトランザクションT1を見つけ、
図5に示すように、トランザクションTのリーフノードとしてT1を使用する。
【0049】
手順5.トランザクションT1の場合、T1がコインベーストランザクションの場合、遡及は終了する。それ以外の場合は、手順2に進む。
【0050】
最後に、
図6に示すように、ツリーのようなトランザクション追跡パスが生成される。ここで、T7、T8、T9、およびT10はコインベーストランザクションである。
【0051】
上記の実施形態は、追跡待機のトランザクションの情報が取得され、追跡待機のトランザクションの情報が、追跡待機のトランザクションの入力値を含むことを示している。追跡待機のトランザクションの入力値およびブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、追跡待機のトランザクションのリーフノード,ブルームフィルタにブロックに含まれるトランザクションの出力値を決定し、追跡待機のトランザクションのリーフノードに従い、追跡待機のトランザクションの追跡パスを生成する。各ブロックに対応するブルームフィルタを設定することにより、追跡待機のトランザクションの入力値に従い、追跡待機のトランザクションの追跡パスを迅速に生成できるため、追跡パスの追跡効率が向上し、システムオーバーヘッドを削減することができる。
【0052】
同じ技術的思想に基づいて、
図8は、本発明の実施形態によって提供されるブロックチェーントランザクションを追跡するためのデバイスを例示的に示しており、当該デバイスは、ブロックチェーントランザクション追跡プロセスを実行することができる。
【0053】
図8に示すように、当該デバイスには具体的に、
追跡待機のトランザクションの情報を取得するように構成される取得ユニット801と、
前記追跡待機のトランザクションの入力値およびブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションのリーフノードを決定し、前記追跡待機のトランザクションのリーフノードに従い、前記追跡待機のトランザクションの追跡パスを生成するように構成される処理ユニット802とを含む。
【0054】
前記追跡待機のトランザクションの情報には、前記追跡待機のトランザクションの入力値が含まれる。前記ブルームフィルタは、前記ブロックに含まれるトランザクションの出力値を格納する。
【0055】
オプションで、前記処理ユニット802は、特に、
前記追跡待機のトランザクションの入力値を、追跡待機の出力値として決定し、
前記追跡待機の出力値および前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションが依存するトランザクションが位置するブロックを決定し、
前記追跡待機の出力値に従い、追跡待機のトランザクションが依存するトランザクションが位置するブロックから前記追跡待機の出力値と同じ第1のトランザクションを検索し、
前記第1のトランザクションが、マイニングトランザクションのトランザクションまたは事前設定された終了条件を満たすブロックのトランザクションである場合、追跡を終了し、それ以外の場合、前記第1のトランザクションを前記追跡待機のトランザクションのリーフノードとして決定し、前記第1のトランザクションの入力値を前記追跡待機の出力値として決定し、追跡が終了したと判断されるまで、前記追跡待機のトランザクションが依存するトランザクションを継続的に決定する。
【0056】
オプションで、前記処理ユニット802は、特に、前記ブルームフィルタ内のm個のハッシュ関数を使用して前記追跡待機の出力値をハッシュし、m個の対応する位置の値を取得し、
前記m個の対応する位置の値が所定値である場合、前記ブロックを前記追跡待機のトランザクションが依存するトランザクションが位置するブロックとして決定する。
【0057】
オプションで、前記処理ユニット802はさらに、前記追跡待機のトランザクションの情報を取得する前に、第1のブロックが生成される場合、前記第1のブロック内のすべてのトランザクションの出力値を前記第1のブロックに対応するブルームフィルタに格納する。
【0058】
オプションで、前記第1のブロックに対応するブルームフィルタは、前記ブロックヘッダーまたは前記ブロックチェーンシステムのデータベースのブルームフィルタ配列に配置される。
【0059】
同じ技術的思想に基づいて、本発明の実施形態はまた、コンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体は、コンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令は、コンピュータに上記ブロックチェーントランザクションを追跡するための方法を実行させるために使用される。
【0060】
同じ技術的思想に基づいて、本発明の実施形態は、コンピューティングデバイスも提供する。
図9を参照すると、当該コンピューティングデバイス900は、本発明の前述の実施形態に適用することができる。コンピューティングデバイス900は、メモリ901およびプロセッサ902を含む。
【0061】
前記メモリ901は、1つまたは複数の実行可能プログラムを格納し、前記プロセッサ902を構成するために使用される。
【0062】
前記プロセッサ902は、1つまたは複数の実行可能プログラムで構成され、前記1つまたは複数の実行可能プログラムは、以下の方法を実行するために使用される:追跡待機のトランザクションの情報を取得し、前記追跡待機のトランザクションの情報には、前記追跡待機のトランザクションの入力値が含まれる。前記追跡待機のトランザクションの入力値およびブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションのリーフノードを決定する前記ブルームフィルタは、前記ブロックに含まれるトランザクションの出力値を格納し、前記追跡待機のトランザクションのリーフノードに従い、前記追跡待機のトランザクションの追跡パスを生成する。ここで、前記メモリ901は、プログラムを格納するために構成される。具体的には、プログラムはプログラムコードを含み得、前記プログラムコードはコンピュータ操作命令を含み得る。メモリ901は、ランダムアクセスメモリ(random-access memory,略してRAM)などの揮発性メモリ(volatile memory)であり得るし、また、以下のような不揮発性メモリ(不揮発性メモリ)であり得る。フラッシュメモリ(flash memory)、ハードディスクドライブ(hard disk drive,略してHDD)またはソリッドステートドライブ(solid-state drive,略してSSD)などの不揮発性メモリ(non-volatile memory)であり得る。上記の揮発性メモリと不揮発性メモリのいずれか1つまたは組み合わせにすることもできる。
【0063】
メモリ901は、以下の要素、実行可能モジュールまたはデータ構造、またはそれらのサブセット、またはそれらの拡張セットを格納する。
【0064】
操作指令:さまざまな操作を実施するために使用される、さまざまな操作指令を含む。
【0065】
オペレーティングシステム:さまざまな基本サービスを実施し、ハードウェアベースのタスクを処理するために使用されるさまざまなシステムプログラムを含む。
【0066】
前記プロセッサ902は、中央処理装置(central processing unit,略してCPU)、ネットワークプロセッサ(network processor,略してNP)、またはCPUとNPの組み合わせであり得る。ハードウェアチップにすることもできる。前述のハードウェアチップは、特定用途向け集積回路(application-specific integrated circuit,略してASIC)、プログラマブルロジックデバイス(programmable logic device,略してPLD)、またはそれらの組み合わせであり得る。上記のPLDは、コンプレックスプログラマブルロジックデバイス(complex programmable logic device,CPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array,FPGA)、一般的なアレイロジック(generic array logic,GAL)、またはそれらの任意の組み合わせであり得る。可能な設計では、メモリ901はまた、プロセッサ902と統合され得る。
【0067】
バス903は、周辺コンポーネント相互接続(peripheral component interconnect,PCI)バスまたは拡張産業標準アーキテクチャ(extended industry standard architecture,EISA)バスなどであり得る。バスは、アドレスバス、データバス、制御バスなどに分けることができる。表現を容易にするために、
図9では太い線が1本だけ使用されているが、バスが1つまたはバスのタイプが1つしかないことを意味するものではない。
【0068】
可能な実施方法では、前記プロセッサ902は、特に、
前記追跡待機のトランザクションの入力値を、追跡待機の出力値として決定し、
前記追跡待機の出力値および前記ブロックチェーンシステムの各ブロックに対応するブルームフィルタに従い、前記追跡待機のトランザクションが依存するトランザクションが位置するブロックを決定し、
前記追跡待機の出力値に従い、追跡待機のトランザクションが依存するトランザクションが位置するブロックから前記追跡待機の出力値と同じ第1のトランザクションを検索し、
前記第1のトランザクションが、マイニングトランザクションのトランザクションまたは事前設定された終了条件を満たすブロックのトランザクションである場合、追跡を終了し、それ以外の場合、前記第1のトランザクションを前記追跡待機のトランザクションのリーフノードとして決定し、前記第1のトランザクションの入力値を前記追跡待機の出力値として決定し、追跡が終了したと判断されるまで、前記追跡待機のトランザクションが依存するトランザクションを継続的に決定する。
【0069】
可能な実施方法では、プロセッサ902は、特に、
前記ブルームフィルタ内のm個のハッシュ関数を使用して前記追跡待機の出力値をハッシュし、m個の対応する位置の値を取得し、
前記m個の対応する位置の値が所定値である場合、前記ブロックを前記追跡待機のトランザクションが依存するトランザクションが位置するブロックとして決定する。
【0070】
可能な実施方法では、プロセッサ902はさらに、追跡待機のトランザクションの情報を取得する前に、第1のブロックが生成される場合、前記第1のブロック内のすべてのトランザクションの出力値を前記第1のブロックに対応するブルームフィルタに格納する。
【0071】
可能な実施方法では、前記第1のブロックに対応するブルームフィルタは、前記ブロックヘッダーまたは前記ブロックチェーンシステムのデータベースのブルームフィルタ配列に配置される。
【0072】
以上は本発明の実施形態の方法、装置(システム)、およびコンピュータプログラム製品のフロー図および/またはブロック図によって、本発明を記述した。理解すべきことは、コンピュータプログラム指令によって、フロー図および/またはブロック図における各フローおよび/またはブロックと、フロー図および/またはブロック図におけるフローおよび/またはブロックの結合を実現できる。プロセッサはこれらのコンピュータプログラム指令を、汎用コンピュータ、専用コンピュータ、組込み式処理装置、或いは他のプログラム可能なデータ処理装置設備の処理装置器に提供でき、コンピュータ或いは他のプログラム可能なデータ処理装置のプロセッサは、これらのコンピュータプログラム指令を実行し、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
【0073】
これらのコンピュータプログラム指令は、又、コンピュータ或いは他のプログラム可能なデータ処理装置を特定方式で動作させるコンピュータ読取記憶装置に記憶できる。これによって、指令を含む装置は当該コンピュータ読取記憶装置内の指令を実行でき、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
【0074】
これらコンピュータプログラム指令はさらに、コンピュータ或いは他のプログラム可能なデータ処理装置設備に実装もできる。コンピュータプログラム指令が実装されたコンピュータ或いは他のプログラム可能設備は、一連の操作ステップを実行することによって、関連の処理を実現し、コンピュータ或いは他のプログラム可能な設備において実行される指令によって、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
【0075】
上述した実施形態に記述された技術的な解決手段を改造し、或いはその中の一部の技術要素を置換することもできる。そのような、改造と置換は本発明の各実施形態の技術の範囲から逸脱するとは見なされない。
【0076】
無論、当業者によって、上述した実施形態に記述された技術的な解決手段を改造し、或いはその中の一部の技術要素を置換することもできる。そのような、改造と置換は本発明の各実施形態の技術の範囲から逸脱するとは見なされない。そのような改造と置換は、すべて本発明の請求の範囲に属する。