[發(fā)明專利]一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法有效
| 申請(qǐng)?zhí)枺?/td> | 202011037777.7 | 申請(qǐng)日: | 2020-09-28 |
| 公開(公告)號(hào): | CN112182105B | 公開(公告)日: | 2022-06-17 |
| 發(fā)明(設(shè)計(jì))人: | 朱國(guó)勝;吳夢(mèng)宇;祁小云 | 申請(qǐng)(專利權(quán))人: | 湖北大學(xué);賽爾網(wǎng)絡(luò)有限公司 |
| 主分類號(hào): | G06F16/27 | 分類號(hào): | G06F16/27;G06F16/23;G06F16/22 |
| 代理公司: | 武漢聚信匯智知識(shí)產(chǎn)權(quán)代理有限公司 42258 | 代理人: | 劉丹 |
| 地址: | 430062 湖北*** | 國(guó)省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 merkle 區(qū)塊 數(shù)據(jù) 修改 方法 | ||
1.一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法,其特征在于,包括:
步驟1,將區(qū)塊鏈的區(qū)塊體劃分為數(shù)據(jù)區(qū)和擴(kuò)展區(qū),數(shù)據(jù)只存入數(shù)據(jù)區(qū),兩個(gè)區(qū)單獨(dú)構(gòu)建Merkle樹,將兩棵Merkle樹的根分別存入?yún)^(qū)塊頭中;
步驟2,對(duì)于需要修改的錯(cuò)誤數(shù)據(jù),獲得一定數(shù)量節(jié)點(diǎn)同意后,在擴(kuò)展區(qū)中重寫該數(shù)據(jù)并重新構(gòu)建擴(kuò)展區(qū)的Merkle樹;
所述步驟1具體包括如下步驟:
步驟1.1,將區(qū)塊體劃分為數(shù)據(jù)區(qū)和擴(kuò)展區(qū),打包區(qū)塊時(shí),將所有數(shù)據(jù)分別計(jì)算哈希值作為葉子節(jié)點(diǎn),葉子節(jié)點(diǎn)兩兩配對(duì)后再計(jì)算哈希值作為父節(jié)點(diǎn),相鄰的兩個(gè)父節(jié)點(diǎn)再兩兩配對(duì)計(jì)算哈希值,以此類推,直到只剩一個(gè)節(jié)點(diǎn),為根節(jié)點(diǎn),以此來構(gòu)建Merkle樹1,將Merkle樹1存入數(shù)據(jù)區(qū);
步驟1.2,擴(kuò)展區(qū)存放只含有根節(jié)點(diǎn)的Merkle樹2,該根節(jié)點(diǎn)的值和數(shù)據(jù)區(qū)根節(jié)點(diǎn)的值相同;
步驟1.3,將兩個(gè)根節(jié)點(diǎn)值Merkle1_Root和Merkle2_Root存入?yún)^(qū)塊頭中,并將前一個(gè)區(qū)塊數(shù)據(jù)區(qū)進(jìn)行哈希計(jì)算得到的哈希值PreHash存入?yún)^(qū)塊頭中,區(qū)塊之間通過PreHash形成前后鏈接關(guān)系,由于數(shù)據(jù)修改只改變擴(kuò)展區(qū),數(shù)據(jù)區(qū)不變,所以在數(shù)據(jù)修改后,前后區(qū)塊間的鏈接關(guān)系不會(huì)被破壞。
2.如權(quán)利要求1所述的一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法,其特征在于,所述步驟2具體包括如下步驟:
步驟2.1:某個(gè)節(jié)點(diǎn)如果發(fā)現(xiàn)自己上傳的數(shù)據(jù)有誤,需要發(fā)起區(qū)塊數(shù)據(jù)修改請(qǐng)求,將該數(shù)據(jù)所在的區(qū)塊號(hào)、錯(cuò)誤數(shù)據(jù)ID和正確數(shù)據(jù)一起簽名之后向全網(wǎng)節(jié)點(diǎn)廣播;
步驟2.2,其他節(jié)點(diǎn)收到消息后對(duì)簽名和數(shù)據(jù)進(jìn)行驗(yàn)證,驗(yàn)證通過后決定是否同意此次數(shù)據(jù)修改;
步驟2.3,當(dāng)獲得一定數(shù)量節(jié)點(diǎn)的同意后即可對(duì)區(qū)塊數(shù)據(jù)進(jìn)行合法修改。
3.如權(quán)利要求2所述的一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法,其特征在于,當(dāng)擴(kuò)展區(qū)的Merkle根和數(shù)據(jù)區(qū)的Merkle根相同時(shí),說明該區(qū)塊未進(jìn)行過數(shù)據(jù)修改,數(shù)據(jù)區(qū)中的數(shù)據(jù)保持不變,將要修改的數(shù)據(jù)在擴(kuò)展區(qū)中重寫為修改后的數(shù)據(jù),數(shù)據(jù)ID和數(shù)據(jù)區(qū)中原始數(shù)據(jù)ID保持一致,然后進(jìn)行哈希計(jì)算得到該數(shù)據(jù)的哈希值,作為葉子節(jié)點(diǎn)并與自身配對(duì)構(gòu)建Merkle樹。
4.如權(quán)利要求2所述的一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法,其特征在于,當(dāng)擴(kuò)展區(qū)的Merkle根和數(shù)據(jù)區(qū)的Merkle根不同時(shí),說明已經(jīng)進(jìn)行過數(shù)據(jù)修改,若擴(kuò)展區(qū)中最后兩個(gè)數(shù)據(jù)的ID相同,說明是和自身配對(duì)的,取其中一個(gè)與新的修改數(shù)據(jù)哈希值重新配對(duì),并重新構(gòu)建Merkle樹;若擴(kuò)展區(qū)中最后兩個(gè)數(shù)據(jù)ID不同,新的修改數(shù)據(jù)哈希值仍然和自身配對(duì),再重新構(gòu)建Merkle樹;修改成功后將區(qū)塊頭中的Merkle2_Root更新為擴(kuò)展區(qū)中新的Merkle根。
5.如權(quán)利要求2所述的一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法,其特征在于,對(duì)于完成數(shù)據(jù)修改后的區(qū)塊,其區(qū)塊頭中的Merkle2_Root會(huì)發(fā)生改變;由于區(qū)塊初始狀態(tài)下,Merkle1_Root和Merkle2_Root是相同的,那么在向區(qū)塊中獲取數(shù)據(jù)時(shí),只需要先比對(duì)區(qū)塊頭中Merkle1_Root和Merkle2_Root的值是否相同,若相同,直接將數(shù)據(jù)區(qū)的數(shù)據(jù)全部取出;若不相同,說明區(qū)塊數(shù)據(jù)已經(jīng)修改,先將擴(kuò)展區(qū)中的數(shù)據(jù)全部取出,并單獨(dú)取出所有的數(shù)據(jù)ID集合,數(shù)據(jù)區(qū)中數(shù)據(jù)ID在該集合中的數(shù)據(jù)均為已修改數(shù)據(jù)的原始數(shù)據(jù),需要剔除,剔除之后的數(shù)據(jù)區(qū)數(shù)據(jù)和加上擴(kuò)展區(qū)中的數(shù)據(jù)為區(qū)塊中的有效數(shù)據(jù)。
6.如權(quán)利要求5所述的一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法,其特征在于,首先在可信節(jié)點(diǎn)處重新構(gòu)建數(shù)據(jù)區(qū)的Merkle樹和擴(kuò)展區(qū)中的Merkle樹,得到可信的Merkle1_Root集合和Merkle2_Root集合;然后對(duì)其他節(jié)點(diǎn)進(jìn)行驗(yàn)證,驗(yàn)證時(shí)需要用可信Merkle1_Root集合和可信Merkle2_Root集合分別與所有區(qū)塊頭中Merkle1_Root和Merkle2_Root逐一比對(duì),如果都一致,則該條鏈?zhǔn)峭暾模还苁荕erkle1_Root還是Merkle2_Root,只要出現(xiàn)不一致的情況,即為區(qū)塊數(shù)據(jù)不完整,舍棄該區(qū)塊,從已驗(yàn)證節(jié)點(diǎn)處重新同步數(shù)據(jù)。
7.如權(quán)利要求5所述的一種基于Merkle樹的區(qū)塊鏈數(shù)據(jù)修改方法,其特征在于,如果發(fā)現(xiàn)非法數(shù)據(jù)修改行為,直接將所在區(qū)塊的擴(kuò)展區(qū)和區(qū)塊頭中的Merkle2_Root重置為初始狀態(tài),取數(shù)據(jù)時(shí)仍然會(huì)從數(shù)據(jù)區(qū)取出原數(shù)據(jù),數(shù)據(jù)不會(huì)丟失或被破壞。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于湖北大學(xué);賽爾網(wǎng)絡(luò)有限公司,未經(jīng)湖北大學(xué);賽爾網(wǎng)絡(luò)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011037777.7/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 在區(qū)塊鏈網(wǎng)絡(luò)中的數(shù)據(jù)隔離
- 消費(fèi)信息核對(duì)方法、設(shè)備及存儲(chǔ)介質(zhì)
- 基于區(qū)塊鏈的存證方法及裝置、系統(tǒng)與存儲(chǔ)介質(zhì)
- 基于區(qū)塊鏈的存儲(chǔ)方法及裝置、系統(tǒng)與存儲(chǔ)介質(zhì)
- 區(qū)塊鏈狀態(tài)數(shù)據(jù)恢復(fù)方法及裝置、電子設(shè)備
- 區(qū)塊鏈狀態(tài)數(shù)據(jù)同步方法及裝置、電子設(shè)備
- 適用于能源區(qū)塊鏈的并行merkle樹構(gòu)建與驗(yàn)證方法
- 一種面向區(qū)塊鏈的緊湊Merkle多值證明并行生成及驗(yàn)證方法
- 區(qū)塊鏈中交易數(shù)據(jù)的存儲(chǔ)方法、驗(yàn)證方法、及區(qū)塊鏈系統(tǒng)
- 區(qū)塊鏈狀態(tài)數(shù)據(jù)同步方法及裝置、電子設(shè)備
- 沿縱向拓展的區(qū)塊鏈的生成方法及系統(tǒng)
- 沿橫向拓展的區(qū)塊鏈的生成方法及系統(tǒng)
- 區(qū)塊鏈輕量化處理方法、區(qū)塊鏈節(jié)點(diǎn)及存儲(chǔ)介質(zhì)
- 餐廳配備裝置總成
- 區(qū)塊鏈處理方法、裝置及區(qū)塊鏈節(jié)點(diǎn)
- 本地區(qū)塊同步的檢驗(yàn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 用于使用現(xiàn)有區(qū)塊鏈節(jié)點(diǎn)來托管新區(qū)塊鏈的方法和系統(tǒng)
- 一種錐體區(qū)塊、錐體區(qū)塊鏈結(jié)構(gòu)和方法
- 一種錐體區(qū)塊鏈共識(shí)系統(tǒng)、方法及網(wǎng)絡(luò)
- 區(qū)塊分布式區(qū)塊鏈的區(qū)塊數(shù)據(jù)結(jié)構(gòu)、存儲(chǔ)介質(zhì)及電子設(shè)備
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





