TWI659373B - 區塊鏈系統及應用其的方法 - Google Patents

區塊鏈系統及應用其的方法 Download PDF

Info

Publication number
TWI659373B
TWI659373B TW107105498A TW107105498A TWI659373B TW I659373 B TWI659373 B TW I659373B TW 107105498 A TW107105498 A TW 107105498A TW 107105498 A TW107105498 A TW 107105498A TW I659373 B TWI659373 B TW I659373B
Authority
TW
Taiwan
Prior art keywords
blockchain
branch
group
devices
block
Prior art date
Application number
TW107105498A
Other languages
English (en)
Other versions
TW201935352A (zh
Inventor
林佳輝
Original Assignee
財團法人工業技術研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人工業技術研究院 filed Critical 財團法人工業技術研究院
Priority to TW107105498A priority Critical patent/TWI659373B/zh
Priority to CN201810228501.3A priority patent/CN110163600B/zh
Priority to US16/135,739 priority patent/US10795857B2/en
Application granted granted Critical
Publication of TWI659373B publication Critical patent/TWI659373B/zh
Publication of TW201935352A publication Critical patent/TW201935352A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

一種方法,包括以下步驟:監測一區塊鏈系統的狀態資訊;判斷狀態資訊是否符合區塊鏈分支條件;當狀態資訊符合區塊鏈分支條件,對區塊鏈的選定區塊寫入分支指令,分支指令用以致能區塊鏈形成多個分支,並使區塊鏈系統中的多個區塊鏈裝置分成多個群組,以平行驗證該些分支;取得群組內最大傳輸延遲時間,並根據群組內最大傳輸延遲時間,決定新區塊產生間隔時間來產生第一分支中的區塊。

Description

區塊鏈系統及應用其的方法
本揭露是關於一種區塊鏈(blockchain)系統及應用其的方法。
區塊鏈源自於2008年被提出的比特幣(Bitcoin),透過區塊鏈可解決交易時的信任問題。區塊鏈系統是一種分散式的系統,藉由打包多筆的交易及前一區塊的雜湊(Hash)值形成「區塊」,而前後區塊內雜湊值的相依關係產生連結,故稱為「區塊鏈(blockchain)」。一旦前面的區塊內容遭竄改,因為雜湊值的特性,後面的區塊內容會完全不相同,藉此來保護「交易」的內容不被篡改。可比擬一「區塊」為電腦中的一組資料,以事先設定好的欄位與格式加以儲存,每個區塊都可記錄許多筆交易內容。區塊鏈節點(blockchain node)是指在一伺服器安裝區塊鏈節點程式跟帳本(ledger)程式、或包括了帳本程式的區塊鏈節點程式。區塊鏈節點與區塊鏈節點之間經由「點對點網路」(Peer to peer network)進行資料交換。使用者安裝應用程式的客戶端程式(client application),進行應用服務,例如:付款與收款,應用程式將交易內容傳回區塊鏈節點,區塊鏈節點再將交易內容通知系統內所有的區塊鏈節點,以同步帳本。並且譬如使用可驗證的匿名制,以確認交易真實,使用者不可否認。近幾年,區塊鏈技術去中心化與無法被竄改的特點被用來解決人與人之間的信任問題,像是金融交易、商業合作等諸多應用,皆可望透過區塊鏈技術來改善現有交易機制的安全性。不幸的是,區塊鏈目前遭遇效能的瓶頸,導致許多應用上的限制。舉例來說,VISA金融交易平均每秒要處理2000筆交易,最高更達每秒56000筆交易,而應用區塊鏈技術的比特幣(Bitcoin)一秒卻只能處理約7筆交易,而以太坊(Ethereum)每秒也只能處理約15筆交易,顯然無法滿足使用需求。
因此,如何加速區塊鏈技術的交易驗證速度,乃目前待解的議題之一。
本揭露是關於一種區塊鏈系統及應用其的方法。根據本揭露實施例,區塊鏈裝置可在區塊鏈系統的狀態資訊符合一區塊鏈分割條件時,發出分支指令,使區塊鏈產生多個分支。回應分支指令,網路中的多個區塊鏈裝置會分成多個群組,以平行驗證該些分支。由於同一個群組中的區塊鏈裝置之間彼此傳輸延遲時間較短,一分支的區塊產生間隔時間可比全網共識的區塊產生間隔時間來得短,故可縮短每個分支的區塊產生間隔時間,進而增加同一時間所處理的交易數。另外,當區塊鏈裝置發現驗證一分支的區塊鏈裝置數目過少、算力過小、或其它符合區塊鏈合併條件的情況,區塊鏈裝置亦可發出合併指令,以合併特定的分支,藉此確保區塊鏈的安全與穩定性。
根據本揭露的一實施例,提出一種方法,由一區塊鏈系統實施,該區塊鏈系統包括多個區塊鏈裝置,該些區塊鏈裝置參與一區塊鏈的驗證,以產生該區塊鏈中的多個區塊,該方法包括:透過該些區塊鏈裝置中的一第一區塊鏈裝置,監測該區塊鏈系統的狀態資訊;該第一區塊鏈裝置判斷該狀態資訊是否符合一區塊鏈分支條件;當該第一區塊鏈裝置判斷該狀態資訊符合該區塊鏈分支條件,該第一區塊鏈裝置對該區塊鏈的一選定區塊寫入一分支指令,該分支指令用以致能該區塊鏈形成多個分支,該些區塊鏈裝置回應該分支指令而分成多個群組,以平行驗證該些分支,其中該第一區塊鏈裝置係加入該些群組中的一第一群組,該第一群組負責驗證該些分支中的一第一分支;以及該第一區塊鏈裝置取得該第一群組的一群組內最大傳輸延遲時間,並根據該群組內最大傳輸延遲時間,決定一新區塊產生間隔時間來產生該第一分支中的多個區塊。
根據本揭露的一實施例,提出一種區塊鏈系統,該區塊鏈系統包括多個區塊鏈裝置,該些區塊鏈裝置參與一區塊鏈的驗證,以產生該區塊鏈中的多個區塊,其中該些區塊鏈裝置包括一第一區塊鏈裝置,該第一區塊鏈裝置經配置而執行以下步驟:監測該區塊鏈系統的狀態資訊;判斷該狀態資訊是否符合一區塊鏈分支條件;當該狀態資訊符合該區塊鏈分支條件,對該區塊鏈的一選定區塊寫入一分支指令,該分支指令用以致能該區塊鏈形成多個分支,該些區塊鏈裝置回應該分支指令而分成多個群組,以平行驗證該些分支,其中該第一區塊鏈裝置係加入該些群組中的一第一群組,該第一群組負責驗證該些分支中的一第一分支;以及取得該第一群組的一群組內最大傳輸延遲時間,並根據該群組內最大傳輸延遲時間,決定一新區塊產生間隔時間來產生該第一分支中的多個區塊。
為了對本揭露之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
本揭露提出一種區塊鏈(blockchain)系統及應用其的方法。於一實施例中,區塊鏈系統可為一種分散式的系統,參與驗證區塊鏈的區塊鏈節點(本文中以「區塊鏈裝置」稱之)藉由點對點(peer-to-peer,P2P)網路進行連結。維護區塊鏈的每一個區塊鏈裝置有一個本地的資料庫,以供裝置本身管理及認證所持有的資料,並共同遵守一套共識機制,由事先制定好的共識機制選出一個區塊鏈裝置給予區塊寫入權,再藉由P2P網路將區塊廣播至網路中的所有區塊鏈裝置,各區塊鏈裝置再更新自己的本地資料庫,透過此方式,P2P網路中的所有區塊鏈裝置將可共同驗證、維護區塊鏈網路中的區塊鏈。
區塊鏈因為特殊的資料結構,因此具備交易紀錄不可修改的特性。在區塊鏈中要記錄的資料被描述為一筆一筆的「交易」,多筆交易會被整理成區塊,且每一個區塊中含有鏈結的上一個區塊內容的雜湊(Hash)值。因此,若有心者欲修改先前的資料,則必須連該區塊後所有的區塊一同修改,否則雜湊值將無法相互對應。此一特性可確保區塊鏈的資料不會被惡意裝置竄改。換言之,在區塊鏈的架構下,儘管不同區塊鏈裝置之間彼此不信任,且惡意區塊鏈裝置可能隨意竄改自己的資料並試圖與其他區塊鏈裝置同步,其他區塊鏈裝置仍可透過雜湊值進行判斷,確保資料的正確性。
另一方面,由於區塊鏈系統是一種去中心化的分散式系統,系統中各個區塊鏈裝置間並無主從關係,因此需要一共識機制讓一區塊鏈裝置可以接受其他區塊鏈裝置的資料,讓自己本地資料庫可以正常運作。現行實現於區塊鏈系統的共識機制有許多種,像是以算力為主的PoW(Proof-of-Work)共識機制、PoS (Proof-of-Stack)共識機制、PBFT(Practical Byzantine Fault Tolerance)共識機制及SBFT(Speculative Byzantine Fault Tolerance)共識機制等。
所謂「算力」可例如被定義成每秒解出的函數次數,譬如在PoW共機機制中,算力可例如以區塊鏈裝置每秒解出雜湊函數的數量作為單位(Hash/s);在其他應用中,算力亦可透過其他可呈現區塊鏈裝置解題能力的指標來表示。一般而言,算力越高表示區塊鏈裝置解出謎題的速度越快、越有機會解出謎題並取得區塊寫入權。
根據PoW共識機制,全部的區塊鏈裝置會競爭計算困難謎題,而最先解出答案的區塊鏈裝置,即可獲得發佈新區塊的權利。而PoS共識機制主要的概念類似於股權,也就是說,擁有較多區塊鏈虛擬貨幣的區塊鏈裝置,相當於擁有該區塊鏈較多的股權,因此較容易取得新區塊的發佈權利。在一些情況中,為了防止對區塊鏈發佈新區塊的權利過於集中於某一個區塊鏈裝置,部分的PoS共識機制可能會根據「持有貨幣數量 幣齡」來決定取得區塊發佈權的機率,其中幣齡(Coin-age)指的是至今距離上次取得區塊發佈權的時間差。因此,當一區塊鏈裝置越久未取得區塊發佈權,該區塊鏈裝置取得新區塊發佈權的機率將隨著時間進展而越大。另外,根據PBFT共識機制及SBFT共識機制,區塊鏈裝置可藉由特定規則輪流取得區塊的發佈權,但發佈的區塊內容必須提供給其他區塊鏈裝置驗證,若發佈的區塊內容經驗證後被判斷為真,其他區塊鏈裝置將會對該區塊附上一背書,而區塊鏈裝置之間可藉由約定好的背書數量來證明自身所發佈的區塊內容為真。共識機制設計的目的在於避免讓某一區塊鏈裝置連續取得區塊寫入權。若惡意裝置連續取得區塊寫入權而寫入惡意資料並產生長鏈,例如:51%攻擊,則其他區塊鏈裝置將會相信惡意的區塊資料。
為了提升區塊鏈系統的執行效能,視系統要求或所採取的共識演算法,目前可有兩種加速區塊鏈的區塊產生速度的作法:一種是直接降低區塊鏈裝置解謎的難度,另一種則是增加每個區塊的容量。然而,這些作法均受限於網路的傳輸延遲時間。舉例來說,若兩個區塊鏈裝置(如裝置A及裝置B)各自以一秒一個區塊的頻率產生區塊(即,區塊產生間隔時間為1秒),且裝置A、B相距一定距離而具有傳輸延遲時間約2.5秒,則當裝置A產生的區塊傳到裝置B,裝置B已自行產生兩個區塊,因此裝置B將不會認可裝置A所傳來的區塊,在此情況下,裝置A、B將無法取得共識。類似地,若裝置A、B所產生的區塊的容量變大,則相對地網路傳輸延遲將更長,當裝置A產生的區塊傳到裝置B時,裝置B早已自行產生多個區塊,因此,裝置A、B同樣無法取得共識。換言之,為了確保區塊鏈裝置間能取得共識,區塊鏈的區塊產生間隔時間必須比區塊鏈裝置間的傳輸延遲時間還要長。
根據本揭露實施例,區塊鏈裝置可在區塊鏈系統的狀態資訊符合一區塊鏈分割條件時,發出分支指令,使區塊鏈產生多個分支。回應分支指令,網路中的多個區塊鏈裝置會分成多個群組,以平行驗證該些分支。由於同一個群組中的區塊鏈裝置之間彼此傳輸延遲時間較短,一分支的區塊產生間隔時間可比全網共識的區塊產生間隔時間來得短,故可縮短每個分支的區塊產生間隔時間,進而增加同一時間所處理的交易數。另外,當區塊鏈裝置發現驗證一分支的區塊鏈裝置數目過少、算力過小、或其它符合區塊鏈合併條件的情況,區塊鏈裝置亦可發出合併指令,以合併特定的分支,藉此確保區塊鏈的安全與穩定性。
本文所述之區塊鏈裝置例如是包括記憶體以及處理器的電子設備。記憶體可儲存可供處理器取得或執行的程式、指令、資料或檔案。處理器耦接記憶體,其經配置可執行本揭露實施例的方法。處理器可例如被實施為微控制單元(microcontroller)、微處理器(microprocessor)、數位訊號處理器(digital signal processor)、特殊應用積體電路(application specific integrated circuit,ASIC)、數位邏輯電路、現場可程式邏輯閘陣列(field programmable gate array,FPGA)、或其它具有運算處理功能的硬體元件。彼此通訊連接的多個區塊鏈裝置可形成一區塊鏈系統,並參與一區塊鏈的驗證。另外,本揭露提出之方法亦可實作為一軟體程式,此軟體程式可儲存在非暫態電腦可讀取儲存媒體(non-transitory computer readable storage medium)當中,像是硬碟、光碟、隨身碟、記憶體等,當處理器從非暫態電腦可讀取儲存媒體載入此軟體程式時,可執行本揭露的方法。
以下,首先透過第1A圖及第1B圖實施例說明對區塊鏈進行「分支」及「合併」這兩種態樣。應注意的是,第1A圖及第1B圖均只是用以說明本揭露的可能實施態樣,而非用以限制本揭露。第1A圖及第1B圖中所繪示的區塊數量、分支方式、合併方式、區塊產生間隔時間等,皆不應被認為是限制性的。
第1A圖繪示依據本揭露一實施例的區塊鏈分支的示意圖。在第1A圖的實施例中,區塊鏈系統包括多個區塊鏈裝置(亦即區塊鏈節點,以空心圓圈表示),以共同維護如圖左方所示的區塊鏈結構。多個區塊鏈裝置彼此通訊連結以形成一網路,例如P2P網路。
區塊鏈結構包括區塊鏈MC以及衍生自區塊鏈MC的三個分支SC A、SC B、SC C,其中區塊鏈MC包括多個區塊BK 1~BK 3,分支SC A包括區塊BK A1及BK A2,分支SC B包括區塊BK B1、BK B2及BK B3,分支SC C包括區塊BK C1以及BK C2
在本文中,一個區塊鏈分支中的第一個區塊稱作「根節點(root)區塊」。以第1圖為例,分支SC A、SC B、SC C的根節點區塊分別為區塊BK A1、區塊BK B1以及區塊BK C1
在區塊鏈MC尚未形成分支SC A、SC B、SC C以前,區塊鏈MC由所有區塊鏈裝置共同進行驗證、維護,並以每16秒產生一個區塊的頻率(即,區塊產生間隔時間為16秒)作延伸。區塊鏈MC的區塊產生間隔時間可因區塊鏈系統的共識難度參數而作調整。在一實施例中,共識難度參數可以是指運算出的雜湊值中前面「0」的個數。舉例來說,在運算區塊BK 3時,可利用前一個區塊BK 2的雜湊值以及新加入區塊BK 3的交易雜湊值,加上隨機數(Nonce)後再進行雜湊函數/雜湊演算法,以得到新的雜湊值。若得到的新雜湊值前面「0」的個數等於共識難度參數,則該區塊即一被驗證為有效的區塊。進一步舉例,若目前區塊鏈系統驗證到第n個區塊,且H()表示雜湊值,則 ,其中 表示新加入第n個區塊的交易的雜湊值。假設共識難度參數為4,若算出的H n為0000c3af42...dcd4e9,則滿足前面有4個0的條件,故H n被驗證為有效;反之,若H n為1312af178c...34c64,因H n不滿足共識難度參數為4的條件,故H n被驗證為無效,區塊鏈裝置需改變Nonce值並重新計算雜湊值。因此,透過調整共識難度參數,可讓區塊產生間隔時間維持在一定區間內。舉例來說,假設區塊鏈系統將區塊鏈MC的區塊產生間隔時間設定為16秒,若系統偵測到區塊產生間隔時間小於16秒,則將共識難度參數加1,反之,則將共識難度參數則減1,以此類推。
在驗證區塊鏈MC的期間,系統中的所有區塊鏈裝置(或是當中的一或多個特定區塊鏈裝置)會偵測區塊鏈系統的狀態資訊。若有任一區塊鏈裝置(或是預先指定的特定區塊鏈裝置)發現區塊鏈系統的狀態資訊符合一區塊鏈分割條件,區塊鏈裝置將在區塊(例如區塊BK 3)中寫入分支指令,以要求區塊鏈MC產生分支。若該分支指令亦獲得系統中其他區塊鏈裝置的認可,區塊鏈MC將形成多個分支,例如分支SC A、SC B、SC C,且系統中的區塊鏈裝置亦會分成多個對應的群組,例如群組DG A、DG B、DG C,以分別對分支SC A、SC B、SC C進行驗證,其中分支SC A、SC B、SC C的區塊產生間隔時間均小於區塊鏈MC的區塊產生間隔時間(16秒),如第1A圖所示,分支SC A、SC B、SC C的區塊產生間隔時間分別為10秒、8秒、9秒。在一些實施例中,區塊鏈裝置可根據現有的共識機制來判斷是否認可一分支指令。舉例來說,根據PBFT及SBFT共識機制,區塊鏈裝置所發佈的分支指令將提供給其他區塊鏈裝置進行驗證,若該分支指令經過驗證後被判斷為真,即表示該分支指令獲得其他區塊鏈裝置的認可。
第1B圖繪示依據本揭露一實施例的區塊鏈合併的示意圖。如第1B圖所示,在進行區塊鏈分支後的一段時間,分支SC A延伸了i個區塊至區塊BK Ai、分支SC B延伸了j個區塊至區塊BK Bj、分支SC C延伸了k個區塊至區塊BK Ck
分支SC A與分支SC B可回應系統中區塊鏈裝置發出的合併指令,合併成新分支SC M。對應地,群組DG A以及群組DG B亦將合併成新群組DG M,以共同驗證、維護新分支SC M
新群組DG M中的區塊鏈裝置亦會調整區塊產生間隔時間來產生新分支SC M中的區塊(如區塊BK M1以及區塊BK M2),例如調整成每13秒產生一個區塊。此一區塊產生間隔時間可能較合併前各分支的區塊產生間隔時間來得長。這是因為新群組DG M包含了更多的區塊鏈裝置,導致區塊鏈裝置之間的最大傳輸延遲時間可能變長。另一方面,因為分支合併的關係,區塊BK M1以及區塊BK M2將會繼承分支SC A與SC B中區塊的雜湊值。
第2圖繪示依據本揭露一實施例的方法的流程圖,此流程係針對區塊鏈分支的情況。所述之方法可實現於一區塊鏈系統。區塊鏈系統包括多個區塊鏈裝置,該些區塊鏈裝置彼此通訊連接而形成一網路,並參與一區塊鏈的驗證,以產生該區塊鏈中的多個區塊。
步驟S202,該些區塊鏈裝置中的一第一區塊鏈裝置監測區塊鏈系統的狀態資訊。狀態資訊例如是指區塊主鏈或分支的算力、負責驗證區塊主鏈或分支的區塊鏈裝置數量等。
步驟S204,第一區塊鏈裝置判斷狀態資訊是否符合一區塊鏈分支條件。在一實施例中,區塊鏈分支條件可根據所採用的共識演算法而有不同的定義,舉例來說,區塊鏈分支條件可包括以下條件(1)以及條件(2)至少其一:(1)驗證區塊鏈或區塊鏈多個分支之一的算力高於一第一算力閥值,且需處理的交易數量多於一第一交易量閥值,以及(2)驗證區塊鏈或驗證區塊鏈多個分支之一的區塊鏈裝置數量高於一第一裝置數量閥值,且需處理的交易數量多於一第二交易量閥值。此處提到的第一算力閥值、第一交易量閥值、第一裝置數量閥值以及第二交易量閥值可以是任意的,端視系統要求或所採取的共識演算法而定。
若判斷步驟S204為是,在步驟S206中,第一區塊鏈裝置將對區塊鏈的一選定區塊寫入一分支指令。該分支指令用以致能(enable)該區塊鏈形成多個分支,區塊鏈系統中的該些區塊鏈裝置可回應該分支指令而分成多個群組,以平行驗證該些分支,其中第一區塊鏈裝置係加入該些群組中的一第一群組,該第一群組負責驗證該些分支中的一第一分支。
進一步說,在分支指令被寫入區塊後,區塊鏈系統中的所有區塊鏈裝置皆會收到該分支指令的副本,並對該分支指令進行驗證,例如驗證當前系統的狀態資訊是否真的符合區塊鏈分支條件。若驗證通過就取得認可,系統中的所有區塊鏈裝置將分成多個群組,每個群組係負責驗證一個對應的分支。在一實施例中,可讓彼此間傳輸延遲時間較短的區塊鏈裝置加入同一個群組,以加速分支的區塊產生間隔時間。
在一實施例中,區塊鏈系統在產生區塊時可在各個區塊中內建一分類函數。當要形成區塊鏈的分支時,將一分類條件代入該分類函數後所產生的多個分類結果即可作為各個分支的索引值。換言之,區塊鏈中的每個區塊均包括一分類函數,該分類函數代入一分類條件後所可能得到的多個分類函數值係分別與該些分支相對應。所述之分類條件可以是一交易發送者辨識碼(sender ID)、一智能合約類型(contract type)、一智能合約內容(contract content)或一交易屬性參數。舉例來說,若分類條件係一交易發送者辨識碼,而分類函數係運算對交易發送者辨識碼除以一數值後的餘數結果,則若該數值=2,則所有可能得到的分類函數值包括餘數=1以及餘數=0等2種分類結果,其中餘數=1的結果可用來指示一分支,而餘數=0的結果可用來指示另一分支。透過上述分類機制,可讓相同分支處理具有關聯性的交易資料。換言之,不同的分支將對應不同類別的交易。如前述的例子,由於同一個交易發送者的交易可能彼此相關,故可根據交易發送者辨識碼來作分支的分類條件。
若判斷步驟S204為否,流程返回步驟S202,第一區塊鏈裝置繼續監測區塊鏈系統的狀態資訊。
步驟S208,第一區塊鏈裝置取得第一群組的群組內最大傳輸延遲時間,並根據該群組內最大傳輸延遲時間,決定一新區塊產生間隔時間來產生第一分支中的區塊。
第一群組的群組內最大傳輸延遲時間指的是將一區塊傳播至第一群組中所有區塊鏈裝置所需的最大傳輸時間。一般而言,因為第一群組中區塊鏈裝置的數量比區塊鏈系統中所有區塊鏈裝置的數量來的少,故群組內最大傳輸延遲時間通常會比系統的最大傳輸延遲時間來得短。在決定出群組內最大傳輸延遲時間後,第一區塊鏈裝置與第一群組中的其他區塊鏈裝置可協調出一新區塊產生間隔時間,此一新區塊產生間隔時間可以是群組內最大傳輸延遲時間的數倍,以避免區塊鏈裝置間無法產生共識的問題。另外,因為群組內最大傳輸延遲時間通常會比系統的最大傳輸延遲時間來得短,故新區塊產生間隔時間亦會比分支前的區塊產生間隔時間來得短。換言之,在對區塊鏈進行分支後,分支區塊產生間隔時間將被縮短,群組中的區塊鏈裝置可基於較快的頻率產生對應分支的區塊,進而提升系統的效能。關於此部分之詳細推導將於後面段落描述。
區塊產生間隔時間可根據共識演算法的不同而有對應的實現方式。舉例來說,在PBFT、SBFT實現的區塊鏈系統中,區塊鏈裝置在取得一定數量的背書後即會發佈區塊,因此可透過此方式精確地控制區塊產生間隔時間。舉例來說,若一區塊鏈裝置欲發起一交易,該區塊鏈裝置將會把該交易廣播至網路中的其他區塊鏈裝置以驗證該交易的正確性。若該交易經過其他區塊鏈裝置的驗證後判斷為真,也就是獲得其他區塊鏈裝置的認可,該些其他區塊鏈裝置將會給予該交易一背書,發起該交易的該區塊鏈裝置在蒐集到一定數量的背書後,即可將該交易寫入區塊鏈中。而在以PoW實現共識的區塊鏈系統中,因為區塊產生間隔時間是根據解出謎題的時間決定,故系統可透過調整共識難度參數來調整區塊主鏈或分支的區塊產生間隔時間。此外,區塊鏈系統亦可透過改變區塊的容量來調整區塊主鏈或分支的區塊產生間隔時間。
在一實施例中,第一區塊鏈裝置可測量自身與網路中其他區塊鏈裝置之間的個別的傳輸延遲時間,並儲存一對應表,其中該對應表紀錄該些傳輸延遲時間以及區塊鏈系統中其他區塊鏈裝置所屬的群組/對應的分支。第一區塊鏈裝置更可將測量而得的該些傳輸延遲時間廣播給區塊鏈系統中的其他區塊鏈裝置,使得系統中的區塊鏈裝置間知悉彼此間的傳輸延遲時間。透過此方式,第一群組內的區塊鏈裝置可溝通取得第一群組的群組內最大傳輸延遲時間,並據以決定第一分支的區塊產生間隔時間,例如將第一分支的區塊產生間隔時間設定為第一群組的群組內最大傳輸延遲時間的Q倍,其中Q為大於1的實數。
另外,如前所述,由於第一群組的區塊鏈裝置數量比區塊鏈系統的區塊鏈裝置數量少、區塊鏈裝置彼此間的傳輸延遲時間短,故第一分支的區塊產生間隔時間也可以被設定成比分支前的區塊鏈的區塊產生間隔時間短。茲提供具體的推導如下:
假設傳統的區塊鏈中(例如僅具有單一主鏈的區塊鏈)每個區塊平均處理K筆交易,則傳統區塊鏈的處理效能為:
(筆交易/單位時間(秒));
其中T為傳統區塊鏈的區塊產生間隔時間。
而在同樣的網路環境下,具有N個分支的區塊鏈的處理效能為:
(筆交易/單位時間(秒));
其中t i表示第i個分支的區塊產生間隔時間。
假設一個區塊透過P2P網路遍佈全網區塊鏈裝置的時間是TL,則基於區塊鏈裝置間能夠取得共識的條件,T應大於TL。另外,假設第i個分支的區塊遍佈整個對應群組的時間是l i,由於群組中的區塊鏈裝置間彼此的傳輸延遲時間較短,故TL>l i。又,因為t i須小於l i,故可得:一分支的區塊產生間隔時間可比全網共識的區塊產生間隔時間來得短,也就是t i≦T。
在一實施例中,基於安全性考量,當一區塊鏈裝置在驗證一特定分支中的某一區塊的交易時,若需用到另一分支的一資料,該區塊鏈裝置將會在該特定分支的該區塊中註明該另一分支的該資料的來源區塊的雜湊值。如此一來,若有惡意攻擊者要攻擊該特定分支的該區塊後的資料,則該惡意攻擊者需同時修改該特定分支的該區塊以及該另一分支的該來源區塊以後的所有資料,藉此增加攻擊的難度。
以下,將配合第3A圖以及第3B圖說明產生區塊鏈的分支的流程。
第3A圖繪示區塊鏈分支流程於第一階段的示意圖。在第3A圖的例子中,區塊鏈系統包括區塊鏈裝置D 1~D 9,並維護一區塊鏈MC’。區塊鏈MC’可以是尚未進行過分支的一區塊鏈主鏈,也可以是因進行區塊鏈分支程序而產生的某一個區塊鏈分支。換言之,一區塊主鏈在經過分支後,各分支還可進一步分裂成多個子分支,進而形成多層的樹狀區塊鏈結構。
區塊鏈MC’包括區塊BK 1’以及BK 2’,其中區塊BK 1’、區塊BK 2’分別包括一分類函數。在此實施例中,分類函數[d]被實施為:<S(T)%P>,其中S()表示交易發送者辨識碼,T為交易值,P為除數。透過調整除數P的值,可決定分支的數量。如第3A圖所示,P被設定為2,故一旦區塊鏈MC’進行分支,將有S(T)%2==1以及S(T)%2==0兩種結果,也就是兩個分支。然而本揭露並不以此為限,分類函數亦可根據合約類型、合約內容或其他與交易相關的資料來實現。透過分類函數進行分類,每一個類型的交易只會有一個對應的分支負責處理。以第3A圖的例子為例,並不會有一交易發送者辨識碼除以某數後會同時對應多個餘數結果。
在如第3A圖所示的第一階段中,區塊鏈裝置D 1~D 9會持續監控系統的狀態資訊,若有任一區塊鏈裝置發現系統的狀態資訊符合區塊鏈分支條件,例如發現驗證區塊鏈MC’的算力超過一算力閥值,且待處理的交易筆數過多,區塊鏈裝置(此例中為裝置D 5)將會在區塊(此例中為區塊BK 2’)中寫入分支指令,以要求區塊鏈MC’進行分支。分支指令可例如包括一分支生效參數,以指示區塊鏈MC’應該在幾個區塊後進行分支。如第3A圖所示,區塊BK 2’中的分支指令包括分支生效參數=0,表示在下一個區塊即進行分支。
由於區塊鏈MC’中的區塊會被廣播至所有區塊鏈裝置,故在裝置D 5對區塊BK 2’寫入分支指令後,其他裝置D 1~D 4、D 6~D 9可對區塊BK 2’中的分支指令進行驗證,以確認當前區塊鏈系統的狀態資訊是否確實符合區塊鏈分支條件。若分支條件通過驗證,分支流程將進入如第3B圖的第二階段。反之,若分支指令未通過驗證,則區塊鏈MC’將不進行分支。
第3B圖繪示區塊鏈分支流程於第二階段的示意圖。一旦分支指令通過驗證,區塊鏈MC’將按分類函數的分類結果分裂成兩個分支:對應分類結果S(T)%2==1的分支SC A’以及對應分類結果S(T)%2==0的分支SC B’。
回應分支指令,區塊鏈系統中的區塊鏈裝置D 1~D 9會先判斷是否每個分支(此例中為分支SC A’以及分支SC B’)皆有種子裝置產生對應的根節點區塊。所述之種子裝置指的是取得分支的根節點區塊的寫入權的區塊鏈裝置。
若判斷為是,也就是所有分支SC A’、SC B’的根節點區塊(此例中為區塊BK A1’以及區塊BK B1’)皆已被種子裝置運算出來,則種子裝置以外的區塊鏈裝置將優先選擇與自身的網路傳輸延遲最低的另一區塊鏈裝置(即第二區塊鏈裝置)加入相同的群組。不過,若一區塊鏈裝置所欲加入的群組的區塊鏈裝置數量已達一上限,該區塊鏈裝置將轉而選擇與自身的網路傳輸延遲次低的區塊鏈裝置加入相同的群組,以此類推。
若判斷為否,也就是仍有分支的根節點區塊尚未被種子裝置運算出來,則針對該些分支中尚未產生對應的根節點區塊的一特定分支,種子裝置以外的區塊鏈裝置將透過競爭方式或一預定規則(例如隨機選取或預先指定),成為該特定分支的種子裝置。
如第3B圖所示,區塊鏈裝置D 1因取得根節點區塊BK A1’的寫入權而作為分支SC A’的種子裝置(以斜線網底的圓圈表示),而區塊鏈裝置D 7則是取得根節點區塊BK B1’的寫入權而作為分支SC B’的種子裝置(以斜線網底的圓圈表示)。針對非種子裝置的其他區塊鏈裝置D 2~D 6、D 8~D 9,該等區塊鏈裝置將選擇與自身傳輸延遲時間最短的區塊鏈裝置加入同一個群組。以區塊鏈裝置D 4為例,區塊鏈裝置D 4可儲存一對應表如下(表一):
表一
區塊鏈裝置 傳輸延遲時間(秒) 所屬群組
D1 2 DGA
D2 1.5 DGA
D3 1 DGA
D5 5 DGB
D6 4.5 DGB
D7 5.5 DGB
D8 6 DGB
D9 6 DGB
如表一所示,在區塊鏈裝置D 1和D 7分別成為SC A’和SC B’的種子裝置後,區塊鏈裝置D 4可根據對應表的內容,選擇與傳輸延遲時間最短的區塊鏈裝置D 3加入同一群組DG A’,以驗證分支SC A’。同理,其他區塊鏈裝置亦可根據類似方式選擇加入群組DG A’或DG B’。雖然上述以表一為例說明對應表可能包含的資訊,但本揭露並不以此為限。對應表中區塊鏈裝置的數量、傳輸延遲時間的值、所屬的群組以及該等資訊呈現的方式,均可根據實際的應用而調整。
在一實施例中,若一區塊鏈裝置欲加入的群組的區塊鏈裝置數量已達一上限值,該區塊鏈裝置將轉而加入與自身的網路傳輸延遲次低的群組。舉例來說,若區塊鏈裝置D 4欲加入的入群組DG A’的裝置數量已達一上限值(例如3個裝置),區塊鏈裝置D 4將轉而加入與自身的網路傳輸延遲次低的群組,例如群組DG B’。
若區塊鏈裝置D 4係成功加入群組DG A’, 區塊鏈裝置D 1~D 4將根據所屬群組DG A’的群組內最大傳輸延遲時間調整分支SC A’的區塊產生間隔時間,使其小於全網的區塊產生間隔時間。類似地,區塊鏈裝置D 5~D 9亦會根據所屬群組DG B’的群組內最大傳輸延遲時間調整分支SC B’的區塊產生間隔時間,使其小於全網的區塊產生間隔時間。之後,群組DG A’以及群組DG B’中的區塊鏈裝置將分別根據調整後的區塊產生間隔時間來產生分支SC A’以及分支SC B’的區塊。
第4圖繪示依據本揭露一實施例的方法的流程圖,此流程係針對區塊鏈合併的情況,例如,在對區塊鏈進行如第2圖的分支流程後,再對部分或全部的分支進行合併的情況。
步驟S402,網路中的第一區塊鏈裝置監測區塊鏈系統的狀態資訊。狀態資訊例如是指區塊主鏈或分支的算力、區塊主鏈或分支上的區塊鏈裝置數量等。
步驟S404,第一區塊鏈裝置判斷網路中的狀態資訊是否符合區塊鏈合併條件。在一實施例中,區塊鏈合併條件包括以下條件(1)以及條件(2)至少其一:(1)驗證區塊鏈或多個分支之一的算力低於一第二算力閥值,以及(2)區塊鏈或多個分支之一中的區塊鏈裝置數量低於一第二裝置數量閥值。此處提到的第二算力閥值以及第二裝置數量閥值可以是任意的,端視系統要求或所採取的共識演算法而定。
若步驟S404判斷為是,則在步驟S406,第一區塊鏈裝置搜尋一第二分支作為合併目標,並在第一分支中的區塊中寫入一合併指令。合併指令例如包括合併條件以及合併生效參數,其中合併條件可透過合併前各分支所對應的分類函數值的聯集來實現,而合併生效參數則是用以指示經過幾個區塊後進行分支合併。
若步驟S404判斷為否,表示尚無合併分支的需要,流程將返回步驟S402,第一區塊鏈裝置繼續監測區塊鏈系統的狀態資訊。
步驟S408,第一區塊鏈裝置判斷是否從驗證該第二分支的第二群組收到合併確認指令。也就是說,負責驗證該第二分支的第二群組在接收到合併指令後,將檢查該合併指令是否符合區塊鏈合併條件,以及判斷合併後是否符合其他安全性設定,例如群組的區塊鏈裝置數量是否已達一上限值。在該合併指令驗證通過後,第二群組將發佈合併確認指令。另一方面,第二群組在同意接受合併後,亦會計算在幾個區塊後與第一群組進行合併。
若步驟S408判斷為是,在步驟S410,第一區塊鏈裝置將計算第一分支在一特定區塊數量後,與第二分支結合成一新區塊鏈。此新區塊鏈係由包括第一群組以及第二群組的一合併後群組進行驗證。
在步驟S412,第一區塊鏈裝置延長原本使用於第一分支的新區塊產生間隔時間來產生合併後新區塊鏈的區塊。
舉例來說,在分支合併前,第一群組中的區塊鏈裝置可逐漸增加第一分支的區塊產生間隔時間(如T 1秒),使得第一分支的區塊產生間隔時間在經過L個區塊後,達到預定的區塊產生間隔時間(如T X秒,其中T X>T 1)來產生合併後新區塊鏈的區塊;或者,第一群組中的區塊鏈裝置可在第一分支經過L個區塊後,直接將第一分支的區塊產生間隔時間增加至該預定的區塊產生間隔時間,並以該預定的區塊產生間隔時間來產生合併後新區塊鏈的區塊。另一方面,第二群組中的區塊鏈裝置亦可逐漸增加第二分支的區塊產生間隔時間(如T 2秒),使得第二分支的區塊產生間隔時間在經過K個區塊後,達到該預定的區塊產生間隔時間(如T X秒,其中T X>T 2) 來產生合併後新區塊鏈的區塊;或者,第二群組中的區塊鏈裝置可在第二分支經過K個區塊後,直接將第二分支的區塊產生間隔時間增加至該預定的區塊產生間隔時間,並以該預定的區塊產生間隔時間來產生合併後新區塊鏈的區塊。
若步驟S408判斷為否,表示第二群組中的區塊鏈裝置並不同意將第一分支與第二分支合併,流程將返回步驟S406,第一群組將尋找新的合併對象。
第5圖繪示區塊鏈合併的示意圖。為方便理解,第5圖係延續第3B圖的例子。根據第5圖的例子,在形成分支SC A’以及SC B’一段時間後,群組DG B’中的區塊鏈裝置係發現區塊鏈系統的狀態資訊符合區塊鏈合併條件,例如發現驗證SC B’的算力低於一算力閥值,故決定與分支SC A’進行合併。群組DG B’的區塊鏈裝置將在分支SC B’的區塊(如區塊BK Bj’)中寫入合併指令。合併指令[M]可例如被實施為:<分類函數值1 && 分類函數值2,VP M>,其中分類函數值#表示欲進行合併的分支所對應的分類函數值,VP M係一合併生效參數,用以指示分支在一特定區塊數量後進行合併。如第5圖所示,區塊BK Bj’被寫入合併指令[M]:[S(T)%2==1 && S(T)%2==0,K],表示對應分類函數值S(T)%2==0的分支SC B’在K個區塊後,將與對應分類函數值S(T)%2==1的分支SC A’進行合併。
合併指令亦會被提供至另一群組DG A’。群組DG A’中的區塊鏈裝置在確認合併指令後,將計算在幾個區塊後進行合併,並在分支SC A’的區塊(如區塊BK Ai’)中寫入對應的合併指令[M]:[S(T)%2==1 && S(T)%2==0,L],以指示在L個區塊後與分支SC B’進行合併。
在分支合併後,群組DG A’與群組DG B’將合併成同一群組,以共同驗證、維護合併後的新區塊鏈SC M’。 群組DG A’與群組DG B’中的區塊鏈裝置將各自調整合併前分支的區塊產生間隔時間至一預定的區塊產生間隔時間,以產生新區塊鏈SC M’中的區塊,如區塊BK M1’。因為新區塊鏈SC M’是合併自分支SC A’與分支SC B’,故為新區塊鏈SC M’中的區塊(如BK M1’)將同時包含分支SC A’以及分支SC B’的區塊雜湊值。
綜上所述,雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露。本揭露所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
BK1~BK3、BKA1~BKAi、BKB1~BKBj、BKC1~BKCk、BKM1~BKM2、BK1’、BK2’、BKA1’~BKA(i+L)’、 BKB1’~BKB(j+L)’、 BKM1’‧‧‧區塊
SCA、SCB、SCC、SCA’、SCB’‧‧‧區塊鏈的分支
SCM、SCM’‧‧‧合併後的分支
MC、MC’‧‧‧區塊鏈
DGA、DGA’、DGB、DGB’、DGC、DGM‧‧‧群組
S202、S204、S206、S208‧‧‧步驟
D1~D9‧‧‧區塊鏈裝置(區塊鏈節點)
第1A圖繪示依據本揭露一實施例的區塊鏈分支的示意圖。 第1B圖繪示依據本揭露一實施例的區塊鏈合併的示意圖。 第2圖繪示依據本揭露一實施例的方法的流程圖,此流程係針對區塊鏈分支的情況。 第3A圖繪示區塊鏈分支流程於第一階段的示意圖。 第3B圖繪示區塊鏈分支流程於第二階段的示意圖。 第4圖繪示依據本揭露一實施例的方法的流程圖,此流程係針對區塊鏈合併的情況。 第5圖繪示區塊鏈合併的示意圖。

Claims (20)

  1. 一種方法,由一區塊鏈系統實施,該區塊鏈系統包括複數個區塊鏈裝置,並參與一區塊鏈的驗證,以產生該區塊鏈中的複數個區塊,該方法包括: 透過該些區塊鏈裝置中的一第一區塊鏈裝置,監測該區塊鏈系統的狀態資訊; 該第一區塊鏈裝置判斷該狀態資訊是否符合一區塊鏈分支條件; 當該第一區塊鏈裝置判斷該狀態資訊符合該區塊鏈分支條件,該第一區塊鏈裝置對該區塊鏈的一選定區塊寫入一分支指令,該分支指令用以致能該區塊鏈形成複數個分支,該些區塊鏈裝置回應該分支指令而分成複數個群組,以平行驗證該些分支,其中該第一區塊鏈裝置係加入該些群組中的一第一群組,該第一群組負責驗證該些分支中的一第一分支;以及 該第一區塊鏈裝置取得該第一群組的一群組內最大傳輸延遲時間,並根據該群組內最大傳輸延遲時間,決定一新區塊產生間隔時間來產生該第一分支中的複數個區塊。
  2. 如申請專利範圍第1項所述之方法,其中該區塊鏈中的該些區塊分別包括一分類函數,該分類函數代入一分類條件後所可能得到的複數個分類函數值係分別與該些分支相對應。
  3. 如申請專利範圍第2項所述之方法,其中該分類條件係一交易發送者辨識碼(sender ID)、一智能合約類型(contract type)、一智能合約內容(contract content)或一交易屬性參數。
  4. 如申請專利範圍第3項所述之方法,其中該分類條件係該交易發送者辨識碼,該分類函數係運算該交易發送者辨識碼除以一數值後的餘數結果。
  5. 如申請專利範圍第1項所述之方法,其中該區塊鏈分支條件包括以下條件(1)以及條件(2)至少其一: (1)驗證該區塊鏈或該些分支之一的算力高於一第一算力閥值,且需處理的交易數量多於一第一交易量閥值,以及 (2)驗證該區塊鏈或該些分支之一的區塊鏈裝置數量高於一第一裝置數量閥值,且該需處理的交易數量多於一第二交易量閥值。
  6. 如申請專利範圍第1項所述之方法,更包括: 該第一區塊鏈裝置測量自身與該區塊鏈系統中複數個其他區塊鏈裝置之間的複數個傳輸延遲時間;以及 該第一區塊鏈裝置儲存一對應表,該對應表紀錄該些傳輸延遲時間以及該區塊鏈系統中該些其他區塊鏈裝置所屬的群組。
  7. 如申請專利範圍第1項所述之方法,更包括: 在寫入該分支指令後,該第一區塊鏈裝置判斷該些分支是否皆有種子裝置產生對應的根節點區塊; 若判斷為是,且該第一區塊鏈裝置並非種子裝置,該第一區塊鏈裝置優先選擇與自身的網路傳輸延遲最低的一第二區塊鏈裝置加入相同的群組;以及 若判斷為否,且該第一區塊鏈裝置並非種子裝置,該第一區塊鏈裝置針對該些分支中尚未產生對應的根節點區塊的一特定分支,透過競爭方式或一預定規則,成為該特定分支的種子裝置。
  8. 如申請專利範圍第7項所述之方法,更包括: 當該第二區塊鏈裝置所在的該群組中的區塊鏈裝置數量已達一上限值,該第一區塊鏈裝置轉而加入與自身的網路傳輸延遲次低的群組。
  9. 如申請專利範圍第1項所述之方法,更包括: 該第一區塊鏈裝置判斷該狀態資訊是否符合一區塊鏈合併條件; 當該第一區塊鏈裝置判斷該狀態資訊符合該區塊鏈合併條件,該第一區塊鏈裝置搜尋一第二分支,並在該第一分支的區塊中寫入一合併指令,其中該第二分支係由該些群組中的一第二群組進行驗證; 回應來自該第二群組的一合併確認指令,該第一區塊鏈裝置控制該第一分支在一特定區塊數量後,與該第二分支結合成一新區塊鏈,該新區塊鏈由一合併後群組進行驗證,該合併後群組包括該第一群組以及該第二群組;以及 該第一區塊鏈裝置延長該新區塊產生間隔時間來產生該新區塊鏈的區塊。
  10. 如申請專利範圍第9項所述之方法,其中該區塊鏈合併條件包括以下條件(1)以及條件(2)至少其一: (1)驗證該區塊鏈或該些分支之一的算力低於一第二算力閥值,以及 (2)驗證該區塊鏈或該些分支之一的區塊鏈裝置數量低於一第二裝置數量閥值。
  11. 一種區塊鏈系統,包括: 複數個區塊鏈裝置,該些區塊鏈裝置參與一區塊鏈的驗證,以產生該區塊鏈中的複數個區塊,其中該些區塊鏈裝置包括一第一區塊鏈裝置,該第一區塊鏈裝置經配置而執行以下步驟: 監測該區塊鏈系統的狀態資訊; 判斷該狀態資訊是否符合一區塊鏈分支條件; 當該狀態資訊符合該區塊鏈分支條件,對該區塊鏈的一選定區塊寫入一分支指令,該分支指令用以致能該區塊鏈形成複數個分支,該些區塊鏈裝置回應該分支指令而分成複數個群組,以平行驗證該些分支,其中該第一區塊鏈裝置係加入該些群組中的一第一群組,該第一群組負責驗證該些分支中的一第一分支;以及 取得該第一群組的一群組內最大傳輸延遲時間,並根據該群組內最大傳輸延遲時間,決定一新區塊產生間隔時間來產生該第一分支中的複數個區塊。
  12. 如申請專利範圍第11項所述之區塊鏈系統,其中該區塊鏈中的該些區塊分別包括一分類函數,該分類函數代入一分類條件後所可能得到的複數個分類函數值係分別與該些分支相對應。
  13. 如申請專利範圍第12項所述之區塊鏈系統,其中該分類條件係一交易發送者辨識碼(sender ID)、一智能合約類型(contract type)、一智能合約內容(contract content)或一交易屬性參數。
  14. 如申請專利範圍第13項所述之區塊鏈系統,其中該分類條件係該交易發送者辨識碼,該些分類函數值係該交易發送者辨識碼除以一數值後的餘數結果。
  15. 如申請專利範圍第11項所述之區塊鏈系統,其中該區塊鏈分支條件包括以下條件(1)以及條件(2)至少其一: (1)驗證該區塊鏈或該些分支之一的算力高於一第一算力閥值,且需處理的交易數量多於一第一交易量閥值,以及 (2)驗證該區塊鏈或該些分支之一的區塊鏈裝置數量高於一第一裝置數量閥值,且該需處理的交易數量多於一第二交易量閥值。
  16. 如申請專利範圍第11項所述之區塊鏈系統,其中該第一區塊鏈裝置更用以: 測量自身與該區塊鏈系統中複數個其他區塊鏈裝置之間的複數個傳輸延遲時間;以及 儲存一對應表,該對應表紀錄該些傳輸延遲時間以及該區塊鏈系統中該些其他區塊鏈裝置所屬的群組。
  17. 如申請專利範圍第11項所述之區塊鏈系統,其中該第一區塊鏈裝置更用以: 在寫入該分支指令後,判斷該些分支是否皆有種子裝置產生對應的根節點區塊; 若判斷為是,且該區塊鏈第一裝置並非種子裝置,該第一區塊鏈裝置優先選擇與自身的網路傳輸延遲最低的一第二區塊鏈裝置加入相同的群組;以及 若判斷為否,且該第一區塊鏈裝置並非種子裝置,該第一區塊鏈裝置針對該些分支中尚未產生對應的根節點區塊的一特定分支,透過競爭方式或一預定規則,成為該特定分支的種子裝置。
  18. 如申請專利範圍第17項所述之區塊鏈系統,其中該第一區塊鏈裝置更用以: 當該第二區塊鏈裝置所在的該群組中的區塊鏈裝置數量已達一上限值,轉而選擇與自身的網路傳輸延遲次低的一第三區塊鏈裝置加入相同的群組。
  19. 如申請專利範圍第11項所述之區塊鏈系統,其中該第一區塊鏈裝置更用以: 判斷該狀態資訊是否符合一區塊鏈合併條件; 當該狀態資訊符合該區塊鏈合併條件,搜尋一第二分支,並在該第一分支的區塊中寫入一合併指令,其中該第二分支係由該些群組中的一第二群組進行驗證; 回應來自該第二群組的一合併確認指令,控制該第一分支在一特定區塊數量後,與該第二分支結合成一新區塊鏈,該新區塊鏈由一合併後群組進行驗證,該合併後群組包括該第一群組以及該第二群組;以及 延長該新區塊產生間隔時間來產生該新區塊鏈的區塊。
  20. 如申請專利範圍第19項所述之區塊鏈系統,其中該區塊鏈合併條件包括以下條件(1)以及條件(2)至少其一: (1)驗證該區塊鏈或該些分支之一的算力低於一第二算力閥值,以及 (2)驗證該區塊鏈或該些分支之一的區塊鏈裝置數量低於一第二裝置數量閥值。
TW107105498A 2018-02-14 2018-02-14 區塊鏈系統及應用其的方法 TWI659373B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107105498A TWI659373B (zh) 2018-02-14 2018-02-14 區塊鏈系統及應用其的方法
CN201810228501.3A CN110163600B (zh) 2018-02-14 2018-03-19 区块链系统及应用其的方法
US16/135,739 US10795857B2 (en) 2018-02-14 2018-09-19 Blockchain system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107105498A TWI659373B (zh) 2018-02-14 2018-02-14 區塊鏈系統及應用其的方法

Publications (2)

Publication Number Publication Date
TWI659373B true TWI659373B (zh) 2019-05-11
TW201935352A TW201935352A (zh) 2019-09-01

Family

ID=67348035

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107105498A TWI659373B (zh) 2018-02-14 2018-02-14 區塊鏈系統及應用其的方法

Country Status (3)

Country Link
US (1) US10795857B2 (zh)
CN (1) CN110163600B (zh)
TW (1) TWI659373B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577694B (zh) * 2017-07-14 2020-04-24 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
US10862894B2 (en) * 2018-06-11 2020-12-08 FogChain Inc. Decentralized access control for authorized modifications of data using a cryptographic hash
US10637644B1 (en) * 2018-12-21 2020-04-28 Capital One Services, Llc System and method for authorizing transactions in an authorized member network
US10861008B2 (en) 2018-12-21 2020-12-08 Capital One Services, Llc System and method for optimizing cryptocurrency transactions
CN109902091B (zh) * 2019-02-21 2021-08-10 腾讯科技(深圳)有限公司 数据区块在区块链上记录的方法、领导记账节点和介质
AU2019203864B2 (en) 2019-03-18 2021-01-21 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
US10938750B2 (en) 2019-03-18 2021-03-02 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
JP6880227B2 (ja) 2019-03-18 2021-06-02 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 合意システムのダウンタイムの回復
JP7137077B2 (ja) * 2019-04-02 2022-09-14 日本電信電話株式会社 ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム
US11115188B2 (en) * 2019-04-29 2021-09-07 Advanced New Technologies Co., Ltd. Blockchain-based data processing method, apparatus, and blockchain node
US11394718B2 (en) * 2019-06-10 2022-07-19 Microsoft Technology Licensing, Llc Resolving decentralized identifiers using multiple resolvers
US11108820B2 (en) * 2019-06-16 2021-08-31 Moac Blockchain Tech Inc Apparatus and method for distinguishing between legitimate and malicious branches of a split blockchain
US11645398B2 (en) 2019-08-02 2023-05-09 EMC IP Holding Company LLC System and method for data registration and access
US11797564B2 (en) * 2019-08-02 2023-10-24 EMC IP Holding Company LLC System and method for data registration
US10762228B2 (en) 2019-08-30 2020-09-01 Alibaba Group Holding Limited Transaction scheduling method and apparatus
CN110598416B (zh) * 2019-08-30 2020-12-04 创新先进技术有限公司 交易调度方法及装置
CN110661867B (zh) * 2019-09-25 2021-07-23 东北大学 一种基于改进工作量证明与权益证明的区块链共识方法
US11818246B2 (en) * 2019-12-06 2023-11-14 Onclave Networks Blockchain data structures and systems and methods therefor for multipath transaction management
KR20210075654A (ko) * 2019-12-13 2021-06-23 현대자동차주식회사 블록체인 생성 시스템 및 그 운용 방법
CN111127017B (zh) * 2019-12-27 2022-11-08 四川星际荣威科技有限公司 基于p2p存储网络和多层架构的区块链全分片方法及装置
CN111339187B (zh) * 2020-02-20 2023-05-09 百度在线网络技术(北京)有限公司 基于智能合约的数据处理方法、装置、设备和存储介质
CN111683117B (zh) * 2020-05-11 2021-12-10 厦门潭宏信息科技有限公司 一种方法、设备及存储介质
US11321298B1 (en) 2020-12-01 2022-05-03 International Business Machines Corporation Automated merge of DLT networks
CN112926053B (zh) * 2021-01-26 2023-11-28 上海树图区块链研究院 无许可区块链系统中恶意区块的探测方法、系统及p2p网络
CN114916065A (zh) * 2021-02-08 2022-08-16 索尼公司 电子设备、无线通信方法和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200837562A (en) * 2006-09-15 2008-09-16 Sandisk Corp Non-volatile memory and method for class-based update block replacement rules
CN105488675A (zh) * 2015-11-25 2016-04-13 布比(北京)网络技术有限公司 一种区块链的分布式共享总账构建方法
CN107481146A (zh) * 2017-10-13 2017-12-15 深圳市招股科技有限公司 一种基于区块链安全高效的金融交易方法
CN107666388A (zh) * 2016-07-28 2018-02-06 郑珂威 基于完全同态加密方法的区块链信息加密方法
CN107679863A (zh) * 2017-09-19 2018-02-09 中国银行股份有限公司 一种区块链系统及快速验证区块的方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3727179B2 (ja) * 1998-09-21 2005-12-14 日立機材株式会社 ブロックチェン
US9853819B2 (en) 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
US11270298B2 (en) 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US9608829B2 (en) 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
US10158492B2 (en) 2015-02-25 2018-12-18 Guardtime Ip Holdings Limited Blockchain-supported device location verification with digital signatures
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US10269012B2 (en) 2015-11-06 2019-04-23 Swfl, Inc. Systems and methods for secure and private communications
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
CN107045518A (zh) * 2016-10-18 2017-08-15 北京天德科技有限公司 一种区块链的扩展设计方法
CN106528775B (zh) * 2016-10-28 2020-01-03 济南大学 支持逻辑多链的私有区块链运行支撑系统及其工作方法
TWM543413U (zh) * 2016-12-05 2017-06-11 Taiwan United Financial Technology Co Ltd 利用區塊鏈技術進行交易的網路借貸平台
US11095432B2 (en) * 2017-04-05 2021-08-17 Samsung Sds Co., Ltd. System for processing data based on blockchain and operating method thereof
US10922692B2 (en) * 2017-04-05 2021-02-16 Samsung Sds Co., Ltd. Method for calculating confirmation reliability for blockchain based transaction and blockchain network monitoring system for performing the method
US10601861B2 (en) * 2017-04-28 2020-03-24 International Business Machines Corporation Blockchain tracking of virtual universe traversal results
CN107276762B (zh) * 2017-05-08 2019-08-30 飞天诚信科技股份有限公司 一种多协议区块链的工作方法及装置
US10909195B2 (en) * 2018-01-05 2021-02-02 International Business Machines Corporation Socially enabled provider/consumer consensus
US10701054B2 (en) * 2018-01-31 2020-06-30 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
US20190295049A1 (en) * 2018-03-22 2019-09-26 NEC Laboratories Europe GmbH System and method for secure transaction verification in a distributed ledger system
US20190394267A1 (en) * 2018-06-26 2019-12-26 Anami Holdings, Inc. Dynamic voting nodes in blockchain networks
US20190391979A1 (en) * 2018-06-26 2019-12-26 Anami Holdings, Inc. Using segments to improve access speed in blockchain networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200837562A (en) * 2006-09-15 2008-09-16 Sandisk Corp Non-volatile memory and method for class-based update block replacement rules
CN105488675A (zh) * 2015-11-25 2016-04-13 布比(北京)网络技术有限公司 一种区块链的分布式共享总账构建方法
CN107666388A (zh) * 2016-07-28 2018-02-06 郑珂威 基于完全同态加密方法的区块链信息加密方法
CN107679863A (zh) * 2017-09-19 2018-02-09 中国银行股份有限公司 一种区块链系统及快速验证区块的方法
CN107481146A (zh) * 2017-10-13 2017-12-15 深圳市招股科技有限公司 一种基于区块链安全高效的金融交易方法

Also Published As

Publication number Publication date
US10795857B2 (en) 2020-10-06
US20190251187A1 (en) 2019-08-15
CN110163600B (zh) 2022-12-27
TW201935352A (zh) 2019-09-01
CN110163600A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
TWI659373B (zh) 區塊鏈系統及應用其的方法
US11522706B2 (en) Method and system for publicly verifiable proofs of retrievability in blockchains
Ferdous et al. A survey of consensus algorithms in public blockchain systems for crypto-currencies
JP6955026B2 (ja) 並列処理ブロックチェーントランザクションのためのシステムおよび方法
JP7184959B2 (ja) ネットワーク内の分散データベースのための方法及び装置
Hazari et al. A parallel proof of work to improve transaction speed and scalability in blockchain systems
EP3610436B1 (en) Rapid distributed consensus on blockchain
US11625680B2 (en) Settling obligations via netting transactions
CN109964446B (zh) 一种基于投票的共识方法
US9646029B1 (en) Methods and apparatus for a distributed database within a network
KR101827373B1 (ko) 채굴 제한을 위한 합의 알고리즘을 포함하는 블록윈도우 모듈 및 관리 서버 그리고 가상화폐 거래 시스템 및 방법
TWI727467B (zh) 聯盟鏈的可信度驗證方法、系統、裝置及設備
JPWO2018158936A1 (ja) ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム
KR102050087B1 (ko) 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법
KR102537774B1 (ko) 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들
KR102214849B1 (ko) 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법
KR20190068799A (ko) 서비스 존 기반의 계층적 합의 방법 및 장치
WO2020160391A1 (en) An efficient, environmental and consumer friendly consensus method for cryptographic transactions
WO2020082213A1 (zh) 一种网络可扩展性区块链实现方法
WO2021109718A1 (zh) 一种基于区块链系统的验证方法及装置
US11625260B2 (en) Method for enhancing throughput in blockchain network
US11831749B1 (en) Method and system for utilizing the infrastructure of a blockchain to enhance the degree of reliability of another blockchain
KR102229923B1 (ko) 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기
US20220239482A1 (en) Method for verifying activity information by means of blockchain
Khan et al. A Scalable Blockchain Consensus Model