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

Round_Rock_Bitcoiners_26_-_LARP_Presentation.pdf

Avatar for RRBTC RRBTC
July 29, 2024
61

 Round_Rock_Bitcoiners_26_-_LARP_Presentation.pdf

Avatar for RRBTC

RRBTC

July 29, 2024
Tweet

Transcript

  1. Objective Mission: “Our mission is to share bitcoin knowledge, tools,

    and resources while creating a peer to peer network within the Round Rock community.” Purpose: Grow bitcoin adoption by individuals and small businesses within our local community. Participation encouraged: Stay on topic (bitcoin only) Respect others’ privacy (Chatham house rules) Opportunities: - Free propaganda from bitcoin artists - Bitcoin Book Exchange - Hash The Torch 24 – Altairtech Urlacher Conversion Kit - Blockstream Local - Liquid Workshop Volunteers Ongoing call for speakers & sponsors - Next month: UncleJim21 to discuss CASCDR
  2. Presented by Round Rock Bitcoiners 11 July 2024 | 18:30

    CST Allen R. Baca Center Round Rock, Texas Welcome node runner teams!
  3. WHAT’S A LARP?! • LIVE ACTION ROLE PLAY • CHAOS

    • LEARNING • FUN • BITCOIN NETWORK • EVERY TABLE = NODE https://www.freepik.com/, @thuynhungle99
  4. WHAT’S BITCOIN?! • “A peer-to-peer electronic cash system.” The Bitcoin

    White Paper https://bitcoin.org/bitcoin.pdf Bitcoin Core https://bitcoin.org/en/bitcoin-core/
  5. BITCOIN “A peer-to-peer, electronic cash system” Bob (receives) Bob (spends)

    TX A Transaction 2 BTC (to Alice) 7.5 BTC (to Bob’s change address) 10 BTC .5 BTC (to miner) IN OUT OUT OUT UTXO Model (“Unspent Transaction Output”)
  6. WHAT’S A NODE? • Computer that runs Bitcoin Core software

    ◦ Follows rules ◦ Shares information ◦ Keeps a record of transactions
  7. • Each team is a node. Dispersed throughout the room

    to simulate privacy. • Each node starts by “downloading Bitcoin Core”. I.e. Receive basket of items. This is our physical representation of the Bitcoin core software, made up of many subcomponents.
  8. 1. “Download” Bitcoin Core Unpack your baskets! Set aside: -

    the blockchain - a block - the genesis transaction - the UTXO set basket - the secret key card - The BASIC miner - Verification cards
  9. 2. Genesis Block + Transaction *use a block explorer like

    mempool.space to see the real genesis block! 000000 33 12:34 8500 103554 prev. block hash tx. commitment time target nonce eagle33
  10. 3. Identifying Our Outputs • Identify our outputs ◦ Locate

    your wallet ◦ ID bitcoins which belong to our wallet • RAISE YOUR HAND IF you have bitcoin locked to your key. eagle33
  11. 4. Verifying the Genesis Block Header Protocol Note: The actual

    'transaction commitment' is a Merkle root of all the block's transaction's ids. We don't have a quick and easy way to build a Merkle root. Instead we just use some basic math. eagle33
  12. 5. Calculating the block hash • Blockhash is shown after

    all information is entered. Write it above “blockheader” and on back of genesis txn. 000000 33 12:34 8500 103554 prev. block hash tx. commitment time target nonce ON/ CLEAR NEXT PREV.
  13. 9. Writing Transactions • Transaction ID format: “word##” • Send

    facilitators (green pubkey, or “lock”) 1 BTC • Refer to your private key for your node’s color • Write any transaction fee on back of transaction card *This is real life and we’re playing with some level of trust; please LARP with only the color of your private key.
  14. 12. Building our 1st block template (1) Coinbase Txn. +

    (3) Txn.s 7657 8500 prev. block hash tx. commitment time target nonce New Block
  15. • The BASIC will mine instead of verifying when entering

    a blank nonce. • After the nonce is found, write down the block hash next to blockheader • RAISE YOUR HAND as soon as you find the nonce! 13. Mining For Nonces
  16. • As soon as nonce is found and block hashed,

    notify all peers with “I HAVE BLOCKS” message w/ block hash(es). 14. Broadcasting & Requesting a Valid Block • Messages must be acted upon ASAP. Other nodes will send “SEND BLOCKS” message w/ hashes for blocks they need.
  17. • Create copy of valid block ◦ Fill block header

    (EXCEPT block hash). ◦ Fill block ▪ Coinbase txn: Make copies to send ▪ Other txns: Use Compact Block Protocol (“block txids”) to copy all other txids to • Send valid blocks to nodes who requested it. 15. Sending Peers Valid Blocks • cat72 • dog83 • balloon18 7657 8500 prev. block hash tx. commitment time nonce target
  18. • Use the coinbase transaction and Compact Block (“block txids”)

    to calculate tx commitment. 16. Validating a Block
  19. • Valid coinbase txn: ◦ No inputs ◦ Ouput value

    is ≤50 + sum of txn fees • Only need to validate txns that are not already in mempool • If you don’t have listed transaction, you’ll need to request it from the node that sent block. • If you’re unable to find txn or if it’s already in UTXO set, it’s invalid. Discard block. • Txns can only spend from UTXOs or from other txns in same block; otherwise, block is invalid. 17. Validating Block Txns
  20. • Promote all block txns in mempool to UTXO set

    • Cross-out any spent inputs in this block, and cross-out corresponding output • Any new outputs created in block get sent to UTXO set. • Add block to blockchain. 18. Marking Outputs as Spent
  21. • Update with new valid block ◦ Discard old block

    header ◦ Use new valid block’s hash for “previous block hash” ◦ Update time ◦ Pull out txns that were mined in pervious block ◦ Update coinbase txn, recalculate txn commitment ◦ Attempt to mine updated block 19. Building a chain