《节点带动就业》画出系统,《分叉即下注》挖出范式,《人即终端》补上资本层。三部曲回答的都是为什么。这篇回答是什么:一个可以 git clone、可以 pip install、今天就能跑的协议——NDE(Node-Driven Employment)v0.1.0,结算式共识的参考实现。
不是平台,不是 App,不是链。一本账本,七个动词,826 行 Python。
一、三个不妥协的设计决策
整个实现站在三根柱子上,每根都是对「做个平台」本能的拒绝:
图一 · 三根柱子
第三根柱子是防女巫攻击的第一道墙:批量注册一千个节点很容易,但每个新节点置信度都是零,押注错一次就负——信号放大器必须先用准确率付首付。
二、身份:公钥即人
没有用户名密码,没有手机号。一条 Ed25519 密钥对就是身份:
图二 · 从密钥到身份的完整链路
私钥 0600 本地
公钥即身份
短可读指纹
可选,防女巫加码
签名覆盖记录的规范编码:去掉 sig 字段、键排序、紧凑分隔符、UTF-8。同一个字典在任何语言里序列化出的字节必须逐位一致——规范定了,跨实现互验就是自然结果。连 node 记录本身都自己签:公钥、名字、锚点全在签名覆盖范围内,改名或换锚点都会破坏签名。
三、账本:四张表,只追加
图三 · ledger/ 目录下的四张 JSONL 表
注意 stakes 表里没有「撤回」这种记录类型。押注不可撤回是协议级规则:可撤回的下注不构成承诺,校准就无从谈起。每条记录带单调 seq 与 ts,seq 在签名前分配——它属于被签名内容,行序与内容一起被签名锁定。
四、心脏:确定性重放
整个协议只维护一个不变量,其余一切都是它的推论:
同样的账本,
在任何机器上重放出同样的置信度。
replay() 是心脏,一条管线走完:
图四 · replay 管线
重复 · p 越界
任何一步出问题都不是崩溃,而是一个带错误码的条目:SIG 签名无效、AUTH 越权结算、DUP 重复押注或重复结算、REF 引用不存在的命题、P 概率越界、FORMAT 字段缺失。nde verify 跑完重放,有错退出码非零——这意味着校验可以挂在 CI 里,PR 即仲裁:合并前先让机器把整本账重放一遍。
五、结算:log score
结算公式一条,瞎猜是零基线:
delta = ln(p | outcome) − ln(0.5) confidence = Σ delta
押 50/50 永远零分;越敢且越准,挣得越多;越敢且越错,亏得越狠图五 · 一次真实结算(摘自端到端测试)
不对称性是特性不是缺陷:押 0.85 落空一次(−1.204)要两次多命中(+0.531)才补得回。置信度是慢变量,这正是一个信任度量该有的脾气。
六、上手:七个动词
图六 · 一次完整的协议会话
七个动词拼出全部生命周期:keygen 生成身份 → register 入场 → claim 出题 → vouch 押注 → settle 揭晓 → score 重算 → verify 守门。所有写操作只发生在本地账本,「正式入账」= git commit + PR 合并——治理直接长在代码托管流程上,v0.1 守夜人即仓库维护者,演进路线是多签。
七、防御面:协议替你挡住什么
图七 · 四类攻击,四种死法
同时把丑话说在前面——协议文档里专设一节诚实的边界:置信度目前只防篡改、不防合谋。一个真实的人可以注册多个锚点不同的身份;在锚定机制成熟之前,NDE 的置信度适合做排序与参考,不足以单独支撑高价值决策。信任从零开始挣,协议自己也一样。
八、v0.2 往哪走
- receipts 表:离线凭证。没网也能接节点——NFC 碰一碰、短信、纸质凭据,先记收据后入账,网络只是延迟不是前提。
- 宽限期作废:settle_by 过期 90 天未结算的命题,押注零损益退回——防止永远悬置的赌注变成噪音。
- 锚定服务:anchor 字段从「自我声明」升级为「可验证」——GitHub OAuth、域名 DNS、线下见证人,把女巫成本一层层垫高。
- 多签仲裁:PR 守夜人从单人升级为 k-of-n,命题的 arbiter 支持多重签名。
结语
三部曲反复说同一句话:分歧可以被诚实地定价。但理念自己不会走路——它需要一个任何人都能装、装完就能跑、跑了就不赖账的最小实体。
NDE v0.1.0 就是这个最小实体:826 行代码,四个表,七个动词,一个不变量。没有服务器可以关停,没有数据库可以注入,没有代币可以炒作。一本账本,谁拿到都算出同一个数。