(57)【特許請求の範囲】
【請求項１】
暗号資産のアドレスの汚染度を計算する方法であって、
ブロックチェーンの高さｉ（ｉは正の整数）のブロックに含まれるｊ番目（ｊは正の整数）のトランザクションにつき、
前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、
前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、
前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、
前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップと
を含むことを特徴とする方法。
【請求項２】
前記トランザクションの出力が表すアドレスが、前記トランザクションのいずれかの入力が表すアドレスと一致する場合、前記計算は、前記合計の合計値から前記一致したアドレスからの移動量若しくは汚染度のうちの小さい方を引いた値又は前記出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算することを特徴とする請求項１に記載の方法。
【請求項３】
前記取得の前に、前記高さｉのブロックに含まれるいずれかのトランザクションにより発生する汚染アドレスの汚染度を前記対応づけに記憶するステップをさらに含むことを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記トランザクションのいずれかの入力が表すアドレスについて前記対応づけにフラグが記録されている場合にはその汚染度を前記合計の対象から除外することを特徴とする請求項１から３のいずれかに記載の方法。
【請求項５】
各汚染アドレスが発生したブロックの高さ及び汚染度の一覧に新たな汚染アドレスが登録された後に、前記新たな汚染アドレスの高さより前のいずれかのブロックから、前記対応づけに関する再計算を行うことを特徴とする請求項１から４のいずれかに記載の方法。
【請求項６】
前記暗号資産は、ビットコイン、イーサリウム、リップル、テザー、ライトコイン、ビットコインキャッシュ、イーサリウムクラシック、モナコイン、リスク、ＥＯＳ、ネム、ビットコインＳＶ、ＥＲＣ２０トークンのいずれかであることを特徴とする請求項１から５のいずれかに記載の方法。
【請求項７】
コンピュータに、暗号資産のアドレスの汚染度を計算する方法を実行させるためのプログラムであって、前記方法は、
ブロックチェーンの高さｉ（ｉは正の整数）のブロックに含まれるｊ番目（ｊは正の整数）のトランザクションにつき、
前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、
前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、
前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、
前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップと
を含むことを特徴とするプログラム。
【請求項８】
暗号資産のアドレスの汚染度を計算する装置であって、
ブロックチェーンの高さｉ（ｉは正の整数）のブロックに含まれるｊ番目（ｊは正の整数）のトランザクションにつき、
前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得して、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計し、
前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算し、
前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新することを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号資産のアドレスの汚染度を計算するための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
ビットコインを初めとする暗号資産の送金はアドレス間で行われる。暗号資産の流通において懸念される問題は犯罪収益の送金先となったアドレスの関与である。たとえば、取引所から不正に引き出した暗号資産を複数のアドレスに送金し、そのようにして送金を受けた各アドレスからさらに複数のアドレスに送金することを繰り返すことで、取引所からの暗号資産の流出先となったアドレスが関与していることの検知が困難になっていく。暗号資産が社会により根付いていくためには、いわゆるマネーロンダリング対策（ＡＭＬ）として、アドレス間の疑わしい取引を監視する暗号資産のためのトランザクションモニタリングが求められている。
【０００３】
一例として、犯罪収益の移転先として特定されたアドレス（以下「汚染アドレス」とも呼ぶ。）の一覧を登録しておき、送金者Ｘから受取者Ｙへの送金を行うためのトランザクションについて、当該トランザクションにおける１又は複数の送金元アドレスの残高に寄与した過去の一連のアドレスに汚染アドレスが含まれるか否かを判定する手法が考えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このようは手法によってトランザクションモニタリングを行うとすれば、汚染アドレスから少額の送金を多数のアドレスに対して一方的に行うことで、本来はなんら犯罪に関わりのない多数のアドレスが、当該アドレスの残高に寄与した過去の一連のアドレスに汚染アドレスを含むものとなってしまい、現実的ではない。
【０００５】
本発明は、このような問題点に鑑みてなされたものであり、その目的は、暗号資産の送金元のアドレスの疑わしさ（suspiciousness）を定量的に表すための装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
このような問題点を解決するために、本発明の第１の態様は、暗号資産のアドレスの汚染度を計算する方法であって、ブロックチェーンの高さｉ（ｉは正の整数）のブロックに含まれるｊ番目（ｊは正の整数）のトランザクションにつき、前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップとを含むことを特徴とする。
【０００７】
また、本発明の第２の態様は、第１の態様において、前記トランザクションの出力が表すアドレスが、前記トランザクションのいずれかの入力が表すアドレスと一致する場合、前記計算は、前記合計の合計値から前記一致したアドレスからの移動量若しくは汚染度のうちの小さい方を引いた値又は前記出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算することを特徴とする。
【０００８】
また、本発明の第３の態様は、第１又は第２の態様において、前記取得の前に、前記高さｉのブロックに含まれるいずれかのトランザクションにより発生する汚染アドレスの汚染度を前記対応づけに記憶するステップをさらに含むことを特徴とする。
【０００９】
また、本発明の第４の態様は、第１から第３のいずれかの態様において、前記トランザクションのいずれかの入力が表すアドレスについて前記対応づけにフラグが記録されている場合にはその汚染度を前記合計の対象から除外することを特徴とする。
【００１０】
また、本発明の第５の態様は、第１から第４のいずれかの態様において、各汚染アドレスが発生したブロックの高さ及び汚染度の一覧に新たな汚染アドレスが登録された後に、前記新たな汚染アドレスの高さより前のいずれかのブロックから、前記対応づけに関する再計算を行うことを特徴とする。
【００１１】
また、本発明の第６の態様は、第５の態様において、前記再計算は、前記ブロックチェーンに新たに追加されるブロックに対する前記対応づけに関する前記計算を行う第１のサーバとは異なる第２のサーバにおいて実行することを特徴とする。
【００１２】
また、本発明の第７の態様は、第６の態様において、前記第２のサーバにおいて計算が完了したブロックの高さが前記第１のサーバにおいて計算が完了したブロックの高さと同一となった後に有効なサーバを前記第１のサーバから前記第２のサーバに切り替えることを特徴とする。
【００１３】
また、本発明の第８の態様は、第１から第７のいずれかの態様において、前記暗号資産は、ビットコイン、イーサリウム、リップル、テザー、ライトコイン、ビットコインキャッシュ、イーサリウムクラシック、モナコイン、リスク、ＥＯＳ、ネム、ビットコインＳＶ、ＥＲＣ２０トークンのいずれかであることを特徴とする。
【００１４】
また、本発明の第９の態様は、コンピュータに、暗号資産のアドレスの汚染度を計算する方法を実行させるためのプログラムであって、前記方法は、ブロックチェーンの高さｉ（ｉは正の整数）のブロックに含まれるｊ番目（ｊは正の整数）のトランザクションにつき、前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップとを含むことを特徴とする。
【００１５】
また、本発明の第１０の態様は、暗号資産のアドレスの汚染度を計算する装置であって、ブロックチェーンの高さｉ（ｉは正の整数）のブロックに含まれるｊ番目（ｊは正の整数）のトランザクションにつき、前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得して、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計し、前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算し、前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新することを特徴とする。
【発明の効果】
【００１６】
本発明の一態様によれば、暗号資産の移転元のアドレスの疑わしさを汚染度と定義し、ブロックチェーンが有する各トランザクションにつき、アドレスと汚染度との対応づけを参照して、当該トランザクションの１又は複数の入力から各出力に対する汚染度の伝播を計算し、当該対応づけを更新することによって、各アドレスの疑わしさを定量的に表すことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態にかかる暗号資産のアドレスの汚染度を計算するための装置を示す図である。
【図２】本発明の一実施形態にかかるトランザクションの形式を模式的に示す図である。
【図３】本発明の一実施形態にかかるアドレスと汚染度との対応づけの一例を示す図である。
【図４】本発明の一実施形態にかかる暗号資産のアドレスの汚染度を計算するための方法の流れ図である。
【図５】本発明の一実施形態にかかるアドレスと汚染度との対応づけの更新結果の一例を示す図である。
【図６Ａ】本発明の一実施形態にかかる計算を行うためのプログラムの一例を示す図である。
【図６Ｂ】本発明の一実施形態にかかる計算を行うためのプログラムの一例の続きを示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００１９】
図１に、本発明の一実施形態にかかる暗号資産のアドレスの汚染度を計算するための装置を示す。本明細書において、暗号資産の移転元のアドレスの疑わしさ、すなわち、当該アドレスの残高履歴に対する汚染アドレスからの寄与の有無を定量的に表す概念として「汚染度（degree of contamination）」を定義する。
【００２０】
装置１００は、複数のノードにより構成されるブロックチェーンネットワーク１１０にコンピュータネットワークを介してアクセス可能であり、各ノードに記憶されるブロックチェーンを読み出すことができる。ブロックチェーンは、順序付けられた複数のブロックを有し、各ブロックは、１又は複数のトランザクションを有する。
【００２１】
各トランザクションの詳細は、ブロックチェーンの種類によって異なるが、図２に示すようにＭ個の入力とＮ個の出力とを有する。図示の例では、トランザクション２００は、２個の入力と３個の出力とを有する。各入力は、資産の移転元のアドレス２０１−１と当該アドレスからの移転量２０１−２を表し、各出力は、資産の移転先のアドレス２０２−１と当該アドレスへの移転量２０２−２を表す。各入力がどのような形式でこれらを表現するかはさまざまであり、直接的に表す場合に限らず間接的に表す場合がある。たとえば、ビットコインの場合においては、各入力は、別のトランザクションに含まれるいずれかの出力を表し、当該出力を参照することによって、当該入力のアドレス及び移転量が特定される。
【００２２】
装置１００は、通信インターフェースなどの通信部１０１と、プロセッサ、ＣＰＵ等の処理部１０２と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部１０３とを備え、各処理を行うためのプログラムを実行することによって構成することができ、装置１００は１又は複数の装置ないしサーバを含むことがある。また、当該プログラムは１又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。当該プログラムは、記憶部１０３又は装置１００からアクセス可能な記憶装置又は記憶媒体に記憶しておき、処理部１０２において実行することができる。
【００２３】
装置１００は、さらにデータベース１０４を備え、アドレスと汚染度との対応づけをそこに記憶する。図１の例では、データベース１０４を記憶部１０３とは別個に設けているが、記憶部１０３にデータベース１０４の機能を担わせてもよい。いずれにしても、装置１００が記憶部１０３、データベース１０４又は装置１００からアクセス可能な記憶装置又は記憶媒体に記憶されたアドレスと汚染度との対応づけを参照可能であればよい。
【００２４】
図３に、本実施形態にかかるアドレスと汚染度との対応づけの一例を示す。犯罪収益５５ＢＴＣの移転先アドレスとして１ＣＤＥが特定されたとする。この場合に当該アドレスへの移転量又はそれに対応する量を汚染度とし、Ｐｏｗｅｒという単位で表す。図３では移転量を汚染度としているが、移転量に比例する量等、移転量に応じた量を汚染度として算出するようにしてもよい。対応づけ３００には、汚染アドレスに資産を移転したトランザクションを含むブロックの高さｉ（ｉは正の整数）をアドレスに対応づけて記憶してもよい。また、対応づけ３００には、アドレスがクリーンアドレスか否かのフラグを設けることができる。クリーンアドレスについては後述する。正の値の汚染度が生じたアドレスは、その後に別のアドレスに資産の移転を行い、当該アドレスにおける残高が減少したとしても、汚染度は疑わしい取引に関与した履歴を表すものであり、残高の減少に応じた汚染度の減少は行わないことが好ましく、一度生じた汚染度は一切減少させないことも考えられる。
【００２５】
図４に、本実施形態にかかる暗号資産のアドレスの汚染度を計算するための装置を示す。まず、装置１００は、ブロックチェーンネットワークに記憶されたブロックチェーンの各ブロックについて、当該ブロックに含まれるトランザクションを特定し、当該トランザクションの各入力が表すアドレスからの移転量２０１−２若しくはこれに対応する量又は汚染度のうちの小さい方をすべての入力について合計する（Ｓ４０１）。各入力が表すアドレスの汚染度は、対応づけ３００を参照して取得することができる。図２及び３に示した例では、アドレス１ＡＢＣについては０、アドレス１ＣＤＥについては５５であるから、合計値は５５となる。
【００２６】
次に、装置１００は、当該トランザクションの各出力について、当該合計値又は当該出力が表すアドレスへの移転量２０２−２のうちの小さい方を当該出力が表すアドレスに加算される加算汚染度として計算する（Ｓ４０２）。図２に示した例では、アドレス１ＥＦＧについては５５、アドレス１ＨＨＨについては１０となる。各出力が表すアドレスへの移動量２０２−２そのものではなく、移転量に比例する量等、移転量に応じた量を加算汚染度として算出するようにしてもよい。ここで、高さ１４４６０のブロックにおいて、汚染アドレス１ＣＤＥを送金元とするトランザクションは存在しない場合を例としている。
【００２７】
アドレス１ＣＤＥについては、入力のうちの１つが表すアドレスと一致し、この場合は自らの汚染度の影響を除くために、上記合計値５５から、アドレス１ＣＤＥからの移動量２０１−２又は汚染度のうちの小さい方、すなわち５５を引いた値０を新たな値として、アドレス１ＣＤＥへの移転量２０２−２と比較して小さい方を加算される汚染度とする。この場合は０であり、加算後の汚染度は加算前と同じ５５となる。また、複数の入力がアドレス１ＣＤＥと一致するアドレス表す場合には、それらの入力について、アドレス１ＣＤＥからの移動量２０１−２又は汚染度のうちの小さい方を合計した値を引いて新たな値として、アドレス１ＣＤＥへの移転量２０２−２と比較して小さい方を加算される汚染度とする。このように合計値に対応する値と移転量２０２−２とを比較することがある。
【００２８】
そして、各出力が表すアドレスが対応づけに含まれる場合には汚染度に加算汚染度を加算し、対応づけに含まれない場合には加算汚染度を汚染度として当該アドレスと当該汚染度との対応づけを追加して、対応づけを更新する（Ｓ４０３）。図５に、図３に示す対応づけに汚染度の加算を反映させたものを示す。ここで、汚染アドレスではないアドレス１ＥＦＧ、１ＨＨＨなどの高さは、当該アドレスに正の汚染度を最初に生じさせたトランザクションを含むブロックの高さを指す。
【００２９】
高さ１４４６１のブロック内の他のトランザクションについても同様の計算を行い、高さ１４４６２以降のブロックについても、同様の計算を行うことで、高さ１４４６０のブロック内のいずれかのトランザクションによって犯罪収益の移転を受けた汚染アドレス１ＣＤＥからの寄与を定量的に表すことが可能となる。たとえば、高さ１４４７０のブロック内のいずれかのトランザクションによって犯罪収益の移転を受けた新たな汚染アドレスが発見された場合には、高さ１４４６９のブロックまでの計算によって得られた対応づけにその新たな汚染アドレスの汚染度を記憶して反映させた対応づけを参照して、高さ１４４７０のブロックについての計算を開始することで、新たな汚染アドレスの存在を反映させて汚染度を計算することができる。図３に形式としていくらか類するものであるが、各汚染アドレスの汚染時の高さ及び汚染度の一覧又は定義を当該対応づけとは別途登録しておき、各汚染アドレスの汚染時の高さのブロックについての計算の際に対応づけに当該汚染アドレスの汚染度を反映させることが考えられる。
【００３０】
このように、汚染アドレスを登録し、その他のアドレスの残高履歴に対する当該汚染アドレスからの寄与の程度を汚染度として計算することによって、単に汚染アドレスが残高履歴に寄与した一連のアドレスの中に含まれるか否かではなく、定量的に疑わしさを評価することが可能となる。
【００３１】
本発明の実施形態は、さまざまな暗号資産に対して適用可能であり、例示として、ビットコイン、イーサリウム、リップル、テザー、ライトコイン、ビットコインキャッシュ、イーサリウムクラシック、モナコイン、リスク、ＥＯＳ、ネム、ビットコインＳＶ、ＥＲＣ２０トークンが挙げられ、これらに限るものではない。
【００３２】
一例として、ハッカーが取引所から１００ＢＴＣを流出させ、その移転先の汚染アドレスから１万個のアドレスに分けてさらに移転させて、それらのアドレスからさらに移転させることで、汚染アドレスの関与を検知しにくくすることが考えられるが、最終的にハッカーがそれらのアドレスの残高を１つのアドレスに集約して法定通貨と交換しようとすれば、汚染度が当該アドレスに累積的に加算されていき、汚染アドレスの関与の検知可能性が高まる。
【００３３】
また、一例として、ユーザー端末１２０からブロックチェーンネットワーク１１０に、ユーザーＡのアドレス１から暗号資産の取引所Ｂが管理するユーザーＡのアドレス２に対する送金を行うトランザクションがブロードキャストされた場合に、取引所Ｂは送金元のアドレス１をキーとして装置１００にその汚染度を問い合わせ、汚染度が所定の条件を満たすときには、ユーザーＡのアカウントからのさらなる送金、法定通貨への交換などを行わないことができる。取引所Ｂではなく小売店Ｃのアドレス３に送金が行われた場合には、小売店Ｃは商品代金の支払の異常として決済を完了させないことができる。
【００３４】
なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「ａの場合にｂする」という記載は、明示した場合を除き、「ａの場合に常にｂする」こと、「ａの直後にｂする」ことを必ずしも意味しないことに留意されたい。
【００３５】
また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム（以下「方法等」）において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。
【００３６】
プログラムの一例
上述の汚染度の計算のためのプログラムの一例を図６に示す。これは、プログラミング言語Ｃ＃によりビットコインについて書かれたものであり、４行目から１４行目までで、各入力ｔｘＩｎが表すアドレスからの移転量ｔｘＩｎ．ｐｒｅｖ．ｖａｌｕｅ又は当該アドレスの汚染度ｂａｄＡｄｄｒｅｓｓ［］．ｐｏｗｅｒのうちの小さい方を合計が行われ、２５行目までで、各出力ｔｘＯｕｔについて当該合計値ｓｉｇｍａ又は当該アドレスへの移転量ｔｘＯｕｔ．ｖａｌｕｅのうちの小さい方を加算汚染度ａｄｄＰｏｗｅｒとして計算する。ここで、ｂａｄＡｄｄｒｅｓｓは、汚染アドレスと汚染度との対応づけを保持する対応テーブルである。そして、４４行目までで、１つのトランザクションｔｘの対応テーブルｂａｄＡｄｄｒｅｓｓへの反映が行われる。
【００３７】
２０行目から２４行目では、出力が表すアドレスｔｘＯｕｔ．ａｄｄｒが、いずれかの入力が表すアドレスと一致する場合に、合計値ｓｉｇｍａから当該一致したアドレスからの移動量若しくは汚染度のうちの小さい方を引いた値を加算汚染度ａｄｄＰｏｗｅｒの計算に用いる合計値ｔｈｉｓＰｏｗｅｒとしている。
【００３８】
クリーンアドレス
暗号資産の取引所は、多数のユーザーを抱え、当該取引所が管理する各ユーザーのアドレスに対する送金を多数受け取る。取引所は、送金を受け取った場合、ユーザーの残高を記憶し、送金先のアドレス自体は、取引所のアドレスとして取引所の外部のアドレス又は取引所の別のアドレスへのその後のトランザクションの入力として用いられることが多い。取引所にはさまざまなアドレスからの送金があることから、汚染度を計算すれば、取引所は汚染度を有するアドレスを多数保有することとなる。
【００３９】
しかしながら、こうした汚染度を有するアドレスは、取引所のアドレスとして用いられるのであり、取引所を送金者とする取引を疑わしいものと評価すべきでないとすれば、例外的に取り扱う必要がある。したがって、アドレスと汚染度との対応づけが、図３及び５に示すようにクリーンアドレスか否かのフラグを各アドレスについて有するようにしてもよい。ここでは、フラグが１の場合に汚染度を有するものの例外的に取り扱うクリーンアドレスであることを意味している。図６のプログラムでは、９行目から１２行目の処理がクリーンアドレスである場合には行われない、すなわち、入力が表すアドレスがクリーンアドレスである場合には加算汚染度に当該アドレスは寄与しない処理となっている。
【００４０】
再計算
新たな汚染アドレスが発見されたならば、各汚染アドレスの汚染時の高さ及び汚染度の一覧に当該新たな汚染アドレスを登録し、アドレスと汚染度との対応づけの再計算を行う必要が生じる。
【００４１】
たとえば、高さ１４４５９のブロック内のいずれかのトランザクションによって、アドレス１ＡＢＣは犯罪収益を２０ＢＴＣ受け取っており、当該ブロック内にはアドレス１ＢＣを送金元とするトランザクションは存在しないものとする。また、高さ１４４６０のブロック内にも汚染アドレス１ＡＢＣを送金元とするトランザクションは存在しないものとする。この場合、高さ１４４６１のブロック内のトランザクション２００について汚染度の計算を行うときには、アドレスと汚染度との対応づけは、図３にアドレス１ＡＢＣの汚染度２０が追加されたものになる。過去の汚染アドレスが発見された場合には、当該汚染アドレスが発生したブロックより前のいずれかのブロックについて計算されたアドレスと汚染度との対応づけまで戻り、再計算を行わなければ、その他のアドレスの残高履歴に対する当該新たな汚染アドレスからの寄与の程度が考慮されていないこととなる。
【００４２】
こうした再計算を可能とするために、アドレスと汚染度との対応づけは、すべてのブロック、一定間隔、その他のなんらかの基準に従って記憶しておき、装置１１０からアクセス可能とされることが好ましい。
【００４３】
装置１００がアドレスをキーとした汚染度の問い合わせに対して継続的に汚染度の回答を可能とするためには、ブロックチェーンネットワーク１１０に追加された最新のブロックについての汚染度の計算を行う第１のサーバとは別途、新たな汚染アドレスが汚染アドレスの一覧に登録された際に、たとえば登録を契機として汚染度の再計算を行う第２のサーバを設け、第２のサーバにおいて計算が完了したブロックが第１のサーバにおいて計算が完了したブロックと一致した後に、問い合わせに対して回答を行う有効なサーバを第１のサーバから第２のサーバに切り替えることが考えられる。この場合、装置１００は、第１のサーバ及び第２のサーバを備え、さらに必要に応じてこれらの切り替えを行う第３のサーバを備えることができる。ここで、サーバはインスタンスを含む。
【符号の説明】
【００４４】
１００  装置
１０１  通信部
１０２  処理部
１０３  記憶部
１０４  データベース
１１０  ブロックチェーンネットワーク
１２０  ユーザー端末
２００  トランザクション
２０１−１  移転元のアドレス
２０１−２  移転元アドレスからの移転量
２０２−１  移転先のアドレス
２０２−２  移転先のアドレスへの移転量
３００  アドレスと汚染度との対応づけ
【要約】
【課題】暗号資産の送金元のアドレスの疑わしさを定量的に表す。
【解決手段】まず、装置１００は、ブロックチェーンネットワークに記憶されたブロックチェーンの各ブロックについて、当該ブロックに含まれるトランザクションを特定し、当該トランザクションの各入力が表すアドレスからの移転量２０１−２若しくはこれに対応する量又は汚染度のうちの小さい方をすべての入力について合計する（Ｓ４０１）。次に、装置１００は、当該トランザクションの各出力について、当該合計値又は当該出力が表すアドレスへの移転量２０２−２のうちの小さい方を当該出力が表すアドレスに加算される加算汚染度として計算する（Ｓ４０２）。そして、各出力が表すアドレスが対応づけに含まれる場合には汚染度に加算汚染度を加算し、対応づけに含まれない場合には加算汚染度を汚染度として当該アドレスと当該汚染度との対応づけを追加して、対応づけを更新する（Ｓ４０３）。
【選択図】図４【図１】
0006751489.tif 000002
【図２】
0006751489.tif 000003
【図３】
0006751489.tif 000004
【図４】
0006751489.tif 000005
【図５】
0006751489.tif 000006
【図６Ａ】
0006751489.tif 000007
【図６Ｂ】
0006751489.tif 000008