本发明涉及智能合约技术领域,尤其涉及一种合同文本的检验方法、装置、设备及计算机可读存储介质。
背景技术:
在进行交易时,会通过智能合约保障交易,但是智能合约的合同文本通常记录在系统文件路径,并且支持支持多次下载,这样合同文本容易被篡改,而且系统无法判断合同文本是否被篡改,按照篡改后的合同文本执行交易可能会导致至少一方交易当事人利益受损。
技术实现要素:
本发明的主要目的在于提供一种合同文本的检验方法、装置、设备及计算机可读存储介质及计算机可读存储介质,旨在解决系统无法判断合同文本被是否篡改的技术问题。
为实现上述目的,本发明提供一种合同文本的检验方法,包括步骤:
从预设地址获取所述初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对所述初始合同文本进行哈希处理得到的第一哈希值;
利用第二预设算法对所述待确定合同文本进行哈希处理得到第二哈希值;
根据所述第一哈希值与所述第二哈希值判断所述待确定合同文本是否被篡改。
优选地,所述初始合同文本包括至少一个交易条件和与所述交易条件对应的交易内容,所述利用所述第二预设算法对所述待确定合同文本进行哈希处理得到第二哈希值的步骤之前,所述检验方法还包括步骤:
判断是否达到初始合同文本中的交易条件;
若达到所述交易条件,则执行所述利用第二预设算法对所述待确定合同文本进行哈希处理得到第二哈希值的步骤。
优选地,所述利用所述第二预设算法对所述待确定合同文本进行哈希处理得到第二哈希值的步骤之前,所述合同文本的检验方法还包括步骤:
若达到所述交易条件,则获取与所述交易条件对应的交易内容的交易金额;
判断所述交易金额是否大于或等于预设阈值;
若所述交易金额大于或等于预设阈值,则执行所述利用所述第二预设算法对所述待确定合同文本进行哈希处理得到第二哈希值的步骤。
优选地,所述从预设地址获取所述初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对所述初始合同文本进行哈希处理得到的第一哈希值的步骤之前,所述合同文本的检验方法还包括步骤:
获取原始合同文本,所述原始合同文本中包含多个所述交易条件,将所述原始合同文本中的至少一个交易条件标记为重要交易,并将标记后的原始合同文本作为所述初始合同文本;
利用所述第一预设算法对所述初始合同文本进行哈希处理得到第一哈希值并存入区块链,将所述初始合同文本存入所述预设地址;
所述利用所述第二预设算法对所述待确定合同文本进行哈希处理得到第二哈希值的步骤之前,所述合同文本的检验方法还包括步骤:
若达到所述交易条件,则判断所述交易条件是否有重要交易的标记;
若所述交易条件有重要交易的标记,执行所述利用所述第二预设算法对所述待确定合同文本进行哈希处理得到第二哈希值的步骤。
优选地,所述第一预设算法与所述第二预设算法相同,所述根据所述第一哈希值与所述第二哈希值判断所述待确定合同文本是否被篡改包括步骤:
判断所述第一哈希值与所述第二哈希值是否一致;
若所述第一哈希值与所述第二哈希值一致,则判定所述初始合同文本没有被篡改;
若所述第一哈希值于所述第二哈希值不一致,则判定所述初始合同文本被篡改。
优选地,所述合同文本的检验方法还包括步骤:
若所述初始合同文本被篡改,则发出提醒消息至第一预设对象。
优选地,所述合同文本的检验方法还包括步骤:
若所述初始合同文本被篡改,则从所述预设地址获取所述初始文本的修改记录,并将所述修改记录发送至第二预设对象。
本发明还提供一种合同文本的检验装置,包括:
第一获取模块,用于从预设地址获取初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值;
第一哈希模块,用于利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值;
检验模块,用于根据第一哈希值与第二哈希值判断待确定合同文本是否被篡改。
本发明还提供一种设备,所述设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的合同文本的检验程序,其中所述合同文本的检验程序被所述处理器执行时,实现如上任一项所述的合同文本的检验方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有合同文本的检验程序,其中所述合同文本的检验程序被处理器执行时,实现如上任一项所述的合同文本的检验方法的步骤。
上述技术方案中,从预设地址获取初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值;利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值;根据第一哈希值与第二哈希值判断待确定合同文本是否被篡改。根据利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值与第二预设算法对待确定合同文本进行哈希处理得到的第二哈希值判断合同文本是否被篡改,使得交易更可靠。
附图说明
图1为本发明实施例方案中涉及的设备的硬件结构示意图;
图2为本发明合同文本的检验方法第一实施例的流程示意图;
图3为本发明合同文本的检验方法第二实施例的流程示意图;
图4为本发明合同文本的检验方法第三实施例的流程示意图;
图5为本发明合同文本的检验方法第四实施例的流程示意图;
图6为本发明合同文本的检验方法第五实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的合同文本的检验方法主要应用于设备,该设备可以是计算机、移动终端等具有处理功能的设备。
参照图1,图1为本发明实施例方案中涉及的设备结构示意图。本发明实施例中,设备可以包括处理器1001(例如cpu),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口);存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的硬件结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系统、网络通信模块以及合同文本的检验程序。
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的合同文本的检验程序,并执行以下操作:
从预设地址获取初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值;
利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值;
根据第一哈希值与第二哈希值判断待确定合同文本是否被篡改。
进一步地,初始合同文本包括至少一个交易条件和与交易条件对应的交易内容,利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值的步骤之前,处理器1001可以调用存储器1005中存储的合同文本的检验程序,并执行以下操作:
判断是否达到初始合同文本中的交易条件;
若达到交易条件,则执行利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值的步骤。
进一步地,利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值的步骤之前,处理器1001可以调用存储器1005中存储的合同文本的检验程序,并执行以下操作:
若达到交易条件,则获取与交易条件对应的交易内容的交易金额;
判断交易金额是否大于或等于预设阈值;
若交易金额大于或等于预设阈值,则执行利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值的步骤。
进一步地,从预设地址获取初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值的步骤之前,处理器1001可以调用存储器1005中存储的合同文本的检验程序,并执行以下操作:
获取原始合同文本,原始合同文本中包含多个交易条件,将原始合同文本中的至少一个交易条件标记为重要交易,并将标记后的原始合同文本作为初始合同文本;
利用第一预设算法对初始合同文本进行哈希处理得到第一哈希值并存入区块链,将初始合同文本存入预设地址;
利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值的步骤之前,合同文本的检验方法还包括步骤:
若达到交易条件,则判断交易条件是否有重要交易的标记;
若交易条件有重要交易的标记,执行利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值的步骤。
进一步地,第一预设算法与第二预设算法相同,处理器1001可以调用存储器1005中存储的合同文本的检验程序,并执行以下操作:
判断第一哈希值与第二哈希值是否一致;
若第一哈希值与第二哈希值一致,则判定初始合同文本没有被篡改;
若第一哈希值于第二哈希值不一致,则判定初始合同文本被篡改。
进一步地,处理器1001可以调用存储器1005中存储的合同文本的检验程序,并执行以下操作:
若初始合同文本被篡改,则发出提醒消息至第一预设对象。
进一步地,处理器1001可以调用存储器1005中存储的合同文本的检验程序,并执行以下操作:
若初始合同文本被篡改,则从预设地址获取初始文本的修改记录,并将修改记录发送至第二预设对象。
基于上述设备的硬件结构,提出本发明合同文本的检验方法的各个实施例。
本发明提供一种合同文本的检验方法。
请参阅图2,在本发明一实施例中,合同文本的检验方法包括以下步骤:
s11:从预设地址获取初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值;
本发明实施例的合同文本可以但不限于是智能合约的合同文本。在发起交易时,可先通过第一预设算法对交易的合同文本进行哈希(hash)处理,得带第一哈希值,并将第一哈希值存入区块链,将发起交易时的合同文本作为初始合同文本存入预设地址。预设地址可以是设备的本地地址,也可以是与设备连接的服务器的地址。在对合同文本进行检验时,再从预设地址获取初始合同文本,并将初始合同文本作为待确定合同文本。
s12:利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值;
s13:根据第一哈希值与第二哈希值判断待确定合同文本是否被篡改。
由于区块链具有信息不可篡改的性质,本实施例中,可认为第一哈希值是没有篡改的。第一预设算法与第二预设算法可以相同,也可以不同。第一预设算法与第二预设算法相同时,可先判断第一哈希值与第二哈希值是否一致,若第一哈希值与第二哈希值一致,则判定初始合同文本没有被篡改;若第一哈希值于第二哈希值不一致,则判定初始合同文本被篡改。第一预设算法与第二预设算法不想同时,可根据第一预设算法和第二预设算法确定待确定合同文本与初始合同文本相同时,第一哈希值与第二哈希值的关系,并作为预设关系;然后判断第一哈希值和第二哈希值的关系是否满足预设关系;若第一哈希值与第二哈希值的关系满足预设关系,则可判定初始合同文本没有被篡改;若第一哈希值与第二哈希值的关系不满足预设关系,则可判定初始合同文本被篡改。
上述技术方案中,从预设地址获取初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值;利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值;根据第一哈希值与第二哈希值判断待确定合同文本是否被篡改。根据利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值与第二预设算法对待确定合同文本进行哈希处理得到的第二哈希值判断合同文本是否被篡改,使得交易更可靠。
请参阅图3,基于上述实施例,步骤s12之前,合同文本的检验方法还包括步骤:
s14:判断是否达到初始合同文本中的交易条件;
智能合约中,包含一个或多个交易条件及与交易条件对应的交易内容,当达到交易条件时,会自动执行与交易条件对应的交易内容。可按照预设时间间隔执行步骤s11或者按照预设时间条件执行步骤s11,在获取到初始合同文本之后,判断是否达到初始合同文本的交易条件,若达到交易条件,则执行步骤s12:利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值,以根据第一哈希值和第二哈希值判断待确定合同文本是否被篡改。若没有达到交易条件,则不需要执行步骤s12。
如此,在达到交易条件时,执行步骤s12,以判断待确定合同文本是否被篡改,保证交易的可靠性;在没有达到交易时,则不执行步骤s12,减少数据处理量。
进一步地,在达到交易条件时,还可以获取与交易条件对应的交易内容的交易金额;判断交易金额是否大于或等于预设阈值;若交易金额大于或等于预设阈值,则执行步骤s12。如此,可根据交易金额的大小执行步骤s12和步骤s13以判断待确定合同文本是否被篡改,在交易金额达到预设阈值时,执行步骤s12以保证金额较大的交易的可靠性;在交易金额较小时,也即交易金额小于预设阈值时,可不比检验待确定文本是否被篡改,则可不执行步骤s12。
请参阅图4,基于上述实施例,步骤s11之前,合同文本的检验方法还包括步骤:
s15:获取原始合同文本,原始合同文本中包含多个交易条件,将原始合同文本中的至少一个交易条件标记为重要交易,并将标记后的原始合同文本作为初始合同文本;
可通预设字符将原始合同文本中的至少一个交易条件标记为重要交易。交易的合同文本中,包含多个交易条件时,可能有的交易条件对应的交易内容较重要,在执行交易内容时,需要检验合同文本是否被篡改。而有的交易条件对应的交易内容相对来说不是很重要,在可不检验合同文本是否被篡改。
s16:利用第一预设算法对初始合同文本进行哈希处理得到第一哈希值并存入区块链,将初始合同文本存入预设地址。
步骤s12之前,合同文本的检验方法还包括步骤:
s17:若达到交易条件,则判断交易条件是否有重要交易的标记;
可按照预设时间间隔执行步骤s11或者按照预设时间条件执行步骤s11,在获取到初始合同文本之后,判断是否达到初始合同文本的交易条件,在达到交易条件时,判断交易条件是否有重要交易的标记,若交易条件有重要交易的标记,则执行步骤s12:利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值,以根据第一哈希值和第二哈希值判断待确定合同文本是否被篡改。交易条件没有重要交易的标记,则不需要执行步骤s12。
如此,在交易条件有重要交易的标记时,执行步骤s12,以判断待确定合同文本是否被篡改,保证交易的可靠性;在交易条件没有重要交易的标记时,则不执行步骤s12,减少数据处理量。
请参阅图5,基于上述实施例,合同文本的检验方法还包括步骤:
s18:若初始合同文本被篡改,则发出提醒消息至第一预设对象。
如此,可提醒第一预设对象合同文本被篡改,使得第一预设对象可在交易过程中采取对应的措施以保障自身的利益。第一预设对象可以是初始合同文本中涉及的所有交易对象中的一个或多个,也可以是与交易相关的监管人员。
请参阅图6,基于上述实施例,合同文本的检验方法还包括步骤:
s19:若初始合同文本被篡改,则从预设地址获取初始文本的修改记录,并将修改记录发送至第二预设对象。
如此,第二预设对象可在初始合同文本被篡改时,利用修改记录作为线索及证据,查找篡改合同文本的对象。修改记录可包括修改时间,修改用户等。第一预设对象与第二预设对象可以相同,也可以不同,也可以部分相同、部分不同。
此外,本发明还提供一种合同文本的检验装置。上述任一实施例的合同文本的检验方法可以由本实施例的合同文本的检验装置实现,合同文本的检验装置包括:
第一获取模块,用于从预设地址获取初始合同文本得到待确定合同文本,从区块链获取在初始合同文本存入预设地址之前利用第一预设算法对初始合同文本进行哈希处理得到的第一哈希值;
第一哈希模块,用于利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值;
检验模块,用于根据第一哈希值与第二哈希值判断待确定合同文本是否被篡改。
进一步地,初始合同文本包括至少一个交易条件和与交易条件对应的交易内容,检验装置还包括:
第一判断模块,用于判断是否达到初始合同文本中的交易条件;
第一哈希模块还用于在达到交易条件时,利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值。
进一步地,合同文本的检验装置还包括:
第二获取模块,用于在达到交易条件时,获取与交易条件对应的交易内容的交易金额;
第二判断模块,用于判断交易金额是否大于或等于预设阈值;
第一哈希模块还用于在交易金额大于或等于预设阈值时,利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值。
进一步地,合同文本的检验装置还包括:
第三获取模块,用于获取原始合同文本,原始合同文本中包含多个交易条件,将原始合同文本中的至少一个交易条件标记为重要交易,并将标记后的原始合同文本作为初始合同文本;
第二哈希模块,用于利用第一预设算法对初始合同文本进行哈希处理得到第一哈希值并存入区块链,将初始合同文本存入预设地址;
第三判断模块,用于在达到交易条件时,判断交易条件是否有重要交易的标记;
第一哈希模块还用于在交易条件有重要交易的标记时,利用第二预设算法对待确定合同文本进行哈希处理得到第二哈希值。
进一步地,第一预设算法与第二预设算法相同,检验模块包括:
判断单元,用于判断第一哈希值与第二哈希值是否一致;
第一判定单元,用于在第一哈希值与第二哈希值一致时,判定初始合同文本没有被篡改;
第二判定单元,用于在第一哈希值于第二哈希值不一致,判定初始合同文本被篡改。
进一步地,合同文本的检验装置还包括:
提醒模块,用于在初始合同文本被篡改时,发出提醒消息至第一预设对象。
进一步地,合同文本的检验装置还包括:
信息发送模块,用于在初始合同文本被篡改,从预设地址获取初始文本的修改记录,并将修改记录发送至第二预设对象。
其中,上述合同文本的检验装置中各个模块的功能实现与上述合同文本的检验方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
此外,本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有合同文本的检验程序,计算机可读存储介质上存储有合同文本的检验程序,其中合同文本的检验程序被处理器执行时,实现如上述任一实施例的合同文本的检验方法的步骤。
其中,合同文本的检验程序被执行时所实现的方法可参照本发明合同文本的检验方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。