Page 116 - 《软件学报》2026年第1期
P. 116

何嘉昊 等: 国产区块链软件发展趋势与核心技术分析                                                        113


                 的文档型数据库包括       MongoDB  和  CouchDB.
                    我们对不同区块链软件所使用或兼容的底层数据库进行了统计, 并按照时间顺序对新增区块链软件所采用的
                 数据库情况进行了分析, 如图         9  所示.


                       25   Redis            25   25    MySQL                 25   MongoDB
                            LevelDB                     Oracle                     CouchDB
                            RocksDB                     TDSQL
                       20   BadgerDB              20                          20
                            TiKV
                            PebbleDB
                     数量  15                      数量  15                     数量  15
                       10                    10   10                          10
                                                                         5
                       5                           5                          5
                                             3                           2                          3
                                             2                                                      1
                       0                           0                     1    0
                        2014  2016  2018  2020  2022  2014  2016  2018  2020  2022  2014  2016  2018  2020  2022
                                  年份                          年份                         年份
                                 (a) 键值型                    (b) 关系型                    (c) 文档型
                                          图 9 新增国产区块链软件数据库使用/兼容情况

                    现象  11: 键值型数据库是当前国产区块链软件的主流选择. 具体而言, 接近                   50%  的区块链软件支持      LevelDB、
                 超过  15%  的区块链软件支持      RocksDB, 这两种键值型数据库的使用率超过了            65%. 相比之下, 支持或兼容关系型
                 和文档型数据库的区块链软件仅有             8  个和  4  个. 这一现象的产生, 主要与键值型数据库在高性能、结构简单和强
                 可扩展方面的优势相关. 虽然使用关系型数据库的区块链软件在与现有数据库系统的整合中可以降低复杂性, 并
                 且关系型数据库能够支持复杂的业务逻辑, 但其通常存在性能瓶颈, 且复杂的数据结构也可能带来不必要的性能
                 开销. 然而, 随着区块链技术的发展, 关系型数据库将在对数据一致性和复杂关系处理要求极高的领域中得到更广
                 泛的应用, 例如在数字货币交易记录、复杂用户身份信息及其关联关系的存储和管理中. 另一方面, 文档型数据库
                 因其适应快速开发和迭代的能力, 以及对非结构化数据的支持, 具有一定优势. 然而, 由于区块链中的数据结构相
                 对固定和简单, 键值型数据库更能满足当前需求. 随着区块链应用的不断扩展, 文档型数据库的应用可能会逐渐增
                 多, 特别是在处理物联网中的半结构化和非结构化数据, 以及在供应链溯源中处理包含图片和文字等多样化数据
                 的场景中.
                    见解  4: 性能要求低、应用场景有限等因素导致当前区块链软件大多选择简单的数据结构或数据库, 但随着
                 区块链软件的不断发展, 性能需求的增长以及应用类型增加, 具有并发数据处理能力以及高可扩展性的复杂数据
                 库的使用量可能会逐渐上升.
                  3.1.3    加密算法
                    为了保证数据的安全性和完整性, 区块链技术结合了多种加密算法, 如                       ECC (elliptic curve cryptography) [94] 、
                    [95]                                     [96]
                 SM2  、ECSDA (elliptic curve digital signature algorithm)  等. 其中保证数据安全性的算法可以根据加密方式不
                 同分为对称加密和非对称加密两大类. 对称加密算法使用相同的密钥进行加密和解密, 而非对称加密则使用一对
                 密钥, 公钥用于加密数据, 私钥用于解密数据             [97] . 保证数据完整性的算法根据验证过程不同可以分为签名算法                 [98]
                 和哈希算法    [99] . 签名算法用于验证消息来源的完整性、真实性和不可否认性, 接收方通过发送方的公钥来验证签
                 名的有效性. 具体地, 发送方使用签名算法对数据进行处理, 基于数据计算出一个独特的签名. 接收方在接收到数
                 据和签名后, 使用发送方的公钥对签名进行验证. 如果数据在传输过程中被篡改, 计算出的签名将与接收到的签名
                 不一致, 从而表明数据的完整性遭到破坏. 哈希算法则用于验证数据的完整性, 该算法具有雪崩效应                              [100] , 即输入数
                 据的微小变化会导致哈希值的巨大差异. 具体地, 发送方将数据和对应的哈希值一起发送给接收方, 接收方收到后
                 对数据重新计算哈希值, 如果重新计算出的哈希值与接收到的哈希值一致, 那就说明数据在传输过程中没有被修
                 改, 从而保证了数据的完整性. 加密算法的具体分类如表                4  所示.
                    从表  4  可以看出, 相较于比特币和以太坊平台, 国产区块链软件所使用的加密技术在种类和能力上有了显著
   111   112   113   114   115   116   117   118   119   120   121