CN109635572B - 一种基于区块链的合约签订方法、装置及终端设备 - Google Patents
一种基于区块链的合约签订方法、装置及终端设备 Download PDFInfo
- Publication number
- CN109635572B CN109635572B CN201811311691.1A CN201811311691A CN109635572B CN 109635572 B CN109635572 B CN 109635572B CN 201811311691 A CN201811311691 A CN 201811311691A CN 109635572 B CN109635572 B CN 109635572B
- Authority
- CN
- China
- Prior art keywords
- contract
- block chain
- participant
- initiator
- signature
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 239000003999 initiator Substances 0.000 claims abstract description 109
- 230000008569 process Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication 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
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development 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
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请适用于区块链技术领域,提供了一种基于区块链的合约签订方法、装置及终端设备,方法包括:获取数量与合约参与者数量一致的合约;分别使用各个合约参与者的参与者公钥对合约进行加密;对合约内容进行哈希运算得到第一哈希值,使用发起者私钥对第一哈希值加密得到发起者签名;将发起者签名和各份经过加密的合约广播至区块链中;从区块链中获取各个合约参与者广播的参与者签名,分别使用各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;若各个第二哈希值均与第一哈希值一致,合约签订完成。本申请可以解决现有的区块链合约签订方法,将合约内容直接广播在区块链中,合约签订者难以使用区块链进行一些私密合约的签订的问题。
Description
技术领域
本申请属于区块链技术领域,尤其涉及一种基于区块链的合约签订方法、装置及终端设备。
背景技术
随着互联网的发展,出现了网络签约的合约签订模式,但是在网络上签订合约时,合约签订的双方往往担心会在签订过程或者持有过程中因他人的恶意网络攻击而出现合约内容被篡改或丢失的情况,导致大众难以信任网络签约的安全性和可靠性。
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。鉴于区块链不可篡改和不可伪造的特性,使用区块链进行网络签约可以在合约签订时对合约内容进行验证,防止合约内容被篡改,提高签约者对合约内容的信任度,同时,在合约持有过程,即使签订者本地的数据库受到攻击,攻击者也无法同时篡改其他区块链节点的合约数据。
但是,当前的区块链合约签订方法中,往往将合约内容直接广播在区块链中,合约签订者难以使用区块链进行一些私密合约的签订。
发明内容
有鉴于此,本申请实施例提供了一种基于区块链的合约签订方法、装置及终端设备,以解决现有的区块链合约签订方法,将合约内容直接广播在区块链中,合约签订者难以使用区块链进行一些私密合约的签订的问题。
本申请实施例的第一方面提供了一种基于区块链的合约签订方法,包括:
获取数量与合约参与者数量一致的合约,各份所述合约的合约内容一致;
分别使用各个合约参与者的参与者公钥对所述合约进行加密,所述各个合约参与者的公钥与所述合约为一一对应的关系;
对所述合约内容进行哈希运算得到第一哈希值,使用发起者私钥对所述第一哈希值加密得到发起者签名;
将所述发起者签名和各份经过加密的合约广播至区块链中;
从区块链中获取各个合约参与者广播的参与者签名,分别使用所述各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;
若各个所述第二哈希值均与所述第一哈希值一致,合约签订完成。
本申请实施例的第二方面提供了另一种基于区块链的合约签订方法,包括:
从区块链中获取合约发起者广播的发起者签名和经过加密的合约;
使用参与者私钥对所述合约进行解密得到解密后的合约,使用发起者公钥对所述发起者签名进行解密得到第一哈希值;
对所述合约的合约内容进行哈希运算得到第二哈希值;
若所述第一哈希值与所述第二哈希值一致,使用参与者私钥对所述第二哈希值加密得到参与者签名;
将所述参与者签名广播至区块链中。
本申请实施例的第三方面提供了一种基于区块链的合约签订装置,包括:
合约生成模块,用于获取与合约参与者数量一致的合约,各份所述合约的合约内容一致;
合约加密模块,用于分别使用各个合约参与者的参与者公钥对所述合约进行加密,所述各个合约参与者的公钥与所述合约为一一对应的关系;
发起签名模块,用于对所述合约内容进行哈希运算得到第一哈希值,使用发起者私钥对所述第一哈希值加密得到发起者签名;
合约广播模块,用于将所述发起者签名和各份经过加密的合约广播至区块链中;
签名验证模块,用于从区块链中获取各个合约参与者广播的参与者签名,分别使用所述各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;
签订成功模块,用于若各个所述第二哈希值均与所述第一哈希值一致,合约签订完成。
本申请实施例的第四方面提供了另一种基于区块链的合约签订装置,包括:
合约获取模块,用于从区块链中获取合约发起者广播的发起者签名和经过加密的合约;
合约解密模块,用于使用参与者私钥对所述合约进行解密得到解密后的合约,使用发起者公钥对所述发起者签名进行解密得到第一哈希值;
哈希计算模块,用于对所述合约的合约内容进行哈希运算得到第二哈希值;
验证签名模块,用于若所述第一哈希值与所述第二哈希值一致,使用参与者私钥对所述第二哈希值加密得到参与者签名;
签名广播模块,用于将所述参与者签名广播至区块链中。
本申请实施例的第五方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
本申请实施例的第六方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:
本申请的基于区块链的合约签订方法中,合约发起者广播至区块链的合约为经过各个合约参与者的参与者公钥加密的合约,只有各个合约参与者可以通过各自的参与者私钥进行解密获取合约内容,保证合约内容不对其他区块链节点公开,各个区块链节点只需要使用合约发起者和合约参与者的公钥对合约发起者和合约参与者的签名进行解密,判断第二哈希值是否均与第一哈希值一致即可验证合约是否签订完成,不需要得知具体的内容,解决了现有的区块链合约签订方法,将合约内容直接广播在区块链中,合约签订者难以使用区块链进行一些私密合约的签订的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于区块链的合约签订方法的实现流程示意图;
图2是本申请实施例提供的另一种基于区块链的合约签订方法的实现流程示意图;
图3是本申请实施例提供的一种基于区块链的合约签订装置的示意图;
图4是本申请实施例提供的另一种基于区块链的合约签订装置的示意图;
图5是本申请实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本申请实施例中描述的移动终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,上述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的移动终端。然而,应当理解的是,移动终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
移动终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在移动终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一:
下面对本申请实施例一提供的一种基于区块链的合约签订方法进行描述,请参阅附图1,本申请实施例一中的基于区块链的合约签订方法包括:
步骤S101、获取数量与合约参与者数量一致的合约,各份所述合约的合约内容一致;
在签订合约之前,合约发起者需要先获取数量与合约参与者数量一致的合约,各份合约的合约内容一致,例如,有3位合约参与者,则合约发起者获取3份合约内容一致的合约。
合约内容可以为合约发起者创建或者由合约发起者与合约参与者共同协商创建。
步骤S102、分别使用各个合约参与者的参与者公钥对所述合约进行加密,所述各个合约参与者的公钥与所述合约为一一对应的关系;
为了防止合约内容泄露,合约发起者将合约广播至区块链之前对合约进行加密,各个合约参与者的参与者公钥与合约为一一对应的关系,各个参与者公钥分别加密对应的合约,从而得到多份经过加密的合约,例如,有3个合约参与者,则每个合约参与者的参与者公钥对应一份合约,一个参与者公钥加密一份合约,加密后得到3分经过加密的合约。
步骤S103、对所述合约内容进行哈希运算得到第一哈希值,使用发起者私钥对所述第一哈希值加密得到发起者签名;
为了证明广播至区块链中的合约是合约发起者广播的,合约发起者需要创建发起者签名。
合约发起者对合约内容进行哈希运算得到第一哈希值,然后使用发起者私钥对第一哈希值加密得到发起者签名,由于非对称加密方式中,公私钥互为解密,所以如果其他节点可以使用发起者公钥对发起者签名解密,则证明该签名是合约发起者创建的。
步骤S104、将所述发起者签名和各份经过加密的合约广播至区块链中;
创建了发起者签名之后,合约发起者将发起者签名和各份经过加密的合约广播至区块链中,各个节点均可从区块链中获取合约发起者广播的内容。
此时,根据需要还可以将当前的时间戳广播至区块链当中,以记录合同签约的发起时间,时间戳可以具体为由国家授时中心发布的可信时间戳。
步骤S105、从区块链中获取各个合约参与者广播的参与者签名,分别使用所述各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;
合约发起者将发起者签名和各份经过加密的合约广播至区块链之后,合约参与者可以从区块链中获取发起者签名和经过加密的合约。
合约参与者可以使用发起者公钥对发起者签名进行验证,使用参与者私钥对其中一份经过加密的合约进行解密。
如果合约参与者同意签署合约,可对合约内容进行哈希运算得到第二哈希值,使用参与者私钥对第二哈希值进行加密得到参与者签名,并将参与者签名广播至区块链中。
合约发起者可从区块链中获取各个合约参与者广播的参与者签名,分别使用各个合约参与者的参与者公钥解密对应的参与者签名,若解密成功,则证明该签名是对应的合约参与者的签名,解密失败,则证明该签名并非是合约参与者的签名。
对各个参与者签名进行解密后可以得到数量与合约参与者数量一致的第二哈希值。
步骤S106、若各个所述第二哈希值均与所述第一哈希值一致,合约签订完成。
由于哈希运算当中,若计算的内容稍有变化,则哈希运算的哈希值就会发生剧变,因此,通过第二哈希值是否与第一哈希值一致可以判断该合约参与者进行哈希运算的合约内容是否与合约发起者进行哈希运算的合约内容一致。
若各个第二哈希值均与第一哈希值一致,则表示合约参与者进行哈希运算的合约内容与合约发起者进行哈希运算的合约内容一致,合约签订完成。
若存在第二哈希值与第一哈希值不一致,则表示可能是合约参与者查看的合约内容出现问题,或者合约参与者进行哈希运算时,并非是对合约内容进行哈希运算,此时合约签订失败,需要排查中间环节。
进一步地,所述方法还包括:
A1、若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败。
由于合同是一种具有时效性的文件,合同内商定的条款可能在当前时间点能够被各方接收,但是过了一段时间之后,可能又会因为形势的变化需要重新商定条款,因此,如果不对合同的签约时间进行限定,容易产生一些纠纷,例如一些签约者观望形势,明确了合同内的条款对己方有利才签约,这样必然损害其他签约者的利益,产生纠纷矛盾。
对此,在签订合约的过程中,可以设置一个预置时长的签订时间,若合约发起者在区块链中广播合约后的预置时长内,存在任意一个合约参与者的参与者签名未广播至区块链中,则合约签订失败。
预置时长可以根据实际情况进行确定,例如可以设置为3天。
当合约签订完成后,合约发起方可以将合约签订完成信息发送至区块链中,也可以直接设置各个第二哈希值均与第一哈希值一致时,各个区块链节点就默认合约签订完成。
由于区块链具有不可篡改和不可伪造的特性,因此,一旦合约的签约过程和各方的签名被区块链所记录,不管是合约发起者和合约参与者均无法私自篡改和伪造合约签订的过程和合约的内容,区块链上记录的数据可作为日后执行合约内容或者处理合约纠纷的依据。
当需要从区块链中获取合约的合约内容和合约的签订过程作为执行合约内容或处理合约纠纷的依据时,可以从区块链的各个节点获取该节点记录的区块链数据,以51%节点认可的区块链数据作为标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
本实施例一提供的基于区块链的合约签订方法中,不直接将合约的内容公布在区块链中,而是获取数量与合约参与者数量一致的合约,分别使用各个合约参与者的参与者公钥加密对应的合约,然后再将合约广播至区块链中,只有合约参与者可以通过参与者私钥进行解密查看合约,其余节点只负责记录,无法查看合约的具体内容。
为了让各个节点均可以验证合约是否签订完成,合约发起者对合约内容进行哈希运算得到第一哈希值,并用发起者私钥加密后广播至区块链中,合约参与者对合约内容进行哈希运算得到第二哈希值,用各自的参与者私钥加密后广播至区块链中,区块链中的各个节点均可以使用合约发起者和合约参与者的公钥对合约发起者和合约参与者的身份进行验证,并且通过第一哈希值和第二哈希值是否一致验证合约是否签订完成,在无需得知具体内容的情况记录和验证整个合约签订过程,解决了现有的区块链合约签订方法,将合约内容直接广播在区块链中,合约签订者难以使用区块链进行一些私密合约的签订的问题。
此外,可以设置一个预置时长的签订时间,若在预置时长内任意一个合约参与者未发布参与者签名,则合约签订失败,从而保证合约的公平性和时效性。
在执行合约内容或者处理合约纠纷时,可以从区块链中获取标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例二:
下面对本申请实施例二提供的另一种基于区块链的合约签订方法进行描述,请参阅附图2,本申请实施例二中的基于区块链的合约签订方法包括:
步骤S201、从区块链中获取合约发起者广播的发起者签名和经过加密的合约;
当合约参与者检测到合约发起者已经发起者签名和经过加密的合约广播至区块链中时,从区块链中获取合约发起者广播的发起者签名和经过加密的合约。
步骤S202、使用参与者私钥对所述合约进行解密得到解密后的合约,使用发起者公钥对所述发起者签名进行解密得到第一哈希值;
之后可以使用参与者私钥对合约进行解密,解密成功后可正常查看合约的内容,使用发起者公钥对发起者签名进行解密,解密成功即完成发起者身份验证。
若经过加密的合约解密失败或者无法使用发起者公钥对发起者签名解密,可广播合约签订失败信息至区块链中,各方检查中间环节。
步骤S203、对所述合约的合约内容进行哈希运算得到第二哈希值;
对使用发起者公钥对发起者签名进行验证之后,还需要验证合约内容是否被更改,此时可对合约的合约内容进行哈希运算,得到第二哈希值。
步骤S204、若所述第一哈希值与所述第二哈希值一致,使用参与者私钥对所述第二哈希值加密得到参与者签名;
由于哈希运算中,若计算的内容稍有变化,则哈希运算的哈希值就会发生剧变,而第一哈希值由合约发起者对合约内容哈希运算得到,所以若第二哈希值与第一哈希值一致,则表示合约内容并未被更改。
此时若合约参与者同意合约中记载的内容,可以使用参与者私钥对第二哈希值进行加密得到参与者签名。
步骤S205、将所述参与者签名广播至区块链中。
得到参与者签名后,将参与者签名广播至区块链即完成了合约参与者的合约签订流程。
此时,根据需要还可以将当前的时间戳广播至区块链当中,以记录合同签约的发起时间,时间戳可以具体为由国家授时中心发布的可信时间戳。
进一步地,所述方法还包括:
B1、若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败。
在签订合约的过程中,可以设置一个预置时长的签订时间,若合约发起者在区块链中广播合约后的预置时长内,存在任意一个合约参与者的参与者签名未广播至区块链中,则合约签订失败。
当需要从区块链中获取合约的合约内容和合约的签订过程作为执行合约内容或处理合约纠纷的依据时,可以从区块链的各个节点获取该节点记录的区块链数据,以51%节点认可的区块链数据作为标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
本实施例二提供的基于区块链的合约签订方法中,合约参与者可以使用发起者公钥对发起者签名进行验证,使用参与者私钥获取合约的具体内容,并且可以对合约内容进行哈希运算得到第二哈希值,根据第二哈希值是否与第一哈希值一致确定合约内容是否被更改,通过多重验证方式确定合约发起者身份和合约内容的安全性和可靠性,验证完成后,若合约参与者同意合约内容,则可以使用参与者私钥对第二哈希值进行加密得到参与者签名,将参与者签名广播至区块链中表示自己这一方已签名。
此外,可以设置一个预置时长的签订时间,若在预置时长内任意一个合约参与者未发布参与者签名,则合约签订失败,从而保证合约的公平性和时效性。
在执行合约内容或者处理合约纠纷时,可以从区块链中获取标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例三:
本申请实施例三提供了一种基于区块链的合约签订装置,为便于说明,仅示出与本申请相关的部分,如图3所示,基于区块链的合约签订装置包括,
合约生成模块301,用于获取与合约参与者数量一致的合约,各份所述合约的合约内容一致;
合约加密模块302,用于分别使用各个合约参与者的参与者公钥对所述合约进行加密,所述各个合约参与者的公钥与所述合约为一一对应的关系;
发起签名模块303,用于对所述合约内容进行哈希运算得到第一哈希值,使用发起者私钥对所述第一哈希值加密得到发起者签名;
合约广播模块304,用于将所述发起者签名和各份经过加密的合约广播至区块链中;
签名验证模块305,用于从区块链中获取各个合约参与者广播的参与者签名,分别使用所述各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;
签订成功模块306,用于若各个所述第二哈希值均与所述第一哈希值一致,合约签订完成。
进一步地,所述装置还包括:
第一失败模块,用于若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例四:
本申请实施例四提供了一种基于区块链的合约签订装置,为便于说明,仅示出与本申请相关的部分,如图4所示,基于区块链的合约签订装置包括,
合约获取模块401,用于从区块链中获取合约发起者广播的发起者签名和经过加密的合约;
合约解密模块402,用于使用参与者私钥对所述合约进行解密得到解密后的合约,使用发起者公钥对所述发起者签名进行解密得到第一哈希值;
哈希计算模块403,用于对所述合约的合约内容进行哈希运算得到第二哈希值;
验证签名模块404,用于若所述第一哈希值与所述第二哈希值一致,使用参与者私钥对所述第二哈希值加密得到参与者签名;
签名广播模块405,用于将所述参与者签名广播至区块链中。
进一步地,所述装置还包括:
第二失败模块,用于若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例五:
图5是本申请实施例五提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各方法实施例中的步骤,例如图1所示的步骤S101至S106。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至306的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。例如,所述计算机程序52可以被分割成合约生成模块、合约加密模块、发起签名模块、合约广播模块、签名验证模块以及签订成功模块,各模块具体功能如下:
获取数量与合约参与者数量一致的合约,各份所述合约的合约内容一致;
分别使用各个合约参与者的参与者公钥对所述合约进行加密,所述各个合约参与者的公钥与所述合约为一一对应的关系;
对所述合约内容进行哈希运算得到第一哈希值,使用发起者私钥对所述第一哈希值加密得到发起者签名;
将所述发起者签名和各份经过加密的合约广播至区块链中;
从区块链中获取各个合约参与者广播的参与者签名,分别使用所述各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;
若各个所述第二哈希值均与所述第一哈希值一致,合约签订完成。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (6)
1.一种基于区块链的合约签订方法,其特征在于,包括:
在签订合约之前,获取数量与合约参与者数量一致的合约,各份所述合约的合约内容一致,合约内容为合约发起者创建或者由合约发起者与合约参与者共同协商创建;
在合约被广播至区块链之前,分别使用各个合约参与者的参与者公钥对对应的所述合约进行加密,从而得到多份经过加密的合约,所述各个合约参与者的公钥与所述合约为一一对应的关系;
对所述合约内容进行哈希运算得到第一哈希值,使用发起者私钥对所述第一哈希值加密得到发起者签名;
创建发起者签名之后,将所述发起者签名、当前的时间戳和各份经过加密的合约广播至区块链中;
从区块链中获取各个合约参与者广播的参与者签名,分别使用所述各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;
若各个所述第二哈希值均与所述第一哈希值一致,合约签订完成,将合约签订完成信息发送至区块链中;
若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败;
当需要从区块链中获取合约的合约内容和合约的签订过程作为执行合约内容或处理合约纠纷的依据时,从区块链的各个节点获取该节点记录的区块链数据,以51%节点认可的区块链数据作为标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
2.一种基于区块链的合约签订方法,其特征在于,包括:
从区块链中获取合约发起者广播的发起者签名和经过加密的合约;
使用参与者私钥对所述合约进行解密得到解密后的合约,使用发起者公钥对所述发起者签名进行解密得到第一哈希值;
对所述合约的合约内容进行哈希运算得到第二哈希值;
若所述第一哈希值与所述第二哈希值一致,使用参与者私钥对所述第二哈希值加密得到参与者签名;
将所述参与者签名广播至区块链中;
若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败;
当需要从区块链中获取合约的合约内容和合约的签订过程作为执行合约内容或处理合约纠纷的依据时,从区块链的各个节点获取该节点记录的区块链数据,以51%节点认可的区块链数据作为标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
3.一种基于区块链的合约签订装置,其特征在于,包括:
合约生成模块,用于在签订合约之前,获取与合约参与者数量一致的合约,各份所述合约的合约内容一致,合约内容为合约发起者创建或者由合约发起者与合约参与者共同协商创建;
合约加密模块,用于在合约被广播至区块链之前,分别使用各个合约参与者的参与者公钥对对应的所述合约进行加密,从而得到多份经过加密的合约,所述各个合约参与者的公钥与所述合约为一一对应的关系;
发起签名模块,用于对所述合约内容进行哈希运算得到第一哈希值,使用发起者私钥对所述第一哈希值加密得到发起者签名;
合约广播模块,用于创建发起者签名之后,将所述发起者签名、当前的时间戳和各份经过加密的合约广播至区块链中;
签名验证模块,用于从区块链中获取各个合约参与者广播的参与者签名,分别使用所述各个合约参与者的参与者公钥解密对应的参与者签名得到第二哈希值;
签订成功模块,用于若各个所述第二哈希值均与所述第一哈希值一致,合约签订完成;
第一失败模块,用于若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败;
当需要从区块链中获取合约的合约内容和合约的签订过程作为执行合约内容或处理合约纠纷的依据时,从区块链的各个节点获取该节点记录的区块链数据,以51%节点认可的区块链数据作为标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
4.一种基于区块链的合约签订装置,其特征在于,包括:
合约获取模块,用于从区块链中获取合约发起者广播的发起者签名和经过加密的合约;
合约解密模块,用于使用参与者私钥对所述合约进行解密得到解密后的合约,使用发起者公钥对所述发起者签名进行解密得到第一哈希值;
哈希计算模块,用于对所述合约的合约内容进行哈希运算得到第二哈希值;
验证签名模块,用于若所述第一哈希值与所述第二哈希值一致,使用参与者私钥对所述第二哈希值加密得到参与者签名;
签名广播模块,用于将所述参与者签名广播至区块链中;
第二失败模块,用于若在预置时长内存在任意一个合约参与者的参与者签名未广播至区块链,合约签订失败;
当需要从区块链中获取合约的合约内容和合约的签订过程作为执行合约内容或处理合约纠纷的依据时,从区块链的各个节点获取该节点记录的区块链数据,以51%节点认可的区块链数据作为标准区块链数据,从标准区块链数据中获取发起者签名、各份经过加密的合约以及各个参与者签名作为合约判定依据。
5.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1所述方法的步骤,或实现如权利要求2所述方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1所述方法的步骤,或实现如权利要求2所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811311691.1A CN109635572B (zh) | 2018-11-05 | 2018-11-05 | 一种基于区块链的合约签订方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811311691.1A CN109635572B (zh) | 2018-11-05 | 2018-11-05 | 一种基于区块链的合约签订方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109635572A CN109635572A (zh) | 2019-04-16 |
CN109635572B true CN109635572B (zh) | 2021-05-25 |
Family
ID=66067338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811311691.1A Active CN109635572B (zh) | 2018-11-05 | 2018-11-05 | 一种基于区块链的合约签订方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635572B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110998580A (zh) * | 2019-04-29 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 在区块链系统中确认交易有效性的方法和设备 |
CN110149323B (zh) * | 2019-05-06 | 2020-07-10 | 山东公链信息科技有限公司 | 一种具有千万级tps合约处理能力的处理装置 |
CN110222537B (zh) * | 2019-06-17 | 2021-01-29 | 北京瑞策科技有限公司 | 应用于区块链节点的验证方法及装置 |
CN110782347B (zh) * | 2019-10-22 | 2023-02-03 | 全链通有限公司 | 基于区块链的智能合约签署方法、装置及介质 |
CN110796448A (zh) * | 2019-10-22 | 2020-02-14 | 全链通有限公司 | 基于区块链的智能合约验证方法、参与节点及介质 |
CN111400756A (zh) * | 2020-03-13 | 2020-07-10 | 杭州复杂美科技有限公司 | 隐私数据上链方法、设备和存储介质 |
CN111680324B (zh) * | 2020-05-28 | 2023-09-22 | 中国工商银行股份有限公司 | 用于区块链的凭证验证方法、管理方法以及签发方法 |
CN111669268A (zh) * | 2020-06-03 | 2020-09-15 | 北京八分量信息科技有限公司 | 基于区块链的电子数据处理方法、装置及相关产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093352A (zh) * | 2013-01-30 | 2013-05-08 | 江苏金农股份有限公司 | 一种基于支付平台的电子合同签署系统的实现方法 |
CN103440444A (zh) * | 2013-07-16 | 2013-12-11 | 深圳市亚略特生物识别科技有限公司 | 电子合同的签订方法 |
CN106960165A (zh) * | 2017-03-13 | 2017-07-18 | 广东网金控股股份有限公司 | 一种基于区块链智能合约实现电子合同多方会签的方法 |
CN108537046A (zh) * | 2017-03-06 | 2018-09-14 | 才信网络科技(上海)有限公司 | 一种基于区块链技术的在线合同签署系统及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122252B2 (en) * | 2006-02-28 | 2012-02-21 | Kryptiq Corporation | Cascaded digital signatures |
CN106130728B (zh) * | 2016-04-29 | 2019-07-26 | 北京太一云科技有限公司 | 一种基于区块链的数字资产登记方法及其服务器 |
CN106301782B (zh) * | 2016-07-26 | 2020-02-11 | 杭州文签网络技术有限公司 | 一种电子合同的签署方法及系统 |
CN107273410B (zh) * | 2017-05-03 | 2020-07-07 | 上海点融信息科技有限责任公司 | 基于区块链的分布式存储 |
CN107423980A (zh) * | 2017-07-11 | 2017-12-01 | 厦门易功成信息技术有限公司 | 一种供应链上数据交易征信平台及方法 |
CN107578243A (zh) * | 2017-07-27 | 2018-01-12 | 远光软件股份有限公司 | 基于区块链技术的电力交易方法及装置 |
CN108234442B (zh) * | 2017-10-26 | 2020-11-27 | 招商银行股份有限公司 | 获取合约的方法、系统及可读存储介质 |
CN107770182B (zh) * | 2017-10-30 | 2020-09-08 | 中国联合网络通信集团有限公司 | 家庭网关的数据存储方法及家庭网关 |
CN108399567A (zh) * | 2018-03-02 | 2018-08-14 | 数字乾元科技有限公司 | 区块链借贷方法及系统 |
CN108734583A (zh) * | 2018-05-21 | 2018-11-02 | 深圳市梵高夫科技有限公司 | 资源数据管理方法、系统、核心节点及存储介质 |
-
2018
- 2018-11-05 CN CN201811311691.1A patent/CN109635572B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093352A (zh) * | 2013-01-30 | 2013-05-08 | 江苏金农股份有限公司 | 一种基于支付平台的电子合同签署系统的实现方法 |
CN103440444A (zh) * | 2013-07-16 | 2013-12-11 | 深圳市亚略特生物识别科技有限公司 | 电子合同的签订方法 |
CN108537046A (zh) * | 2017-03-06 | 2018-09-14 | 才信网络科技(上海)有限公司 | 一种基于区块链技术的在线合同签署系统及方法 |
CN106960165A (zh) * | 2017-03-13 | 2017-07-18 | 广东网金控股股份有限公司 | 一种基于区块链智能合约实现电子合同多方会签的方法 |
Non-Patent Citations (1)
Title |
---|
公平电子合同签署协议的研究;杨善军;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180415(第4期);第I138-161页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109635572A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635572B (zh) | 一种基于区块链的合约签订方法、装置及终端设备 | |
US11750591B2 (en) | Key attestation statement generation providing device anonymity | |
US9998438B2 (en) | Verifying the security of a remote server | |
TWI727594B (zh) | 塊鏈式帳本中的簽名驗證方法、系統、裝置及設備 | |
US11244054B2 (en) | Method and apparatus for trusted computing | |
TWI740388B (zh) | 基於可信執行環境的操作記錄儲存方法、裝置及設備 | |
CN107545414B (zh) | 匿名交易方法、装置及计算机可读存储介质 | |
TWI734854B (zh) | 資訊安全的驗證方法、裝置和系統 | |
CN109660352B (zh) | 一种基于区块链的分销关系记录方法、装置及终端设备 | |
CA2861221C (en) | Secure peer discovery and authentication using a shared secret | |
CN109905360B (zh) | 数据验证方法及终端设备 | |
TW201931275A (zh) | 用於具有分散式共識之分散式系統中之契約資料之存取控制方法及其契約產生器及驗證伺服器 | |
CN104462965A (zh) | 应用程序完整性验证方法及网络设备 | |
CN112801663B (zh) | 区块链存证方法、装置、系统、设备和介质 | |
CN109660534B (zh) | 基于多商户的安全认证方法、装置、电子设备及存储介质 | |
CN112202779B (zh) | 基于区块链的信息加密方法、装置、设备及介质 | |
CN111683082A (zh) | 一种基于区块链的数据共享方法、系统及电子设备 | |
EP4092984A1 (en) | Data processing method and apparatus, device and medium | |
WO2021036511A1 (zh) | 数据加密存储和读取的方法、终端设备及存储介质 | |
WO2022068234A1 (zh) | 基于共享根密钥的加密方法、装置、设备及介质 | |
CN112636914B (zh) | 一种身份验证方法、身份验证装置及智能卡 | |
CN109547404B (zh) | 数据的获取方法及服务器 | |
CN114499893B (zh) | 基于区块链的投标文件加密存证方法和系统 | |
CN111046440B (zh) | 一种安全区域内容的篡改验证方法及系统 | |
CN114091072A (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 |