TW202242691A - 支援區塊鍊的連網電腦、在分散式系統中偵測錯誤的方法及非暫態電腦可讀儲存媒體 - Google Patents

支援區塊鍊的連網電腦、在分散式系統中偵測錯誤的方法及非暫態電腦可讀儲存媒體 Download PDF

Info

Publication number
TW202242691A
TW202242691A TW111114208A TW111114208A TW202242691A TW 202242691 A TW202242691 A TW 202242691A TW 111114208 A TW111114208 A TW 111114208A TW 111114208 A TW111114208 A TW 111114208A TW 202242691 A TW202242691 A TW 202242691A
Authority
TW
Taiwan
Prior art keywords
mentioned
blockchain
blockchain network
permissioned
permissioned blockchain
Prior art date
Application number
TW111114208A
Other languages
English (en)
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 日商三菱電機股份有限公司
Publication of TW202242691A publication Critical patent/TW202242691A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

本發明揭露用以在分散式系統中偵測及移除錯誤的方法及系統,分散式系統以許可式區塊鍊網路的形式執行。錯誤偵測包含編譯並執行所有許可式區塊鍊網路的節點共用的智慧合約。智慧合約被配置以從一系列操作中執行至少一個,上述一系列操作包含:(1)將交易附加到許可式區塊鍊網路中,交易包含指示了許可式區塊鍊網路的節點間訊息交換的紀錄;(2)偵測節點在達成共識時的惡意行為;(3)當偵測到惡意行為時,撤銷節點的存取;此外,一旦偵測到惡意行為(及相應的惡意節點),許可式區塊鍊網路的節點藉由執行分散式計算程式達成共識。

Description

支援區塊鍊的連網電腦、在分散式系統中偵測錯誤的方法及非暫態電腦可讀儲存媒體
本發明是關於分散式計算系統(distributed computing system),特別是關於用以偵測及移除在基於區塊鍊(block chain)的可歸責(accountable)分散式計算系統中的錯誤之方法及系統。
分散式計算系統為在地理上不同位置的連接網路的電腦(連網電腦)的群組(group)。分散式計算系統的元件可以包含多個節點,每個節點為單一的連網電腦,並且上述節點經由與彼此交換訊息以達到一個共同目標,例如執行計算(例如ATM交易)。在一些情況下,元件間必須為了任何將由分散式計算系統執行的重要計算達成共識(consensus)。反過來說,這依賴於分散式計算系統中的兩個重要特性:元件間的信任(trust),以及對於元件錯誤(failure)的穩健性(robustness)。元件必須信任其他元件並不是惡意地(maliciously)行動。若是彼此沒有信任,分散式計算系統將無法達成共識或是執行重要計算。在這種情況下,最好的情況是元件可以捨棄可疑的訊息,或是可能從惡意的輸入遇到可復原(recoverable)的錯誤;最壞的情況是元件由於來自惡意地行動的受信任元件的惡意輸入而發生錯誤。
同樣地,分散式計算系統必須對於元件具有穩健性,因為分散式計算系統包含的元件數量遠大於集中式計算系統(centralized system)。分散式計算系統中信任的必要性是許多惡意行為者試圖利用的漏洞(vulnerability)來源。
一種本領域通常知識者習知,用以確保分散式計算系統(例如以上討論的分散式計算系統)容忍惡意參與者或元件錯誤,並且在惡意參與者或元件錯誤存在的情況下,取得計算的進展的方法被稱為拜占庭容錯(Byzantine Fault Tolerance (BFT))。雖然BFT方法的目標為使分散式計算系統對於拜占庭錯誤(Byzantine fault)更有彈性(resilient),另一種增加分散式計算系統的穩健性的方法為移除造成拜占庭錯誤的元件。這被稱為可歸責性(accountability),是分散式計算系統的一個性質,用以實現偵測(detection)、辨識(identification),以及隔離(isolation)分散式計算系統中的惡意參與者。可歸責性提供了額外的優勢,例如向分散式計算系統中的參與者賦予不可推卸的(non-repudiable)責任,特別是當參與者是其中一個惡意參與者時,以及進一步增加分散式計算系統中的透明度(transparency)。可歸責性進一步依賴系統的可稽核性(auditability),並且在本技術領域中,對於系統中惡意參與者及確保責任制的問題的習知解決方法包含龐大的複雜度(complexity),並且需要很高的計算成本來實施。
可歸責性由以下三個性質組成:預防錯誤(fault prevention):藉由增加惡意行為的成本(cost)遏止惡意行為。錯誤容忍(fault tolerance):偵測並隔離錯誤,並且防止錯誤擴散到系統的其他部分。錯誤移除(fault removal):從系統移除不良行為(misbehaving)的行動者(actor),以限制他們對於系統其他部分的影響。
為了達到可歸責性,每個參與者的行動必須是可稽核的(auditable)。系統的可歸責性需要安全的(secure)、防篡改(tamper resistant)的、篡改明顯(tamper evident)的,且透明的稽核紀錄(audit log)(也被稱為可交換安全紀錄(secure logging interchangeably)),以及觀察元件中程序(process)的能力。雖然稽核紀錄的嚴格要求是被設計來增加稽核紀錄的可信度的,許多先前技術的解決方式依賴於集中式方法來儲存與存取這些稽核紀錄。這是一個缺點,因為這樣做是將信任的問題從稽核紀錄本身轉移到稽核紀錄的管理員(administrator)上。一些先前技術用以確保安全紀錄的方法包含使用數位帳冊(digital ledger)以保護及儲存稽核資料,例如稽核紀錄。在這樣的方法中,稽核資料對於成員是透明的,並且由分散式計算系統本身的元件保護。
數位帳冊是儲存於電腦中的交易(transaction)的紀錄。交易代表改變系統的狀態。因此,數位帳冊代表了系統(例如金融系統)的狀態,或是通用分散式系統的狀態。數位帳冊可以在集中式系統中執行,上述集中式系統中保存所有的交易紀錄,並且不需要其他系統使用自己的紀錄同意就可以修改這個紀錄,並且也不會對於由上述集中式系統造成的改變產生可稽核的(auditable)足跡(trail)。另一種方法為一種去中心化(decentralized)或是分散式方法,這種方法允許保存交易的紀錄,以及執行在多個系統間決定共識的方法。這種方法十分有用,因為這種方法對於任何系統(包含分散式系統)創造了進行自私行為的不利誘因(disincentive),並且以能夠在分散式計算系統中執行的方式改變帳冊。這樣做可以增加分散式計算系統中使用者的信任,並且因為以上原因這樣的方法是有用的。
數位帳冊技術的一個範例為區塊鍊(blockchain)網路。區塊鍊是一種僅追加(append-only)資料結構,由使用鍊接串列(linked list)結構或是相似結構連接在一起的區塊組成。區塊是數位訊息的容器,由標頭(header)、元資料(metadata),以及交易的清單組成。標頭及元資料可以包含有關於軟體版本、用以壓縮需要儲存的資料量的加密雜湊(hash),以及時間戳記(timestamp)等的訊息。交易是數位代幣(token)的所有交易的清單,並且有可能被雜湊以減少需要儲存的資料量。區塊列出所有從一個使用者到另一個使用者的交易。使用者間的交易經由使用者相應的數位位址執行。
區塊鍊資料結構有助於使包含區塊鍊網路的節點分散式系統如一個單一電腦般動作,並實現去中心化計算。雖然集中式計算系統中的計算很少紀錄及稽核(audit),去中心化計算的結果會以區塊鍊交易的形式被紀錄在區塊鍊上,因此增加計算中的信任。在區塊鍊領域中,描述去中心化計算的電腦程式被稱為智慧合約(smart contract)。
在區塊鍊領域中,智慧合約可以被定義為可執行的電腦程式,上述電腦程式定義了一組必須在智慧合約的執行上強制執行的規定、資料,以及關係。智慧合約是不可改變的(immutable),也就是說,一旦智慧合約被加入它們所定義的區塊鍊網路的分散式帳冊結構就無法被修改(manipulate)。進一步而言,區塊鍊的節點對於智慧合約的調用(invocation),使得交易在之後被紀錄在區塊鍊網路上。在一些實施方式中,相關的智慧合約的群組(group)被稱為鍊碼(chain code),用以在區塊鍊網路上部署相關的智慧合約。
區塊鍊網路的一個範例為比特幣(Bitcoin network)網路。本領域習知的區塊鍊網路與集中式網路相比,具有較高延遲(latency)、較低輸送量(throughput),以及交易的高計算成本的問題,這些問題與由多個節點執行計算的稽核有關。
另一個區塊鍊的範例為許可式區塊鍊網路(permissioned blockchain network),在後續內容也被稱為許可式區塊鍊。許可式區塊鍊網路要求確認每個想要成為許可式區塊鍊網路一部份的節點的存取權限(access right)。許可式區塊鍊網路通常包含在區塊鍊網路頂層執行的控制層(control layer)。許可式區塊鍊網路中的成員能夠藉由撤銷(revoke)它們的許可輕易地從網路被移除。在許可式區塊鍊網路中,智慧合約必須由所有許可式區塊鍊網路的成員認可(approve)。因此,智慧合約在許可式區塊鍊網路中就如受信任的網路服務一般,並且作為確保許可式區塊鍊網路中的節點的錯誤容忍與移除能力的工具被使用。上述節點可以包含連網電腦,包含全功能(fully functional)計算系統的所有能力。這些能力除了其他事項外包含全運算通用作業系統(fully operational general-purpose operating system)。
現代的通用計算系統為單體式核心(monolithic kernel),其中在底層電腦硬體上,被稱為系統呼叫(systems call (syscall))的高層虛擬介面作為應用程式介面(application programming interface (API))被提供。單體式核心具有兩個目的:使程式開發人員不需要擔心底層硬體的低層細節。以及藉由確保在頂層執行的程序不會干擾其他程序或是核心本身,向計算系統提供安全性。在頂層執行的程序構成了使用者空間,並包含記憶體被分配用來執行應用程式及函式庫(library)的部份,並且經由系統呼叫提供對於核心的存取。另一方面,核心(例如單體式核心)駐留(reside)在被稱為核心空間(kernel space)的記憶體部份中。除了提供系統呼叫外,現代核心也以API的形式提供使用者用以兼容(incorporate)分析(profile)及事件紀錄的機制,或是實現核心中的可觀察性(observability),上述API被稱為核心監視器(kernel instrumentation)。單體式核心的範例包含主要的作業系統,例如Linux ®及OpenBSD ®。單體式核心提供程式執行安全及受信任的環境的能力,以及經由系統呼叫對於系統資源的限制或是授權(privilege)存取還沒有完全被探討完,尤其是在分散式計算系統領域。
目前為止,沒有辦法在分散式計算系統中引入可歸責性,而不需要使網路中的一些節點具有較高權力,或是不需要讓受信任的節點(將使整個系統傾向集中式的框架)負責紀錄或是監控來自分散式計算系統中參與者或節點的稽核資料。此外,在可歸責性中具有較高權力的節點只需要負責維護網路中的信任的問題依然存在。可歸責性的問題也是其中一個不可否認的事實。在分散式計算系統中的每個節點需要是唯一可辨識的(uniquely identifiable),以使得節點的行動是負責、受信任的,並且具有不可推卸的責任。
因此,需要一種用以控制節點的操作的有效系統(efficient system),或是以最佳化(optimal)及可行的方式在分散式計算系統中提供強化的安全性、可稽核性、可歸責性,以及信任的系統。
一些實施例的目標為提供穩健(robust)且錯誤容忍的分散式計算系統,同時也確保交易以及參與者的可歸責性、信任,以及可稽核性。
為此,本發明的一些實施例是基於對由許可式區塊鍊網路提供的安全紀錄、防篡改,以及稽核資料、存取控制與去中心化結構的可驗證性(verifiability)等優勢的考慮。此外,在此揭露的多個實施例借助智慧合約在辨識、隔離,以及預防惡意參與者威脅整個分散式計算系統的完整性方面所提供的優勢,以及使用許可式區塊鍊結構允許能夠撤銷惡意參與者的權限(例如讀取與寫入相關權限),以達成錯誤移除的目的。一些實施例也經由系統呼叫使用了核心層監視器,以進一步唯一地辨識惡意節點以及提供更好的整體系統透明度及可稽核性。
一些實施例提供一種基於區塊鍊的方法,藉由允許在分散式計算系統中辨識有問題的系統、辨識錯誤,以及移除惡意參與者,且不需要使系統的一些節點處理任何較高的網路權限,在分散式計算系統中引入可歸責性。
多個實施例基於以下三個元件提供了多種系統及方法:(1)將智慧合約視為受信任的網路服務使用;(2)使用參與者分類;以及(3)經由許可式區塊鍊網路提供的許可技術對分散式計算系統中的使用者進行許可。
一些實施例有關於:在許可式區塊鍊網路中智慧合約必須在參與者之間以原始碼(source code)的形式共享,並因此在不需要使節點具有較高網路權限的許可式區塊鍊網路中是受信任的。因為這樣的信任,智慧合約能夠被用以作為紀錄稽核資料的機制,上述稽核資料之後會在許可式區塊鍊網路上發佈,並受所有參與者信任。每個參與者的稽核資料經由使用核心層監視器取得,上述核心層監視器由讓使用者能夠觀察及紀錄核心中的程序及資料結構的API提供。因為紀錄及發佈受所有參與者信任的稽核資料增加了惡意行為的成本,所以這有助於預防錯誤。
一些實施例有關於:在區塊鍊系統中,每個交易必須由一些屬於參與者的私鑰(private key)簽署。這是除了使用許可式區塊鍊框架以外,可以被用以滿足錯誤容忍特性的設計決定,因為在許可式區塊鍊網路中的參與者必須將他們的身份(identity)紀錄在系統中;如此可以賦予不良行為者(misbehavior)不可推卸的責任。最後,錯誤移除在許可式區塊鍊系統中是簡單的,因為違規(offending)或是惡意的節點可以藉由撤銷它們參與區塊鍊網路(例如,許可式區塊鍊網路)的許可輕易地被移除。
一些實施例有關於:使用許可式區塊鍊網路稽核節點的操作,以及使用許可式區塊鍊網路作為分散式系統中節點的許可控制框架,能夠大幅增加分散式計算系統的信任及穩健性,並且這是不可能在區塊鍊網路上做到的。
一些實施例有關於:發佈分散式計算系統中節點活動的可驗證(verifiable)紀錄,與在區塊鍊網路中每個節點上重複計算相比,具有較小的計算量。因此,在此揭露的系統及方法在計算成本方面提供了很大的節省,以及增加提供穩健、可歸責、安全,以及值得信賴的計算系統的效率。
根據一些實施例,提供一種系統及方法,用以執行具有錯誤偵測及移除能力的一分散式計算系統。上述分散式計算系統包含至少一個支援區塊鍊的連網電腦,上述連網電腦經由一許可式區塊鍊網路與一或多個不同的連網電腦通訊。上述支援區塊鍊的連網電腦包含通用系統元件,上述通用系統元件包含至少一個處理器、一記憶體、儲存在上述記憶體中的一作業系統,以及儲存在上述記憶體中的一或多個指令,上述一或多個指令由上述處理器執行,以運行多個操作。上述記憶體可以被分成一核心空間及一使用者空間。上述記憶體可以進一步儲存上述指令,當上述指令由上述處理器執行時,致使上述支援區塊鍊的連網電腦編譯並執行一智慧合約。上述智慧合約可以為一電腦程式,在所有作為許可式區塊鍊網路的一部份的上述連網電腦之間共用。上述智慧合約包含用以定義一系列操作的一組規定,上述一系列操作包含以下至少其中之一:將多筆交易追加到上述許可式區塊鍊網路中,其中上述交易包含多筆紀錄,上述紀錄指示了存取上述許可式區塊鍊網路的上述連網電腦之間的訊息交換、偵測上述支援區塊鍊的連網電腦在與其他上述許可式區塊鍊網路的參與者達成共識時的惡意行為,以及當偵測到上述惡意行為時,撤銷上述支援區塊鍊的連網電腦對於上述許可式區塊鍊網路的存取,或其組合。上述惡意行為的偵測是基於上述支援區塊鍊的連網電腦的核心監視器,並由上述智慧合約致使。此外,一旦上述智慧合約被編譯及執行,將執行一分散式程式以與其他存取上述許可式區塊鍊網路的其他連網電腦達成共識。
一些實施例有關於:參與上述許可式區塊鍊網路的不同的上述連網電腦可以被分類成以下兩種參與者中至少其中一種:(1)觀察者(observer),及(2)執行者(operator)。觀察者為上述許可式區塊鍊網路的參與者或節點,被要求執行至少一個區塊鍊節點,以複製其中包含稽核資料的區塊鍊,上述稽核資料來自位於特定(子)網路中的參與者。觀察者藉由為上述許可式區塊鍊網路提出(propose)一或多個交易來參與達成共識的過程。節點的另一種類型為執行者節點,藉由進行(conduct)交易主動地參與達成共識的過程。
一些實施例有關於:上述智慧合約被配置以基於對一或多個稽核紀錄的分析,偵測上述許可式區塊鍊網路中節點的上述惡意行為,上述一或多個稽核紀錄由上述支援區塊鍊的連網電腦產生,以回應智慧合約的執行及上述許可式區塊鍊網路相應的交易。
一些實施例有關於:當上述支援區塊鍊的連網電腦試圖與不同的節點或連接上述許可式區塊鍊網路的電腦傳送訊息的不同值時,代表發生上述惡意行為。
一些實施例有關於:上述智慧合約可以以原始碼檔案或受信任的二進位檔案至少一者的形式,分佈到上述許可式區塊鍊網路的節點。
一些實施例的目標為將上述智慧合約部署為核心監視器的一部份,在上述支援區塊鍊的連網電腦上執行。上述核心監視器由稽核的紀錄結果執行,上述稽核由要求使用上述智慧合約的不同類型的系統呼叫執行,上述智慧合約之後會發佈到上述許可制區塊鍊網路上。當紀錄藉由檢查有關於一或多種上述系統呼叫要求的稽核資料,指示使用者空間程式的惡意改動(alteration)時,辨識並隔離上述許可制區塊鍊網路的惡意參與者。
此外,在一些實施例中,藉由撤銷所有與上述惡意參與者有關的許可,將上述惡意參與者從上述許可制區塊鍊網路移除。
在以下描述中,多個特定細節為了解釋的目的被陳述以提供對於本發明的全面了解。然而,對於本領域的技術人員來說,能夠明顯的了解本發明可以不使用所描述的特定細節執行。在其他情況下,裝置及方法以方塊圖的方式展示,以避免模糊本發明的內容。
在本說明書及請求項使用的用語「舉例來說」、「比如說」及「例如」,以及動詞「包含」、「具有」、「包括」,以及它們的其他動詞型式,當與一或多個元件或其他項目的清單一起使用時,都應該被理解為開放式的,代表清單並不應該被理解為不包含其他額外的元件或項目。用語「基於」代表至少部分基於。此外,應該理解在此使用的用語及術語的目的在於描述,而不應該被理解為限制。本說明書中使用的任何標題只是為了方便,而不具有法律或限制效力。
第1A圖是根據本發明一些實施例的方塊圖,展示用以錯誤偵測及移除的一許可式區塊鍊系統100的架構。許可式區塊鍊系統100包含一或多個區塊鍊網路,例如一區塊鍊網路112,以及一區塊鍊網路120。許可式區塊鍊系統100更包含多個節點,例如一節點114、一節點116、一節點118,以及一節點122。節點114、節點118,以及節點122與區塊鍊網路120有關。節點116與區塊鍊網路112有關,並且是區塊鍊網路112的一部份。此外,每個連網電腦反過來說也可以是支援區塊鍊的連網電腦。
如第1A圖所示,節點可以是多個網路的一部份。舉例來說,節點114是區塊鍊網路112及區塊鍊網路120的一部份。本領域的通常知識者應該可以理解區塊鍊網路112及區塊鍊網路120只是因為特定實施例的目的而以區塊鍊網路的型式展示。用語「區塊鍊」代表一種執行分散式計算網路的網路架構,對於分散式計算網路內及涉及分散式計算網路的操作及交易具有去中心化控制。因此,節點114、節點116、節點118,以及節點122可以為這種分散式計算網路(其中一種特殊形態是區塊鍊網路)的節點,並具有所有支援這種計算網路的技術。此外,在一些實施例中,上述區塊鍊網路為許可式區塊鍊網路,在區塊鍊層(blockchain layer)的上面具有一存取層(access layer)。上述存取層定義了作為上述許可式區塊鍊網路的一部份的不同節點所能獲得的多種許可。
許可式區塊鍊網路架構本身具有許多優勢,例如向稽核紀錄提供安全紀錄功能(facility),並提供基於信任的且安全的分散式計算架構,上述稽核紀錄經由使用分離的區塊鍊主幹(backbone)與在上述許可式區塊鍊網路上的節點相關聯。同時,上述許可式區塊鍊架構提供錯誤容忍、錯誤預防,以及錯誤移除能力,使得上述許可式區塊鍊架構在執行分散式(去中心化)計算系統上是一個高度可歸責的架構。
許可式區塊鍊系統100的節點可以被稱為是系統的參與者,並且可以被分成兩大類:觀察者(observer)及執行者(operator)。此外,在許可式區塊鍊系統100中還可以有排序節點(ordering node)及輕量型客戶(lightweight client),這在以下提供的多個實施例中會進行描述。
觀察者是不需要創造交易的節點,但是負責偵測、辨識,以及移除系統的惡意參與者。觀察者也對於在許可式區塊鍊系統100中達成共識做出貢獻,並且能夠複製許可式區塊鍊系統100的區塊鍊骨幹,觀察者經由許可式區塊鍊系統100的區塊鍊骨幹,對許可式區塊鍊系統100的參與者執行稽核。在第1A圖中,節點114是一個觀察者節點,運行單一節點(作為兩個區塊鍊子網路(即,區塊鍊網路112及區塊鍊網路120)的一部份)。觀察者藉由偵測許可式區塊鍊系統100中的錯誤,以及辨識許可式區塊鍊系統100的惡意參與者,增加許可式區塊鍊系統100的錯誤容忍。
許可式區塊鍊系統100中的另一種節點類型為執行者。執行者是建立用以納入區塊鍊系統(例如,許可式區塊鍊系統100)的交易的節點。執行者(節點)需要通過紀錄它們在許可式區塊鍊系統100上的操作來證明它們的可信任度(trustworthiness),以便使用智慧合約進行公開稽核。操作者藉由向許可式區塊鍊系統100回報它們的稽核資料,可以增加許可式區塊鍊系統100的錯誤容忍。參考第1A圖,節點116、節點118,以及結點122為執行者節點,連接區塊鍊(子)網路112及區塊鍊(子)網路120。
在一些實施例中,許可式區塊鍊系統100可以包含一分散式系統,在上述分散式系統中,並不完全信任彼此的參與者可以信任並參與其中。上述分散式系統的一個範例為組織內網路(intra-organizational network),由一公司(corporation)及上述公司的子公司(subsidiary)組成,這在第1B圖中有進一步的說明。
第1B圖是根據本發明一些實施例,包含不同類型節點的一許可式區塊鍊系統126的方塊圖。許可式區塊鍊系統126包含屬於一個組織的多個參與者(或是節點),上述組織由一定界框(bounding box)138(也被稱為組織138)代表。此外,一定界框136(也被稱為上級組織136)代表一上級組織(parent organization),由以下兩個節點組成:一觀察者節點124,以及向許可式區塊鍊系統126提交稽核資料的執行者節點128(或常規的(regular)節點)。因為觀察者節點124及執行者節點128都在上級組織136中,所以能夠彼此通訊。組織138也包含一附屬組織(subsidiary organization)134,由節點130及節點132兩個節點組成,節點130及節點132的操作會被稽核並提交到許可式區塊鍊系統126。第1B圖只示意說明了第1A圖的許可式區塊鍊系統100的一種實施環境(enabling environment)。其他實施的範例(未標示於圖中)包含在許可式區塊鍊系統100中能夠被所有參與者信任的參與者的子集合的實時(real-time)並自動的稽核。許可式區塊鍊系統100中的每個參與者可以為以上描述過的四種類型的其中之一:觀察者、執行者、排序者(orderer),以及輕量型客戶。執行者已經在之前配合第1A圖描述過了。輕量型客戶在接下來第1C圖的說明中會進行描述。
第1C圖是根據本發明一些實施例,包含一輕量型客戶節點的一許可式區塊鍊系統140的方塊圖。許可式區塊鍊系統140包含兩個輕量型客戶節點,例如輕量型客戶142及輕量型客戶144。輕量客戶144更包含一嵌入式(embedded)裝置146。
輕量型客戶142及輕量型客戶144可以包含任何現代電腦,例如嵌入式電腦、筆記型電腦(laptop)、手機、智慧型手機、平板電腦(tablet)、智慧手錶、可穿戴式電腦(wearable computer)、銷售點(point of sale (POS))端、資訊站(kiosk)、路由(routing)裝置、在發電廠(power plant)的監視端、電錶(electronic meter),以及相似物。一些實施例有關於:許多現代電腦是具有有限計算能力(computational power)的嵌入式裝置(例如輕量型客戶144與嵌入式裝置146),使得上述嵌入式裝置無法儲存本身所處的區塊鍊的完整複製。然而,使用許可式區塊鍊系統140的實施例及架構,即使這些具有低計算能力的輕量型系統也可以是完全地受信任的、安全的,以及有效地監視任何惡意行為。這是由於在本發明的多個實施例中所揭露的,於許可式區塊鍊系統100(或是等效地,許可式區塊鍊系統140) 中執行智慧合約及核心監視器技術的組合而能夠達到。
第1D圖是根據本發明一些實施例,包含一智慧合約152的一許可式區塊鍊系統148的方塊圖。許可式區塊鍊系統148包含一節點150,節點150可以為一支援區塊鍊的連網電腦,能夠與其他連網電腦(在此未標示)通訊。節點150被配置以編譯及執行智慧合約152,作為對於節點150的稽核手續(formality)的一部份。智慧合約152可以有關於一程序154。智慧合約152可以被配置以基於節點150所產生之一或多個稽核紀錄的分析,偵測與節點150有關的惡意行為,,以回應智慧合約152的執行及許可式區塊鍊網路148的相應的交易。
為此,當節點150向存取許可式區塊鍊網路148的其他不同節點(或是連網電腦)傳送相同訊息的不同值時,智慧合約152被配置以偵測節點150的惡意行為。
多個實施例藉由將智慧合約152的原始碼,或是有關於已編譯過的智慧合約152的受信任二進位檔案,分佈給許可式區塊鍊網路148的成員(例如節點150),使得智慧合約152在許可式區塊鍊網路148上部署。當智慧合約152的原始碼被分佈到許可式區塊鍊網路148的所有節點時,每個上述節點可以在區域內(locally)編譯智慧合約152。如此確保智慧合約如一個受信任、透明、防篡改、穩健的工具般行動,以保證許可式區塊鍊網路148的錯誤容忍。這是因為智慧合約152本身是不可改變的,所以有關於在許可式區塊鍊網路148上偏離允許的可接受(acceptable)規則、許可,或是操作的任何惡意行為會發生在低層(例如在核心層),大幅增加惡意行為的成本。
此外,有關於程序154的智慧合約152可以被用以藉由定義一組規則來稽核程序154,上述規則對有關於程序154的資料定義了可接受的資料類型、操作、依附關係(dependency)以及封裝訊息(packaging information)。因此,程序154的每個調用(invocation)也會呼叫(invoke)智慧合約152,並執行智慧合約152的相應的規則。藉由在節點150的核心層執行監視器(instrumentation),任何規則上的偏差可以被辨識並紀錄在許可式區塊鍊網路148上。稽核這些紀錄下的訊息可以在節點150的一部份上偵測惡意行為的嘗試。因此,節點150可以被辨識出來並被隔離,以及有關於節點150的許可可以被進一步地撤銷以從許可式區塊鍊網路148完全移除惡意節點。
在一些實施例中,智慧合約152包含對基於原則執行(policy enforcement)的網路所制定的規則,上述規則藉由觸發區域事件(local event)定義節點的適當配置(configuration)。對於觸發的回應紀錄在基於智慧合約152中所制定的規則的區塊鍊上。
為此,節點150可以為至少一個執行者節點或觀察者節點(其中執行者節點及觀察者節點的功能已在之前討論過)。當節點150為觀察者節點時,節點150可以被配置以複製本身所處的所有被許可的(子)網路的區塊鍊。節點150可以如之前對第1A圖所描述的,為一或多個許可式區塊鍊(子)網路的一部份。當節點150為多個許可式區塊鍊(子)網路的一部份時,每個許可式區塊鍊(子)網路具有至少一個子網路與另一個子網路共用的觀察者節點。
在一些實施例中,節點150被配置為執行者節點,以藉由提交本身的核心監視器資料(對應於節點150的智慧合約的執行)提供本身操作的稽核細節,上述核心監視器資料由佈署好的智慧合約152上傳到許可式區塊鍊網路148。
在一些實施例中,當節點150被配置為執行者節點時,節點150更有關於一實體端(physical terminal),此實體端被配置以允許與人員互動,並且智慧合約152被進一步地配置以向組織的操作人員(human operator)提供許可。這將在第6圖及相關說明中討論。
多個實施例更有關於節點150被配置以與在許可式區塊鍊網路148中的其他節點交換訊息,以協調作為許可式區塊鍊網路148的一部份的所有節點的動作。反過來說,執行這樣的協調可以在許可式區塊鍊網路148的所有節點中,根據分散式計算程式達成有關於許可式區塊鍊網路148的目前狀態的共識,上述分散式計算程式通常被稱為共識演算法(consensus algorithm)。可以由許可式區塊鍊網路148使用以達到共識的共識演算法的一個範例為實用拜占庭容錯(practical byzantine fault tolerant (PBFT))演算法。在實用拜占庭容錯演算法中,節點被配置以從許可式區塊鍊網路148中的所有其他節點接收有關於該節點交易有效性(validity)的確認(confirmation)。基於上述節點所接收到的確認的總數達成共識。
本發明的一些實施例有關於:觀察者節點藉由為許可式區塊鍊網路148的所有節點提出交易,幫助達成共識。此外,由觀察者節點提出的交易必需按照智慧合約(例如智慧合約152)中規定的一組通用規則(common rule),在許可式區塊鍊網路148上進行稽核並紀錄稽核的結果。
多個實施例有關於將智慧合約152作為節點的應用程式空間(application space)的一部份儲存在節點150上,並進一步作為節點150的核心監視器的一部份佈署。這將在第2A圖到第2C圖及相關說明中進一步說明細節。
第2A圖是根據本發明一些實施例的方塊圖,展示有關於節點150的分離的一使用者空間200及一核心空間202。
使用者空間200包含節點150(具有記憶體及處理器的計算元件)中儲存使用者程式的記憶體的一部份。舉例來說,使用者程式可以為應用程式、應用程式資料、API、軟體或程式庫、儲存的程序、演算法、電腦指令、使用者檔案,以及相似物。使用者空間200中的使用者程式通常以任何已知的高階語言寫成,例如C#、C++、Java、Python、Solidity、JavaScript,以及相似物。使用者空間200也包含多個程序(例如商業程序或是網路介面程序),定義了用以執行應用程式專用的一或多個函式(function)的演算法及邏輯指令。使用者空間200中的使用者程式的一種類型為智慧合約204(相等於第1D圖中的智慧合約152)。智慧合約204定義了由智慧合約204運行的可執行(enforceable)規定。反過來說,智慧合約204的執行可以呼叫一或多個需要存取系統(作業系統)的資源的程序206。系統資源210儲存在與使用者空間200分離的記憶體的部份中,上述記憶體的部份被稱為核心空間202。
核心空間202定義了記憶體的一部份,用以將節點150的核心以作業系統及作業系統的相關程式的形式儲存。核心空間202儲存了能夠成為多種系統資源(例如硬體及檔案系統)的介面的特殊化程式(specialized program)。核心空間202可以包含特殊化程式及資料,例如裝置驅動器(driver)、記憶體管理程式、I/O管理程式、程序管理程式,以及相似物。一般來說,核心空間程式以低階語言寫成,例如C語言。
由核心空間202包含的系統資源210可以經由以系統呼叫的形式傳送到核心空間202的特殊化請求,從使用者空間200存取。每個資源存取需要單獨的系統呼叫。此外,每個系統呼叫及與其相關的系統資源可以經由使用被稱為核心層監視器技術的特殊化技術監控。
核心層監視器技術支援程式碼的可觀察性、收集效能指標(metric),以及追蹤有關於事件的安全性等。這將在第2A圖及第2B圖的相關討論中進一步說明。
第2B圖是根據本發明一些實施例的詳細方塊圖,展示在第2A圖中示意說明的使用者空間200及核心空間202的元件。
多個實施例描述了基於在智慧合約204中制訂的規則,提供系統呼叫的稽核,上述智慧合約204是有關於一許可式區塊鍊系統212(相等於之前在第1A圖到第1D圖描述的許可式區塊鍊系統)進行佈署的智慧合約。系統呼叫的稽核是基於任何本領域已知的監視器技術進行。第2B圖及第2C圖描述了一些已知的監視器技術208,在本發明的多個實施例中被用於範例的目的。
監視器技術208在第2C圖中更細節的展示,監視器技術208包含核心稽核(kernel auditing)214、探針(probe)216、追蹤點(trace point)218,以及伯克利封包過濾器(Berkley packet filter)220。在第2C圖中為了範例的目的只有描述四個監視器技術。監視器技術208的清單中可以加入任意數量的監視器技術,而不會偏離本發明的範圍。
核心稽核214包含一稽核子系統(audit sub-system),係基於預先配置的規則的框架(framework),用以進行系統稽核及安全函式(security function)。核心稽核214子系統被配置以捕捉大範圍的系統事件及系統事件相關的元資料(metadata),包含但不限於檔案系統(file system)稽核、系統呼叫稽核、受信任的資料庫存取。嘗試將函式輸入/輸出(import/export)及其他預定的事件。上述子系統包含1)用以產生稽核紀錄的核心元件;2)用以將稽核紀錄紀錄在區域檔案(local file)或外部伺服器的常駐程式(daemon);以及3)用以檢查及處理稽核紀錄的一組使用者空間工具。
探針216為動態監視器致能器(dynamic instrumentation enabler),核心使用探針216在執行時間(runtime)藉由附加中斷點(breakpoint)及處理器函式(handler function),在核心空間(使用kprobe)或使用者空間(使用uprobe)修改組合語言(assembly language)層程式碼。探針被配置以紀錄節點150的作業系統的狀態以及本身的程序。
追蹤點218包含觀察監視器的系統,上述系統呼叫一個可以在執行期間內被指定(specify)的函式,上述函式被插入在程式碼的重要位置。當到達特定的程式碼路徑(code path)時,追蹤點218被啟動,且相應的核心API公開(expose)一些預定的事件。
伯克利封包過濾器(BPF)220為一組系統層監視器技術。BPF的執行需要三個重要元件:1)具有專屬虛擬指令集的核心內(in-kernel)虛擬機器(virtual machine),上述虛擬指令集被稱為BPF位元碼(BPF bytecode);2)核心執行時間(kernel runtime),由解譯器(interpreter)、用以驗證BPF程式安全性的驗證器(verifier),以及用以將BPF位元碼轉換成本地指令(native instruction)的動態編譯環境編譯器(just in time (JIT) compiler)組成;以及3)被稱為BPF映射表(BPF map)的自訂鍵-值(custom key-value)資料結構,用以在核心空間202及使用者空間200之間分享資料。BPF有助於監視核心模組的負載、程序當機(process crash)、分頁(page)錯誤、虛擬使用(pseudo usage)、安全外殼協定(secure shell(ssh))認證、加密初始化(crypto initialization)、shell命令,以及相似物。
在此揭露的多個監視器技術208允許對一或多個系統呼叫進行稽核,使得一或多種類型的系統呼叫的調用(invocation)自動地由智慧合約204紀錄,以在許可式區塊鍊網路212上發佈。
因此,智慧合約204被佈署作為節點150的核心監視器(使用任何以上描述的核心監視器技術208)的一部份,其中可以藉由檢查包含了稽核資料的許可式區塊鍊網路212,偵測在使用者空間200中程式的惡意修改,上述稽核資料有關於一或多種系統呼叫請求類型。
若是節點150基於檢查本身提交的稽核資料被辨識為是惡意的,節點150存取許可式區塊鍊網路212的許可可以被撤銷。因此,以之前描述的方式使用許可式區塊鍊網路212的架構、智慧合約204及核心監視器技術208能夠做到錯誤偵測、錯誤移除,以及安全紀錄功能,進而使有關於節點150及許可式區塊鍊網路212的整個系統是高度可靠的。
第3圖是根據本發明一些實施例,一許可式區塊鍊系統300的高層次方塊圖。本發明的多個實施例描述了基於許可式區塊鍊系統300的可靠分散式系統。這樣的系統的主要元件為許可式區塊鍊網路300、智慧合約302,以及底層的參與者節點304。
底層的參與者節點304為一或多個支援區塊鍊的連網電腦。參與者節點304中的每個節點可以為一或多個區塊鍊(子)網路的一部份。此外,參與者節點304中的每個節點可以為四種節點類型中的一種,例如觀察者、執行者、排序者,以及輕量型客戶。重點是,參與者節點304被分類為執行者及觀察者。
觀察者對應於參與者節點304的一種類型,觀察者並不具有需要稽核的程序,因此觀察者不會創造需要被加入許可式區塊鍊系統300的交易。相對的,觀察者運行節點以複製區塊鍊,用以對所複製的區塊鍊網路的參與者執行稽核。觀察者節點執行多個函式,包含但不限於經由稽核增加許可式區塊鍊網路300的冗餘(redundancy)及安全性、偵測及從許可式區塊鍊網路300移除惡意參與者,以及運行排序服務(ordering service),以根據由智慧合約302所提供的交易追加到區塊鍊上。觀察者節點提供的優勢例如有增加整個許可式區塊鍊網路300的錯誤容忍,以及增加整個許可式區塊鍊網路300的錯誤預防能力,這是因為觀察者節點也被配置以藉由撤銷惡意參與者對於許可式區塊鍊網路300的存取權限,從許可式區塊鍊網路300移除惡意參與者。
許可式區塊鍊網路300的其他主要節點分類為執行者。執行者為具有需要稽核的程序的節點。這可以藉由基於在智慧合約302中制定的規則,紀錄執行者節點在許可式區塊鍊網路300上的操作達成。此外,執行者節點的操作使用如第2C圖中所描述的核心監視器技術稽核。
許可式區塊鍊網路300的參與者節點304可以包含至少一個觀察者節點,以使許可式區塊鍊網路300為一個可歸責的(分散式)系統。
本發明的多個實施例描述了為許可式區塊鍊網路300上的所有節點提供許可式管理功能。上述許可式管理功能包含至少一個程序相關許可(process related permission)、節點相關許可(node related permission),以及人員介面相關許可(human interface related permission),或是其中的組合。
上述程序相關許可包含使用核心監視器技術208,辨識核心程序內的程序是否在經過適當的許可,能夠存取系統資源。這在第1B圖中說明過。這是經由之前所描述的任何核心監視器技術208執行。
上述節點相關許可包含確認節點是否被許可參與分散式計算系統,例如許可式區塊鍊網路300。這經由區塊鍊網路框架的要求完成,也就是一個具有充足許可的節點會被所有參與者批准,而一個缺乏充足許可的節點則不會被參與者允許。此外,上述節點所相關的許可紀錄在多個網路配置檔案中,許可式區塊鍊網路300中的節點可以取得上述網路配置檔案。
上述人員介面相關許可包含有關於操作人員經由實體介面端接取(interface)節點的許可。當有關於許可式區塊鍊網路300的計算裝置或連網電腦是受信任的,但是在多個不是全部都值得信任的操作人員間共用時,會需要上述人員介面相關許可。因此,上述人類介面相關許可確保分配給與連網電腦互動的操作人員的許可,並不會與上述連網電腦的設定綁定,而可以由組織(上述連網電腦或節點是其中的一部份)實時(real time)的改變。這可以藉由使用輕型目錄存取協定(Lightweight Directory Access Protocol (LDAP))執行。這將在第6圖及相關討論中做出更細節的描述。
許可式區塊鍊網路300的結構可以使用在多種不同的情況下,這將在接下來的圖式及相關描述中討論。
第4圖是根據本發明一些實施例,一組織區塊鍊系統400的高層方塊圖。組織區塊鍊系統400包含作為組織區塊鍊系統400的一部份的一許可式區塊鍊網路,具有與組織區塊鍊系統400相關的多個節點或支援區塊鍊的連網電腦。第4圖示意說明四個這樣的節點,一上級節點(parent node)404及有關於上級節點404的排序者服務(orderer service)404a,以及一或多個子節點(child node):一節點402、一節點406,以及一節點408。本領域的通常知識者應該理解在系統中展示的節點的特定數量只是範例。組織區塊鍊系統400可以有關於任何節點的數量而不偏離本發明的範圍。
上級節點404有關於一上級組織,上述上級組織作為運行排序者服務404a的排序者節點,將其他有關於組織區塊鍊系統400的節點(例如作為子節點的節點402、節點406,以及節點408)的稽核進行排序(oeder)。上級節點404與組織區塊鍊系統400的互動可以是唯讀(read-only)的。此外,上級節點404可以被配置以藉由提出交易參與有關於組織區塊鍊系統400的一共識演算法,同步(synchronize)組織區塊鍊系統400的完整複製。上述共識演算法確保組織區塊鍊系統400的所有節點同意組織區塊鍊系統400的目前狀態。
此外,子節點有關於子組織(child organization),例如需要監視的上述上級組織的子公司(subsidiary)。每個子節點可以讀取及寫入組織區塊鍊系統400。節點402及節點406作為執行者節點,被配置以取得經由之前描述的智慧合約及核心監視器技術稽核的本身的程序,以及被配置以藉由產生包含稽核資料的交易主動地參與共識演算法。
此外,如第4圖所示,節點408可以經由節點406與組織區塊鍊系統400通訊,舉例來說,當節點408為無法運行完整支援區塊鍊的節點的輕量型客戶裝置時。
多個有關於區塊鍊框架的節點及服務的功能可以經由使用本領域通常知識者熟悉的API及程式庫執行。
第5圖是根據本發明一些實施例,另一種情況的方塊圖,展示了一許可式區塊鍊系統500中的不同節點。許可式區塊鍊系統500有關於一或多個節點,例如一節點502以及一節點504。節點502可以為一執行者節點,運行需要稽核的一程序506。程序506的調用可以進一步致使鍊碼(chain code)508在節點502上,及鍊碼512在節點504上的調用。如之前所述,鍊碼為相關智慧合約的集合或群組。之後,藉由使用定義於鍊碼508及鍊碼512內的規則,可以在核心層經由使用其中一些已經在第2C圖中描述過的任何已知核心監視器技術,監視節點502及節點504。此外,鍊碼508的調用可以致使鍊碼510的調用,鍊碼512的調用可以致使鍊碼514的調用,鍊碼510及鍊碼514調用的結果可以紀錄在許可式區塊鍊系統500上。此外,鍊碼508及鍊碼512調用的結果(以使用核心監視器技術稽核的結果的形式)可以紀錄在許可式區塊鍊系統500上。
相關鍊碼在許可式區塊鍊系統500上以第5圖示意說明的方式的調用,可以提供跨鍊碼(cross-chain code)調用功能,上述跨鍊碼調用功能可以進一步提供使用智慧合約及鍊碼實現的一些稽核功能(function)的自動化(automation)。因此,使用第5圖中範例性的實施例,許可式區塊鍊系統500可以用於以半自動(semi-automated)或全自動(ully-automated)的方式,提供錯誤偵測及可靠的分散式計算系統。
第6圖描述執行可靠及錯誤容忍的分散式計算系統的另一種可能的實施例。第6圖示意說明了對於許可式區塊鍊系統300(在第3圖中揭露)的人員介面的許可管理。
第6圖是根據本發明一些實施例,一許可式區塊鍊系統600中不同節點的詳細方塊圖,許可式區塊鍊系統600用以進行人員介面的許可管理。
許可式區塊鍊系統600可以由一操作人員604存取,操作人員604可能有或沒有被授權存取許可式區塊鍊系統600。另一方面,一節點602被許可存取許可式區塊鍊系統600。為了認證操作人員604是否能夠存取許可式區塊鍊系統600,一計算終端(computing terminal)608(例如在此為了示範目的展示的支援樹梅派(Raspberry Pi (RPi))的終端)可以被用以運行一證件(credential)服務606(例如LDAP)。之後,認證或稽核的結果會紀錄在許可式區塊鍊系統600上。操作人員的許可因此可能維持(resume)或撤銷。
因此,許可式區塊鍊系統600為可靠的分散式系統,能夠以低計算成本做到錯誤偵測、預防及移除,以及高效的安全機制,例如智慧合約及核心監視器。
第7圖是根據本發明一些實施例,一方法700的流程圖,展示了用於在可歸責的許可式區塊鍊網路中進行偵測及移除錯誤的不同步驟。
第7圖的方法700包含,在步驟702,編譯並執行有有關於許可式區塊鍊網路的智慧合約。舉例來說,參考第2B圖及第2C圖,許可式區塊鍊網路212有關於節點150,節點150可以接收有關於智慧合約204的受信任二進位檔案,或是原始碼檔案。如果智慧合約204是原始碼檔案的形式,智慧合約204可以被編譯並在之後執行。在一些實施例中,智慧合約204是可執行檔本身的形式,而不需要編譯。智慧合約204的執行致使制定在智慧合約204中的一組規定的執行。上述規定可以有關於一系列的操作,用以執行以下至少其中之一:(1)使用交易將資料追加(append)到許可式區塊鍊網路212,上述交易中包含指示了存取許可式區塊鍊網路212的連網電腦或節點間的訊息交換的紀錄。(2)基於連網電腦的核心監視器偵測上述連網電腦(例如在達成共識中的節點150)的惡意行為。以及(3)當偵測到惡意行為時,撤銷上述連網電腦對於許可式區塊鍊網路212的存取。或是其中的組合。
在步驟704中,使用任何核心監視器技術208對節點150的系統呼叫進行稽核,以產生對於連網電腦(例如節點150)的稽核資料,藉此完成對於惡意行為的偵測。此外,稽核的結果經由對於稽核資料紀錄的僅追加資料操作,儲存於許可式區塊鍊網路212中。一旦稽核資料紀錄以這種方式提交,在步驟706中,可以偵測在節點150上的任何惡意行為,並且如果需要的話,可以撤銷節點150的許可。
第7圖中描述的方法700可以在任何分散式計算系統內實施,以確保整個分散式計算系統的可歸責性、錯誤容忍,以及可靠性(reliability)。
第8圖是根據本發明一些實施例,示意說明用以在分散式計算系統中偵測及移除錯誤的一作業環境(working environment)800。作業環境800對應於一發電廠(power plant)804,發電廠804可以作為上級節點進行排序服務,以將經由一許可式區塊鍊網路802連接發電廠804的不同實體的稽核進行排序。這些不同的實體可以包含一消費者(consumer)808、一工業單位(industrial unit)812,以及一電力分配網路(electricity distribution grid)816。消費者808、工業單位812,以及電力分配網路816可以經由運行完整或輕量型節點的計算系統(例如以支援區塊鍊的連網電腦的形式),連接許可式區塊鍊網路802。此外,每個實體可以被配置以從許可式區塊鍊網路802接收它們各自的智慧合約的複本:消費者808的智慧合約810、工業單位812的智慧合約814、電力分配網路816的智慧合約818、發電廠804的智慧合約806。每個智慧合約可以為不可改變的受信任的二進位檔案或原始碼檔案其中之一的形式。此外,一些實施例是關於:所有節點的智慧合約的複製可以為所有節點所共有。
此外,每個智慧合約制定了用以監視及稽核消費者808、工業單位812,以及電力分配網路816的規則。舉例來說,上述規則可以有關於電力單位(power unit)的使用、用電量的計量及試圖篡改計量單位、裁定(sanction)電力單位的工業消耗(industrial consumption)、能經由網路分配的電力單位數量的可容許上限、遵守政府及管理框架,以及相似物。
當智慧合約810、智慧合約814及智慧合約818被執行時,每一種類型的節點可以使用相關的計算終端的核心層監視器進行稽核,並且將稽核結果紀錄在許可式區塊鍊網路802上。此外,不同的節點可以被配置以在之後對於每個節點的真實性(authenticity)達成共識。根據稽核的結果及共識,每個節點可以被允許維持它們與許可式區塊鍊網路802的連結,並繼續取用發電廠804產生的電力,或者是,如果節點沒有通過稽核程序,節點的連結可以被暫時無效化。
因此,本發明的多個實施例提供安全、防篡改、有效率、可靠且具有成本效益(cost effective)的可歸責分散式計算系統。多個實施例有關於通過數位管理(digital management)實現實體上(計算上)的可稽核及可歸責。此外,由於輕量型客戶可以作為完全嵌入式(full embedded)的區塊鍊節點輕易地被用以執行多種之前描述的技術,使得整個系統高度的有效率、可擴展(scalable),以及具有成本效益。另外,在許多許可式區塊鍊中,客戶是受信任的二進位,在多個作為受信任的輕量型區塊鍊客戶的參與節點之間共用。
以上的描述僅提供示範性實施例,並不應該用以限制本發明的範圍、適用性,或是配置。相對的,以上示範性實施例的描述將提供本領域的通常知識者能夠用以執行一或多個示範性實施例的說明。可以納入考慮的(contemplated)是可以在元件的功能及安排中做出的多種改變,而不會離開請求項中所述的標的的精神及範圍。
以上描述了特定的細節,以提供對實施例的完整了解。然而,本領域的通常知識者應該可以了解,以上實施例可以不需要這些細節就能執行。舉例來說,標的中揭露的系統、程序,以及其他元件可能以方塊圖中的元件的形式展示,以避免不必要的細節使實施例模糊。在其他例子中,已知的程序、結構,以及技術可能沒有展示不必要的細節,以避免不必要的細節使實施例模糊。此外,多個圖式中相似的參考編號及名稱指示相似的元件。
此外,單獨的實施例可以被描述為程序,以流程表、流程圖、資料流程圖、結構圖,或是方塊圖描述。雖然流程表可能將操作描述為一個連續的流程,但是許多操作可以平行地或是同時地執行。此外,操作的順序可以重新安排。當流程的操作都完成時,流程終止,但是可以有圖中沒討論或包含的額外的步驟。另外,不是所有在任何特定描述的流程中的操作都會在所有實施例中發生。流程可以對應於方法、功能、子例程、子程式等。當流程對應於函式時,函式的結束可以對應於函式向呼叫的函式或主函式的回傳。
此外,所揭露的標的的實施例可以至少一部份手動地或自動地執行。手動或自動的實施例可以經由使用機器、硬體、軟體、韌體、中介軟體(middleware)、微碼(microcode)、硬體描述語言,或是任何其中的組合執行,或是至少受到幫助。當使用軟體、韌體、中介軟體或微碼執行時,執行必要任務的程式碼或是代碼段(code segment)可以儲存在機器可讀媒體中。處理器可以用以執行上述必要任務。
在此描述的多個方法或流程可以被寫成能夠在一或多個處理器上執行的軟體,上述處理器採用多種作業系統或平台的任何一種。此外,上述軟體可以使用多種合適的程式語言及/或程式或腳本(script)工具中的任何一種寫成,並可以被編譯成能夠在框架或虛擬機器上執行的機器語言碼或是中間代碼(intermediate code)。基本上,程式模組的功能可以如多個實施例中描述的被結合或分佈。
本發明的實施例可以體現為方法,在其中已經提供範例。作為方法的一部份的操作可以以任何合適的順序排列。因此,實施例可以將操作使用不同於示意說明的順序執行,包含將一些以連續的操作在示意說明的實施例中展示的操作同時地執行。雖然本發明已經參考某些較佳的實施例進行描述,應該了解在本發明的精神及範圍內可以進行其他多個調整及修改。因此,附帶的請求項涵蓋本發明的真正精神及範圍中的所有調整及修改。
100,126,140,500,600:許可式區塊鍊系統 148,212,300,802:許可式區塊鍊網路/許可式區塊鍊系統 112,120:區塊鍊網路 114,116,118,122,130,132,150,402,406,408,502,504,602:節點 124:觀察者節點 128:執行者節點 134:附屬組織 136:定界框(上級組織) 138:定界框(組織) 142,144:輕量型客戶 146:嵌入式裝置 152,204,302,806,810,814,818:智慧合約 154,206,506:程序 200:使用者空間 202:核心空間 208:監視器技術 210:系統資源 214:核心稽核 216:探針 218:追蹤點 220:伯克利封包過濾器 304:參與者節點 400:組織區塊鍊系統 404:上級節點 404a:排序者服務 508,510,512,514:鍊碼 604:操作人員 606:證件服務 608:計算終端 700:方法 702,704,706:步驟 800:作業環境 804:發電廠 808:消費者 812:工業單位 816:電力分配網路
第1A圖是根據本發明一些實施例的方塊圖,展示用以偵測及移除錯誤的一許可式區塊鍊系統的架構。 第1B圖是根據本發明一些實施例,包含不同類型節點的一許可式區塊鍊系統的方塊圖。 第1C圖是根據本發明一些實施例,包含一輕量型(lightweight)客戶節點的一許可式區塊鍊系統的方塊圖。 第1D圖是根據本發明一些實施例,包含一智慧合約的一許可式區塊鍊系統的方塊圖。 第2A圖是根據本發明一些實施例的方塊圖,展示分離的一使用者空間及一核心空間。 第2B圖是根據本發明一些實施例的詳細方塊圖,展示在第2A圖中示意說明的使用者空間及核心空間的元件。 第2C圖是根據本發明一些實施例的詳細方塊圖,展示用以稽核核心空間資料的監視器技術(instrumentation technologie)。 第3圖是根據本發明一些實施例,一許可式區塊鍊系統的高層次方塊圖。 第4圖是根據本發明一些實施例,一組織(organizational)區塊鍊系統的高層方塊圖。 第5圖是根據本發明一些實施例,一許可式區塊鍊系統中不同節點的詳細方塊圖。 第6圖是根據本發明一些實施例,一許可式區塊鍊系統中不同節點的詳細方塊圖。 第7圖是根據本發明一些實施例,用於在可歸責的許可式區塊鍊網路中進行偵測及移除錯誤的一方法的流程圖。 第8圖是根據本發明一些實施例,示意說明用以在一分散式計算系統中偵測及移除錯誤的一環境。
100:許可式區塊鍊系統
112,120:區塊鍊網路
114,116,118,122:節點

Claims (20)

  1. 一種支援區塊鍊的連網電腦,用以與存取一許可式區塊鍊網路的不同的連網電腦組成一可歸責計算系統,上述支援區塊鍊的連網電腦包含: 至少一個處理器;以及 記憶體,具有指令儲存於其上,當上述指令由上述處理器執行時,致使上述支援區塊鍊的連網電腦: 編譯並執行一智慧合約,其中上述智慧合約包含一組規則,上述規則被配置以致使上述處理器:1)將多筆交易附加到上述許可式區塊鍊網路中,上述交易包含多筆紀錄,上述紀錄指示了存取上述許可式區塊鍊網路的上述連網電腦之間的訊息交換;2)偵測上述支援區塊鍊的連網電腦在達成共識時的惡意行為,其中上述偵測是基於上述支援區塊鍊的連網電腦的核心監視器執行;3)當偵測到上述惡意行為時,撤銷上述支援區塊鍊的連網電腦對於上述許可式區塊鍊網路的存取;或其組合;以及 執行一分散式計算程式,以與存取上述許可式區塊鍊網路的上述連網電腦達成共識。
  2. 如請求項1之支援區塊鍊的連網電腦,其中上述支援區塊鍊的連網電腦被配置以使用與上述許可式區塊鍊網路的協定無關的一通訊協定,與存取上述許可式區塊鍊網路的上述連網電腦交換訊息。
  3. 如請求項1之支援區塊鍊的連網電腦,其中上述支援區塊鍊的連網電腦被配置以使用依賴於上述許可式區塊鍊網路的協定的一通訊協定,與存取上述許可式區塊鍊網路的上述連網電腦交換訊息。
  4. 如請求項1之支援區塊鍊的連網電腦,其中上述智慧合約被配置以基於一或多個稽核紀錄偵測上述惡意行為,上述一或多個稽核紀錄係當上述支援區塊鍊的連網電腦執行上述智慧合約及上述許可式區塊鍊網路的相應的交易時所產生。
  5. 如請求項1之支援區塊鍊的連網電腦,其中上述智慧合約被配置以當上述支援區塊鍊的連網電腦向存取上述許可式區塊鍊網路的不同上述連網電腦傳送相同訊息的不同值時,偵測上述惡意行為。
  6. 如請求項1之支援區塊鍊的連網電腦,其中上述支援區塊鍊的連網電腦在上述許可式區塊鍊網路中被配置為一觀察者節點或是一執行者節點中之至少一者。
  7. 如請求項1之支援區塊鍊的連網電腦,其中藉由向上述許可式區塊鍊網路的成員分佈上述智慧合約的一原始碼或有關於一已編譯智慧合約的一受信任二進位檔案中之至少一者,將上述智慧合約部署在上述許可式區塊鍊網路。
  8. 如請求項1之支援區塊鍊的連網電腦,其中上述智慧合約作為上述支援區塊鍊的連網電腦的上述核心監視器的一部份進行部署,使得一或多種類型的系統呼叫請求的調用是自動地由上述智慧合約進行紀錄,以在上述許可式區塊鍊網路上發佈。
  9. 如請求項8之支援區塊鍊的連網電腦,其中藉由檢查包含稽核資料的上述許可式區塊鍊網路,偵測使用者空間程式的惡意改動,上述稽核資料有關於上述一或多種類型的系統呼叫請求。
  10. 如請求項1之支援區塊鍊的連網電腦,其中上述支援區塊鍊的連網電腦為一觀察者節點,被配置以複製上述觀察者節點作為成員的許可式網路的所有區塊鍊。
  11. 如請求項10之支援區塊鍊的連網電腦,其中上述支援區塊鍊的連網電腦存取多個許可式區塊鍊網路,以確保上述許可式區塊鍊網路與其他不同的上述許可式區塊鍊網路具有至少一個共同的觀察者節點。
  12. 如請求項1之支援區塊鍊的連網電腦,其中上述支援區塊鍊的連網電腦為一執行者節點,被配置以藉由提交核心監視器資料,提供本身的操作的稽核細節,上述核心監視器資料係經由已部署的上述智慧合約上傳到上述許可式區塊鍊網路。
  13. 如請求項12之支援區塊鍊的連網電腦,其中上述執行者節點被配置以將上述智慧合約以受信任的二進位的形式運行,以將上述紀錄寫入上述許可式區塊鍊網路。
  14. 如請求項12之支援區塊鍊的連網電腦,其中上述執行者節點有關於一實體端,被配置以允許人員互動,其中上述智慧合約被配置以向組織提供許可服務。
  15. 一種在分散式系統中偵測錯誤的方法,上述分散式系統具有不同的連網電腦,上述連網電腦存取一許可式區塊鍊網路,並藉由彼此交換訊息協調動作,以達成共識,其中上述連網電腦包含至少一個支援區塊鍊的連網電腦,上述至少一個支援區塊鍊的連網電腦包含至少一個處理器,其中上述處理器耦接用以執行上述方法的已儲存的指令,當上述指令由上述處理器執行時,運行上述方法的步驟,包含: 編譯並執行所有存取上述許可式區塊鍊網路的上述連網電腦共用的一智慧合約,以進行錯誤偵測,其中上述智慧合約被配置以:(1)將多筆交易附加到上述許可式區塊鍊網路中,上述交易包含指示了存取上述許可式區塊鍊網路的上述連網電腦間訊息交換的多筆紀錄;(2)偵測上述至少一個支援區塊鍊的連網電腦在達成共識時的惡意行為;以及(3)當偵測到上述惡意行為時,撤銷上述至少一個支援區塊鍊的連網電腦對於上述許可式區塊鍊網路的存取;以及 執行一分散式計算程式,以與存取上述許可式區塊鍊網路的上述連網電腦達成共識。
  16. 如請求項15之方法,其中上述智慧合約被配置以藉由分析在上述許可式區塊鍊網路的上述交易中的上述紀錄,偵測上述惡意行為。
  17. 如請求項15之方法,其中上述智慧合約被配置以當上述至少一個支援區塊鍊的連網電腦向存取上述許可式區塊鍊網路的上述連網電腦傳送相同訊息的不同值時,偵測上述惡意行為。
  18. 如請求項15之方法,其中上述智慧合約作為上述至少一個支援區塊鍊的連網電腦的核心監視器的一部份進行部署,使得一或多種類型的系統呼叫請求的調用是自動地由上述智慧合約進行紀錄,以在上述許可式區塊鍊網路上發佈。
  19. 如請求項18之方法,其中藉由檢查包含稽核資料的上述許可式區塊鍊網路,偵測使用者空間程式的惡意改動,上述稽核資料有關於一或多種類型的系統呼叫請求。
  20. 一種非暫態電腦可讀儲存媒體,具有一程式嵌入於其上,上述程式可以由一處理器執行,以運行在分散式系統中偵測錯誤的方法,上述分散式系統具有不同的連網電腦,上述連網電腦存取一許可式區塊鍊網路,並藉由彼此交換訊息協調動作,以與其他上述連網電腦達成共識,其中上述連網電腦包含至少一個支援區塊鍊的連網電腦,上述至少一個支援區塊鍊的連網電腦執行上述方法,包含: 編譯並執行所有存取上述許可式區塊鍊網路的上述連網電腦共用的一智慧合約,以進行錯誤偵測,其中上述智慧合約被配置以:(1)將多筆交易附加到上述許可式區塊鍊網路中,上述交易包含指示了存取上述許可式區塊鍊網路的上述連網電腦間訊息交換的多筆紀錄;(2)偵測上述至少一個支援區塊鍊的連網電腦在達成共識時的惡意行為;以及(3)當偵測到上述惡意行為時,撤銷上述至少一個支援區塊鍊的連網電腦對於上述許可式區塊鍊網路的存取;以及 執行一分散式計算程式,以與存取上述許可式區塊鍊網路的上述連網電腦達成共識。
TW111114208A 2021-04-19 2022-04-14 支援區塊鍊的連網電腦、在分散式系統中偵測錯誤的方法及非暫態電腦可讀儲存媒體 TW202242691A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/234,041 2021-04-19
US17/234,041 US11985143B2 (en) 2021-04-19 2021-04-19 Blockchain-based accountable distributed computing system
WOPCT/JP2022/001874 2022-01-13
PCT/JP2022/001874 WO2022224513A1 (en) 2021-04-19 2022-01-13 Blockchain-based accountable distributed computing system

Publications (1)

Publication Number Publication Date
TW202242691A true TW202242691A (zh) 2022-11-01

Family

ID=80786894

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111114208A TW202242691A (zh) 2021-04-19 2022-04-14 支援區塊鍊的連網電腦、在分散式系統中偵測錯誤的方法及非暫態電腦可讀儲存媒體

Country Status (7)

Country Link
US (1) US11985143B2 (zh)
EP (1) EP4147416B1 (zh)
JP (1) JP2024510049A (zh)
KR (1) KR20230156129A (zh)
CN (1) CN117203937A (zh)
TW (1) TW202242691A (zh)
WO (1) WO2022224513A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033146B (zh) * 2023-10-10 2023-12-08 北京安天网络安全技术有限公司 指定共识合约执行进程的识别方法、装置、设备及介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475442B1 (en) * 2018-02-12 2022-10-18 Gemini Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US11263315B2 (en) * 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
US10956204B1 (en) * 2019-10-14 2021-03-23 International Business Machines Corporation Free-riding node identification for blockchain
CN111191212B (zh) * 2019-12-31 2020-12-15 卓尔智联(武汉)研究院有限公司 基于区块链的数字凭证处理方法、装置、设备和存储介质
US11138159B1 (en) * 2020-02-03 2021-10-05 Architecture Technology Corporation Database access gateway through distributed networks
US11575499B2 (en) * 2020-12-02 2023-02-07 International Business Machines Corporation Self auditing blockchain
US11636214B2 (en) * 2020-12-11 2023-04-25 Hewlett Packard Enterprise Development Lp Memory scan-based process monitoring

Also Published As

Publication number Publication date
EP4147416B1 (en) 2023-07-12
US11985143B2 (en) 2024-05-14
EP4147416A1 (en) 2023-03-15
KR20230156129A (ko) 2023-11-13
CN117203937A (zh) 2023-12-08
US20220337602A1 (en) 2022-10-20
JP2024510049A (ja) 2024-03-05
WO2022224513A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
Aljawarneh et al. Cloud security engineering: Early stages of SDLC
US8695075B2 (en) System and method for discovery enrichment in an intelligent workload management system
Ujcich et al. Cross-app poisoning in software-defined networking
Gul et al. Cloud computing security auditing
Awuson-David et al. BCFL logging: An approach to acquire and preserve admissible digital forensics evidence in cloud ecosystem
Liao et al. Towards provenance-based anomaly detection in MapReduce
Mencias et al. An optimized blockchain solution for the IBM z14
Anisetti et al. Modeling time, probability, and configuration constraints for continuous cloud service certification
WO2022116761A1 (en) Self auditing blockchain
Linger et al. Life-cycle models for survivable systems
TW202242691A (zh) 支援區塊鍊的連網電腦、在分散式系統中偵測錯誤的方法及非暫態電腦可讀儲存媒體
US11783049B2 (en) Automated code analysis tool
Zichichi et al. Accountable Clouds Through Blockchain
Wang et al. Practical verifiable computation–A MapReduce case study
Lombardi et al. Security for cloud computing
Eguiluz et al. Interactions among techniques addressing quality attributes
Marstein Improve auditing and privacy of electronic health records by using blockchain technology
Syed Modeling and Security in Cloud and Related Ecosystems
Xinguang et al. Filter-based trusted remote attestation for web services
Ishgair et al. SoK: A Defense-Oriented Evaluation of Software Supply Chain Security
Nhan et al. A Study on Accounting Information System Security
Lawal Policy Review in Attribute-Based Access Control
Bilal Automated Deployment of Secure Cloud based Accounting Application
Abdullah Sealed Computation: Enhancing Data Privacy and Trustworthiness of Computing Systems
Lad Security Processes