一、区块链身份标识
区块链中采用私钥、公钥标识身份。
在区块链中,信息的传播按照公钥加私钥的方式进行。公钥相当于信箱地址,当别人获知你的公钥时,可以与你通信。相应地,私钥相当于信箱的钥匙,只有拥有私钥的人才能查看信箱中的信件信息。在区块链中,数字签名可以用于验证信息发送者的身份,用户可以公布自己的公钥,然后发送可以被公钥所验证的、已经通过私钥加密过的信息。如果信息的接收者能够使用公钥解密加密过的信息,即可证明这条信息发送者的身份属实。上述过程可以用图3-4表示:区块链中有两个用户Alice和Bob,Alice想让Bob知道自己是真实的Alice,而不是他人冒充的。Alice只需要使用私钥对文件签名并发送给Bob,Bob使用Alice的公钥对文件进行签名验证,如果验证成功,则该文件一定是使用Alice的私钥加密的。由于Alice的私钥只由Alice一人持有,Bob就可以确定文件的发送者正是Alice本人。
此外,公钥与私钥还可以保证分布式网络中点对点信息传递的安全。我们不妨假想这样一个情形:Alice想在分布式网络中发送一封情书给Bob。但由于分布式网络的信息传递特性,这封情书将被发送至每一个用户手中。Alice不希望情书的内容被其他用户看到,因此Alice使用Bob的公钥对情书进行加密。网络中除Bob外的其他用户接收到这封经过加密的情书,看到的只是一段密文。只有Bob可以使用自己的私钥对密文进行解密,得到一份情书的明文。通过这个加密与解密的过程,Alice与Bob之间实现了点对点的数据传递。
二、时间戳
在区块链中,时间戳的应用是对每一次交易记录的认证,它就像交易合同公证一样,能够显示交易记录的真实性。时间戳作为区块元数据的一部分,具有天然的时间特性。从某种意义上讲,区块链的本质可以被理解为构造了一个永不停息、无坚不摧的时间戳系统。
在现实经济交易中,常常会出现信息欺诈等虚假交易现象。为了减少这些不法行为给交易中诚实守信的一方带来的损失,人们通常会寻求有公信力的第三方机构对交易进行核验。区块链通过时间戳来保证分布式账本的唯一性,避免双花问题的产生。时间戳从区块生成的一刻起就存在于区块之中,它扮演了区块链中的公证人的角色。与现有的公证机制相比,基于时间戳的公证系统更为经济,并且完全可信。
区块链中的时间戳比传统的公证制度更为可信,是因为时间签名是直接写在区块链上的,区块链中已经生成的区块不能以任何方式进行修改。一旦区块被修改,生成的哈希值就无法匹配,操纵行为也将由此而被系统检测到。区块链根据分布式的协议,构建了一个分布式的开放结构体系,交换的信息可以通过分布式记账的方式确定信息数据内容,加盖时间戳后生成区块数据,再通过分布式广播发送给各个节点,最终实现分布式存储。
对数据应用安全散列算法加盖时间戳,并将该随机哈希值在全网中进行广播能够证实一组数据在某一时刻是真实存在的,因为数据只有在该时刻的确存在,才能获取相应的随机哈希值。每个时间戳会将前一个时间戳纳入其随机哈希值之中,每一个后面位置的时间戳都会对前面的时间戳进行增强,这一过程不断重复、依次推进,最终形成一个完整的链条。时间戳与哈希算法、Merkle树共同作用,增强了区块链的安全性能。
时间戳证明存在性的功能可能是区块链的另一种用途,它或许会彻底改变人类的未来。由于区块哈希值的不可伪造性,一个区块能提供出哈希值即可证明区块哈希值存在于该区块生成时刻之后,就像你在一张白纸上写下了一串数字,说明的是数字出现的时间晚于白纸——这也称为时间点后向证明。时间点前向证明则需要构造一个包含数字摘要的交易,当该交易进入区块后,便可以证明你在该区块时刻之前拥有该数字摘要。
领取专属 10元无门槛券
私享最新 技术干货