Definition of Bitcoin transaction

A transfer of bitcoins from one Bitcoin user to another. Containing an embedded script, a Bitcoin transaction is created in a crypto wallet, residing in the user’s computer, smartphone or tablet or in a cryptocurrency exchange. The transaction is published on the Bitcoin network where it is validated and added to the blockchain by a Bitcoin “miner.” See Bitcoin wallet and Bitcoin mining.

UTXOs (Unspent Transaction Outputs)

A person’s spendable bitcoins are stored in data records known as “unspent transaction outputs” (UTXOs), and a single UTXO can contain any amount of Bitcoin. Unlike a bank account balance, which is a single amount, a user’s Bitcoin balance is like having cash in different drawers throughout the house. The sum of all the money in the drawers is the spendable balance. In the case of Bitcoin, the sum of all UTXOs for a given user is that person’s coin balance. The UTXO database resides in a full Bitcoin node on the blockchain.

Either a wallet or a third-party service maintains an index of UTXOs identified by the user’s private key. To spend Bitcoin means looking for available UTXOs and selecting denominations that make up the required amount to send to the recipient. Just like paper money, each UTXO is indivisible. Therefore, if UTXO inputs are larger than the amount to be paid, change is made in the form of a new UTXO, the same as buying something for $6 with a $10 bill and getting $4 in change.

The UTXO Database Contains All the Bitcoins

Known as the UTXO set or UTXO database, all the UTXOs on the blockchain represent the total number of bitcoins in existence. The UTXOs are constantly changing as coins are sent from one user to another.

Transactions Have Inputs and Outputs

Transaction inputs are the UTXOs being used, and transaction outputs are the UTXO payment to the recipient plus any change (see illustration below). The difference between inputs and outputs is the fee, which miners collect for doing the work (see Bitcoin mining and coinbase transaction).

Unlocking and Locking Scripts

A script in the Bitcoin transaction unlocks the input UTXOs by verifying their digital signatures. A locking script sets the conditions for how the UTXO outputs can be spent; for example, post dating the payment for 30 days. See digital signature, Bitcoin node, Bitcoin and blockchain.

Alice Sends Bob Five Bitcoins

Transaction Types

Following are the different ways Bitcoin transactions are formatted.

Bech32 for Segregated Witness

In 2017, Bitcoin adopted the SegWit protocol, which enabled faster validation, among other enhancements. The SegWit native transaction is Bech32, and crypto wallets that support SegWit generally incur lower fees. The Bech32 name was derived from BCH encoding and 32 characters (see BCH code). See SegWit and Bitcoin hard fork.

P2PK – Pay to Public Key

The first type of Bitcoin transaction paid to a public key. Subsequent transaction types obscured the public key by hashing it so that future quantum computers cannot generate the private key from the public key (see quantum secure). See HASH160.

P2PKH – Pay to a Public Key Hash

P2PKH is the common format that pays to a hashed Bitcoin address. P2WPKH is the SegWit version.

P2SH – Pay to Script Hash

P2SH supports advanced features such as when multiple signatures are required to authorize a payment. P2WSH is the SegWit version.

P2SH (P2WPKH) – Pay to SegWit Public Key Hash

Native SegWit wrapped in a P2SH transaction.

P2TR – Pay to Taproot

In late 2021, Bitcoin adopted the Taproot protocol for more privacy and efficiency. See Taproot.

Mycellium Wallet

Xổ số miền Bắc