== Chapter 5 - Transactions === Introduction === Transactions and the Blockchain ==== Transaction Lifecycle ===== Creating Transactions ===== Broadcasting Transactions ===== Validating and Propagating Transactions ===== Mining Transactions into Blocks ==== Transaction Fees ==== Transaction Validation ===== Validation Limits ==== Transaction Locktime ==== Transaction Irrevocability ==== Transaction Self-Sufficiency === Transaction Structure === Transaction Outputs and Inputs [TIP] ==== Outputs come first, chicken and egg. ==== ==== Transaction Outputs ===== Spending Conditions (Encumbrances) ===== Unspent Transaction Outputs (UTXO) [TIP] ==== The are no accounts or balances in bitcoin, only UTXO. ==== ==== Transaction Inputs ===== Spending the Transaction Outputs ===== Unlocking the Conditions (Encumbrance Satisfaction) ==== Transaction Fees === Standard Transactions ==== Pay to Public Key Hash (P2PKH) ==== Simple Pubkey ==== Mutli-Signature ==== Data Injection (OP_RETURN) ==== Pay to Script Hash (P2SH) ===== Redeem Script and isStandard Validation === Non-Standard Transactions === Transaction Scripts and Script Language ==== Scripting Language ==== Turing Incompleteness ==== Stateless Verification ==== Transaction Script Operands ==== Script Construction (Lock + Unlock) [[scriptSig and scriptPubKey]] .Combining scriptSig and scriptPubKey to evaluate a transaction script image::images/scriptSig_and_scriptPubKey.png["scriptSig_and_scriptPubKey"] === Standard Transaction Scripts ==== Pay to Public Key Hash Script Example [[P2PubKHash1]] .Evaluating a script for a Pay-to-Public-Key-Hash transaction (Part 1 of 2) image::images/Tx_Script_P2PubKeyHash_1.png["Tx_Script_P2PubKeyHash_1"] [[P2PubKHash2]] .Evaluating a script for a Pay-to-Public-Key-Hash transaction (Part 2 of 2) image::images/Tx_Script_P2PubKeyHash_2.png["Tx_Script_P2PubKeyHash_2"] ==== Pubkey Script Example ==== Multi-Signature Scripts Example ==== P2SH Script Example === Scripts and Signatures ==== Elliptic Curve Digital Signature Algorithm ===== Signing with the Private Key ===== Validating a Digital Signature ==== Types of Signature Hashes === Transaction Malleability