-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
new courseAdd a new course with several modules and resourcesAdd a new course with several modules and resources
Description
Course Title: Build and broadcast your own Bitcoin transaction
Modules:
- Introduction to Bitcoin Transactions
- Understanding Transaction Structure
- Parsing Transaction Inputs
- Parsing Transaction Outputs
- Parsing Bitcoin Scripts
- Constructing a Simple Transaction
- Transaction Signing
- Broadcasting a Transaction
- Advanced Transaction Types
1. Introduction to Bitcoin Transactions
- Objective: Provide a foundational understanding of Bitcoin transactions.
- Topics:
[x] What is a Bitcoin transaction?
[x] UTXO (Unspent Transaction Output) model.
[x] Transaction inputs and outputs.
[x] Transaction IDs and Hashing. - Resources
[x] https://learnmeabitcoin.com/technical/transaction/#structure
[x] https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch06_transactions.adoc#transactions - Exercise: Create a simple visualization of a Bitcoin transaction, showing inputs, outputs, and the UTXO model.
2. Understanding Transaction Structure
- Objective: Dive deeper into the structure of a Bitcoin transaction.
- Topics:
[x] Detailed breakdown of a transaction: Version, Inputs, Outputs, Locktime.
[x]The role of scripts: ScriptSig and ScriptPubKey.
[x] How transaction data is serialized. - Resources
[x] https://learnmeabitcoin.com/technical/transaction/#structure - Exercise: Write a parser in your preferred programming language that reads and outputs the basic structure of a raw Bitcoin transaction (Version, Inputs, Outputs, Locktime).
3. Parsing Transaction Inputs
- Objective: Focus on the details of transaction inputs.
- Topics:
[x] Structure of a transaction input.
[x] Previous transaction hash, output index, scriptSig, sequence.
[x] How inputs reference UTXOs. - Resources
[x] https://learnmeabitcoin.com/technical/transaction/input/
[x] https://learnmeabitcoin.com/technical/transaction/input/scriptsig/ - Exercise: Extend your parser to extract and display detailed information about each input in a transaction.
4. Parsing Transaction Outputs
- Objective: Focus on the details of transaction outputs.
- Topics:
[x] Structure of a transaction output.
[x] Value and scriptPubKey.
[x] Understanding P2PKH (Pay-to-PubKey-Hash) and other output types. - Resources
[x] https://komodoplatform.com/en/academy/bitcoin-script/ - Exercise: Extend your parser to extract and display detailed information about each output in a transaction.
5. Understanding Bitcoin Scripts
- Objective: Introduce students to Bitcoin's scripting language.
- Topics:
[x] What is Bitcoin Script?
[x] Commonly used opcodes.
[x] How scripts are used in locking and unlocking transactions. - Resources
[x] https://wiki.bitcoinsv.io/index.php/Opcodes_used_in_Bitcoin_Script
[x] https://komodoplatform.com/en/academy/bitcoin-script/ - Exercise: Extend your parser to have a simple script parser that can identify and parse common script types (e.g., P2PKH).
6. Constructing a Simple Transaction
- Objective: Guide students through creating a Bitcoin transaction.
- Topics:
[x] Selecting UTXOs to spend.
[x] Creating inputs and outputs.
[x] Signing the transaction.
[x] Serializing the transaction. - Resources
[x] https://www.ssldragon.com/blog/sha-256-algorithm/ - Exercise: Extend your code to construct a simple Bitcoin transaction from scratch using the parsed data from the previous exercises.
7. Transaction Signing
- Objective: Understand how Bitcoin transactions are signed.
- Topics:
[x] Private keys and digital signatures.
[x] How signatures are used to validate inputs.
[x] Creating a valid transaction signature. - Exercise: Extend your code to implement transaction signing and verify the signature against the input script.
8. Broadcasting a Transaction
- Objective: Learn how to broadcast a Bitcoin transaction to the network.
- Topics:
[x] How transactions propagate through the Bitcoin network.
[x] Tools and APIs for broadcasting transactions.
[x] Exercise: Broadcast the transaction created in the previous exercise using a testnet or local Bitcoin node.
9. Advanced Transaction Types
- Objective: Explore more complex Bitcoin transaction types.
- Topics:
[x] Multi-signature transactions.
[x] P2SH (Pay-to-Script-Hash) transactions.
[x] Segregated Witness (SegWit) transactions. - Exercise: Write code to construct and parse one of these advanced transaction types.
Metadata
Metadata
Assignees
Labels
new courseAdd a new course with several modules and resourcesAdd a new course with several modules and resources