极简理解实践POW

说明

本文操作是centos环境下操作,其他linux版本/mac环境类似

pow,proof of work,工作量证明,简单理解就是做一件事情,这件事情要求有一定难度,但是否满足要求却极其容易验证。比如如下代码:

1
2
3
4
5
6
7
8
#the number must be difficult to find but easy to verify
from hashlib import sha256
x = 5
y = 0
while sha256(f'{x*y}'.encode()).hexdigest()[-1] != "0":
y += 1

print(f'the solution is y = {y}')

注意,上述代码需要再python3的环境可以直接执行,

上面代码比较简单,就是寻找一个满足一定条件的数字:与5乘积的sha256的哈希值的16进制最后一位为0,这个可以认为就是一个pow.

1
2
>>> sha256('105'.encode()).hexdigest()
'1253e9373e781b7500266caa55150e08e210bc8cd8cc70d89985e3600155e860'

坚持原创技术分享,您的支持将鼓励我继续创作!