收据应该由收到钱的人来开——Cairn 证明「抵达」
来源:dev.to — 2026-09-06
📋 概述
DEV「慷慨周挑战」投稿。每个捐款平台都只证明一件事:钱离开了你的账户。而你真正关心的第二件事——它到达了一个人——的收据却由持有钱的那个组织开具,于是「你信任的对象」和「出具证据的对象」是同一个。Cairn 改变了谁出具收据:把 SOL 锁进任何中介都打不开的托管里,唯一能移动它的是一笔来自收款人自己钱包的签名,而该交易携带一段录音的哈希,录音里收款人用自己的话说收到了什么。三个命令中 cairn verify 重新下载录音、重新哈希、从零重建收据并与链上比对,甚至不需要作者服务器存在。
🔑 核心要点
- 授权与证词是两条被刻意分开的轴:授权是收款人在创建时指定的密钥发出的 ed25519 签名、由程序强制,任何服务器密钥/操作者密钥都不能替代;证词则是录音——被哈希并上链、防篡改且绑定到恰好一笔交易签名,但录音本身不授权任何东西
- 核心是单句可核验命题:一份特定录音未被改动、由持有特定密钥者、在移动特定资金的那条指令里被提交——钱移动必有收据、收据存在必有资金,中间没有空窗
- 哈希编码处处承重:除了转写稿全部字段定宽,locale 用固定 8 字节而非字符串使编码是单射的、无长度前缀,杜绝 ("ab","c") 与 ("a","bc") 撞出同一 preimage
- 为何用 CLI 而非浏览器:cairn-core 同时编译到链上与主机,程序、CLI、API 共用同一个 receipt_hash();若浏览器另写一份就得手抄规范化逻辑,而 JS 的 \s 与 Rust 的 whitespace 对 U+FEFF 意见不一
- ElevenLabs Scribe 承担转写并作为锦上添花而非依赖:哈希覆盖音频字节,有无转写收据都成立——录音是证据,转写只是方便后来阅读它的人
💡 金句
The receipt comes from the person at the end of the chain, and the chain welds it to the transfer.
👍 0
👎 0
← 返回 dev.to 首页