TW202101279A - 通過邏輯映射遍歷智能合約資料庫 - Google Patents
通過邏輯映射遍歷智能合約資料庫 Download PDFInfo
- Publication number
- TW202101279A TW202101279A TW108124840A TW108124840A TW202101279A TW 202101279 A TW202101279 A TW 202101279A TW 108124840 A TW108124840 A TW 108124840A TW 108124840 A TW108124840 A TW 108124840A TW 202101279 A TW202101279 A TW 202101279A
- Authority
- TW
- Taiwan
- Prior art keywords
- kvp
- key
- index
- computer
- smart contract
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Tires In General (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公開的實現方式包括確定與智能合約資料庫使用的默克爾派特裡夏樹(MPT)的第一鍵值對(KVP)集中的一個KVP對應的索引的第一數字;基於所述索引的所述第一數字,確定用於遍歷所述MPT的映射的第二KVP集中的第一KVP的第一鍵;確定與所述第一KVP的所述第一鍵對應的第一值;確定所述第二KVP集中的第二KVP的第二鍵;和檢索與所述第二KVP的所述第二鍵對應的第二值。
Description
本發明係有關通過邏輯映射遍歷智能合約資料庫。
區塊鏈網路,也稱為區塊鏈系統、共識網路、分散式帳本系統(Distributed Ledger System,DLS)網路或區塊鏈,使得參與的實體能夠安全且不可篡改地儲存資料。區塊鏈可以被描述為交易帳本,區塊鏈的多個副本儲存在區塊鏈網路中。區塊鏈的示例類型可以包括公有區塊鏈,聯盟區塊鏈和私有區塊鏈。公有區塊鏈對所有實體開放區塊鏈的使用以及共識過程的參與。聯盟區塊鏈是共識過程由預先選擇的節點集合控制的區塊鏈。為特定實體提供私有區塊鏈,該實體集中控制讀寫權限。
智能合約可以是在區塊鏈之上運行的電腦代碼。智能合約可以包括預定規則組,使智能合約的各方同意彼此交互。當滿足所述預定規則時,可以自動執行協議。智能合約在區塊鏈平臺中編碼並執行。示例性的區塊鏈平臺包括但不限於由瑞士楚格(Zug)的乙太坊基金會提供的乙太坊。在某些區塊鏈平臺、例如乙太坊中,可以使用狀態機,交易可以導致狀態機中狀態之間的轉換。狀態可以被表示為鍵值對(key-value pair,KVP)。在某些情況下,默克爾派特裡夏樹(Merkle Patricia Tree,MPT)被用作保存KVP的方法。MPT的大小可以隨著KVP數量的增加而增加。為了執行諸如遍歷(traverse)、讀取或移除KVP的操作,使用者需要知道該KVP的對應的鍵。隨著MPT大小的增加,操作效率會降低。
本公開的實現方式涉及基於邏輯映射遍歷由智能合約資料庫使用的默克爾派特裡夏樹(MPT)的鍵值對(KVP)集。更具體地,本公開的實現方式涉及配置包括多個函數的邏輯映射。這些函數可用於操縱多個KVP,以遍歷MPT中的KVP集。
在一些實現方式中,動作包括:確定與智能合約資料庫使用的默克爾派特裡夏樹(Merkle Patricia Tree,MPT)的第一鍵值對(key-value pair,KVP)集中的一個KVP對應的索引的第一數字;基於所述索引的所述第一數字,確定用於遍歷所述MPT的映射的第二KVP集中的第一KVP的第一鍵;確定所述第一KVP的所述第一鍵對應的第一值;確定所述第二KVP集中的第二KVP的第二鍵;和檢索與所述第二KVP的所述第二鍵對應的第二值。其他實現方式包括相應的系統、裝置和編碼在電腦儲存設備上的用於執行所述方法的操作的電腦程式。
這些和其他實現方式可以各自可選地包括以下特徵中的一個或多個:基於所述索引的第二數字,確定所述第二KVP集中的第三KVP的第三鍵;確定與所述第三KVP的所述第三鍵對應的第三值;確定第二KVP集中的第四KVP的第四鍵;檢索與所述第四KVP的所述第四鍵對應的第四值;所述電腦實現的方法,還包括:確定所述索引的所述第二數字未被刪除;所述第一KVP集中的KVP的數量小於或等於所述第二KVP集中的KVP的數量;所述第一KVP集中的鍵和所述第二KVP集中的鍵被儲存為雜湊值;所述第二KVP集包括與所述第一KVP集中包括的一個或多個值相同的一個或多個值,以及所述第二KVP集包括與所述第一KVP集中包括的一個或多個鍵相同的一個或多個值;所述第二KVP集包括用於指示所述索引中包含的數字,用於指示所述第一KVP集中的一個或多個KVP是否被刪除的一個或多個值,以及所述第一KVP集中KVP的數量。
本公開還提供了一種非暫態電腦可讀儲存媒體,連接到一個或多個處理器,並且具有儲存在其上的指令,當所述一個或多個處理器執行所述指令時,使所述一個或多個處理器根據本文提供的方法的實現方式執行操作。
本公開還提供了用於實現本文提供的方法的系統。該系統包括:一個或多個處理器;和電腦可讀儲存媒體,其連接到所述一個或多個處理器,並且具有儲存在其上的指令,當所述一個或多個處理器執行所述指令時,使所述一個或多個處理器根據本文提供的方法的實現方式執行操作。
應瞭解,本公開提出的方法可包括本文中所描述的態樣和特徵的任何組合。也就是說,本公開的方法不限於本文具體描述的態樣和特徵的組合,還包括所提供的態樣和特徵的任何組合。
在圖式和以下描述中闡述了本公開的一個或多個實現方式的細節。根據說明書和圖式以及申請專利範圍,本公開的其他特徵和優點將顯而易見。
本公開的實現方式涉及基於邏輯映射遍歷由智能合約資料庫使用的默克爾派特裡夏樹(Merkle Patricia Tree,MPT)的鍵值對(key-value pair,KVP)集。更具體地,本公開的實現方式涉及配置包括多個函數的邏輯映射。這些函數可用於操縱多個KVP,以在MPT中遍歷KVP集。
在一些實現方式中,操作包括確定與智能合約資料庫使用的默克爾派特裡夏樹(Merkle Patricia Tree,MPT)的第一鍵值對(key-value pair,KVP)集中的一個KVP對應的索引的第一數字;基於所述索引的所述第一數字,確定用於遍歷所述MPT的映射的第二KVP集中的第一KVP的第一鍵;確定所述第一KVP的所述第一鍵對應的第一值;確定所述第二KVP集中的第二KVP的第二鍵;和檢索與所述第二KVP的所述第二鍵對應的第二值。
為提供本公開的實現方式的進一步執行背景,如上所述,區塊鏈網路也可以被稱為共識網路(例如,由點對點(peer to peer)節點組成)、分散式帳本系統、或簡稱為區塊鏈,使得參與的實體能夠安全且不可篡改地進行交易並儲存資料。本公開的實現方式在此參考區塊鏈網路的智能合約進行了更詳細地描述。然而,可以預期,本公開的實現方式可以在任何適當的區塊鏈平臺中實現。
在一些示例中,智能合約可被描述為具有影響各方的合約條款的現實世界法律合約的數字表示。在示例背景中,在聯盟區塊鏈網路內實施、儲存、更新(根據需要)並執行智能合約。與智能合約相關聯的合約方(例如,買方和賣方)被表示為聯盟區塊鏈網路中的節點。在一些示例中,合約方可以包括與智能合約相關聯(例如,作為智能合約的當事方)的實體(例如,商業企業)。
在一些示例中,智能合約可以儲存資料,該資料可以用於記錄資訊、事實、關聯性、餘額以及實現合約執行邏輯所需的其他任何資訊。智能合約可以被描述為由函數組成的電腦可執行程式,其中可以為該智能合約創建一個實例(instance),並且調用用於在其中執行邏輯的函數。在一些示例中,智能合約可以包括各種組件,其中的一個或多個組件也可以被描述為合約。在一些示例中,智能合約的一個或多個組件可以作為對整體智能合約的更新的一部分進行更新。
在一些實現方式中,智能合約的示例組件可以包括但不限於:控制器合約、服務合約和資料合約。控制器合約可以在收到合約發起人的請求後由調度員定義,合約發起人發起該智能合約。該智能合約的發起可以包括向聯盟區塊鏈網路中的節點(例如,向將成為智能合約的當事方的實體)提供該智能合約。該智能合約的發起還可以識別創建智能合約的時間,以及智能合約發起人的標識。在一些示例中,服務合約包括該智能合約的邏輯。所述邏輯可以定義該合約的執行方式,包括事件順序的定義以及與智能合約關聯的實體的關係。資料合約包括該智能合約的條款,包括但不限於:該智能合約所涵蓋的產品和/或服務,以及針對該智能合約的提供產品和/或服務的支付資訊。儲存在資料合約中的資料可用於記錄資訊、事實和關聯,包括但不限於:餘額,付款,收據,交付(deliveries),截止日期以及實現智能合約邏輯所需的其他任何資訊。
在技術方面,可以基於物件和物件導向的類來實現智能合約。例如,智能合約的條款和組件可以被表示為由實現智能合約的應用程式處理的物件。與其他物件導向的物件一樣,一個智能合約(或智能合約中的物件)可以調用另一個智能合約(或同一智能合約中的物件)。由物件發起的調用可以是諸如創建、更新、刪除、傳播或與另一個類的物件通信的調用。函數、方法、應用程式設計發展介面(API)或其他調用機制可以實現物件之間的調用。例如,第一物件可以調用函數來創建第二物件。
本公開的實現方式涉及基於邏輯映射遍歷由智能合約資料庫使用的MPT的KVP集。更具體地,本公開的實現方式涉及配置包括多個函數的邏輯映射。這些函數可用於操縱多個KVP,以在MPT中遍歷該KVP集。
圖1描繪了可用於執行本公開實現方式的示例環境100。在一些示例中,示例環境100使實體能夠參與聯盟區塊鏈102。示例環境100包括計算系統106、108和網路110。在一些示例中,網路110包括局域網(LAN)、廣域網路(WAN)、網際網路或其組合,並且網路110將網站、使用者設備(例如,計算設備)和後端系統連接起來。在一些示例中,可以通過有線和/或無線通訊鏈路來存取網路110。
在所描繪的示例中,計算系統106、108可以各自包括任何合適的計算系統,這些計算系統允許作為節點參與聯盟區塊鏈系統102,以便在區塊鏈104中儲存交易。示例計算設備包括但不限於:伺服器、桌上型電腦、筆記型電腦、平板計算設備和智慧型電話。在一些示例中,計算系統106、108承載一個或多個電腦實現的、與聯盟區塊鏈系統102交互的服務。例如,計算系統106可以承載第一實體(例如,使用者A)的電腦實現的服務,如第一實體用於管理其與一個或多個其他實體(例如,其他使用者)交易的交易管理系統。計算系統108可以承載第二實體(例如,使用者B)的電腦實現的服務,如第二實體用於管理其與一個或多個其他實體(例如,其他使用者)交易的交易管理系統。在圖1的示例中,聯盟區塊鏈系統102被表示為節點的點對點網路,並且計算系統106、108分別提供參與聯盟區塊鏈系統102的第一實體和第二實體的節點。
圖2描繪了根據本公開實現方式的示例概念架構200。示例概念架構200包括實體層202,服務承載層204和區塊鏈層206。在所描繪的示例中,實體層202包括三個實體,實體1(E1)、實體2(E2)和實體3(E3),每個實體具有相應的交易管理系統208。
在所描繪的示例中,服務承載層204包括每個交易管理系統208的區塊鏈介面210。在一些示例中,相應的交易管理系統208通過網路(例如,圖1的網路110)使用通信協定(例如,超文字傳輸安全協定(HTTPS))與相應的區塊鏈介面210通信。在一些示例中,每個區塊鏈介面210為相應的交易管理系統208和區塊鏈層206之間提供通信連接。更具體地,每個區塊鏈介面210使得相應的實體能夠進行記錄在區塊鏈層206的聯盟區塊鏈系統212中的交易。在一些示例中,使用遠端程序呼叫(Remote Procedure Call,RPC)來進行區塊鏈介面210與區塊鏈層206之間的通信。在一些示例中,區塊鏈介面210“承載”各交易管理系統208的共識節點。例如,區塊鏈介面210提供用於存取聯盟區塊鏈系統212的應用程式設計發展介面(API)。
如上所述,智能合約在區塊鏈平臺中被編碼和執行。示例性區塊鏈平臺包括但不限於:由瑞士楚格的乙太坊基金會提供的乙太坊。儘管本公開的實現方式在此參考乙太坊進行了更詳細的描述,但是可以預期本公開的實現方式可以在任何適當的平臺中實現。
在某些區塊鏈平臺、例如乙太坊中,可以使用狀態機,其中交易可以導致狀態之間的轉變。在某些情況下,乙太坊區塊鏈的編碼為MPT的狀態被儲存為KVP集。該KVP集中的鍵和值可以形成映射關係。然而,除非鍵已知,否則不能僅基於映射關係遍歷該KVP集。在高層級上,本公開的實現方式提供了創建和操作包括多個KVP的邏輯映射的函數。基於該邏輯映射的多個KVP,使用者可以選擇該MPT的KVP來遍歷或執行其他操作。
圖3描繪了根據本公開實現方式創建的用於遍歷MPT的邏輯映射的示例過程300。為了表達清楚,以下大致描述在本說明書中其他圖式的背景下的示例過程300。然而,應當理解,示例過程300可以由任何系統、環境、軟體和硬體執行,也可以由系統、環境、軟體和硬體的組合(視情況而定)執行。在一些實現方式中,示例過程300的各個步驟可以並行運行、組合運行、循環運行或以任何順序運行。
在302處,可以生成邏輯映射的鍵集。該邏輯映射可用於遍歷MPT中包括的KVP集。參考圖4為例,圖4描繪了根據本公開實現方式對應於示例邏輯映射和示例MPT的示例KVP 400。在該示例400中,假設創建邏輯映射以遍歷該MPT的兩個選中的KVP。表402示出了該MPT的邏輯KVP,其包括具有鍵“Alice”和對應的值“22”的第一KVP,以及具有鍵“Bob”和對應的值“23”的第二KVP。表404顯示了儲存在智能合約資料庫中的兩個KVP的實際形式。如表404所示,鍵可以作為雜湊(hash)值儲存在資料庫中。
為了創建具有可用於遍歷MPT的這兩個KVP的具有KVP的邏輯映射,可以生成該映射的多個KVP。例如,假設邏輯映射被命名為“Dict_A”,如表406所示,可以生成鍵“Dict_A_KEY_VALUE_Alice”以與值“22”相關聯,可以生成對應於索引“1”的鍵“Dict_A_KEY_INDEX _Alice”,索引“1”分配給表402中的鍵“Alice”。類似地,可以生成鍵“Dict_A_KEY_VALUE_Bob”以與值“23”相關聯,可以生成對應於索引“2”的鍵“Dict_A_KEY_INDEX _Bob”,索引“2”分配給表402中的鍵“Bob”。如表408所示,類似於MPT中的KVP,邏輯映射中的KVP的鍵可以作為雜湊值儲存在實際的智能合約資料庫中。
在一些實現中,可以為邏輯映射生成附加的索引鍵。這些索引鍵所關聯的值可以用於標識該邏輯映射中的其他鍵。例如,表406中的鍵“Dict_A_INDEX_KEY_1”和“Dict_A_INDEX_KEY_2”可以與值“Alice”和“Bob”相關聯。值“Alice”和“Bob”可用於標識邏輯映射中的其他鍵,例如“Dict_A_KEY_VALUE_Alice”和“Dict_A_KEY_VALUE _Bob”。
在304處,可以由創建該映射的使用者為鍵集中的鍵輸入值。例如,在生成鍵“Dict_A_KEY_VALUE_ Alice”之後,使用者可以輸入值“Alice”與該鍵相關聯。該值可以是MPT中使用者想要包括在映射中的KVP的值。
在306處,可以確定是否存在用於遍歷該邏輯映射的索引。在一些實現方式中,可以基於是否存在與索引對應的鍵(例如,“Dict_A_KEY_INDEX_Alice”)進行確定。如果是,則示例性過程300進展到308,其中將對應於刪除標誌的鍵的值設置為“False”(假)。再次參考圖4作為示例,如果存在索引值“1”,則可以將用於指示與“Alice”對應的索引是否被刪除的鍵“Dict_A_KEY_DELETE _Alice”的值設置為“False”。類似地,如果存在索引值“2”,則可以將鍵“Dict_A_KEY_DELETE_Bob”的值設置為“False”。否則,圖3中描繪的示例過程300進展到310。
在310處,添加新索引。在一些實現方式中,為了添加新索引,可以創建映射的另一個鍵,該鍵指示已添加到該邏輯映射的所有索引。例如,如果對應於“Alice”和“Bob”的索引已被添加到邏輯映射中,則該邏輯映射的大小為2。假設從邏輯映射中刪除了索引“2”,邏輯映射的大小仍然是2。再次參考圖4,對應於邏輯映射的大小的示例鍵可以表示為“Dict_A_SIZE”,並且其對應的值是“2”。如果刪除了索引“2”,則可以將映射的大小增加1以包括分配給“Bob”的新索引。例如,鍵“Dict_A_KEY _INDEX_Bob”和鍵“Dict_A_SIZE”現在可以對應於值“3”。相比之下,表406中的鍵“Dict_A_LENGTH”可以指示邏輯映射中包括的實際KVP的數量。即使刪除了索引“2”並且鍵“Dict_A_KEY_INDEX_Bob”現在對應於值“3”,“Dict_A_LENGTH”仍然是2,因為邏輯映射只映射了兩個鍵“Alice”和“Bob”。然而,如果鍵“Dict_A_KEY_DELETE _Bob”對應於值“False”,並且添加新索引以在邏輯映射中包括另一個KVP,則鍵“Dict_A_LENGTH”的值可以增加1。
根據示例過程300的描述創建邏輯映射的示例偽代碼可表示為:
圖5描繪了根據本公開實現方式使用邏輯映射來遍歷MPT的示例過程500。為了表達清楚,以下大致描述在本說明書中其他圖式的背景下的示例過程500。然而,應當理解,示例過程500可以由任何系統、環境、軟體和硬體執行,也可以由系統、環境、軟體和硬體的組合(視情況而定)執行。在一些實現方式中,示例過程500的各個步驟可以並行運行、組合運行、循環運行或以任何順序運行。
在502處,識別對應於索引的鍵。在一些實現方式中,可以通過該邏輯映射中定義的索引來遍歷MPT中的KVP。以在圖3和圖4的描述中討論的邏輯映射為例,索引“1”可用於識別索引鍵“Dict_A_INDEX_KEY_1”。並且由圖4的表406可以返回對應的值“Alice”。基於索引鍵返回的值的偽代碼示例可表示為:
基於圖4的表406中所示的邏輯映射,從“Dict_A _INDEX_KEY_1”返回的值是“Alice”。然後可以使用值“Alice”來識別鍵“Dict_A_KEY_VALUE_Alice”,以檢索MPT中“Alice”的真值“22”。偽代碼示例可表示為:
在504處,確定對應於索引鍵的刪除標誌是否為“False”。當刪除標誌設置為“False”時,可以表示索引鍵未被刪除。否則,將刪除標誌設置為“True”(真)。如在圖3的描述中所討論的那樣,如果刪除標誌被設置為“False”,則在506處返回相應的索引。否則,刪除標誌表示索引鍵被刪除,示例性過程500進展到508,其中相應的索引加“1”。參考圖4中討論的示例,假設示例過程500以索引“1”開始。如果刪除標誌是“False”,則可以推斷出索引“1”沒有被刪除,可以基於502處描述中討論的過程來檢索相應的KVP“Alice”和“22”。否則,索引增加到“2”。如果對應於索引“2”的刪除標誌是“False”,則可以檢索相應的KVP“Bob”和“23”。用於基於索引遍歷KVP的示例偽代碼可以表示為:
在一些實現方式中,邏輯映射可以包括函數來識別該映射中是否包含鍵。對應於該函數的示例偽代碼可表示為:
在一些實現方式中,邏輯映射可以包括函數以從邏輯映射中移除KVP。如果從該邏輯映射中移除KVP,則可以將刪除標誌設置為“True”,相應的值可以設置為“None”,並且邏輯映射的“length”可以減1。對應於移除函數的示例偽代碼可表示為:
圖6描繪了根據本公開實現方式遍歷智能合約資料庫的示例過程。為了表達清楚,以下大致描述在本說明書中其他圖式的背景下的示例過程600。然而,應當理解,示例過程600可以由任何系統、環境、軟體和硬體執行,也可以由系統、環境、軟體和硬體的組合(視情況而定)執行。在一些實現方式中,示例過程600的各個步驟可以並行運行、組合運行、循環運行或以任何順序運行。
在602處,確定與智能合約資料庫使用的MPT的第一KVP集中的一個KVP對應的索引的第一數字。
在604處,基於所述索引的所述第一數字,確定用於遍歷MPT的映射的第二KVP集中的第一KVP的第一鍵。
在606處,確定所述第一KVP的所述第一鍵對應的第一值。
在608處,確定所述第二KVP集中的第二KVP的第二鍵。在一些實現方式中,所述第一KVP集中的KVP的數量小於或等於所述第二KVP集中的KVP的數量。在一些實現方式中,所述第一KVP集中的鍵和所述第二KVP集中的鍵被儲存成雜湊值。在一些實現方式中,所述第二KVP集包括的一個或多個值與所述第一KVP集中包括的一個或多個值相同,以及第二KVP集包括的一個或多個值與第一KVP集中包括的一個或多個鍵相同。在一些實現方式中,所述第二KVP集包括用於指示所述索引中所包含的數字的一個或多個值,用於指示所述第一KVP集中的一個或多個KVP是否被刪除的一個或多個值,以及所述第一KVP集中的KVP的數量。
在610處,檢索與所述第二KVP的所述第二鍵對應的第二值。在一些示例中,可以基於所述索引的第二數字確定所述第二KVP集中的第三KVP的第三鍵。在一些示例中,可以確定所述索引的所述第二數字未被刪除。在一些示例中,可以確定與該第三KVP的第三鍵對應的第三值。在一些示例中,可以確定第二KVP集中的第四KVP的第四鍵。在一些示例中,可以檢索與所述第四KVP的所述第四鍵對應的第四值。
本說明書中描述的實現方式和操作,包括本說明書中公開的結構或者它們中的一個或多個的組合,可以在數位電子電路中實現,或者在電腦軟體、韌體或硬體中實現。該操作可以通過資料處理裝置對儲存在一個或多個電腦可讀儲存設備上的資料或從其他源接收的資料執行運算來實現。資料處理裝置、電腦或計算設備可以包括用於處理資料的裝置、設備和機器,包括例如可編程處理器、電腦、系統單晶片,或者前述的多個,或組合。裝置可以包括專用邏輯電路,例如,中央處理單元(CPU)、現場可編程閘陣列(FPGA)或專用積體電路(ASIC)。裝置還可以包括為所討論的電腦程式創建執行環境的代碼,例如,構成處理器韌體的代碼、協定堆疊、資料庫管理系統、作業系統(例如作業系統或作業系統的組合)、跨平臺運行時環境、虛擬機器,或它們中的一個或多個的組合。裝置和執行環境可以實現各種不同的計算模型架構,如web服務、分散式運算和網格計算架構。
電腦程式(也稱為程式、軟體、軟體應用、軟體模組、軟體單元、腳本或代碼)可以用任何形式的編程語言編寫,包括編譯或解釋語言,聲明性的或程式語言;電腦程式可以部署為任何形式,包括作為獨立程式或作為模組、組件、子程式、物件或適合在計算環境中執行的其他單元。程式可以儲存在保存其他程式或資料的檔的一部分中(例如,儲存在標記語言文檔中的一個或多個腳本),可以儲存在專用於所討論的程式的單個檔中,或儲存在多個協調檔中(例如,儲存一個或多個模組、子程式或代碼部分的檔)。電腦程式可以在一台電腦上或在多台電腦上執行,這些電腦位於一個網站或分佈在多個網站上並通過通信網路互連。
作為示例,用於執行電腦程式的處理器包括通用和專用微處理器,以及任何類型的數位電腦的任何一個或多個處理器。通常,處理器從唯讀記憶體或隨機存取記憶體或兩者接收指令和資料。電腦的基本元件是用於根據指令執行操作的處理器和用於儲存指令和資料的一個或多個記憶體設備。通常,電腦還包括或可操作地連接至用於儲存資料的一個或多個大型存放區設備,可以從該儲存設備接收資料或傳輸資料至該儲存設備或收發資料。電腦可以嵌入在另一個設備中,例如,移動設備、個人數位助理(PDA)、遊戲控制台、全球定位系統(GPS)接收器或可攜式儲存設備。適用於儲存電腦程式指令和資料的設備包括非易失性記憶體、媒體和記憶體設備,例如包括半導體記憶體設備、磁片和磁光碟。處理器和記憶體可以由專用邏輯電路補充或併入專用邏輯電路中。
移動設備可以包括手機、使用者設備(UE)、行動電話(例如,智能手機)、平板電腦、可穿戴設備(例如,智能手錶和智能眼鏡)、人體內的植入設備(例如,生物感測器、人工耳蝸植入物)、或其他類型的移動設備。移動設備可以無線地(例如,使用射頻(RF)信號)與各種通信網路(下文描述的)通信。移動設備可以包括用於確定移動設備的當前環境特性的感測器。感測器可包括相機、麥克風、近距離感測器、GPS感測器、運動感測器、加速度測量計、環境光感測器、濕度感測器、陀螺儀、指南針、氣壓計、指紋感測器、臉部識別系統、RF感測器(例如,WiFi和蜂窩無線電)、熱感測器或其他類型的感測器。例如,相機可包括具有可移動或固定鏡頭的前置或後置攝像頭、閃光燈、圖像感測器和影像處理器。相機可以是百萬像素相機,能夠捕捉臉部和/或虹膜識別的細節。相機連同資料處理器和儲存在記憶體或可遠端存取的認證資料一起,可以形成臉部識別系統。臉部識別系統或一個或多個感測器,例如,麥克風、運動感測器、加速度測量計、GPS感測器或RF感測器,可以用於使用者認證。
為了提供與使用者的交互,實現方式可以在具有顯示裝置和輸入裝置的電腦上實現,例如,用於向使用者顯示資訊的液晶顯示器(LCD)或有機發光二極體(OLED)/虛擬實境(VR)/增強顯示(AR)顯示器,以及可向使用者提供輸入至電腦的觸控式螢幕、鍵盤和指標裝置。其他類型的設備也可用於提供與使用者的交互;例如,提供給使用者的回饋可以是任何形式的感覺回饋,如視覺回饋、聽覺回饋或觸覺回饋;並且可以接收來自使用者的任何形式的輸入,包括聲學、語音或觸覺輸入。另外,電腦可通過向使用者使用的設備發送文檔和從使用者使用的設備接收文檔來與使用者交互;例如,通過向客戶設備上的網頁瀏覽器發送網頁以回應從網路瀏覽器接收到的請求。
實現方式可以使用電腦設備實現,電腦設備通過任意形式互聯,或者通過有線或無線數位資料通信(或其組合)的媒介互聯,例如,通信網路。互聯設備的示例為,常見的相互遠離的客戶端和伺服器常通過通信網路交互。客戶端,例如,移動設備,可以自身與伺服器進行交易,或通過伺服器進行交易,例如進行買、賣、支付、給予、發送或貸款交易,或授權以上交易。這種交易可以是即時的,因此操作和回應在時間上是接近的;例如,個體感知操作和回應基本上是同時發生的,個體操作後響應的時間差小於1毫秒(ms)或小於1秒(s),或考慮到系統的處理限制、回應不存在故意延遲。
通信網路的示例包括區域網路(LAN)、無線存取網(RAN)、都會區網路(MAN)和廣域網路(WAN)。通信網路可以包括所有或部分網際網路、其他通信網路或通信網路的組合。可以根據各種協定和標準在通信網路上傳輸資訊,包括長期演進(LTE)、5G、IEEE 802、網際網路協議(IP)或其他協定或協定組合。通信網路可以在連接的計算設備之間傳輸音頻、視頻、生物特徵、認證資料、或其他資訊。
在獨立的實現方式中描述的多個特徵可以在單個實現方式組合地實現,而在單個實現方式描述的多個特徵可以在多個實現方式中,單獨地或者以任何合適的子組合來實現。按特定順序描述和聲明的操作不應被理解為必須以該特定順序進行,也不必執行所有示出的操作(一些操作可以是可選的)。適當時,可以執行多工處理或並行處理(或多工處理和並行處理的組合)。
100:示例環境
102:聯盟區塊鏈
104:區塊鏈
106、108:計算系統
110:網路
200:示例概念架構
202:實體層
204:服務承載層
206:區塊鏈層
208:交易管理系統
210:區塊鏈介面
212:聯盟區塊鏈系統
圖1描繪了可用於執行本公開的實現方式的示例環境。
圖2描繪了根據本公開的實現方式的示例概念架構。
圖3描繪了根據本公開的實現方式創建用於遍歷MPT的邏輯映射的示例過程。
圖4描繪了根據本公開的實現方式對應於示例邏輯映射和示例MPT的示例KVP。
圖5描繪了根據本公開的實現方式使用邏輯映射來遍歷MPT的示例過程。
圖6描繪了根據本公開的實現方式遍歷智能合約資料庫的示例過程。
各圖式中相同的圖式標記表示相同的部件。
Claims (9)
- 一種遍歷智能合約資料庫的電腦實現方法,包括: 確定與智能合約資料庫使用的默克爾派特裡夏樹MPT的第一鍵值對KVP集中的一個KVP對應的索引的第一數字; 基於所述索引的所述第一數字,確定用於遍歷所述MPT的映射的第二KVP集中的第一KVP的第一鍵; 確定與所述第一KVP的所述第一鍵對應的第一值; 確定所述第二KVP集中的第二KVP的第二鍵;和 檢索與所述第二KVP的所述第二鍵對應的第二值。
- 根據申請專利範圍第1項所述的電腦實現方法,還包括: 基於所述索引的第二數字,確定所述第二KVP集中的第三KVP的第三鍵; 確定與所述第三KVP的所述第三鍵對應的第三值; 確定所述第二KVP集中的第四KVP的第四鍵;和 檢索與所述第四KVP的所述第四鍵對應的第四值。
- 根據申請專利範圍第2項所述的電腦實現方法,還包括: 確定所述索引的所述第二數字未被刪除。
- 根據申請專利範圍第1項所述的電腦實現方法,其中,所述第一KVP集中的KVP數量小於或等於所述第二KVP集中的KVP數量。
- 根據申請專利範圍第1項所述的電腦實現方法,其中,所述第一KVP集中的鍵和所述第二KVP集中的鍵被儲存為雜湊值。
- 根據申請專利範圍第1項所述的電腦實現方法,其中, 所述第二KVP集包括的一個或多個值與所述第一KVP集中包括的一個或多個值相同,以及 所述第二KVP集包括的一個或多個值與所述第一KVP集中包括的一個或多個鍵相同。
- 根據申請專利範圍第1項所述的電腦實現方法,其中,所述第二KVP集包括: 一個或多個值,用於指示所述索引中包含的數字, 一個或多個值,用於指示所述第一KVP集中的一個或多個KVP是否被刪除,以及 所述第一KVP集中的KVP的數量。
- 一種非暫態性電腦可讀儲存媒體,連接到一個或多個處理器,並且具有儲存在其上的指令,當所述一個或多個處理器執行所述指令時,使所述一個或多個處理器根據申請專利範圍第1-7項中的一個或多個方法執行操作。
- 一種系統,包括: 計算設備;和 電腦可讀儲存設備,其連接到所述計算設備,並且具有儲存在其上的指令,當由所述計算設備執行所述指令時,使所述計算設備根據申請專利範圍第1-7項中的一個或多個方法執行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/114410 WO2019072266A2 (en) | 2018-11-07 | 2018-11-07 | CROSSING AN INTELLIGENT CONTRACT DATA BASE THROUGH A LOGIC CARD |
WOPCT/CN2018/114410 | 2018-11-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202101279A true TW202101279A (zh) | 2021-01-01 |
Family
ID=66100053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108124840A TW202101279A (zh) | 2018-11-07 | 2019-07-15 | 通過邏輯映射遍歷智能合約資料庫 |
Country Status (14)
Country | Link |
---|---|
US (1) | US11403344B2 (zh) |
EP (1) | EP3542278A4 (zh) |
JP (1) | JP6869342B2 (zh) |
KR (1) | KR102238954B1 (zh) |
CN (1) | CN110291514A (zh) |
AU (1) | AU2018347188A1 (zh) |
BR (1) | BR112019008154A2 (zh) |
CA (1) | CA3041158A1 (zh) |
MX (1) | MX2019004676A (zh) |
PH (1) | PH12019500897A1 (zh) |
RU (1) | RU2019111895A (zh) |
SG (1) | SG11201903584YA (zh) |
TW (1) | TW202101279A (zh) |
WO (1) | WO2019072266A2 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11202001890UA (en) | 2019-05-14 | 2020-03-30 | Alibaba Group Holding Ltd | Methods and devices for data traversal |
US11513815B1 (en) * | 2019-05-24 | 2022-11-29 | Hiro Systems Pbc | Defining data storage within smart contracts |
US11657391B1 (en) | 2019-05-24 | 2023-05-23 | Hiro Systems Pbc | System and method for invoking smart contracts |
US10699269B1 (en) | 2019-05-24 | 2020-06-30 | Blockstack Pbc | System and method for smart contract publishing |
WO2019179539A2 (en) | 2019-07-11 | 2019-09-26 | Alibaba Group Holding Limited | Shared blockchain data storage |
CN111448781B (zh) | 2019-07-11 | 2022-08-26 | 创新先进技术有限公司 | 一种计算机实现的用于通信共享的区块链数据的方法 |
SG11202001975SA (en) * | 2019-07-11 | 2020-04-29 | Alibaba Group Holding Ltd | Shared blockchain data storage |
EP3676787B1 (en) * | 2019-08-30 | 2022-10-12 | Advanced New Technologies Co., Ltd. | Methods and devices for providing traversable key-value data storage on blockchain |
US10585882B1 (en) | 2019-09-23 | 2020-03-10 | Trace, LLC | Systems and methods for writing updates to and/or reading previously stored updates of assets implemented as smart contracts on a decentralized database |
WO2021184325A1 (en) * | 2020-03-19 | 2021-09-23 | Wang Chau Tyler Kot | Ethereum state data storage optimization method, ethereum system and storage medium |
CN111596954B (zh) * | 2020-05-12 | 2023-08-01 | 杭州溪塔科技有限公司 | 一种基于区块链的分布式版本控制方法及系统 |
US11972440B1 (en) * | 2020-06-05 | 2024-04-30 | Trace Labs Llc | Systems and methods for providing a decentralized anti-counterfeit solution for supply chain tracking using single-use codes |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010003129A2 (en) | 2008-07-03 | 2010-01-07 | The Regents Of The University Of California | A method for efficiently supporting interactive, fuzzy search on structured data |
US20130124545A1 (en) | 2011-11-15 | 2013-05-16 | Business Objects Software Limited | System and method implementing a text analysis repository |
US9152642B2 (en) | 2012-12-21 | 2015-10-06 | Zetta, Inc. | Systems and methods for on-demand data storage |
WO2016053760A1 (en) * | 2014-09-30 | 2016-04-07 | Raistone, Inc. | Systems and methods for transferring digital assets using a de-centralized exchange |
JP6268116B2 (ja) * | 2015-03-20 | 2018-01-24 | 東芝メモリ株式会社 | データ処理装置、データ処理方法およびコンピュータプログラム |
CN115174089B (zh) * | 2015-04-20 | 2024-05-03 | 欧吉达克斯公司 | 物权电子凭证(edt)的分布式管理方法及其系统 |
WO2017145009A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | A method and system for securing computer software using a distributed hash table and a blockchain |
US20170255950A1 (en) * | 2016-03-04 | 2017-09-07 | Forecast Foundation Ou | Systems and methods for providing block chain state proofs for prediction market resolution |
US10235374B2 (en) * | 2016-03-08 | 2019-03-19 | International Business Machines Corporation | Key-value store for managing user files based on pairs of key-value pairs |
US10046228B2 (en) * | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
SG11201811425TA (en) * | 2016-09-22 | 2019-01-30 | Visa Int Service Ass | Techniques for in-memory key range searches |
US11128603B2 (en) | 2016-09-30 | 2021-09-21 | Nec Corporation | Method and system for providing a transaction forwarding service in blockchain implementations |
CN107103098A (zh) | 2017-05-12 | 2017-08-29 | 曾建伟 | 一种包含智能合约的区块链网式数据库及工作方法 |
CN107332847B (zh) * | 2017-07-05 | 2019-04-26 | 武汉凤链科技有限公司 | 一种基于区块链的访问控制方法和系统 |
CN108595538B (zh) * | 2018-04-04 | 2020-05-01 | 中国地质大学(武汉) | 一种基于区块链的键值数据组织方法及系统 |
CN108615156A (zh) * | 2018-05-09 | 2018-10-02 | 上海魅联信息技术有限公司 | 一种基于区块链的数据结构 |
-
2018
- 2018-11-07 JP JP2019521792A patent/JP6869342B2/ja active Active
- 2018-11-07 KR KR1020197011561A patent/KR102238954B1/ko active IP Right Grant
- 2018-11-07 MX MX2019004676A patent/MX2019004676A/es unknown
- 2018-11-07 RU RU2019111895A patent/RU2019111895A/ru unknown
- 2018-11-07 SG SG11201903584YA patent/SG11201903584YA/en unknown
- 2018-11-07 EP EP18866631.7A patent/EP3542278A4/en not_active Withdrawn
- 2018-11-07 CN CN201880004900.XA patent/CN110291514A/zh active Pending
- 2018-11-07 BR BR112019008154A patent/BR112019008154A2/pt not_active IP Right Cessation
- 2018-11-07 AU AU2018347188A patent/AU2018347188A1/en not_active Abandoned
- 2018-11-07 CA CA3041158A patent/CA3041158A1/en not_active Abandoned
- 2018-11-07 WO PCT/CN2018/114410 patent/WO2019072266A2/en unknown
-
2019
- 2019-04-22 US US16/390,802 patent/US11403344B2/en active Active
- 2019-04-24 PH PH12019500897A patent/PH12019500897A1/en unknown
- 2019-07-15 TW TW108124840A patent/TW202101279A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
RU2019111895A3 (zh) | 2020-10-19 |
EP3542278A4 (en) | 2019-12-18 |
CA3041158A1 (en) | 2019-04-18 |
JP2020503585A (ja) | 2020-01-30 |
KR20200054126A (ko) | 2020-05-19 |
AU2018347188A1 (en) | 2020-05-21 |
WO2019072266A2 (en) | 2019-04-18 |
EP3542278A2 (en) | 2019-09-25 |
MX2019004676A (es) | 2019-08-21 |
JP6869342B2 (ja) | 2021-05-12 |
KR102238954B1 (ko) | 2021-04-14 |
CN110291514A (zh) | 2019-09-27 |
SG11201903584YA (en) | 2019-05-30 |
US11403344B2 (en) | 2022-08-02 |
BR112019008154A2 (pt) | 2019-09-10 |
PH12019500897A1 (en) | 2019-12-02 |
RU2019111895A (ru) | 2020-10-19 |
US20190251124A1 (en) | 2019-08-15 |
WO2019072266A3 (en) | 2019-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202101279A (zh) | 通過邏輯映射遍歷智能合約資料庫 | |
US10789270B2 (en) | Blockchain based data processing method and device | |
KR102396739B1 (ko) | 자산 관리 방법 및 장치, 및 전자 디바이스 | |
KR102215773B1 (ko) | 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호 | |
JP6828163B2 (ja) | ブロックチェーン取引調停方法および装置、ならびに電子デバイス | |
JP6830530B2 (ja) | アカウントモデルの下でパブリックおよびプライベートトランザクションをサポートするブロックチェーンシステム | |
JP6810259B2 (ja) | ワークフローに基づくブロックチェーンネットワーク上での非公開のトランザクションの管理 | |
KR101247859B1 (ko) | 컴퓨팅 디바이스들 간의 동적 콘텐츠 프리퍼런스 및 동작 공유 | |
US11943354B2 (en) | Privacy safe joint identification protocol | |
WO2021227706A1 (zh) | 数据处理方法、装置、计算机设备以及存储介质 | |
US12010240B2 (en) | Augmented-reality experience control through non-fungible token | |
KR20240074814A (ko) | 독특함 대 오픈-에디션 대체 불가능한 토큰 다이내믹스 | |
WO2022267769A1 (zh) | 图数据生成的方法及装置 | |
CN113806358B (zh) | 实现子表复制的方法和系统以及计算机可读存储介质 | |
US20240195642A1 (en) | Systems and methods for providing a decentralized processing network |