Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Poker on Plasma Prime (Work in Progress)

sgtn
November 20, 2018

Poker on Plasma Prime (Work in Progress)

sgtn

November 20, 2018
Tweet

More Decks by sgtn

Other Decks in Technology

Transcript

  1. MQTT MQTT hash x5 (as shuffle seed) hash x5 (as

    finalization) Tx1 bigbondB fee hash x10 discardBitmapB x B1 hash x5 pre-image x5 discardBitmapA x A1 hash x5 pre-image x B1 hash x5 (as shuffle seed) hash x5 (as finalization) pre-image x5 (shuffle) pre-image x5 (hands) pre-image x5 commit reveal bigbondA fee hash x10 commit pre-image x A1 pre-image x5 (shuffle) pre-image x5 (hands) reveal reveal commit [UTXO]
 hashes x30 bigbondA,B pre-image x10 discardBitmapA xA1 discardBitmapB xB1 [UTXO]
 hashes x30 bigbondA,B pre-image x10+Σ(An+Bn) discardBitmapA xA1 discardBitmapB xB1 [UTXO]
 hashes x50 bigbondA,B pre-image x10+Σ(An+Bn) discardBitmapA x A1+A2+A3 discardBitmapB x B1+B2+B3 [UTXO]
 bigbondA+B fee MQTT when online sig is ellipted MQTT MQTT [UTXO]
 bigbondA,B hashes x20 pre-image x10 MQTT MQTT MQTT Alice Bob Tx2 Tx3 Tx5 Tx10 Tx11 discardBitmapB x B2 hash x5 discardBitmapA x A2 hash x5 pre-image x B2 commit pre-image x A2 reveal [UTXO]
 hashes x40 bigbondA,B pre-image x10+Σ(An+Bn) discardBitmapA x A1+A2 discardBitmapB x B1+B2 MQTT Tx6 Tx7 [UTXO] bigbondA,B hashes x20 discardBitmapB x B3 hash x5 discardBitmapA x A3 hash x5 pre-image x B3 commit pre-image x A3 reveal [UTXO]
 hashes x50 bigbondA,B pre-image x10+Σ(An+Bn) discardBitmapA x A1+A2+A3 discardBitmapB x B1+B2+B3 [UTXO]
 hashes x50 bigbondA,B pre-image x10+Σ(An+Bn) discardBitmapA x A1+A2+A3 discardBitmapB x B1+B2+B3 MQTT Tx8 Tx9 [UTXO]
 hashes x40 bigbondA,B pre-image x10+Σ(An+Bn) discardBitmapA x A1+A2 discardBitmapB x B1+B2
  2. Alice Bob’s hand- preimage’s hash Tx1/1st turn A chunk Segments

    Alice’s Segments Fee Bet Alice’s hand- preimage’s hash preimage-to-be- opened 1 2 3 4 5 6 7 8 9 10 preimage-to-be- hidden Fee Bet Hashes of preimages
  3. Alice Bob’s hand- preimage’s hash Tx1/commitA A chunk Segments Alice’s

    Segments Alice’s hand- preimage’s hash preimage-to-be- opened 1 2 3 4 5 6 7 8 9 10 preimage-to-be- hidden Fee Bet Hashes of preimages Bob Bob’s hand- preimage’s hash Alice’s hand- preimage’s hash preimage-to-be- opened 1 2 3 4 5 6 7 8 9 10 preimage-to-be- hidden Chunks Segments Bob’s Segments Fee Bet Alice’s Segments Fee Bet Hashes of preimages Tx1
  4. Tx1/commitA Bet Inputs Args Outputs owners: Hash x20 values: Hash

    x20 Alice state: blkNum: 0 1 Fee owners: values: Alice state: blkNum: 0 1 Bet owners: values: Bob state: blkNum: 0 1 Fee owners: values: Bob state: blkNum: 0 1 Fee owners: values: Op state: blkNum: 0 undefined Fee Bet owners: values: Alice,Bob state: blkNum: undefined Bet Transaction TransactionOutput TransactionOutput label: 100
  5. Alice Tx2/revealA 1 2 3 4 5 6 7 8

    9 10 preimage-to-be- hidden Bob preimage-to-be- opened 1 2 3 4 5 6 7 8 9 10 preimage-to-be- hidden hash hidden preimage open preimage ᶃ 1 2 3 4 5 6 7 8 9 10 preimage-to-be- hidden preimage-to-be- opened 1 2 3 4 5 6 7 8 9 10 preimage-to-be- hidden ᶄ MQTT Tx2 Verify hash ᶃ ᶄ
  6. Tx2/revealA Inputs Args Outputs Hash x20 Bet owners: values: Alice,Bob

    state: blkNum: undefined Bet Transaction TransactionOutput TransactionOutput Hash x20 Bet owners: values: Alice,Bob state: blkNum: 2 Bet Preimage x10 Preimage x10 label: 100
  7. Tx3/commitB1 1 2 3 4 5 6 7 8 9

    10 preimage-to-be- hidden 1 2 3 4 5 6 7 8 9 10 hidden preimage open preimage open preimage subscribe block until reach to 1conf Verify hash Verify hash
  8. Tx3/commitB1 preimage-to-be- hidden hidden preimage open preimage open preimage Alice

    Bob XOR XOR 1 – J ― Q ♦ 2 ❤ 7 – 00 19 26 16ਐ਺bit 29 07 Index 16 17 18 19 20 9 3 ― 4 ♦ K ❤ 7 30 10 1E 16ਐ਺bit 2A 2E ❤ ❤ Index 1 2 3 4 5
  9. Tx3/commitB1 Alice Bob 1 – J ― Q ♦ 2

    ❤ 00 19 26 16ਐ਺bit 29 Index 16 17 18 19 discardBitmapB 00 0000000000000 0000000001000 0000000000100 0000000000000 – ― ♦ ❤ discardBitmapA 7 – 07 00 0000000000000 0000000000000 0000000000000 0000001000000 – ― ♦ ❤ 20 9 K ❤ 7 30 16ਐ਺bit 2A 2E ❤ ❤ Index 1 4 5 3 ― 10 4 ♦ 1E 2 3 hidden preimage hidden preimage Tx3 Arg preparation flow is done by MQTT; Ellipted it for convenience.
  10. Tx3/commitB1 Inputs Args Outputs Hash x30 Bet owners: values: Alice,Bob

    state: blkNum: undefined Bet Transaction TransactionOutput TransactionOutput Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Hash x10 Hash x20 Bet owners: values: Alice,Bob state: blkNum: 3 Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB
  11. Tx4/revealB1 1 – J ― Q ♦ 2 ❤ 00

    19 26 16ਐ਺bit 29 Index 16 17 18 19 9 K ❤ 7 30 16ਐ਺bit 2A 2E ❤ ❤ Index 1 4 5 hidden preimage hidden preimage subscribe block until reach to 1conf ᶃ ᶄ ᶄ Open the preimage exactly same count as Alice’s discardBitmapA Open the preimage exactly same count as Bob’s discardBitmapB Tx4 MQTT
  12. Tx4/revealB1 Inputs Args Outputs Hash x30 Bet owners: values: Alice,Bob

    state: blkNum: undefined Bet Transaction TransactionOutput TransactionOutput Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 Hash x30 Bet owners: values: Alice,Bob state: blkNum: 4 Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3
  13. Tx5/commitB2 1 – J ― Q ♦ 2 ❤ 00

    19 26 16ਐ਺bit 29 Index 16 17 18 19 9 K ❤ 7 30 16ਐ਺bit 2A 2E ❤ ❤ Index 1 4 5 hidden preimage Get preimage ᶃ Verify hash open preimage open preimage hidden preimage ᶄ XOR ᶅ XOR ᶅ 9 ♦ 3 2E ♦ 5 K ❤ hidden preimage hidden preimage new new discard discard Tx5 ᶅ choose discard target ᶆ Set next seeds ᶆ Set next seeds ᶅ choose discard target MQTT
  14. Inputs Args Outputs Hash x40 Bet owners: values: Alice,Bob state:

    blkNum: undefined Bet Transaction TransactionOutput TransactionOutput Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 Hash x30 Bet owners: values: Alice,Bob state: blkNum: 5 Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Hash x10 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Tx5/commitB2
  15. Tx6/revealB2 hidden preimage hidden preimage subscribe block until reach to

    1conf ᶃ ᶄ ᶄ Open the preimage exactly same count as Alice’s discardBitmapA Open the preimage exactly same count as Bob’s discardBitmapB Tx6 9 ❤ 30 16ਐ਺bit 1 9 ♦ 3 2E ♦ 5 Index 1 – J ― Q ♦ 00 19 26 16ਐ਺bit Index 16 17 18 K ❤
  16. Inputs Args Outputs Hash x40 Bet owners: values: Alice,Bob state:

    blkNum: undefined Bet Transaction TransactionOutput TransactionOutput Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Tx6/revealB2 Hash x40 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 blkNum: 6 Preimage x3 Preimage x3
  17. Tx7/commitB3 1 – J ― Q ♦ 1 ❤ 00

    19 26 16ਐ਺bit Index 16 17 18 9 ❤ 16ਐ਺bit Index hidden preimage Get preimage ᶃ Verify hash open preimage open preimage hidden preimage ᶄ XOR ᶅ XOR ᶅ 9 ♦ 3 ♦ K ❤ hidden preimage hidden preimage new new discard discard Tx7 ᶅ choose discard target ᶆ Set next seeds ᶆ Set next seeds ᶅ choose discard target MQTT 9 – 3 –
  18. Inputs Args Outputs blkNum: undefined Transaction TransactionOutput TransactionOutput 0000000000000000000000000000 00000000000000000001000000

    discardBitmapA3 0000000000000000000000000000 00000000000000000001000000 discardBitmapB3 Hash x10 Tx7/commitB3 Hash x40 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Preimage x3 Hash x50 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA3 0000000000000000000000000000 00000000000000000001000000 discardBitmapB3 blkNum: 7
  19. Tx8/revealB3 hidden preimage hidden preimage subscribe block until reach to

    1conf ᶃ ᶄ ᶄ Open the preimage exactly same count as Alice’s discardBitmapA Open the preimage exactly same count as Bob’s discardBitmapB Tx8 1 – J ― Q ♦ K ❤ 9 ❤ 9 ♦ 3 ♦ 9 –
  20. Inputs Args Outputs Transaction TransactionOutput TransactionOutput Preimage x2 blkNum: undefined

    Hash x50 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA3 0000000000000000000000000000 00000000000000000001000000 discardBitmapB3 blkNum: undefined Hash x50 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA3 0000000000000000000000000000 00000000000000000001000000 discardBitmapB3 Preimage x2 Tx8/revealB3
  21. 1 – J ― Q ♦ 10 ❤ 00 19

    26 16ਐ਺bit Index 16 17 18 9 ❤ 16ਐ਺bit Index hidden preimage Get preimage ᶃ Verify hash open preimage open preimage hidden preimage ᶄ XOR ᶅ XOR ᶅ 9 ♦ 3 ♦ K ❤ new new ᶅ Finalize hand and commit MQTT 9 – 3 – Tx9/commitC ᶅ Finalize hand and commit ᶆ Shuffle seed of duplication Tx9
  22. Inputs Args Outputs Transaction TransactionOutput TransactionOutput handHashA Tx9/commitC handHashB blkNum:

    9 Hash x50 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA3 0000000000000000000000000000 00000000000000000001000000 discardBitmapB3 Preimage x2 blkNum: undefined Hash x60 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA3 0000000000000000000000000000 00000000000000000001000000 discardBitmapB3 Preimage x2 handHashA, B Shuffle Hash x10
  23. 9 ❤ 9 ♦ 3 ♦ 9 – 3 –

    1 – J ― Q ♦ 10 ❤ K ❤ Confirm hashes are readied ᶃ Tx10 MQTT Tx10/revealC ᶄ Reveal hand Preimage for shuffle x5 Preimage for shuffle x5
  24. Inputs Args Outputs Transaction TransactionOutput TransactionOutput handPreima geA handPreima geB

    blkNum: Undefined Bet owners: values: Winner state: Bet label:0 blkNum: 10 Hash x50 Bet owners: values: Alice,Bob state: Bet Preimage x10 label: 100 0000000000000000000000000000 00000000000000000001000000 discardBitmapA 0000000000000000000000000000 00000000000000000001000000 discardBitmapB Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA2 0000000000000000000000000000 00000000000000000001000000 discardBitmapB2 Preimage x3 0000000000000000000000000000 00000000000000000001000000 discardBitmapA3 0000000000000000000000000000 00000000000000000001000000 discardBitmapB3 Preimage x2 handHashA, B Tx10/revealC Preimage for shuffle x5 Preimage for shuffle x5