证明原生 Layer 1
传统全节点通过重放区块链来得到当前状态。链中保存历史输入,节点按顺序重复每一次状态转换。验证完成后的裁剪可以减少磁盘占用,却无法消除最初的依赖:节点之所以接受当前状态,是因为它亲自从历史中重建了该状态。Parano1d 改用无需历史重放的验证模型。
Parano1d 改变了区块本身的含义。区块不再只是要求每个对等节点执行的一组操作;它同时携带递归 HistoryStep,证明:
- 公开区块关系已经满足;
- 得到的 UTXO 根正是精确的转换后 State;
- 上一个
HistoryStep终端有效。
终端的形状固定。验证第 10,000 个区块与第 10,000,000 个区块,都不需要随高度增长的证明。
执行转移到了哪里
计算并没有消失,而是转移给已经掌握所需见证数据的参与者。
钱包知道支出秘密,因此由钱包证明授权。矿工掌握 Live State 和选入区块的内容,因此由矿工证明 State 转换。对等节点验证两项结果,无需重建钱包见证数据,也无需重复矿工的公开计算。
这种分工是协议的刻意设计:
| 参与者 | 私有或高成本信息 | 输出 |
|---|---|---|
| 钱包 | 256 位所有者秘密 | 绑定到一次逻辑支出的随机化授权 |
| 矿工 | 选中的交易意图与精确的 Live State | 完整区块转换的递归证明 |
| 全节点 | 无需用于生成证明的见证数据 | 验证结果与规范槽位写入 |
矿工无法伪造钱包权限;有效的钱包证明也不能授权使用不存在或已经花费的输入。两种证明缺一不可。
全节点保存什么
当前全节点保存:
- 精确的 Live State;
- 永久的紧凑区块头;
- 当前
HistoryStep终端证明; - 最近 18 个完整的已接受区块;
- 用于浅层重组的有界撤销数据。
更早的交易体不属于当前共识验证所需数据,超过保留窗口后即可删除。区块头必须永久保留,因为工作量证明与分叉选择仍需要完整的累计工作历史。
因此,Parano1d 摆脱的是历史依赖,并非不保存 State。新节点仍需取得 Live State。Live State 传输量随当前使用规模变化,而验证成本不再随网络历史上处理过的交易总数增长。
应用已证明的区块
验证完成后,节点把已经证明的规范槽位变化物化到 MDBX。它不会再次执行逻辑交易来推导这些写入。每个输入清除一条精确的 {slot_index, creation_id} 记录,每个输出安装一条新分配的记录;已承诺的转换后 State 根绑定最终结果。
三种操作必须明确区分:
- 执行:推导并证明转换;
- 验证:检查证明;
- 物化:把已经证明的结果写入本地存储。
正是这种分离,让普通节点无需成为证明者,也能继续作为完整共识参与者。
无需重放历史即可加入
当高度差不超过 18 个区块时,节点下载保留的完整区块并正常验证。差距更大时,节点下载永久区块头、最终性边界上的认证快照、匹配的终端证明,以及近期完整后缀。
快照先进入临时区。节点用各分段根重建已承诺的 State 根,并将边界与规范区块头及递归终端核对;全部通过后才安装快照,随后正常应用近期后缀。
快照传输不会引入可信检查点。对等节点只提供数据;共识证明和工作量证明决定这些数据能否接受。
工作量证明仍然负责什么
递归有效性本身不选择链。Parano1d 使用工作量证明进行排序,并实现抗 Sybil 的分叉选择。矿工先证明与 nonce 无关的区块,再搜索固定区块头的 128 位 nonce。
算力可以在互相竞争的有效转换之间作出选择,但不能把无效授权、错误 State 根或无效递归终端变成有效区块。