
账本结构:哈希与默克尔树
理解区块链与应用技术涉及哪些技术概念,可以从数据怎样组织、规则怎样验证、程序怎样执行三个问题入手。比特币开发文档展示了账本结构,以太坊智能合约文档展示了链上程序,两者对应不同技术层面。
比特币通过前一区块头的哈希连接区块,并用默克尔树将交易逐层汇总为区块头中的默克尔根。哈希用于检查数据是否变化;默克尔证明支持检查某笔交易是否被纳入区块。证明“被收录”与证明一笔交易符合全部规则,是不同的验证任务。

交易模型:输入、输出与重复花费
比特币普通交易引用先前的未花费交易输出,即UTXO,作为输入。已花费的输出不能再次使用,节点据此检查重复花费。钱包界面中的余额变化,底层对应的是输出被消耗和新输出被创建。

UTXO属于特定的交易组织方式,不能直接套用到所有区块链。分析应用时,应先明确其底层如何记录可用资产、如何判定一次状态变化有效。
共识规则:节点验证与分叉选择
比特币全节点独立验证区块;工作量证明要求区块头哈希满足目标条件。出现竞争分支时,节点在有效链中遵循累计工作量最大的链。因此,区块高度不能作为全局唯一标识。
理解共识时,要分开看“是否满足规则”和“有效分支之间如何选择”。记录难以被改写依赖验证规则与共识机制,不能将其理解为任何条件下都绝对无法修改。
应用执行:智能合约、虚拟机与Gas
以太坊智能合约是位于链上地址的代码和状态,用户可通过交易调用其功能。Solidity、Vyper等语言编写的合约需要编译,供以太坊虚拟机执行;部署和执行涉及Gas。
合约能够调用其他合约,形成可组合的应用。理解这种组合时,除了查看单个函数的条件,还需要关注它依赖哪些合约,因为一次业务操作可能跨越多个程序。
适用条件与常见问题
智能合约适合表达可由代码判断的规则。若规则依赖链外事件,就需要预言机提供信息。预言机解决信息进入链上的问题,但外部信息是否真实,仍需结合其来源与提供机制判断。
多重签名要求多个授权方达到签名门槛后才能执行操作,适用于需要共同授权的场景。它分散了单一密钥的控制责任,并不意味着合约的所有业务逻辑都自动安全。
链上执行是否等于现实履约?两者不能直接画等号。程序可以依据输入更新链上状态,但实物交付等链外结果,还需要链外机制配合。这也是评估区块链应用适用范围时的重要边界。