Skip to content

Instantly share code, notes, and snippets.

@msalcala11
Last active March 31, 2022 06:19
Show Gist options
  • Save msalcala11/104baff7503d6a7ad619ad814153b059 to your computer and use it in GitHub Desktop.
Save msalcala11/104baff7503d6a7ad619ad814153b059 to your computer and use it in GitHub Desktop.
Zero-Confirmation Escrows
{
"$schema": "https://bitauth.com/schemas/authentication-template-v0.schema.json",
"description": "Instant, incentive-secure payments on Bitcoin Cash\n\nFull specification: github.com/bitjson/bch-zce",
"name": "Zero-Confirmation Escrows",
"entities": {
"customer": {
"description": "The individual who is sending a ZCE-secured payment to a merchant.",
"name": "Customer",
"scripts": [
"escrow_lock_1_input",
"escrow_lock_2_inputs",
"escrow_lock_3-4_inputs",
"escrow_lock_5-8_inputs",
"escrow_lock_9-16_inputs",
"customer_reclaim_1_input",
"customer_reclaim_2_inputs",
"customer_reclaim_3-4_inputs",
"customer_reclaim_5-8_inputs",
"customer_reclaim_9-16_inputs"
],
"variables": {
"reclaim_key": {
"description": "The private key that will allow the customer to reclaim his collateral in the event no double-spend attempt is seen on the network.",
"name": "Reclaim Key",
"type": "HdKey"
}
}
},
"miner": {
"description": "The miner who claims the ZCE collateral whenever 2 transactions spending an identical input used to fund the ZCE-secured transaction are seen on the BCH network.",
"name": "Miner",
"scripts": [
"miner_claim_via_input_1_1_input",
"miner_claim_via_input_1_2_inputs",
"miner_claim_via_input_2_2_inputs",
"miner_claim_via_input_1_3-4_inputs",
"miner_claim_via_input_2_3-4_inputs",
"miner_claim_via_input_1_5-8_inputs",
"miner_claim_via_input_2_5-8_inputs",
"miner_claim_via_input_8_5-8_inputs",
"miner_claim_via_input_1_9-16_inputs",
"miner_claim_via_input_2_9-16_inputs",
"miner_claim_via_input_8_9-16_inputs"
],
"variables": {
"honest_transaction": {
"description": "",
"name": "Honest Transaction",
"type": "AddressData"
},
"fraudulent_transaction": {
"description": "",
"name": "Fraudulent Transaction",
"type": "AddressData"
},
"honest_transaction_signature": {
"description": "",
"name": "Honest Transaction Signature",
"type": "AddressData"
},
"fraudulent_transaction_signature": {
"description": "",
"name": "Fraudulent Transaction Signature",
"type": "AddressData"
},
"input_1_public_key": {
"description": "",
"name": "Input 1 Public Key",
"type": "AddressData"
},
"input_2_public_key": {
"description": "",
"name": "Input 2 Public Key",
"type": "AddressData"
},
"input_3_public_key": {
"description": "",
"name": "Input 3 Public Key",
"type": "AddressData"
},
"input_4_public_key": {
"description": "",
"name": "Input 4 Public Key",
"type": "AddressData"
},
"input_5_public_key": {
"description": "",
"name": "Input 5 Public Key",
"type": "AddressData"
},
"input_6_public_key": {
"description": "",
"name": "Input 6 Public Key",
"type": "AddressData"
},
"input_7_public_key": {
"description": "",
"name": "Input 7 Public Key",
"type": "AddressData"
},
"input_8_public_key": {
"description": "",
"name": "Input 8 Public Key",
"type": "AddressData"
},
"input_9_public_key": {
"description": "",
"name": "Input 9 Public Key",
"type": "AddressData"
},
"input_10_public_key": {
"description": "",
"name": "Input 10 Public Key",
"type": "AddressData"
},
"input_11_public_key": {
"description": "",
"name": "Input 11 Public Key",
"type": "AddressData"
},
"input_12_public_key": {
"description": "",
"name": "Input 12 Public Key",
"type": "AddressData"
},
"input_13_public_key": {
"description": "",
"name": "Input 13 Public Key",
"type": "AddressData"
},
"input_14_public_key": {
"description": "",
"name": "Input 14 Public Key",
"type": "AddressData"
},
"input_15_public_key": {
"description": "",
"name": "Input 15 Public Key",
"type": "AddressData"
},
"input_16_public_key": {
"description": "",
"name": "Input 16 Public Key",
"type": "AddressData"
}
}
}
},
"scenarios": {
"miner_claim_via_input_1": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via First Input"
},
"miner_claim_via_input_2": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Second Input"
},
"miner_claim_via_input_3": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Third Input"
},
"miner_claim_via_input_4": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Fourth Input"
},
"miner_claim_via_input_5": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Fifth Input"
},
"miner_claim_via_input_6": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Sixth Input"
},
"miner_claim_via_input_7": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Seventh Input"
},
"miner_claim_via_input_8": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Eighth Input"
},
"miner_claim_via_input_9": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Miner Claim via Ninth Input"
},
"customer_reclaim": {
"data": {
"bytecode": {
"honest_transaction": "0x66ff35a3f89e37c16a9e3b3e4d8503742b1bd56f946a3970b962a7943090281c",
"fraudulent_transaction": "0x25f64e88d7be06b6ac8a0a46637fde8ce5d4ea337aabc7a34266a2ff6bc96dab",
"honest_transaction_signature": "0x8e6f87f230491653157225d0180c3c1b8c024f46784d3c839099f9c5ab4385029141d4f2b4c7dae469784347de3a308af54f5d1349637068329200e6009d4333",
"fraudulent_transaction_signature": "0x4e6132855ed472fe377de7456065ce399eb0d1ddb441411d0fe9e6fb4f80dde252a2cc0da80c8f07127a24ecefe9081e9deae2e9af6dd731002f67e9a2733b2c",
"input_1_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c6",
"input_2_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c5",
"input_3_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c7",
"input_4_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c8",
"input_5_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5c9",
"input_6_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ca",
"input_7_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cb",
"input_8_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cc",
"input_9_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cd",
"input_10_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5ce",
"input_11_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5cf",
"input_12_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d0",
"input_13_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d1",
"input_14_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d2",
"input_15_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d3",
"input_16_public_key": "0x0376ea9e36a75d2ecf9c93a0be76885e36f822529db22acfdc761c9b5b4544f5d4"
}
},
"description": "",
"name": "Customer Reclaim"
}
},
"scripts": {
"customer_reclaim_5-8_inputs": {
"estimate": "customer_reclaim",
"passes": [
"customer_reclaim"
],
"name": "Customer Reclaim",
"script": "<reclaim_key.schnorr_signature.all_outputs>\n<reclaim_key.public_key>",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_1_5-8_inputs": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Miner Claim via Input 1",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_1_public_key>\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c1\n<$(<input_2_public_key> OP_HASH160)> // k1\n<1> // leaf (k0) is left side, requires swap\n<1> // tier 2 (c0) is left side, requires swap\n<1> // tier 3 (b0) is left side, requires swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_2_5-8_inputs": {
"estimate": "miner_claim_via_input_2",
"passes": [
"miner_claim_via_input_2"
],
"name": "Miner Claim via Input 2 ",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_2_public_key>\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c1\n<$(<input_1_public_key> OP_HASH160)> // k0\n<0> // leaf (k1) is right side, does not require swap\n<1> // tier 2 (c0) is left side, requires swap\n<1> // tier 3 (b0) is left side, requires swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_3_5-8_inputs": {
"estimate": "miner_claim_via_input_3",
"passes": [
"miner_claim_via_input_3"
],
"name": "Miner Claim via Input 3",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_3_public_key>\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c0\n<$(<input_4_public_key> OP_HASH160)> // k3\n<1> // leaf (k2) is left side, requires swap\n<0> // tier 2 (c1) is right side, does not require swap\n<1> // tier 3 (b0) is left side, requires swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_4_5-8_inputs": {
"estimate": "miner_claim_via_input_4",
"passes": [
"miner_claim_via_input_4"
],
"name": "Miner Claim via Input 4",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_4_public_key>\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c0\n<$(<input_3_public_key> OP_HASH160)> // k2\n<0> // leaf (k3) is right side, does not require swap\n<0> // tier 2 (c1) is right side, does not require swap\n<1> // tier 3 (b0) is left side, requires swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_5_5-8_inputs": {
"estimate": "miner_claim_via_input_5",
"passes": [
"miner_claim_via_input_5"
],
"name": "Miner Claim via Input 5",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_5_public_key>\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n)> // b0\n<$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c1\n<$(<input_6_public_key> OP_HASH160)> // k5\n<1> // leaf (k4) is left side, requires swap\n<1> // tier 2 (c2) is left side, requires swap\n<0> // tier 3 (b1) is right side, does not require swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_6_5-8_inputs": {
"estimate": "miner_claim_via_input_6",
"passes": [
"miner_claim_via_input_6"
],
"name": "Miner Claim via Input 6",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_6_public_key>\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n)> // b0\n<$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c1\n<$(<input_5_public_key> OP_HASH160)> // k5\n<0> // leaf (k5) is right side, does not require swap\n<1> // tier 2 (c2) is left side, requires swap\n<0> // tier 3 (b1) is right side, does not require swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_7_5-8_inputs": {
"estimate": "miner_claim_via_input_7",
"passes": [
"miner_claim_via_input_7"
],
"name": "Miner Claim via Input 7",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_7_public_key>\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n)> // b0\n<$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c1\n<$(<input_8_public_key> OP_HASH160)> // k5\n<1> // leaf (k6) is left side, requires swap\n<0> // tier 2 (c3) is right side, does not require swap\n<0> // tier 3 (b1) is right side, does not require swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"miner_claim_via_input_8_5-8_inputs": {
"estimate": "miner_claim_via_input_8",
"passes": [
"miner_claim_via_input_8"
],
"name": "Miner Claim via Input 8",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_8_public_key>\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c1\n OP_CAT OP_HASH160\n)> // b0\n<$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n<$(<input_7_public_key> OP_HASH160)> // k6\n<0> // leaf (k7) is right side, does not require swap\n<0> // tier 2 (c3) is right side, does not require swap\n<0> // tier 3 (b1) is right side, does not require swap",
"unlocks": "escrow_lock_5-8_inputs"
},
"customer_reclaim_9-16_inputs": {
"estimate": "customer_reclaim",
"passes": [
"customer_reclaim"
],
"name": "Customer Reclaim",
"script": "<reclaim_key.schnorr_signature.all_outputs>\n<reclaim_key.public_key>",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_1_9-16_inputs": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Miner Claim via Input 1",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_1_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n OP_CAT OP_HASH160\n)> // c1\n<$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n<$(<input_2_public_key> OP_HASH160)> // k1\n<1> // leaf (k0) is left side, requires swap\n<1> // tier 2 (d0) is left side, requires swap\n<1> // tier 3 (c0) is left side, requires swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_2_9-16_inputs": {
"estimate": "miner_claim_via_input_2",
"passes": [
"miner_claim_via_input_2"
],
"name": "Miner Claim via Input 2",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_2_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n OP_CAT OP_HASH160\n)> // c1\n<$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n<$(<input_1_public_key> OP_HASH160)> // k0\n<0> // leaf (k1) is right side, does not require swap\n<1> // tier 2 (d0) is left side, requires swap\n<1> // tier 3 (c0) is left side, requires swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_3_9-16_inputs": {
"estimate": "miner_claim_via_input_3",
"passes": [
"miner_claim_via_input_3"
],
"name": "Miner Claim via Input 3",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_3_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n OP_CAT OP_HASH160\n)> // c1\n<$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n<$(<input_4_public_key> OP_HASH160)> // k3\n<1> // leaf (k2) is left side, requires swap\n<0> // tier 2 (d1) is right side, does not require swap\n<1> // tier 3 (c0) is left side, requires swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_4_9-16_inputs": {
"estimate": "miner_claim_via_input_4",
"passes": [
"miner_claim_via_input_4"
],
"name": "Miner Claim via Input 4",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_4_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n OP_CAT OP_HASH160\n)> // c1\n<$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n<$(<input_3_public_key> OP_HASH160)> // k2\n<0> // leaf (k3) is right side, does not require swap\n<0> // tier 2 (d1) is right side, does not require swap\n<1> // tier 3 (c0) is left side, requires swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_5_9-16_inputs": {
"estimate": "miner_claim_via_input_5",
"passes": [
"miner_claim_via_input_5"
],
"name": "Miner Claim via Input 5",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_5_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n OP_CAT OP_HASH160\n)> // c0\n<$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n<$(<input_6_public_key> OP_HASH160)> // k5\n<1> // leaf (k4) is left side, requires swap\n<1> // tier 2 (d2) is left side, requires swap\n<0> // tier 3 (c1) is right side, does not require swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_6_9-16_inputs": {
"estimate": "miner_claim_via_input_6",
"passes": [
"miner_claim_via_input_6"
],
"name": "Miner Claim via Input 6",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_6_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n OP_CAT OP_HASH160\n)> // c0\n<$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n<$(<input_5_public_key> OP_HASH160)> // k4\n<0> // leaf (k1) is right side, does not require swap\n<1> // tier 2 (d2) is left side, requires swap\n<0> // tier 3 (c1) is right side, does not require swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_7_9-16_inputs": {
"estimate": "miner_claim_via_input_7",
"passes": [
"miner_claim_via_input_7"
],
"name": "Miner Claim via Input 7",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_7_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n OP_CAT OP_HASH160\n)> // c0\n<$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n<$(<input_8_public_key> OP_HASH160)> // k7\n<1> // leaf (k6) is left side, requires swap\n<0> // tier 2 (d3) is right side, does not require swap\n<0> // tier 3 (c1) is right side, does not require swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_8_9-16_inputs": {
"estimate": "miner_claim_via_input_8",
"passes": [
"miner_claim_via_input_8"
],
"name": "Miner Claim via Input 8",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_8_public_key>\n<$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n)> // b1\n<$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n OP_CAT OP_HASH160\n)> // c0\n<$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n<$(<input_7_public_key> OP_HASH160)> // k6\n<0> // leaf (k7) is right side, does not require swap\n<0> // tier 2 (d3) is right side, does not require swap\n<0> // tier 3 (c1) is right side, does not require swap\n<1> // tier 4 (b0) is left side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_9_9-16_inputs": {
"estimate": "miner_claim_via_input_9",
"passes": [
"miner_claim_via_input_9"
],
"name": "Miner Claim via Input 9",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n */\n\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_9_public_key>\n<$(\n <$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n OP_CAT OP_HASH160\n )> // c0\n <$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n OP_CAT OP_HASH160\n )> // c1\n OP_CAT OP_HASH160\n)> // b0\n<$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d0\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n OP_CAT OP_HASH160\n)> // c3\n<$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n<$(<input_10_public_key> OP_HASH160)> // k9\n<1> // leaf (k8) is left side, requires swap\n<1> // tier 2 (d4) is left side, requires swap\n<1> // tier 3 (c2) is left side, requires swap\n<0> // tier 4 (b1) is right side, requires swap",
"unlocks": "escrow_lock_9-16_inputs"
},
"miner_claim_via_input_1_1_input": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Miner Claim",
"script": "<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_1_public_key>",
"unlocks": "escrow_lock_1_input"
},
"customer_reclaim_1_input": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Customer Reclaim",
"script": "<reclaim_key.schnorr_signature.all_outputs>\n<reclaim_key.public_key>",
"unlocks": "escrow_lock_1_input"
},
"miner_claim_via_input_1_2_inputs": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Miner Claim via Input 1",
"script": "/** \n * rt\n * / \\\n * k0 k1\n*/\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_1_public_key>\n<$(<input_2_public_key> OP_HASH160)> // k1\n<1> // leaf (k0) is left side, requires swap\n",
"unlocks": "escrow_lock_2_inputs"
},
"miner_claim_via_input_2_2_inputs": {
"estimate": "miner_claim_via_input_2",
"passes": [
"miner_claim_via_input_2"
],
"name": "Miner Claim via Input 2",
"script": "/** \n * rt\n * / \\\n * k0 k1\n*/\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_2_public_key>\n<$(<input_1_public_key> OP_HASH160)> // k0\n<0> // leaf (k1) is right side, does not require swap",
"unlocks": "escrow_lock_2_inputs"
},
"miner_claim_via_input_1_3-4_inputs": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Miner Claim via Input 1",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * k0 k1 k2 k3 \n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_1_public_key>\n<$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // b1\n<$(<input_2_public_key> OP_HASH160)> // k1\n<1> // leaf (k0) is left side, requires swap\n<1> // tier 2 (b0) is left side, requires swap",
"unlocks": "escrow_lock_3-4_inputs"
},
"miner_claim_via_input_2_3-4_inputs": {
"estimate": "miner_claim_via_input_2",
"passes": [
"miner_claim_via_input_2"
],
"name": "Miner Claim via Input 2",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * k0 k1 k2 k3\n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_2_public_key>\n<$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // b1\n<$(<input_1_public_key> OP_HASH160)> // k0\n<0> // leaf (k1) is right side, does not require swap\n<1> // tier 2 (b0) is left side, requires swap",
"unlocks": "escrow_lock_3-4_inputs"
},
"miner_claim_via_input_3_3-4_inputs": {
"estimate": "miner_claim_via_input_3",
"passes": [
"miner_claim_via_input_3"
],
"name": "Miner Claim via Input 3",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * k0 k1 k2 k3\n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_3_public_key>\n<$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // b0\n<$(<input_4_public_key> OP_HASH160)> // k3\n<1> // leaf (k2) is left side, requires swap\n<0> // tier 2 (b1) is right side, does not require swap",
"unlocks": "escrow_lock_3-4_inputs"
},
"customer_reclaim_2_inputs": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Customer Reclaim",
"script": "<reclaim_key.schnorr_signature.all_outputs>\n<reclaim_key.public_key>",
"unlocks": "escrow_lock_2_inputs"
},
"customer_reclaim_3-4_inputs": {
"estimate": "miner_claim_via_input_1",
"passes": [
"miner_claim_via_input_1"
],
"name": "Customer Reclaim",
"script": "<reclaim_key.schnorr_signature.all_outputs>\n<reclaim_key.public_key>",
"unlocks": "escrow_lock_3-4_inputs"
},
"miner_claim_via_input_4_3-4_inputs": {
"estimate": "miner_claim_via_input_4",
"passes": [
"miner_claim_via_input_4"
],
"name": "Miner Claim via Input 4",
"script": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * k0 k1 k2 k3\n */\n<fraudulent_transaction_signature>\n<fraudulent_transaction>\n<honest_transaction_signature>\n<honest_transaction>\n<input_4_public_key>\n<$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // b0\n<$(<input_3_public_key> OP_HASH160)> // k2\n<0> // leaf (k3) is right side, does not require swap\n<0> // tier 2 (b1) is right side, does not require swap",
"unlocks": "escrow_lock_3-4_inputs"
},
"escrow_lock_5-8_inputs": {
"lockingType": "standard",
"name": "Escrow Lock (5-8 Inputs)",
"script": "// Let's check to see if this is the customer reclaiming the escrow.\nOP_DUP OP_HASH160 <$(<reclaim_key.public_key> OP_HASH160)> OP_EQUAL\nOP_IF\n // If so, let's perform a normal signature check.\n OP_CHECKSIG\nOP_ELSE\n // Since we're in the else block, this is a miner attempting\n // to confiscate the escrow by providing two signatures produced \n // by the public key of the input used to fund the ZCE-secured tx,\n // proving that the ZCE-secured payment was double-spent by the \n // customer.\n\n OP_TOALTSTACK OP_TOALTSTACK OP_TOALTSTACK // Store merkle hash swap flags for later.\n OP_3 OP_PICK // Grab a copy of the input public key.\n OP_HASH160\n \n // Let's check to make sure the provided public key is actually\n // a public key from one of the transaction's inputs by ensuring we\n // can use the provided public key to recreate the merkle root hash\n // of the input public key merkle tree.\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n\n <root_hash_5-8_inputs>\n OP_EQUALVERIFY\n\n // Ensure 2 different transactions were provided.\n OP_OVER\n OP_4 OP_PICK\n OP_EQUAL\n OP_NOT\n OP_VERIFY\n\n // Ensure both provided signatures (the honest tx and double-spend) \n // are valid.\n OP_DUP\n OP_TOALTSTACK\n OP_CHECKDATASIGVERIFY\n OP_FROMALTSTACK\n OP_CHECKDATASIG\nOP_ENDIF"
},
"escrow_lock_9-16_inputs": {
"lockingType": "standard",
"name": "Escrow Lock (9-16 Inputs)",
"script": "// Let's check to see if this is the customer reclaiming the escrow.\nOP_DUP OP_HASH160 <$(<reclaim_key.public_key> OP_HASH160)> OP_EQUAL\nOP_IF\n // If so, let's perform a normal signature check.\n OP_CHECKSIG\nOP_ELSE\n // Since we're in the else block, this is a miner attempting\n // to confiscate the escrow by providing two signatures produced \n // by the public key of the input used to fund the ZCE-secured tx,\n // proving that the ZCE-secured payment was double-spent by the \n // customer.\n\n OP_TOALTSTACK OP_TOALTSTACK OP_TOALTSTACK OP_TOALTSTACK // Store merkle hash swap flags for later.\n OP_4 OP_PICK // Grab a copy of the input public key.\n OP_HASH160\n\n // Let's check to make sure the provided public key is actually\n // a public key from one of the transaction's inputs by ensuring we\n // can use the provided public key to recreate the merkle root hash\n // of the input public key merkle tree.\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n\n <root_hash_9-16_inputs>\n OP_EQUALVERIFY\n\n // Ensure 2 different transactions were provided.\n OP_OVER\n OP_4 OP_PICK\n OP_EQUAL\n OP_NOT\n OP_VERIFY\n\n // Ensure both provided signatures (the honest tx and double-spend) \n // are valid.\n OP_DUP\n OP_TOALTSTACK\n OP_CHECKDATASIGVERIFY\n OP_FROMALTSTACK\n OP_CHECKDATASIG\nOP_ENDIF"
},
"escrow_lock_1_input": {
"lockingType": "standard",
"name": "Escrow Lock (1 Input)",
"script": "// Let's check to see if this is the customer reclaiming the escrow.\nOP_DUP OP_HASH160 <$(<reclaim_key.public_key> OP_HASH160)> OP_EQUAL\nOP_IF\n // If so, let's perform a normal signature check.\n OP_CHECKSIG\nOP_ELSE\n // Since we're in the else block, this is a miner attempting\n // to confiscate the escrow by providing two signatures produced \n // by the public key of the input used to fund the ZCE-secured tx,\n // proving that the ZCE-secured payment was double-spent by the \n // customer.\n\n // First, ensure the miner provided input public key matches the \n // public key of the input used to fund the ZCE-secured payment.\n OP_DUP\n OP_HASH160\n <$(<input_1_public_key> OP_HASH160)>\n OP_EQUALVERIFY\n\n // Ensure two different transactions were provided.\n OP_OVER\n OP_4 OP_PICK\n OP_EQUAL\n OP_NOT\n OP_VERIFY\n\n // Ensure both provided signatures (the honest tx and double-spend) \n // are valid.\n OP_DUP\n OP_TOALTSTACK\n OP_CHECKDATASIGVERIFY\n OP_FROMALTSTACK\n OP_CHECKDATASIG\nOP_ENDIF\n"
},
"escrow_lock_2_inputs": {
"lockingType": "standard",
"name": "Escrow Lock (2 Inputs)",
"script": "// Let's check to see if this is the customer reclaiming the escrow.\nOP_DUP OP_HASH160 <$(<reclaim_key.public_key> OP_HASH160)> OP_EQUAL\nOP_IF\n // If so, let's perform a normal signature check.\n OP_CHECKSIG\nOP_ELSE\n // Since we're in the else block, this is a miner attempting\n // to confiscate the escrow by providing two signatures produced \n // by the public key of the input used to fund the ZCE-secured tx,\n // proving that the ZCE-secured payment was double-spent by the \n // customer.\n\n OP_TOALTSTACK // Store merkle hash swap flag for later.\n OP_1 OP_PICK // Grab a copy of the input public key.\n OP_HASH160\n\n // Let's check to make sure the provided public key is actually\n // a public key from one of the transaction's inputs by ensuring we\n // can use the provided public key to recreate the merkle root hash\n // of the input public key merkle tree.\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n\n <root_hash_2_inputs>\n OP_EQUALVERIFY\n\n // Ensure two different transactions were provided.\n OP_OVER\n OP_4 OP_PICK\n OP_EQUAL\n OP_NOT\n OP_VERIFY\n \n // Ensure both provided signatures (the honest tx and double-spend) \n // are valid.\n OP_DUP\n OP_TOALTSTACK\n OP_CHECKDATASIGVERIFY\n OP_FROMALTSTACK\n OP_CHECKDATASIG\nOP_ENDIF"
},
"escrow_lock_3-4_inputs": {
"lockingType": "standard",
"name": "Escrow Lock (3-4 Inputs)",
"script": "// Let's check to see if this is the customer reclaiming the escrow.\nOP_DUP OP_HASH160 <$(<reclaim_key.public_key> OP_HASH160)> OP_EQUAL\nOP_IF\n // If so, let's perform a normal signature check.\n OP_CHECKSIG\nOP_ELSE\n // Since we're in the else block, this is a miner attempting\n // to confiscate the escrow by providing two signatures produced \n // by the public key of the input used to fund the ZCE-secured tx,\n // proving that the ZCE-secured payment was double-spent by the \n // customer.\n\n OP_TOALTSTACK OP_TOALTSTACK // Store merkle hash swap flags for later.\n OP_2 OP_PICK // Grab a copy of the input public key.\n OP_HASH160\n\n // Let's check to make sure the provided public key is actually\n // a public key from one of the transaction's inputs by ensuring we\n // can use the provided public key to recreate the merkle root hash\n // of the input public key merkle tree.\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n OP_FROMALTSTACK OP_IF OP_SWAP OP_ENDIF OP_CAT OP_HASH160\n\n <root_hash_3-4_inputs>\n OP_EQUALVERIFY\n\n // Ensure 2 different transactions were provided.\n OP_OVER\n OP_4 OP_PICK\n OP_EQUAL\n OP_NOT\n OP_VERIFY\n\n // Ensure both provided signatures (the honest tx and double-spend) \n // are valid.\n OP_DUP\n OP_TOALTSTACK\n OP_CHECKDATASIGVERIFY\n OP_FROMALTSTACK\n OP_CHECKDATASIG\nOP_ENDIF"
},
"root_hash_5-8_inputs": {
"name": "Root Hash (5-8 Inputs)",
"pushed": true,
"script": "$(\n <$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c1\n OP_CAT OP_HASH160\n )> // b0\n <$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // c3\n OP_CAT OP_HASH160\n )> // b1\n OP_CAT\n OP_HASH160\n) // rt",
"tests": [
{
"passes": [
"miner_claim_via_input_1"
],
"check": "<0x74bf1bcd84078109e9a4b987c2906b10cff3050c> OP_EQUAL",
"name": "Equals Merkle Root",
"setup": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 k6 k7\n * \n * for this template k2=k3=k4=k5=k6=0\n */"
}
]
},
"root_hash_9-16_inputs": {
"name": "Root Hash (9-16 Inputs)",
"pushed": true,
"script": "$(\n <$(\n <$(\n <$(<input_1_public_key> OP_HASH160 <input_2_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d0\n <$(<input_3_public_key> OP_HASH160 <input_4_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d1\n OP_CAT OP_HASH160\n )> // c0\n <$(\n <$(<input_5_public_key> OP_HASH160 <input_6_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d2\n <$(<input_7_public_key> OP_HASH160 <input_8_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d3\n OP_CAT OP_HASH160\n )> // c1\n OP_CAT OP_HASH160\n )> // b0\n <$(\n <$(\n <$(<input_9_public_key> OP_HASH160 <input_10_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d4\n <$(<input_11_public_key> OP_HASH160 <input_12_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d5\n OP_CAT OP_HASH160\n )> // c2\n <$(\n <$(<input_13_public_key> OP_HASH160 <input_14_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d6\n <$(<input_15_public_key> OP_HASH160 <input_16_public_key> OP_HASH160 OP_CAT OP_HASH160)> // d7\n OP_CAT OP_HASH160\n )> // c3\n OP_CAT OP_HASH160\n )> // b1\n OP_CAT\n OP_HASH160\n)",
"tests": [
{
"passes": [
"miner_claim_via_input_1"
],
"check": "<0x4f3b4284cf9b99079c9b549fa61ccb6baba7bae8> OP_EQUAL",
"name": "Equals Merkle Root",
"setup": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * c0 c1 c2 c3\n * / \\ / \\ / \\ / \\\n * d0 d1 d2 d3 d4 d5 d6 d7\n * / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\\n * k0 k1 k2 k3 k4 k5 K6 k7 k8 k9 k10 k11 k12 k13 k14 k15 \n * \n * for this template k2->k6, k8->k15=0\n */"
}
]
},
"root_hash_3-4_inputs": {
"name": "Root Hash (3-4 Inputs)",
"pushed": true,
"script": "$(\n <$(\n <input_1_public_key> OP_HASH160\n <input_2_public_key> OP_HASH160\n OP_CAT\n OP_HASH160\n )> // b0\n <$(\n <input_3_public_key> OP_HASH160 \n <input_4_public_key> OP_HASH160 \n OP_CAT \n OP_HASH160\n )> // b1\n OP_CAT\n OP_HASH160\n)",
"tests": [
{
"passes": [
"miner_claim_via_input_1"
],
"check": "<0xae13445179661d0e24755f499334cccb4d4100f3> OP_EQUAL",
"name": "Equals Merkle Root",
"setup": "/** \n * rt\n * / \\\n * b0 b1\n * / \\ / \\\n * k0 k1 k2 k3\n * \n * for this template k2=k3=0\n */"
}
]
},
"root_hash_2_inputs": {
"name": "Root Hash (2 Inputs)",
"pushed": true,
"script": "$(\n <$(<input_1_public_key> OP_HASH160)>\n <$(<input_2_public_key> OP_HASH160)>\n OP_CAT\n OP_HASH160\n)",
"tests": [
{
"passes": [
"miner_claim_via_input_1"
],
"check": "<0x87222a8a7b60cea53f76b568abe4da3ad9079017> OP_EQUAL",
"name": "Equals Merkle Root",
"setup": "/** \n * rt\n * / \\\n * k0 k1\n*/"
}
]
}
},
"supported": [
"BCH_2019_05",
"BCH_2019_11",
"BCH_2020_05"
],
"version": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment