
一、从共同记账的问题理解区块链
区块链的基础问题是:多个参与者如何维护一份可核验的记录,并防止同一笔资产被重复使用。比特币开发指南围绕公共账本和双重支付展开;以太坊技术介绍则进一步说明,共享记录也可以承载程序执行后的状态。由记账到可编程应用,是理解相关术语的一条线索,并不代表所有区块链都采用相同设计。
二、区块、哈希与默克尔树
区块用于组织交易,前后区块通过密码学引用连接。哈希可以理解为数据的摘要:修改数据会改变计算结果,使记录变化能够被检查出来。比特币还通过默克尔树把多笔交易逐层汇总为一个根哈希,便于验证某笔交易是否包含在区块中。

这里需要区分可检测修改与阻止修改。哈希帮助发现数据变化;维持历史记录的可信性,还需要验证规则、共识机制及其安全条件,不能仅凭链式结构就断言数据绝对无法更改。

三、节点、共识与两种证明机制
节点是参与网络通信、保存或验证数据的计算机及其运行的软件。共识规则规定什么记录有效,共识机制帮助参与者形成一致的账本历史。比特币的工作量证明以满足目标条件的计算结果参与这一过程;以太坊的权益证明则由质押资产的验证者参与,并配合奖励与惩罚。
节点与出块者的职责不能直接画等号。验证规则用于检查区块是否合格,提出区块则是另一项职责。上述两种机制属于不同网络的具体安排,不能把其中一种当作所有区块链的必备特征。
四、交易、UTXO与分叉
在比特币中,UTXO指尚未花费的交易输出,后续交易可以引用并花费它。双重支付就是试图重复花费同一输出。创世区块是链的起点,区块高度表示位置;出现竞争分支时,同一高度可以对应不同区块,因此高度不是唯一标识。
分叉也不一定意味着网络升级或永久分裂。矿工近乎同时产生区块,也会形成暂时竞争的分支。对符合规则的候选链,比特币依据累计工作量选择链,不能简单理解为只比较区块数量。
五、智能合约、EVM与应用边界
以太坊中的智能合约是部署在链上、可被调用的程序,EVM是执行这些程序的虚拟机。状态指账户余额、合约数据等在某一时刻的记录。交易除了转移资产,也可以部署或调用程序;ETH用于支付相关资源费用。
常见误解是把智能合约理解为会自行判断现实情况的合同。它按代码和输入执行,能够共同验证执行结果,并不自动保证输入真实或程序没有缺陷。理解区块链应用时,应分别看清记录结构、共识条件和程序规则各自解决的问题。