比特币的工作量证明,本质上是利用了单向散列函数,去计算出一个带随机数的字符串的哈希值,并且指定哈希值符合一定规律才可以结束计算,最先完成计算的人全网广播,而其他人很容易就可以验证计算结果是否正确。
计算随机数的数学题目本质是概率问题。
这种思想是从HashCash而来,HashCash的目的是为防止垃圾邮件,如果有人想要发送邮件,那么接收方会提出要求,加上“邮票”,就是收到的邮件Hash值开头0的个数不小于多少,以扔骰子为例,如果你想要给我发邮件,扔出来的数得小于12,只要不扔出两个六,就算通过。小于6呢,通过统计学可以算出来,总体上难度是增加了,也就是目标值越小,难度值越大。
所以,有人设置你的邮件难度非常大的时候,等于把你拉黑了。
不会是一IP一票,而是一CPU一票。因为IP地址分配是一个中心化问题,而CPU无法进行中心化控制。
难度动态变化,为的是防止摩尔定律,硬件更新过快。这也是中本聪的一项独特设计。
pow利用了信息安全的另一个特点,就是安全和成本相关性,这个世界没有绝对安全,比特币的系统利用了其中两个可管理,与攻击成本,通过原文,随机散列值,以一个或多个零开始,那么随着灵的数目的上升,找到这个姐所需要的工作量将呈指数增长,实现通过增加成本来提升安全性。
这属于经济学原理。
这节课的收获是,作者演示了收到邮件后,对其进行Hash,然后转换成二进制,可以清楚的看到二进制的前面27都是0,符合要求。看到这一过程,让我印象更深刻。
另外就是理念的运用,随机数,难度动态调整。
理解了难度值和目标值的反向关系。以扔骰子为例,形象一些。