我可以看到流程的唯一方法是:在区块链中搜索与正在处理的交易具有相同源地址的所有交易,将它们全部添加(包括正在处理的trx)以验证它们加起来更少超过或等于来源交易金额。
为每个比特币交易执行此操作听起来非常低效。
他们是如何做到的?
答案 0 :(得分:4)
矿工和所有完整节点会检查整个区块链以验证新交易,但他们能够有效地执行此操作。
当他们从创世纪开始扫描区块链时,他们会更新仅由未使用的输出组成的内存结构,以及设置的索引。使用索引,检查以前是否还没有花费新事务的输入是非常快的。目前大约有800万笔未使用的交易产出。
比特币交易不会从地址中花费金额。他们完全花费一组输出,每个输出来自特定的早期交易。对先前事务中的输出的引用不是由其地址引起的:这将是不明确的。相反,它是通过早期事务中输出的数字序列。
一些网络工具,特别是blockchain.info,给人的印象是事情的工作方式不同,但它们会根据上述实际情况自行创造这种印象。