PoW算法,请出示你的证明

口信消息型拜占庭问题的解可以防止 (n - 1) / 3 个坏人 (其中 n 为节点数)作恶,这样一来也是可以通过不断增加节点数来突破 (n - 1) / 3 的限制。为了防止这一行为可以使用区块链技术中的工作量证明(Proof of Work)算法。

原理

PoW算法,换言之工作量证明(Proof Of Work)算法,即通过一份证明来确认你做过一定量的工作。比如,你可以通过考取一张证书来证明你通过努力拥有了某个领域的专业技能。

具体来说就是,请求方需要做有一定难度的计算才能得到一个结果,验证方可以通过简单的计算来检查客户端是不是做了相应的工作。

PoW算法分为请求方和验证方两个角色,请求方首先通过计算得到一个计算结果,然后将这个计算结果发送给验证方核验;验证方收到计算结果后通过简单的计算来核验请求方发送来的计算结果是否正确。

注意:PoW算法具有不对称性,即对于请求方来说证明工作是有难度的,但是对于验证方核验工作真实性是比较简单的。

PoW使用的哈希算法

不同的PoW算法就是内部使用不同的哈希算法,在比特币圈中都是使用一些被认证过的安全算法,要么是单独使用,要么是排列组合使用。

SHA256

SHA-2安全散列算法2(Secure Hash Algorithm 2)由美国国家安全局研发的一种密码散列函数算法标准,向上它属于SHA算法之一,是SHA-1的后继者;向下它有可分为SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224和SHA-512/256六个不同的算法标准。

串联哈希算法

所谓串联就是将多种哈希算法串起来使用,2013年夸克币发布时就对输入数据进行了九次哈希函数的计算,即将前一轮计算的结果作为下一轮哈希函数计算的输入。这九轮哈希函数共使用了BLAKE、BMW、GROESTL、JH、 KECCAK和SKEIN六种加密算法。

虽然这类串联算法可以很好的增加PoW的安全性,但是因为整个串联过程是一条链环环相扣,只要破解其中一环,那么整个链条就断裂了。

并联哈希算法

所谓并联同样也使用了多种哈希算法,但是与串联不同的是,并联首先将输入数据通过某个哈希算法计算出一个值,然后将该值交给多个哈希算法分别计算出一个值,最后将这些值混淆编排成一个哈希结果。

如Heavycoin(HVC)算法:

  1. 使用HEFTY1哈希算法计算输入数据,得到结果d1;
  2. 将d1作为输入数据交给SHA256、KECCAK512、GROESTL512和BLAKE512分别计算出结果d2、d3、d4和d5;
  3. 提取d2-d5前64位混淆编排后形成一个256位的哈希结果。
相关推荐
计算机毕设匠心工作室几秒前
【python大数据毕设实战】全面皮肤病症状数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql
摆烂工程师8 分钟前
2025年12月最新的 Google AI One Pro 1年会员教育认证通关指南
前端·后端·ai编程
qq_124987075333 分钟前
基于SpringBoot+vue的小黄蜂外卖平台(源码+论文+部署+安装)
java·开发语言·vue.js·spring boot·后端·mysql·毕业设计
代码与野兽1 小时前
AI交易,怎么让LLM自己挑选数据源?
前端·javascript·后端
天天摸鱼的java工程师1 小时前
JDK 25 到底更新了什么?这篇全景式解读带你全面掌握
java·后端
非鱼feiyu1 小时前
自关联数据表查询优化实践:以 Django + 递归 CTE 构建树结构为例
数据库·后端·django
零日失眠者1 小时前
这5个Python库一旦掌握就离不开
后端·python
幌才_loong1 小时前
.NET8 × Redis 实战宝典:从配置到落地,搞定高并发缓存就这篇!
后端·.net
用户8356290780511 小时前
如何使用 Python 从 Word 文档中批量提取表格数据
后端·python
l***37092 小时前
spring 跨域CORS Filter
java·后端·spring