diff --git a/ch05.asciidoc b/ch05.asciidoc index ce66bdfa..ee1dc9e9 100644 --- a/ch05.asciidoc +++ b/ch05.asciidoc @@ -1,17 +1,70 @@ == Chapter 5 - Transactions === Introduction -=== ScriptPubKey and ScriptSig + +=== 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"] -=== Transaction Script Language -=== Stack-Based Script Evaluation -=== Common Transaction Scripts - -==== Pay to Public Key Hash - +=== 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"] @@ -20,8 +73,14 @@ image::images/Tx_Script_P2PubKeyHash_1.png["Tx_Script_P2PubKeyHash_1"] .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 -=== Complex Transaction Scripts -=== P2SH Scripts -=== Multi-Signature Scripts -=== Transaction Malleability \ No newline at end of file +=== Scripts and Signatures +==== Elliptic Curve Digital Signature Algorithm +===== Signing with the Private Key +===== Validating a Digital Signature +==== Types of Signature Hashes + +=== Transaction Malleability