<!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>Two-tier blockchain timestamped notarization with incremental security</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alessio Meneghetti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Armanda Ottaviano Quintavalle</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Massimiliano Sala</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alessandro Tomasi</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Mathematics, University of Trento</institution>
          ,
          <addr-line>Trento</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>LDSD, Department of Physics and Astronomy, University of She eld</institution>
          ,
          <addr-line>She eld</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Security and Trust, Fondazione Bruno Kessler</institution>
          ,
          <addr-line>Trento</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Digital notarization is one of the most promising services o ered by modern blockchainbased solutions. We present a digital notary design with incremental security and cost reduced with respect to current solutions. A client of the service receives evidence in three steps. In the rst step, evidence is received almost immediately, but a lot of trust is required. In the second step, less trust is required, but evidence is received seconds later. Finally, in the third step evidence is received within minutes via a public blockchain.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The solution here described was commissioned to provide a customer in the nancial sector
with evidence to corroborate its statement of the integrity, authenticity, and existence at a
given time of its data. This is closely related to the problems known as secure timestamping
and notarization. The commission was made with the very speci c requirement that it should
make use of a privately run blockchain-based service anchored to a public blockchain, but at
the same time still be capable of working without the private ledger, if it should cease to
operate. We nd it interesting to discuss how this design challenge can be met, and what
security guarantees it can o er.</p>
      <p>
        Digital timestamping and blockchain have been linked from inception. The bitcoin
whitepaper [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] explicitly cites the linked timestamping work by Haber and Stornetta [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] with Merkle
trees [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] as e ciency improvement [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Other blockchain-based timestamping solutions have been recently proposed. The authors
of [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] propose to commit aggregate data hashes to a bitcoin transaction. On the other hand, the
authors of [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] report on existing solutions that use the data hash as a bitcoin address to which
to spend a transaction (BTProof, now unavailable), or embed a custom string and a data hash
in the transaction's data eld (Proof of Existence [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]); the authors themselves extend the former
by using three addresses per transaction: one encoding the name, one encoding metadata, and
one encoding the data hash itself.
      </p>
      <p>
        As pointed out in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], there are several layers on which blockchain provides guarantees - of
consistency, security, etc. - each with potentially di erent tools to check that these guarantees
hold. The present solution does not o er a programming language for smart contracts and
makes no speci cation as to the networking or consensus protocols.
      </p>
      <p>The novel aspect of our solution is that a client of the service receives evidence in three
steps. In the rst step, evidence is received almost immediately, but a lot of trust is required.
In the second step, less trust is required, but evidence is received seconds later. Finally, in the
third step evidence is received within minutes via a public blockchain. We achieve our results
thanks to the interaction between two blockchains, one of which is public.</p>
      <p>After some notation and preliminaries in Section 2, we give a semi-formal speci cation of
the solution in Section 3. Sections 4 and 5 contain our security proofs. Section 6 contains a
discussion about possible DOS attacks, while Section 7 hosts our conclusions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Notation and preliminaries</title>
      <p>Let time be measured in intervals [a; b) = ft 2 R j a t &lt; bg, for any a &lt; b 2 R. Let</p>
      <p>A () be a digital signature algorithm using the private key of data owner A; if the owner
can be determined unambiguously, we may sometimes omit A for clarity. We assume to be
resistant to impersonation attacks: an attacker D cannot obtain D (m) from A (m). We also
assume to be unforgeable. For example, ECDSA satis es both security properties under the
usually-assumed hardness of the DLOG problem in (strong) elliptic curves.</p>
      <p>Let k denote string concatenation. As a shorthand when dealing with containers of data
with attached a signature of the contents, e.g. block headers, we will commonly employ
expressions such as
where T are the contents, the signature is computed as
s = T k</p>
      <p>(s);
(T k 0)
with 0 a string of zeroes of the same length as (T k 0), and nally the container s is composed
by replacing 0 by (T k 0). The shorthand (s) is employed to indicate that the signature
refers to the entire contents, without writing them explicitly at length.</p>
      <p>
        Throughout this paper we denote with A(m) a public-key encryption of message m with
public key of actor A; with T f j g a Merkle tree of a list of items j; and with h (m) a
cryptographic hash function, in the sense of [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], of message m. In particular, the collision resistance
of h () is required in order to deduce that the forgery of a path in the Merkle tree would imply
a collision.
      </p>
      <p>
        The seminal work on digital timestamping is due to Haber and Stornetta [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], on which
widely used standards for trusted timestamping today are based, such as RFC 3161 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], ANSI
X9.95, and ISO 18014 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        We present the following two algorithms to recall these important methods and establish a
common notation, though we do not make use of them directly in our solution.
Algorithm 1 (Trusted authority timestamping). In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], the client holding data d sends its
hash h (d) to a trusted timestamping authority A, which returns a signed statement of the
time of receipt, t:
      </p>
      <p>RFC 3161 is substantially the same scheme, but an additional hashing step is introduced:
= h (d) k t k</p>
      <p>A ( ) :
= h (h (d) k t) k</p>
      <p>A ( )
(1)
(2)
(3)
These schemes place all trust in the hands of the authority A, but in practice trust is distributed
among several stakeholders with successive timestamps.</p>
      <p>
        By using hash trees, more sophisticated timestamping algorithms have been developed (see
e.g. [
        <xref ref-type="bibr" rid="ref4 ref9">4, 9</xref>
        ]).
      </p>
      <p>Algorithm 2 (Tree-linked timestamping). At step k, de ne a time interval [tk 1; tk). The
server A collects all requests k = f k;igi received in the time interval, and builds the Merkle
tree T ( k). We denote its root with rk and we call it interval root.</p>
      <p>The interval roots are linked together by the following rule, thus forming a chain of hashes
fR`g0 ` k:</p>
      <p>R0 = 0</p>
      <p>R` = h (R` 1 k r`)</p>
      <p>The values fR`g0 ` k are placed in a widely available repository. The server then returns
to each requester a receipt with the time tk, along with the path in the Merkle tree from the
requester's leaf up to the value Rk.</p>
      <p>
        The authors of [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] themselves point out that the integrity of the public repository of root
hashes is the only requirement on which the authenticity of a document with receipt relies.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Solution description</title>
      <p>We now describe our solution. We do not require that blocks are created at xed-time intervals,
but we require a time division in intervals. To be more precise, since each block hosts the time
of its creation, we can consider time intervals using the index k (k 0), so that interval k
corresponds to [tk 1; tk) for k 1 and interval 0 corresponds to time t &lt; t0.
3.1</p>
      <sec id="sec-3-1">
        <title>Architecture</title>
        <p>The service handles interactions among the following participants:</p>
        <p>The clients of the service wish to provably record the existence of data d at a given time.
C denotes an arbitrary client.</p>
        <p>Some service nodes check proposed transactions for validity, provide evidence of record to
clients, and maintain a blockchain, which we will call proxy blockchain. N and M denote
nodes. At block creation time, one of the service nodes acts as committing node and thus
prepares a block, which is submitted to the other service nodes for acceptance.
One auxiliary node A commits further evidence to a public ledger L, used as a reference
clock and trusted timestamping service, and monitors client transaction activity. A never
acts as a service node.</p>
        <p>
          The service relies on a trusted certi cate authority to provide the public key infrastructure
necessary to both identify the nodes with permission to participate in the service and provide the
ability to digitally sign documents. We assume that the proxy blockchain is at least permissioned
if not private, and that it is a robust ledger in the sense of [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], i.e. guaranteeing persistence and
liveness. We do not address the backbone protocol and the consensus algorithm, in particular
we make no speci cation as to how the information of transactions propagates, or how the node
that shall create the next block is chosen, or how the other service nodes accept its proposed
block.
        </p>
        <p>The main function of our service is delivered by enabling a client C to prove existence
of some data at commit time t, based on some evidence. We provide evidence in the form of
digitally signed receipts and blockchain and C receives evidence with incremental trust, in three
successive steps, as sketched below:
1. Evidence issued by the service node receiving data.
2. Evidence issued by the service node that create blocks in the proxy blockchain.
3. Evidence issued by the auxiliary node A and hosted by public blockchain L: A issues some
evidence, which is partially stored in a public repository L, such as the bitcoin network.
In the rst step, C receives a rst signed receipt. In the second step, C receives a second receipt
and is able to access some evidence on the proxy blockchain. In the last step, C receives a nal
receipt and is able to access some evidence on a public blockchain. We speak of incremental
trust because the probability of C colluding with the other actors decreases signi cantly from
one step to the next.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Block creation and Node receipt issuance</title>
        <p>We now describe in detail the rst phases of our system. We assume that all clients are operating
in time interval k.</p>
        <sec id="sec-3-2-1">
          <title>Transactions</title>
          <p>Each client C, identi ed by a digital identity C , creates a self-signed statement
to one of the nodes M for validation, which becomes in notation (1)
=</p>
          <p>C (d) k t k C k C ( )
This statement is analogous to a transaction in popular blockchain solutions, so we will call
it transaction. M checks the signature in for validity and the claimed time t (i.e. t &gt; tk 1).
If the check is successful, M broadcasts to the other nodes and sends M ( ) back to C, which
acts as the rst receipt. We call M the validator of transaction .</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>Block creation</title>
          <p>The next committing Node N then constructs a block by the following procedure. We assume
that k blocks have already been created, with block k 1 being the last created1, meaning that
all the following actions by N are implicitly related to time interval [tk 1; tk).</p>
          <p>Let TC be the set of valid transactions originated by C and received2 by N (via validator
nodes), ordered according to a prede ned rule3. Let T (TC ) be the Merkle tree of TC , and let
RC be its root.</p>
          <p>Let C be the set of all Clients that originated transactions received by N , which we call
transacting Clients. Node N calculates the Merkle tree T fRC gC2C , whose root is called P. We
refer to RC as the Client root and P as the block root.</p>
          <p>We now de ne block Bk constructed by Node N . The block will contain a header, a list of
summary transactions (one per transacting Client), and a phantom part.</p>
          <p>The summary transaction for C contains a public encryption and is as follows:
and sends it
(4)</p>
          <p>A( C ) k RC :
1Block 0 can be made with obvious modi cations.
2This set might be smaller than the set of all transactions issued by C
3For example, according to the order de ned by the integer representation of C (d).</p>
          <p>The header Hk of Bk is, in notation (1),</p>
          <p>Hk = h (Hk 1) k k k tk k P k N k N (Hk) ;
where tk is stated by N as the creation time of Bk.</p>
          <p>The phantom part is the list of all transactions referred by the summary transactions, that
is [C2C TC . This transaction list is called phantom part because it is a part of the block which
is visible only to the Nodes, and so invisible to the Clients.</p>
        </sec>
        <sec id="sec-3-2-3">
          <title>Receipts</title>
          <p>Once N creates the block Bk, N issues a receipt C to each transacting Client C, which in
notation (1) is written</p>
          <p>C = TC k RC k C k N ( C ) ;
where C is the shortest path in the Merkle tree from RC to P.
3.3</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>Public ledger and Auxiliary receipt issuance</title>
        <p>Let m be a xed number m 2. Every m blocks, node A interacts with the public blockchain.
Let k0 be the last time interval in which this happened, and call anchorage block a block
corresponding to one of these interactions. At the end of time interval k0 +m, another anchorage
block is created, therefore A collects the ordered list of Merkle roots and block hashes of blocks
k0 + 1; : : : ; k0 + m and uses these as 2m leaves of an auxiliary Merkle tree TA,
TA = T</p>
        <p>f Pk; h (Hk) gk0+1 k k0+m
with root Rk0+m, referred to as the auxiliary root.</p>
        <p>The data committed to the public ledger4 will be</p>
        <p>pub data = A k k0 k m k Rk0+m :
Finally, the auxiliary node issues an auxiliary receipt C to every client transacting in the
intervals k0 + 1 k k0 + m. Each such Client will already be in possession of a set of receipts
(6), which contains a set of blocks roots inside the paths C 's. This set of block roots is a
subset of the leaves of the tree with root Rk0+m. Therefore, C will contain the shortest path
C in TA required for C to recompute Rk0+m:</p>
        <p>C = k0 + 1 k k0 + m k pub data k v k C k A
C
;
(9)
where v is the address in the public blockchain of the transaction containing pub data.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Proof of notarization</title>
      <p>The system that we have described in the previous section may appear unnecessarily
complicated. After all, if there exists a \good" timestamping server, people could just use it and get
its signature in return. But herein lies the problem, because for a timestamping server to be
4The commitment of these data to the public ledger may require more than one transaction, according to
the public-blockchain transaction format.
(5)
(6)
(7)
(8)
\good" it needs to be secure, reliable, approachable - in the sense that it is easy to communicate
with it, both in bandwidth and in permissions - and cheap to use. While features like reliability,
connectivity, and cost can be relatively easy to estimate, security remains much more di cult to
evaluate. Indeed, we are not aware of any timestamping service on the Internet that presently
satis es all these properties, especially security.</p>
      <p>
        The only system that might provide reasonable security is a public blockchain, such as
the Bitcoin, and it would easily provide also approachability and reliability (in particular,
avoiding the risk of a single point of failure). However, at present, the cost of transactions
on a public blockchain is very high, making its direct use for storing proofs of documents
infeasible. Therefore, many competing solutions have been proposed, whose general aim is to
collect information on many documents - typically in hash form - and create paths of hashes
linking each document to the nal digest released on the public blockchain, e.g., Eternity Wall
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], Factom [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], and Guardtime [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. These solutions must give their users some sort of receipt,
allowing them to reconstruct the hash path and prove the existence of their documents.
      </p>
      <p>Although our solution may appear similar, we aim at something more: we want to give our
users incremental security. In the next sections we will describe our security claims and provide
proofs.
4.1</p>
      <sec id="sec-4-1">
        <title>Security claims</title>
        <p>The solution in Section 3 builds on the basic premise of digital notarization of a document. Each
client correctly interacting with our previous system (in a correct implementation) may be seen
as a notary making a statement of the existence of data d by adding their digital signature,</p>
        <p>C (h (d) k t). We are not concerned with the kind of information carried by d. Indeed, the data
may or may not be a document signed by parties entering a contract, and their handwritten
signatures may have been added on a paper or digital copy; we here emphasize that the only
digital statement of authenticity by digital signature is the Client's.</p>
        <p>
          We assume throughout that the blockchain is a robust ledger in the sense of [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], i.e.
guaranteeing persistence and liveness. Since no speci cation of consensus mechanism is made here by
design, we do not consider the question of whether the blockchain o ers su cient guarantees
of consistency, crash fault tolerance, or security against collusion.
        </p>
        <p>Let us consider the rst step of our incremental security, which is the rst interaction of a
client C with our system. Let us call \Tom" someone who will come and will not believe in C's
claims about the existence of its claimed documents at the claimed time. C hopes to be able
to convince Tom by using our protocol.</p>
        <p>At the start, C sends the signature of a document to the node network, encapsulated in the
transaction (4), and a node M receives it. When M sends back to C the signature M ( ),
M is actually giving C the rst evidence that C can show to Tom about its good faith. C is
therefore immediately - say, in a few seconds - in possession of a receipt claiming the existence
of its documents at the claimed time.</p>
        <p>Whether Tom trusts this claim depends on whether Tom trusts M , speci cally. This is
equivalent to trusting a single timestamping server and can be modeled simply as follows.
Theorem 4.1. If M is trusted, then the data claimed by C existed at the claimed time and
were known to C.</p>
        <p>Proof. This comes from the unforgeability property of the signature
C and
can be achieved with a private blockchain. We require it to be private so that Tom knows all
service nodes and can decide whether he trusts them.</p>
        <p>Observe that we have not speci ed how consensus is reached in the proxy blockchain. It
could be that a majority of nodes is needed, or that all nodes must con rm N 's proposed block,
or some other more complex strategy. It does not matter, as long as Tom agrees that the
consensus algorithm is trustworthy. What matters is that C has collected the new block header
and that he has received a receipt C (6) from N . With this second evidence, Tom will agree
on the following
Theorem 4.2. If the new block has been generated with a trusted consensus algorithm, then
(at least at time tk) the data claimed by C existed and were known to C.</p>
        <p>Proof. All the service nodes that reached consensus have seen TC , so by signalling their
agreement to the new block they agreed that the transactions from C were valid and, in particular,
that the transactions were sent before the creation time tk of the block. Crucially, Tom has not
seen the phantom part of the block, but he does not need it. Indeed, from Hk Tom can get tk
and P. From C he gets TC and C , which shows the validity of the hash path.
C could not have forged the hash path C due to the hash security properties.</p>
        <p>An obvious question might arise when looking at the above proof: why keep a phantom
part? This need arises from privacy reasons: we do not want any client C to see the transactions
coming from another client C0. Of course, this goal could be reached with e.g. cryptography,
but we take advantage of the use of a private blockchain to avoid more complicated features.</p>
        <p>Thus C obtains within a short period of time some evidence on its documents that provides
a much higher con dence for Tom: it is one thing to compromise or collude with a single
participant M , and another to organize a collusion among the service nodes, including the
miner N .</p>
        <p>In the third and last step, if Tom does not trust the proxy blockchain, we will assume that
he trusts the anchored public blockchain. Again, this trust means that, whatever consensus
algorithm employed and whatever participants involved, the anchored public block was issued
at a time prior to t.</p>
        <p>Assuming that C has collected the new public block and the receipts C and C ( C refers
to time interval k), Tom will then agree on the following.</p>
        <p>Theorem 4.3. If a new public block has been generated in a public blockchain by a trusted
consensus algorithm, then (at least at time t) the data claimed by C existed and were known to
C.</p>
        <p>Proof. The new public block contains a public transaction containing pub data. Since the
public nodes have reached consensus and Tom trusts the public blockchain, he will trust that
pub data existed before t. Indeed, from pub data Tom can get Rk0+m. From C he gets C ,
which shows the validity of the hash path from Rk0+m to PK . From C he gets C , which shows
the validity of the hash path from PK to RC . From C he also extracts TC , which contains the
transaction with the claimed data, and can check its validity by recomputing RC .</p>
        <p>C could not have forged the hash paths C ; C or the tree root RC , without incurring in a
hash collision.</p>
        <p>Observe that in this last step Tom does not need to put any trust in the proxy blockchain,
because he can verify by himself the related hash chains.</p>
        <p>Obviously, in this third step of incremental trust Tom does feel very sure about C's claim,
but C obtains all the needed third evidence only after the public block creation, which will
probably last some minutes and its timestamping claim can only be up to t rather than its
claimed t.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Attacks with widespread collusion</title>
      <p>In Section 4 we showed how Tom can be convinced by C in di erent trust scenarios. To
convince Tom, C needed some valid evidence from the system. But the system might decide
not to release such evidence and try to obtain some advantage for itself. We will consider now
attack scenarios where the system does not interact correctly with C. We will assume that all
node services (including miners and auxiliary nodes) are malevolent.</p>
      <p>The three scenarios we are considering are: \Fake Owner", \Ghost document: proxy
version", \Ghost document: public version". In the \Ghost document" scenarios also the client C
is malevolent.</p>
      <sec id="sec-5-1">
        <title>Fake Owner</title>
        <p>Client C sends a transaction (4) at time t. The system does not acknowledge , and instead
provides a colluding client D with evidence enough to claim that D knew data d at time t.
Theorem 5.1. The Fake Owner attack fails.</p>
        <p>Proof. First, the malevolent nodes need to create a fake transaction 0. We do not need to
model what they will do next, because we claim it is impossible to create it. Indeed, 0 would
have the form in notation (1)
0 =</p>
        <p>D(d)jjtjj Djj D( 0)
In particular, it would contain D(d). However, we assumed that our signature algorithm was
resistant to impersonation attacks, and so this cannot happen.</p>
      </sec>
      <sec id="sec-5-2">
        <title>Ghost document: proxy version</title>
        <p>After a new proxy block Hk is created at time tk - but before an anchorage block, i.e. k 6= m
for any - C colludes with all service nodes and inserts a new transaction claiming that C
knew data d0 at time t0 &lt; tk.</p>
        <p>This attack may work, because the nodes can decide to:
discard block k and all existing successive blocks in their blockchain,
recompute TC (to include 0) and all relevant information in Hk,
recompute C (to include the new TC ), recompute all receipts for the other clients (and
send them);
recompute the headers of the successive blocks (to have valid hash pointers) and resend
them to the clients.</p>
        <p>The other clients might complain at seeing the change in past block headers, but they may be
satis ed when they receive valid blocks and valid receipts. If this attack is performed rarely,
the clients (and Tom) may be induced into believing that the block updates are due to some
software problems rather than malice.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Ghost document: public version</title>
        <p>After a new proxy block Hk is created at time tk (an anchorage block, so k = m
for some )
and the anchor has been created at time t0, C colludes with all service nodes and inserts a new
transaction in Hk claiming that C knew data d0 at time t0 &lt; tk.</p>
        <p>Theorem 5.2. A ghost document in public version cannot be created.</p>
        <p>Proof. Since the anchor has been created, pub data is in the public blockchain. To be able to
claim knowledge of data d0, C needs a valid hash path pointing to the root corresponding to
the new TC , so that he could use it to replace C . However, this path must end in Rk, which
is immutable in the public blockchain, and so it is impossible to forge another path due to
security properties of the hash function.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Some comments on DOS attacks</title>
      <p>In the past section we do not investigate scenarios when malevolent actors of the system want
to mount a DOS (Denial Of Service). We now examine this situation. There are three possible
attackers: a validator node, the auxiliary node A and the PKI's CA.</p>
      <p>Validator node If a malevolent node M receives a transaction from a client, M can
decide to ignore it. In this case, C would notice that something went amiss and C would try
to contact another node N . This kind of DOS is dangerous only if the client's communication
with the system is limited to a group of colluding nodes.</p>
      <p>A malevolent M could do worse than simply dropping : M could send the rst receipt M ( )
back to C and avoid broadcasting it to the other service nodes. In this way, C is tricked into
thinking that M is behaving honestly. However, C is expecting to receive also the second receipt</p>
      <p>C in a while. If this does not happen, C will know something is wrong and it will then interact
with other nodes. On the other hand, if C receives C and has not been used to construct
the relevant hashes, then again C will notice something is wrong.</p>
      <p>Auxiliary node A cannot modify the Hk's to construct its Merkle tree (and thus compute
a valid pub data), because A cannot sign impersonating one of the service nodes. However,
A may avoid to insert some of the Hk's, e ectively removing from the auxiliary tree all the
transactions received by the clients in the chosen intervals. This DOS attack by A is easily
spotted by all nodes (and all clients) when the anchoring happens, because it will be impossible
to reconclie the issued auxiliary receipts and the other receipts held by the clients.</p>
      <p>Certi cation Authority We assume in our system that the CA is trusted, because if the
CA were to issue certi cates to malicious peers, and if it failed to revoke them, the system
would be vulnerable to a majority attack. However, it could be that the CA itself is ooded by
packets sent by DOS attackers. In this scenario, it may impossible for the system participants
to check the validity of new data coming into the system, depending on the public keys held
by each participant. Yet, assuming that honest peers will not validate transactions without
a certi cate revocation list being available, the validity of past transactions remains perfectly
checkable by anyone having the relevant receipts (including Tom, if C gives them to him), since
they are enough to validate the data inserted in the public blockchain.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions</title>
      <p>We have shown a two-tiered system of independent blockchains for secure timestamping that
o ers incremental levels of evidence to clients. We have examined under what assumptions
the system may be deemed secure; in particular, we have seen that under the assumption of
an honest certi cation authority, only denial of service attacks are feasible, and they are also
immediately noticeable. The two-tiered system is designed to reduce the cost and increase
e ciency of commitments to a slow and costly public blockchain, while at the same time still
enabling clients to use their past evidence even if the intermediate blockchain solution were to
cease being operational.</p>
      <p>While we are satis ed with our nding, we notice that our results hold in a blockchain having
an inde nite but supposedly robust consensus algorithm. It would be interesting to investigate
how our system could be e ectively integrated in a blockchain enjoying a speci c consensus
algorithm, such as proof-of-work or proof-of-stake.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgments</title>
      <p>Some partial results of this paper have been presented at the Euregio Blockchain Conference in
2018. The more advanced results presented here have been funded by the project MIUR PON
\Distributed Ledgers for Secure Open Communities".</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] Eternity wall</article-title>
          . https://eternitywall.it/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Guardtime</surname>
          </string-name>
          . https://guardtime.com/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>[3] Proof of existence</article-title>
          . https://poex.io/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Dave</given-names>
            <surname>Bayer</surname>
          </string-name>
          , Stuart Haber, and
          <string-name>
            <given-names>W. Scott</given-names>
            <surname>Stornetta</surname>
          </string-name>
          .
          <article-title>Improving the e ciency and reliability of digital time-stamping</article-title>
          . In Renato Capocelli, Alfredo De Santis, and Ugo Vaccaro, editors,
          <string-name>
            <surname>Sequences</surname>
            <given-names>II</given-names>
          </string-name>
          - Methods in Communication, Security, and Computer Science, pages
          <volume>329</volume>
          {
          <fpage>334</fpage>
          . Springer, New York, NY,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Yuefei</given-names>
            <surname>Gao</surname>
          </string-name>
          and
          <string-name>
            <given-names>Hajime</given-names>
            <surname>Nobuhara</surname>
          </string-name>
          .
          <article-title>A decentralized trusted timestamping based on blockchains</article-title>
          .
          <source>IEEJ Journal of Industry Applications</source>
          ,
          <volume>6</volume>
          (
          <issue>4</issue>
          ):
          <volume>252</volume>
          {
          <fpage>257</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Juan</given-names>
            <surname>Garay</surname>
          </string-name>
          , Aggelos Kiayias, and
          <string-name>
            <given-names>Nikos</given-names>
            <surname>Leonardos</surname>
          </string-name>
          .
          <article-title>The bitcoin backbone protocol: Analysis and applications</article-title>
          . In Elisabeth Oswald and Marc Fischlin, editors,
          <source>EUROCRYPT - 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques</source>
          , volume
          <volume>9057</volume>
          of Lecture Notes in Computer Science, pages
          <volume>281</volume>
          {
          <fpage>310</fpage>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Bela</given-names>
            <surname>Gipp</surname>
          </string-name>
          , Norman Meuschke, and
          <string-name>
            <given-names>Andre</given-names>
            <surname>Gernandt</surname>
          </string-name>
          .
          <article-title>Decentralized trusted timestamping using the crypto currency bitcoin</article-title>
          . In iConference,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Stuart</given-names>
            <surname>Haber</surname>
          </string-name>
          and
          <string-name>
            <given-names>W. Scott</given-names>
            <surname>Stornetta</surname>
          </string-name>
          .
          <article-title>How to time-stamp a digital document</article-title>
          .
          <source>Journal of Cryptology</source>
          ,
          <volume>3</volume>
          (
          <issue>2</issue>
          ):
          <volume>99</volume>
          {
          <fpage>111</fpage>
          ,
          <year>1991</year>
          . Presented at
          <string-name>
            <surname>CRYPTO</surname>
          </string-name>
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Stuart</given-names>
            <surname>Haber</surname>
          </string-name>
          and
          <string-name>
            <given-names>W. Scott</given-names>
            <surname>Stornetta</surname>
          </string-name>
          .
          <article-title>Secure names for bit-strings</article-title>
          .
          <source>In 4th ACM conference on Computer and communications security (CCS)</source>
          , pages
          <fpage>28</fpage>
          {
          <fpage>35</fpage>
          . ACM New York, NY, USA,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>IETF</given-names>
            <surname>RFC</surname>
          </string-name>
          <article-title>3161</article-title>
          .
          <string-name>
            <surname>Internet</surname>
            <given-names>X.</given-names>
          </string-name>
          509
          <string-name>
            <given-names>Public</given-names>
            <surname>Key Infrastructure Time-Stamp Protocol</surname>
          </string-name>
          (TSP),
          <year>08 2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <source>[11] ISO 18014-4</source>
          :
          <fpage>2015</fpage>
          .
          <article-title>Time-stamping services { Part 4: Traceability of time sources</article-title>
          ,
          <year>04 2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Shin'ichiro Matsuo</surname>
          </string-name>
          .
          <article-title>How formal analysis and veri cation add security to blockchain-based systems</article-title>
          .
          <source>In Formal Methods in Computer Aided Design (FMCAD)</source>
          , pages
          <fpage>1</fpage>
          <issue>{4</issue>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Ralph</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Merkle</surname>
          </string-name>
          .
          <article-title>A digital signature based on a conventional encryption function</article-title>
          . In Carl Pomerance, editor,
          <source>CRYPTO</source>
          , volume
          <volume>293</volume>
          of Lecture Notes in Computer Science, pages
          <volume>369</volume>
          {
          <fpage>378</fpage>
          . Springer, Berlin, Heidelberg,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Satoshi</given-names>
            <surname>Nakamoto</surname>
          </string-name>
          .
          <article-title>Bitcoin: A peer-to-peer electronic cash system</article-title>
          . http://bitcoin.org/bitcoin.pdf,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Phillip</given-names>
            <surname>Rogaway</surname>
          </string-name>
          and
          <string-name>
            <given-names>Thomas</given-names>
            <surname>Shrimpton</surname>
          </string-name>
          .
          <article-title>Cryptographic hash-function basics</article-title>
          .
          <source>In Bimal Kumar Roy and Willi Meier</source>
          , editors,
          <source>Fast Software Encryption (FSE)</source>
          , 11th International Workshop on, pages
          <volume>371</volume>
          {
          <fpage>388</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Paul</given-names>
            <surname>Snow</surname>
          </string-name>
          , Brian Deery, Jack Lu, David Johnston, and
          <string-name>
            <given-names>Peter</given-names>
            <surname>Kirby</surname>
          </string-name>
          .
          <source>Factom white paper v1.2</source>
          . https://www.factom.com/assets/docs/Factom Whitepaper v1.2.pdf,
          <year>04 2018</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>