[發(fā)明專利]一種基于延遲狀態(tài)共識的高效許可鏈的設計方法有效
| 申請?zhí)枺?/td> | 201710684961.2 | 申請日: | 2017-08-11 |
| 公開(公告)號: | CN107688945B | 公開(公告)日: | 2020-04-10 |
| 發(fā)明(設計)人: | 謝晗劍 | 申請(專利權)人: | 杭州溪塔科技有限公司 |
| 主分類號: | G06Q20/40 | 分類號: | G06Q20/40 |
| 代理公司: | 杭州求是專利事務所有限公司 33200 | 代理人: | 黃歡娣;邱啟旺 |
| 地址: | 310012 浙江省杭州市西湖區(qū)*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 延遲 狀態(tài) 共識 高效 許可 設計 方法 | ||
技術領域
本發(fā)明在原有區(qū)塊鏈模型的基礎之上,討論了在許可鏈情境下,如何處理交易排序、狀態(tài)計算和狀態(tài)共識的順序問題,以求最大限度地提高區(qū)塊鏈的計算能力和吞吐量。
背景技術
區(qū)塊鏈是一種新的分布式技術,用戶發(fā)起一個個的交易,出塊節(jié)點驗證交易的合法性,并將交易排序并打包成塊后,廣播給其他節(jié)點進行共識。目前的區(qū)塊鏈系統是同步進行交易排序和狀態(tài)共識的,均在一個塊內達成。
比特幣的區(qū)塊只存儲交易列表,而未花費貨幣列表作為全鏈的狀態(tài)并沒有在區(qū)塊里有一個顯示的記錄。出塊人打包交易時,校驗的范圍包括交易簽名,還包括該交易的輸入是否在全鏈的狀態(tài)里,如果是未花費貨幣則為合法交易,并打包交易并廣播。其他節(jié)點保留了同樣的本地未花費貨幣列表,做同樣的校驗,并修改本地狀態(tài)。區(qū)塊的交易排序,狀態(tài)計算和狀態(tài)共識是同步的,在一個區(qū)塊內完成。
以太坊的區(qū)塊存儲了交易列表,回執(zhí)root,最新狀態(tài)root。以太坊的出塊節(jié)點在打包交易時,逐個驗證交易的簽名,并計算用戶的余額是否足夠進行轉賬和支付手續(xù)費,如果滿足則加入區(qū)塊中,并修改本地的狀態(tài),最終將回執(zhí)和最新狀態(tài)進行Merkle Patricia Tree的存證處理生成兩個root存儲于當前塊中,并廣播給其他節(jié)點驗證。其他節(jié)點根據待驗證塊的交易列表和自己本地的狀態(tài),進行計算,比對回執(zhí)root和最新狀態(tài)root,如果一致則為合法區(qū)塊。區(qū)塊的交易排序,狀態(tài)計算和狀態(tài)共識也是同步的,在一個區(qū)塊內完成。
目前的公有鏈一般存在一定的出塊時間間隔,比如以太坊就是15秒左右,但如果是同步的交易排序和狀態(tài)共識,那么出塊節(jié)點需要在這15秒期間,首先花費一半的時間驗證其他出塊節(jié)點廣播過來的區(qū)塊鏈,再在這一區(qū)塊的基礎上花費一半的時間計算下一個新區(qū)塊。如果是許可鏈,則可能還不到一半的時間,因為多輪投票共識還需要消耗很多網絡時間,所以單個區(qū)塊的計算時間大概只有出塊間隔的三分之一。
在公有鏈的情境下,如果節(jié)點只是簡單驗證簽名就打包交易,而不進行狀態(tài)計算,則可能會有很多無效的交易被打包入塊,比如余額不足以支付計算消耗的手續(xù)費等。而許可鏈情境下,用戶均有實際身份,而且系統內有簡化的余額模型和計算消耗模型,不會出現大規(guī)模惡意發(fā)送無效交易的情況,所以可以將交易不經過計算直接打包入區(qū)塊,將計算通過異步的情況完成,但如果不進行狀態(tài)共識,又無法保證節(jié)點間狀態(tài)的一致,所以可以采用延后共識的方法,將狀態(tài)root記錄在后面的區(qū)塊中。
發(fā)明內容
本發(fā)明的目的在于針對現有技術的不足,提供一種基于延遲狀態(tài)共識的高效許可鏈。
本發(fā)明的目的是通過以下技術方案實現的:一種基于延遲狀態(tài)共識的高效許可鏈,所述區(qū)塊鏈中,異步處理交易排序及共識、狀態(tài)計算的操作,每個節(jié)點使用一個進程進行交易排序及共識,另一個進程進行狀態(tài)計算,
其中,所述交易排序的步驟如下:
步驟1:將所需的數據置入創(chuàng)世塊中,生成創(chuàng)世塊狀態(tài)root_0,許可鏈從創(chuàng)世塊啟動。
步驟2:所有節(jié)點生成本地空狀態(tài)列表root_list,用于存放已經完成計算的狀態(tài),同步創(chuàng)世塊后,將root_list中的第一個元素root_list[0]設置為root_0,并設置當前已完成共識的高度consensus_h為0。
步驟3:用戶發(fā)送交易,簽名后廣播給共識節(jié)點。
步驟4:出塊節(jié)點將出高度為H(H≥1)的區(qū)塊時,首先收集用戶交易,驗證交易的用戶權限和交易簽名,但不進行計算,直接打包進區(qū)塊中,并取出root_list中下標(該下標指列表root_list中的元素從0開始的序號)大于等于consensus_h的狀態(tài)子列表root_delta(可以為空),將root_delta作為前序狀態(tài)也放置于塊中。
步驟5:出塊節(jié)點簽名高度為H的區(qū)塊并廣播給其他的節(jié)點,并將consensus_h設置為H。
區(qū)塊共識的步驟如下:
步驟1:節(jié)點在收到廣播的高度為H的區(qū)塊時,首先驗證區(qū)塊內交易的用戶權限和交易簽名,并從自己root_list中取出下標大于等于consensus_h的區(qū)塊根組成的一個子集root_delta’,若root_delta’元素個數小于收到的區(qū)塊中root_delta的元素個數,則等待一定時間后重取。
步驟2:節(jié)點比對root_delta’和root_delta的所有狀態(tài),如果一致,則表示狀態(tài)共識驗證通過,將該區(qū)塊作為合法區(qū)塊進行后續(xù)投票等操作,并設置consensus_h為H。
進一步地,所述狀態(tài)計算的方法如下:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州溪塔科技有限公司,未經杭州溪塔科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710684961.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種大跨度孔系加工的同軸度控制系統
- 下一篇:一種圓法蘭鉆孔分度裝置





