CA3013855A1 - An extended blockchain design having a state chain - Google Patents

An extended blockchain design having a state chain

Info

Publication number
CA3013855A1
CA3013855A1 CA3013855A CA3013855A CA3013855A1 CA 3013855 A1 CA3013855 A1 CA 3013855A1 CA 3013855 A CA3013855 A CA 3013855A CA 3013855 A CA3013855 A CA 3013855A CA 3013855 A1 CA3013855 A1 CA 3013855A1
Authority
CA
Canada
Prior art keywords
nodes
blockchain
block
blockchain system
transaction
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
CA3013855A
Other languages
French (fr)
Inventor
Enyan DENG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tiande Technologies Ltd
Original Assignee
Beijing Tiande Technologies Ltd
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 Beijing Tiande Technologies Ltd filed Critical Beijing Tiande Technologies Ltd
Publication of CA3013855A1 publication Critical patent/CA3013855A1/en
Abandoned legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention describes an extensible blockchain design that incorporates a state chain. The state chain stores all the account status information in the blockchain system. The state chain maintains the account status information. The state chain can perform branch numbering, chain splitting, chain merging and parallel block building on the blockchain system. Adding the state chain to maintain the account state information makes the operations on the transaction blockchain more secure and efficient.

Description

AN EXTENDED BLOCKCHAIN DESIGN HAVING A STATE CHAIN
Technical Field [0001] The present application relates generally to a blockchain system, and in particular to a blockchain system incorporating state chain.
Background Art
[0002] Blockchain is a technical solution for maintaining a reliable database by means of collective participation and consensus. Blockchain can be thought of as a distributed database system involving a networked set of computing devices called nodes. Blockchain has often been understood and described as a distributed ledger technology jointly maintained by multiple nodes. The system enables any node participating in the blockchain to compute and record all data exchanged in the system through a cryptographic algorithm to a block, and generate the fingerprint of the block for linking to the next block, and to check with other participating nodes to jointly determine whether the record is true.
[0003] A blockchain, as the name implies, is composed of blocks that are connected or chained end to end, whereby each block includes information or data for a period of time, and is time stamped. Based on the index hash value of the previous block, a new block gets connected to the chain.
[0004] Blockchain implements two types of records: transactions and blocks.
Trades are the actual data that is stored on the blockchain, while blocks are records that confirm when and in which order certain trades were recorded in the blockchain database. Trades are created by participants using the system during normal processes, while blocks are created by a unit called miner.
[0005] In current blockchain systems, usually only one blockchain is used to store historical transaction information, and operations in the blockchain depend on this blockchain. At the same time, additional account information is required, such as UTXO (Unspent Transaction Output) for Bitcoin, and traditional database technology used by Ethereum to store additional account information. The disadvantage is that each node is to maintain their own account information, rather than using the blockchain to achieve the same. Furthermore, the information may be easily tampered with.
[0006] Accordingly, improvements in the design of blockchain systems are desired to mitigate the risks associated with the lack of state information within the blockchain system and to improve security and efficiency.
Summary of Invention
[0007] Embodiments of the present invention incorporate a separate state chain into the blockchain system for information storage. The use of a state chain retains the advantages of the original blockchain design, while adding some proprietary features, making the blockchain more secure and efficient.
[0008] In accordance with one aspect of the present invention, there is provided a blockchain system including a plurality of nodes, a transaction blockchain and a state chain that stores account information. The system is operable to: perform a splitting operation on the transaction blockchain to form new branches for subsequent transactions. The state chain generates a branch number for labeling each of the new branches obtained by the splitting operation.
[0009] In accordance with another aspect of the present invention, there is provided a blockchain system that includes a plurality of nodes and a state chain. In response to a transaction causing a change in the state of an account, each of the nodes receives status information on the transaction from a trading blockchain. The system is operable to: a) receive at the state chain, the status information, in response to the change to the account; b) build a new block using a selected one of said nodes, and broadcast the block to all the other nodes; c) at each node, i) verify the received block and broadcast verification results via a vote to the other nodes;
ii) collect data representative of votes of each of the other nodes, and use a public key corresponding to said each of the other nodes, to decrypt said collected data, and verify correctness of the data; iii) after receiving the data representative of votes, sign the data with own private key and broadcast to all other nodes again; iv) receive the voting information forwarded by each of said all other nodes in step (iii) and decrypt with a corresponding public key to verify the correctness of the data; v) summarize the voting results received in step (iv), and store the blocks that pass verification.
Brief Description of Drawings
[0010] In the figures, which illustrate by way of example only, embodiments of the present invention,
[0011] FIG. 1 is a simplified schematic diagram illustrating a branch numbering model employed by embodiments of the present invention;
[0012] FIG. 2 is a simplified schematic diagram illustrating a spitting operation for a blockchain, according to an exemplary embodiment of the present invention; and
[0013] FIG. 3 is another simplified schematic diagram, illustrative of an exemplary process for recording branch transactions using a bucket model that employs round robin allocation.
Description of Embodiments
[0014] A description of various embodiments of the present invention is provided below.
[0015] In this disclosure, the use of the word "a" or "an" when used herein in conjunction with the term "comprising" may mean "one," but it is also consistent with the meaning of "one or more," "at least one" and "one or more than one." Any element expressed in the singular form also encompasses its plural form. Any element expressed in the plural form also encompasses its singular form. The term "plurality" as used herein means more than one, for example, two or more, three or more, four or more, and the like. Directional terms such as "top", "bottom", "upwards", "downwards", "vertically" and "laterally" are used for the purpose of providing relative reference only, and are not intended to suggest any limitations on how any article is to be positioned during use, or to be mounted in an assembly or relative to an environment.
[0016]
The terms "comprising", "having", "including", and "containing", and grammatical variations thereof, are inclusive or open-ended and do not exclude additional, un-recited elements and/or method steps.
The term "consisting essentially of' when used herein in connection with a composition, use or method, denotes that additional elements, method steps or both additional elements and method steps may be present, but that these additions do not materially affect the manner in which the recited composition, method, or use functions. The term "consisting of' when used herein in connection with a composition, use, or method, excludes the presence of additional elements and/or method steps.
[0017]
A "blockchain" is a tamper-evident, shared digital ledger that records transactions in a public or private peer-to-peer network of computing devices. The ledger is maintained as a growing sequential chain of cryptographic hash-linked blocks.
[0018]
A "node" is a device on a blockchain network. The device is typically a computer having a processor interconnected to a processor readable medium including memory, having processor readable instructions thereon.
[0019]
In addition, the terms "first", "second", "third" and the like are used for descriptive purposes only and cannot be interpreted as indicating or implying relative importance.
[0020]
In the description of the invention, it should also be noted that the terms "mounted", "linked" and "connected" should be interpreted in a broad sense unless explicitly defined and limited otherwise. For example, it could be fixed connection, or assembled connection, or integrally connected; either hard-wired or soft-wired; it may be directly connected or indirectly connected through an intermediary. For technical professionals, the specific meanings of the above terms in the invention may be understood in context.
[0021] In the drawings illustrating embodiments of the present invention, the same or similar reference labels correspond to the same or similar parts. In the description of the invention, it should be noted that the meaning of "a plurality of' means two or more unless otherwise specified; The directions or positions of the terms "up", "down", "left", "right", "inside", "outside", "front end", "back end", "head", "tail", the orientation or positional relationship shown in the drawings is merely for the convenience of describing the invention and simplifying the description rather than indicating or implying that the indicated device or element must have a particular orientation and be constructed and operated in a particular orientation, and therefore cannot be used as a limitation of the invention.
The technical problem to be solved by this invention is to provide an extended design method for blockchain, adding a state chain to maintain the account status information, and making the blockchain run more securely and efficiently.
[0022] In one aspect, at least one embodiment of the invention provides a blockchain, that includes a state chain. The state chain stores information in the blockchain system. The information stored using the state chain includes account status information, blockchain branch number, and information associated with chain splitting, chain merging, and parallel block building operations.
[0023] The branch number refers to the assigned number of the state chain branch. Chain splitting refers to dividing blockchain in question into two regions and thus two blockchains.
Chain merging refers to merging the two originally separate blockchains together. Parallel block building refers to two branch chains that build blocks in parallel after a chain has been split.
[0024] In order to improve the extensibility of the blockchain, in some embodiments, if the block length of the current blockchain reaches a certain threshold, the state chain performs a chain splitting operation and proceeds with parallel block building operations along the newly formed branches of the chain.

100251 In order to further improve the extensibility of the blockchain, in some embodiments, when the number of the blockchain transactions is small, the state chain performs a chain merge operation.
[0026] In one exemplary embodiment, a blockchain system includes N nodes.
Each of the N
nodes receives information indicative of a transaction status from a trading blockchain. When a trading blockchain changes the state of an account, the change is sent to the state chain. An exemplary operation may be carried out as follows.
[0027] 1) Status transaction is received from a trading blockchain, and when the trading blockchain changes the account state, it will send the transaction to the state chain.
[0028] 2) The master node builds a new block and broadcasts it to other nodes.
[0029] 3) Each node verifies the received block and broadcasts the result of the verification.
[0030] 4) Each node collects the voting results of other nodes, uses its corresponding public key to decrypt it, and verifies the correctness of the data.
[0031] 5) After receiving the votes of all the other nodes in Step 4, all the voting contents are signed with its own private key and broadcast to all other nodes again;
[0032] 6) Each node receives the voting information forwarded by each node in Step 5 and decrypts it with its corresponding public key to verify the correctness of the data.
[0033] 7) Each node summarizes the voting results received in Step 6, and stores the blocks that pass the verification. Each node needs to store and has a complete data backup.
[0034] Advantageously, embodiments of the present invention extend the traditional blockchain technology, with the addition of a state chain. The state chain maintains account status information.

[0035] At the same time, in order to increase the scalability of the blockchain, the chain merging and chain splitting of the blockchain are added, allowing the blockchain system to easily increase or decrease to adapt to the changing requirements of the blockchain system.
[0036] When the system pressure or load in the blockchain is high, the chain is split and different branches are distributed to different machines. When the pressure in the blockchain is low, in order to save the system resources of the blockchain, the blockchains can be merged, reducing the needs for machines. Chain merging can save the resources of the blockchain system. Chain splitting can distribute the pressure of the blockchain system to different machines by branching the blocks so as to achieve the effect of load balancing.
[0037] Due to the addition of state chains, the transaction blockchain needs to have a transaction lock to make changes to the account status. For other transactions to modify the state of an account, the transaction lock must first be acquired. If the lock can be obtained, then the account state can be modified. After the modification is complete, the lock will be released again. If the lock cannot be obtained, the process will have to wait for other transactions to complete and release the lock first. In this way, the locking mechanism largely ensures the consistency of the state of the blockchain system, so that the account information remains consistent when multiple transactions are processed simultaneously.
[0038] Advantages of embodiments the present invention, compared with other existing technologies, may be better appreciated from the exemplary implementation below.
[0039] In an exemplary embodiment, there is provided a state chain, that has four technologies or characteristics that help ensure efficiency and security.
These technologies include: state chain branch numbering model; chain-splitting operation;
parallel block-building, and chain-merging. These four key technologies are discussed below.
[0040] 1. State chain branch numbering model [0041] A label is provided for each blockchain branch. As illustrated with the aid of FIG. 1, a graph 100 for a blockchain has a root vertex 102 numbered or labeled "0".
After splitting, the new branches 104, 106 are labeled "00" and "01" respectively. If branch 104 labeled "00" is split again, its new branches 108, 110 are labeled "000" and "001" respectively.
Similarly, if branch 106 labeled "01" is split, its new branches 112, 114 are labeled "010" and "011" respectively and so on. The branch graph 100 of the blockchain therefore has a binary tree structure, as depicted in FIG. 1. In this way, new block branches can only be added as branches of a leaf node, and non-leaf nodes are stored in the historical block branch.
[0042] 2. Chain splitting operation [0043] In order to flexibly expand the blockchain nodes so that the blockchain can establish blocks in parallel, the embodiments of the present invention perform a chain operation that splits a branch of one blockchain, into two chains. Chain-splitting operations can occur at any moment and on any branch. Exemplary embodiments split chains based on the length of the blockchain branch (e.g., depth).
[0044] When a newly built block needs to be stored, an assessment is made as to whether the current branch has reached a threshold of division. If the threshold for splitting is not reached, no splitting will occur. If a threshold has been reached, the current branch is split into two new branches based on the current block, so that the first block on either of the two new branches will use the current block as Pre Hash. At the same time, the new branch will be building blocks in parallel.
[0045] The above is depicted in FIG. 2. The blockchain contains block 202 having header (or head) 202a and transaction body (or body) 202b; block 204 having header 204a and body 204b; and block 206 having header 206a and body 206b. Link 212 links block 204 to block 202.
Link 214 links block 206 to block 204.
[0046] When a newly built block 208 having header 208a and body 208b and another newly built block 210 having header 210a and body 210b are to be stored, then an assessment is made as to whether the current branch has reached a threshold of division. If the threshold for splitting is not reached, no splitting will occur. If a threshold has been reached, the current branch is split into two new branches based on the current block 206, so that the first block (block 208 or block 210) on either of the two new branches will use the current block 206 as Pre Hash. At the same time, the new branches will be building blocks in parallel. Link 216 links block 208 to block 206.
At the same time, link 218 links block 210 to block 206.
[0047] 3. State chain parallel block building [0048] Since split branches will build blocks in parallel, this will require the distribution of new transactions to the transaction cache of different branches. Transaction distribution uses a round robin mechanism to distribute the transactions, so as to ensure that the average number of transactions in each branch is nearly equal.
[0049] The branch transaction bucket model is shown in FIG. 3. As will be appreciated, the number of transactions in each bucket is nearly the same since the round robin allocation is used.
As depicted, two transactions 304a, 304b are in placed bucket 304; two transactions 306a, 306b are placed in bucket 306; two transactions 308a, 308b in bucket 308; and a transaction 310a is in bucket 310. As will be expected, a new transaction 302 will be received in bucket 310 ahead of buckets 304, 306 or 308 in accordance with the round robin principle.
[0050] In a branch building block failure, the transaction information will not be lost, the transaction will be rewritten back to the transaction cache of the branch, to participate in the next block building.
[0051] 4. Chain Merging [0052] When the number of blockchain transactions is small, some branches can be merged to save system resources. At this time, the originally bifurcated blockchain can be merged together.

[0053] Since each branch has its own branch number, the merged block will have the hash value of the previous two parent blocks. This requires an additional Pre_Hash field in the header of the block. By default, only one Pre Hash is used for the block. Only the first block of the merged branch will use the hash of the two parent blocks. The number for the merged branch is the combination of the number of the two parent branches, so that a unique branch number will be guaranteed.
[0054] In one exemplary embodiment, a blockchain system contains four (4) nodes, named node A, node B, node C, and node D. Each node is initially located at a branch labeled "0".
[0055] 1) node A, node B, node C, node D accept account status updates from the transaction blockchain.
[0056] 2) The state blockchain builds blocks continuously according to information received.
[0057] 3) When the number of blocks reaches the threshold T, the node A, node B, node C, and node D will split the blockchain. Using the naming convention illustrated in FIG. 1, each node's branches will have become two branches: "00" and "01".
[0058] 4) At this point the system will have two trading buckets that were used for the construction of two branches "00" and "01", respectively. Each branch will deal with its own transactions. There is no confusion.
[0059] 5) To combine or merge the two branches "00" and "01", the new block will use "00" and "01" as their own two Pre Hash. The new block branch number will be "0001". This number is also unique.
[0060] In this way, the system continuously repeats the above process, continues to receive new transactions, split chain, build blocks in parallel, merge chain, and so on.

100611 The above are only exemplary embodiments, and not intended to be limiting.
Persons of skill in the art, may readily make improvements upon the embodiments but it should be understood that any such simple modifications or improvements are still within the scope which will be defined by the claims.
[0062] Having thus described, by way of example only, embodiments of the present invention, it is to be understood that the invention as defined by the appended claims is not to be limited by particular details set forth in the above description of exemplary embodiments as many variations and permutations are possible without departing from the scope of the claims.

Claims (13)

What is claimed is:
1. A blockchain system comprising a plurality of nodes, a transaction blockchain and a state chain that stores account information, the system operable to: perform a splitting operation on the transaction blockchain to form new branches for subsequent transactions, the state chain generating a branch number for labeling each of said new branches obtained by said splitting operation.
2. The blockchain system of claim 1, wherein the system builds blocks in parallel for each of the said new branches.
3. The blockchain system of claim 1, wherein the system is further operable to perform a merge operation to merge said new branches back into a single branch.
4. The blockchain system of claim 3,wherein the state chain further generates a branch number for labeling the single branch obtained by said merging operation.
5. The blockchain system of claim 1, wherein the splitting operation is performed in response to the length of the transaction blockchain reaching a certain threshold.
6. The blockchain system of claim 5, wherein a new transaction is allocated to one of the new branches, in accordance with a round robin allocation.
7. The blockchain system of claim 1, wherein the splitting operation splits an initial branch labeled "0" into the two new branches, and wherein the two new branches are labeled "00"
and "01".
8. The blockchain system of claim 7, wherein the branch labeled "00" is further split into two newer branches, and wherein the two newer branches are labeled "000" and "001".
9. The blockchain system of claim 7, wherein a last block of the initial branch is used as a pre-hash value for each first block stored in each of two new branches.
10. A blockchain system comprising a plurality of nodes and a state chain, wherein in response to a transaction causing a change in the state of an account, each of the nodes receives status information on the transaction from a trading blockchain, the system operable to:
a) receive at the state chain, the status information, in response to the change to the account;
b) build a new block using a selected one of said nodes, and broadcast the block to all the other nodes;
c) at each node, i) verify the received block and broadcast verification results via a vote to the other nodes;
ii) collect data representative of votes of each of the other nodes, and use a public key corresponding to said each of the other nodes, to decrypt said collected data, and verify correctness of the data;
iii) after receiving the data representative of votes, sign the data with own private key and broadcast to all other nodes again;
iv) receive the voting information forwarded by each of said all other nodes in step iii) and decrypt with a corresponding public key to verify the correctness of the data; and v) summarize the voting results received in step iv), and store the blocks that pass verification.
11. The blockchain system of claim 10, wherein each node stores the status information
12. The blockchain system of claim 11, wherein each node further has a complete data backup for the blockchain system.
13. A method of extending a blockchain system comprising a plurality of nodes and a state chain, the method comprising, in response to a transaction causing a change in state of an account:
a) receiving at each of the nodes, status information on the transaction from a trading blockchain;
b) building a new block using a selected one of said nodes, and broadcasting the block to all the other nodes;
c) at each node, i) verifying the received block and broadcasting verification results via a vote to the other nodes;
ii) collecting data representative of votes of each of the other nodes, and using a public key corresponding to said each of the other nodes, to decrypt said collected data and verifying correctness of the data;
iii) after receiving the data representative of votes, signing the data with own private key and broadcasting to all other nodes again;
iv) receiving the voting information forwarded by each of said all other nodes in step iii) and decrypting with a corresponding public key to verify the correctness of the data;
and v) summarizing the voting results received in step iv), and storing all blocks that pass verification.
CA3013855A 2018-08-08 2018-08-10 An extended blockchain design having a state chain Abandoned CA3013855A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862716242P 2018-08-08 2018-08-08
US62/716,242 2018-08-08

Publications (1)

Publication Number Publication Date
CA3013855A1 true CA3013855A1 (en) 2020-02-08

Family

ID=69407324

Family Applications (1)

Application Number Title Priority Date Filing Date
CA3013855A Abandoned CA3013855A1 (en) 2018-08-08 2018-08-10 An extended blockchain design having a state chain

Country Status (1)

Country Link
CA (1) CA3013855A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527800A (en) * 2020-12-18 2021-03-19 山大地纬软件股份有限公司 Tree chain type account book structure, high-performance parallel consensus method and system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527800A (en) * 2020-12-18 2021-03-19 山大地纬软件股份有限公司 Tree chain type account book structure, high-performance parallel consensus method and system
CN112527800B (en) * 2020-12-18 2022-07-22 山大地纬软件股份有限公司 Tree chain type account book structure, high-performance parallel consensus method and system

Similar Documents

Publication Publication Date Title
CN114079660B (en) High-performance distributed storage block data, time stamp, cross-chain communication and data collaboration method
CN106372533B (en) Content storage method based on block chain technology
CN110990408B (en) Business information collaboration method based on block chain, business system and alliance chain
CN112270550B (en) New energy power tracing method and system based on blockchain
CN106936589B (en) Centerless license chain parallel fragmentation method and transaction method
US20190243806A1 (en) System and method for using local storage to emulate centralized storage
Etemad et al. Transparent, distributed, and replicated dynamic provable data possession
CN110046894B (en) Erasure code-based block chain establishing method capable of reconstructing groups
CN109508982A (en) REPB common recognition based on the more subchains of block chain main chain adduction row
CN110298754B (en) Consensus method applied to block chain
CN109995850A (en) A kind of transaction processing method of block catenary system and block catenary system
CN111625598B (en) Engineering collaboration block chain data structure and application method
CN112104482B (en) Consensus method based on parallel voting
CN111444277A (en) Anti-terrorist information collaborative sharing platform and method based on block chain technology
JP2021515271A (en) Computer-based voting process and system
CN101917403A (en) Distributed key management method for ciphertext storage
Kaneko et al. DHT clustering for load balancing considering blockchain data size
CN112887380A (en) Cross-chain intercommunication method and system
CN112307501A (en) Big data system based on block chain technology, storage method and using method
WO2020008445A1 (en) Encrypted blockchain voting system
CN111033491A (en) Storing shared blockchain data based on error correction coding
WO2023185051A1 (en) Method for generating random number seeds on blockchain, and system and consensus node
CA3013855A1 (en) An extended blockchain design having a state chain
CN111177766B (en) Block chain management system and management method applied to pipeline integrity management
CN114862397A (en) Double-decoupling block chain distributed method based on double-chain structure

Legal Events

Date Code Title Description
FZDE Dead

Effective date: 20201214