Blockstack wants to build a new internet for decentralized applications

venturecapital
internet
blockstack
muneebali
ryanshea

#1


via block

Quick Take

  • Blockstack was founded by Ryan Shea and Muneeb Ali in 2013
  • The project raised ~$60M in funding to create a “New Internet for Decentralized Applications”
  • Blockstack leverages a host of unique technological features to bootstrap and grow its network

A HISTORICAL OVERVIEW OF BLOCKSTACK, ONENAME AND NAMECOIN

Blockstack was founded by Ryan Shea and Muneeb Ali in 2013 while the pair were students at Princeton University. It was there they conceived of a decentralized identity system to replace how certain centralized parts of the Internet work. They called it Onename, a nod to their belief that future users would use a single name (or identity) to access the applications and services built on their system.

In early 2014, after building out the initial elements of Onename, Shea and Ali applied to join the prestigious startup incubator, Y Combinator. They were accepted into the 2014 summer cohort and went on to raise a $1.5M seed round led by NYC-based Union Square Ventures.

Originally, Onename was built on Namecoin, one of the first forks of Bitcoin, using the underlying blockchain as a base for its first implementation. Namecoin was a decentralized domain name system, providing users with access to “.bit” domain names. In September 2015, however, Onename announced it was migrating the platform onto Bitcoin after noting several security issues tied to the Namecoin blockchain.

A year after migrating Onename to Bitcoin, in May 2016, Shea and Ali announced they were rebranding the company to Blockstack Inc. In the same year, the founders along with two other Blockstack employees published a white paper introducing the world to the concept of a “Global Naming and Storage System.”

In 2017, Blockstack went on to raise a $52M round through a token sale on CoinList. The Blockstack team also published another white paper titled “Blockstack: A New Internet for Decentralized Applications,” detailing the technical merits behind what they were building.

On October 30, 2018, Blockstack launched version one of their native blockchain, the Stacks protocol, and initiated the first transactions of its native token, Stacks.

What Blockstack is trying to fix

Blockstack is attempting to replace some deeply centralized layers of the DNS hierarchy and the trusted entities gatekeeping those layers. The Block has deeply covered the domain name system hierarchy in our post on Handshake. To summarize, under the current DNS system, records of ownership for top-level domains (.com) are held by authoritative registries like Verisign. These registries are supervised by the Internet Corporation for Assigned Names and Numbers (ICANN), which effectively gets to decide what can be accepted in the DNS root zone of top-level domains. Under this system, Certificate Authorities are given the right to issue certificates to validate the security and safety of a domain. The main issues with this centralized structure are as follows:

  1. Centralized DNS servers open them up to DDoS attacks, as seen in 2016 DYN attack.
  2. Certificate Authorities, as central entities, have a history of exploiting their powers to issue certificates.

Zooko’s Triangle

Blockstack builds on Namecoin’s solution to the Zooko’s Triangle trilemma, which states that there are three main challenges when building a naming system:

  1. Human-meaningful, in which easy to understand and memorable names are provided to users: instead of using a string of numbers and letters to identify an account associated with The Block we use the name “The Block.”
  2. Secure, in which the amount of damage a malicious actor can inflict on the system should be as low as possible.
  3. Decentralized, in which names are agreed upon without a central entity managing the namespace.

According to the trilemma, a naming system could only have two of the three features listed above. If a system is human-meaningful and secure (Twitter), it can not be decentralized. If a system is secure and decentralized (Bitcoin addresses) it cannot be human meaningful.

By using a blockchain network, however, Namecoin, and therefore Blockstack, was able to solve this trilemma. With a blockchain network, nodes (users) on the network can work to secure a state in which decentralized nodes agree on a set of human-meaningful names used to identify the nodes on the network.

A visual representation of Zooko’s Triangle. Source: Wikipedia

Blockchain Name System

Blockstack’s naming system is called the Blockchain Name System (BNS). On BNS, names are organized into “namespaces,” equivalent to top-level domains in DNS. Information on these namespaces and their associated owners is stored on a root blockchain which can be pulled by a local BNS server controlled by an end-user.

The local BNS server lives in what Blockstack calls the “trust zone” in which end-users have full control and knowledge over the query their local machine or network is pulling, verifying this information with their local node which has a local copy of all the data on the root blockchain. This differentiates from the current DNS infrastructure in which local DNS servers fall outside the trust-zone of a user, as illustrated below.

DNS query vs. BNS query. Source: Blockstack white paper

Since each user on Blockstack holds a full copy of the address system on their local nodes, they are not forced to trust a single authority, dramatically reducing the attack surface of the network.

In BNS, names are preordered and then registered through a two-phase commit process: calling the NAME_PREORDER and NAME_REGISTRATION commands to register their names. Once a name is registered, users can update their ownership by changing the address associated with the name. On Blockstack, in theory, anyone can create their own namespaces with their own unique top-level domain, such as “.id” or “ . graphite.” Namespace owners can define the pricing function for their namespaces. For example, Blockstack owns the “.id” namespace and has determined that the price of a name drops with an increase in name length and the addition of non-alphabetical characters (john.id is more expensive than johnathan123.id).

Atlas Network

For nodes on its network to discover routing data, Blockstack implemented a peer network which stores zone files, containing routing information of domains registered on the network. This peer network is called the Atlas Network. The Atlas Network only allows zone files to be written onto the network if its hash was previously announced in the root blockchain. In other words, all zone files stored on the Atlas Network are verifiable and therefore immutable.

All Atlas Network nodes maintain a 100% state replica of the root blockchain. A new Atlas Network node will pull all key information and hashes from the root blockchain, sharing this data with the following batch of new nodes.

Gaia

To maintain the decentralized aspect of the network, Blockstack also implemented Gaia, a decentralized storage solution. Using pointer data from the Atlas Network, Gaia uploads and downloads encrypted data from third-party storage apps like Google Drive or Dropbox. Blockstack users can access apps and services built on Blockstack and save the encrypted data on third-party storage apps, holding the keys to their encrypted data on their local computer. When a user downloads a file from their storage app, Gaia’s software will decrypt the data when it enters their local servers. This structure prevents storage providers like Google or Amazon from accessing a user’s private data.

Visual representation of Gaia. Source: Blockstack white paper

Virtualchains

The concept of the virtualchain was introduced as a solution for bootstrapping a new blockchain network. Instead of convincing miners to mine and secure a private blockchain, which requires a large initial investment, Blockstack leverages virtualchains which sit on top of another blockchain.

To achieve consensus on the state of the BNS and the names registered on the network, Blockstack leverages virtualchains to encode operations and data records (preorder, register, or transfers) into hashes onto the underlying blockchain.

Visual representation of how virtualchains work

Virtualchains provide the following benefits for Blockstack:

  • It allows them to migrate their network across two different chains in the case of a failure or a security risk in the underlying chain. Blockstack was able to migrate its network from Namecoin to Bitcoin because of virtualchains.
  • Virtualchains help bootstrap a new blockchain network without requiring an initial investment of mining resources. If Blockstack started with a proof-of-work mining model, popularized by Bitcoin, the initial network might not have taken off, as miners are not incentivized to secure its network.

On Bitcoin, Blockstack leverages OP_RETURN to embed its data into Bitcoin blocks.

Stacks protocol

On October 30, 2018, Blockstack launched version one of the Stacks protocol. The protocol will use a native token called Stacks, which will be used to pay for apps, services, and name registrations on Blockstack.

The Stacks protocol implements a “Proof of Burn” mining mechanism, requiring miners to burn coins from the underlying blockchain (bitcoins in this case) to produce Stacks.

According to Blockstack’s white paper:

“The proof-of-burn mining in the Stack protocol establishes the longest blockchain fork where “longest” is defined as the blockchain fork with the most amount of cryptocurrency burnt and the state on the longest fork is considered the correct state of the network.”

The new blocks produced on the Stacks protocol are chosen through a cryptographic sortition, in which the chances of a miner getting the right to produce a Stacks block is proportional to the number of bitcoins they burn.

In addition to Proof of Burn, Blockstack also implements what it calls “App-rewards Mining,” which rewards app developers (for the first four years) on Blockstack in an attempt to bootstrap the app marketplace. As of the time of this writing, there are 75 apps that leverage Blockstack’s network. To drive the user side of the app marketplace, Blockstack rewards users with Stacks for signing up for its platform and using its apps. Blockstack calls this feature “Web-of-Trust Mining.”

Conclusion

To reach its mission of re-decentralizing the Internet and creating a new app ecosystem, Blockstack has implemented and leveraged some unique technological features. As one of the oldest networks in crypto, it will be interesting to see what new features Blockstack comes up with to reach its goal.