
分布式账本与节点验证
运用区块链的技术涉及哪些技术概念,可以沿着记录、验证和执行三个环节理解。账本保存交易历史,节点根据规则检查记录,支持智能合约的系统还可以执行程序。不同区块链对这些环节的实现有所不同。
比特币开发者指南介绍,全节点独立验证区块,并保存通过自身验证的链。因此,分布式账本的基础既包括多节点保存记录,也包括节点遵循共同的有效性规则。

哈希、区块链接与默克尔树
密码学哈希把数据映射为摘要,用于检验数据是否发生变化。比特币通过前一区块头的哈希连接区块,并用默克尔树把交易逐层汇总为区块头中的一个根值。

这两种结构分别关联历史区块与区块内的交易。默克尔证明可以支持交易被某个区块收录的验证,但证明收录本身不等于完成所有交易有效性检查。哈希也不等于加密,不能据此推断账本内容具有保密性。
共识、工作量证明与分叉
共识规则规定节点接受哪些记录。比特币的工作量证明要求区块头哈希满足目标条件;出现竞争分支时,节点在有效链中依据累计工作量选择链。区块高度表示位置,分叉期间不能充当全局唯一标识。
理解防篡改能力时,需要同时考虑数据关联、验证规则与重建历史的成本,不能把它理解成任何情况下都无法修改。工作量证明属于具体的共识机制,不是所有区块链的必备条件。
交易状态与重复花费
比特币采用未花费交易输出,即UTXO,记录可被后续交易使用的输出。已被花费的输出不能再次使用,这是理解双重花费检查的关键。
交易验证因此需要结合历史状态,检查输入引用的输出是否仍可使用。仅有一条格式正确的交易记录,并不足以证明它有效。
智能合约、虚拟机与适用边界
以太坊开发文档将智能合约描述为位于链上地址的代码和状态。用户通过交易调用合约功能,程序在以太坊虚拟机中执行,部署与执行涉及Gas资源计量。合约还可以调用其他合约,形成组合功能。
这种机制适用于能明确表达为代码条件的规则。自动执行的结果取决于程序逻辑,不意味着业务设计必然正确;多重签名则可以将执行授权分配给多个参与方。
常见问题:合约能否自行获知现实事件
智能合约本身不能直接读取链外事件,需要预言机等机制提供外部数据。引入这些数据后,还需区分数据如何进入链上与数据是否真实可靠:链上程序能够按输入执行规则,却不能仅凭执行过程证明现实输入的真实性。