加密技术及加密哈希值算法是怎样服务于区块链的?
扫描二维码
随时随地手机看文章
分布式计算、机制设计和密码学算法构成了区块链技术的三位一体。分布式计算利用了一个分散的计算机网络,并以Torrenting网络的形式存在于区块链之前。
然而,TorrenTIng网站并没有管理参与者行为的方法,这就是机制设计进入区块链的地方。它为网络参与者提供了为网络服务工作的动力。
密码学是保护这些激励措施的安全保障。这一开创性的比特币白皮书解释了这三种科学原理是如何共同作用的,从而形成一种安全的、对等的价值交换,消除了金融交易中对第三方的需求。
虽然每一项原则都应该有自己的解释,但本文将重点介绍加密技术以及加密算法如何服务于区块链。
密码学简史
从古埃及时代起,某种形式的密码学就一直存在。在计算机时代之前,可以使用一种简单的密码算法来传输消息。其中最常被引用的是凯撒密码。凯撒密码用字母表中排在后三位的字母代替了每一个字母,所以A变成了D,B变成了E,依此类推。只要用于生成密文的系统仍然是保密的,那么这个消息也可以保持私有化。
后来,在16世纪,Vigenere引入了加密密钥的概念,加密算法可以解密加密的消息。使用Vigenere密码,消息文本被转录成一个单独的关键字,直到它匹配原始消息的字符长度为止。然后使用一张表生成密文。
这里的关键发展是,使用Vigener密码传输的消息的安全性依赖于密钥的保密性,而不是系统本身。
20世纪的发展
这类代码的问题在于,通过分析字母的频率,它们很容易被分解。在第二次世界大战期间,德国人广泛使用了英格玛机器,因为它能够生成无法通过分析字母频率来破解的密码文本。
这台机器使用了一个多转子系统来生成密文。因此,原始信息中的字母“e”对应于密码文本中不同的字母。关键是转子的初始设置。
尽管德国人认为密码是牢不可破的,但早在1932年,英格玛就被波兰破译了。在布莱切利公园为英国军队工作的密码学家,包括现在已经变成传奇人物的艾伦图灵本人,发现了一种方法来找出德国人使用的日常钥匙。
计算机的到来
战后,作为保护公司秘密的一种手段,商业和商业空间对加密的需求增加了。在20世纪70年代,IBM开发了数据加密标准(DES)加密算法。然而,它使用了一个小的加密密钥。随着计算机时代的到来,人们很容易就会对其进行暴力攻击,因此需要对更新进行无穷的更新。于是2000年采用了高级加密标准。
尽管许多人可能没有意识到这一点,但对事物进行加密现在是日常生活的一部分。在网站上的电子邮件和短信、密码和SSL层都涉及到加密的使用。它还构成了加密货币的支柱。有许多不同类型的密码学算法涵盖了各种用例,其中很多已经过时了。然而,在区块链中使用加密技术包括数字签名和哈希值。
数字签名
加密货币的支付需要以私钥的形式进行数字签名。当有人通过支付事务输入他们的私钥时,这会对交易进行加密。当付款到达目的地时,接收者可以使用发送方的公钥解密交易。
这就是所谓的非对称加密,因为它依赖于密码学之间的一对键。它比对称加密更安全,因为发送方和接收方都使用相同的密钥。在这种情况下,密钥本身也必须与支付一起传输,这意味着需要额外的安全层来保护密钥。
哈希
区块链也依赖于哈希值。哈希值是一种可以将任何类型的数据转换成字符串的加密方法。除了通过加密提供安全性,哈希值还创建了一个更高效的数据存储,因为哈希值的大小是固定的。
加密哈希值算法的特点
加密哈希值算法必须满足特定的标准才能有效:
·相同的输入必须总是产生相同的输出。无论您将数据放入哈希值算法中多少次,它都必须始终如一地在字符串中使用相同的字符产生相同的哈希值。
·输入不能用输出来推断或计算。没有办法逆转哈希值过程来查看原始数据集。
·输入的任何更改都必须产生完全不同的输出。即使在数据集中改变一个字符的情况,也应该创建一个非常不同的哈希值。
·哈希值应该是固定数量的字符,不管用作输入的数据的大小或类型。
·创建哈希值应该是一个快速的过程,它不会大量使用计算能力。
哈希是如何工作的?
区块链对每一笔交易都进行了处理,然后将它们组合成块。哈希值指针将每个区块连接到它的前身,方法是在前一个区块中持有数据的哈希值。因为每个块都会链接到它的前身,所以区块链中的数据是不可变的。哈希函数意味着任何事务的变更都会产生完全不同的哈希值,这将改变所有后续块的哈希值。
不同的区块链使用不同的加密算法。比特币区块链使用的是SHA256算法,该算法生成一个32字节的哈希值。Dogecoin和Litecoin都使用了Scrypt算法,这是一种更快、更轻的加密算法。
密码学是一门复杂而详细的科学,它超越了区块链的范围。在密码学方面有大量的知识需要进行研究,特别是对于更科学或数学上的倾向,这是一个值得探索的迷人主题。