比特币隐私悖论:从中本聪妥协到零知识证明的进化 - Woofun 研究院
#资讯
比特币隐私悖论:从中本聪妥协到零知识证明的进化 核心要点 回顾比特币公开账本的设计取舍,梳理从密码朋克宣言到Zcash、Monero及Layer2 隐私方案的技术演进,探讨选择性披露如何平衡验证与隐私。
据 Woofun AI 消息,比特币的公开本质与 在白皮书第 10 节中承认的隐私悖论,构成了区块链技术演进的核心张力。尽管任何人都能无需银行批准即可验证交易历史,但同一份公开记录也可能暴露远超预期的个人信息。
这一设计上的妥协并非疏忽,而是早期去中心化共识机制下的必然选择。此后,研究者和开发者致力于在保持可验证性的同时保护信息,逐步探索出从化名匿名到零知识证明的技术路径。我们究竟走到了哪一步?
当你向他人支付比特币时,这笔交易一旦获得确认,便会永久进入公开记录,任何人都可以查阅。观察者能够清晰看到交易的输入来源、收款地址、每个输出对应的具体金额,以及该交易被打包进哪个区块。虽然他们未必直接知晓你的真实姓名,但只要你的某个地址与身份产生关联,其余所有活动就变得极易追踪。你的工资收入、储蓄积累、生意往来乃至日常消费习惯,都可能在同一个公开账本上留下清晰的线索。对于一个旨在"让人不靠银行就能转钱"的系统而言,这种透明性与隐私泄露风险并存的局面,构成了一种奇怪的取舍。
然而,中本聪并未忽视这一问题——他在白皮书中专门设立了一节,标题即为"隐私",位于第 10 节,深入探讨了这一矛盾。
要理解区块链隐私的未来走向,必须回溯到中本聪实际撰写的内容,审视比特币之前的研究基础,并评估当今隐私系统的实际能力与局限。围绕数字货币的隐私讨论,并非始于比特币。早在 1982 年, 就发表了《Blind Signatures for Untraceable Payments》(用于不可追踪支付的盲签名)。他研究的核心问题是:一个人如何获取数字签名的支付凭证,而发行方无法将该凭证与最终支付行为关联起来。
这一想法至关重要,因为一笔支付暴露的不仅仅是"钱已转移"这一事实,还暴露了谁与谁交易、交易发生的时间以及交易频率。Chaum 的工作确立了数字现金的一个重要发展方向,但他的电子现金模型仍然依赖中心化的发行方。保护支付信息与去除中心化信任,是两个截然不同的问题。其他研究者和程序员继续在这一领域攻关,试图走得更远。
密码朋克运动将隐私哲学推向了新的高度。1992 年 9 月,一群密码学家、程序员和隐私倡导者围绕 主持的邮件列表组织起来。"Cypherpunks"这个名字出自 ,据说是她用来称呼群里的人。他们的兴趣不仅限于数字货币,还广泛讨论加密技术、匿名通信、数字身份、信息自由,以及个人如何利用软件保护自己。 在 1988 年撰写了《加密无政府主义者宣言》,并在 1992 年前后运动早期的聚会期间以电子方式传播。
1993 年 3 月 9 日, 发表了《密码朋克宣言》。其中一句话三十多年来仍然切题:隐私是开放社会在电子时代所必需的。但 Hughes 还有另一句话,对理解区块链隐私更为关键:隐私是选择性向世界展示自己的力量。他并非主张人们应该隐藏一切,而是强调人们应该控制自己展示什么。商店向你出售商品,不需要知晓你的全部财务历史;收款人接收你的付款,也不需要查看你钱包里的每一笔交易。Hughes 直言不讳地指出:交易各方只应知道与这笔交易直接相关的信息。
这一理念至今仍是隐私讨论的中心。密码朋克也不相信隐私会被人恩赐——他们坚信隐私必须自己创造。他们的名言是:密码朋克写代码。
0 关注
比特币并非凭空出现,此前已有许多人在解决数字货币问题的不同部分。 (由 于 1997 年提出)是一个工作量证明系统,旨在让垃圾邮件等滥用行为付出更高成本。 (由 于 1998 年提出)构想了一种匿名、分布式的电子现金系统。 (由 提出)主张围绕计算工作量构建数字稀缺价值,他后来在 2005 年发表了详细描述。
可复用工作量证明(由 于 2004 年提出)尝试让工作量证明的结果可复用为可转让的数字价值。这些是不同的提案,它们都不是比特币,也没有解决同一组问题。但它们表明中本聪所处的研究环境:已经有人在认真构建不完全依赖银行、政府或中心支付处理商的数字货币。中本聪的白皮书引用了 Hashcash 和 b-money,将此前工作的想法汇聚在一起,回答了一个难题:人们如何在没有中心机构防止双重支付的前提下,对一份共享支付记录达成一致?这是突破,解决了重要问题。但它的答案要求交易公开——这就是取舍。
2008 年 10 月 31 日,中本聪发表了《比特币:一种点对点的电子现金系统》。第 10 节的标题是"隐私"。这一节首先将比特币的公开交易模型与人们在传统银行习惯的隐私进行对比。在银行体系中,交易对银行可见,但公众通常无法翻看每个人的账户历史。比特币则不同:交易公开广播,用户使用公钥而非真名来代表自己。中本聪写道:必须公开广播所有交易,这一方法排除了传统隐私,但隐私仍可通过在另一处切断信息流来保持——让公钥匿名。他提出的做法包括每笔交易使用新的密钥对,使得不同支付更难连接到同一个人。但他也承认一个弱点:当一笔交易使用多个输入时,会暴露这些输入属于同一所有者。
如果其中一个地址与真实身份挂钩,其他活动就可能更容易被关联到这个人。这是关键区别:比特币的原始设计提供的是化名,而非机密交易。你的真名不会像传统银行那样自动写入账本,但交易细节是公开的,链下信息能帮助人们将地址与真人联系起来。中本聪从未声称这是完美隐私,他描述的是一种在需要公开验证的系统中,减少公开交易与真实身份关联的方法。
举个简单例子:Lithos 要支付给 Emmakun 0.5 ,使用她现有的未花费交易输出构造交易。交易被广播、打包、上链。外部观察者能看到:被花费的输入、输出地址、每个输出的金额、交易费(输入总额减输出总额),以及确认这笔交易的区块和时间戳。观察者不会自动知道 Lithos 或 Emmakun 的真名。但假设 Lithos 从一家要求身份验证的交易所收到资金,或者她将自己的某个地址发布在网站上,观察者就可能将地址与身份联系起来。
从那里出发,其他交易可以被分析、被关联。还有一个复杂点:某个输出可能是找零退回给发送方,而非支付给另一个人。区块链分析常靠假设来判断哪个输出是哪个,这些假设有用,但不总是正确。重点在于:比特币不需要暴露一个人的名字,仅凭交易历史就足以泄露有用信息。因此,在讨论比特币时,"匿名"和"隐私"不可互换。它的地址是化名的,底层交易历史是公开的——这是两件截然不同的事。
中本聪在 2010 年仍在思考这一问题。2010 年 8 月 11 日,中本聪参与了一场题为"不是建议"的 BitcoinTalk 讨论。主题是比特币能否避免像当时那样存储完整交易历史。问题在于双花:节点如果没有足够信息检查交易历史,如何知道一枚币没有被花过?中本聪解释说,验证"不存在双花"需要对该笔相关交易的全局知识。然后他写道:很难想到这种情况下怎么应用零知识证明。这话值得再读一遍,因为语境很重要。他并非说零知识证明没用,而是在讨论一个具体问题:节点如何在不了解所有相关交易的情况下,证明没有其他花费存在?换句话说,网络如何验证"不存在双花"?这与"证明能否隐藏支付细节"是不同的问题。
这一点很重要,因为现代隐私讨论有时说得像中本聪忽视了零知识密码学。历史记录比这更有趣:他知道这个想法,也在思考将其应用到比特币双花问题上的难度。事实上,后续研究探索的正是如何用零知识证明保护交易信息,同时让网络验证交易合规。
研究并未止步于比特币。2013 年,研究者发表了《 :来自比特币的匿名分布式电子现金》。论文指出比特币的明确局限:公开交易日志意味着隐私主要靠化名。Zerocoin 探索如何用密码学切断交易与来源的关联,提升比特币隐私。但它仍暴露支付去向和金额,支付方式也有局限。2014 年,同一方向推进到《 :来自比特币的去中心化匿名支付》。Zerocash 提出用 zk-SNARKs 的支付系统,能隐藏交易的来源、去向和金额,同时让网络验证支付有效。这与比特币原始隐私模型不同。比特币试图让公钥与真实身份脱钩;Zerocash 探索让交易本身更多内容不进入公众视野。这是有意义的转变:网络不必看到支付的每个细节,也能检查支付是否合规。密码学证明可以确立交易有效,而不暴露构造交易的全部信息。这就是零知识证明对隐私研究如此重要的原因之一。
讨论区块链隐私时,人们常将所有项目归为一类。但隐藏收款方不等于隐藏金额,隐藏金额不等于隐藏交易图谱,链上隐藏信息也不自动保护交易上链前的网络活动。值得将各种路径分开看。一个系统可以隐藏收款方但暴露金额;另一个可以隐藏金额,却仍通过钱包或网络连接泄露信息;第三个可以让人证明自己满足某条件,而不披露完整身份。这些是不同的保护。
Woofun AI 整理数据显示,比特币与 的结合展示了基础层的改进潜力。比特币底层交易层仍然公开透明,但这不意味着什么都做不了。开发者找到了让某些交易分析更不可靠的办法。Payjoin Dev Kit 在 BIP 78 中描述了一种方式:发送方和接收方协作构造支付,接收方也贡献一个输入。为什么重要?某些区块链分析假设一笔交易里的多个输入属于同一个人。有了 Payjoin,这个假设可能不再成立,因为接收方也出了输入。但 Payjoin 不隐藏交易金额,也不把比特币变成机密支付系统。它让某些分析更不可靠——有用,但不能和完整交易机密混为一谈。
将隐私建入普通交易模型,用几种机制保护支付的不同部分。环签名提供发送方模糊性,让外部观察者难以确定哪个输出真正被花费;隐身地址生成一次性收款地址,让支付更难连接到收款人的公开地址;环机密交易(RingCT)隐藏金额,同时让网络验证货币规则。这些机制合起来保护发送方、收款方和金额信息。但有局限。发送方隐私是概率性的,取决于交易的环和观察者掌握的其他信息。Monero 还用 Dandelion++ 让交易传播更难跨网络追踪,但其官方文档警告,这不能防住所有网络观察者——用户的 ISP、VPN 提供商或某些远程节点配置仍可能暴露信息。Monero 因此是一个有用的例子,说明交易隐私能走多远,但它不承诺用户活动的每一部分都不可见。
将 Zerocash 研究做成了可运行的加密货币。其屏蔽交易用零知识证明保护交易信息。两个屏蔽地址之间转账时,公开账本不会像透明交易那样暴露发送方、收款方、金额或备注,网络仍能验证交易有效。这比比特币原始模型强得多。但 Zcash 也支持透明地址,涉及透明地址的交易仍公开可见。屏蔽交易的使用比例、资金在透明池和屏蔽池之间的流动、钱包支持程度、匿名集大小,都影响用户实际获得的隐私。Zcash 还说明一个重要想法:隐私和披露不必对立。其屏蔽生态包含查看密钥机制,允许在不交出花费权限的前提下检查选定信息。具体能力取决于池和钱包实现,不能假设每个地址都有相同的披露功能。
对比的要点很简单:隐私不是单一功能,而是一组分开的保护。一个项目需要说清楚它保护的是哪几项。这张对比只描述外部观察者能从区块链本身学到什么,不衡量 IP 地址暴露、钱包安全、交易所记录、设备被攻破、胁迫,或用户自愿披露的信息。也不意味着所有隐私保护的强度相同——比如 Monero 的发送方保护是概率性的,收款方和金额保护用的是不同机制;Payjoin 不是独立货币,而是构造比特币支付的一种方式。
比特币以来最大的发展,不限于隐藏交易细节的加密货币。隐私正在成为智能合约和应用程序设计的一部分。这很重要,因为人们在区块链上做的不只是转钱:他们交易、借贷、投票、管理资产、证明资格、和应用程序交互。这些活动会暴露个人和企业可能不想公开的信息。交易员不想让所有人盯着自己的仓位;企业不想让竞争对手追踪资金动向;申请服务的人可能需要证明自己满足条件,而不公开全部身份或财务历史。不同技术正在处理这些问题,私有智能合约因此变得重要。思路是让应用完成有用工作,同时不把工作中涉及的每项信息都公开。几个项目从不同方向切入。
在以太坊上构建隐私 Layer 2,智能合约可以同时包含私有函数和公开函数。区别在于计算在哪发生。私有函数在用户设备上的私有执行环境(PXE)中运行,PXE 完成私有计算并生成零知识证明,证明被发送到网络,从而在不把私有输入发给排序器的情况下验证所需结果。公开函数不同,它们在网络上执行,使用公开状态。一笔交易可以同时涉及两者。这是可编程隐私:开发者逐函数决定应用哪些部分保持私有、哪些需要公开。
以投票应用为例:一个人应该能投票而不公开选择,同时最终票数需要公开,以便所有人验证。私有部分处理选票,公开部分更新计数。应用不需要暴露单张选票,也能让最终计票可验证。这就是私有智能合约让设计成为可能的东西。网络本身是去中心化的,排序者质押出块,证明者可无许可加入,治理开放。Aztec 把自己定位为以太坊上少数完全去中心化的 L2 之一,没有中心运营方控制排序或 rollup。但也不应夸大。
Aztec 文档说明,PXE 向节点查询网络状态时——比如检查某个 nullifier 是否存在——节点能知道用户对哪些数据感兴趣。运行自己的节点可以减少这种暴露。私有执行不会让周围所有交互都私有。开发者仍需考虑公开函数调用、网络请求、交易时机,以及应用选择披露的信息。Aztec 有意思的地方不只是隐藏交易,而是给开发者一种方式,决定应用哪些部分该私有、哪些该公开。
走硬件路线的机密执行。Sapphire 用可信执行环境(TEE)运行机密智能合约。TEE 是一种受保护的硬件环境,把数据和计算与系统其余部分隔离。Sapphire 支持加密交易输入和机密合约状态,让合约处理不应公开可见的信息。它和 Aztec 的区别很重要。Aztec 的私有函数用客户端执行和零知识证明,Sapphire 依赖受保护的硬件环境。两者不能互换。TEE 引入围绕硬件、其安全性、认证和实现的信任假设。零知识系统有自己的假设,包括电路、软件和证明系统的正确性。两种方法都可能有用,只是保护信息的方式不同。
把转账留在屏蔽池里。我一直在关注 Umbra 在 上的工作,尤其是从第一版到 V2 的变化。据 Umbra 团队向我解释,V1 用加密代币账户作为进入屏蔽池的存款方式,池子充当这些账户与公开代币账户或其他加密代币账户之间的中介。V2 放弃了这套安排,聚焦屏蔽池:用户可以在池内进行私有转账,而不是在多个加密代币账户之间移动。这个区别重要,因为池子成了管理私有余额和转账的地方。但需要理解池子隐藏什么、不隐藏什么。存入和取出池子可能在链上暴露信息:观察者可能看到存款或取款涉及的地址、资产和金额。时机和金额也能帮人猜测哪些资金流动是关联的。隐私保护针对的是池内活动。所以我不会说这能让用户 Solana 活动的每一部分都私有——它保护交易流的一个特定部分。这仍然有用,只是要按这个标准评估。
由 构建,是以太坊及其他链上的合规隐私协议。用户可以在私下转移加密货币的同时,对存款进行筛查,防止非法资金进入池子。你把 或稳定币从普通钱包存入(屏蔽)池子,0xbow 运行的关联集提供方(ASP)筛查存款,只有获批存款才能被私下使用。没有 KYC,也没有全局查看密钥。零知识证明让你证明资金来自获批存款,而不暴露是哪一笔,从而切断存款和取款之间的链上联系。
它是非托管的,部署在以太坊、 、 、 、 等链上。设计源自 2023 年一篇有 参与的研究论文。目标是为普通用户提供实用隐私,同时让池子远离已知不良行为者资金。还有一个问题我觉得重要:如果有人需要证明自己的资金满足某条件,而不公开全部交易历史呢?Privacy Pools 研究论文《区块链隐私与监管合规:走向实用均衡》探索了一种路径,用零知识证明和关联集。
用户可以证明自己的资金属于某组存款,而不暴露具体是哪笔存款,也不公开全部交易图谱。比如,用户可能想证明资金与一组已知非法来源无关。证明可以确立关联集成员资格,但它不证明一个人普遍清白,也不确立每笔资金来源都合法。结果取决于构造关联集所用的信息和提供方应用的规则。Privacy Pools 是选择性披露的有趣例子:用户可以证明某个特定属性,而不交出全部交易历史。这比把所有信息要么完全公开、要么完全隐藏的系统,更接近 Hughes 的选择性披露理念。
Kohaku 关注交易之前,钱包泄露了什么。区块链隐私有一部分值得更多关注:一个人可以使用私有交易协议,却仍通过访问它的钱包泄露信息。钱包查余额时,通常向远程提供商询问某个地址的信息。这个请求会告诉提供商用户关心哪个地址。钱包请求交易历史、模拟交易或获取其他账户信息时,同样的问题会出现。交易本身可能私有,但交易之前的请求是另一回事。这是 Kohaku 正在探索的领域之一。Kohaku 是以太坊隐私项目,被描述为隐私保护钱包和开源钱包 SDK 的参考实现。
以太坊官方曾称它可能是近年来最令人兴奋的隐私进展。其工作覆盖钱包体验的多个部分,包括隐私协议、提供商抽象、轻客户端集成和后量子账户工具。一个值得关注的领域是私有信息检索(PIR)。普通余额查询中,服务器收到地址并返回信息。有了 PIR,钱包可以构造查询,让服务器返回所需信息,却不知道查的是哪个地址。我喜欢这个方向,因为它把讨论带到了交易之外。钱包是用户管理密钥、账户、权限和应用的地方。
如果这一层持续泄露信息,单靠私有交易无法解决整个问题。
我认为答案是:在具体技术能力上,是的。如果谈交易机密性,Monero 和 Zcash 屏蔽交易保护了比特币暴露的支付细节。如果谈在不暴露全部底层信息的前提下证明计算或交易有效,零知识系统可以做到。Aztec 把私有执行带进智能合约,Oasis Sapphire 用机密硬件执行,Umbra 屏蔽池聚焦私有转账,Privacy Pools 探索如何证明资金的特定属性而不暴露完整交易历史,Kohaku 通过开源隐私钱包和 SDK 让隐私在以太坊上更易用。
这些都是真实进展。但我不会说隐私问题已经解决。一笔私有交易不会自动隐藏提交它的 IP 地址。一个私有智能合约不会让每个公开函数或交互都私有。一个屏蔽池不会抹掉资金进出时暴露的信息。一个 TEE 不会消除硬件信任假设。一个零知识证明保护不了一个设备已被攻破的用户。一个人们无法理解或正确使用的隐私功能,实际提供的保护可能低于其技术描述。必须看整条路径:钱包、设备、应用、网络、合约,以及最终公开的信息。所以确实有真实进展,但还得让它更好用,让每个人都能用。
多年来,区块链围绕公开状态构建。任何人都能检查余额、追踪交易、分析活动。这种透明让独立验证成为可能,但也让个人和商业活动以难以辩护的方式暴露。我不认为区块链的每一部分都该隐藏——你们看到我写选择性披露。公共机构应该被问责,公共支出应该接受审视,网络应该提供方式让人验证规则被遵守、关于其运行的声明可被核实。但我也不认为一个人的储蓄、收入、私人支付、投资仓位、身份文件和商业活动,应该仅仅因为用了区块链就自动公开。
这些要求可以共存。一个人应该能证明自己符合服务资格,而不交出身份的全部细节。企业应该能结算付款,而不把全部财务状况暴露给竞争对手。选民应该能秘密投票,同时最终结果保持公开可验证。钱包应该能查余额,而不告诉远程提供商主人在看哪个账户。这些不是要隐藏一切的论点,而是要把披露的控制权交给人的论点。这就是为什么我反复回到 Hughes 对隐私的定义:隐私是选择性向世界展示自己的力量。它比简单问"项目是否有私有交易"有用得多。
比特币开启了这项工作的重要部分,但没有完成它。每次读中本聪白皮书第 10 节,让我印象最深的不是比特币没能解决所有隐私问题,而是中本聪理解并承认了公开交易系统与个人隐私之间的张力,然后在他正在构建的设计里提出了一个务实的折中。密码朋克多年来问的是一个更宽的问题:人们如何使用数字系统,而不交出不需要披露的信息?比特币回答了其中重要的一部分,后来者把工作推得更远。
Chaum 探索不可追踪的数字支付,Zerocoin 和 Zerocash 推进交易隐私,Monero 和 Zcash 把不同形式的机密支付带入使用。所以我们超越中本聪了吗?在某些技术能力上,绝对超越了。但密码朋克更宽的目标不只是隐藏交易,而是让人控制自己披露什么,同时不失去验证要紧之事的能力。更新的系统把隐私带进智能合约、钱包、身份和选择性披露。每种方法都有不同优势和局限。
这也是我希望读者评估隐私项目时知道的:不只看网站上的声明,不只看技术名字,不只看一笔交易是否被描述为私有。看系统实际隐藏了什么,看什么仍然可见,弄清谁能访问信息、系统依赖什么假设、有人在真实世界使用时会发生什么。密码朋克最初的问题仍值得问:一个系统为什么应该知道比它完成工作所需更多的信息?比特币让不依赖银行验证货币成为可能。现在的工作,是让人对自己披露的信息有更多控制,同时保留验证能力。这是我想继续研究的那部分隐私运动。
评论
暂无评论