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位的哈希结果。
相关推荐
知识浅谈8 分钟前
基于Dify构建本地化知识库智能体:从0到1的实践指南
后端
网络安全打工人14 分钟前
CentOS7 安装 rust 1.82.0
开发语言·后端·rust
cui_win18 分钟前
Kafka运维实战 14 - kafka消费者组消费进度(Lag)深入理解【实战】
分布式·kafka
梦兮林夕38 分钟前
04 gRPC 元数据(Metadata)深入解析
后端·go·grpc
pe7er1 小时前
RESTful API 的规范性和接口安全性如何取舍
前端·后端
梦想画家1 小时前
Apache Kafka实时数据流处理实战指南
分布式·kafka·apache
山风呼呼2 小时前
golang--通道和锁
开发语言·后端·golang
Ice__Cai2 小时前
Django + Celery 详细解析:构建高效的异步任务队列
分布式·后端·python·django
阿华的代码王国2 小时前
【Android】卡片式布局 && 滚动容器ScrollView
android·xml·java·前端·后端·卡片布局·滚动容器
云边散步3 小时前
《校园生活平台从 0 到 1 的搭建》第四篇:微信授权登录前端
前端·javascript·后端