Language

Choose a language

专题 · Explainer

后量子花费,TensorCash 从创世区块起就有

太长不看 —— 后量子花费从创世区块起就在 TensorCash 上线:

  • 新增一种地址类型 tc1z…(Witness v2)。共识禁用了 Taproot 的 key-path 花费;标准钱包模板承诺到单个 ML-DSA leaf(FIPS 204,经由 liboqs),所以钱包 生成的 tc1z 花费就是后量子的。
  • 能装 原生币和已发行资产——主网上已经有了(区块 20,246 里有一份 COMPUTE 期权 存放 在 v2 输出中;从这类输出里 ML-DSA 花出去 的交易还没出现)。
  • 收款不加价;从里面花出去大约是普通花费的 10 倍——那个好几 KB 的格签名只在 花费时才出现。
  • 用之前先看两条:在你自己掌控的硬件上签名(liboqs 并不打算用于处理敏感数据的 生产环境),以及 每把密钥都单独备份(目前还没有助记词派生)。

大多数链把后量子安全当成「以后再说」的问题——等量子计算机真的逼近了,再来一次注定 吵翻天的迁移。TensorCash 是创世分叉,没有历史 UTXO 要抢救,所以我们没等:从创世区块 起,一条后量子花费通道就和大家熟悉的 ECDSA/Schnorr 通道并行跑着。要不要用,取决于你 往哪种地址里打钱。这篇就用大白话过一遍——它是什么、怎么花、能装什么,以及动手之前该 知道什么。

新的地址类型:tc1z…

TensorCash 同时跑着两条花费通道,按地址逐个选:

  • Witness v0/v1——ECDSA/Schnorr,从 Bitcoin 继承下来的成熟那一套 (tc1q… / tc1p…)。
  • Witness v2——只走 script path 的 Taproot 栈,标准后量子模板用的就是它。地址是 tc1z…(测试网 tct1z…,regtest tcrt1z…)。

tc1z 就是一个普通的 32 字节 Taproot 输出,bech32m 编码——长度和形状跟 v1 地址一模 一样,只是版本字符从 p 换成了 z(校验和跟着变)。往它上面收款没什么特别;变的是 怎么花出去。

只留 script path:key path 被关掉了

一个 Taproot 输出,可以用一个 key-path 签名花掉,也可以用一段 leaf script 花掉。在 Witness v2 上,key path 被共识禁用了——v2 输出 只能 走 script path。

这一点为什么要紧:key-path 花费是用 secp256k1 上的一个 Schnorr 签名来授权的,而这条 曲线正是量子计算机会攻破的那条。把它关掉,就意味着 任何 tc1z 输出上都没有 key-path 签名可攻击。至于 leaf 里到底要求什么,那是脚本自己的事——TensorCash 标准的 generatemldsaaddress 模板把它做成 单个 ML-DSA leaf,于是花费权限落在 ML-DSA 加上 Taproot 的哈希承诺上,完全没有 secp256k1 那条路。自定义的 v2 脚本可以用别的 leaf,也可以混着用,所以 tc1z 这个前缀只能证明 key path 关了,不能 证明策略就是 纯 ML-DSA。本文后面讲的都是那个标准模板。

为什么 secp256k1 会倒,格却不会

secp256k1 的安全性建立在离散对数问题上——你的公钥是一个点 k·G,安全与否取决于没人 能还原出私钥 k。这个问题藏着一层 周期性 结构,而 Shor 算法 正是为找出这种 结构而生的:量子计算机只要够大,就能把 k 直接算出来。ML-DSA 依赖的则是带结构的 module-lattice 问题,目前没有类似 Shor 那样的多项式时间攻击。量子算法仍然能削掉 一部分攻击成本,所以 ML-DSA 的参数集在选取时,就同时按经典估计 量子估计去对齐 NIST 的安全强度分级——这是有证据支撑的信心,不是「不会再出现更好的攻击」的证明。

签名:ML-DSA(FIPS 204),经由 liboqs

leaf 验证的是一个 ML-DSA 签名——NIST 于 2024 年 8 月以 FIPS 204 标准化的 Module-Lattice DSA——用的是 liboqs(Open Quantum Safe 项目)里的实现。一共三套 参数集,创建地址时选一套:

参数集NIST 等级签名大小大致相当于
ML-DSA-44等级 2~2.4 KBAES-128 量级
ML-DSA-65(TensorCash 默认)等级 3~3.3 KBAES-192 量级
ML-DSA-87等级 5~4.6 KBAES-256 量级

TensorCash 默认用 ML-DSA-65,是在体积和安全之间取的折中(FIPS 204 把三套都标准化 了,并没有指定用哪一套)。签名本身是 witness 栈上的一个元素,由新的 OP_CHECKMLSIGVERIFY 操作码对着公钥去校验,作用在做了域分离的 TapSighash/ML-DSA 上——所以它撑大的从来不是你 收款 的那个输出,只有你 花费 的那个输入。记住这一 点,下面讲手续费时要用。

在 TensorCash 桌面钱包里创建后量子收款地址:地址类型下拉框选的是「Bech32m (Post-Quantum)」,安全级别选的是「Standard (ML-DSA-65, recommended)」,页面上有一条绿色的 Post-Quantum 提示条和两条警告。

在钱包里就是两个字段的事——地址类型选 Bech32m (Post-Quantum),安全级别选 ML-DSA-65——应用本身也标出了本文说的同样两条注意事项:这把密钥不是 HD 派生出来 的(记得备份),以及花起来更贵。(图中名称和数字均为占位。)

tc1z 地址能装什么

原生 TSC: 一直都行——v2 输出和别的输出一样能装币。

资产: 能,而且不是纸上谈兵。TensorCash 的资产本身就是一等公民 UTXO,和别的 UTXO 一样可以待在 v2 输出上。主网上已经发生过:在 区块 20,246,一笔交易把两个单位的 COMPUTE.V26P100K(一份 COMPUTE Index 期权)转 了一个 钱包创建的 tc1z… 输出(交易)。这笔交易的输入是普通的 Witness-v1 花费, 所以严谨的说法是:已发行资产可以 存放 在 v2 输出里——还没有出现从这类输出里 花出去 的、由 ML-DSA 认证的花费(公钥和 leaf 在该输出被花掉之前一直藏着)。某个 资产允不允许走后量子通道,取决于发行方的政策,但这个能力是真实的,今天就已经在线上。

TensorCash 桌面钱包的总览页,显示一笔刚收到 COMPUTE.V26P100K 资产的交易,标签为「ml-dsa」。

同一件事,从钱包这边看——一份 COMPUTE 期权进到一个 Witness-v2 输出里,标签是 ml-dsa。(钱包名称、余额以及其他金额和地址都是占位;这笔 COMPUTE 收款是区块 20,246 里真实的那笔交易。)

explorer.tensorcash.org 上,v2 输出会出现在对应的交易页面 (/tx/…)——一旦被花掉,那个好几 KB 的 ML-DSA witness 就直接看得到——资产则有自己 的 /asset/… 页面。

手续费:花的时候付钱,收的时候不付

手续费按重量收,ML-DSA 签名是 2.4–4.6 KB,Schnorr 才 ~64 字节——但这份重量只有在你 花掉 一个标准 ML-DSA v2 输出时才会出现。

收款 不多花一分钱:输出还是那个 32 字节的程序。区块 20,246 那笔转 v2 输出的 交易,342 vB 付了 363 sats——没有任何 ML-DSA 溢价,它的体积就是普通的输入、输出 加资产元数据。格签名要到后面花费时才出现。

花费成本主要由固定大小的签名、揭示出来的公钥脚本和 control block 决定。Segwit 的 4× witness 折扣能缓解一些,但按那个区块同样的 ~1.06 sat/vB 算,一笔简单的 1 进 2 出花费 大致是这样:

花费类型交易大小手续费相对标准
标准 Taproot(Schnorr)~155 vB~165 sats1.0×
ML-DSA-44~1,084 vB~1,151 sats7.0×
ML-DSA-65(默认)~1,466 vB~1,556 sats9.5×
ML-DSA-87~1,956 vB~2,076 sats12.6×

所以默认的后量子花费大约是 普通花费的 10 倍量级(单看花费的那个输入,就从 ~58 vB 涨到 ~1,370 vB)。钱包里那句「~70×」的警告量的是另一回事——那是签名本身的膨胀 (~3.3 KB 对 ~64 字节);有 witness 折扣和固定开销摊着,整笔交易的溢价降到表里的 ~10×。换成绝对数,按这个费率 ~1,556 sats 就是 0.0000156 TSC。这笔溢价是实打实 的,每花掉一个后量子输出就要付一次,而且只由你自己承担——照一笔大型多签花费的 量级去预算就行。

签名:用你自己掌控的硬件

有一条得老实说:ML-DSA 那部分代码用的是 liboqs,而 liboqs 项目自己 不建议在生产环境中依赖这个库去处理敏感数据。它声称不存在依赖秘密值的分支,也做了 一些侧信道检查,但并没有覆盖所有时序通道或物理通道——而且今天硬件钱包对它的支持基本 等于没有。所以 请在你自己拥有并信任的硬件上签 ML-DSA v2 交易,冷存储最好离线签, 别用可能观测到时序或功耗的共享签名机、托管签名服务。

两条运维上的事实:

  • 目前还没有助记词派生——这是钱包的限制,不是算法的(FIPS 204 的密钥可以从 32 字节种子重新生成)。每把密钥都必须单独备份;generatemldsaaddress 在创建时就把 私钥返回给你,方便你备份。钱包文件丢了,密钥就跟着没了。
  • 加密钱包下的 ML-DSA 签名 还在收尾;现阶段请走直接传入密钥材料的 RPC 流程。

地址卫生:ML-DSA 密钥在花费前一直藏着

每次收款都换个新地址——这在哪条链上都是好习惯,而且不花钱。这里还有个不错的性质:在 标准模板里,ML-DSA 公钥是待在 Taproot leaf 内部 的,只有输出被花掉时才揭示,所以一 个没花过的输出压根不暴露任何后量子密钥。把边界说清楚:金额、资产元数据和交易图谱和任 何 Bitcoin 式的链一样,仍然是公开的,藏起来的只有 密钥材料。所以一个收过钱、但从 未花费过的后量子地址,不会给攻击者留下任何可以拿去硬算的 ML-DSA 密钥。

后量子,从创世区块起

结论:TensorCash 从创世起就提供了一个后量子花费选项——不用迁移,没有激活窗口, 而且(因为是创世分叉)也不存在暴露在外、得赶紧转到安全地方去的历史余额。一枚币走不走 这条通道,取决于你选哪种地址;而它已经在被用了:区块 20,246 里就有 COMPUTE.V26P100K 存放在一个 v2 输出中。

运营方大可以继续把热的、短期停留的余额放在 v0/v1 上——工具和硬件都成熟,而且密码分析 不是一夜之间的事。长期限的托管面对的是另一种敞口——针对授权的 先存下来、以后再伪造 风险——这种情况下,即便 witness 更大、签名栈更年轻,标准的 ML-DSA v2 模板也可能是值 得的。

完整的构造——编码、共识规则、sighash、威胁模型——都在后量子花费白皮书里。 想试试的话,在桌面钱包里用 generatemldsaaddress 生成一个 tc1z 地址,往里打点钱,然后在区块浏览器 上看着它。后量子通道不是路线图上的一项——它从创世区块就在那儿。

本文由 Imosuke Takakuni 以化名撰写。

我们的使命

TensorCash 将有用的 AI 工作转化为开放货币。

走出土豆时代,正如我们白皮书所说……

我们相信,人们应当拥有更便宜、更高效的金融体系,以及一种为所有人服务的更公平的 AI。TensorCash 让 AI 的工作被验证、可被验证。验证给 AI 一张脸:证明是哪个模型完成了工作、它看到了什么、遵循了哪些规则。这样任何人都可以以最有效的价格放心地买卖 AI 工作。结果是一种更可及、更可持续的 AI,驱动新一代的金融体系。今天的货币就是土豆:陈旧、转移昂贵、被困在收手续费的人背后。TensorCash 是一种更高效地转移和储存价值的方式——它把 AI 的算力交给所有人,把控制权向外推开,而不是把它集中起来。

— Imosuke Takakuni

关于我们

Imosuke Takakuni 是一个笔名。这个日文名字既是对中本聪的致敬,也呼应了我们白皮书中的寓言故事 Potato Land。使命比任何单一贡献者都更宏大,它应该超越个人魅力与时代。去中心化为每个人服务,否则毫无意义。我们希望每个人都能以平等的身份参与 TensorCash。

打开使命页面 →

参与其中

如何获取 TSC

TensorCash 不出售 TSC。项目没有进行任何代币销售、预售、ICO、IDO 或官方融资轮。新的 TSC 通过主动挖矿进入流通。你可以挖矿获取,或从已持有的人处点对点接收,也可以先运行钱包,为主网上线做好准备。

TensorCash 不进行官方销售。请勿向任何声称出售官方额度的人汇款。

参与其中

运行 Core 钱包

最实际的第一步是运行 TensorCash Core,创建一个钱包,并熟悉 RPC 接口。目前公开指南从 regtest 开始,让你可以在接触主网资金之前先在本地创建地址、移动代币。

参与其中

捐赠

主网捐赠地址尚未公布。以下 TensorCash 测试网地址仅供测试用途,由正在运行的 Core 钱包生成;请勿向其发送主网资金。

参与其中

传播项目

最简洁的说明是:TensorCash 将有用的 AI 工作转化为开放货币。把使命页面、旗舰白皮书或「参与其中」页面分享给一位关注廉价金融基础设施、更公平 AI 或开放基础设施的人。

TensorCash 将有用的 AI 工作转化为开放货币。

参与其中

发行计划

Bitcoin 确立了基准:仅凭区块奖励,无酌情增发,整数精度总补贴为 20,999,999.97690000 BTC。TensorCash 坚守固定供应的纪律,同时为这个算力挖矿网络调整了发行曲线;已实现的递推终止于 21,184,153.03530240 TSC。

按区块数计的供应量

已发行总补贴

来自 Core 的整数精度补贴规则:Bitcoin 减半对照 TensorCash epoch 衰减计划,展示前 6,000,000 个区块的数据。

视程
...
BTC @ 6M
...
TSC @ 6M
...
BTC 与 TSC 累计补贴随区块数的变化 在 6,000,000 个区块时,Bitcoin 已发行 20,999,999.92710000 BTC,TensorCash 在已实现的 epoch 衰减计划下已发行 20,979,987.36365355 TSC。
区块 0
BTC 供应量 0 BTC
TSC 供应量 0 TSC
BTC:50 BTC,每 210,000 个区块减半 TSC:715 TSC,715 个区块 epoch,奖励 × 3/5,epoch 长度有上限