基于区块链智能合约实现加密电子合同的签约方法及设备
技术领域
本发明涉及区块链及数字签名技术领域,特别涉及一种基于区块链智能合约实现加密电子合同的签约方法及设备。
背景技术
区块链技术,从本质上讲,它是一个分布式共享数据库,存储于其中的数据或信息,具有不可伪造、全程留痕、可以追溯、公开透明、集体维护等特征。智能合约是区块链的一项核心技术,是应用***与区块链***进行交互的桥梁。智能合约基于区块链上不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款,允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
数字签名,是一种功能类似写在纸上的普通签名、但是使用了公钥加密领域的技术,以用于鉴别数字信息的方法。数字签名了的文件的完整性是很容易验证的,不需要骑缝章、骑缝签名,也不需要笔迹鉴定,而且数字签名具有不可抵赖性,即不可否认性,不需要笔迹专家来验证。为了使数字签名具备身份属性,需使用数字证书认证机构生成的数字证书及私钥。数字证书颁发机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。数字证书是用于公开密钥基础建设的电子文件,用来证明公开密钥拥有者的身份。此文件包含了公钥信息、拥有者身份信息、以及数字证书认证机构对这份文件的数字签名,以保证这个文件的整体内容正确无误。
随着区块链技术的发展及日趋成熟,越来越多的科技工作者开始研究如何将电子合同签约应用与区块链技术进行结合,以达到其对客观性、合法性、真实性的要求,并解决传统中心化服务所带来的安全性及可用性问题。然而由于区块链是一个开放的共享数据库,如何保证合同信息***露,是本技术领域的一大热门研究方向。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于区块链智能合约实现加密电子合同的签约方法及设备。有效保证合同的保密性、客观性、合法性以及真实性。
本发明的第一方面,提供了一种基于区块链智能合约实现加密电子合同的签约方法,包括以下步骤:
S100、全部签约方从可信任的数字证书颁发机构获取对应的数字证书和私钥,并将各自的数字证书上传至电子合同签约***;
S200、第一签约方创建电子合同,为电子合同添加本方数字证书并通过本方私钥完成数字签名;
S300、所述第一签约方为电子合同添加剩余所有签约方的数字证书;
S400、所述电子合同签约***通过调用智能合约对电子合同的数字签名进行验证,若验证成功,则所述智能合约根据步骤S300所添加数字证书的数量,复制相同数量的电子合同,并使用相应签约方的公钥为复制的相应电子合同进行一一对应加密;
S500、所述智能合约将所有电子合同打包成区块,存储于区块链分布式账本中;
S600、下一签约方获取相应电子合同,解密所获取的电子合同,确认电子合同的信息无误后,通过本方私钥完成对该电子合同的数字签名;
S700、所述智能合约更新存储于所述区块链分布式账本中的电子合同;
S800、重复步骤S600至步骤S700,直至所有签约方都完成对相应电子合同的数字签名。
根据本发明的实施例,至少具有如下技术效果:
本方法将电子合同通过去中心化的区块链技术存在在分布式账本中,相比中心化服务更加安全,合同数据不可篡改,整个签约过程可追溯,提高了安全性;本方法通过电子合同签约***调用智能合约处理电子合同,确保规则透明,有效防止暗箱操作,并利用非对称加密技术,对合同进行加密处理,使其除签约方以外其他所有人都无法查看到合同信息,避免商业机密泄露等不良现象出现;本方法不需要签约方成为区块链***的节点,而可以利用已有的公链或联盟链,这相比其他解决方案降低了门槛,提高了易用性。综上,本方法有效保证了合同的保密性、客观性、合法性以及真实性。
本发明的第二方面,提供了一种基于区块链智能合约实现加密电子合同的签约设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如本发明第一方面所述的一种基于区块链智能合约实现加密电子合同的签约方法。
本发明的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本发明第一方面所述的基于区块链智能合约实现加密电子合同的签约方法。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例提供的一种基于区块链智能合约实现加密电子合同的签约方法的流程示意图;
图2为本发明实施例提供的电子合同创建时第一签约方签名后的数据结构图;
图3为本发明实施例提供的电子合同附加所有签约方的数字证书后的数据结构图;
图4为本发明实施例提供的智能合约首次处理完电子合同后的数据结构图;
图5为本发明实施例提供的电子合同全部签约完成后的数据结构图;
图6为本发明实施例提供的一种基于区块链智能合约实现加密电子合同的签约设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
第一实施例;
参照图1,提供一种基于区块链智能合约实现加密电子合同的签约方法,包括以下步骤:
S100、全部签约方从可信任的数字证书颁发机构获取对应的数字证书和私钥,并将各自的数字证书上传至电子合同签约***。
S200、第一签约方创建电子合同,为电子合同添加本方数字证书并通过本方私钥完成数字签名。
在本步骤中,第一签约方首先在电子合同签约***中创建一份电子合同,为该份电子合同附加本方的数字证书,另外通过第一签约方的私钥完成对该份电子合同的数字签名。
S300、第一签约方为电子合同添加剩余所有签约方的数字证书。
S400、电子合同签约***通过调用智能合约对电子合同的数字签名进行验证,若验证成功,则智能合约根据步骤S300所添加数字证书的数量,复制相同数量的电子合同,并使用相应签约方的公钥为复制的相应电子合同进行一一对应加密。
在本步骤中,智能合约对电子合同的数字签名进行验证的具体过程为:智能合约首先使用第一签约方的公钥(此公钥来自第一签约方上传的数字证书)对第一签约方对应的数字签名进行解密,得到解密信息;然后对电子合约中的信息进行哈希摘要处理,得到数字摘要信息;最后将解密信息和数字摘要信息进行对比,若一致,则验证成功。
提供一示例,若签约方为三方,则步骤S300添加的数字证书数量为2个,智能合约复制出2个电子合同,并使用第二签约方的公钥为复制的其中一个电子合同进行加密,使用第三签约方对剩余的一个电子合同进行加密。
S500、智能合约将所有电子合同打包成区块,存储于区块链分布式账本中。
本步骤属于上链的过程,将电子合同通过去中心化的区块链技术存储于分布式账本中,相比中心化服务更加安全,合同数据不可篡改,整个签约过程可追溯,提高安全性。
S600、下一签约方获取相应电子合同,解密所获取的电子合同,确认电子合同的信息无误后,通过本方私钥完成对该电子合同的数字签名。
对应于步骤S400的加密过程,这里下一签约方通过本方私钥进行解密。
S700、智能合约更新存储于区块链分布式账本中的电子合同。
由于步骤S600中签约方对相应电子合同添加了数字签名,因此智能合约需要将添加的数字签名更新到区块链分布式账本中的相应电子合同中。
S800、重复步骤S600至步骤S700,直至所有签约方都完成对相应电子合同的数字签名。
本方法实施例的优点如下:
本方法将电子合同通过去中心化的区块链技术存在在分布式账本中,相比中心化服务更加安全,合同数据不可篡改,整个签约过程可追溯,提高了安全性;本方法通过电子合同签约***调用智能合约处理电子合同,确保规则透明,有效防止暗箱操作,并利用非对称加密技术,对合同进行加密处理,使其除签约方以外其他所有人都无法查看到合同信息,避免商业机密泄露等不良现象出现;本方法不需要签约方成为区块链***的节点,而可以利用已有的公链或联盟链,这相比其他解决方案降低了门槛,提高了易用性。综上,本方法有效保证了合同的保密性、客观性、合法性以及真实性。
作为一种可选的实施方式,在步骤S100中,当第一签约方创建电子合同之后,还包括步骤:第一签约方将电子合同发送至剩余所有签约方确认,若接收到剩余所有签约方确认无误的指令,则第一签约方为电子合同添加本方数字证书并通过本方私钥完成对电子合同数字签名。本实施例能够在第一签约方创建电子合同之后,使其余签约方第一时间检查创建的电子合同是否有误。
作为一种可选的实施方式,在步骤S500之后,还包括步骤:智能合约根据步骤S300添加的数字证书,向未签约的剩余所有签约方发送通知签约指令。通过本实施例方法,智能合约能够第一时间主动通知未签约的剩余所有签约方进行签约,提高签约效率。
作为一种可选的实施方式,在上述方法实施例的步骤S600中,下一签约方获取相应电子合同的实施过程如下:首先任意下一签约方在电子合同签约***中发送查询指令;其次电子合同签约***在接收到查询指令之后,调用智能合约;然后智能合约从区块链中找到对应区块,再从对应区块中找到对应电子合同,将该份电子合同发送至该签约方。当然的,也可由智能合同主动将相应电子合同发送给相应签约方。
作为一种可选的实施方式,上述方法实施例的步骤S600之后,还包括步骤:电子合同签约***对已完成的所有数字签名进行验证,若验证成功,则进入步骤S700。具体的:智能合约会根据签约方解密后的合同信息,依次验证电子合同中已存在的数字签名,确保签约方所签署的合同信息完全一致,这里验证数字签名的过程同上述方法实施例中验证数字签名的过程相同,此处不再赘述。
作为一种可选的实施方式,上述方法实施例的步骤S800之后,还包括步骤:每一签约方对其余所有签约方的数字签名进行验证。当全部的签约方都完成签名之后,除了智能合约会对数字签名进行验证,每一签约方还均会对除本方数字签名之外的所有数字签名进行验证,这样能够提高安全性,也能确保签名的有效性。
第二实施例;
为了便于理解,提供一个以A、B、C三家企业共同签署一份编号H00001的合同为例:
第一步:A、B、C三家企业在使用电子合同签约***前,必须向受信任的数字证书颁发机构申请数字证书及私钥,例如中国金融认证中心(CFCA)等,并将数字证书上传到电子合同签约***(私钥无需上传)。此步骤只需完成一次。
第二步:企业A使用电子合同签约***的富文本编辑器创建合同H000001,并将合同发送给企业B及企业C确认。三家企业均确认无误后,企业A使用私钥对合同哈希处理后的摘要信息进行签名,并将数字证书及数字签名信息附加到合同H000001后面,如图2所示。
第三步:企业A通过电子合同签约***搜到企业B以及企业C的数字证书,并将它们附加到合同H000001后面,如图3所示。完成后企业A将合同H000001进行提交。提交后,电子合同签约***将调用对应的区块链智能合约,将合同H000001发送给智能合约进行处理。
第四步:智能合约接收到电子合同签约***发送过来的合同H000001后,如图3所示,先使用数字证书A中所包含的企业A公钥,对数字签名A进行解密,得到解密后的信息X1。同时,智能合约对合同H000001的信息部分进行哈希处理,获得摘要信息X2。随后,智能合约将X1与X2进行比对,如果一致,则进行后续处理,否则,返回签名验证失败的错误并停止处理。
第五步:合同H000001的数字签名A验证通过后,智能合约将合同H000001复制两份,此时企业A、B、C分别对应一份内容完全一致的合同,合同H000001变为一式三份。随后,智能合约依次使用数字证书A、数字证书B、数字证书C中的公钥对这三份合同进行加密,形成如图4所示的数据结构体。
第六步:智能合约将处理后的合同H000001打包成区块,写入区块链***的分布式账本中。同时,电子合同签约***自动发送消息,通知企业B以及企业C完成合同H000001的数字签名。
第七步:企业B接收到消息后,通过电子合同签约***的查询功能,从区块链中读取到合同H000001的数据。企业B使用私钥对使用了企业B公钥加密的那份合同(即图4中中间那份合同)进行解密,确认合同信息无误后,使用私钥完成数字签名B并提交。电子签约***自动将数字签名B添加到对应合同的后面,如图5中间那份合同。随后,电子合同***将调用智能合约,智能合约将更新后的合同H000001创建一个新的区块写入区块链***的分布式账本。
第八步:企业C对合同H000001进行数字签名的操作同第七步。本实施例对企业B和企业C签署的顺序无要求。待合同H000001的所有签约方签署完毕后,电子合同签约***将发送合同签署完毕的消息给企业A、企业B、企业C。
综上所述,本实施例具有以下有益效果:
将电子合同通过去中心化的区块链技术存在在分布式账本中,相比中心化服务更加安全,合同数据不可篡改,整个签约过程可追溯;使用智能合约处理电子合同,确保规则透明,有效防止暗箱操作,并巧妙利用非对称加密技术,对合同进行加密处理,使其除签约方以外其他所有人都无法查看到合同信息,避免商业机密泄露等不良现象出现。同时,本方法不需要签约用户成为区块链***的节点,而是利用已有的公链或联盟链即可,这相比其他解决方案降低了门槛,提高了易用性。综上所述,本方法有效保证了合同的保密性、客观性、合法性以及真实性。
第三实施例;
参照图6,本发明的一个实施例,提供了一种基于区块链智能合约实现加密电子合同的签约设备,该设备可以是任意类型的智能终端,例如手机、平板电脑、个人计算机等。具体地,该设备包括:一个或多个控制处理器和存储器,这里以一个控制处理器为例。控制处理器和存储器可以通过总线或者其他方式连接,这里以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本发明实施例中的基于区块链智能合约实现加密电子合同的签约设备对应的程序指令/模块。控制处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而实现上述方法实施例的基于区块链智能合约实现加密电子合同的签约方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于控制处理器远程设置的存储器,这些远程存储器可以通过网络连接至该基于区块链智能合约实现加密电子合同的签约设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个控制处理器执行时,执行上述方法实施例中的基于区块链智能合约实现加密电子合同的签约方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行上述方法实施例中的基于区块链智能合约实现加密电子合同的签约方法。
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现。本领域技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read Only Memory ,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。