WO2020045823A1 - 가상기계를 이용한 스마트 컨트랙트 시스템 및 그 처리 방법 - Google Patents

가상기계를 이용한 스마트 컨트랙트 시스템 및 그 처리 방법 Download PDF

Info

Publication number
WO2020045823A1
WO2020045823A1 PCT/KR2019/008810 KR2019008810W WO2020045823A1 WO 2020045823 A1 WO2020045823 A1 WO 2020045823A1 KR 2019008810 W KR2019008810 W KR 2019008810W WO 2020045823 A1 WO2020045823 A1 WO 2020045823A1
Authority
WO
WIPO (PCT)
Prior art keywords
smart contract
blockchain
transaction
connection unit
program interpreter
Prior art date
Application number
PCT/KR2019/008810
Other languages
English (en)
French (fr)
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 WO2020045823A1 publication Critical patent/WO2020045823A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Definitions

  • the present invention relates to a smart contract system that can manage contracts on a blockchain, and more particularly, to a smart contract system that dynamically configures one or more blockchains, one or more interpreters, and one or more device controllers in a virtual machine environment. And how to handle It is about.
  • Smart contracts are based on the blockchain to sign and execute various types of contracts such as financial transactions, real estate contracts, and notaries.
  • Smart contracts used in the existing Ethereum blockchain are tightly coupled with the blockchain.
  • a specific blockchain must be used.
  • the Ethereum smart contract only supports a specific language, so users must learn a specific language before using the smart contract. Therefore, it is very difficult to separate smart contracts and port them to other blockchains, or to construct smart contracts in different languages.
  • a smart contract manager having a plug-in blockchain connection unit and a plug-in program interpreter connection unit made of a virtual machine; At least one SPV node configured based on the blockchain connection, each connected to a corresponding blockchain system; And at least one program interpreter configured based on the program interpreter connection unit, and when a transaction including a smart contract arrives at a specific SPV node among one or more SPV nodes, the smart contract manager is smart in the data area of the arrived transaction. Identify the specific program interpreter described in the declaration section of the contract, request the program analysis of the smart contract to the specific program interpreter, and transmits the analyzed result to the blockchain system to which the specific SPV node is connected.
  • the smart contract manager further includes a plug-in type device controller connection unit, and further includes one or more device controllers configured based on the device controller connection unit.
  • the smart contract manager receives a device control command from the specific program interpreter and transmits the device control command to a specific device controller, and transmits the controlled result to the specific program interpreter.
  • the blockchain connection unit, the program interpreter connection unit and the device controller connection unit are characterized in that to transfer data by JSON-RPC, respectively.
  • the smart contract manager checks whether there is a sending authority and an execution authority for a receiving address with respect to the address from which the transaction containing the smart contract is sent.
  • the smart contract processing method (a) when a transaction that includes a smart contract in the SPV node, the smart contract manager executes the transaction through a blockchain connection; Receiving and confirming a specific program interpreter described in the declaration of the smart contract in the data area of the transaction; (b) the smart contract manager requesting the program interpretation of the smart contract by transferring the transaction or the smart contract extracted from the transaction to the specific program interpreter through a program interpreter connection unit; And (c) when the smart contract manager receives the interpreted result from the specific program interpreter through the program interpreter connection unit and delivers the interpreted result to the SPV node through the blockchain connection unit, the transaction includes the interpreted result. And generating and transmitting the generated SPC node to a blockchain system to which the SPC node is connected.
  • the smart contract manager receives a device control command from the specific program interpreter and transmits a device control command to a specific device controller through a device controller connection unit, and transmits a controlled result to the specific device controller through the program interpreter connection unit.
  • Delivering to the program interpreter characterized in that it further comprises.
  • the blockchain connection unit, the program interpreter connection unit and the device controller connection unit are characterized in that to transfer data by JSON-RPC, respectively.
  • the smart contract manager further comprises the step of checking whether the sending authority, the execution authority for the receiving address for the address to which the transaction is sent.
  • the smart contract processing method it is characterized in that the additional authentication using a custom token (Custom Token).
  • a custom token Customer Token
  • a computer-readable recording medium records a program for executing the above smart contract processing method on a computer.
  • FIG. 1 illustrates a configuration of a smart contract system according to the present invention.
  • FIG. 2 illustrates a smart contract processing method by the smart contract system of FIG. 1.
  • a preferred embodiment of the smart contract system 1 is a smart contract manager 10, one or more SPV nodes 20, 21, 22, one or more program interpreters 30, 31, 32. And one or more device controllers (40, 41, 42).
  • FIG. 1 shows three SPV nodes 20, 21, 22, program interpreters 30, 31, 32, and device controllers 40, 41, 42, respectively, this is only one example and the number is Naturally, it can be flexibly adopted if necessary.
  • the smart contract manager 10 includes a plug-in blockchain connection unit 12, a plug-in program interpreter connection unit 13, and a plug-in device controller connection unit 14.
  • the smart contract manager 10 includes a virtual machine (VM).
  • the plug-in blockchain connection 12 may be connected to an SPV node 1 (20) or an SPV node 2 (21) or an SPV node 3 (22), and the plug-in program interpreter connection 13 may be a program interpreter 1 (30) or a program interpreter. 2 31 or program interpreter 3 32 may be connected, and the plug-in device controller connection 14 may be connected to device controller 1 40 or device controller 2 41 or device controller 3 42.
  • the device controllers 40, 41, and 42 must have unique identifiers distinguishable in the smart contract manager 10. This identifier may be used as a delimiter when transferring program control commands 30, 31, 32 to a control command sent to one of the plurality of device controllers 40, 41, 42.
  • the plug-in blockchain connection unit 12 is provided with a common application programming interface (API) for accommodating SPV nodes of a plurality of blockchain systems.
  • the blockchain connection unit 12 includes an API such as JSON-RPC or Secure JSON-RPC for data transmission.
  • JSON-RPC is a remote procedure call (RPC) encoded in JavaScript Object Notation (JSON).
  • the API included in the blockchain connection unit 12 provides an API for transaction I / O commonly used in each blockchain. In other words, it provides basic API related to transaction transmission, reception and inquiry.
  • the data portion of each transaction can be attached by encoding the smart contract and additional information in JSON format.
  • the Simple Payment Verification (SPV) nodes 20, 21, and 22 are among the nodes that make up the blockchain system. Unlike a full node, a node that can verify transactions without an external reference, it is a node that can process transactions in real time and does not store blocks in storage except for the contents related to its wallet address. Like a full node, an RPC command interface It is a relatively simple node because it does not have a complex structure.
  • the SPV nodes 20, 21, 22 in the smart contract system 1 according to the present invention are nodes corresponding to the respective blockchain systems, and are configured based on the blockchain connection unit 12.
  • Private and public keys used by the SPV nodes 20, 21, and 22 may be encrypted and stored only on the seed to solve the security problem. In this case, each time the SPV nodes 20, 21, 22 may generate a private key and a public key to be used for signature through a separate calculation process. The used private key and public key are initialized immediately in memory and are not stored in memory for a long time.
  • the plug-in program interpreter connection unit 13 is provided with a common API for accommodating a plurality of program interpreters (e.g., modules capable of interpreting Python, PHP, JavaScript, etc.).
  • the program interpreter connection 13 includes an API such as JSON-RPC or Secure JSON-RPC for data delivery.
  • the program interpreters 30, 31, and 32 in the smart contract system 1 according to the present invention analyze and perform the smart contract, and are configured based on the program interpreter connection unit 13.
  • program interpreters 30, 31, and 32 may very effectively access specific blockchain nodes on the smart contract system 1.
  • JSON-RPC JSON-RPC
  • VM smart contract manager
  • the plug-in device controller connection 14 is likewise provided with a common API for accommodating multiple device controllers.
  • the program interpreter connection 13 includes an API such as JSON-RPC or Secure JSON-RPC for data delivery.
  • the device controllers 40, 41 and 42 in the smart contract system 1 according to the present invention execute device control commands from the program interpreters 30, 31 and 32, based on the device controller connection 14 It is composed.
  • the device controller connection 14 may initially implement an appropriate set of JSON-RPC instructions for that device controller.
  • a command set can be basically provided for common items such as temperature value, humidity value, operating range, voltage value, current value, and ON / OFF to control the device.
  • the smart contract manager (VM) 10 serves as a router that transfers information between each plug-in blockchain connector 12, a plug-in program interpreter connector 13, and a plug-in device controller connector 14. do. When actually implemented, a thread is created for each plug-in. In the smart contract manager (VM) 10, when a new smart contract comes, a new thread is created and executed.
  • the smart contract manager (VM) 10 extracts a smart contract from the data area of the received transaction when a transaction including a smart contract arrives at a specific SPV node among one or more SPV nodes, and then declares the extracted smart contract in the declaration part of the extracted smart contract. Identify the specific program interpreter listed, and create a thread to request the program's interpretation of the smart contract to execute the identified specific program interpreter.
  • the smart contract manager (VM) 10 receives the result of the smart contract being interpreted from the program interpreter and passes the result to the specific SPV node, the specific SPV node generates a transaction that goes to the node to which the result is to be transmitted and specific to the generated transaction. It is signed with the private key of the SPV node and then sent to the blockchain system to which the specific SPV node is connected.
  • the administrator of the blockchain 50 Before using the smart contract, the administrator of the blockchain 50 must create and grant a grant for authorization on the blockchain and a token for executing the smart contract.
  • Authorization command may be slightly different depending on the blockchain, but it is a function to authorize only a specific address. This feature can also be used to grant the right to send smart contracts and the right to run smart contracts.
  • transactions with specific permissions In order to check permissions, transactions with specific permissions must be stored in advance on the blockchain, and the permissions must be indexed in the hash db so that they can be checked immediately.
  • the grant function can be implemented by storing the authorization content in JSON format in the data area of a transaction signed by a specific address such as a seed node, and inquiring it.
  • the smart contract manager (VM) 10 detects it in real time and sends the right to send to the address that sent the transaction. Authenticate by checking that it exists and that it has execute permission on the destination address.
  • the private keys of the SPV nodes 20, 21, and 22 may be used for the purpose of signing and verifying a transaction when transmitting and receiving a transaction on the blockchain, and also receiving a token for performing a smart contract.
  • Tokens used for smart contracts use Custom Tokens.
  • 101 can send smart contracts using tokens that are only available in 101. The reason for this is to create a security barrier. Although it is authenticated above, even if the authentication is wrong, the smart contract can only be sent and executed if there is a token available in 101. Naturally, this custom token cannot be created by anyone, and the blockchain manager generates only a limited quantity and sends it to people (or representatives).
  • the private and public keys are generated at the SPV node (SPV node 1 (20)) of a specific block chain, and then registered with the block chain (block chain 1 (50)) and authorized to receive smart contracts. Granted.
  • the user prepares a smart contract that can be executed on the blockchain 1 (50) (S10).
  • the program language used by the user to create the smart contract can be interpreted by the program interpreter 1 (30) among the program interpreters (30, 31, 32).
  • the prepared smart contract is encoded and attached to the data area of the blockchain transaction, signed with the private key, and then transmitted to the blockchain 1 (50).
  • the receiving address of the transaction is the SPV node 1 (20) of blockchain 1 (50) existing on the smart contract system (1). That is, after signing the transaction including the smart contract to the address of the SPV node 1 (20) on the node of the block chain 1 (50), and transmits the transaction on the block chain 1 (50). At this time, the right that the node transmitting the transaction can transmit the smart contract to the SPV node 1 (20) should be recorded on the block chain 1 (50). If blockchain 1 (50) does not have smart contract authority, it stops transmitting and notifies the node that sent the transaction of the error. If it is determined that the normal transaction is on blockchain 1 (50), it spreads the transaction on blockchain 1 (50).
  • the smart contract manager (VM) 10 When the blockchain transaction including the smart contract arrives at the SPV node 1 (20), the smart contract manager (VM) 10 immediately receives the transaction through the plug-in blockchain connection 12 (S20). At this time, the smart contract manager (VM) 10 may create a new thread to process the transaction. This process is delivered as a protocol through TCP / IP (Transmission Control Protocol / Internet Protocol), which can be easily implemented in JSON-RPC.
  • TCP / IP Transmission Control Protocol / Internet Protocol
  • the smart contract manager (VM) 10 checks and authenticates whether the sender has the right to send and the execute right to the receiving address with respect to the address from which the transaction containing the smart contract is included. This process can be examined by sending JSON-RPC commands to Blockchain 1 (50) to compare the authorizations. In addition, additional authentication using Custom Tokens is possible with JSON-RPC commands.
  • the smart contract manager (VM) 10 may extract the smart contract by decoding the data area of the transaction, and check the type and version of the program interpreter described in the declaration of the extracted smart contract (S30).
  • the smart contract manager (VM) 10 transmits the smart contract to the program interpreter 1 (30) identified as described above through the plug-in program interpreter connection unit 13 using JSON-RPC to request a program interpretation. (S40).
  • the program interpreter 1 analyzes the JSON to extract and analyze the smart contract (S50).
  • the interpretation of the program can be handled in various ways, such as by performing binary code after interpreting or compiling, or by using binary code executed on the device.
  • the use of program interpreters can vary depending on the characteristics of the blockchain or the preferences of the user.
  • a device control command is sent to the device controller 1 40 through the smart contract manager (VM) 10.
  • VM smart contract manager
  • Command delivery can be through shared memory or RPC.
  • the interworking between one or more program interpreters 30, 31, 32 and one or more device controllers 40, 41, 42 may be via shared memory on the smart contract manager (VM) 10.
  • the device controller 1 40 performs a control command to control the corresponding device 45 or to find a status signal (S55).
  • the result of processing the control command is passed back to the program interpreter 1 (30).
  • the program interpreter 1 30 provides status information while performing or transmits the information or processing result to the smart contract manager (VM) 10 through the program interpreter connection unit 13 when the execution is completed.
  • the smart contract manager (VM) 10 transmits the result interpreted by the program interpreter 1 30 to the SPV node 1 20 through the blockchain connection 12.
  • the SPV node 1 (20) generates a transaction including the result interpreted by the program interpreter 1 (30) and signs the transaction with the private key of the SPV node 1 (20), and then blockchain 1 (50). Transfer to (S60).
  • the destination address is the address of the user who sent the smart contract, and may be sent to a separate address specified in the declaration section of the smart contract if necessary.
  • the transaction sent by the smart contract manager (VM) 10 is finally received by the user to confirm the result.
  • the above-described embodiment of the present invention may be recorded in a medium used in a general purpose computer including a personal computer.
  • the media may include magnetic recording media (e.g., ROM, floppy disk, hard disk, etc.), optical read media (e.g., CD-ROM, DVD, etc.) and electrical recording media (e.g., flash memory, memory stick, etc.) It includes a recording medium such as.
  • one or more blockchains and one or more smart contract program interpreters may be connected and operated on a virtual machine (VM).
  • one or more device controllers may be associated with the VM.
  • This approach is not limited to specific blockchain dependencies or specific contract language dependencies of existing smart contracts. That is, since it is combined with a plug-in API through RPC provided in most blockchains, it is easily applicable to other blockchains if only the basic instruction structure of the blockchain is compatible.
  • the universal RPC approach also simplifies the configuration of smart contract program interpreters. In other words, simply add a module or function that can interpret smart contracts in a variety of languages, and you can act as an interpreter.
  • the smart contract program interpreter can control a specific device through multiple device controllers, if necessary, which can also be connected to the RPC via the VM.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

플러그인 방식의 블록체인 연결부와 플러그인 방식의 프로그램 해석기 연결부를 구비하고 가상기계로 이루어진 스마트 컨트랙트 관리자; 블록체인 연결부에 기반하여 구성되고, 각각 대응하는 블록체인 시스템에 연결된 하나 이상의 SPV 노드; 및 프로그램 해석기 연결부에 기반하여 구성된 하나 이상의 프로그램 해석기;를 포함하고, 하나 이상의 SPV 노드 중 특정 SPV 노드에 스마트 컨트랙트가 포함된 트랜잭션이 도착하면, 스마트 컨트랙트 관리자는 도착된 트랜잭션의 데이터 영역에서 스마트 컨트랙트의 선언부에 기재된 특정 프로그램 해석기를 확인하고, 특정 프로그램 해석기에 스마트 컨트랙트의 프로그램 해석을 요청하고, 해석된 결과를 특정 SPV 노드가 연결된 블록체인 시스템으로 전송하는 것으로 이루어진 스마트 컨트랙트 시스템을 개시한다.

Description

가상기계를 이용한 스마트 컨트랙트 시스템 및 그 처리 방법
본 발명은 블록체인 상에서 계약을 관리할 수 있는 스마트 컨트랙트 시스템에 관한 것으로, 보다 상세하게는 가상기계 환경에서 하나 이상의 블록체인, 하나 이상의 해석기, 하나 이상의 디바이스 제어기를 통합하여 동적으로 구성하는 스마트 컨트랙트 시스템 및 그 처리 방법에 관한 것이다.
스마트 컨트랙트는 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것이다.
기존의 이더리움(ethereum) 블록체인에서 사용되는 스마트 컨트랙트는 해당 블록체인과 밀접하게 결합이 되어 있다. 즉, 스마트 컨트랙트를 사용하려면 반드시 특정한 블록체인을 사용해야 하는 제약점이 있다. 또한, 이더리움 스마트 컨트랙트는 특정한 언어만을 지원하므로 사용자는 특정한 언어를 배워야만 스마트 컨트랙트를 활용할 수 있다. 따라서 스마트 컨트랙트를 분리해서 다른 블록체인에 이식하거나, 다른 언어로 스마트 컨트랙트를 구성하는 작업은 매우 어렵다고 할 수 있다.
본 발명은 가상기계 환경에서 하나 이상의 블록체인, 하나 이상의 해석기, 하나 이상의 디바이스 제어기를 통합하여 동적으로 구성하는 스마트 컨트랙트 시스템 및 그 처리 방법을 제공함을 그 목적으로 한다.
상기의 목적을 달성하기 위하여, 본 발명에 일 측면에 의한 스마트 컨트랙트 시스템은, 플러그인 방식의 블록체인 연결부와 플러그인 방식의 프로그램 해석기 연결부를 구비하고 가상기계로 이루어진 스마트 컨트랙트 관리자; 상기 블록체인 연결부에 기반하여 구성되고, 각각 대응하는 블록체인 시스템에 연결된 하나 이상의 SPV 노드; 및 상기 프로그램 해석기 연결부에 기반하여 구성된 하나 이상의 프로그램 해석기;를 포함하고, 하나 이상의 SPV 노드 중 특정 SPV 노드에 스마트 컨트랙트가 포함된 트랜잭션이 도착하면, 상기 스마트 컨트랙트 관리자는 도착된 트랜잭션의 데이터 영역에서 스마트 컨트랙트의 선언부에 기재된 특정 프로그램 해석기를 확인하고, 상기 특정 프로그램 해석기에 스마트 컨트랙트의 프로그램 해석을 요청하고, 해석된 결과를 상기 특정 SPV 노드가 연결된 블록체인 시스템으로 전송하는 것을 특징으로 한다.
상기 스마트 컨트랙트 시스템에 있어서, 상기 스마트 컨트랙트 관리자는 플러그인 방식의 디바이스 제어기 연결부를 더 구비하고, 상기 디바이스 제어기 연결부에 기반하여 구성된 하나 이상의 디바이스 제어기를 더 포함하는 것을 특징으로 한다.
상기 스마트 컨트랙트 시스템에 있어서, 상기 스마트 컨트랙트 관리자가 상기 특정 프로그램 해석기로부터 디바이스 제어 명령을 받아 특정 디바이스 제어기로 전달하고, 제어된 결과를 상기 특정 프로그램 해석기로 전달하는 것을 특징으로 한다.
상기 스마트 컨트랙트 시스템에 있어서, 상기 블록체인 연결부, 상기 프로그램 해석기 연결부 및 디바이스 제어기 연결부는 각각 JSON-RPC에 의해 데이터를 전달하도록 하는 것을 특징으로 한다.
상기 스마트 컨트랙트 시스템에 있어서, 상기 스마트 컨트랙트 관리자는 상기 스마트 컨트랙트가 포함된 트랜잭션을보낸 주소에 대하여, 발송 권한이 있는지와 수신 주소에 대한 실행 권한이 있는지를 검사하는 것을 특징으로 한다.
상기의 다른 목적을 달성하기 위하여, 본 발명에 일 측면에 의한 스마트 컨트랙트 처리방법은, (a) SPV 노드에 스마트 컨트랙트가 포함된 트랜잭션이 도착하면, 스마트 컨트랙트 관리자가 블록체인 연결부를 통해 상기 트랜잭션을 전달받고, 상기 트랜잭션의 데이터 영역에서 스마트 컨트랙트의 선언부에 기재된 특정 프로그램 해석기를 확인하는 단계; (b) 스마트 컨트랙트 관리자가 상기 트랜잭션 또는 상기 트랜잭션에서 추출된 스마트 컨트랙트를 프로그램 해석기 연결부를 통해 상기 특정 프로그램 해석기로 전달하여 스마트 컨트랙트의 프로그램 해석을 요청하는 단계; 및 (c) 스마트 컨트랙트 관리자가 해석된 결과를 상기 프로그램 해석기 연결부를 통해 상기 특정 프로그램 해석기로부터 전달받아 상기 블록체인 연결부를 통해 상기 SPV 노드로 전달하면, 상기 SPV 노드가 상기 해석된 결과를 포함하는 트랜잭션을 생성하여 상기 SPC 노드가 연결된 블록체인 시스템으로 전송하는 단계;를 포함하여 구성된다.
상기 스마트 컨트랙트 처리방법에 있어서, (b1) 상기 스마트 컨트랙트 관리자가 상기 특정 프로그램 해석기로부터 디바이스 제어 명령을 받아 디바이스 제어기 연결부를 통해 특정 디바이스 제어기로 전달하고, 제어된 결과를 상기 프로그램 해석기 연결부를 통해 상기 특정 프로그램 해석기로 전달하는 단계;를 더 포함하는 것을 특징으로 한다.
상기 스마트 컨트랙트 처리방법에 있어서, 상기 블록체인 연결부, 상기 프로그램 해석기 연결부 및 디바이스 제어기 연결부는 각각 JSON-RPC에 의해 데이터를 전달하도록 하는 것을 특징으로 한다.
상기 스마트 컨트랙트 처리방법에 있어서, 상기 스마트 컨트랙트 관리자가 상기 트랜잭션을 보낸 주소에 대하여, 발송 권한이 있는지와 수신 주소에 대한 실행 권한이 있는지를 검사하는 단계;를 더 포함하는 것을 특징으로 한다.
상기 스마트 컨트랙트 처리방법에 있어서, 커스톰 토큰(Custom Token)을 사용하여 추가적으로 인증하는 것을 특징으로 한다.
상기의 다른 목적을 달성하기 위하여, 본 발명에 의한 컴퓨터로 읽을 수 있는 기록 매체는 상기의 스마트 컨트랙트 처리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한다.
도 1은 본 발명에 의한 스마트 컨트랙트 시스템의 구성을 도시한 것이다.
도 2는 도 1의 스마트 컨트랙트 시스템에 의한 스마트 컨트랙트 처리 방법을 도시한 것이다.
도 1에 의하면, 본 발명에 의한 스마트 컨트랙트 시스템(1)의 바람직한 일실시예는 스마트 컨트랙트 관리자(10), 하나 이상의 SPV 노드(20,21,22), 하나 이상의 프로그램 해석기(30,31,32) 및 하나 이상의 디바이스 제어기(40,41,42)를 포함하여 구성된다. 도 1에서는 각각 3개의 SPV 노드(20,21,22), 프로그램 해석기(30,31,32) 및 디바이스 제어기(40,41,42)를 도시하고 있지만, 이는 하나의 예시일 뿐이고, 그 개수는 필요에 따라 유연하게 채택될 수 있음은 당연하다.
스마트 컨트랙트 관리자(10)는 플러그인 방식의 블록체인 연결부(12)와 플러그인 방식의 프로그램 해석기 연결부(13)와 플러그인 방식의 디바이스 제어기 연결부(14)를 구비하고 가상기계(Virtual Machine:VM)로 이루어진다. 플러그인 블록체인 연결부(12)에는 SPV 노드 1(20) 또는 SPV 노드 2(21) 또는 SPV 노드 3(22)이 연결될 수 있고, 플러그인 프로그램 해석기 연결부(13)에는 프로그램 해석기 1(30) 또는 프로그램 해석기 2(31) 또는 프로그램 해석기 3(32)이 연결되고, 플러그인 디바이스 제어기 연결부(14)에는 디바이스 제어기 1(40) 또는 디바이스 제어기 2(41) 또는 디바이스 제어기 3(42)가 연결될 수 있다. 디바이스 제어기(40,41,42)는 스마트 컨트랙트 관리자(10)에서 구분 가능한 유일한 식별자를 가지고 있어야 한다. 이 식별자는 프로그램 해석기(30,31,32)에서 다수의 디바이스 제어부(40,41,42) 중 하나로 보내는 제어 명령을 전달할 때 구분자로 사용될 수 있다.
여기서 플러그인 방식의 블록체인 연결부(12)에는 다수의 블록체인 시스템의 SPV 노드를 수용하기 위한 공통의 API(Application Programming Interface)가 제공된다. 특히, 블록체인 연결부(12)에는 데이터 전달을 위해 JSON-RPC 또는 Secure JSON-RPC와 같은 API를 포함한다. JSON-RPC는 JSON(Javascript Object Notation)으로 인코딩된 원격 프로시저 호출(Remote Procedure Call:RPC)이다.
대부분의 블록체인 시스템에는 RPC 명령을 처리할 수 있는 체계가 완비되어 있다. 하지만, 블록체인 사이의 명령어는 완벽하게 호환이 되지 않기 때문에 블록체인 연결부(12)에 포함된 API에서는 각 블록체인에서 공통적으로 사용되는 트랜잭션 I/O에 대한 API를 제공한다. 즉 트랜잭션 전송, 수신, 조회와 관련된 기본적인 API를 제공한다. 각 트랜잭션의 데이터 부분에는 스마트 컨트랙트 및 추가적인 정보를 JSON 형태로 인코딩하여 첨부할 수 있다.
SPV(Simple Payment Verification) 노드(20,21,22)는 블록체인 시스템을 구성하는 노드들 중 하나로, 라우팅, 블록체인 데이터베이스, 채굴, 지갑 서비스 등의 기능을 모두 가지고 가장 최신의 전체 블록체인 복사본을 가지고 있어 외부의 참조 없이도 거래검증이 가능한 노드인 풀노드(Full Node)와는 달리 실시간 트랜잭션 처리가 가능한 노드이면서 자신의 지갑 주소와 관련된 내용 외에는 스토리지에 블록을 저장하지 않고, 풀노드와 같이 RPC 커맨트 인터페이스와 같은 복잡한 구조가 없기 때문에 상대적으로 단순한 노드이다. 본 발명에 의한 스마트 컨트랙트 시스템(1)에서의 SPV 노드(20,21,22)는 각각의 블록체인 시스템에 대응하는 노드로, 블록체인 연결부(12)에 기반하여 구성된다.
SPV 노드(20,21,22)에서 사용하는 개인키와 공개키는 보안 문제를 해결하기 위해서 씨드(seed) 값만 암호화해서 디스크에 저장할 수도 있다. 이 경우 매번 SPV 노드(20,21,22)는 별도의 계산 과정을 거쳐서 서명에 사용할 개인키와 공개키를 생성할 수 있다. 사용된 개인키와 공개키는 메모리 상에서 즉시 초기화되어 메모리에 장기 보관하지 않음으로써 개인키가 유출되는 문제를 보완할 수 있다.
마찬가지로 플러그인 방식의 프로그램 해석기 연결부(13)에도 다수의 프로그램 해석기(예를 들어, Python, PHP, Javascript 등을 해석할 수 있는 모듈)를 수용하기 위한 공통의 API가 제공된다. 또한, 프로그램 해석기 연결부(13)에는 데이터 전달을 위해 JSON-RPC 또는 Secure JSON-RPC와 같은 API를 포함한다. 본 발명에 의한 스마트 컨트랙트 시스템(1)에서의 프로그램 해석기(30,31,32)는 스마트 컨트랙트를 해석하여 수행하는 것으로, 프로그램 해석기 연결부(13)에 기반하여 구성된다.
JSON-RPC API를 사용함으로써 프로그램 해석기(30,31,32)는 매우 효과적으로 스마트 컨트랙트 시스템(1) 상에서 특정한 블록체인 노드에 접근할 수도 있다. 즉, JSON-RPC를 이용하여 스마트 컨트랙트 시스템(1) 상에서 블록체인에 직접 접근이 가능할 수도 있기 때문에 스마트 컨트랙트 관리자(VM)(10)를 거쳐서 명령을 전달하지 않고도 빠르게 블록체인 상의 정보에 접근이 가능하고 활용할 수 있다.
마찬가지로 플러그인 방식의 디바이스 제어기 연결부(14)에도 다수의 디바이스 제어기를 수용하기 위한 공통의 API가 제공된다. 또한, 프로그램 해석기 연결부(13)에는 데이터 전달을 위해 JSON-RPC 또는 Secure JSON-RPC와 같은 API를 포함한다. 본 발명에 의한 스마트 컨트랙트 시스템(1)에서의 디바이스 제어기(40,41,42)는 프로그램 해석기(30,31,32)로부터의 디바이스 제어명령을 수행하는 것으로, 디바이스 제어기 연결부(14)에 기반하여 구성된다.
특정한 디바이스 제어부를 제어하기 위해서, 디바이스 제어기 연결부(14)에는 최초에 해당 디바이스 제어기에 맞는 적절한 JSON-RPC 명령어 집합을 구현할 수도 있다. 일반적으로는 디바이스를 제어하기 위한 온도값, 습도값, 동작 범위, 전압값, 전류값, ON/OFF 등의 공통적인 항목에 대해서는 기본적으로 명령어 집합을 제공할 수 있다.
스마트 컨트랙트 관리자(VM)(10)는 각각의 플러그인 방식의 블록체인 연결부(12)와 플러그인 방식의 프로그램 해석기 연결부(13)와 플러그인 방식의 디바이스 제어기 연결부(14) 사이의 정보를 전달해 주는 라우터 역할을 한다. 실제로 구현될 때는, 각 플러그인마다 스레드(thread)가 생성이 되는데, 스마트 컨트랙트 관리자(VM)(10)에서는 새로운 스마트 컨트랙트가 오면, 새로운 스레드(thread)를 만들어서 수행하게 된다.
스마트 컨트랙트 관리자(VM)(10)는 하나 이상의 SPV 노드 중 특정 SPV 노드에 스마트 컨트랙트가 포함된 트랜잭션이 도착하면, 도착된 트랜잭션의 데이터 영역에서 스마트 컨트랙트를 추출한 다음, 추출된 스마트 컨트랙트의 선언부에 기재된 특정 프로그램 해석기를 확인하고, 확인된 특정 프로그램 해석기를 실행하기 위해 쓰레드를 생성하여 스마트 컨트랙트의 프로그램 해석을 요청한다.
이후, 스마트 컨트랙트 관리자(VM)(10)가 프로그램 해석기로부터 스마트 컨트랙트가 해석된 결과를 받아 특정 SPV 노드로 전달하면, 특정 SPV 노드는 결과를 전송할 노드로 가는 트랜잭션을 생성하고, 생성된 트랜잭션에 특정 SPV 노드의 개인키로 서명을 한 다음 특정 SPV 노드가 연결된 블록체인 시스템으로 전송한다.
블록체인(50)의 관리자는 스마트 컨트랙트를 사용하기 전에 블록체인 상의 인증을 위한 권한 부여 기능(grant)과 스마트 컨트랙트 실행에 필요한 토큰을 생성하여 두어야 한다. 권한 부여 명령은 블록체인에 따라서 약간 상이할 수 있으나, 특정한 주소에게만 권한을 부여하는 기능이다. 이 기능은 스마트 컨트랙트를 발송할 수 있는 권한, 스마트 컨트랙트를 실행할 수 있는 권한 등의 부여에 사용할 수도 있다. 권한 검사를 위해서 블록체인 상에 특정한 권한을 포함한 트랜잭션이 사전에 저장되어 있어야 하며, 권한 내용은 hash db에 인덱싱이 되어서 즉시 확인이 가능해야 한다.
만약 블록체인에서 권한 부여(grant) 기능이 제공되지 않는 경우, 씨드 노드와 같은 특정한 주소가 서명한 트랜잭션의 데이터 영역에 권한 내용을 JSON 형태로 저장해 두고, 이를 조회함으로써 권한 부여 기능을 구현할 수도 있다.
하나 이상의 SPV 노드(20,21,22) 중 어느 하나에 스마트 컨트랙트가 포함된 트랜잭션이 도착하면, 스마트 컨트랙트 관리자(VM)(10)는 이를 실시간으로 감지하고 해당 트랜잭션을 보낸 주소에 대하여, 발송 권한이 있는지와 수신 주소에 대한 실행 권한이 있는지를 검사하여 인증한다. 이때, SPV 노드(20,21,22)의 개인키는 블록체인 상에서 트랜잭션의 송수신시 서명과 검증을 하고, 또한 스마트 컨트랙트를 수행하기 위한 토큰을 받기 위한 목적으로 사용할 수도 있다.
스마트 홈에서 스마트 컨트랙트로 가정 내의 기기(전등, 출입문, 가스 밸브 등)를 제어한다고 가정한다. 또한, 101호에 사는 사람은 A, B, C이고, 이들은 모두 101호의 가전기기에 대한 제어권이 있으며, 외부에서 휴대폰으로 제어하고자 한다고 가정한다. 이 경우, 102호에 사는 X라는 사람이 있고, 이 사람이 101호의 가전기기를 제어해서는 안된다.
이것 때문에 기본적으로 사용자 인증이 필요하다. 즉, 해당 스마트 컨트랙트를 보낼 수 있는 권한, 수신할 수 있는 권한, 실행할 수 있는 권한 등이 사람에 따라서 구분되어야 하기 때문이다. 이를 위해 블록체인 관리자는 기본적으로 A, B, C라는 사람은 101호에 접근할 수 있다는 권한을 블록체인 상에 기록을 해 두어야 한다.
그리고 스마트 컨트랙트에 사용하는 토큰은 커스톰 토큰(Custom Token)을 사용한다. 즉, 101호에는 101호에서만 사용 가능한 토큰을 사용해서 스마트 컨트랙트를 보낼 수 있다. 이렇게 하는 이유는, 보안상의 장벽을 만들기 위한 것이다. 위에서 인증을 받기는 하지만, 혹시나 인증이 잘못 부여되는 경우에도 101호에서 사용할 수 있는 토큰이 있어야만 스마트 컨트랙트를 보낼 수 있고, 실행할 수 있다. 당연히 이 커스톰 토큰은 아무나 생성할 수는 없고, 블록체인 관리자가 한정된 수량만 생성해서 101호 사람들(또는 대표)에게 전송해 준다.
이하에서, 도 1,2를 참조하여, 본 발명에 의한 스마트 컨트랙트 시스템(1)에 의한 스마트 컨트랙트 처리 과정을 상세히 설명하기로 한다.
특정한 블록체인의 SPV 노드(SPV 노드 1(20))에서 개인키 및 공개키를 생성한 다음, 해당 블록체인(블록체인 1(50))에 주소를 등록하고, 스마트 컨트랙트를 받을 수 있는 권한을 부여 받는다.
사용자는 블록체인 1(50) 상에서 실행할 수 있는 스마트 컨트랙트를 준비한다(S10). 여기서 사용자가 스마트 컨트랙트를 작성하기 위해 사용한 프로그램 언어는 프로그램 해석기(30,31,32) 중에서 프로그램 해석기 1(30)에 의해 해석될 수 있는 것으로 가정한다.
준비된 스마트 컨트랙트는 블록체인 트랜잭션의 데이터 영역에 인코딩해서 첨부한 후, 개인키로 서명을 한 다음 블록체인 1(50)로 전송한다. 이때 트랜잭션의 수신 주소는 스마트 컨트랙트 시스템(1) 상에 존재하는 블록체인 1(50)의 SPV 노드 1(20)이다. 즉, 블록체인 1(50)의 노드 상에서 SPV 노드 1(20)의 주소로 스마트 컨트랙트가 포함된 트랜잭션에 서명을 한 다음, 블록체인 1(50) 상에 트랜잭션을 전송한다. 이때 트랜잭션을 전송하는 노드가 SPV 노드 1(20)으로 스마트 컨트랙트를 전송할 수 있다는 권한이 블록체인 1(50) 상에 기록되어 있어야 한다. 블록체인 1(50)에서는 스마트 컨트랙트 권한이 없는 경우, 전송을 중지하고 그 트랜잭션을 발송한 노드에 오류를 통보한다. 블록체인 1(50) 상에서 정상적인 트랜잭션으로 판정되면 블록체인 1(50) 상에 트랜잭션을 확산시킨다.
스마트 컨트랙트가 포함된 블록체인 트랜잭션이 SPV 노드 1(20)에 도착하면, 스마트 컨트랙트 관리자(VM)(10)는 즉시 플러그인 블록체인 연결부(12)를 통해 해당 트랜잭션을 전달받는다(S20). 이때 스마트 컨트랙트 관리자(VM)(10)는 새로운 쓰레드를 생성해서 해당 트랜잭션을 처리할 수 있다. 이 과정은 TCP/IP(Transmission Control Protocol/Internet Protocol) 등을 통해서 정해진 프로토콜로 전달이 되는데, 통상 이 프로토콜은 JSON-RPC로 간편하게 구현할 수 있다.
이후, 스마트 컨트랙트 관리자(VM)(10)는 스마트 컨트랙트가 포함된 트랜잭션을 보낸 주소에 대하여, 발송 권한이 있는지와 수신 주소에 대한 실행 권한이 있는지를 검사하여 인증한다. 이 과정은 블록체인 1(50)에 JSON-RPC 명령을 보내서 권한 부여한 내용을 비교함으로써 검사할 수 있다. 또한, 커스톰 토큰(Custom Token)을 사용한 추가적인 인증도 JSON-RPC 명령으로 가능하다.
스마트 컨트랙트 관리자(VM)(10)는 해당 트랜잭션의 데이터 영역을 디코딩하여 스마트 컨트랙트를 추출하고, 추출된 스마트 컨트랙트의 선언부에 기재된 프로그램 해석기의 종류 및 버전을 확인할 수 있다(S30).
또한, 스마트 컨트랙트 관리자(VM)(10)는 스마트 컨트랙트를 JSON-RPC를 사용하여 플러그인 프로그램 해석기 연결부(13)를 통해 상기한 바와 같이 확인된 프로그램 해석기 1(30)로 전달하여 프로그램 해석을 요청한다(S40).
이후, 프로그램 해석기 1(30)는 해당 JSON을 해석해서 스마트 컨트랙트를 추출해서 해석하여 수행한다(S50). 프로그램의 해석은 인터프리터 또는 컴파일 후 바이너리 코드 수행 또는 해당 기기에서 수행되는 바이너리 코드를 사용해서 수행하는 등의 여러 가지 방식으로 처리할 수 있다. 프로그램 해석기의 사용은 해당 블록체인의 특성에 따라서 또는 사용자의 선호도에 따라서 변동될 수 있다.
프로그램 해석기 1(30)에서 프로그램을 수행하면서, 특정한 디바이스를 제어해야 하는 경우, 스마트 컨트랙트 관리자(VM)(10)를 통해서 디바이스 제어기 1(40)로 디바이스 제어 명령을 보낸다. 이때 디바이스 제어 명령에 포함된 디바이스 제어기의 식별자를 확인함으로써 어떤 디바이스 제어기로 제어 명령을 전달할지 확인할 수 있다. 명령의 전달 방식은 공유 메모리나 RPC를 통해서 이루어질 수 있다. 하나 이상의 프로그램 해석기(30,31,32)와 하나 이상의 디바이스 제어기(40,41,42) 사이의 연동은, 스마트 컨트랙트 관리자(VM)(10) 상의 공유 메모리를 통해서 이루어질 수 있다.
디바이스 제어기 1(40)는 제어 명령을 수행해서 해당 디바이스(45)를 제어하거나, 상태 신호를 알아낸다(S55). 제어 명령을 처리한 결과는 다시 프로그램 해석기 1(30)로 전달된다.
프로그램 해석기 1(30)는 수행하면서 상태 정보를 제공하거나 수행이 완료된 경우, 정보 또는 처리 결과를 프로그램 해석기 연결부(13)를 통해 스마트 컨트랙트 관리자(VM)(10)로 전송한다. 스마트 컨트랙트 관리자(VM)(10)는 프로그램 해석기 1(30)에 의해 해석된 결과를 블록체인 연결부(12)를 통해 SPV 노드 1(20)로 전달한다. 그러면, SPV 노드 1(20)은 프로그램 해석기 1(30)에 의해 해석된 결과를 포함하는 트랜잭션을 생성하여 SPV 노드 1(20)의 개인키로 해당 트랜잭션에 서명을 한 후, 블록체인 1(50)으로 전송한다(S60). 여기에서 수신 주소는 스마트 컨트랙트를 발송한 사용자의 주소가 되며, 필요에 따라 스마트 컨트랙트의 선언부에 명시된 별도의 주소로 보낼 수도 있다.
스마트 컨트랙트 관리자(VM)(10)가 전송한 트랜잭션은 최종적으로 사용자가 수신해서 결과를 확인하게 된다.
한편, 상술한 본 발명의 실시예는 개인용 컴퓨터를 포함한 범용 컴퓨터에서 사용되는 매체에 기록될 수 있다. 상기 매체는 마그네틱 기록매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독매체(예를 들면, 씨디롬, 디브이디 등) 및 전기적 기록매체(예를 들면, 플레쉬 메모리, 메모리 스틱 등)와 같은 기록매체를 포함한다.
본 발명에 의하면 하나 이상의 블록체인과 하나 이상의 스마트 컨트랙트 프로그램 해석기가 가상기계(VM) 상에서 연결되어 작동될 수 있다. 선택적으로 VM에 하나 이상의 디바이스 제어기가 연동될 수도 있다. 이 방식은 기존의 스마트 컨트랙트가 가진 특정한 블록체인 종속성, 특정한 컨트랙트 언어 종속성에 제한되지 않는다. 즉, 대부분의 블록체인에서 공통으로 제공되는 RPC를 통해서 플러그인 방식의 API로 결합되기 때문에, 블록체인의 기본 명령어 구조만 호환되면 용이하게 다른 블록체인에도 적용이 가능하다. 또한 범용적인 RPC 방식을 사용하면 스마트 컨트랙트 프로그램 해석기도 간편하게 구성할 수 있다. 즉, 다양한 언어로 스마트 컨트랙트를 해석할 수 있는 모듈이나 기능을 추가만 하면 해석기로 작동할 수 있게 된다. 이 뿐만 아니라 스마트 컨트랙트 프로그램 해석기에서 필요한 경우 다수의 디바이스 제어기를 통해 특정한 디바이스를 제어할 수 있으며, 이것도 VM을 경유하여 RPC로 연결될 수 있다.

Claims (11)

  1. 플러그인 방식의 블록체인 연결부와 플러그인 방식의 프로그램 해석기 연결부를 구비하고 가상기계로 이루어진 스마트 컨트랙트 관리자;
    상기 블록체인 연결부에 기반하여 구성되고, 각각 대응하는 블록체인 시스템에 연결된 하나 이상의 SPV 노드; 및
    상기 프로그램 해석기 연결부에 기반하여 구성된 하나 이상의 프로그램 해석기;를 포함하고,
    하나 이상의 SPV 노드 중 특정 SPV 노드에 스마트 컨트랙트가 포함된 트랜잭션이 도착하면, 상기 스마트 컨트랙트 관리자는 도착된 트랜잭션의 데이터 영역에서 스마트 컨트랙트의 선언부에 기재된 특정 프로그램 해석기를 확인하고, 상기 특정 프로그램 해석기에 스마트 컨트랙트의 프로그램 해석을 요청하고, 해석된 결과를 상기 특정 SPV 노드가 연결된 블록체인 시스템으로 전송하는 것을 특징으로 하는 스마트 컨트랙트 시스템.
  2. 제1항에 있어서, 상기 스마트 컨트랙트 관리자는 플러그인 방식의 디바이스 제어기 연결부를 더 구비하고,
    상기 디바이스 제어기 연결부에 기반하여 구성된 하나 이상의 디바이스 제어기를 더 포함하는 것을 특징으로 하는 스마트 컨트랙트 시스템.
  3. 제2항에 있어서, 상기 스마트 컨트랙트 관리자가 상기 특정 프로그램 해석기로부터 디바이스 제어 명령을 받아 특정 디바이스 제어기로 전달하고, 제어된 결과를 상기 특정 프로그램 해석기로 전달하는 것을 특징으로 하는 스마트 컨트랙트 시스템.
  4. 제2항에 있어서, 상기 블록체인 연결부, 상기 프로그램 해석기 연결부 및 디바이스 제어기 연결부는 각각 JSON-RPC 또는 Secure JSON-RPC에 의해 데이터를 전달하도록 하는 것을 특징으로 하는 스마트 컨트랙트 시스템.
  5. 제1항 또는 제2항에 있어서, 상기 스마트 컨트랙트 관리자는 상기 스마트 컨트랙트가 포함된 트랜잭션을보낸 주소에 대하여, 발송 권한이 있는지와 수신 주소에 대한 실행 권한이 있는지를 검사하는 것을 특징으로 하는 스마트 컨트랙트 시스템.
  6. (a) SPV 노드에 스마트 컨트랙트가 포함된 트랜잭션이 도착하면, 스마트 컨트랙트 관리자가 블록체인 연결부를 통해 상기 트랜잭션을 전달받고, 상기 트랜잭션의 데이터 영역에서 스마트 컨트랙트의 선언부에 기재된 특정 프로그램 해석기를 확인하는 단계;
    (b) 스마트 컨트랙트 관리자가 상기 트랜잭션 또는 상기 트랜잭션에서 추출된 스마트 컨트랙트를 프로그램 해석기 연결부를 통해 상기 특정 프로그램 해석기로 전달하여 스마트 컨트랙트의 프로그램 해석을 요청하는 단계; 및
    (c) 스마트 컨트랙트 관리자가 해석된 결과를 상기 프로그램 해석기 연결부를 통해 상기 특정 프로그램 해석기로부터 전달받아 상기 블록체인 연결부를 통해 상기 SPV 노드로 전달하면, 상기 SPV 노드가 상기 해석된 결과를 포함하는 트랜잭션을 생성하여 상기 SPC 노드가 연결된 블록체인 시스템으로 전송하는 단계;를 포함하는 것을 특징으로 하는 스마트 컨트랙트 처리방법.
  7. 제6항에 있어서,
    (b1) 상기 스마트 컨트랙트 관리자가 상기 특정 프로그램 해석기로부터 디바이스 제어 명령을 받아 디바이스 제어기 연결부를 통해 특정 디바이스 제어기로 전달하고, 제어된 결과를 상기 프로그램 해석기 연결부를 통해 상기 특정 프로그램 해석기로 전달하는 단계;를 더 포함하는 것을 특징으로 하는 스마트 컨트랙트 처리방법.
  8. 제7항에 있어서, 상기 블록체인 연결부, 상기 프로그램 해석기 연결부 및 디바이스 제어기 연결부는 각각 JSON-RPC 또는 Secure JSON-RPC에 의해 데이터를 전달하도록 하는 것을 특징으로 하는 스마트 컨트랙트 처리방법.
  9. 제1항 또는 제2항에 있어서,
    (a1) 상기 스마트 컨트랙트 관리자가 상기 트랜잭션을 보낸 주소에 대하여, 발송 권한이 있는지와 수신 주소에 대한 실행 권한이 있는지를 검사하는 단계;를 더 포함하는 것을 특징으로 하는 스마트 컨트랙트 처리방법.
  10. 제9항에 있어서,커스톰 토큰(Custom Token)을 사용하여 추가적으로 인증하는 것을 특징으로 하는 스마트 컨트랙트 처리방법.
  11. 제6항 내지 제8항 중 어느 한 항의 스마트 컨트랙트 처리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
PCT/KR2019/008810 2018-08-30 2019-07-17 가상기계를 이용한 스마트 컨트랙트 시스템 및 그 처리 방법 WO2020045823A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0102391 2018-08-30
KR1020180102391A KR102116373B1 (ko) 2018-08-30 2018-08-30 가상기계를 이용한 스마트 컨트랙트 시스템 및 그 처리 방법

Publications (1)

Publication Number Publication Date
WO2020045823A1 true WO2020045823A1 (ko) 2020-03-05

Family

ID=69642977

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/008810 WO2020045823A1 (ko) 2018-08-30 2019-07-17 가상기계를 이용한 스마트 컨트랙트 시스템 및 그 처리 방법

Country Status (2)

Country Link
KR (1) KR102116373B1 (ko)
WO (1) WO2020045823A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287034A (zh) * 2020-12-24 2021-01-29 腾讯科技(深圳)有限公司 一种数据同步方法、设备以及计算机可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102288161B1 (ko) * 2020-07-29 2021-08-10 이현석 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템
KR102526406B1 (ko) * 2021-12-03 2023-04-27 에이치닥 테크놀로지 아게 Nft의 대상이 되는 원본 콘텐츠 데이터에 대한 액세스를 관리하는 액세스 관리 시스템 장치 및 그 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017145021A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to An Automated payroll method and system based on smart contracts
JP2017204707A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム
US20180082256A1 (en) * 2016-09-19 2018-03-22 Sap Se Decentralized credentials verification network
WO2018073564A1 (en) * 2016-10-17 2018-04-26 Arm Ltd Blockchain mining using trusted nodes
KR20180085570A (ko) * 2017-01-19 2018-07-27 주식회사 케이티 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
JP2018128723A (ja) * 2017-02-06 2018-08-16 株式会社日立製作所 信用度管理システムおよび信用度管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180068888A (ko) 2016-12-14 2018-06-22 성신여자대학교 산학협력단 스마트 컨트랙트를 이용한 게임 아이템 구매 방법 및 장치
KR101816653B1 (ko) 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
KR101849912B1 (ko) 2017-05-25 2018-04-19 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017145021A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to An Automated payroll method and system based on smart contracts
JP2017204707A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム
US20180082256A1 (en) * 2016-09-19 2018-03-22 Sap Se Decentralized credentials verification network
WO2018073564A1 (en) * 2016-10-17 2018-04-26 Arm Ltd Blockchain mining using trusted nodes
KR20180085570A (ko) * 2017-01-19 2018-07-27 주식회사 케이티 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
JP2018128723A (ja) * 2017-02-06 2018-08-16 株式会社日立製作所 信用度管理システムおよび信用度管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287034A (zh) * 2020-12-24 2021-01-29 腾讯科技(深圳)有限公司 一种数据同步方法、设备以及计算机可读存储介质
CN112287034B (zh) * 2020-12-24 2021-04-02 腾讯科技(深圳)有限公司 一种数据同步方法、设备以及计算机可读存储介质

Also Published As

Publication number Publication date
KR20200026366A (ko) 2020-03-11
KR102116373B1 (ko) 2020-06-03

Similar Documents

Publication Publication Date Title
WO2020045823A1 (ko) 가상기계를 이용한 스마트 컨트랙트 시스템 및 그 처리 방법
CN101331496B (zh) 用于在数据处理系统中将安全信息与信息对象关联起来的系统和方法
US8286223B2 (en) Extensible access control architecture
US20050182958A1 (en) Secure, real-time application execution control system and methods
CN101331494A (zh) 用于对信息流进行授权的系统和方法
CN100574237C (zh) 代理接入方法、控制网络设备以及代理接入系统
CN101331495A (zh) 用于实行信息流策略的引用监控机系统和方法
CN102523089B (zh) 用于批处理系统的第二凭证
WO2013100419A1 (ko) 애플릿 액세스 제어 시스템 및 방법
US9443067B1 (en) System for the distribution and deployment of applications, with provisions for security and policy conformance
CN104025544A (zh) 机密信息泄露防止系统、机密信息泄露防止方法和计算机可读记录介质
WO2017086757A1 (ko) 보안 터널을 이용하여 타겟 장치의 보안을 제어하는 방법 및 장치
KR102184928B1 (ko) 토큰 기반의 통합계정 관리 시스템 및 그 방법
US20140366109A1 (en) Secure messaging facility system
KR101214613B1 (ko) 접속자의 식별 신뢰도를 높인 프록시 기반의 서버 보안방법과 보안시스템
KR101040543B1 (ko) 에스에스에이취 통신환경의 암호화된 데이터 탐지시스템과 탐지방법
WO2021033868A1 (ko) 가변 컴퓨터 파일시스템이 적용된 데이터 저장장치
US8904487B2 (en) Preventing information theft
US6961772B1 (en) Transparent connection type binding by address range
US10594662B2 (en) Method for secure connection from a client computer device to a computer resource
CN113032829B (zh) 多通道并发的文件权限管理方法、装置、服务器和介质
JPH0779243A (ja) ネットワーク接続装置およびネットワーク接続方法
KR101757692B1 (ko) 토큰 서버 인증을 이용한 홈네트워크 기기의 원격 제어 시스템 및 방법
WO2012015099A1 (ko) 일회성 보안토큰을 이용한 웹 서비스 제공 장치 및 방법
KR101319570B1 (ko) 중계장치에 의한 pc와 서버간의 접속 인증 방법, 이를 적용한 중계장치 및 컴퓨터로 읽을 수 있는 기록매체

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

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

Country of ref document: EP

Kind code of ref document: A1