大家平时可能经常听到 “区块链”“比特币” 这些词,而工作量证明(PoW)作为其中很关键的一个技术点,不少人可能还是一知半解。别担心,今天咱们就用一问一答的方式,像聊天一样把 PoW 的那些事儿说清楚,保证听得明明白白,没有晦涩难懂的专业梗。
- 问:首先得搞清楚,工作量证明(PoW)到底是个啥呀?听着像个挺复杂的技术名词。
答:其实没那么玄乎!你可以把它理解成咱们生活里 “做事要付出努力才有结果” 的道理。就好比你想拿到公司的奖金,得完成规定的工作任务,这个 “完成工作任务” 的过程,就有点像 PoW 里的 “工作量”;而最后领导确认你确实完成了,给你发奖金,这就相当于 “证明”。在区块链里,PoW 就是让参与的电脑(咱们叫它 “矿工”)通过计算复杂的数学题来付出 “工作量”,算出来之后,大家就认可它的成果,还能给它相应的奖励,比如比特币,本质上就是这么个事儿。
- 问:那为啥要搞这么个 “工作量证明” 呢?直接让大家一起记账不行吗?
答:你这个问题问得特别好!要是直接让大家随便记账,问题可就大了。比如有人想耍赖,明明自己没给别人转钱,却记成转了,或者一笔钱重复花好几次(这叫 “双花问题”),那区块链就乱套了。PoW 就是通过让矿工 “费劲儿” 算题,来保证每一笔交易都真实有效,没人能随便造假。因为想造假的话,得付出比正常记账多得多的算力和成本,根本不划算,这样大家就都愿意规规矩矩的,区块链才能稳定运行。

(注:此处为示例图片链接,实际使用时可替换为真实的 PoW 原理示意图)
- 问:刚才提到矿工要算 “复杂的数学题”,那这题到底难在哪儿啊?是像咱们上学时做的奥数题那种吗?
答:哈哈,可比奥数题简单多了,就是 “暴力破解” 的活儿!这题其实就是找一个特殊的数字(咱们叫它 “随机数”),让矿工把交易信息、之前区块的信息和这个随机数拼在一起,再通过一个特定的算法(比如 SHA-256)计算,得到的结果要满足一个 “小目标”—— 比如结果开头得有很多个 “0”。举个例子,就像让你找一个数,和 “今天吃火锅” 这句话拼在一起,算出来的结果开头得有 5 个 “0”,你只能一个数一个数地试,试到对的那个为止。而且这个 “小目标” 还会根据矿工的总算力调整,保证大概每 10 分钟左右才有一个矿工能算出来,不会太快也不会太慢。
- 问:矿工算出来之后,除了证明自己付出工作量,还能干嘛呀?就只是为了记账吗?
答:当然不只是记账啦,还有实实在在的奖励呢!就拿比特币来说,只要矿工成功算出那个随机数,把新的区块加到区块链上,就能拿到一笔比特币奖励。早年的时候,奖励是 50 个比特币,后来每 4 年减半一次,现在已经到 3.125 个比特币了。除了这个固定奖励,交易里还有手续费,比如有人转账时会设置一点手续费,矿工在打包交易的时候,会优先选手续费高的,最后这些手续费也会归成功出块的矿工。所以矿工们其实就是靠 “算题出块” 赚钱,这也是他们愿意花大价钱买矿机、付电费的原因。
- 问:那矿机是啥呀?普通的家用电脑能不能当矿机,也去挖比特币赚奖励啊?
答:矿机就是专门用来算 PoW 题目的电脑,和咱们家用电脑差别可大了!家用电脑的 CPU、显卡虽然也能算,但速度太慢了,比如家用电脑可能好几天都算不出一个题,而专业矿机一秒钟能试好几亿次。你想啊,别人用矿机每秒试几亿次,你用家用电脑每秒试几万次,根本没机会抢到奖励,还得浪费电费,太不划算了。而且现在挖比特币的矿机都得是专门的 ASIC 矿机,就是只针对比特币的算法设计的,别的活儿干不了,就靠算题快吃饭。所以普通家用电脑就别想凑这个热闹啦,老老实实用来追剧、办公不香吗?
- 问:刚才说 PoW 会根据总算力调整难度,那这个 “调整” 是怎么实现的呀?是有人手动调吗?
答:不是手动调的,是区块链自己根据规则自动调的,特别公平!就拿比特币来说,它有个规则:每产生 2016 个区块(大概就是两周时间,因为每个区块 10 分钟左右),就会检查一下这 2016 个区块实际用了多久产生。如果实际时间比两周短,说明矿工算力太强了,题太容易了,接下来就把题目的难度调高一点,比如要求结果开头多几个 “0”;如果实际时间比两周长,说明算力不够,题太难了,就把难度调低一点。这样一来,不管矿工多了还是少了,总能保证出块速度稳定在 10 分钟左右,不会因为算力暴涨就出块飞快,也不会因为算力暴跌就卡住不出块。
- 问:那如果有个特别有钱的人,买了超多矿机,掌握了超过一半的算力,是不是就能操控区块链了?
答:理论上是这样,这叫 “51% 攻击”,但实际上几乎不可能实现!首先,成本太高了。就拿比特币来说,现在全网的算力已经高到吓人,想掌握一半算力,得买几十万甚至上百万台顶级矿机,还得有超大的场地和巨量的电费,就算是顶级富豪,也很难拿出这么多钱。其次,就算真的掌握了 51% 算力,操控区块链也没啥好处。比如想造假交易,得把假交易的信息在自己控制的所有矿机上都记上,还得让其他矿工认可,但其他矿工肯定不答应啊,而且一旦被发现,比特币的信誉就会一落千丈,价格暴跌,这个有钱人手里的比特币也会变成废纸,得不偿失。所以至今为止,主流的 PoW 区块链,比如比特币,都没发生过真正的 51% 攻击。
- 问:PoW 需要那么多矿机和电费,是不是特别不环保啊?经常听人说它浪费能源。
答:这个问题确实是 PoW 被吐槽最多的点之一。不可否认,PoW 确实消耗很多能源,比如比特币的年耗电量,差不多相当于一些中小型国家的总耗电量。但也不能全怪 PoW,得看这些能源是啥类型的。现在很多矿场其实都建在水电、风电、光伏这些清洁能源丰富的地方,比如中国的四川、云南,还有国外的一些偏远地区,这些地方的清洁能源有时候用不完会浪费,矿场反而能把这些多余的能源利用起来,也算是一种资源再利用。不过总的来说,PoW 的能源消耗确实是个问题,这也是后来出现其他共识机制(比如 PoS)的原因之一,但咱们今天只聊 PoW,就不展开说别的机制啦。
- 问:除了比特币,还有哪些区块链项目用的是 PoW 啊?是不是只有比特币在用?
答:当然不是啦,PoW 是最早的区块链共识机制之一,除了比特币,还有很多项目在用。比如以太坊,早期的时候用的就是 PoW,后来才改成了 PoS;还有莱特币,它其实就是比特币的 “小弟”,算法稍微改了一点,用的也是 PoW;另外像狗狗币,虽然一开始是开玩笑搞出来的,但后来也一直用 PoW 运行。不过现在新出的区块链项目,用 PoW 的已经越来越少了,主要是因为大家觉得 PoW 太费电,而且算力容易集中在大矿场手里,普通用户很难参与,但像比特币、莱特币这些老项目,因为已经运行很多年了,很稳定,所以还在坚持用 PoW。
- 问:矿工在算题的时候,是不是谁先算出来谁就能拿到奖励?那如果两个矿工同时算出来了,怎么办啊?区块链会乱吗?
答:对,就是 “先到先得”,谁先算出正确的随机数,把区块广播给其他矿工,其他矿工验证没问题后,就会在这个区块的基础上继续算下一个,谁就拿到奖励。那如果两个矿工同时算出来,就会出现 “分叉”,也就是区块链暂时分成了两条链,一条是矿工 A 出的块,一条是矿工 B 出的块。这时候不用慌,区块链有自己的解决办法 —— 看哪条链先变长。其他矿工会随机选择一条链继续算,比如有的矿工在 A 的块后面算,有的在 B 的块后面算,过不了多久,肯定有一条链会先多出一个块,变得更长。这时候,大家就会统一认可更长的那条链,短的那条链就会被放弃,上面的交易也会回到待处理状态,重新被打包到新的区块里。所以就算出现分叉,也很快能恢复正常,不会乱。
- 问:刚才说矿工要打包交易,那是不是所有交易都会被矿工打包啊?有没有可能有的交易一直没人打包?
答:大部分交易都会被打包,但也确实有少数交易可能会被 “冷落”。因为矿工打包交易的时候,会优先选手续费高的交易,毕竟手续费能归自己嘛。如果一笔交易的手续费设置得特别低,甚至没设置手续费,矿工觉得打包它不划算,就会把它放在 “待处理交易池” 里,等其他手续费高的交易都打包完了,才会考虑它。有时候如果待处理的交易太多,手续费低的交易可能要等好几个小时,甚至好几天才能被打包。所以如果大家急着转账,比如转一笔钱去买东西,最好还是设置一点手续费,这样矿工才会优先处理,到账更快。
- 问:PoW 里说的 “区块”,到底是个啥东西啊?和工作量证明有啥关系?
答:你可以把区块链想象成一本记账本,“区块” 就是这本记账本里的一页纸。每一页纸上,都会记着很多笔交易的信息,比如谁转给谁多少钱、转账时间之类的,还有一个 “区块头”,里面包含了上一页纸(上一个区块)的信息、当前区块的时间戳,以及矿工算出来的那个随机数。而工作量证明,其实就是矿工通过算随机数,把这一页纸(区块)“写满” 并 “装订” 到记账本(区块链)上的过程。只有通过 PoW 验证,这个区块才算有效,才能被大家认可,加到区块链的最后面,保证记账本的连续性和真实性。
- 问:如果矿工在算题的时候,电脑突然坏了或者断网了,之前算的功夫不就白费了吗?
答:对啊,这太常见了,所以矿工们其实也挺不容易的。比如矿机突然死机、网络断了,或者算到一半的时候,别人已经先算出结果并广播了,那这个矿工之前试的那些随机数就全白试了,啥奖励也拿不到,电费和时间都浪费了。不过矿工们也有应对办法,比如会用多台矿机一起算,就算一台坏了,其他的还能继续;而且矿场一般都会有备用电源和稳定的网络,尽量减少这种意外情况。但就算这样,也没法完全避免,所以 PoW 挖矿其实也是个 “靠运气 + 靠实力” 的活儿,实力是矿机够快,运气是能比别人先试到正确的随机数。
- 问:普通人想了解 PoW,除了听这些基础问题,还能怎么直观感受一下它的工作过程啊?有没有什么简单的办法?
答:其实有一些小工具可以让你体验一下,不过肯定不是真的挖比特币啊,那样成本太高了。比如网上有一些 “模拟挖矿” 的小游戏,你可以在网页上点击按钮,模拟矿工试随机数的过程,虽然速度比真实矿机慢一万倍,但能让你明白 “找随机数” 是怎么回事。另外,你也可以去区块链浏览器(比如比特币的blockchain.com)上看看,上面能实时显示最新的区块、每个区块的矿工是谁、包含了多少笔交易、奖励是多少,还有当前的算力和难度,这些数据都是公开透明的,看一眼就能直观感受到 PoW 区块链是怎么运行的。比如你可以找一个刚产生的区块,看看它的区块头信息,里面就有矿工算出来的随机数,这样就能更真切地理解 PoW 的成果了。
- 问:最后再问一个,PoW 里的 “工作量”,能不能被 “走捷径” 啊?比如有没有什么办法不用一个个试随机数,直接算出结果?
答:目前来看,还真没有捷径可走!因为 PoW 用的算法(比如 SHA-256)有个特点,就是 “正向计算容易,反向计算难”。正向计算就是给你一堆信息,你能很快算出结果;但反向计算就是给你结果的要求(比如开头有 5 个 0),你没法直接算出需要的随机数,只能一个一个试。就像你知道 “1+2=3” 很容易,但如果只告诉你 “一个数加 2 等于 3”,你能很快算出是 1,但如果问题是 “找一个数,和‘abc’拼在一起,通过 SHA-256 算出来的结果开头有 5 个 0”,那就只能一个个试,没有公式能直接算出来。而且这个算法是公开的,全世界的数学家和程序员都研究过,至今没人找到能 “走捷径” 的方法,所以 PoW 的安全性才这么高,能保证区块链运行这么多年都没出大问题。
免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。