How Blockstack works
Last updated: 4 September 2020     Suggest changes
On this page you’ll find everything you need to understand how Blockstack works and how you can get involved. If you’re new to decentralization and blockchain technology, here are some excellent resources to get started with:
Why Decentralization Matters by Chris Dixon, 2018
Why Bitcoin Matters by Marc Andreessen, 2014
The Next Wave of Computing by Blockstack co-founder Muneeb Ali, 2017
The Blockstack vision
Blockstack is an open-source effort to design a network with the security of Bitcoin and the expressivity required for developing decentralized applications. In these decentralized apps, mass data breaches, loss of user privacy and lack of data portability can be a thing of the past.

Although Blockstack has evolved since its publication in 2019, the whitepaper remains a good resource:
The Blockstack Decentralized Computing Network by M. Ali, J. Nelson, A. Blankstein, R. Shea, and M.J. Freedman, 2019
“Instead of placing our trust in corporations, we can place our trust in community-owned and -operated software, transforming the internet’s governing principle from “don’t be evil” back to “can’t be evil.”
Chris Dixon
Partner at Andreessen Horowitz
Bitcoin as a backbone
Blockstack builds on, and extends, the Bitcoin blockchain. Satoshi Nakamoto designed its limited scripting language for a single use case — tracking the ownership of Bitcoin. While this is one of the things that keeps Bitcoin secure, it also means you can’t program Bitcoin with enough expressivity to build decentralized apps. Blockstack adds this expressivity to Bitcoin without spinning up a new Proof of Work chain. Instead, Blockstack re-uses Bitcoin’s computing power and its blockchain for settlement and security.
The layers of Blockstack
The diagram below shows the layers of the Blockstack network. While it exists at the "application" layer in the traditional internet design, Blockstack itself consists of multiple layers too. The rest of this guide will follow the order of the layers, from bottom to top.
The Stacks blockchain
At the base layer of Blockstack sits the Stacks blockchain. It's a layer 1 blockchain that enables people to register digital assets and write smart contracts. It connects back to the Bitcoin blockchain with a 1:1 block ratio — anything that happens on the Stacks blockchain can be verified on the Bitcoin blockchain.
Connecting Bitcoin and Blockstack: Proof of Transfer (PoX)
Bitcoin miners have already spent electricity on computation to mine blocks and earn Bitcoin. Instead of introducing another Proof of Work chain, Proof of Transfer (PoX) re-uses Bitcoin to secure the Stacks blockchain. Miners compete to mine blocks by sending Bitcoin to participants in the network. This Bitcoin becomes proof of computation, and by proxy enables the Stacks blockchain to share Bitcoin's CPU resources.

Proof of Transfer is in line with Satoshi Nakamoto’s vision of new networks sharing Bitcoin’s computing power, but keeping additional data out of the Bitcoin chain.

Learn more about Proof of Transfer:
PoX: Proof of Transfer Mining with Bitcoin Official whitepaper,  2019
A forum post from 2010 by Satoshi Nakamoto, the creator of Bitcoin, about BitDNS sharing Bitcoin’s CPU power.
Digital assets
The Stacks blockchain enables anyone to create, own, and transfer digital assets secured by the Bitcoin blockchain. Common use cases for these assets are new types of business models, governance, and funding. The digital assets you'll encounter on Blockstack fall into four categories:
  • Stacks token is the native asset of the Stacks blockchain. It’s consumed as “fuel” when making a transaction, for instance when you execute a smart contract or register a digital asset.
  • Fungible tokens are interchangeable tokens: each individual token is equivalent to the next. An example of a fungible token is Bitcoin.
  • Non-fungible tokens are unique. Each non-fungible token is different from any other, like a rare collectible such as a piece of art would be.
  • Bitcoin can be used in smart contracts because Clarity can query the Bitcoin blockchain directly and has SPV proofs built in.
Stacks Token Economics Official whitepaper, 2019
stackstoken.com Offical Stacks token website
Clarity, a better language for writing smart contracts
A smart contract is code that runs on the blockchain instead of a server. Using smart contracts, users can agree on a global state without having to trust a central authority. Clarity is a next-generation language for writing smart contracts that optimises for security and predictability. Clarity is an open-source project supported by Blockstack and Algorand.
Write smart contracts Overview and guides for getting started with Clarity
Why Clarity optimises for security
Smart contracts power high-stakes transactions and apps. Bugs or malice in these contracts can cause large-scale irreversible harm. Yet most users won't be able to audit a contract’s code. Instead of having full flexibility, it should be hard for developers to write dangerous code and users should be protected proactively.
The Clarity design
Protocols
Smart contracts enable developers to build decentralised protocols that use the blockchain for backend logic. Their source code is public on chain and they can operate without a central authority. This minimizes the trust required between parties. With tokens, there is now a way to monetize protocol usage and to incentivize people to contribute to their development.
“Historically the only way to make money from a protocol was to create software that implemented it and then try to sell this software. (...) With tokens the creators of a protocol can “monetize” it directly and will in fact benefit more as others build businesses on top of that protocol.”
Albert Wenger
Entrepreneur and investor
Gaia: user-controlled data storage
Gaia is a system for storing application data without a central trusted party. It creates a shared data layer for applications that any app can use. Gaia stores data off-chain, on one of the popular cloud storage providers by default. The user's key encrypts the data to keep it private. Neither the cloud storage provider nor app developers will have access to unencrypted data.
Blockstack Authentication
Blockstack Authentication is a decentralised SSO protocol. Users can sign in to any Blockstack app with their username (registered to the Stacks blockchain using BNS) and their data storage (using Gaia). Authentication is performed by the user's client by cryptographically signing a statement.
Connect is a library for integrating Blockstack Authentication, Gaia, and smart contracts into your app.
Blockstack Naming Service
The Blockstack Naming Service (BNS) is a decentralised naming service. It allows anyone to name digital assets such as usernames or websites and register that name on the blockchain. BNS is different from traditional naming services like DNS or Git:
  • Names are globally unique
  • Names are human-readable, such as "johnappleseed.id"
  • Names are owned by a public-private key pair so you don’t have to trust an intermediary with ownership of the name.
Decentralized finance on Bitcoin
Decentralized finance (Defi) such as lending, exchanges, and stablecoins has become a popular use case for smart contracts. There are some characteristics of Clarity that make it especially well-suited for the defi use case:
  • Clarity can query the Bitcoin blockchain directly. This enables developers to build defi apps and protocols that use Bitcoin.
  • Clarity has SPV proofs for Bitcoin built in so developers don't have to write their own.
  • Clarity optimizes for security and predictability to prevent the bugs and hacks that occurred on other networks from happening.
Flexr An implementation of the Ampleforth token, oracle, and geyser in Clarity
Swapr A trustless token exchange
Decentralized apps
At the top layer of Blockstack reside the decentralized apps. They function like you’re used to, except these apps don't depend on any central authority and keep your data private and owned by you. A typical decentralized apps will make use of the following technologies:
  • Blockstack Authentication protocol for decentralised authentication
  • Gaia as a shared and private data layer that is controlled by users
  • Clarity smart contracts for decentralized state and backend logic
  • Digital assets for new business models, funding, and asset exchange
  • The Bitcoin blockchain for settlement and security
Get involved
Now that you have an understanding of how Blockstack works, it's time to get involved. Get started with the documentation, one of the hundreds of projects already created, or by joining the community.
Developer documentation Guides, references and tutorials
Apps and community projects Discover 500+ projects built on Blockstack
Community resources Join working groups, attend events and find collaborators