Cryptocurrencies, which promise to become a global means of money transactions, are typically implemented with blockchain protocols. Blockchains utilize a variety of consensus algorithms, and their performance is advancing rapidly. However, a bottleneck remains: each node processes all transactions in the system. We present Ostraka, a blockchain node architecture that scales linearly with the available resources. Ostraka shards (parallelizes) the nodes themselves, embracing the fact that major actors have the resources to deploy multi-server nodes. We show that, in common scenarios, previous sharding solutions have the same property, requiring most node operators resources to process almost all blockchain transactions, while reducing system security. We prove that replacing a unified node with a sharded Ostraka node does not affect the security of the underlying consensus mechanism and that Ostraka does not expose additional vulnerabilities due to its sharding. We identify a partial denial-of-service attack that is exposed by previous sharding solutions. We evaluate analytically and experimentally block propagation and processing in various settings. Ostraka achieves linear scaling when the network allows it, unlike previous systems that require costly coordination for transactions that affect multiple shards. In our experiments, Ostraka nodes reach a rate of nearly 400,000 transactions per second with 64 shards, opening the door to truly high-frequency blockchains.
* Storage sharding Dietcoin @cite_47 shards the UTXO set of a blockchain and uses Merkle trees of UTXO-shards for SPV. Clients can efficiently obtain proofs of inclusion for their transactions by obtaining only the relevant UTXO-shard. @cite_10 reduce node storage complexity by using lower-degree replication of the blockchain itself, storing each block in a small number of nodes and locating blocks with consistent hashing. In contrast, Ostraka improves on the block validation process. In both solutions, miners keep the full state and perform full validation of each block, therefore these techniques can be used with Ostraka nodes.
@cite_47 @cite_10
2795364690 2902571157
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. A type of Bitcoin node called "Full Node" has to hold the entire of historical transaction data called "Blockchain" to verify that new transactions are correct or not. To operate nodes as Full Nodes, the required storage size will be too large for resource-constrained devices. In this paper, to mitigate storage size, we propose a storage load balancing scheme by distributed storage based on Distributed Hash Table (DHT). By our scheme, nodes in a DHT cluster can behave like Full Nodes without holding the entire of the blockchain.