
先理解区块链解决的问题
NIST《区块链技术概述》将区块链描述为以分布式方式实现、能够显露篡改并抵抗篡改的数字账本。其基本用途是让参与者在共同账本上记录交易,并在网络正常运行的条件下维持已发布记录的稳定性。
判断应用是否适合区块链,可以从三个问题出发:谁需要共同记账,谁负责验证,历史记录发生变化时谁需要发现。仅仅需要保存数据,还不足以说明必须采用区块链。

条件一:多方需要共同维护和验证记录
当多个参与方需要共享同一套记录,又希望各自核验记录是否符合约定规则时,分布式账本才有明确的应用理由。参与方应能约定数据格式、提交权限和验证规则,使共同记账具有一致的含义。

如果全部数据都由同一个主体录入、修改和使用,且其他参与方无需独立验证,普通数据库通常更容易满足需求。部署多个节点本身,也不能证明系统已经形成独立的多方协作。
条件二:业务重视历史完整性和状态一致
比特币开发者指南说明,节点独立验证区块,区块通过前序区块的哈希相互连接;交易规则还用于阻止同一笔输出被重复花费。这展示了共同规则如何约束记录及状态变化,但不能直接代表所有区块链的实现。
据此评估其他业务时,应关注是否确实需要追溯记录顺序、发现历史修改,以及避免相互冲突的状态被同时接受。还需明确记录何时可以视为确认,不能把数据刚提交等同于已经最终确定。
条件三:数据来源和运行责任能够落实
账本验证主要检查数据是否符合系统规则。对于链外发生的事件,例如实物交付或人工检测,仍需可靠的采集、核验和责任机制。错误信息被写入后,即使记录保持完整,也不能由此证明事件真实。
系统还需要明确节点由谁维护、规则如何升级、密钥如何保管,以及发生故障或争议时如何处理。这些安排决定共同账本能否持续运行,不能只依靠技术名称来替代。
条件四:能够接受性能、存储与隐私约束
多节点验证、记录传播和副本保存都会消耗资源。业务需要评估可接受的处理延迟、数据规模和运行成本,并结合具体网络的共识机制判断,不能将比特币的工作量证明视为所有区块链的必选方案。
共享记录还涉及可见范围。如果业务包含敏感信息,必须明确哪些数据可以共享、哪些主体可以读取,以及更正或删除要求如何满足。历史留痕的需要,应与数据管理要求一并考虑。
常见问题:上链是否意味着绝对可靠
记录是否绝对无法修改?抵抗篡改依赖共识机制、安全假设和网络运行状态,不是无条件保证。上链是否保证内容真实?它有助于验证记录及其变化,链外事实仍需另外核实。
是否必须采用公有链?应根据参与者身份、验证权限和共享范围选择架构。是否值得使用区块链?关键是独立验证与共同记账带来的价值,能否覆盖新增的运行和治理成本;仅需内部存储、查询的业务,应先评估常规数据库。