Bitcoin DeFi: Stacks Explained
Last week, I wrote up the basics of DeFi and why it’s coming to Bitcoin.
Building DeFi on top of Bitcoin makes sense as the base layer is the most unchanging, trustworthy, and decentralized blockchain to build upon.
"To build DeFi on a centralized protocol, or one that is a protocol managed by rulers, is inherently broken from the start" - Alyse Killeen (Long time Bitcoin VC)
Based on a Twitter poll I ran, my followers were most interested in Stacks, so I’m doing a deep dive there first.
DISCLAIMER: In this section, what I’m about to cover sometimes requires a token to make it work. I do not recommend owning another token other than Bitcoin, nor did I want to risk my own capital, but in order to explore these, developers/foundations gave me enough to play around with so I could check out the functionality. Will be donating that to the development of the Bitcoin network at the end of my exploration.
What is Stacks?
Stacks was called different things over the years as the original founders, Muneeb Ali and Ryan Shea, tried to figure out a way to build smart contract functionality on top of Bitcoin. Stacks is the final iteration of that journey of trial and error.
Stacks is an L1 blockchain that uses Bitcoin as the source of trust/recordkeeping. Stacks brings smart contracts and greater transactional demand to Bitcoin blocks (Via PoX/transaction fees). In return, Bitcoin brings the security, stability, and economic power of its network.
There are a number of reasons why Stacks chose Bitcoin as the blockchain to power consensus:
Lindy: It's the oldest blockchain protocol, having launched in 2009, and has become a recognized asset outside of the cryptocurrency community. It is recognized as an asset by governments, large corporations, and legacy banking institutions.
Asset: BTC has held the highest market capitalization, volume, and trading infrastructure of any cryptocurrency for the past decade. Bitcoin is largely considered a reliable store of value by the world.
Stability: Bitcoin champions simplicity and stability, and has stood the test of time. Influencing or attacking the network is infeasible or impractical for any potential hackers.
How it works
Mining & Proof of Transfer (PoX)
Mining is required to make the network usable, trustworthy, and secure. Miners verify incoming transactions, participate in the consensus mechanism, and write new blocks to the blockchain. An entire block of Stacks transactions corresponds to a single Bitcoin transaction.
To incentivize mining, miners receive freshly minted Stacks (STX) tokens if they win the bid for becoming the leader of the next round.
Popular consensus mechanisms in modern blockchains include proof-of-work, in which participants dedicate computing resources, and proof-of-stake, in which participants dedicate financial resources to secure the network.
Proof-of-burn is a novel consensus mechanism where miners compete by ‘burning’ (destroying) a proof-of-work cryptocurrency as a proxy for computing resources.
Proof-of-transfer (PoX) is an extension of the proof-of-burn mechanism. PoX uses the proof-of-work cryptocurrency of an established blockchain to secure a new blockchain. However, unlike proof-of-burn, rather than burning the cryptocurrency, miners transfer the committed cryptocurrency to some other participants in the network, the “Stackers” on Stacks.
While later I’ll cover how to do this, right now I’m just going to cover the basics. The Stacks team cleverly combined Proof of Burn/Transfer with incentivizing early adoption of Stacks. Early Stacks adopters are rewarded in Bitcoin for “Stacking.”
Token and issuance schedule
Stacks (STX) tokens are the native tokens on the Stacks 2.0 blockchain. The smallest fraction is one micro-STX. 1,000,000 micro-STX make one Stacks (STX). The cap is 1,818M STX by the year 2050. The issuance schedule was aggressive, with a large portion given to early investors, founders, and employees.
Smart Contract Functionality
Clarity smart contracts have unique visibility into the state of the Bitcoin blockchain. This means that contract logic in a Clarity file has the ability to trigger when specific Bitcoin transactions are confirmed. Clarity smart contracts have built-in Simple Payment Verification (SPV) proofs for Bitcoin that make interacting with Bitcoin’s state much simpler for developers. Additionally, Clarity contracts can fork with the original Bitcoin chain. Therefore, in an edge case where Bitcoin forks, developers wouldn’t have to worry about adjusting the deployment of their smart contracts.
Clarity was chosen over Solidity (Ethereum’s programming language) because it offers a more secure and transparent environment for running smart contracts.
Promoted: CryptoTag is the most secure storage system for your Bitcoin wallet backup. Fireproof, waterproof, crushproof, bulletproof, it’s the best way to store your Bitcoin.
Applications I checked out
These are the applications that are currently available, or close to being available to use on the Stacks protocol that I personally tried out.
.BTC domains are registered through a smart contract on Stacks, ultimately secured by Bitcoin. This smart contract implements a decentralized name registry. Ownership of every .BTC name is represented in a hash of the Bitcoin blockchain. Instead of spamming the bitcoin blockchain with name registrations, thousands of Stacks transactions settle in a single transaction on the bitcoin blockchain.
The Stacking process is pretty straightforward: you own Stacks to participate and “Stack” it in a noncustodial direct/delegated, or custodial manner (ex: Okcoin).
I chose to use Xverse, a delegated stacking method because it was easy to use and I can’t stack directly because I have under 90,000 Stacks. The Stacking progress is slow due to how the stacking cycles function. As you can see I was staking for a short duration (my BTC balance), but the Xverse app had a bug so needed to update it before Stacking again.
I also checked out the Stacks wallet which is a clean and simple solution.
This project is a crypto-collateralized decentralized stablecoin (xUSD - but likely switching this due to a naming collision), soft-pegged to 1 USD, and lending platform that provides liquidity for all DeFi built on top of Stacks and Bitcoin. It is currently in beta so not usable yet for me to check out.
Muneeb recently had a tweetstorm on a variation of how lending could work. We just recorded a video (soon to be released) where he explained it to me:
On Stacks you have a USDC balance, let’s say $70,000.
You want to borrow 1 Bitcoin ($35,000 equivalent value)
A lender enters into a smart contract with you on Stacks which monitors the Bitcoin blockchain
On the Bitcoin blockchain, the lender sends 1 Bitcoin to your designated address
If you default on payment (missed a Bitcoin on-chain payment) or get margin called because of price volatility (oracle pipes in the pricing data) then the lender can seize your USDC balance on Stacks.
The Future of Stacks
Stacks only became fully functional at the start of 2021. At the moment, the Stacks community is focused on pushing the development of DeFi applications on the Stacks protocol. There are quite a few apps considering how new the ecosystem is. Here are some other ones I didn’t have time to check out:
Jolocom: Identity solution via Stacks
Injective Protocol: Derivatives
Boom: NFTs that can stack and earn BTC
Pravica: Messaging app
If you want to read more about Stacks, check out these resources:
Hope you enjoyed this deep dive into Stacks! While it uses a token that most Bitcoiners wouldn’t be interested in (and I am not recommending it), there are some interesting synergistic dynamics with Bitcoin in terms of smart contracts and contributing to Bitcoin’s security spend.
Personally, what I’m most interested in is eventually being able to do lending/borrowing using Stacks. For example, borrowing USDC against my Bitcoin as collateral in a trust minimized way.
If you’re a paid subscriber, check the top of this e-mail for the link to your voting form, and feel free to comment below in Substack (restricted only to paid subscribers).