+-------------------------------------------------------------+ | Bitcoin Blockchain | +-------------------------------------------------------------+ /$$$$$ /$$$$$$ /$$ /$$ /$$$$$$$$ /$$$$$$$ |__ $$ /$$__ $$| $$ /$$/| $$_____/| $$__ $$ | $$| $$ \ $$| $$ /$$/ | $$ | $$ \ $$ | $$| $$ | $$| $$$$$/ | $$$$$ | $$$$$$$/ /$$ | $$| $$ | $$| $$ $$ | $$__/ | $$__ $$ | $$ | $$| $$ | $$| $$\ $$ | $$ | $$ \ $$ | $$$$$$/| $$$$$$/| $$ \ $$| $$$$$$$$| $$ | $$ \______/ \______/ |__/ \__/|________/|__/ |__/ | V +-------------------------------------------------------------+ | Genesis Transaction (P2SH) | +-------------------------------------------------------------+ | - Locks initial funding UTXO | | - Deploys minting rules and script for validation | | - Creates genesis UTXO for future minting | +-------------------------------------------------------------+ | | V +-------------------------------------------------------------+ | Minting Transactions (P2SH) | +-------------------------------------------------------------+ | - Validates user request with provided minting data | | - Ensures supply does not exceed max limit | | - Creates child minting UTXOs for parallel minting | | (Concurrency management using multiple UTXOs) | +-------------------------------------------------------------+ | | | | V V +--------------------------+ +--------------------------+ | Minting UTXO (child) 1 | | Minting UTXO (child) 2 | | - Tokens minted: X | | - Tokens minted: Y | | - Linked to genesis UTXO | | - Linked to genesis UTXO | +--------------------------+ +--------------------------+ | | | | V V +-------------------------------------------------------------+ | Transfer Transactions (P2SH) | +-------------------------------------------------------------+ | - Validates user balance and minting conditions | | - Ensures no double spending | | - Creates new UTXO for the receiving user | +-------------------------------------------------------------+ | | V V +--------------------------+ +--------------------------+ | Transfer UTXO (to user A)| | Transfer UTXO (to user B)| | - Tokens transferred: X | | - Tokens transferred: Y | | - Linked to minting UTXO | | - Linked to minting UTXO | +--------------------------+ +--------------------------+ +-------------------------------------------------------------+ | State Register | +-------------------------------------------------------------+ | - Tracks total token supply | | - Monitors all UTXOs linked to genesis transaction | | - Ensures no excess minting or double spending | +-------------------------------------------------------------+ +-------------------------------------------------------------+ | Functional Flow for Token System | +-------------------------------------------------------------+ | 1. Genesis Transaction (Deployment) | | - A P2SH script is deployed by the contract owner | | - The genesis transaction creates an initial UTXO that | | governs all minting | | - The script includes the rules for minting and | | validation logic | | | | 2. Minting Transactions | | - Users submit minting requests with the required data | | - The script checks if the current supply is within | | the maximum supply limit | | - If valid, a minting UTXO is created for the user, | | allowing parallel minting (concurrency via multiple | | child UTXOs) | | | | 3. Transfer Transactions | | - Users transfer tokens by submitting a transfer request | | - The script verifies balance and ownership | | - Once verified, tokens are transferred, and a new UTXO | | is created for the receiver | | | | 4. State Register | | - The state register tracks the total supply and all | | active UTXOs, preventing double minting or spending | +-------------------------------------------------------------+ +-------------------------------------------------------------+ | Wallet Generation (P2PKH) and P2SH Logic | +-------------------------------------------------------------+ | - The deployer generates a P2PKH wallet for managing funds | | - The P2PKH address is locked into the P2SH contract | | - The deployer controls the genesis transaction and minting | +-------------------------------------------------------------+