
账本、哈希与共识
区块链技术现在应用涉及哪些技术概念,可以沿着三个问题理解:记录怎样验证、规则怎样执行、外部信息怎样进入系统。不同网络采用不同机制,不能将一种网络的设计直接套用到所有应用。
比特币开发文档描述了节点独立验证区块的方式:区块通过前一区块的哈希相连,交易通过默克尔树汇总;工作量证明与累计工作量参与有效链的选择,未花费交易输出用于检查资金是否已被花费。

这些概念各有用途。哈希帮助发现数据变化,默克尔证明帮助核验交易是否包含在某个区块中,共识规则则约束节点接受哪些记录。验证“记录被收录”与验证“交易满足全部规则”是不同层次的问题。

交易与状态模型
交易不仅涉及数值转移,也涉及系统状态如何更新。理解应用之前,需要先明确它记录什么,以及哪些条件允许记录改变。
比特币的未花费交易输出模型将可使用的输出作为验证对象;以太坊智能合约则包含代码与状态,通过调用函数执行操作。两者说明,区块链应用并不共享同一种数据组织方式,设计时必须匹配所在网络的规则。
智能合约、虚拟机与执行费用
以太坊智能合约文档将合约解释为部署在链上地址的程序,包含函数和状态。用户通过交易调用它;代码需编译后供虚拟机执行,部署和执行涉及Gas。合约可以调用其他合约,外部数据则需要预言机,多重签名可用于共同授权。
智能合约适合条件清楚、能够写成代码的规则。例如,某项状态修改可以要求调用者具备指定权限。执行自动化的前提是规则表达正确;程序按代码运行,并不意味着代码必然符合业务意图。
合约组合可以复用已有功能,也使应用依赖其他合约的行为。因此,判断一个功能如何工作,需要同时理解自身逻辑与调用关系。
外部数据与共同授权的适用条件
当执行条件来自链外,应用就需要解决数据如何进入链上的问题。预言机承担信息输入的连接作用,但输入被链上程序采用,不代表现实事件已由区块链自行核实。
当操作需要多方同意时,多重签名可以把授权条件写成达到一定数量的有效签名。它适用于分担执行责任,但仍需要明确签名者权限和密钥管理安排。
常见问题:上链是否等于真实可靠
不能直接画等号。链上验证主要检查记录是否符合网络规则;现实信息的真实性还取决于信息来源。类似地,历史记录难以改动也不等于任何条件下都绝对不可改变,理解安全性需要结合具体网络的共识机制。
智能合约也不能独立完成所有现实业务。凡是涉及外部事件、人工判断或实物交付的环节,都需要明确链上程序与链外流程各自承担的责任。