BringUp

一个内容寻址的资产协议:每一版、每一份持有、每一条记录,都能只凭链上字节被你自己重算。 没有主人,没有升级开关,也没有"信我们"这一步。

先理解,再动手。本页的每个链接都标出它证明什么 / 不证明什么。

1. 它由四样东西组成

版本 = 内容根

一个站点版本的名字就是它的内容哈希。可核对

改了就是另一个版本;旧版仍可重建。

持有 = UTXO + 所有者签名

类别、数量、所有者都在叶字节里;移动它需要所有者签名。矿工强制

消息 = 承诺 / 揭示 / 判决

密封承诺、到期揭示、判决可带来源;说不清就记 undecidable。可复算

服务 = 签名的应答

它替你把一份版本从链上重算一遍,并签上名;篡改的应答验不过。已上线

2. 你可以自己核对的三件事

你想确认怎么做它证明什么
这一版站点就是这些字节/verify.html — 粘贴 site-version.json,浏览器内重建并逐文件比对
(纯静态,不联网,不请求任何服务)
载体字节 ⇒ 这个内容根 ✓
不证明这些载体在链上 ✗
这些载体在链上container_anchor verify --carrier=da --payloadHash=… --reveals=…从链重建 ✓
某个持有确实属于某人hold check --holding=<txid:vout> --class=… --amount=… --owner=…那笔输出就是这份持有 ✓

命令与完整清单在仓库的 docs/OPERATORS.md;链上实测记录在 cf/onchain/(每条都带全量 txid)。

3. 服务在做什么,以及它在哪儿

服务清单

身份(x-only 公钥)、方法、错误码、expires —— 全部公开且可验。

只读 API

静态 JSON,带出处(每个字段来自哪个文件);没有写入口。

当前版本

路径即版本:/v/<内容根>/。页面会自己说明这一版在不在链上。

4. 这不是什么(读完再决定要不要往下走)

5. 往下走之前

免费的、只读的、可以随便试:

⚠ 只有签名并广播才是不可逆的动作用钱的动作;上面这些都不是。

6. 术语表(每个词都注明它在哪儿被强制,或怎么自己查)

照 TapeOut 术语表的规矩:每条定义都指向它的来源。我们的来源不是"官方页面",而是文件与门禁。

术语一句话在哪儿被强制 / 怎么查
内容根一版站点的名字,等于它的内容哈希/verify.html 浏览器内重算 ✓
载体(reveal)把数据放进 tapscript 见证的一笔交易,一箱约 9 KBcontainer_anchor verify --carrier=da ✓
持有一个 UTXO;类别、数量、所有者都写在它的叶字节里hold check;移动需所有者签名(矿工强制 ✓)
规则叶AUTH ‖ SIGHASH ‖ ownerPub ‖ OP_CHECKSIGVERIFY ‖ 身份标签tapeout_check(叶布局被钉住 ✓)
ePrefix31 字节;sighash 的第 32 字节被 grind 成 0x01,叶强制为 0x02hold self-test ✓
持有日志追加式记录;顺序就是历史(排序会把转移排到出生之前)holdingsFromLog · tapeout_check ✓
承诺 / 揭示 / 判决先密封、后揭示、再判;说不清就记 undecidablemsg_check ✓
服务清单/.well-known/bringup-service.json:身份、方法、错误码、expires直接打开 ✓ · cf_check ✓
floor(水位)记住见过的最高 expires,更旧或相等的清单一律拒floorVerdict · msg_check ✓
expires单调计数器,不是时间锁:本链无 CLTV,过不了期就停不了清单里自己写明 ✓
版本表追加式版本清单;可核对,但不可自发现(需要外部指针)versions.mjs · cf_check ✓
PoD 抽签H(epoch‖startPoint‖miner‖nonce) < target;起点绑定 prevTxidisEarnedBound · token_check ✓
成本门槛中签并且销毁 ≥ burnFloor,才算一次发行isEarnedWithBurn · token_check ✓
门禁 / gate一个能让某个主张变红的离线检查;断言数被 ci 锁定node tools/ci.mjs ✓
no gate一条无法被测试的声明,必须明写并说明原因docs/REVIEW.md §4 ✓