本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是區(qū)塊鏈、國密算法等技術(shù),尤其是一種支持國密算法的區(qū)塊鏈系統(tǒng)。
背景技術(shù):
區(qū)塊鏈?zhǔn)且环N以密碼學(xué)技術(shù)為基礎(chǔ),以去中心化的方式,對大量數(shù)據(jù)進(jìn)行組織和維護(hù)的數(shù)據(jù)結(jié)構(gòu)。區(qū)塊鏈上的數(shù)據(jù)全部都附有相關(guān)用戶的數(shù)字簽名,不可偽造。區(qū)塊鏈版本號、時間戳、上一區(qū)塊摘要、隨機(jī)數(shù)、交易根節(jié)點、交易信息。區(qū)塊鏈可以被想象成一本賬本,每個區(qū)塊就是這個賬本里的一頁賬目。每頁賬目里包含了一個預(yù)設(shè)時間段里的所有交易?,F(xiàn)有的區(qū)塊鏈技術(shù),完全使用ECDSA算法,無法適應(yīng)國內(nèi)監(jiān)管要求,同時不支持對算法進(jìn)行選擇,不利于對國產(chǎn)化等特定加密要求。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決上述現(xiàn)有技術(shù)的缺點,提供一種可以使用指定算法運(yùn)算,又符合原有特性的支持國密算法的區(qū)塊鏈系統(tǒng)。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案:這種支持國密算法的區(qū)塊鏈系統(tǒng),區(qū)塊鏈由區(qū)塊1、區(qū)塊2、區(qū)塊3,區(qū)塊N等若干個不斷增加的區(qū)塊構(gòu)成,區(qū)塊鏈中的各個區(qū)塊之間通過摘要信息相關(guān)聯(lián),每一個區(qū)塊頭部包含有上一個區(qū)塊的摘要信息,保證鏈接在一起的所有區(qū)塊可以通過摘要信息按順序排列,新的區(qū)塊在指定的每N分鐘之內(nèi)產(chǎn)生一塊,并附加到區(qū)塊鏈末尾,每個區(qū)塊保存有N分鐘之內(nèi)的交易信息,交易信息容量為指定大小。
每筆所述的交易信息都附帶有發(fā)出交易人的私鑰對交易信息的電子簽名,接收交易信息的人員在獲取交易內(nèi)容時,需要通過發(fā)出交易人的公鑰信息進(jìn)行電子簽名驗證,接收人驗證通過即可使用該交易信息包含的數(shù)據(jù)內(nèi)容。
所有的所述摘要信息都使用SM3算法獲取。
所述交易信息中的電子簽名使用SM2算法進(jìn)行私鑰簽名獲得。
所述交易信息中的電子簽名的使用SM2算法進(jìn)行公鑰驗證。
本發(fā)明有益的效果是:本發(fā)明把國密算法SM2與區(qū)塊鏈結(jié)合,保證區(qū)塊鏈技術(shù)在實現(xiàn)已有的分布式賬本技術(shù),實現(xiàn)去中性化、公開透明,讓每個人均可參與數(shù)據(jù)庫記錄基礎(chǔ)上,在數(shù)據(jù)記錄的過程中,同時可以選擇使用國密算法SM2,SM3分別進(jìn)行非對稱加解密運(yùn)算、摘要運(yùn)算,使其符合國內(nèi)標(biāo)準(zhǔn)及監(jiān)管要求。
附圖說明
圖1是區(qū)塊關(guān)聯(lián)及新區(qū)塊產(chǎn)生時國密算法使用位置的示意說明;
圖2是交易信息記錄時國密算法的使用及交易記錄關(guān)聯(lián)方法的示意說明。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步說明:
如圖所示,這種支持國密算法的區(qū)塊鏈系統(tǒng),區(qū)塊鏈由區(qū)塊1、區(qū)塊2、區(qū)塊3,區(qū)塊N等若干個不斷增加的區(qū)塊構(gòu)成,區(qū)塊鏈中的各個區(qū)塊之間通過摘要信息相關(guān)聯(lián),每一個區(qū)塊頭部包含有上一個區(qū)塊的摘要信息,保證鏈接在一起的所有區(qū)塊可以通過摘要信息按順序排列,新的區(qū)塊在指定的每N分鐘之內(nèi)產(chǎn)生一塊,并附加到區(qū)塊鏈末尾,每個區(qū)塊保存有N分鐘之內(nèi)的交易信息,交易信息容量為指定大小。本發(fā)明的區(qū)塊鏈約每2分鐘生成一個區(qū)塊。新區(qū)塊附加于前一個區(qū)塊之后,形成一個鏈的結(jié)構(gòu),每個區(qū)塊內(nèi)包含了2分鐘內(nèi)所發(fā)生的交易信息,以及其他必要的檢索和校驗信息。每個區(qū)塊保存的每筆交易信息通過摘要信息關(guān)聯(lián),每筆交易信息保存有上一筆交易的摘要信息,通過摘要信息可以從區(qū)塊的交易信息根節(jié)點開始,通過樹狀結(jié)構(gòu)查詢到所有交易信息。
每筆所述的交易信息都附帶有發(fā)出交易人的私鑰對交易信息的電子簽名,接收交易信息的人員在獲取交易內(nèi)容時,需要通過發(fā)出交易人的公鑰信息進(jìn)行電子簽名驗證,接收人驗證通過即可使用該交易信息包含的數(shù)據(jù)內(nèi)容。所有的摘要信息都使用SM3算法獲取。交易信息中的電子簽名使用SM2算法進(jìn)行私鑰簽名獲得。交易信息中的電子簽名的使用SM2算法進(jìn)行公鑰驗證。
一個完整的區(qū)塊鏈包含了自創(chuàng)世塊以來的所有交易信息,依次執(zhí)行這些交易就能得到當(dāng)前的所有信息的歸屬和狀態(tài)。
區(qū)塊鏈技術(shù)的去中心化特點保障了系統(tǒng)的健壯性和安全性;公開數(shù)據(jù)特點保證了系統(tǒng)的透明性和可審計性;本發(fā)明的區(qū)塊鏈系統(tǒng)可以以極低的成本完成傳統(tǒng)中心化數(shù)據(jù)庫的等量事務(wù)。
共識機(jī)制是指運(yùn)行區(qū)塊鏈協(xié)議的各節(jié)點對當(dāng)前區(qū)塊鏈狀態(tài)達(dá)成一致意見的機(jī)制。本發(fā)明的區(qū)塊鏈以節(jié)點的運(yùn)算能力來確定記賬節(jié)點,由該節(jié)點進(jìn)行對每個區(qū)塊內(nèi)容進(jìn)行共識,來決定其中所應(yīng)包含的交易,并記錄到區(qū)塊中。
私鑰是一個256位的隨機(jī)數(shù),由用戶保管且不對外公開。私鑰是用戶賬戶使用權(quán)以及賬戶內(nèi)數(shù)據(jù)所有權(quán)的依據(jù)。
公鑰是每一個私鑰都有一個與之相匹配的公鑰。區(qū)塊鏈的公鑰可由私鑰通過單向、確定性的算法生成。
地址是將一組公鑰的有序排列得到的腳本,通過單向、確定性的算法生成:
SM2是國家密碼管理局在2010年12月份公布了《SM2橢圓曲線公鑰密碼算法》,SM2算法規(guī)定了簽名、驗證、密鑰交換等具體細(xì)節(jié)。
SM3是國家密碼管理局編制的商用算法,用于密碼應(yīng)用中的數(shù)字簽名和驗證、消息認(rèn)證碼的生成與驗證以及隨機(jī)數(shù)的生成,可滿足多種密碼應(yīng)用的安全需求。
如圖1所示,每個區(qū)塊有保存上一個區(qū)塊的摘要信息,使用SM3算法計算上一個區(qū)塊的摘要并放入A位置,每個區(qū)塊的交易根記錄使用SM3算法將根節(jié)點摘要信息存入B位置,同時每筆交易都存儲有該筆交易的SM3摘要信息,存儲與C位置;交易信息內(nèi)部有多個使用摘要信息關(guān)聯(lián)的交易記錄,存儲于D位置,展開后即為圖2。
如圖2所示,每筆交易信息都有用SM3計算摘要,并存儲于E位置;當(dāng)一筆交易信息產(chǎn)生,并傳遞給下一個用戶時,需要使用自己的私鑰對交易信息使用SM2算法簽名,產(chǎn)生的簽名信息存儲于F的位置;下一個用戶對發(fā)送給他的交易信息啟用,轉(zhuǎn)發(fā)給他人時,需要用上一個用戶的公鑰通過SM2算法對簽名信息進(jìn)行驗證,驗證正確后可把交易信息轉(zhuǎn)發(fā)給下一個用戶,驗證內(nèi)容在G位置。
本發(fā)明在原有區(qū)塊鏈ECDSA算法的基礎(chǔ)上增加SM2算法。本發(fā)明所采用的方案是根據(jù)設(shè)定的算法進(jìn)行區(qū)塊鏈交易運(yùn)算,相關(guān)參與節(jié)點接收到交易信息后,根據(jù)指定的算法進(jìn)行驗證。與現(xiàn)有技術(shù)相比,本發(fā)明的效果是支持國密的簽名及驗證算法,包括摘要算法、非對稱加解密算法。
除上述實施例外,本發(fā)明還可以有其他實施方式。凡采用等同替換或等效變換形成的技術(shù)方案,均落在本發(fā)明要求的保護(hù)范圍。