工作量证明

✍ dations ◷ 2025-09-09 18:56:58 #密码学,理论计算机科学,密码货币,电脑安全

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

相关

  • 东城区东城区位于北京市中心城区东部,北、东与朝阳区相接,南与丰台区相连,西与西城区相邻。总面积41.84平方公里。2017年全区人口87.8万。下辖安定门街道、交道口街道、北新桥街道、
  • 詹姆斯·斯普迪赫詹姆斯·安东尼·斯普迪赫(英语:James Anthony Spudich,1942年1月7日-),克罗地亚裔美国生物化学家、斯坦福大学生物化学和心血管疾病教授。2012年与迈克尔·希茨和罗纳德·韦尔同
  • 游戏游戏,既可以指人的一种娱乐活动,也可以指这种活动过程。游戏的道具可以为玩具。在英语,体育比赛(Game)亦是游戏的一种,而体育运动亦是由游戏演变出来。游戏是一种有组织的玩耍,一般
  • 范德瓦尔斯半径范德华半径,在晶体中,相邻的两原子没有键结,而是以分子间范德华力互相吸引,加上原子间本身的排斥力交互作用,其核间最适距离可用来指定该元素半径,如氖之相邻两原子核间平均距离为
  • 让·佩兰让·巴蒂斯特·佩兰(法语:Jean Baptiste Perrin,1870年9月30日-1942年4月17日),法国物理学家,生于法国里尔。1926年诺贝尔物理学奖获得者。让·巴蒂斯特·佩兰出生于法国 里尔,读过
  • TLCTLC频道(TLC)是探索通信(Discovery Communications)旗下其中的一个频道,美国版本解作“The Learning Channel”(学习频道);亚太版本则解作“Travel & Living Channel”(旅游生活频道)
  • 卡洛特水电项目卡洛特水电项目(英语:Karot Hydropower Project)是中国和巴基斯坦联合建造的川流式发电水坝,这是巴基斯坦境内杰赫勒姆河规划的五个梯级电站的第四级。坝址位于巴基斯坦的旁遮普
  • 崁头厝崁头厝,可以指:
  • 花生卷加冰淇淋花生卷冰淇淋为宜兰的特色小吃,为各大夜市/庙口美食之一,其外观型状以及制作方式与润饼相似,是刨刀刨削用麦芽糖粘结的花生麦芽糖块,再用润饼皮包裹着芋头口味的冰淇淋、花生糖
  • 遗传编程遗传编程或称基因编程,简称GP,是一种从生物演化过程得到灵感的自动化生成和选择计算机程序来完成用户定义的任务的技术。从理论上讲,人类用遗传编程只需要告诉计算机“需要完成