Blockstack: Global Naming & Storage

Frank Wang
3 min readSep 27, 2016

--

Muneeb Ali came to MIT to present Blockstack, a global naming and storage system secured by blockchains. This work was published in 2016 USENIX ATC paper and is used in his startup. Here, I’ll provide an overview of the results, and I’ll refer you to his startup site and paper for more information.

In the current internet, we use a DNS server, PKI service, and authentication service to access websites, such as Facebook and Google. However, the problem is blind trust — we trust parties that we don’t even know exist. Another problem is that big companies, not users, own the data. Their goal is to build a trust-to-trust design principle for the Internet, where the user trusts the end-to-end communication between herself and the host.

This brings up more problems. How do we remove central points of trust/failure from application/services? We need a global naming and storage system that is not owned/operated by any single party. Blockstack bootstraps trust using blockchains. Blockchains can serve as a decentralized PKI. All “accounts” already have private/public keypairs. They deploy nodes to serve as lookup servers, and there is a strong financial incentive for keeping the network secure. The question becomes if they can build a DNS.

However, there are some limitations to blockchains. First is storage limitation. There is limited space (< 1KB) per transaction. Increasing transaction/block size adds overhead for all nodes. Finally, blocksize has implications for consistency and decentralization.

Transaction output type

Second, it’s hard to introduce new features. It’s generally hard to make consensus breaking changes and harder to change a blockchain that is successful.

Finally, the writes are slow. In distributed systems, it’s impossible to provide all three of the following: consistency, availability, and partition tolerance. This is commonly known as the CAP Theorem. Blockchains give up on consistency.

Median time it takes to confirm a transaction

Finally, since the ledger is append-only, there is a endless ledger problem. Currently, the blockchain is over 75 GB.

Below is a view of Blockstack’s “stack.”

Blockstack manages to circumvent many of the limitations of blockchain. In case of any security issues on a blockchain (51% attack, etc.), they can easily migrate. For storage limitations, they have unlimited data. To introduce new features (hard fork), they use a virtualchain. For slow writes, they get operations off blockchain’s path, and for the endless ledger problem, they use fast bootstrapping. Finally, they use multiple blockchains, and use subdomains.

Fast bootstrapping to solve endless ledger problem

They are the largest non-financial production system on Bitcoin. Using fast bootstrapping, they reduce bootup time from 3 days to 2–3 hours. Most of the storage performance is network bound with a 5 percent overhead in filesize. It takes about 2 seconds of CPU for a 100 MB file. They are open source and have over 3000+ community members!

--

--

Frank Wang

Investor at Dell Technologies Capital, MIT Ph.D in computer security and Stanford undergrad, @cybersecfactory founder, former @roughdraftvc