Skip to content

Proof-of-Stake sidechains for Bitcoin #22

@LLFourn

Description

@LLFourn

I recently came across nomic which describes itself as a proof-of-stake Bitcoin sidechain based on tendermint. Best technical description is in the whitepaper[1]
The idea is basically that you can have a sidechain where the custodians/block creators are chosen based on how much pegged bitcoin stake they have in the sidechain. This is dynamic so as coins change hands on the sidechain the output that owns the mainchain coins has its script pubkey changed to reflect this by spending to a new address.
The obvious downside is that you that if you 9 BTC (or some chosen threshold) on the sidechain out of 10 BTC you can just pluck the remaining 1 BTC and run away.
That doesn't seem like a deal-breaker to me since you've got to have some security assumption (though it is quite a spicy one).

In practice it is probably going to be less secure than things like the liquid sidechain.
But they have HSMs, a public "membership" and "oversight" board and sophisticated custodians with data centers and stuff.
Where is the sidechain tech stack for unreliable plebs and raspberry pis?
So I see this as giving up some security to get a permissionless consensus on the sidechain. You can bootstrap it easily and lets totally anonymous coins join in the protocol. It's more risky but might be more resistant to targeted corruptions than a federated sidechain.

So I'd be really interested to see a research paper on the optimal protocol design for a proof-of-stake Bitcoin sidechain.

There are a two interesting questions here off the top of my head:

  1. Can the mainchain custody output design be improved? For example, could we you build a threshold schnorr committee and do the signing in the sidechain protocol without putting the protocol data on the actual sidechain (or at least avoiding it in the optimistic case)?.
  2. How do you make it impractical to purchase a supermajority of sidechain coins and steal the remaining?

Thoughts?
[1] https://gist.github.com/mappum/da11e37f4e90891642a52621594d03f6

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions