[发明专利]区块链智能合约平台支持有状态和无状态合约的处理方法有效
| 申请号: | 201910847997.7 | 申请日: | 2019-09-09 |
| 公开(公告)号: | CN110610423B | 公开(公告)日: | 2023-02-10 |
| 发明(设计)人: | 叶万标 | 申请(专利权)人: | 杭州秘猿科技有限公司 |
| 主分类号: | G06Q40/04 | 分类号: | G06Q40/04 |
| 代理公司: | 杭州天昊专利代理事务所(特殊普通合伙) 33283 | 代理人: | 刘芬豪 |
| 地址: | 310000 浙江省杭州市西湖区文三路*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 区块 智能 合约 平台 持有 状态 处理 方法 | ||
本发明公开了一种区块链智能合约平台支持有状态和无状态合约的处理方法、电子设备和计算机可读存储介质。其中方法包括:对于无状态合约,创建时添加无状态合约标记,区块链智能合约平台在执行过程中,如果检测到所述无状态合约标记,则禁止所述无状态合约中的所有函数访问存储空间,且禁止所述无状态合约接收输入信息;对于有状态合约,如果所述有状态合约需要调用其他合约,则被调用的合约必须为无状态合约,即被调用的合约必须包含无状态合约标记,若不包含无状态合约标记,则区块链智能合约平台报错,停止继续执行。采用以上方式可以避免区块链智能合约平台很多潜在的恶意攻击。
技术领域
本发明属于区块链技术领域,具体涉及一种区块链智能合约平台支持有状态和无状态合约的处理方法、电子设备和计算机可读存储介质。
背景技术
区块链(blockchain),是一种分布式记账的技术方案,借由密码学串接并保存内容的串联交易记录(又称区块),每一个区块包含了前一个区块的加密摘要(唯一标识符)、时间戳和交易列表,任何交易都需要系统中的每一个共识节点参与并达成一致共识后才会存入区块中。
智能合约(smart contract),1994年由尼克萨博首次提出,是一种特殊协议,在区块链内制定合约时使用,可以包含一些任意数据或解析数据的函数,可以接收用户输入并引导虚拟机解析处理用户输入。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。现有的智能合约本质上是执行合约条款的计算机交易协议,区块链上的所有用户都可以看到基于区块链的智能合约。这种公开透明的特性,一方面降低区块链上的信任和交易成本,另一方面也对智能合约的安全性提出了非常高的要求。
同时区块链本身是一个分布式系统,任何改动和更新都需要系统中的所有共识节点参与,这种去中心化的特性,一方面降低了中心化作恶的道德风险,另一方面也让安全漏洞无法得到及时修复。在区块链上,任何安全漏洞在内都是公开可见的,一旦出现安全漏洞,开发者可能无法迅速修复。安全漏洞容易被攻击,面临区块链上的数据被篡改。如果区块链上保存的比较高价值的金融资产,那么后果就会更加严重。传统的智能合约存在多个合约之间相互依赖和调用的场景,但是被调用的合约函数并不严格要求为纯函数,导致被调用的函数的输出结果不是确定和可预期的,甚至会出现一些不容易观察和不可预料的副作用。
举例说明,现有的智能合约函数可以是纯函数,也可以是非纯函数。参照图1所示,给出了纯函数add和非纯函数random的示例。从图1中注释和函数执行结果可以看到,对于add函数来说,只要给定输入参数,那么输出结果就一定是确定的且可预期的;而对于random函数来说,输入参数只是给出了随机数产生的上限和下限,输出结果依然是随机、不确定且不可预期的。所以add函数是纯函数,random函数不是纯函数。如图2所示,当一个合约函数contract1调用另一个合约contract2的非纯函数function func2(){}时,被调用的非纯函数就可以放入无法提前预知的恶意攻击行为,从而产生意想不到的后果。过去几年很多知名的智能合约区块链平台,都因为上述特性出现过严重的安全漏洞。攻击者利用原合约函数可以调用其他合约的非纯函数的特性,将一些攻击代码放入被调用合约函数中,由于原合约在一开始并不知道被调用合约函数的行为,所以一开始无法完全预测被调用合约函数的结果,也就造成了合约的安全漏洞在一开始无法快速被识别,进而被恶意攻击导致出现严重后果。
发明内容
鉴于以上存在的技术问题,本发明用于提供一种区块链智能合约平台支持有状态和无状态合约的处理方法、电子设备和计算机可读存储介质,用于同时支持有状态合约和无状态合约的处理,将无状态合约设置成行为可预期的合约,且有状态合约只能调用无状态合约,不能调用其他的有状态合约,杜绝区块链智能合约平台存在的潜在的恶意攻击行为。
为解决上述技术问题,本发明采用如下的技术方案:
第一方面,本申请实施例提供一种区块链智能合约平台支持有状态和无状态合约的处理方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州秘猿科技有限公司,未经杭州秘猿科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910847997.7/2.html,转载请声明来源钻瓜专利网。





