词条 · 加密与分布式 · 核心
女巫攻击
一个人伪装成成千上万个人,把投票和信誉系统撑爆。
也称:女巫攻击、Sybil attack、Sybil、西比尔攻击、身份伪造攻击
一句话
一个人申请一万个身份,在只看人数的系统里就有了一万票。这类攻击叫女巫攻击。它不需要破解任何密码学,只需要身份足够便宜。
为什么这是去中心化系统的头号麻烦
任何”少数服从多数”的规则都隐含一个前提:一个人只能算一票。中心化系统靠身份证、手机号、银行 KYC 来兜住这个前提——总有个机构负责确认”你是一个人”。
去中心化系统没有这样的机构。谁都可以随时接入,也就意味着谁都可以接入一万次。于是所有基于计数的机制同时失效:
- 投票表决:伪造身份就能操纵结果
- 信誉评分:自己给自己的马甲刷好评
- 网络路由:用大量假节点把受害者围起来,让它只能看见攻击者想让它看见的消息
要点在于,这不是”多数人可能作恶”的问题,而是”多数这个词失去意义”的问题。你以为在统计人数,实际在统计某个人愿意注册多少个账号。
术语考古:白皮书解决了它,但没有点它的名
关键事实:Sybil 这个词在比特币白皮书原文中出现 0 次。
但第 4 节那句被引用最多的话,正是针对这件事的:
If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote.
拆开看这句的逻辑:如果拿 IP 地址当身份,那么”能批量申请 IP 的人”就能颠覆多数。解法不是把身份变贵、也不是去查证身份,而是换掉计票的东西——不数身份,数算力。
这一步很关键:工作量证明并没有阻止你伪造一万个节点。你完全可以伪造,伪造还是免费的。它只是让伪造变得没用,因为票不投给身份,投给已经烧掉的计算。一万个空壳节点分摊同一份算力,总票数不会增加一丝。
“女巫攻击”这个名字比比特币更早,来自分布式系统与 P2P 网络的研究文献。中本聪写的是机制,名字是社区后来把两边接上的。
边界与常见误解
女巫攻击不等于 51% 攻击。 女巫攻击是伪造身份数量,51% 攻击是真的持有多数算力。前者的成本接近零,后者的成本是实打实的硬件和电费。工作量证明把前者转化成了后者——这正是它的全部价值所在。
节点数不是安全指标。 网络里有一万个节点还是十万个节点,本身说明不了安全性,因为节点数量是可以免费伪造的。有意义的指标是算力分布,因为那个伪造不了。
女巫攻击并没有被”解决”。 在比特币里它被绕开了:涉及共识的地方一律不看身份。但在那些绕不开身份的场景里——空投领取、链上投票、社交推荐——它依然是活跃的攻击手段,而且至今没有干净的通解。
提到这个词条的文章
- 比特币白皮书逐节拆解经典拆解 2026-07-31