Slide 1

Slide 1 text

Connect with our node & ping us on telegram

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Circular Economy

Slide 4

Slide 4 text

Presented by Round Rock Bitcoiners 11 July 2024 | 18:30 CST Allen R. Baca Center Round Rock, Texas Welcome node runner teams!

Slide 5

Slide 5 text

WHAT’S A LARP?! ● LIVE ACTION ROLE PLAY ● CHAOS ● LEARNING ● FUN ● BITCOIN NETWORK ● EVERY TABLE = NODE https://www.freepik.com/, @thuynhungle99

Slide 6

Slide 6 text

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/

Slide 7

Slide 7 text

BITCOIN “A peer-to-peer…”

Slide 8

Slide 8 text

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”)

Slide 9

Slide 9 text

WHAT’S A NODE? ● Computer that runs Bitcoin Core software ○ Follows rules ○ Shares information ○ Keeps a record of transactions

Slide 10

Slide 10 text

TIMECHAIN ILLUSTRATION

Slide 11

Slide 11 text

● 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.

Slide 12

Slide 12 text

DOWNLOAD BITCOIN CORE

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

INSPECT & VERIFY DOWNLOAD

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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.

Slide 19

Slide 19 text

VALIDATING + WRITING TXNS.

Slide 20

Slide 20 text

6. Validating 1st network transaction APPRO VED eagle33 cat72

Slide 21

Slide 21 text

7. Mempools APPROVED cat72

Slide 22

Slide 22 text

8. Wallet Balance Check APPRO VED cat72 eagle33

Slide 23

Slide 23 text

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.

Slide 24

Slide 24 text

10. Adding Transactions To Your Mempool ● Remember to verify transaction; stamp when completed.

Slide 25

Slide 25 text

NETWORKING

Slide 26

Slide 26 text

11. Sending Network Messages NODE A NODE B NODE C NODE D cat72 dog83

Slide 27

Slide 27 text

NODE A NODE B dog83 11. Receiving Network Messages

Slide 28

Slide 28 text

11. Receiving Network Messages NODE A NODE B dog83 cat72 3 20

Slide 29

Slide 29 text

RUNTIME

Slide 30

Slide 30 text

BLOCK BUILDING

Slide 31

Slide 31 text

12. Building our 1st block template (1) Coinbase Txn. + (3) Txn.s 7657 8500 prev. block hash tx. commitment time target nonce New Block

Slide 32

Slide 32 text

MINING

Slide 33

Slide 33 text

● 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

Slide 34

Slide 34 text

● 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.

Slide 35

Slide 35 text

● 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

Slide 36

Slide 36 text

● Use the coinbase transaction and Compact Block (“block txids”) to calculate tx commitment. 16. Validating a Block

Slide 37

Slide 37 text

● 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

Slide 38

Slide 38 text

● 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

Slide 39

Slide 39 text

BUILDING A CHAIN

Slide 40

Slide 40 text

● 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

Slide 41

Slide 41 text

SCORING

Slide 42

Slide 42 text

● NODES: Calculate balances of UTXOs that were NOT yours. 20. Scoring

Slide 43

Slide 43 text

Thank you for playing! url