一种以太坊区块链的数据加密签名校验方法及相关方法与流程

未命名 09-10 阅读:70 评论:0


1.本发明涉及以太坊区块链技术领域,更具体的说是涉及一种以太坊区块链的数据加密签名校验方法及相关方法。


背景技术:

2.在现有的区块链技术中,使用非对称加密和数字签名技术来保证数据的安全性和完整性。但是,现有技术在智能合约的部署和调用过程中存在一些问题和缺点。
3.首先,现有技术中的数字签名和加密校验是由客户端完成的,这导致智能合约的部署和调用不够安全。客户端在使用私钥进行数字签名时,容易被黑客攻击或窃取,导致合约的调用和部署存在一定的风险。
4.其次,现有技术中的智能合约编写和调试工具较为简单,不够智能化和便捷。在编写和调试智能合约时,需要使用solidity编程语言和开发工具,这对于非专业人士来说较为困难。


技术实现要素:

5.有鉴于此,本发明提供了一种以太坊区块链的数据加密签名校验方法及相关方法,可解决上述数字签名存在风险的问题,以及解决智能合约编写调试不便捷的问题。
6.为了实现上述目的,本发明采用如下技术方案:
7.第一方面,本发明提供一种以太坊区块链的数据加密签名校验方法,包括以下步骤:
8.s1、在客户端使用abi将智能合约部署和/或调用请求序列化转译为十六进制命令,并使用加密算法对要传输的数据进行加密;
9.s2、使用实时密钥对已加密数据和所生成的相关信息进行数据签名提取数据特征值,并将已加密的数据及数据签名发送至服务端;
10.s3、通过服务端实时密钥和所生成的相关信息对接收到的已加密的数据进行再次签名提取数据特征值;
11.s4、判断客户端提取的数据特征值与服务端提取的数据特征值是否相同;
12.s5、当判断结果相同时,服务端使用预设密钥将接收到的已加密的数据进行解密处理;通过abi服务将合约调用信息反序列化。
13.进一步地,还包括:
14.s6、反序列化后的信息以abi固定方式进行格式化,若不满足abi规定,则无法进行内容识别抛出并通知监管程序进行处理。
15.进一步地,所述加密算法为:aes模式ceb-pkcs7加密算法。
16.进一步地,所生成的相关信息包括:
17.生成的时间戳timestamp及干扰字符串nonce。
18.进一步地,判断客户端提取的数据特征值与服务端提取的数据特征值是否相同;
包括:
19.判断客户端与服务端提取的数据特征值的四个要素:密钥、时间戳、随机干扰字符串、密文内容,是否一致;且时间戳是否在设定时间范围内生成。
20.进一步地,所述预设密钥为aes对称密钥。
21.第二方面,本发明还提供一种以太坊区块链的智能合约编写调试方法,包括以下步骤:
22.1)引入sdk文件,并在页面加载完成后填写rpc完成sdk的初始化;
23.2)加载智能合约abi、合约地址完成合约初始化;
24.3)sdk自动将合约方法添加至sdk根对象,完成流程和数据反馈的处理。
25.第三方面,本发明实施例还提供一种以太坊区块链的智能合约部署执行方法,包括以下步骤:
26.(1)、在初始化合约时未填写对应的合约地址,即默认为未部署状态;
27.(2)、初始化的合约对象调用“.deploy”方法,自动完成合约的部署;服务端自动完成合约方法校验及合规性检查。
28.经由上述的技术方案可知,与现有技术相比:
29.本发明公开提供了一种以太坊区块链的数据加密签名校验方法,包括:在客户端使用abi将智能合约部署和/或调用请求序列化转译为十六进制命令,并使用加密算法对要传输的数据进行加密;使用实时密钥对已加密数据和所生成的相关信息进行数据签名提取数据特征值,并将已加密的数据及数据签名发送至服务端;通过服务端实时密钥和所生成的相关信息对接收到的已加密的数据进行再次签名提取数据特征值;判断客户端提取的数据特征值与服务端提取的数据特征值是否相同;当判断结果相同时,服务端使用预设密钥将接收到的已加密的数据进行解密处理;通过abi服务将合约调用信息反序列化。该方法通过服务端进行数据加密签名校验,提高了智能合约的安全性。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
31.图1为本发明提供的以太坊区块链的数据加密签名校验方法流程图;
32.图2为本发明提供的展示了sdk的使用全部流程图。
具体实施方式
33.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.实施例1:
35.本发明实施例公开了一种以太坊区块链的数据加密签名校验方法,如图1所示,包
括以下步骤:
36.s1、在客户端使用abi将智能合约部署和/或调用请求序列化转译为十六进制命令,并使用加密算法对要传输的数据进行加密;
37.s2、使用实时密钥对已加密数据和所生成的相关信息进行数据签名提取数据特征值,并将已加密的数据及数据签名发送至服务端;
38.s3、通过服务端实时密钥和所生成的相关信息对接收到的已加密的数据进行再次签名提取数据特征值;
39.s4、判断客户端提取的数据特征值与服务端提取的数据特征值是否相同;
40.s5、当判断结果相同时,服务端使用预设密钥将接收到的已加密的数据进行解密处理;通过abi服务将合约调用信息反序列化。
41.s6、反序列化后的信息以abi固定方式进行格式化,若不满足abi规定,则无法进行内容识别抛出并通知监管程序进行处理。
42.本实施例中,在步骤s1中,开发者可使用abi将智能合约部署/调用请求序列化转译为十六进制命令,并使用aes模式ceb-pkcs7加密算法对要传输的数据进行加密。
43.上述步骤s2,使用实时密钥对已加密数据和时间戳timestamp及干扰字符串nonce进行数据签名提取数据特征值,并将加密后的数据及签名发送至服务端。
44.上述步骤s3-s4,通过服务端实时密钥和时间戳、干扰字符串对接收到的密文进行再次签名提取数据特征值,并与请求中的数据特征值进行对比判断是否请求、是否被修改。参与客户端与服务端签名提取的特征值的四个要素:密钥、时间戳、随机干扰字符串、密文内容需保持一致,且时间戳需在规定时间范围内生成,否则特征值不匹配,即判定为非法请求。
45.上述步骤s5-s6中,服务端使用aes对称密钥将密文进行解密,通过abi服务将合约调用信息反序列化,反序列化后的信息将以abi固定方式进行格式化,若不满足abi规定,则无法进行内容识别抛出并通知监管程序进行处理。
46.该方法通过服务端进行数据加密签名校验,提高了智能合约的安全性。
47.举例来说:
48.某用户在客户端需要调用智能合约中的getbalance(address)方法,并在sdk自动弹出的信息确认界面点击“确认执行”后,sdk将自动完成以下工作:
49.1、对合约方法及参数进行序列化并进行加密;
50.2、生成时间戳和随机干扰字符串,同时使用客户端密钥对加密内容进行签名提取特征值。并发送当前用户id,已生成时间戳、随机干扰字符串、加密内容和特征值至服务端;
51.3、服务端使用当前用户id的密钥、时间戳、干扰字符串和加密内容进行签名提取特征值。与请求中的特征值进行比较判断是否被篡改;
52.4、判断加密内容没有被篡改后,通过加密算法解密出序列化之后的十六进制指令,通过abi进行发序列化获得调用方法和参数的详细信息。与数据库中记录的规则进行比对,判定允许用户调用getbalance方法,有执行当前操作的权限审核通过,使用对应区块链私钥对序列化后的数据进行加密生成raw返回至客户端。raw为客户端调用区块链写入需要的数据内容。
53.本实施例中,将签名数据的加密签名改为服务端完成,用户端传送的数据进行反
序列化后,检索根据abi特征值建立的数据库,若用户调用方法标记为禁用,则返回签名异常错误。若无禁止要求,则使用登记的对应区块链账户私钥进行数据签名,并声称加密后的raw信息,同时执行数据加密签名中的s1~s6步骤返回,供客户端sdk链接区块链网络并完成记账操作。借助这种机制可以将区块链智能合约的部署和调用纳入监管体系。这种方式可以有效地避免用户之间的非法转移等行为,保障区块链的安全性和稳定性。另外,数据的安全性更高:本发明采用了对称加密和非对称加密技术、数字签名和哈希算法,可以有效地保护数据的完整性和机密性,防止数据被篡改或泄露。
54.实施例2:
55.本发明还提供了智能合约编写和调试方法,使得编写和调试智能合约更加智能化和便捷。
56.智能合约编写和调试:
57.本发明提供了基于solidity编程语言和开发工具的智能合约编写和调试方案。开发者可以在这个平台上方便地进行智能合约的编写和调试,减少了开发成本和时间。
58.1)、引入sdk文件,并在页面加载完成后填写rpc完成skd的初始化;
59.2)、加载智能合约abi、合约地址完成合约初始化;
60.3)、sdk会自动将合约方法添加至sdk根对象,开发者不需要了解区块链相关的规则和使用方式,按照正常方法调用即可使用“.”直接进行调用:流程和数据反馈的处理,全部由sdk自动完成。包含资源消耗确认流程、通信加密、服务端校验、abi方法的多态选择等。开发者使用正常的javascript或node对象调用方式即可完成与智能合约的交互。
61.智能合约部署和执行
62.本发明提供了基于以太坊区块链的智能合约部署和执行方案。使用者可以通过这个平台方便地部署和执行智能合约,实现数据的安全传输和交换。
63.(1)、在初始化合约时未填写对应的合约地址,即默认为未部署状态。
64.(2)、初始化的合约对象调用”.deploy”方法,将自动完成合约的部署,不需要再进行合约的编译和签名,服务端程序会自动完成合约的方法校验及合规性检查等操作。
65.本实施例中,智能合约编写调试、部署执行方法,使得开发者可以更加高效地进行智能合约的开发和测试。
66.综上所述,本发明通过提供新的数据加密签名校验技术和基于以太坊区块链架构的智能合约编写、部署和执行方案,解决了现有技术中存在的区块链智能合约部署和调用的监管难题,以实现对区块链智能合约的有效监管。
67.实施例3:
68.结合上述实施例1和实施例2进行说明:
69.在具体实施时,比如在任何web/h5项目头部引入sdk即可完成接入。
70.比如对所有基于web3js标准接口的二次封装,简化了调用方式:直接获取智能合约对象进行调用,即可在用户无感知情况下自动完成资源使用预览、节点负载和服务端验签功能。
71.如图2所示,展示了sdk的使用全部步骤:
[0072]“a”为sdk的部署和接入方式,具体参考“实施例”;
[0073]“b-d”为sdk与用户交互步骤;
[0074]“e-h”为sdk与服务端交互步骤;
[0075]“j”为sdk的信息反馈
[0076]
步骤具体说明如下:
[0077]
a、接入sdk,用户需要执行某个智能合约中的方法在区块链上记录数据;
[0078]
b、sdk通过jsonrpc连接至区块链可读取节点网管,并模拟执行计算出数据是否可以被记录;
[0079]
c、通过rpc接口计算需要消耗的能量值;
[0080]
d、弹窗展示调用合约地址、方法、参数以及即将记入区块链的数据和预估消耗能量值,等待用户确认。
[0081]
e、用户确认后查询可用的区块链写入节点;
[0082]
f、将调用方法、参数等信息序列化、加密、签名并发送至服务端,服务端通过检测签名、解密、发序列化获得用户将要调用过的合约方法、参数等信息;
[0083]
g、服务端查询风控数据库,检测用户是否有权限调用指定合约和方法,如果符合风控规则,使用用户私钥将序列化之后的信息进行加密形成raw,返回给客户端;
[0084]
h、客户端sdk选择合适的区块链写入节点,将raw数据通过rpc接口发送至区块链服务,区块链服务通过公钥解密出序列化内容,调用智能合约,写入内容。
[0085]
j-1、内容写入成功,客户端弹出成功提示信息;
[0086]
j-2、内容写入失败、客户端将解析执行日志,并展示区块链服务返回的错误提示信息。
[0087]
本发明具有更高的数据安全性、更加便捷的智能合约开发和调试、以及更加灵活的区块链网络架构和节点管理,可以有效地提升区块链技术的应用价值和推广普及程度。
[0088]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0089]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种以太坊区块链的数据加密签名校验方法,其特征在于,包括以下步骤:s1、在客户端使用abi将智能合约部署和/或调用请求序列化转译为十六进制命令,并使用加密算法对要传输的数据进行加密;s2、使用实时密钥对已加密数据和所生成的相关信息进行数据签名提取数据特征值,并将已加密的数据及数据签名发送至服务端;s3、通过服务端实时密钥和所生成的相关信息对接收到的已加密的数据进行再次签名提取数据特征值;s4、判断客户端提取的数据特征值与服务端提取的数据特征值是否相同;s5、当判断结果相同时,服务端使用预设密钥将接收到的已加密的数据进行解密处理;通过abi服务将合约调用信息反序列化。2.根据权利要求1所述的一种以太坊区块链的数据加密签名校验方法,其特征在于,还包括:s6、反序列化后的信息以abi固定方式进行格式化,若不满足abi规定,则无法进行内容识别抛出并通知监管程序进行处理。3.根据权利要求1所述的一种以太坊区块链的数据加密签名校验方法,其特征在于,所述加密算法为:aes模式ceb-pkcs7加密算法。4.根据权利要求2所述的一种以太坊区块链的数据加密签名校验方法,其特征在于,所生成的相关信息包括:生成的时间戳timestamp及干扰字符串nonce。5.根据权利要求4所述的一种以太坊区块链的数据加密签名校验方法,其特征在于,判断客户端提取的数据特征值与服务端提取的数据特征值是否相同;包括:判断客户端与服务端提取的数据特征值的四个要素:密钥、时间戳、随机干扰字符串、密文内容,是否一致;且时间戳是否在设定时间范围内生成。6.根据权利要求3所述的一种以太坊区块链的数据加密签名校验方法,其特征在于,所述预设密钥为aes对称密钥。7.一种以太坊区块链的智能合约编写调试方法,其特征在于,包括以下步骤:1)引入sdk文件,并在页面加载完成后填写rpc完成sdk的初始化;2)加载智能合约abi、合约地址完成合约初始化;3)sdk自动将合约方法添加至sdk根对象,完成流程和数据反馈的处理。8.一种以太坊区块链的智能合约部署执行方法,其特征在于,包括以下步骤:(1)、在初始化合约时未填写对应的合约地址,即默认为未部署状态;(2)、初始化的合约对象调用“.deploy”方法,自动完成合约的部署;服务端自动完成合约方法校验及合规性检查。

技术总结
本发明公开了一种以太坊区块链的数据加密签名校验方法及相关方法,校验方法包括:在客户端使用ABI将智能合约部署和/或调用请求序列化转译为十六进制命令,并使用加密算法对要传输的数据进行加密;使用实时密钥对已加密数据和所生成的相关信息进行数据签名提取数据特征值,并将已加密的数据及数据签名发送至服务端;通过服务端实时密钥和所生成的相关信息对接收到的已加密的数据进行再次签名提取数据特征值;判断客户端提取的数据特征值与服务端提取的数据特征值是否相同;当相同时,服务端使用预设密钥将接收到的已加密的数据进行解密处理;通过ABI服务将合约调用信息反序列化。该方法通过服务端进行数据加密签名校验,提高了智能合约的安全性。提高了智能合约的安全性。提高了智能合约的安全性。


技术研发人员:孙翰南
受保护的技术使用者:北京疯狂体育产业管理有限公司
技术研发日:2023.06.27
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐