0% found this document useful (0 votes)
26 views56 pages

Bitcoin Blockchain-5. Transaction Validation

Chapter 5 of the document discusses the process of transaction validation in Bitcoin and blockchain, detailing how transactions are created, signed, and validated using asymmetric cryptography. It explains the concept of Unspent Transaction Outputs (UTXO), the importance of digital signatures for ownership proof, and the role of miners in confirming transactions. The chapter also covers the technical aspects of transaction scripts and the Elliptic Curve Digital Signature Algorithm (ECDSA) used for signing transactions.

Uploaded by

mostluck
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
26 views56 pages

Bitcoin Blockchain-5. Transaction Validation

Chapter 5 of the document discusses the process of transaction validation in Bitcoin and blockchain, detailing how transactions are created, signed, and validated using asymmetric cryptography. It explains the concept of Unspent Transaction Outputs (UTXO), the importance of digital signatures for ownership proof, and the role of miners in confirming transactions. The chapter also covers the technical aspects of transaction scripts and the Elliptic Curve Digital Signature Algorithm (ECDSA) used for signing transactions.

Uploaded by

mostluck
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
Understanding the Operation of Transaction, Validation, & Mining of Bitcoin & Blockchain Ch 5. Transaction Validation Professor John Lee Elmore Family School of Electrical and Computer Engineering Purdue University, Indianapolis Transactions * The payload of a block is a collection of transactions occurring every 10 minutes = It looks as if there exists only one ledger in the world « Consider as money without predefined amount - But based on a transaction, its amount is specified 2 Eg., | have $100, and have to pay $30, and get back $70 as change + My $100 worth BTC is spent, + Receiver gets $30, + | get back with $70 - Asymmetric cryptography is used for ownership claim and verification Transactions - Atransaction is a signed section of data that is broadcast to the network and collected into blocks. « It typically references previous transaction(s) and dedicates a certain number of bitcoins from it to one or more Bitcoin addresses to be sent. ¢ Transaction itself is not encrypted = Only hash of transaction info is encrypted by the owner's private key, which is called ‘signature.’ 80 Bytes Max 1M Bytes Transactions UTXO: Unspent Transaction Output Hash TX 1 (coinbase TX) T™X2 TX (transaction) n 7 ‘The money not spent yet target, nonce, timestamp |} | | Hash value of current block eae) | 7 One Transaction (conceptual view) Hash value /\input: previous UTXO Input: previous UTXO Output - New UTXO Output - New UTXO + When this TX is confirmed, inputs will be consumed and new UTXOs will be created +The newly created UTXO can be used in future transactions *Coinbase TX is created without matching input Previous TX (sent to me) Transaction Details Current TX (lam spending) Output Corrs Teo (become UTXO) refer Input Tata Points to previous UT: My signature (key) Output Output 4: amount, feel ees ery (men) Ores eae + Output once spent = no longer valid — Make it easier to check + TX fee = Sum of inputs — sum of outputs ; + Higher fee, faster processing by miners (implied) Method of Proof of Ownership while spending Previous TX (sent to me) ATXID feMiangyy Amount (satoshis) Output eared (my address) and Pee ue) ete. ATX ID, Output index, Abstract Current TX (lam spending) Input Method of Proof of Ownership while spending Previous TX (sent to me) ATXID cue Output 0 ASG read (ee orn Pee ued ATX ID, Output index, etc. Hash & validate RIPEMD160(SHA2S6(*)) Current TX (lam spending) BTXID Input ated My signature | es Method of Proof of Ownership while spending Previous TX (sent to me) ATXID feMiangyy Amount (satoshis) Output ence (my address) and Orley ATX ID, ete. Output index, Current TX (lam spending) BTXID Input validate After Proof of Ownership, Record into Block Previous TX (sent to me) ATXID Output Output 0 cme eee Ore nu ule) Current TX (lam spending) Output Mey My Signature Ein + Peer Ps] priv Miners validate current TX and insert into ATX ID, ( Output index —(Ges) — Abstract blockchain etc. Digital signature and Validation « Sign unigue !D using private key and sends both document and signature If decryptable using sender's pub-key, it proves the sender signed using his private key It also proves that the document enclosed is original (not altered during transportation) Original « ° Original riginal “Money/TXidocument Data ‘unique 1D One-way E> ~digial Digital © decrypic: Hash Private ‘Signature Signature Bailic Key key Identical Hashes Validate Data Integrity Math behind proving the ownership of money If the encrypted hash of TX info of my money (addressed to me) can be decrypted by my pub-key, ‘my ownership of the money is proven as well as intactness of the TX info Perel Math behind proving the ownership of money The signature (private-key-encrypted message) is sent along with the message itself. * The recipient can decrypt the signature using its pub-key, compare with the message, and validate that the owner sent the message If the message or document is large, make the hash of the message/doc, and encrypt it with private key and send, which is more efficient than encrypting entire doc. = The recipient can decrypt the signature using its pub-key, compare with the hash of my document/message, and validate that the owner sent the message The wallets have (or can access) private key or seed to sign and initiate the transaction The math is used to prove that the owner of the money signed the transaction This also serves as preventing the transaction from being forged or altered after signing Meno 70171 AEA Ownership Validation Script Current TX (Iam spending) Previous TX OR Wa eo) PRE ules) My Signature: Input Owner's scriptSig freer | Sut || ater |) ow Output [Sender's scriptPubKey [ Amount ]| oP_oup || oP_Hashteo oP EQUALVERIFY || CHEOKSIG | 13 Format of Transaction : scriptPubKey The sender's pub-key hash and specific validation method the receiver must perform (a puzzle the receiver must solve ) Previous TX output Example Output Paying A Pubkey Script Transaction Output 0 0 (Implied) Current TX input Transaction Signature Identifier Script Example Input Spending The Example Output ‘Transaction Overview Of Transaction Spending scriptSig (receiver's key) Receiver's pub-key and 5 ae signature: a solution to Term Script is used as it is the specified validation simple operation/program imiethod used to validate the ownership Bob is initiating a new transaction to Alice Bob's pub-key hash and validation method (scriptPubKey, puzzle) Previous transaction Hobe Computer: Transaction 1 (TX 1) TX2 Template TXID ‘Output Index Number Private Key Pubkey Script }] Amount i - New transaction ‘Transaction 2%, xp |] outputindex Number |] Fun! Bablie Key ae Aq hs ‘Some Of The Data Sigatg Hy Degadie --22" Contents included sciepiiteriaet p in the signature ‘and validation method (ie, TX info) (sortPubkey, the puzze) 15 Ownership Validation Script Previous Transaction Input Output Sender's scriptPubKey OP_DUP OP_HASH160 a | OP_EQUALVERIFY CHECKSIG DI V New Transaction Input Owner's scriptSig Validation of Ownership Receiver's pub-key hash and validation method (the puzzle) Keys to prove Current TX ownership (sender) Key Key2 (OP_EQUALVERIFY Pohecking Key2 ’ v [eeraasHtes Pk Hast oP_ouP |» _-_ Hash Pk Hash OP_CHECKSIG hecking Key1 oal> C2 @22® 2 ® O= Evaluation Stack Over Tine During Succestul P2PKH Script Validation Decrypt Key1 Check if same as the hash of TX info 17 (Stack) Signature Scripts (the Key to Puzzle) + In order for the network to validate and relay your transaction, you have to prove you have the private key; but you cannot show your private key! ¢ You do this by providing the Signature Script or scriptSig containing ° Your unhashed public key ° Asecp256k1 signature of selective transaction data + The Tx ID & output index of the input + Previous Tx’s scriptPubKey + Current outputs scriptPubKey + The value of the transaction + All these encrypted by your private key « The signed transaction is then sent to the network for relaying 18 Digital Signature * consists of two parts ° Arandom part, r + Let k an ephemeral (temporary) key (just random number) * r =x, mod n where ephemeral pub-key (x,,y;) = k* G mod p + Gis generator point in EC + pisa prime number ° Asignature part, s + encrypted value of the hash of transaction information How to spend an input When you create a transaction, you transfer control of your money to the owner of the hashed public key “Whomever has the private key that matches the public key that matches the hash+enc of the public key (i.e., the Address) can spend these coins” These instructions are embedded in the transaction in a field called scriptPubKey (pub-key hash and validation method; the puzzle) looks a bit like this: ° 76A9149260C8E4924720B040F20B00D7F78COFOFDBA3C288AC © This is code + data Control via Cryptography — When someone sends you coins, they publicly place them under the control of your public/private key pair = If you can prove that you have the matching private key, then the coin is under your control > Transactions are programmable — Each transaction contains a program that specifies conditions that must be met in order to spend the coins 2 a (Pay-to-PubkeyHash) transaction + Most common type of transaction Pay-to-PubkeyHash transaction t Input ‘scriptPubKey The keys to prove ownership (sender) |] OP_DUP OP_HASHT60 OP_EQUALVERIFY or creck | Receiver's pub-key hash and validation method (the puzzle) Output scriptSig a (Pay-to-PubkeyHash) transaction Owner's DER-encoded ECDSA signature over ahash of a simplified version of the transaction Input: Previous tx: F5d8ee39a430901¢91a5917b9F2dc19déd1iage9cea2e5be0s: 104470b9a6 Index: @ scriptSig: owner's signature and public key: input to the script 30450221008840142d86652a3f47ba4746ec719bbfbde4ea57@b1deccbb6498c75c4ae24cbO2 204b9F039F FO8dFe9c be9 F6addac960298cad530a863ea8F53982c09db8f6e381301 0484ecc8d46F1918b30928f aGe4ed99 F16a8fb4fdeG735e7ade8416ab9Fe423cC54123363767 89d172787ec 3457eee41 c04F4938de5cc17b4alGfa336a8d752adF output: ‘owner's full pub-key (L,0x04,Key,,Keyy) Value: 5000000000 (in satoshis) scriptPubKey: OP_DUP OP_HASH16@ Seiad raiieme aan cee nanan OP_EQUALVERIFY OP_CHECKSIG the script (code and data (pub-key hash)) hash of the recipient's pub-key (before Base58), ie., RIPEMD-160(SHA256(PubKey of receiver)) ios thu combiccboskisonbedllosecond elonhOs sridoctchash tines scriptSig (the Key) in Input - My signature and public key used to prove the ownership of the money sent to me scriptSig 4155 Sam Hao un raRarsnlsanan emnmereneanemensian ie aictsies eineiatatdalaeatataoiat beat Signature Pub-key Signature in scriptSig of Input + About 70 bytes long - ECDSA signature that encrypts the hash of transaction info by using my private key ae aes (ef ussnoprmorzmsansnosci7s fscicansaaroarinisooenecaeasensnooseeise27070] , s onmmirr | (random part) ns ‘@ { (signature part) sunrreda ‘The R coordinate, as a big-endian integer is 62f36c5cd1f9fde7adb379072270bEcbef48d41308c5cb2735781a22ca800b The S coordinate, as a big-endian integer is 75004c401152376F3FT1aatSd30390ac29686d030023356543643221007609e ‘nies ava athub io/2017/05/1 1/7 daystalic him 25 ECDSA Private and Public Key Generation + Elliptic Curve Digital Signature Algorithm ECDSA Key Algorith ar eaere, Random Domain Parameters 7 i Number PUBLIC PRIVATE KEY KEY QQ%y) qd ECDSA Signing + Elliptic Curve Digital Signature Algorithm TX info Hash him) Message Digest PRIVATE ECDSA Signature Algorithm ] ~__| Random KEY Number a Domain Parameters oy temporal private DIGITAL SIGNATURE key ts} ‘hitowwww eone co krinews/amticleView nimiridno=47219 27 Bitcoin’s Transaction Signing Algorithm: ECDSA « Elliptic Curve Digital Signature Algorithm ° Q=deG + dis the signing private key + Gis a base pointer of ECC curve + Qis public key = s=k1(Hash(m) + d-r) mod n // modular multiplicative inverse * sis Signature * k is ephemeral (temporary) key (just random number) * r =x, mod n where ephemeral pub-key (x,,y;) = k * G mod p mis transaction info nis the order (the total number of possible points) of G * pis the prime modulus of the elliptic curve + Hash: SHA-256 * * ECC multiplication (elliptic curve scalar multiplication) * + scalar multiplication [Both rand s are sent] Modular mutipicaive inverse: ips www geekstorgeeks or/mulipicativesnverse-under-modulo-m/ hitouwww epnc co hr/news/aricieView himiridxno=47219 28 Signature Validation Transaction info Hash him) Message Digest PUBLIC ECDSA Verification Algorithm ie a eT DIGITAL SIGNATURE ts} hitouwww epnc co brinewslaricieView himiridxno=47219 29 Signature Validation w=s-'modp // modular multiplicative inverse u, = (Hash(m) « w) mod p 7/* normal multiplication u, = (r+ w) mod p 4/* normal multiplication (X2,Y2) = (U, * G + Up * Q)) mod p If x, == r (or r = x, mod p), pass “/* ECC scalar multiplication hftouwww epnc co hr/news/aricieView himiridxno=47219 30 ECDSA Signature Elliptic Curve Digital Signature Algorithm used by the script functions OP_CHECKSIG, OP_CHECKSIGVERIFY, OP_CHECKMULTISIG, and OP_CHECKMULTISIGVERIFY It encrypts transaction info by using my private key The signer decides what to put in ° Refer to Signature Hash Types (SIGHASH) + https:[Link]/bitcoinbook/bitcoinbook/blob/second_editionich06.asclidocisighash_types » See next slide 3t SIGHASH types Description and their meanings Signature applies to all inputs and outputs Signature applies to all inputs, none of the outputs Signature applies to all inputs but only the one output with the same | index number as the signed input SIGHASH flag _ Value ALL 0x01 NONE 0x02 SINGLE 0x03 ALL| ANYONECANPAY 0x81 NONE|ANYONECANPAY = 0x82 SINGLE|ANYONECANPAY 0x83 _all outputs Signature applies to one inputs and Signature applies to one inputs, none _of the outputs Signature applies to one input and the output with the same index number ios thu combiccboskiccnbodlasecond edtonhOs sridoctchash toes 32 DER-encoded ECDSA signature (DER: Distinguished Encoding Rules, Serialization of signatures) 3045022100884d142d86652a3f47ba4746ec7 1 9bbfbd040a570b1deccbb6 498c75c4ae24cb0 2204 b9f039ff08df09cbe9f6addac960298cad530a863ea 8f53982c09db8f6e381301 0x30: indicating the start of a DER sequence 0x45: the length of the sequence (69 bytes) 0x02: an integer value follows 0x21: the length of the integer (33 bytes) R: 00884d142d86652a3f47ba4746ec7 1 9bbfbd040a570b1deccbb6498c75c4ae24cb 0x02: another integer follows 0x20: the length of the integer (32 bytes) S: 4b9f039f08df09cbeof6addac960298cad530a863ea8153982c09db8f6e3813 Asuffix (0x01) indicating the type of hash used (SIGHASH_ALL) nips th combconboskibicinbockabisecond ection h0S asciactighash tpes 33 Tx-input scriptSig (DER-signature + pub-key) PUSHDATA 47 47 sequence 30 length 44 integer 02 THe DER- length 20 encoded R 2c b2 65 bf 10 70 7b f4 93 46 c3 51 5d d3 di 6F ECDSA c4 54 61 8c 58 ec Oa Of F4 48 a6 76 c5 4f f7 13 signature integer 2 ci length 20 ‘6c 66 24 d7 62 al fc ef 46 18 28 4e ad 8f 08 67 = ‘8a cO Sb 13 c8 42 35 f1 65 4e 6a d1 68 23 3e 82 | SIGHASH ALL _@1 a | | PUSHDATA 41 41 | type 04 a | x 44 e3 @1 b2 32 8f 17 44 2c @b 83 10 d7 87 bf 3d public key 8a 40 4c fb d® 70 4f 13 Sb 6a d4 b2 d3 ee 75 13 | | | np: righto com/2014/02/bicoins-hard-vay-using-rawbitcoin him! 34 scriptPubKey « Tx-output script Receiver’s pub-key hash and validation method (the puzzle) (OP_DUP OP_HASHI60 03107 1201e0327055c04026073106I3000 1a21a OP_EGUALVERFY OP CHECKSC 4h3107 112cic0327¢550c402607310613e9e1a214 Lt RTT store next 20 bytes on the stack "iF —— BLAM 070,738 | To nt opcode bess ta obo Coron OF 38 cpp pushed onto the stack, # FARR Oxts + | em—tsepeom, SPIE amo sie) opcode vam —4F PHO RE A eave: 0xa9,8481tH0pc0% Saye misem oor ene nites Jbaya github io/2017/05/11/7daystalk htm! 35 scriptPubKey « Tx-output script « Receiver’s pub-key hash and validation method (the puzzle) ‘oP_puP 76 OP_HASH16@ a9. PUSHDATA 14 14 public key hash c8 e9 @9 96 c7 c6 @8 Ge e@ 62 84 60 Ac 68 4e d9 04 di 4c 5c OP_EQUALVERIFY 88 NN OP_CHECKSIG ac 7 RIPEMD160(SHA256(pub-key)) Combined scriptSig and scriptPubKey version (01 20 00 00 input count en - previous output 48 4d 40 d4 Sb 9e a0 dé 52 fc a8 25 8a b7 ca a4 hash (reversed) 25 41 eb 52 97 58 57 f9 6f b5 @c d7 32 cB b4 81 | previous output index @@ 08 02 28 (0 means first outpu script length 8a a la7 30 44 02 20 2c b2 65 bf 10 70 7b f4 93 46 c3 Input scriptsig 51 5d [Link] 6f) c4)54 61) 8c) 58\ec Ga OF F4 48 a6 (wey t0| (the key torthe 76 €5 4F-f7 13 @2 20 6c\66! 28-d7 62 a1 fe ef 46 izes) piaciae 18 28 4e ad 8f 08 67 Ba cO Sb 13 cB 42 35 fi 65 puzzle; sce slide 42 68 41 68 23 3e 82 01 41 04 14 €3 O1 b2 32 BF 24, scraptSig in 117 44 2c @b 83 10 d7 87 bf 3d 8a 40 4c fb dO 70 ess laf 13 5b 6a d&ob2 [d3\del 75 13,4@nty 81 92 Ge 53 a6 e8 c3 9b d7 d3 fe fd 57 6c 54 3€ ce 49 3c ba | c@ 63 88 £2 65 1d 1a ac bf cd ae sequence ff FF FF FF (lock tin | output count @ value (amount) 62 64 @1 0 00 20 20 00 eucpue script length ato (receiver |g puzzle) ScTiptPubkey 76 a9 14 cB €9 09 96 c7 c6 O8 Ge 00 62 84 60 Oc (the puzzle) 68 4e d9 04 di 4c Sc 88 ac block lock time 20 00 00 00 http JAvwow righto com/2014/02/bitcoins hard-way-using-raw-bitcoin htm! Various Input & Output Types OUTPUTS I Jes) sioseript [va] /e Jez] ruscrine vz) Pescripe INPUTS, A Transaction y é & y Re? # maf Eieaad Scripts and DER encoding both use bg-endian values al other serialzations yk litie-endlan To use ir i - previously charpehech eect SeriptPubKey mining reward mined money when ran out nonce to a miner Bitcoin Script Language » 117 Opcodes = 1 byte ° some disabled = some placeholders (delimiter) « No loops 2 Why? » What if a malicious user insert an infinite loop? - Not turing-complete, intentionally 39 How Bitcoin Script Language Works? Stack starts empty scriptSig is stacked scriptPubKey is executed If top of stack is true (non-zero?) then the transaction is valid 40 ScriptPubKey Is A Mini-Program scriptPubKey defines who can spend the coin by specifying a small verification program that is run in order to perform that verification 40 bytes of instructions Forth like scripting language, deliberately not turing complete Elements are pushed onto a stack, if the end of the stack is true then the Transaction is valid and works a ScriptPubKey Is A Mini-Program « You can get quite clever with it Multi-signatures required where m of n are required Verifications that don’t need private keys Time bound, escrow services The beginning of smart contracts Deliberately make coins unspendable Make anybody to spend (free money called airdrop!) a Execution of Bitcoin Script Language Ee ass Me ee ed Ree er Mer ancod SE rs ero Rees Meg cat acog Sees Me od Oe re so eat co Transaction valid !!! 43 Owner validation pseudocode (scriptPubKey) encrypted TX-info- hash by owner's private key owner's public key function validate(signature, publickey) { return Included hash hash(publickey) == “43b46ef2e61a3d6a725fe70fe2b3adaadbca7348” && decrypt(signature, publickey) == hash(inputTransactionInfo()) 44 Execution of Bitcoin Script (Opcodes) « Below is a form of Pay-to-Public-Key-Hash (P2PKH) + From previous transaction [scriptPubKey]: [OP_DUP OP_HASH160 hash OP_EQUALVERIFY OP_CHECKSIG] Current transaction [scriptSig]: [sig pubkey] * sig, pubkey are pushed, the pubkey is duplicated, the new one converted to it's hash, confirmed to match the enclosed hash, and the hashes removed then. * sig pubkey OP_CHECKSIG Opcodes (Instructions) of Bitcoin + [ob zRUE /(OF_i| (0x51) and [oF_2) through [oP_16) (0x62-0x60), which push the values 1 through 16 to the stack. ‘* (0b _CHECKSI¢) consumes a signature and a full public key, and pushes true onto the stack if the transaction data specified by the SIGHASH flag was converted into the signature using the same ECDSA private key that generated the public key. Otherwise, it pushes false onto the stack. + [oP_nuP| pushes a copy of the topmost stack item on to the stack ‘+ [oP HASHI6O) consumes the topmost item on the stack, computes the RIPEMD 160(SHA256()) hash of that item, and pushes that hash onto the stack. ‘+ [oP_EavaD consumes the top two items on the stack, compares them, and pushes true onto the stack if they are the same, false if not + [op_veRzPY| consumes the topmost item on the stack. If that item is zero (false) it terminates the script in failure. (op_Eouanverrry| runs [op_zouas) and then {op_vERrFY) in sequence. ** [op_cecmwozrzsr6| consumes the value (n) at the top of the stack, consumes that many of the next stack levels (public keys), consumes the value (m) now at the top of the stack, and consumes that many of the next values (signatures) plus one extra value [Link] 8ee7844a23ff1d7320a88cSfdb2ade2 BITCOIN TRANSACTION 5a4ebf66822b0b2d56bd9dc64eceObc38ee7844a236ff1d7320a88cSfdb2ad3e2 TxValue 50. arc Confirmations 423,789 CONFIRMATIONS: Fee Information EE EEE Block £0000 CE Block time Thursday, September 16th 2010, 93:47 0400 INPUTS Te ut ere © UBSCVFEVMEQ)FZytnbpLoCTOEAVbeDG Ga.°°000°9 INPUT SCRIPTS 304502206e21798042{ae0¢854281abd38bacd 1 aced3ee373849e1446618857161090d 'b022100e2ac98064300b82 OP_CHECKSIG € ScriptSig= MultiSig » Using multiple signatures for security or escrow reasons « Pay-to-Script-Hash (P2SH) » Has same functionality as Multi-signature but decreases size of script ° Bech32 = starts with “be1", fewer characters, case-insensitive, 2 direct SegWit support (not via P2SH); replace-by-fee default selected MultiSig 2-of-3 Script Previous transaction Output Sender's scriptPubKey CHECKMULTISIG =) Get) Const) eed) Current transaction Input Owners’ scriptSig OS - O1Ok: Output Other Methods of payments » Pay-to-Script-Hash (P2SH) ° Has same functionality as multi-signature but decreases size of script Locking Script 2 PubKey1 PubKey2 PubKeyg P CHECKMULTISIG Unlocking Script Redeem Script Sigi Sig2 2 PubKey1 PubKey2 PubKey3 | CHECKMULTISIG Locking Script Unlocking Script Sigi Sig2 + Further <20-byte hash of redeem script> can be using Base58Check- encoded to generate a bitcoin address, which makes payment invocation a lot easier. 52 Details of a Transaction(TX) « Principle example of a transaction q 2 Previous ex: #5dsee39q450901e91a5017H9¢2de1Sdédiadesoea205H003ea7Sdd04470b986 Index: 0 ScriptSig: 304502206e21798a42fae0e85428 LabdStbacdlacedsee3 738090144661 8c4571d10 90db022100e2ac980643bObS2c0eseffdfecéb64e3e6ba35e7baSfdd7dsdécced2Sc6b241501 Key Output: Value: 5000000000 scriptPubKey: OP_DUP OP_HASHi60 404371705fa9bd789a2fcd52d2cSe0besdss549d (OP_E(RIALYEBIFY OP CHECKSIG Receiver's pub-key hash and validation method « An input is a reference to the output of a different transaction. Previous TX is the pointer to (hash value of) the transaction from which the bitcoin Value will be transferred. Script is a set of instructions for the receiver to follow in order to be able to spend the Bitcoins. 53 Validation of Ownership TX info input transaction to: public key hash dation script credentials claim: public = claim: private key ips medium [Link] backhand buiding blocks S350e77 54 Transaction e59f1... ‘Transaction ddcce. Transaction ea9d4. ‘credentials for key c93e4, it 62ba4 Transaction Summary #| Assets Assignments 4| Amount in bitcoin 2 Amount in bitcoins | Address

You might also like