Proof of work - 工作量证明

http://blog.csdn.net/hacode/article/details/8750037



简述:

在垃圾邮件防范和DOS系统中,可能会用到“工作量证明”这个工具。 简而言之,就是一份证明,它能够说明你为此工作了一定量的时间了。


当然,这只是对于一方而言的,游戏的另一方应该有一个很简单的办法验证你的答案是否正确。


举例子:

B给A出了一个难题,或者A自己找来一个难题,A花费了10分钟时间证明一个问题,然后把答案发送给B,B只要1秒钟不到就验证了答案是否正确。


这样在计算机系统中,可以用于这样的情形:

A请求一个B的服务,如果A可以段时间大量的请求,可能会造成B的崩溃,于是B对于服务的请求者出题,或者约定一种“解答-验证”协议

,这个题需要花费一定的时间去计算,计算好了以后,发送个B验证,B瞬间可以验证完毕,验证通过,再给A提供服务。


如果A是一个攻击者,这个时间花费×它要攻击的对象n是一笔可观的cpu计算量投入,因此可以有效阻止恶意攻击。


“工作量证明”工具:

Here is a list of known proof-of-work functions:


Hashcash

比如说,Adam Back提出的HASHCASH工具,启发过bitcoin系统。


hashcash可以用于防止垃圾邮件。


发信者需要对邮件头head,附加一个random,然后对这个string进行sha1-160,如果hash的前20个bit是0,那么就算solved,于是发送邮件给receiver。


收信人拿到以后,也对这个由sender发现的string进行hash,发现前20个bit确实是0,于是认为sender确实做了辛苦的hash搜索工作,于是相信sender不是一个垃圾制造者,sender可能是一个正常的邮件对象发送过来的。


这个案例中,工作量大概是,2的20次方个随间random搜索以后,大概可以找到一个前20bit是0的hash,也就是答案。因为前20个bit,每一bit是0的概率都是1/2,所有总的概率就是1/(2的20次方)。


而接收方的验证是极其简单的。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值