【技术实现步骤摘要】
智能合约的安全处理方法、编译处理方法、装置及编译器
[0001]本说明书一个或多个实施例涉及计算机领域,尤其涉及一种智能合约的安全处理方法、编译处理方法、装置及编译器。
技术介绍
[0002]随着区块链技术的迅速发展,基于区块链的智能合约应用成为趋势。智能合约开发者的专业能力参差不齐,难以对智能合约的源代码中的漏洞和危险操作做出准确判断,因此对于部署在区块链系统中的智能合约的安全性,易受到代码缺陷或特有漏洞攻击的挑战。
技术实现思路
[0003]本说明书一个或多个实施例中提供了一种智能合约的安全处理方法、编译处理方法、装置及编译器。
[0004]第一方面,提供了一种智能合约的安全处理方法,所述方法包括:获取智能合约的源代码和描述代码,所述描述代码指示所述智能合约的形式验证条件;通过编译器前端将所述源代码转换为可信中间表达(Intermediate Representation,IR),其中对于所述源代码中定义的需要独立分配内存空间的数据对象,所述可信IR中通过引用来传递所述数据对象;根据所述可信IR和 ...
【技术保护点】
【技术特征摘要】
1.一种智能合约的安全处理方法,所述方法包括:获取智能合约的源代码和描述代码,所述描述代码指示所述智能合约的形式验证条件;通过编译器前端将所述源代码转换为可信中间表达IR,其中对于所述源代码中定义的需要独立分配内存空间的数据对象,所述可信IR中通过引用来传递所述数据对象;根据所述可信IR和所述形式验证条件对所述智能合约进行形式验证,获得所述智能合约的形式验证结果,用于指示所述智能合约是否存在安全风险。2.根据权利要求1所述的方法,所述根据所述可信IR和所述形式验证条件对所述智能合约进行形式验证,获得所述智能合约的形式验证结果,包括:将所述可信IR转换成通过目标语言表达的第一IR,以及将所述描述代码转换为通过所述目标语言表达的第二IR;将所述第一IR和所述第二IR输入所述目标语言对应的形式验证组件,使所述形式验证组件根据所述第一IR和所述第二IR,输出所述智能合约的形式验证结果。3.根据权利要求1所述的方法,所述方法还包括:根据所述可信IR确定所述智能合约对应的合约代码,所述合约代码用于部署到区块链系统中。4.根据权利要求3所述的方法,所述合约代码为所述可信IR;或者,所述合约代码为根据所述可信IR转换得到的预定格式的字节码。5.根据权利要求3所述的方法,所述方法还包括:根据所述可信IR生成验证器以及包含零知识证明的证明器,所述验证器用于在所述区块链系统开始执行所述智能合约之前,根据所述零知识证明验证所述区块链系统中部署的所述智能合约的合约代码的有效性。6.根据权利要求5所述的方法,所述根据所述可信IR生成验证器以及包含零知识证明的证明器,包括:获取所述可信IR对应的目击数据;将所述可信IR解释为抽象数字电路中间表达ACIR,并对所述ACIR进行序列化处理;将所述目击数据和进行序列化处理后的所述ACIR输入密码学组件,使其根据所述目击数据和进行序列化处理后的所述ACIR,输出验证器以及包含零知识证明的证明器。7.根据权利要求1
‑
6中任一项所述的方法,所述方法还包括:在所述获取...
【专利技术属性】
技术研发人员:朵晓东,甄羿,陈翔飞,张正,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。