桥节点、全存储与轻节点:Celestia 的节点分工和信任边界怎么分 图 1
桥节点、全存储与轻节点:Celestia 的节点分工和信任边界怎么分 · 图 1

两条流水线:共识网络与数据可用性网络

Celestia 把传统区块链拆成两层:一边是跑 Tendermint 类共识的共识网络,验证者对区块顺序达成一致;另一边是专门负责数据分发的数据可用性网络。这种拆分意味着”跑一个 Celestia 节点”这个问题本身就有歧义——你可能想参与出块,也可能只想帮网络转发数据,或者只想低成本地确认数据存在。官方文档按这个角色差异把节点分成几类:共识侧的验证者节点和同步全节点的共识节点,数据侧的桥节点、全存储节点和轻节点。职责分清楚之后,各类节点的资源需求、信任假设和故障模式都完全不同,混在一起谈”节点数”会严重误读网络的去中心化程度。

桥节点:把区块从共识网络搬进数据网络

机制示意:一座桥把数据矩阵送入分发网络,网络中若干光点只抽查其中少量切片(图片由 Agnes 生成,非产品界面或链上数据图)

桥节点不产生任何新东西,它的工作是搬运。它通过一条可信的本地连接挂着共识节点,每当出块,就把区块里的数据展开成扩展数据方阵,完整存进本地文件存储,同时把区块头和可用性通知广播给数据网络。官方文档把桥节点定位为”连接两个网络”的角色:没有它,共识网络达不成任何东西的数据侧后果。这也带来两个边界:桥节点默认不做数据可用性抽样也不验证什么,它信任自己连接的共识节点;同时它是少数同时持有共识身份和数据网络身份的软件,历史上不少公链桥的故障都出在这类”翻译官”环节,因此桥节点的连接配置和升级窗口值得运维者格外留意。对 Rollup 来说,桥节点的可用性直接决定其数据能否上链,很多链会同时运行多个桥实例防单点。

全存储节点与轻节点:全都存,和只抽查

全存储节点从数据网络重建并永久保存完整的扩展数据方阵,按命名空间向其他节点供享数据分片;轻节点则只做数据可用性抽样:每个区块随机抽取少量分片验证其存在并包含在承诺里,抽查不中的部分用纠删码的性质兜底——只要网络里任何数据还有足够比例可取,抽样就能以高概率发现”有人藏了数据”。两种节点的差别可以用一个问题概括:谁替你回答”这条数据真的全网可得吗”。全存储节点的回答靠自身完整副本,轻节点的回答靠概率加上坏数据时的告警机制(对轻客户端而言,收到格式良好的坏编码证明会让它暂停相信当前数据根,直到人工或治理介入)。需要注意的是,轻节点的数据可用性置信度是概率性的:抽样次数越多置信越高,但”置信”与”验证了全部数据”永远不是一回事,需要逐字节审计的场景应当查询全存储节点或自跑一个。

选择节点类型前先问三件事

第一问用途:给钱包或索引服务供数据,轻节点只保存随机抽样、硬件门槛低,很合适;做数据分析或需要按命名空间检索全部历史数据,则要么挂全存储节点要么自己跑。第二问信任:桥节点信任共识层连接,轻节点信任纠删码加抽样加告警链条,全存储节点信任区块头的签名验证,三条信任链没有一条可以简称为”完全信任”。第三问可用性责任:如果你运营的 Rollup 依赖桥节点提交数据,桥断连多久你的用户会感知为停链,这个问题最好在部署前用演练回答,而不是在监控报警后。所有硬件参数与网络参数都会随版本变化,以官方文档当期说明为准。

边界与风险

模块化架构里,数据层的安全不自动等于整条链的安全:Celestia 保证的是数据可用与顺序可用,执行正确性由使用它的 Rollup 自己负责;轻客户端的置信度再高,也不覆盖”数据本身语义错误”这类问题。评估任何依赖第三方数据层的方案时,应把数据层故障、桥故障与执行层故障分开列进风险清单。本文只做机制解释,不构成任何投资建议。