LearnBitcoin

Bitcoin Dev Archive 2022

Improving chaumian ecash and sidechains with fidelity bond federations

2 messages, 16 May 2022. Started by Chris Belcher.

Chris Belcher, ZmnSCPxj

Permalink Original thread on gnusha.org

Chris Belcher permalink original

Hello list,

Fidelity bonds could be used to help create trust-minimized federations that are needed for things like chaumian ecash servers or sidechains.

From what I've seen until now, people working on chaumian ecash or sidechains say that the federation controlling the multisig keys will be based on some kind of reputation. Perhaps it will be some pseudonymous nyms that have built up a good reputation over a long time. I suggest another option is to use fidelity bonds to decide who gets to control the multisig keys.

Fidelity bonds are a way to deliberately sacrifice bitcoin value in a way that can be proven to a third party. In practice this is done by sending bitcoins to an address which is time-locked using the OP_CHECKTIMELOCKVERIFY opcode. The redeemscript and UTXO, along with a signature, can be shown to anyone to prove that the sacrifice happened. This system has already been deployed in JoinMarket since August 2021, and at the time of writing about 600 btc have been locked up, some for several years. The whole scheme is similar in some ways to PoW that bitcoin itself uses to avoid sybil attacks when solving the double spend problem.

It's important to understand what is the value-add of fidelity bonds and what it isn't. Fidelity bonds don't solve the trust issue, as someone with a big fidelity bond could still steal funds from the ecash server or sidechain using multisig keys they control. Such systems will always be custodial.

Rather, fidelity bonds strongly incentivize that the different fidelity bond owners are actually different people. That might be exactly the kind of thing needed for distributing the keys of big multisigs, especially now that taproot allows us to create very big multisig schemes. This happens because the value of a fidelity bond is calculated as a greater-than-linear power of the bitcoin sacrifice. So for example if the power was 2, and someone sacrificed 5 bitcoins of value, their fidelity bond would be worth 5 x 5 = 25. If instead they sacrificed 6 bitcoins their fidelity bond would be worth 6 x 6 = 36. This superlinear power is what creates a strong incentive for the different fidelity bonds to actually be controlled by different people, because anyone behaving rationally will put all their bitcoins into just one fidelity, not split them up over many bonds. As a sybil attacker needs to distribute their bitcoins over many different bonds, they are mathematically punished. The fidelity bond system achieves this without revealing anything much about those people's identities.

Another value-add of fidelity bonds is they are very much in keeping with the cypherpunk ethos, as anyone can create a fidelity bond and advertise it in the market. As the bitcoins can be mixed with coinjoin before and after sending to the timelocked address, the scheme doesn't have to be linked to any identity. Only money talks; not reputation, political power or geographical power.

I don't know yet exactly the details of how such a scheme would work, maybe something like each fidelity bond owner creates a key in the multisig scheme, and transaction fees from the sidechain or ecash server are divided amongst the fidelity bonds in proportion to their fidelity bond value.

Regards CB

ZmnSCPxj in reply to Chris Belcher permalink original

Good morning Chris,

Quoted text (5 lines)
> I don't know yet exactly the details of how such a scheme would work,
> maybe something like each fidelity bond owner creates a key in the
> multisig scheme, and transaction fees from the sidechain or ecash server
> are divided amongst the fidelity bonds in proportion to their fidelity
> bond value.

Such a scheme would probably look a little like my old ideas about "mainstake", where you lock up funds on the mainchain and use that as your right to construct new sidechain blocks, with your share of the sideblocks proportional to the value of the mainstake you locked up.

Of note is that it need not operate as a sidechain or chaumian bank, anything that requires a federation can use this scheme as well. For instance, statechains are effectively federation-guarded CoinPools, and could use a similar scheme for selecting federation members. Smart contracts unchained can also have users be guided by fidelity bonds in order to select federation members.

Regards, ZmnSCPxj