水利行业标准网
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210530051.X (22)申请日 2022.05.16 (71)申请人 清华大学深圳国际研究生院 地址 518055 广东省深圳市南 山区西丽 街 道深圳大 学城清华校区A栋二楼 (72)发明人 肖喜 张焓祺 夏树涛 江勇  郑海涛 王兴军  (74)专利代理 机构 深圳新创友知识产权代理有 限公司 4 4223 专利代理师 江耀纯 (51)Int.Cl. G06F 21/62(2013.01) G06F 21/57(2013.01) (54)发明名称 一种智能合约机密执 行方法及系统 (57)摘要 本发明公开了一种智能合约机密执行方法 及系统, 包括如下步骤: S1、 根据用户的输入标注 涉及敏感数据的智能合约函数; S2、 自动检测用 户调用的智能合约函数是否含有参数, 接着检测 用户是否有对 该函数进行标注, 以此判断该函数 是否需要保护; S3、 利用事先构建的本地节点和 安全容器环境节点分别对智能合约函数进行执 行: 本地节 点直接在本地执行不需要保护的智能 合约函数, 安全容器环境节点在远程的可信执行 环境中执行需要保护的智能合约函数。 本发明仅 将需要保护的函数运行于可信执行环 境之中, 以 此减小TCB 尺寸, 降低代码风险。 并且本地模型与 安全容器节点以HTTP的形式交互, 避免了本地模 型必须支持I ntelSGX的硬性要求。 权利要求书1页 说明书9页 附图4页 CN 114912145 A 2022.08.16 CN 114912145 A 1.一种智能合约机密执 行方法, 其特 征在于, 包括如下步骤: S1、 根据用户的输入标注涉及敏感数据的智能合约函数; S2、 自动检测用户调用的智能合约函数是否含有参数, 接着检测用户是否有对该函数 进行标注, 以此判断该函数 是否需要保护; S3、 利用事先构建的本地节点和安全容器环境节点分别对智能合约函数执行以下操 作: 本地节点直接在本地执行不需要保护的智能合约函数, 安全容器环境节点在远程的可 信执行环境中执 行需要保护的智能合约函数。 2.如权利要求1所述的智能合约机密执行方法, 其特征在于, 在步骤S1中, 智能合约通 过以太坊的契约型编程语言编译器模块, 获取为字节码序列, 并通过标注模块, 由用户标注 出需要保护的函数, 获取 标注函数的十六进制名称。 3.如权利要求2所述的智能合约机密执行方法, 其特征在于, 所述契约型编 程语言编译 器模块为Solidity编译器模块, 步骤S1分为标注阶段和记录阶段; 在标注阶段中, 用户通过 Geth客户端输入命令行的方式, 以Solidity源代码文件地址以及需要保护的函数名为输入 参数, 进行标注; 在此过程中, 生成临 时文件存储标注结果; 在标注阶段之前或之后, 根据用 户部署的智能合约, 获取智能合约的地址; 最后, 在记录阶段中, 用户通过Geth客户端输入 命令行的方式, 以智能合约地址为输入参数, 进 行记录; 并且自动 将刚才生 成的临时文件与 智能合约地址进行关联, 存 储到轻量级数据库中, 以便在之后调用该合约的函数时读取。 4.如权利要求1所述的智能合约机密执行方法, 其特征在于, 在步骤S2中, 检测所述智 能合约函数是否有参数, 如果有参数, 则由标注检测模块继续检测, 如果没有参数, 则 说明 该函数不需要保护, 则默认直接由本地节点执 行。 5.如权利要求1所述的智能合约机密执行方法, 其特征在于, 所述安全容器环境节点为 SCONE节点, 在标注检测过程中, 从存储中获取这个智能合约标注的所有函数的十六进制名 称, 并判断本次调用的函数是否在标注的函数列表中, 如果在, 则由SCONE节点执行, 否则, 直接由本地节点执 行。 6.如权利要求5所述的智能合约机密执行方法, 其特征在于, 采用SCONE的软件开发工 具包SDK在Intel SGX提供的可信执 行环境中运行, 保护 智能合约的执 行过程。 7.如权利要求5所述的智能合约机密执行方法, 其特征在于, 采用微服务的架构, 通过 Docker容器部署SCONE节点, 并通过HTTP与其他模块进行交互, 避免了本地模型对支持 Intel SGX硬件的硬性要求。 8.如权利 要求5所述的智能合约机密执行方法, 其特征在于, 当有多个SCONE节点时, 在 每次智能合约函数调用时, 进行简单的负载均衡判断, 选择负载情况最低的一个SCONE节 点, 通过对应的IP地址和端口号进行HT TP交互。 9.如权利要求5所述的智能合约机密执行方法, 其特征在于, 单个SCONE节点同时处理 不同的智能合约函数调用请求; 对于每一次智能合约函数调用, 随机生成一段Cookie, 该 Cookie在本次函数调用的所有HTTP交互中保持不变, 据此, SCONE节点可以根据Cookie值定 位到具体 每一次的函数调用, 从而实现多个任务的并发处 理。 10.一种智能合约机密执行系统, 包括处理器和存储器, 所述存储器中存储有计算机程 序, 其特征在于, 所述计算机程序可被处 理器执行以实现如权利要求1 ‑9所述的方法。权 利 要 求 书 1/1 页 2 CN 114912145 A 2一种智能合约机密执行方 法及系统 技术领域 [0001]本发明涉及信息安全及隐私保护领域, 尤其是涉及一种智能合约机密执行方法及 系统。 背景技术 [0002]区块链是一个点对点、 分布式、 去中心化的网络, 由各个区块组成, 每一个区块都 存储了一段时间内已经被验证的交易, 每 个区块通过密码学 方法链接成链。 [0003]以太坊除了持有加密货币交易的功能, 还具备执行智能合约的能力。 智能合约是 一段可按照逻辑运行的程序 代码, 用户可以通过编写智能合约, 在以太坊上执行程序 代码。 以太坊中包含有一个基于堆栈架构的程序——以太坊虚拟机(Ethereum  Virtual   Machine, EVM), 用于执行智能合约。 智能合约的执行是一个先编译后解释的过程, 智能合约 先编译成字节码序列, 然后由以太坊 虚拟机解释字节码序列, 以完成智能合约的执 行。 [0004]然而, 区块链中所有的节点都存储着链上的数据, 这意味着数据的公开, 其中不乏 包含一些敏感数据(例如: 金融交易、 个人数据、 健康记录)。 对于区块链的一种类型——联 盟链来说, 由于管 理链的节点更多 是公司、 机构, 因此其中存储的数据更容易包含用户的 隐 私。 智能合约作为用户和区块链的桥梁, 如果有恶意攻击者入侵了联盟链节点, 攻击者就可 以窥探智能合约的执行, 窃取用户的隐私数据。 因为, 在联盟链上运行的智能合约, 缺乏机 密性的保证。 [0005]可信执行环境(Trusted  Execution Environment, TEE)是一种可以保证机密性的 解决方案。 Intel  Software  Guard Extensions(英特尔软件保护扩展)(SGX)就提供了一种 基于CPU硬件的TEE, 称为Enclave, Enclav e 提供了一组增强应用程序代码和数据安全的指 令。 Intel  SGX可以防止外部应用程序或者操作系统干扰运行于Enclave中的程序。 将解释 智能合约字节码的虚拟机运行于Enclave之中, 可以保护智能合约执行过程的机密性。 然 而, 如果在TEE中解释每个智能合约函数, 包括那些不涉及用户隐私数据的函数, 会造成较 大的可信计算基础(Trusted  Computing  Base, TCB), 潜在的代码漏洞和安全风险会随着代 码量的增加而增加。 因此, 必须尽可能地减小TCB尺 寸, 仅将涉及敏感数据的代码运行于TEE 之中。 [0006]此外, 由于Intel  SGX提供的TEE是一种基于CPU的安全可信执行环境, 因此要求设 备的CPU必须支持Intel  SGX。 因此, 非Intel处理器的设备或者不支持Intel  SGX的设备就 无法运行在可信执 行环境来保护智能合约的机密性。 [0007]在联盟链中, 如果恶意攻击者入侵到管理节点, 即可以观察智能合约的执行过程, 并窃取用户的数据, 导致用户隐私的泄露。 而现有的部 分方案中, 只能将特定功能的智能合 约运行在由Intel  SGX保护的可信任执行环境中, 存在局限性。 而在另外一些现有方案中, 将整个执行智能合约的虚拟机都运行于可信执行环境之中, 并且对于许多不涉及隐私数据 的智能合约函数也进 行了保护, 导致TCB尺寸较大, 代码漏洞和安全风险增加。 此外, 对于一 些现有方案, 要求执 行者的设备必须支持I ntel SGX, 对设备的CPU型号有着硬性的要求。说 明 书 1/9 页 3 CN 114912145 A 3

PDF文档 专利 一种智能合约机密执行方法及系统

文档预览
中文文档 15 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种智能合约机密执行方法及系统 第 1 页 专利 一种智能合约机密执行方法及系统 第 2 页 专利 一种智能合约机密执行方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:39:11上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。