KR101837167B1 - Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same - Google Patents

Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same Download PDF

Info

Publication number
KR101837167B1
KR101837167B1 KR1020160140164A KR20160140164A KR101837167B1 KR 101837167 B1 KR101837167 B1 KR 101837167B1 KR 1020160140164 A KR1020160140164 A KR 1020160140164A KR 20160140164 A KR20160140164 A KR 20160140164A KR 101837167 B1 KR101837167 B1 KR 101837167B1
Authority
KR
South Korea
Prior art keywords
call
hash value
transaction
block chain
issuer
Prior art date
Application number
KR1020160140164A
Other languages
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 주식회사 코인플러그
Priority to KR1020160140164A priority Critical patent/KR101837167B1/en
Priority to PCT/KR2017/011938 priority patent/WO2018080206A1/en
Application granted granted Critical
Publication of KR101837167B1 publication Critical patent/KR101837167B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Abstract

The present invention provides a method and a server, which register information on issuing or paying of currency in a block chain of virtual money to disable copying or forgery/falsification. The method for issuing currency comprises: a step of enabling the server to support to register or to register a currency issuing transaction in a private block chain database when the currency issuing transaction is obtained, and to support to provide or to provide a currency issuing private transaction ID to at least a part of a currency issuer and a currency receiver; and a step of enabling the server to support to register or to register a representative hash value or a value processing the representative hash value in a public block chain database, and to support to obtain or to obtain a currency issuing public transaction ID.

Description

UTXO 기반 프로토콜에서 머클 트리 구조를 사용하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버{METHOD FOR ISSUING AND PAYING MONEY IN USE OF MERKLE TREE STRUCTURE ON THE BASIS OF UNSPENT TRANSACTION OUTPUT PROTOCOL, AND SERVER USING THE SAME}TECHNICAL FIELD The present invention relates to a method of issuing and paying a currency using a merge tree structure in a UTXO based protocol and a server using the method and a server using the method.

UTXO 기반 프로토콜에서 머클 트리 구조를 사용하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버에 관한 것으로, 보다 상세하게는, (a) 통화 발행자로부터의 상기 통화 발행을 위한 (i) 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii)을 서명한 상기 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션이 획득되면, 상기 통화 발행 트랜잭션 및 상기 통화 발행자의 유효 여부를 확인하여 유효일 경우, 상기 통화 발행 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 통화 발행 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 프라이빗 트랜잭션 아이디를 상기 통화 발행자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하고, (b) 소정의 조건이 만족되면, 상기 통화 발행 트랜잭션에 해쉬 함수를 적용하여 생성한 특정 해쉬값 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 방법과 이를 이용하는 서버에 관한 것이며, 더 나아가 특정 사용자가 통화를 지급 결제하는 방법 및 이를 이용하는 서버에 관한 것이다.The present invention relates to a method of issuing and paying a call using a merge tree structure in a UTXO based protocol and a server using the method. More particularly, the present invention relates to a method and apparatus for (a) issuing a call from a call issuer, (ii) the issuance amount of the call, (iii) the public key of the call issuer, and (iv) the signature value of the call issuer that signed the (i), (ii) And when the validity of the call issuance transaction is valid, registering or registering the call issuance transaction in the private block chain database, and when the validity of the call issuance transaction is confirmed, Issuing a currency-issued private transaction ID indicating location information on the private block chain database, (B) if a predetermined condition is satisfied, providing a specific hash value generated by applying a hash function to the call issuance transaction, and at least A representative hash value generated by computing one neighboring hash value or a value obtained by processing the representative hash value is registered or registered in a public block chain database, and the representative hash value or the value of the representative hash value And a server using the method. The present invention also relates to a method for a specific user to pay a call and a server using the method.

일반적으로 통화는 유통 수단이나 지불 수단으로서 기능하는 교환 수단으로, 국가가 공식적으로 지정하여 쓰는 돈, 다시 말해 지불 및 상업적 유통 단위를 뜻한다. 또한, 특정 단체 내에서만 사용되는 특정 교환 수단도 하나의 통화일 수 있을 것이다.In general, currency is a means of exchange functioning as a means of distribution or means of payment, which means the money officially designated and used by the State, in other words the payment and commercial distribution unit. In addition, certain exchange means used only within a particular organization may be a single call.

그리고, 국가 단위에서 볼 경우, 중앙은행은 통화를 발행하거나 관리하며, 시중은행들은 중앙은행에서 발행된 통화를 사용하게 된다.And, at the national level, the central bank issues or manages currency, and commercial banks use the currency issued by the central bank.

이때, 시중은행에서의 은행간 자금 결제는 중앙은행의 결제 시스템을 통해 이루어지며, 실제 현금의 이동을 수반하지는 않는다. 즉, 중앙은행에 개설되어 있는 각 은행들의 계정에서 은행별 결제금액을 입금 또는 출금하는 방식으로 결제가 이루어지고 있다.At this time, interbank financing at commercial banks is done through the central bank's payment system and does not involve the actual transfer of cash. In other words, the payment is made by depositing or withdrawing the payment amount for each bank from the account of each bank opened at the central bank.

그러나, 이러한 결제 시스템에서는 은행의 업무 종료 이후, 중앙은행과 시중은행들은 하루 동안 발생된 자금의 지급 결제에 대하여 매일 정산하여야 하는 불편함이 있다.However, in such a settlement system, there is an inconvenience that the central bank and the commercial banks must settle the settlement payment on a daily basis after the end of the business of the bank.

또한, 정산시 방대한 지급 결제에 대한 자료를 확인하여야 하는 어려움이 있으며, 정산 결과에 오류가 있을 경우 이를 확인하는데 많은 시간이 소요되는 등의 문제점이 있다.In addition, there is a problem that it is difficult to confirm data on a large amount of settlement payment when making a settlement, and there is a problem that it takes much time to check if there is an error in the settlement result.

또한, 결제 시스템의 해킹이나 시중은행의 해킹에 의한 기록 데이터의 복사 또는 위/변조가 발행할 경우 이를 확인하는 데 많은 시간과 노력이 소모되는 등의 문제점이 있다.Further, there is a problem that much time and effort are consumed in confirming when a hacking of a settlement system or copying or up / modulating of recorded data due to hacking of a commercial bank is issued.

본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다. SUMMARY OF THE INVENTION The present invention has been made to solve all the problems described above.

또한, 본 발명은 가상 화폐의 블록체인에 통화의 발행 또는 지급 결제에 대한 정보를 등록하여 복사 또는 위/변조가 불가능하도록 하는 방법 및 서버를 제공하는 것을 다른 목적으로 한다. It is another object of the present invention to provide a method and a server for making it impossible to copy or modify / modulate information by registering information on payment issuance or settlement in a block chain of virtual money.

또한, 본 발명은 통화 발행이나 통화의 지급 결제 등의 정보를 해쉬함수와 암호화 기술을 이용하여 보안이 보장되고 위/변조가 불가능하도록 하는 방법 및 서버를 제공하는 것을 또 다른 목적으로 한다.It is another object of the present invention to provide a method and server for securing security by using a hash function and an encryption technique, and for preventing information from being transmitted / modulated.

또한, 본 발명은 가상 화폐의 블록체인에 통화의 발행이나 지급 결제에 대한 정보를 등록함으로써 통화의 중복 지급 등의 문제점을 미연에 방지할 수 있도록 하는 방법 및 서버를 제공하는 것을 또 다른 목적으로 한다.It is another object of the present invention to provide a method and server for preventing a problem such as duplicate payment by registering information on issuance of a call or payment on a block chain of virtual money .

또한, 본 발명은 중앙은행과 시중은행 간의 정산 절차를 진행하지 않아도 항상 정산된 최신의 정산 정보를 확인할 수 있도록 하는 방법 및 서버를 제공하는 것을 또 다른 목적으로 한다.It is another object of the present invention to provide a method and a server that can always check the latest settlement information that has been settled without proceeding with a settlement procedure between a central bank and a commercial bank.

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.In order to accomplish the above object, a representative structure of the present invention is as follows.

본 발명의 일 실시예에 따르면, 통화를 발행하는 방법에 있어서, (a) 통화 발행자로부터의 상기 통화 발행을 위한 (i) 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii)을 서명한 상기 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션이 획득되면, 서버는, 상기 통화 발행 트랜잭션 및 상기 통화 발행자의 유효 여부를 확인하여 유효일 경우, (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 통화 발행 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 프라이빗 트랜잭션 아이디를 상기 통화 발행자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 단계; 및 (b) 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건임 - 이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method of issuing a call comprising the steps of: (a) issuing a call from a call issuer to (i) call recipient information, (ii) (I), (ii), and (iii) with the private key of the call issuer, the server obtains the call issuance transaction including the signature value of the call issuer that signed the (i), (I) the call recipient information, (ii) the amount of the call issued, (iii) the public key of the call issuer, and (iv) the signature of the call issuer To the private block chain database and to register the call issuing transaction in the private block chain database, The method comprising supporting the chain block group private calls issued private transaction ID that indicates the position information on the issuer database and the call, or to provide service to at least some of the call recipient; And (b) if the predetermined condition is that the predetermined condition is a triggering condition for registering a predetermined hash value in the public block chain database, the server transmits a specific hash value, A hash value generated by applying a hash function to the call issue transaction including the call recipient information, (ii) the issue amount of the call, (iii) the public key of the call issuer, and (iv) And registering or registering a representative hash value generated by calculating at least one neighboring hash value matching the specific hash value or a value obtained by processing the representative hash value in the public block chain database, Of the value obtained by processing the representative hash value or the representative hash value registered in the public block chain database Obtaining or obtaining a call issuing public transaction ID indicating information; Is provided.

또한, 본 발명의 일 실시예에 따르면, 통화의 지급을 결제하는 방법에 있어서, (a) 특정 사용자로부터 상기 통화의 지급 결제를 위한 (i) 이전에 적어도 일부 미사용된 적어도 하나 이상의 제1 통화 사용 프라이빗 트랜잭션 아이디, (ii) 통화 수신자 정보, (iii) 지급 결제 금액, (iv) 상기 특정 사용자의 퍼블릭 키 및 (v) 상기 특정 사용자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii), 상기 (iv)를 서명한 상기 특정 사용자의 서명값을 포함하는 제2 통화 사용 트랜잭션이 획득되면, 서버는, 상기 제2 통화 사용 트랜잭션의 상기 특정 사용자의 발란스를 참조하여 상기 제2 통화 사용 트랜잭션의 지급 결제 방식을 확인하는 단계; (b) (i) 상기 특정 사용자의 발란스가 상기 지급 결제 금액 이상이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "즉시 지급 결제"로 확인되면, 상기 서버는, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하거나, (ii) 상기 특정 사용자의 발란스가 상기 지급 결제 금액 미만이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "지연 지급 결제"로 확인되면, 상기 서버는, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 저장부에 저장한 상태에서, 적어도 하나 이상의 타 사용자에 의해 지급 결제되며 상기 특정 사용자를 수취인으로 하는 적어도 하나 이상의 제3 통화 사용 트랜잭션이 소정의 상계 처리 조건을 만족하면, 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션들을 상계 처리하며, 상계 처리된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디와 제3 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자, 상기 특정 수신자 및 상기 타 사용자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 단계; 및 (c) 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건임 - 이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (1) 상기 제2 통화 사용 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값 또는 (2) 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션에 각각 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 (1) 제2 통화 사용 퍼블릭 트랜잭션 아이디 또는 (2) 제2 통화 사용 퍼블릭 트랜잭션 아이디와 제3 통화 사용 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 단계; 를 포함하는 방법이 제공된다.According to an embodiment of the present invention, there is also provided a method of paying for a call, the method comprising: (a) receiving at least one unused at least one first call prior to (i) (I), (ii), (iii), (iv) the public key of the specific user, and (v) the private key of the specific user. ), And when a second call-enabled transaction including the signature value of the particular user who signed (iv) is obtained, the server refers to the balance of the specific user of the second call- Confirming the payment method of the transaction; (b) when the payment settlement method of the second call use transaction is confirmed as "immediate payment settlement" because the balance of the specific user is equal to or greater than the payment settlement amount, And if it is valid, supports registering or registering the second call-enabled transaction in the private block chain database and indicating the location information on the private block chain database of the second call-enabled transaction registered in the private block chain database To provide or provide a second call-enabled private transaction ID to at least some of said particular user and said call recipient; (ii) If the method is "delayed payment" If it is determined that the signature value of the specific user is valid, the server determines whether or not the signature value of the specific user is valid. If the signature value is valid, the server stores the second call use transaction in the storage unit, Wherein the second currency use transaction and the third currency use transactions are offset when at least one third call use transaction as a payee satisfies a predetermined upper limit processing condition, And a second block, wherein the second block includes a third block, wherein the second block includes a third block, the third block, and the third block. Second call use fry Providing a comb transaction ID and a third call use private transaction ID to at least some of the specific user, the specific recipient, and the other user; And (c) if the predetermined condition is that the predetermined condition is a triggering condition for registering a predetermined hash value in the public block chain database, the server obtains a specific hash value, A hash value generated by applying a hash function to the second call use transaction, or (2) a hash value generated by applying a hash function to each of the second call use transaction and the third call use transaction, A representative hash value generated by calculating at least one neighboring hash value matched with the public block chain database or a value obtained by processing the representative hash value is registered in the public block chain database or registered, The hash value or the positional information on the public block chain database of the value obtained by processing the representative hash value (1) obtaining or obtaining a second call-enabled public transaction ID or (2) a second call-using public transaction ID and a third call-using public transaction ID; Is provided.

또한, 본 발명의 일 실시예에 따르면, 통화를 발행하는 서버에 있어서, 통화 발행자로부터의 상기 통화 발행을 위한 (i) 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii)을 서명한 상기 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션을 획득하는 통신부; 및 상기 획득된 상기 통화 발행 트랜잭션 및 상기 통화 발행자의 유효 여부를 확인하여 유효일 경우, (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 통화 발행 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 통화 발행 프라이빗 트랜잭션 아이디를 상기 통화 발행자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 프로세스, 및 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건임 - 이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 프로세스를 수행하는 프로세서; 를 포함하는 서버가 제공된다.According to an embodiment of the present invention, there is provided a server for issuing a call, comprising: (i) call recipient information for issuing a call from a call issuer; (ii) A communication unit for obtaining a call issuing transaction including a public key and (iv) a signature value of the call issuer that has signed the (i), (ii), and (iii) with the private key of the call issuer; (Iii) the public key of the call issuer; and (iv) the issuer of the call issuer. The method of claim 1, The method of claim 1, further comprising: registering or registering the call publishing transaction including the signature value of the call issuer in a private block chain database; issuing a call indicating a location on the private block chain database of the call publishing transaction registered in the private block chain database A process for providing or providing a private transaction ID to at least a part of the call issuer and the call recipient, and a predetermined condition, the predetermined condition being a triggering condition for registering a predetermined hash value in a public block chain database, If satisfied, The hash value is a hash value that is associated with the call issuer information including (i) the call recipient information, (ii) the issue amount of the call, (iii) the public key of the call issuer, and (iv) A representative hash value generated by calculating a hash value generated by applying a hash function to a transaction and at least one neighbor hash value matched with the specific hash value or a value obtained by processing the representative hash value is stored in the public block chain database And to acquire or obtain a currency issuing public transaction ID indicating position information on the public block chain database of values obtained by processing the representative hash value or the representative hash value registered in the public block chain database A processor for performing a process of: Is provided.

또한, 본 발명의 일 실시예에 따르면, 통화의 지급을 결제하는 서버에 있어서, 특정 사용자로부터 상기 통화의 지급 결제를 위한 (i) 이전에 적어도 일부 미사용된 적어도 하나 이상의 제1 통화 사용 프라이빗 트랜잭션 아이디, (ii) 통화 수신자 정보, (iii) 지급 결제 금액, (iv) 상기 특정 사용자의 퍼블릭 키 및 (v) 상기 특정 사용자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii), 상기 (iv)를 서명한 상기 특정 사용자의 서명값을 포함하는 제2 통화 사용 트랜잭션을 획득하는 통신부: 및 상기 획득된 상기 제2 통화 사용 트랜잭션의 상기 특정 사용자의 발란스를 참조하여 상기 제2 통화 사용 트랜잭션의 지급 결제 방식을 확인하여, 상기 특정 사용자의 발란스가 상기 지급 결제 금액 이상이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "즉시 지급 결제"로 확인되면, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 프로세스, 및 상기 특정 사용자의 발란스가 상기 지급 결제 금액 미만이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "지연 지급 결제"로 확인되면, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 저장부에 저장한 상태에서, 적어도 하나 이상의 타 사용자에 의해 지급 결제되며 상기 특정 사용자를 수취인으로 하는 적어도 하나 이상의 제3 통화 사용 트랜잭션이 소정의 상계 처리 조건을 만족하면, 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션들을 상계 처리하며, 상계 처리된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디와 제3 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자, 상기 특정 수신자 및 상기 타 사용자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 프로세스, 및 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건임 - 이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (1) 상기 제2 통화 사용 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값 또는 (2) 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션에 각각 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 (1) 제2 통화 사용 퍼블릭 트랜잭션 아이디 또는 (2) 제2 통화 사용 퍼블릭 트랜잭션 아이디와 제3 통화 사용 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 프로세스를 수행하는 프로세서; 를 포함하는 서버가 제공된다.According to an embodiment of the present invention, there is provided a server for paying a call, comprising: (i) at least one unused at least one first call-using private transaction ID for payment settlement of a call from a specific user; (i), (ii), (iii), (iii), and (iv) with the private key of the specific user and the private key of the specific user, (ii) a second call usage transaction including a signature value of the particular user who signed the second call usage transaction (iv) The balance of the specific user is equal to or greater than the payment settlement amount, so that the payment settlement method of the second call using transaction is "immediate payment settlement " ", It is determined whether the signature value of the specific user is valid. If the signature value is valid, the second call use transaction is registered or registered in the private block chain database, and the second call use transaction registered in the private block chain database A process of providing or providing a second call-enabled private transaction ID indicating the location on the private block chain database of the usage transaction to at least some of the particular user and the call recipient; , And if the payment settlement method of the second call use transaction is confirmed to be "late payment settlement ", it is determined whether the signature value of the specific user is valid, and if the signature value is valid, , At least If the at least one third-currency-use transaction that is settled by another user or more and satisfies the predetermined offset processing condition satisfies a predetermined upper-level processing condition, the second-currency-use transaction and the third- Wherein the second call-enabled transaction is registered in the private block chain database and the third call-enabled transaction is registered in the private block chain database, A second currency-use private transaction ID and a third currency-use private transaction ID indicating location information on the private block chain database of the use transaction to at least some of the specific user, the specific receiver and the other user A predetermined hash value, and a predetermined hash value, when the predetermined condition is a triggering condition for registering a predetermined hash value in the public block chain database, (2) a hash value generated by applying a hash function to each of the second call use transaction and the third call use transaction, and a hash value generated by applying a hash function to the second call use transaction, A representative hash value generated by computing at least one neighboring hash value or a value obtained by processing the representative hash value is registered or registered in the public block chain database, and the representative hash value Or the position of the value obtained by processing the representative hash value on the public block chain database (1) a second call-enabled public transaction ID or (2) a second call-enabled public transaction ID and a third call-enabled public transaction ID; Is provided.

이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition, a computer readable recording medium for recording a computer program for executing the method of the present invention is further provided.

본 발명에 의하면, 다음과 같은 효과가 있다.The present invention has the following effects.

본 발명은 가상 화폐의 블록체인에 통화의 발행 및 지급 결제 정보를 등록하여 복사 또는 위/변조가 불가능하도록 하여 통화의 발행 및 지급 결제 정보에 대한 신뢰성 및 보안성을 향상시킬 수 있다. According to the present invention, the issuance of the currency and payment / settlement information are registered in the block chain of the virtual currency, making it impossible to copy or modulate the currency, thereby improving the reliability and security of the issuance of the currency and the payment information.

또한, 본 발명은 통화의 발행 및 지급 결제 정보를 해쉬함수와 암호화 기술을 이용하여 보안이 보장되고 위/변조가 불가능하도록 하여 통화의 발행 및 지급 결제 정보에 대한 신뢰성 및 보안성을 향상시킬 수 있다.Further, according to the present invention, the issuance and settlement information of a call can be secured by using a hash function and an encryption technique, and it is possible to prevent a call from being made up / modulated, thereby improving the reliability and security of issuance of a call and payment information .

또한, 본 발명은 가상 화폐의 블록체인에 통화의 발행 및 지급 결제에 대한 정보를 등록함으로써 통화의 중복 지급 등의 문제점을 미연에 방지할 수 있게 된다.Further, according to the present invention, information on issuance of a call and payment on a block chain of a virtual currency is registered, thereby preventing problems such as duplication of a call.

또한, 본 발명은 중앙은행과 시중은행 간의 정산 절차를 진행하지 않아도 항상 정산된 최신의 정산 정보를 확인할 수 함으로써 사용자들의 편의성을 향상시킬 수 있다.In addition, the present invention can improve the convenience of users by checking the latest settled settlement information at all times without proceeding to the settlement procedure between the central bank and the commercial bank.

도 1은 본 발명의 일 실시예에 따라 통화를 발행하는 서버를 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따라 통화를 발행하는 방법을 개략적으로 도시한 것이고,
도 3과 도 4는 본 발명의 일 실시예에 따른 통화 발행 트랜잭션을 퍼블릭 블록체인 데이터베이스에 등록하는 과정을 개략적으로 도시한 것이고,
도 5는 본 발명의 일 실시예에 따른 통화를 발행하는 방법에서 통화를 발행하는 통화 발행자를 등록하는 방법을 개략적으로 도시한 것이고,
도 6은 본 발명의 일 실시예에 따라 통화를 지급 결제하는 방법을 개략적으로 도시한 것이다.
1 schematically shows a server for issuing a call according to an embodiment of the present invention,
2 schematically illustrates a method of issuing a call according to an embodiment of the present invention,
3 and 4 schematically illustrate a process of registering a call issue transaction in a public block chain database according to an embodiment of the present invention,
FIG. 5 is a diagram schematically illustrating a method of registering a call issuer issuing a call in a method of issuing a call according to an embodiment of the present invention,
FIG. 6 schematically shows a method of paying and paying a call according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the present invention.

도 1은 본 발명의 일 실시예에 따라 통화를 발행하는 서버를 개략적으로 도시한 것으로, 서버(100)는 통신부(110)와 프로세서(120)를 포함할 수 있다. 동일한 참조 부호를 이용하여 나타낸 것은 설명의 편의를 위한 것일 뿐, 이들 개별 장치들이 동일하다는 의미로 의도된 것은 아니다. 그리고, 본 발명의 다른 실시예에서의 방법은 서버를 상이하게 구성하여 해당 방법을 수행하거나 동일한 서버(100)를 통해 해당 방법을 수행할 수도 있다.FIG. 1 schematically illustrates a server for issuing a call according to an embodiment of the present invention. The server 100 may include a communication unit 110 and a processor 120. The use of the same reference numerals is for convenience of explanation only and is not intended to mean that these individual devices are the same. In another embodiment of the present invention, the server may be configured differently to perform the corresponding method, or may perform the corresponding method through the same server 100.

구체적으로, 서버(100)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.In particular, the server 100 typically includes a computing device (e.g., a computer processor, memory, storage, input and output devices, and other devices capable of including components of a conventional computing device; (E.g., an electronic information storage system such as a network attached storage (NAS) and a storage area network (SAN)) and computer software (i.e., instructions that cause a computing device to function in a particular manner) ≪ / RTI >

이와 같은 컴퓨팅 장치의 통신부(110)는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit 110 of such a computing device can send and receive requests and responses to and from other interworking computing devices. As an example, such requests and responses can be made by the same TCP session, For example, as a UDP datagram.

또한, 컴퓨팅 장치의 프로세서(120)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.The processor 120 of the computing device may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, and a data bus. It may further include a software configuration of an operating system and an application that performs a specific purpose.

먼저, 도 2를 참조하여 본 발명의 일 실시예에 따른 통화를 발행하는 방법을 도 1의 서버를 통해 설명하면 다음과 같다.Referring to FIG. 2, a method of issuing a call according to an exemplary embodiment of the present invention will now be described with reference to FIG. 1.

특정 국가의 중앙은행이나 특정 단체의 통화 관리 주체 등을 포함하는 통화 발행자(A)가 통화를 발행하기 위하여 통화 발행 트랜잭션(TrxA)을 단말을 통해 생성하여 전송하면(S100), 서버(100)는 통신부(110)를 통해 통화 발행 트랜잭션(TrxA)를 획득하게 된다.When a currency issuer A including a central bank of a specific country or a currency management subject of a specific organization generates and transmits a currency issue transaction TrxA through a terminal to issue a currency at step S100, And acquires the call issue transaction TrxA through the communication unit 110. [

이때, 통화 발행 트랜잭션(TrxA)은 (i) 통화의 수신자 정보, (ii) 통화의 발행량, (iii) 통화 발행자의 퍼블릭 키(public key) 및 (iv) 통화 발행자의 프라이빗 키(private key)로 (i) 통화의 수신자 정보, (ii) 통화의 발행량, (iii) 통화 발행자의 퍼블릭 키를 서명한 통화 발행자의 서명값을 포함할 수 있다. 그리고, 통화의 수신자 정보는 발행되는 통화의 수신자에 대한 정보로 통화 사용자로 등록된 특정 사용자의 퍼블릭 키 일 수 있으며, 통화 수신자의 퍼블릭 키와 통화 발행자의 퍼블릭 키는 사전에 서버(100)에 등록된 것이거나, 필요에 따라 해당 시점에 서버(100)에 등록할 수도 있으며, 등록 정보는 프라이빗 키와 퍼블릭 키를 가진 발행자 또는 사용자가 자신의 퍼블릭 키를 서버(100)에 등록한 것으로, 이에 대한 설명은 다른 동작에서 설명한다. 또한, 통화 발행자(A)는 통화 수신자(B)에 대한 정보로서 통화 수신자(B)의 퍼블릭 키를 사전에 가지고 있을 수 있다.At this time, the currency issuing transaction TrxA is configured to receive the call issuer information of (i) the call recipient information, (ii) the issue amount of the currency, (iii) the public key of the call issuer, and (iv) (i) the recipient information of the call, (ii) the issue amount of the call, and (iii) the signature value of the call issuer who signed the public key of the call issuer. The recipient information of the call may be a public key of a specific user registered as a call user as information on the recipient of the issued call, and the public key of the call recipient and the public key of the call issuer may be registered in advance in the server 100 The registration information may be registered by the issuer or the user having the private key and the public key registered in the server 100 as their own public key, Are described in other operations. The call issuer A may previously have the public key of the call recipient B as information on the call recipient B,

그리고, 일 예로, 통화 발행 트랜잭션(TrxA)은 1. 지급 결제 방식, 2. 이전의 트랜잭션 아이디, 3. 수신자, 4. 발행 금액, 5. 발행자 퍼블릭 키, 6. 발행자 서명값의 데이터 포맷을 가질 수 있으나, 반드시 이에 한정되는 것은 아니다.For example, the currency issue transaction (TrxA) has a data format of 1. payment settlement method, 2. previous transaction ID, 3. recipient, 4. issuance amount, 5. issuer public key, 6. issuer signature value But is not limited thereto.

이때, “1. 결제 방식”은 “즉시 지급 결제”와 “지연 지급 결제”를 포함할 수 있으며, “즉시 지급 결제”는 통화 관련 트랜잭션을 바로 처리하도록 하는 것이고 “지연 지급 결제”는 소정의 조건이 만족할 때까지 통화 관련 트랜잭션의 처리를 지연하는 것일 수 있다. 일 예로, “지연 지급 결제”는 지급을 위한 금액이 부족할 경우 유동성 문제를 해결하기 위하여 자신의 발란스보다 많은 금액에 대한 지급 결제를 할 경우 이후 자신이 수취하는 금액들과 상계 처리할 수 있도록 하는 것이다. 하지만, 통화의 발행자는 새로운 통화를 발생시키는 기관 또는 이에 준하는 당사자이므로 통화의 발행에서는 “지연 지급 결제”가 발생되지 않으므로 “즉시 지급 결제”가 디폴트로 설정되거나, 통화 발행 트랜잭션에 지급 결제 방식에 대한 데이터 포맷을 포함하지 않도록 할 수도 있다. 그리고, “2. 이전의 트랜잭션 아이디”는 해당 발행자 또는 사용자의 발란스에 대한 정보를 포함하는 것으로 통화와 관련하여 이전에 생성 또는 거래된 트랜잭션이 등록된 프라이빗 블록체인 데이터베이스 또는 퍼블릭 블록체인 데이터베이스 상위 위치 정보를 나타내는 프라이빗 트랜잭션 아이디 또는 퍼블릭 트랜잭션 아이디로, 통화의 발행에서는 새로운 통화의 생성이므로 이전의 트랜잭션 아이디는 없을 수 있다. 또한, “3. 수신자”는 발행되는 통화를 수신할 통화 수신자의 퍼블릭 키(PubB)일 수 있으며, “4. 발행 금액”은 발행하고자 하는 통화량일 수 있으며, “5. 발행자 퍼블릭 키”는 발행자가 등록한 퍼블릭 키(PubA)일 수 있으며, “6. 발행자 서명값”은 통화 발행자가 프라이빗 키로 서명한 1, 2, 3, 4, 5의 서명값(SigPrivA(1, 2, 3, 4, 5))일 수 있다.At this time, "1. Payment method "may include" immediate payment "and" delayed payment ", where the" immediate payment "is to process the currency transaction immediately and the" delayed payment " It may be to delay processing of the associated transaction. For example, "delayed payment" means that if you make a payment for more than your balance in order to resolve the liquidity problem if you do not have enough money to pay, you can offset the amount you receive afterwards . However, since the issuer of the currency is the agency issuing the new currency or the equivalent party, the issuance of the currency does not result in a "delayed payment settlement" and therefore the "immediate payment settlement" is set as the default or the " Data format may not be included. And, "2. The previous transaction ID " includes information on the balance of the issuer or the user, and includes a private block chain database in which transactions previously generated or traded in association with the currency are registered, or a private transaction ID Or a public transaction ID, the issuance of the currency may generate a new currency and thus may not have a previous transaction ID. Also, " 3. Recipient " may be the public key (PubB) of the recipient of the call to receive the issued call, and " 4. Issuing amount "may be the amount of money to be issued, and" 5. Issuer public key " may be a public key PubA registered by the issuer, and " 6. Issuer signature value " may be a signature value (SigPrivA (1, 2, 3, 4, 5)) of 1, 2, 3, 4, 5 signed by the issuer with a private key.

그러면, 서버(100)의 프로세서(120)는 통신부(110)를 통해 획득된 (i) 통화 수신자 정보, (ii) 통화의 발행량, (iii) 통화 발행자의 퍼블릭 키 및 (iv) 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션(TrxA)와 통화 발행자의 유효 여부를 확인한다(S110). 이때, 서버(100)의 프로세서(120)는 통화 발행 트랜잭션(TrxA)의 데이터 포맷의 유효 여부, 통화 수신자의 유효 여부, 통화 발행자의 퍼블릭 키의 유효 여부 및 통화 발행자의 서명값의 유효 여부를 확인하여 통화 발행 트랜잭션(TrxA)의 유효 여부를 확인하게 된다. 일 예로, 통화 발행자(A)의 서명값에 대해 통화 발행자의 퍼블릭 키를 사용하여 획득한 통화 수신자, 통화 발행자의 퍼블릭 키가 통화 발행 트랜잭션(TrxA)에 포함된 값과 일치하는 지를 확인하여 통화 수신자 및 통화 발행자의 퍼블릭 키에 대한 유효 여부를 확인할 수 있다. 또한, 통화 발행자의 서명값을 통화 발행자의 퍼블릭 키를 사용하여 검증함으로써 통화 발행자의 서명값에 대한 유효 여부를 확인할 수 있을 뿐만 아니라, 통화 발행자의 퍼블릭 키를 통해 유효한 통화 발행자인지를 확인할 수 있다.Then, the processor 120 of the server 100 determines whether or not the caller information acquired through the communication unit 110, (ii) the issue amount of the call, (iii) the public key of the call issuer, and (iv) And the validity of the call issuer (S110). At this time, the processor 120 of the server 100 confirms whether the data format of the currency issue transaction TrxA is valid, whether the call receiver is valid, whether the public key of the call issuer is valid, and whether the signature value of the call issuer is valid And confirms the validity of the currency issue transaction (TrxA). As an example, it is confirmed whether the public key of the call receiver and the call issuer acquired by using the public key of the call issuer with respect to the signature value of the call issuer A matches the value included in the call issuance transaction (TrxA) And the validity of the public key of the call issuer. In addition, the signature value of the call issuer can be verified by using the public key of the call issuer, so that the validity of the signature value of the call issuer can be verified, and it is possible to confirm whether or not the call issuer is a valid call issuer through the public key of the call issuer.

그리고, 서버(100)는 확인 결과(S110) 유효한 것으로 판단되면(S210), (i) 통화 수신자 정보, (ii) 통화의 발행량, (iii) 통화 발행자의 퍼블릭 키 및 (iv) 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션(TrxA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고(S211), 프라이빗 블록체인 데이터베이스에 등록된 통화 발행 트랜잭션(TrxA)의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 프라이빗 트랜잭션 아이디(PrivTxid)를 통화 발행자(A) 및 통화 수신자(B) 중 적어도 일부에게 제공하거나 제공하도록 지원할 수 있다(S212, S213). 하지만, 서버(100)는 확인 결과(S110) 유효가 아니면(S220), 통화 발행자(A)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S221). 다만, 본 발명은 아래에서 언급할 퍼블릭 블록체인 데이터베이스(120)에 등록하는 것이 필수적인 것이고 프라이빗 블록체인 데이터베이스에 등록하는 것이 필수적인 것은 아닐 수도 있을 것이다.If it is determined that the confirmation result (S110) is valid (S210), the server 100 determines whether or not the validity of the call issuer, the call issuer information, the issuance amount of the call, (iii) (S211) to register or register in the private block chain database (S211) a currency issuing transaction (TrxA) including the value of the currency issuing transaction (TrxA) (S212, S213) to provide or provide the issuing private transaction ID (PrivTxid) to at least some of the call issuer (A) and the call receiver (B). However, if the confirmation result (S110) is not valid (S220), the server 100 may support to provide or provide a response indicating failure including the error message to the call issuer A (S221). However, it is essential that the present invention is registered in the public block chain database 120, which will be described later, and it may not be essential to register in the private block chain database.

한편, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건, 일 예로 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건이 만족되면(S230), (i) 통화 수신자 정보, (ii) 통화의 발행량, (iii) 통화 발행자의 퍼블릭 키 및 (iv) 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션(TrxA)에 해쉬 함수를 적용하여 생성한 특정 해쉬값(hash(TrxA)) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 머클 루트로 생성하고(S231), 생성된 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원하며(S232), 퍼블릭 블록체인 데이터베이스(120)에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값인 머클 루트의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 퍼블릭 트랜잭션 아이디(Txid)를 획득하거나 획득하도록 지원할 수 있다(S233). 이때, 서버(100)는 통화 발행 퍼블릭 트랜잭션 아이디(Txid)에 대응되는 OP 메시지를 퍼블릭 블록체인 데이터베이스(200)로부터 획득할 수도 있다.If the triggering condition for registering a predetermined hash value in the public block chain database is satisfied (S230), the server 100 determines (i) the call recipient information, ( a hash value (hash (TrxA)) generated by applying a hash function to a call issuing transaction (TrxA) including the issuance amount of the call, ii) the amount of issued currency, (iii) the public key of the call issuer, and A value obtained by processing a representative hash value or a representative hash value by computing at least one neighbor hash value matching the specific hash value is generated as a much route (S231), and the representative hash value or the representative hash value, which is the generated muffle root, is processed (S232), and stores the representative hash value or the representative hash value registered in the public block chain database 120 in the public block chain database 120 To obtain or obtain a call issuing public transaction ID (Txid) indicating location information on the public block chain database (S233). At this time, the server 100 may obtain the OP message corresponding to the call issuing public transaction ID (Txid) from the public block chain database 200. [

그리고, 특정 해쉬값과 적어도 하나의 이웃 해쉬값과의 연산은 다양한 해쉬 함수에 의해 수행될 수 있으며, 해쉬함수는 MD4 함수, MD5 함수, SHA-0 함수, SHA-1 함수, SHA-224 함수, SHA-256 함수, SHA-384 함수, SHA-512 함수 및 HAS-160 함수를 포함할 수 있으나, 이에 한정되지 않음은 통상의 기술자가 알 수 있을 것이다. 예를 들어 Triple SHA256도 가능할 것이다.The hash function may be an MD4 function, an MD5 function, a SHA-0 function, a SHA-1 function, a SHA-224 function, A SHA-256 function, an SHA-384 function, a SHA-512 function, and a HAS-160 function. For example, Triple SHA256 would be possible.

이때, 서버(100)는 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다. 이 경우, 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다.At this time, the server 100 may store and manage a specific hash value and at least one neighbor hash value in a predetermined data structure. Here, the data structure may be various, for example, a merkle tree structure. In this case, the calculation of a particular hash value and at least one neighbor hash value can be done through a merkle tree.

즉, 서버(100)는 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 소정의 조건이 만족되면, 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다.That is, the server 100 may support to generate or generate a merkle tree that a particular hash value is assigned to a particular leaf node, and if the predetermined condition is satisfied, at least one other leaf It is possible to register or register a value obtained by processing a representative hash value or a representative hash value, which is a merge root generated by computing a hash value assigned to a node, in the public block chain database 120. [

좀 더 구체적으로 설명하면, (x1) 서버(100)는, (i) 특정 해쉬값과 (ii) 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 연산값에 대한 해쉬값을 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 부모 노드가 머클 트리의 루트 노드이면, 부모 노드에 할당된 해쉬값이 대표 해쉬값이 된다. (x3) 반면, 부모 노드가 머클 트리의 루트 노드가 아니면, 서버(100)는, 부모 노드에 할당된 해쉬값을 특정 해쉬값으로 하여 (x1) 내지 (x3)를 반복하여 수행한다.More specifically, (x1) server 100 supports to calculate or calculate a hash value assigned to (i) a particular hash value and (ii) a sibling node of a node to which a particular hash value is assigned, You can support assigning or assigning a hash value for a value to a node's parent node. (x2) If the parent node is the root node of the merge tree, the hash value assigned to the parent node is the representative hash value. (x3). On the other hand, if the parent node is not the root node of the merge tree, the server 100 repeats (x1) to (x3) with the hash value assigned to the parent node as a specific hash value.

그리고, 서버(100)는 최종적으로 머클 트리의 루트 노드에 할당된 해쉬값을 대표 해쉬값으로서 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원한다. 이때, 대표 해쉬값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해쉬값에 hex 연산이 수행된 결과값이 등록될 수도 있다. Then, the server 100 finally registers the hash value assigned to the root node of the merge tree as a representative hash value in the public block chain database 120 or supports registration. At this time, a value obtained by processing the representative hash value may be registered. For example, a result obtained by performing a hex operation on a representative hash value may be registered.

한편, 서버(100)가 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다.Meanwhile, when the server 100 stores a specific hash value and at least one neighbor hash value in a predetermined first data structure and then stores and manages a second data structure of the same type as the first data structure, The data structure and the second data structure may be concatenated in a chain form.

특히, 상술한 예에서와 같이 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해쉬값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.In particular, if the first data structure and the second data structure are merc trees as in the above example, the root value of the first data structure or the hash value of the root value may be assigned to the first leaf node of the second data structure .

또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀 더 보장될 수 있다. 제2 데이터 구조의 검증에 대해서는 후술하기로 한다. Further, when the second data structure is generated, verification of the first data structure is performed, so that data integrity can be further ensured. Verification of the second data structure will be described later.

또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 서버(100)에 의해 최초로 부여된 입력 메시지의 해쉬값이 할당될 수 있다. In addition, in the case of the first one of the at least one merch tree connected in a chain form, the first leaf node of the first merch tree may be assigned a hash value or a processed value of predetermined message data composed of text, numbers, or symbols have. For example, a hash value of an input message initially assigned by the server 100 when generating a merge tree can be assigned.

도 3 및 도 4는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.FIG. 3 and FIG. 4 are views showing examples of a merge tree generated according to an embodiment of the present invention.

도 3에서는 리프 노드의 개수가 4개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h0 노드에는 소정의 메시지 데이터의 해쉬값 (sha256(coinplug_unique_message))이 할당되었음을 알 수 있다. 기록 데이터에 대한 등록 요청(즉, 메신저 서비스 송수신 데이터에 관한 기록 요청)이 있는 경우, 서버(100)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 3의 머클 트리에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 상태에서 새로운 리프 노드를 생성하여야 하는 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값(sha256(input2))을 할당할 수 있다. 또한, 서버(100)는 (i) h2 노드에 할당된 특정 해쉬값과 (ii) h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 상기 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 서버(100)는 h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 서버(100)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다. FIG. 3 shows a merge tree having four leaf nodes. Since the illustrated merge tree is the first merge tree (tree_id = 0), it can be seen that a hash value (sha256 (coinplug_unique_message)) of a predetermined message data is assigned to the first leaf node h0. When there is a registration request for write data (i.e., a write request related to messenger service transmission / reception data), the server 100 generates a next leaf node of the last leaf node of the currently configured MUCLE tree, Supports assignment or assignment of processed values. For example, if a new leaf node needs to be created in a state where the value assignment from the merge tree to the h1 node as the second leaf node is completed, a h2 node, which is a next leaf node, is generated to process a specific hash value or a specific hash value One value (sha256 (input2)) can be assigned. The server 100 may also support computing or computing (i) a particular hash value assigned to the h2 node and (ii) a hash value assigned to the h3 node, which is a sibling node of the h2 node. The hash value for the computed value is assigned to the h2 node and the parent node (h23 node) of the h3 node. Since the parent node (h23 node) is not the root node of the merge tree, the server 100 can repeat the above process with the hash value assigned to the h23 node as a specific hash value. That is, the hash value assigned to the h23 node is set as a specific hash value, and the hash value assigned to the h23 node and the hash value assigned to the h01 node are calculated and assigned to the h23 node and the parent node (h0123 node) of the h01 node have. At this time, since the h0123 node is the root node of the merge tree, the server 100 registers or registers the value (hex (h {node_index})) obtained by processing the hash value assigned to the node h0123 in the public block chain database 120 .

한편, 전술한 소정의 조건이란, (i) 소정의 개수만큼 통화와 관련한 트랜잭션이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 프라이빗 블록체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다. 이때, 통화와 관련한 트랜잭션은 통화의 발행에 더하여 후술할 발행자 등록, 통화의 지급 결제, 사용자 등록 등을 포함할 수 있다. (Ii) a condition that a predetermined time elapses; (iii) a condition in which a block is generated in a private block chain; (iv) a condition in which a transaction is generated by a predetermined number of And < RTI ID = 0.0 > a < / RTI > service characteristic. At this time, the transaction related to the call may include issuer registration, payment settlement of currency, user registration, etc., in addition to issuance of the currency.

한편, 예를 들어, 복수의 통화 관련 트랜잭션이 머클 트리의 리프 노드 수만큼 획득되면 머클 트리를 생성하고, 머클 트리의 루트값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다.Meanwhile, for example, when a plurality of call related transactions are obtained for the number of leaf nodes of the merge tree, a merge tree may be created, and the root value of the merge tree may be registered or registered in the public block chain database 120.

또한, 서버(100)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 서버(100)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다. In addition, the server 100 can generate the root value of the aforementioned mu tree at predetermined time intervals (condition (ii) above). In this case, the server 100 may generate a merge tree using the input values up to that time and register or register the root value of the merge tree in the public block chain database 120 when a predetermined time has elapsed.

그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해쉬값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 서버(100)는, 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 서버(100)는 특정 해쉬값을 복제하여 형제 노드에 할당하거나 할당하도록 지원할 수 있다.In this case, although a predetermined time has elapsed, a value may not be assigned to a sibling node of a node to which a particular hash value of the merge tree is assigned. If the hash value is not allocated to the sibling node of the node to which the specific hash value is assigned even though the predetermined condition is satisfied, the server 100 supports to assign or assign a predetermined hash value to the sibling node, The root value of the merge tree can be calculated. For example, the server 100 may support to replicate and allocate or assign a particular hash value to a sibling node.

그리고, 서비스 특성이란, 통화 발행 요청을 한 통화 발행자가 제공한 비용 정보, 통화 발행 트랜잭션 등록이 이루어지는 시간대 정보, 통화 발행 트랜잭션 등록 서비스가 이루어지는 지역 정보, 통화 발행 트랜잭션 등록 요청을 한 회사 타입 정보 중 적어도 일부가 될 수 있다. 다만, 여기서 기재한 것에 한정할 것은 아니고, 통상적으로 인정되는 차등적 서비스가 제공될 수 있는 다양한 조건 정보를 포함한다. The service characteristic includes at least one of cost information provided by the issuer of the call issuance request, time zone information in which the call issuance transaction registration is performed, region information in which the call issuance transaction registration service is performed, It can be a part. However, the present invention is not limited to the one described here, but includes various condition information in which a generally accepted differential service can be provided.

한편, 새로운 머클 트리 생성이 시작되고, 통화 발행 트랜잭션이 없는 상태에서 소정의 조건이 만족되면, 서버(120)는, 소정의 메시지 데이터가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 머클 트리의 루트값 또는 이를 가공한 값을 퍼블릭 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수도 있는 것이다.On the other hand, when a new merge tree generation is started and a predetermined condition is satisfied in the absence of a call issuing transaction, the server 120 generates a merge tree in which predetermined message data is allocated to the first leaf node and the second leaf node And supports to register or register the route value of the merge tree or the processed value in the public block chain database 120. [ In this case, a merge tree with two leaf nodes may be created.

한편, 전술한 것처럼 서버(100)가 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해쉬값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.Meanwhile, as described above, when the server 100 stores a specific hash value and at least one neighbor hash value in a predetermined first data structure and then stores and manages a second data structure of the same type as the first data structure , The first data structure and the second data structure may be connected in a chain form. In particular, if the first data structure and the second data structure are merc trees, the root value of the first data structure or the hash value of the root value may be assigned to the first leaf node of the second data structure.

도 4는 본 발명의 일 실시예에 따라 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.4 is a diagram illustrating a merge tree generated as a second data structure according to an embodiment of the present invention.

도 4를 참조하면, 도 3의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(sha256(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다.Referring to FIG. 4, it can be seen that the root value (hex (h0123)) of the merge tree (tree_id = 0) of FIG. 3 is assigned to the first leaf node (h4 node) of the new merge tree (sha256 (input4)). The present invention has an advantage of improving data integrity by enabling easy tracking even when data is modulated in the middle by connecting a plurality of data structures generated at the time of occurrence of a transaction.

다음으로, 도 5를 참조하여 통화 발행자(A)를 등록하는 과정을 설명하면 다음과 같다.Next, a process of registering the call issuer A will be described with reference to FIG.

통화 발행자(A)의 퍼블릭 키(PubA)에 의한 발행자 등록 요청이 획득되면(S300), 서버(100)는, 통화 발행자(A)의 유효 여부를 확인하여 통화 발행자(A)가 유효할 경우(S310), 랜덤 논스(random nonce)(RN)를 통화 발행자(A)에게 전달하거나 전달하도록 지원할 수 있다(S311). 그리고, 통화 발행자(A)가 유효하지 않을 경우(S320), 일 예로 타인의 명의를 도용한 사람일 경우, 서버(100)는 통화 발행자(A)에게 발행자 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S321). 다만, 발행자(A)가 유효한지 판단하기 위한 방법은 이에 한정되지 않으며, 가령 타임스탬프 등을 이용하여 발행자(A)의 유효성을 판단할 수도 있을 것이다. 참고로, 아래에서는 랜덤 논스를 이용하여 유효성을 판단하는 것으로 예를 들어 설명한다.When the issuer registration request by the public key PubA of the call issuer A is obtained S300, the server 100 confirms the validity of the call issuer A, and when the issuer A is valid S310) and may support delivery or delivery of the random nonce (RN) to the call issuer A (S311). If the call issuer A is not valid (S320), for example, if the person is a person who has stolen the name of another person, the server 100 provides the call issuer A with a response indicating the issuer identification failure (S321). However, the method for determining whether the issuer A is valid is not limited to this, and the validity of the issuer A may be determined using a time stamp, for example. For reference, an example will be described below in which validity is judged by using random nonce.

통화 발행자(A)가 단말에서 프라이빗 키(PrivA)와 퍼블릭 키(PubA)를 생성한 상태에서, 통화를 발행하기 위한 발행자로 등록하기 위하여 퍼블릭 키(PubA)를 서버(100)로 전송하면, 서버(100)는 획득되는 퍼블릭 키의 통화 발행자(A)가 유효한지를 확인한다. 이때, 통화 발행자(A)의 유효 여부는 공개 키 기반(PKI: Public Key Infrastructure) 인증서를 이용하거나 통화 발행자(A)의 신분 증명 정보를 이용할 수 있으나, 이에 한정되는 것은 아니다. 일 예로, 공개 키 기반 인증서인 공인인증서, OPSign 인증서 등을 통해 특정 발행자를 확인하거나, 주민 번호, 여권, 법인 등록 번호, 사업자 등록 번호 등과 같이 개인, 은행 또는 단체의 신분을 증명할 수 있는 신분 증명 정보를 통해 통화 발행자를 확인할 수 있다.When the call issuer A transmits the public key PubA to the server 100 in order to register the issuer for issuing the call with the private key PrivA and the public key PubA created in the terminal, (100) confirms that the call issuer (A) of the obtained public key is valid. At this time, the validity of the call issuer A may be determined by using a public key infrastructure (PKI) certificate or by using the identification information of the call issuer A, but the present invention is not limited thereto. For example, it is possible to identify a specific issuer through a public key-based certificate, an OPSign certificate, or the like, or to provide identification information that can prove the identity of an individual, a bank or an organization such as a resident registration number, a passport, To identify the call issuer.

이후, 랜덤 논스(RN)를 통화 발행자(A)의 프라이빗 키로 서명한 랜덤 논스 서명값(SigPrivA(RN))이 획득되면(S312), 서버(100)는, 랜덤 논스 서명값이 정상적으로 서명되었는지를 통화 발행자(A)의 퍼블릭 키를 사용하여 검증한다. 즉, 서버(100)는 통화 발행자의 퍼블릭 키를 사용하여 랜덤 논스 서명값으로부터 랜덤 논스(RN)를 확인하고, 확인된 랜덤 논스(RN)가 통화 발행자에게 전달된 랜덤 논스(RN)와 일치하는지를 확인하여 일치할 경우 유효한 서명인 것으로 검증한다.Thereafter, when the random non-signature value SigPrivA (RN) obtained by signing the random number RN with the private key of the call issuer A is obtained (S312), the server 100 determines whether the random non- And verifies using the public key of the call issuer A. [ That is, the server 100 confirms the random nonce (RN) from the random nonce signature value using the public key of the call issuer, and determines whether the confirmed random nonce (RN) matches the random nonce (RN) If it matches, it verifies that it is a valid signature.

그리고, 서버(100)는 통화 발행자(A)로부터 획득된 서명값이 유효한 것일 경우(S330), 랜덤 논스, 랜덤 논스 서명값 및 통화 발행자의 퍼블릭 키를 포함하는 발행자 등록 트랜잭션(RN, SigPrivA(RN), PubA)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S331), 프라이빗 블록체인 데이터베이스에 등록된 발행자 등록 트랜잭션의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 발행자 등록 프라이빗 트랜잭션 아이디(PrivTxid)를 포함하는 등록이 성공했음을 나타내는 응답을 통화 발행자(A)에게 제공하거나 제공하도록 지원할 수 있다(S332).If the signature value obtained from the call issuer A is valid (S330), the server 100 transmits an issuer registration transaction RN, SigPrivA (RN (RN), RNN ), PubA) to the private block chain database (S331), and includes an issuer-registered private transaction ID (PrivTxid) indicating the location information on the private block chain database of the issuer registration transaction registered in the private block chain database (S332) to provide or provide a response to the call issuer A indicating that the registration is successful.

그러나, 서버(100)는 통화 발행자(A)로부터 획득된 서명값이 유효하지 않을 경우(S340), 통화 발행자(A)에게 서명값 확인 실패를 나타내는 메시지를 포함하는 응답을 제공하거나 제공하도록 지원할 수 있다(S341).However, the server 100 may assist the call issuer A to provide or provide a response including a message indicating a failure to verify the signature value when the signature value obtained from the call issuer A is not valid (S340) (S341).

또한, 서버(100)는 통화 발행자의 서명값이 유효한 경우, 소정의 조건, 일 예로 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건이 만족되면(S350), 랜덤 논스, 랜덤 논스 서명값 및 통화 발행자의 퍼블릭 키를 포함하는 발행자 등록 트랜잭션에 해쉬 함수를 적용하여 생성한 특정 해쉬값(hash(RN, SigPrivA(RN), PubA)) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 머클 루트로 생성하고(S351), 생성된 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S352), 퍼블릭 블록체인 데이터베이스(120)에 등록된 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스(120) 상의 위치 정보를 나타내는 발행자 등록 퍼블릭 트랜잭션 아이디(Txid)를 획득하거나 획득하도록 지원할 수 있다(S352). 이때, 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값은 도 2에서의 설명에서와 같이 머클 트리에 의해 생성될 수 있다. 그리고, 서버(100)는 발행자 등록 퍼블릭 트랜잭션 아이디(Txid)에 대응되는 OP 메시지를 퍼블릭 블록체인 데이터베이스(200)로부터 획득할 수도 있다.If the triggering condition for registering a predetermined hash value in the public block chain database is satisfied (S350), the server 100 determines whether the signature value of the call issuer is valid or not based on the randomness, (Hash (RN, SigPrivA (RN), PubA) generated by applying a hash function to the issuer registration transaction including the value of the public key of the issuer and the public key of the issuer, and at least one neighboring hash value (S351). A value obtained by processing the representative hash value or the representative hash value, which is the generated merge root, is registered in the public block chain database (S352). A public block chain having a value obtained by processing a representative hash value or a representative hash value, which is a merge root registered in the public block chain database 120 (S352) to obtain or obtain an issuer-registered public transaction ID (Txid) indicating location information on the database 120. [ At this time, the value obtained by processing the representative hash value or the representative hash value, which is the merge root, can be generated by the merge tree as shown in FIG. The server 100 may acquire the OP message corresponding to the publisher registered public transaction ID (Txid) from the public block chain database 200. [

다음으로, 도 6을 참조하여 본 발명의 일 실시예에 따른 통화의 지급을 결제하는 방법을 설명하면 다음과 같다. 다음의 설명에서 도 2의 본 발명의 일 실시예에 따른 통화를 발행하는 방법에서와 유사한 부분은 도 2의 설명으로부터 이해 가능하므로 상세한 설명을 생략한다.Next, a method of paying a call according to an embodiment of the present invention will be described with reference to FIG. In the following description, a portion similar to the method of issuing a call according to the embodiment of the present invention shown in Fig. 2 can be understood from the description of Fig. 2, and a detailed description thereof will be omitted.

통화의 지급을 결제하기 위하여, 특정 사용자(C)로부터 통화의 지급 결제를 위한 제2 통화 사용 트랜잭션(TrxC)이 특정 사용자(C)의 단말로부터 송신되면 서버(100)는 이를 통신부(110)를 통해 수신한다(S400).When a second call transaction TrxC for payment of a call from a specific user C is transmitted from a terminal of a specific user C to settle the payment of the call, the server 100 transmits the second call transaction TrxC to the communication unit 110 (S400).

이때, 제2 통화 사용 트랜잭션(TrxC)은 (i) 이전에 적어도 일부 미사용된 적어도 하나 이상의 제1 통화 사용 트랜잭션 아이디, (ii) 통화 수신자 정보, (iii) 지급 결제 금액, (iv) 특정 사용자의 퍼블릭 키 및 (v) 특정 사용자의 프라이빗 키로 (i) 이전에 적어도 일부 미사용된 적어도 하나 이상의 제1 통화 사용 트랜잭션 아이디, (ii) 통화 수신자 정보, (iii) 지급 결제 금액, (iv) 특정 사용자의 퍼블릭 키를 서명한 특정 사용자의 서명값을 포함할 수 있다. 그리고, 이전에 적어도 일부 미사용된 적어도 하나 이상의 제1 통화 사용 트랜잭션 아이디는 통화 발행자나 타 사용자들로부터 특정 사용자가 수취한 지급 결제에 대하여 사용 금액이 남은 통화 관련 트랜잭션으로, 특정 사용자(c)가 소유한 모든 제1 통화 사용 트랜잭션의 미사용 금액을 합한 금액은 특정 사용자의 현재 발란스일 수 있다. 그리고, 통화 수신자 정보는 지급 결제되는 통화의 수신자에 대한 정보로 통화 사용자로 등록된 사용자들 중 지급 결제되는 통화를 수취하는 통화 수신자의 퍼블릭 키 일 수 있으며, 통화 수신자의 퍼블릭 키와 특정 사용자(C)의 퍼블릭 키는 사전에 서버(100)에 등록된 것이거나, 필요에 따라 해당 시점에 서버(100)에 등록할 수도 있으며, 등록 정보는 프라이빗 키와 퍼블릭 키를 가진 발행자 또는 사용자가 자신의 퍼블릭 키를 서버(100)에 등록한 것으로, 이에 대한 설명은 다른 동작에서 설명한다. 또한, 특정 사용자(C)는 통화 수신자에 대한 정보로서 통화 수신자의 퍼블릭 키를 사전에 가지고 있을 수 있다.At this time, the second call use transaction TrxC includes at least one unused at least one first call use transaction ID, (ii) call recipient information, (iii) payment amount, (iv) (Ii) a call recipient information; (iii) a payment payment amount; (iv) a specific user's private key; (i) And may include the signature value of a particular user who signed the public key. At least one of the at least one unused at least one transaction-use transaction ID previously used is a currency-related transaction in which a usage amount is left for payment payment received from a currency issuer or other users by a specific user. The sum of the unused amounts of all the first call-enabled transactions may be the current balance of a particular user. The call recipient information may be the public key of the call recipient who receives the payment to be paid among the users who are registered as the call user as the information on the recipient of the paid-out call. The public key of the call recipient and the specific user C May be registered in the server 100 in advance or may be registered in the server 100 at the time when necessary, and the registration information may be issued by an issuer or a user having a private key and a public key, The key is registered in the server 100, and a description thereof will be given in another operation. Also, the specific user C may have the public key of the call recipient in advance as information on the call recipient.

그리고, 일 예로, 제2 통화 사용 트랜잭션(TrxC)은 1. 지급 결제 방식, 2. 제1 통화 사용 트랜잭션 아이디, 3. 수신자, 4. 사용 금액, 5. 잔금, 6. 잔금 소유자 정보, 7. 특정 사용자의 퍼블릭 키, 8. 특정 사용자의 서명값을 포함하는 데이터 포맷을 가질 수 있다.For example, the second call transaction (TrxC) includes: 1. payment settlement method; 2. transaction ID used for the first call; 3. recipient; 4. usage amount; 5. balance; 6. balance owner information; A public key of a particular user, and a signature value of a particular user.

이때, “1. 결제 방식”은 “즉시 지급 결제”와 “지연 지급 결제”를 포함할 수 있으며, “즉시 지급 결제”는 통화 관련 트랜잭션을 바로 처리하도록 하는 것이고 “지연 지급 결제”는 소정의 조건이 만족할 때까지 통화 관련 트랜잭션의 처리를 지연하는 것일 수 있다. 일 예로, “지연 지급 결제”는 지급을 위한 금액이 부족할 경우 유동성 문제를 해결하기 위하여 자신의 발란스보다 많은 금액에 대한 지급 결제를 할 경우 이후 자신이 수취하는 금액들과 상계 처리할 수 있도록 하는 것이다. 그리고, “2. 제1 통화 사용 트랜잭션 아이디”는 특정 사용자(C)의 발란스에 대한 정보를 포함하는 것으로 통화와 관련하여 이전에 수취한 통화 사용 트랜잭션이 등록된 프라이빗 블록체인 데이터베이스 또는 퍼블릭 블록체인 데이터베이스 상위 위치 정보를 나타내는 프라이빗 트랜잭션 아이디 또는 퍼블릭 트랜잭션 아이디로, 통화의 발행자 또는 타 사용자들로부터 지급 결제 받은 통화 사용 트랜잭션 및 일부 미사용된 금액을 포함하는 통화 사용 트랜잭션의 정보에 관한 것일 수 있으며, 특정 사용자(C)가 소유한 모든 제1 통화 사용 트랜잭션의 잔금을 합한 금액은 현재 특정 사용자(C)가 소유한 발란스가 될 수 있다. 또한, “3. 수신자”는 지급 결제되는 통화를 수취할 통화 수신자의 퍼블릭 키(PubB)일 수 있으며, “4. 사용 금액”은 지급 결제하고자 하는 금액일 수 있으며, “5. 잔금”은 특정 사용자(C)의 발란스에서 지급 결제 이후 남는 금액으로 지급 결제에 의해 잔금이 없거나 부(-)의 값을 가질 수도 있으며, “6. 잔금 소유자 정보”는 “5. 잔금”에 대한 소유자 정보로 본 실시예에서는 특정 사용자(C)의 퍼블릭 키로 잔금이 없을 경우 정보가 없을 수도 있으며, “7. 특정 사용자의 퍼블릭 키”는 지금 결제를 하려고 하는 특정 사용자(C)의 퍼블릭 키일 수 있으며, “8. 특정 사용자의 서명값”은 특정 사용자(C)가 프라이빗 키로 서명한 1, 2, 3, 4, 5, 6, 7의 서명값(SigPrivC(1, 2, 3, 4, 5, 6, 7))일 수 있다.At this time, "1. Payment method "may include" immediate payment "and" delayed payment ", where the" immediate payment "is to process the currency transaction immediately and the" delayed payment " It may be to delay processing of the associated transaction. For example, "delayed payment" means that if you make a payment for more than your balance in order to resolve the liquidity problem if you do not have enough money to pay, you can offset the amount you receive afterwards . And, "2. Quot; first call use transaction ID " includes information on the balance of the specific user (C), and indicates a private block chain database or a public block chain database upper position information registered in the previously used currency use transaction A private transaction ID, or a public transaction ID, which is related to the information of the currency use transaction including the currency use transaction and the unused amount, which is paid by the issuer or other users of the currency, The balance of all the first call usage transactions may be the balance currently owned by the particular user C. [ Also, " 3. Recipient " may be the public key (PubB) of the recipient of the call to receive the payment, and " 4. The amount used may be the amount you wish to pay for, and "5. Balance "is the amount remaining after the payment in the balance of the specific user (C), and may have no balance or negative value due to the settlement of payment. The balance owner information is "5. In the present embodiment, there may be no information when there is no balance with the public key of the specific user C, and " 7. Public key of the specific user " may be the public key of the specific user C who is going to make a payment now, and " 8. SigPrivC (1, 2, 3, 4, 5, 6, 7) signature values of 1, 2, 3, 4, 5, 6, 7 signed by a particular user C with a private key, ).

그러면, 서버(100)는 특정 사용자(C)의 발란스를 참조하여 제2 통화 사용 트랜잭션의 지급 결제 방식을 확인한다. 이때, 특정 사용자(C)가 소유한 발란스가 지급 결제 금액 이상이면 “즉시 지급 결제”로 확인하며, 특정 사용자(C)가 소유한 발란스가 지급 결제 금액 미만이면 “지연 지급 결제”로 확인할 수 있다. 또한, 제2 통화 사용 트랜잭션에 포함된 지급 결제 방식에 따라 “즉시 지급 결제”와 “지연 지급 결제”로 확인할 수 있으며, 특히 제2 통화 사용 트랜잭션에 포함된 지급 결제 방식에는 “즉시 지급 결제”로 입력되었지만 특정 사용자(C)가 소유한 발란스가 지급 결제 미만일 경우에는 “지연 지급 결제”로 판단할 수 있다.Then, the server 100 refers to the balance of the specific user C to check the payment settlement method of the second call use transaction. At this time, if the balance owned by the specific user (C) is equal to or greater than the payment settlement amount, it is confirmed as "immediate payment settlement". If the balance owned by the specific user (C) is less than the payment settlement amount, . In addition, it can be confirmed as "immediate settlement payment" and "delayed payment settlement" according to the payment settlement method included in the second call use transaction. In particular, the payment settlement method included in the second currency use transaction is referred to as "immediate payment settlement" If the balance entered by a particular user (C) is less than the payment settlement, it can be determined as "delayed payment settlement".

이때, 제2 통화 사용 트랜잭션(TrxC)가 “즉시 지급 결제”로 확인되면(S410), 서버(100)는 제2 통화 사용 트랜잭션(TrxC)의 특정 사용자(C)의 서명값이 유효한지를 판단하여 유효일 경우(S430), 제2 통화 사용 트랜잭션(TrxC)을 프라이빗 블록체인 데이터베이스에 등록하고(S431), 프라이빗 블록체인 데이터베이스에 등록된 제2 통화 사용 트랜잭션(TrxC)의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디(PrivTxid)를 특정 사용자(C) 및 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원할 수 있다(S432). 하지만, 서버(100)는 확인 결과 유효한 서명값이 아니면(S440), 특정 사용자(C)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S441).At this time, if the second call use transaction TrxC is confirmed as " immediate payment " (S410), the server 100 determines whether the signature value of the specific user C in the second call use transaction TrxC is valid If it is valid (S430), the second call use transaction TrxC is registered in the private block chain database (S431) and position information on the private block chain database of the second call use transaction TrxC registered in the private block chain database (PrivTxid) indicating that the second call is to be used to provide or provide the second currency-use private transaction ID (PrivTxid) to at least some of the specific user (C) and the call recipient (S432). However, the server 100 may support to provide or provide a response indicating failure including the error message to the specific user C (S441) if the verification result is not a valid signature value (S440).

또한, 서버(100)는 유효한 확인 결과에 대응하여, 소정의 조건, 일 예로 트리거링 조건이 만족되면(S450), 제2 통화 사용 트랜잭션(TrxC)에 해쉬 함수를 적용하여 생성한 특정 해쉬값(hash(TrxC)) 및 특정 해쉬값과 매칭되는 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 머클 루트로 생성하고(S451), 생성된 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(200)에 등록하거나 등록하도록 지원하며(S452), 퍼블릭 블록체인 데이터베이스(200)에 등록된 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 퍼블릭 트랜잭션 아이디(Txid)를 획득하거나 획득하도록 지원할 수 있다(S453). 이때, 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값은 도 2에서의 설명에서와 같이 머클 트리에 의해 생성될 수 있다. 그리고, 서버(100)는 제2 통화 사용 퍼블릭 트랜잭션 아이디(Txid)에 대응되는 OP 메시지를 퍼블릭 블록체인 데이터베이스(200)로부터 획득할 수도 있다.If the triggering condition is satisfied under a predetermined condition, for example, S450, the server 100 generates a specific hash value (hash) generated by applying a hash function to the second call use transaction TrxC (TrxC)) and a neighboring hash value matched with a specific hash value to generate a value obtained by machining a representative hash value or a representative hash value (S451), and generates a representative hash value or a representative hash value (Step S452). In step S452, the public block chain database 200 stores the processed value in the public block chain database 200 (step S452). The public block chain database 200 stores the representative hash value To acquire or obtain a second call-enabled public transaction ID (Txid) indicating location information on the chain database (S453). At this time, the value obtained by processing the representative hash value or the representative hash value, which is the merge root, can be generated by the merge tree as shown in FIG. The server 100 may obtain the OP message corresponding to the second call use public transaction ID (Txid) from the public block chain database 200.

이와는 달리, 제2 통화 사용 트랜잭션(TrxC)가 “지연 지급 결제”로 확인되면(S420), 서버(100)는 제2 통화 사용 트랜잭션(TrxC)의 특정 사용자(C)의 서명값이 유효한지를 판단하여 유효일 경우(S470), 제2 통화 사용 트랜잭션(TrxC)을 네팅(netting) 데이터베이스, 저장부, 메모리 등의 기록 장치에 저장한다(S471). 하지만, 서버(100)는 확인 결과 유효한 서명값이 아니면(S480), 특정 사용자(C)에게 에러 메시지를 포함하는 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다(S481).On the other hand, when the second call use transaction TrxC is confirmed as " delayed payment " (S420), the server 100 determines whether the signature value of the specific user C in the second call use transaction TrxC is valid (S470) and stores the second call transaction (TrxC) in a recording device such as a netting database, a storage unit, a memory, or the like (S471). However, if the verification result is not a valid signature value (S480), the server 100 may support to provide or provide a response indicating failure including the error message to the specific user (S481).

그리고, 제2 통화 사용 트랜잭션(TrxC)을 저장 장치에 저장한 상태에서, 적어도 하나 이상의 타 사용자(D)에 의해 지급 결제되며 특정 사용자(C)를 수취인으로 하는 적어도 하나 이상의 제3 통화 사용 트랜잭션(TrxD)이 획득되면(S472), 서버(100)는 획득되는 제3 통화 사용 트랜잭션(TrxD)과 제2 통화 사용 트랜잭션(TrxC)이 상계 조건을 만족하는 지를 확인한다. 이때, 제3 통화 사용 트랜잭션(TrxD)은 특정 사용자(C)를 수취인으로 하되 '지연 지급 결제"로 저장 장치에 저장된 통화 사용 트랜잭션일 수 있으며, 이 경우 서버(100)는 "지연 지급 결제"로 저장된 제3 통화 사용 트랜잭션(TrxD)이 상계 처리되면 이에 대응하여 제2 통화 사용 트랜잭션(TrxC)에 대한 상계 처리를 수행할 수 있다. 또한, 서버(100)는 상계 조건으로, 제3 통화 사용 트랜잭션(TrxD)이 획득될 경우 상계 처리를 수행하며, 상계 처리에 의해 특정 사용자(C)의 발란스가 "0" 이상의 값을 가지는 지를 판단한다. Then, in a state where the second call use transaction (TrxC) is stored in the storage device, at least one or more third call use transactions (hereinafter referred to as " TrxD is obtained (S472), the server 100 confirms whether the acquired third call-enabled transaction TrxD and the second call-enabled transaction TrxC satisfy the upper-limit condition. At this time, the third call use transaction (TrxD) may be a call use transaction stored in the storage device as a payee of the specific user (C) as a "delayed payment". In this case, The server 100 can perform the offset processing for the second call use transaction TrxC in response to the offset processing of the stored third call use transaction TrxD. (TrxD) is obtained, it is determined whether or not the balance of the specific user (C) has a value of "0" or more by the upper-order processing.

한편, 획득된 제3 통화 사용 트랜잭션(TrxD)에 의해 상계 조건을 만족하지 않으면(S500), 서버(100)는 획득된 제3 통화 사용 트랜잭션(TrxD)을 기록 매체에 저장하고, 다른 제3 통화 사용 트랜잭션이 획득되기를 기다린다(S501).On the other hand, if the offset condition is not satisfied by the acquired third call transaction TrxD (S500), the server 100 stores the acquired third call transaction TrxD on the recording medium, And waits for the used transaction to be acquired (S501).

이러한 상태에서, 적어도 하나 이상의 제3 통화 사용 트랜잭션(TrxD)에 의해 상계 조건을 만족하면(S490), 즉, 다수의 제3 통화 사용 트랜잭션(TrxD)에 의해 수취할 금액이 제2 통화 사용 트랜잭션(TrxC)에 의해 지급할 금액보다 많아질 경우 또는 다수의 제3 통화 사용 트랜잭션(TrxD)에 의해 수취할 금액과 제2 특정 사용자(C)의 발란스의 합산 금액이 제2 통화 사용 트랜잭션(TrxC)에 의해 지급할 금액보다 많아질 경우, 서버(100)는 제2 통화 사용 트랜잭션(TrxC)과 적어도 하나 이상의 제3 통화 사용 트랜잭션(TrxD)을 상계 처리한다. 이때, 다수의 제3 통화 트랜잭션(TrxD)은 특정 타 사용자에 의해 생성된 다수의 통화 트랜잭션, 다수의 타 사용자에 의해 생성된 다수의 통화 트랜잭션, 또는 다수의 타 사용자에 의해 다수로 생성되되 각각의 타 사용자에 의해 다수 개로 생성된 통화 트랜잭션 일 수 있다.In this state, if the offsetting condition is satisfied by at least one third call-enabled transaction TrxD (S490), that is, the amount to be received by the plurality of third call-enabled transactions TrxD is the second call- TrxC) or the sum of the amount of money to be received by the third currency use transaction (TrxD) and the balance of the second specific user (C) exceeds the amount to be paid by the second currency use transaction TrxC The server 100 processes the second call use transaction TrxC and at least one or more third call use transactions TrxD. At this time, a plurality of third currency transactions TrxD are generated by a plurality of currency transactions generated by a specific other user, a plurality of currency transactions generated by a plurality of other users, or a plurality of other users, Or may be a currency transaction created by a number of other users.

또한, 특정 사용자(C)와 다수의 타 사용자들이 각각 "지연 지급 결제"로 된 통화 사용 트랜잭션의 지급자인 사용자와 수취인으로 연결되어 순환 고리를 형성할 경우, 서버(100)는 특정 사용자(C)와 다수의 타 사용자들 간의 "지연 지급 결제"로 순환 고리를 형성하며 연결된 모든 통화 사용 트랜잭션을 상계 처리할 수 있다. 물론, "지연 지급 결제"로 확인되는 임의의 통화 사용 트랜잭션이 다른 통화 사용 트랜잭션과의 지급 결제 금액 차이에 의해 상계 조건을 만족하지 않을 경우에는 임의의 통화 사용 트랜잭션의 상계 처리 조건, 즉, 또 다른 통화 사용 트랜잭션에 의해 임의의 통화 사용 트랜잭션이 상계 처리 조건을 만족하면, 서버(100)는 순환 고리를 형성하는 "지연 지급 결제"인 모든 통화 사용 트랙잭션을 상계 처리할 수 있다.In addition, when a specific user C and a plurality of other users are connected to a payee and a recipient of a currency use transaction of "late payment settlement" respectively to form a circulation loop, And "delay payment settlement" among a plurality of other users, and can process all the connected currency transactions. Of course, if any currency-using transaction identified as "deferred payment" does not satisfy the offsetting condition due to the difference in payment settlement amount with another currency-using transaction, the offsetting condition of any currency-using transaction, When an arbitrary currency-using transaction satisfies the upper-level processing condition by the currency-using transaction, the server 100 can offset all the call-using transactions that are "delayed payment"

일 예로, 사용자A는 사용자B에게 "지연 지급 결제"로 통화 사용 트랜잭션A를 생성하며, 사용자B는 사용자C에게 "지연 지급 결제"로 통화 사용 트랜잭션B를 생성하며, 사용자C는 사용자D에게 "지연 지급 결제"로 통화 사용 트랜잭션C를 생성하며, 사용자D는 사용자A에게 "지연 지급 결제"로 통화 사용 트랜잭션D를 생성하여 사용자A, 사용자B, 사용자C, 및 사용자D 사이에 서로 지급자와 수취인으로 하는 순환 고리가 형성될 경우, 서버(100)는 사용자A, 사용자B, 사용자C 및 사용자D에 의해 생성된 통화 사용 트랜잭션A, 통화 사용 트랜잭션B, 통화 사용 트랜잭션C 및 통화 사용 트랜잭션D를 상계 처리할 수 있다. 물론, "지연 지급 결제"인 각각의 통화 사용 트랜잭션에서의 지급 결제 금액이 일치하여야 하는 조건이 만족되어야 하며, 만약 지급 결제 금액들이 일치하지 않을 경우에는 "지연 지급 결제"인 각각의 통화 사용 트랜잭션이 또 다른 통화 사용 트랜잭션에 의해 상계 처리 조건을 만족하여 순화 고리 형태를 이루는 각각의 "지연 지급 결제"인 통화 사용 트랜잭션이 상계 처리 조건을 만족하면 상계 처리를 수행할 수 있다.As an example, the user A creates a call-using transaction A as a "delayed payment" to the user B, the user B creates a call-using transaction B as a "delayed payment" to the user C, Delayed payment ", and the user D generates a currency-use transaction D as the" delayed payment "to the user A, so that the user A, the user B, the user C, In the case where the circulating loop as the payee is formed, the server 100 transmits the call use transaction A, the call use transaction B, the call use transaction C, and the call use transaction D generated by the user A, the user B, the user C and the user D It is possible to perform an offset process. Of course, the condition that the settlement payment amounts in the respective currency use transactions of "delayed payment settlement" must be met, and if the settlement payment amounts do not match, each currency use transaction of "delayed payment settlement" The uplink processing can be performed when each of the " late payment settlement ", that is, the currency use transaction satisfying the upper limit processing condition and satisfying the upper limit processing condition by another currency use transaction satisfies the upper limit processing condition.

그리고, 서버(100)는 상계 처리된 제2 통화 사용 트랜잭션(TrxC)과 적어도 하나 이상의 제3 통화 사용 트랜잭션(TrxD)을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며(S491), 프라이빗 블록체인 데이터베이스에 등록된 제2 통화 사용 트랜잭션(TrxC)과 적어도 하나 이상의 제3 통화 사용 트랜잭션(TrxD)의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디(PrivTxid)와 제3 통화 사용 프라이빗 트랜잭션 아이디(PrivTxid)를 특정 사용자(C), 통화 수신자, 및 적어도 하나 이상의 타 사용자(D) 중 적어도 일부에게 제공하거나 제공하도록 지원할 수 있다(S492, S493). 이때, 기록 매체에 저장된 정보, 즉, 제2 통화 사용 트랜잭션(TrxC)과 획득된 적어도 하나 이상의 제3 통화 사용 트랜잭션(TrxD)은 삭제할 수 있다.The server 100 supports registering or registering the second call use transaction TrxC and the at least one third call use transaction TrxD in the private block chain database at step S491, (PrivTxid) indicating the location information on the private block chain database of at least one or more third call use transaction (TrxD) registered in the second call use transaction (TrxC) and the third call use private transaction (S492, S493) to provide or provide the ID (PrivTxid) to at least some of the specific user (C), the call recipient, and at least one or more other users (D). At this time, information stored in the recording medium, that is, the second call use transaction TrxC and the acquired at least one third call use transaction TrxD can be deleted.

또한, 서버(100)는 제2 통화 사용 트랜잭션(TrxC)과 적어도 하나 이상의 제3 통화 사용 트랜잭션(TrxD)의 상계 처리에 대응하여, 소정의 조건, 일 예로 트리거링 조건이 만족되면(S510) 상계 처리된 제2 통화 사용 트랜잭션에 해쉬 함수를 적용하여 생성한 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 머클 루트로 생성하여(S511), 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원한다(S512). 또한, 서버(100)는 상계 처리된 적어도 하나 이상의 제3 통화 사용 트랜잭션 각각에 해쉬 함수를 적용하여 생성한 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 머클 루트로 생성하여(S511), 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다(S512). 즉, 서버(100)는 상계 처리된 모든 통화 사용 트랜잭션에 대한 정보를 퍼블릭 블록체인 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다.If the triggering condition is satisfied under a predetermined condition, for example, at step S510, the server 100 determines whether or not the second call use transaction (TrxC) A representative hash value generated by calculating a specific hash value generated by applying a hash function to the second call use transaction and at least one neighbor hash value matched with the specified hash value, or a value obtained by processing the representative hash value, (S511), and supports registration or registration in the public block chain database (S512). Also, the server 100 may generate a hash value by applying a hash function to each of the at least one third call-enabled transaction that has undergone the offset process, and at least one neighbor hash value matching the specific hash value, Value or the value obtained by processing the representative hash value may be generated as a muckrout (S511), and registered or registered in the public block chain database (S512). That is, the server 100 can support registration or registration of information on all the currency-used transactions that have been processed in the public block chain database 200.

그리고, 서버(100)는 퍼블릭 블록체인 데이터베이스에 등록된 제2 통화 사용 트랜잭션에 대응하는 머클 루트 및 적어도 하나 이상의 제3 통화 사용 트랜잭션 각각에 대응하는 머클 루트의 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 퍼블릭 트랜잭션 아이디(Txid)와 적어도 하나 이상의 제3 통화 사용 퍼블릭 트랜잭션 아이디(Txid)를 획득하거나 획득하도록 지원할 수 있다(S513). 이때, 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값은 도 2에서의 설명에서와 같이 머클 트리에 의해 생성될 수 있다. 그리고, 서버(100)는 제2 통화 사용 퍼블릭 트랜잭션 아이디(Txid)와 제3 통화 사용 퍼블릭 트랜잭션 아이디(Txid)에 각각 대응되는 OP 메시지를 퍼블릭 블록체인 데이터베이스(200)로부터 획득할 수 있다.Then, the server 100 obtains the information indicating the location information on the public block chain database of the muckrout corresponding to each of the muckle route corresponding to the second call using transaction registered in the public block chain database and each of the at least one third call using transaction (Step S513) to acquire or obtain at least one call-using public transaction ID (Txid) and at least one or more third call-using public transaction ID (Txid). At this time, the value obtained by processing the representative hash value or the representative hash value, which is the merge root, can be generated by the merge tree as shown in FIG. The server 100 may obtain the OP message corresponding to the second call use public transaction ID (Txid) and the third call use public transaction ID (Txid) from the public block chain database 200, respectively.

그리고, 서버(100)가 통화 사용자인 특정 사용자를 등록하는 과정을 설명하면 다음과 같다. 특정 사용자의 등록 또한 도 5에서의 통화 발행자의 등록과 같은 방법을 수행하는 것으로 유사한 부분은 도 5에서의 설명으로 이해 가능하므로 생략한다.A process of registering a specific user who is a call user will be described below. The registration of the specific user also performs the same method as the registration of the call issuer in FIG. 5, and a similar portion is omitted because it can be understood by the description in FIG.

특정 사용자(C)의 퍼블릭 키에 의한 사용자 등록 요청이 획득되면, 서버(100)는, 특정 사용자(C)의 유효 여부를 확인하여 특정 사용자(C)가 유효할 경우 랜덤 논스를 특정 사용자(C)에게 전달하거나 전달하도록 지원할 수 있다. 그리고, 특정 사용자(C)가 유효하지 않을 경우, 서버(100)는 특정 사용자(C)에게 사용자 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다.When the user registration request by the public key of the specific user C is obtained, the server 100 confirms the validity of the specific user C, and when the specific user C is valid, ) To the customer. When the specific user C is not valid, the server 100 can support the specific user C to provide or provide a response indicating the user confirmation failure.

한편, 유효한 사용자일 경우, 랜덤 논스를 특정 사용자의 프라이빗 키로 서명한 랜덤 논스 서명값이 획득되면, 서버(100)는, 랜덤 논스 서명값이 정상적으로 서명되었는지를 특정 사용자의 퍼블릭 키를 사용하여 검증한다.On the other hand, in the case of a valid user, when the random non-signature value obtained by signing the random non-existence with the private key of the specific user is obtained, the server 100 verifies whether the random non-signature value is normally signed using the public key of the specific user .

그리고, 서버(100)는 특정 사용자(C)로부터 획득된 서명값이 유효한 것일 경우, 랜덤 논스, 랜덤 논스 서명값 및 특정 사용자의 퍼블릭 키를 포함하는 사용자 등록 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 프라이빗 블록체인 데이터베이스에 등록된 사용자 등록 트랜잭션의 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 사용자 등록 프라이빗 트랜잭션 아이디(PrivTxid)를 특정 사용자(C)에게 제공하거나 제공하도록 지원할 수 있다.When the signature value obtained from the specific user C is valid, the server 100 registers the user-registered transaction including the random non-existence, the random non-signature value, and the public key of the specific user in the private block chain database, , And can support or provide a specific user C with a user-registered private transaction ID (PrivTxid) indicating the location information on the private block chain database of the user-registered transaction registered in the private block-chain database.

그러나, 서버(100)는 특정 사용자(C)로부터 획득된 서명값이 유효하지 않을 경우, 특정 사용자(111)에게 서명값 확인 실패를 나타내는 응답을 제공하거나 제공하도록 지원할 수 있다.However, the server 100 may assist the specific user 111 in providing or providing a response indicating failure to verify the signature value when the signature value obtained from the specific user C is invalid.

또한, 서버(100)는 특정 사용자(C)의 서명값이 유효한 경우, 소정의 조건, 일 예로 트리거링 조건이 만족되면, 랜덤 논스, 랜덤 논스 서명값 및 특정 사용자의 퍼블릭 키를 포함하는 사용자 등록 트랜잭션에 해쉬 함수를 적용하여 생성한 특정 해쉬값 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 머클 루트인 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스(200)에 등록하거나 등록하도록 지원하며, 퍼블릭 블록체인 데이터베이스(200)에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 사용자 등록 퍼블릭 트랜잭션 아이디(Txid)를 획득하거나 획득하도록 지원할 수 있다. 이때, 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값은 도 2에서의 설명에서와 같이 머클 트리에 의해 생성될 수 있다.In addition, when the signature value of the specific user C is valid, the server 100 may perform a user registration transaction including a random non-existence, a random non-signature value, and a public key of a specific user when a predetermined condition, A representative hash value that is generated by computing a specific hash value generated by applying a hash function and at least one neighbor hash value matched with the specified hash value, or a value obtained by processing the representative hash value, 200 or a publicly registered public transaction chain ID (200) indicating the positional information on the public block chain database of the value obtained by processing the representative hash value or the representative hash value registered in the public block chain database 200 ≪ / RTI > Txid). At this time, the value obtained by processing the representative hash value or the representative hash value, which is the merge root, can be generated by the merge tree as shown in FIG.

한편, 상기에서 설명한 통화 수신자(B), 통화 사용자(C), 통화 사용자(D)는 시중 은행일 수도 있으며, 일반 개인일 수도 있을 것이다.Meanwhile, the call recipient B, the call user C, and the call user D described above may be a commercial bank or a general person.

또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specially designed and constructed for the present invention or may be those known and used by those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.

100: 서버,
110: 통신부,
120: 프로세서,
200: 퍼블릭 블록체인 데이터베이스
100: server,
110:
120: processor,
200: Public block chain database

Claims (22)

통화를 발행하는 방법에 있어서,
(a) 통화 발행자로부터의 상기 통화 발행을 위한 (i) 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii)을 서명한 상기 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션이 획득되면, 서버는, 상기 통화 발행 트랜잭션 및 상기 통화 발행자의 유효 여부를 확인하여 유효일 경우, (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 통화 발행 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 프라이빗 트랜잭션 아이디를 상기 통화 발행자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 단계; 및
(b) 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건임 - 이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 단계;
를 포함하는 것을 특징으로 하는 통화를 발행하는 방법.
A method for issuing a call,
(i) the call issuer information, (ii) the issue amount of the call, (iii) the public key of the call issuer, and (iv) the private key of the call issuer, (Ii), (iii), the server confirms the validity of the call issue transaction and the call issuer, and if valid, (i) the call recipient information, (ii) the amount of the call issued, (iii) the public key of the call issuer, and (iv) the signature issuer's signature value in the private block chain database And the location information on the private block chain database of the call publishing transaction registered in the private block chain database Issuing or providing a currency issuing private transaction ID to at least some of said call issuer and said call recipient; And
(b) a predetermined condition - if the predetermined condition is a triggering condition for registering a predetermined hash value in a public block chain database, the server transmits a specific hash value, A hash value generated by applying a hash function to the call issuing transaction including the call recipient information, (ii) the issue amount of the call, (iii) the public key of the call issuer, and (iv) A representative hash value generated by calculating at least one neighboring hash value matching the specific hash value or a value obtained by processing the representative hash value is registered or registered in the public block chain database, The position of the value obtained by processing the registered representative hash value or the representative hash value on the public block chain database To obtain or obtain a currency issuing public transaction ID indicating a vote;
The method comprising the steps of:
제1항에 있어서,
상기 (b) 단계에서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 통화와 관련한 트랜잭션이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 프라이빗 블록체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 통화를 발행하는 방법.
The method according to claim 1,
In the step (b)
The predetermined condition is that,
(i) a condition in which a predetermined time elapses; (iii) a condition in which a block is generated in a private block chain; and (iv) at least one of conditions for a service characteristic The method comprising the steps of:
제1항에 있어서,
상기 (b) 단계에서,
상기 서버는, 상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고,
상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하는 것을 특징으로 하는 통화를 발행하는 방법.
The method according to claim 1,
In the step (b)
The server supports the particular hash value to generate or generate a merkle tree assigned to a leaf node,
If the predetermined condition is satisfied, a value obtained by processing the representative hash value or the hash value generated by computing a hash value assigned to at least one other leaf node matching the specific hash value is stored in the public block chain database Registering, or registering a call.
제3항에 있어서,
상기 머클 트리가 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 트리인 경우, 상기 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당되는 것을 특징으로 하는 통화를 발행하는 방법.
The method of claim 3,
If the merge tree is a first tree among at least one merge tree connected in a chain form, the first leaf node of the merge tree is assigned a hash value or a processed value of predetermined message data composed of text, numbers or symbols How to issue a feature currency.
제3항에 있어서,
상기 소정의 조건이 만족되면,
(x1) 상기 서버는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
(x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 대표 해쉬값으로서 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고,
(x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x2)을 반복하여 수행하는 것을 특징으로 하는 통화를 발행하는 방법.
The method of claim 3,
If the predetermined condition is satisfied,
(x1) The server supports to calculate or calculate a hash value assigned to (i) the specific hash value and (ii) a sibling node of the node to which the specific hash value is assigned, and calculates a hash value To assign or assign to the parent node of the node,
(x2) if the parent node is the root node of the merge tree, supports to register or register the hash value assigned to the parent node as the representative hash value in the public block chain database,
(x3) If the parent node is not the root node of the merge tree, it performs the steps (x1) to (x2) repeatedly using the hash value assigned to the parent node as the specific hash value. How to issue.
제5항에 있어서,
상기 (x1)에서
상기 소정의 조건이 만족되었음에도 상기 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 상기 서버는, 상기 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 상기 (x1) 내지 (x3)를 수행하는 것을 특징으로 하는 통화를 발행하는 방법.
6. The method of claim 5,
At (x1)
If the hash value is not allocated to the sibling node of the node to which the specific hash value is allocated even though the predetermined condition is satisfied, the server supports to assign or assign a predetermined hash value to the sibling node, ) To (x3). ≪ / RTI >
제1항에 있어서,
상기 서버가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결되는 것을 특징으로 하는 통화를 발행하는 방법.
The method according to claim 1,
When the server stores the specific hash value and the at least one neighbor hash value in a predetermined first data structure and then stores and manages a second data structure of the same type as the first data structure, Wherein the data structure and the second data structure are concatenated in a chain form.
제7항에 있어서,
상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당되는 것을 특징으로 하는 통화를 발행하는 방법.
8. The method of claim 7,
Wherein a root value of the first data structure or a hash value of the root value is assigned to a first leaf node of the second data structure if the first data structure and the second data structure are merc trees. Lt; / RTI >
제1항에 있어서,
상기 (a) 단계 이전에,
(a01) 상기 통화 발행자의 퍼블릭 키에 의한 발행자 등록 요청이 획득되면, 상기 서버는, 상기 통화 발행자의 유효 여부를 확인하여 상기 통화 발행자가 유효할 경우 랜덤 논스를 상기 통화 발행자에게 전달하거나 전달하도록 지원하는 단계;
(a02) 상기 랜덤 논스를 상기 통화 발행자의 프라이빗 키로 서명한 랜덤 논스 서명값이 획득되면, 상기 서버는, 상기 랜덤 논스 서명값이 정상적으로 서명되었는지를 상기 통화 발행자의 퍼블릭 키를 사용하여 검증하고 검증이 완료되면 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 통화 발행자의 퍼블릭 키를 포함하는 발행자 등록 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 발행자 등록 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 발행자 등록 프라이빗 트랜잭션 아이디를 상기 통화 발행자에게 제공하거나 제공하도록 지원하는 단계; 및
(a03) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 통화 발행자의 퍼블릭 키를 포함하는 상기 발행자 등록 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 발행자 등록 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 단계;
를 포함하는 것을 특징으로 하는 통화를 발행하는 방법.
The method according to claim 1,
Before the step (a)
(a01) When the issuer registration request by the public key of the call issuer is obtained, the server confirms the validity of the call issuer, and when the call issuer is valid, transmits the random non-existence to the call issuer ;
(a02) When the random non-signature value obtained by signing the random non-existence with the private key of the call issuer is obtained, the server verifies whether the random non-signature value is normally signed using the public key of the call issuer, And when it is completed, registering or registering an issuer registration transaction including the random non-existence, the random non-signature value, and the issuer registration transaction including the public key of the call issuer in the private block chain database, Providing a issuer-registered private transaction ID indicating the location on the private block chain database to provide or provide to the call issuer; And
(a03) If the predetermined condition is satisfied, the server sends a hash function to the issuer registration transaction including the random hash, the random non-signature value, and the public key of the call issuer And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighbor hash value matched with the specific hash value is registered or registered in the public block chain database Acquiring or obtaining an issuer-registered public transaction ID indicating location information on the public block chain database of the representative hash value or a value obtained by processing the representative hash value registered in the public block chain database;
The method comprising the steps of:
통화의 지급을 결제하는 방법에 있어서,
(a) 특정 사용자로부터 상기 통화의 지급 결제를 위한 (i) 이전에 적어도 일부 미사용된 적어도 하나 이상의 제1 통화 사용 프라이빗 트랜잭션 아이디, (ii) 통화 수신자 정보, (iii) 지급 결제 금액, (iv) 상기 특정 사용자의 퍼블릭 키 및 (v) 상기 특정 사용자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii), 상기 (iv)를 서명한 상기 특정 사용자의 서명값을 포함하는 제2 통화 사용 트랜잭션이 획득되면, 서버는, 상기 제2 통화 사용 트랜잭션의 상기 특정 사용자의 발란스를 참조하여 상기 제2 통화 사용 트랜잭션의 지급 결제 방식을 확인하는 단계;
(b) (i) 상기 특정 사용자의 발란스가 상기 지급 결제 금액 이상이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "즉시 지급 결제"로 확인되면, 상기 서버는, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하거나, (ii) 상기 특정 사용자의 발란스가 상기 지급 결제 금액 미만이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "지연 지급 결제"로 확인되면, 상기 서버는, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 저장부에 저장한 상태에서, 적어도 하나 이상의 타 사용자에 의해 지급 결제되며 상기 특정 사용자를 수취인으로 하는 적어도 하나 이상의 제3 통화 사용 트랜잭션이 소정의 상계 처리 조건을 만족하면, 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션들을 상계 처리하며, 상계 처리된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디와 제3 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자, 상기 특정 수신자 및 상기 타 사용자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 단계; 및
(c) 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건임 - 이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 (1) 상기 제2 통화 사용 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값 또는 (2) 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션에 각각 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 (1) 제2 통화 사용 퍼블릭 트랜잭션 아이디 또는 (2) 제2 통화 사용 퍼블릭 트랜잭션 아이디와 제3 통화 사용 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 단계;
를 포함하는 것을 특징으로 하는 통화의 지급을 결제하는 방법.
A method of paying a payment of a currency,
(ii) the call recipient information; (iii) the payment amount; (iv) the amount of the payment; and (iii) (Ii) a second call containing the signature value of the particular user who signed the (i), (ii), (iii), or (iv) with the private key of the particular user; When the used transaction is obtained, the server confirms the payment settlement method of the second call using transaction by referring to the balance of the specific user of the second call using transaction;
(b) when the payment settlement method of the second call use transaction is confirmed as "immediate payment settlement" because the balance of the specific user is equal to or greater than the payment settlement amount, And if it is valid, supports registering or registering the second call-enabled transaction in the private block chain database and indicating the location information on the private block chain database of the second call-enabled transaction registered in the private block chain database To provide or provide a second call-enabled private transaction ID to at least some of said particular user and said call recipient; (ii) If the method is "delayed payment" If it is determined that the signature value of the specific user is valid, the server determines whether or not the signature value of the specific user is valid. If the signature value is valid, the server stores the second call use transaction in the storage unit, Wherein the second currency use transaction and the third currency use transactions are offset when at least one third call use transaction as a payee satisfies a predetermined upper limit processing condition, And a second block, wherein the second block includes a third block, wherein the second block includes a third block, the third block, and the third block. Second call use fry Providing a comb transaction ID and a third call use private transaction ID to at least some of the specific user, the specific recipient, and the other user; And
(c) a predetermined condition, wherein the predetermined condition is a triggering condition for registering a predetermined hash value in a public block chain database, the server obtains a specific hash value, (2) a hash value generated by applying a hash function to each of the second call use transaction and the third call use transaction, and a hash value generated by applying a hash function to the second call use transaction, A representative hash value generated by calculating at least one neighboring hash value to be matched or a value obtained by processing the representative hash value is registered or registered in the public block chain database, and the representative hash value registered in the public block chain database Value or the positional information on the public block chain database of the value obtained by processing the representative hash value (1) comprising the steps of supporting two calls using the public transaction ID, or (2) a second call using the public transaction ID and the third currency used to obtain or acquire a public transaction ID;
The method comprising the steps of:
제10항에 있어서,
상기 (c) 단계에서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 통화와 관련한 트랜잭션이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 프라이빗 블록체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 통화의 지급을 결제하는 방법.
11. The method of claim 10,
In the step (c)
The predetermined condition is that,
(i) a condition in which a predetermined time elapses; (iii) a condition in which a block is generated in a private block chain; and (iv) at least one of conditions for a service characteristic The method comprising the steps of:
제10항에 있어서,
상기 (c) 단계에서,
상기 서버는, 상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고,
상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하는 것을 특징으로 하는 통화의 지급을 결제하는 방법.
11. The method of claim 10,
In the step (c)
The server supports the particular hash value to generate or generate a merkle tree assigned to a leaf node,
If the predetermined condition is satisfied, a value obtained by processing the representative hash value or the hash value generated by computing a hash value assigned to at least one other leaf node matching the specific hash value is stored in the public block chain database Registering or registering a telephone number of the user.
제10항에 있어서,
상기 제2 통화 사용 트랜잭션은, 상기 지급 결제 금액을 지급한 이후의 잔금 및 상기 잔금의 소유주 정보를 더 포함하는 것을 특징으로 하는 통화의 지급을 결제하는 방법.
11. The method of claim 10,
Wherein the second call use transaction further includes a balance after the payment payment amount is paid and owner information of the balance.
제10항에 있어서,
상기 제2 통화 사용 트랜잭션은, 상기 "즉시 지급 결제" 또는 "지연 지급 결제"를 포함하는 지급 형식 정보를 더 포함하며,
상기 (b) 단계에서,
상기 서버는, 상기 제2 통화 사용 트랜잭션의 지급 형식 정보가 "즉시 지급 결제"이지만 상기 특정 사용자의 발란스가 상기 지급 결제 금액 미만일 경우에는 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "지연 지급 결제"인 것으로 판단하는 것을 특징으로 하는 통화의 지급을 결제하는 방법.
11. The method of claim 10,
Wherein the second call usage transaction further comprises payment format information including "immediate payment settlement" or "delayed payment settlement &
In the step (b)
Wherein the payment method of the second call using transaction is a "delayed payment" when the payment type information of the second call using transaction is "immediate payment" but the balance of the specific user is less than the payment amount, The method comprising the steps of:
제10항에 있어서,
상기 (a) 단계 이전에,
(a01) 상기 특정 사용자의 퍼블릭 키에 의한 사용자 등록 요청이 획득되면, 상기 서버는, 상기 특정 사용자의 유효 여부를 확인하여 상기 특정 사용자가 유효할 경우 랜덤 논스를 상기 특정 사용자에게 전달하거나 전달하도록 지원하는 단계;
(a02) 상기 랜덤 논스를 상기 특정 사용자의 프라이빗 키로 서명한 랜덤 논스 서명값이 획득되면, 상기 서버는, 상기 랜덤 논스 서명값이 정상적으로 서명되었는지를 상기 특정 사용자의 퍼블릭 키를 사용하여 검증하고 검증이 완료되면 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 특정 사용자의 퍼블릭 키를 포함하는 사용자 등록 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 사용자 등록 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 사용자 등록 프라이빗 트랜잭션 아이디를 상기 특정 사용자에게 제공하거나 제공하도록 지원하는 단계; 및
(a03) 소정의 조건이 만족되면, 상기 서버가, 특정 해쉬값 - 상기 특정 해쉬값은 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 특정 사용자의 퍼블릭 키를 포함하는 상기 사용자 등록 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 사용자 등록 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 단계;
를 포함하는 것을 특징으로 하는 통화의 지급을 결제하는 방법.
11. The method of claim 10,
Before the step (a)
(a01) When the user registration request by the public key of the specific user is obtained, the server confirms the validity of the specific user, and when the specific user is valid, transmits the random nonce to the specific user ;
(a02) When a random nonce signature value obtained by signing the random nonce with the private key of the specific user is obtained, the server verifies whether the random nonce signature value is normally signed using the public key of the specific user, And when the user registration transaction is completed, registering or registering a user-registered transaction including the random non-existence, the random non-signature value, and the public key of the specific user in a private block chain database, Providing a user registered private transaction ID indicating a location on the private block chain database to provide or provide the specific user with the transaction ID; And
(a03) If the predetermined condition is satisfied, the server transmits a hash function to the user registration transaction including the random hash, the random non-signature value, and the public key of the specific user And a value obtained by processing the representative hash value or the representative hash value generated by calculating at least one neighbor hash value matched with the specific hash value is registered or registered in the public block chain database Obtaining or obtaining a user-registered public transaction ID indicating location information on the public block chain database of the representative hash value or the value obtained by processing the representative hash value registered in the public block chain database;
The method comprising the steps of:
통화를 발행하는 서버에 있어서,
통화 발행자로부터의 상기 통화 발행을 위한 (i) 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii)을 서명한 상기 통화 발행자의 서명값을 포함하는 통화 발행 트랜잭션을 획득하는 통신부; 및
상기 획득된 상기 통화 발행 트랜잭션 및 상기 통화 발행자의 유효 여부를 확인하여 유효일 경우, (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 통화 발행 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 통화 발행 프라이빗 트랜잭션 아이디를 상기 통화 발행자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 프로세스, 및 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조거임 - 이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (i) 상기 통화 수신자 정보, (ii) 상기 통화의 발행량, (iii) 상기 통화 발행자의 퍼블릭 키 및 (iv) 상기 통화 발행자의 서명값을 포함하는 상기 통화 발행 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 통화 발행 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 프로세스를 수행하는 프로세서;
를 포함하는 것을 특징으로 하는 통화를 발행하는 서버.
A server for issuing a call,
(I) the call issuer information for issuing the call from the call issuer, (ii) the issue amount of the call, (iii) the public key of the call issuer, and (iv) ii) a communication unit for obtaining a currency issuing transaction including a signature value of the call issuer who signed the item (iii); And
(I) the call recipient information, (ii) the issue amount of the call, (iii) the public key of the call issuer, and (iv) if the validity of the call issuer and the call issuer is valid, A private block chaining database for registering or registering the call issuing transaction including a signature value of a call issuer in a private block chain database; A process for providing or providing a transaction ID to at least some of the call issuer and the call recipient; and a predetermined condition, the predetermined condition being a triggering jogger for registering a predetermined hash value in a public block chain database, If satisfied, Hash value - said particular hash value is a hash value, said specific hash value comprising at least one of: (i) said recipient information; (ii) the amount of said call; (iii) said public issuer's public key; and (iv) A representative hash value generated by computing a hash value generated by applying a hash function to at least one neighboring hash value and at least one neighbor hash value matched with the specific hash value or a value obtained by processing the representative hash value is registered in the public block chain database And to obtain or obtain a currency issuing public transaction ID indicating position information on the public block chain database of the value obtained by processing the representative hash value or the representative hash value registered in the public block chain database A processor for performing a process;
And a server for receiving the call.
제16항에 있어서,
상기 소정의 조건은,
(i) 소정의 개수만큼 상기 통화와 관련한 트랜잭션이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 프라이빗 블록체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함하는 것을 특징으로 하는 통화를 발행하는 서버.
17. The method of claim 16,
The predetermined condition is that,
(i) a condition in which a predetermined time elapses; (iii) a condition in which a block is generated in a private block chain; and (iv) at least one of conditions for a service characteristic Wherein the server comprises one of the plurality of servers.
제16항에 있어서,
상기 프로세서는,
상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고, 상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하는 것을 특징으로 하는 통화를 발행하는 서버.
17. The method of claim 16,
The processor comprising:
Wherein the hash value is a hash value assigned to at least one other leaf node that matches the specific hash value if the predetermined hash value is satisfied, And registers the representative hash value or the value obtained by processing the hash value in the public block chain database.
제16항에 있어서,
상기 프로세서는,
(i) 상기 통화 발행자의 퍼블릭 키에 의한 발행자 등록 요청이 획득되면, 상기 통화 발행자의 유효 여부를 확인하여 상기 통화 발행자가 유효할 경우 랜덤 논스를 상기 통화 발행자에게 전달하거나 전달하도록 지원하고, (ii) 상기 랜덤 논스를 상기 통화 발행자의 프라이빗 키로 서명한 랜덤 논스 서명값이 획득되면, 상기 랜덤 논스 서명값이 정상적으로 서명되었는지를 상기 통화 발행자의 퍼블릭 키를 사용하여 검증하고 검증이 완료되면 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 통화 발행자의 퍼블릭 키를 포함하는 발행자 등록 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 발행자 등록 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 발행자 등록 프라이빗 트랜잭션 아이디를 상기 통화 발행자에게 제공하거나 제공하도록 지원하며, (iii) 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 통화 발행자의 퍼블릭 키를 포함하는 상기 발행자 등록 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 발행자 등록 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 것을 특징으로 하는 통화를 발행하는 서버.
17. The method of claim 16,
The processor comprising:
(i) confirming validity of the call issuer when the issuer registration request by the public key of the call issuer is obtained, and when the call issuer is valid, transferring or transmitting the random non-existence to the call issuer; (ii) ) Verifying whether the random non-signature value is normally signed when the random non-signature value obtained by signing the random non-existence with the private key of the call issuer is verified using the public key of the call issuer, Wherein the issuer registration transaction is registered in the private block chain database and the issuer registration transaction including the random non-signature value and the public key of the call issuer is registered or registered in the private block chain database, Position me (Iii) when a predetermined condition is satisfied, a specific hash value, wherein the particular hash value is associated with the random nonce, the random nonce signature value, and the call issuer, A representative hash value generated by calculating a hash value generated by applying a hash function to the issuer registration transaction including a public key of the issuer registration transaction and at least one neighbor hash value matched with the specified hash value, A public block chain database which stores position information on the public block chain database of the value obtained by processing the representative hash value or the representative hash value registered in the public block chain database, Obtain the transaction ID Wherein the server is configured to:
통화의 지급을 결제하는 서버에 있어서,
특정 사용자로부터 상기 통화의 지급 결제를 위한 (i) 이전에 적어도 일부 미사용된 적어도 하나 이상의 제1 통화 사용 프라이빗 트랜잭션 아이디, (ii) 통화 수신자 정보, (iii) 지급 결제 금액, (iv) 상기 특정 사용자의 퍼블릭 키 및 (v) 상기 특정 사용자의 프라이빗 키로 상기 (i), 상기 (ii), 상기 (iii), 상기 (iv)를 서명한 상기 특정 사용자의 서명값을 포함하는 제2 통화 사용 트랜잭션을 획득하는 통신부: 및
상기 획득된 상기 제2 통화 사용 트랜잭션의 상기 특정 사용자의 발란스를 참조하여 상기 제2 통화 사용 트랜잭션의 지급 결제 방식을 확인하여, 상기 특정 사용자의 발란스가 상기 지급 결제 금액 이상이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "즉시 지급 결제"로 확인되면, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자 및 상기 통화 수신자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 프로세스, 및 상기 특정 사용자의 발란스가 상기 지급 결제 금액 미만이어서 상기 제2 통화 사용 트랜잭션의 지급 결제 방식이 "지연 지급 결제"로 확인되면, 상기 특정 사용자의 서명값이 유효한지를 판단하여 유효일 경우, 상기 제2 통화 사용 트랜잭션을 저장부에 저장한 상태에서, 적어도 하나 이상의 타 사용자에 의해 지급 결제되며 상기 특정 사용자를 수취인으로 하는 적어도 하나 이상의 제3 통화 사용 트랜잭션이 소정의 상계 처리 조건을 만족하면, 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션들을 상계 처리하며, 상계 처리된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치 정보를 나타내는 제2 통화 사용 프라이빗 트랜잭션 아이디와 제3 통화 사용 프라이빗 트랜잭션 아이디를 상기 특정 사용자, 상기 특정 수신자 및 상기 타 사용자 중 적어도 일부에게 제공하거나 제공하도록 지원하는 프로세스, 및 소정의 조건 - 상기 소정의 조건은 퍼블릭 블록체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건임 - 이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 (1) 상기 제2 통화 사용 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값 또는 (2) 상기 제2 통화 사용 트랜잭션과 상기 제3 통화 사용 트랜잭션에 각각 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 (1) 제2 통화 사용 퍼블릭 트랜잭션 아이디 또는 (2) 제2 통화 사용 퍼블릭 트랜잭션 아이디와 제3 통화 사용 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 프로세스를 수행하는 프로세서;
를 포함하는 것을 특징으로 하는 통화의 지급을 결제하는 서버.
A server for payment of a call, comprising:
(Ii) a call recipient information; (iii) a payment settlement amount; (iv) a payment transaction amount of at least one or more unused at least one unused private transaction ID, (Ii) a signature value of the particular user who signed the (i), (ii), (iii), or (iv) with the private key of the particular user Acquiring communication unit: and
Checking the payment settlement method of the second call use transaction with reference to the balance of the specific user of the obtained second call use transaction, and if the balance of the specific user is equal to or greater than the payment settlement amount, Determines whether the signature value of the specific user is valid if it is determined to be "immediate settlement of payment ", supports to register or register the second call use transaction in the private block chain database, A process of providing or providing a second call-using private transaction ID indicating the position on the private block chain database of the second call-enabled transaction registered in the chain database to at least a part of the specific user and the call recipient; When the payment settlement method of the second call use transaction is confirmed as "delayed payment settlement " because the balance of the specific user is less than the payment settlement amount, it is determined whether the signature value of the specific user is valid, When at least one or more third-call transactions using payment by at least one or more other users with the transaction stored in the storage unit and having the specific user as a receiver satisfy a predetermined offset processing condition, Transaction and the third call-enabled transactions, and supports to register or register the second call-in-use transaction and the third call-in-use transaction that have been offset in the private block chain database, The second call-enabled transaction and the second call- To provide or provide the second currency-use private transaction ID and the third currency-use private transaction ID, which indicate the location information on the private block chain database of the three currency use transactions, to at least some of the specific user, the specific recipient and the other user And a predetermined condition is a triggering condition for registering a predetermined hash value in a public block chain database, the specific hash value is obtained by (1) (2) a hash value generated by applying a hash function to each of the second call use transaction and the third call use transaction, and (2) a hash value generated by applying a hash function to the currency use transaction, A representative generated by computing at least one neighboring hash value A hash value or a value obtained by processing the representative hash value in the public block chain database, and a value obtained by processing the representative hash value or the representative hash value registered in the public block chain database, (1) a second call-enabled public transaction ID indicating (2) a second call-enabled public transaction ID and a third call-using public transaction ID indicating location information on the chain database;
And a server for receiving the payment of the call.
제20항에 있어서,
상기 프로세서는,
상기 특정 해쉬값이 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원하고, 상기 소정의 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 해쉬값을 가공한 값을 상기 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하는 것을 특징으로 하는 통화의 지급을 결제하는 서버.
21. The method of claim 20,
The processor comprising:
Wherein the hash value is a hash value assigned to at least one other leaf node that matches the specific hash value if the predetermined hash value is satisfied, And registers the representative hash value or the value obtained by processing the hash value in the public block chain database.
제20항에 있어서,
상기 프로세서는,
(i) 상기 특정 사용자의 퍼블릭 키에 의한 사용자 등록 요청이 획득되면, 상기 특정 사용자의 유효 여부를 확인하여 상기 특정 사용자가 유효할 경우 랜덤 논스를 상기 특정 사용자에게 전달하거나 전달하도록 지원하며, (ii) 상기 랜덤 논스를 상기 특정 사용자의 프라이빗 키로 서명한 랜덤 논스 서명값이 획득되면, 상기 랜덤 논스 서명값이 정상적으로 서명되었는지를 상기 특정 사용자의 퍼블릭 키를 사용하여 검증하고 검증이 완료되면 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 특정 사용자의 퍼블릭 키를 포함하는 사용자 등록 트랜잭션을 프라이빗 블록체인 데이터베이스에 등록하거나 등록하도록 지원하고, 상기 프라이빗 블록체인 데이터베이스에 등록된 상기 사용자 등록 트랜잭션의 상기 프라이빗 블록체인 데이터베이스 상의 위치를 나타내는 사용자 등록 프라이빗 트랜잭션 아이디를 상기 특정 사용자에게 제공하거나 제공하도록 지원하고, (iii) 소정의 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은 상기 랜덤 논스, 상기 랜덤 논스 서명값 및 상기 특정 사용자의 퍼블릭 키를 포함하는 상기 사용자 등록 트랜잭션에 해쉬 함수를 적용하여 생성한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 퍼블릭 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 상기 퍼블릭 블록체인 데이터베이스에 등록된 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값의 상기 퍼블릭 블록체인 데이터베이스 상의 위치 정보를 나타내는 사용자 등록 퍼블릭 트랜잭션 아이디를 획득하거나 획득하도록 지원하는 것을 특징으로 하는 통화의 지급을 결제하는 서버.
21. The method of claim 20,
The processor comprising:
(i) when a user registration request by the public key of the specific user is obtained, checking whether the specific user is valid or not, and when the specific user is valid, ) If the random non-signature value obtained by signing the random non-signature with the private key of the specific user is verified using the public key of the specific user to verify whether the random non-signature value is normally signed, A private block database, and a random number signature value, and a public key of the specific user, to register or register the user registered transaction in the private block chain database, and to register the user registered transaction in the private block chain database Position me (Iii) when a predetermined condition is satisfied, a specific hash value, the particular hash value being associated with the random nonce, the random nonce signature value, and the specific user A representative hash value or a representative hash value generated by computing a hash value generated by applying a hash function to the user registration transaction including a public key of the user registration transaction and at least one neighboring hash value matched with the specific hash value, The public block chain database and the public block chain database, wherein the public block chain database stores the representative hash value or the representative hash value, Obtain the transaction ID Wherein the server is configured to:
KR1020160140164A 2016-10-26 2016-10-26 Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same KR101837167B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160140164A KR101837167B1 (en) 2016-10-26 2016-10-26 Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same
PCT/KR2017/011938 WO2018080206A1 (en) 2016-10-26 2017-10-26 Method for issuing currency and making payment using merkle tree structure in utxo-based protocol and server using same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160140164A KR101837167B1 (en) 2016-10-26 2016-10-26 Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same

Publications (1)

Publication Number Publication Date
KR101837167B1 true KR101837167B1 (en) 2018-03-09

Family

ID=61727734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160140164A KR101837167B1 (en) 2016-10-26 2016-10-26 Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same

Country Status (2)

Country Link
KR (1) KR101837167B1 (en)
WO (1) WO2018080206A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020022531A1 (en) * 2018-07-23 2020-01-30 주식회사 더볼터 Method and system for dynamic time delay-based chain connection in pop-based blockchain
CN110838064A (en) * 2019-10-12 2020-02-25 华中科技大学 Method and system for realizing asset tracing based on Fabric Block Link platform
CN115660679A (en) * 2022-10-14 2023-01-31 重庆移通学院 Hash locking based decentralized secure transaction method

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200013025A1 (en) * 2018-07-06 2020-01-09 International Business Machines Corporation Conditional deferred transactions for blockchain
CN109274837B (en) * 2018-08-22 2020-04-03 北京航空航天大学 Telephone source traceable method and device based on block chain technology
CN109218303B (en) * 2018-09-10 2020-12-11 浙江天脉领域科技有限公司 Novel block chain cross-chain method for homologous and heterogeneous chain network fusion
CN109472578A (en) * 2018-10-16 2019-03-15 东方银谷(北京)投资管理有限公司 The processing method and processing device of digital asset
CN111476555A (en) * 2020-03-23 2020-07-31 深圳华数云计算技术有限公司 Digital currency data processing method, system and storage medium
CN111814175B (en) * 2020-09-15 2020-12-18 北京东方通科技股份有限公司 Inter-block chain cross-chain information transmission control system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101575030B1 (en) 2014-07-11 2015-12-07 조선대학교산학협력단 Method of multi-signature generation for shared data in the cloud
KR101637854B1 (en) 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101575030B1 (en) 2014-07-11 2015-12-07 조선대학교산학협력단 Method of multi-signature generation for shared data in the cloud
KR101637854B1 (en) 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
[CIO KOREA 2016.07.08]

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020022531A1 (en) * 2018-07-23 2020-01-30 주식회사 더볼터 Method and system for dynamic time delay-based chain connection in pop-based blockchain
CN110838064A (en) * 2019-10-12 2020-02-25 华中科技大学 Method and system for realizing asset tracing based on Fabric Block Link platform
CN110838064B (en) * 2019-10-12 2022-05-20 华中科技大学 Method and system for tracing assets based on Fabric block chain platform
CN115660679A (en) * 2022-10-14 2023-01-31 重庆移通学院 Hash locking based decentralized secure transaction method

Also Published As

Publication number Publication date
WO2018080206A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
KR101837166B1 (en) Method for issuing and paying money using updated status of balance database by respective blocks in blockchain, and server using the same
KR101837167B1 (en) Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same
US11436595B2 (en) Method for issuing, using, refunding, settling and revoking electronic voucher using updated status of balance database by respective blocks in blockchain, and server using the same
JP7108611B2 (en) Electronic bill management method, device and storage medium
US11669811B2 (en) Blockchain-based digital token utilization
EP3414720B1 (en) Methods and systems for using digital signatures to create trusted digital asset transfers
US9978094B2 (en) Tokenization revocation list
CN113989047A (en) Asset publishing method and device based on block chain and electronic equipment
KR20210128455A (en) Computer-implemented systems and methods for implementing transfers via blockchain networks.
US20220067717A1 (en) Blockchain system that includes bank nodes each having separate ledgers for identity, digital currency and other functions, and operation method thereof
KR101849918B1 (en) Method for issuing and paying money in use of unspent transaction output based protocol, and server using the same
CN111915308A (en) Transaction processing method of blockchain network and blockchain network
KR102063628B1 (en) Method for paying based on blockchain and payment server using the same
KR20200114324A (en) Block chain based money transfer processing system using cryptocurrency
KR101841568B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher using updated status of balance database by respective blocks in blockchain, and server using the same
KR101841567B1 (en) Method for issuing, using, refunding, settling and revocating electric voucher using updated status of balance database by respective blocks in blockchain, and server using the same
KR20200021342A (en) Payment method and system based on block chain
KR102171395B1 (en) Method for proving principal and interest receipt based on block chain
KR102465466B1 (en) The DID-based user authentication system that complements the blockchain's oracle problem
CN113516461A (en) Quantum currency transaction method based on distributed account book
KR20180010036A (en) Fintech server and method of providing notary service for account transfer

Legal Events

Date Code Title Description
GRNT Written decision to grant