Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bitcoin Transaction Scripting Andy Ofiesh Senior Software Engineer Armory Technologies, Inc. MIT Bitcoin Expo, May 3rd, 2014 © Armory Technologies, Inc.

Similar presentations


Presentation on theme: "Bitcoin Transaction Scripting Andy Ofiesh Senior Software Engineer Armory Technologies, Inc. MIT Bitcoin Expo, May 3rd, 2014 © Armory Technologies, Inc."— Presentation transcript:

1 Bitcoin Transaction Scripting Andy Ofiesh Senior Software Engineer Armory Technologies, Inc. MIT Bitcoin Expo, May 3rd, 2014 © Armory Technologies, Inc. 2014

2 Who am I? What have I done? What am I doing? © Armory Technologies, Inc. 2014

3 What is a Transaction? The Block chain has a list of Blocks A Block has a list Transactions (Tx) A Transaction has a list of Transaction Inputs (TxIn) and TransactionOutputs (TxOut) Each TxIn has a corresponding TxOut that it Spends. Some TxOuts are Unspent © Armory Technologies, Inc. 2014

4 What is a Transaction Script? Transaction Scripts come in two parts. A TxOut Script gives the puzzle that must be solved in order to spend a TxOut. A TxIn Script (SigScript) gives the solution to a TxOut Script’s puzzle. The two parts of the transaction script are executed when you try to spend a TxOut. 1 st execute your spending TxIn’s SigScript, then the spent TxOut’s Script. If there is no failure and the top of the stack is non-zero, then spending the TxOut is allowed. © Armory Technologies, Inc. 2014

5 Transaction Scripting Language Bitcoin is not just a value transfer system. It is a programmable money system. Many types of contracts and escrow are possible. https://en.bitcoin.it/wiki/Contracts https://en.bitcoin.it/wiki/Contracts Stack-Based (Forth-like) Not Turing-Complete (No loops) Language reference: https://en.bitcoin.it/wiki/Script https://en.bitcoin.it/wiki/Script © Armory Technologies, Inc. 2014

6 Standard Transaction Scripts There 4 different Standard Transaction Types – Pay to Public Key (P2PK, generally used for mined Bitcoins) – Pay to Public Key Hash (P2PKH) – Multi-Signature M-of-N (MultiSig) – Pay to Script Hash (P2SH) © Armory Technologies, Inc. 2014

7 Non-Standard Transaction Scripts There are many valid scripts that are not standard. Most miners only mine standard scripts, but a few will mine non-standard scripts by request. Most Bitcoin nodes won’t even forward non-standard transactions to peers. Putting a non-standard transaction into a P2SH TxOut script makes the TxOut standard – Spending this TxOut is still non-standard, but that’s the receiver’s problem Testnet considers all scripts standard. – Great for testing and bitcoin puzzles © Armory Technologies, Inc. 2014

8 Tools Block Chain Info Bitcoin Armory Application Armory Python Scripting Tools – https://bitcoinarmory.com/developers/python-scripting/ https://bitcoinarmory.com/developers/python-scripting/ BitcoinD Command Line BitcoinJ – https://code.google.com/p/bitcoinj/ https://code.google.com/p/bitcoinj/ Jeff Garzik’s – python-bitcoinlib – https://bitcointalk.org/index.php?topic=150436.0 https://bitcointalk.org/index.php?topic=150436.0 © Armory Technologies, Inc. 2014

9 Pay to Public Key Hash Example © Armory Technologies, Inc. 2014 TxOut Script - 76 a9 14 9fde...4abe 88 ac TxIn Script - 49 3046...b101 41 04c8...eb79 OP_DUPOP_HASH160Push 20 Public Key Hash OP_EQUALVERIFY OP_CHECKSIG Push ~73 bytes – DER Encoded Signature Push 65 (or 33) bytes – Public Key Signature Public Key Signature Public Key Signature Public Key Pub Key Hash Signature Public Key Pub Key Hash Signature Public Key OP_TRUE

10 Multi Signature © Armory Technologies, Inc. 2014 TxOut Script - 52 41 041...6c84 41 04db...8751 41 043b...d649 53 ae TxIn Script - 00 48 3045...9c01 49 3046...e601 OP_2Push 65 (or 33) bytes – Public Key (times 3) OP_3 OP_CHECKMULTISIG Push ~73 bytes – DER Encoded Signature (times 2) OP_FALSE Signature OP_TRUE OP_FALSE Signature OP_FALSE OP_2 Signature OP_FALSE OP_2 Pub Key Hash OP_3 Signature OP_FALSE OP_2 Pub Key Hash

11 Pay to Script Hash Example © Armory Technologies, Inc. 2014 TxOut Script - a9 14 1451...dbc0 87 OP_HASH160Push 20 Public Key Hash OP_EQUAL Signature Serialized Script Script Hash TxIn Script - 48 3045...9c01 49 3046...e601 4c c9 5241...53ae Push ~73 bytes – DER Encoded Signature (times 2) Push 201 bytes - Serialized Script Signature Serialized Script Signature OP_TRUE Serialized Script Signature Script Hash Serialized Script Signature Script Hash

12 MIT Expo Bitcoin Puzzles by Armory 1 Bitcoin Treasure Hunt – Get Handout – https://blockchain.info/tx/6804a732fe2ca7a653b2a30580d2f035750114e02d5e1841512274b1eb45008a https://blockchain.info/tx/6804a732fe2ca7a653b2a30580d2f035750114e02d5e1841512274b1eb45008a Total of 1 Bitcoin can be collected by solving all of these on Testnet: –http://blockexplorer.com/testnet/tx/4ad79d6373431defd0de6459368f7e295d674aa316293fc4a0b249567fb0f889http://blockexplorer.com/testnet/tx/4ad79d6373431defd0de6459368f7e295d674aa316293fc4a0b249567fb0f889 –http://blockexplorer.com/testnet/tx/c5c6b5582ff9d572296e7af3d6821f103f88386ee9f77ffae78c2db45816b80ehttp://blockexplorer.com/testnet/tx/c5c6b5582ff9d572296e7af3d6821f103f88386ee9f77ffae78c2db45816b80e –http://blockexplorer.com/testnet/tx/fb6839158e862a660d7d37cc1437805bbd4ad81d00fae28b9f58c72393c8a166http://blockexplorer.com/testnet/tx/fb6839158e862a660d7d37cc1437805bbd4ad81d00fae28b9f58c72393c8a166 –http://blockexplorer.com/testnet/tx/e83e207c0400df52785c2999785b25ea65f5e6ca5643caa6347f62d715b85777http://blockexplorer.com/testnet/tx/e83e207c0400df52785c2999785b25ea65f5e6ca5643caa6347f62d715b85777 –http://blockexplorer.com/testnet/tx/2d931ffc545e9e42612d38cd6a8aa013256c9dedad3bc069336f9f6347abbd80http://blockexplorer.com/testnet/tx/2d931ffc545e9e42612d38cd6a8aa013256c9dedad3bc069336f9f6347abbd80 For helpful links and other resources visit: https://bitcoinarmory.com/developers/mit-expo/ https://bitcoinarmory.com/developers/mit-expo/ For questions and to submit Testnet solutions send email to mitexpo@bitcoinarmory.com mitexpo@bitcoinarmory.com © Armory Technologies, Inc. 2014


Download ppt "Bitcoin Transaction Scripting Andy Ofiesh Senior Software Engineer Armory Technologies, Inc. MIT Bitcoin Expo, May 3rd, 2014 © Armory Technologies, Inc."

Similar presentations


Ads by Google