时间:2022-01-07|浏览:7346
用戶喜愛的交易所
已有账号登陆后会弹出下载
今天,我们来谈谈区块链和比特币的核心技术,哈希算法及其防碰撞性能。
这种算法的特点是它就像一个方程组。方程组的解决方案是一个接一个地尝试的。这个方程非常复杂,例如,如果你知道x,你可以把x带进去找到y。但如果你知道这个y,你就不能反过来解决x。当然,实际算法比这个要复杂得多。
这个算法意味着无论你输得多大,它都可以是无限的。他的输出值是一个固定长度的数字。他有一个非常核心的性质,那就是防止碰撞。
这是什么意思?也就是说,你很少输入两个不同的数字,最终获得相同的数字。尽管这种情况在逻辑上是可能的。因为你的输入远远大于你的输出可能性。
例如,你在这里输入一个,你好。然后你输入另一个,你好吗?。这两个哈希值应该是不同的。或者你基本上不可能人创造相同的哈希值。
那这种算法特性能不能被证明出来?答案是不能。这个东西只能这样试出来,你无法进行数学证明。所以其实比较搞笑的是这个性质是大家试出来的,或者是靠经验总结出来,也就是说我就说他对,你没办法证明他不对。但是这种防止碰撞的特性却有很大的用处。
具体来说,他可以看到你的数据是否被改变了。
例如,你写了一篇很好的文章。然后你把它存给你的朋友。或者你把它存到网上。但是这篇文章有很多单词,可能会被改变。那么,如何判断长时间后是否被改变呢?
很简单,你提前用哈希计算文章的所有内容,得到一个值。当你再次取回它时,你会再次计算哈希,看起来和以前一样不同。如果是一样的,那就不会改变,如果不同,那就意味着它已经改变了。请注意,即使他改变了一点,改变了一个逗号,一个结束。哈西的价值也有所不同,理论上是这样,魔法并不神奇?
这个性质和区块链有什么关系?这意义重大。我记得我之前写过,比如你在区块头保存的哈希值,其实是和上一个区块头的哈希值一起计算的。
这相当于第二块保存了第一块的基因。第三块保存了第二块的基因。同时,第三块也包含了第一圈的基因。这就是所谓区块链词的含义。这增强了区块链的不可篡改性。
因为如果你想篡改某个区块的内容或整个区块链的内容,你需要抓住该区块的块权。抓住后,你必须改变最后一个,然后抓住最后一个块权,然后抓住最后一个块权。如果你的计算能力不是那么大,那就等于你做不到。因此,比特币系统中有一个规定,即六个块基本上可以确认信息不能被篡改。
这就是哈希函数所谓的防碰撞特性。当然,他还有其他性质。让我们稍后慢慢说。我仍然希望你能一点一点地理解他的底层原则、逻辑和技术,而不是每天争论他是否是骗局。