<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Rule-based Blockchain Knowledge Graphs: Declarative AI for Solving Industrial Blockchain Challenges</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Luigi Bellomarini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giuseppe Galano</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Markus Nissl</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emanuel Sallinger</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Banca d'Italia</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>TU Wien</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Oxford</institution>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Blockchains have an incredible impact on our economic systems. Over the last years, more and more illicit activities have taken place not only via the traditional nancial space but also via cryptocurrencies, where tracking illicit activities is more complex. Yet, several blockchain toolkits have been introduced that explore blockchain data. There is a clear industrial need to bring together many of those valuable methods into a principled approach that upholds central aspects such as the ability to provide explainable analytics. In this paper, we report on an international industrial and academic collaboration that uses a declarative, rule-based approach on top of a Knowledge Graph system and describes the use-case of analyzing the Petya ransomware.</p>
      </abstract>
      <kwd-group>
        <kwd>Blockchain Analytics Knowledge Graphs</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Business Case and Importance. Blockchains have an incredible impact on
our economic systems with a total market capitalization of 1500 billion US
Dollar [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Over the last years, a high number of nancial transactions has been
executed via blockchains, leading to increased interest in di erent areas, such
as analytics or fraud detection. Detecting fraud and agging illicit activities is
one of the key areas in the nancial system. This requires the ability to detect
patterns, to reason over both the traditional nancial space as well as via
cryptocurrencies. Thus, it is of primary importance for nancial institutions in the
European and world economic systems to reason over blockchain data.
Technological Challenges. While several blockchain toolkits have been
introduced that include di erent algorithms for several tasks [
        <xref ref-type="bibr" rid="ref12 ref3 ref9">3, 9, 12</xref>
        ], there is a
The views and opinions expressed in this paper are those of the authors and do not
necessarily re ect the o cial policy or position of Banca d'Italia.
      </p>
      <p>Copyright c 2021 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).
clear industrial need to bring together many of those valuable, but ad-hoc
combined methods into a principled approach. This principled approach must uphold
central aspects such as the ability to provide explainable analytics, so that the
derived insights are based on a solid foundation. Meeting these challenges is one
of the traditional strong points of rule-based, declarative AI.</p>
      <p>
        Solution. Researchers have recognized [
        <xref ref-type="bibr" rid="ref22 ref9">9, 22</xref>
        ] that blockchains share common
features with graph-like data structures and started modelling blockchain data
as a direct acyclic graph. This is possible thanks to the structural guarantees of
the rules that govern blockchain operation, such as that one block references only
one predecessor or that each block contains a logically ordered set of transactions.
By interpreting the blockchain as a graph, special graph traversal algorithms can
be used for querying the data such as calculating the shortest path between two
nodes, e.g., accounts, or generating sub-graphs [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        In this paper, we introduce a connection on top of the graph by interpreting
the blockchain as a logic-based Knowledge Graph. We show that blockchains
share di erent research questions with the Knowledge Graph domain. One
particular area of such relationship is given by detecting illicit activities such as fraud
or ransomware payments [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], which include several tasks such as identifying the
real-world entities behind users [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], clustering of blockchain identities [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] and
devising economic indicators [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>
        Apart from this general connection, this paper is motivated by the challenge:
can a rule-based, declarative Knowledge Graph be used to provide an
end-toend analysis of the Petya ransomware, a particularly widely discussed case in
media, e.g., [
        <xref ref-type="bibr" rid="ref1 ref23 ref27 ref28 ref29 ref30">1, 23</xref>
        ]. More concretely, we use the Knowledge Graph system
Vadalog [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] that is able to handle heterogeneous data sources and allows to formulate
declarative, and full-recursive queries extending Datalog. By integrating existing
analytical frameworks in the Knowledge Graph, we are able to formulate a wide
range of use-cases in a rule-based format over the blockchain as well as the entire
analytical frameworks. This gives us the possibility to provide answers to central
questions in the nancial domain within one coherent system.
      </p>
      <p>
        Main Contributions. To summarize, our main contributions are:
{ We identify a novel relationship between blockchains and Knowledge Graphs,
which goes beyond the graph-like structure. We show that reasoning in
Knowledge Graphs share common tasks with typical blockchain work ows.
{ We present a rule-based approach for detecting illicit activities in
blockchains. By using Datalog rules we provide a transparent and declarative way
to formalize speci c questions.
{ We show our approach by constructing and querying the Petya ransomware
graph. We provide several non-trivial answers to industrial use-cases.
Organization. The remainder of this paper is organized as follows: In Section 2
we provide background information required in the following chapters. Section 3
explains the relationship between a Knowledge Graph system and blockchains
in detail. In Section 4 we provide an in-depth analysis of the Petya ransomware.
We provide related work in Section 5 and conclude the paper in Section 6.
Blockchains. A blockchain is a type of distributed ledger, where blocks are
structured in a single-linked list which is linked with a hash reference to the previous
block. Each block contains a list of transactions, which contain information
required to transfer coins (and data) between di erent accounts. An account is
created by a private and public key pair. The private key is used to spend the
coins, while the (hash of) the public key is used to receive the coins, hence called
the address of the account. In Bitcoin, each transaction can have multiple inputs
and outputs either from one or from di erent users. An input is used to spend
a previous output, which creates an acyclic graph of spent outputs. The di
erence between the inputs (i.e., output values of the previous transaction) and the
output values in one transaction are the fee paid to the miner of the block [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
Figure 1 gives a visualization of the Bitcoin structure as a graph, summarizing
the discussed concepts. White square represents blocks, dark squares stand for
transactions, white circles are outputs (and inputs), and dark (green) circles
represent addresses. In addition, the gure contains tags of addresses, which are
an external information required for blockchain analytics.
      </p>
      <p>
        Mixing services. Mixing services are used to enhance the privacy of the user.
While mixing services are embedded into the protocol in some blockchains, the
usage in Bitcoin requires expertise. In case of Bitcoin, mixing tries to hide the
mappings between the inputs and outputs of the transaction taking the
transferred values in consideration to obfuscate which input and output address
belongs to the same user. In simple words, a perfectly mixed transaction would
have the same value for each input and output. It turned out, that many
mixing attempts are not perfect. Address-reuse, same output or input addresses, or
di erent output values make mixing attempts more or less useless [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
Boltzmann [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] is a script that analyzes the so-called linkability of a single transaction
without considering information from di erent transactions. The linkability
between a speci c input and output of a transaction is de ned as the ratio between
the number of valid mappings between inputs and outputs containing the speci c
input and output and possible valid mappings given the values of the transaction.
Knowledge graphs. The de nitions of the term Knowledge Graph are
manifold [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In this paper, we use the de nition of Bellomarini et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], who
describe a Knowledge Graph as a semi-structured data model characterized by three
components: (i) a ground extensional component, that is, a set of relational
constructs for schema and data (which can be e ectively modeled as graphs or
generalizations thereof ); (ii) an intensional component, that is, a set of inference
rules over the constructs of the ground extensional component; (iii) a derived
extensional component that can be produced as the result of the application of the
inference rules over the ground extensional component (with the so-called
\reasoning" process). We will use this de nition in Section 3 to show the fundamental
connection between Knowledge Graphs and blockchain analytics.
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Knowledge Graphs for Blockchains</title>
      <p>
        As discussed in the previous sections, the Bitcoin blockchain structure can be
interpreted as a graph-like structure for di erent blockchain applications. While
this connection builds the fundamental relationship to Knowledge Graphs by
mapping the Bitcoin transaction structure to the extensional component of the
Knowledge Graph, we can identify several additional properties that overlap
between blockchains and the Knowledge Graph system. All the mentioned tasks
in Section 1, such as clustering, have in common that they infer new knowledge
based on existing data, which can be seen as generating new nodes and edges
(the derived extensional component) by using the intensional component. Hence,
Knowledge Graphs and blockchain tools share additional functionalities:
{ Shared reasoning tasks. The typical behavior of tasks involving
blockchains highly relates to Knowledge Graph reasoning. For example,
identifying the real-world entities behind accounts depends on the clustering of
several accounts into one real-world entity, which is comparable to entity
resolution [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], i.e., decide whether two accounts are the same real-world
entity, and link prediction [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], i.e., decide whether the account is part of the
real-world entity.
{ Shared interference rules. Knowledge graph and blockchains share
operationalized domain knowledge that is necessary to model domain-speci c
rules and patterns such as the representation of known money laundering or
fraud schemes for analytical tasks.
      </p>
      <p>While so far our focus has been on the abstract connection, we now concentrate
on a very concrete use-case, namely the Petya ransomware challenge. We do
want to mention that the provided description will only focus on the transaction
level, yet Knowledge Graphs are also made to perfectly model smart contracts
as part of the intensional component, i.e., the contract as rules. Smart contracts
are applications living inside the blockchains such as lottery services or supply
chain applications.</p>
      <p>Third-Party
Tools</p>
      <p>Discover
Knowledge</p>
      <p>Graph
Fee Distribution</p>
      <p>Exchange Tagging</p>
    </sec>
    <sec id="sec-3">
      <title>Use Case: Tracking the Petya Ransomware</title>
      <p>In this main section, we report how our approach performed on a concrete
usecase, namely the analysis of the Petya ransomware. This is only one example, but
representative for demonstrating how a concrete use-case can be solved using a
rule-based Knowledge Graph system. In fact, it requires to give answers to three
questions, spanning the entire life cycle of Knowledge Graphs:
{ How to construct a Knowledge Graph for analyzing the Petya ransomware
in order to include relevant data sources. (Section 4.1)
{ How to discover new facts based on the data in the Knowledge Graph to
get better insights. (Section 4.2)
{ How to formulate and use reasoning queries to perform blockchain analytics
and extract relevant information. (Section 4.3)
In Figure 2 we detailed the concrete steps of the work ow to address the
previously described questions. It begins with the construction by using the blockchain
and tagging services, then moves on to handling distinct discovery processes
(e.g., fee distribution, linkability) on three di erent graph perspectives, before
concluding with a coin ow analysis as a reasoning task. We will provide details
on each part in the respective subsections.
4.1</p>
      <sec id="sec-3-1">
        <title>Petya Knowledge Graph Construction</title>
        <p>Knowledge Graph construction has the goal of collecting and modeling relevant
data sources as the extensional component in a Knowledge Graph system. In the
case of the Petya Knowledge Graph, we use two di erent data sources, namely (i)
the Bitcoin blockchain itself for the basic data and (ii) tags to Bitcoin addresses
belonging to exchanges (i.e., services that swap di erent cryptocurrencies with
other parties) from di erent reliable online sources.</p>
        <p>Bitcoin Model. There exist di erent views on the Bitcoin blockchain, for
example the default structure of the blockchain as de ned in Section 2, or the linking
of transactions on the transaction or on the output level. Since e cient
Knowledge Graph Management Systems allow to convert between di erent views with
negligible performance overhead, we de ne the complete blockchain structure as
our extensional component of the KG and then convert this structure to di erent
views with rules for analysis during the discovery step (see Section 4.2, where
we will show graphical illustrations). The main relations are:</p>
        <sec id="sec-3-1-1">
          <title>Block(blockHash; number; prevBlock)</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>Tx(txHash; blockHash)</title>
        </sec>
        <sec id="sec-3-1-3">
          <title>TxIn(txHash; inIndex; spentT xHash; spentT xOutIndex)</title>
        </sec>
        <sec id="sec-3-1-4">
          <title>TxOut(txHash; outIndex; value)</title>
          <p>Relations 1-4 de ne the structure of the blockchain. Each transaction is part of
a block and has several inputs and outputs. An input references to an output,
which it consumes, while a block references to its predecessor (as described
in Section 2). We want to point out that any additional attributes, like the
address of the output, will be provided by additional relations, if required, e.g.,
TxOutAddr (txHash, outIndex, addr).</p>
          <p>Exchange Model. For modelling exchanges we use facts in the Knowledge
Graph that mark an address as an exchange, i.e., Exchange(addr).
Petya Blockchain Source. For Petya, we extracted the Bitcoin blockchain data
only in the relevant time frame of the event, i.e., between the blocks 473.000 and
490.000. In detail, we scanned the blockchain for transactions sending money to
the ransomware address \1Mz7153h. . . " and imported all following transactions
in the Knowledge Graph until we reached one of our three termination
criteria: (i) We identi ed an exchange by checking the output address against the
exchange model. (ii) We reached the end of our interval of interest, i.e., block
number 490.000. (iii) We exceeded a depth-limit of ten in our search graph. This
depth-limit was chosen due to the exponentially increased breadth of the
transaction tree in the deeper levels and the reduced likelihood that the coins in the
transaction are still belonging to the Petya user.
4.2</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Petya Knowledge Graph Discovery</title>
        <p>
          Knowledge Graph discovery extends the Knowledge Graph by deriving the
extensional component through applying rules of the intensional component. In
case of Petya, we extend the Knowledge Graph during discovery with additional
facts to gain more insight during the analysis. These facts can be either added by
our own rules or by rules interacting with other blockchain analytic frameworks.
In order to integrate additional knowledge, it is required to answer the following
three highly important questions:
{ How can we use di erent views of the blockchain for analytical tasks?
{ How can we use data provided by other analytical tools? We show this by
calculating the linkability (introduced in Section 2) between in- and outputs.
{ How can we use existing knowledge to extend the Knowledge Graph with
our own rules? We show this by extending the list of exchanges.
In order to answer these questions, we show rules that describe and highlight
the logic-based approach. These rules are given and executed in Vadalog [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
(a)
        </p>
        <p>Tx In/Out
Fee
(b)</p>
        <p>Output-Input
Fee
(c)
KG structure. The goal of our Petya analysis is to investigate the coin ow
between the ransomware address and possible exchanges. As brie y mentioned
in the previous section, depending on the task, di erent views of the blockchain
as graphs are preferable. Figure 3 visualizes three di erent views. In (a) we show
the transaction graph of the blockchain, which we use to calculate the fees and
can be directly extracted from the blockchain data, in (b) we show the
outputinput graph with all possible edges of a single transaction, which can be inferred
from the blockchain data and in (c) we show the link graph, where outputs and
inputs are linked if there is a known ow of coins between inputs and outputs of
a transaction, which has to be estimated from the blockchain data. These three
views are complementary, since in case of coin ow analysis, we are required
to know general properties of a transaction, as shown in (a)|e.g., fees, input
and output volumes for weighing the coin ow|as well as the actual ow of the
coins. In order to capture the ow, we introduce possible \edges" (b) between
the inputs and outputs of the transaction, since this information is not present
in the blockchain. Note that the link graph (c) is an uncertain graph, as the
available information in the blockchain is only su cient to predict such links
with a certain likelihood (e.g., via linkability discussed in the preliminaries).
Algorithm 1 Fee Distribution</p>
        <p>TxOut(t; i; v); ov = sum(v) ! OutVolume(t; ov)
TxIn(t; i; st; si); TxOut(st; si; v); iv = sum(v) ! InVolume(t; iv)
InVolume(t; iv); OutVolume(t; ov); f = iv
ov ! Fee(t; f )</p>
        <p>TxIn(t; i; st; si); TxOut(st; si; v);
InVolume(t; iv); Fee(t; f ); if = (v=iv) f ! InFee(t,i,if)
(1)
(2)
(3)
(4)
Algorithm 1 presents the concept of \fee". Rules 1 and 2 de ne the total input
and output volume per transaction. Rule 3 uses these values to de ne the fee.
Rule 4 assigns to each input of the transaction the weighted fee according to the
ratio between the input value and the total input volume.</p>
        <p>Algorithm 2 Mapping from Blockchain View to Output-Input (Oi) View</p>
        <p>TxIn(t; i; st; si) ! OiNode(st; si; t; i)
OiNode(ot; oi; it; ii) ! 9id OiId(id); OiOut(id; ot; oi); OiIn(id; it; ii)
(5)
(6)
OiIn(id1; t; ii); OiOut(id2; t; oi) ! PossibleEdge(t; ii; oi); PossibleOiEdge(id1; id2) (7)
Algorithm 2 presents the conversion between the blockchain view and the output
view. Rule 5 rewrites the blockchain in- and outputs identi ed by its transaction
and index to create a combined view of them. Rule 6 assigns each output-input
node a unique id and splits it into an output and input part. Rule 7 creates a
possible edge between in and outputs of a single transaction for the output-input
view as well as the blockchain view.</p>
        <p>Linkability. As described, we extend the possible edges of the
output-inputview (b) of the Knowledge Graph with some metric that describes the likelihood
of an existing coin ow from an input to an output. The metric we choose here is
linkability (as discussed in Section 2). For this, we compute the linkability with
Boltzmann for each transaction, where a calculation is feasible in time. We use
the default timeout value of 600 seconds and limit the maximum to 16 input
or output values (the default is 12). Algorithm 3 shows the application of the
output of the Boltzmann computation (i.e., a value between 0 and 1 for each
address combination), where we de ne only edges larger than or equal to the
threshold value of the linkability score, here 100%, as a link.</p>
        <p>Algorithm 3 Linkability-based Link View</p>
        <p>PossibleOiEdge(id1; id2); OiAddr(id1; a1); OiAddr(id2; a2);</p>
        <p>OiIn(id1; t; ); Linkability(t; a1; a2; l); l
1:0 ! Link(id1; id2)
(8)
Note that we allow to include the computation of external tools in the reasoning
process (here with accessing the Linkability fact), allowing an interaction with
highly optimized, task-speci c tools. However, the usage of such tools causes a
trade-o between explainability and performance, as such computations provide
us only with the output value (i.e., a black-box algorithm). For interested readers
we provide excerpts of a non-trivial, fully explainable (white-box) approach,
expressed in a rule-based format, in the appendix.</p>
        <p>Exchange identi cation. Online sources provide some, but not nearly all
addresses of exchanges. Therefore, our goal is to identify additional exchanges based
on existing exchange data.</p>
        <p>For this, we analyze di erent transactions where some inputs are from
exchanges. Consider for example the transaction \0f44a800. . . " presented in
Figure 4, which is part of our Petya graph. The gure shows that all inputs have
a 2-of-3 multisig format (i.e., two of three users have to sign the input that it
is accepted in the transaction) and that four of these inputs are tagged by a
(d)
EX
EX</p>
        <p>EX
EX
Address
Existing Tag</p>
        <p>New Tag
speci c exchange which we shall refer to as \exchange X", which is an exchange
provider for cryptocurrencies. This transaction reveals that there exist some
exchange transactions which follow a speci c format. In this case, we assume
that all inputs are from \exchange X", because they share the same input-type,
e.g., 2-of-3 multisig. Therefore, we de ne a generalized heuristic:
If a transaction has several inputs and one input is tagged as exchange, then all
inputs have to be tagged as exchange.</p>
        <p>The idea is that it is unlikely that an exchange collaborates with a di erent
party to send transactions. This heuristic allows us to cut the reasoning space
by reducing the number of relevant nodes.</p>
        <p>The heuristic is visualized in Figure 5 (d), where an existing tag propagates
this information to the transaction and to the other addresses of the input nodes.
Algorithm 4 Exchange Tagging</p>
        <p>TxIn(t; i; st; si); TxOutAddr(st; si; a); Exchange(a) ! ExchangeTx(t)
TxIn(t; i; st; si); ExchangeTx(t); TxOutAddr(st; si; a); ! Exchange(a)
(9)
(10)
Algorithm 4 presents this in rules. Rule 9 models that every transaction having
as input an address that belongs to an exchange is an exchange transaction;
Rule 10 tags each address of the input of such a transaction as exchange.
In this section, we provide rst a general overview of some interesting statistical
properties followed by a detail analysis of the coin ow.</p>
        <p>Statistical properties. Our goal is to get an overview of the KG, before going
into detailed tasks. For this, stakeholders asked the following questions:
{ How many coins have been received and spent by the ransomware address?</p>
        <p>
          This question indicates the number of relevant coins for analysis.
{ For how many transactions are not we able to compute the linkability? Can
the linkability computation failure be associated with recurring patterns?
These questions indicate the performance of the linkability computation.
Table 1 summarizes the answers to our questions. Our graph has about 100.000
nodes, thereof are about 25% exchanges, with about 770.000 edges between the
nodes. Petya collected about 4.4 Bitcoins in the chosen block-interval, whereof
about 92% have been moved and thus can be tracked in the coin ow analysis.
To answer the second question, we see in Table 1 that we were not able to
compute the linkability of 23% of the transactions. In a detailed analysis, we
analyzed these transactions to identify clusters in input and output
combinations. We identi ed that 286 transactions have 2 outputs (i.e., 64.4% of the total
transactions without linkability). We use this nding, to improve the linkability
in the graph by following \simpli ed" Bitcoin ow heuristic [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]:
A transaction with two outputs is a payment transaction, where one value is the
payment and one the change value and thus both outputs are linked with 100%.
We use this heuristic to extend our \links" in the following coin ow analysis.
Coin ow analysis. The goal of this analysis is to identify the coin ows of the
Petya ransomware. For this, we ask following questions:
{ How many coins have reached a known point, e.g., exchange, with 100%
(75%, 50%) linkability? This is interesting, since exchanges (at least where
regulated) are subject to KYC rules. In addition, exchanges are a natural
point to stop the coin ow analysis as the ownership of the coin changes.
{ How many coins could be additional tracked with the exchange heuristic,
how many with the linkability heuristic? This gives us feedback about the
improvement contributed by our de ned heuristics.
{ How many Bitcoins have been spent as fee or got intractable? These values
are interesting to complete the overview of the coin ow. Fees are determined
by the di erence of the input and output of a transaction and get paid to
a unrelated account (i.e., the account mining the block) which account is
not further relevant for the analysis and are \lost". Intractable coins
cannot identify the user due to successfully mixing techniques, but are still of
interest.
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Algorithm 5 Coin Flow</title>
        <p>Link(id1; id2); OiVal(id2; val) ! VLink(id1; id2; val) (11)</p>
        <p>VLink(id1; ; v); s = sum(v) ! OutVolume(id1; s)</p>
        <p>OiDepth(id; 0); OiVal(id; vsent) ! VNode(id; vsent)
VNode(id1; vsent); Link(id1; id2); OutVolume(id1; vov);</p>
        <p>InFee(id1; vfee); OiVal(id1; vin); OiVal(id2; vout);
sentR = vsent=vin; totalSent = vsent</p>
        <p>(vfee sentR);
receiveR = vout=vov; vrecv = totalSent receiveR ! VNode(id2; vrecv)
In order to calculate the coin ow, we use a graph traversal query, where we
follow all paths with a threshold value (e.g., 100%) of the linkability. Since some
paths contain also other inputs, the actual value transferred in an transaction
may be higher than the actual value currently owing through this path. We
use weighted fees to approximate the fees of the input and de ne the following
heuristic to approximate the ow value to the output:
The ow to an output is weighted according to all relevant outputs of the input.
An output is relevant, if the linkability is higher or equal as the threshold.
Consider Figure 5 (e). We have three inputs i1 of 60, i2 of 30 and i3 of 10
coins, two outputs, o1 of 36 and o2 of 54 coins, a linkability of i1 with 0:0 for
o1 and 1:0 for o2 and a input ow of i1 of 40. Then the fee is 10 coins, whereof
input i1 pays 6 coins, i2 3 coins, and i3 1 coin. The input ow is 40=60 = 2=3
and hence the fee of the input ow of i1 is 4 coins. The total amount of relevant
output is 54, and the weighted output of o1 is 54=54 = 1:0. Then the ow from
i1 to o1 is (40 4) 1:0 = 36 coins.</p>
        <p>Algorithm 5 presents the coin- ow computation. Rule 11 annotates each link
with the value of the output, which is used in Rule 12 to calculate the output
volume of all valid outputs. Rule 13 initializes the nodes at depth 0 (i.e.,
transactions to the ransomware address) with the transferred value. Rule 14 propagates
this value recursively to the following nodes according to the de ned heuristics.</p>
        <p>Table 2 provides an overview of the results. We see that 96.7% of the value
is tractable (89% to an exchange and 7.7% as fee), which leaves only 3.3% of
the coins intractable. While both heuristics improved the result, we see that the
exchange heuristic has a much higher impact on the result and increased the
coins, which ow to exchanges, from 84.3% up to 88.9%.</p>
        <p>
          Even without the two heuristic we could track more than 84% of the coins to
exchanges. This can be explained by an exchange at depth 3, which was used
(12)
(13)
(14)
43509166
339588561
a2a6c377...[
          <xref ref-type="bibr" rid="ref1 ref27 ref28 ref29 ref30">1</xref>
          ]
a2a6c377...[0]
43478905
4f7ed4f9...[0]
b5378d27...[0]
b5378d27...[
          <xref ref-type="bibr" rid="ref1 ref27 ref28 ref29 ref30">1</xref>
          ]
to cash out 83.7% of all the coins. Figure 6 visualizes this fund movement by
showing the movements after the rst consolidations at the lowest depth until
the discussed exchange.
        </p>
        <p>We would like to point out that the results are derived using mathematical
relationships of Bitcoin transactions and heuristics given by domain experts, so we
can guarantee accuracy only with respect to these heuristics. The main goal of
this research is to demonstrate how rule-based systems can be used for blockchain
analytics, with an emphasis on their ease of use for analytical reasoning tasks
and seamless integration with sophisticated algorithms.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        The related work in the area of blockchain analytics is manifold, as multiple
problems have been studied in detail such as clustering of blockchain
identities [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], de-anonymizing users [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], computation of economic indicators [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], for
example to predict future Bitcoin prices [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] or transaction fees, or the identi
cation of criminal activities like ransomware payments [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] or nancial fraud [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
We focus in the following on well-established tools and provide an overview on
related ransomware analytics.
      </p>
      <p>
        Bartoletti et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] created a general Scala library for blockchain analytics
focusing on common tasks such as address clustering or user deanonymization to
generate a shared view between them. BlockSci [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] is an in-memory database
optimized for blockchain analytics for Bitcoin-like blockchains that provides ten
pre-de ned heuristics for linking addresses and an interface for map-reduce jobs.
GraphSense [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ] builds upon BlockSci and provides an analytics platform on
a NoSQL-basis working on higher-level graph structures such as on the address
(i.e., all transactions between two addresses) or entity (i.e., a clustering of
addresses) level and supports the collaborative collection of address tags. Typical
clustering heuristics include the multiple-input heuristics which assumes that
inputs spent in the same transactions are controlled by the same user (which
does not work for mixing transactions where di erent users are contributing to
the input), or the change address heuristic which links the second (lower) output
to the input addresses [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. While those systems focus on a scalable and e cient
analytic platform by providing tools, the focus of this work is to study on a
concrete scenario the ease of use of rule-based systems for blockchain analytics.
      </p>
      <p>
        Multiple studies have investigated ransomware activity in the Bitcoin
network. One main direction of the work is the detection of addresses related to
ransomware [
        <xref ref-type="bibr" rid="ref16 ref21">16, 21</xref>
        ]. One ransomware studied is CryptoLocker [
        <xref ref-type="bibr" rid="ref13 ref17">13, 17</xref>
        ], where
similar patterns of address usage were detected and a tracking of the coins to
a dark web marketplace via an exchange have been reported. Huang et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
estimated a lower bound of ransomware revenue of about $16 millions USD over
two years in 2018 and studied the movement of ransomware payments in the
Bitcoin network. In comparison, our work focuses on the rule aspect for blockchain
analytics and not on new techniques regarding ransomware detection and
tracking. Our proposal of adopting Knowledge Graphs can be seen as complementary
to existing, highly optimized, task-speci c algorithms, bridging the gap between
implicitly gained explainability via rules and highly optimized tasks such as
clustering algorithms, which can perfectly co-exist (as mentioned in Section 4.2). To
the best of our knowledge, rule-based Knowledge Graphs for blockchain analytics
have not been considered so far.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we showed how the key industrial challenge of tracking illicit
activities in blockchains can be solved via a rule-based, declarative AI approach.
We discussed our methodology for the entire life cycle of the Knowledge Graph,
including di erent views on the blockchain data, integration of third-party tools
and a analytical scenario.</p>
      <p>Importance and impact. It is a key mission for the nancial system to prevent
being exploited for illicit activities. For this reason, being able to detect and
highlight the risks in new systems, such as blockchains, is crucial to its correct
operations. The approach showed impact in a variety of aspects:
{ Simple integration of di erent tools to use in analysis
{ Ease of trying out new ideas and using explainable, rule-based formulation
for interaction between stakeholders.
{ Low barrier of entry, as only high-level technical knowledge is required, and
more people can use and understand the platform.</p>
      <p>Our approach allows fully recursive blockchain queries in a declarative way, which
increases the maintainability of blockchain analytics scripts. In future work, we
want to improve our system by considering speci c performance optimizations
for acyclic blockchain graphs, extend the Knowledge Graph to the complete
Bitcoin blockchain and develop or use more sophisticated heuristics to improve
the overall result.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgements</title>
      <p>The nancial support by the Vienna Science and Technology Fund (WWTF)
grant VRG18-013 is gratefully acknowledged.
A</p>
    </sec>
    <sec id="sec-7">
      <title>Rule-based Linkability Computation</title>
      <p>Assume, we already have created a list of valid combinations by starting with
the parent of all inputs linked to all outputs, followed recursively by all
nonintersecting pairs of valid input-output sets (i.e., a set is valid if the di erence
between input volume and output volume is greater or equal than zero and
smaller or equal than the fee), which union of input sets and output sets match
the parent. Such a list is presented in Table 3 for four inputs with the values
(30, 6, 3, 3) and two outputs with the values (10, 15) with the according max
depth of each child.
For calculating the linkability, we have to calculate the number of valid mappings
and the actual number of usages of each (partial) mapping. This calculation is
shown in Figure 7, where (a) counts the number of mappings and (b) counts
the number of usages. These numbers are used to calculate the nal linkability
between each input and output value by counting each left child, where the input</p>
      <p>I0,I1,I2,I3
o0,o1
2 oi00,,io31 i1,i2</p>
      <p>i0,i2
2 i1,i3 o0,o1
1 i0o,0i,10,1i3 i2
1 oi00,,io21 i1
1</p>
      <p>i0
i1,i2 o0,o1
1 oi00,,io21 i1
1
1
1
and output value is present, used mappings times and each right child, where
the values are present, used times. The multiplication of the left child considers
the number of sub-mappings provided by the right child.</p>
      <p>Algorithm 6 de nes the number of mappings (a). Rule 1 de nes for each element,
whether it has a child. Rule 2 uses this information to set the number of mappings
to one for all elements that have no children. Rule 3 recursively de nes the
number of mappings by the sum of the child mappings plus its own mapping.
Algorithm 6 Linkability: Calculation of Mappings
Algorithm 7 presents the calculation of the number of usages for each mapping
(b). For this, we init in Rule 4 the root mapping with 1 and de ne in Rule 5
recursively the number of usages as the sum of its parents.</p>
      <p>Algorithm 7 Linkability: Calculation of Usage per (partial) Mapping
List(il; ol; ir; or; ); Usage(ilp; olp; ip; op; v); ip = iljir;
op = oljors = msum(v; &lt; ilp; olp; ip; op &gt;) ! Usage(il; ol; ir; or; s)</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abrams</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Petya ransomware's encryption defeated and password generator released</article-title>
          . https://www.bleepingcomputer.com/news/security/petya-ransomwaresencryption
          <article-title>-defeated-and-password-generator-released/ (</article-title>
          <year>2016</year>
          ), [Online; accessed 2021-
          <volume>07</volume>
          -29]
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Akcora</surname>
            ,
            <given-names>C.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dey</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gel</surname>
            ,
            <given-names>Y.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kantarcioglu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Forecasting bitcoin price with graph chainlets</article-title>
          .
          <source>In: PAKDD</source>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bartoletti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lande</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pompianu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bracciali</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A general framework for blockchain analytics</article-title>
          . In: SERIAL@
          <string-name>
            <surname>Middleware</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bellomarini</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fakhoury</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gottlob</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sallinger</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Knowledge graphs and enterprise AI: the promise of an enabling technology</article-title>
          .
          <source>In: ICDE</source>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bergman</surname>
            ,
            <given-names>M.K.</given-names>
          </string-name>
          :
          <article-title>A common sense view of knowledge graphs</article-title>
          . https://www.mkbergman.com/2244/a
          <article-title>-common-sense-view-of-knowledge-graphs/ (</article-title>
          <year>2019</year>
          ), [Online; accessed 2020-
          <volume>04</volume>
          -19]
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. bitcoin.it: Change. https://en.bitcoin.it/wiki/Change, [Online; accessed 2020-
          <volume>04</volume>
          - 19]
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Christen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Data Matching - Concepts and Techniques for Record Linkage</article-title>
          , Entity Resolution, and Duplicate Detection. Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. CoinMarketCap:
          <article-title>Total cryptocurrency market cap</article-title>
          . https://coinmarketcap.com/charts/ (
          <year>2021</year>
          ), [Online; accessed 2021-
          <volume>07</volume>
          -29]
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Haslhofer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karl</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Filtz</surname>
          </string-name>
          , E.:
          <article-title>O bitcoin where art thou? insight into large-scale transaction graphs</article-title>
          .
          <source>In: SEMANTiCS</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Haslhofer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Stutz, R.,
          <string-name>
            <surname>Romiti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>King</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Graphsense: A general-purpose cryptoasset analytics platform</article-title>
          .
          <source>CoRR abs/2102</source>
          .13613 (
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>D.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aliapoulios</surname>
            ,
            <given-names>M.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>V.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Invernizzi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bursztein</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McRoberts</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levchenko</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Snoeren</surname>
            ,
            <given-names>A.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McCoy</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Tracking ransomware end-to-end</article-title>
          .
          <source>In: IEEE Symposium on Security and Privacy</source>
          . pp.
          <volume>618</volume>
          {
          <fpage>631</fpage>
          . IEEE Computer Society (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kalodner</surname>
            ,
            <given-names>H.A.</given-names>
          </string-name>
          , Moser,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Goldfeder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Plattner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Chator</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Narayanan</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Blocksci: Design and applications of a blockchain analysis platform</article-title>
          .
          <source>In: USENIX Security Symposium</source>
          . pp.
          <volume>2721</volume>
          {
          <fpage>2738</fpage>
          . USENIX Association (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kharraz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Robertson</surname>
            ,
            <given-names>W.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balzarotti</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bilge</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kirda</surname>
          </string-name>
          , E.:
          <article-title>Cutting the gordian knot: A look under the hood of ransomware attacks</article-title>
          .
          <source>In: DIMVA. Lecture Notes in Computer Science</source>
          , vol.
          <volume>9148</volume>
          , pp.
          <volume>3</volume>
          {
          <fpage>24</fpage>
          . Springer (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <article-title>LaurentMT: A standard interface for tokens</article-title>
          . https://github.com/SamouraiWallet/boltzmann, [Online; accessed 2020-
          <volume>04</volume>
          -19]
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. LaurentMT:
          <article-title>Bitcoin transactions &amp; privacy (part 1)</article-title>
          . https://gist.github.com/LaurentMT/e758767ca4038ac40aaf (
          <year>2017</year>
          ), [Online; accessed 2020-
          <volume>04</volume>
          -19]
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cai</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tian</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xue</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zheng</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>Identifying illicit addresses in bitcoin network</article-title>
          .
          <source>In: BlockSys. Communications in Computer and Information Science</source>
          , vol.
          <volume>1267</volume>
          , pp.
          <volume>99</volume>
          {
          <fpage>111</fpage>
          . Springer (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Liao</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Doupe</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ahn</surname>
          </string-name>
          , G.:
          <article-title>Behind closed doors: measurement and analysis of cryptolocker ransoms in bitcoin</article-title>
          . In: eCrime (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Moser, M.,
          <string-name>
            <given-names>Bohme</given-names>
            , R.,
            <surname>Breuker</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>Towards risk scoring of bitcoin transactions</article-title>
          .
          <source>In: Financial Cryptography Workshops</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Nakamoto</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Bitcoin: A peer-to-peer electronic cash system</article-title>
          . http://bitcoin.org/bitcoin.pdf (
          <year>2008</year>
          ), [Online; accessed 2019-
          <volume>11</volume>
          -19]
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Ober</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katzenbeisser</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamacher</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Structure and anonymity of the bitcoin transaction graph</article-title>
          .
          <source>Future Internet</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Paquet-Clouston</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haslhofer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dupont</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Ransomware payments in the bitcoin ecosystem</article-title>
          .
          <source>J. Cybersecur</source>
          .
          <volume>5</volume>
          (
          <issue>1</issue>
          ),
          <year>tyz003</year>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Ron</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shamir</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Quantitative analysis of the full bitcoin transaction graph</article-title>
          .
          <source>In: Financial Cryptography</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Solon</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hern</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Petya'ransomware attack: what is it and how can it be stopped</article-title>
          .
          <source>The Guardian</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Spagnuolo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maggi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zanero</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Bitiodine:
          <article-title>Extracting intelligence from the bitcoin network</article-title>
          .
          <source>In: Financial Cryptography</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Taskar</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wong</surname>
            ,
            <given-names>M.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abbeel</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koller</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Link prediction in relational data</article-title>
          .
          <source>In: NIPS</source>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luo</surname>
          </string-name>
          , J.:
          <article-title>Heuristic-based address clustering in bitcoin</article-title>
          .
          <source>IEEE Access 8</source>
          ,
          <issue>210582</issue>
          {
          <fpage>210591</fpage>
          (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <source>1 i1 o0i,0o1 1 oi00,,io31 i1,i2 i0</source>
          ,
          <fpage>i2</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <source>1 i1,i3 o0,o1 1 i0o,0i,10,1i3 i2 1 i0o,0i,20,1i3 i1 11 i1,i2,i3 o0i,0o1 i1,i2,i3 oi01 o0</source>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <source>1 i2,i3 o0,o1 i0,i1 i0</source>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          i1,
          <year>i2</year>
          o0,
          <fpage>o1</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>