跳过正文

Bitcoin Silent Payments 实战 2026:一个可复用的收款地址

·508 字·3 分钟
Cora Aegis
作者
Cora Aegis
隐私是权利;工具是我们行使它的方式。
目录
一位银色短发、红色眼眸的女性,神情沉静,正看着一个发光的地址向外散开,化作许多互不相连、彼此独立的交易输出

关于资金:CypherpunkGuide 不投放监控型广告——没有广告网络,没有跟踪像素,也没有软文。运营依靠透明的资金来源:现阶段是读者捐赠,将来会加入订阅以及符合编辑方针的联盟推广。我们面向读者,而非广告主。

收 Bitcoin 这件事的正中央,藏着一个安静的小矛盾。每一份指南都叮嘱你:地址绝不要重复用——地址复用,是链分析师能拿到的最干净的信号之一。可一旦你想收钱——个人简介里挂个打赏地址、README 里留一行捐赠地址、一张开出去就忘掉的发票——你就需要一个固定不动的地址。地址要轮换,身份要固定,这两头,是往相反方向拽的。

Silent Payments(BIP-352)就是化解它的那套协议:你只公布一个地址,而每一个付款给你的人,都会由它推导出一个各不相同的链上地址——于是盯着链看的观察者,只看到一堆互不相干、没有共同去向的输出。这是这些年来收款隐私上最要紧的进展之一。它同样被广泛误解,在各家钱包里只落地了一半,还带着一笔实打实的代价,而那些热情洋溢的介绍文章,往往把这笔代价一笔带过。

我用化名写作,把手里的每一枚币都当成早已被人盯上,所以我不想仅凭信任就接受这套协议。动笔写这份指南之前,我先用 Python 把 BIP-352 从零实现了一遍——底层通过 coincurve 库调用 libsecp256k1——再拿规范里的官方测试向量去跑:发送的 28个子用例全部通过,接收的 29个子用例也全部通过,逐比特一致,全程不到 200毫秒(随文日志)。下面就是它能用的那个版本——它保护什么、2026年哪些钱包真正实现了它,以及在你依赖它之前该弄懂的那笔扫描开销。

那句宣传真实情况藏着的代价
“一个地址,隐私拉满”一个地址,但只护得住收款这一层金额,还有你的付款人,都原封没动
“它取代了混币”它跟 CoinJoin 解决的不是一个问题它不混币;它切断的是复用留下的那条线
“公布出去,就不用再操心”公布是免费的;收款可不是总得有人替你把整条链扫一遍,才找得出你的币
“现在每个钱包都支持了”发送已经普遍;收款要新得多得逐个钱包、逐个版本,把发送和收款分开核

Silent Payment 到底是什么(以及它护不住什么)
#

**一个 Silent Payment,就是一个由 BIP-352 定义的可复用 Bitcoin 地址:你只公布一次这串字符,付款人就能凭它,为你推导出一个独一无二、且无法彼此关联的链上地址。它保护的是收款这条连接——同一个身份收到的、一笔笔本来各自独立的款项之间的关联——仅此而已。**它不隐藏金额,不保护你的付款人,对那些把币和你名字绑在一起的链下记录,也无能为力。

这个地址,是把两个公钥——一个 scan key、一个 spend key——编码在一起。主网上它以 sp1 开头,测试网上则以 tsp1 开头(其中可读前缀(HRP)是 sp / tsp,那个 1 只是 bech32m 的分隔符)。当有人付款给你,他的钱包会把自己的输入密钥和你的 scan key 凑到一起,算出一个共享密钥,再由这个密钥推导出一个全新的 Taproot 输出——只有你才认得出、也只有你才花得动。任何两个付款人,都不会产生相同的输出;而且不存在一笔昭告这条关联的"通知交易"——这正是它比更早的 BIP-47 支付码方案强的关键一点。

它护不住的地方,值得直说,因为"隐私"这个词,在这个圈子里常常担着它其实配不上的分量。Silent Payments 是一件收款工具。你收到的金额,照旧明明白白写在链上。付款人自己的隐私,是他的事,不是你的事。而针对一个具名化名,最狠的那记攻击,往往根本不在链上——而在你写下的文字、在元数据、在那个币与护照相遇的 KYC 交易所。这正是链上追踪到底怎么运作讲的那套相加模型,而在链下那一头,则是AI 去匿名化讲的事。Silent Payments 补上的,是一个具体而宝贵的缺口。它是必要的,却不是充分的。

2026年,哪些钱包支持 Silent Payments
#

**支持是真的,但很不均衡,而最有用的一个习惯,就是把发送收款分开来看——它们上线的时间不同、落在不同的钱包里,有时相隔好几年。**给一个 Silent Payment 地址发款,如今已经稀松平常;而能收款到这样一个地址——这要求钱包去扫描整条链——则要新、也要罕见得多。下面这张表,反映的是截至 2026-07-09 的一手资料;在你动真金白银之前,请对照各个项目自己的发布说明再核一遍,因为这份名单一直在变。

钱包发送收款说明(截至 2026-07-09)
Sparrow✅ v2.3.0(2025年10月)✅ v2.5.0(2026年5月)桌面端最完整的实现;经 BIP-375 的硬件钱包签名于 v2.4.0(2026年2月)加入。最新为 v2.5.2
Cake Wallet首个功能完整的移动端钱包(v4.18.0,2024年5月下旬)。采用设备本地扫描——更费电,同步也更慢
Bitcoin Core⏳ 尚未合并⏳ 尚未合并libsecp256k1 密码学模块已合并(PR #1765);钱包层面的支持仍未合入(PR #35301 / #35302

这张表省去了两句提醒。其一,收款才是真正要紧、也最滞后的那一栏——一个钱包能让你付款到朋友的 sp1 地址,往往要比它能持有你自己的这样一个地址,早了好一阵子。其二,一个钱包怎么扫描,是一道隐私上的取舍,不只是性能问题——这正是接下来两节要讲的。至于你打算这样收下的那些币,最初该怎么弄到手、又不在交易所那头种下身份关联,可以看怎样不做 KYC 买 Bitcoin

发送:简单的那一半
#

**给一个 Silent Payment 地址发款,是这套协议里直截了当的那一半,因为发送方所有的活儿都在本地干完,从头到尾不用扫描任何东西。**在一个支持它的钱包里——桌面端的标杆体验是 Sparrow——你把收款人的 sp1… 地址粘进发送框,跟填任何别的地址一模一样,剩下的推导,钱包在你看不见的地方悄悄完成。

往里看:你的钱包会取出它正要花掉的那些输入的私钥,和收款人的 scan key 凑在一起,算出一个共享密钥,再用这个密钥,为这一笔具体的付款推导出一个一次性的 Taproot 输出地址。因为推导时把你的输入也揉了进去,所以同一个收款地址,每换一个人——或每换一组你自己的币——去付它,落到链上就是一个不一样的输出。发送方除了那个已公布的地址,从收款人那儿什么都不需要:不用来回一趟,不用通知,不用任何交互。这正是发送这一侧的支持最先到位、如今又最常见的原因。而这种不对称,就是下一节的全部故事:发送能躲开的那笔开销,恰恰是收款躲不掉的那一笔。

收款:没人提醒你的那笔扫描开销
#

**要收 Silent Payments,你的钱包必须把区块链上一个个候选输出翻出来,逐一拿你的密钥去试,才能找出那些冲着你来的付款——链上并没有一个地址供你直接"一查了事"。**这笔扫描开销,是 BIP-352 最核心、也最少被人提起的那处取舍,而你的钱包怎么消化它,同时决定了你的便利和你的隐私。公布地址是免费的。找出有谁往它打了款,就不是了。

如果你自己跑一个全节点,扫描就是在区块数据上做一次本地计算——吃资源,但私密,因为没有任何东西离开你的机器。你想用一部手机、或一台没有节点的笔记本来收款时,麻烦就来了。这时就轮到索引服务器登场了。在 Sparrow 里,这个服务器是 Frigate(一个 Silent Payments 的 Electrum 服务器,最新版 v1.5.3),并且有一个公共实例跑在 frigate.2140.dev。你不能用浏览器去"访问"它——它讲的是 Electrum 协议,不是 HTTP。在 Sparrow 里,你在 Preferences → Server → Public Server 里选它,然后测试连接。

下面这一段,是那些欢天喜地的教程会跳过的,而它是一处隐私要害,不是脚注。要让一个服务器替你扫描,你的钱包得把你的 scan 私钥和你的 spend 公钥交给它。哪怕这个服务器只把它们放在内存里——Frigate 就是这么设计的——一个心怀恶意、或被人攻陷的索引服务器,也能拿它们,把 Silent Payments 本该瞒住观察者的那幅图景,原原本本地重建出来:你收到过的每一笔款的完整清单。bennet.org 上那份实操指南把话挑明了——一个坏掉的服务器"能把你的收款历史,重建成 Silent Payments 本该阻止的那副模样"。所以诚实的说法是一道光谱:你自己的节点,完全私密,但更费工夫;一个公共索引服务器,很便利,但要你把收款历史托付给它的运营者去信任。要有意识地去选,别让"我用了 Silent Payments"变成一种虚假的安全感——尤其当替你扫描的,是一台陌生人的服务器。

我亲手复现了一遍 BIP-352
#

**要信一套隐私协议,最快的办法,就是把它跑起来,拿规范自己给出的数字去对——我干的正是这个,而不是把那些说法当成信条照单全收。**我从零写的这份实现,把官方测试向量的全部 57个子用例都精确复现了出来——发送 28/28,接收 29/29——完整的日志连同脚本,都随这篇文章一起附上(bip352-verification.txt),你可以自己动手复现一遍。不过,比通过数目更有意思的,是盯着一笔付款,一步一步看它怎么推导出来。

拿一个已公布的地址,把一个发送方要算的东西追一遍。下面这些值都是真的,取自规范自己的测试向量:

步骤它是什么值(已缩略)
a发送方各输入私钥之和7ed265a6…56345f86
A对应各公钥之和032562c1…dedc4bee
input_hash绑定所花那几枚具体币的哈希5bfe5321…b7ad0668
ecdh双方各自独立推导出的共享密钥(input_hash · a · B_scan028158af…3e14d80d
t₀微调值 tweak,hash(ecdh‖0)f438b401…c2e7eef6
outputB_spend + t₀·G(即那个链上地址)3e9fce73…de46e3c1

接下来,是让这一整套都值回票价的那个性质。我自己另外造了第二个、彼此独立的发送方——不同的密钥材料,一枚假想中的不同的币——去付同一个已公布的地址(这里没有广播任何交易;和上面那次追踪一样,纯粹是推导)。它的输出是 3f1dd702…879b98ad。两笔付款,一个地址,落到链上后,这两个输出却毫无瓜葛:没有共同地址,也没有任何看得见的关联。唯有握着 scan key 的那个人,才能跑一遍反向计算,认出这两个都是自己的。这就是收款隐私的那份保证——你可以在这段追踪里眼看着它成立,而不必把它当成一句断言去信。它正是Bitcoin 链上隐私一文里拆解的那个复用难题、在链上的对照面——复用白白递给分析师的那种聚类,恰恰就是这段推导死死扣住、不肯交出的东西。

几处坑:多签、标签,以及 K_max 上限
#

**除了那笔扫描开销,还有三处实现细节,决定了 Silent Payments 合不合你的用法——而每一处,都是那种你该在依赖它之前、而不是之后才弄明白的东西。**这些都是那些"它如何运作"式的科普文章,很少会拐进去的犄角旮旯。

  • **多签和协作型交易,很别扭。**因为发送方是从正被花掉的那些输入的私钥里推导出这笔付款的,所以从一个多签(multisig:一笔资金需要多把私钥共同签名才动得了)钱包、或一个 CoinJoin 里发款——那里签名密钥被拆分在几方手上、而这几方本就不该把私钥简单地凑到一起——就没法和 BIP-352 干净地拼合。Silent Payments 解决的是复用这条连接,不是混币这个问题;你要是想要金额和交易图上的隐私,那仍旧是协作型交易的地盘,链上隐私一文里讲过。把两者看作互补,而不是可以互相替换。
  • **标签是一种带着不对称的便利。**BIP-352 允许收款方从一个地址推导出带标签的若干变体——这对分清哪些输出来自哪个来源,很有用。标签信息只对你——也就是持有者——有意义,它不会暴露在链上。但它是一份由你自己保管的账目,也就意味着,它是一份一旦钱包或备份被攻陷、就可能泄出去的账目。便利,但要老老实实把它记在账上。
  • **有一个收款方上限,K_max = 2323。**规范(v1.1.0,2026年3月;当前 v1.1.1,2026年4月)给单笔交易里一个组能推导出多少个输出,设了个上限,作为一种防御——防的是那种被人精心构造、专门用来把收款方扫描工作量撑爆的交易。作为个人你永远碰不到这个上限——但正因如此,一个天真的"往一个地址付 3,000个输出"的做法,会按设计失败;而它也告诉你,协议的作者们,是把这种针对扫描开销的攻击当回事的。

关于轻客户端(light client),还有一记与之相关的现实核查——因为人们恰恰指望在这里,扫描难题早已被解决:截至 2026年年中,还没有一个开箱即用、信任最小化的轻客户端工具,能让你装上就用。blindbitd 这个钱包守护进程已于 2025年8月归档;只有它的配套索引器 blindbit-oracle 仍在活跃维护,而轻客户端规范本身,还是一份进行中的草案。像 bdk-sp 这样的实验性库倒是有,但它们自己的作者,就劝你别在主网上用。要是哪份指南暗示手机端的 Silent Payments 收款已经是一件解决了的、没有取舍的体验,那它就跑在软件前头了。

结论:现在该用 Silent Payments 吗?
#

**Silent Payments 已经能胜任一件具体而宝贵的活儿——一个可公开、可复用、又不泄露复用关联的收款地址——但它还没准备好,去当你唯一的隐私工具,或是一个毫无摩擦的移动端默认项。让工具去配任务,而如果你的收款历史很敏感,就自己跑一个节点。**这里诚实的目标,是更好的收款隐私,不是匿名。

你的处境结论怎么做
一个公开的打赏/捐赠地址(创作者、项目、化名)很合适公布一个 sp1… 地址;有条件的话,用你自己的节点扫描
日常收款,而且你自己跑节点合适Sparrow + 你的节点;扫描完全私密
日常收款,没有节点,手机优先部分合适靠一个公共索引服务器能用——要么接受那份信任上的取舍,要么等轻客户端
你想要金额、或付款方交易图上的隐私用错了工具Silent Payments 干不了这个;去看协作型交易和 Lightning
从多签 / CoinJoin 发款仔细核对拼合起来很别扭;先确认你钱包的支持情况

无论你是哪种情况,次序都和一贯的一样:先点出对手是谁,先修好那些既便宜、又无法回头的连接——在合法之处不经 KYC 地弄到币、管好 coin hygiene(用币的基本习惯:别复用地址、别把不同来源的币随手混作一处)、绝不复用一个普通地址——然后,在 Silent Payments 恰好补上"一个你想让它保持不可关联的、已公布地址"这道具体缺口的地方,把它加进来。它是一次货真价实的进步。它同时也是一件带着扫描账单的收款工具,而搞清楚这张账单由谁来付——是你,还是一台你信任的服务器——就是隐私、与隐私的错觉之间的那道分界。

常见问题
#

什么是 silent payment 地址?
#

silent payment 地址是一个由 BIP-352 定义、可以公布一次的可复用 Bitcoin 地址——在主网上它以 sp1 开头。和普通地址不同,每一个付款人都会从它推导出一个各不相同的一次性链上地址,所以打给你的这些款项,彼此之间没有共同去向。它编码的是两个公钥(一个 scan key、一个 spend key),而不是单个脚本。

Silent Payments 会隐藏我收到的金额吗?
#

不会。Silent Payments 保护的是收款这条连接——同一个身份收到的、一笔笔各自独立的款项之间的关联——仅此而已。每一笔付款的金额,依旧记在公开的区块链上,你的付款人自己的隐私不受影响,而链下记录(比如一家 KYC 交易所里的记录)也原封没动。想要金额上的隐私,Lightning 或协作型交易才是对口的工具。

2026年哪些钱包支持 Silent Payments?
#

截至 2026-07-09,Sparrow 发送(自 v2.3.0,2025年10月起)和收款(自 v2.5.0,2026年5月起)都支持;Cake Wallet 两样都支持,采用设备本地扫描(自 v4.18.0,2024年5月下旬起)。Bitcoin Core 钱包层面的支持尚未合并,尽管底层的密码学模块已经合并。请务必把发送和收款的支持分开来核,并对照当前的发布说明再确认。

为什么收一笔 Silent Payment 会慢?
#

因为链上没有一个地址供你直接查。要找出打给你的款项,你的钱包必须扫描一个个区块里的候选输出,再逐一拿你的密钥去试。在你自己的节点上,这是一次私密的本地计算;没有节点,你就得靠一个索引服务器——它更快,却引入了一份信任上的取舍。那种既省掉开销、又免去信任的轻客户端工具,目前还在打磨当中。

用公共服务器的话,Silent Payments 还私密吗?
#

只私密一部分。为了替你扫描,一个公共索引服务器会拿到你的 scan 私钥和 spend 公钥。哪怕只放在内存里,这些密钥也足以让一个心怀恶意、或被攻陷的服务器,把你收到过的所有款项的完整历史重建出来——而这,恰恰是 Silent Payments 本该防着一个链上观察者去做的事。自己跑一个节点就能避开这一点;一个公共服务器,是拿这份隐私去换便利。

#来源URL存档
1BIP-352——Silent Payments(规范,v1.1.1)https://github.com/bitcoin/bips/blob/master/bip-0352.mediawikihttps://web.archive.org/web/*/https://github.com/bitcoin/bips/blob/master/bip-0352.mediawiki
2Bitcoin Optech——Silent Payments 专题https://bitcoinops.org/en/topics/silent-payments/https://web.archive.org/web/*/https://bitcoinops.org/en/topics/silent-payments/
3Sparrow Wallet——发布记录https://github.com/sparrowwallet/sparrow/releaseshttps://web.archive.org/web/*/https://github.com/sparrowwallet/sparrow/releases
4Frigate——Silent Payments 的 Electrum 服务器https://github.com/sparrowwallet/frigatehttps://web.archive.org/web/*/https://github.com/sparrowwallet/frigate
5bennet.org——Silent Payments 实操指南(服务器隐私取舍)https://bennet.org/learn/silent-payments-bitcoin-privacy/https://web.archive.org/web/*/https://bennet.org/learn/silent-payments-bitcoin-privacy/
6libsecp256k1——Silent Payments 模块(PR #1765,已合并)https://github.com/bitcoin-core/secp256k1/pull/1765https://web.archive.org/web/*/https://github.com/bitcoin-core/secp256k1/pull/1765

本站有三条线索,在这里交汇。Silent Payments 回答的,是《Bitcoin 链上隐私:追踪如何运作》里拆解的那个复用难题的收款那一半——聚类看得见什么、又看不见什么,去那篇里读。因为一个地址的私密程度,顶多等于你收进它的那些币的私密程度,所以请把本文和《怎样不做 KYC 买 Bitcoin》搭配着看——那篇在上游把身份这个锚点修好。而又因为链从来都不是威胁的全部,《AI 去匿名化》讲的,是与这一切并行奔跑的那种链下推断。

相关文章