
区块链的本质:按规则维护共同记录
区块链把记录组织成相互关联的区块,由网络节点依据规则验证和维护。理解它,需要同时看数据怎样关联、记录怎样被接受,以及应用怎样使用这些记录。不同网络的具体机制不能直接互相套用。
比特币开发者指南介绍的是公共交易账本:全节点独立验证区块,节点遵循的验证要求称为共识规则。共同账本的形成依赖各节点执行规则,而不是某个参与者单方面宣布记录有效。
区块、哈希与默克尔根
在比特币中,区块头引用前一区块头的哈希,形成链式关联;区块内交易通过逐层汇总哈希形成默克尔根。修改交易会影响相关哈希,从而影响后续关联。
这几个术语分别回答不同问题:区块负责组织记录,哈希用于校验数据关联,默克尔树支持验证交易是否被纳入某个区块。包含关系证明的范围有限,不能单凭它证明现实中的商品已交付或合同已履行。
UTXO、工作量证明与分叉
UTXO指未花费交易输出。比特币普通交易使用已有的未花费输出,重复花费同一输出属于双重支付。工作量证明要求区块头哈希满足目标条件;出现有效分支时,节点依据累计工作量选择链。区块高度表示位置,分叉时不能唯一标识区块。
因此,余额记录方式、出块机制和分支选择是不同层面的问题。“不可篡改”也应理解为修改历史受到验证规则和重建工作量的约束,而非任何条件下都绝无变化。
智能合约、Gas与预言机
以太坊官方文档将智能合约解释为位于链上地址的代码和状态。交易可以调用合约功能,部署和执行涉及Gas资源计量及费用。合约可调用其他合约,这种连接能力称为可组合性;链外信息则需要通过预言机等机制引入。
可把合约理解为执行明确条件的程序:条件、权限和状态变化都需要事先表达清楚。程序能执行规则,并不代表规则没有漏洞;多个合约组合后,也需要考虑相互依赖带来的影响。
适用条件与常见问题
判断应用是否适合采用这些机制,可以先问:哪些记录需要共同验证,哪些条件可以由代码判断,哪些事实必须从链外取得?涉及现实事件时,链上执行的确定性不能替代输入信息的可靠性。
智能合约会自动知道现实事件吗?不会,外部数据需要被引入。多签是什么意思?它要求达到约定数量的有效签名后才执行操作,适用于需要多人共同授权的情形;其保障范围是授权条件,并不自动保证操作内容正确。