  In Bitcoin and Ethereum, nodes require large storage capacity to maintain all
the blockchain data, such as transactions, UTXOs, and account states. As of May
2020, the storage size of the Bitcoin blockchain has expanded to 270 GB, and it
will continue to increase. This storage requirement is a major hurdle to
becoming a block proposer or validator. Although many studies have attempted to
reduce the storage size, in the proposed methods, a node cannot keep all blocks
or cannot generate a block. We propose an architecture called Trail that allows
nodes to hold all blocks in a small storage and to generate and validate blocks
and transactions. Trail does not depend on a consensus algorithm or fork choice
rule. In this architecture, a client who issues transactions has the data to
prove its own balances and can generate a transaction containing the proof of
balances. The nodes in Trail do not store transactions, UTXOs and account
balances: they keep only blocks. The blocksize is approximately 8 KB, which is
100 times smaller than that of Bitcoin. Further, the block size is constant
regardless of the number of accounts and the number of transactions. Compared
to traditional blockchains, clients who issue transactions must store
additional data. However, we show that proper data archiving can keep the
account device storage size small. Trail allows more users to be block
proposers and validators and improves the decentralization of the blockchain.
