购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 区块链技术的构成

区块链的数据结构,是在哈希算法的算法支持下实现的,在通过区块对交易进行封装的过程中,采用的是高效的默克尔树(Merkle Tree,MT)算法,一步步地将繁杂的信息进行归纳和简化。而共识算法是区块链技术的一大亮点,共识算法和P2P网络实现了交易的去中心化,保证了交易的公开透明。

3.2.1 哈希算法

哈希算法(Hash)是区块链技术的一大基础。哈希算法能够把任意一段输入转化为固定长度的输出,这个固定长度的输出就是哈希值。哈希值的空间远远小于输入空间。哈希算法通常用y=hash(x)来表示,x表示输入值,y表示输出的哈希值。哈希算法实现了数据信息不同空间的转化,是一种压缩映射。

哈希算法具有相当多的优点,如加密过程的不可逆、冲突概率低、能够隐藏原始信息、计算效率高等。通过哈希构造区块链的链结构,能够保证信息防篡改;通过哈希算法构造默克尔树,能够实现区块中内容变化的快速检测;哈希算法可以将很大内存的输入数处理成固定长度的哈希值,从而使计算更加高效。

3.2.2 默克尔树算法

默克尔树由美国计算机学家拉尔夫·默克尔(Ralph Merkle)在1979年提出,是一种用来保持大型数据库中数据一致性的高效方法,采用哈希散列的算法来实现这种功能。具体来说,在对比网络中两个节点的数据是否完全一致时,不需要耗费大量的资源去比较全部的数据,只需要简单比较存在差异的部分,而对于完全一致的内容不再进行比较。

在区块链的交易中,每个区块记录成百上千的交易,为了提高效率、减少资源耗费,这些交易的哈希值两两进行哈希算法,直到形成最后一个哈希值,也就是重复上述的默克尔树算法过程,最后得到的一个哈希值就是根,根值会被写入区块头,只有32字节大小。这种设计将一个区块解耦为区块头和区块体两个部分,而一部分的轻节点只需要存储区块头即可。同一条链上的交易拥有相同的默克尔根。因此这些轻节点不需要存储区块体中的全部交易信息,只需要通过简单的支付验证技术,计算一笔交易对应的默克尔根是否和区块头中的默克尔根相同,就能判断这笔交易是否存在于链上。

3.2.3 加密算法

区块链中一个重要的算法就是加密算法。加密算法通过对原始信息进行处理,将其变为密文,密文只有通过密钥才可以转换为明文进行查看。加密算法由四部分组成:加密算法、解密算法、加密密钥和解密密钥。加密和解密算法一般来说是固定不变的,是公开可见的,而加密和解密密钥是固定且被保护起来的。一般来讲,对于同一种加密算法,密钥的长度越长,加密的程度越强。

可以根据加密密钥与解密密钥是否相同,将加密算法分为对称加密算法和非对称加密算法两种。这两种算法有不同的应用场景,是相辅相成的。在许多情况下,还可以将它们组合成混合加密机制。

对称加密算法的加密密钥与解密密钥是一样的,因此其效率更高、占用的空间更小、运行速度也更快。但是,对称加密算法的所有关联方都需要持有密钥,一旦有一个人泄露了密钥,就会破坏整个加密过程的安全性。对称加密算法的密钥需要提前发放,适用于大量数据的加密和解密,代表性算法有DES、3DES、AES等。

非对称加密算法解决了对称加密算法提前分发密钥的问题,它的加密密钥与解密密钥是不同的,其中加密密钥也被称为公钥,解密密钥也被称为私钥。公钥一般是公开的,每个人都可以访问,而私钥通常由个人持有,其他人不能访问。公钥可以从私钥派生,而私钥不能从公钥派生。这样的好处是,公钥和私钥是分开的,可以使用不安全的通道传输公钥和加密的数据,即使公钥被他人截获,也无法通过公钥解密数据。但是,非对称性加密算法的加密和解密速度一般比对称加解密算法慢2~3个数量级。它一般适用于签名场景或密钥协商,但不适用于对大量数据的加密和解密。

非对称加密算法的安全性通常是通过数学问题来保证的。目前,基于大数质因数分解、离散对数、椭圆曲线等思想,主要有几种代表性算法:RSA算法、Diffie-Hellman密钥交换算法、ElGamal椭圆曲线算法。其中,RSA算法被认为不够安全,一般推荐椭圆曲线算法。

3.2.4 数字签名

数字签名类似于在纸上的手写签名,区别在于数字签名是写在区块链上的。数字签名有3个主要的特征:首先,只有用户自己可以签这个名字,别人不可替代,但是别人可以验证这个签名的真伪;其次,数字签名需要绑定到特定的数字文档上,就像现实生活中签名要签在纸上一样;最后,它是不可以被伪造的。区块链通过非对称加密算法可以实现上述3个特征。

数字签名是向消息中添加另一项内容,以向发送方证明消息没有被篡改。通常,发送方使用哈希算法获取消息的哈希值,然后用私钥加密哈希值以获得签名。然后,发送方将消息连同签名一起发送给接收方。接收方使用发送方的公钥解密签名恢复哈希值,然后使用哈希算法来验证信息的哈希值是否和解密得到的哈希值相同,如果相同,则证明信息没有被篡改;如果不同,则证明信息已经被篡改。

3.2.5 共识算法

一致性意味着索引、数据应该是完整的和同步的,保证了分布式系统不会因为某一个单一节点出了问题(如崩溃、恶意篡改数据等)而使整个分布式系统的安全受到威胁。区块链作为一种新型的分布式系统,共识算法也是其精髓,区块链的共识算法可以使用户不需要信任交易的任何一方,也不需要信任任何一个中心化的机构,而只需要信任区块链的系统就可以顺利完成每一笔交易。对于分布式系统的一致性问题,共识算法的出现提出了有效的解决方案。由于一致性,区块链系统中的许多节点达到了平衡的状态。共识算法保证了区块链数据记录的安全、明确和不可逆,为区块链成为一个难以攻破的、公开的、不可篡改数据记录的、去中心化的、诚实可信的系统做出了很大的贡献。

3.2.6 P2P网络

区块链构建的物理网络基于对等分布式网络——P2P(peer to peer)网络,与集中式的“客户服务器”网络架构不同,它是一种分散的网络结构方式,它的每个网络节点都是平等的,没有一个节点处于中心位置或对其他节点具有控制和管理的权力,与集中式网络结构相比具有更高的安全性。

P2P网络有以下几个特点。首先,去中心化,网络中的信息都存在分布式的节点上,信息的传递与服务都直接在节点上进行,无须中介结构的控制。其次,可扩展性和健壮性,P2P网络与传统的网络不同,它随着用户的增加,运行的速度也在逐渐增加,整体的资源和服务能力不断增加扩展。最后, P2P网络的每个节点都是独立的,如果只有一个节点受到攻击,不会影响到其他节点。它具有非中心化、抗攻击能力强、容错能力强等优点。 qw2HdUwLSIBasYnBX14irQ1ipIai7St2X7Y9BMpjXt+CKFzJTEj1YQmU1bZbQL4B

点击中间区域
呼出菜单
上一章
目录
下一章
×