一种基于区块链智能合约实现电子合同多方会签的方法与流程

文档序号:11707993阅读:1307来源:国知局

本发明涉及互联网技术和电子合同领域,特别涉及一种基于区块链智能合约实现电子合同多方会签的方法。



背景技术:

随着经济的不断发展,商业活动中合同的签署数量急剧增加。传统交易活动一般会进行纸质合同的签署,但纸质合同的签署存在很多问题:第一,是距离问题。因为距离或者其他原因,如果签署合同的各方不能在同一地点里完成签署,一般需要由某一方签署完毕后,带去另一方再进行签署,如果涉及多方签署,这样效率将会十分低下;第二,如果要大量签署某种同类型合同时,传统的人工签名或者盖章的做法也费时费力效率低下。

为了解决上述问题,现在技术上一般采用签署电子合同的做法。现有的电子合同签约技术,主要有离线签署和在线签署两种方式。对于离线签署,签约各方要加盖已方的电子签章再发送到下一个签约方,这个过程繁琐不易控制,并且电子合同在网络传输的过程中易被篡改。对于在在线签署方式,一般是由一个签约平台对电子合同的签约各方采用数据证书(ca)验证,签约完成后向专业时间戳服务机构国家授时中心加盖可信时间戳来证明这份电子合同的合法、可靠和真实性。现有技术的电子合同签署方式,无论是离线还是在线签署的,电子合同都存在易被人为篡改,可靠性和安全性较差的问题。

随着2016年区块链技术的大热,有些科技工作者提出了电子合同会签完毕后,把完整的电子合同存入区块链,以保证其不可篡改性。这种技术能确保最终的电子合同不被篡改,但还是存在一些问题:电子合同的会签服务主要是在签约平台的系统上实现和进行流转,签约平台系统一般是基于中心节点的服务,容易受到攻击和出现安全和可用性问题,一旦签约平台系统出现问题,将无法正常提供签约服务。



技术实现要素:

为克服上述现有技术的缺陷,本发明实施例提供了一种基于区块链智能合约实现电子合同多方会签的方法,通过在所有的区块链节点上执行智能合约程序,在智能合约里实现电子合同会签和存储电子合同,这样能有效解决现有电子合同签署技术在会签合同时易被篡改和安全性较差的问题,也能确保不但是最终的电子合同无法被篡改,而且每次签约合同的记录和时间也无法被篡改。

为了达到上述目的,提供一种基于区块链智能合约实现电子合同多方会签的方法,包括如下步骤:

a)编写智能合约程序,智能合约程序包括合同数据;

b)将智能合约程序部署到区块链平台各个节点中;

c)初始化合同数据;

d)各签约方确认合同数据,并认证签约;

e)所有签约方签约完毕,智能合约程序进行时间标记。

优选的,时间标记方法为智能合约程序调用国家授时中心接口加盖可信时间戳。

优选的,智能合约程序设置有初始化接口,步骤c)通过初始化接口实现。

优选的,智能合约程序设置有查询接口,步骤d)中各签约方通过查询接口确认合同数据。

优选的,智能合约程序设置有签约接口,步骤d)中各签约方通过签约接口实现认证签约。

优选的,签约方登陆签约接口,若合同数据指示为签约成功,则不操作;否则,产生电子签名,更改合同数据指示为签约成功,并在合同数据中添加数字签名内容。

优选的,数字签名产生步骤为:对合同数据用hash算法产生数字摘要,再用签约方的个人证书的私钥加密数字摘要得到数字签名。

优选的,合同数据包括合同id、合同编号、合同内容、合同状态、合同签约完毕时间以及各签约方数据。

优选的,签约方数据包括签约方id、签约所属方、签约方名称、签约状态以及签约时间。

本发明与现有技术相比的优点为:

通过在所有的区块链节点上执行智能合约程序,在智能合约里实现电子合同会签和存储电子合同,这样能有效解决现有电子合同签署技术在会签合同时易被篡改和安全性较差的问题,也能确保不但是最终的电子合同无法被篡改,而且每次签约合同的记录和时间也无法被篡改;智能合约程序设置有初始接口、查询接口以及签约接口,方便签约方签约,提高效力,保证准确性。

附图说明

图1是本发明的方法流程示意图。

具体实施方式

在本发明描述中,术语“上”、“下”、“前”及“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不能理解为对本发明的限制。

下面结合附图对本发明的具体实施方式作进一步说明。

为了保证通信通道的保密性和发送的数据没有被截获或者篡改,本发明涉及的各签约方和服务器都先安装可信机构颁发的数字证书,签约方和服务器的连接采用ssl连接。

本发明提出一种基于区块链智能合约实现电子合同多方会签的方法,步骤如下:编写包括合同数据的智能合约程序,智能合约程序设置有初始化接口、查询接口、以及签约接口;将智能合约程序部署到区块链平台各个节点中;初始化接口初始化合同数据;各签约方通过查询接口查询确认合同数据,并通过签约接口认证签约,所有签约方签约完毕,智能合约程序进行时间标记,时间标记方法为智能合约程序调用国家授时中心接口加盖可信时间戳。

在本发明公开的上述方法中,电子合同的会签服务通过区块链智能合约实现,智能合约程序是一段计算机编程语言代码程序,在区块链的各个节点上执行。本发明通过在区块链上执行智能合约的初始化接口,查询接口和签约接口来实现电子合同多方会签的整个流程,在合同数据初始化后,一签约方确认合同并认证签约后,区块链平台将智能合约程序广播到各个区块链节点中,下一签约方通过查询接口及签约接口认证签约后,区块链平台将智能合约程序广播到各个区块链节点中,如此下去,直到最后一个签约方完成会签后,智能合约程序加盖时间戳。整个签约过程中相关数据都会被保存在区块链节点中,每个区块链节点都包含有一个与前一区块链节点连接起来的时间戳,使得数据不可篡改,一旦记录下来,在一个区块链节点中的数据将不可逆,每一个区块链节点都保存完整的分布式账户副本,结合共识机制,加密算法等技术实现了数据不可篡改,和不可伪造,高可用性,可追溯等特征,从而间接通过计算机解决了人类之间的信任问题,从而能确保不但是最终的电子合同无法被篡改,而且每次签约合同的记录和时间也无法被篡改。

参照图1,本发明较佳实施例如下:

步骤s01,签约的各方在线上或者线下沟通好合同内容,然后由合同发起方根据最终确定的合同模板和签约的各方编写相对应的智能合约程序,并把智能合约程序部署到区块链的各个节点中。部署智能合约程序的时候将调用智能合约程序的初始化接口,初始化合同内容和签约方的信息。

步骤s02,各个签约方调用智能合约程序的查询接口,确认合同内容无误,调用智能合约的签约接口实现数字签名认证签约。

步骤s03,所有签约方都进行数字签名认真签约后,智能合约程序调用国家授时中心接口对电子合同内容和各方签约方的数字签名加盖可信时间戳。

通过以上步骤,使得电子合同签约和保存都在区块链上执行,确保签约合同记录和最终合同内容无法被伪造和篡改。最后把最终电子合同内容和各签约方的数字签名加盖可信时间戳,可以固化最终电子合同内容的完整性和存在时间点,防止电子合同内容和签署时间被伪造和篡改。

为了更好的理解本发明实施的技术方法,下面将介绍区块链中智能合约的数据定义及接口,区块链中的所有节点都有同样的智能合约数据定义和接口。

智能合约数据定义:

合同数据,包括合同id,合同编号,合同内容,合同状态,合同签约完毕时间,各签约方的数据,具体如下:

签约方数据,包括签约方id,签约所属方(比如甲方,乙方)签约方名称,签约状态,签约时间,具体如下:

解释:合同数据中的合同状态包括两种状态,分别是0为签约中,1为签约完毕,初始状态为0,contractfinishtime初始为空。签约方数据中的签约状态有两种状态,分别是0为未签约,1为签约成功,初始状态为0。signtime初始状态为空。

智能合约接口样例代码:

注意这里是一份合同对应一个智能合约。

(1)初始化合同接口

init(contractcontract)

参数说明:contract为contract结构对象,保存的是合同和合同对应的各个签约方的相关信息。

接口逻辑说明:初始化合同数据,把相关数据存进区块链。

(2)合同查询接口

query()

接口逻辑说明:查询该份智能合约对应的合同和签约方信息,返回存进区块链的合同的相关信息,包括合同内容,各方签约状态等。

(3)签约合同接口

sign(customercustomer)

参数说明:customer为customer结构对象,保存的是登陆签约方的相关信息。

接口逻辑说明:根据登陆签约方信息,产生电子签名,更改合同对应的签约方状态为签约成功。如果签约状态已经为签约成功,则不做操作。签约成功后,向contract结构体里的digitaldignature添加数字签名内容。数字签名产生的步骤为:对合同内容产生用hash算法产生数字摘要,再用签约方的个人证书的私钥加密数字摘要得到数字签名。如果为最后一个签约方,则把合同内容加上各签约方的电子签名得到一个电子数据指纹,然后向国家授时中心加盖时间戳,以证明签约时间的有效性。最后把该时间点存进contract结构体的contractfinishtime,并把contractstatus改为1,即签约完毕状态。

根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对本发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1