当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于SGX的区块链交易安全保护系统及其方法技术方案

技术编号:25758112 阅读:95 留言:0更新日期:2020-09-25 21:06
本发明专利技术公开了一种基于SGX的区块链交易安全保护系统及其方法。该系统包括用户侧基于区块链钱包应用的轻量型客户端系统和区块链上基于全节点的服务端系统。轻量型客户端与全节点服务端建立可信加密渠道,轻量型客户端通过该可信加密渠道向全节点发送加密的用户请求,包括交易验证、交易构造等。全节点在SGX安全区内解密并处理用户请求,通过茫然随机访问来进行交易数据的本地存取,从而满足请求处理需求。本发明专利技术的方法为区块链轻量型客户端的交易验证和发起交易过程提供了隐私安全保护,有效防止用户隐私被攻击者窃取。

【技术实现步骤摘要】
一种基于SGX的区块链交易安全保护系统及其方法
本专利技术涉及信息技术安全领域,特别涉及一种基于SGX的区块链交易安全保护系统及其方法。
技术介绍
目前,中心化的网络服务系统提供了便捷的交易、支付、沟通渠道,但在用户使用服务的过程中,服务的提供者和网络的提供者都能收集用户的使用记录和痕迹,使得用户的隐私安全容易受到威胁。随着比特币的兴起和应用,作为比特币底层架构的区块链技术提供了去中心化的交易方式,近年来引起广泛关注。区块链本质是一个去中心化的分布式账本,具有数据不可篡改、系统集体维护、交易公开透明等优势。然而,区块链系统的设计要求每个区块链网络的参与者必须维护整个区块链数据,这就使得智能手机等移动设备难以直接接入区块链网络。为此,比特币提供了SPV(SimplePaymentVerification)模式,允许用户运行轻量型客户端,只需要保存区块链的极少部分信息,在全节点的帮助下完成交易的验证。这虽然可以使移动端用户使用区块链服务,但是也让系统在全节点处产生了中心化,具有和传统的中心化服务同样的隐私威胁性。为了改善这种情况,比特币在后续的改进方案中提出了Bloom过滤器,但现有的研究证明其存在较高的被攻击的风险。因此,区块链的交易隐私安全亟需进一步的安全保护。英特尔公司于2013年提出了SGX(SoftwareGuardExtensions)安全保护机制,它是一套基于硬件的扩展指令和安全保护机制,允许应用程序在设计时分割可信部分和不可信部分,为可信部分的代码和数据创建可信的加密内存区域,从而保证运行过程中代码的完整性和数据的一致性,这个加密的内存区域被称为安全区(enclave)。安全区中的数据只能被安全区中的代码访问,并且任何同一平台上的恶意软件、特权软件甚至是操作系统本身都无法对安全区进行访问,从而确保安全区内部的数据不会被泄露或者恶意篡改。ORAM(ObliviousRandomAccessMachine,茫然随机访问机)是一种隐藏IO操作的数据访问模式的加密方案,通过一次性读入多个数据来隐藏真正想要获得的数据内容,即使两次请求访问了相同的内容,两次请求读入的数据也不相一致。这使得第三方无法通过数据访问模式来推断出用户隐私。
技术实现思路
针对现有技术的不足,本专利技术提供一种基于SGX的区块链交易安全保护系统及其方法。通过引入SGX的硬件保护机制,构建受保护的区块链安全交易环境。同时,本系统不需要特定区块链架构等条件,只需要提供SGX支持的运行环境,即可与其他安全防护措施同时使用,保护区块链的交易安全。本专利技术提供如下所述的解决方案:一种基于SGX的区块链交易安全保护系统,包括:区块链客户端,获取用户指定的地址,根据需求构造交易请求,并将交易请求通过可信加密渠道发送给区块链全节点;通过可信加密渠道接收区块链全节点的返回结果;区块链全节点,包括位于安全区内的SGX加密模块、安全存取模块、交易验证模块、交易构造模块和位于系统磁盘上的本地安全存储;所述SGX加密模块,提供验证信息和SGX访问密钥;所述安全存取模块,将区块链上交易数据读取后整理归类,在本地安全存储中加密存储区块链上的交易数据;所述交易验证模块,对区块链客户端的交易验证请求执行操作,通过SGX访问密钥进入安全区内调用交易获取函数,在安全区内打包交易数据并且返回到安全区外,最终发回区块链客户端;所述交易构造模块,对区块链客户端发来的构造交易请求执行操作,通过所述SGX访问密钥进入安全区内调用交易构造函数,在安全区填充交易信息并返回到安全区外,最终向区块链网络广播该交易并向区块链客户端发回成功信息。在本专利技术的一个优选实施案例中,所述的区块链客户端包括:所述钱包应用模块,保存用户的交易地址,并向用户展示当前各个交易地址的货币持有情况和交易结果信息;请求构造模块,构建满足用户需求和安全性要求的请求包,通过可信加密渠道发送给区块链全节点;通过可信加密渠道接收来区块链全节点的响应包,解包获取请求的交易地址或交易结果信息,返回给钱包应用模块。本专利技术还公开了一种基于SGX的区块链交易安全保护方法,其包括如下步骤:1)区块链客户端获取用户指定的地址,根据需求构造用户请求,并将请求通过可信加密渠道以请求包形式发送给区块链全节点;2)区块链全节点接收通过可信加密渠道发来的用户请求,根据请求类型由交易验证模块或交易构造模块进行处理;交易验证模块对区块链客户端的交易验证请求执行操作,通过SGX访问密钥进入安全区内调用交易获取函数,根据请求包内地址列表,通过安全存取模块从本地安全存储中读取交易数据,在安全区内打包交易数据为响应包并最终发回区块链客户端;交易构造模块对区块链客户端发来的构造交易请求执行操作,通过所述SGX访问密钥进入安全区内调用交易构造函数,根据请求包内地址列表,通过安全存取模块从本地安全存储中读取交易数据,检查交易历史是否满足此次请求,当不满足时向区块链客户端返回包含失败信息的响应包;当满足时,根据用户请求构造交易,最终向区块链网络广播该交易并向区块链客户端发回包含成功信息的响应包。在本专利技术的一个优选实施方案中,所述的请求包大小为固定阈值,根据请求信息所占的空间与设定的阈值相比,若空间仍有剩余则填充剩余空间,若空间不足则将多出部分重新打包进新的请求包,并且标记上一个请求包不为最后一个请求包,若空间仍不足,则重复此操作直至地址信息全部被打包进请求包。在本专利技术的一个优选实施方案中,所述的区块链客户端随机生成额外的请求包并在随机时间点向区块链全节点进行发送。在本专利技术的一个优选实施方案中,所述的区块链客户端在初次运行时,与区块链全节点上的安全区通过建立可信加密渠道;在每次运行时对该渠道进行测试通信。在本专利技术的一个优选实施方案中,所述的区块链全节点在处理交易验证请求包前还包括如下步骤:a)初始化安全区系统在启动后,为安全区分配内存空间,上载程序运行所需代码和数据,生成验证信息和访问密钥,通过SGX提供的远程认证服务与区块链客户端建立可信通信渠道;b)初始化交易数据区块链全节点与区块链网络同步,下载整条区块链数据;当同步完成后,区块链全节点将扫描整条区块链数据,通过安全区内的安全存取模块在本地安全存储空间上存储数据。在本专利技术的一个优选实施方案中,安全存取模块使用安全区内随机生成的密钥以数据块的形式加密和存储交易数据,确保该交易数据只能由该安全区读取,且外部系统无法得知安全区读取了哪一部分交易数据。在本专利技术的一个优选实施方案中,交易信息以数据块为单位加密存储,每个数据块拥有固定相同的大小,每个数据块包含以下信息:区块链地址、与该地址相关的交易数据;所有数据块以二叉树形式存储,每个二叉树节点上都有相同数量的数据块,每个数据块以区块链地址为索引,在位置图中指明对应数据块存在于何条二叉树路径上。在本专利技术的一个优选实施方案中,所述的响应包为大小为固定阈值,根据交易信息所本文档来自技高网
...

【技术保护点】
1.一种基于SGX的区块链交易安全保护系统,其特征在于包括:/n区块链客户端,获取用户指定的地址,根据需求构造交易请求,并将交易请求通过可信加密渠道发送给区块链全节点;通过可信加密渠道接收区块链全节点的返回结果;/n区块链全节点,包括位于安全区内的SGX加密模块、安全存取模块、交易验证模块、交易构造模块和位于安全区外系统磁盘上的本地安全存储;/n所述SGX加密模块,提供验证信息和SGX访问密钥;/n所述安全存取模块,将区块链上交易数据读取后整理归类,在本地安全存储中加密存储区块链上的交易数据;/n所述交易验证模块,对区块链客户端的交易验证请求执行操作,通过SGX访问密钥进入安全区内调用交易获取函数,在安全区内打包交易数据并且返回到安全区外,最终发回区块链客户端;/n所述交易构造模块,对区块链客户端发来的构造交易请求执行操作,通过所述SGX访问密钥进入安全区内调用交易构造函数,在安全区填充交易信息并返回到安全区外,最终向区块链网络广播该交易并向区块链客户端发回成功信息。/n

【技术特征摘要】
1.一种基于SGX的区块链交易安全保护系统,其特征在于包括:
区块链客户端,获取用户指定的地址,根据需求构造交易请求,并将交易请求通过可信加密渠道发送给区块链全节点;通过可信加密渠道接收区块链全节点的返回结果;
区块链全节点,包括位于安全区内的SGX加密模块、安全存取模块、交易验证模块、交易构造模块和位于安全区外系统磁盘上的本地安全存储;
所述SGX加密模块,提供验证信息和SGX访问密钥;
所述安全存取模块,将区块链上交易数据读取后整理归类,在本地安全存储中加密存储区块链上的交易数据;
所述交易验证模块,对区块链客户端的交易验证请求执行操作,通过SGX访问密钥进入安全区内调用交易获取函数,在安全区内打包交易数据并且返回到安全区外,最终发回区块链客户端;
所述交易构造模块,对区块链客户端发来的构造交易请求执行操作,通过所述SGX访问密钥进入安全区内调用交易构造函数,在安全区填充交易信息并返回到安全区外,最终向区块链网络广播该交易并向区块链客户端发回成功信息。


2.根据权利要求1所述的基于SGX的区块链交易安全保护系统,其特征在于所述的区块链客户端包括:
所述钱包应用模块,保存用户的交易地址,并向用户展示当前各个交易地址的货币持有情况和交易结果信息;
请求构造模块,构建满足用户需求和安全性要求的请求包,通过可信加密渠道发送给区块链全节点;通过可信加密渠道接收来区块链全节点的响应包,解包获取请求的交易地址或交易结果信息,返回给钱包应用模块。


3.一种基于SGX的区块链交易安全保护方法,其特征在于:
1)区块链客户端获取用户指定的地址,根据需求构造用户请求,并将请求通过可信加密渠道以请求包形式发送给区块链全节点;
2)区块链全节点接收通过可信加密渠道发来的用户请求,根据请求类型由交易验证模块或交易构造模块进行处理;
交易验证模块对区块链客户端的交易验证请求执行操作,通过SGX访问密钥进入安全区内调用交易获取函数,根据请求包内地址列表,通过安全存取模块从本地安全存储中读取交易数据,在安全区内打包交易数据为响应包并最终发回区块链客户端;
交易构造模块对区块链客户端发来的构造交易请求执行操作,通过所述SGX访问密钥进入安全区内调用交易构造函数,根据请求包内地址列表,通过安全存取模块从本地安全存储中读取交易数据,检查交易历史是否满足此次请求,当不满足时向区块链客户端返回包含失败信息的响应包;当满足时,根据用户请求构造交易,最终向...

【专利技术属性】
技术研发人员:陈建海范俊松沈睿刘丁豪何钦铭纪守领
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1