pull down to refresh
0 sats \ 1 reply \ @robbabuona 20 Aug 2023 \ parent \ on: The Drivechain bluff bitcoin
Hey @supertestnet would you share a link with a good primer for drivechains?
Here is the "drivechain canon," a series of essays by fiatjaf, myself, Paul Storcz, and John Light:
- Drivechain by fiatjaf
- Answering Objections to Drivechain by Super Testnet
- Blind Merge Mining by Paul Storcz
- Miners Can't Steal by John Light
I'll also just start you off with several of my attempts to boil down the essence of drivechain into as few words as possible:
What makes a drivechain different from a federated sidechain like liquid is this: with a federated sidechain, all deposits are held in an address where 15 people can vote on what to do with it. These 15 people are trusted to let the "right" person withdraw the money. On a drivechain, all deposits are held in an address where a set of bitcoin miners -- namely, 50% + 1 of them -- can vote on what to do with it. Miners (in general) are trusted to let the "right" person withdraw the money.
And:
Bip300 works by creating a new type of timelock. A bip300 timelock is similar to OP_CHECKSEQUENCEVERIFY, which is the timelock where you can only spend your coins after waiting X blocks. Bip300's new timelock is different because it lets any miner increase the value of X by adding a message to their bitcoin block. A person enters a drivechain by depositing coins into a “drivechain deposit address” that uses this timelock. If, later, two different people try to spend those coins, the timelock gives miners time to decide who should "win."
A miner who sides with the second person can increase the value of X for the first person, delaying their withdrawal attempt, but leave the second person’s attempt unhindered. Each miner can delay either withdrawal attempt, or both. Whichever attempt is delayed by fewer miners will succeed and the other one will fail, unless both attempts are delayed long enough to allow yet another attempt to succeed before them. By this method, 51% of miners get to choose who can withdraw the coins first.
And:
The essence of a drivechain's "deposit address" is one where a withdrawal attempt from that address can be delayed indefinitely if miners keep incrementing an integer, but miners can only increment it once per bitcoin block, and incrementing it is optional.
And:
Anyone can try to withdraw from a drivechain, but each withdrawal has a timed delay, during which miners can check if the withdrawal is authorized by the drivechain’s rules. If it’s not, any miner can extend the delay to let an authorized withdrawal happen first.
Let me know if you have any questions!
reply