CN115001715B - 基于区块链的加密智能合约检测方法及终端 - Google Patents

基于区块链的加密智能合约检测方法及终端 Download PDF

Info

Publication number
CN115001715B
CN115001715B CN202210922017.7A CN202210922017A CN115001715B CN 115001715 B CN115001715 B CN 115001715B CN 202210922017 A CN202210922017 A CN 202210922017A CN 115001715 B CN115001715 B CN 115001715B
Authority
CN
China
Prior art keywords
intelligent contract
node
rule
developer
token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210922017.7A
Other languages
English (en)
Other versions
CN115001715A (zh
Inventor
王中健
陈大江
曹明生
王颢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaorongyun Digital Technology Chengdu Co ltd
Original Assignee
Yaorongyun Digital Technology Chengdu Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yaorongyun Digital Technology Chengdu Co ltd filed Critical Yaorongyun Digital Technology Chengdu Co ltd
Priority to CN202211266805.1A priority Critical patent/CN115733659B/zh
Priority to CN202210922017.7A priority patent/CN115001715B/zh
Publication of CN115001715A publication Critical patent/CN115001715A/zh
Application granted granted Critical
Publication of CN115001715B publication Critical patent/CN115001715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了基于区块链的加密智能合约检测方法及终端,属于信息安全技术领域,检测节点根据开发者发布的交易信息获取加密智能合约、随机令牌集合和开发者签名,根据规则处理节点发布的交易信息获得模糊映射表和算力节点签名;对签名进行验证处理,若验证成功,根据随机令牌集合模糊映射表执行令牌检测操作,若通过,将加密智能合约和随机令牌存储至区块链,否则,直接丢弃。通过引入的检测节点接收开发者发布的加密智能合约和随机令牌,并接收规则处理节点发布的模糊映射表,能够在不暴露有效负载的情况下,使用随机令牌与模糊映射表执行匹配检测,即在保证加密智能合约隐私性的基础上,实现了对加密智能合约的安全性检测。

Description

基于区块链的加密智能合约检测方法及终端
技术领域
本发明涉及信息安全技术领域,尤其涉及基于区块链的加密智能合约检测方法及终端。
背景技术
在现有的区块链系统中,所有参与共识的节点都必须拥有交易和智能合约的真实数据,才能完成计算工作并根据状态达成共识。然而,智能合约中可能会包含一些隐私信息,比如身份信息、企业机密、特定代码等,由于所有参与共识的节点都可以获得智能合约的真实数据,导致智能合约中的隐私数据存在泄露的风险,进而降低区块链的安全性和实用性。因此,为了保证智能合约的隐私性,一些关于智能合约加密的方法、系统或流程被提出。
考虑这样一个场景,存在一个拥有强大算力和大量数据资源的算力节点 (比如数据训练平台),它可以为其他用户提供数据挖掘的操作。另外,存在一个用户,它作为智能合约的开发者,希望利用该算力节点的资源和算力进行数据挖掘,同时不想让除了该算力节点以外的其他节点获取智能合约的真实数据。此时,可行的操作为:首先,用户和算力节点进行协商获取密钥;之后,用户将智能合约加密后得到的合约密文存储到区块链上;最后,算力节点在收到用户的交易信息 (包含智能合约地址和其他调用参数) 后,根据交易信息获取对应的合约密文,对密文解密获取智能合约明文 (有且只有该节点拥有可以对加密合约解密的密钥)。
然而,此时又产生了另外的问题,如果智能合约的开发者存在无意的疏忽或故意的恶意行为,则智能合约代码中可能会存在安全漏洞,这将对交易及财产安全产生威胁。因此,在保护智能合约的隐私性的前提下,为了进一步保证加密智能合约的内容安全性,需要在加密智能合约部署在区块链上之前对其进行检测操作。
发明内容
本发明的目的在于克服现有技术的问题,提供基于区块链的加密智能合约检测方法及终端。
本发明的目的是通过以下技术方案来实现的:基于区块链的加密智能合约检测方法,所述方法以检测节点作为执行主体时,包括以下步骤:
根据开发者发布的交易信息获取加密智能合约、随机令牌集合T和开发者签名Sig DEV ,并根据规则处理节点发布的交易信息获得模糊映射表Obm和算力节点签名Sig CP ,模糊映射表Obm用于反映响应规则与隐藏内容选项的映射关系;
对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理,若验证成功,根据随机令牌集合T、模糊映射表Obm执行令牌检测操作,若检测通过,将加密智能合约和随机令牌存储至区块链,否则,认为智能合约中包含恶意行为,直接丢弃。
在一示例中,所述对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理,具体包括以下子步骤:
分别对开发者签名Sig DEV 、算力节点签名Sig CP 进行解密处理得到两个哈希值,若两个哈希值相同,通过随机令牌集合T、以及哈希函数计算一个哈希值,与交易信息中的哈希值HV比较,若相同,则验证成功;反之,验证失败。
在一示例中,所述执行令牌检测操作,具体包括以下子步骤:
对每个随机令牌T i 进行分割处理得到左边部分的随机令牌
Figure 953365DEST_PATH_IMAGE001
和右边部分的随机 令牌
Figure 219262DEST_PATH_IMAGE002
,将按序的T i 的位置信息存入表Table len ;其中,i表示序号。
根据
Figure 500201DEST_PATH_IMAGE003
、开发者生成的密钥确定模糊映射表Obm在位置loc存储的值Obm[loc];
Obm[loc]、
Figure 893268DEST_PATH_IMAGE002
进行异或处理得到id和秘密共享p的拼接,id为规则的总编号;
维护表Table con ,储存分割得到的id和秘密共享p,并更新表Table con 中秘密共享p;在存储过程中,在表Table len 中确定总编号为id的规则的一个被隐藏的内容con(context),通过恢复的内容con验证表Table con 中的长度和位置信息;同时,维护存储“id -令牌位置信息”键值对的表Table len
当所有内容选项都成功验证,维护中间表Table act 存储规则编号id 1 作为键,并以con分离的第一秘密共享q作为值,当同样的id 1 到来时,将第一秘密共享q与中间表Table act 中的值进行异或,并将结果更新到中间表Table act 中;
若中间表Table act 中恢复出规则集规定的响应操作,则认为智能合约包括恶意信息,直接丢弃;反之,认为智能合约合法,将加密智能合约、随机令牌集合T和哈希值HV存储至区块链上。
在一示例中,所述方法以开发者作为执行主体时,包括以下步骤:
将智能合约进行加密处理,并将密钥共享至算力节点,同时对智能合约的明文代码进行处理得到用于检测的随机令牌;
将加密智能合约和随机令牌写入交易信息并存储至交易池。
在一示例中,所述方法以算力节点作为执行主体时,包括以下步骤:
选择用于进行规则处理的矿工作为规则处理节点;和/或,
将关键信息写入交易信息并存至交易池,关键信息包括哈希值、密钥、算力节点签名。
在一示例中,所述方法以算力节点作为执行主体时,还包括以下步骤:
接收检测节点发送的包含加密智能合约地址的交易信息后,从区块链上获取智能合约密文和随机令牌,并基于开发者共享的密钥对加密智能合约进行解密,获取智能合约明文;
通过随机令牌化操作生成新的随机令牌,并与来自开发者的随机令牌进行对比,验证智能合约的一致性,若不一致,丢弃对应智能合约。
在一示例中,所述方法以算力节点作为执行主体时,还包括以下步骤:
接收开发者发送的基于公钥对
Figure 372791DEST_PATH_IMAGE004
、密钥集
Figure 809588DEST_PATH_IMAGE005
和时间戳ts进行加密的加密信 息
Figure 374562DEST_PATH_IMAGE006
采用私钥SK CP 对加密信息
Figure 804275DEST_PATH_IMAGE007
进行解密,得到
Figure 403883DEST_PATH_IMAGE004
Figure 11582DEST_PATH_IMAGE005
Figure 798273DEST_PATH_IMAGE008
Figure 530212DEST_PATH_IMAGE004
为种子,采用与开发者使用的相同伪随机数生成器生成一个新的密钥集, 若新的密钥集与开发者通过相同伪随机数生成器得到的密钥集相同,不执行任何操作;反 之,算力节点停止与开发者的通信。
在一示例中,所述方法以规则处理节点作为执行主体时,包括以下步骤:
计算并构建模糊映射表并存储至自己的私有链上,并将包括模糊映射表地址的交易信息发布至交易池中。
在一示例中,所述构建模糊映射表包括以下子步骤:
根据算力节点发布的交易信息获取密钥;
对规则集R中规则R i 进行预处理;
对内容进行分割处理,得到包含等长的第一片段集合Seg j
基于第一片段集合Seg j 对内容进行隐藏处理;
对规则响应操作进行隐藏处理,生成τ个秘密共享
Figure 984327DEST_PATH_IMAGE009
拼接字符串
Figure 762927DEST_PATH_IMAGE010
和秘密共享
Figure 36914DEST_PATH_IMAGE011
, 得到拼接结果
Figure 808429DEST_PATH_IMAGE012
Figure 117051DEST_PATH_IMAGE013
Figure 66553DEST_PATH_IMAGE014
的异或结果作为映射表的值插入模糊映射表Obm
Figure 93414DEST_PATH_IMAGE015
位 置,
Figure 904507DEST_PATH_IMAGE014
=
Figure 536476DEST_PATH_IMAGE016
f表示伪随机函数;K h 表示密钥;
Figure 656879DEST_PATH_IMAGE017
表示规则的第j个内容的第n 个片段。
需要进一步说明的是,上述方法各示例对应的技术特征可以相互组合或替换构成新的技术方案。
本发明还包括一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一示例或多个示例组成形成的所述的基于区块链的加密智能合约检测方法的步骤。
本发明还包括一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一示例或多个示例形成的所述的基于区块链的加密智能合约检测方法的步骤。
与现有技术相比,本发明有益效果是:
1.在一示例中,本发明通过引入的检测节点接收开发者发布的加密智能合约和随机令牌,并接收规则处理节点发布的模糊映射表,能够在不暴露有效负载的情况下,使用随机令牌与模糊映射表执行匹配检测,即在保证加密智能合约隐私性的基础上,实现了对加密智能合约的安全性检测。
2.在一示例中,本发明通过通过引入规则处理节点,建立响应规则与隐藏内容选项的映射关系的模糊映射表,仅使开发者与算力节点能够获取智能合约明文,进而在保证隐私的前提下实现了加密智能合约的安全性检测。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明,此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,在这些附图中使用相同的参考标号来表示相同或相似的部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为智能合约结构示意图;
图2为本发明一示例中的方法流程图;
图3为本发明优选示例的方法流程图;
图4为本发明一示例的系统结构图。
图中:1-开发者、2-算力节点、3-规则处理节点、4-检测节点、5-交易池、6-区块、7-区块链、8-私有链、9-签名验证单元、10-令牌检测单元、11-智能合约、12-存储单元、13-代码单元。
具体实施方式
下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,属于“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方向或位置关系为基于附图所述的方向或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,使用序数词 (例如,“第一和第二”、“第一至第四”等 )是为了对物体进行区分,并不限于该顺序,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,属于“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明提出了一种基于区块链网络的数据训练平台中数据挖掘的高效隐私保护加密智能合约检测方法,该方法采用了轻量级加密操作实现了对加密智能合约内容的安全检测。
其中,区块链网络由许多参与共识的节点构成,拥有数据交易平台的节点,为智能合约开发者提供算力和数据支持,使得智能合约可以正常部署并执行。具体地,区块链是比特币、以太坊等加密货币系统的核心支持技术。区块链本质上是一个去中心化的允许任何人参与的公共分布式账本 (即分布式数据库)。因此,当一个区块链节点出现故障时不会影响到其他节点。此外,整个区块链网络通过区块链节点之间的共识机制 (如工作量证明机制Proof of Power,权益证明机制Proof of Stake) 进行维护,允许每个区块链节点获得数据库的完整副本。因此,区块链系统只能按照严格的共识和规则进行修改。
进一步地,区块链的主要组成包括区块和事务 (交易)。每个区块由区块头和区块体组成,其中区块头中包含了软件/协议的版本号、前一区块的哈希值、Merkle树(梅克尔树)的根哈希值、创建时间戳、工作量证明难度目标以及用于证明工作量的计算参数,通过加密哈希算法和Merkle树结构确保了数据不会被篡改;区块体中包含了所有与区块确认的事务,每个事务都记录了一组特定的操作。
进一步地,以太坊是一个具有开源代码的编程平台,使得开发人员能够基于智能合约构建分布式应用程序。由于共识机制的存在使得以太坊得到了认可,很多人通过购买服务器 (矿工) 运行以太坊代码,这种矿工执行代码的操作称为挖矿,即验证和处理交易。每一个矿工都是一个节点,节点之间存在通信验证,以太坊的任意一个节点都可以是网络的入口和出口,做到了去中心化。具体来说,以太坊可以用于协议编程、行为保证和交易处理,如投票、公司管理、金融交易以及协议签署。与比特币系统相比,以太坊允许程序在区块链上执行。一旦部署了智能合约,以太坊节点就可以去中心化地执行合约。
进一步地,智能合约是一种以信息化方式传播验证的,并可以根据其内容在区块链上自动执行的计算机程序。智能合约的结构如图1所示,一个完整的智能合约11存储在区块链7的某一区块6中,包括用于存储状态和值的存储单元12、用于响应条件的代码单元13。在部署智能合约时,需要预设触发条件和相应的响应规则,相关的状态和值也将记录在已部署的智能合约中。当条件触发时,将执行来自调用节点的相关操作进行响应。只有修改合约状态或值的行为最终会被记录在区块链中,其他行为不会被披露。
进一步地,智能合约运行在本地的以太坊虚拟机EVM上,以太坊虚拟机可以将智能合约代码解释成字节码进行执行。以太坊可以被视为一个交易驱动的状态机,即,当调用智能合约的交易在区块链上发布时,每个矿工都会执行该交易,并确定地从当前状态转移到下一个状态。
为了在加密智能合约存储至区块链之前,保证其隐私性和合法性,本发明提出了一个隐私保护的加密智能合约检测方案。
在一示例中,如图2所示,一种基于区块链的加密智能合约检测方法,该方法以检测节点(DET)作为执行主体,具体包括以下步骤:
根据开发者(DEV)发布的交易信息获取加密智能合约
Figure 154725DEST_PATH_IMAGE018
、随机令牌集合T和 开发者签名Sig DEV ,并从规则处理节点(RP)的私有区块链上获得区块中的交易信息,进而得 到模糊映射表Obm和算力节点签名Sig CP ,模糊映射表Obm用于反映响应规则与隐藏内容选项 的映射关系;其中,检测节点、规则处理节点为不同矿工(服务器),矿工节点相互互联形成 分布式网络。
对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理,若验证成功,根据随机令牌集合T、模糊映射表Obm执行令牌检测操作,若检测通过,将加密智能合约和随机令牌存储至区块链,否则,认为智能合约中包含恶意行为,直接丢弃。
本示例中,通过检测节点接收开发者发布的加密智能合约和随机令牌,并接收规则处理节点发布的模糊映射表,能够在不暴露有效负载的情况下,使用随机令牌与模糊映射表执行匹配检测,即在保证加密智能合约隐私性的基础上,实现了对加密智能合约的安全性检测。
在一示例中,对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理,具体包括:
分别使用开发者的公钥PK DEV 、算力节点的公钥PK CP 对开发者签名Sig DEV 、算力节点签名Sig CP 进行解密处理得到两个哈希值,若两个哈希值相同,继续执行下一步骤;否则,需要在私有区块链上找到一个新的合适的区块。
通过随机令牌集合T、以及哈希函数计算一个哈希值,与交易信息中的哈希值HV比较,若相同,则验证成功,能够进行令牌检测操作;反之,验证失败,需要在规则处理节点的私有区块链上找到一个新的区块。
进一步地,在对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理前还包括:
比较算力节点发布的交易信息transInfo CP 和开发者发布的交易信息transInfo DEV 中的滑动窗口大小L是否相同,如果相同,对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理;否则,需要在私有区块链上找到一个新的合适的区块。
在一示例中,检测节点使用随机令牌集合T和模糊映射表Obm执行检测操作,即执 行多项式时间算法Match(Obm,T 1 ,∙∙∙,
Figure 18776DEST_PATH_IMAGE019
):以模糊映射表Obm和一组由σ个消息生成的随 机令牌集{T 1 ,∙∙∙,
Figure 301990DEST_PATH_IMAGE019
}作为输入,一个多项式时间算法Match输出一组布尔值{
Figure 390032DEST_PATH_IMAGE020
, ∙∙∙,
Figure 125907DEST_PATH_IMAGE021
}。1表示令牌匹配成功;0表示该令牌未发现匹配。具体地,执行令牌检测操作包括以下 子步骤:
A)对每个随机令牌T i 进行分割处理,得到左边部分的随机令牌
Figure 541451DEST_PATH_IMAGE001
和右边部分的 随机令牌
Figure 679171DEST_PATH_IMAGE002
,将按序的T i 的位置信息存入表Table len ;具体地,对于i∈[σ],分割每个T i 获 得
Figure 141377DEST_PATH_IMAGE022
Figure 364548DEST_PATH_IMAGE023
。其中,W i 为第i个明文令牌;K s ,K h ,K c ,K l 构成密钥集K SET ,其中K s 为伪随机函数F的密钥,K h 为伪随机函数f的密钥,K c 为伪哈希函数H的密钥,K l 为 伪随机数生成器G的密钥,K s ,K h ,K c ,K l 用于生成模糊映射表和随机令牌。
B)根据
Figure 85248DEST_PATH_IMAGE003
、开发者生成的密钥确定模糊映射表Obm在位置loc存储的值Obm[loc]; 具体地,计算
Figure 77475DEST_PATH_IMAGE024
,并在Obm中找到loc处存储的值Obm[loc] = (id || p)⊕
Figure 710581DEST_PATH_IMAGE014
,其中
Figure 421048DEST_PATH_IMAGE014
表示由第j个内容的第n个片段产生的伪随机数。
C)对Obm[loc]、
Figure 181325DEST_PATH_IMAGE002
进行异或处理得到id和秘密共享p的拼接(id || p),id为规则 的总编号;
D)维护表Table con ,储存分割得到的id和秘密共享p,并更新表Table con 中秘密共享p;在存储过程中,如果该id在表中已有记录,则令id对应的p与表Table con id对应的值执行异或操作,然后将表Table con id对应的值更新为异或的结果;如果秘密共享恢复成功,则可以在表Table con 中找到总编号为id的规则的一个被隐藏的内容 (即con);同时,维护存储“id - 令牌位置信息”键值对的表Table len ,以使用表Table con 中恢复的con中包含的modCollection验证表Table con 中的长度和位置信息;
E)对于单个规则,总编号id包含规则编号id 1 、规则中内容选项编号id 2 、和内容选项总数id 3 ;当具有相同规则编号id 1 的内容选项数量达到总数id 3 时,并且通过了modCollectioncontent对应的所有修饰选项的集合)所规定的修饰选项的验证后,认为该规则中的所有内容选项都已成功匹配;此时,维护中间表Table act 存储规则编号id 1 作为键,并以con分离的第一秘密共享q作为值,当同样的id 1 到来时,将第一秘密共享q与中间表Table act 中的值进行异或,并将结果更新到中间表Table act 中;
F)若中间表Table act 中恢复出规则集规定的响应操作(如alertlog等,其中alert表示使用选择的报警方法生成一个警报;log表示记录),则认为智能合约包括恶意信息,直接丢弃;反之,认为智能合约合法,将加密智能合约、随机令牌集合T和哈希值HV存储至区块链上。
在一示例中,本发明方法以开发者作为执行主体时,包括以下步骤:
将智能合约进行加密处理,并将密钥共享至算力节点,同时对智能合约的明文代码进行处理得到用于检测的随机令牌,具体通过以K s 为密钥的伪随机函数F、K h 为密钥的伪随机函数f计算得到随机令牌。
将加密智能合约和随机令牌写入交易信息并存储至交易池。
具体地,开发者即用户使用算力节点的公钥对
Figure 231321DEST_PATH_IMAGE004
、密钥集
Figure 300908DEST_PATH_IMAGE005
和时间戳ts对 智能合约进行加密,并将加密信息
Figure 29829DEST_PATH_IMAGE025
传输至算力节点。
进一步地,为了实现对加密智能合约的检测,开发者除了需要生成传统的加密信 息
Figure 92332DEST_PATH_IMAGE026
外,还需要生成一个随机的令牌集合T,其中M表示智能合约的明文。首先,为了 得到T,开发者首先执行一个基于滑动窗口的令牌化算法,将整个智能合约M划分为一个令 牌集合W={W 1 ,∙∙∙,
Figure 793572DEST_PATH_IMAGE027
},具体计算公式为:
W={W 1 ,∙∙∙,
Figure 34060DEST_PATH_IMAGE028
}=Token(M)
式中,Token是基于滑动窗口的令牌化算法,每个令牌W i 的长度与滑动窗口长度相同且均为L。然后,开发者利用伪随机函数和密钥生成随机令牌集合T进行安全检测。
具体地,对于每个i∈[σ],开发者通过使用伪随机函数F、随机函数f,以及密钥K s K h 计算得到随机令牌:
T i =F(K s ,W i )|| f(K h ,W i
在检测时,除了需要匹配规则的内容选项外,还需要满足内容选项对应的修饰选项中的相应要求。由于明文令牌集W是通过基于滑动窗口的令牌化算法得到的,所以明文令牌的长度信息是确定的。此外,只要W中令牌按照处理顺序排列,便可确定令牌首字符在完整明文中的位置信息。对于每个i∈[σ],通过下式进行处理:
HV=Hash(∙∙∙Hash(Hash(T 1 ),T 2 )∙∙∙,
Figure 453540DEST_PATH_IMAGE029
式中Hash是一个哈希函数,计算得到用于验证令牌顺序的哈希值HV
进一步地,开发者计算一个交易信息transInfo DEV ,具体计算公式为:
Figure 564409DEST_PATH_IMAGE030
式中,tid DEV 表示交易标识;addr DEV 表示开发者 (DEV) 的地址;addr dest 表示目的 地址;
Figure 385734DEST_PATH_IMAGE031
表示开发者签名,H为哈希函数的简写;K AES 表示加密算法AES(高级加密标准的对称密钥;K SET 表示密钥集;ts表示时间戳;id s 表示 作为规则处理者(RP)的矿工。开发者将交易信息transInfo DEV 放入交易池中,以进行后续的 令牌检测操作。
在一示例中,方法以算力节点作为执行主体时,还包括以下步骤:
选择用于进行规则处理的矿工作为规则处理节点;具体地,在开发者和算力节点 确定密钥后,算力节点需要从一组矿工节点Miner ={ miner 1 ,∙∙∙,
Figure 797124DEST_PATH_IMAGE032
}中选择 一个矿工作为规则处理者来处理原始规则集,τ表示矿工数量。算力节点需要计算待选择矿 工的编号,具体计算公式为:
id s =H(K AES ||K SET ||ts)mod τ
其中,id s 表示作为规则处理者(RP)的矿工的编号;mod为求余计算符。然后算力节 点用开发者的公钥PK DEV id s 进行加密得到作为规则处理者的加密矿工编号
Figure 703900DEST_PATH_IMAGE033
,并将
Figure 108206DEST_PATH_IMAGE034
发送给开发者以进行通知。
进一步地,算力节点还用于将关键信息写入交易信息并存至交易池,关键信息包括哈希值、密钥、算力节点签名。具体地,为了后续的规则处理阶段的开展,需要将一些重要信息作为交易信息放入交易池中,与规则处理节点共享。算力节点计算得到的交易信息的公式为:
Figure 987300DEST_PATH_IMAGE035
式中,tid CP 表示交易标识;addr CP 、addr RP 分别为算力节点和规则处理节点的地址;PK RP 是规则处理节点的公钥;
Figure 366329DEST_PATH_IMAGE036
表示算力节点签名,L 是滑动窗口大小,其获取过程如下:
由于规则处理节点拥有原始规则集,它根据所有规则中最短的 “content”选项推导出滑动窗口应设置的大小L(L≤len(content min ))len(content min )为规则集R中全部规则的所有内容选项中最短内容选项的长度。之后,通过公钥加密将L分别发送给开发者和算力节点。
从威胁模型来看,开发者可能是恶意的,并企图使用伪造的随机令牌来成功通过令牌检测。因此,在执行智能合约代码进行数据挖掘前,算力节点需要检测来自开发者的M与T的一致性。在一示例中,方法以算力节点作为执行主体时,还用于对智能合约的一致性进行验证,包括以下子步骤:
接收检测节点发送的包含加密智能合约地址的交易信息后,从区块链上获取智能合约密文、随机令牌T以及哈希值HV,并使用密钥K AES 解密得到智能合约明文M
通过随机令牌化操作生成新的随机令牌,并与来自开发者的随机令牌进行对比, 验证智能合约的一致性,若不一致,丢弃对应智能合约。具体地,使用基于滑动窗口的令牌 化算法Token以及随机令牌生成算法来获得随机令牌集合T ',并使用哈希函数对T ' 进行 计算得到HV '。如果T ' = T,且HV ' = HV,则认为数据流
Figure 760401DEST_PATH_IMAGE037
T一致;否则,算力节 点认为开发者存在恶意篡改行为,不予执行并丢弃智能合约。
在一示例中,方法以算力节点作为执行主体时,还包括以下步骤:
接收开发者发送的基于公钥对
Figure 204283DEST_PATH_IMAGE004
、密钥集
Figure 200DEST_PATH_IMAGE005
和时间戳ts进行加密的加密信 息
Figure 487814DEST_PATH_IMAGE006
采用私钥SK CP 对加密信息
Figure 821712DEST_PATH_IMAGE007
进行解密,得到
Figure 115290DEST_PATH_IMAGE004
Figure 968976DEST_PATH_IMAGE005
Figure 893070DEST_PATH_IMAGE008
Figure 792893DEST_PATH_IMAGE004
为种子,采用与开发者使用的相同伪随机数生成器生成一个新的密钥集, 若新的密钥集与开发者通过相同伪随机数生成器得到的密钥集相同,不执行任何操作;反 之,认为开发者不诚实,算力节点立即停止与开发者的通信。
在一示例中,方法以规则处理节点作为执行主体时,包括以下步骤:
计算并构建模糊映射表并存储至自己的私有链上,并将包括模糊映射表地址的交 易信息发布至交易池中。在此阶段,规则处理节点执行规则处理策略。为了提高效率和可扩 展性,提出了一种高性能的模糊映射表生成算法。为了更接近实际的应用场景,选择了开源 的Snort规则集R = {
Figure 575648DEST_PATH_IMAGE038
, ∙∙∙,
Figure 346158DEST_PATH_IMAGE039
}作为检测规则。具体地,使用规则中的内容选项 (即 规则中“content”关键字对应的内容) 来匹配待检测的明文。与先前工作的加密索引设计 (将加密规则头与加密规则选项存入字典中) 不同,本申请所提出的模糊映射表通过只存 储加密片段来缩小所需的存储空间,同时仍能够保持检测的正确性,具体以密钥
Figure 441153DEST_PATH_IMAGE040
和一 个规则集R作为输入,一个多项式时间算法ObRuleGen输出一个模糊映射表Obm,具体包括以 下步骤:
a)根据算力节点发布的交易信息获取密钥;
b)对规则集中规则R i 进行预处理;
c)对内容进行分割处理,得到包含等长的第一片段集合Seg j
d)基于第一片段集合Seg j 对内容进行隐藏处理;
e)对规则响应操作进行隐藏处理,生成τ个秘密共享
Figure 31534DEST_PATH_IMAGE009
j为规则的内容的序 号,n为片段的序号;
f)拼接字符串
Figure 119445DEST_PATH_IMAGE010
和秘密共享
Figure 478882DEST_PATH_IMAGE011
, 得到拼接结果
Figure 744778DEST_PATH_IMAGE012
,其中,i∈[δ],n [len(seg j )],j∈[ω]。
g)将
Figure 88035DEST_PATH_IMAGE013
Figure 949943DEST_PATH_IMAGE014
的异或结果作为映射表的值插入模糊映射表Obm的
Figure 429465DEST_PATH_IMAGE015
位置,
Figure 866263DEST_PATH_IMAGE041
=
Figure 431237DEST_PATH_IMAGE016
Figure 860950DEST_PATH_IMAGE042
表示规则的第j个内容的第n个片段。
具体地,步骤a)中,规则处理节点得到交易信息transInfo CP 后,使用自己的私钥SK RP 解密交易信息中的
Figure 194979DEST_PATH_IMAGE043
,得到密钥集合K SET ,并保存算力节点签名Sig CP
具体地,步骤b)中,对于δ个规则每个规则R i i∈[δ],提取内容选项及其对应的修饰选项,并获取“{content : modCollection}”键值对,其中modCollection为该content对应的所有修饰选项的集合 (或拼接)。同时,每个规则都有一个包含安全操作的规则头,规则头中定义了内容选项匹配后的响应操作action。首先根据规则本身结构对所有规则进行预处理,对任意i∈[δ],每个规则R i 表示为:
R i ={content 1 :modCollection 1 ,∙∙∙,content ω :modCollection ω ,action i }={CM i , action i }
上式中,规则R i 包含ω个用于匹配检测的内容选项,为方便描述定义R i 中的键值对集合为CM i
具体地,步骤c)中,由于内容选项长度的不同,会导致智能合约明文处理困难。为了统一长度以便于匹配,使用滑动窗口算法对明文和规则内容选项进行处理,其中滑动窗口大小设定为L。然后,一个内容-修饰键值对将被进一步处理为“{Seg : modCollection}”,其中Segcontent经过滑动窗口分割得到的片段集合:
Figure 599416DEST_PATH_IMAGE044
式中,使用基于滑动窗口的令牌化算法Token对规则中第j个内容进行分割,得到包含τ个元素的片段集合。对任意i∈[δ],规则R i 进一步处理为:
R i ={seg 1 :modCollection 1 ,∙∙∙,seg ω :modCollection ω ,action i }
通过上述操作,对每个内容选项都进行了分割,得到包含等长片段的集合。此时,由于内容选项被分割,这就要求所有片段都匹配时才能说明匹配成功,然而不同content分割得到的不同片段集合中可能存在相同的片段,因此对内容选项的隐藏和恢复进行了设计。
具体地,步骤d)中,首先,为每个规则定义一个编码,用于唯一地标识规则并方便后续操作。然后,通过哈希函数H和密钥K c 处理初始的内容选项,然后将该哈希值与其相应的修饰选项集合拼接,得到待隐藏的规则内容。对于规则的第j个内容选项content j con j j∈[ω],进行如下计算:
con j =H(K c , content j )||modCollection j
式中modCollection j 是经过填充的修饰选项 (末尾用0填充),目的是使所有con j 拥有相同长度。然后,考虑使用片段集合Seg j 中的所有片段对con i 进行隐藏。为了实现高效、 安全的隐藏和恢复操作,采用了一种高效的秘密共享方案。具体来说,给定一个带有τ个段 的内容选项content j ,通过该内容选项计算得到的con j 将被视为一个秘密。然后生成τ−1个 与con j 相同比特的随机字符串
Figure 651685DEST_PATH_IMAGE045
,并且
Figure 635822DEST_PATH_IMAGE046
定义
Figure 572160DEST_PATH_IMAGE047
为秘密共享集合,其中每个元素都是关于con j 的秘密共享。只有获得τ 个秘密共享后,才能执行还原操作,有以下计算公式:
con j = p 1 ∙∙∙p τ-1 p τ
通过隐藏每个内容选项及其修饰选项,对任意i∈[δ],规则将进一步定义为下式所示的形式:
Figure 350761DEST_PATH_IMAGE048
令每个内容选项对应的秘密共享数与经过滑动窗口算法生成的片段数一致。id ij 表示一个与规则和内容选项相关的字符串,有
Figure 890326DEST_PATH_IMAGE049
,其中
Figure 412575DEST_PATH_IMAGE050
表示规则编号,
Figure 970464DEST_PATH_IMAGE051
表示规则中内容选项编号,
Figure 919965DEST_PATH_IMAGE052
表示规则中内容选项总数。例如,一个规则的总编号为 3,它有10个内容选项,则该规则的第5个内容选项可以表示为
Figure 946827DEST_PATH_IMAGE053
= 0003||005||010。需要 说明的是,
Figure 741608DEST_PATH_IMAGE051
Figure 655468DEST_PATH_IMAGE054
与真实规则中内容选项的信息对应,而
Figure 41450DEST_PATH_IMAGE050
则是在规则处理过程中按 规则先后顺序进行的自动编号。
具体地,步骤e)中,当一条规则的所有内容选项都匹配时,表示明文中包含该规则 规定的内容,认为存在入侵行为。之后,便可执行在该规则的规则头中指定的响应操作,即 “action”。因此,本发明设计的目标是:只有当一个规则中的所有相关内容选项都被匹配 时,响应操作才会被恢复;否则,认为与规则不匹配,且不会透露任何与响应操作有关信息。 具体来说,生成ω-1个 (ω为一条规则中内容选项的数量) 随机字符串(第一秘密共享数 据序列)
Figure 290029DEST_PATH_IMAGE055
,其中每个字符串的长度与规则响应操作action i i∈[δ]所对应 字符串的长度相同。令
Figure 154080DEST_PATH_IMAGE056
,得到第一秘密共享集合
Figure 686561DEST_PATH_IMAGE057
。当获取到ω个第一秘密共享后,可通过下式进行还原:
Figure 977865DEST_PATH_IMAGE058
q j 放入con j j∈[ω]中。此时,只有当一个规则的所有con j 都被恢复时,才可以用得到秘密共享恢复响应操action i ,以处理可能存在安全问题的加密数据流,有以下计算公式:
con j= q j ||H(K c , content j )|| modCollectionj, j∈[ω]
最后,对任意i∈[δ],每个规则将被处理为下式所示形式:
Figure 713740DEST_PATH_IMAGE059
此时,响应操作action i 被隐藏。
具体地,步骤g)中,
Figure 381482DEST_PATH_IMAGE060
通过伪随机函数和片段
Figure 267005DEST_PATH_IMAGE061
计算得到,即
Figure 729210DEST_PATH_IMAGE062
。为了解决可能出现的碰撞,在映射表的每个位置都构建了可变 长度的桶。
将上述示例进行组合,得到本发明优选检测方法,如图3所示,包括以下步骤:
S1:开发者将智能合约进行加密处理,并将密钥共享至算力节点,同时对智能合约的明文代码进行处理得到用于检测的随机令牌,并将加密智能合约和随机令牌写入交易信息并存储至交易池;
S2:算力节点对密钥进行验证;具体地,算力节点接收开发者发送的基于公钥对
Figure 749119DEST_PATH_IMAGE004
、密钥集
Figure 954972DEST_PATH_IMAGE063
和时间戳ts进行加密的加密信息
Figure 399729DEST_PATH_IMAGE007
;采用私钥SK CP 对加密信息
Figure 95152DEST_PATH_IMAGE006
进行解密,得到
Figure 8882DEST_PATH_IMAGE004
Figure 752847DEST_PATH_IMAGE005
Figure 615892DEST_PATH_IMAGE064
;以
Figure 216637DEST_PATH_IMAGE004
为种 子,采用与开发者使用的相同伪随机数生成器生成一个新的密钥集,若新的密钥集与开发 者通过相同伪随机数生成器得到的密钥集相同,不执行任何操作;反之,算力节点停止与开 发者的通信。
S3:算力节点选择用于进行规则处理的矿工作为规则处理节点,并将关键信息写入交易信息并存至交易池,关键信息包括哈希值、密钥、算力节点签名;
S4:规则处理节点计算并构建模糊映射表并存储至自己的私有链上,并将包括模糊映射表地址的交易信息发布至交易池中;
S5:检测节点根据开发者发布的交易信息获取加密智能合约、随机令牌集合T和开发者签名Sig DEV ,并根据规则处理节点发布的交易信息获得模糊映射表Obm和算力节点签名Sig CP ;对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理,若验证成功,根据随机令牌集合T、模糊映射表Obm执行令牌检测操作,若检测通过,将加密智能合约和随机令牌存储至区块链,否则,认为智能合约中包含恶意行为,直接丢弃;
S6:算力节点接收检测节点发送的包含加密智能合约地址的交易信息后,从区块链上获取智能合约密文和随机令牌,并基于开发者共享的密钥对加密智能合约进行解密,获取智能合约明文;通过随机令牌化操作生成新的随机令牌,并与来自开发者的随机令牌进行对比,验证智能合约的一致性,若不一致,丢弃对应智能合约。
本发明还包括一种基于区块链的加密智能合约检测系统,如图4所示,系统包括开发者节点(开发者1)、算力节点2、规则处理节点3以及检测节点4,开发者节点与算力节点2、检测节点4互联,算力节点2与开发者1、规则处理节点3、检测节点4互联,且规则处理节点3、检测节点4互联。
其中,开发者节点用于将智能合约进行加密处理,并将密钥共享至算力节点2,同时对智能合约的明文代码进行处理得到用于检测的随机令牌,并将加密智能合约和随机令牌写入交易信息并存储至交易池5。
算力节点2选择用于进行规则处理的矿工作为规则处理节点3,并将关键信息写入交易信息并存至交易池5,关键信息包括哈希值、密钥、算力节点签名。
规则处理节点3用于计算并构建模糊映射表并存储至包含若干区块6的的私有链8上,同时将包括模糊映射表地址的交易信息发布至交易池5中。
检测节点4包括签名验证单元9和令牌检测单元10,检测节点4根据开发者1发布的交易信息获取加密智能合约、随机令牌集合T和开发者签名Sig DEV ,并根据规则处理节点3发布的交易信息获得模糊映射表Obm和算力节点签名Sig CP 。其中,签名验证单元9用于对开发者签名Sig DEV 、算力节点签名Sig CP 进行验证处理,若验证成功,令牌检测单元10根据随机令牌集合T、模糊映射表Obm执行令牌检测操作,若检测通过,将加密智能合约和随机令牌存储至包含若干区块6的区块链7,否则,认为智能合约中包含恶意行为,直接丢弃。
在一示例中,算力节点还用于对密钥进行验证;具体地,算力节点接收开发者发送 的基于公钥对
Figure 414400DEST_PATH_IMAGE004
、密钥集
Figure 962056DEST_PATH_IMAGE063
和时间戳ts进行加密的加密信息
Figure 928875DEST_PATH_IMAGE007
;采用私钥SK CP 对加密信息
Figure 418631DEST_PATH_IMAGE007
进行解密, 得到
Figure 838111DEST_PATH_IMAGE004
Figure 923879DEST_PATH_IMAGE005
Figure 745205DEST_PATH_IMAGE064
;以
Figure 181695DEST_PATH_IMAGE004
为种子,采用与开发者使用的相同伪随机数生成器生成一 个新的密钥集,若新的密钥集与开发者通过相同伪随机数生成器得到的密钥集相同,不执 行任何操作;反之,算力节点停止与开发者的通信。
在一示例中,算力节点在接收检测节点发送的包含加密智能合约地址的交易信息后,从区块链上获取智能合约密文和随机令牌,并基于开发者共享的密钥对加密智能合约进行解密,获取智能合约明文;通过随机令牌化操作生成新的随机令牌,并与来自开发者的随机令牌进行对比,验证智能合约的一致性,若不一致,丢弃对应智能合约。
本申请还包括一种存储介质,与上述任一示例或多个示例组成的基于区块链的加密智能合约检测方法具有相同的发明构思,其上存储有计算机指令,计算机指令运行时执行上述基于区块链的加密智能合约检测方法的步骤。
基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还包括一种终端,与上述任一示例或多个示例组成的基于区块链的加密智能合约检测方法具有相同的发明构思,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行上述基于区块链的加密智能合约检测方法的步骤。处理器可以是单核或者多核中央处理单元或者特定的集成电路,或者配置成实施本发明的一个或者多个集成电路。
在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上具体实施方式是对本发明的详细说明,不能认定本发明的具体实施方式只局限于这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演和替代,都应当视为属于本发明的保护范围。

Claims (9)

1.基于区块链的加密智能合约检测方法,其特征在于:所述方法以检测节点作为执行主体时,包括以下步骤:
根据开发者发布的交易信息获取加密智能合约、随机令牌集合T和开发者签名SigDEV,并根据规则处理节点发布的交易信息获得模糊映射表Obm和算力节点签名SigCP,模糊映射表Obm用于反映响应规则与隐藏内容选项的映射关系;
对开发者签名SigDEV、算力节点签名SigCP进行验证处理,若验证成功,根据随机令牌集合T、模糊映射表Obm执行令牌检测操作,若检测通过,将加密智能合约和随机令牌存储至区块链,否则,认为智能合约中包含恶意行为,直接丢弃;
模糊映射表的构建包括以下子步骤:
根据算力节点发布的交易信息获取密钥;
对规则集中的规则Ri进行预处理;
对内容进行分割处理,得到包含等长的第一片段集合Segj
基于第一片段集合Segj对内容进行隐藏处理;
对规则响应操作进行隐藏处理,生成τ个秘密共享
Figure FDA0003842389300000011
拼接字符串
Figure FDA0003842389300000012
和秘密共享
Figure FDA0003842389300000013
得到拼接结果
Figure FDA0003842389300000014
Figure FDA0003842389300000015
Figure FDA0003842389300000016
的异或结果作为映射表的值插入模糊映射表Obm的
Figure FDA0003842389300000017
位置,
Figure FDA0003842389300000018
Figure FDA0003842389300000019
表示由第j个内容的第n个片段产生的伪随机数,f表示伪随机函数;Kh表示密钥;
Figure FDA00038423893000000110
表示规则的第j个内容的第n个片段。
2.根据权利要求1所述的基于区块链的加密智能合约检测方法,其特征在于:所述对开发者签名SigDEV、算力节点签名SigCP进行验证处理,具体包括以下子步骤:
分别对开发者签名SigDEV、算力节点签名SigCP进行解密处理得到两个哈希值,若两个哈希值相同,通过随机令牌集合T、以及哈希函数计算一个哈希值,与交易信息中的哈希值HV比较,若相同,则验证成功;反之,验证失败。
3.根据权利要求1所述的基于区块链的加密智能合约检测方法,其特征在于:所述执行令牌检测操作,具体包括以下子步骤:
对每个随机令牌Ti进行分割,得到左边部分的随机令牌Ti L和右边部分的随机令牌
Figure FDA0003842389300000021
按序的Ti的位置信息存入表Tablelen;
根据
Figure FDA0003842389300000022
开发者生成的密钥确定模糊映射表Obm在位置loc存储的值Obm[loc];
对Obm[loc]、
Figure FDA0003842389300000023
进行异或处理得到id和秘密共享p的拼接,id为规则的总编号;
维护表Tablecon,储存分割得到的id和秘密共享p,并更新表Tablecon中秘密共享p;在存储过程中,在表Tablelen中确定总编号为id的规则的一个被隐藏的内容con,通过恢复的内容con验证表Tablecon中的长度和位置信息;同时,维护存储“id-令牌位置信息”键值对的表Tablelen;
当所有内容选项都成功验证,维护中间表Tableact存储规则编号id1作为键,并以con分离的第一秘密共享q作为值,当同样的id1到来时,将第一秘密共享q与中间表Tableact中的值进行异或,并将结果更新到中间表Tableact中;
若中间表Tableact中恢复出规则集规定的响应操作,则认为智能合约包括恶意信息,直接丢弃;反之,认为智能合约合法,将加密智能合约、随机令牌集合T和哈希值HV存储至区块链上。
4.根据权利要求1所述的基于区块链的加密智能合约检测方法,其特征在于:所述方法以开发者作为执行主体时,包括以下步骤:
将智能合约进行加密处理,并将密钥共享至算力节点,同时对智能合约的明文代码进行处理,得到用于检测的随机令牌;
将加密智能合约和随机令牌写入交易信息并存储至交易池。
5.根据权利要求1所述的基于区块链的加密智能合约检测方法,其特征在于:所述方法以算力节点作为执行主体时,包括以下步骤:
选择用于进行规则处理的矿工作为规则处理节点;和/或,
将关键信息写入交易信息并存至交易池,关键信息包括哈希值、密钥、算力节点签名。
6.根据权利要求1所述的基于区块链的加密智能合约检测方法,其特征在于:所述方法以算力节点作为执行主体时,还包括以下步骤:
接收检测节点发送的包含加密智能合约地址的交易信息后,从区块链上获取智能合约密文和随机令牌,并基于开发者共享的密钥对加密智能合约进行解密,获取智能合约明文;
通过随机令牌化操作生成新的随机令牌,并与来自开发者的随机令牌进行对比,验证智能合约的一致性,若不一致,丢弃对应智能合约。
7.根据权利要求1所述的基于区块链的加密智能合约检测方法,其特征在于:所述方法以算力节点作为执行主体时,还包括以下步骤:
接收开发者发送的基于公钥对K'AES、密钥集K'SET和时间戳ts进行加密的加密信息
Figure FDA0003842389300000031
采用私钥SKCP对加密信息
Figure FDA0003842389300000032
进行解密,得到K'AES,K'SET和ts;
以K'AES为种子,采用与开发者使用的相同伪随机数生成器生成一个新的密钥集,若新的密钥集与开发者通过相同伪随机数生成器得到的密钥集相同,不执行任何操作;反之,算力节点停止与开发者的通信。
8.根据权利要求1所述的基于区块链的加密智能合约检测方法,其特征在于:所述方法以规则处理节点作为执行主体时,包括以下步骤:
计算并构建模糊映射表并存储至自己的私有链上,并将包括模糊映射表地址的交易信息发布至交易池中。
9.一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于:所述处理器运行所述计算机指令时执行权利要求1-8任意一项所述的基于区块链的加密智能合约检测方法的步骤。
CN202210922017.7A 2022-08-02 2022-08-02 基于区块链的加密智能合约检测方法及终端 Active CN115001715B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211266805.1A CN115733659B (zh) 2022-08-02 2022-08-02 基于区块链的加密智能合约检测系统
CN202210922017.7A CN115001715B (zh) 2022-08-02 2022-08-02 基于区块链的加密智能合约检测方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210922017.7A CN115001715B (zh) 2022-08-02 2022-08-02 基于区块链的加密智能合约检测方法及终端

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211266805.1A Division CN115733659B (zh) 2022-08-02 2022-08-02 基于区块链的加密智能合约检测系统

Publications (2)

Publication Number Publication Date
CN115001715A CN115001715A (zh) 2022-09-02
CN115001715B true CN115001715B (zh) 2022-10-21

Family

ID=83021185

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210922017.7A Active CN115001715B (zh) 2022-08-02 2022-08-02 基于区块链的加密智能合约检测方法及终端
CN202211266805.1A Active CN115733659B (zh) 2022-08-02 2022-08-02 基于区块链的加密智能合约检测系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211266805.1A Active CN115733659B (zh) 2022-08-02 2022-08-02 基于区块链的加密智能合约检测系统

Country Status (1)

Country Link
CN (2) CN115001715B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117014234B (zh) * 2023-10-07 2023-12-08 成都创一博通科技有限公司 基于区块链的信息加密传输方法
CN117478706B (zh) * 2023-12-27 2024-03-08 西安捷成优禾智能科技有限公司 一种基于区块链的机加工平台数据共享系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111447073A (zh) * 2020-03-31 2020-07-24 河北大学 基于区块链与零知识证明的身份管理与认证系统及方法
CN114741711A (zh) * 2022-04-06 2022-07-12 石家庄铁道大学 基于区块链的多关键字可搜索加密方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10637665B1 (en) * 2016-07-29 2020-04-28 Workday, Inc. Blockchain-based digital identity management (DIM) system
US10521604B2 (en) * 2017-03-17 2019-12-31 Labyrinth Research Llc Unified control of privacy-impacting devices
US10764031B2 (en) * 2017-12-07 2020-09-01 International Business Machines Corporation Blockchain system for pattern recognition
FR3079322B1 (fr) * 2018-03-26 2021-07-02 Commissariat Energie Atomique Methode et systeme de gestion d'acces a des donnees personnelles au moyen d'un contrat intelligent
CN110033368B (zh) * 2018-11-30 2020-07-07 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法
EP3664399B1 (en) * 2018-12-03 2021-06-23 Bildosund SL A computer-implemented method, a system, and computer programs for digital files management and preservation in digital licenses
CN109741182B (zh) * 2018-12-29 2021-08-03 杭州趣链科技有限公司 一种基于区块链令牌颁发的安全数据交易方法
CN111490968A (zh) * 2019-01-29 2020-08-04 上海汉澄电子设备有限公司 一种基于区块链技术的联盟多节点网络身份认证方法
US11410168B2 (en) * 2019-04-03 2022-08-09 Acronis International Gmbh Method for user management for blockchain-based operations
US11252166B2 (en) * 2019-07-31 2022-02-15 Advanced New Technologies Co., Ltd. Providing data authorization based on blockchain
US11303448B2 (en) * 2019-08-26 2022-04-12 Accenture Global Solutions Limited Decentralized federated learning system
CN111050317B (zh) * 2019-12-07 2022-08-02 江西理工大学 一种基于联盟区块链的智能交通数据安全共享方法
CN111464980B (zh) * 2020-04-08 2023-04-07 南通大学 一种车联网环境下基于区块链的电子取证装置及取证方法
CN111797431B (zh) * 2020-07-07 2023-04-28 电子科技大学 一种基于对称密钥体制的加密数据异常检测方法与系统
CN112202563A (zh) * 2020-09-09 2021-01-08 毛泽龙 基于区块链的安全交易系统及方法
CN112100667B (zh) * 2020-09-24 2022-09-20 南京邮电大学 一种基于新型区块链结构的慈善机构监督管理方法
CN112016114B (zh) * 2020-10-31 2021-03-16 腾讯科技(深圳)有限公司 基于加密货币的智能合约生成方法、相关设备及存储介质
CN112507334B (zh) * 2021-02-02 2021-06-04 布比(北京)网络技术有限公司 违规访问检测方法,装置,系统,电子设备及存储介质
CN112801664B (zh) * 2021-03-17 2021-12-28 农夫铺子发展集团有限公司 基于区块链的智能合约供应链可信服务方法
CN113726733B (zh) * 2021-07-19 2022-07-22 东南大学 一种基于可信执行环境的加密智能合约隐私保护方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111447073A (zh) * 2020-03-31 2020-07-24 河北大学 基于区块链与零知识证明的身份管理与认证系统及方法
CN114741711A (zh) * 2022-04-06 2022-07-12 石家庄铁道大学 基于区块链的多关键字可搜索加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
区块链技术及应用;郭学沛等;《信息安全研究》;20180605(第06期);全文 *

Also Published As

Publication number Publication date
CN115733659A (zh) 2023-03-03
CN115001715A (zh) 2022-09-02
CN115733659B (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
Bhutta et al. A survey on blockchain technology: Evolution, architecture and security
EP3449452B1 (en) Implementing logic gate functionality using a blockchain
CN111914027B (zh) 一种区块链交易关键字可搜索加密方法及系统
ES2957843T3 (es) Verificación de procesos de datos en una red de recursos informáticos
CN115001715B (zh) 基于区块链的加密智能合约检测方法及终端
Li et al. Blockchain-based transparent integrity auditing and encrypted deduplication for cloud storage
CN109547218B (zh) 一种改进bip协议的联盟链节点秘钥分配及备份系统
CN113435888B (zh) 一种账户数据处理方法、装置、设备及存储介质
CN110750329B (zh) 基于fpga实现虚拟机运算的方法及装置
US11676111B1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
JP6911231B1 (ja) デジタル資産データパケットの信頼性検証システム
CN108199847A (zh) 数字安全处理方法、计算机设备及存储介质
Sathya et al. A comprehensive study of blockchain services: future of cryptography
CN111475690B (zh) 字符串的匹配方法和装置、数据检测方法、服务器
US11856095B2 (en) Apparatus and methods for validating user data by using cryptography
JP2002529778A (ja) 共有無作為性の分散暗号化への組み込み
Zhang et al. Formal analysis of QUIC handshake protocol using ProVerif
CN114143312A (zh) 基于区块链的边缘计算终端认证方法、系统及设备
Chen et al. Privacy-preserving anomaly detection of encrypted smart contract for blockchain-based data trading
CN109660344A (zh) 基于非对称密钥池路由装置的抗量子计算区块链交易方法和系统
CN113362065A (zh) 一种基于分散式私钥的在线签名交易实现方法
Krasnoselskii et al. Distributed random number generator on Hedera Hashgraph
HamithaNasrin et al. A Review on Implementation Techniques of Blockchain enabled Smart Contract for Document Verification
Soman et al. Secure storage and sharing of visitor images generated by smart entrance on public cloud
Punitha et al. Secured Framework with a Hash Function-Enabled Keyword Search in Cloud Storage Services

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant