  Blockchains have a storage scalability issue. Their size is not bounded and
they grow indefinitely as time passes. As of August 2017, the Bitcoin
blockchain is about 120 GiB big while it was only 75 GiB in August 2016. To
benefit from Bitcoin full security model, a bootstrapping node has to download
and verify the entirety of the 120 GiB. This poses a challenge for low-resource
devices such as smartphones. Thankfully, an alternative exists for such devices
which consists of downloading and verifying just the header of each block. This
partial block verification enables devices to reduce their bandwidth
requirements from 120 GiB to 35 MiB. However, this drastic decrease comes with
a safety cost implied by a partial block verification. In this work, we enable
low-resource devices to fully verify subchains of blocks without having to pay
the onerous price of a full chain download and verification; a few additional
MiB of bandwidth suffice. To do so, we propose the design of diet nodes that
can securely query full nodes for shards of the UTXO set, which is needed to
perform full block verification and can otherwise only be built by sequentially
parsing the chain.
