CN109067759B - 一种智能合约调用单点执行*** - Google Patents
一种智能合约调用单点执行*** Download PDFInfo
- Publication number
- CN109067759B CN109067759B CN201810978754.2A CN201810978754A CN109067759B CN 109067759 B CN109067759 B CN 109067759B CN 201810978754 A CN201810978754 A CN 201810978754A CN 109067759 B CN109067759 B CN 109067759B
- Authority
- CN
- China
- Prior art keywords
- contract
- execution result
- contract calling
- calling
- execution
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明应用于包括多个节点以及虚拟机的区块链网络,提供了一种智能合约调用单点执行***,所述***包括合约调用节点,用于生成并广播合约调用;多个合约调用执行节点;一个合约调用单点执行节点,用于执行所述合约调用,并广播合约调用执行结果;挖矿节点,用于将所述合约调用执行结果打包生成区块,并广播区块以及多个区块同步节点,用于同步区块。本发明实施例通过在合约调用中指定合约执行地址,保证了合约调用第一时间只能被单节点执行,有效地解决了现有技术中存在多个节点竞争执行合约调用打包执行结果但是只采取单个节点的结果从而导致能源浪费的技术问题。同时在打包以及同步的过程中加入了私钥签名验证确保了执行结果的合法性。
Description
技术领域
本发明涉及区块链领域,特别是涉及一种智能合约调用单点执行***。
背景技术
当前,随着区块链技术的不断发展与流行,智能合约作为区块链的一项重要技术也逐渐被更多的人所熟知。然而随着越来越多的人加入到区块链网络中来,区块链网络规模越来越大,现有的智能合约调用执行方法就存在着合约全网执行导致的资源浪费问题。
业界当前设计的智能合约调用执行都采用了全网打包节点都执行的模式,也就是说如果这个区块链网络有100个节点参与竞争打包,则100个节点都会执行同样的合约调用,但是最终只会采取一个节点的执行结果,这样就造成了能源的巨大浪费,而随着区块链网络规模的扩大,会有更多的节点执行同样的合约调用,能源浪费也会更加严重。
可见现有的区块链智能合约调用执行模式中,存在着区块链上的节点都执行相同的合约调用,但只采取一个节点的执行结果,导致了极大的能源浪费的技术问题,而且随着区块链网络规模的扩大,能源浪费的技术问题也会越来越严重。
发明内容
本发明实施例提供一种智能合约调用单点执行***,旨在解决现有的区块链智能合约调用执行模式中存在的因多节点竞争执行相同的合约调用而导致能源浪费的技术问题。
本发明实施例提供一种智能合约调用单点执行***,所述智能合约调用单点执行***包括:
合约调用节点,用于根据用户合约调用请求生成合约调用并进行全网广播,所述合约调用中指定有合约指定地址,所述合约指定地址是根据合约创建者地址公钥以及合约内容生成的;
多个合约调用执行节点,用于接收合约调用节点广播的合约调用,进行合约调用执行权限验证并确定合约调用单点执行节点;
合约调用单点执行节点,用于将接收到的合约调用传输给所述虚拟机执行合约调用,并接收所述虚拟机返回的合约调用执行结果,根据所述返回的合约调用执行结果创建第一合约调用执行结果并使用私钥签名,并将所述第一合约调用执行结果进行全网广播;
挖矿节点,用于接收合约调用节点广播的合约调用以及合约调用单点执行节点广播的第一合约调用执行结果,进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一合约调用执行结果非法,丢弃所述第一合约调用执行结果,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一合约调用执行结果合法,并将所述第一合约调用执行结果打包生成第一区块,将所述第一区块进行全网广播;以及
多个区块同步节点,用于接收合约调用节点广播的合约调用以及挖矿节点广播的第一区块,获取所述第一区块中含有的第一合约调用执行结果,并对所述第一合约调用执行结果再次进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一区块非法,丢弃所述第一区块,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一区块合法,并同步第一区块。
本发明实施例提供的一种智能合约调用单点执行***通过在合约调用中指定有根据合约创建者地址公钥生成的合约执行地址,使得其他节点需要通过合约调用执行权限验证才可以执行该合约调用,而合约创建者地址公钥与唯一的节点地址私钥相配,因此保证了只存在唯一节点能够通过合约调用执行权限验证,从而避免了多个节点竞争执行该合约调用而导致能源的浪费。而在合约调用单点执行节点将合约调用执行结果进行广播时还加入了该节点地址私钥签名,提高了合约调用执行结果的安全性,降低了可能存在的被他人修改的风险。挖矿节点在进行合约调用执行结果验证以及合约调用执行结果私钥签名验证时,能够判断该合约调用执行结果是否存在合约调用执行结果错误或者合约调用执行结果被修改的异常,并对该合约调用执行结果进行进一步的处理。多个区块同步节点也对第一区块进行合约调用执行结果验证以及合约调用执行结果私钥签名验证时,进一步保证了合约调用执行结果的安全性和合法性。
附图说明
图1是本发明实施例提供的一种智能合约调用单点执行***的结构示意图;
图2是本发明实施例提供的一种智能合约调用单点执行***的结构示例图;
图3是本发明实施例提供的合约调用执行节点的结构示意图;
图3a是本发明实施例提供的合约调用执行权限验证单元的结构示意图;
图4是本发明实施例提供的合约调用单点执行节点的结构示意图;
图5是本发明实施例提供的挖矿节点的结构示意图;
图5a是本发明实施例提供的第一合约调用执行结果第一验证单元的结构示意图;
图5b是本发明实施例提供的第一合约调用执行结果第一私钥签名验证单元的结构示意图;
图6是本发明实施例提供的区块同步节点的结构示意图;
图6a是本发明实施例提供的第一合约调用执行结果第二验证单元的结构示意图;
图6b是本发明实施例提供的第一合约调用执行结果第二私钥签名验证单元的结构示意图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的一种智能合约调用单点执行***通过在合约调用中指定有根据合约创建者地址公钥生成的合约指定地址,使得其他节点需要通过合约调用执行权限验证才可以执行该合约调用,而合约创建者地址公钥与唯一的节点地址私钥相配,因此保证了只存在唯一节点能够通过合约调用执行权限验证,从而避免了多个节点竞争执行该合约调用而导致能源的浪费。
图1示出了本发明实施例提供的一种智能合约调用单点执行***的结构示意图,详述如下。
本发明实施例提供的智能合约调用单点执行***,包括:
合约调用节点101,用于根据用户合约调用请求生成合约调用并进行全网广播,所述合约调用中指定有合约指定地址,所述合约指定地址是根据合约创建者地址公钥以及合约内容生成的。
作为本发明的一个实施例,合约调用中指定有合约指定地址,所述合约指定地址包括有合约创建者地址公钥哈希值以及合约内容哈希值序列。
合约调用执行节点102,用于接收合约调用节点广播的合约调用,进行合约调用执行权限验证并确定合约调用单点执行节点。
在本发明实施例中,合约调用执行节点102包括有区块链网络中除合约调用节点之外的所有节点,因此每个区块链网络上都有多个合约调用执行节点。
在本发明实施例中,每一个合约调用执行节点都需要进行合约调用执行权限验证,并保证有一个合约调用执行节点能够通过合约调用执行权限验证。
作为本发明的一个实施例,在所述合约调用中指定有包括合约创建者地址公钥哈希值的合约地址,利用合约创建者地址公钥与私钥的唯一配对性,唯一确认一个合约调用执行节点能够通过合约调用执行权限验证。
合约调用单点执行节点103,用于将接收到的合约调用传输给所述虚拟机执行合约调用,并接收所述虚拟机返回的合约调用执行结果,根据所述返回的合约调用执行结果创建第一合约调用执行结果并使用私钥签名,并将所述第一合约调用执行结果进行全网广播。
在本发明实施例中,合约调用单点执行节点是多个合约调用执行节点中唯一通过合约调用执行权限验证的合约调用执行节点,并执行相应的合约调用执行过程。剩余未通过的合约调用执行权限验证的合约调用执行节点暂不执行相应的合约调用执行过程。
挖矿节点104,用于接收合约调用节点广播的合约调用以及合约调用单点执行节点广播的第一合约调用执行结果,进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一合约调用执行结果非法,丢弃所述第一合约调用执行结果,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一合约调用执行结果合法,并将所述第一合约调用执行结果打包生成第一区块,将所述第一区块进行全网广播。
本发明实施例中,挖矿节点104为挖矿成功并将所述合约调用执行结果进行打包并广播的唯一节点。
作为本发明的一个实施例,挖矿节点需要对合约调用执行结果以及第一合约调用执行结果私钥签名进行验证,从而确保第一合约调用执行结果的安全性以及合法性,降低了可能存在的被他人修改的风险。
多个区块同步节点105,用于接收合约调用节点广播的合约调用以及挖矿节点广播的第一区块,获取所述第一区块中含有的第一合约调用执行结果,并对所述第一合约调用执行结果并进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一区块非法,丢弃所述第一区块,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一区块合法,并同步第一区块。
在本发明实施例中,区块同步节点105包括有区块链网络中除挖矿节点之外的所有节点,因此每个区块链网络上都有多个区块同步节点。
作为本发明的一个实施例,区块同步节点需要对所述第一区块中含有的第一合约调用执行结果信息进行合约调用执行结果以及第一合约调用执行结果私钥签名验证,从而确保第一区块的安全性以及合法性,降低了可能存在的被他人修改的风险
图2是本发明实施例提供的一种智能合约调用单点执行***的结构示例图,为了便于说明,仅示出与本发明相关的部分。
以所述区块链含有A、B、C、D、E、F、G、H八个节点为例,其中A节点发起合约调用,指定的合约地址中含有D节点地址公钥,最终G成功挖矿并对所述合约调用进行了打包。
则所述合约调用节点A即为合约调用节点101,节点B、C、D、E、F、G、H为多个合约调用执行节点102,其中,由于A在合约调用中限定了D节点地址公钥,只有D节点地址私钥能够与公钥配对,那么只有节点D通过了合约调用执行权限验证,即D为合约调用单点执行节点103,节点G为挖矿节点104,节点A、B、C、D、E、F、H即为多个区块同步节点105,同步或者丢弃来自节点G广播的区块。
图3示出了本发明实施例提供的合约调用执行节点的结构示意图,为了便于说明,仅示出与本发明相关的部分。
在本发明实施例中,合约调用执行节点包括合约调用接收单元301以及合约调用执行权限验证单元302。
合约调用接收单元301,用于接收合约调用节点广播的合约调用。
合约调用执行权限验证单元302,用于进行合约调用执行权限验证并确定合约调用单点执行节点。
在本发明实施例中,所有合约调用执行节点对任一合约调用都需要进行一次合约调用执行权限验证,且对于任一合约调用都有一个合约调用执行节点能够通过合约调用执行权限验证。
图3a示出了本发明实施例提供的合约调用执行权限验证单元的结构示意图,为了便于说明,仅示出与本发明相关的部分。
在本发明实施例中,合约调用执行权限验证单元包括:
地址公钥解析模块301a,用于对所接收到的合约调用中指定的合约地址进行解析并获取合约创建者地址公钥。
在本发明实施例中,所述合约调用中指定的合约地址是根据合约创建者地址公钥生成的,因此合约调用中指定的合约地址中含有合约创建者地址公钥的信息,对所述合约创建者地址公钥的信息解析就可以获取合约创建者地址公钥。
公钥对比模块302a,用于判断所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥是否为唯一配对的密钥对。
作为本发明的一个实施例,所述私钥与公钥之间存在着唯一配对的关系,通过判断所述合约调用执行节点地址私钥与所述所述获取的合约创建者地址公钥是否存在着唯一配对的关系,确认所述合约调用执行节点是否通过合约调用执行权限验证。
合约调用执行权限验证通过模块303a,用于若判断出所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥是唯一配对的密钥对时,则确认所述合约调用执行节点通过合约调用执行权限验证,确认所述合约调用执行节点是合约调用单点执行节点。
合约调用执行权限验未通过模块304a,用于若判断出所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥不是唯一配对的密钥对时,则确认所述合约调用执行节点未通过合约调用执行权限验证,确认所述合约调用执行节点不是合约调用单点执行节点。
图4示出了本发明实施例提供的合约调用单点执行节点的结构示意图,为了便于说明,仅示出与本发明相关的部分。
本发明实施例中,合约调用单点执行节点包括:
合约调用传输第一单元401,用于将接收到的合约调用传输给虚拟机执行合约调用。
在本发明实施例中,只有通过了合约调用执行权限验证的合约调用单点执行节点能够第一时间将接收到的合约调用传输给虚拟机执行合约调用。
合约调用执行结果第一接收单元402,用于接收虚拟机返回的合约调用执行结果。
合约调用执行结果第一创建单元403,用于根据所述返回的合约调用执行结果创建第一合约调用执行结果。
在本发明实施例中,虚拟机返回的合约调用执行结果还需要通过合约调用单点执行节点转化为第一合约调用执行结果。
第一合约调用执行结果私钥签名单元404,用于使用私钥对所述第一合约调用执行结果进行签名。
作为本发明的一个实施例,使用私钥对所述第一合约调用执行结果进行签名便于其他节点对第一合约调用执行结果进行签名验证,确保第一合约调用执行结果的合法性,降低了可能存在的被他人修改的风险。
第一合约调用执行结果广播单元405,用于将所述含有私钥签名的第一合约调用执行结果进行全网广播。
图5示出了本发明实施例提供的挖矿节点的结构示意图,为了便于说明,仅示出与本发明相关的部分。
在本发明实施例中,挖矿节点包括:
合约调用接收单元501,用于接收合约调用节点广播的合约调用。
第一合约调用执行结果第一接收单元502,用于接收合约调用单点执行节点广播的含有私钥签名的第一合约调用执行结果。
在本发明实施例中,挖矿节点同样的具有能够接收来自其他节点广播的合约调用以及合约调用执行结果的单元。
第一合约调用执行结果第一验证单元503,用于进行合约调用执行结果验证并确定所述第一合约调用执行结果是否合法。
作为本发明的一个实施例,所述进行合约调用执行结果验证为了避免使用错误的合约调用执行结果,保证了第一合约调用执行结果的准确性。
第一合约调用执行结果第一私钥签名验证单元504,用于进行第一合约调用执行结果私钥签名验证并确定所述第一合约调用执行结果是否合法。
作为本发明的一个实施例,所述进行合约调用执行结果验证为了避免使用被修改过的合约调用执行结果,保证了第一合约调用执行结果的安全性。
第一合约调用执行结果打包单元505,用于将所述合法的第一合约调用执行结果进行打包并生成第一区块。
本发明实施例中,所述挖矿节点仅仅对合法有效的第一合约调用执行结果进行打包,当验证第一合约调用执行结果不合法时,即所述第一合约调用执行结果可能存在安全隐患时,丢弃第一合约调用执行结果。
作为本发明的一个实施例,第一区块中包括有合法的第一合约调用执行结果以及在所述合约调用之前产生的所有未被打包的其他合约调用执行结果。
第一区块广播单元506,用于将所述第一区块进行全网广播。
图5a示出了本发明实施例提供的第一合约调用执行结果第一验证单元的结构示意图的结构示意图,为了便于说明,仅示出与本发明相关的部分。
本发明实施例中,第一合约调用执行结果第一验证单元包括:
合约调用传输第二模块501a,用于将接收到的合约调用传输给虚拟机执行合约调用。
在本发明实施例中,在合约调用单点执行节点将第一合约调用执行结果广播后,挖矿节点才被允许向虚拟机传输合约调用进行结果验证。
合约调用执行结果第二接收模块502a,用于接收虚拟机返回的合约调用执行结果。
在本发明实施例中,对于相同的合约调用,虚拟机返回的合约调用执行结果一般相同。
合约调用执行结果第二创建模块503a,用于根据所述返回的合约调用执行结果创建第二合约调用执行结果。
合约调用执行结果第一对比模块504a,用于判断所述第一合约调用执行结果与所述第二合约调用执行结果是否相同。
在本发明实施例中,验证合约调用执行结果的准确性,避免了对合约调用单点执行节点广播错误的合约调用执行结果进行打包处理。
第一合约调用执行结果第一验证通过模块505a,用于若判断出所述第一合约调用执行结果与所述第二合约调用执行结果相同,则所述合约调用执行结果确认通过合约调用执行结果验证,并确认所述合约调用执行结果合法。
第一合约调用执行结果第一验证未通过模块506a,用于若判断出所述第一合约调用执行结果与所述第二合约调用执行结果不同,则确认所述合约调用执行结果未通过合约调用执行结果验证,并确认所述合约调用执行结果非法,丢弃所述第一合约调用执行结果。
图5b示出了本发明实施例提供的第一合约调用执行结果第一私钥签名验证单元的结构示意图,为了便于说明,仅示出与本发明相关的部分。
本发明实施例中,第一合约调用执行结果第一私钥签名验证单元包括:
第一合约调用执行结果第一私钥签名获取模块501b,用于获取所述第一合约调用执行结果中含有的私钥签名。
在本发明实施例中,所述合约调用单点执行节点广播的第一合约调用执行结果中含有合约调用单点执行节点私钥签名,便于其他节点验证第一合约调用执行结果是否被他人修改过,保证了第一合约调用执行结果的安全性。
私钥签名第一对比模块502b,用于判断所述获取的私钥签名与所述合约调用单点执行节点的公钥是否为唯一配对的密钥对;
第一合约调用执行结果第一私钥签名通过模块503b,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥是唯一配对的密钥对,则确认所述合约调用执行结果通过第一合约调用执行结果私钥签名验证,并确认所述合约调用执行结果合法。
第一合约调用执行结果第一私钥签名未通过模块504b,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥不是唯一配对的密钥对,则确认所述合约调用执行结果未通过第一合约调用执行结果私钥签名验证,并确认所述合约调用执行结果非法,丢弃所述第一合约调用执行结果。
本发明实施例中,由于私钥与公钥的唯一配对性,使得其他节点容易验证出第一合约调用执行结果的真伪,是否被他人修改过,避免了对存在安全隐患的合约调用执行结果进行打包处理。
图6示出了本发明实施例提供的区块同步节点的结构示意图,为了便于说明,仅示出与本发明相关的部分。
在本发明实施例中,区块同步节点包括:
合约调用接收单元601,用于接收合约调用节点广播的合约调用。
第一区块接收单元602,用于接收挖矿节点广播的第一区块。
在本发明实施例中,区块同步节点同样的具有能够接收来自其他节点广播的合约调用以及合约调用执行结果的单元。
第一合约调用执行结果获取单元603,用于获取所述第一区块中含有的第一合约调用执行结果。
第一合约调用执行结果第二验证单元604,用于进行合约调用执行结果验证并确定所述第一区块是否合法。
作为本发明的一个实施例,所述进行合约调用执行结果验证为了避免使用错误的区块,保证了第一区块的准确性
第一合约调用执行结果第二私钥签名验证单元605,用于进行第一合约调用执行结果私钥签名验证并确定所述第一区块是否合法.
第一区块同步单元606,用于同步所述合法的第一区块。
本发明实施例中,所述区块同步节点仅仅对合法有效的第一区块进行同步,当验证第一区块不合法时,即所述第一区块可能存在安全隐患时,丢弃第一区块。
图6a示出了本发明实施例提供的第一合约调用执行结果第二验证单元的结构示意图,为了便于说明,仅示出与本发明相关的部分。
本发明实施例中,第一合约调用执行结果第二验证单元包括:
合约调用第三传输模块601a,用于将接收到的合约调用传输给虚拟机执行合约调用。
在本发明实施例中,在合约调用单点执行节点将第一合约调用执行结果广播后,区块同步节点才被允许向虚拟机传输合约调用进行结果验证。
合约调用执行结果第三接收模块602a,用于接收虚拟机返回的合约调用执行结果。
在本发明实施例中,对于相同的合约调用,虚拟机返回的合约调用执行结果一般相同
合约调用执行结果第三创建模块603a,用于根据所述返回的合约调用执行结果创建第三合约调用执行结果。
合约调用执行结果第二对比模块604a,用于判断所述第一合约调用执行结果与所述第三合约调用执行结果是否相同。
在本发明实施例中,验证合约调用执行结果的准确性,避免了对挖矿节点广播错误的第一区块进行同步处理
第一合约调用执行结果第二验证通过模块605a,用于若判断出所述第一合约调用执行结果与所述第三合约调用执行结果相同,则确认所述第一区块通过合约调用执行结果验证,并确认所述第一区块合法。
第一合约调用执行结果第二验证未通过模块606a,用于若判断出所述第一合约调用执行结果与所述第三合约调用执行结果不同,则确认所述第一区块未通过合约调用执行结果验证,并确认所述第一区块非法,丢弃所述第一区块。
图6b示出了本发明实施例提供的第一合约调用执行结果第二私钥签名验证单元的结构示意图,为了便于说明,仅示出与本发明相关的部分。
本发明实施例中,第一合约调用执行结果第二私钥签名验证单元包括:
第一合约调用执行结果第二私钥签名获取模块601b,用于获取所述第一合约调用执行结果中含有的私钥签名。
私钥签名第二对比模块602b,用于判断所述获取的私钥签名与所述合约调用单点执行节点的公钥是否为唯一配对的密钥对。
第一合约调用执行结果第二私钥签名验证通过模块603b,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥是唯一配对的密钥对,则确认所述第一区块通过第一合约调用执行结果私钥签名验证,并确认所述第一区块合法。
第一合约调用执行结果第二私钥签名验证未通过模块604b,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥不是唯一配对的密钥对,则确认所述第一区块未通过第一合约调用执行结果私钥签名验证,并确认所述第一区块非法,丢弃所述第一区块。
本发明实施例提供的一种智能合约调用单点执行***通过在合约调用中指定有根据合约创建者地址公钥生成的合约地址,使得其他节点需要通过合约调用执行权限验证才可以执行该合约调用,而合约创建者地址公钥与唯一的节点地址私钥相配,因此保证了只存在唯一节点能够通过合约调用执行权限验证,从而避免了多个节点竞争执行该合约调用而导致能源的浪费。而在合约调用单点执行节点将合约调用执行结果进行广播时还加入了该节点地址私钥签名,提高了合约调用执行结果的安全性,降低了可能存在的被他人修改的风险。挖矿节点在进行合约调用执行结果验证以及合约调用执行结果私钥签名验证时,能够判断该合约调用执行结果是否存在合约调用执行结果错误或者合约调用执行结果被修改的异常,并对该合约调用执行结果进行进一步的处理。多个区块同步节点也对第一区块进行合约调用执行结果验证以及合约调用执行结果私钥签名验证时,进一步保证了合约调用执行结果的安全性和合法性。
在本发明实施例中,关于合约调用执行节点102、合约调用单点执行节点103、挖矿节点104、区块同步节点105的细化详见以上合约调用单点执行***中关于合约调用执行节点102、合约调用单点执行节点103、挖矿节点104、区块同步节点105的描述并参考说明书附图内容。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种智能合约调用单点执行***,应用于包括多个节点以及一个虚拟机的区块链网络,其特征在于,所述智能合约调用单点执行***包括:合约调用节点,用于根据用户合约调用请求生成合约调用并进行全网广播,所述合约调用中指定有合约执行地址,所述合约执行地址是根据合约创建者地址公钥以及合约内容生成的;
多个合约调用执行节点,用于接收合约调用节点广播的合约调用,进行合约调用执行权限验证并确定合约调用单点执行节点;
合约调用单点执行节点,用于将接收到的合约调用传输给所述虚拟机执行合约调用,并接收所述虚拟机返回的合约调用执行结果,根据所述返回的合约调用执行结果创建第一合约调用执行结果并使用私钥签名,并将所述含有私钥签名的第一合约调用执行结果进行全网广播;
挖矿节点,用于接收合约调用节点广播的合约调用以及合约调用单点执行节点广播的第一合约调用执行结果,进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一合约调用执行结果非法,丢弃所述第一合约调用执行结果,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一合约调用执行结果合法,并将所述第一合约调用执行结果打包生成第一区块,将所述第一区块进行全网广播;以及多个区块同步节点,用于接收合约调用节点广播的合约调用以及挖矿节点广播的第一区块,获取所述第一区块中含有的第一合约调用执行结果,并对所述第一合约调用执行结果再次进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一区块非法,丢弃所述第一区块,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一区块合法,并同步第一区块。
2.根据权利要求1所述的***,其特征在于,所述多个合约调用执行节点包括区块链网络中除合约调用节点之外的所有节点。
3.根据权利要求1所述的***,其特征在于,所述合约调用执行节点包括:合约调用接收单元,用于接收合约调用节点广播的合约调用;以及
合约调用执行权限验证单元,用于进行合约调用执行权限验证并确定合约调用单点执行节点;
其中,所述合约调用执行权限验证单元具体包括:
地址公钥解析模块,用于对所接收到的合约调用中指定的合约执行地址进行解析并获取合约创建者地址公钥;
公钥对比模块,用于判断所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥是否为唯一配对的密钥对;
合约调用执行权限验通过模块,用于若判断出所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥是唯一配对的密钥对时,则确认所述合约调用执行节点通过合约调用执行权限验证,确认所述合约调用执行节点是合约调用单点执行节点;以及合约调用执行权限验未通过模块,用于若判断出所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥不是唯一配对的密钥对时,则确认所述合约调用执行节点未通过合约调用执行权限验证,确认所述合约调用执行节点不是合约调用单点执行节点。
4.根据权利要求1所述的***,其特征在于,所述合约调用单点执行节点包括:合约调用传输第一单元,用于将接收到的合约调用传输给虚拟机执行合约调用;
合约调用执行结果第一接收单元,用于接收虚拟机返回的合约调用执行结果;
合约调用执行结果第一创建单元,用于根据所述返回的合约调用执行结果创建第一合约调用执行结果;
第一合约调用执行结果私钥签名单元,用于使用私钥对所述第一合约调用执行结果进行签名;以及
第一合约调用执行结果广播单元,用于将所述含有私钥签名的第一合约调用执行结果进行全网广播。
5.根据权利要求1所述的***,其特征在于,所述挖矿节点包括:
合约调用接收单元,用于接收合约调用节点广播的合约调用;
第一合约调用执行结果第一接收单元,用于接收合约调用单点执行节点广播的含有私钥签名的第一合约调用执行结果;
第一合约调用执行结果第一验证单元,用于进行合约调用执行结果验证并确定所述第一合约调用执行结果是否合法;
第一合约调用执行结果第一私钥签名验证单元,用于进行第一合约调用执行结果私钥签名验证并确定所述第一合约调用执行结果是否合法;
第一合约调用执行结果打包单元,用于将所述合法的第一合约调用执行结果进行打包并生成第一区块;以及第一区块广播单元,用于将所述第一区块进行全网广播;
其中,所述第一合约调用执行结果第一验证单元具体包括:
合约调用传输第二模块,用于将接收到的合约调用传输给虚拟机执行合约调用;
合约调用执行结果第二接收模块,用于接收虚拟机返回的合约调用执行结果;
合约调用执行结果第二创建模块,用于根据所述返回的合约调用执行结果创建第二合约调用执行结果;
合约调用执行结果第一对比模块,用于判断所述第一合约调用执行结果与所述第二合约调用执行结果是否相同;
第一合约调用执行结果第一验证通过模块,用于若判断出所述第一合约调用执行结果与所述第二合约调用执行结果相同,则所述合约调用执行结果确认通过合约调用执行结果验证,并确认所述合约调用执行结果合法;以及第一合约调用执行结果第一验证未通过模块,用于若判断出所述第一合约调用执行结果与所述第二合约调用执行结果不同,则确认所述合约调用执行结果未通过合约调用执行结果验证,并确认所述合约调用执行结果非法,丢弃所述第一合约调用执行结果;
所述第一合约调用执行结果第一私钥签名验证单元具体包括:
第一合约调用执行结果第一私钥签名获取模块,用于获取所述第一合约调用执行结果中含有的私钥签名;以及私钥签名第一对比模块,用于判断所述获取的私钥签名与所述合约调用单点执行节点的公钥是否为唯一配对的密钥对;
第一合约调用执行结果第一私钥签名通过模块,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥是唯一配对的密钥对,则确认所述合约调用执行结果通过第一合约调用执行结果私钥签名验证,并确认所述合约调用执行结果合法;以及第一合约调用执行结果第一私钥签名未通过模块,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥不是唯一配对的密钥对,则确认所述合约调用执行结果未通过第一合约调用执行结果私钥签名验证,并确认所述合约调用执行结果非法,丢弃所述第一合约调用执行结果。
6.根据权利要求1所述的***,其特征在于,所述第一区块包括有第一合约调用执行结果以及在所述合约调用之前产生的所有未被打包的其他合约调用执行结果。
7.根据权利要求1所述的***,其特征在于,所述多个区块同步节点包括区块链网络中除挖矿节点之外的所有节点。
8.根据权利要求1所述的***,其特征在于,所述多个区块同步节点包括:合约调用接收单元,用于接收合约调用节点广播的合约调用;
第一区块接收单元,用于接收挖矿节点广播的第一区块;
第一合约调用执行结果获取单元,用于获取所述第一区块中含有的第一合约调用执行结果;
第一合约调用执行结果第二验证单元,用于进行合约调用执行结果验证并确定所述第一区块是否合法;
第一合约调用执行结果第二私钥签名验证单元,用于进行第一合约调用执行结果私钥签名验证并确定所述第一区块是否合法;以及第一区块同步单元,用于同步所述合法的第一区块;
其中,所述第一合约调用执行结果第二验证单元具体包括:
合约调用第三传输模块,用于将接收到的合约调用传输给虚拟机执行合约调用;
合约调用执行结果第三接收模块,用于接收虚拟机返回的合约调用执行结果;
合约调用执行结果第三创建模块,用于根据所述返回的合约调用执行结果创建第三合约调用执行结果;
合约调用执行结果第二对比模块,用于判断所述第一合约调用执行结果与所述第三合约调用执行结果是否相同;
第一合约调用执行结果第二验证通过模块,用于若判断出所述第一合约调用执行结果与所述第三合约调用执行结果相同,则确认所述第一区块通过合约调用执行结果验证,并确认所述第一区块合法;以及第一合约调用执行结果第二验证未通过模块,用于若判断出所述第一合约调用执行结果与所述第三合约调用执行结果不同,则确认所述第一区块未通过合约调用执行结果验证,并确认所述第一区块非法,丢弃所述第一区块;
所述第一合约调用执行结果第二私钥签名验证单元具体包括:
第一合约调用执行结果第二私钥签名获取模块,用于获取所述第一合约调用执行结果中含有的私钥签名;
私钥签名第二对比模块,用于判断所述获取的私钥签名与所述合约调用单点执行节点的公钥是否为唯一配对的密钥对;
第一合约调用执行结果第二私钥签名验证通过模块,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥是唯一配对的密钥对,则确认所述第一区块通过第一合约调用执行结果私钥签名验证,并确认所述第一区块合法;以及第一合约调用执行结果第二私钥签名验证未通过模块,用于若判断出所述获取的私钥签名与所述合约调用单点执行节点的公钥不是唯一配对的密钥对,则确认所述第一区块未通过第一合约调用执行结果私钥签名验证,并确认所述第一区块非法,丢弃所述第一区块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810978754.2A CN109067759B (zh) | 2018-08-27 | 2018-08-27 | 一种智能合约调用单点执行*** |
PCT/CN2019/077934 WO2020042587A1 (zh) | 2018-08-27 | 2019-03-13 | 一种智能合约调用单点执行*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810978754.2A CN109067759B (zh) | 2018-08-27 | 2018-08-27 | 一种智能合约调用单点执行*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109067759A CN109067759A (zh) | 2018-12-21 |
CN109067759B true CN109067759B (zh) | 2020-11-03 |
Family
ID=64757167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810978754.2A Active CN109067759B (zh) | 2018-08-27 | 2018-08-27 | 一种智能合约调用单点执行*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109067759B (zh) |
WO (1) | WO2020042587A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067759B (zh) * | 2018-08-27 | 2020-11-03 | 深圳前海益链网络科技有限公司 | 一种智能合约调用单点执行*** |
CN109818957B (zh) * | 2019-01-25 | 2020-12-22 | 上海淳麒金融信息服务有限公司 | 基于可视化界面的智能合约调用方法、装置及*** |
CN110138767B (zh) * | 2019-05-07 | 2021-11-30 | 百度在线网络技术(北京)有限公司 | 事务请求的处理方法、装置、设备和存储介质 |
CN112104606B (zh) * | 2020-08-12 | 2022-06-17 | 北京智融云河科技有限公司 | 一种基于随机多节点的可信执行方法和*** |
CN112118107B (zh) * | 2020-08-12 | 2021-08-27 | 北京大学 | 一种实现数据可信的自适应执行方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809062A (zh) * | 2016-03-01 | 2016-07-27 | 布比(北京)网络技术有限公司 | 一种合约构建、执行方法及装置 |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及*** |
CN106951307A (zh) * | 2017-03-06 | 2017-07-14 | 钱德君 | 一种智能合约虚拟机实现方法 |
CN107257374A (zh) * | 2017-06-15 | 2017-10-17 | 中国银行股份有限公司 | 一种区块链上的交易处理方法及*** |
CN107392619A (zh) * | 2017-07-31 | 2017-11-24 | 众安信息技术服务有限公司 | 智能合约处理方法及装置 |
CN107526624A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约执行引擎 |
CN107622385A (zh) * | 2017-08-28 | 2018-01-23 | 南京邮电大学 | 一种基于区块链智能合约的数字作品发行方法 |
WO2018058105A1 (en) * | 2016-09-26 | 2018-03-29 | Shapeshift Ag | System and method of managing trustless asset portfolios |
CN108230109A (zh) * | 2018-01-02 | 2018-06-29 | 罗梅琴 | 一种基于区块链技术的共享***及方法 |
CN108320160A (zh) * | 2018-02-02 | 2018-07-24 | 张超 | 区块链***、区块共识方法和装置 |
CN108399544A (zh) * | 2018-02-11 | 2018-08-14 | 深圳市图灵奇点智能科技有限公司 | 基于物联网的辅助签订区块链合约的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5452099B2 (ja) * | 2009-07-01 | 2014-03-26 | 株式会社日立製作所 | 証明書の有効性確認方法、証明書検証サーバ、プログラム及び記憶媒体 |
WO2018120057A1 (zh) * | 2016-12-30 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的货币管理方法和*** |
CN107341702B (zh) * | 2017-03-08 | 2020-06-23 | 创新先进技术有限公司 | 一种业务处理的方法及装置 |
CN108234134B (zh) * | 2017-12-28 | 2020-09-29 | 江苏通付盾科技有限公司 | 区块同步方法及*** |
CN109067759B (zh) * | 2018-08-27 | 2020-11-03 | 深圳前海益链网络科技有限公司 | 一种智能合约调用单点执行*** |
-
2018
- 2018-08-27 CN CN201810978754.2A patent/CN109067759B/zh active Active
-
2019
- 2019-03-13 WO PCT/CN2019/077934 patent/WO2020042587A1/zh active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809062A (zh) * | 2016-03-01 | 2016-07-27 | 布比(北京)网络技术有限公司 | 一种合约构建、执行方法及装置 |
WO2018058105A1 (en) * | 2016-09-26 | 2018-03-29 | Shapeshift Ag | System and method of managing trustless asset portfolios |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及*** |
CN106951307A (zh) * | 2017-03-06 | 2017-07-14 | 钱德君 | 一种智能合约虚拟机实现方法 |
CN107257374A (zh) * | 2017-06-15 | 2017-10-17 | 中国银行股份有限公司 | 一种区块链上的交易处理方法及*** |
CN107526624A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约执行引擎 |
CN107392619A (zh) * | 2017-07-31 | 2017-11-24 | 众安信息技术服务有限公司 | 智能合约处理方法及装置 |
CN107622385A (zh) * | 2017-08-28 | 2018-01-23 | 南京邮电大学 | 一种基于区块链智能合约的数字作品发行方法 |
CN108230109A (zh) * | 2018-01-02 | 2018-06-29 | 罗梅琴 | 一种基于区块链技术的共享***及方法 |
CN108320160A (zh) * | 2018-02-02 | 2018-07-24 | 张超 | 区块链***、区块共识方法和装置 |
CN108399544A (zh) * | 2018-02-11 | 2018-08-14 | 深圳市图灵奇点智能科技有限公司 | 基于物联网的辅助签订区块链合约的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020042587A1 (zh) | 2020-03-05 |
CN109067759A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067759B (zh) | 一种智能合约调用单点执行*** | |
EP3259874B1 (en) | Methods of proving validity and determining validity, electronic device, server and computer programs | |
CN108234470B (zh) | 区块链网络中区块打包方法及***、电子设备、存储介质 | |
CN109634615B (zh) | 应用安装包的发布方法、验证方法和装置 | |
CN110784521B (zh) | 区块链的共识方法、电子设备和存储介质 | |
US20120011566A1 (en) | System and method for sensor network authentication based on xor chain | |
CN112734431B (zh) | 查询Fabric区块链账本数据的方法和装置 | |
CN111523150A (zh) | 基于区块链的文档编辑方法、装置及*** | |
WO2020208580A1 (en) | Methods and devices for propagating blocks in a blockchain network | |
Jahanian et al. | Analysis of TESLA protocol in vehicular ad hoc networks using timed colored Petri nets | |
CN112383522B (zh) | 函数参数数据传输加密方法、***、装置及可读存储介质 | |
CN110958598B (zh) | 一种移动终端和sim卡的绑定认证方法和装置 | |
CN114491656A (zh) | 区块链网络中的方法和设备 | |
CN114830572A (zh) | 一种数据传输方法、装置、设备、***及存储介质 | |
CN112039675A (zh) | 一种基于区块链智能合约的令牌生成与认证方法 | |
CN111865983A (zh) | 一种基于区块链的数据安全追溯方法 | |
CN116781269A (zh) | 基于区块链的数据处理方法、装置、设备、介质及产品 | |
CN111147477B (zh) | 一种基于区块链网络的验证方法及装置 | |
CN111324914B (zh) | 文件的传输方法、装置、服务器、设备和介质 | |
CN116361383A (zh) | 一种区块生成方法、区块链***及存储介质和相关设备 | |
JP2011239117A (ja) | 通信装置、通信システム、通信方法及び通信プログラム | |
CN115632800B (zh) | 基于区块链共识的物联网源端数据存储方法及装置 | |
US20200322354A1 (en) | Method and apparatuses for authenticating a data stream | |
CN117692149B (zh) | 一种日志透明实体诚实性的检验方法、设备以及介质 | |
US11979503B2 (en) | Method for a secure transmission, and method for a secure bidirectional exchange of electronic data packets in a network |
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 |