
先明确模型讨论的层次
区块链各种模型需要注意哪些问题,首先取决于“模型”指什么。参与权限关注谁能加入和维护账本,共识模型关注节点如何形成一致记录,交易模型关注数据如何表示及更新。这些问题相互关联,但不能仅凭一个模型名称判断系统是否适用。
NIST《区块链技术概述》将区块链描述为分布式实现、具有篡改可察觉性和抗篡改能力的数字账本,并以网络正常运行为记录稳定性的前提。这意味着讨论安全性时,需要同时说明成立条件。
共识模型要看信任假设
比较共识机制,应明确谁可以提出记录、谁负责验证,以及出现冲突时依据什么规则处理。工作量证明、权益证明等名称不能替代完整的协议说明;不同实现的安全条件需要分别分析。
比特币开发者指南说明,全节点独立验证区块,工作量证明用于提高改写历史的成本;出现竞争分支时,节点在有效链中依据累计工作量选择。这一机制适用于理解比特币,不能直接视为所有区块链的共同规则。
交易模型要能表达业务约束
比特币采用未花费交易输出,即UTXO模型:普通交易引用此前未花费的输出,同一输出不能在有效账本中重复花费。理解这种结构,重点是追踪哪些输出仍可使用,以及新的使用请求是否满足验证条件。
评估数据模型时,应先列出业务需要表达的对象、状态和变更规则,再检查模型能否清楚表示这些约束。防止重复花费解决的是特定账本问题,不能据此推断系统已解决现实业务中的重复登记或虚假录入。
分叉与确认要纳入应用设计
记录被某个区块收录后,还需要考虑该区块所在分支是否继续被网络接受。对于允许竞争分支的系统,应用应区分暂时观察到的记录与满足自身确认条件的记录,并考虑分支切换后的状态更新。
标识设计也要匹配分叉规则。在比特币中,同一高度可能出现不同区块,因此区块高度不能充当全局唯一标识。业务系统引用链上记录时,需要明确自己引用的是哪个区块中的哪条记录。
适用条件与常见误解
适用性判断应围绕实际需求展开:是否需要多个参与方共同维护记录,各方是否能够接受同一套验证规则,出现争议时由什么机制处理。模型选择应建立在这些条件上。
常见误解是把抗篡改等同于绝对不可修改,把链上记录等同于现实事实真实。账本机制主要约束记录的验证与变更;数据进入系统之前是否准确,仍需要独立核验。评估各种模型时,应将账本一致性与业务真实性分别说明。