区块链的分布式、不可篡改与身份标识

· 区块链是一个分布式账本

区块链的分布式、不可篡改与身份标识_第1张图片

区块链推翻了传统的记账模式。与传统记账模式不同,区块链中的交易信息不再由单个机构来记录,而是由其中的每一个节点共同参与记账**。在这个分布式网络上,每个节点都有账本的完整备份

如何实现(账本上)信息的不可篡改?——哈希算法

哈希算法思想:接收一段明文,以一种不可逆的方式将它转化成一段长度较短****、位数固定输出散列。这个加密过程是不可逆的,这就意味着无法通过输出散列的内容推断出任何与原文有关的信息,任何输入信息的变化,哪怕仅仅是一位数的更改,都将导致散列结果的明显变化。

哈希算法可以被用于验证信息是否被修改。通过哈希算法可以对一个交易区块的所有交易信息进行加密,并把记账内容压缩成一串数字和字母组成的字符串,这个字符串无法反推出原来的内容。

区块链的哈希值可以唯一准确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值,如果想要确认区块的内容是否被篡改,那么利用哈希算法重新进行计算,记账信息没有变化,计算出的哈希值也将不会产生变化。

在区块链中,通常采用SHA-256的哈希算法进行区块的加密,该算法的输出长度为256位,即生成长度为32字节的随机散列。

区块链如何标识身份——公钥、私钥

在区块链中,信息的传播按照公钥加私钥的方式进行。
公钥——桃花岛每家每户居民的信箱地址。当别人获知你的公钥时,可以与你通信
私钥——相当于信箱的钥匙,只有拥有私钥的人可以用于验证信息发送者的身份
数字签名——验证信息发送者的身份,用户可以公布自己的公钥,然后发送可以被公钥所验证的,已经通过私钥加密过的信息。如果信息的接受者能够使用公钥解密加密过的信息,即可证明这条信息发送者的身份属实。
问题:如果公钥公布,岂不是所有人都可以利用公钥解密?
区块链的分布式、不可篡改与身份标识_第2张图片
Alice使用私钥对文件签名,然后发送给Bob,Bob使用Alice的公钥对文件进行签名验证,如果验证成功,则该文件一定是使用Alice的私钥加密的。由于Alice的私钥只由Alice一人持有,Bob就可以确定文件的发送者正是Alice本人。
区块链的分布式、不可篡改与身份标识_第3张图片

此外,公钥与私钥可以保证分布式网络点对点信息传递的安全。假设这样一个情形:Alice想在分布式网络中发送一封情书给Bob。但由于分布式网络的信息传递特性,这封情书被发送至每一个用户手中。Alice不希望情书的内容被其他用户看到,因此Alice使用Bob的公钥对情书进行加密。网络除了Bob外的其他用户接收到这封经过加密的情书,看到的只是一段密文,只有Bob可以使用自己的秘钥对密文进行解密,得到一份情书的明文。通过这个加密和解密的过程。Alice与Bob之间实现了点对点的数据传递。

通过秘钥和公钥,可以实现数据传输的隐私性,即使数据会传递到每一个用户,但只有指定的用户才能打开文件。

在区块链的信息传递中,信息传递双方的公私钥加密与解密往往是成对出现的。
信息发送方使用私钥对信息签名,使用信息接收方公钥对信息加密,(己方私钥签名,对方公钥加密
信息发送方使用对方公钥验证信息发送方的身份,使用私钥对加密信息解密。(对方公钥验证,己方私钥解密。)

你可能感兴趣的:(区块链)