
先明确共享账本的作用
联盟链架构入门的核心,是理解多个参与方如何按照共同规则维护记录,以及谁有权参与哪些环节。讨论架构时,需要同时考虑账本、节点、验证规则和参与边界。
NIST《区块链技术概述》将区块链描述为分布式实现、具有篡改可察觉性和抗篡改能力的数字账本;在网络正常运行的条件下,已经发布的交易记录不能随意改变。这一概括强调了技术保障的条件,不能扩展为任何情况下都绝对安全。
区分节点、客户端与业务入口
节点可以理解为网络中运行协议软件的实例,客户端则是实现协议规则的软件。理解架构时,应分别确认哪些组件接收业务请求、验证数据、保存账本,以及参与共识。这些职责是否由同一个节点承担,取决于具体实现。
以太坊节点与客户端文档介绍了执行客户端和共识客户端的分工:前者处理交易执行与状态,后者负责共识相关工作;验证者软件承担进一步的验证参与职责。这有助于理解模块分工,但以太坊的客户端组合和权益证明机制不能直接套用于所有联盟链。
把执行规则与共识规则分开理解
交易执行回答的是:按照业务规则,一次操作会产生什么结果。共识回答的是:网络如何对经过验证的数据形成一致认定。分析联盟链时,可以沿着请求提交、规则校验、一致确认和账本更新来梳理职责,但实际处理顺序需要以所选协议为准。
适用条件也应明确:参与方需要对验证规则达成一致,并明确系统在节点故障、通信异常或参与者违规时依赖哪些假设。不能仅凭“使用了共识”就推断系统能够应对所有故障。
单独梳理身份、权限和数据范围
联盟链的架构讨论还需要回答:谁能加入网络,谁能提交请求,谁能参与确认,谁能读取哪些记录。这些问题分别涉及成员身份、操作权限和数据可见范围,不能用一个“已授权”笼统概括。
分布式账本的可验证性并不自动提供数据保密。判断架构是否适合多方协作,应先明确哪些信息需要共享、哪些信息应限制访问,再核对具体系统是否提供相应机制。
常见问题:记录可信是否等于事实真实
账本难以被事后修改,不代表写入前的信息必然真实。业务数据的来源、提交者的权限和输入校验仍需独立审查。同样,运行节点也不必然意味着拥有共识投票权,保存历史数据与参与共识属于不同职责。
入门时可用一条业务记录贯穿架构理解:谁提交、谁验证、谁确认、谁保存、谁能查阅。把这些关系说明白,才能进一步讨论具体联盟链实现的适用范围。