一種在網(wǎng)絡(luò)環(huán)境中生成、維護可信數(shù)據(jù)的方法
【專利摘要】本發(fā)明公開了一種在網(wǎng)絡(luò)環(huán)境中生成、維護可信數(shù)據(jù)的方法。本方法為:1)初始化數(shù)據(jù)塊[A]0、公共計算規(guī)則,并向網(wǎng)絡(luò)廣播;2)將認可數(shù)據(jù)塊[A]0的節(jié)點作為參與節(jié)點,當(dāng)需要增加新數(shù)據(jù)A時,由n個參與節(jié)點分別按照該公共計算規(guī)則獨立計算[A]1的備選數(shù)據(jù)塊[A]T并廣播給其他n?1個參與節(jié)點;[A]1是包含新增數(shù)據(jù)A的數(shù)據(jù)塊;3)n個參與節(jié)點根據(jù)監(jiān)聽到的廣播包確定待選公認結(jié)果[A]Y并廣播;4)參與節(jié)點對監(jiān)聽到的[A]T/[A]Y進行計算;當(dāng)計算結(jié)果符合指定的條件,則該參與節(jié)點將自身計算結(jié)果認定為合法公認結(jié)果并廣播。
【專利說明】
-種在網(wǎng)絡(luò)環(huán)境中生成、維護可信數(shù)據(jù)的方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于計算機技術(shù)領(lǐng)域,具體設(shè)及網(wǎng)絡(luò)分布式計算環(huán)境下,多節(jié)點協(xié)作生成 和維護一組可信公共數(shù)據(jù)的方法。
【背景技術(shù)】
[0002] 在分布式網(wǎng)絡(luò)/互聯(lián)網(wǎng)中,當(dāng)多個網(wǎng)絡(luò)節(jié)點的運算依賴同一數(shù)據(jù)集(本文稱公共數(shù) 據(jù))時,需要保證該數(shù)據(jù)可信和準確。如網(wǎng)絡(luò)游戲的各運算節(jié)點依賴同一組全局數(shù)據(jù)來運 行;某些網(wǎng)絡(luò)交易需要依賴同一組歷史交易憑證記錄來處理新的交易請求;某些網(wǎng)絡(luò)應(yīng)用 需要在節(jié)點動態(tài)加入和退出的條件下仍可獲得持久可信的公共數(shù)據(jù)源等?,F(xiàn)有手段通常W 集中存儲和認證的方式來保證數(shù)據(jù)的可信性和準確性,集中處理保證了公共數(shù)據(jù)的一致 性,但也存在欠靈活,中屯、節(jié)點的維持成本高,單點失效風(fēng)險和惡意攻擊等問題。另外,集中 處理適用于針對特定用戶群和特定數(shù)據(jù)的可信及互信,對于非特定節(jié)點間的非特定數(shù)據(jù)處 理則較難實現(xiàn);
[0003] 網(wǎng)絡(luò)分布式計算
[0004] 在網(wǎng)絡(luò)環(huán)境中的計算單元(包括但不限于計算機)獨立運行,通過特定的通訊協(xié)議 和應(yīng)用軟件協(xié)作完成特定的計算任務(wù)。
[0005] 使用數(shù)字簽名技術(shù)來認證和簽署公共數(shù)據(jù),可W解決特定節(jié)點間的對特定數(shù)據(jù)的 互信問題,不能解決非特定節(jié)點對非特定數(shù)據(jù)的互信;
[0006] 傳統(tǒng)多重備份或存儲同樣存在上面的問題;
[0007] 數(shù)字簽名
[000引數(shù)字簽名技術(shù)是最常見的數(shù)據(jù)完整性保護機制,能產(chǎn)生比人類指紋更可靠的"數(shù) 據(jù)指紋"。它將摘要信息用發(fā)送者的私鑰加密,與原文一起傳送給接收者。接收者對收到的 原文產(chǎn)生摘要信息,與發(fā)送者公鑰解密出來的摘要信息做對比,驗證信息的完整性。本發(fā)明 使用數(shù)字簽名技術(shù)對節(jié)點間發(fā)送的數(shù)據(jù)進行完整性和合法性提供保證。數(shù)字簽名技術(shù)并不 解決節(jié)點間互信的問題,在本發(fā)明中,數(shù)字簽名技術(shù)用于非互信節(jié)點間的數(shù)據(jù)通訊不被惡 意篡改。
[0009] 數(shù)字摘要
[0010] 是將任意長度的消息變成固定長度的短消息,它類似于一個自變量是消息的函 數(shù),也就是化Sh函數(shù)。數(shù)字摘要就是采用單項化Sh函數(shù)將需要加密的明文"摘要"成一串固 定長度(128位)的密文運一串密文又稱為數(shù)字指紋,它有固定的長度,而且不同的明文摘要 成密文,其結(jié)果總是不同的,而同樣的明文其摘要必定一致。本發(fā)明使用數(shù)字摘要將離散的 公共數(shù)據(jù)組織成相關(guān)數(shù)據(jù)。
[0011] 結(jié)合數(shù)字簽名和節(jié)點獨立存儲的方式可W-定程度上解決集中處理和存儲帶來 的弊端,此方式僅對靜態(tài)數(shù)據(jù)和具有可信關(guān)系的特定節(jié)點間適用,很難處理動態(tài)產(chǎn)生的數(shù) 據(jù)和動態(tài)加入的非特定節(jié)點之間的可信/互信,且在網(wǎng)絡(luò)環(huán)境中很容易受惡意節(jié)點或網(wǎng)絡(luò) 傳輸錯誤的影響。
[0012] 上述方法中加入傳統(tǒng)的CA機制可解決非特定節(jié)點間對非特定數(shù)據(jù)互信的問題,可 排除惡意節(jié)點的影響,但需要一個特定的組織維護一套校驗機制。仍屬集中式處理,前述的 所有集中式處理的弊端仍舊存在。
[0013] 使用P2P對等網(wǎng)絡(luò)存儲和發(fā)布公共數(shù)據(jù),可保持數(shù)據(jù)公共屬性和冗余可靠性,可解 決非特定群體對特定數(shù)據(jù)的互信,只適用靜態(tài)數(shù)據(jù)存儲,不能解決非特定數(shù)據(jù)和動態(tài)數(shù)據(jù) 的可信/互信問題;另外P2P對等網(wǎng)絡(luò)也不能很好處理數(shù)據(jù)持久性和歷史性的問題。
[0014] 對等網(wǎng)絡(luò)
[0015] 當(dāng)網(wǎng)絡(luò)分布式計算環(huán)境中不存在特定的優(yōu)先節(jié)點和中屯、控制節(jié)點時,計算節(jié)點W 對等的方式協(xié)同進行分布式計算。
[0016] W上方法都不能很好的解決在完全開放場景中公共數(shù)據(jù)可信性的問題,在運里, 本發(fā)明將面向全網(wǎng)開放的環(huán)境和數(shù)據(jù)需保留不確定時間跨度的應(yīng)用場景簡稱為完全開放 場景。
[0017] 完全開放場景歸結(jié)起來有W下特點
[0018] 1.消息的發(fā)送方是面向全網(wǎng)的,接收方或使用者不是確定的;
[0019] 2.信息產(chǎn)生和信息最終被使用的時間跨度是不確定的;
[0020] 3.沒有特定的中屯、處理節(jié)點承擔(dān)集中處理工作;
[0021] 4.信息的傳輸和存儲媒介也不確定。
[0022] 從而,衍生出完全開放場景下需要解決幾個主要問題:
[0023] 1,來自惡意節(jié)點的破壞;
[0024] 2,公共數(shù)據(jù)的持久性和一致性;
[0025] 3,公共數(shù)據(jù)的持久可信性。
【發(fā)明內(nèi)容】
[0026] 針對現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明的目的在于提供一種在網(wǎng)絡(luò)環(huán)境中生 成、維護可信數(shù)據(jù)的方法。本發(fā)明可W在對等網(wǎng)計算環(huán)境中,缺少中屯、控制節(jié)點和可信節(jié)點 的條件下,通過節(jié)點協(xié)作共同生成和維護可信數(shù)構(gòu)并防止篡改。
[0027] 本發(fā)明的技術(shù)方案為:
[00%] -種在網(wǎng)絡(luò)環(huán)境中生成可信數(shù)據(jù)的方法,其步驟為:
[0029] 1)初始化一數(shù)據(jù)塊[A]o、公共計算規(guī)則,向網(wǎng)絡(luò)廣播;
[0030] 2)將認可該數(shù)據(jù)塊[A]o的節(jié)點作為參與節(jié)點;
[0031] 3)當(dāng)有n個參與節(jié)點需要在該數(shù)據(jù)塊[A]〇中增加新數(shù)據(jù)A時,則該n個參與節(jié)點均 按照公共計算規(guī)則分別計算數(shù)據(jù)塊[A]i的備選數(shù)據(jù)塊[A]t;其中,數(shù)據(jù)塊[A]i是該數(shù)據(jù)塊 [A]o增加數(shù)據(jù)A后的數(shù)據(jù)塊;
[0032] 4)該n個參與節(jié)點分別將各自的計算結(jié)果[A]t廣播給其他參與節(jié)點;
[0033] 5)參與節(jié)點監(jiān)聽計算結(jié)果[A]t的廣播包并進行計算;當(dāng)計算結(jié)果達到指定的條 件,則該參與節(jié)點將自身計算結(jié)果[A]t認定為待選公認結(jié)果并廣播。
[0034] -種在網(wǎng)絡(luò)環(huán)境中維護可信數(shù)據(jù)的方法,其步驟為:
[0035] 1)當(dāng)有n個參與節(jié)點需要在一公認的數(shù)據(jù)塊[A]n中增加新數(shù)據(jù)A時,則該n個參與 節(jié)點均按照該數(shù)據(jù)塊[A]n對應(yīng)的公共計算規(guī)則分別計算數(shù)據(jù)塊[A]n+1的備選數(shù)據(jù)塊[A]t;其 中,數(shù)據(jù)塊[A]n+1是該數(shù)據(jù)塊[A]n增加數(shù)據(jù)A后的數(shù)據(jù)塊;其中,網(wǎng)絡(luò)中認可該數(shù)據(jù)塊[A]n的 節(jié)點稱為參與節(jié)點;
[0036] 2)該n個參與節(jié)點分別將各自的計算結(jié)果[A]t廣播給其他參與節(jié)點;
[0037] 3)參與節(jié)點監(jiān)聽計算結(jié)果[A]t的廣播包并進行計算;如果計算結(jié)果達到指定的條 件,則該參與節(jié)點將自身計算結(jié)果[A]t認定為待選公認結(jié)果并廣播。
[0038] 進一步的,該n個參與節(jié)點分別將各自的計算結(jié)果[A]t廣播給其他參與節(jié)點的方 法為:該n個參與節(jié)點分別將各自的計算結(jié)果[A]t附加上驗證數(shù)據(jù)廣播給其他參與節(jié)點;該 參與節(jié)點將自身計算結(jié)果[A]t認定為待選公認結(jié)果并廣播的方法為:該參與節(jié)點在自身計 算結(jié)果[A]t上附加驗證數(shù)據(jù),記為[A]y;然后廣播該待選公認結(jié)果[A]y。
[0039] 進一步的,參與節(jié)點均監(jiān)聽和驗證該待選公認結(jié)果[A]y,并將驗證結(jié)果廣播發(fā)送 給任一監(jiān)聽節(jié)點;該監(jiān)聽節(jié)點收集驗證結(jié)果廣播包并進行計算;當(dāng)計算結(jié)果符合合法性認 定規(guī)則指定的條件時,該監(jiān)聽節(jié)點將該待選公認結(jié)果[A]y中的[A]t對應(yīng)的[A]i記為合法公 認后繼數(shù)據(jù)塊[A]并向網(wǎng)絡(luò)廣播。
[0040] 進一步的,參與節(jié)點均監(jiān)聽和驗證該待選公認結(jié)果[A]t,并將驗證結(jié)果廣播發(fā)送 給任一監(jiān)聽節(jié)點;該監(jiān)聽節(jié)點收集驗證結(jié)果廣播包并進行計算;當(dāng)計算結(jié)果符合合法性認 定規(guī)則指定的條件時,該監(jiān)聽節(jié)點將該待選公認結(jié)果[A]t對應(yīng)的[A]i記為合法公認后繼數(shù) 據(jù)塊[A]并向網(wǎng)絡(luò)廣播。
[0041] 進一步的,數(shù)據(jù)塊[A]〇還包括合法性認定規(guī)則和校驗規(guī)則;步驟5)中,參與節(jié)點利 用校驗規(guī)則對監(jiān)聽到的廣播包進行驗證,驗證通過后,統(tǒng)計廣播包中的計算結(jié)果[A]t,如果 統(tǒng)計計算結(jié)果達到合法性認定規(guī)則指定的條件,則該參與節(jié)點將自身計算結(jié)果[A]t認定為 待選公認結(jié)果并廣播。
[0042] 進一步的,通過一發(fā)起節(jié)點初始化該數(shù)據(jù)塊[A]o并向網(wǎng)絡(luò)廣播。
[0043] 進一步的,所述基本描述信息、公共計算規(guī)則、合法性認定規(guī)則和校驗規(guī)則均由該 發(fā)起節(jié)點自行定義。
[0044] 進一步的,每一節(jié)點本地獨立維護對其他節(jié)點的信任列表。
[0045] 進一步的,當(dāng)有新節(jié)點加入由所述參與節(jié)點構(gòu)成的對等/分布式網(wǎng)絡(luò)時,向任一參 與節(jié)點請求獲得當(dāng)前公認結(jié)果[A]的全部或部分數(shù)據(jù);然后向其他參考節(jié)點驗證當(dāng)前公認 結(jié)果[A]的合法性和正確性;驗證通過后獲得所請求的數(shù)據(jù),成為一參與節(jié)點。
[0046] 對于生成方法,當(dāng)有后繼新數(shù)據(jù)加入時,每一參與節(jié)點將數(shù)據(jù)塊[A]n-i的數(shù)字摘 要或數(shù)據(jù)塊組[A]之中任意個數(shù)據(jù)塊的數(shù)字摘要作為后繼新數(shù)據(jù)塊[A]n的計算依據(jù)并包含 在新產(chǎn)生的[A]t中,重復(fù)步驟4)~5),更新公認數(shù)據(jù)組[A]。
[0047] 對于維護方法,當(dāng)有后繼新數(shù)據(jù)加入時,每一參與節(jié)點將數(shù)據(jù)塊[A]n-i的數(shù)字摘 要或數(shù)據(jù)塊組[A]之中任意個數(shù)據(jù)塊的數(shù)字摘要作為后繼新數(shù)據(jù)塊[A]n的計算依據(jù)并包含 在新產(chǎn)生的[A]t中,重復(fù)步驟2)~3),更新公認數(shù)據(jù)組[A]。
[0048] 本發(fā)明具有如下特點:
[0049] 1,在對等網(wǎng)絡(luò)中的公共數(shù)據(jù)由全網(wǎng)結(jié)點共同維護和持有,節(jié)點間無特定信任關(guān) 系,使用連續(xù)的鏈式校驗結(jié)構(gòu)審核和維持公共數(shù)據(jù)完整性;
[0050] 2,公共數(shù)據(jù)的新增部分由網(wǎng)絡(luò)節(jié)點分別獨立計算,計算結(jié)果由網(wǎng)絡(luò)中的節(jié)點按校 驗規(guī)則相互審核,通過審核的數(shù)據(jù)為合法新增數(shù)據(jù),新增部分不改動現(xiàn)存的公認數(shù)據(jù),僅在 尾部添加;
[0051] 3,獲認可最多的運算結(jié)果作為公共數(shù)據(jù),由各節(jié)點獨立存儲,并W廣播的形式發(fā) 布至網(wǎng)內(nèi)其他節(jié)點;
[0052] 4,網(wǎng)絡(luò)中全新加入的節(jié)點通過隨機向多個現(xiàn)有節(jié)點請求獲得公共數(shù)據(jù)的方式,并 通過對比獲得的數(shù)據(jù),拋棄與校驗規(guī)則不一致的數(shù)據(jù),保留一致數(shù)據(jù)的方法,來獲得正確合 法的公共數(shù)據(jù)拷貝。
[0053] 與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:
[0054] 通過該方法,分布式網(wǎng)絡(luò)上的非信任節(jié)點可W維護同一公共數(shù)據(jù),且保證惡意節(jié) 點無法篡改公共數(shù)據(jù)。該方法可W實現(xiàn)在非信任網(wǎng)絡(luò)環(huán)境下,當(dāng)不存在中央控制節(jié)點時,通 過自組織的方式維護一個公認的信任基。
【附圖說明】
[0055] 圖1示例了本發(fā)明中節(jié)點對數(shù)據(jù)的操作流程。
[0056] 圖2示例了本發(fā)明中的公共數(shù)據(jù)產(chǎn)生和維護方式。
[0057] 圖3示例了本發(fā)明中多節(jié)點同時產(chǎn)生和維護公共數(shù)據(jù)的方式。
[0058] 圖4示例了本發(fā)明中的任一節(jié)點參與生成、維護可信數(shù)據(jù)的典型執(zhí)行流程。
[0059] 圖5示例了本發(fā)明中節(jié)點實施初始化公認數(shù)據(jù)的執(zhí)行流程。
[0060] 圖6示例了本發(fā)明中任一節(jié)點響應(yīng)公認數(shù)據(jù)加載請求時對外發(fā)送數(shù)據(jù)時的執(zhí)行流 程。
[0061] 圖7示例了本發(fā)明中任一節(jié)點加載公認結(jié)果的執(zhí)行流程。
[0062] 圖8示例了本發(fā)明中參與節(jié)點計算備選數(shù)據(jù)塊的執(zhí)行流程。
[0063] 圖9示例了本發(fā)明中節(jié)點計算待選公認結(jié)果的執(zhí)行流程。
[0064] 圖10示例了本發(fā)明中節(jié)點計算公認結(jié)果的執(zhí)行流程。
[0065] 圖11示例了本發(fā)明中節(jié)點認可公認結(jié)果的執(zhí)行流程。
[0066] 圖12示例了本發(fā)明中節(jié)點維護信任列表的執(zhí)行流程。
【具體實施方式】
[0067] 下面結(jié)合附圖對本發(fā)明的技術(shù)內(nèi)容進行進一步詳細描述。
[006引實施方法1
[0069] 實施環(huán)境/條件:無主控節(jié)點的公共網(wǎng)絡(luò),運行本發(fā)明軟件的網(wǎng)絡(luò)節(jié)點。
[0070] 1)如圖5所示,在對等/無主控網(wǎng)絡(luò)的發(fā)起節(jié)點初始化數(shù)據(jù)塊[A]o,該數(shù)據(jù)塊作為 公共數(shù)據(jù)初始化數(shù)據(jù)塊,數(shù)據(jù)塊中包括基本描述信息、公共計算規(guī)則、合法性認定規(guī)則C和 校驗規(guī)則,廣播至全網(wǎng)請求其他節(jié)點認可;有幾種回應(yīng)方式都可W代表認可:1,收到其他節(jié) 點廣播的W該初始數(shù)據(jù)塊為依據(jù)生成的[A]t并請求驗證的;2,收到其他節(jié)點明確回復(fù)的; 3,有其他節(jié)點把初始數(shù)據(jù)塊直接作為公認數(shù)據(jù)組[A]來請求驗證的;其中,應(yīng)用中將W方式 1和2最為多見。
[0071] 2)重復(fù)步驟1,等待直至有其他節(jié)點認可[A]o為初始公認數(shù)據(jù)塊;
[0072] 3)公認數(shù)據(jù)塊[A]o由對等網(wǎng)上的其他節(jié)點自愿持有,持有[A]o的節(jié)點即該公認數(shù) 據(jù)的參與節(jié)點。[A]o的數(shù)字摘要作為后續(xù)新數(shù)據(jù)的計算依據(jù),如有若干參與節(jié)點希望在公 認數(shù)據(jù)塊中增加新數(shù)據(jù)A,則運些參與節(jié)點需按照公共計算規(guī)則各自分別計算生成后續(xù)數(shù) 據(jù)[A]i的備選數(shù)據(jù)塊[A]t(如圖8所示),并將[A]〇的數(shù)字摘要包含在[A]t中;
[0073] 4)對等網(wǎng)中所有參與計算[A]t的節(jié)點,將各自的計算結(jié)果(或數(shù)字摘要)附加上驗 證數(shù)據(jù)F后在全網(wǎng)的參與節(jié)點中廣播請求合法性認證;
[0074] 5)對等網(wǎng)中的參與節(jié)點監(jiān)聽其他計算節(jié)點的合法性認證請求,對與本節(jié)點計算結(jié) 果相同的廣播包進行計數(shù),忽略與本節(jié)點計算結(jié)果不符的廣播包和驗證數(shù)據(jù)F錯誤的廣播 包;
[0075] 6)如圖9所示,當(dāng)節(jié)點的計數(shù)值達到合法性認定規(guī)則C指定的數(shù)值時,該節(jié)點將自 身計算結(jié)果[A]t認定為待選公認結(jié)果,該節(jié)點在[A]t上附加驗證數(shù)據(jù)F后廣播該待選公認結(jié) 果[A]y;
[0076] 7)對等網(wǎng)中的所有參與節(jié)點均監(jiān)聽和利用校驗規(guī)則驗證[A]y,將驗證結(jié)果發(fā)送給 任一監(jiān)聽節(jié)點,監(jiān)聽節(jié)點拋棄驗證錯誤的數(shù)據(jù)包,對正確的[A]y計數(shù),如圖10所示,當(dāng)計數(shù) 值達到合法性認定規(guī)則巧旨定的條件時,該[A]y中的[A]t對應(yīng)的[A]i被節(jié)點采納為合法公認 數(shù)據(jù)塊[A]并向全網(wǎng)廣播。
[0077] 8)[A]i的數(shù)字摘要將作為后繼新數(shù)據(jù)的計算依據(jù),重復(fù)步驟3(如圖4所示)將新數(shù) 據(jù)持續(xù)[A]n加入公認數(shù)據(jù)組[A];其中,[A]表示從[A]〇~[A]n的所有數(shù)據(jù)塊,[A]〇中包含規(guī) 則描述數(shù)據(jù)。
[0078] 9)當(dāng)有新節(jié)點加入該對等/分布式網(wǎng)絡(luò)時,可W隨機向已有節(jié)點請求獲得公認數(shù) 據(jù)組[A]的全部或包含[A]o的部分拷貝(如圖7所示),并隨機向其他多個節(jié)點請求對應(yīng)數(shù)據(jù) 的拷貝來驗證[A]的合法性和正確性(通過隨機向其他節(jié)點請求[A]的全部或部分數(shù)據(jù),比 較所獲數(shù)據(jù)的一致性,可排除惡意節(jié)點的虛假信息,同時使用"基礎(chǔ)描述信息"中定義的"驗 證規(guī)則"來校驗數(shù)據(jù)的正確性,即可驗證[A]的合法性),獲得后續(xù)計算或查詢計算所必需的 全部或部分[A] W后,重復(fù)步驟3參與到[A]n計算過程中。
[0079] 如圖4和圖12所示,節(jié)點在本地維護一個對其他節(jié)點的信任列表來優(yōu)化計算過程。 節(jié)點對其他節(jié)點傳來的合法數(shù)據(jù)塊和非法數(shù)據(jù)塊的數(shù)量進行統(tǒng)計并記入信任列表,W某一 節(jié)點發(fā)送合法數(shù)據(jù)塊與非法數(shù)據(jù)塊的計數(shù)比值衡量該節(jié)點的可信程度。對可信程度高的其 他節(jié)點請求/廣播給予優(yōu)先處理。
[0080] 實施方法2
[0081] 實施環(huán)境/條件:存在部分主控節(jié)點的公開網(wǎng)絡(luò)、私有網(wǎng)絡(luò)或者公私混合型網(wǎng)絡(luò), 運行本發(fā)明軟件的網(wǎng)絡(luò)節(jié)點。
[0082 ] 1)如圖5所示,在網(wǎng)絡(luò)中的各發(fā)起節(jié)點各自的初始化數(shù)據(jù)塊[A]〇i(l< = i< = n,n〉 0),該數(shù)據(jù)塊集合作為公共數(shù)據(jù)初始化計算基礎(chǔ),初始化公共數(shù)據(jù)塊集合,集合中各數(shù)據(jù)塊 中包括公共或特有的基本描述信息、公共計算規(guī)則、合法性認定規(guī)則C和校驗規(guī)則,或包括 上述信息的引用,或上述信息的訪問來源、鏈接或地址,廣播至全網(wǎng)請求其他節(jié)點認可;有 幾種回應(yīng)方式都可W代表認可:1,收到其他節(jié)點廣播的W該初始數(shù)據(jù)塊集為依據(jù)生成的 [A]t并請求驗證的;2,收到其他節(jié)點明確回復(fù)的;3,有其他節(jié)點把初始數(shù)據(jù)塊集直接作為 公認數(shù)據(jù)組[A]來請求驗證的;
[0083] 2)重復(fù)步驟1,等待直至有其他節(jié)點認可的全部或部分[Ak為初始公認數(shù)據(jù)塊集;
[0084] 3)公認數(shù)據(jù)塊集{[A]〇i}由網(wǎng)上的其他節(jié)點自愿持有,持有全部或部分{[A]〇i}中 數(shù)據(jù)塊的節(jié)點即該公認數(shù)據(jù)的參與節(jié)點。[A]〇i的數(shù)字摘要作為后續(xù)新數(shù)據(jù)的計算依據(jù),如 有若干參與節(jié)點希望在公認數(shù)據(jù)塊中增加新數(shù)據(jù)A,則運些參與節(jié)點需按照公共或特有協(xié) 議的計算規(guī)則各自分別計算生成后續(xù)數(shù)據(jù)^]1^1< = ^ = 111,111〉0)的共同的備選數(shù)據(jù)塊 [A]t,并將[A]〇i的數(shù)字摘要包含在[A]沖;
[0085] 4)對等網(wǎng)中所有參與計算[A]t的節(jié)點,將各自的計算結(jié)果(或數(shù)字摘要)附加上驗 證數(shù)據(jù)F后在全網(wǎng)的參與節(jié)點中廣播請求合法性認證;
[0086] 5)對等網(wǎng)中的參與節(jié)點監(jiān)聽其他計算節(jié)點的合法性認證請求,對與本節(jié)點計算結(jié) 果相同的廣播包進行分類計數(shù)或轉(zhuǎn)發(fā),對與本節(jié)點計算結(jié)果不符的廣播包和驗證數(shù)據(jù)F錯 誤的廣播包,可忽略,回報發(fā)送節(jié)點或廣播計算結(jié)果;
[0087] 6)當(dāng)節(jié)點的計數(shù)值達到合法性認定規(guī)則C指定的數(shù)值時,該節(jié)點將自身計算結(jié)果 [A]t認定為待選公認結(jié)果,該節(jié)點在[A]t上附加驗證數(shù)據(jù)Fl后廣播該待選公認結(jié)果[A]y; [008引7)網(wǎng)絡(luò)中的主控節(jié)點或者所有參與節(jié)點均監(jiān)聽和利用校驗規(guī)則驗證[A]y,將驗證 結(jié)果發(fā)送給任一監(jiān)聽節(jié)點,監(jiān)聽節(jié)點拋棄驗證錯誤的數(shù)據(jù)包,并同時轉(zhuǎn)發(fā)驗證結(jié)果,對正確 的[A]y計數(shù),當(dāng)計數(shù)值達到合法性認定規(guī)則巧旨定的條件時,該[A]y中的[A]t對應(yīng)的[A]i被 節(jié)點采納為合法公認數(shù)據(jù)塊[A]并向全網(wǎng)廣播。
[0089] 8) [A]i的數(shù)字摘要將作為后繼新數(shù)據(jù)的計算依據(jù),重復(fù)步驟2將新數(shù)據(jù)持續(xù)[A]n 加入公認數(shù)據(jù)組[A](如圖4所示);其中,[A]表示從[A]〇~[A]n的所有數(shù)據(jù)塊,[A]〇中包含規(guī) 則描述數(shù)據(jù)。
[0090] 實施方法3
[0091] 實施環(huán)境/條件:存在部分主控節(jié)點的公開網(wǎng)絡(luò)、私有網(wǎng)絡(luò)或者公私混合型網(wǎng)絡(luò), 運行本發(fā)明軟件的網(wǎng)絡(luò)節(jié)點。
[0092 ] 1)如圖5所示,在網(wǎng)絡(luò)中的各發(fā)起節(jié)點各自的初始化數(shù)據(jù)塊[A]〇i(l< = i< = n,n〉 0 ),該數(shù)據(jù)塊集合作為公共數(shù)據(jù)初始化計算基礎(chǔ),初始化公共數(shù)據(jù)塊集合,廣播至全網(wǎng)請求 其他節(jié)點認可,廣播的信息中還包括包括公共或特有的基本描述信息、公共計算規(guī)則、合法 性認定規(guī)則C和校驗規(guī)則,或是W上信息的獲取鏈接或地址;
[0093] 2)重復(fù)步驟1,等待直至有其他節(jié)點認可的全部或部分[/\}>為初始公認數(shù)據(jù)塊集, 并根據(jù)公共計算規(guī)則選擇或生成公認數(shù)據(jù)塊[A]o;
[0094] 3)公認數(shù)據(jù)塊[A]o由網(wǎng)上的其他節(jié)點自愿持有,持有[A]o數(shù)據(jù)塊的節(jié)點即該公認 數(shù)據(jù)的參與節(jié)點。[A]o的數(shù)字摘要作為后續(xù)新數(shù)據(jù)的計算依據(jù),如有若干參與節(jié)點希望在 公認數(shù)據(jù)塊中增加新數(shù)據(jù)A,則運些參與節(jié)點需按照公共或特有協(xié)議的計算規(guī)則各自分別 計算生成后續(xù)數(shù)據(jù)[A]i的備選數(shù)據(jù)塊[A]t,并將[A]o的數(shù)字摘要包含在[A]t中;
[0095] 4)對等網(wǎng)中所有參與計算[A]t的節(jié)點,將各自的計算結(jié)果(或數(shù)字摘要)附加上驗 證數(shù)據(jù)F后在全網(wǎng)的參與節(jié)點中廣播請求合法性認證;
[0096] 5)對等網(wǎng)中的參與節(jié)點監(jiān)聽其他計算節(jié)點的合法性認證請求,對與本節(jié)點計算結(jié) 果相同的廣播包進行分類計數(shù)或轉(zhuǎn)發(fā),對與本節(jié)點計算結(jié)果不符的廣播包和驗證數(shù)據(jù)F錯 誤的廣播包,可忽略,回報發(fā)送節(jié)點或廣播計算結(jié)果;
[0097] 6)當(dāng)節(jié)點的計數(shù)值達到合法性認定規(guī)則C指定的數(shù)值時,該節(jié)點將自身計算結(jié)果 [A]t認定為待選公認結(jié)果,該節(jié)點在[A]t上附加驗證數(shù)據(jù)F后廣播該待選公認結(jié)果[A]y;
[009引7)網(wǎng)絡(luò)中的主控節(jié)點或者所有參與節(jié)點均監(jiān)聽和利用校驗規(guī)則驗證[A]y,將驗證 結(jié)果發(fā)送給任一監(jiān)聽節(jié)點,監(jiān)聽節(jié)點拋棄驗證錯誤的數(shù)據(jù)包,并同時轉(zhuǎn)發(fā)驗證結(jié)果,對正確 的[A]y計數(shù),當(dāng)計數(shù)值達到合法性認定規(guī)則巧旨定的條件時,該[A]y中的[A]t對應(yīng)的[A]i被 節(jié)點采納為合法公認數(shù)據(jù)塊[A]并向全網(wǎng)廣播。
[0099] 8) [A]i的數(shù)字摘要將作為后繼新數(shù)據(jù)的計算依據(jù),重復(fù)步驟3將新數(shù)據(jù)持續(xù)[A]n 加入公認數(shù)據(jù)組[A](如圖4所示);其中,[A]表示從[A]〇~[A]n的所有數(shù)據(jù)塊,[A]〇中包含規(guī) 則描述數(shù)據(jù)。
[0100] 實施方式4
[0101] 實施環(huán)境/條件:無主控節(jié)點的公共網(wǎng)絡(luò),存在部分主控節(jié)點的公開網(wǎng)絡(luò)、私有網(wǎng) 絡(luò)或者公私混合型網(wǎng)絡(luò),運行本發(fā)明軟件的網(wǎng)絡(luò)節(jié)點。
[0102] 1)在未參與具體計算前,節(jié)點監(jiān)聽和統(tǒng)計網(wǎng)絡(luò)中傳播的廣播包(如圖4和圖12所 示),并在本地初始化維護一個對其他節(jié)點的分類信任列表。W某一節(jié)點發(fā)送合法數(shù)據(jù)塊與 非法數(shù)據(jù)塊的計數(shù)比值衡量該節(jié)點的可信程度。根據(jù)可信列表決定參與哪些節(jié)點發(fā)出的后 續(xù)計算;
[0103] 2)節(jié)點在網(wǎng)絡(luò)中的發(fā)起節(jié)點初始化數(shù)據(jù)塊[A]o,該數(shù)據(jù)塊作為本節(jié)點或某分類數(shù) 據(jù)初始化標志數(shù)據(jù)塊,數(shù)據(jù)塊中包括基本描述信息、公共計算規(guī)則、合法性認定規(guī)則C和校 驗規(guī)則,廣播請求至上一步甄選出的節(jié)點;
[0104] 3)重復(fù)步驟2,等待直至有其他節(jié)點認可[A]o為初始公認數(shù)據(jù)塊;
[0105] 4)公認數(shù)據(jù)塊[A]o由網(wǎng)絡(luò)上的其他節(jié)點自愿持有,持有[A]o的節(jié)點即該公認數(shù)據(jù) 的參與節(jié)點。[A]o的數(shù)字摘要作為后續(xù)新數(shù)據(jù)的計算依據(jù),如有若干參與節(jié)點希望在公認 數(shù)據(jù)塊中增加新數(shù)據(jù)A,則運些參與節(jié)點需按照公共計算規(guī)則各自分別計算生成后續(xù)數(shù)據(jù) [A]i的備選數(shù)據(jù)塊[A]t,并將[A]o的數(shù)字摘要包含在[A]t中;
[0106] 5)網(wǎng)絡(luò)中所有參與計算[A]t的節(jié)點,將各自的計算結(jié)果(或數(shù)字摘要)附加上驗證 數(shù)據(jù)F后在全網(wǎng)的參與節(jié)點中廣播請求合法性認證;
[0107] 6)網(wǎng)絡(luò)中的參與節(jié)點監(jiān)聽其他計算節(jié)點的合法性認證請求,對與本節(jié)點計算結(jié)果 相同的廣播包進行計數(shù),忽略與本節(jié)點計算結(jié)果不符的廣播包和驗證數(shù)據(jù)F錯誤的廣播包;
[0108] 7)當(dāng)節(jié)點的計數(shù)值達到合法性認定規(guī)則C指定的數(shù)值時,該節(jié)點將自身計算結(jié)果 [A]t認定為待選公認結(jié)果,該節(jié)點在[A]t上附加驗證數(shù)據(jù)F后廣播該待選公認結(jié)果[A]y;
[0109] 8)網(wǎng)絡(luò)中的所有參與節(jié)點均監(jiān)聽和利用校驗規(guī)則驗證[A]y,將驗證結(jié)果發(fā)送給任 一監(jiān)聽節(jié)點,監(jiān)聽節(jié)點拋棄驗證錯誤的數(shù)據(jù)包,對正確的[A]Y計數(shù),當(dāng)計數(shù)值達到合法性認 定規(guī)則巧旨定的條件時,該[A]y中的[A]t對應(yīng)的[A]i被節(jié)點采納為合法公認數(shù)據(jù)塊[A]并向 全網(wǎng)廣播。
[0110] 9) [A]i的數(shù)字摘要將作為后繼新數(shù)據(jù)的計算依據(jù),重復(fù)步驟1將新數(shù)據(jù)持續(xù)[A]n 加入公認數(shù)據(jù)組[A](如圖4所示);其中,[A]表示從[A]〇~[A]n的所有數(shù)據(jù)塊,[A]〇中包含規(guī) 則描述數(shù)據(jù)。
【主權(quán)項】
1. 一種在網(wǎng)絡(luò)環(huán)境中生成可信數(shù)據(jù)的方法,其步驟為: 1) 初始化一數(shù)據(jù)塊[A]0、公共計算規(guī)則,向網(wǎng)絡(luò)廣播; 2) 將認可該數(shù)據(jù)塊[A]o的節(jié)點作為參與節(jié)點; 3) 當(dāng)有η個參與節(jié)點有增加新數(shù)據(jù)A的需求時,則該η個參與節(jié)點均按照公共計算規(guī)則 分別計算數(shù)據(jù)塊[Ah的備選數(shù)據(jù)塊[Α]τ;其中,數(shù)據(jù)塊以^中包含新增數(shù)據(jù)Α,是[Α]〇的后繼 數(shù)據(jù)塊; 4) 該η個參與節(jié)點分別將各自的計算結(jié)果[Α]τ廣播給其他參與節(jié)點; 5) 參與節(jié)點監(jiān)聽計算結(jié)果[Α]τ的廣播包并進行計算;當(dāng)計算結(jié)果達到指定的條件,則該 參與節(jié)點將自身計算結(jié)果[Α]τ認定為待選公認結(jié)果并廣播。2. -種在網(wǎng)絡(luò)環(huán)境中維護可信數(shù)據(jù)的方法,其步驟為: 1) 當(dāng)有η個認可公認的數(shù)據(jù)塊[Α]η的參與節(jié)點有增加新數(shù)據(jù)A的需求時,則該η個參與節(jié) 點均按照該數(shù)據(jù)塊以]"對應(yīng)的公共計算規(guī)則分別計算數(shù)據(jù)塊[Α] η+1的備選數(shù)據(jù)塊[Α]τ;其 中,數(shù)據(jù)塊[Α]η+1中包含新增數(shù)據(jù)Α;其中,網(wǎng)絡(luò)中認可該數(shù)據(jù)塊以]"的節(jié)點稱為參與節(jié)點; 2) 該η個參與節(jié)點分別將各自的計算結(jié)果[Α]τ廣播給其他參與節(jié)點; 3) 參與節(jié)點監(jiān)聽計算結(jié)果[Α]τ的廣播包并進行計算;如果計算結(jié)果達到指定的條件,則 該參與節(jié)點將自身計算結(jié)果[Α]τ認定為待選公認結(jié)果并廣播。3. 如權(quán)利要求1或2所述的方法,其特征在于,該η個參與節(jié)點分別將各自的計算結(jié)果 [Α]τ廣播給其他參與節(jié)點的方法為:該η個參與節(jié)點分別將各自的計算結(jié)果[Α]τ附加上驗證 數(shù)據(jù)廣播給其他參與節(jié)點;該參與節(jié)點將自身計算結(jié)果[Α]τ認定為待選公認結(jié)果并廣播的 方法為:該參與節(jié)點在自身計算結(jié)果[Α]τ上附加驗證數(shù)據(jù),記為[Α] Υ;然后廣播該待選公認 結(jié)果[Α]γ。4. 如權(quán)利要求3所述的方法,其特征在于,參與節(jié)點均監(jiān)聽和驗證該待選公認結(jié)果[Α]Υ, 并將驗證結(jié)果廣播發(fā)送給任一監(jiān)聽節(jié)點;該監(jiān)聽節(jié)點收集驗證結(jié)果廣播包并進行計算;當(dāng) 計算結(jié)果符合合法性認定規(guī)則指定的條件時,該監(jiān)聽節(jié)點將該待選公認結(jié)果[Α]γ中的[Α]τ 對應(yīng)的[Ah記為合法公認后繼數(shù)據(jù)塊并向網(wǎng)絡(luò)廣播。5. 如權(quán)利要求1或2所述的方法,其特征在于,參與節(jié)點均監(jiān)聽和驗證該待選公認結(jié)果 [Α]τ,并將驗證結(jié)果廣播發(fā)送給任一監(jiān)聽節(jié)點;該監(jiān)聽節(jié)點收集驗證結(jié)果廣播包并進行計 算;當(dāng)計算結(jié)果符合合法性認定規(guī)則指定的條件時,該監(jiān)聽節(jié)點將該待選公認結(jié)果[Α]τ對 應(yīng)的[Ah記為合法公認后繼數(shù)據(jù)塊并向網(wǎng)絡(luò)廣播。6. 如權(quán)利要求1所述的方法,其特征在于,數(shù)據(jù)塊[Α]〇還包括合法性認定規(guī)則和校驗規(guī) 貝IJ;步驟5)中,參與節(jié)點利用校驗規(guī)則對監(jiān)聽到的廣播包進行驗證,驗證通過后,統(tǒng)計廣播 包中的計算結(jié)果[Α]τ,如果統(tǒng)計計算結(jié)果達到合法性認定規(guī)則指定的條件,則該參與節(jié)點 將自身計算結(jié)果[Α]τ認定為待選公認結(jié)果并廣播。7. 如權(quán)利要求6所述的方法,其特征在于,通過一發(fā)起節(jié)點初始化該數(shù)據(jù)塊[Α]〇并向網(wǎng) 絡(luò)廣播。8. 如權(quán)利要求7所述的方法,其特征在于,所述基本描述信息、公共計算規(guī)則、合法性認 定規(guī)則和校驗規(guī)則均由該發(fā)起節(jié)點自行定義。9. 如權(quán)利要求1所述的方法,其特征在于,每一節(jié)點本地獨立維護對其他節(jié)點的信任列 表。10. 如權(quán)利要求1或2所述的方法,其特征在于,當(dāng)有新節(jié)點加入由所述參與節(jié)點構(gòu)成的 對等/分布式網(wǎng)絡(luò)時,向任意η個參與節(jié)點請求獲得當(dāng)前公認結(jié)果[A]的全部或部分數(shù)據(jù);然 后根據(jù)任意η個參與節(jié)點回復(fù)的數(shù)據(jù)包驗證當(dāng)前公認結(jié)果[Α]的合法性和正確性;驗證通過 后獲得所請求的數(shù)據(jù),成為一參與節(jié)點。11. 如權(quán)利要求1所述的方法,其特征在于,當(dāng)有后繼新數(shù)據(jù)加入時,每一參與節(jié)點將數(shù) 據(jù)塊[A]n-j^數(shù)字摘要或數(shù)據(jù)塊組[Α]之中任意個數(shù)據(jù)塊的數(shù)字摘要作為后繼新數(shù)據(jù)塊 [八]"的計算依據(jù)并包含在新產(chǎn)生的[Α]τ中,重復(fù)步驟4)~5),更新公認數(shù)據(jù)組[A]。12. 如權(quán)利要求2所述的方法,其特征在于,當(dāng)有后繼新數(shù)據(jù)加入時,每一參與節(jié)點將數(shù) 據(jù)塊[A]n-j^數(shù)字摘要或數(shù)據(jù)塊組[Α]之中任意個數(shù)據(jù)塊的數(shù)字摘要作為后繼新數(shù)據(jù)塊 [八]"的計算依據(jù)并包含在新產(chǎn)生的[Α]τ中,重復(fù)步驟2)~3),更新公認數(shù)據(jù)組[A]。
【文檔編號】G06F3/06GK105956490SQ201610326235
【公開日】2016年9月21日
【申請日】2016年5月17日
【發(fā)明人】史興國, 陳光宇
【申請人】史興國