
先区分区块链与比特币
区块链按区块组织记录,并通过密码学引用连接前后区块。比特币采用这种结构维护公开交易账本。理解它可以围绕三个问题展开:交易花费什么、记录如何关联、节点凭什么接受一段历史。
不同区块链的规则并不相同。以太坊采用权益证明,并通过以太坊虚拟机执行智能合约;比特币采用工作量证明。因此,以太坊的质押和合约执行机制不能直接套用于比特币。
交易花费的是未使用的输出
比特币交易引用先前交易的输出作为输入,形成新的输出。尚未被花费的输出称为UTXO,同一输出不能在有效链上重复花费。普通交易的输入总额与输出总额之差构成手续费。
这里的关键是追踪具体输出:判断一笔支付是否成立,需要核对它引用的输出是否仍然可用。重复引用已经花费的输出,就是试图使用同一份价值支付两次。
哈希如何把记录连接起来
区块头包含前一区块头的哈希,以及汇总交易信息的默克尔根。交易内容变化会影响相关哈希,进而影响后续区块的引用关系。
可以把哈希理解为用于核对内容的数字摘要。它让记录的变化能够被发现;维护历史记录的安全,还需要结合工作量证明和节点验证规则。
矿工与节点分别做什么
矿工尝试寻找满足目标条件的区块头哈希,全节点独立检查区块是否符合共识规则。比特币定期调整挖矿难度。出现竞争分支时,节点在有效链中依据累计工作量选择历史。
这套机制包含两个不同判断:区块是否合规,以及合规分支中应跟随哪一条。工作量再多,也不能让违反验证规则的区块自动成为有效区块。
常见问题与适用边界
交易被收录后就绝对不会改变吗?短暂分叉可能引发链重组。随着后续区块增加,改写相关历史通常需要更多工作,因此确认体现的是逐步增强的可靠性,不能理解为绝对保证。
所有节点必须同时收到区块吗?网络传播存在先后顺序,节点可能暂时看到不同链头。共识规则用于处理这种差异,无须假设所有计算机时刻同步。上述解释主要适用于比特币,理解其他区块链时,还需分别检查其交易模型、共识方式与确认规则。