WO2021101040A1 - Method for generating blockchain by using patch transaction - Google Patents
Method for generating blockchain by using patch transaction Download PDFInfo
- Publication number
- WO2021101040A1 WO2021101040A1 PCT/KR2020/012109 KR2020012109W WO2021101040A1 WO 2021101040 A1 WO2021101040 A1 WO 2021101040A1 KR 2020012109 W KR2020012109 W KR 2020012109W WO 2021101040 A1 WO2021101040 A1 WO 2021101040A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- transaction
- nth
- modified
- consensus
- 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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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/32—Cryptographic 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/3236—Cryptographic 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
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Definitions
- the following embodiments relate to a blockchain platform, and is a technology for reducing the interruption of a blockchain network that occurs when a blockchain system generates a block in an on-the-next manner.
- Blockchain is also called a public transaction ledger, and is a technology that prevents hacking that can occur when trading with virtual currency.
- transaction records are kept on a centralized server, whereas blockchain sends transaction details to all users participating in transactions, and uses a method to prevent data forgery by collating them with each transaction.
- Blockchain is applied to Bitcoin, a representative online virtual currency. Bitcoin transparently records transaction details in a ledger that anyone can read, and several computers using Bitcoin verify this record to prevent hacking.
- Blockchain is not a technology that is applied only to Bitcoin, but is a technology that can reduce enormous costs associated with maintenance and security of a database (DB) by applying it to storing various data.
- DB database
- the blockchain system can create a block in an on-the-current or on-the-next method and add it to the blockchain. .
- the on-the-current block structure stores the result in the current block of the transaction.
- FIG. 1 is a diagram showing an example of creating a block chain in an on-the-current method in a block chain system.
- each of the blocks 110, 120, and 130 included in the blockchain consists of a transaction of a corresponding block, a result value obtained by inputting a transaction of the corresponding block to a preset function, and a header of the corresponding block.
- the first block 110 which is the first block, is a result value R1 generated by using the first transaction T1 and the first transaction T1, which are transactions included in the first block, as input values of a preset function.
- a first header B1 that is a header of the first block 110.
- the block Since the on-the-current block structure stores the result of the transaction of the block as the result value of the current block, the block can be deleted if the result is not expected or consensus is not reached.
- the on-the-next block structure stores the transaction result in the next block.
- FIG. 2 is a diagram showing an example of creating a block chain in an on-the-next method in a block chain system.
- a first block 210 includes a first transaction T1, which is a transaction inserted into the first block, and a first header B1, which is a header to the first block. In this case, the result value is omitted in the first block 210.
- Each of the blocks 220 and 230 is composed of a transaction of a corresponding block, a result value obtained by inputting a transaction of a previous block to a preset function, and a header of the corresponding block.
- on-the-next can generate blocks faster than on-the-current.
- the block is not consensus because the transaction of the already completed block cannot be changed. There may be cases where the chain network goes down.
- the present invention has been derived to solve the problems of the prior art as described above, and an object of the present invention is to provide a method of creating a block chain using a patch transaction.
- an object of the present invention is to provide a method of creating a new block by generating a result value by adding a new patch transaction as well as a transaction included in the previous block when consensus on a block fails.
- a method of creating a block chain using a patch transaction includes the step of receiving an n-th transaction, which is a transaction to be inserted into an n-th block-where n is an amount greater than 2 The integer of -; generating an n-1 th result value that is a result value to be inserted into the n th block by inputting an n-1 th transaction included in the n-1 th block into a preset function; Generating an n-th header that is a header to be inserted into the n-th block; Generating an nth block, which is the nth block, including the nth header, the nth transaction, and the n-1th result value; Performing a block chain consensus process for the n-th block; Generating an n-th patch transaction, which is a patch transaction to be inserted into the modified n-th block, if consensus fails as a result of the consensus process for the n-
- the nth patch transaction which is a patch transaction to be inserted into the modified nth block
- the nth patch transaction may be generated according to a preset value or a preset method.
- the method of creating a block chain using a patch transaction if consensus fails as a result of consensus on the modified n-th block, in the step of generating the n-th patch transaction until consensus is successful, the block chain for the modified n-th block Repeating a predetermined number of times until the step of proceeding the consensus process of; And determining that the agreement has finally failed if all of the results of the agreement are failed for the predetermined number of times.
- the method of creating a block chain using a transaction if consensus fails as a result of consensus on the modified n-th block, the block chain for the modified n-th block is generated in the step of generating the n-th patch transaction until consensus is successful. Repeatedly performing the step of proceeding the consensus process for a predetermined time; And determining that the agreement has finally failed if all of the results fail as a result of repeating the agreement for the preset time.
- the method of creating a block chain using a transaction may further include adding the n-th block to the block chain when consensus is successful as a result of consensus on the n-th block.
- a method of creating a block chain using a patch transaction includes the steps of receiving an nth transaction, which is a transaction to be inserted into an nth block, where n is a positive integer greater than 2; Generating an nth patch transaction that is a patch transaction to be inserted into the nth block; An n-1th result value that is a result value to be inserted into the nth block by concatenating the n-1th transaction, which is the n-1th transaction included in the n-1th block, and the nth patch transaction and inputting it to a preset function Generating a; Generating an n-th header that is a header to be inserted into the n-th block; Generating an nth block, which is the nth block, including the nth header, the nth transaction, the nth patch transaction, and the n-1th result value; Performing a block chain consensus process for the n-th block; And if consensus is successful
- the nth patch transaction which is a patch transaction to be inserted into the nth block
- the nth patch transaction may be generated according to a preset value or a preset method.
- the method of creating a block chain using a patch transaction includes: if consensus fails as a result of the consensus process, generating a modified n-th patch transaction, which is a new patch transaction to be inserted into the modified n-th block; Generating a modified n-1th result value that is a result value to be inserted into the modified nth block by concatenating the n-1th transaction and the modified nth patch transaction and inputting it to a preset function; Generating a modified n-th header that is a header to be inserted into the modified n-th block; Generating a modified nth block that is the modified nth block including the modified nth header, the nth transaction, the modified nth patch transaction, and the modified n-1 result value; Performing a block chain consensus process for the modified n-th block; And if consensus is successful as a result of the consensus on the modified n-th block, adding the modified n-th block to the blockchain.
- the block chain creation method using the patch transaction if consensus fails as a result of the consensus on the modified n-th block, the block for the modified n-th block in the step of generating the modified n-th patch transaction until consensus is successful. Repeating a predetermined number of times until the step of proceeding the chain consensus process; And determining that the agreement has finally failed if all of the results of the agreement are failed for the predetermined number of times.
- the block chain creation method using the patch transaction is that if consensus fails as a result of consensus on the modified n-th block, the block chain for the modified n-th block in the step of generating the modified n-th patch transaction until consensus is successful. Repeatedly performing the step of proceeding the consensus process of for a predetermined time; And determining that the agreement has finally failed if all of the results fail as a result of repeating the agreement for the preset time.
- FIG. 1 is a diagram showing an example of creating a block chain in an on-the-current method in a block chain system.
- FIG. 2 is a diagram showing an example of creating a block chain in an on-the-next method in a block chain system.
- FIG. 3 is a flowchart illustrating a process of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
- FIG. 4 is a diagram illustrating an example of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
- FIG. 5 is a flowchart illustrating a process of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
- FIG. 6 is a diagram illustrating an example of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
- FIG. 3 is a flowchart illustrating a process of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
- the blockchain system receives an nth transaction, which is a transaction to be inserted into an nth block (310).
- n is a positive integer greater than 2.
- the first transaction which is a transaction inserted into the first block
- the first header which is a header
- the blockchain system generates an n-th patch transaction, which is a patch transaction to be inserted into the n-th block (312).
- the nth patch transaction may be generated according to a preset value or a preset method.
- a method of generating a patch transaction by using response data received in the consensus process in a predetermined method may be used.
- the blockchain system connects the n-1th transaction, the n-1th transaction included in the n-1th block, and the nth patch transaction, and inputs it into a preset function.
- a -1 result value is generated (314).
- the blockchain system generates an n-th header, which is a header to be inserted into the n-th block (316).
- the blockchain system generates an nth block, which is an nth block including an nth header, an nth transaction, an nth patch transaction, and an n-1th result value (318).
- the blockchain system checks whether the consensus was successful by proceeding with the consensus process of the block chain for the n-th block (320).
- the blockchain system checks whether it satisfies the termination condition of the consensus process (322).
- the termination condition of the consensus process may mean that when consensus fails, consensus is repeated for a predetermined number of times in order to generate an n-th block until consensus is successful.
- the termination condition of the consensus process may mean that when consensus fails, the consensus process is repeated by continuously generating the n-th block for a predetermined time in order to generate the n-th block until consensus is successful.
- step 322 if the termination condition of the consensus process is not satisfied, the blockchain system returns to step 312 and generates a modified n-th block, which is the nth block modified through step 318 in step 312, and the consensus process is completed in step 320.
- the process of checking the progress result can be repeated.
- the blockchain system determines that a problem that cannot be resolved by itself has occurred, and terminates the algorithm. At this time, the blockchain system may report such problems to the administrator.
- step 320 If consensus is successful as a result of the consensus in step 320, the blockchain system adds the nth block to the blockchain (324).
- FIG. 4 is a diagram illustrating an example of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
- a first block 410 which is a first block, is a first transaction T1-N, which is a transaction inserted into the first block, and a first block, which is a header, in the first block, similar to the existing on-the-next method. It may be configured to include a header (B1). In this case, the result value is omitted in the first block 410.
- each patch transaction is included, and each result value is preset by concatenating the transaction of the previous block and each patch transaction. It is created by entering into a function.
- the second block 420 is added to the second patch transaction (T1-P), which is a patch transaction generated by a preset value or a preset method each time the second block is generated, and the second block 420 Generated by concatenating the second transaction (T2-N), the second patch transaction (T1-P), and the first transaction (T1-N), the transaction of the first block 410 and inputting it to a preset function.
- T1-P the second patch transaction
- T1-N the second patch transaction
- T1-N the first transaction
- a first result value R1 which is a result value added to the second block
- a second header B2 which is a header of the second block 420, may be included.
- the first result value R1 is included in the second block 420 but is a result value for the consensus of the first transaction T1-N.
- the block chain creation method of FIG. 4 uses a patch transaction except for the first block 410.
- FIG. 5 is a flowchart illustrating a process of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
- the blockchain system receives an nth transaction, which is a transaction to be inserted into an nth block (510).
- n is a positive integer greater than 2.
- the first transaction which is a transaction inserted into the first block
- the first header which is a header
- the blockchain system generates an n-1th result value, which is a result value to be inserted into the nth block, by inputting the n-1th transaction, which is the n-1th transaction included in the n-1th block, into a preset function. (512).
- the blockchain system generates an n-th header, which is a header to be inserted into the n-th block (514).
- the blockchain system generates an nth block, which is an nth block including an nth header, an nth transaction, and an n-1th result value (516).
- the blockchain system checks whether the consensus was successful by proceeding with the consensus process of the blockchain for the n-th block (518).
- the blockchain system checks whether it satisfies the termination condition of the consensus process (520).
- the termination condition of the consensus process may mean that when consensus fails, consensus is repeated for a predetermined number of times in order to generate an n-th block until consensus is successful.
- the termination condition of the consensus process may mean that when consensus fails, the consensus process is repeated by continuously generating the n-th block for a predetermined time in order to generate the n-th block until consensus is successful.
- the blockchain system determines that a problem that cannot be resolved by itself has occurred, and terminates the algorithm. At this time, the blockchain system may report such problems to the administrator.
- the blockchain system As a result of the confirmation in step 520, if the termination condition of the consensus process is not satisfied, the blockchain system generates an nth patch transaction, which is a patch transaction to be inserted into the modified nth block (522).
- the nth patch transaction may be generated according to a preset value or a preset method.
- a method of generating a patch transaction by using response data received in the consensus process in a predetermined method may be used.
- the blockchain system concatenates the n-1th transaction and the nth patch transaction and inputs it into a preset function to generate a modified n-1th result value, which is a result value to be inserted into the modified nth block (524).
- the blockchain system generates a modified n-th header, which is a header to be inserted into the modified n-th block (526).
- the blockchain system generates a modified n-th block, which is a modified n-th block including a modified n-th header, an n-th transaction, an n-th patch transaction, and a modified n-1 result value (528) and step 518. Go back.
- the blockchain system adds the successful nth block or modified nth block to the blockchain (530).
- FIG. 6 is a diagram illustrating an example of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
- a first block 610 which is a first block, is a first transaction (T1-N), which is a transaction inserted into the first block, and a first block, which is a header to the first block, similar to the existing on-the-next method. It may be configured to include a header (B1). In this case, the result value is omitted in the first block 610.
- the second block, the second block 610 is a general transaction added to the second block 420 by omitting the second patch transaction (T1-P) in the same way as the existing on-the-next method, when consensus is not failed.
- T1-P second patch transaction
- T1-N first transaction that is a transaction of the first block 410 to a preset function
- It may be configured to include a first result value R1 that is an added result value and a second header B2 that is a header of the second block 620.
- the modified second block 622 which is a modified second block that is generated when the second block 610 fails to consensus, is a patch transaction generated according to a preset value or a preset method each time a block that fails to consensus is generated.
- the first modified result value R1, which is a result value added to the second block generated by concatenating the first transaction T1-N, is input to a preset function, and the modified first result value R1, which is a header of the modified second block 622. It may be configured to include 2 headers (B2-1).
- the block chain creation method of FIG. 6 uses a patch transaction if consensus fails in the consensus process of blocks other than the first block 410.
- the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
- the computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- the program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
- -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like.
- Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
- the hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.
- the software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device.
- Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave.
- the software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Stored Programmes (AREA)
Abstract
The present invention relates to a method for generating a blockchain by using a patch transaction, comprising the steps of: receiving an nth transaction, which is the transaction to be inputted into an nth block; inputting, into a preset function, an (n-1)th transaction, which is the (n-1)th transaction included in an (n-1)th block, so as to generate an (n-1)th result value, which is the result value to be inputted into the nth block; generating an nth header, which is the header to be inputted into the nth block; generating the nth block including the nth header, the nth transaction, and the (n-1)th result value; proceeding with a blockchain agreement process for the nth block; generating an nth patch transaction, which is the patch transaction to be inputted into a corrected nth block when an agreement fails as a result of proceeding with the agreement process for the nth block; connecting the (n-1)th transaction and the nth patch transaction so as to input same into the preset function, thereby generating a corrected (n-1)th result value, which is the result value to be inputted into the corrected nth block; generating a corrected nth header, which is the header to be inputted into the corrected nth block; generating the corrected nth block including the corrected nth header, the nth transaction, the nth patch transaction, and the corrected (n-1)th result value; proceeding with a blockchain agreement process for the corrected nth block; and adding the corrected nth block to the blockchain when an agreement succeeds as a result of the agreement process for the corrected nth block.
Description
이하의 일 실시 예들은 블록체인 플랫폼에 관한 것으로, 블록체인 시스템이 온 더 넥스트 방식으로 블록을 생성할 때, 발생하는 블록체인 네트워크가 중단되는 현상을 줄이기 위한 기술이다.The following embodiments relate to a blockchain platform, and is a technology for reducing the interruption of a blockchain network that occurs when a blockchain system generates a block in an on-the-next manner.
블록체인은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 이 기록을 검증하여 해킹을 막는다Blockchain is also called a public transaction ledger, and is a technology that prevents hacking that can occur when trading with virtual currency. In the case of existing financial companies, transaction records are kept on a centralized server, whereas blockchain sends transaction details to all users participating in transactions, and uses a method to prevent data forgery by collating them with each transaction. Blockchain is applied to Bitcoin, a representative online virtual currency. Bitcoin transparently records transaction details in a ledger that anyone can read, and several computers using Bitcoin verify this record to prevent hacking.
블록체인은 단순히 비트코인에만 적용되는 기술이 아니며, 여러 데이터를 보관하는 데에도 적용함으로써 데이터베이스(DB)의 유지 보수와 보안에 따른 막대한 비용을 줄일 수 있는 효과를 가진 기술이다.Blockchain is not a technology that is applied only to Bitcoin, but is a technology that can reduce enormous costs associated with maintenance and security of a database (DB) by applying it to storing various data.
블록체인 시스템은 블록체인에 추가하는 블록을 생성함에 있어서, 온 더 커런트(On-the-current) 방식 또는 온 더 넥스트(On-the-next) 방식으로 블록을 생성하여 블록체인에 추가할 수 있다.When creating a block to be added to the blockchain, the blockchain system can create a block in an on-the-current or on-the-next method and add it to the blockchain. .
온 더 커런트(On-the-current) 방식의 블록 구조는 결과를 트랜잭션의 현재 블록에 저장한다.The on-the-current block structure stores the result in the current block of the transaction.
도 1은 블록체인 시스템에서 온 더 커런트 방식으로 블록체인을 생성하는 일 예를 도시함 도면이다.1 is a diagram showing an example of creating a block chain in an on-the-current method in a block chain system.
도 1을 참조하면, 블록체인에 포함된 블록(110, 120, 130) 각각은 해당 블록의 트랜잭션, 해당 블록의 트랜잭션을 기설정된 함수에 입력하여 획득하는 결과값 및 해당 블록의 헤더로 구성된다.Referring to FIG. 1, each of the blocks 110, 120, and 130 included in the blockchain consists of a transaction of a corresponding block, a result value obtained by inputting a transaction of the corresponding block to a preset function, and a header of the corresponding block.
예를 들어, 첫번째 블록인 제1 블록(110)은 첫번째 블록에 포함되는 트랜잭션인 제1 트랜잭션(T1), 제1 트랜잭션(T1)을 기설정된 함수의 입력값으로 해서 생성되는 결과값(R1) 및 제1 블록(110)의 헤더인 제1 헤더(B1)를 포함한다.For example, the first block 110, which is the first block, is a result value R1 generated by using the first transaction T1 and the first transaction T1, which are transactions included in the first block, as input values of a preset function. And a first header B1 that is a header of the first block 110.
온 더 커런트 방식의 블록 구조는 해당 블록의 트랜잭션의 결과를 현재 블록의 결과값으로 저장하기 때문에 결과가 예상치 않거나 합의가 이루어지지 않은 경우, 해당 블록을 삭제할 수 있다.Since the on-the-current block structure stores the result of the transaction of the block as the result value of the current block, the block can be deleted if the result is not expected or consensus is not reached.
온 더 넥스트(On-the-next) 방식의 블록 구조는 트랜잭션의 결과값을 다음 블록에 저장한다.The on-the-next block structure stores the transaction result in the next block.
도 2는 블록체인 시스템에서 온 더 넥스트 방식으로 블록체인을 생성하는 일 예를 도시한 도면이다.2 is a diagram showing an example of creating a block chain in an on-the-next method in a block chain system.
도 2를 참조하면, 제1 블록(210)은 제1 블록에 삽입되는 트랜잭션인 제1 트랜잭션(T1)과 제1 블록에 헤더인 제1헤더(B1)를 포함하여 구성된다. 이때, 제1 블록(210)에는 결과값이 생략된다.Referring to FIG. 2, a first block 210 includes a first transaction T1, which is a transaction inserted into the first block, and a first header B1, which is a header to the first block. In this case, the result value is omitted in the first block 210.
블록(220, 230) 각각은 해당 블록의 트랜잭션, 이전 블록의 트랜잭션을 기설정된 함수에 입력하여 획득하는 결과값 및 해당 블록의 헤더로 구성된다.Each of the blocks 220 and 230 is composed of a transaction of a corresponding block, a result value obtained by inputting a transaction of a previous block to a preset function, and a header of the corresponding block.
온 더 넥스트 방식으로 블록체인에 추가될 블록을 생성하는 경우, 이전 블록의 트랜잭션의 결과를 결과값으로 저장하기 때문에 결과가 예상치 않거나 합의가 이루어지지 않는 문제가 발생하면 해당 블록을 삭제하기에 어려움이 있다.In the case of creating a block to be added to the blockchain in the on-the-next method, it is difficult to delete the block if the result is unexpected or if there is a problem that no consensus occurs because the result of the transaction of the previous block is stored as a result value. have.
온 더 커런트 방식과 온 더 넥스트 방식을 비교하면, 온 더 넥스트의 경우 온 더 커런트 보다 빠르게 블록 생성이 가능하다.Comparing the on-the-current and on-the-next methods, on-the-next can generate blocks faster than on-the-current.
하지만, 다음 블록의 결과를 저장하기 때문에 이미 확인된 블록을 삭제하기가 어렵다.However, since the result of the next block is stored, it is difficult to delete an already confirmed block.
또한, 블록의 합의를 처리하는 환경이 다름(예를 들어, 합의 알고리즘의 버전이 다른 경우)으로써 트랜잭션의 처리 결과가 다르게 나타나는 경우, 이미 완결된 블록의 트랜잭션을 변경할 수 없어서 합의가 이루어 지지 않아 블록체인 네트워크가 중단되는 경우가 발생할 수 있다.Also, if the processing result of the transaction is different because the environment for processing the consensus of the block is different (for example, the version of the consensus algorithm is different), the block is not consensus because the transaction of the already completed block cannot be changed. There may be cases where the chain network goes down.
즉, 블록의 합의를 처리하는 환경이 다름으로써 합의가 이루어지지 않는 경우, 온 더 넥스트 방식의 경우 이전 블록의 트랜잭션이 변경되는 것이 아님으로 동일한 이전 트랜잭션이 현재 블록의 결과값을 구하는 함수의 유일한 입력값으로 사용되기 때문에 반복해서 블록을 생성하여도 합의에 다다르지 못하는 문제로 블록체인 네트워크가 중단 될 수 있다.In other words, if consensus cannot be achieved due to a different environment for handling consensus of blocks, the same previous transaction is the only input of the function that obtains the result value of the current block as the transaction of the previous block is not changed in the case of the on-the-next method. Since it is used as a value, the blockchain network may be disrupted due to the problem of not reaching consensus even if blocks are repeatedly generated.
따라서, 온 더 넥스트 방식으로 블록을 생성하면서도 블록체인 네트워크가 중단되는 현상을 줄일 수 있는 방법이 요구된다.Therefore, there is a need for a method that can reduce the disruption of the blockchain network while creating blocks in an on-the-next method.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.The information described above is for illustrative purposes only, may include content that does not form part of the prior art, and may not include what the prior art may present to a person skilled in the art.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 패치 트랜잭션을 이용한 블록체인 생성 방법을 제공하는 것을 목적으로 한다.The present invention has been derived to solve the problems of the prior art as described above, and an object of the present invention is to provide a method of creating a block chain using a patch transaction.
구체적으로, 본 발명은 블록에 대한 합의에 실패하면, 이전 블록에 포함된 트랜잭션 뿐만 아니라 새로운 패치 트랜잭션을 추가하여 결과값을 생성하여서 새로운 블록을 생성하는 블록체인 생성 방법을 제공하는 것을 목적으로 한다.Specifically, an object of the present invention is to provide a method of creating a new block by generating a result value by adding a new patch transaction as well as a transaction included in the previous block when consensus on a block fails.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 패치 트랜잭션을 이용한 블록체인 생성 방법은, n번째 블록에 삽입될 트랜잭션인 제n 트랜잭션을 수신하는 단계-상기 n은 2보다 큰 양의 정수-; n-1번째 블록에 포함된 n-1번째 트랜잭션인 제n-1 트랜잭션을 기설정된 함수에 입력함으로써 상기 n번째 블록에 삽입될 결과값인 제n-1 결과값을 생성하는 단계; 상기 n번째 블록에 삽입될 헤더인 제n 헤더를 생성하는 단계; 상기 제n 헤더, 상기 제n 트랜잭션 및 상기 제n-1 결과값을 포함하는 상기 n번째 블록인 제n 블록을 생성하는 단계; 상기 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계; 상기 제n 블록에 대한 합의 과정의 진행결과 합의에 실패하면, 수정된 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계; 상기 제n-1 트랜잭션과 상기 제n 패치 트랜잭션을 연접하여 상기 기설정된 함수에 입력함으로써 상기 수정된 n번째 블록에 삽입될 결과값인 수정 제n-1 결과값을 생성하는 단계; 상기 수정된 n번째 블록에 삽입될 헤더인 수정 제n 헤더를 생성하는 단계; 상기 수정 제n 헤더, 상기 제n 트랜잭션, 상기 제n 패치 트랜잭션 및 상기 수정 제n-1 결과값을 포함하는 상기 수정된 n번째 블록인 수정 제n 블록을 생성하는 단계; 상기 수정 제n 블록에 대한 상기 블록체인의 합의 과정을 진행하는 단계; 및 상기 수정 제n 블록에 대한 합의 결과 합의에 성공하면, 상기 수정 제n 블록을 상기 블록체인에 추가하는 단계를 포함한다.In order to achieve the above object, a method of creating a block chain using a patch transaction according to an embodiment of the present invention includes the step of receiving an n-th transaction, which is a transaction to be inserted into an n-th block-where n is an amount greater than 2 The integer of -; generating an n-1 th result value that is a result value to be inserted into the n th block by inputting an n-1 th transaction included in the n-1 th block into a preset function; Generating an n-th header that is a header to be inserted into the n-th block; Generating an nth block, which is the nth block, including the nth header, the nth transaction, and the n-1th result value; Performing a block chain consensus process for the n-th block; Generating an n-th patch transaction, which is a patch transaction to be inserted into the modified n-th block, if consensus fails as a result of the consensus process for the n-th block; Generating a modified n-1th result value that is a result value to be inserted into the modified nth block by concatenating the n-1th transaction and the nth patch transaction and inputting it to the preset function; Generating a modified n-th header that is a header to be inserted into the modified n-th block; Generating a modified nth block that is the modified nth block including the modified nth header, the nth transaction, the nth patch transaction, and the modified n-1 result value; Performing a consensus process of the block chain for the modified n-th block; And adding the modified n-th block to the blockchain when consensus is successful as a result of consensus on the modified n-th block.
이때, 상기 수정된 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계는, 기설정된 값 또는 기설정된 방법에 따라서 상기 제n 패치 트랜잭션을 생성할 수 있다.In this case, in the step of generating the nth patch transaction, which is a patch transaction to be inserted into the modified nth block, the nth patch transaction may be generated according to a preset value or a preset method.
이때, 패치 트랜잭션을 이용한 블록체인 생성 방법은, 상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 횟수 반복 수행하는 단계; 및 상기 기설정된 횟수 동안 합의를 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계를 더 포함할 수 있다.At this time, the method of creating a block chain using a patch transaction, if consensus fails as a result of consensus on the modified n-th block, in the step of generating the n-th patch transaction until consensus is successful, the block chain for the modified n-th block Repeating a predetermined number of times until the step of proceeding the consensus process of; And determining that the agreement has finally failed if all of the results of the agreement are failed for the predetermined number of times.
이때, 트랜잭션을 이용한 블록체인 생성 방법은, 상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 시간 동안 반복 수행하는 단계; 및 상기 기설정된 시간 동안 합의를 반복하여 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계를 더 포함할 수 있다.At this time, the method of creating a block chain using a transaction, if consensus fails as a result of consensus on the modified n-th block, the block chain for the modified n-th block is generated in the step of generating the n-th patch transaction until consensus is successful. Repeatedly performing the step of proceeding the consensus process for a predetermined time; And determining that the agreement has finally failed if all of the results fail as a result of repeating the agreement for the preset time.
이때, 트랜잭션을 이용한 블록체인 생성 방법은, 상기 제n 블록에 대한 합의 결과 합의에 성공하면, 상기 제n 블록을 상기 블록체인에 추가하는 단계를 더 포함할 수 있다.In this case, the method of creating a block chain using a transaction may further include adding the n-th block to the block chain when consensus is successful as a result of consensus on the n-th block.
본 발명의 일 실시 예에 따른 패치 트랜잭션을 이용한 블록체인 생성 방법은, n번째 블록에 삽입될 트랜잭션인 제n 트랜잭션을 수신하는 단계-상기 n은 2보다 큰 양의 정수-; 상기 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계; n-1번째 블록에 포함된 n-1번째 트랜잭션인 제n-1 트랜잭션과 상기 제n 패치 트랜잭션을 연접하여 기설정된 함수에 입력함으로써 상기 n번째 블록에 삽입될 결과값인 제n-1 결과값을 생성하는 단계; 상기 n번째 블록에 삽입될 헤더인 제n 헤더를 생성하는 단계; 상기 제n 헤더, 상기 제n 트랜잭션, 상기 제n 패치 트랜잭션 및 상기 제n-1 결과값을 포함하는 상기 n번째 블록인 제n 블록을 생성하는 단계; 상기 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계; 및 합의 결과 합의에 성공하면, 상기 제n 블록을 블록체인에 추가하는 단계를 포함한다.A method of creating a block chain using a patch transaction according to an embodiment of the present invention includes the steps of receiving an nth transaction, which is a transaction to be inserted into an nth block, where n is a positive integer greater than 2; Generating an nth patch transaction that is a patch transaction to be inserted into the nth block; An n-1th result value that is a result value to be inserted into the nth block by concatenating the n-1th transaction, which is the n-1th transaction included in the n-1th block, and the nth patch transaction and inputting it to a preset function Generating a; Generating an n-th header that is a header to be inserted into the n-th block; Generating an nth block, which is the nth block, including the nth header, the nth transaction, the nth patch transaction, and the n-1th result value; Performing a block chain consensus process for the n-th block; And if consensus is successful as a result of consensus, adding the n-th block to the blockchain.
이때, 상기 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계는, 기설정된 값 또는 기설정된 방법에 따라서 상기 제n 패치 트랜잭션을 생성할 수 있다.In this case, in the step of generating the nth patch transaction, which is a patch transaction to be inserted into the nth block, the nth patch transaction may be generated according to a preset value or a preset method.
이때, 패치 트랜잭션을 이용한 블록체인 생성 방법은, 합의 과정의 진행결과 합의에 실패하면, 수정된 n번째 블록에 삽입될 새로운 패치 트랜잭션인 수정 제n 패치 트랜잭션을 생성하는 단계; 상기 제n-1 트랜잭션과 상기 수정 제n 패치 트랜잭션을 연접하여 기설정된 함수에 입력함으로써 상기 수정된 n번째 블록에 삽입될 결과값인 수정 제n-1 결과값을 생성하는 단계; 상기 수정된 n번째 블록에 삽입될 헤더인 수정 제n 헤더를 생성하는 단계; 상기 수정 제n 헤더, 상기 제n 트랜잭션, 상기 수정 제n 패치 트랜잭션 및 상기 수정 제n-1 결과값을 포함하는 상기 수정된 n번째 블록인 수정 제n 블록을 생성하는 단계; 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계; 및 상기 수정 제n 블록에 대한 합의 결과 합의에 성공하면, 상기 수정 제n 블록을 상기 블록체인에 추가하는 단계를 더 포함할 수 있다.In this case, the method of creating a block chain using a patch transaction includes: if consensus fails as a result of the consensus process, generating a modified n-th patch transaction, which is a new patch transaction to be inserted into the modified n-th block; Generating a modified n-1th result value that is a result value to be inserted into the modified nth block by concatenating the n-1th transaction and the modified nth patch transaction and inputting it to a preset function; Generating a modified n-th header that is a header to be inserted into the modified n-th block; Generating a modified nth block that is the modified nth block including the modified nth header, the nth transaction, the modified nth patch transaction, and the modified n-1 result value; Performing a block chain consensus process for the modified n-th block; And if consensus is successful as a result of the consensus on the modified n-th block, adding the modified n-th block to the blockchain.
이때, 패치 트랜잭션을 이용한 블록체인 생성 방법은, 상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 수정 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 횟수 반복 수행하는 단계; 및 상기 기설정된 횟수 동안 합의를 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계를 더 포함할 수 있다.At this time, the block chain creation method using the patch transaction, if consensus fails as a result of the consensus on the modified n-th block, the block for the modified n-th block in the step of generating the modified n-th patch transaction until consensus is successful. Repeating a predetermined number of times until the step of proceeding the chain consensus process; And determining that the agreement has finally failed if all of the results of the agreement are failed for the predetermined number of times.
이때, 패치 트랜잭션을 이용한 블록체인 생성 방법은 상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 수정 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 시간 동안 반복 수행하는 단계; 및 상기 기설정된 시간 동안 합의를 반복하여 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계를 더 포함할 수 있다.At this time, the block chain creation method using the patch transaction is that if consensus fails as a result of consensus on the modified n-th block, the block chain for the modified n-th block in the step of generating the modified n-th patch transaction until consensus is successful. Repeatedly performing the step of proceeding the consensus process of for a predetermined time; And determining that the agreement has finally failed if all of the results fail as a result of repeating the agreement for the preset time.
블록체인에 추가할 블록에 대한 합의에 실패하면, 새로이 재생성하는 블록의 결과값을 계산할 때, 이전 블록에 포함된 트랜잭션 뿐만 아니라 기설정된 값 또는 기설정된 방법에 따라서 생성되는 패치 트랜잭션을 이용해서 결과값을 생성함으로써 블록체인 네트워크가 중단되는 현상을 줄일 수 있다.When consensus on the block to be added to the blockchain fails, when calculating the result value of the newly recreated block, the result value using not only the transaction included in the previous block, but also a preset value or a patch transaction generated according to a preset method It is possible to reduce the disruption of the blockchain network by creating
도 1은 블록체인 시스템에서 온 더 커런트 방식으로 블록체인을 생성하는 일 예를 도시함 도면이다.1 is a diagram showing an example of creating a block chain in an on-the-current method in a block chain system.
도 2는 블록체인 시스템에서 온 더 넥스트 방식으로 블록체인을 생성하는 일 예를 도시한 도면이다.2 is a diagram showing an example of creating a block chain in an on-the-next method in a block chain system.
도 3은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 패치 트랜잭션을 이용해서 블록체인을 생성하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
도 4는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 패치 트랜잭션을 이용해서 블록체인을 생성하는 일 예를 도시한 도면이다.4 is a diagram illustrating an example of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
도 5는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 합의 실패 시에 패치 트랜잭션을 이용해서 블록체인을 생성하는 과정을 도시한 흐름도이다.5 is a flowchart illustrating a process of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
도 6은 본 발명의 일 실시 예에 블록체인 시스템에서 합의 실패 시에 패치 트랜잭션을 이용해서 블록체인을 생성하는 일 예를 도시한 도면이다.6 is a diagram illustrating an example of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, or substitutes to the embodiments are included in the scope of the rights.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for illustrative purposes only and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof does not preclude in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present application. Does not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the embodiment, a detailed description thereof will be omitted.
도 3은 본 발명의 일 실시 예에 따른 블록체인 시스템에서 패치 트랜잭션을 이용해서 블록체인을 생성하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
도 3을 참조하면, 블록체인 시스템은 n번째 블록에 삽입될 트랜잭션인 제n 트랜잭션을 수신한다(310). 이때, n은 2보다 큰 양의 정수이다.Referring to FIG. 3, the blockchain system receives an nth transaction, which is a transaction to be inserted into an nth block (310). In this case, n is a positive integer greater than 2.
한편, 첫번째 블록인 제1 블록의 경우, 기존의 온 더 넥스트 방식과 같이 제1 블록에 삽입되는 트랜잭션인 제1 트랜잭션과 제1 블록에 헤더인 제1헤더를 포함하며, 제1 블록에는 결과값이 생략된다.Meanwhile, in the case of the first block, which is the first block, the first transaction, which is a transaction inserted into the first block, and the first header, which is a header, are included in the first block, as in the existing on-the-next method, and the result value is in the first block. Is omitted.
그리고, 블록체인 시스템은 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성한다(312). 이때, 제n 패치 트랜잭션은 기설정된 값 또는 기설정된 방법에 따라서 생성될 수 있다. 이때 기설정된 방법으로 합의 과정에서 수신된 응답 데이터를 이용하여 패치 트랜잭션을 생성하는 방법을 이용할 수 있다.In addition, the blockchain system generates an n-th patch transaction, which is a patch transaction to be inserted into the n-th block (312). In this case, the nth patch transaction may be generated according to a preset value or a preset method. At this time, a method of generating a patch transaction by using response data received in the consensus process in a predetermined method may be used.
그리고, 블록체인 시스템은 n-1번째 블록에 포함된 n-1번째 트랜잭션인 제n-1 트랜잭션과 제n 패치 트랜잭션을 연접하여 기설정된 함수에 입력함으로써 n번째 블록에 삽입될 결과값인 제n-1 결과값을 생성한다(314).In addition, the blockchain system connects the n-1th transaction, the n-1th transaction included in the n-1th block, and the nth patch transaction, and inputs it into a preset function. A -1 result value is generated (314).
그리고, 블록체인 시스템은 n번째 블록에 삽입될 헤더인 제n 헤더를 생성한다(316).In addition, the blockchain system generates an n-th header, which is a header to be inserted into the n-th block (316).
그리고, 블록체인 시스템은 제n 헤더, 제n 트랜잭션, 제n 패치 트랜잭션 및 제n-1 결과값을 포함하는 n번째 블록인 제n 블록을 생성한다(318).In addition, the blockchain system generates an nth block, which is an nth block including an nth header, an nth transaction, an nth patch transaction, and an n-1th result value (318).
그리고, 블록체인 시스템은 제n 블록에 대한 블록체인의 합의 과정을 진행하여 합의에 성공했는지 확인한다(320).Then, the blockchain system checks whether the consensus was successful by proceeding with the consensus process of the block chain for the n-th block (320).
320단계의 합의 결과 합의에 실패하면, 블록체인 시스템은 합의 과정의 종료 조건에 만족하는지 확인한다(322). 이때, 합의 과정의 종료 조건은 합의에 실패할 때, 합의에 성공할 때까지 n번째 블록을 생성하기 위해서 기설정된 횟수 동안 합의를 반복함을 의미할 수 있다. 또는 합의 과정의 종료 조건은 합의에 실패할 때, 합의에 성공할 때까지 n번째 블록을 생성하기 위해서 기설정된 시간 동안 계속해서 n번째 블록을 생성하여 합의하는 과정을 반복함을 의미할 수 있다.If consensus fails as a result of the consensus in step 320, the blockchain system checks whether it satisfies the termination condition of the consensus process (322). At this time, the termination condition of the consensus process may mean that when consensus fails, consensus is repeated for a predetermined number of times in order to generate an n-th block until consensus is successful. Alternatively, the termination condition of the consensus process may mean that when consensus fails, the consensus process is repeated by continuously generating the n-th block for a predetermined time in order to generate the n-th block until consensus is successful.
322단계의 확인결과 합의 과정의 종료 조건을 만족하지 않으면, 블록체인 시스템은 312단계로 돌아가서 312단계에서 318단계를 통해서 수정된 n번째 블록인 수정 제n 블록을 생성하고, 320단계에서 합의 과정의 진행결과를 확인하는 과정을 반복할 수 있다.As a result of the confirmation in step 322, if the termination condition of the consensus process is not satisfied, the blockchain system returns to step 312 and generates a modified n-th block, which is the nth block modified through step 318 in step 312, and the consensus process is completed in step 320. The process of checking the progress result can be repeated.
322단계의 확인결과 합의 과정의 종료 조건을 만족하면, 블록체인 시스템은 자체적으로 해결할 수 없는 문제가 발생했다고 판단하고, 본 알고리즘을 종료한다. 이때, 블록체인 시스템은 관리자에게 이러한 문제를 보고할 수도 있다.As a result of the confirmation in step 322, if the termination condition of the consensus process is satisfied, the blockchain system determines that a problem that cannot be resolved by itself has occurred, and terminates the algorithm. At this time, the blockchain system may report such problems to the administrator.
320단계의 합의 결과 합의에 성공하면, 블록체인 시스템은 제n 블록을 블록체인에 추가한다(324).If consensus is successful as a result of the consensus in step 320, the blockchain system adds the nth block to the blockchain (324).
도 4는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 패치 트랜잭션을 이용해서 블록체인을 생성하는 일 예를 도시한 도면이다.4 is a diagram illustrating an example of creating a block chain using a patch transaction in a block chain system according to an embodiment of the present invention.
도 4를 참조하면, 첫번째 블록인 제1 블록(410)은 기존의 온 더 넥스트 방식과 동일하게 제1 블록에 삽입되는 트랜잭션인 제1 트랜잭션(T1-N)과 제1 블록에 헤더인 제1헤더(B1)를 포함하여 구성될 수 있다. 이때, 제1 블록(410)에는 결과값이 생략된다.Referring to FIG. 4, a first block 410, which is a first block, is a first transaction T1-N, which is a transaction inserted into the first block, and a first block, which is a header, in the first block, similar to the existing on-the-next method. It may be configured to include a header (B1). In this case, the result value is omitted in the first block 410.
하지만, 제1 블록(410)을 제외한 나머지 블록들(420, 430)의 경우는 각각의 패치 트랜잭션을 포함하여 구성되고, 각각의 결과값은 이전 블록의 트랜잭션과 각각의 패치 트랜잭션을 연접하여 기설정된 함수에 입력함으로써 생성된다.However, in the case of the remaining blocks 420 and 430 except for the first block 410, each patch transaction is included, and each result value is preset by concatenating the transaction of the previous block and each patch transaction. It is created by entering into a function.
예를 들어, 제2 블록(420)은 제2 블록이 생성될 때마다 기설정된 값 또는 기설정된 방법으로 생성되는 패치 트랜잭션인 제2 패치 트랜잭션(T1-P), 제2 블록(420)에 추가되는 일반적인 트랜잭션인 제2 트랜잭션(T2-N), 제2 패치 트랜잭션(T1-P)과 제1 블록(410)의 트랜잭션인 제1 트랜잭션(T1-N)이 연접하여 기설정된 함수에 입력됨으로써 생성되는 제2 블록에 추가되는 결과값인 제1 결과값(R1)과 제2 블록(420)의 헤더인 제2 헤더(B2)를 포함하여 구성될 수 있다.For example, the second block 420 is added to the second patch transaction (T1-P), which is a patch transaction generated by a preset value or a preset method each time the second block is generated, and the second block 420 Generated by concatenating the second transaction (T2-N), the second patch transaction (T1-P), and the first transaction (T1-N), the transaction of the first block 410 and inputting it to a preset function. A first result value R1, which is a result value added to the second block, and a second header B2, which is a header of the second block 420, may be included.
이때, 제1 결과값(R1)은 제2 블록(420)에 포함되나 제1 트랜잭션(T1-N)의 합의를 위한 결과값이다.In this case, the first result value R1 is included in the second block 420 but is a result value for the consensus of the first transaction T1-N.
도 4의 블록체인 생성 방법은 제1 블록(410)을 제외하고 패치 트랜잭션을 이용함을 확인할 수 있다.It can be seen that the block chain creation method of FIG. 4 uses a patch transaction except for the first block 410.
도 5는 본 발명의 일 실시 예에 따른 블록체인 시스템에서 합의 실패 시에 패치 트랜잭션을 이용해서 블록체인을 생성하는 과정을 도시한 흐름도이다.5 is a flowchart illustrating a process of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
도 5를 참조하면, 블록체인 시스템은 n번째 블록에 삽입될 트랜잭션인 제n 트랜잭션을 수신한다(510). 이때, n은 2보다 큰 양의 정수이다.Referring to FIG. 5, the blockchain system receives an nth transaction, which is a transaction to be inserted into an nth block (510). In this case, n is a positive integer greater than 2.
한편, 첫번째 블록인 제1 블록의 경우, 기존의 온 더 넥스트 방식과 같이 제1 블록에 삽입되는 트랜잭션인 제1 트랜잭션과 제1 블록에 헤더인 제1헤더를 포함하며, 제1 블록에는 결과값이 생략된다.Meanwhile, in the case of the first block, which is the first block, the first transaction, which is a transaction inserted into the first block, and the first header, which is a header, are included in the first block, as in the existing on-the-next method, and the result value is in the first block. Is omitted.
그리고, 블록체인 시스템은 n-1번째 블록에 포함된 n-1번째 트랜잭션인 제n-1 트랜잭션을 기설정된 함수에 입력함으로써 n번째 블록에 삽입될 결과값인 제n-1 결과값을 생성한다(512).In addition, the blockchain system generates an n-1th result value, which is a result value to be inserted into the nth block, by inputting the n-1th transaction, which is the n-1th transaction included in the n-1th block, into a preset function. (512).
그리고, 블록체인 시스템은 n번째 블록에 삽입될 헤더인 제n 헤더를 생성한다(514).In addition, the blockchain system generates an n-th header, which is a header to be inserted into the n-th block (514).
그리고, 블록체인 시스템은 제n 헤더, 제n 트랜잭션 및 제n-1 결과값을 포함하는 n번째 블록인 제n 블록을 생성한다(516).In addition, the blockchain system generates an nth block, which is an nth block including an nth header, an nth transaction, and an n-1th result value (516).
그리고, 블록체인 시스템은 제n 블록에 대한 블록체인의 합의 과정을 진행하여 합의에 성공했는지 확인한다(518).Then, the blockchain system checks whether the consensus was successful by proceeding with the consensus process of the blockchain for the n-th block (518).
518단계의 합의 결과 합의에 실패하면, 블록체인 시스템은 합의 과정의 종료 조건에 만족하는지 확인한다(520). 이때, 합의 과정의 종료 조건은 합의에 실패할 때, 합의에 성공할 때까지 n번째 블록을 생성하기 위해서 기설정된 횟수 동안 합의를 반복함을 의미할 수 있다. 또는 합의 과정의 종료 조건은 합의에 실패할 때, 합의에 성공할 때까지 n번째 블록을 생성하기 위해서 기설정된 시간 동안 계속해서 n번째 블록을 생성하여 합의하는 과정을 반복함을 의미할 수 있다.If consensus fails as a result of the consensus in step 518, the blockchain system checks whether it satisfies the termination condition of the consensus process (520). At this time, the termination condition of the consensus process may mean that when consensus fails, consensus is repeated for a predetermined number of times in order to generate an n-th block until consensus is successful. Alternatively, the termination condition of the consensus process may mean that when consensus fails, the consensus process is repeated by continuously generating the n-th block for a predetermined time in order to generate the n-th block until consensus is successful.
520단계의 확인결과 합의 과정의 종료 조건을 만족하면, 블록체인 시스템은 자체적으로 해결할 수 없는 문제가 발생했다고 판단하고, 본 알고리즘을 종료한다. 이때, 블록체인 시스템은 관리자에게 이러한 문제를 보고할 수도 있다.As a result of the confirmation in step 520, if the termination condition of the consensus process is satisfied, the blockchain system determines that a problem that cannot be resolved by itself has occurred, and terminates the algorithm. At this time, the blockchain system may report such problems to the administrator.
520단계의 확인결과 합의 과정의 종료 조건을 만족하지 않으면, 블록체인 시스템은 수정된 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성한다(522). 이때, 제n 패치 트랜잭션은 기설정된 값 또는 기설정된 방법에 따라서 생성될 수 있다. 이때 기설정된 방법으로 합의 과정에서 수신된 응답 데이터를 이용하여 패치 트랜잭션을 생성하는 방법을 이용할 수 있다.As a result of the confirmation in step 520, if the termination condition of the consensus process is not satisfied, the blockchain system generates an nth patch transaction, which is a patch transaction to be inserted into the modified nth block (522). In this case, the nth patch transaction may be generated according to a preset value or a preset method. At this time, a method of generating a patch transaction by using response data received in the consensus process in a predetermined method may be used.
그리고, 블록체인 시스템은 제n-1 트랜잭션과 제n 패치 트랜잭션을 연접하여 기설정된 함수에 입력함으로써 수정된 n번째 블록에 삽입될 결과값인 수정 제n-1 결과값을 생성한다(524).In addition, the blockchain system concatenates the n-1th transaction and the nth patch transaction and inputs it into a preset function to generate a modified n-1th result value, which is a result value to be inserted into the modified nth block (524).
그리고, 블록체인 시스템은 수정된 n번째 블록에 삽입될 헤더인 수정 제n 헤더를 생성한다(526).In addition, the blockchain system generates a modified n-th header, which is a header to be inserted into the modified n-th block (526).
그리고, 블록체인 시스템은 수정 제n 헤더, 제n 트랜잭션, 제n 패치 트랜잭션 및 수정 제n-1 결과값을 포함하는 수정된 n번째 블록인 수정 제n 블록을 생성하고(528), 518단계로 돌아간다.Then, the blockchain system generates a modified n-th block, which is a modified n-th block including a modified n-th header, an n-th transaction, an n-th patch transaction, and a modified n-1 result value (528) and step 518. Go back.
한편, 518단계의 합의 결과 합의에 성공하면, 블록체인 시스템은 합의에 성공한 제n 블록 또는 수정 제n 블록을 블록체인에 추가한다(530).On the other hand, if consensus is successful as a result of the consensus in step 518, the blockchain system adds the successful nth block or modified nth block to the blockchain (530).
도 6은 본 발명의 일 실시 예에 블록체인 시스템에서 합의 실패 시에 패치 트랜잭션을 이용해서 블록체인을 생성하는 일 예를 도시한 도면이다.6 is a diagram illustrating an example of creating a block chain using a patch transaction when consensus fails in a block chain system according to an embodiment of the present invention.
도 6을 참조하면, 첫번째 블록인 제1 블록(610)은 기존의 온 더 넥스트 방식과 동일하게 제1 블록에 삽입되는 트랜잭션인 제1 트랜잭션(T1-N)과 제1 블록에 헤더인 제1헤더(B1)를 포함하여 구성될 수 있다. 이때, 제1 블록(610)에는 결과값이 생략된다.Referring to FIG. 6, a first block 610, which is a first block, is a first transaction (T1-N), which is a transaction inserted into the first block, and a first block, which is a header to the first block, similar to the existing on-the-next method. It may be configured to include a header (B1). In this case, the result value is omitted in the first block 610.
두번째 블록인 제2 블록(610)은 합의에 실패하지 않은 경우, 기존의 온 더 넥스트 방식과 동일하게 제2 패치 트랜잭션(T1-P)를 생략하고, 제2 블록(420)에 추가되는 일반적인 트랜잭션인 제2 트랜잭션(T2-N), 제2 패치 트랜잭션(T1-P)과 제1 블록(410)의 트랜잭션인 제1 트랜잭션(T1-N)가 기설정된 함수에 입력됨으로써 생성되는 제2 블록에 추가되는 결과값인 제1 결과값(R1)과 제2 블록(620)의 헤더인 제2 헤더(B2)를 포함하여 구성될 수 있다.The second block, the second block 610, is a general transaction added to the second block 420 by omitting the second patch transaction (T1-P) in the same way as the existing on-the-next method, when consensus is not failed. In a second block generated by inputting a second transaction (T2-N), a second patch transaction (T1-P), and a first transaction (T1-N) that is a transaction of the first block 410 to a preset function, It may be configured to include a first result value R1 that is an added result value and a second header B2 that is a header of the second block 620.
제2 블록(610)이 합의에 실패하는 경우 생성되는 수정된 2번째 블록인 수정 제2 블록(622)는 합의에 실패한 블록 생성될 때마다 기설정된 값 또는 기설정된 방법에 따라서 생성되는 패치 트랜잭션인 제2 패치 트랜잭션(T1-P), 수정 제2 블록(622)에 추가되는 일반적인 트랜잭션인 제2 트랜잭션(T2-N), 제2 패치 트랜잭션(T1-P)과 제1 블록(610)의 트랜잭션인 제1 트랜잭션(T1-N)이 연접하여 기설정된 함수에 입력됨으로써 생성되는 제2 블록에 추가되는 결과값인 수정 제1 결과값(R1)과 수정 제2 블록(622)의 헤더인 수정 제2 헤더(B2-1)를 포함하여 구성될 수 있다.The modified second block 622, which is a modified second block that is generated when the second block 610 fails to consensus, is a patch transaction generated according to a preset value or a preset method each time a block that fails to consensus is generated. A second patch transaction (T1-P), a second transaction (T2-N), a second patch transaction (T1-P), and a transaction of the first block 610, which are general transactions added to the modified second block 622 The first modified result value R1, which is a result value added to the second block generated by concatenating the first transaction T1-N, is input to a preset function, and the modified first result value R1, which is a header of the modified second block 622. It may be configured to include 2 headers (B2-1).
도 6의 블록체인 생성 방법은 제1 블록(410)을 제외한 다른 블록의 합의 과정에서 합의에 실패하면 패치 트랜잭션을 이용함을 확인할 수 있다.It can be seen that the block chain creation method of FIG. 6 uses a patch transaction if consensus fails in the consensus process of blocks other than the first block 410.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited drawings, a person of ordinary skill in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order from the described method, and/or components such as systems, structures, devices, circuits, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the following claims.
Claims (11)
- n번째 블록에 삽입될 트랜잭션인 제n 트랜잭션을 수신하는 단계-상기 n은 2보다 큰 양의 정수-;receiving an nth transaction, which is a transaction to be inserted into an nth block, where n is a positive integer greater than 2;n-1번째 블록에 포함된 n-1번째 트랜잭션인 제n-1 트랜잭션을 기설정된 함수에 입력함으로써 상기 n번째 블록에 삽입될 결과값인 제n-1 결과값을 생성하는 단계;generating an n-1 th result value that is a result value to be inserted into the n th block by inputting an n-1 th transaction included in the n-1 th block into a preset function;상기 n번째 블록에 삽입될 헤더인 제n 헤더를 생성하는 단계;Generating an n-th header that is a header to be inserted into the n-th block;상기 제n 헤더, 상기 제n 트랜잭션 및 상기 제n-1 결과값을 포함하는 상기 n번째 블록인 제n 블록을 생성하는 단계;Generating an nth block that is the nth block including the nth header, the nth transaction, and the n-1th result value;상기 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계;Performing a block chain consensus process for the n-th block;상기 제n 블록에 대한 합의 과정의 진행결과 합의에 실패하면, 수정된 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계;Generating an n-th patch transaction, which is a patch transaction to be inserted into the modified n-th block, if consensus fails as a result of the consensus process for the n-th block;상기 제n-1 트랜잭션과 상기 제n 패치 트랜잭션을 연접하여 상기 기설정된 함수에 입력함으로써 상기 수정된 n번째 블록에 삽입될 결과값인 수정 제n-1 결과값을 생성하는 단계;Generating a modified n-1th result value that is a result value to be inserted into the modified nth block by concatenating the n-1th transaction and the nth patch transaction and inputting it to the preset function;상기 수정된 n번째 블록에 삽입될 헤더인 수정 제n 헤더를 생성하는 단계;Generating a modified n-th header that is a header to be inserted into the modified n-th block;상기 수정 제n 헤더, 상기 제n 트랜잭션, 상기 제n 패치 트랜잭션 및 상기 수정 제n-1 결과값을 포함하는 상기 수정된 n번째 블록인 수정 제n 블록을 생성하는 단계;Generating a modified nth block that is the modified nth block including the modified nth header, the nth transaction, the nth patch transaction, and the modified n-1 result value;상기 수정 제n 블록에 대한 상기 블록체인의 합의 과정을 진행하는 단계; 및Performing a consensus process of the block chain for the modified n-th block; And상기 수정 제n 블록에 대한 합의 결과 합의에 성공하면, 상기 수정 제n 블록을 상기 블록체인에 추가하는 단계If consensus is successful as a result of the consensus on the modified n-th block, adding the modified n-th block to the blockchain를 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction that includes.
- 제1항에 있어서,The method of claim 1,상기 수정된 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계는,Generating an n-th patch transaction that is a patch transaction to be inserted into the modified n-th block,기설정된 값 또는 기설정된 방법에 따라서 상기 제n 패치 트랜잭션을 생성하는Generating the nth patch transaction according to a preset value or a preset method패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using patch transaction.
- 제1항에 있어서,The method of claim 1,상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 횟수 반복 수행하는 단계; 및If consensus fails as a result of consensus on the modified n-th block, a preset number of times from generating the n-th patch transaction to proceeding with the block chain consensus process for the modified n-th block until consensus is successful. Repeatedly performing; And상기 기설정된 횟수 동안 합의를 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계Determining that the agreement has finally failed if all of the agreements fail as a result of proceeding the agreement for the predetermined number of times를 더 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction further comprising.
- 제1항에 있어서,The method of claim 1,상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 시간 동안 반복 수행하는 단계; 및If consensus fails as a result of consensus on the modified n-th block, a preset time is from the step of generating the n-th patch transaction to proceeding with the block chain consensus process for the modified n-th block until consensus is successful. Performing iteratively during; And상기 기설정된 시간 동안 합의를 반복하여 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계Determining that the agreement has been finally failed if all of the agreements fail as a result of repeating the agreement for the predetermined period of time.를 더 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction further comprising.
- 제1항에 있어서,The method of claim 1,상기 제n 블록에 대한 합의 결과 합의에 성공하면, 상기 제n 블록을 상기 블록체인에 추가하는 단계If consensus is successful as a result of the consensus on the n-th block, adding the n-th block to the blockchain를 더 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction further comprising.
- n번째 블록에 삽입될 트랜잭션인 제n 트랜잭션을 수신하는 단계-상기 n은 2보다 큰 양의 정수-;receiving an nth transaction, which is a transaction to be inserted into an nth block, where n is a positive integer greater than 2;상기 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계;Generating an nth patch transaction that is a patch transaction to be inserted into the nth block;n-1번째 블록에 포함된 n-1번째 트랜잭션인 제n-1 트랜잭션과 상기 제n 패치 트랜잭션을 연접하여 기설정된 함수에 입력함으로써 상기 n번째 블록에 삽입될 결과값인 제n-1 결과값을 생성하는 단계;An n-1th result value that is a result value to be inserted into the nth block by concatenating the n-1th transaction, which is the n-1th transaction included in the n-1th block, and the nth patch transaction and inputting it to a preset function Generating a;상기 n번째 블록에 삽입될 헤더인 제n 헤더를 생성하는 단계;Generating an n-th header that is a header to be inserted into the n-th block;상기 제n 헤더, 상기 제n 트랜잭션, 상기 제n 패치 트랜잭션 및 상기 제n-1 결과값을 포함하는 상기 n번째 블록인 제n 블록을 생성하는 단계;Generating an nth block, which is the nth block, including the nth header, the nth transaction, the nth patch transaction, and the n-1th result value;상기 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계; 및Performing a block chain consensus process for the n-th block; And합의 결과 합의에 성공하면, 상기 제n 블록을 블록체인에 추가하는 단계If consensus is successful as a result of consensus, adding the nth block to the blockchain를 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction that includes.
- 제6항에 있어서,The method of claim 6,상기 n번째 블록에 삽입될 패치 트랜잭션인 제n 패치 트랜잭션을 생성하는 단계는,Generating an n-th patch transaction that is a patch transaction to be inserted into the n-th block,기설정된 값 또는 기설정된 방법에 따라서 상기 제n 패치 트랜잭션을 생성하는Generating the nth patch transaction according to a preset value or a preset method패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using patch transaction.
- 제6항에 있어서,The method of claim 6,합의 과정의 진행결과 합의에 실패하면, 수정된 n번째 블록에 삽입될 새로운 패치 트랜잭션인 수정 제n 패치 트랜잭션을 생성하는 단계;If consensus fails as a result of the consensus process, generating a modified n-th patch transaction that is a new patch transaction to be inserted into the modified n-th block;상기 제n-1 트랜잭션과 상기 수정 제n 패치 트랜잭션을 연접하여 기설정된 함수에 입력함으로써 상기 수정된 n번째 블록에 삽입될 결과값인 수정 제n-1 결과값을 생성하는 단계;Generating a modified n-1th result value that is a result value to be inserted into the modified nth block by concatenating the n-1th transaction and the modified nth patch transaction and inputting it to a preset function;상기 수정된 n번째 블록에 삽입될 헤더인 수정 제n 헤더를 생성하는 단계;Generating a modified n-th header that is a header to be inserted into the modified n-th block;상기 수정 제n 헤더, 상기 제n 트랜잭션, 상기 수정 제n 패치 트랜잭션 및 상기 수정 제n-1 결과값을 포함하는 상기 수정된 n번째 블록인 수정 제n 블록을 생성하는 단계;Generating a modified nth block that is the modified nth block including the modified nth header, the nth transaction, the modified nth patch transaction, and the modified n-1 result value;상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계; 및Performing a block chain consensus process for the modified n-th block; And상기 수정 제n 블록에 대한 합의 결과 합의에 성공하면, 상기 수정 제n 블록을 상기 블록체인에 추가하는 단계If consensus is successful as a result of the consensus on the modified n-th block, adding the modified n-th block to the blockchain를 더 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction further comprising.
- 제8항에 있어서,The method of claim 8,상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 수정 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 횟수 반복 수행하는 단계; 및If consensus fails as a result of the consensus on the modified n-th block, the process from generating the modified n-th patch transaction to proceeding with the block chain consensus process for the modified n-th block until consensus is successful is preset. Repeating the number of times; And상기 기설정된 횟수 동안 합의를 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계Determining that the agreement has finally failed if all of the agreements fail as a result of proceeding the agreement for the predetermined number of times를 더 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction further comprising.
- 제8항에 있어서,The method of claim 8,상기 수정 제n 블록에 대한 합의 결과 합의에 실패하면, 합의에 성공할 때까지 상기 수정 제n 패치 트랜잭션을 생성하는 단계에서 상기 수정 제n 블록에 대한 블록체인의 합의 과정을 진행하는 단계 까지를 기설정된 시간 동안 반복 수행하는 단계; 및If consensus fails as a result of the consensus on the modified n-th block, the process from generating the modified n-th patch transaction to proceeding with the block chain consensus process for the modified n-th block until consensus is successful is preset. Repeating for a period of time; And상기 기설정된 시간 동안 합의를 반복하여 진행한 결과 모두 실패하면 합의에 최종 실패하였다고 판단하는 단계Determining that the agreement has been finally failed if all of the agreements fail as a result of repeating the agreement for the predetermined period of time.를 더 포함하는 패치 트랜잭션을 이용한 블록체인 생성 방법.Blockchain creation method using a patch transaction further comprising.
- 제1항 내지 제10항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium having a program recorded thereon for executing the method of any one of claims 1 to 10.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0147444 | 2019-11-18 | ||
KR1020190147444A KR102151939B1 (en) | 2019-11-18 | 2019-11-18 | Method for creating blockchain using patch transaction |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021101040A1 true WO2021101040A1 (en) | 2021-05-27 |
Family
ID=72470732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2020/012109 WO2021101040A1 (en) | 2019-11-18 | 2020-09-08 | Method for generating blockchain by using patch transaction |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102151939B1 (en) |
WO (1) | WO2021101040A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102151939B1 (en) * | 2019-11-18 | 2020-09-04 | 주식회사 아이콘루프 | Method for creating blockchain using patch transaction |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170040079A (en) * | 2016-05-03 | 2017-04-12 | 안규태 | Block chain supporting multiple one-way functions used for verification of blocks |
WO2018161901A1 (en) * | 2017-03-10 | 2018-09-13 | 阿里巴巴集团控股有限公司 | Consensus method and device |
KR101975822B1 (en) * | 2018-10-26 | 2019-05-08 | (주)리그시스템 | Private blockchain network system and method for consensus based on blockchain |
KR20190077765A (en) * | 2017-12-26 | 2019-07-04 | 경희대학교 산학협력단 | Method of storing data using block-chain and Cloud System using thereof |
KR20190093012A (en) * | 2018-01-31 | 2019-08-08 | 지송학 | The method for block generation and validation in block-chain system |
KR102151939B1 (en) * | 2019-11-18 | 2020-09-04 | 주식회사 아이콘루프 | Method for creating blockchain using patch transaction |
-
2019
- 2019-11-18 KR KR1020190147444A patent/KR102151939B1/en active IP Right Grant
-
2020
- 2020-09-08 WO PCT/KR2020/012109 patent/WO2021101040A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170040079A (en) * | 2016-05-03 | 2017-04-12 | 안규태 | Block chain supporting multiple one-way functions used for verification of blocks |
WO2018161901A1 (en) * | 2017-03-10 | 2018-09-13 | 阿里巴巴集团控股有限公司 | Consensus method and device |
KR20190077765A (en) * | 2017-12-26 | 2019-07-04 | 경희대학교 산학협력단 | Method of storing data using block-chain and Cloud System using thereof |
KR20190093012A (en) * | 2018-01-31 | 2019-08-08 | 지송학 | The method for block generation and validation in block-chain system |
KR101975822B1 (en) * | 2018-10-26 | 2019-05-08 | (주)리그시스템 | Private blockchain network system and method for consensus based on blockchain |
KR102151939B1 (en) * | 2019-11-18 | 2020-09-04 | 주식회사 아이콘루프 | Method for creating blockchain using patch transaction |
Also Published As
Publication number | Publication date |
---|---|
KR102151939B1 (en) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360191B2 (en) | Establishing overlay trust consensus for blockchain trust validation system | |
KR102424841B1 (en) | Method for generating block chain and verifying integrity in smart contract system | |
US10630463B2 (en) | Meta block chain | |
US20190287082A1 (en) | Method for processing transactions using blockchain networks, and transaction management server using the same | |
US8316240B2 (en) | Securing computer log files | |
US11182403B2 (en) | Systems and methods of launching new nodes in a blockchain network | |
CN112287034B (en) | Data synchronization method, equipment and computer readable storage medium | |
WO2020246706A1 (en) | Blockchain-based document information management device for assuring document reliability and method of operating same | |
WO2020138606A1 (en) | Fault-tolerant consensus method for eliminating obstacle factors of consensus in blockchain network | |
CN109344631A (en) | The data modification and block verification method, device, equipment and medium of block chain | |
WO2020158973A1 (en) | Hypothesis acceptance protocol-2 mode blockchain consensus system and method | |
WO2021101040A1 (en) | Method for generating blockchain by using patch transaction | |
CN111095861A (en) | Improved time-lock technique for protecting resources on a blockchain | |
WO2020213763A1 (en) | Method and system for verifying block-chain data stored in storage having different format from block-chain | |
CN107580032A (en) | Data processing method, device and equipment | |
CN111835514A (en) | Method and system for realizing safe interaction of front-end and back-end separated data | |
CN110070360A (en) | A kind of transactions requests processing method, device, equipment and storage medium | |
JP7447127B2 (en) | Preventing the sending of accidental copies of data records to a distributed ledger system | |
CN112883117A (en) | Data synchronization method, equipment and computer readable storage medium | |
CN110555682B (en) | Multi-channel implementation method based on alliance chain | |
CN107171808A (en) | A kind of verification method and device of electronic record authenticity | |
WO2015046775A1 (en) | Method of verifying integrity of program using hash | |
US9800585B2 (en) | Restricting access by services deployed on an application server | |
CN110772785A (en) | Game archive sharing method and device and electronic equipment | |
JP7421443B2 (en) | Data migration methods, data migration systems, and nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20889882 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20889882 Country of ref document: EP Kind code of ref document: A1 |