BIKENZO

工作量证明详解:比特币如何达成共识

工作量证明是这样一个过程:比特币矿工反复对候选区块进行哈希运算,直到某个区块满足难度目标,随后网络便遵循累积工作量最多的有效链——这使得改写历史在经济上代价高昂,并让互不相识的陌生人在没有中央权威的情况下就同一份共享账本达成一致。

比特币的核心问题看似简单:成千上万台彼此并不认识、也互不信任的计算机,在没有银行、没有服务器、也没有裁判的情况下,如何就一份单一且有序的记录——谁拥有什么——达成一致?工作量证明就是比特币的答案。它是一种机制,把电力和计算硬件转化为提出新区块的成本;同时也是一条规则,让每个人都能独立地识别出那条"真正的"链。本文将解释工作量证明实际计算的是什么、它如何产生共识,以及为什么这一安排难以攻击。这是教育性的背景介绍,而非建议。

工作量证明所解决的问题

数字账本易于复制,也易于篡改。如果任何人都能随意添加交易,他们也就能把同一笔币花两次——这就是经典的"双花"问题。在一个没有中央运营者的系统里,你需要一种办法,让相互独立的参与者就哪些交易发生过、以及以何种顺序发生达成一致,即便其中一些参与者不诚实或处于离线状态。

早期的数字现金尝试依赖一个可信第三方来记账。比特币的设计——在2008年的白皮书中被描述——用一场公开竞争取代了那个可信第三方:参与者花费真实资源来追加区块,网络则遵循一条共享规则来挑选胜出的链。共识源自成本与数学,而非源自权威。

矿工实际上在计算什么

每个候选区块都包含一批交易、一个指向前一区块的引用,以及一个称为随机数(nonce)的可变的小数字。矿工把这些数据送入SHA-256哈希函数,该函数会把任何输入变成一段定长、看上去不可预测的输出。目标是找到一个能产生低于某个目标值的哈希的输入——在实践中,就是一个以特定数量的零开头的哈希。

由于哈希输出无法被预测或逆推,找到符合条件的哈希的唯一办法就是不断试错:改变随机数,再次哈希,如此反复,每秒进行数十亿次。这种暴力搜索就是所谓的"工作"。它被刻意设计得难以完成,但对其他任何人来说都极易核验——一次哈希运算就能确认答案是否有效。这种不对称性(生成困难、验证容易)正是工作量证明的核心。

难度与大约十分钟的节奏

比特币的目标是平均大约每十分钟产生一个新区块。随着更多算力(哈希率)加入网络,区块本会趋于更快出现,因此协议会周期性地调整难度——即目标哈希必须低到何种程度——以保持平均节奏的稳定。大约每两周(2,016个区块),每个节点都会根据近期的出块时间重新计算难度。

正是这种自我调整,使得从长期看更多的挖矿算力并不意味着更快的出块速度;它主要意味着有更多的工作被花费在保障同一条稳定的区块流上。任何单个区块的确切时间都是随机的,因此十分钟是一个长期平均值,而非一份时间表。

从区块到共识:最长的有效链

找到一个有效区块只是故事的一半。当两个矿工在几乎同一时刻找到区块时,节点仍需就同一份历史达成一致。规则是:节点遵循累积工作量证明总量最大的那条有效链——常被概括为"最长链",尽管它实际上是按累积工作量衡量最重的那条。

每个全节点都会依照比特币的规则独立地验证每个区块:签名有效、没有双花、区块奖励正确,以及哈希满足目标。违反规则的区块会被直接拒绝,无论其中投入了多少工作。暂时的分歧(分叉)会随着下一个区块延长其中一个分支而消解,诚实的矿工会向其收敛,因为在被接受的链上继续构建才是奖励所在。

为什么这能保障网络安全

要改写一笔过去的交易,攻击者就得为那个区块以及其后的每一个区块重新完成工作量证明,然后超越整个诚实网络,构建出一条更长的链。一笔交易被埋得越深,需要重做的工作就越多——这正是商家往往会等待多次确认的原因。其成本随网络总哈希率而按比例上升。

这就是"51%攻击"背后的直觉:控制多数哈希算力,可能让某人得以对近期交易重新排序或进行审查。但获取并运行那些硬件代价高昂,它无法伪造签名或直接窃取币,而且一次公开可见的攻击可能会削弱攻击者正为之投入资源挖矿的那种资产本身的价值。激励机制经过校准,使得诚实参与通常比发动攻击更有利可图。这里的安全是经济性的、概率性的,而非绝对的保证。

权衡取舍与更广泛的争论

工作量证明的长处——真实的、外部的成本——同时也是它最常见的批评的来源:能源消耗。对比特币耗电量的估算差异很大,且随时间变化,而一些矿工使用的搁浅电力、过剩电力或可再生能源的占比不断上升,使情况变得更为复杂。明智的人们看法不一,具体情况也在变动;与其依赖任何单一数字,不如去查阅当前的、可信的信息来源。

诸如权益证明(proof of stake)之类的替代共识设计,通过使用经济抵押而非计算,以远少得多的能源保障着另一些网络。它们涉及不同的假设与权衡,而公平地比较它们本身就是一个话题。就比特币而言,工作量证明仍然是其机制,其安全性与发行时间表都与之绑定。

FAQ

用简单的话说,工作量证明是什么?
它是这样一个系统:计算机们相互竞争,通过把数据送入哈希函数反复运算,直到找到一个符合条件的结果,从而解开一道困难的、随机的猜谜。这道谜题解起来代价高昂,但对其他所有人来说都很容易核验,这就让一个由陌生人组成的网络能够在互不信任的情况下就新区块达成一致。
工作量证明如何防止双花?
交易在区块内部被排序,网络遵循累积工作量最多的有效链。要把同一笔币花两次,攻击者就得重做相关区块的工作,并超越整个诚实网络——随着确认不断累积,这在代价上高得令人望而却步。
工作量证明和挖矿是一回事吗?
两者紧密相关,但并不等同。工作量证明是规则和谜题;挖矿则是完成那份工作的活动——运行硬件去搜寻有效的区块。矿工在成功时会获得新发行的比特币和交易手续费作为奖励。
什么是51%攻击?
它描述的是这样一种情形:单一一方控制了网络过半的哈希算力,从而有可能让其对近期交易重新排序或加以阻止。它无法伪造签名或窃取已有的币,而且代价高昂、得不偿失,因为一次成功的攻击可能会损害攻击者正在挖取之物的价值。
比特币为什么要耗费这么多能源?
这种能源消耗是有意为之的:正是现实世界中的成本使得改写历史代价高昂,而这正是安全性的来源。对总消耗量的估算各不相同,并随时间变化,而过剩电力或可再生电力的占比因地区而异——数字最好对照当前的、可信的信息来源来核查。
工作量证明与像BIKENZO这样的流动性终端有何关系?
它不会改变你解读市场数据的方式,但有助于解释比特币是什么:一个由工作量保障的网络,而非一家公司。BIKENZO是一款数据工具,它把全球流动性指数(Global Liquidity Index)与比特币价格对照绘制以提供背景;理解工作量证明属于背景知识,而这个终端只是呈现市场背景。它提供的是背景,而非建议——由你来决定。

A Bitcoin liquidity terminal. Global central-bank liquidity, plotted against the Bitcoin price, in one screen.

申请预览