莫信解读|Ordinals 作者 Casey 发布 Filepack:一个给文件分享用的打包格式,没有链也没有币

11 月 11 日中午,Ordinals 和 Runes 的作者 @rodarmor 发布了 Filepack 0.0.12。这个项目他从 2024 年 8 月底做到现在,合了 969 个 PR。他自己的说法是:一个没人用的项目做到 969 个 PR,有点惨。

Filepack 跟比特币不沾边:不上链,没有代币,也发不了资产。讲讲它是什么、拿来干什么,再看看能不能和 Ordinals、Runes 接上。

🐋 一分钟版

- 是什么:一种打包格式。把一个文件夹打成「包」,记下每个文件的哈希、谁签的名、里面装的是什么
- 用在哪:去中心化的文件分享,BT、资源站、档案站这类场景
- 有什么:Rust 写的命令行工具,加一个自带网页的包服务器,代码放弃版权(CC0)
- 现在到哪:0.0.12,格式还会改,不保证向后兼容。演示站 filepack.com 上放了一批免费的包

github.com/casey/filepack

🐋 一个包里有什么

包就是一个普通文件夹,多一个清单文件:

下载的人对一下指纹,就知道文件有没有被改过;再验一下签名,就知道是谁发的。

🐋 为什么要做

Casey 在文档里拿 Netflix 和 BT 比:Netflix 上每部电影都有海报和简介,点开就能播,也搜得到;BT 上同一部电影是一行格式乱七八糟的文件名,没有封面,下下来不一定能播。他还开了个玩笑,约人「BitTorrent and chill」,对方只会一脸茫然。

片源 BT 上都有,差的是一套机器能读的元数据。服务器读到包里的元数据,就能自动做出带封面、能直接播放的页面,filepack.com 就是这么展示的,连项目文档本身也是一个包。

和现有工具比(按项目文档里的对照):

- BT:现在最常见的 v1 种子用的还是已经不安全的 SHA-1,同一个文件放进不同种子哈希都不一样,种子里也不能再套种子。Filepack 里同一个文件在哪个包里哈希都一样,包里能套包
- IPFS:支持一大堆哈希算法和传输方式。Filepack 只用一种哈希、一种签名,不联网也能打包、签名、校验
- 包就是普通文件夹,照样可以用 BT、Usenet、普通网站传

🐋 和 Ordinals、Runes 有什么关系

Casey 这次的推、博客和仓库都没有提到比特币。三样放在一起看:

- Ordinals:内容写进比特币区块,跟着聪走,可以买卖
- Runes:比特币 UTXO 上的同质化代币,可以买卖
- Filepack:文件放在链下,留下的只有一串 32 字节的指纹,没有资产这一层

Filepack 本身发不了资产,也没有地方可以交易。

🐋 能不能接上(以下是我的猜想)

Casey 没说过要这么做,下面是我顺着它的设计想到的:

- 把指纹刻进铭文:铭文只装 32 字节的指纹,链下挂几个 G 的专辑、视频,就不受区块大小的限制,和以前 NFT 指向 IPFS 的做法类似。链上只能证明「这个指纹存在过」,文件还得有人一直托管
- 用比特币给包做时间证明:Filepack 签名里的时间是发布者自己填的,指纹刻上链之后,就多了一个「这个包在某个区块之前已经存在」的证明
- 钥匙不通用:Filepack 用 Ed25519,比特币钱包用 secp256k1,钱包没法直接给包签名,要接还得多做一层对应
- Runes 能接的地方不多,Filepack 的设计里没有付费和代币的位置

比特币生态已经有项目表态:@SAT20Labs 11 月 11 日晚引用了 Casey 的帖子,说想看看 Filepack 能不能配合他们在 SatoshiNet 上刚推出的去中心化存储 DKVS。

🐋 发布当天就有人拿它发了币

11 月 11 日晚上,有人在 forks 上拿 filepack 仓库发了币。forks 是一个给 GitHub 仓库发币的平台,币在 pump.fun 上发,创作者手续费分给发射人、仓库作者和平台。发帖的人后来删了原帖。

Casey 这次的推、博客和仓库里都没有提到任何代币。

🐋 接下来

Casey 列的路线图:

- 每个文件的 BLAKE3 哈希和大小
- 所有哈希一层层合成一个根哈希,叫「指纹」,整个包就用它当 ID。里面改一个字节,指纹就变
- 发布者可以用自己的 Ed25519 密钥签名,签的是指纹,可以带一个时间
- 一份格式统一的元数据:标题、作者、封面、简介,内容是音频、图片、视频还是网页

……

——
完整版见 X @musinoot