
区块链如何记录和验证交易
区块链可以理解为由多个区块按顺序连接而成的公开账本。交易先由网络节点传播,再按照协议规则进行检查,合格的交易会被组织进区块。区块通常包含交易数据以及指向前一区块的哈希,因此,修改历史区块中的内容会改变该区块的哈希,并影响其后的连接关系。哈希具备对输入变化敏感的特点,能够帮助节点发现数据是否被改动。
在比特币的设计中,交易并不是简单地从一个钱包余额转移到另一个钱包,而是使用此前交易产生的未花费交易输出。一个输出被使用后,不能再次作为另一笔交易的输入,否则就会构成双重支付。节点会根据交易签名、输入输出关系和其他共识规则验证交易,只有通过验证的交易才有机会进入区块。
共识机制不只是挖矿或质押
区块链没有单一的中央记录者,因此各节点需要通过一组协议、激励和惩罚规则,对网络状态形成共同判断。这一整套安排才是较完整意义上的共识机制。工作量证明和权益证明通常被简称为共识机制,但从技术分工看,它们主要承担抗女巫攻击和区块作者选择等作用;节点如何验证区块、如何选择链头,也同样属于系统运作的重要环节。
工作量证明要求参与者投入计算资源寻找满足目标条件的区块哈希。比特币网络通过这种资源成本降低恶意节点批量伪装身份的影响,并以累计工作量来帮助节点选择链。权益证明则让参与者锁定一定权益,由验证者提出区块或对区块进行确认,并通过奖励和惩罚约束行为。具体规则由不同项目的协议决定,不能把一种机制的结论直接套用到所有区块链。
分叉与最终确认需要区别理解
多个节点可能在相近时间提出有效区块,或者不同节点暂时以不同顺序收到区块,这会造成同一高度附近出现多个候选链。系统需要使用链选择规则确定继续跟随哪一条链。比特币相关资料描述的是依据累计工作量选择链;采用权益证明的系统可能根据验证者投票及其权益权重计算链的权重。由此可见,区块高度相同并不代表区块内容相同,区块高度也不适合作为区块的全球唯一标识。
“交易已经进入区块”和“交易已经获得较强最终性”也不是完全相同的说法。刚被纳入区块的交易仍可能因短暂分叉而被另一条链替代。随着后续区块增加,或者随着协议中的确认和最终性规则发挥作用,交易被改写的难度通常会提高。实际判断时,应先明确所讨论的链采用何种确认模型,再理解其确认状态。
分析区块链时需要注意的适用条件
第一,要区分数据完整性与数据真实性。哈希和共识规则可以帮助网络判断记录是否符合协议,却不能自动证明现实世界输入的信息真实无误。如果链上记录本身来自错误或虚假的外部数据,区块链仍可能忠实保存它。
第二,要区分协议安全假设与绝对不可篡改。工作量证明依赖攻击者难以持续取得足够计算能力,权益证明依赖质押、验证和惩罚机制能够有效约束攻击行为。安全性是建立在协议设计、参与者分布和经济成本等条件上的技术属性,不应被表述为任何情况下都绝对无法修改。
第三,要区分不同项目的实现。比特币资料中的交易模型、工作量证明和链选择规则,不能直接作为以太坊或其他网络的全部运作说明;以太坊资料中的权益证明和验证者投票,也不能推导出所有权益证明系统都使用相同算法。阅读技术文章时,应先确认对象、版本和适用规则。
常见问题
问题一:区块链是不是把所有数据都加密了?答案是,哈希主要用于生成数据指纹和连接区块,交易内容是否可公开读取、是否采用额外加密,则取决于具体系统和应用设计。哈希链接能够提高篡改可发现性,但不等于自动实现隐私保护。
问题二:最长链是不是所有区块链都采用的规则?答案是否定的。工作量证明链可以依据累计工作量选择链,权益证明链则可能依据验证者投票形成的权重选择链。应以具体协议的链选择规则为准。
问题三:节点数量越多,系统就一定越安全、越快吗?答案也不能简单这样判断。安全性还与节点之间的独立性、验证规则、共识参与方式和攻击成本有关;节点增加也可能带来传播和协调方面的开销。评价区块链时,需要结合其目标和运行条件综合分析。