工作量证明

✍ dations ◷ 2025-12-06 06:59:48 #密码学,理论计算机科学,密码货币,电脑安全

工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是拒绝服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。此一概念最早由Cynthia Dwork(英语:Cynthia Dwork)和Moni Naor(英语:Moni Naor)于1993年的学术论文提出,而工作量证明一词则是在1999年由Markus Jakobsson(英语:Markus Jakobsson)与Ari Juels.所发表。现时此一技术成为了加密货币的主流共识机制之一,如比特币所采用的技术。

工作量证明最常用的技术原理是散列函数。由于输入散列函数h()的任意值n,会对应到一个h(n)结果,而n只要变动一个比特,就会引起雪崩效应,所以几乎无法从h(n)反推回n,因此借由指定查找h(n)的特征,让用户进行大量的穷举运算,就可以达成工作量证明。

我们若指定h(n)的16进制值的前四值,求n,这样统计上平均约要运行216次h(n)散列运算,才会得到答案,但验算只要进行一次就可以了。如果想要增加难度,那就增加指定的位数即可。以SHA256函数举例,假设我们要处理数据Hello World,并找出h(n)前四值为0000的n,如果从Hello World0开始加上一个十进制数ASCII进行穷举猜测,到Hello World107105时才会得到符合条件的h(n):

0000BFE6AF4232F78B0C8EBA37A6BA6C17B9B8671473B0B82305880BE077EDD9

验算时只要将Hello World107105代入SHA256函数一次即可。

由于加密货币多由区块链所建构,而区块链本来就要依赖散列函数来做为数据正确无误的担保,所以在加密货币上使用工作量证明,是非常简明的设计。由分散在各处的计算机,竞赛谁能最早找出,搭配原本要打包的数据的穷举猜测值(nonce),谁就等同获得该区块的打包权(记账权)。此猜测值被找出后,与数据、散列值一起打包成块后广播,经多数节点确认与承认,打包者就能获得打包该区块所提供的奖励。一般采用工作量证明的加密货币,好比比特币,会设置成随着参与竞赛的算力增减,而调整找寻猜测值的难度,以维持合理的运作速度。

相关

  • 孤雌生殖单性生殖又称为孤雌生殖(Parthenogenesis),是动物或植物的卵子,不经过受精过程,而单独发育成后代的生殖方式,与一般无性生殖稍有区别。单性生殖一般发生在多种植物和无脊椎动物
  • 硅谷硅谷(英语:Silicon Valley),是高科技事业云集的美国加州圣克拉拉谷(Santa Clara Valley)的别称,位于加利福尼亚州北部、旧金山湾区南部。硅谷的主要部分位于旧金山半岛南端的圣塔克
  • 何鸣元何鸣元(1940年2月8日-),中国石油化工专家。1940年生于上海,籍贯江苏苏州。1961年毕业于华东纺织工学院应用化学专业。中国石油化工集团公司石油化工科学研究院总工程师,华东师范大
  • 公益彩券中华民国公益彩券为台湾的博彩,从1999年12月1日开始发行,法源依据为1995年7月公布施行的《公益彩券发行条例》,以提升社会福利为主要目的之一。每五年换发行业者,第二标起改成七
  • 圣文德圣文德,天主教译为圣文都辣,或译波拿文德拉、波那文都,O.F.M.(意大利语:San Bonaventura,1221年-1274年),是中世纪意大利的经院哲学神学家及哲学家。作为第七任方济各会总会长(英语:Lis
  • 古希腊陶器古希腊陶器指由古希腊人制造的陶瓷,陶器上的图饰成为了了解希腊绘画艺术发展过程的主要来源。根据不同用途,大小和形状也各不相同:大型的器皿主要用于贮藏和运送液体(酒、橄榄油
  • 下诺夫哥罗德州下诺夫哥罗德州(俄语:Нижегородская область,罗马化:Nizhegorodskaya oblast)是俄罗斯联邦主体之一,属伏尔加联邦管区。面积为76,900平方公里,人口3,524,028(20
  • 温世仁温世仁(1948年1月21日-2003年12月7日),台湾台北人,毕业于台湾大学电机工程研究所,台湾企业家。历任三爱电子厂长、金宝电子总经理、英业达厂长、总经理、英业达集团总裁、副董事长
  • 卡纳维拉尔角 (佛罗里达州)卡纳维拉尔角(英语:Cape Canaveral),是美国佛罗里达州下属的一座城市。建立于1963年。面积约 为6平方公里(约合2.3平方英里)。根据2010年美国人口普查,该市有人口9,912人。论人口在
  • 科比耶尔山脉科比耶尔山脉(法语:Massif des Corbières)是法国的山脉,位于该国东南部朗格多克-鲁西永大区,属于前比利牛斯山山麓的一部分,东临地中海,南接阿格利河,西面和北面是奥德河。坐标:42°