(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6751489
(24)【登録日】2020年8月18日
(45)【発行日】2020年9月2日
(54)【発明の名称】暗号資産のアドレスの汚染度を計算するための装置、方法及びプログラム
(51)【国際特許分類】
G06Q 20/38 20120101AFI20200824BHJP
H04L 9/32 20060101ALI20200824BHJP
G06Q 20/40 20120101ALI20200824BHJP
【FI】
G06Q20/38 310
H04L9/00 675Z
G06Q20/40
【請求項の数】8
【全頁数】11
(21)【出願番号】特願2020-15678(P2020-15678)
(22)【出願日】2020年1月31日
(62)【分割の表示】特願2019-192323(P2019-192323)の分割
【原出願日】2019年10月21日
【審査請求日】2020年1月31日
【早期審査対象出願】
(73)【特許権者】
【識別番号】519195006
【氏名又は名称】株式会社bitFlyer Blockchain
(74)【代理人】
【識別番号】100174078
【弁理士】
【氏名又は名称】大谷 寛
(72)【発明者】
【氏名】小宮山 峰史
【審査官】
竹下 翔平
(56)【参考文献】
【文献】
米国特許第10380594(US,B1)
【文献】
中国特許出願公開第109636370(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06Q 10/00−99/00
(57)【特許請求の範囲】
【請求項1】
暗号資産のアドレスの汚染度を計算する方法であって、
ブロックチェーンの高さi(iは正の整数)のブロックに含まれるj番目(jは正の整数)のトランザクションにつき、
前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、
前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、
前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、
前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップと
を含むことを特徴とする方法。
【請求項2】
前記トランザクションの出力が表すアドレスが、前記トランザクションのいずれかの入力が表すアドレスと一致する場合、前記計算は、前記合計の合計値から前記一致したアドレスからの移動量若しくは汚染度のうちの小さい方を引いた値又は前記出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算することを特徴とする請求項1に記載の方法。
【請求項3】
前記取得の前に、前記高さiのブロックに含まれるいずれかのトランザクションにより発生する汚染アドレスの汚染度を前記対応づけに記憶するステップをさらに含むことを特徴とする請求項1又は2に記載の方法。
【請求項4】
前記トランザクションのいずれかの入力が表すアドレスについて前記対応づけにフラグが記録されている場合にはその汚染度を前記合計の対象から除外することを特徴とする請求項1から3のいずれかに記載の方法。
【請求項5】
各汚染アドレスが発生したブロックの高さ及び汚染度の一覧に新たな汚染アドレスが登録された後に、前記新たな汚染アドレスの高さより前のいずれかのブロックから、前記対応づけに関する再計算を行うことを特徴とする請求項1から4のいずれかに記載の方法。
【請求項6】
前記暗号資産は、ビットコイン、イーサリウム、リップル、テザー、ライトコイン、ビットコインキャッシュ、イーサリウムクラシック、モナコイン、リスク、EOS、ネム、ビットコインSV、ERC20トークンのいずれかであることを特徴とする請求項1から5のいずれかに記載の方法。
【請求項7】
コンピュータに、暗号資産のアドレスの汚染度を計算する方法を実行させるためのプログラムであって、前記方法は、
ブロックチェーンの高さi(iは正の整数)のブロックに含まれるj番目(jは正の整数)のトランザクションにつき、
前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、
前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、
前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、
前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップと
を含むことを特徴とするプログラム。
【請求項8】
暗号資産のアドレスの汚染度を計算する装置であって、
ブロックチェーンの高さi(iは正の整数)のブロックに含まれるj番目(jは正の整数)のトランザクションにつき、
前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得して、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計し、
前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算し、
前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新することを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号資産のアドレスの汚染度を計算するための装置、方法及びプログラムに関する。
【背景技術】
【0002】
ビットコインを初めとする暗号資産の送金はアドレス間で行われる。暗号資産の流通において懸念される問題は犯罪収益の送金先となったアドレスの関与である。たとえば、取引所から不正に引き出した暗号資産を複数のアドレスに送金し、そのようにして送金を受けた各アドレスからさらに複数のアドレスに送金することを繰り返すことで、取引所からの暗号資産の流出先となったアドレスが関与していることの検知が困難になっていく。暗号資産が社会により根付いていくためには、いわゆるマネーロンダリング対策(AML)として、アドレス間の疑わしい取引を監視する暗号資産のためのトランザクションモニタリングが求められている。
【0003】
一例として、犯罪収益の移転先として特定されたアドレス(以下「汚染アドレス」とも呼ぶ。)の一覧を登録しておき、送金者Xから受取者Yへの送金を行うためのトランザクションについて、当該トランザクションにおける1又は複数の送金元アドレスの残高に寄与した過去の一連のアドレスに汚染アドレスが含まれるか否かを判定する手法が考えられる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、このようは手法によってトランザクションモニタリングを行うとすれば、汚染アドレスから少額の送金を多数のアドレスに対して一方的に行うことで、本来はなんら犯罪に関わりのない多数のアドレスが、当該アドレスの残高に寄与した過去の一連のアドレスに汚染アドレスを含むものとなってしまい、現実的ではない。
【0005】
本発明は、このような問題点に鑑みてなされたものであり、その目的は、暗号資産の送金元のアドレスの疑わしさ(suspiciousness)を定量的に表すための装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
このような問題点を解決するために、本発明の第1の態様は、暗号資産のアドレスの汚染度を計算する方法であって、ブロックチェーンの高さi(iは正の整数)のブロックに含まれるj番目(jは正の整数)のトランザクションにつき、前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップとを含むことを特徴とする。
【0007】
また、本発明の第2の態様は、第1の態様において、前記トランザクションの出力が表すアドレスが、前記トランザクションのいずれかの入力が表すアドレスと一致する場合、前記計算は、前記合計の合計値から前記一致したアドレスからの移動量若しくは汚染度のうちの小さい方を引いた値又は前記出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算することを特徴とする。
【0008】
また、本発明の第3の態様は、第1又は第2の態様において、前記取得の前に、前記高さiのブロックに含まれるいずれかのトランザクションにより発生する汚染アドレスの汚染度を前記対応づけに記憶するステップをさらに含むことを特徴とする。
【0009】
また、本発明の第4の態様は、第1から第3のいずれかの態様において、前記トランザクションのいずれかの入力が表すアドレスについて前記対応づけにフラグが記録されている場合にはその汚染度を前記合計の対象から除外することを特徴とする。
【0010】
また、本発明の第5の態様は、第1から第4のいずれかの態様において、各汚染アドレスが発生したブロックの高さ及び汚染度の一覧に新たな汚染アドレスが登録された後に、前記新たな汚染アドレスの高さより前のいずれかのブロックから、前記対応づけに関する再計算を行うことを特徴とする。
【0011】
また、本発明の第6の態様は、第5の態様において、前記再計算は、前記ブロックチェーンに新たに追加されるブロックに対する前記対応づけに関する前記計算を行う第1のサーバとは異なる第2のサーバにおいて実行することを特徴とする。
【0012】
また、本発明の第7の態様は、第6の態様において、前記第2のサーバにおいて計算が完了したブロックの高さが前記第1のサーバにおいて計算が完了したブロックの高さと同一となった後に有効なサーバを前記第1のサーバから前記第2のサーバに切り替えることを特徴とする。
【0013】
また、本発明の第8の態様は、第1から第7のいずれかの態様において、前記暗号資産は、ビットコイン、イーサリウム、リップル、テザー、ライトコイン、ビットコインキャッシュ、イーサリウムクラシック、モナコイン、リスク、EOS、ネム、ビットコインSV、ERC20トークンのいずれかであることを特徴とする。
【0014】
また、本発明の第9の態様は、コンピュータに、暗号資産のアドレスの汚染度を計算する方法を実行させるためのプログラムであって、前記方法は、ブロックチェーンの高さi(iは正の整数)のブロックに含まれるj番目(jは正の整数)のトランザクションにつき、前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得するステップと、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計するステップと、前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算するステップと、前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新するステップとを含むことを特徴とする。
【0015】
また、本発明の第10の態様は、暗号資産のアドレスの汚染度を計算する装置であって、ブロックチェーンの高さi(iは正の整数)のブロックに含まれるj番目(jは正の整数)のトランザクションにつき、前記トランザクションの各入力が表すアドレスをキーとしてアドレスと汚染度との対応づけを参照して前記各入力が表すアドレスの汚染度を取得して、前記トランザクションの各入力が表すアドレスからの移転量若しくはこれに対応する量又は前記各入力が表すアドレスの汚染度のうちの小さい方をすべての入力について合計し、前記トランザクションの各出力につき、前記合計の合計値若しくはこれに対応する値又は前記各出力が表すアドレスへの移転量若しくはこれに対応する量のうちの小さい方を加算汚染度として計算し、前記各出力が表すアドレスの前記加算汚染度に応じて前記各出力が表すアドレスについて前記対応づけを更新することを特徴とする。
【発明の効果】
【0016】
本発明の一態様によれば、暗号資産の移転元のアドレスの疑わしさを汚染度と定義し、ブロックチェーンが有する各トランザクションにつき、アドレスと汚染度との対応づけを参照して、当該トランザクションの1又は複数の入力から各出力に対する汚染度の伝播を計算し、当該対応づけを更新することによって、各アドレスの疑わしさを定量的に表すことができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の一実施形態にかかる暗号資産のアドレスの汚染度を計算するための装置を示す図である。
【
図2】本発明の一実施形態にかかるトランザクションの形式を模式的に示す図である。
【
図3】本発明の一実施形態にかかるアドレスと汚染度との対応づけの一例を示す図である。
【
図4】本発明の一実施形態にかかる暗号資産のアドレスの汚染度を計算するための方法の流れ図である。
【
図5】本発明の一実施形態にかかるアドレスと汚染度との対応づけの更新結果の一例を示す図である。
【
図6A】本発明の一実施形態にかかる計算を行うためのプログラムの一例を示す図である。
【
図6B】本発明の一実施形態にかかる計算を行うためのプログラムの一例の続きを示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0019】
図1に、本発明の一実施形態にかかる暗号資産のアドレスの汚染度を計算するための装置を示す。本明細書において、暗号資産の移転元のアドレスの疑わしさ、すなわち、当該アドレスの残高履歴に対する汚染アドレスからの寄与の有無を定量的に表す概念として「汚染度(degree of contamination)」を定義する。
【0020】
装置100は、複数のノードにより構成されるブロックチェーンネットワーク110にコンピュータネットワークを介してアクセス可能であり、各ノードに記憶されるブロックチェーンを読み出すことができる。ブロックチェーンは、順序付けられた複数のブロックを有し、各ブロックは、1又は複数のトランザクションを有する。
【0021】
各トランザクションの詳細は、ブロックチェーンの種類によって異なるが、
図2に示すようにM個の入力とN個の出力とを有する。図示の例では、トランザクション200は、2個の入力と3個の出力とを有する。各入力は、資産の移転元のアドレス201−1と当該アドレスからの移転量201−2を表し、各出力は、資産の移転先のアドレス202−1と当該アドレスへの移転量202−2を表す。各入力がどのような形式でこれらを表現するかはさまざまであり、直接的に表す場合に限らず間接的に表す場合がある。たとえば、ビットコインの場合においては、各入力は、別のトランザクションに含まれるいずれかの出力を表し、当該出力を参照することによって、当該入力のアドレス及び移転量が特定される。
【0022】
装置100は、通信インターフェースなどの通信部101と、プロセッサ、CPU等の処理部102と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部103とを備え、各処理を行うためのプログラムを実行することによって構成することができ、装置100は1又は複数の装置ないしサーバを含むことがある。また、当該プログラムは1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。当該プログラムは、記憶部103又は装置100からアクセス可能な記憶装置又は記憶媒体に記憶しておき、処理部102において実行することができる。
【0023】
装置100は、さらにデータベース104を備え、アドレスと汚染度との対応づけをそこに記憶する。
図1の例では、データベース104を記憶部103とは別個に設けているが、記憶部103にデータベース104の機能を担わせてもよい。いずれにしても、装置100が記憶部103、データベース104又は装置100からアクセス可能な記憶装置又は記憶媒体に記憶されたアドレスと汚染度との対応づけを参照可能であればよい。
【0024】
図3に、本実施形態にかかるアドレスと汚染度との対応づけの一例を示す。犯罪収益55BTCの移転先アドレスとして1CDEが特定されたとする。この場合に当該アドレスへの移転量又はそれに対応する量を汚染度とし、Powerという単位で表す。
図3では移転量を汚染度としているが、移転量に比例する量等、移転量に応じた量を汚染度として算出するようにしてもよい。対応づけ300には、汚染アドレスに資産を移転したトランザクションを含むブロックの高さi(iは正の整数)をアドレスに対応づけて記憶してもよい。また、対応づけ300には、アドレスがクリーンアドレスか否かのフラグを設けることができる。クリーンアドレスについては後述する。正の値の汚染度が生じたアドレスは、その後に別のアドレスに資産の移転を行い、当該アドレスにおける残高が減少したとしても、汚染度は疑わしい取引に関与した履歴を表すものであり、残高の減少に応じた汚染度の減少は行わないことが好ましく、一度生じた汚染度は一切減少させないことも考えられる。
【0025】
図4に、本実施形態にかかる暗号資産のアドレスの汚染度を計算するための装置を示す。まず、装置100は、ブロックチェーンネットワークに記憶されたブロックチェーンの各ブロックについて、当該ブロックに含まれるトランザクションを特定し、当該トランザクションの各入力が表すアドレスからの移転量201−2若しくはこれに対応する量又は汚染度のうちの小さい方をすべての入力について合計する(S401)。各入力が表すアドレスの汚染度は、対応づけ300を参照して取得することができる。
図2及び3に示した例では、アドレス1ABCについては0、アドレス1CDEについては55であるから、合計値は55となる。
【0026】
次に、装置100は、当該トランザクションの各出力について、当該合計値又は当該出力が表すアドレスへの移転量202−2のうちの小さい方を当該出力が表すアドレスに加算される加算汚染度として計算する(S402)。
図2に示した例では、アドレス1EFGについては55、アドレス1HHHについては10となる。各出力が表すアドレスへの移動量202−2そのものではなく、移転量に比例する量等、移転量に応じた量を加算汚染度として算出するようにしてもよい。ここで、高さ14460のブロックにおいて、汚染アドレス1CDEを送金元とするトランザクションは存在しない場合を例としている。
【0027】
アドレス1CDEについては、入力のうちの1つが表すアドレスと一致し、この場合は自らの汚染度の影響を除くために、上記合計値55から、アドレス1CDEからの移動量201−2又は汚染度のうちの小さい方、すなわち55を引いた値0を新たな値として、アドレス1CDEへの移転量202−2と比較して小さい方を加算される汚染度とする。この場合は0であり、加算後の汚染度は加算前と同じ55となる。また、複数の入力がアドレス1CDEと一致するアドレス表す場合には、それらの入力について、アドレス1CDEからの移動量201−2又は汚染度のうちの小さい方を合計した値を引いて新たな値として、アドレス1CDEへの移転量202−2と比較して小さい方を加算される汚染度とする。このように合計値に対応する値と移転量202−2とを比較することがある。
【0028】
そして、各出力が表すアドレスが対応づけに含まれる場合には汚染度に加算汚染度を加算し、対応づけに含まれない場合には加算汚染度を汚染度として当該アドレスと当該汚染度との対応づけを追加して、対応づけを更新する(S403)。
図5に、
図3に示す対応づけに汚染度の加算を反映させたものを示す。ここで、汚染アドレスではないアドレス1EFG、1HHHなどの高さは、当該アドレスに正の汚染度を最初に生じさせたトランザクションを含むブロックの高さを指す。
【0029】
高さ14461のブロック内の他のトランザクションについても同様の計算を行い、高さ14462以降のブロックについても、同様の計算を行うことで、高さ14460のブロック内のいずれかのトランザクションによって犯罪収益の移転を受けた汚染アドレス1CDEからの寄与を定量的に表すことが可能となる。たとえば、高さ14470のブロック内のいずれかのトランザクションによって犯罪収益の移転を受けた新たな汚染アドレスが発見された場合には、高さ14469のブロックまでの計算によって得られた対応づけにその新たな汚染アドレスの汚染度を記憶して反映させた対応づけを参照して、高さ14470のブロックについての計算を開始することで、新たな汚染アドレスの存在を反映させて汚染度を計算することができる。
図3に形式としていくらか類するものであるが、各汚染アドレスの汚染時の高さ及び汚染度の一覧又は定義を当該対応づけとは別途登録しておき、各汚染アドレスの汚染時の高さのブロックについての計算の際に対応づけに当該汚染アドレスの汚染度を反映させることが考えられる。
【0030】
このように、汚染アドレスを登録し、その他のアドレスの残高履歴に対する当該汚染アドレスからの寄与の程度を汚染度として計算することによって、単に汚染アドレスが残高履歴に寄与した一連のアドレスの中に含まれるか否かではなく、定量的に疑わしさを評価することが可能となる。
【0031】
本発明の実施形態は、さまざまな暗号資産に対して適用可能であり、例示として、ビットコイン、イーサリウム、リップル、テザー、ライトコイン、ビットコインキャッシュ、イーサリウムクラシック、モナコイン、リスク、EOS、ネム、ビットコインSV、ERC20トークンが挙げられ、これらに限るものではない。
【0032】
一例として、ハッカーが取引所から100BTCを流出させ、その移転先の汚染アドレスから1万個のアドレスに分けてさらに移転させて、それらのアドレスからさらに移転させることで、汚染アドレスの関与を検知しにくくすることが考えられるが、最終的にハッカーがそれらのアドレスの残高を1つのアドレスに集約して法定通貨と交換しようとすれば、汚染度が当該アドレスに累積的に加算されていき、汚染アドレスの関与の検知可能性が高まる。
【0033】
また、一例として、ユーザー端末120からブロックチェーンネットワーク110に、ユーザーAのアドレス1から暗号資産の取引所Bが管理するユーザーAのアドレス2に対する送金を行うトランザクションがブロードキャストされた場合に、取引所Bは送金元のアドレス1をキーとして装置100にその汚染度を問い合わせ、汚染度が所定の条件を満たすときには、ユーザーAのアカウントからのさらなる送金、法定通貨への交換などを行わないことができる。取引所Bではなく小売店Cのアドレス3に送金が行われた場合には、小売店Cは商品代金の支払の異常として決済を完了させないことができる。
【0034】
なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「aの場合にbする」という記載は、明示した場合を除き、「aの場合に常にbする」こと、「aの直後にbする」ことを必ずしも意味しないことに留意されたい。
【0035】
また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム(以下「方法等」)において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。
【0036】
プログラムの一例
上述の汚染度の計算のためのプログラムの一例を
図6に示す。これは、プログラミング言語C#によりビットコインについて書かれたものであり、4行目から14行目までで、各入力txInが表すアドレスからの移転量txIn.prev.value又は当該アドレスの汚染度badAddress[].powerのうちの小さい方を合計が行われ、25行目までで、各出力txOutについて当該合計値sigma又は当該アドレスへの移転量txOut.valueのうちの小さい方を加算汚染度addPowerとして計算する。ここで、badAddressは、汚染アドレスと汚染度との対応づけを保持する対応テーブルである。そして、44行目までで、1つのトランザクションtxの対応テーブルbadAddressへの反映が行われる。
【0037】
20行目から24行目では、出力が表すアドレスtxOut.addrが、いずれかの入力が表すアドレスと一致する場合に、合計値sigmaから当該一致したアドレスからの移動量若しくは汚染度のうちの小さい方を引いた値を加算汚染度addPowerの計算に用いる合計値thisPowerとしている。
【0038】
クリーンアドレス
暗号資産の取引所は、多数のユーザーを抱え、当該取引所が管理する各ユーザーのアドレスに対する送金を多数受け取る。取引所は、送金を受け取った場合、ユーザーの残高を記憶し、送金先のアドレス自体は、取引所のアドレスとして取引所の外部のアドレス又は取引所の別のアドレスへのその後のトランザクションの入力として用いられることが多い。取引所にはさまざまなアドレスからの送金があることから、汚染度を計算すれば、取引所は汚染度を有するアドレスを多数保有することとなる。
【0039】
しかしながら、こうした汚染度を有するアドレスは、取引所のアドレスとして用いられるのであり、取引所を送金者とする取引を疑わしいものと評価すべきでないとすれば、例外的に取り扱う必要がある。したがって、アドレスと汚染度との対応づけが、
図3及び5に示すようにクリーンアドレスか否かのフラグを各アドレスについて有するようにしてもよい。ここでは、フラグが1の場合に汚染度を有するものの例外的に取り扱うクリーンアドレスであることを意味している。
図6のプログラムでは、9行目から12行目の処理がクリーンアドレスである場合には行われない、すなわち、入力が表すアドレスがクリーンアドレスである場合には加算汚染度に当該アドレスは寄与しない処理となっている。
【0040】
再計算
新たな汚染アドレスが発見されたならば、各汚染アドレスの汚染時の高さ及び汚染度の一覧に当該新たな汚染アドレスを登録し、アドレスと汚染度との対応づけの再計算を行う必要が生じる。
【0041】
たとえば、高さ14459のブロック内のいずれかのトランザクションによって、アドレス1ABCは犯罪収益を20BTC受け取っており、当該ブロック内にはアドレス1BCを送金元とするトランザクションは存在しないものとする。また、高さ14460のブロック内にも汚染アドレス1ABCを送金元とするトランザクションは存在しないものとする。この場合、高さ14461のブロック内のトランザクション200について汚染度の計算を行うときには、アドレスと汚染度との対応づけは、
図3にアドレス1ABCの汚染度20が追加されたものになる。過去の汚染アドレスが発見された場合には、当該汚染アドレスが発生したブロックより前のいずれかのブロックについて計算されたアドレスと汚染度との対応づけまで戻り、再計算を行わなければ、その他のアドレスの残高履歴に対する当該新たな汚染アドレスからの寄与の程度が考慮されていないこととなる。
【0042】
こうした再計算を可能とするために、アドレスと汚染度との対応づけは、すべてのブロック、一定間隔、その他のなんらかの基準に従って記憶しておき、装置110からアクセス可能とされることが好ましい。
【0043】
装置100がアドレスをキーとした汚染度の問い合わせに対して継続的に汚染度の回答を可能とするためには、ブロックチェーンネットワーク110に追加された最新のブロックについての汚染度の計算を行う第1のサーバとは別途、新たな汚染アドレスが汚染アドレスの一覧に登録された際に、たとえば登録を契機として汚染度の再計算を行う第2のサーバを設け、第2のサーバにおいて計算が完了したブロックが第1のサーバにおいて計算が完了したブロックと一致した後に、問い合わせに対して回答を行う有効なサーバを第1のサーバから第2のサーバに切り替えることが考えられる。この場合、装置100は、第1のサーバ及び第2のサーバを備え、さらに必要に応じてこれらの切り替えを行う第3のサーバを備えることができる。ここで、サーバはインスタンスを含む。
【符号の説明】
【0044】
100 装置
101 通信部
102 処理部
103 記憶部
104 データベース
110 ブロックチェーンネットワーク
120 ユーザー端末
200 トランザクション
201−1 移転元のアドレス
201−2 移転元アドレスからの移転量
202−1 移転先のアドレス
202−2 移転先のアドレスへの移転量
300 アドレスと汚染度との対応づけ
【要約】
【課題】暗号資産の送金元のアドレスの疑わしさを定量的に表す。
【解決手段】まず、装置100は、ブロックチェーンネットワークに記憶されたブロックチェーンの各ブロックについて、当該ブロックに含まれるトランザクションを特定し、当該トランザクションの各入力が表すアドレスからの移転量201−2若しくはこれに対応する量又は汚染度のうちの小さい方をすべての入力について合計する(S401)。次に、装置100は、当該トランザクションの各出力について、当該合計値又は当該出力が表すアドレスへの移転量202−2のうちの小さい方を当該出力が表すアドレスに加算される加算汚染度として計算する(S402)。そして、各出力が表すアドレスが対応づけに含まれる場合には汚染度に加算汚染度を加算し、対応づけに含まれない場合には加算汚染度を汚染度として当該アドレスと当該汚染度との対応づけを追加して、対応づけを更新する(S403)。
【選択図】
図4