CN107846278B - 智能合约处理方法及装置 - Google Patents
智能合约处理方法及装置 Download PDFInfo
- Publication number
- CN107846278B CN107846278B CN201711037064.9A CN201711037064A CN107846278B CN 107846278 B CN107846278 B CN 107846278B CN 201711037064 A CN201711037064 A CN 201711037064A CN 107846278 B CN107846278 B CN 107846278B
- Authority
- CN
- China
- Prior art keywords
- node
- contract
- signed
- transaction
- trading
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002062 proliferating effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Abstract
本发明实施例提供一种智能合约处理方法及装置。该方法包括:第一交易节点根据存储节点的地址信息,从存储节点中获取第二交易节点签名后的合约;第一交易节点对第二交易节点签名后的合约进行再次签名得到二次签名后的合约;将二次签名后的合约存储到存储节点。本发明实施例通过交易节点在区块链网络中广播交易双方的身份信息,以及存储有合约的存储节点的地址信息,而并不是将合约本身的内容广播到区块链网络中,由于地址信息的大小小于合约本身内容的大小,因此,降低了区块链网络的传输压力,对于区块链网络中的单个节点而言,节省了单个节点的存储空间,同时,将合约本身内容存储在存储节点上而不是广播到区块链网络中,提高了交易的安全性。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种智能合约处理方法及装置。
背景技术
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
智能合约被认为是网络服务器,只是这些服务器并不是使用IP地址架设在互联网上,而是架设在区块链上。智能合约的代码和状态都在区块链上。
现有技术中,智能合约本身的内容需要广播到区块链网络中,区块链网络中的所有节点均需要存储智能合约,如果智能合约所需要的存储空间较大,则不仅导致区块链网络的传输压力较大,对于区块链网络中的单个节点而言,需要单个节点具备较大的存储空间,另外,将智能合约本身的内容广播到区块链网络中,会导致交易的安全性降低。
发明内容
本发明实施例提供一种智能合约处理方法及装置,以降低区块链网络的传输压力,节省单个节点的存储空间,提高交易的安全性。
本发明实施例的一个方面是提供一种智能合约处理方法,包括:
第一交易节点接收第二交易节点在区块链网络中广播的消息,所述消息包括所述第一交易节点的身份信息、所述第二交易节点的身份信息、以及存储节点的地址信息,所述存储节点存储有第二交易节点签名后的合约,所述合约是所述第一交易节点和所述第二交易节点进行交易时所用的合约;
所述第一交易节点根据所述存储节点的地址信息,从所述存储节点中获取第二交易节点签名后的合约;
若所述第一交易节点确定与所述第二交易节点进行交易,则所述第一交易节点对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约;
所述第一交易节点将所述二次签名后的合约存储到所述存储节点。
本发明实施例的另一个方面是提供一种智能合约处理装置,应用于第一交易节点,包括:
接收模块,用于接收第二交易节点在区块链网络中广播的消息,所述消息包括所述第一交易节点的身份信息、所述第二交易节点的身份信息、以及存储节点的地址信息,所述存储节点存储有第二交易节点签名后的合约,所述合约是所述第一交易节点和所述第二交易节点进行交易时所用的合约;
获取模块,用于根据所述存储节点的地址信息,从所述存储节点中获取第二交易节点签名后的合约;
签名模块,用于当所述第一交易节点确定与所述第二交易节点进行交易时,对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约;
发送模块,用于将所述二次签名后的合约发送给所述存储节点,以使所述存储节点存储所述二次签名后的合约。
本发明实施例提供的智能合约处理方法及装置,通过交易节点在区块链网络中广播交易双方的身份信息,以及存储有合约的存储节点的地址信息,而并不是将合约本身的内容广播到区块链网络中,由于地址信息的大小小于合约本身内容的大小,因此,降低了区块链网络的传输压力,对于区块链网络中的单个节点而言,节省了单个节点的存储空间,同时,将合约本身内容存储在存储节点上而不是广播到区块链网络中,提高了交易的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明实施例提供的通信系统的示意图;
图2为本发明实施例提供的智能合约处理方法流程图;
图3为本发明另一实施例提供的智能合约处理方法流程图;
图4为本发明实施例提供的智能合约处理装置的结构图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适合记录事件、标题、医疗记录和其他需要收录数据的活动、身份识别管理,交易流程管理和出处证明管理。区块链对于金融脱媒有巨大的潜能,对于引领全球贸易有着巨大的影响。
目前区块链的节点主要具有以下几个方面的功能:P2P网络功能,广播消息的发送和接收,记账权计算,签名和加解密,账本存储等。而这些功能都是为了区块链网络中的交易而存在的。
“智能合约”(smart contract)这个术语至少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表在自己的网站的几篇文章中提到了智能合约的理念。他的定义如下:“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。”一套承诺指的是合约参与方同意的(经常是相互的)权利和义务。这些承诺定义了合约的本质和目的。以一个销售合约为典型例子。卖家承诺发送货物,买家承诺支付合理的货款。从用户角度来讲,智能合约通常被认为是一个自动担保账户,例如,当特定的条件满足时,程序就会释放和转移资金。从技术角度来讲,智能合约被认为是网络服务器,只是这些服务器并不是使用IP地址架设在互联网上,而是架设在区块链上。从而可以在其上面运行特定的合约程序。但是与网络服务器不同的是,所有人都可以看到智能合约,因为这些智能合约的代码和状态都在区块链上(假设区块链是公开的)。而且,与网络服务器不同的是,智能合约不依赖某个特定的硬件设备,事实上,智能合约的代码由所有参与挖矿的设备来执行(这也意味着进入单个合约的算力是有限的,尽管挖矿难度的自动调整会调节这种影响)。
现有技术中,智能合约本身的内容需要广播到区块链网络中,区块链网络中的所有节点均需要存储智能合约,如果智能合约所需要的存储空间较大,则不仅导致区块链网络的传输压力较大,对于区块链网络中的单个节点而言,需要单个节点具备较大的存储空间,另外,将智能合约本身的内容广播到区块链网络中,会导致交易的安全性降低。为了解决该问题,本实施例提供了一种智能合约处理方法,下面结合具体的实施例对该智能合约处理方法进行介绍。
本发明提供的智能合约处理方法,可以适用于图1所示的通信系统。如图1所示,该通信系统包括:区块链网络10以及区块链节点11-区块链节点17,此处只是示意性说明,并不限定区块链节点的具体个数。区块链节点具体可以是智能手机、平板电脑、膝上型电脑等及其组合。
本发明提供的智能合约处理方法,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明实施例提供的智能合约处理方法流程图。本发明实施例针对现有技术的如上技术问题,提供了智能合约处理方法,该方法具体步骤如下:
步骤201、第一交易节点接收第二交易节点在区块链网络中广播的消息,所述消息包括所述第一交易节点的身份信息、所述第二交易节点的身份信息、以及存储节点的地址信息,所述存储节点存储有第二交易节点签名后的合约,所述合约是所述第一交易节点和所述第二交易节点进行交易时所用的合约。
如图1所示,区块链节点11、区块链节点12、区块链节点13、区块链节点14、区块链节点15、区块链节点16、区块链节点17是区块链网络10中的节点,可选的,本实施例不限定区块链节点的具体个数。在本实施例中,区块链节点11-区块链节点17中的任一区块链节点可以作为区块链网络10中的存储节点,存储节点的作用是:可以存储交易节点之间的交易时所用的合约,该合约具体可以是智能合约。例如,区块链节点11和区块链节点12进行交易时双方需要遵守一定的合约,该合约可以存储在存储节点上,在区块链节点11和区块链节点12进行交易的过程中,区块链节点11和/或区块链节点12从存储节点上获取合约,并根据该合约进行交易。下面以区块链节点11为例,详细介绍区块链节点11成为存储节点的方式和具体过程。
例如,当区块链节点11加入到区块链网络10时,如果区块链节点11自愿作为区块链网络10中的存储节点,则区块链节点11可以向区块链网络10发送广播消息,该广播消息包括:标识区块链节点11想作为存储节点的标识信息、区块链节点11本身的标识信息、区块链节点11的地址信息,区块链节点11的地址信息具体可以是区块链节点11的IP地址。
区块链网络10中的其他区块链节点接收到区块链节点11发送的广播消息之后,按照正常的抢夺记账权的方式来抢夺记账权,假设该记账权由区块链网络10中的区块链节点13抢夺到,则区块链节点13将区块链节点11发送的广播消息写入区块链网络10的区块中,假设区块链节点13将区块链节点11发送的广播消息写入区块链网络10的第M个区块中,第M个区块中包括:标识区块链节点11想作为存储节点的标识信息、区块链节点11本身的标识信息、区块链节点11的地址信息,区块链节点11的地址信息具体可以是区块链节点11的IP地址。第M个区块创建完成后,区块链节点13将该第M个区块广播到区块链网络10中,区块链网络10中的其他区块链节点可以将该第M个区块保存在本地。此时,区块链节点11将成为区块链网络10中的存储节点。区块链网络10中的其他区块链节点成为存储节点的方式和过程与此类似,此处不再赘述。在本实施例中,区块链节点11-区块链节点17中的一个或多个可以成为存储节点。
可选的,所述区块链网络中的区块中存储有至少一个存储节点的标识信息和地址信息。例如,区块链节点11-区块链节点17中的区块链节点13、区块链节点14、区块链节点15为存储节点,区块链网络10中的区块中存储有区块链节点13的标识信息和地址信息、区块链节点14的标识信息和地址信息、区块链节点15的标识信息和地址信息。区块链节点13的标识信息和地址信息、区块链节点14的标识信息和地址信息、区块链节点15的标识信息和地址信息可以存储在同一个区块中,也可以存储在不同的区块中。
在本实施例中,假设第一交易节点是区块链节点11,第二交易节点是区块链节点12。例如,区块链节点12想和区块链节点11进行交易,区块链节点12查询本地存储的区块链网络10的区块,从区块中查询出区块链网络10中的存储节点,例如作为存储节点的区块链节点13、区块链节点14、区块链节点15。进一步的,区块链节点12从多个存储节点中选择一个存储节点用于存储区块链节点12和区块链节点11进行交易时所需的合约。区块链节点12从多个存储节点中选择一个存储节点的方式有多种,其中一种实现方式是:区块链节点12根据多个存储节点中每个存储节点的IP地址,确定每个存储节点所在的网络,区块链节点12进一步根据每个存储节点所在的网络,确定从区块链节点12开始分别到每个存储节点所在的网络的路由远近,选择出离区块链节点12最近的存储节点作为存储合约的存储节点。另一种实现方式是:区块链节点12根据其他区块链节点对各个存储节点的评价值,从多个存储节点中选择出评价值最高的存储节点作为存储合约的存储节点。再一种实现方式是:区块链节点12既参考从区块链节点12开始分别到每个存储节点所在的网络的路由远近,同时也参考其他区块链节点对各个存储节点的评价值,区块链节点12通过对路由远近和评价值进行权衡,从多个存储节点中选择出评价值最高的存储节点作为存储合约的存储节点。假设区块链节点12从区块链节点13、区块链节点14、区块链节点15中选定区块链节点13作为存储区块链节点12和区块链节点11之间合约的存储节点,并从区块中获取出区块链节点13的标识信息和地址信息,区块链节点13的地址信息具体为区块链节点13的IP地址。
区块链节点12确定出与区块链节点11进行交易时所遵循的合约后,区块链节点12采用区块链节点12的私钥例如私钥key-A对该合约进行签名,得到用私钥key-A进行签名后的合约,进一步的,私钥key-A将用私钥key-A进行签名后的合约发送给存储节点即区块链节点13。区块链节点13接收到区块链节点12发送的用私钥key-A进行签名后的合约后,将用私钥key-A进行签名后的合约存储在区块链节点13本地。另外,区块链节点12向区块链网络10发送广播消息,该广播消息表示“若区块链节点13同意对本次合约进行存储服务,则区块链节点12将向区块链节点13转账10元作为存储服务的奖励资金,该奖励资金目前属于冻结状态,当区块链节点13提供的有关本次合约的存储服务结束后,区块链节点12再将该10元转账给区块链节点13”。
可选的,区块链节点12向区块链网络10广播本次合约的关键信息,该关键信息并非是合约本身的内容,区块链节点12可以以广播的方式将该关键信息广播到区块链网络10中。可选的,该关键信息包括交易双方的身份信息,例如区块链节点12的身份信息和区块链节点11的身份信息,同时,该关键信息还包括区块链节点12选定的存储节点即区块链节点13的地址信息即IP地址。可选的,区块链节点11可以在区块链网络10中接收到区块链节点12广播的关键信息。
步骤202、所述第一交易节点根据所述存储节点的地址信息,从所述存储节点中获取第二交易节点签名后的合约。
具体的,所述第二交易节点签名后的合约是所述第二交易节点采用所述第二交易节点的私钥对所述合约签名后的合约。
当区块链节点11在区块链网络10中接收到区块链节点12广播的关键信息后,区块链节点11根据该关键信息中区块链节点13的IP地址,从区块链节点13中获取区块链节点12存储的用私钥key-A进行签名后的合约,区块链节点11可以根据本地存储的区块链节点12的公钥对签名后的合约进行验签得到合约本身的内容。
步骤203、若所述第一交易节点确定与所述第二交易节点进行交易,则所述第一交易节点对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约。
可选的,所述第一交易节点对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约,包括:所述第一交易节点采用所述第一交易节点的私钥对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约,也就是说,二次签名后的合约是带有私钥key-A和私钥key-B两个私钥双重签名的合约。
区块链节点11通过对合约本身的内容进行判断,确定是否与区块链节点12进行交易,如果区块链节点11确定与区块链节点12进行交易,则区块链节点11采用区块链节点11的私钥例如私钥key-B对用私钥key-A进行签名后的合约进行再次签名,得到二次签名后的合约。
步骤204、所述第一交易节点将所述二次签名后的合约存储到所述存储节点。
进一步的,区块链节点11将二次签名后的合约发送给区块链节点12选定的存储节点即区块链节点13,以使区块链节点13对二次签名后的合约进行存储。另外,区块链节点11还可以向区块链网络10发送广播消息,该广播消息表示“若区块链节点13同意对本次合约进行存储服务,则区块链节点11将向区块链节点13转账8元作为存储服务的奖励资金,该奖励资金目前属于冻结状态,当区块链节点13提供的有关本次合约的存储服务结束后,区块链节点11再将该8元转账给区块链节点13”。
当区块链节点11和区块链节点12进行交易时,区块链节点11和区块链节点12按照区块链节点13中存储的合约进行交易。当区块链节点11和区块链节点12之间的交易完成后,区块链节点13可以不再存储合约。此时,区块链节点12可以按照之前承诺的奖励资金给区块链节点13转账10元,同时,区块链节点11按照之前承诺的奖励资金给区块链节点13转账8元,区块链节点13将获得18元的奖励资金。区块链节点11和区块链节点12给区块链节点13转账完成后,还可以分别对区块链节点13的存储服务进行评价得到区块链节点13的评价值,以供后续的其他交易节点选择存储节点时使用。
本发明实施例通过交易节点在区块链网络中广播交易双方的身份信息,以及存储有合约的存储节点的地址信息,而并不是将合约本身的内容广播到区块链网络中,由于地址信息的大小小于合约本身内容的大小,因此,降低了区块链网络的传输压力,对于区块链网络中的单个节点而言,节省了单个节点的存储空间,同时,将合约本身内容存储在存储节点上而不是广播到区块链网络中,提高了交易的安全性。
图3为本发明另一实施例提供的智能合约处理方法流程图。在上述实施例的基础上,本发明实施例提供的智能合约处理方法具体步骤如下:
步骤301、第一交易节点接收第二交易节点在区块链网络中广播的消息,所述消息包括所述第一交易节点的身份信息、所述第二交易节点的身份信息、以及存储节点的地址信息,所述存储节点存储有第二交易节点签名后的合约,所述合约是所述第一交易节点和所述第二交易节点进行交易时所用的合约。
步骤301和步骤201的实现方式和过程一致,此处不再赘述。
步骤302、所述第一交易节点根据所述存储节点的地址信息,从所述存储节点中获取第二交易节点签名后的合约。
步骤302和步骤202的实现方式和过程一致,此处不再赘述。
步骤303、若所述第一交易节点确定与所述第二交易节点进行交易,则所述第一交易节点对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约。
步骤303和步骤203的实现方式和过程一致,此处不再赘述。
步骤304、所述第一交易节点将所述二次签名后的合约存储到所述存储节点。
步骤304和步骤204的实现方式和过程一致,此处不再赘述。
步骤305、所述第一交易节点将所述二次签名后的合约广播到所述区块链网络中,以使所述区块链网络中的节点确定所述二次签名后的合约是生效的合约。
在上述实施例的基础上,区块链节点11采用区块链节点11的私钥例如私钥key-B对用私钥key-A进行签名后的合约进行再次签名,得到二次签名后的合约之后,区块链节点11还可以将该二次签名后的合约广播到区块链网络10中,由于二次签名后的合约是带有私钥key-A和私钥key-B两个私钥双重签名的合约,因此,当区块链网络10中的其他区块链节点接收到区块链节点11广播的该二次签名后的合约时,区块链网络10中的其他区块链节点可以认为该二次签名后的合约是生效的合约。进一步的,区块链网络10中的其他区块链节点按照正常的抢夺记账权的方式来抢夺记账权,假设该记账权由区块链网络10中的区块链节点13抢夺到,则区块链节点13将区块链节点11广播的该二次签名后的合约写入区块链网络10的区块中,假设区块链节点13将区块链节点11广播的该二次签名后的合约写入区块链网络10的第M+9个区块中,第M+9个区块中包括:该二次签名后的合约。第M+9个区块创建完成后,区块链节点13将该第M+9个区块广播到区块链网络10中,区块链网络10中的其他区块链节点可以将该第M+9个区块保存在本地。
本发明实施例通过交易节点在区块链网络中广播交易双方的身份信息,以及存储有合约的存储节点的地址信息,而并不是将合约本身的内容广播到区块链网络中,由于地址信息的大小小于合约本身内容的大小,因此,降低了区块链网络的传输压力,对于区块链网络中的单个节点而言,节省了单个节点的存储空间,同时,将合约本身内容存储在存储节点上而不是广播到区块链网络中,提高了交易的安全性。
图4为本发明实施例提供的智能合约处理装置的结构图。本发明实施例提供的智能合约处理装置可以执行智能合约处理方法实施例提供的处理流程,如图4所示,智能合约处理装置40包括:接收模块41、获取模块42、签名模块43、发送模块44,其中,接收模块41用于接收第二交易节点在区块链网络中广播的消息,所述消息包括所述第一交易节点的身份信息、所述第二交易节点的身份信息、以及存储节点的地址信息,所述存储节点存储有第二交易节点签名后的合约,所述合约是所述第一交易节点和所述第二交易节点进行交易时所用的合约;获取模块42用于根据所述存储节点的地址信息,从所述存储节点中获取第二交易节点签名后的合约;签名模块43用于当所述第一交易节点确定与所述第二交易节点进行交易时,对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约;发送模块44用于将所述二次签名后的合约发送给所述存储节点,以使所述存储节点存储所述二次签名后的合约。
可选的,所述第二交易节点签名后的合约是所述第二交易节点采用所述第二交易节点的私钥对所述合约签名后的合约。
可选的,签名模块43具体用于采用所述第一交易节点的私钥对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约。
可选的,所述区块链网络中的区块中存储有至少一个存储节点的标识信息和地址信息。
本发明实施例提供的智能合约处理装置可以具体用于执行上述图2所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过交易节点在区块链网络中广播交易双方的身份信息,以及存储有合约的存储节点的地址信息,而并不是将合约本身的内容广播到区块链网络中,由于地址信息的大小小于合约本身内容的大小,因此,降低了区块链网络的传输压力,对于区块链网络中的单个节点而言,节省了单个节点的存储空间,同时,将合约本身内容存储在存储节点上而不是广播到区块链网络中,提高了交易的安全性。
在上述实施例的基础上,发送模块44还用于将所述二次签名后的合约广播到所述区块链网络中,以使所述区块链网络中的节点确定所述二次签名后的合约是生效的合约。
本发明实施例提供的智能合约处理装置可以具体用于执行上述图3所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过交易节点在区块链网络中广播交易双方的身份信息,以及存储有合约的存储节点的地址信息,而并不是将合约本身的内容广播到区块链网络中,由于地址信息的大小小于合约本身内容的大小,因此,降低了区块链网络的传输压力,对于区块链网络中的单个节点而言,节省了单个节点的存储空间,同时,将合约本身内容存储在存储节点上而不是广播到区块链网络中,提高了交易的安全性。
综上所述,本发明实施例通过交易节点在区块链网络中广播交易双方的身份信息,以及存储有合约的存储节点的地址信息,而并不是将合约本身的内容广播到区块链网络中,由于地址信息的大小小于合约本身内容的大小,因此,降低了区块链网络的传输压力,对于区块链网络中的单个节点而言,节省了单个节点的存储空间,同时,将合约本身内容存储在存储节点上而不是广播到区块链网络中,提高了交易的安全性。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种智能合约处理方法,其特征在于,包括:
第一交易节点接收第二交易节点在区块链网络中广播的消息,所述消息包括所述第一交易节点的身份信息、所述第二交易节点的身份信息、以及存储节点的地址信息,所述存储节点存储有第二交易节点签名后的合约,所述合约是所述第一交易节点和所述第二交易节点进行交易时所用的合约;
所述第一交易节点根据所述存储节点的地址信息,从所述存储节点中获取第二交易节点签名后的合约;
若所述第一交易节点确定与所述第二交易节点进行交易,则所述第一交易节点对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约;
所述第一交易节点将所述二次签名后的合约存储到所述存储节点。
2.根据权利要求1所述的方法,其特征在于,所述第一交易节点对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约之后,还包括:
所述第一交易节点将所述二次签名后的合约广播到所述区块链网络中,以使所述区块链网络中的其他区块链节点确定所述二次签名后的合约是生效的合约。
3.根据权利要求2所述的方法,其特征在于,所述第二交易节点签名后的合约是所述第二交易节点采用所述第二交易节点的私钥对所述合约签名后的合约。
4.根据权利要求3所述的方法,其特征在于,所述第一交易节点对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约,包括:
所述第一交易节点采用所述第一交易节点的私钥对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述区块链网络中的区块中存储有至少一个存储节点的标识信息和地址信息。
6.一种智能合约处理装置,应用于第一交易节点,其特征在于,包括:
接收模块,用于接收第二交易节点在区块链网络中广播的消息,所述消息包括所述第一交易节点的身份信息、所述第二交易节点的身份信息、以及存储节点的地址信息,所述存储节点存储有第二交易节点签名后的合约,所述合约是所述第一交易节点和所述第二交易节点进行交易时所用的合约;
获取模块,用于根据所述存储节点的地址信息,从所述存储节点中获取第二交易节点签名后的合约;
签名模块,用于当所述第一交易节点确定与所述第二交易节点进行交易时,对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约;
发送模块,用于将所述二次签名后的合约发送给所述存储节点,以使所述存储节点存储所述二次签名后的合约。
7.根据权利要求6所述的智能合约处理装置,其特征在于,所述发送模块还用于将所述二次签名后的合约广播到所述区块链网络中,以使所述区块链网络中的其他区块链节点确定所述二次签名后的合约是生效的合约。
8.根据权利要求7所述的智能合约处理装置,其特征在于,所述第二交易节点签名后的合约是所述第二交易节点采用所述第二交易节点的私钥对所述合约签名后的合约。
9.根据权利要求8所述的智能合约处理装置,其特征在于,所述签名模块具体用于采用所述第一交易节点的私钥对所述第二交易节点签名后的合约进行再次签名得到二次签名后的合约。
10.根据权利要求6-9任一项所述的智能合约处理装置,其特征在于,所述区块链网络中的区块中存储有至少一个存储节点的标识信息和地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711037064.9A CN107846278B (zh) | 2017-10-30 | 2017-10-30 | 智能合约处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711037064.9A CN107846278B (zh) | 2017-10-30 | 2017-10-30 | 智能合约处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107846278A CN107846278A (zh) | 2018-03-27 |
CN107846278B true CN107846278B (zh) | 2020-02-14 |
Family
ID=61681896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711037064.9A Active CN107846278B (zh) | 2017-10-30 | 2017-10-30 | 智能合约处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107846278B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647951A (zh) * | 2018-03-28 | 2018-10-12 | 深圳市网心科技有限公司 | 基于区块链的数字信息交易方法、系统、装置及存储设备 |
CN108769144A (zh) * | 2018-05-11 | 2018-11-06 | 中国联合网络通信集团有限公司 | 存储处理方法、交易节点、存储节点及通信设备 |
CN109034832A (zh) * | 2018-06-13 | 2018-12-18 | 湖南搜云网络科技股份有限公司 | 区块链的信息处理方法及装置、信息处理节点及存储介质 |
CN110610361A (zh) * | 2018-06-14 | 2019-12-24 | 普天信息技术有限公司 | 基于区块链的企业数据签名方法及装置 |
CN108848096B (zh) * | 2018-06-25 | 2021-06-01 | 中国联合网络通信集团有限公司 | 处理服务合约的方法、装置、设备及计算机可读存储介质 |
CN109345264B (zh) * | 2018-08-21 | 2021-08-24 | 太原理工大学 | 一种基于区块链的酒类产品溯源防伪系统和方法 |
CN109034814B (zh) * | 2018-09-14 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 基于以太坊虚拟机的智能合约处理方法和装置 |
CN110309259B (zh) | 2018-10-10 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 审计结果数据存储、查询方法、审计项存储方法及装置 |
CN109614824A (zh) * | 2018-11-19 | 2019-04-12 | 上海景峰制药有限公司 | 一种基于区块链的药物数据管理方法、装置及服务器 |
CN111290776B (zh) * | 2018-12-10 | 2023-05-16 | 航天信息股份有限公司 | 一种用于管理区块链节点的管理装置及方法 |
CN109710694A (zh) * | 2018-12-26 | 2019-05-03 | 深圳市网心科技有限公司 | 数据处理方法、设备、存储介质和区块链系统 |
CN109660984B (zh) * | 2019-01-04 | 2021-11-30 | 中国联合网络通信集团有限公司 | 携号转网方法、设备及计算机可读存储介质 |
US11372817B2 (en) * | 2019-04-18 | 2022-06-28 | International Business Machines Corporation | Synchronization of peers |
CN110336833B (zh) * | 2019-07-30 | 2022-06-21 | 中国工商银行股份有限公司 | 基于区块链的图片内容共识方法、服务器 |
CN110417889B (zh) * | 2019-07-30 | 2022-02-01 | 中国联合网络通信集团有限公司 | 一种基于ipfs的数据传输方法及装置 |
CN112488700B (zh) * | 2019-08-20 | 2024-04-05 | 本无链科技(深圳)有限公司 | 一种用于区块链的双重签名交易账方法及系统 |
CN111835929B (zh) * | 2020-07-14 | 2022-02-25 | 中国联合网络通信集团有限公司 | 基于区块链的话费交易方法及系统 |
CN112232883A (zh) * | 2020-10-26 | 2021-01-15 | 上海优扬新媒信息技术有限公司 | 基于区块链的业务行为激励方法、设备以及存储介质 |
CN112365347A (zh) * | 2020-11-12 | 2021-02-12 | 杭州卓健信息科技有限公司 | 一种基于区块链的药物研发临床医疗数据安全共享系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105976231A (zh) * | 2016-06-24 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 基于区块链智能合约的资产管理方法及节点 |
CN106559211A (zh) * | 2016-11-22 | 2017-04-05 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
CN106778329A (zh) * | 2016-11-28 | 2017-05-31 | 中国银行股份有限公司 | 一种区块链智能合约模板动态更新方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9849364B2 (en) * | 2016-02-02 | 2017-12-26 | Bao Tran | Smart device |
-
2017
- 2017-10-30 CN CN201711037064.9A patent/CN107846278B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105976231A (zh) * | 2016-06-24 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 基于区块链智能合约的资产管理方法及节点 |
CN106559211A (zh) * | 2016-11-22 | 2017-04-05 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
CN106778329A (zh) * | 2016-11-28 | 2017-05-31 | 中国银行股份有限公司 | 一种区块链智能合约模板动态更新方法、装置及系统 |
Non-Patent Citations (3)
Title |
---|
众筹区块链上的智能合约设计;黄洁华等;《信息安全研究》;20170305(第03期);全文 * |
智能合约如何可信地与外部世界交互;李赫等;《中国金融电脑》;20170807(第08期);全文 * |
智能合约的形式化验证方法;胡凯等;《信息安全研究》;20161205(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107846278A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107846278B (zh) | 智能合约处理方法及装置 | |
CN107809484B (zh) | 区块链交易信息处理方法及区块链节点 | |
AU2019204733B2 (en) | Performing parallel execution of transactions in a distributed ledger system | |
US11461310B2 (en) | Distributed ledger technology | |
CN111556120B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN108924130B (zh) | 一种区块数据的验证方法、装置、设备和存储介质 | |
Liu et al. | Distributed ledger technology | |
EP3439231A1 (en) | Private node, processing method for private node, and program for same | |
CN111861477A (zh) | 基于区块链的交易后数据处理方法、装置和计算机设备 | |
CN110458709B (zh) | 资源转移信息的传输方法和装置、存储介质、电子装置 | |
AU2019380381A1 (en) | Smart logistics management using blockchain | |
CN111416709B (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN111126987B (zh) | 资源转移信息的处理方法和装置、存储介质及电子装置 | |
CN111639938A (zh) | 数据处理方法、装置、设备及介质 | |
CN111597264A (zh) | 一种区块链记账方法及装置 | |
CN110245182B (zh) | 用于处理分布式数据的方法、设备、装置和介质 | |
US20230142659A1 (en) | System and method for registering share of asset of which owner cannot be specified or ownership does not exist | |
Bilal et al. | Blockchain technology: Opportunities & challenges | |
CN110417917B (zh) | 用于票据流转的方法、系统、计算机设备和介质 | |
KR102633664B1 (ko) | 가상자산의 주소 공증 방법 및 장치 | |
CN114154969B (zh) | 一种基于区块链的大型交易和结算方法 | |
Masseport et al. | Proof of usage: User-centric consensus for data provision and exchange | |
CN112884562B (zh) | 基于区块链的抵押处理方法、装置及可读存储介质 | |
CN114066451A (zh) | 管理资金交易的方法和系统、电子设备 |
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 |