
区块链首先是一种共享账本
区块链可以理解为由多个网络节点共同维护的公开数据库。交易数据不会孤立存在,而是被整理进一个个区块;区块按照先后顺序连接起来,形成可追溯的记录。每个区块会引用前一个区块的密码学摘要,因此修改较早区块中的数据,通常会牵动其后的区块记录,并需要重新满足网络的验证条件。
节点是参与保存、传播或验证区块链数据的计算机。不同网络的节点职责和数据范围可能不同,但核心目标都是让参与者对有效交易和当前账本状态形成一致认识。区块链的“公开”与“去中心化”并不意味着所有网络都完全相同,实际权限取决于网络规则、节点设置和参与方式。
哈希、交易与区块如何连接
哈希函数会把任意输入转换为固定形式的摘要。输入内容发生变化时,输出摘要也会随之变化。区块链利用这种特性,把交易摘要组织成层级结构,并将最终结果写入区块头。在一些区块链中,这个汇总结果称为默克尔根,可用于证明某笔交易是否被包含在特定区块中。
以比特币的交易模型为例,资产并不是简单地从一个钱包账户“移动”到另一个钱包账户,而是由新交易引用此前交易产生的未花费输出。一个输出只能按规则被使用一次,重复使用会构成双重支付。交易输入与输出之间的数值关系、签名有效性和其他规则,都需要节点验证后才能进入区块。
共识机制决定谁能追加新区块
区块链网络需要共识机制来决定哪些区块有效,以及不同节点应当跟随哪条链。比特币使用工作量证明,参与者通过不断尝试区块头数据,寻找低于目标值的哈希。网络会根据既定规则调整目标难度,使新区块的产生保持在协议预期的节奏附近。修改历史区块不仅要改变该区块的哈希,还要处理后续区块,因此历史越深,重写成本通常越高。
以太坊采用基于权益证明的共识机制。验证者需要质押原生资产并运行验证软件,网络会安排验证者提出区块,其他验证者负责检查和确认。质押、奖励与惩罚共同构成参与约束。这里体现的是不同共识设计之间的差异:工作量证明依赖计算工作,权益证明依赖质押和验证规则。
从数字货币账本到可编程网络
区块链可以只用于记录转账,也可以承载可执行程序。以太坊将网络状态描述为一台由所有节点共同认可的虚拟计算机,称为以太坊虚拟机。用户提交交易请求后,节点会验证请求并执行相应计算;执行结果会改变网络状态,并在被确认后传播给其他节点。
智能合约是部署到区块链上的可重复执行程序。用户可以按照合约设定调用功能,例如转移资产、记录状态或执行条件判断。合约代码一旦公开部署,后续运行会受到网络规则和代码逻辑约束,因此学习智能合约时,既要理解编程,也要理解交易签名、状态变化、执行费用和权限控制。
入门学习应关注哪些层次
第一层是数据结构:理解交易、区块、区块头、哈希、区块高度和链式引用。第二层是网络运行:了解节点如何传播交易,如何验证区块,以及共识机制如何处理同时出现的不同区块。第三层是应用逻辑:学习账户、签名、状态、智能合约和执行费用之间的关系。
如果目标是理解比特币,应先从交易输入输出、未花费交易输出、区块确认和工作量证明入手;如果目标是开发以太坊应用,则需要继续学习账户与交易、虚拟机状态、智能合约和节点客户端。不同学习目标对应的工具和深度不同,初学者不必一开始同时掌握所有实现细节。
常见问题
区块链上的数据是否绝对不能修改?更准确的说法是,已确认数据的修改会受到密码学链接、节点验证和共识规则的约束。它不是脱离规则的绝对不可变系统,具体安全性还取决于网络设计、参与规模、实现质量以及攻击者能够掌握的资源。
区块高度能否唯一标识一个区块?不能。在多个区块几乎同时产生时,它们可能拥有相同高度。区块哈希更适合用来区分具体区块。
交易写入区块后是否立即完成?交易通常需要先传播、验证并被纳入区块;在部分网络中,后续区块或进一步确认还会提高记录被持续接受的程度。具体确认含义取决于所使用的区块链协议。
学习区块链是否必须先购买数字资产?不需要。理解账本、哈希、节点、共识和智能合约等基础概念,可以通过文档、代码示例或本地测试环境完成。购买、持有或交易数字资产也不是掌握区块链原理的必要条件。