
Kaspa 详解:blockDAG、每秒十个区块,以及多重签名如何运作
大多数工作量证明链一次只产出一个区块:矿工找到一个区块,所有人在它之上继续构建,而同一时刻找到的任何竞争区块都会被丢弃。Kaspa 从另一个问题出发:如果并行产生的区块根本不会被浪费呢?
答案就是 blockDAG,这也是 Kaspa 能在保持工作量证明的同时每秒产出十个区块的原因。随着 SSP 即将支持 Kaspa,下面来看看它有何不同,以及多重签名在它上面如何运作。
从链到 DAG
在比特币中,如果两名矿工几乎同时找到区块,网络会暂时分叉。最终一个区块胜出,另一个成为孤块——它背后的算力就此白费。为了让孤块保持罕见,比特币将出块目标定为每十分钟一个,这段时间足以让每个区块在下一个区块被找到之前传遍整个网络。
Kaspa 取消了这一限制。每个新区块可以引用多个先前的区块,而不只是一个,因此并行创建的区块都会成为账本的一部分。这种结构不再是单一的链,而是一个有向无环图——也就是 DAG。
但 DAG 本身有个问题:如果两个并行区块包含相互冲突的交易,以哪一笔为准?Kaspa 的共识协议 GHOSTDAG 通过对所有区块进行一致排序来解决这个问题。它识别出由诚实矿工构建、彼此连接紧密的多数区块,并把所有区块排成唯一公认的顺序,使每个节点对“哪笔交易在先”得出相同的结论。
结果是,Kaspa 能以每秒十个区块的速度运行——这是自 2025 年 Crescendo 升级以来的出块速率——而不会出现在这种速度下足以拖垮一条链的孤块浪费。它仍然依靠工作量证明来保护账本。
这在实践中意味着什么
- 确认迅速。 交易大约一秒左右就会被打包。与任何链一样,对于较大金额,确认深度依然重要——每在其上构建一个区块,交易就更难被撤销——但这个深度累积得很快。
- 是币,而不是账户。 Kaspa 与比特币一样采用 UTXO 模型:你的余额是一组独立的币,花费时会组合其中一部分,并把找零退回给你。
- 修剪。 Kaspa 节点不会永久保存完整历史;较旧的区块数据大约在一天半后就会被修剪。当前状态始终可以验证,但长期的交易历史由索引服务和区块浏览器保存,而不是由每个节点保存。
- 最小单位很小。 1 KAS 等于 100,000,000 sompi,sompi 是 Kaspa 的最小单位。
手续费按“质量”计量
比特币按字节为区块空间定价。Kaspa 则按质量(mass)定价,它综合了几项成本:
- 大小——交易占用多少字节。
- 签名操作——每次签名校验都会增加固定的量,因此多重签名花费比单密钥花费更重。
- 存储——一条名为 KIP-9 的规则会让产生大量微小输出的交易变得昂贵,以防账本被粉尘填满。
对于日常转账,这一切几乎无感:手续费很低。但它解释了 Kaspa 的一些特别之处,比如为什么把一笔很小的找零退回给自己可能会被拒绝,以及为什么钱包有时需要在大额付款之前先合并许多小额币。
Kaspa 上的多重签名如何运作
Kaspa 刻意只保留了很少的地址类型。kaspa:q 地址由单个密钥控制。kaspa:p 地址是一种支付到脚本哈希(P2SH)地址:它承诺一个脚本,花费时需要公开该脚本并满足其条件。
多重签名金库就是一个 kaspa:p 地址,其脚本规定“这 N 个密钥中必须有 M 个签名”。Kaspa 使用 Schnorr 签名,在共识层面每个脚本最多支持 20 个密钥,并会转发最多含 15 个密钥的标准交易。有两个细节让它用起来很顺手:
- 交易 ID 不包含签名。 在任何人签名之前,你就已经知道交易的最终 ID,这让跨设备协调签名变得更简单。
- 没有 SegWit 或 Taproot 层。 Kaspa 只有三种标准输出类型——单密钥、它的 ECDSA 变体,以及支付到脚本哈希——所以只需要把一种多重签名金库做对。
有一个细节对安全很重要。Kaspa 签名只承诺它所签署的那个具体输入的金额,而不是所有输入的金额。因此,一个严谨的多重签名钱包会让每个签名方自行查询正在花费的币,而不是信任另一台设备提供的金额。
SSP 中的 Kaspa
SSP 正在以与其他所有链相同的二取二模式加入 Kaspa:你的金库是一个 kaspa:p 地址,由 SSP Wallet 中的一个密钥和 SSP Key 上的一个密钥共同构建,每台设备都会独立核对自己正在签署的内容。SSP Enterprise 将支持采用 M-of-N 审批的 Kaspa 金库。
该功能目前尚未上线——Kaspa 支持正处于最后测试阶段,发布时会随版本说明一同公布。其背后的库 @runonflux/kaspa-core 已经开源,任何人都可以阅读或复用。
坦率的总结
Kaspa 采用了一个熟悉的思路——用工作量证明保护 UTXO 账本——并通过让区块构成 DAG,消除了“一次只出一个区块”的瓶颈。结果是出块快、手续费按质量而非字节计算,以及围绕单一脚本类型构建的简洁多重签名设计。
与任何链一样,保护你资产安全的并不是出块速度,而是谁掌控着密钥——在多重签名中,还取决于需要其中多少个密钥达成一致。


