本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)和電子合同領(lǐng)域,特別涉及一種基于區(qū)塊鏈智能合約實(shí)現(xiàn)電子合同多方會(huì)簽的方法。
背景技術(shù):
隨著經(jīng)濟(jì)的不斷發(fā)展,商業(yè)活動(dòng)中合同的簽署數(shù)量急劇增加。傳統(tǒng)交易活動(dòng)一般會(huì)進(jìn)行紙質(zhì)合同的簽署,但紙質(zhì)合同的簽署存在很多問題:第一,是距離問題。因?yàn)榫嚯x或者其他原因,如果簽署合同的各方不能在同一地點(diǎn)里完成簽署,一般需要由某一方簽署完畢后,帶去另一方再進(jìn)行簽署,如果涉及多方簽署,這樣效率將會(huì)十分低下;第二,如果要大量簽署某種同類型合同時(shí),傳統(tǒng)的人工簽名或者蓋章的做法也費(fèi)時(shí)費(fèi)力效率低下。
為了解決上述問題,現(xiàn)在技術(shù)上一般采用簽署電子合同的做法?,F(xiàn)有的電子合同簽約技術(shù),主要有離線簽署和在線簽署兩種方式。對(duì)于離線簽署,簽約各方要加蓋已方的電子簽章再發(fā)送到下一個(gè)簽約方,這個(gè)過程繁瑣不易控制,并且電子合同在網(wǎng)絡(luò)傳輸?shù)倪^程中易被篡改。對(duì)于在在線簽署方式,一般是由一個(gè)簽約平臺(tái)對(duì)電子合同的簽約各方采用數(shù)據(jù)證書(ca)驗(yàn)證,簽約完成后向?qū)I(yè)時(shí)間戳服務(wù)機(jī)構(gòu)國(guó)家授時(shí)中心加蓋可信時(shí)間戳來證明這份電子合同的合法、可靠和真實(shí)性?,F(xiàn)有技術(shù)的電子合同簽署方式,無論是離線還是在線簽署的,電子合同都存在易被人為篡改,可靠性和安全性較差的問題。
隨著2016年區(qū)塊鏈技術(shù)的大熱,有些科技工作者提出了電子合同會(huì)簽完畢后,把完整的電子合同存入?yún)^(qū)塊鏈,以保證其不可篡改性。這種技術(shù)能確保最終的電子合同不被篡改,但還是存在一些問題:電子合同的會(huì)簽服務(wù)主要是在簽約平臺(tái)的系統(tǒng)上實(shí)現(xiàn)和進(jìn)行流轉(zhuǎn),簽約平臺(tái)系統(tǒng)一般是基于中心節(jié)點(diǎn)的服務(wù),容易受到攻擊和出現(xiàn)安全和可用性問題,一旦簽約平臺(tái)系統(tǒng)出現(xiàn)問題,將無法正常提供簽約服務(wù)。
技術(shù)實(shí)現(xiàn)要素:
為克服上述現(xiàn)有技術(shù)的缺陷,本發(fā)明實(shí)施例提供了一種基于區(qū)塊鏈智能合約實(shí)現(xiàn)電子合同多方會(huì)簽的方法,通過在所有的區(qū)塊鏈節(jié)點(diǎn)上執(zhí)行智能合約程序,在智能合約里實(shí)現(xiàn)電子合同會(huì)簽和存儲(chǔ)電子合同,這樣能有效解決現(xiàn)有電子合同簽署技術(shù)在會(huì)簽合同時(shí)易被篡改和安全性較差的問題,也能確保不但是最終的電子合同無法被篡改,而且每次簽約合同的記錄和時(shí)間也無法被篡改。
為了達(dá)到上述目的,提供一種基于區(qū)塊鏈智能合約實(shí)現(xiàn)電子合同多方會(huì)簽的方法,包括如下步驟:
a)編寫智能合約程序,智能合約程序包括合同數(shù)據(jù);
b)將智能合約程序部署到區(qū)塊鏈平臺(tái)各個(gè)節(jié)點(diǎn)中;
c)初始化合同數(shù)據(jù);
d)各簽約方確認(rèn)合同數(shù)據(jù),并認(rèn)證簽約;
e)所有簽約方簽約完畢,智能合約程序進(jìn)行時(shí)間標(biāo)記。
優(yōu)選的,時(shí)間標(biāo)記方法為智能合約程序調(diào)用國(guó)家授時(shí)中心接口加蓋可信時(shí)間戳。
優(yōu)選的,智能合約程序設(shè)置有初始化接口,步驟c)通過初始化接口實(shí)現(xiàn)。
優(yōu)選的,智能合約程序設(shè)置有查詢接口,步驟d)中各簽約方通過查詢接口確認(rèn)合同數(shù)據(jù)。
優(yōu)選的,智能合約程序設(shè)置有簽約接口,步驟d)中各簽約方通過簽約接口實(shí)現(xiàn)認(rèn)證簽約。
優(yōu)選的,簽約方登陸簽約接口,若合同數(shù)據(jù)指示為簽約成功,則不操作;否則,產(chǎn)生電子簽名,更改合同數(shù)據(jù)指示為簽約成功,并在合同數(shù)據(jù)中添加數(shù)字簽名內(nèi)容。
優(yōu)選的,數(shù)字簽名產(chǎn)生步驟為:對(duì)合同數(shù)據(jù)用hash算法產(chǎn)生數(shù)字摘要,再用簽約方的個(gè)人證書的私鑰加密數(shù)字摘要得到數(shù)字簽名。
優(yōu)選的,合同數(shù)據(jù)包括合同id、合同編號(hào)、合同內(nèi)容、合同狀態(tài)、合同簽約完畢時(shí)間以及各簽約方數(shù)據(jù)。
優(yōu)選的,簽約方數(shù)據(jù)包括簽約方id、簽約所屬方、簽約方名稱、簽約狀態(tài)以及簽約時(shí)間。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)為:
通過在所有的區(qū)塊鏈節(jié)點(diǎn)上執(zhí)行智能合約程序,在智能合約里實(shí)現(xiàn)電子合同會(huì)簽和存儲(chǔ)電子合同,這樣能有效解決現(xiàn)有電子合同簽署技術(shù)在會(huì)簽合同時(shí)易被篡改和安全性較差的問題,也能確保不但是最終的電子合同無法被篡改,而且每次簽約合同的記錄和時(shí)間也無法被篡改;智能合約程序設(shè)置有初始接口、查詢接口以及簽約接口,方便簽約方簽約,提高效力,保證準(zhǔn)確性。
附圖說明
圖1是本發(fā)明的方法流程示意圖。
具體實(shí)施方式
在本發(fā)明描述中,術(shù)語(yǔ)“上”、“下”、“前”及“后”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明而不是要求本發(fā)明必須以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步說明。
為了保證通信通道的保密性和發(fā)送的數(shù)據(jù)沒有被截獲或者篡改,本發(fā)明涉及的各簽約方和服務(wù)器都先安裝可信機(jī)構(gòu)頒發(fā)的數(shù)字證書,簽約方和服務(wù)器的連接采用ssl連接。
本發(fā)明提出一種基于區(qū)塊鏈智能合約實(shí)現(xiàn)電子合同多方會(huì)簽的方法,步驟如下:編寫包括合同數(shù)據(jù)的智能合約程序,智能合約程序設(shè)置有初始化接口、查詢接口、以及簽約接口;將智能合約程序部署到區(qū)塊鏈平臺(tái)各個(gè)節(jié)點(diǎn)中;初始化接口初始化合同數(shù)據(jù);各簽約方通過查詢接口查詢確認(rèn)合同數(shù)據(jù),并通過簽約接口認(rèn)證簽約,所有簽約方簽約完畢,智能合約程序進(jìn)行時(shí)間標(biāo)記,時(shí)間標(biāo)記方法為智能合約程序調(diào)用國(guó)家授時(shí)中心接口加蓋可信時(shí)間戳。
在本發(fā)明公開的上述方法中,電子合同的會(huì)簽服務(wù)通過區(qū)塊鏈智能合約實(shí)現(xiàn),智能合約程序是一段計(jì)算機(jī)編程語(yǔ)言代碼程序,在區(qū)塊鏈的各個(gè)節(jié)點(diǎn)上執(zhí)行。本發(fā)明通過在區(qū)塊鏈上執(zhí)行智能合約的初始化接口,查詢接口和簽約接口來實(shí)現(xiàn)電子合同多方會(huì)簽的整個(gè)流程,在合同數(shù)據(jù)初始化后,一簽約方確認(rèn)合同并認(rèn)證簽約后,區(qū)塊鏈平臺(tái)將智能合約程序廣播到各個(gè)區(qū)塊鏈節(jié)點(diǎn)中,下一簽約方通過查詢接口及簽約接口認(rèn)證簽約后,區(qū)塊鏈平臺(tái)將智能合約程序廣播到各個(gè)區(qū)塊鏈節(jié)點(diǎn)中,如此下去,直到最后一個(gè)簽約方完成會(huì)簽后,智能合約程序加蓋時(shí)間戳。整個(gè)簽約過程中相關(guān)數(shù)據(jù)都會(huì)被保存在區(qū)塊鏈節(jié)點(diǎn)中,每個(gè)區(qū)塊鏈節(jié)點(diǎn)都包含有一個(gè)與前一區(qū)塊鏈節(jié)點(diǎn)連接起來的時(shí)間戳,使得數(shù)據(jù)不可篡改,一旦記錄下來,在一個(gè)區(qū)塊鏈節(jié)點(diǎn)中的數(shù)據(jù)將不可逆,每一個(gè)區(qū)塊鏈節(jié)點(diǎn)都保存完整的分布式賬戶副本,結(jié)合共識(shí)機(jī)制,加密算法等技術(shù)實(shí)現(xiàn)了數(shù)據(jù)不可篡改,和不可偽造,高可用性,可追溯等特征,從而間接通過計(jì)算機(jī)解決了人類之間的信任問題,從而能確保不但是最終的電子合同無法被篡改,而且每次簽約合同的記錄和時(shí)間也無法被篡改。
參照?qǐng)D1,本發(fā)明較佳實(shí)施例如下:
步驟s01,簽約的各方在線上或者線下溝通好合同內(nèi)容,然后由合同發(fā)起方根據(jù)最終確定的合同模板和簽約的各方編寫相對(duì)應(yīng)的智能合約程序,并把智能合約程序部署到區(qū)塊鏈的各個(gè)節(jié)點(diǎn)中。部署智能合約程序的時(shí)候?qū)⒄{(diào)用智能合約程序的初始化接口,初始化合同內(nèi)容和簽約方的信息。
步驟s02,各個(gè)簽約方調(diào)用智能合約程序的查詢接口,確認(rèn)合同內(nèi)容無誤,調(diào)用智能合約的簽約接口實(shí)現(xiàn)數(shù)字簽名認(rèn)證簽約。
步驟s03,所有簽約方都進(jìn)行數(shù)字簽名認(rèn)真簽約后,智能合約程序調(diào)用國(guó)家授時(shí)中心接口對(duì)電子合同內(nèi)容和各方簽約方的數(shù)字簽名加蓋可信時(shí)間戳。
通過以上步驟,使得電子合同簽約和保存都在區(qū)塊鏈上執(zhí)行,確保簽約合同記錄和最終合同內(nèi)容無法被偽造和篡改。最后把最終電子合同內(nèi)容和各簽約方的數(shù)字簽名加蓋可信時(shí)間戳,可以固化最終電子合同內(nèi)容的完整性和存在時(shí)間點(diǎn),防止電子合同內(nèi)容和簽署時(shí)間被偽造和篡改。
為了更好的理解本發(fā)明實(shí)施的技術(shù)方法,下面將介紹區(qū)塊鏈中智能合約的數(shù)據(jù)定義及接口,區(qū)塊鏈中的所有節(jié)點(diǎn)都有同樣的智能合約數(shù)據(jù)定義和接口。
智能合約數(shù)據(jù)定義:
合同數(shù)據(jù),包括合同id,合同編號(hào),合同內(nèi)容,合同狀態(tài),合同簽約完畢時(shí)間,各簽約方的數(shù)據(jù),具體如下:
簽約方數(shù)據(jù),包括簽約方id,簽約所屬方(比如甲方,乙方)簽約方名稱,簽約狀態(tài),簽約時(shí)間,具體如下:
解釋:合同數(shù)據(jù)中的合同狀態(tài)包括兩種狀態(tài),分別是0為簽約中,1為簽約完畢,初始狀態(tài)為0,contractfinishtime初始為空。簽約方數(shù)據(jù)中的簽約狀態(tài)有兩種狀態(tài),分別是0為未簽約,1為簽約成功,初始狀態(tài)為0。signtime初始狀態(tài)為空。
智能合約接口樣例代碼:
注意這里是一份合同對(duì)應(yīng)一個(gè)智能合約。
(1)初始化合同接口
init(contractcontract)
參數(shù)說明:contract為contract結(jié)構(gòu)對(duì)象,保存的是合同和合同對(duì)應(yīng)的各個(gè)簽約方的相關(guān)信息。
接口邏輯說明:初始化合同數(shù)據(jù),把相關(guān)數(shù)據(jù)存進(jìn)區(qū)塊鏈。
(2)合同查詢接口
query()
接口邏輯說明:查詢?cè)摲葜悄芎霞s對(duì)應(yīng)的合同和簽約方信息,返回存進(jìn)區(qū)塊鏈的合同的相關(guān)信息,包括合同內(nèi)容,各方簽約狀態(tài)等。
(3)簽約合同接口
sign(customercustomer)
參數(shù)說明:customer為customer結(jié)構(gòu)對(duì)象,保存的是登陸簽約方的相關(guān)信息。
接口邏輯說明:根據(jù)登陸簽約方信息,產(chǎn)生電子簽名,更改合同對(duì)應(yīng)的簽約方狀態(tài)為簽約成功。如果簽約狀態(tài)已經(jīng)為簽約成功,則不做操作。簽約成功后,向contract結(jié)構(gòu)體里的digitaldignature添加數(shù)字簽名內(nèi)容。數(shù)字簽名產(chǎn)生的步驟為:對(duì)合同內(nèi)容產(chǎn)生用hash算法產(chǎn)生數(shù)字摘要,再用簽約方的個(gè)人證書的私鑰加密數(shù)字摘要得到數(shù)字簽名。如果為最后一個(gè)簽約方,則把合同內(nèi)容加上各簽約方的電子簽名得到一個(gè)電子數(shù)據(jù)指紋,然后向國(guó)家授時(shí)中心加蓋時(shí)間戳,以證明簽約時(shí)間的有效性。最后把該時(shí)間點(diǎn)存進(jìn)contract結(jié)構(gòu)體的contractfinishtime,并把contractstatus改為1,即簽約完畢狀態(tài)。
根據(jù)上述說明書的揭示和教導(dǎo),本發(fā)明所屬領(lǐng)域的技術(shù)人員還可以對(duì)上述實(shí)施方式進(jìn)行變更和修改。因此,本發(fā)明并不局限于上面揭示和描述的具體實(shí)施方式,對(duì)本發(fā)明的一些修改和變更也應(yīng)當(dāng)落入本發(fā)明的權(quán)利要求的保護(hù)范圍內(nèi)。此外,盡管本說明書中使用了一些特定的術(shù)語(yǔ),但這些術(shù)語(yǔ)只是為了方便說明,并不對(duì)本發(fā)明構(gòu)成任何限制。