工作量证明

✍ dations ◷ 2025-07-26 16:02:43 #密码学,理论计算机科学,密码货币,电脑安全

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

相关

  • 肱骨外上髁炎肱骨外上髁炎,俗称网球肘,是一种肱骨外髁突附近(肘关节外侧)酸痛的症状。前臂伸肌肌腱在抓握东西(如网球拍)时收缩、紧张,过多使用这些肌肉会造成这些肌肉起点的肌腱变性、退化和撕
  • 吉伯磁动势的标准定义是电流流过导体所产生磁通量的势力(force),是用来度量磁场或电磁场的一种量,类似于电场中的电动势或电压。它被描述为线圈所能产生磁通量的势力,这样科学家就能
  • 外交官外交官是一个国家派往他国办理外交事务的人员。外交官的任务是代表他的国家与其他国家进行双边或多边谈判。外交官有临时性的、只为商讨一件特定事务而到他国去的,也有在另一
  • 托阿尔期托阿尔期(英语:Toarcian)是侏罗纪的第四个时期,年代大约位于182.7–174.1百万年前。
  • 1860年美国总统选举詹姆斯·布坎南 民主党亚伯拉罕·林肯 共和党1860年美国总统选举是美国第19届总统选举,于1860年11月6日举行,选举结果由共和党人、前众议员亚伯拉罕·林肯取得180票过半数选
  • 豫州 (九州)豫州,是汉族传统中的汉地九州之一,位于黄河至汉水上游之间的地区,领有中原的主要地域,相当今黄河以南的河南省地区。汉武帝元封五年(公元前106年)于豫州地区设置豫州刺史部作为监
  • 冢地武雅冢地武雅(1971年11月25日-)是日本男性搞笑艺人及演员,在搞笑二人组“醉龙(日语:ドランクドラゴン)”中负责装傻(偶尔会转为吐嘈),搭挡是铃木拓。昵称是“冢っちゃん”。大阪府阪南市出
  • 2010年莫斯科地铁连环爆炸事件2010年莫斯科地铁连环爆炸事件是发生于2010年3月29日早上通勤时段、俄罗斯莫斯科地铁卢比扬卡站和文化公园站。两个地铁站的到站列车车厢先后发生爆炸,事件造成最少40人死亡
  • 克莱夫·伯尔克莱夫·伯尔(英语:Clive Burr,1957年3月8日-2013年3月12日),英国鼓手,1979年至1982年重金属音乐乐队铁娘子乐团成员。
  • 灵鹫山无生道场灵鹫山无生道场,是一个三乘合一的佛教道场。位于台湾新北市贡寮区福隆里灵鹫山(雪山山脉北端的首座山峰荖兰山(鹰仔山)之近旁)、最高点海拔约387米,即在福隆近郊。由释心道法师