温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
区块
智能
公益
基金
管理
系统
设计
张艳硕
第 31 卷 第 1 期北京电子科技学院学报2023 年 3 月Vol31 No1Journal of Beijing Electronic Science and Technology InstituteMar2023基于区块链的智能公益基金管理系统设计*张艳硕贝世之严嘉钰北京电子科技学院,北京市100070摘要:近些年,越来越多群体或个人参与到公益事业中来,但我国公益事业的发展仍面临着一些问题和挑战,如求助响应慢、安全属性弱、智能程度低等。为解决这些问题,本文基于国密算法,结合区块链去中心化结构,根据区块链分布式系统具有的透明、公开、不可篡改的特性,采用公链与联盟链结合的双链结构,利用 DPOS 和 PBFT 结合的混合共识机制,构建出安全性和智能化程度高于现有捐赠平台的智能公益基金管理系统,并运用 Hyperledger Caliper 对系统原型性能进行测试,经过分析验证,本文的国密算法区块链对比常见的非国密算法区块链在发送速率和发送延迟上表现更优异,在公益领域有着广阔的应用前景。关键词:区块链技术;国密算法;混合共识机制中图分类号:TM344.1文献标识码:A文章编号:1672464X(2023)15467*基金项目:“信息安全”国家级一流本科专业建设点项目;北京市优质课程建设重点项目密码学课程建设项目 作者简介:张艳硕(1979),男,副教授,博士,硕士生导师,从事密码数学理论研究。E-mail:zhang_yanshuo 163com贝世之(2000),男,信息管理与信息系统专业 2019 级本科生。E-mail:bei_shizhi 163com严嘉钰(2001),男,信息管理与信息系统专业 2019 级本科生。E-mail:yan_jiay 163com1引言随着国家在公益事业上的重视程度不断加深,各类网络募捐平台如雨后春笋般兴起,然而多年网络募捐积累的经验教训反映出国内现有的公益众筹平台普遍存在着信息审核不透明、运营体系缺乏管控、社会公信力不足、安全系数不达标四大缺点。在新的形势下,完善现有公益众筹平台运行制度和技术将有利于助推我国现代慈善事业的整体发展规模、社会参与程度、慈善组织建设和法治建设迈上一个新的台阶。区块链技术具有去中心化、信息可追溯、公开透明等优点1,能够有效解决公益慈善领域目前所遭遇的各类问题。李琪等2 提出了一种基于区块链技术的慈善应用模式,使用时间戳机制实现实时更新和善款追踪,使用性能分析和优势分析证明平台跟踪善款流向时的安全性和有效性,从而防止善款被滥用;Jayasinghe 等3 构建了一种基于区块链技术的慈善筹款平台,综合利用多重签名和智能合约等技术,技术上保证信息的公开、透明,为慈善组织筹集善款;谭文安等4 提出了一种基于以太坊智能合约的捐助方案,并通过构建基于智能合约的可信筹款捐助平台验证了该方案的可行性;为满足众筹业务的需要,陈志东等5 提出了众筹业务的私有区块链架构;区块链+慈善方案兴起后,李奕等6 利用蚂蚁区块链平台来发布多项慈善项目,从而实现善款筹集。目前,应用在公益领域的区块链通常采用国第 31 卷基于区块链的智能公益基金管理系统设计际通用密码算法作为其安全模块,使得当前的区块链架构缺乏自主可控性,制约了区块链技术在中国的发展,而国产密码算法的安全性、稳定性、自主可控性正好能够弥补区块链在密码算法方面的缺陷。本文通过创新性地结合区块链技术和国密算法,构建出安全性和智能化程度高于现有捐赠平台的智能公益基金管理系统,从而改善现有公益系统求助响应慢、安全属性弱、智能程度低等问题,为国内公益事业的发展提供了一个可行的思路。2基础知识本节主要介绍有关用于支撑系统交易透明性的区块链数据结构体系,以及用于支撑系统交易安全性的国密算法。2.1区块链从数据的角度来看,区块链是一种分布式账本,不仅能实现数据的分布式存储,即可以将数据存储在所有参与记录数据的节点中,而非集中存储于中心化的机构节点中;也能实现数据的分布式记录,即可以由系统参与者集体记录,而非由一个中心化的机构集中记录7。从效果的角度来看,区块链可以生成一套记录时间先后的、不可篡改的、可信任的数据库,这套数据库是去中心化存储且数据安全能够得到有效保证的。从形成过程来看,区块链以区块为单位结构,如图 1 所示。在单笔交易中,对每个区块头进行 Hash 加密,生成一个 Hash 值。区块链技术将不断生成的交易加入到区块中,当前区块满足条件后可加入主区块链。每一个区块头包含父区块的 Hash 值。这样一来,这个连接各个区块的 Hash 值序列就形成了一条可以一直追溯到创世区块的链条8。图 1区块结构由此可见,区块链是一种把区块以链的方式组合在一起的数据结构,它适合存储简单的、有先后关系的、能在系统内验证的数据,用密码学算法保证了数据的不可篡改和不可伪造。它能够使参与者对全网交易记录的事件顺序和当前状态建立共识,基于账本天然去中心化的特质,区块链对于处理多方参与的分布式交易尤其高效9。区块链的分布式特点保证了其隐私性与本地数据的不可篡改性,若利用每个历史区块中的Hash 值校验所有区块的真实性,校验工作将随着历史区块的增多而无限增大,而区块链的链式存储特点很好的避免了用户篡改风险和校验工作量的膨胀。每个区块保存的数据如图 2 所示,Head 保存上一个区块的 Hash、时间戳、Merkle Tree 根节55北京电子科技学院学报2023 年点的 Hash,Body 保存交易的数组,包含账单记录、时间戳以及操作方的签名等信息。图 2区块保存数据在服务器上储存着公链上节点的特征数据以及节点的密钥加解密信息,并及时更新。目前大多数区块链节点的私钥以明文方式存储在配置文件中,在这种情况下,一旦机器被攻击,就很可能造成私钥泄露。有些节点使用密文的方式存储私钥,但加密所用的密钥可能缺乏较好的保护措施,容易被盗取。因此,将一段随机数分成两段,一段储存在配置文件,一段储存在节点的运行代码中,通过算法结合这两段随机数,生成一个对称密钥,再用这个对称密钥对私钥进行加密,最后将加密后的私钥存储在配置文件中。节点需要对交易进行签名时,同样通过这两段随机数生成对称密钥,对私钥进行解密后对交易进行签名。具体储存格式为表 1 所示。表 1公链节点储存格式id特征数据的 hash(256bit)节点密钥信息1hash(feature1)key12hash(feature2)key23hash(feature3)key34hash(feature4)key42.2国密算法本作品针对公链采用国密算法 SM2 进行签名与验签,同时为了保证善款的出处和去处能够在保护捐款者和募捐者隐私的前提下做到透明公开,本作品使用国密算法 SM3 的哈希函数对数据进行隐私保护,并结合国密算法 SM4 对区块链节点进行智能加密,在善款流动透明的基础上进一步保障其安全性。2.2.1非对称加密算法 SM2SM2 算法就是 ECC 椭圆曲线密码机制,但是在签名及密钥交换方面不同于 ECDSA 和ECDH 等国际标准,而是采取了更为安全的机制,其安全性根植于椭圆曲线离散对数问题之上。ECC 椭圆曲线密码体制是由 Koblitz 和Miller 在 1985 年 各 自 引 入 密 码 学 的,其Weierstrass 方程见式(21):y2+a1xy+a3y=x3+a2x2+a4x+a6(21)椭圆曲线上的离散对数问题为:给定点 P和 k P,计算整数 k。而对于 SM2 算法,其主要考虑的是素域 FP和 F2m的椭圆曲线。在我国国家商用密码算法中,SM2 标准分别介绍了这两类素域的表示、运算以及域上的椭圆曲线的点的表示、运算以及多倍点计算算法。同时也介绍了编程语言中关于整数和字节串、字节串和比特串、域元素和比特串、域元素和整数、点和字节串之间的数据转换规则。并且详细说明了有限域上关于椭圆曲线的参数生成以及验证,以及椭圆曲线的参数包括有限域的选取、椭圆曲线方程参数、椭圆曲线群基点的选取等。最后给出了其上密钥对的生成以及对公钥的验证。2.2.2散列算法 SM3SM3 算法是一种分组迭代的杂凑算法,其结构与 SHA256 的压缩函数相似,由国家密码管理局于 2010 年 12 月 17 日发布,是目前国家商用密码算法中所存在的唯一的散列算法,可用于生成随机数和消息认证码等。同时 SM3 算法计算速度快,安全性较高10。SM3 算法对输入长度小于 264bit 的消息,经65第 31 卷基于区块链的智能公益基金管理系统设计过填充和迭代压缩,生成了长度为 256bit 的散列值,其中使用了异或运算、模、模加、移位、与、或、非运算,并由填充、迭代过程以及消息扩展和压缩函数所构成。首先进行填充分组,假设输入的长度是 l 比特。先将比特“1”添加至消息末尾,再添加 k 个“0”,其中 k 为满足 l+1+k 448mod512 的最小非负整数,然后再添加一个长度为 l 的二进制表示的比特串。填充后的比特长度即为 512 的倍数,按 512bit 一组进行分组。分组之后进行迭代压缩,对分组后的消息进行迭代计算,见式(22):V(i+1)=CF(V(i),B(i),i=0,1,2,n 1(22)其中 CF 为压缩函数;n=(l+k+65)/512;B(i)为消息分组;V(0)为 256bit 初始化的值 IV;V(n)即为最后的杂凑值结果11。2.2.3对称加密算法 SM4SM4 分组密码算法是我国密码管理局于2006 年公布的国内第一个商用密码算法,对我国的密码学有着极大的推动作用12。SM4 由加密算法和密钥扩展算法组成,两种算法的分组长度和密钥长度均为 128 位。SM4 采用以字为单位进行加密运算,一个迭代运算就是一轮变换,共进行 32 轮。每轮的过程如下:每次将第 i+1 个字、第 i+2 个字、第 i+3 个字和轮密钥进行异或操作,然后对操作的结果进行合成置换。合成置换由非线性变换和线性变换复合而成。非线性变换由 4 个并行的 S 盒构成,非线性变换的输出是线性变换的输入。合成置换的结果和第 i 个字进行异或操作,并作为第 i+4 个字。i 从0 到31就完成了 32 轮迭代。而每轮的轮密钥由加密密钥通过密钥扩展算法实现。3基于区块链的系统方案设计借助区块链的去中心化结构,将双链结构中的基金流动链设置为公链,构建透明捐赠平台架构,同时利用区块链 P2P 网络的特性,解决基金流动效率低下的问题。根据区块链分布式系统具有的透明、公开、不可篡改的特性,更好地监控该慈善基金系统中每一笔基金的流动。3.1国密算法应用设计国密算法是由国家密码局制定标准的一系列算法,其自主可控性应用至系统中可提升系统的性能、安全性与可靠性。现有的区块链技术中的密码算法由非国产密码算法所主导,其面临着潜在的安全隐患,有学者提出要采用国产密码算法进行替换,从而解除其潜在的后门安全隐患问题。于是,在不影响算法本身安全性的前提下,本节为国密算法在本系统区块链中的应用提供了设计方案并提升了其运用于区块链中时的效率。其中 SM2 算法通过随机数序列替换法优化设计,SM3 算法被设计应用于 Merkle 树中的哈希计算,SM4 算法被设计应用于门限环签名算法的对称加密环节。下面将对其进行介绍。3.1.1SM2 算法优化设计针对 SM2 算法的优化部分包含两部分。其一,采用已知的随机数序列替换原来的随机数 k值,其中已知的随机数序列里全部 k 值都符合初始条件(k 1,n 1),并且设置前后两次随机数 k 值之差保持恒定不变的相互关系。其二,第一次加密与第二次加密的随机数 k 值根据提前设置的相互关系,在第一次加密时,将加密流程里计算得出的第一椭圆曲线点坐标和第二椭圆曲线点坐标进行保存;在第二次加密时,使用第一次加密结束时保存的第一椭圆曲线点坐标和第二椭圆曲线点坐标,和提前设置好的第一次加密以及第二次加密的随机数 k 值相互关系,完成本次加密流程的第一椭圆曲线点坐标和第二椭圆曲线点坐标的计算,最终完成本次加密过程。本优化方法的特点在