区块链环节
如前所述,区块链创建的环节包含下面几个环节:
创建交易
参与者可以创建交易,其中包含要在区块链上执行的操作和相关的数据。
交易验证
在区块链中,交易需要经过验证才能被添加到区块中。验证过程包括使用非对称密钥来验证交易的签名,并使用哈希函数验证交易的完整性。
区块创建
一组验证通过的交易将被打包成一个区块,区块包含交易数据、时间戳和前一个区块的哈希值。
区块链共识
在区块链中,参与者需要达成共识,以确定哪个区块将被添加到区块链中。共识机制可以是工作量证明(Proof of work)、权益证明(Proof of stake)或其他形式的共识算法。
区块链网络传播
一旦区块被创建和验证,他将通过区块链网络进行传播,以便其他参与者可以接收并验证该区块。
区块链验证
在接收到新的区块后,参与者将验证该区块的有效性和完整性。验证包括验证该区块的交易和哈希值,并确保区块链的连续性。
区块链更新
一旦区块被验证,它将被添加至区块链的末尾,成为新的最后一个区块。这样,区块链就得到了更新,并且包含了新的交易和数据。
在上述环节中,交易验证、区块链验证等环节涉及到非对称密钥加密和哈希, 这是两种主要用于保护区块链的技术,这些技术依赖几种经过验证的复杂算法,其中一种就是公钥密码学。
区块链去中心化网络的参与者不一定是彼此认识的,其运作超过了信任的界限,在这种背景下,如何识别同行参与者?如何授权和验证交易?就可以通过公钥密码学来实现。在了解公钥密码学之前,我们先了解相对简单的对称密钥加密。
对称密钥加密
定义
加密和解密使用相同的密钥, 因此它被称为对称密钥。
例如:Ceasar加密,这是最简单的加密:将消息的字母转化为在字母表中对应的位置按固定的数字移动所获得的字母,如下图:
如上图所示,“MEET ME AT THE CINEMA”,加密的时候,其中每个字母在字母表中往后移3个,所对应的字母,就变为“PHHW PH DW WKH FLQHPD”,然后经过解密,其中的每个字母在字母表中往前推3个字母,就生成“MEET ME AT THE CINEMA”
在这个例子中,由于加密和解密使用的是相同的密钥,因此它是对称密钥。
对称加密会存在两个问题
-
很容易从加密的数据中获取密钥;
-
密钥分配问题:如何将密钥传递给交易的参与者?在对称加密中,发送方和接收方需要共享相同的密钥才能进行加密和解密。最简单的方法是通过安全的通道直接将密钥传递给接收方。然而,在实际情况下,这种直接传递密钥的方式并不可行,因为存在许多安全风险,如窃听、篡改和中间人攻击。
参与者彼此不认识的区块链去中心化网络中,这些问题更加严重,而通过公钥加密就能很好地解决这些问题,我们看看具体是如何解决的。
公钥加解密过程
公钥加密使用一对密钥,包括公钥和私钥。发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密。通过使用公钥加密,发送方可以安全地将对称加密的密钥传递给接收方,而无需直接传递密钥本身。