本发明涉及区块链,特别是涉及一种基于区块链的农业金融服务方法及系统。
背景技术:
1、金融服务系统采用区块链技术,通过分布在不同地方的多个节点共同完成交易记账,每个节点记录完整的账目,参与监督交易合法性并为其作证。与传统分布式存储不同,区块链的分布式存储具有两个独特性:一是每个节点都存储完整的数据,按照块链式结构存储;二是每个节点的存储都是独立的、地位等同的,依靠共识机制保证存储的一致性。因此,越来越多用户将金融服务系统运用在农业领域,以辅助农户进行粮食、农产品的销售,提高资金利用效率,为农户带来更多收益。
2、然后,现有农业金融服务系统,在进行数据上链时,一般采用rsa签名、dsa签名算法等签名算法对待上链的农业数据进行签名验证,这些签名方法过于简单,容易被攻击,极大影响了区块链上农业数据的安全。
技术实现思路
1、针对现有技术中的上述问题,本发明提供了一种基于区块链的农业金融服务方法及系统,保证了签名密钥的随机性和多样性,提供了区块链上农业数据的安全性。
2、为了达到上述发明目的,本发明采用的技术方案如下:
3、一方面,一种基于区块链的农业金融服务方法,包括:
4、获取待上链农业数据的签名参数信息,所述签名参数信息包括交易签名参数信息,所述交易签名参数信息包括用户等级、交易等级、交易模式和交易阶段;
5、根据所述交易模式和交易阶段,确定交易参与方公钥集合;根据所述用户等级对所述交易参与方公钥集合进行过滤,得到目标交易参与方公钥集合;根据所述交易等级和交易阶段,从所述目标交易参与方公钥集合中随机筛选出若干参与方公钥,得到参与方公钥集合;
6、获取所述参与方公钥集合,利用所述参与方公钥集合和用户私钥对待上链农业数据进行签名,得到签名农业数据;
7、对所述签名农业数据进行验证,验证通过时允许上链。
8、作为优选的,获取待上链农业数据的签名参数信息包括:
9、获取待上链农业数据的签名请求,所述签名请求包括加密签名参数信息;
10、对所述加密签名参数信息进行解密,得到交易标识信息,对所述交易标识信息进行拆分,得到交易签名参数信息。
11、作为优选的,根据所述交易模式和交易阶段,确定交易参与方公钥集合,包括:
12、根据所述交易模式确定交易参与方公钥阶段集合;
13、将交易阶段之前的所有交易参与方公钥阶段集合融合为一个新的交易参与方公钥阶段集合,将新的交易参与方公钥阶段集合与其他的交易参与方公钥阶段集合进行组合,得到交易参与方公钥集合。
14、作为优选的,根据所述用户等级对所述交易参与方公钥集合进行过滤,得到目标交易参与方公钥集合,包括:
15、滤除参与方等级小于用户等级的交易参与方所对应的公钥集合;
16、对参与方所对应的接入节点相同的参与方集合或者地理位置相近的参与方集合进行过滤,使所述参与方集合对应的参与方公钥的数量小于预设阈值。
17、作为优选的,根据所述交易等级和交易阶段从所述目标交易参与方公钥集合中随机筛选出若干参与方公钥,得到参与方公钥集合,包括:
18、根据所述交易等级确定公钥总数;
19、根据所述交易阶段确定各个交易参与方公钥阶段集合对应的公钥占比;
20、根据所述公钥总数和所述公钥占比确定每个交易参与方公钥阶段集合的公钥数量;
21、根据所述公钥数量从所述目标交易参与方公钥集合的各个交易参与方公钥阶段集合中随机筛选出与所述公钥数量对应的参与方公钥。
22、第二方面,本发明提供一种基于区块链的农业金融服务系统,包括:
23、获取模块,用于获取待上链农业数据的签名参数信息,所述签名参数信息包括交易签名参数信息,所述交易签名参数信息包括用户等级、交易等级、交易模式和交易阶段;
24、确定模块,用于根据所述交易模式和交易阶段,确定交易参与方公钥集合;根据所述用户等级对所述交易参与方公钥集合进行过滤,得到目标交易参与方公钥集合;根据所述交易等级和交易阶段,从所述目标交易参与方公钥集合中随机筛选出若干参与方公钥,得到参与方公钥集合;
25、签名模块,用于获取所述参与方公钥集合,利用所述参与方公钥集合和用户私钥对待上链农业数据进行签名,得到签名农业数据;
26、上链模块,用于对所述签名农业数据进行验证,验证通过时允许上链。
27、作为优选的,所述获取模块包括:
28、获取单元,用于获取待上链农业数据的签名请求,所述签名请求包括加密签名参数信息;
29、解密单元,用于对所述加密签名参数信息进行解密,得到交易标识信息,对所述交易标识信息进行拆分,得到交易签名参数信息。
30、作为优选的,所述确定模块包括:
31、第一确定单元,用于根据所述交易模式确定交易参与方公钥阶段集合;
32、第二确定单元,将交易阶段之前的所有交易参与方公钥阶段集合融合为一个新的交易参与方公钥阶段集合,将新的交易参与方公钥阶段集合与其他的交易参与方公钥阶段集合进行组合,得到交易参与方公钥集合。
33、作为优选的,根据所述用户等级对所述交易参与方公钥集合进行过滤,得到目标交易参与方公钥集合,包括:
34、第一过滤单元,用于滤除参与方等级小于用户等级的交易参与方所对应的公钥集合;
35、第二过滤单元,用于对参与方所对应的接入节点相同的参与方集合或者地理位置相近的参与方集合进行过滤,使所述参与方集合对应的参与方公钥的数量小于预设阈值;
36、作为优选的,根据所述交易等级和交易阶段从所述目标交易参与方公钥集合中随机筛选出若干参与方公钥,得到参与方公钥集合,包括:
37、第三确定单元,用于根据所述交易等级确定公钥总数;
38、第四确定单元,用于根据所述交易阶段确定各个交易参与方公钥阶段集合对应的公钥占比;
39、第五确定单元,用于根据所述公钥总数和所述公钥占比确定每个交易参与方公钥阶段集合的公钥数量;
40、第六确定单元,用于根据所述公钥数量从所述目标交易参与方公钥集合的各个交易参与方公钥阶段集合中随机筛选出与所述公钥数量对应的参与方公钥。
41、本发明的有益效果为:本发明提供了一种基于区块链的农业金融服务方法及系统,能够获取待上链农业数据的签名参数信息,所述签名参数信息包括交易签名参数信息,所述交易签名参数信息包括用户等级、交易等级、交易模式和交易阶段,根据交易模式和交易阶段,确定交易参与方公钥集合;根据所述用户等级对所述交易参与方公钥集合进行过滤,得到目标交易参与方公钥集合;根据所述交易等级和交易阶段,从所述目标交易参与方公钥集合中随机筛选出若干参与方公钥,得到参与方公钥集合;获取所述参与方公钥集合,利用所述参与方公钥集合和用户私钥对待上链农业数据进行签名,得到签名农业数据;对所述签名农业数据进行验证,验证通过时允许上链。本发明通过多维的签名参数信息确定参与方公钥集合,保证了公钥集合的随机性、多样性和均匀性,通过确定的参与方公钥集合以及用户本身的私钥对待上链农业数据进行签名,极大提高了区块链上农业数据的安全性和真实性。