工作量证明

✍ dations ◷ 2025-11-25 13:09:36 #密码学,理论计算机科学,密码货币,电脑安全

工作量证明(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),谁就等同获得该区块的打包权(记账权)。此猜测值被找出后,与数据、散列值一起打包成块后广播,经多数节点确认与承认,打包者就能获得打包该区块所提供的奖励。一般采用工作量证明的加密货币,好比比特币,会设置成随着参与竞赛的算力增减,而调整找寻猜测值的难度,以维持合理的运作速度。

相关

  • 猪只猪科(学名:Suidae)属于哺乳纲偶蹄目,共有约20种现生物种与许多化石物种,包括家猪以及疣猪和鹿豚等多种野猪。所有物种均原产于亚洲、欧洲、非洲等旧大陆地区。已知最早的猪科化石
  • 自由落体定律自由落体运动是指只受重力作用(不存在空气阻力的理想状态)的均匀加速度运动过程。运动过程中重力势能与动能之和遵守机械能守恒定律。在地球上相同位置与相同高度,自由落体的加
  • 赛尔曼·A·瓦克斯曼赛尔曼·A·瓦克斯曼(英语:Selman A. Waksman,1888年7月22日-1973年8月16日),乌克兰裔美国生物化学家和微生物学家。瓦克斯曼发现了链霉素和其他抗生素。瓦克斯曼首先将链霉素用于
  • 首次直接观测到GW150914是由激光干涉引力波天文台(LIGO)于2015年9月14日探测到的引力波现象,是人类首次直接探测到的引力波。相关探测结果由LIGO、处女座干涉仪(Virgo)研究团队于2016年2月11日
  • 空袭达尔文1942年2月19日,日本空袭达尔文(Bombing of Darwin)是历史上外国军队对澳大利亚规模最大的袭击,也是二战太平洋战争中重要的一次军事行动,给澳大利亚人带来了心理上的打击。数周之
  • IPv6网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的网络层协议。用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对
  • 热冲击热冲击(英语:Thermal shock):热辐射使物体受到局部快速加热;称为受到热冲击。结果是,由于物体各部温度升高速度不同;膨胀程度也不同;故其内部产生应变和应力;有些应力可超过脆性固体
  • 台语民族泰语民族或泰民族、泛泰民族是说壮傣语支语言民族的总称。这些民族不仅语言相近,而且多数有相似的传统习俗,如住干栏式建筑与生活在河谷低地(通常不超过一千米的闷热潮湿低地)、
  • 埃格斯特朗埃格斯特朗(Ångström, 简称埃,符号Å)是一个长度计量单位。它不是国际制单位,但是可与国际制单位进行换算,即1 Å = 10–10 米 = 0.1纳米。一般用于原子直径、化学键长和可见光
  • 马丁·彼得罗夫马丁·彼得罗夫(保加利亚语:Мартин Петьов Петров,1979年1月15日-),保加利亚足球运动员,2010年夏季以自由身加盟英超俱乐部博尔顿,及后于2013年1月转投西甲西班牙