WO2019190040A1 - Method for generating non-deterministic data in blockchain-based system - Google Patents

Method for generating non-deterministic data in blockchain-based system Download PDF

Info

Publication number
WO2019190040A1
WO2019190040A1 PCT/KR2019/001046 KR2019001046W WO2019190040A1 WO 2019190040 A1 WO2019190040 A1 WO 2019190040A1 KR 2019001046 W KR2019001046 W KR 2019001046W WO 2019190040 A1 WO2019190040 A1 WO 2019190040A1
Authority
WO
WIPO (PCT)
Prior art keywords
blockchain
deterministic data
data
smart contract
based system
Prior art date
Application number
PCT/KR2019/001046
Other languages
French (fr)
Korean (ko)
Inventor
이규상
성기운
정현석
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Publication of WO2019190040A1 publication Critical patent/WO2019190040A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Definitions

  • the present disclosure relates to a non-deterministic data generation method performed in a blockchain based system. More specifically, in a blockchain-based system including a plurality of blockchain nodes operating according to a blockchain algorithm, a method for generating nondeterministic data on its own without using an external server, a transaction requiring nondeterministic data It's about how to do it yourself.
  • Blockchain technology records data that is continuously growing in a specific unit of block, and each node constituting a peer-to-peer network manages the block in a chain data structure. Means technology. At this time, blockchain data composed of a data structure in a chain form is kept the same at each blockchain node without control of the central system.
  • each blockchain node constituting the blockchain-based system operates to maintain the same blockchain data, the blockchain-based system cannot generate non-deterministic data on its own. For example, suppose that the first blockchain node 1 and the second blockchain node 3 generate random values 2 and 4, respectively, as shown in FIG. Then, due to the nature of the non-deterministic data, different random values (2, 4) may be generated at each blockchain node (1, 3). In such a case, since no agreement can be made between the blockchain nodes 1 and 3, the generated random value cannot be effectively used on the blockchain. Therefore, in a blockchain based system, nondeterministic data cannot be generated on its own.
  • some blockchain-based systems e.g. Ethereum
  • the external server is a major factor that degrades the reliability of the entire blockchain-based system, such as being the target of intensive attacks.
  • the technical problem to be solved through the embodiments of the present disclosure is to provide a method for generating non-deterministic data by itself without using an external server in a blockchain-based system.
  • Another technical problem to be solved through the embodiments of the present disclosure is to provide a method for self-processing a transaction in which non-deterministic data is used in a blockchain-based system.
  • a non-deterministic data generation method non-deterministic data performed in a blockchain-based system including a plurality of blockchain nodes
  • a first non-deterministic one of the plurality of block chain nodes the first non-deterministic using a first smart contract shared on the block chain in response to a request for generating non-deterministic data Generating data
  • the first blockchain node receiving second non-deterministic data from a second blockchain node of the plurality of blockchain nodes, and the first blockchain node being the first non-deterministic And selecting one of the non-deterministic data from the data and the second non-deterministic data.
  • the second non-deterministic data may be generated by the second blockchain node using the first smart contract shared on the blockchain.
  • the blockchain based system manages a consensus policy for each smart contract shared on the blockchain, and the consensus policy sets the number of signatures required for consensus of the smart contract. Included as an item, the number of signatures defined in the consensus policy for the first smart contract may be 1.
  • the generation request may be to be triggered by a second smart contract shared on the blockchain.
  • the first blockchain node further comprises the step of receiving an identification value for the non-deterministic data with the generation request, wherein the selected non-deterministic data is matched with the identification value on the blockchain. Can be recorded.
  • non-deterministic data generation method non-deterministic data performed in a blockchain-based system including a plurality of blockchain nodes
  • the blockchain based system manages a consensus policy for each smart contract shared on the blockchain, and the consensus policy sets the number of signatures required for consensus of the smart contract. Included as an item, the number of signatures defined in the consensus policy for the first smart contract may be 1.
  • the blockchain-based system manages a consensus policy for each smart contract shared on the blockchain, and the consensus policy includes a list of blockchain nodes that sign the smart contract as a setting item.
  • the list of blockchain nodes defined in the consensus policy of the first smart contract may include only the first blockchain node.
  • a non-deterministic data generation method non-deterministic data performed in a blockchain-based system including a plurality of blockchain nodes
  • the first blockchain node of the plurality of blockchain nodes in response to a request for generating non-deterministic data received from the requesting device, establishes a first smart contract shared on the blockchain.
  • Has a node number comprise the step of receiving the first non-critical data and non-deterministic data selected by the requesting device of the second non-critical data.
  • the second non-deterministic data may be generated by the second blockchain node using the first smart contract shared on the blockchain.
  • a transaction processing method in a blockchain-based system in a transaction processing method performed in a blockchain-based system including a plurality of blockchain nodes Receiving a processing request for a target transaction using non-deterministic data from a user terminal, and in response to the processing request, generating non-deterministic data using a first smart contract shared on the blockchain; And processing the target transaction using the second non-deterministic data and the second smart contract related to the target transaction shared on the blockchain.
  • the processing of the target transaction may include providing challenge data to the user terminal based on the generated non-deterministic data, and from the user terminal, a response corresponding to the challenge data ( and receiving the response data and processing the target transaction using the response data and the second smart contract.
  • the blockchain-based system in response to a request for generating non-deterministic data, uses a first smart contract shared on the blockchain.
  • the first blockchain node may generate a first non-deterministic data
  • the second blockchain node may generate a second non-deterministic data using the first smart contract in response to the generation request.
  • the first blockchain node performs an operation of selecting any one of the first non-deterministic data and the second non-deterministic data, and write the selected non-deterministic data on the blockchain. Can be.
  • non-deterministic data may be generated by itself in a blockchain based system without the help of an external server. Therefore, the problem that the overall security and reliability of the blockchain-based system is degraded by the external server can be solved.
  • the generated non-deterministic data is recorded on the blockchain by matching an identification value such as a transaction ID, and the recorded non-deterministic data can be queried by the identification value. Accordingly, the blockchain based system according to the embodiments of the present disclosure may operate so that only the transaction subject of the transaction can access the non-deterministic data used for processing the transaction.
  • the blockchain-based system can provide a secure processing service for the critical transactions (e.g. challenge-response-based authentication is accompanied by authentication) that requires non-deterministic data.
  • critical transactions e.g. challenge-response-based authentication is accompanied by authentication
  • FIG. 1 is a diagram illustrating a problem in the case of generating non-deterministic data by itself in a blockchain based system.
  • FIG. 2 is a schematic diagram of an exemplary blockchain based system in which methods in accordance with some embodiments of the present disclosure may be performed.
  • 3 to 5 are flowcharts illustrating a method for generating non-deterministic data and processing a transaction according to a first embodiment of the present disclosure.
  • FIG. 6 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a second embodiment of the present disclosure.
  • FIG. 7 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a third embodiment of the present disclosure.
  • FIGS. 8 through 10 are flowcharts illustrating a method of querying and providing non-deterministic data according to some embodiments of the present disclosure.
  • FIG. 11 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a fourth embodiment of the present disclosure.
  • 12 and 13 are flowcharts illustrating examples in which non-deterministic data generated by a method according to some embodiments of the present disclosure is utilized for transaction processing.
  • FIG. 14 is a hardware configuration diagram of an exemplary computing device that can implement each blockchain node constituting a blockchain based system.
  • the blockchain data refers to data held by each blockchain node constituting the blockchain network, and refers to data in which at least one block is composed of a data structure in a chain form. All blockchain nodes that make up a blockchain-based system maintain the same blockchain data. However, when a blockchain-based system supports a multi-channel function, blockchain nodes belonging to the same channel maintain the same blockchain data.
  • a blockchain network refers to a network of a P2P structure composed of a plurality of blockchain nodes operating according to a blockchain algorithm (or protocol).
  • a blockchain node refers to a computing node constituting a blockchain network and operating according to a blockchain algorithm (or protocol).
  • the computing node may be implemented as a physical device, but may also be implemented as a logical device such as a virtual machine.
  • a plurality of blockchain nodes may be included in one physical device. See FIG. 14 for an example in which the blockchain node is implemented as a physical device.
  • non-deterministic data includes all data having probabilistic properties in which different results may be generated in some cases.
  • Representative examples of the non-deterministic data may be random data (e.g. random number), time stamp (timestamp) and the like.
  • time stamp time stamp
  • the scope of the present disclosure is not limited to the examples listed above.
  • a smart contract means a script or software code used for transaction processing in a blockchain based system. More specifically, the smart contract is a code that programmatically writes various conditions, states, and behaviors according to the conditions used for transaction processing, for example, a smart contract of Ethereum, a hyperledger fabric. Chain code), and the like.
  • blockchain nodes can share smart contracts through the blockchain.
  • FIG. 2 is a schematic diagram of an exemplary blockchain based system in which methods in accordance with some embodiments of the present disclosure may be performed.
  • the blockchain based system may be configured to include a plurality of blockchain nodes 100-1 to 100-6.
  • each component of the blockchain-based system shown in FIG. 2 represents functionally divided functional elements, and it may be noted that at least one component may be implemented in an integrated form in an actual physical environment.
  • the user terminal 200 and the at least one blockchain node 100 may be implemented in different logic within the same physical computing device.
  • two or more blockchain nodes 100 may be implemented in different logic within the same physical computing device.
  • the blockchain node 100 is a node that operates according to a blockchain algorithm (or protocol).
  • the plurality of blockchain nodes 100 constitute a distributed P2P network 300 and share blockchain data on the blockchain.
  • blockchain data may be shared only between blockchain nodes belonging to the same channel.
  • the sharing of blockchain data on the blockchain may be understood that a plurality of blockchain nodes maintain the same blockchain data.
  • the blockchain node 100 shares a smart contract on the blockchain.
  • FIG. 2 only the blockchain nodes 100-1 and 100-2 share the smart contract 10 and the smart contract 20, but the remaining blockchain nodes 100-3 to 100-6 are also illustrated.
  • the smart contract 10 and the smart contract 20 may be shared. However, as described above, since the two blockchain nodes 100-1 and 100-2 are nodes belonging to the same channel, only the block chain nodes 100-1 and 100-2 are connected to the smart contracts 10 and 20. You may understand that you share.
  • the smart contract 10 (hereinafter referred to as "smart contract A”) is software code that includes a routine for processing a transaction requested from the user terminal 200.
  • the requested transaction may be a transaction processed using non-deterministic data (eg a transaction involving challenge-response based authentication), and smart contract A 10 may request the It can include specific routines that use nondeterministic data to process transactions.
  • the smart contract A 10 may use the smart contract 20 (hereinafter referred to as "smart contract B”) to obtain non-deterministic data required in the course of executing the specific routine. Detailed description thereof will be described later with reference to the drawings of FIG. 3.
  • Smart contract B 20 is software code that includes a routine for generating nondeterministic data.
  • the smart contract B 20 may include a function (e.g. random ()) for generating random data.
  • smart contract B 20 may provide self-generated non-deterministic data to a requestor of non-deterministic data.
  • the requestor may be the user terminal 200 or may be the blockchain node 100.
  • a consensus policy (eg, an endorsement policy in the case of the hyperledger fabric) may be defined for each smart contract (e.g. 10, 20).
  • the consensus policy is, for example, a list of blockchain nodes (or a list of signatures) executing (or signing) the smart contract, the number of blockchain nodes, the signature required for the consensus of a transaction regarding the smart contract. And the like, but the scope of the present disclosure is not limited to the examples enumerated above.
  • the smart contract is executed according to the consensus policy, and the consensus policy may be flexibly defined according to factors such as the purpose, importance, etc. of the smart contract.
  • the user terminal 200 is a terminal that receives a transaction service of various transactions through a blockchain based system. For example, the user terminal 200 may request the processing of a transaction to the blockchain-based system and check the processing result of the transaction according to the request. In addition, the user terminal 200 may directly request nondeterministic data to the blockchain-based system, and may receive non-deterministic data generated by the blockchain-based system.
  • Each component constituting the blockchain based system may communicate through a network.
  • the network may be any type of wired / wireless network such as a local area network (LAN), a wide area network (WAN), a mobile radio communication network, a wireless broadband Internet (Wibro), or the like. Can be implemented.
  • 3 to 5 are flowcharts illustrating a method for generating non-deterministic data and processing a transaction according to a first embodiment of the present disclosure.
  • 3, 4 and the following drawings show only two blockchain nodes 100-1 and 100-2, but this is only for convenience of understanding and may include three or more blockchain nodes. Of course.
  • both requesting and generating non-deterministic data are performed in a single blockchain node.
  • the method according to the first embodiment will be described in detail.
  • the method according to the first embodiment starts at step S10 of receiving a transaction processing request from the user terminal 200.
  • the requested transaction is a transaction in which nondeterministic data is used.
  • the user terminal 200 may request processing of the transaction with a predetermined identification value.
  • the identification value is a value used to provide an inquiry function for non-deterministic data, for example, a transaction ID, a random value, and the like.
  • the generated nondeterministic data can be recorded on the blockchain by matching with the received identification value. An example thereof will be described with reference to FIGS. 4, 12, and 13.
  • an inquiry function for non-deterministic data recorded on the blockchain using an identification value may be provided.
  • an expiration time for non-deterministic data is set, and the expiration time information may also be recorded on the blockchain by matching the identification value. An example of the use of the validity period will be described with reference to FIGS. 13 and 14.
  • smart contract A 10 is a smart contract that includes a routine for processing the transaction using non-deterministic data.
  • step S11 the smart contract A 10 triggers a request for generating non-deterministic data.
  • step S12 in response to the generation request, the first blockchain node 100-1 executes the smart contract B 20 shared on the blockchain to generate nondeterministic data.
  • smart contract B 20 is a smart contract that includes a routine for generating nondeterministic data (e.g. 0x123).
  • step S12 the first blockchain node 100-1 executes the smart contract B 20, while the second blockchain node 100-2 does not execute the smart contract B 20.
  • This may be understood as the operation of the system according to the consensus policy of the smart contract B 20. For example, if a blockchain-based system operates on a hyperresist fabric, the number of signatures required for consensus is one ("1 of n") or blockchain nodes that execute (or sign) the smart contract B 20. If the "endorsement policy" is defined such that the endorser becomes the first blockchain node 100-1, it may operate as shown in FIG.
  • step S13 the non-deterministic data generated as a result of the execution of the smart contract B 20 is provided to the smart contract A 10.
  • the smart contract A 10 can then process the requested transaction using the generated nondeterministic data.
  • step S14 the first blockchain node 100-1 provides the user terminal 200 with the processing result of the transaction.
  • the first blockchain node 100-1 may also provide the user terminal 200 with nondeterministic data used for transaction processing.
  • the smart contract B 20 generates nondeterministic data according to the request of the smart contract A 10, but may generate nondeterministic data in response to a direct request of the user terminal 200.
  • the smart contract B 20 may generate nondeterministic data according to the request of the smart contract A 10, but may generate nondeterministic data in response to a direct request of the user terminal 200.
  • the blockchain nodes among the blockchain nodes are nodes that process and sign transactions (eg, "endorsers” in the hyperleisure fabric) and nodes that are responsible for finalizing transactions (eg “orderers” in the hyperresponse fabric). May exist separately.
  • the method according to the first embodiment may be performed as shown in FIG.
  • the smart contract A 10 of the first blockchain node 100-1 passes to the consensus node 100-k that is responsible for the determination of the generated non-deterministic data (S34).
  • the generated non-deterministic data can be recorded on the blockchain.
  • a method according to some embodiments of the present disclosure will be described assuming a consensus node exists. However, the technical scope of the present disclosure is not limited or changed by the existence of the consensus node.
  • non-deterministic data generation and transaction processing method according to the first embodiment of the present disclosure has been described with reference to FIGS. 3 to 5.
  • non-deterministic data can be generated on its own inside the blockchain-based system without using an external server. Accordingly, the security weakness caused by the external server is compensated for, and the reliability and security of the overall system can be improved.
  • FIG. 6 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a second embodiment of the present disclosure.
  • the request and the generation of the nondeterministic data are performed in different blockchain nodes.
  • the method according to the second embodiment will be described based on differences from the above-described embodiment, and descriptions of the same contents as the above-described embodiment will be omitted.
  • the method according to the second embodiment also begins at step S40 of receiving a transaction processing request from the user terminal 200.
  • a predetermined identification value may be provided from the user terminal 200 in step S40.
  • step S41 a request for generation of non-deterministic data is triggered by the smart contract A 10 of the first blockchain node 100.
  • step S42 in response to the generation request, the second blockchain node 100-2 executes the smart contract B 20 shared on the blockchain to generate nondeterministic data.
  • step S42 the second blockchain node 100-2 executes the smart contract B 20, while the first blockchain node 100-1 does not execute the smart contract B 20. Do not.
  • This may be understood as the operation of the system according to the consensus policy of the smart contract B 20. For example, if the blockchain-based system operates on a hyperledger fabric basis, the number of signatures required for consensus is one ("1 of n") or the execution nodes of the smart contract B 20 are second blockchains. If the "endorsement policy" is defined to be the node 100-2, it may operate as shown in FIG.
  • step S43 the non-deterministic data generated as a result of the execution of the smart contract B 20 is provided to the smart contract A 10.
  • the smart contract A 10 can then process the requested transaction using the generated nondeterministic data. Description of the following steps (S44 to S46) is the same as described above will be omitted.
  • FIG. 7 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a third embodiment of the present disclosure.
  • the generation of non-deterministic data is performed in a plurality of blockchain nodes e.g. 100-1, 100-2, ⁇ , 100-n.
  • a plurality of blockchain nodes e.g. 100-1, 100-2, ⁇ , 100-n.
  • the method according to the third embodiment will be described based on differences from the above-described embodiment, and descriptions of the same contents as the above-described embodiment will be omitted.
  • the method according to the third embodiment also begins at step S50 of receiving a transaction processing request from the user terminal 200.
  • a predetermined identification value may be provided from the user terminal 200 in step S50.
  • steps S51-1 and S51-2 a request for generation of non-deterministic data by the smart contract A 10 of the first blockchain node 100 is transmitted to the plurality of blockchain nodes 100-1 and 100-2. Triggered by
  • each blockchain node 100-1 or 100-2 executes the smart contract B 20 shared on the blockchain to perform non- Generate deterministic data (eg 0x123, 0xabc).
  • non- Generate deterministic data eg 0x123, 0xabc
  • the plurality of blockchain nodes eg 100-1 and 100-2 execute the smart contract B 20 to generate non-deterministic data, respectively.
  • It can be understood as the operation of the system according to the consensus policy of B (20). For example, if a blockchain based system operates on a hyperresist fabric, the number of signatures required for consensus is one ("1 of n") and the blockchain nodes executing (or signing) the smart contract B 20. If the "endorsement policy" is defined to have a plurality of (endorser), it can operate as shown in FIG.
  • the "endorsement policy" is defined such that the list of nodes signing the smart contract B 20 includes only the first blockchain node 100-1 and the second blockchain node 100-2, the plurality of nodes Only two blockchain nodes 100-1 and 100-2 of the blockchain nodes execute and sign the smart contract B 20.
  • the first blockchain node 100-1 is provided with a plurality of generated non-deterministic data, and among the plurality of non-deterministic data, specific non-deterministic data (eg 0x123). Select).
  • specific non-deterministic data eg 0x123. Select
  • a method of selecting specific nondeterministic data may be used.
  • the first blockchain node 100-1 may select specific non-deterministic data (e.g., the earliest acquired data, the latest acquired data, etc.) based on the acquisition time.
  • specific non-deterministic data e.g., the earliest acquired data, the latest acquired data, etc.
  • the first blockchain node 100-1 may arbitrarily select specific nondeterministic data from among a plurality of nondeterministic data.
  • the first blockchain node 100-1 may select specific data based on a distribution of values of the plurality of non-deterministic data. For example, data having the largest deviation among a plurality of non-deterministic data may be selected.
  • the above listed examples are merely to describe some embodiments of the present disclosure, and the scope of the present disclosure is not limited to the above listed examples.
  • non-deterministic data generation and transaction processing method has been described with reference to FIG. 7.
  • non-deterministic data can be generated on its own inside the blockchain-based system without using an external server. Accordingly, the security weakness caused by the external server is compensated for, and the reliability and security of the overall system can be improved.
  • non-deterministic data generated according to the above-described embodiments may be provided to the user terminal 200 in various ways.
  • the first blockchain node 100-1 is configured before the selected non-deterministic data is written onto the blockchain ( That is, before being determined, the selected non-deterministic data may be provided to the user terminal 200 (S65).
  • the first blockchain node 100-1 is provided with only one non-deterministic data (eg, as shown in FIGS. 4 to 6), the first blockchain node 100-1 is a separate choice. It may operate to provide the non-deterministic data directly to the user terminal 200 without performing a process.
  • the first blockchain node 100-1 may operate to provide non-deterministic data after the generated non-deterministic data is written onto the blockchain ( S77).
  • the first blockchain node 100-1 sends a predetermined signal to the user terminal 200 after the generated nondeterministic data is recorded on the blockchain. Notification can be made (S87).
  • the notification of the confirmation signal is shown to be performed by the smart contract B 20.
  • the confirmation signal may be notified by the smart contract A 10.
  • the user terminal 200 can query the non-deterministic data recorded on the blockchain, the query uses the identification value provided in the request for the generation of the non-deterministic data It may be performed (S88 to S90).
  • the user terminal 200 is shown as querying non-deterministic data through the smart contract A 10, but the user terminal 200 is directly recorded on the blockchain via the smart contract B 20. You can also query deterministic data.
  • non-deterministic data generated by the combination of the first to third embodiments may be provided to or retrieved from the user terminal 200.
  • FIG. 11 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a fourth embodiment of the present disclosure.
  • the generation of non-deterministic data is performed in the plurality of blockchain nodes e.g. 100-1, 100-2, ⁇ , 100-n as in the above-described third embodiment.
  • the selection of non-deterministic data is performed in a separate device (e.g. user terminal 200).
  • the method according to the fourth embodiment will be described based on differences from the above-described embodiment, and descriptions of the same contents as the above-described embodiment will be omitted.
  • the method according to the fourth embodiment also begins at step S100 of receiving a transaction processing request from the user terminal 200.
  • the predetermined identification value may be provided from the user terminal 200 in step S100.
  • the plurality of blockchain nodes e.g. 100-1 and 100-2 each execute the smart contract B 20 to generate a plurality of non-deterministic data. Detailed description thereof is as described above and will be omitted.
  • step S104 the first blockchain node 100-1 provides the generated non-deterministic data (e.g. 0x123, 0xabc) to the user terminal 200.
  • the generated non-deterministic data e.g. 0x123, 0xabc
  • FIG. 11 illustrates that the first blockchain node 100-1 collects a plurality of non-deterministic data (eg, 0x123 and 0xabc) and provides the collected data to the user terminal 200 by way of example.
  • Each of the chain nodes eg 100-1 and 100-2 may provide the user terminal 200 with non-deterministic data generated by the chain nodes eg 100-1 and 100-2.
  • step S105 the user terminal 200 selects specific nondeterministic data (e.g. 0x123) from the plurality of nondeterministic data.
  • specific nondeterministic data e.g. 0x123
  • a method of selecting specific nondeterministic data may be used.
  • step S106 the user terminal 200 delivers the selected nondeterministic data to the consensus node 100-k, such that the selected nondeterministic data is recorded on the blockchain.
  • the user terminal 200 directly transmits the selected non-deterministic data to the consensus node 100-k, but according to an exemplary embodiment, the user terminal 200 may select the selected non-deterministic data. It may be operable to deliver to the consensus node (100-k) through the other blockchain nodes (eg 100-1, 100-2).
  • step S107 is the same as described above, and thus will be omitted.
  • a plurality of non-deterministic data generated by the blockchain nodes 100-1 and 100-2 are transferred to the consensus node 100-k, and the consensus node 100-k. ) May be operated to perform the selection step S105 of non-deterministic data.
  • the consensus node 100-k operates to record the selected non-deterministic data on the blockchain and provide the selected non-deterministic data to the first blockchain node 100-1 or the user terminal 200. can do.
  • a plurality of non-deterministic data generated by the blockchain nodes is not the consensus node other blockchain nodes (eg 100-2, 100- 3), and the specific blockchain node having received the plurality of non-deterministic data may operate to perform the step of selecting non-deterministic data (S105).
  • the particular blockchain node may be operable to provide the selected non-deterministic data to the consensus node 100-k and / or the user terminal 200.
  • the step of selecting non-deterministic data may be performed in a separate computing device (not shown) that does not constitute a blockchain network.
  • the computing device transfers the transaction processing request received from the user terminal 200 to the blockchain node, receives a plurality of non-deterministic data from the blockchain node, and among the plurality of received non-deterministic data Select any non-deterministic data, and transmit the selected non-deterministic data to the user terminal 200, the blockchain nodes (eg 100-1, 100-2) and / or consensus node (100-k). can do.
  • the computing device receives a plurality of non-deterministic data from a blockchain node, selects any one non-deterministic data from the plurality of received non-deterministic data, and selects the selected non-deterministic data from the user terminal 200. ), Only the operation of transferring to the blockchain nodes (eg 100-1, 100-2) and / or consensus node 100-k may be performed.
  • the subject performing the selection step S105 of non-deterministic data may vary according to embodiments.
  • FIGS. 12 and 13 are flowcharts illustrating examples in which non-deterministic data generated by a method according to some embodiments of the present disclosure is utilized for transaction processing.
  • FIGS. 12 and 13 illustrate an example of processing through a smart contract A 10 a transaction involving challenge-response based user authentication.
  • the blockchain node executing the smart contracts 10 and 20 may vary according to embodiments, and thus, the blockchain network 300 is illustrated. First, the use example shown in FIG. 12 will be described.
  • non-deterministic data is generated through the smart contract B 20, and the generated non-deterministic data is a blockchain. Is recorded on.
  • a predetermined identification value e.g. transaction ID
  • the non-deterministic data is stored matched with the identification value and access to the non-deterministic data is allowed through the identification value, only the transaction subject of the transaction can access the non-deterministic data used for processing the transaction. .
  • a more secure transaction processing service can be provided.
  • the validity period of non-deterministic data can be recorded together on the blockchain.
  • the non-deterministic data that has passed the validity period is processed as data that is no longer valid, it is possible to prevent a replay attack or the like. That is, even if the generated non-deterministic data is seized, since it does not affect subsequent transactions, security for transaction processing can be further improved.
  • steps S114 to S116 the generated nondeterministic data is delivered to the user terminal 200 as a random challenge value.
  • step S117 the user terminal 200 performs an electronic signature by using the received random challenge value.
  • the electronic signature may be, for example, a method of signing a random challenge value with a user's private key. It may be done in any way.
  • a hash function may be hashed using a hash function, and according to the challenge-response technique, the operation of step S97 and the type of response data provided by the user terminal 200 may be performed. It can be modified in various forms.
  • the smart contract A 10 receives an electronic signature and a transaction ID from the user terminal 200, and requests an inquiry of a random challenge value recorded on the blockchain using the transaction ID. .
  • step S121 the inquiry and validity check of the random challenge value are performed through the smart contract B 20.
  • the validity check may include a determination as to whether a random challenge value matching the transaction ID is inquired, a determination as to whether or not the validity period of the inquired random challenge value has already expired.
  • the smart contract B 20 determines whether the validity period of the inquired random challenge value has expired, and responds to the determination that it has not expired. Operate to update the time period.
  • the smart contract B 20 determines whether the valid period of the inquired random challenge value has expired, and in response to the expiration determination, the new random challenge value. May be operable to notify that it is to be generated. Alternatively, smart contract B 20 may be operable to generate a new random challenge value in response to the expiration determination and provide the generated random challenge value.
  • step S122 an inquiry result including a validity check result is provided.
  • step S123 the smart contract A 10 performs transaction processing utilizing the inquiry result. For example, when the validity period of the inquired random challenge value has expired, a result indicating that the transaction cannot be effectively processed may be provided as a processing result. For another example, if the inquired random challenge value is valid, verification of the electronic signature may be performed using the user's public key and the random challenge value. And, if the electronic signature is verified, the transaction of the transaction can be effectively performed by the smart contract A (10).
  • steps S124 and S125 the processing result of the requested transaction is provided to the user terminal 200.
  • the utilization example shown in FIG. 13 is generally similar to the example shown in FIG. 12. However, in steps S130 to S133, the request of the user terminal 200 is directly transmitted to the smart contract B 20, and the generated random challenge value is also directly passed through the smart contract A 10 without being passed through the smart contract A 10. The difference is that it is provided by. Since the description of the subsequent steps is the same as described above, it will be omitted.
  • FIG. 14 is a hardware diagram of an example computing device 400 that can implement a blockchain node according to an embodiment of the disclosure.
  • the computing device 400 may include one or more processors 410, a bus 450, a network interface 470, and a memory 430 that loads a computer program executed by the processor 410. And a storage 490 for storing the smart contract 491.
  • FIG. 14 illustrates only the components related to the embodiment of the present disclosure. Accordingly, it will be appreciated by those skilled in the art that the present disclosure may further include other general purpose components in addition to the components illustrated in FIG. 14.
  • the processor 410 controls the overall operation of each component of the computing device 400.
  • the processor 410 includes a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), a graphics processing unit (GPU), or any type of processor well known in the art. Can be.
  • the processor 410 may perform an operation on at least one application or program for executing a method according to embodiments of the present disclosure.
  • Computing device 400 may have one or more processors.
  • the memory 430 stores various data, commands, and / or information.
  • the memory 430 may load one or more programs 491 from the storage 490 to execute a method of generating non-deterministic data according to embodiments of the present disclosure.
  • RAM is illustrated as an example of the memory 430.
  • the bus 450 provides communication between components of the computing device 400.
  • the bus 450 may be implemented as various types of buses such as an address bus, a data bus, and a control bus.
  • the network interface 470 supports wired and wireless Internet communication of the computing device 400.
  • the network interface 470 may support various communication methods other than Internet communication.
  • the network interface 470 may comprise a communication module well known in the art of the present disclosure.
  • the storage 490 may non-temporarily store the one or more programs 491.
  • a smart contract 491 is shown that generates nondeterministic data as an example of the one or more programs 491.
  • the storage 490 may further include a blockchain program (not shown) for operating the computing device 400 according to a blockchain algorithm (e.g., executing a smart contract).
  • Storage 490 is well known in the art for non-volatile memory, hard disks, removable disks, or the like to which the present disclosure pertains, such as Read Only Memory (ROM), Eraseable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), flash memory, and the like. It may comprise any known type of computer readable recording medium.
  • ROM Read Only Memory
  • EPROM Eraseable Programmable ROM
  • EEPROM Electrically Erasable Programmable ROM
  • flash memory and the like. It may comprise any known type of computer readable recording medium.
  • the smart contract 491 generates nondeterministic data on the blockchain according to the embodiment of the present disclosure described above.
  • smart contract 491 may include a routine that is loaded into memory 430, executed by one or more processors 410, and generates the non-deterministic data in response to a non-deterministic data generation request. .
  • the technical concept of the present disclosure described above with reference to FIGS. 2 to 14 may be implemented in computer readable code on a computer readable medium.
  • the computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer equipped hard disk). Can be.
  • the computer program recorded on the computer-readable recording medium may be transmitted to another computing device and installed in the other computing device through a network such as the Internet, thereby being used in the other computing device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Provided is a method for generating non-deterministic data autonomously without using a separate external server in a blockchain-based system. A non-deterministic data generation method according to an embodiment of the present disclosure may comprise the steps in which: a first blockchain node among a plurality of blockchain nodes generates first non-deterministic data using a first smart contract shared on the blockchain, in response to a request for generation of non-deterministic data; the first blockchain node receives second non-deterministic data from a second blockchain node among the plurality of blockchain nodes; and the first blockchain node selects any one of the first non-deterministic data and the second non-deterministic data. At this time, the second non-deterministic data may be generated by the second blockchain node using the first smart contract shared on the blockchain.

Description

블록체인 기반 시스템에서의 비결정적 데이터 생성 방법Nondeterministic Data Generation Method in Blockchain-based Systems
본 개시는 블록체인 기반 시스템에서 수행되는 비결정적 데이터 생성 방법에 관한 것이다. 보다 자세하게는, 블록체인 알고리즘에 따라 동작하는 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서, 외부의 서버를 이용하지 않고 자체적으로 비결정적 데이터를 생성하는 방법, 비결정적 데이터를 요구하는 트랜잭션을 자체적으로 처리하는 방법에 관한 것이다.The present disclosure relates to a non-deterministic data generation method performed in a blockchain based system. More specifically, in a blockchain-based system including a plurality of blockchain nodes operating according to a blockchain algorithm, a method for generating nondeterministic data on its own without using an external server, a transaction requiring nondeterministic data It's about how to do it yourself.
블록체인(blockchain) 기술은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 노드들이 상기 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술을 의미한다. 이때, 체인 형태의 자료 구조로 구성된 블록체인 데이터는, 중앙 시스템의 제어 없이 각각의 블록체인 노드에서 동일하게 유지된다.Blockchain technology records data that is continuously growing in a specific unit of block, and each node constituting a peer-to-peer network manages the block in a chain data structure. Means technology. At this time, blockchain data composed of a data structure in a chain form is kept the same at each blockchain node without control of the central system.
블록체인 기반 시스템을 구성하는 각 블록체인 노드는 모두 동일한 블록체인 데이터를 유지하도록 동작하기 때문에, 블록체인 기반 시스템은 자체적으로 비결정적 데이터(non-deterministic data)를 생성할 수 없다. 예를 들어, 도 1에 도시된 바와 같이, 제1 블록체인 노드(1)와 제2 블록체인 노드(3)가 각각 랜덤 값(2,4)을 생성한다고 가정하자. 그러면, 비결정적 데이터의 특성으로 인해 각 블록체인 노드(1, 3)에서 상이한 랜덤 값(2,4)이 생성될 수 있다. 이와 같은 경우, 블록체인 노드(1,3) 간에 합의가 이루어질 수 없기 때문에, 생성된 랜덤 값은 블록체인 상에서 유효하게 이용될 수 없다. 따라서, 블록체인 기반 시스템에서는 자체적으로 비결정적 데이터가 생성될 수 없다.Since each blockchain node constituting the blockchain-based system operates to maintain the same blockchain data, the blockchain-based system cannot generate non-deterministic data on its own. For example, suppose that the first blockchain node 1 and the second blockchain node 3 generate random values 2 and 4, respectively, as shown in FIG. Then, due to the nature of the non-deterministic data, different random values (2, 4) may be generated at each blockchain node (1, 3). In such a case, since no agreement can be made between the blockchain nodes 1 and 3, the generated random value cannot be effectively used on the blockchain. Therefore, in a blockchain based system, nondeterministic data cannot be generated on its own.
상기와 같은 문제를 해결하기 위해, 일부 블록체인 기반 시스템(e.g. 이더리움)에서는 외부 서버로부터 비결정적 데이터를 얻어오는 방식을 채용하고 있다. 그러나, 외부 서버는 집중적인 공격 대상이 되는 등 전체 블록체인 기반 시스템의 신뢰성을 저하시키는 주된 요인이 된다.In order to solve the above problems, some blockchain-based systems (e.g. Ethereum) adopt a method of obtaining nondeterministic data from an external server. However, the external server is a major factor that degrades the reliability of the entire blockchain-based system, such as being the target of intensive attacks.
이에 따라, 블록체인 기반 시스템에서 외부 서버를 이용하지 않고 자체적으로 비결정적 데이터를 생성하는 방법이 요구되고 있다.Accordingly, there is a demand for a method for generating non-deterministic data by itself without using an external server in a blockchain-based system.
본 개시의 실시예들을 통해 해결하고자 하는 기술적 과제는, 블록체인 기반 시스템에서 외부 서버를 이용하지 않고 자체적으로 비결정적 데이터를 생성하는 방법을 제공하는 것이다.The technical problem to be solved through the embodiments of the present disclosure is to provide a method for generating non-deterministic data by itself without using an external server in a blockchain-based system.
본 개시의 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 블록체인 기반 시스템에서 비결정적 데이터가 이용되는 트랜잭션을 자체적으로 처리하는 방법을 제공하는 것이다.Another technical problem to be solved through the embodiments of the present disclosure is to provide a method for self-processing a transaction in which non-deterministic data is used in a blockchain-based system.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the following description.
상기 기술적 과제를 해결하기 위한, 본 개시의 일 실시예에 따른 비결정적 데이터 생성 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서, 상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계, 상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 수신하는 단계 및 상기 제1 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함할 수 있다. 이때, 상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 생성된 것일 수 있다.In order to solve the above technical problem, a non-deterministic data generation method according to an embodiment of the present disclosure, non-deterministic data performed in a blockchain-based system including a plurality of blockchain nodes In the generating method, a first non-deterministic one of the plurality of block chain nodes, the first non-deterministic using a first smart contract shared on the block chain in response to a request for generating non-deterministic data Generating data, the first blockchain node receiving second non-deterministic data from a second blockchain node of the plurality of blockchain nodes, and the first blockchain node being the first non-deterministic And selecting one of the non-deterministic data from the data and the second non-deterministic data. In this case, the second non-deterministic data may be generated by the second blockchain node using the first smart contract shared on the blockchain.
일 실시예에서, 상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고, 상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며, 상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1이 될 수 있다.In one embodiment, the blockchain based system manages a consensus policy for each smart contract shared on the blockchain, and the consensus policy sets the number of signatures required for consensus of the smart contract. Included as an item, the number of signatures defined in the consensus policy for the first smart contract may be 1.
일 실시예에서, 상기 생성 요청은, 상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것일 수 있다.In one embodiment, the generation request may be to be triggered by a second smart contract shared on the blockchain.
일 실시예에서, 상기 제1 블록체인 노드가, 상기 생성 요청과 함께 상기 비결정적 데이터에 대한 식별 값을 받는 단계를 더 포함하되, 상기 선택된 비결정적 데이터는 상기 식별 값과 매칭되어 상기 블록체인 상에 기록될 수 있다.In one embodiment, the first blockchain node further comprises the step of receiving an identification value for the non-deterministic data with the generation request, wherein the selected non-deterministic data is matched with the identification value on the blockchain. Can be recorded.
상기 기술적 과제를 해결하기 위한, 본 개시의 다른 실시예에 따른 비결정적 데이터 생성 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서, 상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청을 받는 단계, 상기 제1 블록체인 노드가, 상기 생성 요청의 응답으로, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 상기 비결정적 데이터를 생성하는 단계 및 상기 제1 블록체인 노드가, 상기 생성된 비결정적 데이터를 제공하는 단계를 포함할 수 있다.In order to solve the above technical problem, a non-deterministic data generation method according to another embodiment of the present disclosure, non-deterministic data performed in a blockchain-based system including a plurality of blockchain nodes In the generation method, the first blockchain node of the plurality of blockchain nodes, the request for the generation of non-deterministic data, the first blockchain node is shared on the blockchain in response to the creation request Generating the non-deterministic data using a first smart contract, and the first blockchain node, may include providing the generated non-deterministic data.
일 실시예에서, 상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고, 상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며, 상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1이 될 수 있다.In one embodiment, the blockchain based system manages a consensus policy for each smart contract shared on the blockchain, and the consensus policy sets the number of signatures required for consensus of the smart contract. Included as an item, the number of signatures defined in the consensus policy for the first smart contract may be 1.
일 실시예에서, 상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고, 상기 합의 정책은 해당 스마트 컨트랙트에 서명하는 블록체인 노드의 리스트를 설정 항목으로 포함하며, 상기 제1 스마트 컨트랙트의 합의 정책에 정의된 블록체인 노드의 리스트는 상기 제1 블록체인 노드만을 포함할 수 있다.In one embodiment, the blockchain-based system manages a consensus policy for each smart contract shared on the blockchain, and the consensus policy includes a list of blockchain nodes that sign the smart contract as a setting item. The list of blockchain nodes defined in the consensus policy of the first smart contract may include only the first blockchain node.
상기 기술적 과제를 해결하기 위한, 본 개시의 또 다른 실시예에 따른 비결정적 데이터 생성 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서, 상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 요청 장치로부터 수신된 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계, 상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 수신하는 단계, 상기 제1 블록체인 노드가, 상기 요청 장치로 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터를 제공하는 단계 및 상기 복수의 블록체인 노드 중 특정 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중 상기 요청 장치에 의해 선택된 비결정적 데이터를 수신하는 단계를 포함할 수 있다. 이때, 상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 생성된 것일 수 있다.In order to solve the above technical problem, a non-deterministic data generation method according to another embodiment of the present disclosure, non-deterministic data performed in a blockchain-based system including a plurality of blockchain nodes In the generating method, the first blockchain node of the plurality of blockchain nodes, in response to a request for generating non-deterministic data received from the requesting device, establishes a first smart contract shared on the blockchain. Generating first non-deterministic data using the first blockchain node; receiving second non-deterministic data from a second blockchain node of the plurality of blockchain nodes; Providing the first non-deterministic data and the second non-deterministic data to the requesting device and a particular block of the plurality of blockchain nodes. Has a node number, comprise the step of receiving the first non-critical data and non-deterministic data selected by the requesting device of the second non-critical data. In this case, the second non-deterministic data may be generated by the second blockchain node using the first smart contract shared on the blockchain.
상기 기술적 과제를 해결하기 위한, 본 개시의 일 실시예에 따른 블록체인 기반 시스템에서의 트랜잭션 처리 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 트랜잭션 처리 방법에 있어서, 사용자 단말로부터 비결정적 데이터가 이용되는 타깃 트랜잭션에 대한 처리 요청을 수신하는 단계, 상기 처리 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 비결정적 데이터를 생성하는 단계 및 상기 블록체인 상에 공유된 상기 타깃 트랜잭션에 관한 제2 스마트 컨트랙트 및 상기 생성된 비결정적 데이터를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함할 수 있다.In order to solve the above technical problem, a transaction processing method in a blockchain-based system according to an embodiment of the present disclosure, in a transaction processing method performed in a blockchain-based system including a plurality of blockchain nodes Receiving a processing request for a target transaction using non-deterministic data from a user terminal, and in response to the processing request, generating non-deterministic data using a first smart contract shared on the blockchain; And processing the target transaction using the second non-deterministic data and the second smart contract related to the target transaction shared on the blockchain.
일 실시예에서, 상기 타깃 트랜잭션을 처리하는 단계는, 상기 생성된 비결정적 데이터에 기초하여 챌린지(challenge) 데이터를 상기 사용자 단말로 제공하는 단계, 상기 사용자 단말로부터, 상기 챌린지 데이터에 대응되는 리스폰스(response) 데이터를 수신하는 단계 및 상기 리스폰스 데이터 및 상기 제2 스마트 컨트랙트를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함할 수 있다.In an embodiment, the processing of the target transaction may include providing challenge data to the user terminal based on the generated non-deterministic data, and from the user terminal, a response corresponding to the challenge data ( and receiving the response data and processing the target transaction using the response data and the second smart contract.
상기 기술적 과제를 해결하기 위한, 본 개시의 일 실시예에 따른 블록체인 기반 시스템은, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 제1 블록체인 노드 및 상기 생성 요청에 응답하여, 상기 제1 스마트 컨트랙트를 이용하여 제2 비결정적 데이터를 생성하는 제2 블록체인 노드를 포함할 수 있다. 이때, 상기 제1 블록체인 노드는, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 동작을 수행하고, 상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록될 수 있다.In order to solve the above technical problem, the blockchain-based system according to an embodiment of the present disclosure, in response to a request for generating non-deterministic data, uses a first smart contract shared on the blockchain. The first blockchain node may generate a first non-deterministic data, and the second blockchain node may generate a second non-deterministic data using the first smart contract in response to the generation request. In this case, the first blockchain node performs an operation of selecting any one of the first non-deterministic data and the second non-deterministic data, and write the selected non-deterministic data on the blockchain. Can be.
상술한 본 개시의 몇몇 실시예들에 따르면, 외부 서버의 도움 없이 블록체인 기반 시스템에서 자체적으로 비결정적 데이터가 생성될 수 있다. 따라서, 외부 서버에 의해 블록체인 기반 시스템의 보안성 및 신뢰성이 전반적으로 저하되는 문제가 해결될 수 있다.According to some embodiments of the present disclosure described above, non-deterministic data may be generated by itself in a blockchain based system without the help of an external server. Therefore, the problem that the overall security and reliability of the blockchain-based system is degraded by the external server can be solved.
또한, 생성된 비결정적 데이터는 트랜잭션 ID와 같은 식별 값에 매칭되어 블록체인 상에 기록되고, 기록된 비결정적 데이터는 식별 값에 의해 조회될 수 있다. 따라서, 본 개시의 실시예들에 따른 블록체인 기반 시스템은 해당 트랜잭션의 거래 주체만이 해당 트랜잭션의 처리에 이용된 비결정적 데이터에 접근 가능하도록 동작할 수 있다.In addition, the generated non-deterministic data is recorded on the blockchain by matching an identification value such as a transaction ID, and the recorded non-deterministic data can be queried by the identification value. Accordingly, the blockchain based system according to the embodiments of the present disclosure may operate so that only the transaction subject of the transaction can access the non-deterministic data used for processing the transaction.
또한, 상기 블록체인 기반 시스템은 비결정적 데이터가 필수적으로 요구되는 중요 트랜잭션(e.g. 챌린지-리스폰스 기반의 인증이 수반되는 트랜잭션)에 대한 안전한 처리 서비스를 제공할 수 있다.In addition, the blockchain-based system can provide a secure processing service for the critical transactions (e.g. challenge-response-based authentication is accompanied by authentication) that requires non-deterministic data.
본 개시의 실시예들에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects according to embodiments of the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.
도 1은 블록체인 기반 시스템에서 자체적으로 비결정적 데이터를 생성하는 경우의 문제점을 설명하기 위한 도면이다.1 is a diagram illustrating a problem in the case of generating non-deterministic data by itself in a blockchain based system.
도 2는 본 개시의 몇몇 실시예들에 따른 방법들이 수행될 수 있는 예시적인 블록체인 기반 시스템의 구성도이다2 is a schematic diagram of an exemplary blockchain based system in which methods in accordance with some embodiments of the present disclosure may be performed.
도 3 내지 도 5는 본 개시의 제1 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 설명하기 위한 흐름도이다.3 to 5 are flowcharts illustrating a method for generating non-deterministic data and processing a transaction according to a first embodiment of the present disclosure.
도 6은 본 개시의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a second embodiment of the present disclosure.
도 7은 본 개시의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a third embodiment of the present disclosure.
도 8 내지 도 10은 본 개시의 몇몇 실시예들에 따른 비결정적 데이터의 조회 및 제공 방법을 설명하기 위한 흐름도이다.8 through 10 are flowcharts illustrating a method of querying and providing non-deterministic data according to some embodiments of the present disclosure.
도 11은 본 개시의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.11 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a fourth embodiment of the present disclosure.
도 12 및 도 13은 본 개시의 몇몇 실시예들에 따른 방법으로 생성된 비결정적 데이터가 트랜잭션 처리에 활용되는 예들을 나타내는 흐름도이다.12 and 13 are flowcharts illustrating examples in which non-deterministic data generated by a method according to some embodiments of the present disclosure is utilized for transaction processing.
도 14는 블록체인 기반 시스템을 구성하는 각 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.14 is a hardware configuration diagram of an exemplary computing device that can implement each blockchain node constituting a blockchain based system.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 언급되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시의 기술적 사상이 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 범위는 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Advantages and features of the present disclosure, and methods of accomplishing the same will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments described below, but may be implemented in various forms, and the present embodiments are merely provided to make the technical spirit of the present disclosure complete, and those of ordinary skill in the art to which the present disclosure belongs. It is provided to fully inform those skilled in the art of the disclosure, and the technical scope of the disclosure is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시의 기술적 범위를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms used in the present specification (including technical and scientific terms) may be used in a sense that can be commonly understood by those skilled in the art to which the present disclosure belongs. In addition, the terms defined in the commonly used dictionaries are not ideally or excessively interpreted unless they are specifically defined clearly. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the technical scope of the present disclosure. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used herein, “comprises” and / or “comprising” refers to a component, step, operation and / or element that is mentioned in the presence of one or more other components, steps, operations and / or elements. Or does not exclude additions.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.Prior to the description herein, some terms used herein will be clarified.
본 명세서에서, 블록체인 데이터란 블록체인 네트워크를 구성하는 각각의 블록체인 노드가 유지하는 데이터로, 적어도 하나의 블록이 체인 형태의 자료 구조로 구성되는 데이터를 가리킨다. 블록체인 기반 시스템을 구성하는 모든 블록체인 노드는 동일한 블록체인 데이터를 유지한다. 단, 블록체인 기반 시스템이 멀티 채널(multi-channel) 기능을 지원하는 경우, 동일한 채널에 속한 블록체인 노드들끼리 동일한 블록체인 데이터를 유지하게 된다.In the present specification, the blockchain data refers to data held by each blockchain node constituting the blockchain network, and refers to data in which at least one block is composed of a data structure in a chain form. All blockchain nodes that make up a blockchain-based system maintain the same blockchain data. However, when a blockchain-based system supports a multi-channel function, blockchain nodes belonging to the same channel maintain the same blockchain data.
본 명세서에서, 블록체인 네트워크란, 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 복수의 블록체인 노드로 구성된 P2P 구조의 네트워크를 의미한다.In the present specification, a blockchain network refers to a network of a P2P structure composed of a plurality of blockchain nodes operating according to a blockchain algorithm (or protocol).
본 명세서에서, 블록체인 노드란, 블록체인 네트워크를 구성하고 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 컴퓨팅 노드를 의미한다. 상기 컴퓨팅 노드는 물리적 장치로 구현될 수 있으나, 가상 머신(virtual machine)과 같이 논리적 장치로 구현될 수도 있다. 상기 컴퓨팅 노드가 가상 머신으로 구현되는 경우, 하나의 물리적 장치에 복수의 블록체인 노드가 포함될 수도 있다. 상기 블록체인 노드가 물리적 장치로 구현된 예시에 대해서는 도 14를 참조하도록 한다.In the present specification, a blockchain node refers to a computing node constituting a blockchain network and operating according to a blockchain algorithm (or protocol). The computing node may be implemented as a physical device, but may also be implemented as a logical device such as a virtual machine. When the computing node is implemented as a virtual machine, a plurality of blockchain nodes may be included in one physical device. See FIG. 14 for an example in which the blockchain node is implemented as a physical device.
본 명세서에서, 비결정적 데이터(non-deterministic data)란, 경우에 따라 서로 다른 결과가 나올 수 있는 확률적 성질을 갖는 모든 데이터를 포함한다. 상기 비결정적 데이터의 대표적인 예시로는 랜덤 데이터(e.g. random number), 타임 스탬프(timestamp) 등이 될 수 있다. 그러나, 본 개시의 범위가 상기 열거된 예시에 한정되는 것은 아니다.In this specification, non-deterministic data includes all data having probabilistic properties in which different results may be generated in some cases. Representative examples of the non-deterministic data may be random data (e.g. random number), time stamp (timestamp) and the like. However, the scope of the present disclosure is not limited to the examples listed above.
본 명세서에서, 스마트 컨트랙트(smart contract)란, 블록체인 기반 시스템에서 트랜잭션 처리에 이용되는 스크립트 또는 소프트웨어 코드를 의미한다. 보다 구체적으로, 상기 스마트 컨트랙트는 트랜잭션 처리에 이용되는 각종 조건, 상태, 상기 조건에 따른 행위를 프로그래밍 방식으로 작성한 코드로, 예를 들어, 이더리움(ethereum)의 스마트 컨트랙트, 하이퍼레저 패브릭(hyperledger fabric)의 체인코드(chain code) 등을 포함할 수 있다. 블록체인 기반 시스템에서, 블록체인 노드는 블록체인을 통해 스마트 컨트랙트를 공유할 수 있다.In the present specification, a smart contract means a script or software code used for transaction processing in a blockchain based system. More specifically, the smart contract is a code that programmatically writes various conditions, states, and behaviors according to the conditions used for transaction processing, for example, a smart contract of Ethereum, a hyperledger fabric. Chain code), and the like. In blockchain-based systems, blockchain nodes can share smart contracts through the blockchain.
이하, 본 개시의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, some embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.
도 2는 본 개시의 몇몇 실시예들에 따른 방법들이 수행될 수 있는 예시적인 블록체인 기반 시스템의 구성도이다.2 is a schematic diagram of an exemplary blockchain based system in which methods in accordance with some embodiments of the present disclosure may be performed.
도 2를 참조하면, 상기 블록체인 기반 시스템은 복수의 블록체인 노드(100-1 내지 100-6)를 포함하도록 구성될 수 있다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 2에 도시된 블록체인 기반 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 사용자 단말(200)과 적어도 하나의 블록체인 노드(100)는 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직(logic)으로 구현될 수도 있다. 또한, 둘 이상의 블록체인 노드(100)가 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직으로 구현될 수도 있다.Referring to FIG. 2, the blockchain based system may be configured to include a plurality of blockchain nodes 100-1 to 100-6. However, this is only a preferred embodiment for achieving the purpose of the present disclosure, of course, some components may be added or deleted as necessary. In addition, each component of the blockchain-based system shown in FIG. 2 represents functionally divided functional elements, and it may be noted that at least one component may be implemented in an integrated form in an actual physical environment. For example, the user terminal 200 and the at least one blockchain node 100 may be implemented in different logic within the same physical computing device. Also, two or more blockchain nodes 100 may be implemented in different logic within the same physical computing device.
상기 블록체인 기반 시스템에서, 블록체인 노드(100)는 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 노드이다. 복수의 블록체인 노드(100)는 분산된 구조의 P2P 네트워크(300)를 구성하며, 블록체인 상에서 블록체인 데이터를 공유한다. 다만, 상기 블록체인 기반 시스템이 멀티 채널 기능을 제공하는 경우, 같은 채널에 속한 블록체인 노드 간에만 블록체인 데이터가 공유될 수 있다.In the blockchain based system, the blockchain node 100 is a node that operates according to a blockchain algorithm (or protocol). The plurality of blockchain nodes 100 constitute a distributed P2P network 300 and share blockchain data on the blockchain. However, when the blockchain-based system provides a multi-channel function, blockchain data may be shared only between blockchain nodes belonging to the same channel.
참고로, 상기 블록체인 상에서 블록체인 데이터가 공유된다는 것은, 복수의 블록체인 노드가 동일한 블록체인 데이터를 유지한다는 것으로 이해될 수 있다.For reference, the sharing of blockchain data on the blockchain may be understood that a plurality of blockchain nodes maintain the same blockchain data.
블록체인 노드(100)는 블록체인 상에서 스마트 컨트랙트를 공유한다. 도 2에는, 블록체인 노드(100-1, 100-2)만이 스마트 컨트랙트(10) 및 스마트 컨트랙트(20)를 공유하고 있는 것으로 도시하였으나, 나머지 블록체인 노드(100-3 내지 100-6)도 스마트 컨트랙트(10) 및 스마트 컨트랙트(20)를 공유하고 있을 수 있다. 그러나, 전술한 바와 같이, 두 블록체인 노드(100-1, 100-2)가 같은 채널에 속한 노드이기 때문에, 블록체인 노드(100-1, 100-2)끼리만 스마트 컨트랙트(10, 20)를 공유하고 있는 것으로 이해해도 무방하다.The blockchain node 100 shares a smart contract on the blockchain. In FIG. 2, only the blockchain nodes 100-1 and 100-2 share the smart contract 10 and the smart contract 20, but the remaining blockchain nodes 100-3 to 100-6 are also illustrated. The smart contract 10 and the smart contract 20 may be shared. However, as described above, since the two blockchain nodes 100-1 and 100-2 are nodes belonging to the same channel, only the block chain nodes 100-1 and 100-2 are connected to the smart contracts 10 and 20. You may understand that you share.
상기 블록체인 기반 시스템에서, 스마트 컨트랙트(10, 이하 "스마트 컨트랙트 A"로 칭함)는 사용자 단말(200)로부터 요청된 트랜잭션을 처리하는 루틴이 포함된 소프트웨어 코드이다. 본 개시의 몇몇 실시예에 따르면, 상기 요청된 트랜잭션은 비결정적 데이터를 이용하여 처리되는 트랜잭션(e.g. 챌린지-리스폰스 기반의 인증이 수반되는 트랜잭션)일 수 있고, 스마트 컨트랙트 A(10)는 상기 요청된 트랜잭션을 처리하기 위해 비결정적 데이터를 이용하는 특정 루틴(routine)을 포함할 수 있다. 또한, 스마트 컨트랙트 A(10)는 상기 특정 루틴이 실행되는 과정에서 필요한 비결정적 데이터를 얻기 위해 스마트 컨트랙트(20, 이하 "스마트 컨트랙트 B"로 칭함)를 이용할 수 있다. 이에 대한 자세한 설명은 도 3 이하의 도면을 참조하여 후술하도록 한다.In the blockchain based system, the smart contract 10 (hereinafter referred to as "smart contract A") is software code that includes a routine for processing a transaction requested from the user terminal 200. According to some embodiments of the present disclosure, the requested transaction may be a transaction processed using non-deterministic data (eg a transaction involving challenge-response based authentication), and smart contract A 10 may request the It can include specific routines that use nondeterministic data to process transactions. In addition, the smart contract A 10 may use the smart contract 20 (hereinafter referred to as "smart contract B") to obtain non-deterministic data required in the course of executing the specific routine. Detailed description thereof will be described later with reference to the drawings of FIG. 3.
스마트 컨트랙트 B(20)는 비결정적 데이터를 생성하는 루틴이 포함된 소프트웨어 코드이다. 예를 들어, 스마트 컨트랙트 B(20)는 랜덤 데이터를 생성하는 함수(e.g. random())를 포함할 수 있다. 따라서, 스마트 컨트랙트 B(20)는 비결정적 데이터의 요청자에게 자체적으로 생성된 비결정적 데이터를 제공할 수 있다. 이때, 상기 요청자는 사용자 단말(200)이 될 수도 있고, 블록체인 노드(100)가 될 수도 있음은 물론이다. 스마트 컨트랙트 B(20)를 이용하여 비결정적 데이터를 생성하는 방법, 스마트 컨트랙트 B(20)를 이용하여 비결정적 데이터가 이용되는 트랜잭션을 처리하는 방법 등에 대한 자세한 설명은 도 3 이하의 도면을 참조하여 상세하게 설명하도록 한다. Smart contract B 20 is software code that includes a routine for generating nondeterministic data. For example, the smart contract B 20 may include a function (e.g. random ()) for generating random data. Thus, smart contract B 20 may provide self-generated non-deterministic data to a requestor of non-deterministic data. In this case, the requestor may be the user terminal 200 or may be the blockchain node 100. Detailed descriptions of a method of generating non-deterministic data using the smart contract B 20 and a method of processing a transaction using non-deterministic data using the smart contract B 20 will be described with reference to the accompanying drawings of FIG. 3. This will be explained in detail.
본 개시의 몇몇 실시예에 따르면, 스마트 컨트랙트(e.g. 10, 20) 별로 합의 정책(e.g. 하이퍼레저 패브릭의 경우 endorsement policy)이 정의될 수 있다. 상기 합의 정책은 예를 들어 해당 스마트 컨트랙트를 실행하는(또는 서명하는) 블록체인 노드의 리스트(또는 서명의 리스트), 블록체인 노드의 개수, 해당 스마트 컨트랙트에 관한 트랜잭션의 합의에 요구되는 서명(signature)의 개수 등의 항목을 포함할 수 있으나, 본 개시의 범위가 상기 열거된 예시에 한정되는 것은 아니다. 본 실시예에서, 스마트 컨트랙트는 상기 합의 정책에 따라 실행되고, 상기 합의 정책은 해당 스마트 컨트랙트의 용도, 중요도 등의 요인에 따라 유연하게 정의될 수 있다.According to some embodiments of the present disclosure, a consensus policy (eg, an endorsement policy in the case of the hyperledger fabric) may be defined for each smart contract (e.g. 10, 20). The consensus policy is, for example, a list of blockchain nodes (or a list of signatures) executing (or signing) the smart contract, the number of blockchain nodes, the signature required for the consensus of a transaction regarding the smart contract. And the like, but the scope of the present disclosure is not limited to the examples enumerated above. In the present embodiment, the smart contract is executed according to the consensus policy, and the consensus policy may be flexibly defined according to factors such as the purpose, importance, etc. of the smart contract.
사용자 단말(200)은 블록체인 기반 시스템을 통해 각종 트랜잭션의 처리 서비스를 제공 받는 단말이다. 예를 들어, 사용자 단말(200)은 블록체인 기반 시스템으로 트랜잭션의 처리를 요청하고, 요청에 따른 트랜잭션의 처리 결과를 확인할 수 있다. 또한, 사용자 단말(200)은 블록체인 기반 시스템으로 비결정적 데이터를 직접 요청하고, 상기 블록체인 기반 시스템에 의해 자체적으로 생성된 비결정적 데이터를 제공받을 수도 있다.The user terminal 200 is a terminal that receives a transaction service of various transactions through a blockchain based system. For example, the user terminal 200 may request the processing of a transaction to the blockchain-based system and check the processing result of the transaction according to the request. In addition, the user terminal 200 may directly request nondeterministic data to the blockchain-based system, and may receive non-deterministic data generated by the blockchain-based system.
상기 블록체인 기반 시스템을 구성하는 각 구성 요소는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.Each component constituting the blockchain based system may communicate through a network. The network may be any type of wired / wireless network such as a local area network (LAN), a wide area network (WAN), a mobile radio communication network, a wireless broadband Internet (Wibro), or the like. Can be implemented.
지금까지 도 2를 참조하여 본 개시의 몇몇 실시예들 따른 방법이 수행될 수 있는 예시적인 블록체인 기반 시스템에 대하여 설명하였다. 이하에서는, 도 3 내지 도 13을 참조하여 상기 블록체인 기반 시스템에서 수행되는 본 개시의 몇몇 실시예들에 따른 방법들에 대하여 설명하도록 한다.So far, an example blockchain based system in which a method according to some embodiments of the present disclosure may be performed has been described with reference to FIG. 2. Hereinafter, methods according to some embodiments of the present disclosure performed in the blockchain based system will be described with reference to FIGS. 3 to 13.
도 3 내지 도 5는 본 개시의 제1 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 설명하기 위한 흐름도이다. 도 3, 도 4 및 그 이하의 도면은 2개의 블록체인 노드(100-1, 100-2)만을 도시하고 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이고, 3개 이상의 블록체인 노드가 포함될 수도 있음은 물론이다.3 to 5 are flowcharts illustrating a method for generating non-deterministic data and processing a transaction according to a first embodiment of the present disclosure. 3, 4 and the following drawings show only two blockchain nodes 100-1 and 100-2, but this is only for convenience of understanding and may include three or more blockchain nodes. Of course.
상기 제1 실시예에서, 비결정적 데이터의 요청 및 생성은 모두 단일 블록체인 노드에서 수행된다. 이하, 상기 제1 실시예에 따른 방법에 대하여 상세하게 설명하도록 한다.In the first embodiment, both requesting and generating non-deterministic data are performed in a single blockchain node. Hereinafter, the method according to the first embodiment will be described in detail.
도 3을 참조하면, 상기 제1 실시예에 따른 방법은 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S10)에서 시작된다. 이때, 요청된 트랜잭션은 비결정적 데이터가 이용되는 트랜잭션이다.Referring to FIG. 3, the method according to the first embodiment starts at step S10 of receiving a transaction processing request from the user terminal 200. At this time, the requested transaction is a transaction in which nondeterministic data is used.
본 개시의 몇몇 실시예에 따르면, 사용자 단말(200)은 소정의 식별 값과 함께 상기 트랜잭션의 처리를 요청할 수 있다. 이때, 상기 식별 값은 비결정적 데이터에 대한 조회 기능을 제공하기 위해 이용되는 값으로, 예를 들어, 트랜잭션 ID, 랜덤 값 등이 이용될 수 있다. 본 실시예에서, 생성된 비결정적 데이터는 수신된 식별 값과 매칭되어 블록체인 상에 기록될 수 있다. 이에 대한 예는 도 4, 도 12 및 도 13을 참조하도록 한다. 또한, 식별 값을 이용하여 블록체인 상에 기록된 비결정적 데이터에 대한 조회 기능이 제공될 수 있다. 실시예에 따라, 비결정적 데이터에 대한 유효 기간(expiration time)이 설정되고, 유효 기간 정보 또한 상기 식별 값에 매칭되어 블록체인 상에 기록될 수 있다. 유효 기간의 활용예는 도 13 및 도 14를 참조하여 설명하도록 한다.According to some embodiments of the present disclosure, the user terminal 200 may request processing of the transaction with a predetermined identification value. In this case, the identification value is a value used to provide an inquiry function for non-deterministic data, for example, a transaction ID, a random value, and the like. In this embodiment, the generated nondeterministic data can be recorded on the blockchain by matching with the received identification value. An example thereof will be described with reference to FIGS. 4, 12, and 13. In addition, an inquiry function for non-deterministic data recorded on the blockchain using an identification value may be provided. According to an embodiment, an expiration time for non-deterministic data is set, and the expiration time information may also be recorded on the blockchain by matching the identification value. An example of the use of the validity period will be described with reference to FIGS. 13 and 14.
다시 도 3을 참조하면, 상기 트랜잭션의 처리 요청에 응답하여, 제1 블록체인 노드(100-1)는 스마트 컨트랙트 A(10)를 실행한다. 전술한 바와 같이, 스마트 컨트랙트 A(10)는 비결정적 데이터를 이용하여 해당 트랜잭션을 처리하는 루틴을 포함하는 스마트 컨트랙트이다.Referring back to FIG. 3, in response to the processing request of the transaction, the first blockchain node 100-1 executes the smart contract A 10. As described above, smart contract A 10 is a smart contract that includes a routine for processing the transaction using non-deterministic data.
단계(S11)에서, 스마트 컨트랙트 A(10)에 의해 비결정적 데이터의 생성 요청이 트리거(trigger) 된다.In step S11, the smart contract A 10 triggers a request for generating non-deterministic data.
단계(S12)에서, 상기 생성 요청에 응답하여, 제1 블록체인 노드(100-1)는 블록체인 상에 공유된 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터를 생성한다. 전술한 바와 같이, 스마트 컨트랙트 B(20)는 비결정적 데이터(e.g. 0x123)를 생성하는 루틴을 포함하는 스마트 컨트랙트이다.In step S12, in response to the generation request, the first blockchain node 100-1 executes the smart contract B 20 shared on the blockchain to generate nondeterministic data. As mentioned above, smart contract B 20 is a smart contract that includes a routine for generating nondeterministic data (e.g. 0x123).
단계(S12)에서, 제1 블록체인 노드(100-1)는 스마트 컨트랙트 B(20)를 실행하는 반면, 제2 블록체인 노드(100-2)는 스마트 컨트랙트 B(20)를 실행하지 않는다. 이는, 스마트 컨트랙트 B(20)의 합의 정책에 따른 시스템의 동작으로 이해될 수 있다. 예컨대, 블록체인 기반 시스템이 하이퍼레저 패브릭 기반으로 동작하는 경우, 합의에 필요한 서명의 개수가 1개("1 of n")이거나 스마트 컨트랙트 B(20)를 실행하는(또는 서명하는) 블록체인 노드(endorser)가 제1 블록체인 노드(100-1)가 되도록 "endorsement policy"가 정의되면 도 3에 도시된 바와 같이 동작할 수 있다.In step S12, the first blockchain node 100-1 executes the smart contract B 20, while the second blockchain node 100-2 does not execute the smart contract B 20. This may be understood as the operation of the system according to the consensus policy of the smart contract B 20. For example, if a blockchain-based system operates on a hyperresist fabric, the number of signatures required for consensus is one ("1 of n") or blockchain nodes that execute (or sign) the smart contract B 20. If the "endorsement policy" is defined such that the endorser becomes the first blockchain node 100-1, it may operate as shown in FIG.
단계(S13)에서, 스마트 컨트랙트 B(20)의 실행 결과로 생성된 비결정적 데이터가 스마트 컨트랙트 A(10)로 제공된다. 그러면, 스마트 컨트랙트 A(10)는 생성된 비결정적 데이터를 이용하여 요청된 트랜잭션을 처리할 수 있다.In step S13, the non-deterministic data generated as a result of the execution of the smart contract B 20 is provided to the smart contract A 10. The smart contract A 10 can then process the requested transaction using the generated nondeterministic data.
단계(S14)에서, 제1 블록체인 노드(100-1)는 트랜잭션의 처리 결과를 사용자 단말(200)에게 제공한다. 이때, 제1 블록체인 노드(100-1)는 트랜잭션 처리에 이용된 비결정적 데이터를 함께 사용자 단말(200)에게 제공할 수도 있다.In step S14, the first blockchain node 100-1 provides the user terminal 200 with the processing result of the transaction. In this case, the first blockchain node 100-1 may also provide the user terminal 200 with nondeterministic data used for transaction processing.
참고로, 도 3에서 스마트 컨트랙트 B(20)는 스마트 컨트랙트 A(10)의 요청에 따라 비결정적 데이터를 생성하였으나, 사용자 단말(200)의 직접적인 요청에 응답하여 비결정적 데이터를 생성할 수도 있음은 물론이다.For reference, in FIG. 3, the smart contract B 20 generates nondeterministic data according to the request of the smart contract A 10, but may generate nondeterministic data in response to a direct request of the user terminal 200. Of course.
한편, 블록체인의 구현 방식에 따라, 블록체인 노드 중 트랜잭션을 처리하고 서명하는 노드(e.g. 하이퍼레저 패브릭의 "endorser")와 트랜잭션의 확정을 담당하는 노드(e.g. 하이퍼레저 패브릭의 "orderer")가 별도로 존재할 수도 있다. 이와 같이, 트랜잭션의 확정을 담당하는 노드(이하, "합의 노드"로 칭함)가 별도로 존재하는 경우, 상기 제1 실시예에 따른 방법은 도 5에 도시된 바와 같이 수행될 수 있다. 간략하게 부연 설명하면, 제1 블록체인 노드(100-1)의 스마트 컨트랙트 A(10)는 생성된 비결정적 데이터의 확정을 담당하는 합의 노드(100-k)로 전달하고(S34), 합의 노드(100-k)가 전달받은 비결정적 데이터를 블록에 기록하고 블록체인 네트워크 상에 전파함으로써, 블록체인 상에 상기 생성된 비결정적 데이터가 기록될 수 있다. 이하에서는, 합의 노드가 존재하는 경우를 가정하여, 본 개시의 몇몇 실시예들에 따른 방법을 설명하도록 한다. 다만, 합의 노드의 존재 여부에 의해, 본 개시의 기술적 범위가 한정되거나 변경되는 것은 아니다.On the other hand, according to the implementation of the blockchain, among the blockchain nodes are nodes that process and sign transactions (eg, "endorsers" in the hyperleisure fabric) and nodes that are responsible for finalizing transactions (eg "orderers" in the hyperresponse fabric). May exist separately. As such, when there are separate nodes (hereinafter referred to as "consensus nodes") in charge of confirming the transaction, the method according to the first embodiment may be performed as shown in FIG. In brief, the smart contract A 10 of the first blockchain node 100-1 passes to the consensus node 100-k that is responsible for the determination of the generated non-deterministic data (S34). By writing the non-deterministic data received by 100-k in a block and propagating it on the blockchain network, the generated non-deterministic data can be recorded on the blockchain. In the following, a method according to some embodiments of the present disclosure will be described assuming a consensus node exists. However, the technical scope of the present disclosure is not limited or changed by the existence of the consensus node.
지금까지 도 3 내지 도 5를 참조하여 본 개시의 제1 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 상술한 방법에 따르면, 외부의 서버를 이용하지 않고, 블록체인 기반 시스템 내부에서 자체적으로 비결정적 데이터가 생성될 수 있다. 이에 따라, 외부 서버에 의해 야기되는 보안 상의 취약점이 보완되는 바, 전반적인 시스템의 신뢰성 및 보안성이 향상될 수 있다.So far, the non-deterministic data generation and transaction processing method according to the first embodiment of the present disclosure has been described with reference to FIGS. 3 to 5. According to the above-described method, non-deterministic data can be generated on its own inside the blockchain-based system without using an external server. Accordingly, the security weakness caused by the external server is compensated for, and the reliability and security of the overall system can be improved.
다음으로, 도 6을 참조하여 본 개시의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하도록 한다.Next, a non-deterministic data generation and transaction processing method according to a second embodiment of the present disclosure will be described with reference to FIG. 6.
도 6은 본 개시의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a second embodiment of the present disclosure.
상기 제2 실시예에서, 비결정적 데이터의 요청과 생성은 서로 다른 블록체인 노드에서 수행된다. 이하, 상기 제2 실시예에 따른 방법을 설명함에 있어 전술한 실시예와의 차이점을 중심으로 설명하고, 전술한 실시예와 동일한 내용에 대한 설명은 생략한다.In the second embodiment, the request and the generation of the nondeterministic data are performed in different blockchain nodes. Hereinafter, the method according to the second embodiment will be described based on differences from the above-described embodiment, and descriptions of the same contents as the above-described embodiment will be omitted.
도 6을 참조하면, 상기 제2 실시예에 따른 방법 또한 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S40)에서 시작된다. 전술한 바와 같이, 단계(S40)에서 소정의 식별 값이 사용자 단말(200)로부터 제공될 수도 있다.Referring to FIG. 6, the method according to the second embodiment also begins at step S40 of receiving a transaction processing request from the user terminal 200. As described above, a predetermined identification value may be provided from the user terminal 200 in step S40.
단계(S41)에서, 제1 블록체인 노드(100)의 스마트 컨트랙트 A(10)에 의해 비결정적 데이터의 생성 요청이 트리거 된다.In step S41, a request for generation of non-deterministic data is triggered by the smart contract A 10 of the first blockchain node 100.
단계(S42)에서, 상기 생성 요청에 응답하여, 제2 블록체인 노드(100-2)가 블록체인 상에 공유된 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터를 생성한다.In step S42, in response to the generation request, the second blockchain node 100-2 executes the smart contract B 20 shared on the blockchain to generate nondeterministic data.
즉, 단계(S42)에서, 제2 블록체인 노드(100-2)는 스마트 컨트랙트 B(20)를 실행하는 반면, 제1 블록체인 노드(100-1)는 스마트 컨트랙트 B(20)를 실행하지 않는다. 이는, 스마트 컨트랙트 B(20)의 합의 정책에 따른 시스템의 동작으로 이해될 수 있다. 예컨대, 블록체인 기반 시스템이 하이퍼레저 패브릭 기반으로 동작하는 경우, 합의에 필요한 서명의 개수가 1개("1 of n")이거나 스마트 컨트랙트 B(20)의 실행 노드(endorser)가 제2 블록체인 노드(100-2)가 되도록 "endorsement policy"가 정의되면 도 6에 도시된 바와 같이 동작할 수 있다.That is, in step S42, the second blockchain node 100-2 executes the smart contract B 20, while the first blockchain node 100-1 does not execute the smart contract B 20. Do not. This may be understood as the operation of the system according to the consensus policy of the smart contract B 20. For example, if the blockchain-based system operates on a hyperledger fabric basis, the number of signatures required for consensus is one ("1 of n") or the execution nodes of the smart contract B 20 are second blockchains. If the "endorsement policy" is defined to be the node 100-2, it may operate as shown in FIG.
단계(S43)에서, 스마트 컨트랙트 B(20)의 실행 결과로 생성된 비결정적 데이터가 스마트 컨트랙트 A(10)로 제공된다. 그러면, 스마트 컨트랙트 A(10)는 생성된 비결정적 데이터를 이용하여 요청된 트랜잭션을 처리할 수 있다. 이하의 단계(S44 내지 S46)에 대한 설명은 전술한 바와 같으므로 생략하도록 한다.In step S43, the non-deterministic data generated as a result of the execution of the smart contract B 20 is provided to the smart contract A 10. The smart contract A 10 can then process the requested transaction using the generated nondeterministic data. Description of the following steps (S44 to S46) is the same as described above will be omitted.
지금까지, 도 6을 참조하여 본 개시의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 이하에서는, 도 7을 참조하여 본 개시의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하도록 한다.So far, the non-deterministic data generation and transaction processing method according to the second embodiment of the present disclosure has been described with reference to FIG. 6. Hereinafter, a non-deterministic data generation and transaction processing method according to a third embodiment of the present disclosure will be described with reference to FIG. 7.
도 7은 본 개시의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a third embodiment of the present disclosure.
상기 제3 실시예에서, 비결정적 데이터의 생성은 복수의 블록체인 노드(e.g. 100-1, 100-2, 쪋, 100-n)에서 수행된다. 이하, 상기 제3 실시예에 따른 방법을 설명함에 있어 전술한 실시예와의 차이점을 중심으로 설명하고, 전술한 실시예와 동일한 내용에 대한 설명은 생략한다.In the third embodiment, the generation of non-deterministic data is performed in a plurality of blockchain nodes e.g. 100-1, 100-2, 쪋, 100-n. Hereinafter, the method according to the third embodiment will be described based on differences from the above-described embodiment, and descriptions of the same contents as the above-described embodiment will be omitted.
도 7을 참조하면, 상기 제3 실시예에 따른 방법 또한 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S50)에서 시작된다. 전술한 바와 같이, 단계(S50)에서 소정의 식별 값이 사용자 단말(200)로부터 제공될 수 있음은 물론이다.Referring to FIG. 7, the method according to the third embodiment also begins at step S50 of receiving a transaction processing request from the user terminal 200. As described above, of course, a predetermined identification value may be provided from the user terminal 200 in step S50.
단계(S51-1, S51-2)에서, 제1 블록체인 노드(100)의 스마트 컨트랙트 A(10)에 의해 비결정적 데이터의 생성 요청이 복수의 블록체인 노드(100-1, 100-2)로 트리거 된다.In steps S51-1 and S51-2, a request for generation of non-deterministic data by the smart contract A 10 of the first blockchain node 100 is transmitted to the plurality of blockchain nodes 100-1 and 100-2. Triggered by
단계(S52-1, S52-2)에서, 상기 생성 요청에 응답하여, 각각의 블록체인 노드(100-1, 100-2)가 블록체인 상에 공유된 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터(e.g. 0x123, 0xabc)를 생성한다.In steps S52-1 and S52-2, in response to the creation request, each blockchain node 100-1 or 100-2 executes the smart contract B 20 shared on the blockchain to perform non- Generate deterministic data (eg 0x123, 0xabc).
즉, 단계(S52-1, S52-2)에서, 복수의 블록체인 노드(e.g. 100-1, 100-2)가 각각 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터를 생성하는데, 이는 스마트 컨트랙트 B(20)의 합의 정책에 따른 시스템의 동작으로 이해될 수 있다. 예컨대, 블록체인 기반 시스템이 하이퍼레저 패브릭 기반으로 동작하는 경우, 합의에 필요한 서명의 개수가 1개("1 of n")이고 스마트 컨트랙트 B(20)를 실행하는(또는 서명하는) 블록체인 노드(endorser)가 복수가 되도록 "endorsement policy"가 정의되면 도 7에 도시된 바와 같이 동작할 수 있다. 물론, 스마트 컨트랙트 B(20)에 서명하는 노드의 리스트가 제1 블록체인 노드(100-1) 및 제2 블록체인 노드(100-2)만을 포함하도록 "endorsement policy"가 정의되면, 상기 복수의 블록체인 노드 중에서 2개의 블록체인 노드(100-1, 100-2)만이 스마트 컨트랙트 B(20)를 실행하고 서명하게 된다.That is, in steps S52-1 and S52-2, the plurality of blockchain nodes eg 100-1 and 100-2 execute the smart contract B 20 to generate non-deterministic data, respectively. It can be understood as the operation of the system according to the consensus policy of B (20). For example, if a blockchain based system operates on a hyperresist fabric, the number of signatures required for consensus is one ("1 of n") and the blockchain nodes executing (or signing) the smart contract B 20. If the "endorsement policy" is defined to have a plurality of (endorser), it can operate as shown in FIG. Of course, if the "endorsement policy" is defined such that the list of nodes signing the smart contract B 20 includes only the first blockchain node 100-1 and the second blockchain node 100-2, the plurality of nodes Only two blockchain nodes 100-1 and 100-2 of the blockchain nodes execute and sign the smart contract B 20.
단계(S53-1, S53-2, S54)에서, 제1 블록체인 노드(100-1)는 생성된 복수의 비결정적 데이터를 제공받고, 상기 복수의 비결정적 데이터 중에서 특정 비결정적 데이터(e.g. 0x123)를 선택한다. 여기서, 특정 비결정적 데이터를 선택하는 방식은 어떠한 방식이 이용되더라도 무방하다.In steps S53-1, S53-2, and S54, the first blockchain node 100-1 is provided with a plurality of generated non-deterministic data, and among the plurality of non-deterministic data, specific non-deterministic data (eg 0x123). Select). Here, a method of selecting specific nondeterministic data may be used.
제1 예에서, 제1 블록체인 노드(100-1)는 획득 시간에 기초하여 특정 비결정적 데이터를 선택(e.g. 가장 먼저 획득된 데이터, 가장 늦게 획득된 데이터 등)할 수 있다.In a first example, the first blockchain node 100-1 may select specific non-deterministic data (e.g., the earliest acquired data, the latest acquired data, etc.) based on the acquisition time.
제2 예에서, 제1 블록체인 노드(100-1)는 복수의 비결정적 데이터 중에서 임의로 특정 비결정적 데이터를 선택할 수 있다.In a second example, the first blockchain node 100-1 may arbitrarily select specific nondeterministic data from among a plurality of nondeterministic data.
제3 예에서, 제1 블록체인 노드(100-1)는 복수의 비결정적 데이터의 값의 분포에 기초하여 특정 데이터를 선택할 수 있다. 예컨대, 복수의 비결정적 데이터 중에서 편차가 가장 큰 데이터가 선택될 수 있다. 다만, 상기 열거된 예시들은 본 개시의 일부 실시예를 설명하기 위한 것일 뿐이고, 본 개시의 범위가 상기 열거된 예시들에 한정되는 것은 아니다.In a third example, the first blockchain node 100-1 may select specific data based on a distribution of values of the plurality of non-deterministic data. For example, data having the largest deviation among a plurality of non-deterministic data may be selected. However, the above listed examples are merely to describe some embodiments of the present disclosure, and the scope of the present disclosure is not limited to the above listed examples.
이하의 단계(S55 내지 S57)에 대한 설명은 전술한 바와 같으므로 생략하도록 한다.Description of the following steps (S55 to S57) is the same as described above will be omitted.
지금까지, 도 7을 참조하여 본 개시의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 상술한 방법에 따르면, 외부의 서버를 이용하지 않고, 블록체인 기반 시스템 내부에서 자체적으로 비결정적 데이터가 생성될 수 있다. 이에 따라, 외부 서버에 의해 야기되는 보안 상의 취약점이 보완되는 바, 전반적인 시스템의 신뢰성 및 보안성이 향상될 수 있다.So far, the non-deterministic data generation and transaction processing method according to the third embodiment of the present disclosure has been described with reference to FIG. 7. According to the above-described method, non-deterministic data can be generated on its own inside the blockchain-based system without using an external server. Accordingly, the security weakness caused by the external server is compensated for, and the reliability and security of the overall system can be improved.
이하에서는, 도 8 내지 도 10을 참조하여 본 개시의 몇몇 실시예들에 따른 비결정적 데이터의 조회 및 제공 방법에 대하여 간략하게 설명하도록 한다.Hereinafter, a method of querying and providing non-deterministic data according to some embodiments of the present disclosure will be briefly described with reference to FIGS. 8 to 10.
도 8 내지 도 10에 도시된 바와 같이, 전술한 실시예들에 따라 생성된 비결정적 데이터는 다양한 방식으로 사용자 단말(200)로 제공될 수 있다.As shown in FIGS. 8 to 10, non-deterministic data generated according to the above-described embodiments may be provided to the user terminal 200 in various ways.
제1 실시예에서, 도 8에 도시된 바와 같이, 단계(S64)에서 비결정적 데이터가 선택되면, 제1 블록체인 노드(100-1)는 선택된 비결정적 데이터가 블록체인 상에 기록되기 전에(즉, 확정되기 전에) 사용자 단말(200)로 상기 선택된 비결정적 데이터를 제공할 수 있다(S65). 물론, 제1 블록체인 노드(100-1)가 하나의 비결정적 데이터만 제공받는 경우(e.g. 도 4 내지 도 6에 도시된 경우)라면, 제1 블록체인 노드(100-1)는 별도의 선택 과정을 수행하지 않고 바로 사용자 단말(200)로 상기 비결정적 데이터를 제공하도록 동작할 수 있다.In the first embodiment, as shown in Fig. 8, if non-deterministic data is selected in step S64, the first blockchain node 100-1 is configured before the selected non-deterministic data is written onto the blockchain ( That is, before being determined, the selected non-deterministic data may be provided to the user terminal 200 (S65). Of course, if the first blockchain node 100-1 is provided with only one non-deterministic data (eg, as shown in FIGS. 4 to 6), the first blockchain node 100-1 is a separate choice. It may operate to provide the non-deterministic data directly to the user terminal 200 without performing a process.
제2 실시예에서, 도 9에 도시된 바와 같이, 제1 블록체인 노드(100-1)는 생성된 비결정적 데이터가 블록체인 상에 기록된 이후에 비결정적 데이터를 제공하도록 동작할 수 있다(S77).In the second embodiment, as shown in FIG. 9, the first blockchain node 100-1 may operate to provide non-deterministic data after the generated non-deterministic data is written onto the blockchain ( S77).
제3 실시예에서, 도 10에 도시된 바와 같이, 제1 블록체인 노드(100-1)는 생성된 비결정적 데이터가 블록체인 상에 기록된 이후에 소정의 확정 신호를 사용자 단말(200)로 통지할 수 있다(S87). 도 10에서, 상기 확정 신호의 통지는 스마트 컨트랙트 B(20)에 의해 수행되는 것으로 도시되었다. 다만, 실시예에 따라, 스마트 컨트랙트 A(10)에 의해 상기 확정 신호가 통지될 수도 있다. 본 실시예에서, 확정 신호 통지를 받은 이후에, 사용자 단말(200)은 블록체인 상에 기록된 비결정적 데이터를 조회할 수 있고, 상기 조회는 비결정적 데이터의 생성 요청 시 제공한 식별 값을 이용하여 수행될 수 있다(S88 내지 S90). 도 10에서, 사용자 단말(200)은 스마트 컨트랙트 A(10)를 통해 비결정적 데이터를 조회하는 것으로 도시되었으나, 사용자 단말(200)은 직접 스마트 컨트랙트 B(20)를 통해 블록체인 상에 기록된 비결정적 데이터를 조회할 수도 있다.In the third embodiment, as shown in FIG. 10, the first blockchain node 100-1 sends a predetermined signal to the user terminal 200 after the generated nondeterministic data is recorded on the blockchain. Notification can be made (S87). In FIG. 10, the notification of the confirmation signal is shown to be performed by the smart contract B 20. However, according to an embodiment, the confirmation signal may be notified by the smart contract A 10. In the present embodiment, after receiving the confirmation signal notification, the user terminal 200 can query the non-deterministic data recorded on the blockchain, the query uses the identification value provided in the request for the generation of the non-deterministic data It may be performed (S88 to S90). In FIG. 10, the user terminal 200 is shown as querying non-deterministic data through the smart contract A 10, but the user terminal 200 is directly recorded on the blockchain via the smart contract B 20. You can also query deterministic data.
제4 실시예에서, 상기 제1 실시예 내지 상기 제3 실시예의 조합에 의해 생성된 비결정적 데이터가 사용자 단말(200)로 제공되거나, 조회될 수 있다.In the fourth embodiment, non-deterministic data generated by the combination of the first to third embodiments may be provided to or retrieved from the user terminal 200.
지금까지, 도 8 내지 도 10을 참조하여 본 개시의 몇몇 실시예들에 따른 비결정적 데이터의 조회 및 제공 방법에 대하여 간략하게 설명하였다. 이하에서는, 도 11을 참조하여 본 개시의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하도록 한다.So far, the method for querying and providing non-deterministic data according to some embodiments of the present disclosure has been briefly described with reference to FIGS. 8 to 10. Hereinafter, a non-deterministic data generation and transaction processing method according to a fourth embodiment of the present disclosure will be described with reference to FIG. 11.
도 11은 본 개시의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.11 is a flowchart illustrating a non-deterministic data generation and transaction processing method according to a fourth embodiment of the present disclosure.
상기 제4 실시예에서, 비결정적 데이터의 생성은 전술한 제3 실시예와 마찬가지로 복수의 블록체인 노드(e.g. 100-1, 100-2, 쪋, 100-n)에서 수행된다. 다만, 비결정적 데이터의 선택이 별도의 장치(e.g. 사용자 단말 200)에서 수행되는 차이점이 있다. 이하, 상기 제4 실시예에 따른 방법을 설명함에 있어 전술한 실시예와의 차이점을 중심으로 설명하고, 전술한 실시예와 동일한 내용에 대한 설명은 생략한다.In the fourth embodiment, the generation of non-deterministic data is performed in the plurality of blockchain nodes e.g. 100-1, 100-2, 쪋, 100-n as in the above-described third embodiment. However, there is a difference that the selection of non-deterministic data is performed in a separate device (e.g. user terminal 200). Hereinafter, the method according to the fourth embodiment will be described based on differences from the above-described embodiment, and descriptions of the same contents as the above-described embodiment will be omitted.
도 11을 참조하면, 상기 제4 실시예에 따른 방법 또한 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S100)에서 시작된다. 전술한 바와 같이, 단계(S100)에서 소정의 식별 값이 사용자 단말(200)로부터 제공될 수 있음은 물론이다.Referring to FIG. 11, the method according to the fourth embodiment also begins at step S100 of receiving a transaction processing request from the user terminal 200. As described above, the predetermined identification value may be provided from the user terminal 200 in step S100.
단계(S101-1 내지 S103-2)에서, 복수의 블록체인 노드(e.g. 100-1, 100-2)가 각각 스마트 컨트랙트 B(20)를 실행하여 복수의 비결정적 데이터를 생성한다. 이에 대한 자세한 설명은 전술한 바와 같으므로 생략하도록 한다.In steps S101-1 to S103-2, the plurality of blockchain nodes e.g. 100-1 and 100-2 each execute the smart contract B 20 to generate a plurality of non-deterministic data. Detailed description thereof is as described above and will be omitted.
단계(S104)에서, 제1 블록체인 노드(100-1)가 생성된 복수의 비결정적 데이터(e.g. 0x123, 0xabc)를 사용자 단말(200)로 제공한다.In step S104, the first blockchain node 100-1 provides the generated non-deterministic data (e.g. 0x123, 0xabc) to the user terminal 200.
참고로, 도 11에서는 제1 블록체인 노드(100-1)가 복수의 비결정적 데이터(e.g. 0x123, 0xabc)를 모아서 사용자 단말(200)로 제공하는 것이 예로써 도시되었으나, 실시예에 따라, 블록체인 노드(e.g. 100-1, 100-2) 각각이 자신이 생성한 비결정적 데이터를 사용자 단말(200)로 제공할 수도 있다.For reference, FIG. 11 illustrates that the first blockchain node 100-1 collects a plurality of non-deterministic data (eg, 0x123 and 0xabc) and provides the collected data to the user terminal 200 by way of example. Each of the chain nodes eg 100-1 and 100-2 may provide the user terminal 200 with non-deterministic data generated by the chain nodes eg 100-1 and 100-2.
단계(S105)에서, 사용자 단말(200)은 복수의 비결정적 데이터 중에서 특정 비결정적 데이터(e.g. 0x123)를 선택한다. 여기서, 특정 비결정적 데이터를 선택하는 방식은 어떠한 방식이 이용되더라도 무방하다.In step S105, the user terminal 200 selects specific nondeterministic data (e.g. 0x123) from the plurality of nondeterministic data. Here, a method of selecting specific nondeterministic data may be used.
단계(S106)에서, 사용자 단말(200)은 합의 노드(100-k)로 선택된 비결정적 데이터를 전달하여, 상기 선택된 비결정적 데이터가 블록체인 상에 기록되도록 한다.In step S106, the user terminal 200 delivers the selected nondeterministic data to the consensus node 100-k, such that the selected nondeterministic data is recorded on the blockchain.
참고로, 도 11에서는 사용자 단말(200)이 선택된 비결정적 데이터를 직접 합의 노드(100-k)로 전달하는 것이 예로써 도시되었으나, 실시예에 따라, 사용자 단말(200)은 상기 선택된 비결정적 데이터를 다른 블록체인 노드(e.g. 100-1, 100-2)를 통해서 합의 노드(100-k)로 전달하도록 동작할 수도 있다.For reference, in FIG. 11, the user terminal 200 directly transmits the selected non-deterministic data to the consensus node 100-k, but according to an exemplary embodiment, the user terminal 200 may select the selected non-deterministic data. It may be operable to deliver to the consensus node (100-k) through the other blockchain nodes (eg 100-1, 100-2).
이하의 단계(S107)에 대한 설명은 전술한 바와 같으므로 생략하도록 한다.The following description of step S107 is the same as described above, and thus will be omitted.
한편, 본 개시의 다른 실시예에 따르면, 블록체인 노드(100-1, 100-2)에 의해 생성된 복수의 비결정적 데이터는 합의 노드(100-k)로 전달되고, 합의 노드(100-k)가 비결정적 데이터의 선택 단계(S105)를 수행하도록 동작할 수도 있다. 이와 같은 경우, 합의 노드(100-k)는 선택된 비결정적 데이터를 블록체인 상에 기록하고, 상기 선택된 비결정적 데이터를 제1 블록체인 노드(100-1) 또는 사용자 단말(200)에게 제공하도록 동작할 수 있다.Meanwhile, according to another embodiment of the present disclosure, a plurality of non-deterministic data generated by the blockchain nodes 100-1 and 100-2 are transferred to the consensus node 100-k, and the consensus node 100-k. ) May be operated to perform the selection step S105 of non-deterministic data. In this case, the consensus node 100-k operates to record the selected non-deterministic data on the blockchain and provide the selected non-deterministic data to the first blockchain node 100-1 or the user terminal 200. can do.
또한, 본 개시의 또 다른 실시예에 따르면, 블록체인 노드(100-1, 100-2)에 의해 생성된 복수의 비결정적 데이터는 합의 노드가 아닌 다른 블록체인 노드(e.g. 100-2, 100-3 등)로 전달되고, 상기 복수의 비결정적 데이터를 수신한 특정 블록체인 노드가 비결정적 데이터의 선택 단계(S105)를 수행하도록 동작할 수도 있다. 이와 같은 경우, 상기 특정 블록체인 노드는 합의 노드(100-k) 및/또는 사용자 단말(200)로 선택된 비결정적 데이터를 제공하도록 동작할 수 있다.In addition, according to another embodiment of the present disclosure, a plurality of non-deterministic data generated by the blockchain nodes (100-1, 100-2) is not the consensus node other blockchain nodes (eg 100-2, 100- 3), and the specific blockchain node having received the plurality of non-deterministic data may operate to perform the step of selecting non-deterministic data (S105). In such a case, the particular blockchain node may be operable to provide the selected non-deterministic data to the consensus node 100-k and / or the user terminal 200.
또한, 본 개시의 또 다른 실시예에 따르면, 비결정적 데이터의 선택 단계(S105)는 블록체인 네트워크를 구성하지 않는 별도의 컴퓨팅 장치(미도시)에서 수행될 수도 있다. 이때, 상기 컴퓨팅 장치(미도시)는 사용자 단말(200)로부터 수신된 트랜잭션 처리 요청을 블록체인 노드로 전달하고, 블록체인 노드로부터 복수의 비결정적 데이터를 수신하며, 수신된 복수의 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하고, 선택된 비결정적 데이터를 사용자 단말(200), 블록체인 노드(e.g. 100-1, 100-2) 및/또는 합의 노드(100-k)로 전달하는 동작을 수행할 수 있다. 또는, 상기 컴퓨팅 장치(미도시)는 블록체인 노드로부터 복수의 비결정적 데이터를 수신하고, 수신된 복수의 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하며, 선택된 비결정적 데이터를 사용자 단말(200), 블록체인 노드(e.g. 100-1, 100-2) 및/또는 합의 노드(100-k)로 전달하는 동작만을 수행할 수도 있다.In addition, according to another embodiment of the present disclosure, the step of selecting non-deterministic data (S105) may be performed in a separate computing device (not shown) that does not constitute a blockchain network. In this case, the computing device (not shown) transfers the transaction processing request received from the user terminal 200 to the blockchain node, receives a plurality of non-deterministic data from the blockchain node, and among the plurality of received non-deterministic data Select any non-deterministic data, and transmit the selected non-deterministic data to the user terminal 200, the blockchain nodes (eg 100-1, 100-2) and / or consensus node (100-k). can do. Alternatively, the computing device (not shown) receives a plurality of non-deterministic data from a blockchain node, selects any one non-deterministic data from the plurality of received non-deterministic data, and selects the selected non-deterministic data from the user terminal 200. ), Only the operation of transferring to the blockchain nodes (eg 100-1, 100-2) and / or consensus node 100-k may be performed.
이와 같이, 실시예들에 따라 비결정적 데이터의 선택 단계(S105)를 수행하는 주체는 달라질 수 있다.As such, the subject performing the selection step S105 of non-deterministic data may vary according to embodiments.
지금까지, 도 11을 참조하여 본 개시의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 이하에서는, 보다 이해의 편의를 제공하기 위해, 블록체인 기반 시스템에서 비결정적 데이터를 활용하는 예시에 대하여 도 12 및 도 13을 참조하여 설명하도록 한다.So far, the non-deterministic data generation and transaction processing method according to the fourth embodiment of the present disclosure has been described with reference to FIG. 11. In the following, an example of utilizing non-deterministic data in a blockchain-based system will be described with reference to FIGS. 12 and 13 to provide more understanding.
도 12 및 도 13은 본 개시의 몇몇 실시예들에 따른 방법으로 생성된 비결정적 데이터가 트랜잭션 처리에 활용되는 예들을 나타내는 흐름도이다. 특히, 도 12 및 도 13은 챌린지-리스폰스(challenge-response) 기반의 사용자 인증이 수반되는 트랜잭션을 스마트 컨트랙트 A(10)를 통해 처리하는 예를 도시하고 있다. 또한, 도 12 및 도 13에서 스마트 컨트랙트(10, 20)를 실행하는 블록체인 노드는 실시예들에 따라 달라질 수 있으므로, 블록체인 네트워크(300)로 도시되었다. 먼저, 도 12에 도시된 활용 예를 설명한다.12 and 13 are flowcharts illustrating examples in which non-deterministic data generated by a method according to some embodiments of the present disclosure is utilized for transaction processing. In particular, FIGS. 12 and 13 illustrate an example of processing through a smart contract A 10 a transaction involving challenge-response based user authentication. In addition, in FIG. 12 and FIG. 13, the blockchain node executing the smart contracts 10 and 20 may vary according to embodiments, and thus, the blockchain network 300 is illustrated. First, the use example shown in FIG. 12 will be described.
도 12를 참조하면, 단계(S110 내지 S113)에서, 사용자 단말(200)의 트랜잭션 처리 요청에 응답하여, 스마트 컨트랙트 B(20)를 통해 비결정적 데이터가 생성되고, 생성된 비결정적 데이터는 블록체인 상에 기록된다. 이때, 소정의 식별 값(e.g. 트랜잭션 ID)에 매칭되어 블록체인 상에 기록될 수 있다. 여기서, 비결정적 데이터가 식별 값에 매칭되어 저장되고 식별 값을 통해 비결정적 데이터에 대한 접근이 허용되는 경우, 해당 트랜잭션의 거래 주체만이 트랜잭션의 처리에 이용된 비결정적 데이터에 접근할 수 있게 된다. 따라서, 보다 안전한 트랜잭션 처리 서비스가 제공될 수 있다.Referring to FIG. 12, in steps S110 to S113, in response to a transaction processing request of the user terminal 200, non-deterministic data is generated through the smart contract B 20, and the generated non-deterministic data is a blockchain. Is recorded on. In this case, a predetermined identification value (e.g. transaction ID) may be matched and recorded on the blockchain. Here, when the non-deterministic data is stored matched with the identification value and access to the non-deterministic data is allowed through the identification value, only the transaction subject of the transaction can access the non-deterministic data used for processing the transaction. . Thus, a more secure transaction processing service can be provided.
또한, 본 개시의 실시예에 따르면, 비결정적 데이터의 유효 기간이 함께 블록체인 상에 기록될 수 있다. 본 실시예에서, 유효 기간이 지난 비결정적 데이터는 더 이상 유효하지 않은 데이터로 처리되므로, 리플레이 공격(replay attack) 등에 대한 예방이 가능하다. 즉, 생성된 비결정적 데이터가 탈취되더라도, 이후의 트랜잭션에 영향을 미치지 않기 때문에, 트랜잭션 처리에 대한 보안성이 더욱 향상될 수 있다.In addition, according to an embodiment of the present disclosure, the validity period of non-deterministic data can be recorded together on the blockchain. In this embodiment, since the non-deterministic data that has passed the validity period is processed as data that is no longer valid, it is possible to prevent a replay attack or the like. That is, even if the generated non-deterministic data is seized, since it does not affect subsequent transactions, security for transaction processing can be further improved.
단계(S114 내지 S116)에서, 생성된 비결정적 데이터는 랜덤 챌린지 값으로써 사용자 단말(200)로 전달된다.In steps S114 to S116, the generated nondeterministic data is delivered to the user terminal 200 as a random challenge value.
단계(S117)에서, 사용자 단말(200)은 전달받은 랜덤 챌린지 값을 이용하여 전자 서명을 수행한다. 상기 전자 서명은 예를 들어 랜덤 챌린지 값을 사용자의 개인키로 서명하는 방식일 수 있으나. 어떠한 방식으로 수행되더라도 무방하다. 예컨대, 해시 함수를 이용하여 랜덤 챌린지 값에 대한 해싱(hashing)이 수행되더라도 무방하며, 챌린지-리스폰스 기법에 따라 단계(S97)의 동작과 사용자 단말(200)이 제공하는 리스폰스 데이터의 유형은 얼마든지 다양한 형태로 변형될 수 있다.In step S117, the user terminal 200 performs an electronic signature by using the received random challenge value. The electronic signature may be, for example, a method of signing a random challenge value with a user's private key. It may be done in any way. For example, a hash function may be hashed using a hash function, and according to the challenge-response technique, the operation of step S97 and the type of response data provided by the user terminal 200 may be performed. It can be modified in various forms.
단계(S118 내지 S120)에서, 스마트 컨트랙트 A(10)는 사용자 단말(200)로부터 전자 서명과 트랜잭션 ID를 수신하고, 상기 트랜잭션 ID를 이용하여 블록체인 상에 기록된 랜덤 챌린지 값의 조회를 요청한다.In steps S118 to S120, the smart contract A 10 receives an electronic signature and a transaction ID from the user terminal 200, and requests an inquiry of a random challenge value recorded on the blockchain using the transaction ID. .
단계(S121)에서, 스마트 컨트랙트 B(20)를 통해 랜덤 챌린지 값의 조회 및 유효성 체크가 수행된다. 예를 들어, 상기 유효성 체크는 상기 트랜잭션 ID에 매칭되는 랜덤 챌린지 값이 조회되는지 여부에 대한 판정, 조회된 랜덤 챌린지 값의 유효 기간이 이미 만료됐는지 여부에 대한 판정 등을 포함할 수 있다.In step S121, the inquiry and validity check of the random challenge value are performed through the smart contract B 20. For example, the validity check may include a determination as to whether a random challenge value matching the transaction ID is inquired, a determination as to whether or not the validity period of the inquired random challenge value has already expired.
본 개시의 실시예에 따르면, 랜덤 챌린지 값의 조회 요청에 응답하여, 스마트 컨트랙트 B(20)는 조회된 랜덤 챌린지 값의 유효 기간이 만료되었는지 여부를 판정하고, 만료되지 않았다는 판정에 응답하여 상기 유효 기간을 갱신하도록 동작할 수 있다.According to the embodiment of the present disclosure, in response to the inquiry request of the random challenge value, the smart contract B 20 determines whether the validity period of the inquired random challenge value has expired, and responds to the determination that it has not expired. Operate to update the time period.
본 개시의 실시예에 따르면, 랜덤 챌린지 값의 조회 요청에 응답하여, 스마트 컨트랙트 B(20)는 조회된 랜덤 챌린지 값의 유효 기간이 만료되었는지 여부를 판정하고, 만료 판정에 응답하여 새로운 랜덤 챌린지 값을 생성할 것을 통지하도록 동작할 수 있다. 또는, 스마트 컨트랙트 B(20)는 상기 만료 판정에 응답하여 새로운 랜덤 챌린지 값을 생성하고, 생성된 랜덤 챌린지 값을 제공하도록 동작할 수도 있다.According to an embodiment of the present disclosure, in response to the inquiry request of the random challenge value, the smart contract B 20 determines whether the valid period of the inquired random challenge value has expired, and in response to the expiration determination, the new random challenge value. May be operable to notify that it is to be generated. Alternatively, smart contract B 20 may be operable to generate a new random challenge value in response to the expiration determination and provide the generated random challenge value.
단계(S122)에서, 유효성 체크 결과가 포함된 조회 결과가 제공된다.In step S122, an inquiry result including a validity check result is provided.
단계(S123)에서, 스마트 컨트랙트 A(10)는 조회 결과를 활용하여 트랜잭션 처리를 수행한다. 예를 들어, 조회된 랜덤 챌린지 값의 유효 기간이 만료된 경우, 트랜잭션이 유효하게 처리될 수 없음을 알리는 결과가 처리 결과로 제공될 수 있다. 다른 예를 들어, 조회된 랜덤 챌린지 값이 유효한 경우, 사용자의 공개키 및 랜덤 챌린지 값을 이용하여, 전자 서명에 대한 검증이 수행될 수 있다. 그리고, 전자 서명이 검증된 경우, 스마트 컨트랙트 A(10)에 의해 트랜잭션의 처리가 유효하게 수행될 수 있다.In step S123, the smart contract A 10 performs transaction processing utilizing the inquiry result. For example, when the validity period of the inquired random challenge value has expired, a result indicating that the transaction cannot be effectively processed may be provided as a processing result. For another example, if the inquired random challenge value is valid, verification of the electronic signature may be performed using the user's public key and the random challenge value. And, if the electronic signature is verified, the transaction of the transaction can be effectively performed by the smart contract A (10).
단계(S124, S125)에서, 요청한 트랜잭션의 처리 결과가 사용자 단말(200)로 제공된다.In steps S124 and S125, the processing result of the requested transaction is provided to the user terminal 200.
지금까지, 도 12를 참조하여 본 개시의 활용 예에 대하여 설명하였다. 다음으로, 도 13에 도시된 활용 예에 대하여 설명한다.So far, the application example of the present disclosure has been described with reference to FIG. 12. Next, the utilization example shown in FIG. 13 is demonstrated.
도 13에 도시된 활용 예는 도 12에 도시된 예와 전반적으로 유사하다. 다만, 단계(S130 내지 S133)에서 사용자 단말(200)의 요청이 직접적으로 스마트 컨트랙트 B(20)로 전달되고, 생성된 랜덤 챌린지 값 또한 스마트 컨트랙트 A(10)를 거치지 않고 바로 사용자 단말(200)로 제공된다는 점에서 차이가 있다. 그 이후의 단계에 대한 설명은 전술한 바와 동일하므로 생략하도록 한다.The utilization example shown in FIG. 13 is generally similar to the example shown in FIG. 12. However, in steps S130 to S133, the request of the user terminal 200 is directly transmitted to the smart contract B 20, and the generated random challenge value is also directly passed through the smart contract A 10 without being passed through the smart contract A 10. The difference is that it is provided by. Since the description of the subsequent steps is the same as described above, it will be omitted.
지금까지, 도 12 및 도 13을 참조하여 비결정적 데이터가 활용되는 구체적인 예시에 대하여 설명하였다. 상술한 예들에 따르면, 챌린지-리스폰스에 기반하여 처리되는 트랜잭션이 외부 서버의 도움 없이 블록체인 기반 시스템 내에서 자체적으로 처리될 수 있다. 이에 따라, 블록체인 기반 시스템을 통해 안전성 및 신뢰성이 더욱 향상된 트랜잭션 처리 서비스가 제공될 수 있다.So far, a specific example in which non-deterministic data is utilized has been described with reference to FIGS. 12 and 13. According to the above examples, transactions processed based on challenge-response can be processed on their own within the blockchain based system without the help of an external server. Accordingly, a transaction processing service with improved safety and reliability can be provided through a blockchain-based system.
마지막으로, 도 14를 참조하여, 블록체인 노드(100)를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 구성 및 동작에 대하여 설명하도록 한다.Finally, referring to FIG. 14, a configuration and operation of an exemplary computing device 400 that can implement the blockchain node 100 will be described.
도 14는 본 개시의 실시예에 따른 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 하드웨어 구성도이다.14 is a hardware diagram of an example computing device 400 that can implement a blockchain node according to an embodiment of the disclosure.
도 14를 참조하면, 컴퓨팅 장치(400)는 하나 이상의 프로세서(410), 버스(450), 네트워크 인터페이스(470), 프로세서(410)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(430)와, 스마트 컨트랙트(491)를 저장하는 스토리지(490)를 포함할 수 있다. 다만, 도 14에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 14에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.Referring to FIG. 14, the computing device 400 may include one or more processors 410, a bus 450, a network interface 470, and a memory 430 that loads a computer program executed by the processor 410. And a storage 490 for storing the smart contract 491. However, FIG. 14 illustrates only the components related to the embodiment of the present disclosure. Accordingly, it will be appreciated by those skilled in the art that the present disclosure may further include other general purpose components in addition to the components illustrated in FIG. 14.
프로세서(410)는 컴퓨팅 장치(400)의 각 구성의 전반적인 동작을 제어한다. 프로세서(410)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(410)는 본 개시의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(400)는 하나 이상의 프로세서를 구비할 수 있다.The processor 410 controls the overall operation of each component of the computing device 400. The processor 410 includes a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), a graphics processing unit (GPU), or any type of processor well known in the art. Can be. In addition, the processor 410 may perform an operation on at least one application or program for executing a method according to embodiments of the present disclosure. Computing device 400 may have one or more processors.
메모리(430)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(430)는 본 개시의 실시예들에 따른 비결정적 데이터 생성 방법을 실행하기 위하여 스토리지(490)로부터 하나 이상의 프로그램(491)을 로드할 수 있다. 도 14에서 메모리(430)의 예시로 RAM이 도시되었다.The memory 430 stores various data, commands, and / or information. The memory 430 may load one or more programs 491 from the storage 490 to execute a method of generating non-deterministic data according to embodiments of the present disclosure. In FIG. 14, RAM is illustrated as an example of the memory 430.
버스(450)는 컴퓨팅 장치(400)의 구성 요소 간 통신 기능을 제공한다. 버스(450)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.The bus 450 provides communication between components of the computing device 400. The bus 450 may be implemented as various types of buses such as an address bus, a data bus, and a control bus.
네트워크 인터페이스(470)는 컴퓨팅 장치(400)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(470)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(470)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.The network interface 470 supports wired and wireless Internet communication of the computing device 400. In addition, the network interface 470 may support various communication methods other than Internet communication. To this end, the network interface 470 may comprise a communication module well known in the art of the present disclosure.
스토리지(490)는 상기 하나 이상의 프로그램(491)을 비임시적으로 저장할 수 있다. 도 14에서 상기 하나 이상의 프로그램(491)의 예시로 비결정적 데이터를 생성하는 스마트 컨트랙트(491)가 도시되었다. 이외에도, 스토리지(490)는 블록체인 알고리즘에 따라 컴퓨팅 장치(400)를 동작(e.g. 스마트 컨트랙트를 실행)시키는 블록체인 프로그램(미도시)을 더 포함할 수 있다.The storage 490 may non-temporarily store the one or more programs 491. In FIG. 14, a smart contract 491 is shown that generates nondeterministic data as an example of the one or more programs 491. In addition, the storage 490 may further include a blockchain program (not shown) for operating the computing device 400 according to a blockchain algorithm (e.g., executing a smart contract).
스토리지(490)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다. Storage 490 is well known in the art for non-volatile memory, hard disks, removable disks, or the like to which the present disclosure pertains, such as Read Only Memory (ROM), Eraseable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), flash memory, and the like. It may comprise any known type of computer readable recording medium.
스마트 컨트랙트(491)는 전술한 본 개시의 실시예에 따라 블록체인 상에서 비결정적 데이터를 생성한다. 예를 들어, 스마트 컨트랙트(491)는 메모리(430)에 로드되어, 하나 이상의 프로세서(410)에 의해 실행되고, 비결정적 데이터 생성 요청에 응답하여 상기 비결정적 데이터를 생성하는 루틴을 포함할 수 있다.The smart contract 491 generates nondeterministic data on the blockchain according to the embodiment of the present disclosure described above. For example, smart contract 491 may include a routine that is loaded into memory 430, executed by one or more processors 410, and generates the non-deterministic data in response to a non-deterministic data generation request. .
지금까지, 도 14를 참조하여 본 개시의 실시예에 따른 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 구성 및 동작에 대하여 설명하였다.So far, the configuration and operation of an exemplary computing device 400 that can implement a blockchain node according to an embodiment of the present disclosure have been described with reference to FIG. 14.
지금까지 도 2 내지 도 14를 참조하여 설명된 본 개시의 기술적 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.The technical concept of the present disclosure described above with reference to FIGS. 2 to 14 may be implemented in computer readable code on a computer readable medium. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer equipped hard disk). Can be. The computer program recorded on the computer-readable recording medium may be transmitted to another computing device and installed in the other computing device through a network such as the Internet, thereby being used in the other computing device.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.Although the operations are shown in a specific order in the drawings, it should not be understood that the operations must be performed in the specific order or sequential order shown or that all the illustrated operations must be executed to achieve the desired results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of the various configurations in the embodiments described above should not be understood as such separation being necessary, and the described program components and systems may generally be integrated together into a single software product or packaged into multiple software products. Should be understood.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 본 개시에 언급된 다양한 실시예들이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.While the embodiments of the present disclosure have been described with reference to the accompanying drawings, a person of ordinary skill in the art to which the present disclosure pertains may have various embodiments described in the present disclosure without changing the technical spirit or essential features thereof. It can be appreciated that the present invention may be carried out in a form. Therefore, it is to be understood that the embodiments described above are exemplary in all respects and not restrictive.

Claims (20)

  1. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,In the non-deterministic data generation method performed in a blockchain-based system including a plurality of blockchain nodes,
    상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계;Generating, by a first blockchain node of the plurality of blockchain nodes, first non-deterministic data using a first smart contract shared on the blockchain in response to a request for generating non-deterministic data. ;
    상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 수신하는 단계; 및Receiving, by the first blockchain node, second non-deterministic data from a second blockchain node of the plurality of blockchain nodes; And
    상기 제1 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함하되,Selecting, by the first blockchain node, any one nondeterministic data from the first nondeterministic data and the second nondeterministic data,
    상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 생성된 것을 특징으로 하는,The second nondeterministic data is generated by the second blockchain node using the first smart contract shared on the blockchain,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  2. 제1 항에 있어서,According to claim 1,
    상기 제1 블록체인 노드가, 상기 생성된 비결정적 데이터를 제공하는 단계를 더 포함하되,Providing, by the first blockchain node, the generated nondeterministic data,
    상기 제공하는 단계는,The providing step,
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되기 전에, 상기 비결정적 데이터의 생성을 요청한 노드에게 상기 선택된 비결정적 데이터를 제공하는 단계를 포함하는 것을 특징으로 하는,Before the selected non-deterministic data is written on the blockchain, providing the selected non-deterministic data to a node that has requested the generation of the non-deterministic data.
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  3. 제1 항에 있어서,According to claim 1,
    상기 제1 블록체인 노드가, 상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록됨에 응답하여, 상기 비결정적 데이터의 생성을 요청한 노드에게 소정의 신호를 통지하는 단계를 더 포함하는 것을 특징으로 하는,In response to the first non-deterministic data being written on the blockchain, the first blockchain node notifying a node requesting the generation of the non-deterministic data, a predetermined signal;
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  4. 제1 항에 있어서,According to claim 1,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고,The blockchain based system manages a consensus policy for each smart contract shared on the blockchain,
    상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며,The consensus policy includes the number of signatures required for the consensus of the smart contract as a setting item.
    상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1인 것을 특징으로 하는,The number of signatures defined in the consensus policy for the first smart contract is 1,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  5. 제1 항에 있어서,According to claim 1,
    상기 생성 요청은,The generation request,
    상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것을 특징으로 하는,It is triggered by a second smart contract shared on the blockchain,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  6. 제1 항에 있어서,According to claim 1,
    상기 제1 블록체인 노드가, 상기 생성 요청과 함께 상기 비결정적 데이터에 대한 식별 값을 받는 단계를 더 포함하되,Receiving, by the first blockchain node, an identification value for the non-deterministic data with the generation request,
    상기 선택된 비결정적 데이터는 상기 식별 값과 매칭되어 상기 블록체인 상에 기록되는 것을 특징으로 하는,The selected non-deterministic data is matched with the identification value and recorded on the blockchain,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  7. 제6 항에 있어서,The method of claim 6,
    상기 복수의 블록체인 노드 중 특정 블록체인 노드가, 상기 식별 값과 함께 비결정적 데이터의 조회 요청을 받는 단계; 및Receiving, by a particular blockchain node of the plurality of blockchain nodes, a request for inquiry of non-deterministic data together with the identification value; And
    상기 특정 블록체인 노드가, 상기 조회 요청에 응답하여, 상기 식별 값에 매칭되는 비결정적 데이터를 제공하는 단계를 더 포함하는 것을 특징으로 하는,The specific blockchain node, in response to the inquiry request, providing non-deterministic data matching the identification value.
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  8. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,In the non-deterministic data generation method performed in a blockchain-based system including a plurality of blockchain nodes,
    상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청을 받는 단계;Receiving, by a first blockchain node of the plurality of blockchain nodes, a request for generating non-deterministic data;
    상기 제1 블록체인 노드가, 상기 생성 요청의 응답으로, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 상기 비결정적 데이터를 생성하는 단계; 및Generating, by the first blockchain node, the non-deterministic data in response to the creation request by using a first smart contract shared on the blockchain; And
    상기 제1 블록체인 노드가, 상기 생성된 비결정적 데이터를 제공하는 단계를 포함하는 것을 특징으로 하는,Providing the generated non-deterministic data by the first blockchain node,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  9. 제8 항에 있어서,The method of claim 8,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고,The blockchain based system manages a consensus policy for each smart contract shared on the blockchain,
    상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며,The consensus policy includes the number of signatures required for the consensus of the smart contract as a setting item.
    상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1인 것을 특징으로 하는,The number of signatures defined in the consensus policy for the first smart contract is 1,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  10. 제8 항에 있어서,The method of claim 8,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고,The blockchain based system manages a consensus policy for each smart contract shared on the blockchain,
    상기 합의 정책은 해당 스마트 컨트랙트에 서명하는 블록체인 노드의 리스트를 설정 항목으로 포함하며,The consensus policy includes a list of blockchain nodes that sign the smart contract as a setting item.
    상기 제1 스마트 컨트랙트의 합의 정책에 정의된 블록체인 노드의 리스트는 상기 제1 블록체인 노드만을 포함하는 것을 특징으로 하는,The list of blockchain nodes defined in the consensus policy of the first smart contract includes only the first blockchain node.
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  11. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,In the non-deterministic data generation method performed in a blockchain-based system including a plurality of blockchain nodes,
    상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 요청 장치로부터 수신된 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계;A first non-deterministic one of the plurality of blockchain nodes, the first non-deterministic using a first smart contract shared on the blockchain in response to a request for generating non-deterministic data received from the requesting device. Generating data;
    상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 수신하는 단계;Receiving, by the first blockchain node, second non-deterministic data from a second blockchain node of the plurality of blockchain nodes;
    상기 제1 블록체인 노드가, 상기 요청 장치로 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터를 제공하는 단계; 및Providing, by the first blockchain node, the first non-deterministic data and the second non-deterministic data to the requesting device; And
    상기 복수의 블록체인 노드 중 특정 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중 상기 요청 장치에 의해 선택된 비결정적 데이터를 수신하는 단계를 포함하되,Receiving, by a particular blockchain node of the plurality of blockchain nodes, non-deterministic data selected by the requesting device of the first non-deterministic data and the second non-deterministic data,
    상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 생성된 것을 특징으로 하는,The second nondeterministic data is generated by the second blockchain node using the first smart contract shared on the blockchain,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.Non-deterministic data generation method in blockchain based system.
  12. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 트랜잭션 처리 방법에 있어서,In the transaction processing method performed in a blockchain-based system including a plurality of blockchain nodes,
    사용자 단말로부터 비결정적 데이터가 이용되는 타깃 트랜잭션에 대한 처리 요청을 수신하는 단계;Receiving a processing request for a target transaction for which non-deterministic data is used from a user terminal;
    상기 처리 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 비결정적 데이터를 생성하는 단계; 및In response to the processing request, generating non-deterministic data using a first smart contract shared on the blockchain; And
    상기 블록체인 상에 공유된 상기 타깃 트랜잭션에 관한 제2 스마트 컨트랙트 및 상기 생성된 비결정적 데이터를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함하는 것을 특징으로 하는,Processing the target transaction using a second smart contract and the generated non-deterministic data relating to the target transaction shared on the blockchain,
    블록체인 기반 시스템에서의 트랜잭션 처리 방법.Transaction processing method in blockchain based system.
  13. 제12 항에 있어서,The method of claim 12,
    상기 타깃 트랜잭션을 처리하는 단계는,Processing the target transaction,
    상기 생성된 비결정적 데이터에 기초하여 결정된 챌린지(challenge) 데이터를 상기 사용자 단말로 제공하는 단계;Providing challenge data determined to the user terminal based on the generated non-deterministic data;
    상기 사용자 단말로부터, 상기 챌린지 데이터에 대응되는 리스폰스(response) 데이터를 수신하는 단계; 및Receiving response data corresponding to the challenge data from the user terminal; And
    상기 리스폰스 데이터 및 상기 제2 스마트 컨트랙트를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함하는 것을 특징으로 하는,Processing the target transaction using the response data and the second smart contract,
    블록체인 기반 시스템에서의 트랜잭션 처리 방법.Transaction processing method in blockchain based system.
  14. 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 제1 블록체인 노드; 및A first blockchain node, in response to a request for generating nondeterministic data, generating a first nondeterministic data using a first smart contract shared on the blockchain; And
    상기 생성 요청에 응답하여, 상기 제1 스마트 컨트랙트를 이용하여 제2 비결정적 데이터를 생성하는 제2 블록체인 노드를 포함하되,A second blockchain node that generates second non-deterministic data using the first smart contract in response to the generation request;
    상기 제1 블록체인 노드는,The first blockchain node,
    상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 동작을 수행하고,Select one of the non-deterministic data from the first non-deterministic data and the second non-deterministic data;
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되는 것을 특징으로 하는,The selected non-deterministic data is recorded on the blockchain,
    블록체인 기반 시스템.Blockchain based system.
  15. 제14 항에 있어서,The method of claim 14,
    상기 제1 블록체인 노드는,The first blockchain node,
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되기 전에, 상기 비결정적 데이터의 생성을 요청한 노드에게 상기 선택된 비결정적 데이터를 제공하는 동작을 수행하는 것을 특징으로 하는,And before the selected non-deterministic data is written on the blockchain, providing the selected non-deterministic data to a node that has requested the generation of the non-deterministic data.
    블록체인 기반 시스템.Blockchain based system.
  16. 제14 항에 있어서,The method of claim 14,
    상기 제1 블록체인 노드는,The first blockchain node,
    상기 제1 비결정적 데이터가 상기 블록체인 상에 기록됨에 응답하여, 상기 비결정적 데이터의 생성을 요청한 노드에게 소정의 신호를 통지하는 동작을 수행하는 것을 특징으로 하는,In response to the first non-deterministic data being recorded on the blockchain, notifying a node that has requested the generation of the non-deterministic data, a predetermined signal;
    블록체인 기반 시스템.Blockchain based system.
  17. 제14 항에 있어서,The method of claim 14,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고,The blockchain based system manages a consensus policy for each smart contract shared on the blockchain,
    상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며,The consensus policy includes the number of signatures required for the consensus of the smart contract as a setting item.
    상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1인 것을 특징으로 하는,The number of signatures defined in the consensus policy for the first smart contract is 1,
    블록체인 기반 시스템.Blockchain based system.
  18. 제14 항에 있어서,The method of claim 14,
    상기 생성 요청은,The generation request,
    상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것을 특징으로 하는,It is triggered by a second smart contract shared on the blockchain,
    블록체인 기반 시스템.Blockchain based system.
  19. 제14 항에 있어서,The method of claim 14,
    상기 제1 블록체인 노드는,The first blockchain node,
    상기 생성 요청과 함께 상기 비결정적 데이터에 대한 식별 값을 수신하되,Receive an identification value for the non-deterministic data with the generation request,
    상기 선택된 비결정적 데이터는 상기 식별 값과 매칭되어 상기 블록체인 상에 기록되는 것을 특징으로 하는,The selected non-deterministic data is matched with the identification value and recorded on the blockchain,
    블록체인 기반 시스템.Blockchain based system.
  20. 제19 항에 있어서,The method of claim 19,
    상기 블록체인 기반 시스템은 상기 제1 블록체인 노드 및 상기 제2 블록체인 노드를 포함하는 복수의 블록체인 노드로 구성되되,The blockchain-based system is composed of a plurality of blockchain nodes including the first blockchain node and the second blockchain node,
    상기 복수의 블록체인 노드 중 특정 블록체인 노드는,A specific blockchain node of the plurality of blockchain nodes,
    상기 식별 값이 포함된 비결정적 데이터의 조회 요청에 응답하여, 상기 식별 값에 매칭되는 비결정적 데이터를 제공하는 동작을 수행하는 것을 특징으로 하는,In response to a request for querying non-deterministic data including the identification value, performing non-deterministic data matching the identification value.
    블록체인 기반 시스템.Blockchain based system.
PCT/KR2019/001046 2018-03-27 2019-01-24 Method for generating non-deterministic data in blockchain-based system WO2019190040A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0035192 2018-03-27
KR1020180035192A KR102589438B1 (en) 2018-03-27 2018-03-27 Method for generating non-deterministic data in blockchain-based system

Publications (1)

Publication Number Publication Date
WO2019190040A1 true WO2019190040A1 (en) 2019-10-03

Family

ID=68059307

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/001046 WO2019190040A1 (en) 2018-03-27 2019-01-24 Method for generating non-deterministic data in blockchain-based system

Country Status (2)

Country Link
KR (1) KR102589438B1 (en)
WO (1) WO2019190040A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116934488B (en) * 2023-09-18 2023-12-05 四川德力政通科技有限公司 Real estate online on-road transaction management system based on satellite positioning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170287090A1 (en) * 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
US20180006831A1 (en) * 2016-02-04 2018-01-04 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computing systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3037106A1 (en) * 2016-09-19 2018-03-22 Financial & Risk Organisation Limited Systems and methods for interception of smart contracts
KR20170089795A (en) 2017-07-17 2017-08-04 강정헌 Using centrally managed block chain authentication autonomous cluster communication security system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180006831A1 (en) * 2016-02-04 2018-01-04 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computing systems
US20170287090A1 (en) * 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANTONOPOULOS , ANDREAS M. ET AL.: "Mastering Bitcoin: Unlocking Digital Cryptocurrencies", O'REILLY MEDIA., 27 December 2014 (2014-12-27) *
CACHIN, CHRISTIAN ET AL.: "Non-Determinism in Byzantine Fault-Tolerant Replication. Distributed, Parallel, and Cluster Computing (cs.DC", CRYPTOGRAPHY AND SECURITY (CS.CR, 19 December 2016 (2016-12-19), pages 1 - 20, XP055639264 *
VUKOLIC, MARKO: "Rethinking Permissioned Biockchains. BCC 2017: The First ACM Workshop on Blockchain", CRYPTOCURRENCIES AND CONTRACTS, 2 April 2017 (2017-04-02), XP055491012 *

Also Published As

Publication number Publication date
KR20190113047A (en) 2019-10-08
KR102589438B1 (en) 2023-10-13

Similar Documents

Publication Publication Date Title
WO2021060853A1 (en) Network access control system and method therefor
WO2018135766A1 (en) Device and method for managing data by using block chain
US20180285217A1 (en) Failover response using a known good state from a distributed ledger
WO2020022760A1 (en) Distributed network system for operating group for nodes included in system
WO2018131886A1 (en) Method for providing payment gateway service using utxo-based protocol and server using same
WO2016137307A1 (en) Attestation by proxy
WO2018151390A1 (en) Internet of things device
WO2018151425A1 (en) Method for superseding log-in of user through pki-based authentication by using blockchain database of utxo-based protocol, and server employing same
WO2019127973A1 (en) Authority authentication method, system and device for mirror repository, and storage medium
US20070106776A1 (en) Information processing system and method of assigning information processing device
WO2019059453A1 (en) Communication device and method using message history-based security key by means of blockchain
US10394659B2 (en) System and method for providing comprehensive backup of modular mobile devices
WO2020231177A1 (en) Electronic device and method for receiving push message stored in blockchain
WO2019182377A1 (en) Method, electronic device, and computer-readable recording medium for generating address information used for transaction of blockchain-based cryptocurrency
WO2022045691A1 (en) Method for mediating virtual asset transmission
WO2023120906A1 (en) Method for receiving firmware and method for transmitting firmware
WO2021125502A1 (en) Container-based cloud service providing system and method therefor
WO2019098790A1 (en) Electronic device and method for transmitting and receiving data on the basis of security operating system in electronic device
CN106971095A (en) Software digital license management method and system
WO2019190040A1 (en) Method for generating non-deterministic data in blockchain-based system
WO2015178597A1 (en) System and method for updating secret key using puf
WO2022010136A1 (en) Cloud server and method for controlling cloud server
US11157626B1 (en) Bi-directional chain of trust network
WO2023090756A1 (en) Controller-based network access control system, and method therefor
WO2020189801A1 (en) Method and system for authenticating data generated in block-chain by using signable contract

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: 19777818

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: 19777818

Country of ref document: EP

Kind code of ref document: A1