Erik Voorhees — April 2021
The Exchange of Immutable Bitcoin
It will soon be my tenth anniversary in crypto, and in the span of this decade, Bitcoin has risen from obscurity to nearly mainstream. By market value, it has grown 10,000x in 10 years.
This ascent was not random or unpredictable: the world was in desperate need of borderless, immutable money. Bitcoin is in the early stages of satisfying that need for eight billion people.
And yet, any money is useless without the ability to trade it. This is why exchange, too, must become immutable. Without immutable exchange, Bitcoin’s promise will forever be handicapped.
Exchange has baggage. Mt. Gox, the first venue of significance, blew up catastrophically, nearly destroying the industry in early 2014. Dozens of other exchanges have met similarly catastrophic fates. Billions of dollars have been lost by victims of these incidents.
Incompetence was a large part of these early failures. Fortunately, market competition has brought forth a great many competent exchanges today. Coinbase, Kraken, Binance, Bitfinex, and numerous others are good businesses run by competent teams.
Yet, unavoidably, these centralized venues cannot be immutable. They are forced to collect private data on every user, deny access to entire nations of people, and censor transactions. They will not (they cannot) maintain fidelity to Bitcoin’s most important attribute.
A centralized exchange is always and everywhere at the permission of The State. They will slide, slowly or quickly, toward the semblance of a bank.
The borderless immutability of Bitcoin — aka its entire purpose — is thwarted by the walls of centralized custodians.
The Walled Garden DEX
Since at least 2014, people have been talking about decentralized exchange as the solution to this custodian issue. By at least 2017, there were workable DEXs, and by early 2020, Uniswap in particular had achieved impressive scale. DEXs were real, not just theoretical.
But there has been a notable shortcoming, especially for Bitcoiners: thus far, DEXs have been Ethereum only. With no meaningful exception, DEX trading was only possible between Ethereum and ERC-20 assets (tokens that exist on the Ethereum blockchain). Very recently, DEXs on Binance Smart Chain have seen traction, but then these only support BEP20 assets. DEXs on Solana only support Solana assets. Walled gardens, all.
It has not been possible to trade real bitcoin (or other top native chain assets) at scale in a decentralized way.
Yes, there are “atomic swaps,” but these empirically haven’t scaled.
And yes, there is “wrapped” BTC trading in DEXs. But wrapped BTC =/= real BTC.
And yes, there are P2P exchanges like Bisq, and while I’m glad they exist, they haven’t achieved meaningful volume or liquidity either.
It’s been a hard problem to solve, but we should not feel comfortable that 99.99% of global trading of native bitcoin is still done today through custodians and intermediaries. The quality of immutability is absent.
THORChain — An Immutable, Cross-chain DEX
An overly simplistic explanation is that THORChain is “like Uniswap, but multi-chain.”
● THORChain allows anyone in the world to trade one digital asset on one chain with another digital asset on another chain in a frictionless, decentralized, trust-minimized way. There are no custodians. There is no wrapping.
● THORChain also allows anyone to earn yield on their digital assets, and this too is provided in a frictionless, decentralized, trust-minimized way.
THORChain is the first project to tick all these boxes. Others have promised it. THORChain has shipped it.
The real multi-chain, mainnet version of THORChain launched two days ago on April 13th, 2021. It already supports native Bitcoin, Ethereum, Litecoin, Bitcoin Cash, Binance Chain, and Tether. Soon will come several other leading ERC-20s. And again, these are not wrapped assets, unlike with every other DEX.
How Does It Work?
When a user trades, she is sending in Coin A and receiving Coin B from a liquidity pool. This liquidity pool consists of deposits of other users who are earning yield (from the trading fees) by depositing.
So far, this is the same model that DEXs like Uniswap have popularized. Just as in Uniswap, there are two main user groups:
● Liquidity Providers (User Group A): These users deposit assets (like native bitcoin or ethereum) into liquidity pools. In return for depositing their assets, they earn yield (from the trading fees of Group B).
● Traders (User Group B): These users desire to exchange one asset for another, such as native ETH for native BTC. They send ETH in and get BTC out.
To make this work across chains, however, there is a third user group, THORChain Nodes, and this is where THORChain diverges from Uniswap.
● Node Operators (User Group C): These users run THORnodes, which comprise the THORChain Node (Tendermint/Cosmos SDK), and a node for each supported chain. A node operator will thus be running a Bitcoin node, Ethereum node, etc.
You can think of THORChain Nodes like “fragments” of the wallets of a centralized exchange.
Instead of the keys being held by that central custodian, they are held in a multi-sig arrangement of the THORChain Nodes (technically Threshold Signatures).
The liquidity pools are simply wallets controlled in a decentralized way by these node operators, instead of by any centralized server.
In the case of the THORChain bitcoin pool, for example, users are depositing native bitcoin into a familiar-looking bitcoin address such as 3LdykT…
When a user trades ETH to BTC, the validating nodes will first detect and agree that ETH has been received in the ETH vault (remember, they’re running Ethereum nodes). They then collectively sign the outbound BTC transaction to the user from their Bitcoin nodes. 2/3 of the nodes have to approve any outbound transaction.
Today, there are around 35 such validating nodes. Over time, it’s expected this number will increase to over 100. The only requirement to be a validating node is to outbid others for the privilege. Once your THORnode becomes active, you earn revenue for up to a month before you’re kicked out of the set once again (THORnodes are churning in and out every couple days).
Nobody has license or special privilege to be a validating THORNode. Additionally, standard nodes that don’t sign transactions may exist in any number, so verification of the chain data without a third party is open to all.
Is the set of 35+ validating nodes in THORChain sufficiently decentralized? Well, it’s more decentralized than all the traditional exchanges currently processing 99.99% of bitcoin trades.
THORChain is certainly not as decentralized as the Bitcoin network itself, but it is more decentralized than any venue in which native bitcoin actually trades at scale.
Consider too that these validators are anonymous by design and the set churns (as do the wallets) every couple of days to mitigate jurisdictional capture and surveillance.
Additionally, every outbound transaction from a vault is signed by a randomized subset of the total validators. This means nobody, not even the validators themselves, know which transactions are signed by whom.
Only time will tell if its incentivization structure enables THORChain to maintain sufficient decentralization.
Sidenote: It was a breakthrough in multi-party computation published in 2019 that enabled this model. Bitcoiners are all aware of multi-sig, but on the Bitcoin protocol, multi-sig is protocol-limited to a set of 20 signers. And on other blockchains, multi-sig either doesn’t exist at the protocol level (such as in Ethereum) or is implemented in a bespoke way that doesn’t translate across chains. TSS/MPC improves on standard multi-sig because it works on practically any blockchain, and it has no technical upper bound on signers (though performance degradation creates practical limits).
Okay, so what makes the nodes act appropriately? What prevents a rug pull of the vaulted coins? Remember, billions of dollars of bitcoin and other assets will be controlled by these node operators, and they’re anonymous. Why should anyone trust them?
In Bitcoin, trust between anonymous strangers is established with economic incentives.
This is where RUNE comes in. RUNE is the native coin of THORChain, imbued to establish the correct economic incentives. We explore its mechanisms below…
The RUNE Asset
RUNE is integral to the design of THORChain. If RUNE has been designed correctly, THORChain may succeed. If RUNE has been designed poorly, THORChain will fail.
● Total Supply: 500,000,000 RUNE
● Inflation: 0
● Chain: THORChain (Cosmos SDK/Tendermint consensus)
RUNE has several roles in THORChain:
- It is the asset in which fees are charged to traders and paid to validators and Liquidity Providers (LPs).
- It is used for THORChain governance (1 RUNE = 1 Vote, but governance is limited to signaling priority for assets and chains).
- It is the asset that validating THORnodes must post as bond for the privilege (and responsibility) of validating transactions.
- It is the asset to which LPs must pair every deposit. It is recommended that an LP depositing $100k in BTC also deposit $100k in RUNE at the same time. If they don’t, half of their assets will be swapped for RUNE under the hood.
Why Do THORnodes Post RUNE as Bond?
THORChain’s security model relies on proof-of-bond. By posting bond, it keeps validating THORChain Nodes honest. More accurately, it penalizes them harshly for misbehavior.
THORnodes are strongly incentivized to post an amount of RUNE as bond that approaches 2x the value of all native assets in the liquidity pools.
If the liquidity pools have $25m of combined BTC, ETH, and USDT, for example, the THORnodes are incentivized to collectively post at least $50m of RUNE in their bond.
If they don’t, the THORChain system becomes “underbonded,” and the system starts channeling trading fees away from LPs and toward THORnodes.
This has the obvious effect of making it less profitable to provide liquidity and more profitable to run a node. Eventually, liquidity recedes and the bidding war among nodes brings more RUNE into the total bond. As more RUNE is bonded by the nodes competing for the increased share of trade fee revenue, the system self-corrects. Nature has healed, and equilibrium is again achieved among anonymous, profit-seeking parties.
The opposite can also happen: if too much RUNE is bonded by nodes, the system starts channeling trading fees back to the LPs, away from nodes. Eventually, this draws in more liquidity (because it’s more profitable to provide it) and the THORnodes start bidding less for inclusion in the validator set (because that capital now earns less).
This mechanism — in which the trading fee revenue adjusts automatically between LPs and Thornode operators — is called the “Incentive Pendulum.” It is a unique aspect of THORChain’s design, not shared by any other DEX to my knowledge.
In practice, the economic incentives are such that Thornodes are drawn to maintaining a RUNE bond of 2x the value of all deposited assets in the liquidity pools. And thus, even in the worst case scenario where every node colludes, they lose $2 for every $1 they could steal.
Why Must RUNE be Paired in Each Liquidity Pool?
Every deposit of an asset (bitcoin, ether, etc.) in a liquidity pool must be paired with RUNE in equal value. Deposit $100k BTC, and it must either be paired with $100k RUNE at the same time, or it will be automatically split into $50k BTC and $50k RUNE to achieve the same economic result.
● In THORChain, every pool is Coin X + RUNE.
● In most other DEXs (like Uniswap), every pool is Coin X + Coin Y.
Why is it done this way?
Because by pairing each deposited asset against RUNE (i.e., BTC+RUNE or ETH+RUNE), THORChain aggregates liquidity into N number of pools, where N = number of assets supported by THORChain.
● 10 assets in THORChain = exactly 10 liquidity pools (where each asset is paired with RUNE only).
Compare this to Uniswap’s model, in which each deposited asset may be paired with any other (DAI+ETH and DAI+USDC and DAI+AAVE and DAI+COMP, etc.). In this model, liquidity is fragmented into N number of pools, where N = “binomial coefficient” of the number of assets supported by Uniswap.
● 10 assets in Uniswap = potentially 45 pools (where each asset is paired with each other asset).
Why are fewer pools better in this case? Because when deposited assets are fragmented across fewer pools, each pool is deeper. This results in less slippage for the traders, which means better rates, which means more traders, which means more fees, which means more LPs, which means more liquidity, and so on. This is the virtuous cycle; liquidity begets liquidity, as the saying goes.
Considering how well Uniswap has done despite the fragmented pool model, the potential liquidity in THORChain’s aggregated pool model is profound.
Fortunately, from a traders’ perspective, she can still swap between any two assets in the system. She can go directly from ETH to BTC, for example. In the background, the transaction is handled by pricing ETH to RUNE, and then RUNE to BTC, but this is invisible to the trader).
Sidenote: Bancor deserves credit for first deploying liquidity pools paired with a single asset in this way. THORChain uses a similar model with several changes to better align incentives and attract liquidity.
RUNE’s 1:3 Ratio and Valuation
As discussed, LPs must deposit RUNE equal to 1x the value of whatever asset they are depositing.
Therefore, it stands that for every $1 of deposited assets, the THORChain protocol is holding $3 of RUNE.
Liquidity Providers provide…
● $1 of BTC in the pool
● $1 of RUNE in the pool
● This is enforced through arbitrage
THORChain Nodes provide…
● $2 of RUNE in the bond from validators
● This is enforced through competitive bidding and the Incentive Pendulum described above
RUNE can thus arguably be valued at 3x the total value (TVL) of non-RUNE assets in THORChain’s liquidity pools. This would be the base fundamental value, devoid of any speculative premium.
● $1bn of non-RUNE assets in the pools = $3bn baseline value of RUNE.
This formula assumes every RUNE is productively deployed in THORChain’s system; in reality, some significant portion of RUNE will always be on other exchanges, individual wallets, and cold storage, etc., meaning an even higher market cap would result (plus speculative premium).
This whole apparatus suggests a degree of value capture at the RUNE asset level that is impressive in any success scenario for THORChain.
But why must THORChain use this new asset RUNE as collateral, and not BTC itself or a stable coin or something?
This should be the skeptics’ first question. Why a token?
The fundamental reason why THORChain uses its own asset (RUNE) instead of an external asset, (BTC, ETH, or USDT. etc.), is because it needed a solution to an exogenous Sybil Attack problem.
This Sybil attack relates to the security of the network; specifically, the security of the liquidity pools.
Let’s consider two scenarios, which share the following situation:
● $1b is held in THORChain liquidity pools (across BTC, ETH, USDC, etc.)
● Attacker wants to gain control of the network to steal these assets
Scenario 1: alternate reality where BTC is used as stake instead of RUNE
● The $1b liquidity pool is made of
● $500m various crypto assets
● $500m BTC 1:1 in each pool
● Under the incentives, THORChain Nodes will have posted $2b bond in BTC
● Attacker acquires (or already has) $1.333b in BTC for 2/3 majority stake.
● With majority stake, Attacker can now theoretically steal
● $500m crypto assets +
● $500m BTC (from pools) +
● $666m of BTC (from the other nodes’ bond)
● Attacker can also sell original $1.333b BTC investment
● Net results to attacker: $1.67b net profit
Scenario 2: RUNE is used as stake
● The $1b liquidity pools are made of
● $500m various crypto assets
● $500m RUNE 1:1 in each pool
● THORChain Nodes have posted $2b bond in RUNE
● Attacker acquires $1.33b of RUNE for 2/3 majority stake
● With 2/3 majority stake, Attacker can now theoretically steal
● $500m crypto assets +
● $500m RUNE (from pools) +
● $666m of RUNE (from the other nodes’ bond)
● But the second this occurs, RUNE plummets toward zero (THORChain HACKED!!!)
● Net results to attacker: Net loss of $833 million ($500m + pennies in RUNE)
This is why THORChain needed an endogenous asset (RUNE) instead of an exogenous asset (BTC): to make it mathematically implausible to profit by acquiring a controlling stake in THORChain.
It’s worth noting that having its own token also enables THORChain to bootstrap and incentivize early liquidity, pay for dev work, encourage speculation, and cultivate a community of financially interested stakeholders. But all of these are secondary to the fundamental security solution to the exogenous Sybil Attack problem described above.
The Gorilla in the RUNE
Okay, but doesn’t this mean that every LP has to buy RUNE and thus have exposure to RUNE? And isn’t that a bunch of friction? Yes and no.
First, let’s remember that in Uniswap’s case, this issue also exists. Instead of needing to own RUNE to deposit your DAI on Uniswap, for example, you’d need to own ETH, AAVE, or whatever other asset you’re pairing with. In both THORChain and Uniswap, two assets need to be deposited, even though an LP may only wish to hold one. Despite this friction, Uniswap has proven massively successful.
So it’s true that when you provide liquidity in THORChain (or Uniswap), you need to provide two assets (BTC + RUNE for THORChain or wBTC + X in Uniswap). Many LPs won’t want exposure to RUNE, and this is a solvable problem:
● LP can borrow RUNE rather than buy it. This will lead to robust lending markets for RUNE.
● LP can hedge RUNE to be risk-neutral. This will lead to robust derivative markets for RUNE.
● Intermediaries (smart contracts?) can match RUNE holders with LPs, preventing either from needing to hold two assets.
● Smart entrepreneurs will conceive other mechanisms as well.
It’s worth noting that an LP can provide “asymmetric” liquidity, which means only depositing one asset (instead of the pair). This is convenient and simple, but while that asset is deposited, it’s automatically split into both halves of the pair, so exposure still remains.
To summarize, the need for an LP’ specifically to hold RUNE can be mitigated in several ways. Someone needs to hold RUNE, but it doesn’t need to be the LP.
Immutable Yield on Bitcoin for the First Time Ever
Arguably the most exciting thing about THORChain doesn’t have to do with trading at all…
“Good Erik, because I only hodl my bitcoin and don’t give a damn about exchanging other assets!”
Well here ya go… THORChain enables yield on native bitcoin.
But not just any yield…this is transparent, non-custodial, private, borderless, immutable yield. Nowhere in the cryptoverse has this been possible at scale before.
How does this work? The largest of THORChain’s liquidity pools will be the Bitcoin pool. Those who deposit bitcoin into this pool will earn a yield derived from the trading fees paid by those swapping in or out of bitcoin.
A great many bitcoiners have been convinced to deposit their BTC with central custodians, such as BlockFi, Gemini, or Celsius. While these are respectable companies, all custodians have risks:
● Hacks, insider thefts, catastrophic bugs
● Operational risks (what are they doing with that bitcoin?)
● Seizure and freezing risks (government or the company can take your BTC).
For these risks, you’re compensated with yield. BlockFi, however, recently reduced yield on accounts over 1 BTC to only 2% annually. Kinda meh. Despite the risks and relatively low yield, these custodians have built great businesses with many happy bitcoin customers.
Yet with any such custodian, we lose the property of immutability. Is that important? If you’re a Bitcoiner, it ought to be.
At the time of writing, THORChain provides the only immutable alternative for yield on native Bitcoin at scale.
True, there is protocol risk (which must be considered substantial early on), but all the custodial risks mentioned above are gone. It must also be acknowledged that by putting capital into liquidity pools, you are exposed to something awkwardly called “impermanent loss.” THORChain’s design attempts to mitigate it, but it’s a factor to consider.
Given that the BTC yield from THORChain is generally higher than any custodian, and all custodial risks are removed, THORChain’s bitcoin liquidity pool could become one of the deepest in the world. And with this liquidity, some significant portion of global bitcoin trading can (finally!) move outside of centralized gatekeepers.
Bitcoin Immutability in Exchange
Ultimately, from the perspective of a Bitcoiner, what’s important about THORChain is that it extends Bitcoin’s key attribute of immutability from the money layer to the exchange layer. This is groundbreaking.
Having finally launched, THORChain has become the only way to
● Trade native bitcoin with other digital assets in a decentralized way at scale
● Earn a yield on native bitcoin in a decentralized way at scale
This means no more wrapped tokens on Ethereum-based DEXs. This means no censorship of transactions. This means no institutional control or state interdiction. No middlemen. No intermediaries. Immutable.
And is this really a big deal?
Think, Bitcoin <> Tether. This market is by far the largest and most liquid crypto market. All trading in this market either happens with central custodians or with wrapped ERC-20 tokens.
With THORChain, BTC/USDT and many other large cross-chain markets finally have a highly liquid, native trading venue that is borderless, decentralized, open-source, and, consequently, immutable.
THORChain and ShapeShift
Naturally, ShapeShift has been following THORChain with great interest.
Back in January, we announced a change in our business model that enabled us to remove KYC surveillance, and thereby better protect and serve our customers. We’ve plugged in a dozen decentralized exchanges, though all of them have been Ethereum/ERC-20 only… until now.
With THORChain’s launch, ShapeShift is the first company enabling decentralized peer-to-pool trading between native Bitcoin, Litecoin, and Ethereum. More assets are imminent.
We are doing this because free people have the right to financial privacy, open trade, and sound money.
THORChain’s launch is an historic occasion for our company, for our customers, and for the entire crypto community. And as of April 15, 2021, all trading on ShapeShift is now DEX-only; self-sovereign and immutable.
Thank you to everyone who continues to advance the state of this technology, and the cause of individual liberty.
● THORChain MCCN Launch Announcement
● Multicoin Capital’s THORChain Report
● Delphi Digital’s THORChain Research Report
● BlockPoint’s RUNE Valuation Analysis
● Gauntlet’s Protocol Design Assessment
● Messari RUNE Asset Details
● 2-Hr Clubhouse Recording — THORChain In-Depth
● Grassroots Crypto THORChain Videos
● Various THORChain Audits
● Pool and Network Dashboard
● Official Twitter
● Telegram Community
● THORChain Medium (incl. over 80 weekly dev updates)
● THORChain Code
● THORChain Documentation