10. 哈希函数:实现不可篡改的第一步

理解比特币其实并不需要了解太多的技术概念,只需要知道两个技术:哈希函数、非对称加密。其他概念都可以通过逻辑推导得出,所以非技术出身的读者也能完全理解。

这一章来讲解一个极为重要的技术概念——哈希函数。理解起来非常简单。

计算机语言中的函数,和数学上的函数类似,就是输入一个数据,然后输出一个结果。

哈希函数是一类函数,它们的效果是,输入任意数据(可以是文件),输出一个长度固定的,但非常长的,看上去像乱码的整数,一般把输出值称为哈希值(甚至简称为“哈希”)。这时,哪怕只对输入的原始数据做很小的改动,哈希值都会变得面目全非。你可以在这个网站使用各种哈希函数做些尝试: http://www.jsons.cn/sha/ 。

我们拿比特币所采用的 SHA256 哈希函数举例。下面两段文字的哈希值不同,所以可以得知它们的内容一定有差异,你能找到差异吗?

哈希函数的输出值毫无规律可循。而且无法从输出值反推输入值,因为信息量损失了。

比特币使用的 SHA256 会输出长度 256 位的二进制数,也就是 64 位十六进制数。这个数非常长,有 2^256 种可能性。如果你想找到两个不同的输入值,让它们有相同的输出值,这种可能性基本为零。

说到这,你应该已经意识到了哈希函数的用途。我们可以将一段很长的信息进行哈希,然后拿住输出的哈希值,以后一旦这段信息发生变化,它的哈希值也会变,我们就可以很快做个对比,发现篡改。

回到本书开头的具体需求:A 向 B 提交一条数据并声明其诞生时间,希望 B 相信这条数据没有被篡改过。有了哈希函数,A 只要在数据诞生的时候,把哈希值发送给 B,以后任何时间把数据给 B,B 都可以相信这段数据没有被篡改。

当然,你也发现了,仅仅这样的功能,并不是很实用。现代社会中,我们经常要跟素未谋面的人打交道,不可能在很久以前就收集到对方数据的哈希值。

可见,“不可篡改”有不同程度之分。我们的最终目标是极致的不可篡改,是可以让任何陌生人立刻相信一段数据没有被篡改,还要足够便宜。可见,我们离目标还有很长的距离。后面的每一章,我们都会向这个目标迈进一步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着科技的不断进步,我们的生活变得越来越离不开各种各样的程序。程序已成为我们日常生活和工作中不可或缺的一部分,它们可以帮助我们更高效地完成任务,节省时间和精力。今天,我要向大家介绍一款功能强大、用途广泛的程序,它具有万金油般的能力,可以为我们的生活带来极大的便利。 首先,这款程序具有非常强大的功能。它不仅可以帮助我们完成日常的文字处理、数据分析和报表制作等任务,还支持各种格式的文件读取和编辑。同时,它还具有多种工具和插件,可以扩展其功能,满足我们不同的需求。无论是工作还是生活,这款程序都能帮助我们轻松应对各种挑战。 其次,这款程序的界面设计非常友好。它的界面简洁明了,操作简单易懂,即使是不熟悉电脑操作的人也可以轻松上手。同时,它还支持自定义快捷键和界面主题,可以让我们根据自己的习惯和喜好进行个性化设置。 此外,这款程序还具有出色的稳定性和安全性。它采用了先进的技术和算法,可以保护我们的文件和数据安全。同时,它还支持自动备份和恢复功能,即使出现意外情况,也可以帮助我们快速恢复到之前的状态。 总之,这款程序就像生活中的万金油一样,具有广泛的应用场景和多种功能。它可以为我们的生活和工作带来便利和效率,帮助我们更好地应对各种挑战。如果您还在为处理各种任务而烦恼,不妨尝试一下这款程序,或许它会成为您的得力助手。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值