最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于區(qū)塊鏈和智能合約的電子文書簽署方法與流程

文檔序號:11253712閱讀:1570來源:國知局

本發(fā)明涉及智能合約技術(shù)領(lǐng)域,尤其是一種基于區(qū)塊鏈和智能合約的電子文書簽署方法。



背景技術(shù):

目前,隨著電子商務(wù)的不斷發(fā)展,傳統(tǒng)的紙質(zhì)合同正在被電子合同所取代。但現(xiàn)有的電子合同簽署方法都不可避免的至少需要一個推定可被信任的主體進行參與,比如維護數(shù)字證書的ca中心,或者基于特定公信身份的公證處的介入,雖然基于公鑰基礎(chǔ)設(shè)施的ca中心在技術(shù)上是可靠的,但可靠的使用必須采用硬件介質(zhì)的ukey,導致使用便捷性嚴重欠缺,而基于公證處的介入雖然在法理上可以解決電子合同平臺的客觀可信的身份問題,但這只能完全出于對公證處的道德信任,并不能從技術(shù)上實現(xiàn)可靠保證;實務(wù)中即能使用便捷,又技術(shù)可靠的解決方案非常少見。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是針對上述問題,提出一種基于區(qū)塊鏈和智能合約的電子文書簽署方法。

本發(fā)明的技術(shù)方案是:

一種基于區(qū)塊鏈和智能合約的電子文書簽署方法,它采用業(yè)務(wù)平臺服務(wù)器cs、多個區(qū)塊鏈節(jié)點服務(wù)器ts和多個區(qū)塊鏈智能合約腳本服務(wù)器js,其中,業(yè)務(wù)平臺服務(wù)器cs用于接受用戶的訪問和提供數(shù)據(jù)交互,cs與各區(qū)塊鏈節(jié)點服務(wù)器ts連接通信,每個ts與對應的js進行通信,各ts的數(shù)據(jù)庫之間保持數(shù)據(jù)同步,該方法的步驟包括:

s1、初始化的步驟:

s1.1、使用公鑰密碼算法,為cs頒發(fā)密鑰對,其中公鑰為pukc,私鑰為prkc;

s1.2、使用公鑰密碼算法,為每一個ts頒發(fā)密鑰對,公鑰分別為pukt1、pukt2、pukt3、…、puktn,私鑰分別為prkt1、prkt2、prkt3、…、prktn;

s1.3、設(shè)置cs、ts和js使用統(tǒng)一的哈希運算規(guī)則;

s1.4、為每一個ts和js分配唯一的通訊地址,表示為adt1、adt2、adt3、…adtn和adj1、adj2、adj3、…、adjn;

s1.5、各用戶登錄cs進行注冊,cs為各用戶完成實名身份審核;

簽署流程

s2、簽約發(fā)起

s2.1、用戶alice登錄cs,導入需要與bob共同簽署的電子文書m,cs通過用戶數(shù)據(jù)庫查詢得到alice的唯一身份信息xa和通信信息pa,以及bob的唯一身份信息xb和通信信息pb,同時cs為此項簽署任務(wù)生成唯一編號n,將alice的xa和pa合并,標記為ida,將bob的xb和pb合并,標記為idb;

s2.2、cs對m、ida、idb分別進行哈希運算,得到hcm、hcida、hcidb,并將alice的此項簽署任務(wù)按照bob的通信信息pb通知給bob;

s2.3、cs將hcm、hcida、hcidb連同任務(wù)編號n,向全網(wǎng)所有區(qū)塊鏈節(jié)點服務(wù)器ts廣播,請求響應;

s2.4、所有接收到廣播的ts都將編號為n的加入任務(wù)表單,保存任務(wù)信息hcm、hcida、hcidb,并根據(jù)服務(wù)器空閑程度決定是否響應;

s2.5、決定響應的區(qū)塊鏈節(jié)點服務(wù)器ts將hcm、hcida、hcidb連同任務(wù)編號n和自己的地址作為響應信息回復給cs;

s2.6、cs在接收到的所有ts的響應中隨機選擇一個作為有權(quán)節(jié)點tq;

s2.7、cs將m、ida、idb使用該有權(quán)節(jié)點tq的公鑰puktq加密,得到m’、ida’、idb’,通過地址adtq發(fā)送給該有權(quán)節(jié)點tq;

s2.8、進行步驟2.7的同時,cs向全網(wǎng)ts發(fā)送經(jīng)puktq加密得到的m’、ida’、idb’,并通知編號n的任務(wù)已經(jīng)被選由有權(quán)節(jié)點tq處理,接收到通知的所有ts將m’、ida’、idb’、adtq記錄于編號為n的任務(wù)表單;

s2.9、有權(quán)節(jié)點tq收到步驟2.7發(fā)出的加密數(shù)據(jù),使用私鑰prktq解密,還原出m、ida、idb,并對其分別進行哈希運算,以驗證哈希值是否與之前的hcm、hcida、hcidb相一致;驗證不一致則通知cs重新發(fā)起任務(wù),驗證一致則進一步將ida、idb還原為xa、pa、xb、pb;

s2.10、有權(quán)節(jié)點tq從所有連接的區(qū)塊鏈智能合約腳本服務(wù)器js中隨機選擇其中的一個作為有權(quán)服務(wù)器jq;

s2.11、有權(quán)節(jié)點tq將hcm、xa、pa、xb、pb連同唯一任務(wù)編號n和tq的地址adtq發(fā)送給jq的地址adjq;任務(wù)發(fā)送后,有權(quán)節(jié)點tq將解密得到的m、ida、idb丟棄,只保存加密的m’、ida’、idb’進數(shù)據(jù)庫;

s2.12、有權(quán)服務(wù)器jq接收信息;

s2.13、有權(quán)服務(wù)器jq將hcm、xa和當前時間tjqn作為參數(shù),使用隨機算法為alice生成一個隨機碼rna,通過通信信息pa發(fā)送給alice;同時將rna、tjqn存入編號為n的表單數(shù)據(jù)庫;jq將hcm、xb和當前時間tjqn作為參數(shù),使用隨機算法為bob生成一個隨機碼rnb,通過通信信息pb發(fā)送給bob;同時將rna、tjqn存入編號為n的表單數(shù)據(jù)庫;

s2.14、jq分別對rna和rnb進行哈希運算,得到哈希值h(rna)和h(rnb),并連同任務(wù)編號n和jq的地址adjq,向所有ts節(jié)點服務(wù)器廣播,收到廣播的節(jié)點服務(wù)器將h(rna)、h(rnb)和adjq保存于編號為n的任務(wù)數(shù)據(jù)表單中;(此時,所有的ts節(jié)點服務(wù)器在編號n的任務(wù)表單中已經(jīng)同步記錄了hcm、hcida、hcidb、adtq、h(rna)、h(rnb)和adjq,以及經(jīng)tq公鑰puktq加密過的m’、ida’、idb’)

s2.15、alice登錄cs,進入任務(wù)n查閱m,輸入jq發(fā)送的隨機碼rna以確認對電子文書m的簽署;bob登錄cs,進入任務(wù)n查閱m,輸入jq發(fā)送的隨機碼rnb以確認對電子文書m的簽署;

s2.16、cs分別對rna和rnb進行哈希運算,得到哈希值h(rna)’和h(rnb)’,并將h(rna)’和h(rnb)’連同任務(wù)編號n向全網(wǎng)所有ts廣播,請求驗證;

s2.17、收到步驟2.16驗證請求的節(jié)點分別將h(rna)’和h(rnb)’與之前保存任務(wù)n表單中的h(rna)和h(rnb)進行比對,如果h(rna)’與h(rna)比對一致,則通知cs,h(rna)’比對通過,如不一致則通知h(rna)’比對不通過;如果h(rnb)’與h(rnb)比對一致,則通知cs,h(rnb)’比對通過,如不一致則通知h(rnb)’比對不通過;

s2.18、cs從多個節(jié)點收到的驗證反饋結(jié)果h(rna)’,比對通過超過閾值的,則alice電子文書m的簽署任務(wù)完成;比對通過不超過閾值的,則alice簽署失?。籧s從多個節(jié)點收到的驗證反饋結(jié)果h(rnb)’,比對通過超過閾值的,則bob電子文書m的簽署任務(wù)完成;比對通過不超過閾值的,則bob簽署失??;

s2.19、alice與bob電子文書m的簽署任務(wù)均完成,則簽署成功,cs從任意節(jié)點ts下載編號為n的任務(wù)表單的hcm、hcida、hcidb、adtq、h(rna)、h(rnb)和adjq,以及m’、ida’、idb’。

進一步地,所述的各區(qū)塊鏈智能合約腳本服務(wù)器js均為部署在網(wǎng)絡(luò)上的預設(shè)腳本執(zhí)行代碼的服務(wù)器,作為區(qū)塊鏈上的智能合約腳本,能夠接受預定格式的輸入,并在接收到合格的輸入后,完成運算輸出。

進一步地,所步驟s1.3中,cs、ts和js使用統(tǒng)一的哈希運算規(guī)則為sha256算法。

進一步地,所步驟s2.1中,唯一身份信息xa是能夠進行實名身份審核的信息,包括:身份證號碼、護照號碼或社會保障號碼,通信信息pa包括手機號、地址、傳真和電子郵箱。

進一步地,所述的步驟s2.3中,cs將hcm、hcida、hcidb使用私鑰prkc簽名后,連同任務(wù)編號n,向全網(wǎng)所有區(qū)塊鏈節(jié)點服務(wù)器ts廣播,請求響應;對應地步驟s2.5中,決定響應的區(qū)塊鏈節(jié)點服務(wù)器ts使用cs的公鑰pukc驗證任務(wù)n的簽名正確。

進一步地,所述的步驟s2.5中,決定響應的區(qū)塊鏈節(jié)點服務(wù)器ts使用各自的私鑰對hcm、hcida、hcidb進行簽名后,連同任務(wù)編號n和自己的地址作為響應信息回復給cs;對應地步驟s2.6中,cs在接收到的所有ts的響應中隨機選擇一個進行簽名驗證,簽名正確則將該區(qū)塊鏈節(jié)點服務(wù)器ts作為有權(quán)節(jié)點tq。

進一步地,所述的步驟s2.6中,cs將接收到的所有ts的響應按照時間進行排序,并選擇最先到達且簽名驗證正確的區(qū)塊鏈節(jié)點服務(wù)器ts作為有權(quán)節(jié)點tq。

進一步地,所述的步驟s2.11中,有權(quán)節(jié)點tq將hcm、xa、pa、xb、pb使用私鑰prktq簽名后,連同唯一任務(wù)編號n和tq的地址adtq發(fā)送給jq的地址adjq;對應的步驟s2.12中,有權(quán)服務(wù)器jq收到信息,使用tq的公鑰puktq簽名驗證。

進一步地,所述的步驟s2.12中,有權(quán)服務(wù)器jq收到信息,判斷hcm、xa、pa、xb、pb的輸入格式是否與預設(shè)規(guī)則一致,格式錯誤則反饋給tq,任務(wù)終止,格式一致則繼續(xù)。

進一步地,該方法還包括驗證步驟,當bob需要驗證電子文書m是否由bob簽署,則步驟如下:

s3.1、bob登錄cs提出對電子文書m的驗證請求;

s3.2、cs提供hcm、hcidb、h(rnb)供bob下載,并提供哈希運算工具;

s3.3、cs向任意ts節(jié)點提請編號為n的任務(wù)中bob的驗證請求;

s3.4、收到步驟3.3請求的節(jié)點根據(jù)編號n任務(wù)中記錄的adjq地址,向jq轉(zhuǎn)述bob的驗證請求;

s3.5、jq收到bob的驗證要求,從編號為n的任務(wù)數(shù)據(jù)庫中提取rnb并發(fā)送至pb;

s3.6、bob持有參數(shù)m、xb、pb、rnb以及hcm、hcidb、h(rnb),bob使用哈希運算工具分別對m、(xb+pb)、rnb進行哈希運算,并分別與hcm、hcidb、h(rnb)進行比對,比對一致則驗證完成,編號為n的簽署任務(wù)由bob完成,比對不一致則驗證失敗,編號為n的簽署任務(wù)非bob完成;alice的需要驗證電子文書m是否由其簽署的步驟同上。

本發(fā)明的有益效果:

本發(fā)明基于區(qū)塊鏈的技術(shù)應用而提出,利用區(qū)塊鏈的去中心化思想并結(jié)合其分布式賬本和智能合約機制,實現(xiàn)了在不依賴于特定可信主體的基礎(chǔ)上,解決了從技術(shù)層面保證電子合同簽署可靠性問題。

相對于傳統(tǒng)的電子合同簽署方法,具有如下特點:

1、去中心化,系統(tǒng)不再依賴于某個推定可信的主體;

2、分布式數(shù)據(jù)庫部署,無需再擔心出現(xiàn)數(shù)據(jù)的容災備份問題;

3、數(shù)據(jù)真實性用戶可自助驗真,不用依賴于特定主體提供的報告;

4、平臺不能冒充某個用戶向另一個用戶發(fā)起簽約請求,可靠性好。

附圖說明

圖1是本發(fā)明的結(jié)構(gòu)示意圖。

具體實施方式

下面結(jié)合附圖和實施例對本發(fā)明作進一步的說明。

如圖1所示,一種基于區(qū)塊鏈和智能合約的電子文書簽署方法,它采用業(yè)務(wù)平臺服務(wù)器cs、多個區(qū)塊鏈節(jié)點服務(wù)器ts和多個區(qū)塊鏈智能合約腳本服務(wù)器js,其中,業(yè)務(wù)平臺服務(wù)器cs用于接受用戶的訪問和提供數(shù)據(jù)交互,cs與各區(qū)塊鏈節(jié)點服務(wù)器ts連接通信,每個ts與對應的js進行通信,各ts的數(shù)據(jù)庫之間保持數(shù)據(jù)同步,所述的各區(qū)塊鏈智能合約腳本服務(wù)器js均為部署在網(wǎng)絡(luò)上的預設(shè)腳本執(zhí)行代碼的服務(wù)器,作為區(qū)塊鏈上的智能合約腳本,能夠接受預定格式的輸入,并在接收到合格的輸入后,完成運算輸出,該方法的步驟包括:

s1、初始化的步驟:

s1.1、使用公鑰密碼算法,為cs頒發(fā)密鑰對,其中公鑰為pukc,私鑰為prkc;

s1.2、使用公鑰密碼算法,為每一個ts頒發(fā)密鑰對,公鑰分別為pukt1、pukt2、pukt3、…、puktn,私鑰分別為prkt1、prkt2、prkt3、…、prktn;

s1.3、設(shè)置cs、ts和js使用統(tǒng)一的哈希運算規(guī)則,可采用sha256算法;

s1.4、為每一個ts和js分配唯一的通訊地址,表示為adt1、adt2、adt3、…adtn和adj1、adj2、adj3、…、adjn;

s1.5、各用戶登錄cs進行注冊,cs為各用戶完成實名身份審核;

簽署流程

s2、簽約發(fā)起

s2.1、用戶alice登錄cs,導入需要與bob共同簽署的電子文書m,cs通過用戶數(shù)據(jù)庫查詢得到alice的唯一身份信息xa和通信信息pa,以及bob的唯一身份信息xb和通信信息pb,同時cs為此項簽署任務(wù)生成唯一編號n,將alice的xa和pa合并,標記為ida,將bob的xb和pb合并,標記為idb;唯一身份信息xa是能夠進行實名身份審核的信息,包括:身份證號碼、護照號碼或社會保障號碼,通信信息pa包括手機號、地址、傳真和電子郵箱。

s2.2、cs對m、ida、idb分別進行哈希運算,得到hcm、hcida、hcidb,并將alice的此項簽署任務(wù)按照bob的通信信息pb通知給bob;

s2.3、cs將hcm、hcida、hcidb使用私鑰prkc簽名后,連同任務(wù)編號n,向全網(wǎng)所有區(qū)塊鏈節(jié)點服務(wù)器ts廣播,請求響應;

s2.4、所有接收到廣播的ts都將編號為n的加入任務(wù)表單,保存任務(wù)信息hcm、hcida、hcidb,并根據(jù)服務(wù)器空閑程度決定是否響應;

s2.5、決定響應的區(qū)塊鏈節(jié)點服務(wù)器ts使用cs的公鑰pukc驗證任務(wù)n的簽名正確,使用各自的私鑰對hcm、hcida、hcidb進行簽名后,連同任務(wù)編號n和自己的地址作為響應信息回復給cs;

s2.6、cs在接收到的所有ts的響應中隨機選擇一個進行簽名驗證,簽名正確則將該區(qū)塊鏈節(jié)點服務(wù)器ts作為有權(quán)節(jié)點tq;

s2.7、cs將m、ida、idb使用該有權(quán)節(jié)點tq的公鑰puktq加密,得到m’、ida’、idb’,通過地址adtq發(fā)送給該有權(quán)節(jié)點tq;

s2.8、進行步驟2.7的同時,cs向全網(wǎng)ts發(fā)送經(jīng)puktq加密得到的m’、ida’、idb’,并通知編號n的任務(wù)已經(jīng)被選由有權(quán)節(jié)點tq處理,接收到通知的所有ts將m’、ida’、idb’、adtq記錄于編號為n的任務(wù)表單;

s2.9、有權(quán)節(jié)點tq收到步驟2.7發(fā)出的加密數(shù)據(jù),使用私鑰prktq解密,還原出m、ida、idb,并對其分別進行哈希運算,以驗證哈希值是否與之前的hcm、hcida、hcidb相一致;驗證不一致則通知cs重新發(fā)起任務(wù),驗證一致則進一步將ida、idb還原為xa、pa、xb、pb;

s2.10、有權(quán)節(jié)點tq從所有連接的區(qū)塊鏈智能合約腳本服務(wù)器js中隨機選擇其中的一個作為有權(quán)服務(wù)器jq;

s2.11、有權(quán)節(jié)點tq將hcm、xa、pa、xb、pb使用私鑰prktq簽名后,連同唯一任務(wù)編號n和tq的地址adtq發(fā)送給jq的地址adjq;任務(wù)發(fā)送后,有權(quán)節(jié)點tq將解密得到的m、ida、idb丟棄,只保存加密的m’、ida’、idb’進數(shù)據(jù)庫;

s2.12、有權(quán)服務(wù)器jq接收信息,使用tq的公鑰puktq簽名驗證,判斷hcm、xa、pa、xb、pb的輸入格式是否與預設(shè)規(guī)則一致,格式錯誤則反饋給tq,任務(wù)終止,格式一致則繼續(xù)。

s2.13、有權(quán)服務(wù)器jq將hcm、xa和當前時間tjqn作為參數(shù),使用隨機算法為alice生成一個隨機碼rna,通過通信信息pa發(fā)送給alice;同時將rna、tjqn存入編號為n的表單數(shù)據(jù)庫;jq將hcm、xb和當前時間tjqn作為參數(shù),使用隨機算法為bob生成一個隨機碼rnb,通過通信信息pb發(fā)送給bob;同時將rna、tjqn存入編號為n的表單數(shù)據(jù)庫;

s2.14、jq分別對rna和rnb進行哈希運算,得到哈希值h(rna)和h(rnb),并連同任務(wù)編號n和jq的地址adjq,向所有ts節(jié)點服務(wù)器廣播,收到廣播的節(jié)點服務(wù)器將h(rna)、h(rnb)和adjq保存于編號為n的任務(wù)數(shù)據(jù)表單中;(此時,所有的ts節(jié)點服務(wù)器在編號n的任務(wù)表單中已經(jīng)同步記錄了hcm、hcida、hcidb、adtq、h(rna)、h(rnb)和adjq,以及經(jīng)tq公鑰puktq加密過的m’、ida’、idb’)

s2.15、alice登錄cs,進入任務(wù)n查閱m,輸入jq發(fā)送的隨機碼rna以確認對電子文書m的簽署;bob登錄cs,進入任務(wù)n查閱m,輸入jq發(fā)送的隨機碼rnb以確認對電子文書m的簽署;

s2.16、cs分別對rna和rnb進行哈希運算,得到哈希值h(rna)’和h(rnb)’,并將h(rna)’和h(rnb)’連同任務(wù)編號n向全網(wǎng)所有ts廣播,請求驗證;

s2.17、收到步驟2.16驗證請求的節(jié)點分別將h(rna)’和h(rnb)’與之前保存任務(wù)n表單中的h(rna)和h(rnb)進行比對,如果h(rna)’與h(rna)比對一致,則通知cs,h(rna)’比對通過,如不一致則通知h(rna)’比對不通過;如果h(rnb)’與h(rnb)比對一致,則通知cs,h(rnb)’比對通過,如不一致則通知h(rnb)’比對不通過;

s2.18、cs從多個節(jié)點收到的驗證反饋結(jié)果h(rna)’,比對通過超過閾值的,則alice電子文書m的簽署任務(wù)完成;比對通過不超過閾值的,則alice簽署失敗;cs從多個節(jié)點收到的驗證反饋結(jié)果h(rnb)’,比對通過超過閾值的,則bob電子文書m的簽署任務(wù)完成;比對通過不超過閾值的,則bob簽署失?。?/p>

s2.19、alice與bob電子文書m的簽署任務(wù)均完成,則簽署成功,cs從任意節(jié)點ts下載編號為n的任務(wù)表單的hcm、hcida、hcidb、adtq、h(rna)、h(rnb)和adjq,以及m’、ida’、idb’。

具體實施時:

該方法還包括驗證步驟,

當bob需要驗證電子文書m是否由bob簽署,則步驟如下:

s3.1、bob登錄cs提出對電子文書m的驗證請求;

s3.2、cs提供hcm、hcidb、h(rnb)供bob下載,并提供哈希運算工具;

s3.3、cs向任意ts節(jié)點提請編號為n的任務(wù)中bob的驗證請求;

s3.4、收到步驟3.3請求的節(jié)點根據(jù)編號n任務(wù)中記錄的adjq地址,向jq轉(zhuǎn)述bob的驗證請求;

s3.5、jq收到bob的驗證要求,從編號為n的任務(wù)數(shù)據(jù)庫中提取rnb并發(fā)送至pb;

s3.6、bob持有參數(shù)m、xb、pb、rnb以及hcm、hcidb、h(rnb),bob使用哈希運算工具分別對m、(xb+pb)、rnb進行哈希運算,并分別與hcm、hcidb、h(rnb)進行比對,比對一致則驗證完成,編號為n的簽署任務(wù)由bob完成,比對不一致則驗證失敗,編號為n的簽署任務(wù)非bob完成;alice的需要驗證電子文書m是否由其簽署的步驟同上。

當alice需要驗證電子文書m是否由alice簽署,則步驟如下:

s4.1、alice登錄cs提出對電子文書m的驗證請求;

s4.2、cs提供hcm、hcida、h(rna)供alice下載,并提供哈希運算工具;

s4.3、cs向任意ts節(jié)點提請編號為n的任務(wù)中alice的驗證請求;

s4.4、收到步驟4.3請求的節(jié)點根據(jù)編號n任務(wù)中記錄的adjq地址,向jq轉(zhuǎn)述alice的驗證請求;

s4.5、jq收到alice的驗證要求,從編號為n的任務(wù)數(shù)據(jù)庫中提取rna并發(fā)送至pa;

s4.6、alice持有參數(shù)m、xa、pa、rna以及hcm、hcida、h(rna),alice使用哈希運算工具分別對m、(xa+pa)、rna進行哈希運算,并分別與hcm、hcida、h(rna)進行比對,比對一致則驗證完成,編號為n的簽署任務(wù)由alice完成,比對不一致則驗證失敗,編號為n的簽署任務(wù)非alice完成。

本發(fā)明基于區(qū)塊鏈的技術(shù)應用而提出,利用區(qū)塊鏈的去中心化思想并結(jié)合其分布式賬本和智能合約機制,實現(xiàn)了在不依賴于特定可信主體的基礎(chǔ)上,解決了從技術(shù)層面保證電子合同簽署可靠性問題。

本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實現(xiàn)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1