知识库
返回
explainCKBot·
3 mins
区块链中的确定性是什么意思?

区块链技术中的确定性是指:在输入和条件相同的情况下,去中心化网络中的每个参与者都会得到相同且可验证的输出。

cover

区块链技术中的确定性(determinism)是指:在输入和条件相同的情况下,去中心化网络中的每个参与者都会得到相同且可验证的输出。乍看之下,这似乎只是一项技术约束,实际上,它是无需依赖可信第三方的区块链(trustless blockchains)的基石。

如果全球数千个节点处理相同的交易,最终得到相同的账本状态(state),任何单一实体都无法在不被发现的情况下篡改或否认这些结果。这种一致性构成了稳健去中心化系统所具有的单一可信来源。

确定性确保所有节点根据相同数据得出一致结果,从而消除歧义,在协议层面确立信任。如果没有确定性,关于账本正确状态的分歧就会屡见不鲜。节点将无法可靠地确认自己持有的区块链版本是否与其他节点一致。这样一来,无需依赖可信第三方、没有领导者的网络这一构想,就会陷入一连串无法解决的争议。确定性与共识相结合,则能确保任何歪曲账本的企图都会立即显现。

随着时间推移,这一原则影响了区块链架构的每一层,规定交易如何构造、验证和记录。它引导着主流网络及其执行环境的演进,让开发者、用户、审计人员和监管机构能够信赖区块链所作的承诺。

确定性的核心概念

确定性可以用一个简单却有力的概念来理解:相同的初始状态和相同的输入,应当始终产生相同的输出。在区块链中,这意味着相同的交易按相同顺序执行,必须在所有参与节点上产生相同的最终账本状态。正是这种严格的可预测性,让区块链能够成为透明、可验证的记录。就像一台设计良好的机器在操作一致时总能产出相同的产品,确定性区块链也会向所有参与者提供相同的“真相”。

从概念上说,区块链可以看作一台确定性状态机(deterministic state machine)。每个有效的交易区块都会让账本从一个已知状态转变为另一个状态,而每个节点都会重复完全相同的步骤。如果在这一过程中引入非确定性因素,例如依赖外部数据源,节点就可能得出不同结论。这些差异会侵蚀信任,使系统无法作为普遍适用的可信来源。

为维持确定性,区块链往往会严格规定允许执行哪些操作,以及如何访问数据。它们避免不可预测的指令,并采用经过审慎设计的执行环境。通过防止非确定性行为,区块链得以成为稳健的共识引擎。

确定性与共识的关系

共识协议是一套流程,用于确保区块链网络中的所有节点就单一、权威的账本达成一致。确定性是这些协议的支柱。没有确定性行为,就无法简单地确认所有参与者看到的是同一幅图景。

工作量证明(Proof-of-Work,PoW)或权益证明(Proof-of-Stake,PoS)等共识算法依赖这样一个事实:候选区块一经提出,每个诚实节点都可以独立地在自己的确定性执行环境中运行其中的交易。如果所有节点都得到相同的最终状态,就可以安全地将该区块追加到链上。

换句话说,确定性让共识能够充当可靠的过滤器,拒绝无效或遭到操纵的区块。它让每个节点都能验证结果,而不必信任任何中心化参与方。

确定性提供了一套稳定的逻辑和状态转换语言,任何节点都可以使用。共识则确保这些确定性计算形成一条统一、得到共同认可且所有参与者都能信任的链。二者共同支撑区块链的可信度,防止分叉、混乱,以及可能破坏这项技术革命性承诺的主观解读。

PoW+UTXO 与 PoS+账户模型链中的确定性

确定性在不同区块链设计中的体现并不相同。采用 UTXO(Unspent Transaction Output,未花费交易输出)模型的工作量证明链,与采用基于账户的模型(account-based model)的权益证明链之间的差异,体现了确定性的侧重点如何变化,以及这些变化如何进一步影响用户和整个网络的完整性。

在比特币这样的 UTXO 系统中,交易本身具有确定性。每笔交易消耗特定的已有输出,并创建新的输出。账本的全局状态只是未花费输出的集合,验证交易就是检查其引用的输出是否存在且尚未花费。交易要么通过花费有效 UTXO 成功执行,要么在被收录前彻底失败,因此基本上不存在“失败交易”这一概念。这降低了复杂度,让验证保持简单;任何节点都无需了解完整的全局状态,就能确认交易的有效性。

比特币采用的 PoW 共识在领导者选举中引入了非确定性:没人知道哪个矿工会找到下一个区块。但这种不确定性不会影响状态转换的确定性。无效区块自然会被拒绝,不诚实的矿工也无法迫使网络进入失败状态。非确定性的领导者选择促成了竞争激烈的挖矿环境,防止形成永久垄断,因为掌握 51% 的算力需要持续付出巨大的成本和努力。

相比之下,常见于 PoS 系统的账户数据模型在交易层面引入了非确定性。账户状态可能取决于各种正在运行的合约和全局条件,因此只有在执行时才能确定一笔交易是否有效。交易提交后仍可能失败,这意味着它们仍必须经过处理并被收录到链上,才能最终确定结果。

这就需要对失败交易收费,否则攻击者便可用无用请求淹没网络,零成本发动拒绝服务(denial-of-service,DoS)攻击。此外,PoS 链依赖确定性的领导者选举,因此可以预测谁将产生下一个区块。这虽能提高效率,却也引入了弱点。由于区块生产者事先已知,攻击者可以向其发送无效交易,发动 DoS 攻击;这正是这些系统必须对失败交易收费以缓解风险的原因。

此外,PoS 网络中确定性的领导者选择可能造成经济扭曲。掌握多数质押份额的验证者(validators)可以通过对交易重新排序来谋取利益,提取“MEV”(Miner/Maximal Extractable Value,矿工/最大可提取价值)。由于区块生产者的选择结果事先已知,最大的验证者便能利用可预测的出块安排获取更多代币,进一步巩固其主导地位。

PoW+UTXO 和 PoS+账户模型都追求确定性,但它们将确定性放在不同的环节:一个放在交易格式中,另一个放在共识机制中。这些选择会影响整个系统,塑造网络激励、安全模型和整体用户体验。理解这些差异至关重要,因为并非所有区块链都具有相同的确定性特征,而且其中的取舍绝非无关紧要。

识别并缓解非确定性的来源

实现确定性并不轻松。某些操作一旦获准,就很容易引入非确定性因素。直接访问外部 API、依赖本地时间戳,或使用浮点运算,都可能产生不一致的结果。不同节点可能获取不同的数据,或对含糊的指令作出不同解读,导致状态分歧。认识这些陷阱,是预防问题的第一步。

为应对这些问题,区块链结合采用多种设计选择和最佳实践。预言机(Oracles)通过标准化、可验证的方法将外部数据输入网络,确保每个节点在同一时间收到相同的数据。区块链协议往往依赖可验证随机函数(VRFs),而非传统的随机性,从而保证所有参与者都可以复现并验证随机输出。严格使用整数,以及 gas 成本或区块高度等区块数据的预定参考依据,可以消除依赖具体平台的差异。开发者也必须避免非确定性的语言结构、审计代码,并遵循体现确定性原则的社区标准。

识别并缓解这些潜在的非确定性来源后,它们的威胁就能得到消除。

结论

确定性是一股安静而不显眼的力量,让区块链能够作为可信的去中心化系统运行。它确保所有参与者从相同输入得出相同结论,建立坚定的一致性,为区块链所宣称的变革能力提供依据。在执行层面,确定性使可验证的智能合约和不可篡改的数字记录成为可能。在经济和治理层面,它构成讨论 PoW 与 PoS 系统的框架,揭示细微的设计选择如何塑造网络的公平性、韧性和去中心化程度。

随着区块链演进,确定性仍是不可妥协的基础。它不排斥增长、创新或调整,而是引导这些过程,像可靠的指南针一样,让开发始终遵循无需依赖可信第三方这一核心承诺。认识它的重要性并不断改进方法,才能确保区块链技术的未来保持光明、稳定,并可被普遍验证。确定性与创新之间的相互作用,提供了维系信任、释放去中心化计算系统全部潜力的关键。

end