Profiling Bitcoin users with artificial intelligence : Our proof of concept

What is Blockchain Inspector?

Thanks to our own ten years old Artificial Intelligence engine, Blockchain Inspector allows you to profile Bitcoin users by creating a reasoning process that will map addresses and transactions to entities.

The key advantage of our solution is that it can easily translate human reasoning into a reasoning process and in so doing can transpose the experience of experts into a computer system capable of processing very large amounts of data.

Whether it is tracking a Bitcoin transaction to a real-world entity, determining relationships between actors, or monitoring behaviour, we can help you automate the process: have your own expert 24/7!

How does it work?

We are fulfilling the need to formalise empiring methods, to generalize natural modes of reasoning and to automate decision making by constructing an artificial system able to perform tasks usually done by humans.

The schema below describes the toolkit we provide:

  • At the core is the neo4j database where blocks, transactions, addresses and user related information are stored.
  • Blockchain2graph is our open source tool that transforms data from Bitcoin core in Neo4j data.
  • Blockchain Inspector studio is a GUI tool allowing experts to conceive rules and specify inaccuracies and uncertainties.
  • Blockchain Inspector engine takes user-created rules and runs them on the neo4j database.
  • Blockchain Inspector visualization allows users to search and visualize data (the one generated by users and the one generated by the rules).

The AI Inspector will integrate the users reasoning processes. The AI Inspector is able to handle deductions and uncertainty. The idea is to allow any human expert to transform its reasoning into automatic reasoning and allow him to specify the associated calculated uncertainty. The hypothesis made by the system could be vaque (“expensive”), inaccurate (“between x and y”), error prone (“x with 5% error”) and also specify that the validity is not completely true and completely false (‘90% of time”).

To sum it up, our Artificial Intelligence, besides of being capable of applying automatic reasoning to huge amount of data is also capable to manipulate inaccuracies and uncertainties which are common in complex system like payment systems.

What kind of AI are you using?

The AI Inspector is based on a proprietary technology derived from first order logic fuzzy rules based system. The AI Inspector is using a more advanced inference system, coupled with advanced decision mechanisms (based on preferences and cross rules mechanisms). Those more advanced rules are called Drives. This system is used for different applications: autonomous driving car for PSA or crowd simulation for transportation companies such as SNCF.

The Drive system is coupled with an advanced semantic world representation used by the system to reason. The blockchain is partially transformed into this world representation according to the needs (new transactions for example).

The reasoning system then uses known hypothesis to assert new ones. The previous hypothesis may come from different sources:

  • Blockchain information (which are by default certain)
  • External databases of known virtual money addresses (like exchange marketplace for example)
  • User input information (like associated bank account input by the bank)
  • Previous hypothesis issued from reasoning (certainty is computed by the reasoning system using the certainty of the previous hypothesis)

The certainty is used by a Transferable Belief Model that can match very accurately the exact amount of knowledge the system has. This system provides 2 belief results:

  • Kernel Belief: this is the measure of the worst expected belief
  • Optimistic Belief: this is the measure of the most optimistic belief

The exact belief measurement lies between those 2 boundaries. This belief system can be used to provide a belief value to any hypothesis, whereas such hypothesis concerns only one attribute (like belief that the country origin associated to this anonymous address is Irak is 0.5) or a set of values (like the belief that this address correspond to a company or a foundation is 0.8). The system is then able to answer any question asked with the corresponding belief thresholds. This questioning system is used to create alerts.

Example of semantic representation

The whole AI Inspector can be assimilated to a semantic machine learning, integrating a complex belief system.

What’s inside your POC?

Our proof of concept allows you to test existing rules and write new ones. In this POC, we do not provide a tool to create rules, they are written in C++.

It can be downloaded at and you can learn how to run it at

Rule 1

IF an address (A) makes regular money transfer to another address (B) owned by an entity that is a restaurant THEN A’s owner country = B’s owner country.

Existing data : The database contains an entity named “Shahrzad” which owns the address “1GEECfBjkeUMCf3TNWCHvXZKKjnjjra7tC”. We also know that “Shahrzad” is a restaurant located in Iran.

Rule 1 source code

View results :

MATCH (a)-[l]-(r:Relation) WHERE IN [“R2063114293”, “R1824846093”, “R569027112”] return a,l,r
Rule 1 results

Rule 2

IF an address (A) makes a money transfer to IRAN THEN raise an alert.

Existing data : The database contains an entity named “Shahrzad” which is a restaurant located in Iran.

Rule 2 source code

View results :

MATCH (a)-[l]-(r:Relation)-[ll]-(b:Concept {definition:”Illegal” }) return a,l,r,b LIMIT 12
Rule 2 results

Rule 3

IF a Bitcoin address makes a transaction to a well-known foundation (like Wikipedia) THEN create a relationship “made a donation” to the foundation.

Existing data : The database contains an entity named “Wikipedia” which owns the address “16RCdSYjvj6PpCcbAWVzoArQaYVz3Tf5W4”. We also know that “Wikipedia” is a foundation.

Rule 3 source code

View results :

MATCH (a)-[l]-(r:Relation)-[ll]-(b:Action {definition:”Donation” }) return a,l,r,b LIMIT 12
Rule 3 results

Rule 4

I recently join an association by making a payment to the address: 1NVvJotS6V9SPYM1f6Mu9anu4dtFyTRNv9. If an address also makes a payment to this address, then the owner is a member of the association (90%).

Existing data : The address 1NVvJotS6V9SPYM1f6Mu9anu4dtFyTRNv9 is owned by an association.

Rule 4 source code

View results :

MATCH (a)-[l]-(r:Relation)-[ll]-(b:Concept {definition:”UneAsso” }) return a,l,r,b LIMIT 12
Rule 4 results

Rule 5

IF a known bitcoin address receives money from an address used by ransomware THEN raise an alert.

Existing data : The database contains an entity named “RansomeWareA” which owns the address “1MPnG9XDjYqnq2Lz8SMq7H8ZHxadEQjSda”. We also know that “RansomeWareA” is a ransomeware.

Rule 5 source code

View results :

MATCH (X:BitcoinAddress {address:'1MPnG9XDjYqnq2Lz8SMq7H8ZHxadEQjSda'})-[:ADDRESS]->(i:BitcoinTransactionInput)<-[:INPUTS]-(tt)-[:OUTPUTS]->(o:BitcoinTransactionOutput)<-[:ADDRESS]-(Y:BitcoinAddress)-[]-(r:Relation)--(b) RETURN X,i,tt,o,Y,r,b LIMIT 10
Rule 5 results

Rule 6

IF a payment is made to this distributor located in France THEN the country of the owner is France (25% sure).

Existing data : The database contains an entity named “ThisDistributor” which owns the address “1MNdEmGTuKvE2z7BeM1B6hRgg5NnMsXxAa”. We also know that “ThisDistributor” is a local shop.

Rule 6 source code

View results :

MATCH (a)-[l]-(r:Relation)-[ll]-(b:Concept {definition:”France” }) return a,l,r,b LIMIT 12
Rule 6 results

Rule 7

IF a known enterprise makes payments between 1,000 euros & 4,000 Euros every month to an address THEN the owner is probably (80%) working for this company.

Existing data : The database contains an entity named “CompanyB” which owns the address . We also know that “CompanyB” is a company.

Rule 7 source code

View results :

MATCH (a)-[l]-(r:Relation)-[ll]-(b:Concept {definition:”CompanyB” }) return a,l,r,b LIMIT 12
Rule 7 results

So you want to kill Bitcoin?

We love Bitcoin and we think that our tool cannot harm Bitcoin in any way. We are also pleased to see all those initiatives that may make our work harder: Schnorr signatures, Bulletproofs or Mimblewimble.

What is the current state of the application?

Our companies (Scub & SpirOps) spent several months on two main technical problems: making our existing artificial engine works on large amount of data and developing an intelligent cache system to improve efficiency.

Right now, we are working on two separate things, the first one is to update our rules creation tool to take into account blockchain structure specific needs:

The second thing we are working on is the development of our visualization tool.

What’s the next step?

We will seek funds to finish the 1.0 release and hire sales (we already have all the developer team in Scub & SpirOps).

Feel free to contact us at

Like what you read? Give Blockchain Inspector a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.