可以安装的信任:NDE 协议 v0.1.0

2026 年 10 月 21 日 · 星期三机制设计协议开源

《节点带动就业》画出系统,《分叉即下注》挖出范式,《人即终端》补上资本层。三部曲回答的都是为什么。这篇回答是什么:一个可以 git clone、可以 pip install、今天就能跑的协议——NDE(Node-Driven Employment)v0.1.0,结算式共识的参考实现。

不是平台,不是 App,不是链。一本账本,七个动词,826 行 Python。

一、三个不妥协的设计决策

整个实现站在三根柱子上,每根都是对「做个平台」本能的拒绝:

图一 · 三根柱子

NO SERVER账本即 git 仓库没有后端、没有数据库、没有 API。四张 JSONL 表只追加,git 提供历史、Merkle 链与仲裁流程(PR)——全是免费复用。
NO ORACLE置信度永不存储账本里没有 score 字段。置信度只能由确定性重放算出——想改分数,必须先篡改被签名的记录,而那会当场验签失败。
NO TOKEN运行权开放,信任权挣来任何人可生成身份、可押注(permissionless);但置信度只能由已结算的真实判断累计(permissioned)——买不来,只能校准出来。

第三根柱子是防女巫攻击的第一道墙:批量注册一千个节点很容易,但每个新节点置信度都是零,押注错一次就负——信号放大器必须先用准确率付首付。

二、身份:公钥即人

没有用户名密码,没有手机号。一条 Ed25519 密钥对就是身份:

图二 · 从密钥到身份的完整链路

01keygenEd25519 密钥对
私钥 0600 本地
→
02pubkeyed25519:F3t7…W0c=
公钥即身份
→
03node_idnde:sha256(pub)[:16]
短可读指纹
→
04anchorgithub:alice 等现实锚点
可选,防女巫加码

签名覆盖记录的规范编码:去掉 sig 字段、键排序、紧凑分隔符、UTF-8。同一个字典在任何语言里序列化出的字节必须逐位一致——规范定了,跨实现互验就是自然结果。连 node 记录本身都自己签:公钥、名字、锚点全在签名覆盖范围内,改名或换锚点都会破坏签名。

三、账本:四张表,只追加

图三 · ledger/ 目录下的四张 JSONL 表

nodes谁在场
node_id · pubkey · name身份
anchor现实锚点
claims赌什么
claim_id · statement命题
settle_by · settle_condition截止与判据
arbiter结算人
stakes押多少
claim_id · endorser谁对哪注
p ∈ [0.01, 0.99]校准概率
settlements谁赢了
claim_id · outcome 0/1真值
evidence · arbiter依据与签名

注意 stakes 表里没有「撤回」这种记录类型。押注不可撤回是协议级规则:可撤回的下注不构成承诺,校准就无从谈起。每条记录带单调 seq 与 ts,seq 在签名前分配——它属于被签名内容,行序与内容一起被签名锁定。

四、心脏:确定性重放

整个协议只维护一个不变量,其余一切都是它的推论:

THE INVARIANT

同样的账本,
在任何机器上重放出同样的置信度。

replay() 是心脏,一条管线走完:

图四 · replay 管线

01read四表逐行读入
→
02verify逐条 Ed25519 验签
→
03check格式 · 引用 · 越权
重复 · p 越界
→
04settlelog score 纯函数
→
05scores置信度 · quota

任何一步出问题都不是崩溃,而是一个带错误码的条目:SIG 签名无效、AUTH 越权结算、DUP 重复押注或重复结算、REF 引用不存在的命题、P 概率越界、FORMAT 字段缺失。nde verify 跑完重放,有错退出码非零——这意味着校验可以挂在 CI 里,PR 即仲裁:合并前先让机器把整本账重放一遍。

五、结算:log score

结算公式一条,瞎猜是零基线:

delta = ln(p | outcome) − ln(0.5)   confidence = Σ delta

押 50/50 永远零分;越敢且越准,挣得越多;越敢且越错,亏得越狠

图五 · 一次真实结算(摘自端到端测试)

命题 c-0001:某项目10月内上线 · arbiter:alice · outcome = 1
alice 押 p=0.85 命中 +0.5306confidence → +0.5306
bob 押 p=0.40 落空 −0.1823confidence → −0.1823
alice 敢 85% 且对了;bob 押 40% 站错了边。quota = 1 + max(0, ⌊2 × confidence⌋):alice 升到 2,bob 保底 1——底数人人有,放大器靠校准。

不对称性是特性不是缺陷:押 0.85 落空一次(−1.204)要两次多命中(+0.531)才补得回。置信度是慢变量,这正是一个信任度量该有的脾气。

六、上手:七个动词

图六 · 一次完整的协议会话

$nde keygen
[ok] 身份已生成 node_id=nde:086c4c75…
$nde register --name alice --anchor github:alice
[ok] 注册记录已追加 commit 并提 PR 后正式入账
$nde claim "某项目10月内上线" --settle-by 2026-10-31 --condition "以线上公告为准"
[ok] 命题已发布 c-0001
$nde vouch c-0001 --p 0.85
[ok] 押注已追加 log score 将在结算时计入你的置信度
$nde settle c-0001 --outcome 1 --evidence "已上线"
$nde score
node name confidence settled hit miss quota
nde:086c… alice 0.5306 1 1 0 2
$nde verify
[ok] 账本完整:验签全部通过 · 置信度重算一致

七个动词拼出全部生命周期:keygen 生成身份 → register 入场 → claim 出题 → vouch 押注 → settle 揭晓 → score 重算 → verify 守门。所有写操作只发生在本地账本,「正式入账」= git commit + PR 合并——治理直接长在代码托管流程上,v0.1 守夜人即仓库维护者,演进路线是多签。

七、防御面:协议替你挡住什么

图七 · 四类攻击,四种死法

AUTH越权结算非 arbiter/publisher 的 settle 直接拒绝;结算人身份在签名覆盖内。
DUP重复押注 / 双重结算同节点同命题只允许第一注;同命题只允许第一次结算。
SIG篡改记录改一个 p 值、一个名字、一个字节,验签当场失败——测试里逐字验证过。
DRIFT规则分叉确定性重放消灭「各自算各自的」:两台机器分数不一致 = 有人的账本或代码被动过。

同时把丑话说在前面——协议文档里专设一节诚实的边界:置信度目前只防篡改、不防合谋。一个真实的人可以注册多个锚点不同的身份;在锚定机制成熟之前,NDE 的置信度适合做排序与参考,不足以单独支撑高价值决策。信任从零开始挣,协议自己也一样。

八、v0.2 往哪走

  • receipts 表:离线凭证。没网也能接节点——NFC 碰一碰、短信、纸质凭据,先记收据后入账,网络只是延迟不是前提。
  • 宽限期作废:settle_by 过期 90 天未结算的命题,押注零损益退回——防止永远悬置的赌注变成噪音。
  • 锚定服务:anchor 字段从「自我声明」升级为「可验证」——GitHub OAuth、域名 DNS、线下见证人,把女巫成本一层层垫高。
  • 多签仲裁:PR 守夜人从单人升级为 k-of-n,命题的 arbiter 支持多重签名。

结语

三部曲反复说同一句话:分歧可以被诚实地定价。但理念自己不会走路——它需要一个任何人都能装、装完就能跑、跑了就不赖账的最小实体。

NDE v0.1.0 就是这个最小实体:826 行代码,四个表,七个动词,一个不变量。没有服务器可以关停,没有数据库可以注入,没有代币可以炒作。一本账本,谁拿到都算出同一个数。

源码整理后将公开,仓库地址届时更新在本页。图纸在这里:系统 · 范式 · 资本。

← 返回首页