|
Edited by Samiksha at 26-12-2023 12:51 PM
Due to Bitcoin's lack of accounts, the outputs created by Bitcoin transactions are not simple public key addresses; instead, they are scripts. In the transaction where Bob pays 1.5 BTC to Alice, the output script created by Bob includes Alice's public key hash. The entire script implies that whoever can provide a signature allowing the script containing Alice's public key to run will be able to spend the 1.5 BTC from this transaction.
Clearly, creating a signature can only be done using Alice's private key; signatures created with other private keys will fail to pass the verification of this script, ensuring that others cannot impersonate Alice to spend this output. In other words, the BTC in UTXO are not recorded in someone's account as a balance—each initiator of a transaction creates a lock for these BTC through a script, and the owner holds the key. Of course, the BTC input (the initiator of the transfer) and output (the recipient of the transfer) of a specific transaction may be composed of multiple historical UTXOs, similar to combining different denominations of banknotes. One of the benefits of this approach is that all transfer transactions are viewed from the perspective of BTC circulation, and different UTXOs can be transacted in parallel because they are strictly distinguished.
It can also be understood as follows: the UTXO mechanism completely records the circulation history of all parts of BTC (with the smallest unit being "satoshis" or "sats"). One can imagine each satoshi as a coin that receives a signature to record its circulation history with each transfer. This ensures that the circulation of each satoshi of BTC is traceable and non-fungible (perhaps one of the earliest forms of NFT). This provides the foundation for developing the Ordinals protocol and the BRC-20 ecosystem. |
|