On 7/13/2017 4:22 PM, Chris Stewart wrote: > In general though, I'm still unclear of what purpose the 'Ratchet' > serves. Can you either link to documentation about it or write > something up quick? > > -Chris
In Bitcoin, new coins are held for 100 blocks. One result of this is that the coins can't be spent until there is at least 100 blocks worth of evidence that they actually are in the longest chain, and are unlikely to be orphaned. In BMM, we are concerned about exactly this. For example, imagine that I bribe you $20 to find my side:block (and, in that block I earn $20.50 worth of side:BTC tx fees), which you do. But then, moments later, you (or some other miner) orphans the block! So I don't get my $20.50, but you still keep my $20! And yet, we want the mainchain to validate as little as possible about each sidechain. We want a "light touch". So we force the h* to be accompanied by the modulus of its sidechain block number (we call it "BlockMod"). The sidechain has a new rule that requires h* to be included AND that the BlockMod be accurate, in order for the sidechain block to meet the "synthetic" difficulty requirement. The mainchain has a new rule forcing each new BlockMod to be in range [-X000,+1] relative to the old BlockMod (ie, "no skipping ahead, but you can reorg by starting a new chain from up to a=-X000 blocks ago" ... likely values of X might be 2 or 4). And finally, BMM has a new rule that the bribe isn't paid unless the sidechain block in question has been buried by [for example] 100 sidechain blocks. Hope that helps, Paul _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev