一天讲一个Web3概念:PoW
新开一个系列,5分钟讲一个Web3的基本概念。东西虽然基础,讲得透彻却也不容易。
成长哪有那么秘诀,不过是在枯燥的学习中,日复一日地坚持罢了。
Day 1:PoW
发明PoW的人真的是个天才!
设想一个这样的场景,你举办了一个比赛,你希望:
- 可以让更多的人都积极参与,这样的话这个比赛的影响力就会越来越大
- 不想花钱请人,所以需要参与者自己当裁判,规则定好后这个赛事可以自发一直运行下去
- 要能够防止作弊
要怎么设计参与规则?
积极参与好办,就给参与者发奖品,并且让每个人都有机会中奖。最简单的方式就是抽奖,但不能用抽奖箱,防止有人暗箱操作;也不能用竞技的方式,例如比谁跑得快,这样跑得慢的人就不想参加了,影响积极性;规则还要足够简单,公开透明,这样参与者才能当裁判……
这点子还真给人想到了!那就是做一个巨大的骰子,这个骰子的点数可以从1~2^256(非常大的一个数字)。掷一次出哪个数字完全随机且无法预测,参与者要做的事就是不断掷骰子,直到掷出来的数字满足条件。
这个问题最终被简化为:中奖的概率取决于掷骰子的次数,掷得越多越容易中奖,通过工作量来换取中奖名额,这种方式就叫做 PoW(Proof of Work 工作量证明)。
比特币就是这样的一套系统,当然,不可能真造出这样一个“巨大的骰子”,在比特币系统中这个骰子叫做Mining Puzzle(挖矿谜题,下一期专门详聊)。它与骰子类似,计算过程是全公开的,每进行一次运算会得到一个结果,且全随机,只有当计算结果小于X才表示挖矿成功,奖励比特币。X这个数字相当于难度系数,数字越小则难度越高,用于把中奖频率控制在每10分钟左右一次。
比特币网络相当于比赛系统,参与者就是矿工,骰子是Mining Puzzle,PoW是游戏规则(也就是共识机制),矿工通过类似掷骰子的方式去解Mining Puzzle,其他矿工很容易就能验证结果的正确性。当然为了防止少部分参与者联合起来作恶,这个系统要求要有足够多的人一起参与。
要么说中本聪是个天才呢!通过PoW这种方式开创了一个完全去中心化的区块链网络,给后续Web3的发展奠定了基础。话说回来PoW也有缺点,就是很费钱,既要拼算力也要拼电力。有没有不费电的共识机制?有!关注我,后面展开聊。