比特币没有"余额"概念。你的"钱"其实是散落在区块链上的一堆"未花费的交易输出"(UTXO)。
UTXO(Unspent Transaction Output)即"未花费的交易输出"。比特币的记账方式不是记录"你有多少钱",而是记录"哪些钱还没被花掉"。
| 特性 | UTXO 模型(BTC) | 账户模型(ETH) |
|---|---|---|
| 余额表示 | 所有 UTXO 之和 | 单一余额数字 |
| 隐私性 | 较好(每次可用新地址) | 较差(地址固定) |
| 并发性 | 天然支持(不同 UTXO 独立) | 需要 nonce 排序 |
| 转账找零 | 需要找零输出 | 自动扣减余额 |
| 手续费 | 输入总额 - 输出总额 = 矿工费 | 显式指定 gasPrice |
手续费 = 所有输入的总金额 - 所有输出的总金额手续费不是交易的一个显式字段,而是隐含在输入输出的差值中。
比特币脚本是一种基于栈的简单编程语言,用于定义和验证花费条件。
执行流程:
OP_DUP:复制栈顶的公钥OP_HASH160:对公钥做哈希OP_EQUALVERIFY:比较哈希是否与锁定脚本中的公钥哈希一致OP_CHECKSIG:用公钥验证签名