你在这里。看看这个问题与其他知识怎样相连。
选择节点前往页面 · 展开后可留在地图中阅读
一个问题
Bitcoin UTXO:找零从哪里来
沿着一笔付款,理解输入、输出与找零。
- 旧输出花费→
- 付款交易创建→
- 付款与找零
Bitcoin 的一笔付款会完整花掉选中的未花费交易输出(UTXO),再创建新输出。钱包显示的余额,是它能够花费的输出之和,而不是账本里某个余额字段被原地扣减。
沿着找零看一次付款
聪(satoshi)是 Bitcoin 的计量单位,1 BTC 等于 100,000,000 聪。假设有一个 100,000 聪的输入。一笔交易可以创建 60,000 聪的付款输出和 39,000 聪的找零输出,剩下 1,000 聪作为手续费。这只是算术例子,不是建议采用的费用。
输入通过前一笔交易及其输出序号,指出要花掉哪一个输出;提供的花费证据必须满足那个输出的条件。交易被链接受后,旧输出已花费,付款和找零则是两个新输出。
钱包实际要跟踪什么
支付应用需要区分选择哪些输入和付给谁。漏掉找零,就会算错余额。可以接着比较 Ethereum 的账户模型和 ArcBlock 账户:相同的“余额”,背后可能是不同的状态模型。
来源与延伸阅读
ArcBlock 中一个受到启发的设计
ArcBlock 的 Multi Input/Output 转账受到 UTXO 交易的启发:一笔操作可以描述多个输入与输出。文档中的 TransferV3Tx 按参与方、token 数量和资产组织记录,而不是像 Bitcoin 那样引用此前的特定输出。相似的是多份投入与多个去向的组织方式,并不意味着两者采用相同的账本模型。