TWI783441B - 用於與區塊鏈協作的資料處理方法與裝置 - Google Patents
用於與區塊鏈協作的資料處理方法與裝置 Download PDFInfo
- Publication number
- TWI783441B TWI783441B TW110113296A TW110113296A TWI783441B TW I783441 B TWI783441 B TW I783441B TW 110113296 A TW110113296 A TW 110113296A TW 110113296 A TW110113296 A TW 110113296A TW I783441 B TWI783441 B TW I783441B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- hash value
- identification
- record data
- identification number
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 86
- 238000012795 verification Methods 0.000 description 79
- 230000001186 cumulative effect Effects 0.000 description 30
- 238000012545 processing Methods 0.000 description 29
- 238000000034 method Methods 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000002354 daily effect Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Electrotherapy Devices (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
提供用於與區塊鏈協作的資料處理方法與裝置。資料處理方法包括:自至少一終端裝置接收第一紀錄資料以及對應該第一紀錄資料的第一識別資料;根據該第一識別資料產生第一識別編號,該第一識別編號用以識別二元樹中的複數個葉節點中的第一葉節點;根據該第一識別編號,將該第一紀錄資料的雜湊值儲存至該第一葉節點;根據該二元樹產生複數個切片;將該二元樹的根雜湊值上傳至該區塊鏈;以及將該些切片中的第一切片回傳至該至少一終端裝置,該第一切片包括儲存該第一紀錄資料的雜湊值的該第一葉節點。
Description
本發明是關於一種可與區塊鏈協作並用於處理鏈接資料的方法與裝置。
在現有技術中,區塊鏈(blockchain)採取分散式架構來達到去中心化的目的,全世界的終端電腦可藉由區塊鏈而產生連接,任一終端電腦所傳送到區塊鏈上的資料,可透過特定的運算方式而分佈在區塊鏈上的其他終端電腦中。由於這些資料是存在於區塊鏈上的大量終端電腦中,因此資料的正確性可透過區塊鏈的大量終端電腦互相驗證,這使得區塊鏈資料難以被變造或竄改。
在傳統的終端電腦對中心伺服器的架構中,當一台終端電腦要將資料上傳到伺服器或是由伺服器下載資料,此作業只牽涉到終端電腦、中心伺服器與兩者間的網路伺服器等有限裝置的運作,以時下的網路速度與電腦計算能力來說,此作業可以執行得極為快速。但在區塊鏈的架構中,當一台終端電腦要將資料上傳到區塊鏈或是由區塊鏈下載資料時,基於區塊鏈的特性,此作業會牽涉到區塊鏈上其他大量的終端電腦(如礦工)的驗證程序,從而導致龐大的網路傳輸需求及運算量,因此相對耗時,且運算成本(如礦工費用)居高不下。
一般來說,區塊鏈是採用二元樹(binary tree)或稱模克樹(Merkle tree)的樹狀資料結構,所有資料會經過雜湊運算而產生雜湊值(hash value)。所述二元樹包括頂層的樹根(root)與底層的多個葉節點(leaf node),每一筆資料的雜湊值會被儲存在葉節點,而所有葉節點的雜湊值會經過逐層運算而最終產生位於樹根的根雜湊值(root hash)。所有的二元樹會儲存在區塊鏈上的各個終端電腦中,若要驗證某一二元樹的某一筆資料的正確性,可藉由比對此二元樹在各終端電腦上的根雜湊值,來驗證此二元樹與其資料的正確性。
基於現有區塊鏈,當大量讀取區塊鏈上的資料時,會造成區塊鏈上的終端電腦的負荷,且效率不彰。此外,若大量讀取資料的動作被區塊鏈上的終端電腦當成惡意行為,輕則此次的讀取要求被區塊鏈上的終端電腦阻擋,造成資料無法讀取,重則發出讀取要求的網路位址被區塊鏈上的終端電腦列入黑名單,從此無法再由此終端電腦存取區塊鏈。
有鑑於此,在本發明的一些實施例中,提出一種用於與區塊鏈協作的資料處理方法與裝置,以及用於處理鏈接資料的方法、裝置以及驗證系統,藉此解決大量讀取區塊鏈上的資料時所導致效率不彰的問題,且解決大量讀取時造成區塊鏈的網路傳輸需求與運算負荷過大的問題。
本發明一實施例提出一種由安全協定裝置執行的用於處理鏈接資料的方法。此方法包括:將多個二元樹儲存於鏈下的一資料庫,其中各個二元樹包括樹根與多個葉節點,各個樹根儲存有根雜湊值。此方法更包括:讀取資料庫上的該些根雜湊值;對讀取自資料庫的該些根雜湊值進行雜湊與鏈接運算,以決定一推算根雜湊值;自區塊鏈讀取一特定根雜湊值,判斷特定根雜湊值與推算根雜湊值是否一致;以及在特定根雜湊值與推算根雜湊值一致時,判斷資料庫的該些根雜湊值為正確。
本發明一實施例提出一種由安全協定裝置。此安全協定裝置包括記憶體以及處理器。處理器耦接記憶體,並用以:將多個二元樹儲存於鏈下的一資料庫,其中各個二元樹包括樹根與多個葉節點,各個樹根儲存有根雜湊值。處理器更用以:讀取資料庫上的該些根雜湊值;對讀取自資料庫的該些根雜湊值進行雜湊與鏈接運算,以決定一推算根雜湊值;自區塊鏈讀取一特定根雜湊值;判斷特定根雜湊值與推算根雜湊值是否一致;以及在特定根雜湊值與推算根雜湊值一致時,判斷資料庫的該些根雜湊值為正確。
本發明一實施例提出一種由區塊鏈裝置執行的方法,當中包括:自安全協定裝置接收多個根雜湊值,根據該些根雜湊值產生鏈接資料串,其中鏈接資料串包括多個以串列方式鏈接的資料集合,各資料集合分別包括各根雜湊值與對應的鏈接雜湊值,該些資料集合的最前者的鏈接雜湊值為雜湊化初始鏈接值而產生,而在最前的資料集合之後的各資料集合的鏈接雜湊值為雜湊化前一資料集合而產生。此方法更包括:傳送特定根雜湊值至安全協定裝置,以供安全協定裝置驗證儲存於鏈下的資料庫中的多個二元樹的正確性;其中,特定根雜湊值為鏈接資料串的資料區段中的最後一筆的資料集合的根雜湊值,而資料區段對應於提供至安全協定裝置的讀取指令所指示的資料讀取範圍。
本發明一實施例提出一種區塊鏈裝置,其包括記憶體以及處理器。處理器耦接記憶體,並用以自安全協定裝置接收多個根雜湊值,以及根據該些根雜湊值產生鏈接資料串,其中鏈接資料串包括多個以串列方式鏈接的資料集合,各資料集合分別包括各根雜湊值與對應的鏈接雜湊值,該些資料集合的最前者的鏈接雜湊值為雜湊化初始鏈接值而產生,而在最前的資料集合之後的各資料集合的鏈接雜湊值為雜湊化前一資料集合而產生。處理器更用以傳送特定根雜湊值至安全協定裝置,以供安全協定裝置驗證儲存於鏈下的資料庫中的多個二元樹的正確性;其中,特定根雜湊值為鏈接資料串的資料區段中的最後一筆的資料集合的根雜湊值,而資料區段對應於提供至安全協定裝置的讀取指令所指示的資料讀取範圍。
本發明一實施例提出一種驗證系統,其適用於與區塊鏈協作並用於鏈接資料。驗證系統包括安全協定裝置、區塊鏈裝置與資料庫裝置。安全協定裝置接收多個紀錄資料並根據雜湊函數整合該些紀錄資料為多個二元樹,各二元樹包括樹根與多個葉節點,各樹根儲存有根雜湊值,且各紀錄資料的雜湊值分別儲存於各葉節點。區塊鏈裝置位於區塊鏈且通訊連接安全協定裝置,安全協定裝置傳送該些二元樹的該些根雜湊值至區塊鏈裝置。區塊鏈裝置包括至少一鏈接資料串,鏈接資料串包括多個以串列方式鏈接的資料集合,各資料集合分別包括各根雜湊值與對應的鏈接雜湊值,每一資料集合的鏈接雜湊值關聯於前一資料集合的根雜湊值與鏈接雜湊值,且該些資料集合最前者的鏈接雜湊值關聯於初始鏈接值。資料庫裝置在無涉於區塊鏈的鏈下通訊連接安全協定裝置,安全協定裝置儲存該些二元樹與初始鏈接值於資料庫裝置。
本發明一實施例提出一種驗證方法,其適用於與區塊鏈協作。驗證方法包括:在無涉於區塊鏈的鏈下接收多個紀錄資料;根據雜湊函數整合該些紀錄資料為多個二元樹,其中,各二元樹包括樹根與多個葉節點,各樹根儲存有根雜湊值,且各紀錄資料的雜湊值分別儲存於各葉節點;傳送該些二元樹的該些根雜湊值至區塊鏈,其中,區塊鏈上設置有至少一鏈接資料串,鏈接資料串包括多個以串列方式鏈接的資料集合,各資料集合分別包括各根雜湊值與對應的鏈接雜湊值,每一資料集合的鏈接雜湊值關聯於前一資料集合的根雜湊值與鏈接雜湊值,且該些資料集合最前者的鏈接雜湊值關聯於初始鏈接值;以及,在無涉於區塊鏈的鏈下儲存該些二元樹與初始鏈接值。
本發明一實施例提出一種用於與區塊鏈協作的資料處理方法,該資料處理方法包括:自至少一終端裝置接收第一紀錄資料以及對應該第一紀錄資料的第一識別資料;根據該第一識別資料產生第一識別編號,該第一識別編號用以識別二元樹中的複數個葉節點中的第一葉節點;根據該第一識別編號,將該第一紀錄資料的雜湊值儲存至該第一葉節點;根據該二元樹產生複數個切片,各該切片包括該二元樹中的根節點以及該二元樹中的一組葉節點以及對應該組葉節點的至少一中間節點;將儲存於該根節點的根雜湊值上傳至該區塊鏈;以及將該些切片中的第一切片回傳至該至少一終端裝置,該第一切片包括儲存該第一紀錄資料的雜湊值的該第一葉節點。
本發明一實施例提出一種安全協定裝置,其包括識別編號單元以及切片單元。識別編號單元被配置以根據對應於第一紀錄資料的第一識別資料產一第一識別編號,並根據該第一識別編號,將該第一紀錄資料的雜湊值儲存至第一葉節點,其中該安全協定裝置被配置以自至少一終端裝置接收該第一紀錄資料以及該第一識別資料,該第一葉節點為二元樹中的複數個葉節點的其中之一,該第一識別編號用以識別該第一葉節點。該切片單元被配置以根據該二元樹產生複數個切片,並將該些切片中的第一切片回傳至該至少一終端裝置,其中各該切片包括該二元樹中的一根節點以及該二元樹中的一組葉節點以及對應該組葉節點的至少一中間節點,該第一切片包括儲存該第一紀錄資料的雜湊值的該第一葉節點;其中該安全協定裝置更被配置以將儲存於該根節點的一根雜湊值上傳至區塊鏈。
本發明一實施例提出一種終端裝置,其包括紀錄資料產生單元以及識別資料產生單元。紀錄資料產生單元被配置以產生第一紀錄資料。識別資料產生單元被配置以產生對應該第一紀錄資料的第一識別資料。該終端裝置更被配置以:將該第一紀錄資料以及該第一識別資料傳送至安全協定裝置;在傳送該第一紀錄資料以及該第一識別資料後,自該安全協定裝置接收二元樹的切片,該切片包括該二元樹中的一根節點以及該二元樹中的一組葉節點以及對應該組葉節點的至少一中間節點,該組葉節點包括第一葉節點,該第一葉節點儲存一雜湊值; 對該第一紀錄資料作雜湊運算以取得的該第一紀錄資料的雜湊值;判斷該第一葉節點儲存的該雜湊值與該第一紀錄資料的雜湊值是否一致;以及在判斷該第一葉節點儲存的該雜湊值與該第一紀錄資料的雜湊值不一致時,傳送抗議訊息至區塊鏈。
綜上所述,根據本發明實施例的驗證系統、方法與裝置,在需要大量讀取二元樹的根雜湊值時,可透過鏈下資料庫裝置中讀取這些根雜湊值,並以區塊鏈上的鏈接資料串的資料集合在後者的鏈接雜湊值來驗證由鏈下讀取的根雜湊值的正確性,從而在維持資料的可信任度的前提下,減輕區塊鏈的網路傳輸需求與運算負荷。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟悉相關技術者暸解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技術者可輕易地理解本發明相關之目的及優點。
請參照圖1,圖1為本發明一實施例的驗證系統10的方塊示意圖。在本實施例中,驗證系統10適用於與區塊鏈BC協作,區塊鏈BC可包括公有區塊鏈、私有區塊鏈或其組合。驗證系統10用以在鏈下(off chain)OC,亦即透過鏈下通道(off-chain channel),通訊連接多個終端裝置400,並在區塊鏈BC與鏈下OC間進行協作,且各終端裝置400可產生至少一筆紀錄資料RD。所述鏈下OC是指獨立於區塊鏈BC之外的路徑,即無涉於區塊鏈BC的路徑;所述在鏈下OC通訊連接是指在獨立於區塊鏈BC之外的路徑具有通訊連接關係,即透過無涉於區塊鏈BC的路徑建立通訊連接。例如,兩裝置在鏈下OC通訊連接,意味這兩裝置之間可透過網路直接連接並互相傳送訊號而無涉於區塊鏈BC。終端裝置400例如是桌上型電腦、筆記型電腦或各種感測器,紀錄資料RD例如是桌上型電腦或筆記型電腦產生的檔案或交易資訊或是感測器所感測的數值資訊,但不限於此。
如圖1所示,在本實施例中,驗證系統10包括安全協定裝置100、資料庫裝置200與區塊鏈裝置300。安全協定裝置100是在無涉於區塊鏈BC的鏈下OC通訊連接資料庫裝置200,且安全協定裝置100通訊連接位於區塊鏈BC上的區塊鏈裝置300。資料庫裝置200例如是獨立於區塊鏈BC之外的資料儲存伺服器,區塊鏈裝置300例如是連接區塊鏈BC的複數電腦的集合,但不限於此。在本實施例中,安全協定裝置100是兼具區塊鏈BC與鏈下OC的通訊能力的伺服器。舉例來說,安全協定裝置100是位於鏈下OC與區塊鏈BC之間的中介者,其可作為終端裝置400與資料庫裝置200以及區塊鏈裝置300之間的橋樑,容後詳述。
請再參照圖2,圖2所示為本發明一實施例的二元樹BT的示意圖。如圖1與圖2所示,在本實施例中,各終端裝置400產生紀錄資料RD後,各終端裝置400會在鏈下OC傳送紀錄資料RD至安全協定裝置100。安全協定裝置100在鏈下OC接收各終端裝置400的該些紀錄資料RD之後,安全協定裝置100會根據雜湊函數整合該些紀錄資料RD為至少一二元樹BT。
如圖2所示,在本實施例中,二元樹BT包括樹根R、多個中間節點MN與多個葉節點LN,以二元樹BT的樹狀資料結構來看,樹根R位於頂層、葉節點LN位於底層、而中間節點MN分佈於頂層與底層之間的一或多層。每兩個相鄰的葉節點LN在往上一層會合而為一個中間節點MN,每一層中的每兩個相鄰的中間節點MN在更往上一層又會合而為一個中間節點MN,而位於最上層的兩個中間節點MN會合而為樹根R。每一葉節點LN分別儲存各紀錄資料RD的雜湊值RDH,而每一中間節點MN的雜湊值與樹根R中的根雜湊值RH則關聯於各紀錄資料RD的雜湊值RDH。
舉例來說,安全協定裝置100可採用SHA-256的雜湊函數將各筆紀錄資料RD雜湊化而產生對應的雜湊值RDH,且安全協定裝置100會將各紀錄資料RD的雜湊值RDH分別儲存於各葉節點LN。並且,每一組兩個相鄰的葉節點LN中所儲存的兩筆雜湊值會被連接後再被雜湊化而儲存於上一層的中間節點MN,每一層中的每一組兩個相鄰的中間節點MN所儲存的兩筆雜湊值也會被連接後再被雜湊化而儲存於更上一層的中間節點MN,以此類推。在本實施例中,所述兩筆雜湊值被連接後再被雜湊化的實現方式,可以是將此兩筆雜湊值先連接為一串編碼後再對此串編碼進行雜湊化,但不限於此。舉例來說,第一筆雜湊值是「xxx」,第二筆雜湊值是「ooo」,此兩筆雜湊值會先被連接為「xxxooo」的一串編碼,而此串編碼「xxxooo」會再被雜湊化而產生雜湊值。最後,位於最上層的兩個中間節點MN所儲存的兩筆雜湊值會被連接後再被雜湊化而產生根雜湊值RH。換言之,二元樹BT包括儲存於各葉節點LN中的紀錄資料RD的雜湊值RDH與儲存於樹根R的根雜湊值RH,並且,紀錄資料RD是不可竄改的,這是因為只要二元樹BT中任一筆紀錄資料RD遭到竄改,此筆紀錄資料RD的雜湊值RDH會產生變化,而只要任一葉節點LN的紀錄資料RD的雜湊值RDH產生變化,則二元樹BT的根雜湊值RH也會對應變化。藉由判斷根雜湊值RH是否產生變化,即可驗證此二元樹BT對應的紀錄資料RD的正確性。在不同的實施例中,單一個葉節點LN亦可儲存兩筆以上的紀錄資料RD的雜湊值RDH,在此情況下,此葉節點LN中所儲存的雜湊值RDH為兩筆以上的紀錄資料RD的雜湊值RDH被連接後再被雜湊化後之值。
如圖1與圖2所示,在本實施例中,安全協定裝置100包括二元樹處理單元110與驗證單元120。二元樹處理單元110與驗證單元120例如但不限於是軟體/硬體所構成的功能模組,以分別執行特定功能,且二元樹處理單元110與驗證單元120可以是各自獨立的模組或整合為一體的模組。
在本實施例中,安全協定裝置100的二元樹處理單元110會自動將所接收的該些紀錄資料RD進行雜湊化並整合產生二元樹BT。安全協定裝置100會傳送二元樹BT的根雜湊值RH至區塊鏈裝置300,亦即這些根雜湊值RH將會被儲存到區塊鏈BC上。此外,安全協定裝置100會將二元樹BT儲存於資料庫裝置200中,亦即完整的二元樹BT是儲存在鏈下OC,而不會儲存於區塊鏈BC上。在其他實施例中,完整的二元樹BT亦可同時儲存於資料庫裝置200並傳送至區塊鏈裝置300。
在本實施例中,安全協定裝置100的驗證單元120會驗證資料庫裝置200所儲存的二元樹BT的正確性。當安全協定裝置100接收一驗證要求,且此驗證要求是針對某一筆紀錄資料RD的正確性進行驗證,此時驗證單元120會自動比對區塊鏈裝置300上的對應於此紀錄資料RD的二元樹BT的根雜湊值RH與資料庫裝置200儲存的對應於此紀錄資料RD的二元樹BT的根雜湊值RH,以驗證資料庫裝置200儲存的二元樹BT的正確性。若區塊鏈裝置300上的根雜湊值RH與資料庫裝置200儲存的二元樹BT的根雜湊值RH經比對是一致的,則基於區塊鏈BC的特性,代表資料庫裝置200所儲存的此筆紀錄資料RD的二元樹BT正確無誤。
由於完整的二元樹BT是位於鏈下OC的資料庫裝置200中,因此紀錄資料RD的雜湊值RDH的存取與運算主要是在鏈下OC進行,可節省傳統上在區塊鏈BC進行此項作業的網路傳輸需求、運算量、運算時間與運算成本。並且,資料庫裝置200中的二元樹BT的根雜湊值RH可經由與區塊鏈裝置300上的對應根雜湊值RH比對而得到驗證,鏈下OC的資料庫裝置200的資料正確性也得以確保。
請參照圖3,圖3為本發明一實施例的鏈接資料串CDS的示意圖一。如圖1與圖3所示,在本實施例中,區塊鏈裝置300包括至少一鏈接資料串CDS,鏈接資料串CDS包括多個以串列方式鏈接的資料集合DS。所述串列是指由第一筆、第二筆、第三筆依序至倒數第二筆與最後一筆,且每一筆資料會關聯於前一筆資料,例如第二筆資料會關聯於第一筆資料、第三筆資料會關聯於第二筆資料而最後一筆資料會關聯於倒數第二筆資料,以此類推。在本實施例中,各資料集合DS分別包括各根雜湊值RH與對應的鏈接雜湊值CH,每一資料集合DS的鏈接雜湊值CH關聯於前一資料集合DS的根雜湊值RH與鏈接雜湊值CH,且該些資料集合DS最前者的鏈接雜湊值CH關聯於一初始鏈接值CH0
。
如圖1所示,在本實施例中,區塊鏈裝置300包括鏈接處理單元311,鏈接處理單元311用以產生鏈接資料串CDS。如圖1與圖3所示,在本實施例中,當區塊鏈裝置300接收多個二元樹BT的根雜湊值RH之後,鏈接處理單元311根據所接收的這些二元樹BT的根雜湊值RH的產生或接收時間,依序產生資料集合DS,每一資料集合DS的鏈接雜湊值CH為雜湊化前一資料集合DS而產生,且最前的資料集合DS的鏈接雜湊值CH為雜湊化初始鏈接值CH0
而產生。
在本實施例中,鏈接處理單元311會先產生所述初始鏈接值CH0
,初始鏈接值CH0
可以是任意數值或任意字母或數字的組合。並且,鏈接處理單元311會根據以下兩個公式產生鏈接資料串CDS中的多個以串列方式鏈接的資料集合DS:
CHi
=hash(RHi-1
| CHi-1
);以及
CH1
=hash(CH0
)。
其中,RHi-1
為根雜湊值RH,CHi-1
為鏈接雜湊值CH,且i為2至k的整數。
如圖3所示,最前的資料集合DS的根雜湊值RH為RH1
而鏈接雜湊值CH為CH1
,且CH1
為雜湊化CH0
而產生的雜湊值。在後的(排列在最前的資料集合DS後)的第二筆資料集合DS的根雜湊值RH為RH2
而鏈接雜湊值CH為CH2
,且CH2
為雜湊化連接後的RH1
與CH1
而產生的雜湊值。如前所述,所述雜湊化連接後的RH1
與CH1
的實現方式,可以是將RH1
與CH1
連接後再進行雜湊化,但不限於此。在後的(排列在第二筆資料集合DS後)的第三筆資料集合DS的根雜湊值RH為RH3
而鏈接雜湊值CH為CH3
,且CH3
為雜湊化連接後的RH2
與CH2
而產生的雜湊值。最後的資料集合DS的根雜湊值RH為RHk
而鏈接雜湊值CH為CHk
,且CHk
為雜湊化連接後的RHk-1
與CHk-1
而產生的雜湊值。其餘資料集合DS的根雜湊值RH與鏈接雜湊值CH則以此類推。並且,這些以串列方式鏈接的資料集合DS組成鏈接資料串CDS。在本實施例中,安全協定裝置100會將初始鏈接值CH0
儲存至資料庫裝置200,但不限於此。
如圖1與圖3所示,在本實施例中,安全協定裝置100更包括讀取單元130,讀取單元130用以自區塊鏈裝置300與資料庫裝置200讀取對應的資料。終端裝置400可傳送讀取要求RR至安全協定裝置100,以讀取一或多個二元樹BT的根雜湊值RH。當安全協定裝置100接收讀取要求RR,且此讀取要求RR是要求讀取多個根雜湊值RH,而這多個根雜湊值RH屬於鏈接資料串CDS的多個資料集合DS,讀取單元130會自區塊鏈裝置300讀取此鏈接資料串CDS的該些資料集合DS在後者的根雜湊值RH,並自資料庫裝置200讀取此鏈接資料串CDS的該些資料集合DS在前者的一或多個根雜湊值RH,且安全協定裝置100以區塊鏈裝置300的在後的資料集合DS的鏈接雜湊值CH驗證資料庫裝置200的在前的一或多個根雜湊值RH的正確性。
舉例來說,當安全協定裝置100接收讀取要求RR,此讀取要求RR是要求讀取如圖3的鏈接資料串CDS的RH1
至RHk
的k個根雜湊值RH,讀取單元130會自區塊鏈裝置300讀取此鏈接資料串CDS的該些資料集合DS最後一筆的資料集合DS的根雜湊值RH與鏈接雜湊值CH(即RHk
與CHk
),並且,讀取單元130會自資料庫裝置200讀取在前的資料集合DS的根雜湊值RH(即RH1
至RHk-1
),並且,驗證單元120會以最後一筆的資料集合DS的RHk
來驗證資料庫裝置200的在前的資料集合DS的RH1
至RHk-1
的正確性。驗證單元120可使用前述兩個公式,並以資料庫裝置200儲存的初始鏈接值CH0
與RH1
至RHk-1
進行雜湊與鏈接運算而推算出CHk
,並以推算出的CHk
來比對區塊鏈裝置300上的CHk
。若推算出的CHk
與區塊鏈裝置300上的CHk
一致,則表示資料庫裝置200儲存的RH1
至RHk-1
與區塊鏈裝置300上的RH1
至RHk-1
也會一致。因為基於雜湊運算,只要資料庫裝置200儲存的RH1
至RHk-1
中任一個根雜湊值RH與區塊鏈裝置300上的RH1
至RHk-1
中的對應根雜湊值RH不一致,則推算出的CHk
就會不同於區塊鏈裝置300上的CHk
。
請參照圖3a,圖3a為本發明一實施例的鏈接資料串CDS的示意圖二。圖3a的鏈接資料串CDS實質上同於圖3的鏈接資料串CDS,但為了便於說明,圖3a的鏈接資料串CDS示出一個連續的資料集合DS的資料區段SEC。如圖3a所示,在本實施例中,安全協定裝置100還可讀取鏈接資料串CDS的任一資料區段SEC的資料集合DS,並以此資料區段SEC的最後一筆資料集合DS進行驗證。舉例來說,當安全協定裝置100接收讀取要求RR,此讀取要求RR是要求讀取如圖3的鏈接資料串CDS的資料區段SEC的RHx-10
至RHx
共十一個根雜湊值RH,其中x小於k且大於等於10,讀取單元130會自區塊鏈裝置300讀取此資料區段SEC的該些資料集合DS最後一筆的資料集合DS的根雜湊值RH與鏈接雜湊值CH(即RHx
與CHx
),並且,讀取單元130會自資料庫裝置200讀取此資料區段SEC的在前的資料集合DS的根雜湊值RH(即RHx-10
至RHx-1
),並且,驗證單元120會以資料區段SEC的最後一筆的資料集合DS的RHx
來驗證資料庫裝置200的資料區段SEC在前的資料集合DS的RHx-10
至RHx-1
的正確性。
在一些實施例中,初始鏈接值CH0
可不儲存於資料庫裝置200中。取而代之地,當安全協定裝置100接收讀取要求RR,讀取單元130會自區塊鏈裝置300讀取鏈接資料串CDS的初始鏈接值CH0
以及該些資料集合DS在後者的資料集合DS的根雜湊值RH,並自資料庫裝置200讀取鏈接資料串CDS的該些資料集合DS在前者的一或多個根雜湊值RH。
請參照圖4,圖4為本發明另一實施例的驗證系統10a的方塊示意圖。圖1與圖4的驗證系統10、10a相同或相似的元件、連接關係與功能不再贅述,圖4的驗證系統10a相較於圖1的驗證系統10的差異之一在於,圖4的驗證系統10a的安全協定裝置100更包括鏈接處理單元140,而區塊鏈裝置300則不具有鏈接處理單元。在安全協定裝置100的二元樹處理單元110產生多個二元樹BT之後,安全協定裝置100的鏈接處理單元140會根據這些二元樹BT的多個根雜湊值RH依序產生資料集合DS,並根據前述兩個公式產生鏈接資料串CDS,而安全協定裝置100會將鏈接資料串CDS傳送至區塊鏈裝置300。也就是說,安全協定裝置100傳送至區塊鏈BC的資料已是具有鏈接資料串CDS的資料結構。
請參照圖5,圖5為本發明又一實施例的驗證系統10b的方塊示意圖。圖1與圖5的驗證系統10、10b相同或相似的元件、連接關係與功能不再贅述,圖5的驗證系統10b相較於圖1的驗證系統10的差異之一在於,圖5的驗證系統10b包括安全協定裝置100、資料庫裝置200、區塊鏈裝置300與多個終端裝置400,安全協定裝置100通訊連接位於區塊鏈BC的區塊鏈裝置300並在鏈下OC通訊連接資料庫裝置200與各終端裝置400,且各終端裝置400還通訊連接區塊鏈裝置300。安全協定裝置100包括二元樹處理單元110、驗證單元120、讀取單元130、識別編號單元150、定位搜尋單元160、切片單元170與識別序號單元180,其中二元樹處理單元110、驗證單元120、讀取單元130、識別編號單元150、定位搜尋單元160、切片單元170與識別序號單元180例如但不限於是軟體/硬體所構成的功能模組,以分別執行特定功能,且二元樹處理單元110、驗證單元120、讀取單元130、識別編號單元150、定位搜尋單元160、切片單元170與識別序號單元180可以是各自獨立的模組或整合為一體的模組。
如圖5所示,在本實施例中,區塊鏈裝置300包括至少一個智能合約(smart contract)310,安全協定裝置100傳送至區塊鏈裝置300的根雜湊值RH會儲存在對應的智能合約310中。在不同實施例中,區塊鏈裝置300亦可包括不同於智能合約的程式架構或介面,而根雜湊值RH可對應於不同的程式架構或介面而儲存在區塊鏈裝置300中。
如圖5所示,在本實施例中,各終端裝置400包括紀錄資料產生單元410、識別資料產生單元420與切片驗證單元430。紀錄資料產生單元410、識別資料產生單元420與切片驗證單元430例如但不限於是軟體/硬體所構成的功能模組,以分別執行特定功能,且紀錄資料產生單元410、識別資料產生單元420與切片驗證單元430可以是各自獨立的模組或整合為一體的模組。紀錄資料產生單元410用以產生前述的紀錄資料RD,並且,當各終端裝置400的紀錄資料產生單元410產生紀錄資料RD時,各終端裝置400的識別資料產生單元420還會產生分別對應於各紀錄資料RD的多個識別資料ID,使得各紀錄資料RD會具有對應的識別資料ID。終端裝置400會將紀錄資料RD與對應的識別資料ID同時傳送給安全協定裝置100。在一些實施例中,終端裝置400可將紀錄資料RD與對應的識別資料ID整合為同一筆整合資料並傳送此筆整合資料至安全協定裝置100。在一些實施例中,識別資料ID為明碼。
如圖5所示,在本實施例中,安全協定裝置100會接收該些紀錄資料RD與該些對應的識別資料ID,且安全協定裝置100根據各識別資料ID儲存各紀錄資料RD的雜湊值RDH至對應的各葉節點LN。舉例來說,當安全協定裝置100接收該些識別資料ID之後,安全協定裝置100的識別編號單元150會根據各識別資料ID產生分別對應於各葉節點LN的多個識別編號IN,且安全協定裝置100會根據各識別編號IN儲存各紀錄資料RD的雜湊值RDH至對應的各葉節點LN。在此情況下,每個識別編號IN在任一二元樹BT中是唯一的,且各識別編號IN會分別對應二元樹BT中的各葉節點LN。因此,各紀錄資料RD的雜湊值RDH可藉由對應的識別編號IN而被定位於各葉節點LN,容後詳述。
在本實施例中,安全協定裝置100的識別編號單元150會自各識別資料ID的雜湊值中取出多個預定位元以產生各識別編號IN。並且,所述預定位元的數量可關聯於對應的二元樹BT的高度值H。在二元樹BT具有高度值H的情況下,二元樹BT會具有2(H-1)
個葉節點LN。為使此二元樹BT的各葉節點LN具有對應且專屬唯一的識別編號IN,則該些預定位元是自各識別資料ID的雜湊值取出的至少H-1個位元,如此一來,這H-1個位元的排列組合將可滿足葉節點LN的數量,使得對應於葉節點LN的識別編號IN不會重複而具有唯一性。在本實施例中,這H-1個位元例如但不限於是識別資料ID的雜湊值中的前H-1個位元。在其他實施例中,所述H-1個位元可以是取自識別資料ID的雜湊值中的後H-1個位元或任意位置的H-1個位元。
舉例來說,圖2的二元樹BT的高度值H為5,且此二元樹BT具有2(5-1)
個葉節點LN,亦即二元樹BT具有16個葉節點LN。假設對應於某一紀錄資料RD的識別資料ID為「E1534391」,則識別編號單元150會將此識別資料ID以SHA-256的雜湊函數進行雜湊化,而產生雜湊值「dbb9ed8b677468b4834d2f634a77ea1e6663431bf1ee7523041467ff8023fa64」,接著識別編號單元150會取出此雜湊值轉換為二進位後的位元數列的前4個位元「1101」,並轉換1101為十進位值「13」,從而產生識別編號IN為「13」。識別編號單元150可將此二元樹BT的所有16個葉節點LN依序設定為編號1至16的葉節點LN,而識別編號IN為13的紀錄資料RD的雜湊值RDH則儲存於編號13的葉節點LN中。在一些實施例中,不同的識別資料ID可能產生相同的識別編號IN,或者不同的紀錄資料RD可能具有相同的識別資料ID而產生相同的識別編號IN,在此情況下,多筆紀錄資料RD的雜湊值RDH可對應於相同的識別編號IN而儲存於相同的葉節點LN中。在一些實施例中,二元樹BT的每一葉節點LN可儲存兩筆以上的紀錄資料RD的雜湊值RDH,且對應於某一葉節點LN的兩筆以上的紀錄資料RD的雜湊值RDH會被連接後再被雜湊化而產生雜湊值,此對應於兩筆以上的紀錄資料RD的雜湊值會儲存於此葉節點LN中。
如圖5所示,在本實施例中,安全協定裝置100的定位搜尋單元160可藉由識別編號IN而能定位紀錄資料RD的雜湊值RDH。當使用者需要尋找或驗證資料庫裝置200中的對應於某一二元樹BT中的某一筆紀錄資料RD的雜湊值RDH時,使用者可透過安全協定裝置100進行上述作業。此時,安全協定裝置100的定位搜尋單元160會透過識別編號IN以定位此筆紀錄資料RD的雜湊值RDH的位置(即所儲存的葉節點LN),並直接由對應於此識別編號IN的二元樹BT的葉節點LN中取出此筆紀錄資料RD的雜湊值RDH,達到可快速定位與搜尋資料的目的。並且,若要驗證某筆紀錄資料RD不存在,亦可藉由識別編號IN來完成,安全協定裝置100無須取得完整的二元樹BT中的所有雜湊值,安全協定裝置100的定位搜尋單元160可透過對應於此筆紀錄資料RD的識別編號IN以定位此筆紀錄資料RD的雜湊值RDH的位置,即對應的葉節點LN,並可直接確認此紀錄資料RD的雜湊值RDH是否存在於此葉節點LN中。若此葉節點LN沒有此筆紀錄資料RD的雜湊值RDH,即可驗證此筆紀錄資料RD不存在。如此一來,整個驗證作業所耗費的網路傳輸需求、運算量、運算時間與運算成本可大幅降低。
如前所述,在一些實施例中,不同的紀錄資料RD的識別資料ID可能產生相同的識別編號IN,在此情況下,某一筆紀錄資料RD的雜湊值RDH可能被定位至兩個以上的葉節點LN,若需要驗證此筆紀錄資料RD,安全協定裝置100可由資料庫裝置200取得此兩個以上的葉節點LN中的雜湊值RDH並進行驗證。在本實施例中,重複的識別編號IN的機率相對低,即使某一筆紀錄資料RD的雜湊值RDH被定位至兩個以上的葉節點LN,這些被定位的葉節點LN的數量仍是小於或遠小於所有葉節點LN的數量,整個驗證作業所耗費的網路傳輸需求、運算量、運算時間與運算成本仍可大幅降低。
如圖5所示,在本實施例中,終端裝置400更包括識別編號單元440,終端裝置400的識別編號單元440與安全協定裝置100的識別編號單元150具有相同的功能,識別編號單元440亦可根據紀錄資料RD的識別資料ID而產生識別編號IN,且終端裝置400可透過識別編號單元440驗證安全協定裝置100是否從正確的葉節點LN取得資料。舉例來說,若終端裝置400需要驗證某一紀錄資料RD,且此紀錄資料RD的識別資料ID為「E1534391」(請參照前述例子),當終端裝置400傳送此驗證要求至安全協定裝置100,安全協定裝置100的定位搜尋單元160可透過對應於此筆紀錄資料RD的識別編號IN以定位此筆紀錄資料RD的雜湊值RDH的位置,並找出其是位於資料庫裝置200中的二元樹BT的編號13的葉節點LN中,且回傳編號13的葉節點LN中的雜湊值RDH至終端裝置400,以讓終端裝置400進行驗證。終端裝置400的識別編號單元440同樣可根據此紀錄資料RD的識別資料ID為「E1534391」而產生識別編號IN,並根據識別編號IN可推算此紀錄資料RD的雜湊值RDH應是儲存於編號13的葉節點LN中,藉此,終端裝置400可確認安全協定裝置100所回傳的紀錄資料RD的雜湊值RDH是否來自於正確的位置(即編號13的葉節點LN)。
請再參照圖6,圖6為本發明一實施例的二元樹BT的切片BTS的示意圖。如圖5與圖6所示,在本實施例中,當安全協定裝置100傳送二元樹BT的根雜湊值RH至區塊鏈裝置300時,安全協定裝置100的切片單元170會自動切割二元樹BT為多個切片(slice)BTS且回傳各切片BTS至對應的各終端裝置400,而各終端裝置400的切片驗證單元430會驗證所接收的各切片BTS的正確性。如圖2與圖6所示,在本實施例中,每一切片BTS為二元樹BT的樹根R、對應的兩個葉節點LN與必要的中間節點MN所組成的模克證明(Merkle proof)。此組葉節點LN中儲存的紀錄資料RD的雜湊值RDH,可經由前述的運算過程,而得到位於樹根R的根雜湊值RH,而切片BTS的根雜湊值RH應與完整二元樹BT的根雜湊值RH一致。舉例來說,某一終端裝置400將某一筆紀錄資料RD與識別資料ID傳送至安全協定裝置100後,安全協定裝置100會將此紀錄資料RD的雜湊值RDH儲存至某一二元樹BT的某一葉節點LN中且會回傳此葉節點LN所對應的切片BTS至此終端裝置400,而此終端裝置400會比對此切片BTS的葉節點LN中的此筆紀錄資料RD的雜湊值RDH與此終端裝置400所產生的原始紀錄資料RD的原始雜湊值RDH是否一致,若一致則表示驗證正確,若不一致則表示驗證不正確。若驗證不正確,對應的終端裝置400可傳送一抗議訊息至區塊鏈裝置300,以進行後續資料修正或無效等程序。
在本實施例中,各終端裝置400包括區塊鏈晶片,所述區塊鏈晶片例如但不限於是可自動在區塊鏈BC與驗證系統10、10b之間互相傳送訊號的積體電路(IC)。藉由區塊鏈晶片,終端裝置400可設計得更加輕薄短小,且終端裝置400可更容易設置於任何物件上或整合至任何電子裝置中。舉例來說,終端裝置400可設置或整合至電池(如電動或油電混合的公車或汽車用的大電池組)、電錶、汽車大燈、汽車本體(如透過5G聯網的汽車的行車電腦)或畫框,且終端裝置400會自動且持續上傳各物件的紀錄資料RD,這些紀錄資料RD例如但不限於是電池、電錶或汽車大燈的每時或每日(依據上傳預定間隔而定)歷史使用狀況,或汽車本體各感測器資訊(如引擎、里程表、啟動次數…等)的每時或每日的歷史感測資料,或畫框上的感測器所感測的每時或每日的濕溼度變化歷史感測資料與畫者原始資料等,而安全協定裝置100可將這些紀錄資料RD的雜湊值RDH儲存至鏈下OC的資料庫裝置200,並將根雜湊值RH上傳至區塊鏈裝置300。
基於驗證系統10、10a、10b,除了可藉由鏈下OC的資料庫裝置200來達到各種資料的快速定位與搜尋之外,也可藉由區塊鏈BC的驗證來達到資料的不可否認性。且基於終端裝置400的搭配應用,物件的狀況可獲得保證,而物件的價值也得以提高。例如原本長程車用的中古大電池組在使用一定程度後可轉給短程車用,而短程車用的中古大電池組在使用一定程度後又可轉給諸如漁塭等場所作為備用發電電池。而這之間每一次轉換都可經過諸如中古買賣平台進行交易,而每次交易都可藉由驗證系統10、10a、10b來驗證物件的狀況,從而提高物件品質的信賴度與物件價值。
如圖5所示,在本實施例中,區塊鏈裝置300的智能合約310更包括鏈接處理單元311與累計序號單元312。安全協定裝置100的識別序號單元180用以產生識別序號IS,區塊鏈裝置300的累計序號單元312用以產生累計序號AS,而鏈接處理單元311用以產生鏈接資料串CDS。
請參照圖7,圖7為本發明另一實施例的鏈接資料串CDS的示意圖。如圖5與圖7所示,在本實施例中,鏈接資料串CDS的每一筆資料集合DS包括根雜湊值RH、識別序號IS、累計序號AS與鏈接雜湊值CH,每一資料集合DS的鏈接雜湊值CH關聯於前一資料集合DS的根雜湊值RH、識別序號IS、累計序號AS與鏈接雜湊值CH,且該些資料集合DS最前者的鏈接雜湊值CH關聯於初始鏈接值CH0
。在一些實施例中,鏈接資料串CDS的每一筆資料集合DS包括根雜湊值RH、識別序號IS與鏈接雜湊值CH,但不包括累計序號AS,而每一資料集合DS的鏈接雜湊值CH關聯於前一資料集合DS的根雜湊值RH、識別序號IS與鏈接雜湊值CH。在本實施例中,每一資料集合DS的鏈接雜湊值CH為雜湊化前一資料集合DS而產生,且最前的資料集合DS的鏈接雜湊值CH為雜湊化初始鏈接值CH0
而產生。
如圖5與圖7所示,在本實施例中,鏈接資料串CDS的各資料集合DS的識別序號IS分別對應於各根雜湊值RH。當安全協定裝置100傳送該些根雜湊值RH至區塊鏈裝置300,安全協定裝置100還會對應產生並傳送該些識別序號IS至區塊鏈裝置300。舉例來說,識別序號IS包括時間戳記,時間戳記關聯於對應的該根雜湊值RH,當安全協定裝置100在一特定時間點產生某一筆根雜湊值RH時,識別序號單元180會對應於此特定時間點而產生識別序號IS,此識別序號IS即包括對應此特定時間點的時間戳記。換句話說,不同時間點產生的根雜湊值RH必定會對應於不同的識別序號IS,且時間是不斷推進,在後產生的根雜湊值RH的識別序號IS的時間戳記所對應的時間點必定會晚於在前產生的根雜湊值RH的識別序號IS的時間戳記所對應的時間點。相應的,在鏈接資料串CDS中,在後的資料集合DS的識別序號IS的時間戳記所對應的時間點必定會晚於在前的資料集合DS的識別序號IS的時間戳記所對應的時間點。藉此,可加強鏈接資料串CDS的資料集合DS的不可修改性,使鏈接資料串CDS的資料難以被竄改。
如圖5與圖7所示,在本實施例中,鏈接資料串CDS的各資料集合DS的累計序號AS分別對應於各根雜湊值RH,且每一資料集合DS的累計序號AS為前一資料集合DS的累計序號AS的累計值。當安全協定裝置100傳送該些根雜湊值RH與該些識別序號IS至區塊鏈裝置300,區塊鏈裝置300的累計序號單元312會對應於該些根雜湊值RH與該些識別序號IS而依序產生該些累計序號AS。舉例來說,當區塊鏈裝置300接收到第一筆根雜湊值RH與對應的識別序號IS,累計序號單元312會產生值為整數1的累計序號AS,而鏈接處理單元311會整合第一筆資料集合DS,其中包括第一筆根雜湊值RH、對應的識別序號IS、值為整數1的累計序號AS與對應的鏈接雜湊值CH。而當安全協定裝置100接收到第二筆根雜湊值RH與對應的識別序號IS,累計序號單元312會累加1至前一筆累計序號AS而產生值為整數2的累計序號AS,而鏈接處理單元311會整合第二筆資料集合DS,其中包括第二筆根雜湊值RH、對應的識別序號IS、值為整數2的累計序號AS與對應的鏈接雜湊值CH。換句話說,累計序號AS是不斷累加的,而在後產生的資料集合DS的累計序號AS必定會大於在前產生的資料集合DS的累計序號AS。並且,累計序號AS是由區塊鏈上的區塊鏈裝置300產生,其具有不可否認性。藉此,可加強鏈接資料串CDS的資料集合DS的不可修改性,使鏈接資料串CDS的資料難以被竄改。
在本實施例中,鏈接處理單元311會根據以下兩個公式產生鏈接資料串CDS中的多個以串列方式鏈接的資料集合DS:
CHi
=hash(RHi-1
| ISi-1
| i-1 | CHi-1
);以及
CH1
=hash(CH0
)。
其中,RHi-1
為根雜湊值RH,ISi-1
為識別序號IS,i-1為累計序號AS,CHi-1
為鏈接雜湊值CH,且i為2至k的整數。
如圖7所示,最前的資料集合DS的根雜湊值RH為RH1
、識別序號IS為IS1
、累計序號AS為1而鏈接雜湊值CH為CH1
,且CH1
為雜湊化CH0
而產生的雜湊值。在後的(排列在最前的資料集合DS後)的第二筆資料集合DS的根雜湊值RH為RH2
、識別序號IS為IS2
、累計序號AS為2而鏈接雜湊值CH為CH2
,且CH2
為雜湊化連接後的RH1
、IS1
、1與CH1
而產生的雜湊值。在後的(排列第二筆資料集合DS後)的第三筆資料集合DS的根雜湊值RH為RH3
、識別序號IS為IS3
、累計序號AS為3而鏈接雜湊值CH為CH3
,且CH3
為雜湊化連接後的RH2
、IS2
、2與CH2
而產生的雜湊值。最後的資料集合DS的根雜湊值RH為RHk
、識別序號IS為ISk
、累計序號AS為k而鏈接雜湊值CH為CHk
,且CHk
為雜湊化連接後的RHk-1
、ISk-1
、k-1與CHk-1
而產生的雜湊值。其餘資料集合DS的根雜湊值RH、識別序號IS、累計序號AS與鏈接雜湊值CH則以此類推。並且,這些以串列方式鏈接的資料集合DS組成鏈接資料串CDS。
如圖5與圖7所示,在本實施例中,安全協定裝置100除了會將二元樹BT與初始鏈接值CH0
儲存到資料庫裝置200中,安全協定裝置100也會將對應於各二元樹BT的各根雜湊值RH(或對應於鏈接資料串CDS的各資料集合DS)的識別序號IS與累計序號AS儲存到資料庫裝置200中。當安全協定裝置100接收讀取要求RR,且此讀取要求RR是要求讀取多個根雜湊值RH,而這多個根雜湊值RH屬於某一鏈接資料串CDS的多個資料集合DS,讀取單元130會自區塊鏈裝置300讀取此鏈接資料串CDS的該些資料集合DS在後者的根雜湊值RH,並自資料庫裝置200讀取此鏈接資料串CDS的該些資料集合DS在前者的一或多個根雜湊值RH,且安全協定裝置100以區塊鏈裝置300的在後的資料集合DS的鏈接雜湊值CH驗證資料庫裝置200的在前的一或多個根雜湊值RH的正確性。
舉例來說,當安全協定裝置100接收讀取要求RR,此讀取要求RR是要求讀取如圖7的鏈接資料串CDS的RH1
至RHk
的k個根雜湊值RH,讀取單元130會自區塊鏈裝置300讀取此鏈接資料串CDS的該些資料集合DS最後一筆的資料集合DS的根雜湊值RH與鏈接雜湊值CH(即RHk
與CHk
),並且,讀取單元130會自資料庫裝置200讀取在前的資料集合DS的根雜湊值RH(即RH1
至RHk-1
)、識別序號IS(即IS1
至ISk-1
)與累計序號AS(即1至k-1),並且,驗證單元120會以最後一筆的資料集合DS的RHk
來驗證資料庫裝置200的在前的資料集合DS的RH1
至RHk-1
的正確性。驗證單元120可使用前述兩個公式,並以資料庫裝置200儲存的初始鏈接值CH0
、RH1
至RHk-1
、IS1
至ISk-1
與1至k-1進行雜湊與鏈接運算而推算出CHk
,並以推算出的CHk
來比對區塊鏈裝置300上的CHk
。若推算出的CHk
與區塊鏈裝置300上的CHk
一致,則表示資料庫裝置200儲存的RH1
至RHk-1
與區塊鏈裝置300上的RH1
至RHk-1
也會一致。因為基於雜湊運算,只要資料庫裝置200儲存的RH1
至RHk-1
中任一個根雜湊值RH與區塊鏈裝置300上的RH1
至RHk-1
中的對應根雜湊值RH不一致,則推算出的CHk
就會不同於區塊鏈裝置300上的CHk
。
在不同實施例中,驗證系統10、10a與10b中的各元件可任意組合。例如,驗證系統10b可不包括終端裝置400;或者,驗證系統10、10a可包括類似於驗證系統10b的終端裝置400,但不限於此。
請參照圖8,圖8為本發明一實施例的驗證方法的流程圖。在本實施例中,驗證方法可透過圖1或圖4所示的驗證系統10、10a實現,但不限於此。驗證方法適用於與區塊鏈BC協作。在步驟S101中,安全協定裝置100會在鏈下OC自多個終端裝置400接收多個紀錄資料RD。在步驟S103中,安全協定裝置100會根據雜湊函數整合該些紀錄資料RD為至少一二元樹BT,且各紀錄資料RD的雜湊值RDH分別儲存於二元樹BT的各葉節點LN。在步驟S105中,安全協定裝置100會傳送二元樹BT的根雜湊值RH至區塊鏈BC,且區塊鏈裝置300會儲存這些根雜湊值RH。在步驟S107中,區塊鏈裝置300或安全協定裝置100會根據前述公式產生鏈接資料串CDS。
在步驟S109中,安全協定裝置100會在鏈下OC儲存二元樹BT與初始鏈接值CH0
,即安全協定裝置100會將完整的二元樹BT與初始鏈接值CH0
儲存於鏈下OC的資料庫裝置200。在不同實施例中,初始鏈接值CH0
可不儲存於資料庫裝置200中;當有需要時,安全協定裝置100可自區塊鏈裝置300讀取初始鏈接值CH0
。
在步驟S111中,當安全協定裝置100接收一驗證要求,安全協定裝置100會比對位於區塊鏈BC上的區塊鏈裝置300中的根雜湊值RH與在鏈下OC的資料庫裝置200中儲存的二元樹BT的根雜湊值RH,以驗證在鏈下OC儲存的二元樹BT的正確性。在步驟S113中,當安全協定裝置100接收讀取要求RR,且此讀取要求RR要求讀取鏈接資料串CDS中的多個資料集合DS的多個根雜湊值RH,安全協定裝置100會讀取區塊鏈BC上的資料集合DS在後者的根雜湊值RH並讀取在鏈下OC儲存的資料集合DS在前者的一或多個根雜湊值RH。在步驟S115中,安全協定裝置100會以區塊鏈BC上的在後的資料集合DS的鏈接雜湊值CH驗證在鏈下OC儲存的在前的一或多個根雜湊值RH的正確性。
請參照圖9,圖9為本發明另一實施例的驗證方法的流程圖。在本實施例中,驗證方法可透過圖5所示的驗證系統10b實現,但不限於此。在步驟S201中,安全協定裝置100會在鏈下OC自多個終端裝置400接收多個紀錄資料RD與多個識別資料ID,各識別資料ID是分別對應於各紀錄資料RD。在步驟S203中,當安全協定裝置100接收該些識別資料ID之後,安全協定裝置100會根據各識別資料ID產生分別對應於各葉節點LN的多個識別編號IN,二元樹BT的每一葉節點LN會對應於專屬的識別編號IN。舉例來說,安全協定是自各識別資料ID的雜湊值中取出多個預定位元以產生各識別編號IN,並且,若二元樹BT具有一高度值H,該些預定位元為各識別資料ID的雜湊值的前H-1個位元。在步驟S205中,安全協定裝置100會根據雜湊函數整合該些紀錄資料RD為至少一二元樹BT。在步驟S207中,安全協定裝置100會根據各識別編號IN,儲存各紀錄資料RD的雜湊值RDH至對應的各葉節點LN。在步驟S209中,安全協定裝置100會傳送二元樹BT的根雜湊值RH與對應的識別序號IS至區塊鏈BC,且區塊鏈裝置300會儲存這些根雜湊值RH與對應的識別序號IS。在步驟S211中,安全協定裝置100會將二元樹BT切割為多個切片BTS。在步驟S213中,安全協定裝置100會在鏈下OC回傳各切片BTS至對應的各終端裝置400。
接著,各終端裝置400會驗證所接收的各切片BTS的正確性。在步驟S215中,當切片BTS驗證為不正確,對應的終端裝置400傳送抗議訊息至區塊鏈BC。在步驟S217中,當切片BTS驗證為正確,終端裝置400無需傳送抗議訊息至區塊鏈BC。
在步驟S219中,區塊鏈BC的區塊鏈裝置300對應於根雜湊值RH與識別序號IS,而依序產生累計序號AS。在步驟S221中,區塊鏈BC的區塊鏈裝置300會根據根雜湊值RH、識別序號IS與累計序號AS而產生鏈接資料串CDS。在步驟S223中,安全協定裝置100會在鏈下OC將二元樹BT、初始鏈接值CH0
、識別序號IS與累計序號AS儲存至資料庫裝置200。
在步驟S225中,當安全協定裝置100接收一驗證要求,安全協定裝置100會比對位於區塊鏈BC上的區塊鏈裝置300中的根雜湊值RH與在鏈下OC的資料庫裝置200中儲存的二元樹BT的根雜湊值RH,以驗證在鏈下OC儲存的二元樹BT的正確性。在步驟S227中,當安全協定裝置100接收一搜尋要求,且此搜尋要求是針對某一紀錄資料RD,安全協定裝置100會根據對應此紀錄資料RD的識別編號IN而定位在鏈下OC儲存的二元樹BT的葉節點LN,以搜尋對應於此識別編號IN的葉節點LN並由此葉節點LN取得此紀錄資料RD的雜湊值RDH,或驗證此紀錄資料RD的雜湊值RDH不存在此葉節點LN中。
在步驟S229中,當安全協定裝置100接收讀取要求RR,且此讀取要求RR要求讀取鏈接資料串CDS中的多個資料集合DS的多個根雜湊值RH,安全協定裝置100會讀取區塊鏈BC上的資料集合DS在後者的根雜湊值RH並讀取在鏈下OC儲存的資料集合DS在前者的一或多個根雜湊值RH。在步驟S231中,安全協定裝置100會以區塊鏈BC上的在後的資料集合DS的鏈接雜湊值CH驗證在鏈下OC儲存的在前的一或多個根雜湊值RH的正確性。
藉由驗證系統10、10a與10b,在有需要讀取大量資料時,可在基於鏈接資料串CDS的架構下,由鏈下OC讀取相對大量的資料,而僅需由區塊鏈BC讀取相對少量的資料,並以區塊鏈BC的資料來驗證鏈下OC的資料,從而可兼顧效率與可信度。舉例來說,一個公司中,各員工的每日上下班打卡紀錄的雜湊值會對應儲存在二元樹BT中的各葉節點LN中,且每一二元樹BT即是此間公司的所有員工單日上下斑打卡紀錄。那麼,所有員工一整年的打卡紀錄會累積成數百筆資料,即數百個二元樹BT,而這些資料都會基於驗證系統10、10a或10b加以儲存與運用。如果有一天,此公司的內控部門需要調出某位員工數年來的打卡紀錄,驗證系統10、10a或10b不需要對區塊鏈BC進行大量讀取,只須讀取區塊鏈BC上的每個鏈接資料串CDS的最後一筆資料集合DS的根雜湊值RH與鏈接雜湊值CH,而各鏈接資料串CDS的其餘根雜湊值RH皆可由鏈下OC的資料庫裝置200讀取,並可由區塊鏈BC上的最後一筆資料集合DS的鏈接雜湊值CH來驗證資料庫裝置200的其餘根雜湊值RH的正確性。如此一來,可大幅減輕區塊鏈的網路傳輸需求與運算負荷,同時也可經過驗證而確保鏈下OC資料的正確性。
綜上所述,習知的區塊鏈架構是將資料全部傳送到區塊鏈上,再透過區塊鏈礦工對資料進行驗證,如此將耗費大量的區塊鏈運算資源。根據本發明實施例的驗證系統與方法,在維持資料的可信任度(不可否認性)的前提下,可將大部分資料設置於鏈下資料庫裝置中,並透過安全協定裝置比對鏈下資料庫裝置的二元樹的根雜湊值與區塊鏈的對應根雜湊值,來驗證二元樹的正確性,藉此將主要運算轉為在鏈下執行,大幅減少區塊鏈的負荷。此外,安全協定裝置可根據識別編號定位紀錄資料,藉此可快速搜尋資料庫裝置中的紀錄資料的雜湊值所儲存的葉節點,並可快速驗證紀錄資料是否不存在。藉由本發明實施例的驗證系統與方法,可降低系統整體的運算量、運算時間與運算成本。並且,具有區塊鏈晶片的終端裝置可設置或整合至各種物件中,在實際應用上更加簡單方便,且可提高物件品質的信賴度與物件價值。
除此之外,藉由本發明實施例的驗證系統與方法的鏈接資料串,在需要大量讀取二元樹的根雜湊值時,可透過鏈下資料庫裝置中讀取這些根雜湊值,並以區塊鏈上的鏈接資料串的資料集合在後者的鏈接雜湊值來驗證由鏈下讀取的根雜湊值的正確性,從而在維持資料的可信任度的前提下,減輕區塊鏈的網路傳輸需求與運算負荷。
雖然本發明的技術內容已經以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技術者,在不脫離本發明之精神所作些許之更動與潤飾,皆應涵蓋於本發明的範疇內,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10、10a、10b:驗證系統
100:安全協定裝置
110:二元樹處理單元
120:驗證單元
130:讀取單元
140:鏈接處理單元
150:識別編號單元
160:定位搜尋單元
170:切片單元
180:識別序號單元
200:資料庫裝置
300:區塊鏈裝置
310:智能合約
311:鏈接處理單元
312:累計序號單元
400:終端裝置
410:紀錄資料產生單元
420:識別資料產生單元
430:切片驗證單元
440:識別編號單元
AS:累計序號
BT:二元樹
BTS:二元樹的切片
CDS:鏈接資料串
CH:鏈接雜湊值
CH0:初始鏈接值
DS:資料集合
H:高度值
ID:識別資料
IN:識別編號
IS:識別序號
LN:葉節點
MN:中間節點
OC:鏈下
BC:區塊鏈
R:樹根
RD:紀錄資料
RDH:紀錄資料的雜湊值
RH:根雜湊值
RR:讀取要求
SEC:資料區段
S101:在鏈下自多個終端裝置接收多個紀錄資料
S103:根據雜湊函數整合紀錄資料為二元樹
S105:傳送二元樹的根雜湊值至區塊鏈
S107:產生鏈接資料串
S109:在鏈下儲存二元樹與初始鏈接值
S111:當接收驗證要求,比對區塊鏈上的根雜湊值與在鏈下儲存的二元樹的根雜湊值
S113:當接收讀取要求,讀取區塊鏈上的資料集合在後者的根雜湊值並讀取在鏈下儲存的資料集合在前者的一或多個根雜湊值
S115:以區塊鏈上的在後的資料集合的鏈接雜湊值驗證在鏈下儲存的在前的一或多個根雜湊值的正確性
S201:在鏈下自多個終端裝置接收多個紀錄資料與多個識別資料
S203:當接收識別資料之後,根據各識別資料產生分別對應於各葉節點的多個識別編號
S205:根據雜湊函數整合紀錄資料為二元樹
S207:根據各識別編號儲存各紀錄資料的雜湊值至對應的各葉節點
S209:傳送二元樹的根雜湊值與識別序號至區塊鏈
S211:切割二元樹為多個切片
S213:在鏈下回傳各切片至對應的各終端裝置
S215:驗證不正確,對應的終端裝置傳送抗議訊息至區塊鏈
S217:驗證正確,終端裝置無需傳送抗議訊息至區塊鏈
S219:依序產生累計序號
S221:產生鏈接資料串
S223:在鏈下儲存二元樹、初始鏈接值、識別序號與累計序號
S225:當接收驗證要求,比對區塊鏈上的根雜湊值與在鏈下儲存的二元樹的根雜湊值
S227:當接收搜尋要求,根據識別編號定位在鏈下儲存的二元樹的葉節點
S229:當接收讀取要求,讀取區塊鏈上的資料集合在後者的根雜湊值並讀取在鏈下儲存的資料集合在前者的一或多個根雜湊值
S231:以區塊鏈上的在後的資料集合的鏈接雜湊值驗證在鏈下儲存的在前的一或多個根雜湊值的正確性
圖1所示為本發明一實施例的驗證系統的方塊示意圖;
圖2所示為本發明一實施例的二元樹的示意圖;
圖3所示為本發明一實施例的鏈接資料串的示意圖一;
圖3a所示為本發明一實施例的鏈接資料串的示意圖二;
圖4所示為本發明另一實施例的驗證系統的方塊示意圖;
圖5所示為本發明又一實施例的驗證系統的方塊示意圖;
圖6所示為本發明一實施例的二元樹的切片的示意圖;
圖7所示為本發明另一實施例的鏈接資料串的示意圖;
圖8所示為本發明一實施例的驗證方法的流程圖;以及
圖9所示為本發明另一實施例的驗證方法的流程圖。
10b:驗證系統
100:安全協定裝置
110:二元樹處理單元
120:驗證單元
130:讀取單元
150:識別編號單元
160:定位搜尋單元
170:切片單元
180:識別序號單元
200:資料庫裝置
300:區塊鏈裝置
310:智能合約
311:鏈接處理單元
312:累計序號單元
400:終端裝置
410:紀錄資料產生單元
420:識別資料產生單元
430:切片驗證單元
440:識別編號單元
AS:累計序號
BT:二元樹
BTS:二元樹的切片
CDS:鏈接資料串
CH0:初始鏈接值
ID:識別資料
IS:識別序號
OC:鏈下
BC:區塊鏈
RD:紀錄資料
RDH:紀錄資料的雜湊值
RH:根雜湊值
RR:讀取要求
Claims (7)
- 一種用於與一區塊鏈協作的資料處理方法,該資料處理方法包括:自至少一終端裝置接收一第一紀錄資料以及對應該第一紀錄資料的一第一識別資料;根據該第一識別資料產生一第一識別編號,該第一識別編號用以識別一二元樹中的複數個葉節點中的一第一葉節點;根據該第一識別編號,將該第一紀錄資料的雜湊值儲存至該第一葉節點;根據該二元樹產生複數個切片,各該切片包括該二元樹中的一根節點以及該二元樹中的一組葉節點以及對應該組葉節點的至少一中間節點;將儲存於該根節點的一根雜湊值上傳至該區塊鏈;將該些切片中的一第一切片回傳至該至少一終端裝置,該第一切片包括儲存該第一紀錄資料的雜湊值的該第一葉節點;自該至少一終端裝置接收一搜尋要求,該搜尋要求對應於一第二紀錄資料的一第二識別編號,該第二識別編號用以識別該些葉節點中的一第一葉節點;根據該搜尋要求,自該些葉節點中搜尋由該第二識別編號所識別的該第二葉節點;以及判斷該第二葉節點是否儲存該第二紀錄資料的雜湊值,以驗證該第二紀錄資料是否存在於一資料庫裝置。
- 如請求項1所述之資料處理方法,更包括: 自該至少一終端裝置接收一第三紀錄資料以及對應該第三紀錄資料的一第三識別資料;根據該第三識別資料產生一第三識別編號,該第三識別編號用以識別該二元樹的該些葉節點中的一第三葉節點;根據該第三識別編號,將該第三紀錄資料的雜湊值儲存至該第三葉節點;以及將該些切片中的一第三切片回傳至該至少一終端裝置,該第三切片包括儲存該第三紀錄資料的雜湊值的該第三葉節點。
- 如請求項2所述之資料處理方法,其中該第一紀錄資料以及該第一識別資料來自該至少一終端裝置中的一第一終端裝置,該第三紀錄資料以及該第三識別資料來自該至少一終端裝置中的一第二終端裝置,該第一切片以及該第三切片分別被傳送至該第一終端裝置以及該第二終端裝置。
- 如請求項1所述之資料處理方法,更包括:對該第一識別資料作雜湊運算以取得該第一識別資料的雜湊值;將該第一識別資料的雜湊值轉換為一二進位數列;以及擷取該二進位數列的部分位元以作為該第一識別編號。
- 一種安全協定裝置,其包括:一識別編號單元,其被配置以根據對應於一第一紀錄資料的一第一識別資料產生一第一識別編號,並根據該第一識別編號,將該第一紀錄資料的雜湊值儲存至一第一葉節點,其中該安全協定裝置被配置以自至少一終端裝置接收該第一紀錄資料以及該第一識別資料,該第一葉節點為一二元樹中的複數個葉節點的其中之一,該第一識別編號用以識別該第一葉節點;以及 一切片單元,其被配置以根據該二元樹產生複數個切片,並將該些切片中的一第一切片回傳至該至少一終端裝置,其中各該切片包括該二元樹中的一根節點以及該二元樹中的一組葉節點以及對應該組葉節點的至少一中間節點,該第一切片包括儲存該第一紀錄資料的雜湊值的該第一葉節點;其中該安全協定裝置更被配置以將儲存於該根節點的一根雜湊值上傳至一區塊鏈,其中該安全裝置更被配置以:自該至少一終端裝置接收一搜尋要求,該搜尋要求對應於用以識別一第二紀錄資料的一第二識別編號;根據該搜尋要求,自該些葉節點中搜尋該第二識別編號所識別的一第二葉節點;以及判斷該第二葉節點是否儲存該第二紀錄資料的雜湊值,以驗證該第二紀錄資料是否存在於一資料庫裝置。
- 如請求項5所述之安全協定裝置,其中該識別編號單元更被配置以根據對應於一第三紀錄資料的一第三識別資料產生一第三識別編號,並根據該第三識別編號,將該第三紀錄資料的雜湊值儲存至一第三葉節點,其中該安全協定裝置被配置以自該至少一終端裝置接收該第三紀錄資料以及該第三識別資料,該第三葉節點為該二元樹中的該些葉節點的其中之一,該第三識別編號用以識別該第三葉節點;以及該切片單元更被配置以將該些切片中的一第三切片回傳至該至少一終端裝置,該第三切片包括儲存該第三紀錄資料的雜湊值的該第三葉節點。
- 如請求項5所述之安全協定裝置,其中該安全裝置更被配置以: 對該第一識別資料作雜湊運算以取得該第一識別資料的雜湊值;將該第一識別資料的雜湊值轉換為一二進位數列;以及擷取該二進位數列的部分位元以作為該第一識別編號。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110113296A TWI783441B (zh) | 2019-04-24 | 2019-04-24 | 用於與區塊鏈協作的資料處理方法與裝置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110113296A TWI783441B (zh) | 2019-04-24 | 2019-04-24 | 用於與區塊鏈協作的資料處理方法與裝置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202130154A TW202130154A (zh) | 2021-08-01 |
| TWI783441B true TWI783441B (zh) | 2022-11-11 |
Family
ID=78282772
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110113296A TWI783441B (zh) | 2019-04-24 | 2019-04-24 | 用於與區塊鏈協作的資料處理方法與裝置 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI783441B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20240184747A1 (en) * | 2022-12-01 | 2024-06-06 | International Trust Machines Corporation | Method and system for blockchain-based data management |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120143830A1 (en) * | 2010-12-02 | 2012-06-07 | At&T Intellectual Property I, L.P. | Interactive proof to validate outsourced data stream processing |
| US20150180971A1 (en) * | 2012-12-13 | 2015-06-25 | Level 3 Communications, Llc | Multi-level peering in a content delivery framework |
| TW201535146A (zh) * | 2014-03-05 | 2015-09-16 | Ind Tech Res Inst | 憑證授權裝置與車載單元以及憑證產生、撤銷與驗證方法 |
| US20180101701A1 (en) * | 2016-10-07 | 2018-04-12 | Acronis International Gmbh | System and method for file authenticity certification using blockchain network |
-
2019
- 2019-04-24 TW TW110113296A patent/TWI783441B/zh active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120143830A1 (en) * | 2010-12-02 | 2012-06-07 | At&T Intellectual Property I, L.P. | Interactive proof to validate outsourced data stream processing |
| US20150180971A1 (en) * | 2012-12-13 | 2015-06-25 | Level 3 Communications, Llc | Multi-level peering in a content delivery framework |
| TW201535146A (zh) * | 2014-03-05 | 2015-09-16 | Ind Tech Res Inst | 憑證授權裝置與車載單元以及憑證產生、撤銷與驗證方法 |
| US20180101701A1 (en) * | 2016-10-07 | 2018-04-12 | Acronis International Gmbh | System and method for file authenticity certification using blockchain network |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202130154A (zh) | 2021-08-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI708154B (zh) | 適用於區塊鏈與鏈下間協作的驗證系統與方法 | |
| TWI706662B (zh) | 用於鏈接資料的方法與裝置 | |
| US20200252221A1 (en) | Optimizations for verification of interactions system and method | |
| US11468044B2 (en) | Optimizations for verification of interactions system and method using probability density functions | |
| CN109542979B (zh) | 一种区块链系统快速同步及简精数据存储的方式 | |
| CN110012005A (zh) | 识别异常数据的方法、装置、电子设备及存储介质 | |
| CN114462998A (zh) | 一种日志防篡改方法、系统及存储介质 | |
| CN111432009A (zh) | 一种区块链数据的同步方法、装置及电子设备、存储介质 | |
| CN114491324A (zh) | 信息推送方法、装置、计算机设备和存储介质 | |
| TWI783441B (zh) | 用於與區塊鏈協作的資料處理方法與裝置 | |
| CN114418092A (zh) | 基于区块链的联邦学习恶意节点甄别方法 | |
| TWI728899B (zh) | 用於處理鏈接資料的方法與裝置 | |
| CN101464902A (zh) | 一种外包数据库查询结果验证方法及其系统 | |
| CN116760632B (zh) | 数据处理方法、装置、设备及可读存储介质 | |
| WO2024114784A1 (en) | Method and system for blockchain-based data management | |
| CN111079199B (zh) | 基于区块链技术的企业信用数据截图防篡改方法 | |
| CN121029763A (zh) | 业务状态数据的存储方法、装置、计算机设备及存储介质 | |
| WO2024187592A1 (zh) | 地震数据的存储格式转换方法、装置、设备及存储介质 | |
| CN109359008A (zh) | 系统日志的管理方法和装置 | |
| CN121462321A (zh) | 一种存证平台的数据加密存储方法及系统 | |
| CN113868255A (zh) | 一种基于区块链的设备标识存储方法、装置及电子设备 |