分布式计算、机制设计和密码学算法构成了区块链技术的三位一体。分布式计算利用了一个分散的计算机网络,并以Torrenting网络的形式存在于区块链之前。然而,Torrenting网站并没有管理参与者行为的方法,这就是机制设计进入区块链的地方。它为网络参与者提供了为网络服务工作的动力。密码学是保护这些激励措施的安全保障。
虽然每一项原则都应该有自己的解释,但本文将重点介绍加密技术以及加密算法如何服务于区块链。密码学简史从古埃及时代起,某种形式的密码学就一直存在。在计算机时代之前,可以使用一种简单的密码算法来传输消息。其中最常被引用的是凯撒密码。凯撒密码用字母表中排在后三位的字母代替了每一个字母,所以A变成了D,B变成了E,依此类推。只要用于生成密文的系统仍然是保密的,那么这个消息也可以保持私有化。
这里的关键发展是,使用Vigener密码传输的消息的安全性依赖于密钥的保密性,而不是系统本身。20世纪的发展这类代码的问题在于,通过分析字母的频率,它们很容易被分解。在第二次世界大战期间,德国人广泛使用了英格玛机器,因为它能够生成无法通过分析字母频率来破解的密码文本。这台机器使用了一个多转子系统来生成密文。因此,原始信息中的字母“e”对应于密码文本中不同的字母。关键是转子的初始设置。
尽管许多人可能没有意识到这一点,但对事物进行加密现在是日常生活的一部分。在网站上的电子邮件和短信、密码和SSL层都涉及到加密的使用。它还构成了加密货币的支柱。有许多不同类型的密码学算法涵盖了各种用例,其中很多已经过时了。然而,在区块链中使用加密技术包括数字签名和哈希值。数字签名加密货币的支付需要以私钥的形式进行数字签名。当有人通过支付事务输入他们的私钥时,这会对交易进行加密。
哈希是如何工作的?区块链对每一笔交易都进行了处理,然后将它们组合成块。哈希值指针将每个区块连接到它的前身,方法是在前一个区块中持有数据的哈希值。因为每个块都会链接到它的前身,所以区块链中的数据是不可变的。哈希函数意味着任何事务的变更都会产生完全不同的哈希值,这将改变所有后续块的哈希值。不同的区块链使用不同的加密算法。比特币区块链使用的是SHA256算法,该算法生成一个32字节的哈希值。
领取专属 10元无门槛券
私享最新 技术干货