解阻塞区块链:哈希
Heng Kiong在一所高等院校教授信息技术,包括商业分析和管理信息系统。
哈希是什么?
在之前的两篇文章中公钥加密技术和数字签名-我们了解到数字签名证明消息是由特定的人发出的,而不是其他人。数字签名确保了消息身份验证,因为它们可用于向事务的参与者保证信息来自签名者并且是可信的。
在本文中,我们将探讨区块链网络中必不可少的第二个密码学概念,即“哈希”。
哈希是应用哈希函数的过程。哈希是一种确认,表明哈希函数的输出没有以任何方式被篡改。哈希将字符串转换为唯一表示原始字符串的值。例如,比特币使用SHA-256算法获取输入,并将其转换为256位(32字节)的固定大小的输出。例如,
区块链- - - - - -dffdca1f7dd5c94afea2936253a2463a26aad06fa9b5f36b5affc8851e8c8d42
区块链- - - - - -ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1
SHA即安全哈希算法。区块链使用256位的信息来表示它在任何给定时间的当前状态。
测试
对每个问题,选择最好的答案。答案如下。
- 输入的微小变化应该会产生完全不同的输出。
- 真正的
- 假
- 无论输入的长度是多少,相同的Hash函数都应该产生相同的输出长度。
- 真正的
- 假
- 散列相同的输入字符串应该总是产生相同的输出。
- 真正的
- 假
- 对于哈希输出,要猜测输入应该是极其困难的。
- 真正的
- 假
- 两个不同的输入字符串不应该生成相同的输出。
- 真正的
- 假
答案
- 真正的
- 真正的
- 真正的
- 真正的
- 真正的
一个类比
让我们尝试在这里用条形码来解释这一概念。条形码是用来识别特定产品的条码和空格的图像。例如,在超市中,条形码唯一地表示其本身所附的商品。然而,仅仅看条形码是很难猜到产品的。
校验文件校验和
在计算机安全系统中,哈希用于确保传输的信息没有被篡改。
在下载文件的情况下,您可能能够看到包含的校验和值,因此您可以验证下载的文件是否已损坏。例子:
下载链接
文件名:Blockchain_FINAL_040518.mp4
SHA256: 6528 d13bc80d1e4603f63face7fed28b462d7eaa735f8f5ccdeb94b914723269
验证
哈希可以确保文件是相同的,并且在下载过程中没有发生损坏。
一旦下载了文件,就可以验证下载的文件和发布的校验和是否匹配。
在Windows中
使用内置的CertUtil实用程序
在Windows下打开命令提示符
导航到下载文件的文件夹
执行如下命令:
C:\>CertUtil -hashfile / SHA256
在苹果电脑
打开终端
执行如下命令:
shasum -a -256 /Users/<路径名>/videos/Blockchain_FINAL_040518.mp4
检查SHA-256散列值以匹配原始文件中的散列值。
好的哈希函数的特征
哈希有以下特点,这使得它适合区块链。
- 在计算之前,很难预测任何输入的哈希值是多少。
- 计算效率
- 抗碰撞-很难找到两个输入匹配同一个输出
- 隐藏信息——在给定输出的情况下,很难收集任何有关输入的有用信息。
- 均匀分布-输出应该看起来是随机的
区块链中的哈希
区块链通过将一系列不可变的时间戳数据记录链接在一起来保存整个事务列表。区块链中没有中央权威。区块链网络的参与方需要一个信任保证,即记录没有被非法篡改或修改。
散列规定。它表示到目前为止已经发生的事务的当前状态。
接下来是什么
在区块链中,交易按时间顺序连接在一起,形成一个连续的区块链。哈希提供了数据的安全性。我们将在下一篇文章中了解区块链中如何使用哈希。
在比特币中也使用哈希,矿工需要找到区块头的哈希,以一定数量的0开始。稍后我们将介绍这一点。
导航条
请查看完整系列:
第7部分-哈希
据作者所知,这篇文章准确而真实。内容仅供信息或娱乐用途,并不能代替个人顾问或专业建议在商业,财务,法律,或技术问题。
©2018 Heng Kiong Yap