Paul Sztorc [ARCHIVE] on Nostr: 📅 Original date posted:2017-07-13 📝 Original message:On 7/13/2017 4:22 PM, ...
📅 Original date posted:2017-07-13
📝 Original message: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
Published at
2023-06-07 18:03:54Event JSON
{
"id": "2593036888b42d7fd0333a9f1d5bbd370661e1f6dc636f3b3d6f9b2a0c99c502",
"pubkey": "7ac0bd39b854f24cbf067103758f3a9d398c23832d6d75824d190ae35c6c23be",
"created_at": 1686161034,
"kind": 1,
"tags": [
[
"e",
"52b451de2ab6d599e8057dc09a8d1c72b1915752195eef8652787bc553d99caf",
"",
"root"
],
[
"e",
"2b1a8c726242b4a6847705c7aa53f310521f07cc7bfa3a0aeea613bc8a162297",
"",
"reply"
],
[
"p",
"e3e3813ca5b2f45117ae42a2a1c99f5c6bd172c115acc2538066aad916544817"
]
],
"content": "📅 Original date posted:2017-07-13\n📝 Original message:On 7/13/2017 4:22 PM, Chris Stewart wrote:\n\u003e In general though, I'm still unclear of what purpose the 'Ratchet'\n\u003e serves. Can you either link to documentation about it or write\n\u003e something up quick?\n\u003e\n\u003e -Chris\n\nIn Bitcoin, new coins are held for 100 blocks. One result of this is\nthat the coins can't be spent until there is at least 100 blocks worth\nof evidence that they actually are in the longest chain, and are\nunlikely to be orphaned.\n\nIn BMM, we are concerned about exactly this. For example, imagine that I\nbribe you $20 to find my side:block (and, in that block I earn $20.50\nworth of side:BTC tx fees), which you do. But then, moments later, you\n(or some other miner) orphans the block! So I don't get my $20.50, but\nyou still keep my $20!\n\nAnd yet, we want the mainchain to validate as little as possible about\neach sidechain. We want a \"light touch\". So we force the h* to be\naccompanied by the modulus of its sidechain block number (we call it\n\"BlockMod\"). The sidechain has a new rule that requires h* to be\nincluded AND that the BlockMod be accurate, in order for the sidechain\nblock to meet the \"synthetic\" difficulty requirement. The mainchain has\na new rule forcing each new BlockMod to be in range [-X000,+1] relative\nto the old BlockMod (ie, \"no skipping ahead, but you can reorg by\nstarting a new chain from up to a=-X000 blocks ago\" ... likely values of\nX might be 2 or 4). And finally, BMM has a new rule that the bribe isn't\npaid unless the sidechain block in question has been buried by [for\nexample] 100 sidechain blocks.\n\nHope that helps,\nPaul",
"sig": "12e8039c33cda73eac93e55741e7aadad3cd8505d42bc9e4c95864d18f01cb408400551dcd208f5d99007715de29159569c8e35bdd42148609abe235b5fb96eb"
}