
区块链是多种技术的协作系统
理解区块链构建,适合从数据如何记录、参与者如何同步、交易如何确认,以及应用如何执行这几类问题入手。比特币开发者指南的目录把区块链、交易、钱包、点对点网络和挖矿列为不同开发主题;以太坊技术介绍则展现了节点、共识、交易与智能合约之间的配合。两者共同说明,区块链不是某一种加密算法,而是一组互相依赖的技术概念。
这些概念并非每条链都以相同方式实现。以太坊资料中的以太坊虚拟机和权益证明共识,是具体设计实例,不应直接视为所有区块链的通用配置。
区块、链式引用与密码学
区块是成批记录数据的结构,交易等信息可以按区块组织。区块之间通过对前序区块的密码学引用连成顺序,使参与者能够核对记录的先后关系。若试图修改较早区块,后续引用也会受到影响,因此篡改并非只改动单条记录那么简单。
密码学还用于验证交易授权。以太坊技术介绍指出,交易签名与权限校验用于确认请求是否由相应账户授权。需要区分的是,密码学可以帮助验证数据和授权,却不能单独解决网络参与者如何对新记录达成一致的问题。
节点网络与共识机制
节点是运行相关软件、保存或处理区块链数据的计算机。节点之间通过网络传播交易和新区块信息,使不同参与者能够取得并核验共同的记录。点对点网络描述的是这些参与者如何交换信息,并不等同于共识机制。
共识机制处理的是:在没有单一中央记录者的情况下,网络如何接受新的区块并维持对账本状态的共同认定。不同区块链可以采用不同机制。以太坊资料介绍的是权益证明:验证者参与提议或检查区块,相关规则通过奖励与惩罚激励诚实参与。这是以太坊的设计说明,不宜套用于其他链。
交易、状态与执行环境
交易可以提出转账或请求网络执行代码等操作。通常,网络需要验证请求,按规则执行,并将结果纳入记录;被确认的交易会带来状态变化。账户余额等数据可以理解为链上状态的一部分,而区块则把一定数量的记录组织起来。
具备可编程执行环境的区块链还涉及虚拟机或其他运行环境。以太坊的 EVM(以太坊虚拟机)是其网络参与者共同认可的计算状态;智能合约则是部署到该环境、可由交易请求调用的程序。合约能执行预先编写的逻辑,但其结果仍受代码规则、交易输入及网络验证过程约束。并非所有区块链都提供与 EVM 相同的执行环境或合约功能。
钱包、费用与资源管理
钱包是用户管理账户凭证、发起交易的工具或软件,通常帮助用户生成和签署请求;它本身不等于区块链账本。交易是否最终被网络接受,还要经过相应节点和共识规则处理。
可执行计算的网络还需要管理计算与存储等资源。以太坊资料说明,交易请求会涉及费用,费用与执行所需资源相关。费用机制可以为网络处理请求提供资源计量方式;具体收费规则和资产用途则因链而异,不能从一种网络的做法推断所有区块链。
适用范围与常见问题
问:构建区块链是否只需要把数据加密?答:不够。还要考虑数据组织、节点间通信、交易验证、共识和状态同步;如果支持链上应用,还需设计执行环境与资源管理。
问:所有区块链都采用权益证明和智能合约吗?答:不能这样概括。共识机制、账户与交易模型、执行能力都可能不同。阅读某个项目的技术说明时,应把通用概念与该项目的具体实现分开,再核对它实际支持的功能。