One of the main barrier of adoption for cryptocurrencies are the increasing costs of processing transactions and joining a network over time. Decentralized cryptocurrencies rely on different participants to validate the state of the network in order to successfully process transactions.
As a network grows, the process of downloading and process a copy of the ledger becomes a computationally expensive exercise which costs result prohibited for many nodes. Recently, researchers from the Massachusetts Institute of Technology(MIT) Computer Science and Artificial Intelligence Laboratory(CSAIL) unveiled Vault, a new cryptocurrency that reduces the data users need to join the network and verify transactions by up to 99% compared to today’s cryptocurrencies.
The current consensus protocols behind most popular cryptocurrencies makes them both hard to scale and slow to bootstrap.
The growth of a cryptocurrency network surfaces an increasing friction between its security and stability and the time that it takes to bootstrap nodes and validates transactions.
The frictions depicted in the previous diagram are due to several factors. For starters, cryptocurrencies are constantly challenged to prevent double-spending [preventing a user to spend money twice or processing the same transaction multiple times]. Cryptocurrencies like Bitcoin rely on Proof-of-Work protocols that keep track of all transaction which creates a linear dependency between the cost of processing a transaction and the number of transactions in a network.
Ethereum improves over this concept by not storing all transactions but, instead, keeping track of the sequence number (“nonce”) of the last transaction issued from a given account. This nonce must be stored even if the account has no remaining balance which creates a linear dependency between transaction processing costs and the number of old accounts. In addition to the computation costs, cryptocurrency nodes also incur in increasing storage costs to maintain the state of all transactions.
Proof-Of-Stage(PoS) protocols can improve the throughput and latency of transactions but they also come with their own set of challenges particularly when comes to bootstrapping nodes.
Convincing a new participant of the validity of a block in the blockchain requires first convincing them of the balances (stakes) of all users in an earlier block.
Convincing a new user of the validity of the latest block thus requires convincing them of the balances of all users at all points in time, starting with the initial genesis block. Recently, blockchains such as Algorand have created PoS consensus models that improve both speed and bootstrapping time but still is challenged by many of the aforementioned elements.
The challenges related to transaction processing costs and bootstrapping times go beyond scalability and result the main security vulnerability in cryptocurrency networks. Most attacks in cryptocurrency networks are rooted on the principle that every transaction relies on long-standing committees to be processed.
Attacking the individual members of the committees is often the easiest way to disrupt the network.
Enter the Vault
MIT’s Valt is a permissionless, PoS-based cryptocurrency that reduces both the bootstrapping time and transaction processing costs in the network. The initial design of Vault is based on the Algorand blockchain but expands its value proposition with a unique set of contributions that include the following elements:
· Bootstrap Efficiency: Honest actors should be able to convince new nodes that their state is correct and help them bootstrap using minimum network bandwidth.
· Safety: The protocol should prevent bad actor from convincing new nodes about the validity of their state.
· Storage Efficiency: Existing Vault nodes should only require to store a small amount of state in order to help new nodes to join the network.
· Availability: Vault continues to operate even when some users disconnect from the network, despite sharding state across clients.
· Charging for Storage: Adversaries that wish to inflate the size of the protocol state must acquire a significant amount of stake to do so.
The initial design of the Vault is built on the Algorand blockchain which provides a head start in terms of security and scalability. Contrasting with other cryptocurrencies in which users compete to solve equations that validate blocks slowing down transaction processing times, Algorand uses a “proof-of-stake” concept to more efficiently verify blocks and better enable new users join.
For every block, a representative verification “committee” is selected. Users with more money — or stake — in the network have higher probability of being selected. To join the network, users verify each certificate, not every transaction. In Algorand, each block holds some key information to validate the certificate immediately ahead of it, meaning new users must start with the first block in the chain, along with its certificate, and sequentially validate each one in order, which can be time-consuming.
The main innovations of Vault can be all summarized as improvements to the Algorand protocol. Vault introduces a second type of certificate called the stamping certificate which allows a block to be validated using information from a number of blocks ago.
Instead of relying on the previous block, Vault gives each new certificate verification information based on a block a few hundred or a thousand blocks behind it — called a “breadcrumb.” When a new user joins, they match the breadcrumb of an early block to a breadcrumb several blocks ahead. That breadcrumb can be matched to another breadcrumb several blocks ahead, and so on. This clever innovation allows a client to “leapfrog” a few blocks at a time instead having to verify each single block in the blockchain.
To mitigate the impact of a second certificate, Vault relies on a smaller committee for its generation but it does requires a larger number of the members to vote consistently.
Sharding is another area in which Vault brings some clever innovations. The Vault research paper proposes a sharing technique divides transaction data into smaller portions — or shards — that it shares across the network, so individual users only have to process small amounts of data to verify transactions.
Vault improves traditional Merkle Trees by dividing it into separate shards assigned to separate groups of users. Each user account only ever stores the balances of the accounts in its assigned shard, as well as root hashes. The trick is having all users store one layer of nodes that cuts across the entire Merkle tree.
When a user needs to verify a transaction from outside of their shard, they trace a path to that common layer.
The following image illustrates Vault’s Merkle Trees in action. Merkle tree. Dots in this image represent Merkle nodes, and the “$” symbols represent account balances. The solid black dots and dark “$” symbols represent the balances which are part of the shard (the shaded gray triangle), while those in gray represent the parts of the tree which are not. The row of black dots in the middle represent the frontier of Merkle nodes that is stored by all clients regardless of shard assignment. The jagged line connecting one of these nodes to an unstored leaf represents the Merkle witness necessary for performing a balance update.
The MIT team evaluated the performance Vault in terms of bootstrapping costs as well as storage size against some of the top cryptocurrencies in the market. The results were remarkable as illustrated in the following two charts.
Beyond the headlines, it is important to realized that Vault remains a highly theoretical exercise. However, many of its ideas can be the foundation of the next generation of blockchain protocols.