KR102324155B1 - Method and apparatus for autonomous guarantee verification for p2p loan service based on blockchain - Google Patents

Method and apparatus for autonomous guarantee verification for p2p loan service based on blockchain Download PDF

Info

Publication number
KR102324155B1
KR102324155B1 KR1020190143805A KR20190143805A KR102324155B1 KR 102324155 B1 KR102324155 B1 KR 102324155B1 KR 1020190143805 A KR1020190143805 A KR 1020190143805A KR 20190143805 A KR20190143805 A KR 20190143805A KR 102324155 B1 KR102324155 B1 KR 102324155B1
Authority
KR
South Korea
Prior art keywords
key
authentication
account
investor
borrower
Prior art date
Application number
KR1020190143805A
Other languages
Korean (ko)
Other versions
KR20210017964A (en
Inventor
김휘기
어창욱
Original Assignee
주식회사 인터리핀
어창욱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인터리핀, 어창욱 filed Critical 주식회사 인터리핀
Publication of KR20210017964A publication Critical patent/KR20210017964A/en
Application granted granted Critical
Publication of KR102324155B1 publication Critical patent/KR102324155B1/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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/03Credit; Loans; Processing thereof
    • G06Q40/025
    • 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/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks

Abstract

본 발명의 실시예에 따른 블록체인 기반의 서비스 장치가 수행하는 자율보증증명 방법은 사용자의 블록체인 계정을 생성, 사용자의 고유 정보를 암호화한 인증 1키를 생성, 및 인증 1키를 포함하는 정보를 암호화한 TxID를 생성하고 off-chain DB에 저장하는 단계; TxID를 포함하는 데이터를 장치가 관리하는 블록체인 계정인 OPM(operator master)의 비대칭키로 암호화한 Key Value을 DB에 저장 및 on-chain에 업로드하는 단계; 및 사용자로부터 소정의 동작에 대한 요청을 수신하는 경우, 요청 시점 이후 인증 1키를 재생성하고, on-chain에 업로드된 Key Value를 기초로 DB에 저장된 Key Value를 검색하고, 검색된 Key Value를 비대칭키의 대응키로 복호화하여 구한 인증 1키와 재생성된 인증 1키를 비교하는 위변조 판단을 기초로 요청에 대한 수행을 결정하는 단계를 포함할 수 있다. The self-assurance verification method performed by the block chain-based service device according to an embodiment of the present invention is information including the creation of a user's block chain account, generation of an authentication 1 key by encrypting the user's unique information, and the authentication 1 key generating an encrypted TxID and storing it in an off-chain DB; storing data including TxID encrypted with an asymmetric key of OPM (operator master), which is a block chain account managed by the device, in DB and uploading it to on-chain; And when a request for a predetermined operation is received from the user, the authentication 1 key is regenerated after the request time, the Key Value stored in the DB is searched based on the Key Value uploaded to the on-chain, and the retrieved Key Value is an asymmetric key It may include the step of determining the execution of the request based on the forgery determination of comparing the authentication 1 key obtained by decrypting the corresponding key of the regenerated authentication 1 key.

Description

블록체인 기반의 P2P 대출 서비스 자율보증증명 방법 및 장치{METHOD AND APPARATUS FOR AUTONOMOUS GUARANTEE VERIFICATION FOR P2P LOAN SERVICE BASED ON BLOCKCHAIN}Blockchain-based P2P Loan Service Autonomous Guarantee Verification Method and Apparatus

본 발명은 블록체인 기술 기반의 사용자 인증키를 통해 정당한 사용자가 요청하는 동작의 수행 여부를 결정하고, 사용자의 요청에 대한 수행이 완료된 것을 증명하면서 요청이 완료되어 발생한 권리를 양도할 수 있는 토큰을 사용자 인증키를 통해 발행하는 기술에 관한 것이다. The present invention determines whether or not to perform an operation requested by a legitimate user through a user authentication key based on block chain technology, and proves that the user's request has been completed, and a token that can transfer the right generated when the request is completed. It relates to a technology issued through a user authentication key.

P2P 대출이란 개인이 금융기관을 거치지 않고 온라인 플랫폼을 통해 대출 계약을 체결하는 것으로서, 투자자를 모집한 후 자금이 필요한 차입자에게 투자의 형식으로 자금을 융통할 수 있도록 하고, 투자자에게 투자 금액에 대한 소정의 이자를 지급 받을 수 있도록 중계하는 P2P 금융 플랫폼 산업이 최근 크게 성장하고 있다. P2P lending refers to an individual signing a loan contract through an online platform without going through a financial institution. The P2P financial platform industry, which relays to receive interest payments, has recently grown significantly.

기존의 금융 대출은 은행이 예금자로부터 지급된 금원을 관리하면서 차입자에게 대출해주는 형태로서 예금자와 차입자 간의 직접적인 상관 관계가 존재하지 않으며 대출금이 회수되지 못하게 되는 리스크는 은행이 부담하게 되는 구조이다. 이와 달리, P2P 금융 플랫폼 산업은 투자자를 모집하여 자금이 필요한 차입자에게 투자의 형식으로 자금을 융통하는 형태로서, 투자자와 차입자 사이에 직접적인 채권/채무 관계가 발생하게 하고, 대출금 회수에 대해 리스크를 지는 기관이 없는 경우가 많다. The existing financial loan is a form of lending to borrowers while the bank manages the amount of money paid from depositors. There is no direct correlation between depositors and borrowers, and the bank bears the risk of not being able to recover the loan. In contrast, the P2P financial platform industry recruits investors and lends money to borrowers in need of funds in the form of investment. Often there are no institutions.

이에 따라, P2P 금융 플랫폼에서는 대출과 관련하여 발생하는 권리/채무와, 이에 수반되는 리스크들이 모두 투자자/차입자에게 직접적으로 발생하기 때문에, 온라인에서 행하여지는 투자자 또는 차입자의 요청들이 정말로 정당한 사용자에 의해 발생한 것인가를 판단하는 것이 매우 중요하다. 만약, 사용자의 요청에 대한 위변조를 정확하게 파악하지 못한 채로 투자자와 차입자의 금전을 융통시키는 경우, 정당한 사용자들에게 금전적인 피해가 발생할 수 있다. Accordingly, in the P2P financial platform, the rights/liabilities arising from loans and the accompanying risks all directly occur to the investors/borrowers, It is very important to decide whether If the forgery or falsification of the user's request is not accurately identified and the money of investors and borrowers is financed, financial damage may occur to legitimate users.

이처럼 인증 및 위변조 검증이 필요한 분야에서는 최근 블록체인 기술을 접목하려는 시도가 늘고 있다. 하지만, 사용자의 편의성 관점에서 사용자에게는 블록체인에 대한 개념을 알 필요 없이, 온라인 플랫폼 내에서 자동적으로 인증이 진행되고 위변조의 판단을 수행할 수 있도록 하는 것이 중요하다. In fields that require authentication and forgery verification, attempts to apply blockchain technology are increasing recently. However, from the point of view of user convenience, it is important for users to be able to automatically authenticate and perform forgery judgment within the online platform without needing to know the concept of blockchain.

본 문서는 인증 및 위변조 검증에 블록체인 기술을 사용하면서도 사용자 입장에서 블록체인 기술에 대한 인지 없이 서버 및 스마트 컨트랙트가 인증 및 위변조 판단 기능을 자동적으로 수행하는 기술을 제안하고자 한다. This document intends to propose a technology in which the server and smart contract automatically perform authentication and falsification judgment functions without the user's knowledge of the blockchain technology while using blockchain technology for authentication and forgery verification.

본 발명의 실시예에서 해결하고자 하는 과제는 사용자가 직접 블록체인 지갑을 사용하는 일이 없게 하면서도, 인증을 수행하고 위변조를 방지하는 블록체인의 장점을 사용자에게 제공할 수 있는 기술을 구현하고자 한다. The problem to be solved in the embodiment of the present invention is to implement a technology that can provide users with the advantages of a blockchain that performs authentication and prevents forgery while preventing users from using a blockchain wallet directly.

또한, P2P 대출에서 발생하는 모든 거래의 자격 증명과 인증을 중계하고, 사용자의 요청에 대한 수행이 완료된 것을 증명하면서 요청이 완료되어 발생한 권리를 양도하는 기술을 구현하는 것이다. In addition, it is to relay the credentials and authentication of all transactions occurring in the P2P loan, and to implement a technology to transfer the rights generated when the request is completed while proving that the execution of the user's request is completed.

다만, 본 발명의 실시예가 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 기술적 과제가 도출될 수 있다.However, the technical problems to be achieved by the embodiments of the present invention are not limited to the above-mentioned problems, and various technical problems can be derived from the contents to be described below within the scope obvious to those skilled in the art.

일 실시예에 따른 블록체인 기반의 서비스 장치가 수행하는 자율보증증명 방법은 사용자의 블록체인 계정을 생성, 상기 사용자의 고유 정보를 암호화한 인증 1키를 생성, 및 상기 인증 1키를 포함하는 정보를 암호화한 TxID를 생성하고 off-chain DB에 저장하는 단계; 상기 TxID를 포함하는 데이터를 상기 장치가 관리하는 블록체인 계정인 OPM(operator master)의 비대칭키로 암호화한 Key Value을 상기 DB에 저장 및 on-chain에 업로드하는 단계; 및 상기 사용자로부터 소정의 동작에 대한 요청을 수신하는 경우, 상기 요청 시점 이후 인증 1키를 재생성하고, 상기 on-chain에 업로드된 Key Value를 기초로 상기 DB에 저장된 Key Value를 검색하고, 상기 검색된 Key Value를 상기 비대칭키의 대응키로 복호화하여 구한 인증 1키와 상기 재생성된 인증 1키를 비교하는 위변조 판단을 기초로 상기 요청에 대한 수행을 결정하는 단계를 포함할 수 있다. The self-assurance verification method performed by the blockchain-based service device according to an embodiment creates a user's block chain account, generates an authentication 1 key encrypted with the user's unique information, and information including the authentication 1 key generating an encrypted TxID and storing it in an off-chain DB; storing the data including the TxID encrypted with an asymmetric key of an operator master (OPM), which is a block chain account managed by the device, in the DB and uploading it to the on-chain; and when a request for a predetermined operation is received from the user, the authentication 1 key is regenerated after the request time, the key value stored in the DB is searched based on the key value uploaded to the on-chain, and the retrieved It may include the step of determining the execution of the request based on a forgery determination that compares the regenerated authentication 1 key with the authentication 1 key obtained by decrypting the key value with the corresponding key of the asymmetric key.

또한, 상기 사용자의 고유 정보는 사용자 ID, 사용자 블록체인 계정 주소, 공개키, 및 사용자 가상계좌 번호를 상기 사용자의 첫 로그인 시간 정보를 비밀키로 하여 SHA 알고리즘을 기초로 암호화한 TokenHolderKey를 포함하고, [TokenHolderKey=SHA{SecretKey(firstLoginTimeStamp)(UserID, AccountAddress, PublicKey, VirtualBankNum)}], 상기 인증 1키는 사용자 ID, 상기 TokenHolderKey 및 상기 TokenHolderKey가 생성된 시간 정보를 함께 SHA 알고리즘을 기초로 암호화하여 생성된 TokenHolderHashKey 를 포함할 수 있다. {TokenHolderHashKey=Hash(UserID, TokenHolderKey, TokenHolderHashKey 생성년월일시간분초)}In addition, the user's unique information includes a TokenHolderKey encrypted based on the SHA algorithm by using the user's first login time information as a secret key for a user ID, a user block chain account address, a public key, and a user virtual account number, [ TokenHolderKey=SHA{SecretKey(firstLoginTimeStamp)(UserID, AccountAddress, PublicKey, VirtualBankNum)}], the authentication 1 key is a TokenHolderHashKey generated by encrypting the user ID, the TokenHolderKey, and the time information at which the TokenHolderKey is generated together based on the SHA algorithm may include. {TokenHolderHashKey=Hash(UserID, TokenHolderKey, TokenHolderHashKey Creation Year Month Day Time Minute Second)}

또한, 상기 사용자는 P2P 대출 서비스를 사용하는 투자자 및 차입자를 포함하고, 상기 요청은 상기 차입자의 대출 요청과 및 상기 대출에 대한 상기 투자자의 투자 실행 요청을 포함하고, 상기 실행을 결정하는 단계는 상기 차입자의 대출 요청을 수신하는 경우, 상기 차입자에 대한 소정의 대출 심사에 기초하여 상기 대출 요청 시점 이후 상기 차입자의 인증 1키를 재생성하고, 상기 차입자에 대한 대출 정보를 생성하는 단계; 상기 대출 요청에 대해 상기 투자자의 투자 요청을 수신하는 경우, 상기 투자 요청 시점 이후 상기 투자자의 인증 1키를 재생성하고, 상기 on-chain에 업로드된 상기 투자자의 Key Value를 기초로 상기 DB에 저장된 상기 투자자의 Key Value를 검색하고 상기 OPM의 비대칭키로 복호화하여 구한 상기 투자자의 인증 1키를, 상기 재생성된 투자자의 인증 1키와 비교하여 위변조 판단하여 상기 대출 정보에 대한 상기 투자자의 투자 계약 여부를 결정하는 단계; 및 상기 대출 요청에 따른 투자 계약이 성립하면, 상기 on-chain에 업로드된 상기 차입자의 Key Value를 기초로 상기 off-chain DB에 저장된 상기 차입자의 Key Value를 검색하고 상기 OPM의 비대칭키로 복호화하여 구한 상기 차입자의 인증 1키를, 상기 재생성된 차입자의 인증 1키와 비교하여 위변조 판단하여, 상기 대출 요청과 관련하여 on-chain에 기록할 차입자 정보 및 상기 투자 요청과 관련하여 on-chain에 기록할 투자자 정보를 생성하는 단계를 포함할 수 있다. In addition, the user includes an investor and a borrower using the P2P loan service, the request includes a loan request of the borrower and a request to execute an investment of the investor for the loan, and the determining of the execution includes the above when receiving a loan request from the borrower, regenerating the authentication 1 key of the borrower after the loan request time, based on a predetermined loan examination for the borrower, and generating loan information for the borrower; When receiving the investor's investment request for the loan request, the investor's authentication 1 key is regenerated after the investment request time, and stored in the DB based on the investor's Key Value uploaded to the on-chain The investor's authentication 1 key obtained by searching the investor's Key Value and decrypting the OPM's asymmetric key is compared with the regenerated investor's authentication 1 key to determine forgery and forgery to determine whether the investor's investment contract for the loan information to do; and when the investment contract according to the loan request is established, the borrower's Key Value stored in the off-chain DB is retrieved based on the borrower's Key Value uploaded to the on-chain, and the obtained by decrypting the OPM's asymmetric key By comparing the borrower's authentication 1 key with the regenerated borrower's authentication 1 key to determine forgery, borrower information to be recorded on-chain in relation to the loan request and on-chain in relation to the investment request It may include generating investor information.

또한, 상기 투자자 정보를 생성하는 단계는 상기 대출 요청에 기 설정된 금액이 상기 투자자의 투자 요청에 의해 모두 모금되는 경우에만 실행되도록 설정될 수 있다. In addition, the generating of the investor information may be set to be executed only when the amount preset in the loan request is all raised by the investor's investment request.

또한, 일 실시예는 상기 요청에 대한 수행을 결정하는 단계 이후, 상기 OPM 계정을 통해 상기 요청의 실행을 관리하는 스마트 컨트랙트에 상기 요청이 실행됨에 따른 사용자의 상태를 증명하는 토큰 발행이 수행되도록 하는 트랜잭션을 생성하고 상기 DB에 접근 권한이 있는 블록체인 계정인 OP(operator) 계정을 생성하는 단계; 상기 OPM 계정을 통해 상기 on-chain에 업로드된 Key Value를 복호화하여 구한 인증 1키를 상기 OP 계정에 전송하는 단계; 및 상기 OP 계정이 상기 OPM 계정으로부터 전송 받은 인증 1키와 상기 DB에 저장된 TxID로부터 추출한 인증 1키를 비교하도록 하는 위변조 판단을 기초로 상기 트랜잭션 생성을 결정하는 단계를 더 포함할 수 있다. In addition, in one embodiment, after the step of determining the execution of the request, the token issuance that proves the user's status as the request is executed is performed to a smart contract that manages the execution of the request through the OPM account creating a transaction and creating an OP (operator) account, which is a block chain account with permission to access the DB; transmitting the authentication 1 key obtained by decrypting the key value uploaded to the on-chain through the OPM account to the OP account; and determining, by the OP account, to generate the transaction based on a forgery determination that allows the OP account to compare the authentication 1 key received from the OPM account with the authentication 1 key extracted from the TxID stored in the DB.

또한, 일 실시예는 상기 트랜잭션 생성을 결정하는 단계 이후, 상기 OPM 계정이 상기 OP 계정으로부터 상기 인증 1키를 다시 전송받고, 상기 다시 전송 받은 인증 1키를 상기 재생성된 인증 1키와 비교하여 상기 OP 계정이 보유하고 있는 인증 1키의 유효성을 판단하는 단계; 상기 인증 1키가 유효하면, 상기 OPM 계정이 상기 스마트 컨트랙트에 소정 수량의 토큰 발행 트랜잭션을 전송하여 상기 토큰이 상기 OP 계정에 지급되도록 하는 단계; 및 상기 OPM 계정이 상기 OP 계정이 수신한 토큰 개수가 상기 소정 수량과 일치하는 지를 판별하여 일치하는 경우, 상기 OP 계정이 상기 토큰 발행에 대한 사실을 블록에 기록하는 단계를 포함할 수 있다. In one embodiment, after the step of determining the transaction generation, the OPM account receives the authentication 1 key again from the OP account, and compares the re-transmitted authentication 1 key with the regenerated authentication 1 key. determining the validity of the authentication 1 key possessed by the OP account; if the authentication 1 key is valid, sending, by the OPM account, a token issuance transaction of a predetermined amount to the smart contract so that the token is paid to the OP account; and when the OPM account determines whether the number of tokens received by the OP account matches the predetermined quantity, and records the fact that the token issuance by the OP account in a block.

또한, 일 실시예는 상기 토큰 발행에 대한 사실을 블록에 기록하는 단계 이후, 상기 OP 계정이 보유한 소정의 정보를 기초로 상기 토큰의 전송에 사용되는 인증 2키 생성하고 제1 스마트 컨트랙트에 전송하게 하는 단계; 상기 요청에 대한 수행이 완료된 것으로 판별되면, 상기 DB가 저장한 소정의 정보를 기초로 상기 토큰의 전송에 사용되는 인증 2키 생성하고, 상기 제1 스마트 컨트랙트가 인증 2키를 비교하도록 규약이 정해진 상기 제2 스마트 컨트랙트에, 상기 DB로부터 생성된 인증 2키를 전송하게 하는 단계; 및 상기 제2 스마트 컨트랙트의 비교 결과 상기 인증 2키가 동일한 것으로 정보를 수신하면, 상기 인증 2키를 상기 DB에 저장하고, 상기 사용자에게 토큰을 지급하는 단계를 더 포함하고, 상기 토큰은 상기 사용자의 요청에 대한 수행이 완료된 것을 증명하는 용도로 사용될 수 있다. In one embodiment, after the step of recording the fact about issuance of the token in a block, based on the predetermined information held by the OP account, an authentication 2 key used for transmission of the token is generated and transmitted to the first smart contract to do; When it is determined that the execution of the request has been completed, a contract is set so that an authentication 2 key used for transmission of the token is generated based on the predetermined information stored by the DB, and the first smart contract compares the authentication 2 key transmitting the authentication 2 key generated from the DB to the second smart contract; and when receiving information that the authentication 2 key is the same as a result of comparing the second smart contract, storing the authentication 2 key in the DB and providing a token to the user, wherein the token is the user It can be used to prove that the execution of the request has been completed.

또한, 상기 OP 계정이 보유한 소정의 정보 및 상기 DB가 저장한 소정의 정보는 각각, 상기 사용자의 공개키, 상기 토큰의 식별 정보, 및 상기 사용자의 인증 1키와, 상기 소정의 정보가 인증 2키 생성 함수로 입력되었을 때의 시간 정보를 포함하고, 상기 인증 2키는 상기 소정의 정보가 상기 OP 계정의 비밀키로 암호화되어 생성될 수 있다. In addition, the predetermined information held by the OP account and the predetermined information stored in the DB are, respectively, the user's public key, the identification information of the token, the user's authentication 1 key, and the predetermined information is the authentication 2 It includes time information when it is input to the key generation function, and the authentication 2 key may be generated by encrypting the predetermined information with the secret key of the OP account.

또한, 일 실시예는 상기 on-chain에 기록할 투자자 정보를 생성하는 단계 이후, 상기 OPM 계정을 통해 상기 요청의 실행을 관리하는 스마트 컨트랙트에 상기 투자 계약에 따른 차입자 및 투자자의 상태를 증명하는 토큰 발행이 수행되도록 하는 트랜잭션을 생성하고 상기 DB에 접근 권한이 있는 블록체인 계정인 OP(operator) 계정을 생성하는 단계; 상기 OPM 계정을 통해 상기 on-chain에 업로드된 상기 투자자의 Key Value를 복호화하여 구한 상기 투자자의 인증 1키를 상기 OP 계정에 전송하고, 상기 OP 계정이 상기 OPM 계정으로부터 전송 받은 상기 투자자의 인증 1키와 상기 DB에 저장된 상기 투자자의 TxID로부터 추출한 인증 1키를 비교하도록 하는 제1 위변조 판단 단계; 상기 OPM 계정을 통해 상기 on-chain에 업로드된 상기 차입자의 Key Value를 복호화하여 구한 상기 차입자의 인증 1키를 상기 OP 계정에 전송하고, 상기 OP 계정이 상기 OPM 계정으로부터 전달받은 상기 차입자의 인증 1키와 상기 DB에 저장된 상기 차입자의 TxID로부터 추출한 인증 1키를 비교하도록 하는 제2 위변조 판단 단계; 및 상기 제1 및 제2 위변조 판단을 기초로 상기 트랜잭션 생성을 결정하는 단계를 더 포함할 수 있다. In addition, in one embodiment, after the step of generating investor information to be recorded in the on-chain, a token that proves the status of borrowers and investors according to the investment contract to a smart contract that manages the execution of the request through the OPM account creating a transaction for issuing issuance and creating an OP (operator) account, which is a block chain account with permission to access the DB; Transmits the investor's authentication 1 key obtained by decrypting the investor's Key Value uploaded to the on-chain through the OPM account to the OP account, and the OP account receives the investor's authentication 1 transmitted from the OPM account a first forgery determination step of comparing the key and the authentication 1 key extracted from the investor's TxID stored in the DB; The borrower's authentication 1 key obtained by decrypting the borrower's Key Value uploaded to the on-chain through the OPM account is transmitted to the OP account, and the OP account receives the borrower's authentication 1 from the OPM account a second forgery determination step of comparing the key and the authentication 1 key extracted from the borrower's TxID stored in the DB; and determining the transaction generation based on the first and second forgery determinations.

또한, 일 실시예는 상기 트랜잭션 생성을 결정하는 단계 이후, 상기 OPM 계정이 상기 OP 계정으로부터 상기 투자자의 인증 1키를 다시 전송받고, 상기 다시 전송 받은 투자자의 인증 1키를 상기 투자자의 재생성된 인증 1키와 비교하여 상기 OP 계정이 보유하고 있는 투자자의 인증 1키의 유효성을 판단하는 단계; 상기 투자자의 인증 1키가 유효하면, 상기 OPM 계정이 상기 스마트 컨트랙트에 소정 수량의 토큰 발행 트랜잭션을 전송하여 제1 토큰이 상기 OP 계정에 지급되도록 하는 단계; 상기 OPM 계정이 상기 OP 계정이 수신한 제1 토큰 개수가 상기 소정 수량과 일치하는 지를 판별하여 일치하는 경우, 상기 OP 계정이 상기 제1 토큰 발행에 대한 사실을 블록에 기록하는 단계; 상기 OPM 계정이 상기 OP 계정으로부터 상기 차입자의 인증 1키를 다시 전송 받고, 상기 다시 전송 받은 차입자의 인증 1키를 상기 차입자의 재생성된 인증 1키와 비교하여 상기 OP 계정이 보유하고 있는 상기 차입자의 인증 1키의 유효성을 판단하는 단계; 상기 차입자의 인증 1키가 유효하면, 상기 OPM 계정이 상기 스마트 컨트랙트에 소정 수량의 토큰 발행 트랜잭션을 전송하여 제2 토큰이 상기 OP 계정에 지급되도록 하는 단계; 및 상기 OPM 계정이 상기 OP 계정이 수신한 제2 토큰 개수가 상기 소정 수량과 일치하는 지를 판별하여 일치하는 경우, 상기 OP 계정이 상기 제2 토큰 발행에 대한 사실을 블록에 기록하는 단계를 더 포함할 수 있다. In addition, in one embodiment, after the step of determining the transaction generation, the OPM account receives the investor's authentication 1 key from the OP account again, and the re-transmitted investor's authentication 1 key is the regenerated authentication of the investor judging the validity of the investor's authentication 1 key held by the OP account by comparison with the 1 key; if the investor's authentication 1 key is valid, sending, by the OPM account, a token issuance transaction of a predetermined amount to the smart contract so that a first token is paid to the OP account; determining, by the OPM account, whether the number of first tokens received by the OP account matches the predetermined quantity, and recording the fact that the first token issuance by the OP account in a block; The OPM account receives the borrower's authentication 1 key from the OP account again, compares the re-transmitted borrower's authentication 1 key with the borrower's regenerated authentication 1 key, determining the validity of the authentication 1 key; if the borrower's authentication 1 key is valid, sending, by the OPM account, a token issuance transaction of a predetermined amount to the smart contract so that a second token is paid to the OP account; and if the OPM account determines whether the number of second tokens received by the OP account matches the predetermined quantity, recording the fact that the OP account is issuing the second token in a block can do.

또한, 일 실시예는 상기 제1 및 제2 토큰 발행에 대한 사실을 블록에 기록하는 단계 이후, 상기 투자자 및 상기 차입자 각각에 대하여, 상기 OP 계정이 보유한 소정의 정보를 기초로 상기 제1 및 제2 토큰의 전송에 사용되는 인증 2키 생성하고 제1 스마트 컨트랙트에 전송하게 하는 단계; 상기 요청에 대한 수행이 완료된 것으로 판별되면, 상기 DB가 저장한 소정의 정보를 기초로 상기 제1 및 제2 토큰의 전송에 사용되는 인증 2키 생성하고, 상기 제1 스마트 컨트랙트가 인증 2키를 비교하도록 규약이 정해진 상기 제2 스마트 컨트랙트에, 상기 DB로부터 생성된 인증 2키를 전송하게 하는 단계; 및 상기 제2 스마트 컨트랙트의 비교 결과 상기 인증 2키가 동일한 것으로 정보를 수신하면, 상기 인증 2키를 상기 DB에 저장하고, 상기 투자자 및 차입자 각각에게 상기 제1 및 제2 토큰을 지급하는 단계를 더 포함하고, 상기 제1 토큰은 상기 투자자의 원리금 수취권을 증명하는 용도로 사용되고, 상기 제2 토큰은 상기 차입자의 대출 채무를 증명하는 용도로 사용될 수 있다. In addition, in one embodiment, after the step of recording the fact about the first and second token issuance in a block, for each of the investor and the borrower, the first and second tokens based on predetermined information held by the OP account 2 generating an authentication 2 key used for transmission of the token and sending it to the first smart contract; When it is determined that the execution of the request is completed, an authentication 2 key used for transmission of the first and second tokens is generated based on the predetermined information stored by the DB, and the first smart contract generates the authentication 2 key transmitting the authentication 2 key generated from the DB to the second smart contract with a set protocol for comparison; and if information is received that the authentication 2 key is the same as a result of the comparison of the second smart contract, storing the authentication 2 key in the DB, and providing the first and second tokens to the investor and borrower, respectively. Further comprising, the first token may be used for the purpose of proving the principal and interest receivables of the investor, and the second token may be used for the purpose of proving the loan debt of the borrower.

또한, 상기 인증 1키는 상기 사용자가 처음으로 로그인한 시간 정보를 비밀키로 사용하여 상기 사용자의 계정 정보를 포함하는 데이터를 암호화하여 생성될 수 있다. In addition, the authentication 1 key may be generated by encrypting data including the user's account information by using the time information of the first login by the user as a secret key.

또한, 상기 Key Value는 상기 인증 1키를 특정하는 인덱스 번호와 함께 상기 TxID를 OPM의 비밀키 또는 공개키로 암호화하여 생성될 수 있다. In addition, the Key Value may be generated by encrypting the TxID with an index number specifying the authentication 1 key with a private key or a public key of the OPM.

일 실시예에 따른 블록체인 기반의 서비스 장치는 소정의 동작을 수행하도록 하는 명령어들을 저장하는 하나 이상의 메모리; 및 상기 하나 이상의 메모리와 동작 가능 하도록 연결되어 상기 명령어들을 실행하도록 설정된 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는 사용자의 블록체인 계정을 생성, 상기 사용자의 고유 정보를 암호화한 인증 1키를 생성, 및 상기 인증 1키를 포함하는 정보를 암호화한 TxID를 생성하고 off-chain DB에 저장하는 동작; 상기 TxID를 포함하는 데이터를 상기 장치가 관리하는 블록체인 계정인 OPM(operator master)의 비대칭키로 암호화한 Key Value을 상기 DB에 저장 및 on-chain에 업로드하는 동작; 및 상기 사용자로부터 소정의 동작에 대한 요청을 수신하는 경우, 상기 요청 시점 이후 인증 1키를 재생성하고, 상기 on-chain에 업로드된 Key Value를 기초로 상기 DB에 저장된 Key Value를 검색하고, 상기 검색된 Key Value를 상기 비대칭키의 대응키로 복호화하여 구한 인증 1키와 상기 재생성된 인증 1키를 비교하는 위변조 판단을 기초로 상기 요청에 대한 수행을 결정하는 동작을 수행할 수 있다. A block chain-based service device according to an embodiment includes one or more memories for storing instructions to perform a predetermined operation; and one or more processors configured to be operatively connected to the one or more memories to execute the instructions, wherein the one or more processors create a user's block chain account and generate an authentication 1 key encrypted with the user's unique information , and generating an encrypted TxID of information including the authentication 1 key and storing it in an off-chain DB; an operation of encrypting the data including the TxID with an asymmetric key of an operator master (OPM), which is a block chain account managed by the device, in the DB and uploading it to the DB and on-chain; and when a request for a predetermined operation is received from the user, the authentication 1 key is regenerated after the request time, the key value stored in the DB is searched based on the key value uploaded to the on-chain, and the retrieved An operation for determining the execution of the request may be performed based on a forgery determination of comparing the regenerated authentication 1 key with the authentication 1 key obtained by decrypting the key value with the corresponding key of the asymmetric key.

본 발명의 실시예에 따르면 P2P 대출 행위를 수행함에 있어서, 블록체인 기반의 서비스 장치가 사용자의 블록체인 지갑을 직접 관리하여, 사용자로 하여금 직접 블록체인 지갑을 사용하는 일이 없게 하여 불편을 해소하고, 모든 거래의 자격증명과 인증을 중계하여 블록체인의 장점을 제공하는 효과가 있다. According to an embodiment of the present invention, in performing P2P lending, the block chain-based service device directly manages the user's block chain wallet, so that the user does not use the block chain wallet directly to solve the inconvenience and , it has the effect of providing the advantages of blockchain by relaying the credentials and authentication of all transactions.

또한, 사용자의 요청에 대한 수행이 완료된 것을 증명하면서 양도 가능한 사용자 고유 토큰을 발행하여, P2P 대출에 따른 원리금 수취권이나 채무 상태를 증명하면서 사용자의 권리나 채무를 양도할 수 있게 한다. In addition, by issuing a transferable user-specific token while proving that the user's request has been completed, the user's rights or debts can be transferred while proving the principal and interest receivables or debt status according to the P2P loan.

나아가 현실 세계에 존재하는 여러 자산 권리를 각종 토큰화된 디지털 자산으로 증명하고 이와 관련된 참여자의 자격증명, 각종 자산의 등록 및 거래 증명에 대한 신뢰할 수 있는 자동화된 공증 기능을 제공할 수 있다.Furthermore, it is possible to prove the rights of various assets in the real world with various tokenized digital assets, and provide a reliable and automated notarization function for the relevant participant's credentials, the registration of various assets, and the transaction proof.

이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.In addition, various effects directly or indirectly identified through this document may be provided.

도 1은 일 실시 예에 따른 블록체인 기반의 P2P 대출 서비스 자율보증증명 장치, 투자자 단말 및 차입자 단말을 포함하는 P2P 대출 시스템과 블록체인 네트워크의 동작 환경을 나타내는 구성도이다.
도 2는 일 실시 예에 따른 블록체인 기반의 P2P 대출 서비스 자율보증증명 장치의 구성 블록도이다.
도 3은 일 실시예에 따라 투자자 관점에서 P2P 서비스가 수행되는 프로세스의 개념도이다.
도 4는 일 실시예에 따라 차입자 관점에서 P2P 서비스가 수행되는 프로세스의 개념도이다.
도 5는 일 실시예에 따른 투자자의 인증에 사용되는 키들을 생성하는 프로세스의 흐름도이다.
도 6은 일 실시예에 따른 투자자의 투자 선택에 따라 인증 1키를 통해 인증되는 프로세스의 흐름도이다.
도 7은 일 실시예에 따라 차입자 대출 요청을 투자자가 선택하여 매칭되기까지 인증 1키를 통해 인증되는 프로세스의 흐름도이다.
도 8은 일 실시예에 따라 투자자의 투자 정보 및 차입자의 대출 정보를 생성하고 스마트 컨트랙트에 업로드하는 프로세스의 흐름도이다.
도 9a, 9b는 일 실시예에 따라 OP 계정에 투자자의 토큰 및 차입자의 토큰을 발행하는 프로세스의 흐름도이다.
도 10a, 10b은 일 실시예에 따라 인증 2키를 생성하고 투자자의 계정 및 차입자의 계정에 토큰을 발행하는 프로세스의 흐름도이다.
1 is a block diagram illustrating an operating environment of a P2P loan system and a block chain network including a block chain-based P2P loan service autonomous guarantee verification device, an investor terminal, and a borrower terminal according to an embodiment.
2 is a block diagram of a block chain-based P2P loan service autonomous guarantee verification apparatus according to an embodiment.
3 is a conceptual diagram of a process in which a P2P service is performed from an investor's point of view according to an embodiment.
4 is a conceptual diagram of a process in which a P2P service is performed from a borrower's perspective according to an embodiment.
5 is a flowchart of a process for generating keys used for authentication of an investor, according to an embodiment.
6 is a flowchart of a process of being authenticated through an authentication 1 key according to an investment selection of an investor according to an embodiment.
7 is a flowchart of a process in which a borrower loan request is authenticated through an authentication 1 key until the borrower loan request is selected and matched according to an embodiment;
8 is a flowchart of a process of generating and uploading investment information of an investor and loan information of a borrower to a smart contract according to an embodiment.
9A, 9B are flow diagrams of a process for issuing an investor's token and a borrower's token to an OP account according to one embodiment.
10A and 10B are flow diagrams of a process for generating an authentication 2 key and issuing tokens to an investor's account and a borrower's account, according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.  그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various forms, only these embodiments make the disclosure of the present invention complete, and   with ordinary knowledge in the art to which the present invention belongs It is provided to fully inform the person of the scope of the invention.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다.  그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.  그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, detailed descriptions of well-known functions or configurations will be omitted except when it is actually necessary to describe the embodiments of the present invention. In addition, the terms to be described later are terms defined in consideration of functions in an embodiment of the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification.

도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.The functional blocks shown in the drawings and described below are merely examples of possible implementations. Other functional blocks may be used in other implementations without departing from the spirit and scope of the detailed description. Also, although one or more functional blocks of the present invention are represented as separate blocks, one or more of the functional blocks of the present invention may be combinations of various hardware and software configurations that perform the same function.

또한 어떤 구성 요소들을 포함한다는 표현은 개방형의 표현으로서 해당 구성 요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성 요소들을 배제하는 것으로 이해되어서는 안 된다.In addition, the expression including certain components is an open expression and merely refers to the existence of the corresponding components, and should not be construed as excluding additional components.

나아가 어떤 구성 요소가 다른 구성 요소에 연결되어 있다거나 접속되어 있다고 언급될 때에는, 그 다른 구성 요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 한다. Furthermore, when a component is referred to as being connected or connected to another component, it may be directly connected or connected to the other component, but it should be understood that another component may exist in the middle.

이하에서는 도면들을 참조하여 본 발명의 실시예들에 대해 설명하도록 한다. Hereinafter, embodiments of the present invention will be described with reference to the drawings.

도 1은 일 실시 예에 따른 블록체인 기반의 P2P 대출 서비스 자율보증증명 장치(10)(이하, '서버'로 지칭), 투자자 단말(20) 및 차입자 단말(30)을 포함하는 P2P 대출 시스템(1)과 블록체인 네트워크의 동작 환경을 나타내는 구성도이다.1 is a P2P loan system ( 1) and a block diagram showing the operating environment of the blockchain network.

도 1을 참조하면, P2P 대출 시스템(1)은 블록체인 네트워크와 연동하여 동작할 수 있다. 이하, 일 실시예에 따른 P2P 대출 시스템(1)의 구성에 대하여 먼저 살펴보고, P2P 대출 시스템(1)과 연동되는 블록체인 네트워크의 특징을 설명한다. Referring to FIG. 1 , the P2P loan system 1 may operate in conjunction with a blockchain network. Hereinafter, the configuration of the P2P loan system 1 according to an embodiment will be first described, and features of the blockchain network interworking with the P2P loan system 1 will be described.

P2P 대출 시스템(1)은 서버(10), 투자자 단말(20) 및 차입자 단말(30)을 포함할 수 있다. 서버(10), 투자자 단말(20) 및 차입자 단말(30)은 네트워크를 통해 동작 가능하도록 연결되어 정보를 송수신할 수 있다. 예를 들어, 네트워크는 LAN(local area network), WAN(wide area network), 가상 네트워크, 원격 통신 등의 유무선 통신 네트워크를 포함할 수 있다. The P2P loan system 1 may include a server 10 , an investor terminal 20 , and a borrower terminal 30 . The server 10 , the investor terminal 20 , and the borrower terminal 30 may be operably connected through a network to transmit and receive information. For example, the network may include a wired/wireless communication network such as a local area network (LAN), a wide area network (WAN), a virtual network, and telecommunication.

서버(10)는 금융기관의 중개 기능 없이 차입자의 대출 요청에 대해 투자자의 투자를 이어주는 방식으로 대출을 달성하는 P2P 대출 서비스 기능을 제공할 수 있다. 이러한 P2P 대출 서비스의 기능 속에서, 서버(10)는 투자자 및 차입자 각각에게 블록체인 기술 기반의 인증키를 발급하고, 투자자 및 차입자에 의해 발생하는 요청의 동작의 수행 여부를 인증키를 통해 결정할 수 있다. 더하여, 투자자 및 차입자의 요청이 수행되면, 각각에게 고유의 토큰을 발행하여, 투자자 및 차입자의 요청에 대한 수행이 완료된 것을 증명하면서 요청이 완료되어 발생한 권리를 양도할 수 있게 한다. The server 10 may provide a P2P loan service function that achieves a loan in a manner that connects an investor's investment to a borrower's loan request without an intermediary function of a financial institution. In the function of this P2P loan service, the server 10 issues an authentication key based on blockchain technology to each of the investors and borrowers, and determines whether to perform the operation of the request generated by the investor and borrower through the authentication key. have. In addition, when the request of the investor and borrower is fulfilled, a unique token is issued to each, thereby proving that the fulfillment of the request of the investor and borrower is completed, while allowing the transfer of the rights generated when the request is completed.

이러한 기능은 서버(10)가 제공하는 온라인 플랫폼을 통해 수행될 수 있으며, 온라인 플랫폼은 투자자 및 차입자가 각각의 단말(20, 30)을 통해 접속할 수 있다. These functions may be performed through an online platform provided by the server 10 , and the online platform may be accessed by investors and borrowers through respective terminals 20 and 30 .

투자자 단말(20)은 투자자가 사용하는 단말이다. 투자자는 서버(10)가제공하는 온라인 플랫폼에 게시된 차입자의 대출 요청 리스트를 확인하여 원하는 대출 조건에 투자하고 기 설정된 이자율에 따라 수익을 실현할 수 있다. 또한, 투자자는 대출 조건에 투자하는 경우 원리금 수취권이라는 권리가 생성되고, 본 발명의 실시예에서는 원리금 수취권이 투자자 고유의 토큰으로 구현되어 제3자에게 양도될 수 있다. The investor terminal 20 is a terminal used by investors. The investor can check the borrower's loan request list posted on the online platform provided by the server 10, invest in the desired loan conditions, and realize a profit according to a preset interest rate. In addition, when the investor invests in the loan conditions, a right of principal and interest is created, and in the embodiment of the present invention, the principal and interest is implemented as a token unique to the investor and can be transferred to a third party.

차입자 단말(30)은 차입자가 사용하는 단말이다. 차입자는 서버(10)가제공하는 온라인 플랫폼에 대출을 신청하여 소정의 심사 조건을 통과하면, 온라인 플랫폼에 자신의 대출 조건을 게시할 수 있다. 대출 조건은 대출 금액, 대출 기간, 이자율의 정보를 포함할 수 있다. 이러한 대출 조건은 소정의 기간 안에 1인 이상의 투자자들이 투자를 실행하여 대출 금액을 달성하면, 해당 차입자의 대출 조건에 따라 투자자와 연결되어 대출이 성립된 것으로 볼 수 있다. 또한, 차입자는 대출에 성공하는 경우 채무 의무가 생성되고, 본 발명의 실시예에서는 채무 의무가 차입자 고유의 토큰으로 구현되어 제3자에게 양도될 수 있다.The borrower terminal 30 is a terminal used by the borrower. When the borrower applies for a loan to the online platform provided by the server 10 and passes predetermined examination conditions, the borrower may publish his/her loan conditions on the online platform. The loan condition may include information of a loan amount, a loan period, and an interest rate. In such a loan condition, when one or more investors execute an investment and achieve a loan amount within a predetermined period, it can be considered that the loan is established by being connected with the investor according to the loan condition of the borrower. In addition, when the borrower succeeds in lending, a debt obligation is created, and in an embodiment of the present invention, the debt obligation may be implemented as a borrower's own token and transferred to a third party.

이하, '투자자 및 차입자'를 통칭할 경우 '사용자'라 지칭하며, '투자자 단말(20) 및 차입자 단말(30)'을 통칭할 경우 '사용자 단말'로 지칭하기로 한다. Hereinafter, 'investor and borrower' will be collectively referred to as 'user', and 'investor terminal 20 and borrower terminal 30' will be collectively referred to as 'user terminal'.

서버(10) 및 사용자 단말(20, 30)은 네트워크를 통해 정보를 송수신할 수 있는 다양한 형태의 장치로 구현될 수 있다. 예를 들면, 휴대용 통신 장치(예: 스마트 폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 노트북, 태블릿 PC 등을 포함할 수 있다.The server 10 and the user terminals 20 and 30 may be implemented as various types of devices capable of transmitting and receiving information through a network. For example, it may include a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a notebook computer, a tablet PC, and the like.

블록체인 네트워크는 유무선 통신망 네트워크를 통해 P2P 대출 시스템(1)과 연동되며 P2P 대출 시스템(1)에서 발생하는 데이터를 처리할 수 있다. 블록체인 네트워크는 블록체인 구조의 분산 데이터베이스를 구현하는 P2P 네트워크 시스템으로 이해될 수 있다. The blockchain network is linked with the P2P loan system 1 through a wired/wireless communication network network and can process data generated from the P2P loan system 1 . A blockchain network can be understood as a P2P network system that implements a distributed database of a blockchain structure.

블록체인 네트워크는 서로 연결된 복수 개의 컴퓨팅 장치(이하, '노드')들을 포함하는 P2P 네트워크로 이해될 수 있고, 각각의 노드는 하나 이상의 프로세서를 포함하여 연산을 수행할 수 있다. P2P 대출 시스템(1)에 참여하는 서버(10) 및 사용자는 블록체인 네트워크에 등록된 블록체인 계좌 정보를 가질 수 있다. 블록체인 네트워크는 다양한 노드가 제한없이 참여할 수 있는 퍼블릭 블록체인 및 허가 받은 노드만 참여가 가능하고 노드에 따른 권한이 나눠진 허가형 블록체인의 형태를 포함할 수 있다. A blockchain network may be understood as a P2P network including a plurality of computing devices (hereinafter, 'nodes') connected to each other, and each node may include one or more processors to perform an operation. The server 10 and the user participating in the P2P loan system 1 may have blockchain account information registered in the blockchain network. The blockchain network can include a public blockchain in which various nodes can participate without restrictions, and a permissioned blockchain in which only authorized nodes can participate and the rights are divided according to the nodes.

블록체인 계좌 정보는 비밀키(private key)와 공개키(public key)를 포함할 수 있다. 비밀키는, 블록체인 네트워크에서 트랜잭션(예: 제1 사용자 계정(지갑)으로부터 제2 사용자 계정으로 '디지털 지급수단'이 이체되도록 하는 트랜잭션, 스마트 컨트랙트를 블록체인 네트워크 상에 배포하는 트랜잭션, 스마트 컨트랙트를 실행시키는 트랙잭션 등)이 발생하도록 하기 위한 사용자의 디지털 서명으로 기능할 수 있다. 공개 키는 사용자의 계정 주소(account address)로 기능할 수도 있다. Blockchain account information may include a private key and a public key. The secret key is a transaction in the blockchain network (e.g., a transaction that allows a 'digital payment method' to be transferred from the first user account (wallet) to the second user account, a transaction that distributes a smart contract on the blockchain network, a smart contract It can function as a digital signature of the user to cause a transaction to execute, etc.). The public key may also serve as the user's account address.

비밀키 및 공개키를 이용한 암호화 및 복호화에 대해 설명하도록 한다. 어떤 암호화된 데이터가 있다고 가정할 때, 상기 암호화된 데이터가 특정 비밀키를 이용하여 암호화된 것인지를 검증해야 할 필요가 있을 수 있다. 이때, 비밀키에 대응되는 블록체인 주소를 이용하면 이와 같은 검증이 가능하며, 이러한 검증에는 공개키 기반 구조(public key infrastructure, PKI)에 기초한 방식이 사용될 수 있다.Encryption and decryption using private and public keys will be described. Assuming that there is some encrypted data, it may be necessary to verify whether the encrypted data is encrypted using a specific secret key. In this case, such verification is possible by using a block chain address corresponding to the secret key, and a method based on a public key infrastructure (PKI) may be used for such verification.

보다 구체적으로, 비밀키를 이용하여 암호화된 데이터를, 비밀키와 대응되는 공개키를 이용하여 복호화할 경우, 소정의 값과 동일한 값이 도출된다면 암호화된 데이터가 특정 비밀키를 이용하여 암호화된 것이라고 판단할 수 있으며, 이와 반대로 소정의 값과 동일한 값이 도출되지 않는다면 암호화된 데이터가 특정 비밀키를 이용하여 암호화된 것이 아니라고 판단할 수 있다. More specifically, when data encrypted using a private key is decrypted using a public key corresponding to the private key, if a value equal to a predetermined value is derived, the encrypted data is said to be encrypted using a specific private key. On the contrary, if a value equal to the predetermined value is not derived, it may be determined that the encrypted data is not encrypted using a specific secret key.

따라서, 비밀키를 이용한 암호화를 "서명", 공개키를 이용한 복호화를 해당 서명의 "검증"이라고 각각 칭할 수 있다. 특정 비밀키를 통한 서명의 검증은, 해당 비밀키에 대응되는 공개키를 이용한 복호화를 통해서만 가능하도록 할 수 있다. 이와 같은 알고리즘은 "비대칭키 암호화 알고리즘"이라 칭해지며, 구체적으로는 RSA, ECDSA 등의 알고리즘이 사용될 수 있다. Accordingly, encryption using the private key may be referred to as a "signature", and decryption using the public key may be referred to as "verification" of the corresponding signature. Verification of a signature through a specific private key may be enabled only through decryption using a public key corresponding to the corresponding private key. Such an algorithm is referred to as an "asymmetric key encryption algorithm", and specifically, algorithms such as RSA and ECDSA may be used.

한편, 상술한 예시에 기재된 '디지털 지급수단'은 암호화폐(crypto currency)를 포함할 수 있다. 암호화폐는 블록체인 네트워크 내에서 분산형 시스템 방식으로 기록되는 지급수단이며, 디지털 토큰(digital token, 이하 '토큰')을 포함하는 개념의 용어로 사용되기도 하지만, 본 문서의 설명에서는 이해의 편의를 위해 '암호화폐'와 '토큰'을 아래와 같이 구분하여 사용하기로 한다. On the other hand, the 'digital payment means' described in the above-described example may include a cryptocurrency (crypto currency). Cryptocurrency is a means of payment that is recorded in a distributed system manner within a blockchain network, and is also used as a term for a concept that includes a digital token (hereinafter, 'token'). For this purpose, we will use 'cryptocurrency' and 'token' separately as follows.

본 문서의 설명에서 암호화폐는 하나의 블록체인 네트워크가 탄생하는 순간부터 데이터 기록 및 신뢰 유지의 보상 수단으로 사용되는 지급수단을 지칭하며, 이러한 의미로 암호화폐를 지칭하는 경우에는 네이티브 암호화폐라는 명칭으로 불리기도 한다. In the description of this document, cryptocurrency refers to a payment method used as a compensation method for data recording and trust maintenance from the moment a blockchain network is created. Also called

본 문서의 설명에서 토큰은 하나의 블록체인 네트워크에서 부가적으로 발생한 디지털 교환수단으로서 소정의 용도 또는 가치(ex. 원리금 수취권, 채무 증명)를 지닐 수 있다. 토큰은 블록체인 네트워크에 참여하는 노드가 자발적으로 생성할 수 있으며, 블록체인 네트워크 내에서 분산형 시스템 방식으로 토큰의 발생, 이체, 사용 정보가 기록될 수 있다. In the description of this document, a token may have a predetermined purpose or value (ex. principal and interest receivables, proof of debt) as a digital exchange means additionally generated in one blockchain network. Tokens can be voluntarily generated by nodes participating in the blockchain network, and token generation, transfer, and usage information can be recorded in a distributed system within the blockchain network.

트랜잭션은 서버(10)가 관리하는 블록체인 계정인 OPM(Operator Master) 또는 OP(Operator) 계정에 의해 발생될 수 있다. 트랜잭션은 투자자, 차입자, 대출 정보, 투자 정보, 고유 토큰의 발행/이체에 관한 정보, 스마트 컨트랙트에 관한 정보를 포함할 수 있다. 노드는 트랜잭션의 처리 결과를 블록체인을 통해 확인할 수 있다.A transaction may be generated by an OPM (Operator Master) or OP (Operator) account, which is a blockchain account managed by the server 10 . A transaction may include information about investors, borrowers, loan information, investment information, information about issuance/transfer of unique tokens, and information about smart contracts. Nodes can check the processing results of transactions through the blockchain.

블록체인 네트워크상에서 발생되는 트랜잭션들은 상기 트랜잭션들을 생성한 주체의 블록체인 계좌의 비밀 키에 의해 암호화 서명되므로, 블록체인 네트워크상에 위변조가 불가능한 암호학적 증명 데이터로서 기록될 수 있다.Transactions that occur on the blockchain network are cryptographically signed by the secret key of the blockchain account of the subject who created the transactions, so they can be recorded as cryptographic proof data that cannot be forged or tampered with on the blockchain network.

트랜잭션이 발생되면, 블록체인 네트워크의 노드들은 발생한 트랜잭션의 무결성을 검증하고, 블록체인 네트워크에 구현된 합의 알고리즘에 기초해 기 생성된 블록에 이어질 새로운 블록을 생성하며, 새로이 생성된 블록은 다른 노드들에게 전파되면서 트랜잭션이 실행될 수 있다. 블록은 복수의 트랜잭션 정보를 포함할 수 있다. When a transaction occurs, the nodes of the blockchain network verify the integrity of the transaction, and based on the consensus algorithm implemented in the blockchain network, create a new block that will follow the previously created block. The transaction can be executed as it is propagated to A block may include a plurality of transaction information.

블록에 대한 정보는 노드들이 공유하는 트랜잭션 데이터베이스에 저장될 수 있다. 트랜잭션 데이터베이스는 복수 개의 노드들이 같은 정보를 공유하는 공공 원장(public ledger)으로 이해될 수 있다. 이와 같이, 본 문서에서 블록체인 네트워크에 업로드되는 정보는 on-chain에 업로드 된다고 표현하며, 블록체인 네트워크에 기록되지 않고 서버(10)에 저장되는 정보는 off-chain에 저장된다는 통상의 용어로 기술하기로 한다. Block information can be stored in a transaction database shared by nodes. The transaction database may be understood as a public ledger in which a plurality of nodes share the same information. As such, in this document, information uploaded to the blockchain network is expressed as being uploaded on-chain, and information stored in the server 10 without being recorded in the blockchain network is described in general terms that are stored off-chain. decide to do

블록체인 네트워크는 다양한 노드들에 의해 제공되는 다양한 스마트 컨트랙트를 배포 및 실행할 수 있다. 스마트 컨트랙트는 디지털 명령어로 기재된 규약으로서, 블록체인 네트워크에서 규약의 조건을 따르는 이벤트가 발생할 경우, 정해진 규약에 따라 특정 트랜잭션이 발생하도록 하거나 다른 스마트 컨트랙트를 실행할 수 있다. A blockchain network can deploy and execute various smart contracts provided by various nodes. A smart contract is a protocol written as a digital command, and when an event that follows the conditions of the protocol occurs in the blockchain network, a specific transaction can occur according to the established protocol or other smart contracts can be executed.

스마트 컨트랙트는 컨트랙트 계좌(contract account)를 보유할 수 있다. 컨트랙트 계좌는 블록체인 네트워크에 포함된 노드 또는 다른 스마트 컨트랙트가 상기 스마트 컨트랙트를 동작시키기 위해 트랜잭션을 발생시키는 주소로 이해될 수 있다. 컨트랙트 계좌는 트랜잭션 메시지를 받은 경우, 내부 규약으로 정해진 디지털 명령어에 따라 다음 동작(예: 토큰 발행, 다른 스마트 컨트랙트에 담긴 정보를 비교, 특정 트랜잭션을 생성, 메시지를 읽거나 다른 계좌로 메시지 전송, 다른 스마트 컨트랙트를 생성)을 수행할 수 있다.A smart contract may hold a contract account. A contract account can be understood as an address where a node or other smart contract included in a blockchain network generates a transaction to operate the smart contract. When a contract account receives a transaction message, the following actions (e.g., token issuance, comparison of information in other smart contracts, creation of a specific transaction, reading a message or sending a message to another account, other create smart contract).

도 2는 일 실시 예에 따른 서버(10)의 구성 블록도이다. 2 is a block diagram of a server 10 according to an embodiment.

도 2를 참조하면, 서버(10)는 프로세서(51), 메모리(52) 및 통신 인터페이스(53)를 포함할 수 있다. Referring to FIG. 2 , the server 10 may include a processor 51 , a memory 52 , and a communication interface 53 .

프로세서(51)는 서버(10)의 전반적인 동작을 제어할 수 있다. 프로세서(51)는 Identify & Key Services Module(80) 및 Investment Module(85)을 포함할 수 있다. 프로세서(51)는 메모리(52)에 저장된 명령어들을 실행해 Identify & Key Services Module(80) 및 Investment Module(85)을 구동시킬 수 있다. Identify & Key Services Module(80) 및 Investment Module(85)에 의해 수행되는 동작은 프로세서(51)에 의해 수행되는 동작으로 이해될 수 있다. The processor 51 may control the overall operation of the server 10 . The processor 51 may include an Identify & Key Services Module 80 and an Investment Module 85 . The processor 51 may execute the instructions stored in the memory 52 to drive the Identify & Key Services Module 80 and the Investment Module 85 . The operations performed by the Identify & Key Services Module 80 and the Investment Module 85 may be understood as operations performed by the processor 51 .

도 2에서는 각 모듈의 기본적인 기능을 먼저 설명하고, 도 3 내지 도 10을 통해 프로세서가 수행하는 일련의 동작을 설명한다.In FIG. 2 , the basic function of each module will be described first, and a series of operations performed by the processor will be described with reference to FIGS. 3 to 10 .

Identify & Key Services Module(80)은 비밀키, 공개키, 블록체인 주소, TokenHolderKey, TokenHolderHashKey(인증 1키), TokenHolderHashKeyTxID, Exkey(인증 2키) 등의 키를 생성하고 사용자를 인증할 수 있다. 이때 인증 1키는 사용자 인증을 위해 on-chain과 off-chain 각각에 암호화되어 저장될 수 있고, 사용자가 서버에 소정의 요청을 하는 시점에 새로 인증 1키를 생성하고 기존에 on-chain과 off-chain 저장된 인증 1키와 새로 생성된 인증 1키를 비교함으로써, 요청 시점에서 사용자 정보의 위변조를 판별할 수 있다. 인증 2키는 사용자의 권리나 채무 상태를 증명하는 고유 토큰의 이체에 사용될 수 있다. 인증 1키와 인증 2키에 대한 상세한 설명은 도 3 내지 도 10에서 후술한다. Identify & Key Services Module(80)은 블록체인 네트워크(20)에 배포될 스마트 컨트랙트 관련 정보를 생성하고, 특정 규약에 따라 스마트 컨트랙트를 생성하며, 스마트 컨트랙트를 블록체인 네트워크(20)에 배포할 수 있다. 또한 Identify & Key Services Module(80)은 서버가 관리하는 블록체인 계정인 OPM 계정 및 OP 계정을 생성 및 제어할 수 있다. Identify & Key Services Module (80) can generate keys such as private key, public key, block chain address, TokenHolderKey, TokenHolderHashKey (authentication 1 key), TokenHolderHashKeyTxID, Exkey (authentication 2 key) and authenticate the user. At this time, the authentication 1 key can be encrypted and stored in each on-chain and off-chain for user authentication. -chain By comparing the stored authentication 1 key with the newly created authentication 1 key, it is possible to determine forgery or falsification of user information at the time of request. The authentication 2 key can be used to transfer a unique token that proves the user's rights or debt status. Detailed descriptions of the authentication 1 key and the authentication 2 key will be described later with reference to FIGS. 3 to 10 . The Identify & Key Services Module 80 can create smart contract related information to be distributed in the blockchain network 20 , create a smart contract according to a specific protocol, and distribute the smart contract to the blockchain network 20 . . In addition, the Identify & Key Services Module (80) can create and control the OPM account and the OP account, which are blockchain accounts managed by the server.

Investment Module(85)은 투자와 관련된 투자자 정보, 대출과 관련된차입자 정보 및 투자자와 차입자가 매칭되어 성사된 대출 정보를 생성할 수 있다. Investment Module(85)가 생성한 정보는 사용자의 인증에 사용될 수 있고, 인증 후 생성된 정보들이 on-chain에 기록될 수 있다. Investment Module(85)은 블록체인 네트워크(20)에 배포될 스마트 컨트랙트 관련 정보를 생성하고, 특정 규약에 따라 스마트 컨트랙트를 생성하며, 스마트 컨트랙트를 블록체인 네트워크(20)에 배포할 수 있다. The investment module 85 may generate information about an investment-related investor, information about a borrower related to a loan, and information about a loan completed by matching the investor and the borrower. Information generated by the Investment Module 85 can be used for user authentication, and information generated after authentication can be recorded on-chain. The Investment Module 85 can create smart contract related information to be distributed in the blockchain network 20 , create a smart contract according to a specific protocol, and distribute the smart contract to the blockchain network 20 .

메모리(52)는 TokenIndex DB(투자자 저장: 100, 차입자 저장: 150), TokenHolderKey DB(200), TokenHolderHashKey DB(300), 및 Exkey DB(투자자 저장: 400, 차입자 저장: 450)를 포함할 수 있고, 프로세서(51)의 동작을 수행시킬 수 있는 명령어들을 저장할 수 있다. Memory 52 may include TokenIndex DB (Investor Store: 100, Borrower Store: 150), TokenHolderKey DB 200, TokenHolderHashKey DB 300, and Exkey DB (Investor Store: 400, Borrower Store: 450) and , instructions for performing the operation of the processor 51 may be stored.

TokenIndex DB(100, 150)는 투자자 및 차입자의 키들, 대출 계약 정보, 계약에 따라 생성되는 키 값들의 정보가 저장될 수 있다. TokenHolderKey DB(200)는 투자자 및 차입자의 TokenHolderKey, TokenHolderHashKey DB(300)는 투자자 및 차입자의 인증 1키, Exkey DB(400, 450)는 투자자 및 차입자의 인증 2키를 저장할 수 있다. The TokenIndex DB ( 100 , 150 ) may store investor and borrower keys, loan contract information, and information on key values generated according to the contract. TokenHolderKey DB 200 may store TokenHolderKey of investors and borrowers, TokenHolderHashKey DB 300 may store one authentication key of investors and borrowers, and Exkey DBs 400 and 450 may store two authentication keys of investors and borrowers.

통신 인터페이스(53)는 블록체인 네트워크와 통신하고, P2P 대출 시스템(1)에 포함된 구성들과 정보를 송수신 할 수 있게 한다. 이를 위해, 통신 인터페이스(53)는 무선 통신모듈 또는 유선 통신모듈을 포함할 수 있다.The communication interface 53 communicates with the blockchain network, and enables transmission and reception of information with the components included in the P2P lending system 1 . To this end, the communication interface 53 may include a wireless communication module or a wired communication module.

도 3은 일 실시예에 따라 투자자 관점에서 P2P 대출 서비스가 수행되는 프로세스의 개념도이다. User1은 투자자를 의미한다. 3 is a conceptual diagram of a process in which a P2P loan service is performed from an investor's point of view according to an embodiment. User1 means an investor.

도 3을 참조하면, 투자자의 모든 계약 거래 및 토큰을 포함한 각종 인증 키의 정보를 저장하는 투자자 전용 TokenIndex(도 3-100)에서 사용자 고유 데이터로 암호화된 TokenHolderKey를 생성하고(도 3-200), 토큰을 부여 받기 전까지의 투자자 가상계좌거래 인증용 TokeyHolderHashKey(도 3-300, 이하 인증 1키)를 받아 투자자의 투자 계약 건을 관장하는 계약 주관자 OP 계정을 생성하고 관리하는 블록체인 계정인 OPM(도 3-500), 및 특정 투자/대출 계약 건을 관장하는 OP(도 3-600)에서 투자자와 차입자에게 토큰 최종 지급전까지, 투자자의 분산 투자 계약 정보가 훼손되지 않았음을 증명하고, 투자/대출 계약이 성립된 건에 대해서만 투자자에게 고유 토큰 지급 전, 사전인증용 Exkey(도 3-400 - 이하 인증 2키)로 인증이 되면 차입자가 플랫폼에서 토큰을 받은 후에, 투자자의 특정 분산 투자 건의 대한 권리 증명용 원리금 수취권에 대한 토큰 정보 및 상환, 원리금 수취권 마켓에 대한 정보 등 투자 관리 모듈 및 스마트 컨트랙트와 통신 및 사용자 토큰 저장소용으로 사용되는 업데이트된 투자자 전용 TokenIndex(도 3-700)에 관한 것이다.Referring to FIG. 3, a TokenHolderKey encrypted with user-specific data is generated from the investor-only TokenIndex (FIG. 3-100) that stores information of various authentication keys including all contract transactions and tokens of the investor (FIG. 3-200), OPM (Fig. 3-300, hereinafter authentication 1 key), a block chain account that creates and manages the OP account of the contract manager who manages the investor's investment contract by receiving the TokeyHolderHashKey (Fig. 3-500), and the OP in charge of a specific investment/loan contract (FIG. 3-600) to prove that the investor's distributed investment contract information is not damaged until the final payment of tokens to investors and borrowers, and investment/loan Only for the case where the contract is established, the investor's right to a specific distributed investment proposal after the borrower receives the token from the platform if it is authenticated with the Exkey for pre-authentication (Fig. It relates to an updated investor-only TokenIndex (FIG. 3-700) used for communication with smart contracts and investment management modules such as token information and redemption of principal and interest receivables for proof, information on principal and interest market, etc. .

도 4는 일 실시예에 따라 차입자 관점에서 P2P 서비스가 수행되는 프로세스의 개념도이다. User0은 차입자를 의미한다. 4 is a conceptual diagram of a process in which a P2P service is performed from a borrower's perspective according to an embodiment. User0 means the borrower.

도 4를 참조하면, 대출이 목적인 차입자의 경우, 투자자 프로세스와는 달리 투자자의 분산 투자 계약이 진행된 후, 어떤 분산 투자 건이 다수의 투자자들로부터 투자 유치를 성공 했는지 알 수 없는 상황이 발생할 수 있으므로 (1000만원 대출 희망 중 - 투자종료시점까지 분산 투자 받은 액수가 1000만원이거나 1000만원 미만의 가격으로 투자유치 종결) 투자자 케이스와 같이 인증 1키 - 인증 2키를 진행하는 프로세스와는 다른 특징이 발생한다. 즉, 투자자 홍길동이 1000만원으로 10개의 분산투자를 진행하였을 경우, 10개중 3, 4, 7, 9번의 차입자만 투자 유치를 성공하였을 때(1000만원 대출 희망 중 여러 투자자들로부터 1000만원 모집) 투자유치를 성공한 차입자-채권에게만(도 4-650) 토큰을 발행하기 위한 OP 계정(도 4-650)에서 대출 성공한 차입자의 인증 1키(도 4-300)를 처리하는 OP(도 4-650)로부터 인증 1키를 받아, 동일 계약건에서 대출 성공한 차입자들의 인증 2키(도 4-450)를 받고 인증하여 정상적으로 대출금을 지급하고, 토큰 발행 및 저장하는 업데이트 된 차입자용 전용 토큰인덱스 파일(도 4-750)에 관한 것이다. P2P 플랫폼에서는 한정되고 제한된 자격의 참여자와 거래 플랫폼간의 합의 모델(Consensus Model)을 사용하기 위해 허가용 블록체인 네트워크를 사용할 수 있고, 이를 위한 인증 수단으로 참여자들에게 토큰을 지급하기 위한 모든 과정과 거래 상환 및 거래 일부 판매를 위해 토큰을 사용하는 방법을 이하 설명한다. Referring to Figure 4, in the case of a borrower whose purpose is a loan, unlike the investor process, after the investor's diversification investment contract is in progress, it may not be known which diversified investment case succeeded in attracting investment from a large number of investors ( Looking for a loan of 10 million won - The amount of diversified investment until the end of the investment is 10 million won or the investment is terminated at a price of less than 10 million won) As in the case of the investor, a different characteristic occurs from the process of authentication 1 key - authentication 2 key. . In other words, if investor Hong Gil-dong made 10 diversified investments with 10 million won, only 3, 4, 7, and 9 borrowers out of 10 succeeded in attracting investment (10 million won from several investors who are hoping for a 10 million won loan). Borrower who succeeded in attracting - OP to process authentication 1 key (FIG. 4-300) of borrower who succeeded in lending in OP account (FIG. 4-650) for issuing tokens only (FIG. 4-650) to receivables (FIG. 4-650) An updated exclusive token index file for borrowers that receives and authenticates the authentication 1 key from borrowers who succeeded in lending in the same contract (Fig. 4-450), pays the loan normally, and issues and stores tokens (Fig. 4- 750). In the P2P platform, a blockchain network for permission can be used to use the consensus model between participants with limited and limited qualifications and the transaction platform, and all processes and transactions to pay tokens to participants as an authentication method for this purpose. How tokens can be used for redemption and sale of part of the transaction is described below.

도 5은 일 실시예에 따른 투자자의 인증에 사용되는 키들을 생성하는 프로세스의 흐름도이다. 5 is a flowchart of a process for generating keys used for authentication of an investor, according to an embodiment.

도 5을 참조하면, User1_TokenIndex는 투자자의 주요 인증키값, 계약 정보, 계약에 따른 토큰 키 값들의 정보가 저장되는 DB이다. 도 3-100에 대응되는 단계로서 투자자는 사용자 회원 가입 후, 첫 로그인 시 [도 5-1] Indentity & Key Service Module에서 투자자의 비밀키 및 공개키를 생성하여 TokenIndex DB (keyfiles)에 저장[도 5-2]한다. 공개키로부터 블록체인 계정 주소를 생성하여 투자자 User1_TokenIndex 에 공개키를 저장하면 PublicKeyState = 1 [도 5-3]과 User1_AddressState = 1 [도 5-3]로 상태값을 업데이트하고 투자자 TokenHolderKey 키 [도 5-4]를 생성한다.Referring to FIG. 5 , User1_TokenIndex is a DB in which the investor's main authentication key value, contract information, and information on token key values according to the contract are stored. As a step corresponding to Fig. 3-100, the investor generates the investor's private key and public key in [Fig. 5-1] Indentity & Key Service Module at the first login after registering as a user member and stores it in the TokenIndex DB (keyfiles) [Fig. 5-2]. When a blockchain account address is created from the public key and the public key is stored in the investor User1_TokenIndex, the state value is updated to PublicKeyState = 1 [Fig. 5-3] and User1_AddressState = 1 [Fig. 5-3], and the investor TokenHolderKey key [Fig. 5- 4] is created.

도 3-200에 대응되는 단계로서 TokenHolderKey 는 사용자의 고유 데이터를 사용하여 사용자 거래 인증을 위한 인증 1키 생성 요소 중 하나이며, 특정 계약건의 거래가 종료된 후에, 토큰의 기능을 위임 받아 이전거래 보기 인증용으로 사용된다. TokenHolderKey 의 생성[도 5-4]은 User1_TokenIndex 의 Payload Set(사용자 고유 데이터) 에서 추출한 사용자 아이디(UserID), Account Address, PublicKey, 가상계좌번호의 사용자 고유 데이터 세트를 갖고 와서 사용자가 첫 로그인한 시간을 [HMAC][HMAC] 비밀키로 사용하여 아래 예시와 같이 해싱 암호화(SHA256) 처리할 수 있다.As a step corresponding to Figure 3-200, TokenHolderKey is one of the authentication key generation elements for user transaction authentication using the user's unique data. used for The creation of TokenHolderKey [Fig. 5-4] takes the user's unique data set of user ID (UserID), Account Address, PublicKey, and virtual account number extracted from the Payload Set (user unique data) of User1_TokenIndex and records the first login time of the user. [HMAC][HMAC] Hashing encryption (SHA256) can be processed as shown in the example below by using the secret key.

TokenHolderKey= SHA256{SecretKey(firstLoginTimeStamp)(UserID, AccountAddress, PublicKey, VirtualBankNum)}] 로 HMAC 해싱을 처리하면 사용자의 TokenHolderKey 값은 2cb96d020dcd6e3ee35b519ff393812220710efced0ab01bebaac3d7905d5032 와 같이 생성된다. (이 값은 사용자의 암호에서 생성되는 비밀키 보다 사용자가 첫 로그인한 시간을 [HMAC][HMAC] 시크릿키를 사용하여 생성하기 때문에 더 유니크하며 예측 불가한 값이다.) TokenHolderKey이 생성되고 User1_TokenIndex에 업데이트[도 5-5] 되면 TokenHolderKey1State 의 상태값을 0에서 1로 변경 [도 5-6]하여 TokenHolderHashKey 생성 준비를 완료한다.When HMAC hashing is processed with TokenHolderKey= SHA256{SecretKey(firstLoginTimeStamp)(UserID, AccountAddress, PublicKey, VirtualBankNum)}], the user's TokenHolderKey value is generated as 2cb96d020dcd6e3ee35b519ff393812220710efced0ab01bebaac3d7905d5032. (This value is more unique and unpredictable because the [HMAC][HMAC] secret key is used to generate the first login time of the user rather than the secret key generated from the user's password.) TokenHolderKey is created and stored in User1_TokenIndex When updated [Fig. 5-5], the state value of TokenHolderKey1State is changed from 0 to 1 [Fig. 5-6] to complete preparation for TokenHolderHashKey creation.

도 3-300에 대응되는 단계로서 TokenHolderHashKey(인증 1키)는 투자자와 차입자의 사용자 인증 및 거래 발생시 서명(SIG.)을 사용하여 거래 유효성을 확인하는데 사용될 용도로 생성한다. 즉 각 계약 별로 토큰이 발행되기 전, 투자 및 대출 계약을 진행하기 위한 인증 방법이 필요한데, 이를 위한 두 가지 방법 중 하나로 인증 1키를 사용할 수 있다. 인증 1키의 생성 [도 5-7]은 TokenHolderHashKey = Hash(UserID, TokenHolderKey, TokenHolderHashKey생성년월일시간분초) 와 같이 사용자 아이디와 [도 3,4-200] 에서 생성된 TokenHolderKey 를 사용하여 해싱 처리하여 키를 생성할 수 있다. 이때 사용될 수 있는 해싱 방법은 SHA224, SHA256, SHA384, SHA512 를 포함할 수 있다. 생성된 인증 1키는 TokenHolderHashKey 모듈의 하위에 있는 투자자용 인증 1키를 관리하는 THHK_User1H1Key()에 업데이트하고 [도 5-8], 투자자용 User1_TokenIndex 에 동시 업데이트한다. [도 5-9] User1_TokenIndex 에 인증 1키가 업데이트 되면 상태값으로 User1_H1KeyState = 1 [도 5 -10]을 모듈1으로 반환하여 Smart Contract[OPM] TokenHolderHashKeyTxID 의 생성을 시작한다. As a step corresponding to FIG. 3-300, TokenHolderHashKey (authentication 1 key) is generated for use in verifying transaction validity by using user authentication of investors and borrowers and signatures (SIG.) when a transaction occurs. That is, before token issuance for each contract, an authentication method is required to proceed with investment and loan contracts. One of two methods for this is to use the authentication 1 key. Generation of authentication 1 key [Fig. 5-7] is a key by hashing using the user ID and the TokenHolderKey generated in [Figs. can create In this case, the hashing method that can be used may include SHA224, SHA256, SHA384, and SHA512. The generated authentication 1 key is updated in THHK_User1H1Key(), which manages the authentication 1 key for investors under the TokenHolderHashKey module [Fig. 5-8], and simultaneously updated in User1_TokenIndex for investors. [Fig. 5-9] When the authentication 1 key is updated in User1_TokenIndex, User1_H1KeyState = 1 [Fig. 5 -10] is returned to module 1 as a state value, and creation of Smart Contract [OPM] TokenHolderHashKeyTxID starts.

[도 5-11] TokenHolderHashKeyTxID 는 가상계좌거래인증, 투자 시작인증 용도로 사용된다. 인증 1키가 처음 생성된 후에, 투자자의 User1_TokenIndex 에 인증 1키가 정상적으로 업데이트 되어, User1_H1KeyState = 1 값이 확인되면[도 5-10], TokenHolderHashKeyTxID() 에서 투자자용 인증 1키의 TxID 관리 함수 THHKTxID_User1H1Key() 에 해당 인증 1키 및 관련정보를 함께 TxID(Transaction ID)로 생성하여 Input State Reference 에 보관하여[도 5-13], 추후 사용자 트랜잭션 발생시, 대조용 원본 인증 1키로 사용하며, 트랜잭션 발생 시 트랜잭션(거래)를 발생시킨 사용자의 인증 1키와 비교하여 매칭되면 블록에 기록하는 용도로 사용한다.[Fig. 5-11] TokenHolderHashKeyTxID is used for virtual account transaction authentication and investment start authentication. After the authentication 1 key is first created, when the authentication 1 key is normally updated in the investor's User1_TokenIndex and the User1_H1KeyState = 1 value is confirmed [Fig. 5-10], the TxID management function of the investor's authentication 1 key in TokenHolderHashKeyTxID() is THHKTxID_User1H1Key( ), the corresponding authentication 1 key and related information are generated as TxID (Transaction ID) and stored in the Input State Reference [Fig. (Transaction) is compared with the authentication 1 key of the user, and if it is matched, it is used for recording in the block.

TxID 생성을 위한 구조 및 암호화는 User1_H1KeyTxID = Keccak-256(RLP[User1_ID, H(User1_ID, TokenHolderKey1), User1_H1KeyState, nonce=1]) 와 같다.The structure and encryption for TxID generation is the same as User1_H1KeyTxID = Keccak-256(RLP[User1_ID, H(User1_ID, TokenHolderKey1), User1_H1KeyState, nonce=1]).

생성된 TxID 를 Key Value로, OPM 계정의 공개키(OPM.P)로 데이터베이스에 암호화하여 저장한다. [도 5-12]: write.User1_H1KeyDB = (TxID, 1, Enc(OPM.P{User1_ID, THHK_User1H1Key, THHK_User1H1KeyState, SigState=0, nonce=1]) 정상적으로 TxID 가 암호화되어 데이터베이스에 저장되면[도 5-12], 트랜잭션의 값들이 인증되어 블록화되기 전에 Smart Contract 에 참조할 수 있는 Input State Reference(on-chain) 에 플랫폼 OPM 계정의 비밀키(OPM.p)로 서명을 하여 on-chain의 투자자 사이드에 저장한다. [도 5-13] write.InputStateReference = Enc(OPM.p[TxID, Index])The generated TxID is encrypted and stored in the database with the key value and the public key of the OPM account (OPM.P). [Fig. 5-12]: write.User1_H1KeyDB = (TxID, 1, Enc(OPM.P{User1_ID, THHK_User1H1Key, THHK_User1H1KeyState, SigState=0, nonce=1]) When TxID is normally encrypted and stored in the database [Fig. 5- 12], before the transaction values are authenticated and blocked, the input state reference (on-chain) that can be referenced in the smart contract is signed with the private key (OPM.p) of the platform OPM account and stored on the investor side of the on-chain. [Fig. 5-13] write.InputStateReference = Enc(OPM.p[TxID, Index])

도 6는 일 실시예에 따른 투자자의 투자 선택에 따라 인증 1키를 통해 인증되는 프로세스의 흐름도이다. 6 is a flowchart of a process of being authenticated through an authentication 1 key according to an investment selection of an investor according to an embodiment.

도 6를 참조하면, 투자자의 인증 1키를 투자자의 비밀키로 서명하여 거래 제출하고, 회원 가입 시점에 생성되어 on-chain 에 저장된 인증 1키(TokenHolderHashKey TXID 에 보관된) 인증 1키와 비교하여 동일한 키로 매칭되면, THHK_User1H1KeyState = 1, SigState = 1 (투자자 전자 서명된 상태)를 리턴하여, 정상적인 인증 1키의 상태를 보존하여 추후 투자자와 차입자의 계약 정보를 암호화 시, 인증 1키를 같이 저장하여 계약 정보의 인증 및 무결성을 체크하는데 사용할 수 있다. Referring to Figure 6, the investor's authentication key is signed with the investor's private key and a transaction is submitted. If the key is matched, THHK_User1H1KeyState = 1, SigState = 1 (investor electronically signed state) is returned, and the state of the normal authentication 1 key is preserved. It can be used to check the authenticity and integrity of information.

도 6의 구체적 프로세스는 다음과 같다. The specific process of FIG. 6 is as follows.

1. 투자자가 플랫폼에서 사용자 별로 제공하는 가상계좌에 예치금을 입금 후, 투자금 1000만원으로 분산투자를 위한 채권들을 화면에서 n개를 선택하고 '투자하기 버튼'을 클릭하면 투자 실행을 확인하는 대화창에서 '투자를 실행하시겠습니까?' 에 사용자 로그인 암호를 입력하면 투자가 실행된다. 1. After the investor deposits a deposit into the virtual account provided by each user on the platform, selects n bonds for diversified investment with an investment of 10 million won on the screen and clicks the 'Invest button' in the dialog window to confirm the investment execution 'Do you want to execute your investment?' Enter the user login password in to execute the investment.

2. 사용자 인증과 각종 인증키 및 암호화를 담당하는 사용자키 (Identity & Key Services) 모듈에서 사용자의 암호를 입력받아 keyfiles 에 암호화되어 저장된 투자자의 비밀키(투p)를 추출한다. 2. The user's password is input from the User Key (Identity & Key Services) module, which is responsible for user authentication and various authentication keys and encryption, and extracts the investor's secret key (two p), which is encrypted and stored in keyfiles.

3. 투자 인증용 인증 1키를 생성 및 투자자의 비밀키로 서명하여 (InvestStart_User1H1Key = Enc(투p(User1_H1Key)) 키를 생성한다.3. Generate the authentication 1 key for investment authentication and sign it with the investor's private key (InvestStart_User1H1Key = Enc(twop(User1_H1Key)) key.

4. 투자 및 대출 관리를 담당하는 투자 관리 모듈(Investment Module) 로 투자자의 인증 1키(InvestStart_User1H1Key)와 투자 및 대출 관리 모듈(Investment Module) 에 있는 투자자 아이디로 투자한 1번 과정에서 입력 받은 투자 정보들(투자금, 선택한 분산투자 정보, 투자금 및 채권들)이 담긴 인스턴스 ContractInfoSetInstance()에 담긴 정보를, 투자 계약 정보들[ContractNum(), SubContractNum(), SelectedBondName()] 로 가져온다.4. Investment information received in the first process of investing with the investor's authentication 1 key (InvestStart_User1H1Key) as the investment management module in charge of investment and loan management and the investor ID in the investment and loan management module (Investment Module) The information contained in ContractInfoSetInstance(), an instance containing items (investment amount, selected diversified investment information, investment amount and bonds), is brought into investment contract information [ContractNum(), SubContractNum(), SelectedBondName()].

5. InvestStart_User1H1KeyMethod(): 투자 계약 정보의 인증 수단을 위해 사용자 인증 1키를 ContractNum(SubContractNum())에 배치한다.5. InvestStart_User1H1KeyMethod(): For the authentication method of investment contract information, the user authentication 1 key is placed in ContractNum(SubContractNum()).

6. 투자자의 인증 1키가 투자 관리 InvestStart_User1H1Key 키가 투자 관리 모듈에 업데이트 되면, 해당 계약 건이 시작되었음을 기록하는 상태값으로 InvestState = 0 에서 InvestState = 1 로 변경하여 투자가 시작되었음을 시스템에 업데이트 한다.6. Investor's authentication 1 key is investment management When the InvestStart_User1H1Key key is updated in the investment management module, the status value that records the start of the contract is changed from InvestState = 0 to InvestState = 1 and the system is updated to indicate that the investment has started.

7. 상기 [4,5,6] 과정을 전체 투자 정보에 업데이트 한다.7. Update the above [4,5,6] process to the entire investment information.

8. InvestState = 1 로 업데이트 되어, 투자가 시작되면 [도 5-13] write.InputStateReference = Enc(OPM.p[TxID, 1]) 로 저장한 인증 1키의 TxID 를 OPM(Operator Master) 계정의 공개키(OPM.P)로 서명을 받아서 복호화(Decrypt) 하여 Dec(OPM.P[TxID,Index]) 8. InvestState = 1 is updated and when investment starts, [Fig. 5-13] Write.InputStateReference = Enc(OPM.p[TxID, 1]) Dec(OPM.P[TxID,Index]) after receiving the signature with the public key (OPM.P) and decrypting

9. 상기 [8] 과정에서 구한 TxID(Transaction ID) 의 인덱스 1값의 TxiD 를 구한다.9. The TxiD of the index 1 value of the TxID (Transaction ID) obtained in the step [8] is obtained.

10. 상기 [8] 과정에서 구한 TxID 를 사용자키 (Identity & Key Services) 모듈로 보낸다. 10. The TxID obtained in the process [8] above is sent to the user key (Identity & Key Services) module.

11. 상기 [9] 과정에서 받은 TxID 를 쿼리(query)하여 데이터베이스에서 TxID 를 키로 해당하는 DB를 찾아, 해당 TxID 와 함께 보관된 암호화된 사용자 아이디와, 사용자 인증 1키 원본을 복호화한다. Dec(OPM.p(TxIDvalue)), TxIdvalue=(User1_ID, THHK_User1H1Key, THHK_User1H1KeyState, SigState, nonce=1)11. Query the TxID received in step [9] to find a DB corresponding to the TxID as a key, and decrypt the encrypted user ID and user authentication 1 key original stored with the TxID. Dec(OPM.p(TxIDvalue)), TxIdvalue=(User1_ID, THHK_User1H1Key, THHK_User1H1KeyState, SigState, nonce=1)

12. 상기 [10] 과정의 복호화 작업이 끝나면 투자 모듈에 보관중인 투자자가 투자 시 제출한 투자용 인증 1키 InvestStart_User1H1Key()를 OPM 계정으로 요청한다. 12. Upon completion of the decryption process in step [10], the investment authentication 1 key InvestStart_User1H1Key() submitted by the investor kept in the investment module during investment is requested to the OPM account.

13. 플랫폼 마스터 계정인 OPM으로 투자 관리 모듈에서 InvestStart_User1H1Key() 에 있는 투자자의 비밀키로 서명을, 투자자의 공개키로 인증 1키를 복호화하여 사용자키 모듈로 리턴한다. 이때 서명을 정상적으로 받았으므로 서명 상태값을 SigState = 1 로 업데이트 한다.13. With the platform master account, OPM, in the investment management module, sign with the investor's private key in InvestStart_User1H1Key(), and decrypt the authentication 1 key with the investor's public key and return it to the user key module. At this time, since the signature was normally received, the signature state value is updated to SigState = 1.

14. 상기 [10] 과정에서 획득한 투자자의 인증 1키(THHK_User1H1Key), 즉 회원가입 시 바로 생성하여 on-chain에 보관한 투자자의 인증 1키와 투자거래가 일어난 시점에 제출된 인증 1키[도 6-12]가 동일한 사용자 아이디인지 확인 후에 두 개의 키가 매칭되는지 확인하여 사용자인증 및 해킹 여부를 판별 할 수 있다.14. The investor's authentication 1 key (THHK_User1H1Key) obtained in the process [10] above, that is, the investor's authentication 1 key created right at the time of membership registration and stored in the on-chain, and the authentication 1 key submitted at the time of the investment transaction [Fig. 6-12], it is possible to determine whether the user is authenticated or hacked by checking whether the two keys match after confirming that the user ID is the same.

15. 상기 [10] 과정에서 획득한 User1_H1Key0와 상기 [12] 과정에서 획득한 User1_H1Key1 이 매칭이 되면 앞으로 OPM[도 3-500, 도 4-550], OP[도 3-600] 에서 사용하게 될 입증된 인증 1키의 값을 리턴한다. return User1_ID, User1_H1Key0, THHK_User1H1KeyState = 1, SigState = 115. When User1_H1Key0 obtained in step [10] and User1_H1Key1 obtained in step [12] match, it will be used in OPM [Fig. 3-500, Fig. 4-550] and OP [Fig. 3-600] Returns the value of the authenticated authentication 1 key. return User1_ID, User1_H1Key0, THHK_User1H1KeyState = 1, SigState = 1

16. 상기 [14] 과정에서 리턴된 값들(User1_ID, User1_H1Key0, THHK_User1H1KeyState = 1, SigState = 1)을 TokenHolderHashKey 모듈로 전송한다.16. The values returned in the [14] process (User1_ID, User1_H1Key0, THHK_User1H1KeyState = 1, SigState = 1) are transmitted to the TokenHolderHashKey module.

17. TokenHolderHashKey 모듈의 투자자 인증 1키 관리 메서드 ValiTHHK_User1H1Key() 에 업데이트 한다.17. Update the investor authentication 1 key management method ValiTHHK_User1H1Key() of the TokenHolderHashKey module.

도 7는 일 실시예에 따라 차입자 대출 요청을 투자자가 선택하여 매칭되기까지 인증 1키를 통해 인증되는 프로세스의 흐름도이다. 7 is a flowchart of a process in which a borrower loan request is authenticated through an authentication 1 key until the borrower loan request is selected and matched according to an embodiment;

도 7를 참조하면, OP(650)에서 차입자의 인증 1키(300)가 확보되어야 차입자에게 {인증 2키(450) 인증 -> 차입자 신청 대출금 지급 -> 토큰 지급의 순서}로 진행 될 수 있는데, 단일 계약에서 지정된 시간 안에, 투자자의 채권에 대한 '분산투자 n 개중 n 개 전부 투자 성공 = 희망 대출금 신청금액 달성'이 될 수도 있고, 안 될 수도 있다. 투자자 인증 1키 프로세스처럼 투자자의 분산투자에 선택된 모든 차입자에게 인증 1키를 발행하고 인증을 받아도, 대출 실패가 발생되는 채권에 해당되는, 해당 채권의 인증 1키를 파기해야 하는 프로세스와 사용할 일이 없는 차입자의 인증 1키를 생성하는 프로세스 낭비가 발생한다. 따라서 투자자의 분산투자 활동에서 대출금 모집에 실패한 케이스 채권명에 해당하는 인증 1키는, 처음부터 발급하지 않는다. 즉 투자자A의 10개의 분산투자 채권 중, 다른 투자자들로부터 플랫폼이 지정한 투자기간(ex: 2주) 에 희망 대출금 1000만원을 분산투자 받은 대출 성공 채권(ex:BondName #23994)들이 6개가 있다고 가정하면, 해당 6개의 채권의 차입자의 인증 1키들만, 정상적인 인증 작업과 서명작업 상태를 거쳐, 다음 프로세스를 진행할 수 있도록 차입자의 인증 1키를 정상적으로 TokenHolderHashKey(300)에 업데이트하는 방법 및 프로세스이다. 이 방법은 정해진 시간 안에 예측 불가능한 각종 거래 결과물에 식별 인증키를 부여하는 프로세스로 응용할 수 있다.Referring to FIG. 7 , when the borrower's authentication 1 key 300 is secured in the OP 650, the borrower can proceed with {authentication 2 key 450 authentication -> borrower application loan payment -> token payment order}. , within a specified time in a single contract, it may or may not be 'successful in all n of n diversified investments = achievement of desired loan application amount' for investors' bonds. Just like the investor authentication 1 key process, the process that requires the destruction of the 1 key authentication of the bond, which is a bond in which loan failure occurs even after issuing and receiving authentication 1 key to all borrowers selected for diversification of investors The process of generating the authentication 1 key of the borrower without it is wasted. Therefore, the authentication 1 key corresponding to the name of the bond in the case of failure to raise loans in the investor's diversified investment activities is not issued from the beginning. That is, it is assumed that among the 10 diversified investment bonds of Investor A, there are 6 successful loan bonds (ex:BondName #23994) in which the desired loan amount of 10 million won is diversified from other investors during the investment period designated by the platform (ex: 2 weeks). Then, it is a method and process for normally updating the authentication 1 key of the borrower to the TokenHolderHashKey 300 so that only the authentication 1 keys of the borrower of the six bonds go through the normal authentication and signing operation conditions, and then proceed with the next process. This method can be applied as a process of granting an identification authentication key to various unpredictable transaction results within a set time period.

도 7의 구체적 프로세스는 다음과 같다.The specific process of FIG. 7 is as follows.

1. 차입자의 인증 1키가 첫 생성되어 (150)번에 업데이트 되었을 때의 상태값(User0_H1KeyState = 1)이다. 차입자의 인증 1키 생성 및 저장 프로세스는 투자자 프로세스와 같이 (도 5: 1~10) 동일하여 중복되는 설명은 생략한다.1. This is the state value (User0_H1KeyState = 1) when the borrower's authentication 1 key is first generated and updated at (150). The borrower's authentication 1 key generation and storage process is the same as that of the investor process (FIGS. 5: 1-10), so a redundant description will be omitted.

2. 차입자의 인증 1키를 생성 즉시, on-Chain에 보관하기 위하여 TxID(Transaction ID) 를 생성(TxID 생성을 위한 구조 및 암호화는 User0_H1KeyTxID = Keccak-256(RLP[User0_ID, H(User0_ID, TokenHolderKey0), User0_H1KeyState, nonce=1]) )하고 (생성방법은 [도 3-300] 의 설명과 동일)2. Immediately after generating the borrower's authentication 1 key, generate a TxID (Transaction ID) to store on-chain (The structure and encryption for TxID generation is User0_H1KeyTxID = Keccak-256(RLP[User0_ID, H(User0_ID, TokenHolderKey0)) , User0_H1KeyState, nonce=1]) ) and (the creation method is the same as described in [Fig. 3-300])

3. 생성된 TxID 를 Key Value로, 플랫폼 오퍼레이터 마스터(OPM) 계정의 공개키(OPM.P)로 데이터베이스에 암호화 하여 저장한다.: write.User0_H1KeyDB = (TxID, 1, Enc(OPM.P{User0_ID, THHK_User0H1Key, THHK_User0H1KeyState, SigState=0, nonce=1])3. The generated TxID as Key Value and the public key (OPM.P) of the platform operator master (OPM) account are encrypted and stored in the database: write.User0_H1KeyDB = (TxID, 1, Enc(OPM.P{User0_ID) , THHK_User0H1Key, THHK_User0H1KeyState, SigState=0, nonce=1])

4. 정상적으로 TxID 가 암호화되어 데이터베이스에 저장되면[도5-1-3], 트랜잭션의 값들이 인증되어 블록화 되기 전에 Smart Contract 에 참조할 수 있는 Input State Reference 에 플랫폼 오퍼레이터 마스터(OPM) 계정의 비밀키로 서명하여 차입자 사이드에 저장한다. write.InputStateReference = Enc(OPM.p[TxID, Index])4. If the TxID is normally encrypted and stored in the database [Fig. 5-1-3], before the transaction values are authenticated and blocked, enter the Input State Reference that can be referred to in the Smart Contract as the secret key of the platform operator master (OPM) account. It is signed and stored on the borrower side. write.InputStateReference = Enc(OPM.p[TxID, Index])

5. 4번 프로세스를 저장한다.5. Save process #4.

6. 1번에서 인증 1키의 첫 생성 상태값(State)으로 로그인한 차입자 아이디의 인증 1키의 상태값으로 User0_H1KeyState = 1 이 되면, 차입자의 대출신청을 투자자의 투자 리스트 페이지에 표시 될 수 있도록 ValidateLendApply() 를 실행 및 처리한다. 차입자 최초 회원 가입 -> 대출 신청 페이지 -> 대출 신청서 제출 후에 플랫폼 운영자로부터 대출 심사 승인을 받으면 Lender_Approve = 0 에서 1로 상태값을 변경한다. 차입 자의 대출 신청 심사 등록(Lender_Approve = 1 )이 되었고, 차입자. 인증 1키가 생성(User0_H1KeyState = 1) 되었다면 차입자에게 알림(이메일, App Push)을 주어 투자 유치 가능 상태를 알려주고,6. When User0_H1KeyState = 1 as the state value of the authentication 1 key of the borrower ID logged in as the first generated state value of the authentication 1 key in step 1, make sure that the borrower’s loan application can be displayed on the investor’s investment list page. Execute and process ValidateLendApply(). When the borrower's initial membership registration -> Loan application page -> After submitting the loan application and receiving approval for loan review from the platform operator, the status value is changed from Lender_Approve = 0 to 1. The borrower's loan application review registration (Lender_Approve = 1 ) has been made, and the borrower. If the authentication 1 key is generated (User0_H1KeyState = 1), a notification (e-mail, App Push) is given to the borrower to inform the investment potential status,

7. 차입자 로그인 후에 '나의 대출 신청 페이지'에서 대출 리스트 페이지에서 '등록버튼'을 클릭하여 대출 신청 심사 등록(Lender_Approve = 1 )을 받은 대출 등록을 원할 때, 차입자가 대출등록 확인을 위하여 차입자의 로그인 시 사용한 암호를 다시 입력한다,7. When the borrower wants to register for a loan that has received the loan application review registration (Lender_Approve = 1) by clicking the 'Register button' on the loan list page on the 'My Loan Application Page' after logging in, the borrower must log in to check the loan registration. Re-enter the password used when

8. 입력한 차입자의 암호를 서버의 사용자키 (Identity & Key Services) 모듈로 보안 전송하여, 사용자의 암호를 입력받아 keyfiles 에 암호화되어 저장된 차입자의 비밀키를 추출한다. 8. Securely transmits the input borrower's password to the server's user key (Identity & Key Services) module, receives the user's password, and extracts the borrower's secret key, which is encrypted and stored in keyfiles.

9. 대출 등록 인증용 차입자의 인증 1키를 재생성(투자자의 투자 시점 새로운 인증 1키 재생성 과정과 동일) 및 차입자의 비밀키(차.p)로 서명한다. (InvestStart_User1H1Key = Enc(차p(User0_H1Key)) 9. Regenerate the borrower's authentication 1 key for loan registration authentication (the same as the process of regenerating a new authentication 1 key at the time of investor's investment) and sign the borrower's private key (car.p). (InvestStart_User1H1Key = Enc(P(User0_H1Key))

10. 9번에서 생성된 차입자 서명의 인증 1키(InvestStart_User0H1Key)와 차입자의 나의 대출 신청 페이지에 있는 대출 신청 정보 - myBondInstance(), 즉 대출신청 정보(대출 사용자 정보, 희망 대출금, 기존대출현황, 신용등급 등)을 포함하여 투자 및 대출 관리를 담당하는 투자 관리 모듈(Investment Module) 로 전송한다.10. The authentication 1 key (InvestStart_User0H1Key) of the borrower's signature created in step 9 and the loan application information on the borrower's My Loan application page - myBondInstance(), that is, loan application information (loan user information, desired loan amount, existing loan status, credit grade, etc.) to the Investment Module, which is in charge of investment and loan management.

11. 10번에서 전송값을 투자 관리 모듈(Investment Module)에서 받으면, 해당 차입자의 아이디로 이전 대출 신청 여부를 체크하고, 진행중인 대출 신청이 없다면 makeNewBondNum() 를 실행하여 사용된 적이 없는 신규 채권명(New BondName)을 발행(Ex: new bondName(#334959))을 발행하여, 차입자의 서명된 인증 1키와 함께 투자자의 투자 리스트 페이지에 표시될 수 있도록 displayNewBondList() 에 업데이트 한다.11. When the transfer value is received from the Investment Module in step 10, it is checked whether a previous loan application has been made with the borrower's ID, and if there is no loan application in progress, execute makeNewBondNum() to name a new bond that has never been used ( New BondName) is issued (Ex: new bondName (#334959)), and the displayNewBondList() is updated so that it can be displayed on the investor's investment list page along with the borrower's signed authentication 1 key.

12. 차입자의 채권명(BondName), 대출 성공 상태(BondRight = 0), 희망 대출금(bondAmount = 1000만원), 차입자 서명된 인증키(InvestStart_User0H1Key)를 투자자의 투자하기 페이지에 표시되는 채권 리스트에, 채권별 코드로 업데이트한다.12. Put the borrower's bond name (BondName), loan success status (BondRight = 0), desired loan amount (bondAmount = 10 million won), and the borrower's signed authentication key (InvestStart_User0H1Key) into the list of bonds displayed on the investor's investment page, Update with star code.

13. 투자자의 투자하기 페이지에 표시되는 채권 리스트에서 분산투자 개수, 예를 들어 10개의 채권을 선택한 후에 투자를 실행하시겠습니까? 에서 투자를 실행. (도 6-1)의 설명과 대응.13. Do you want to execute the investment after selecting the number of diversified investments, for example 10 bonds, from the list of bonds displayed on the investor's Investing page? in running investments. (Fig. 6-1) explanation and correspondence.

14. (도 6-2)의 설명과 대응.14. Description and correspondence of (FIG. 6-2).

15. (도 6-3)의 설명과 대응.15. Description and correspondence of (Fig. 6-3).

16. (도 6-4)의 설명과 대응.16. Description and correspondence of (Fig. 6-4).

17. (도 6-7)의 설명과 대응.17. Description and correspondence of (Figs. 6-7).

18. (도 6-16) 에서 인증(THHK_User1H1KeyState = 1)되고 서명 확인된(SigState = 1) 투자자의 인증 1키가 TokenHolderHashKey(300)에 업데이트 되면 해당 인증 1키를 OPM(500)에서 인증 1키를 담당하는 OPM_TokenHolderHashKey1(Index, User1_ID, OPM_User1H1Key, OPM_User1H1State) 에서 받고, 투자자의 인증 OPM_User1H1State = 1 로 업데이트 되면, OP(600) 에서 투자자의 인증 1키를 담당하는 OP_TokenHolderHashKey1(Index, User1_ID, OP_User1H1Key, OP_User1H1KeyState) 에서 해당 투 자가의 인증 1키를 OPM_User1H1Key = OP_User1H1Key 로 업데이트하고 상태값을 OP_User1H1KeyState = 1로 업데이트하여, On-Chain에서 참여자의 투자 및 대출을 관장하는 OP 에서 해당 계약 건을 정상적으로 업데이트하여 해당 계약정보를 블록화 시킬 수 있는 상태가 시작된다.18. (THHK_User1H1KeyState = 1) and signature-confirmed (SigState = 1) in (FIG. 6-16), when the investor's authentication 1 key is updated in TokenHolderHashKey(300), the corresponding authentication 1 key is converted to the authentication 1 key in the OPM (500) Received from OPM_TokenHolderHashKey1(Index, User1_ID, OPM_User1H1Key, OPM_User1H1State) in charge of , and updated to OPM_User1H1State = 1 for investor’s authentication Update the investor's authentication 1 key to OPM_User1H1Key = OP_User1H1Key and update the status value to OP_User1H1KeyState = 1 A possible state begins.

19. 투자자의 투자 계약건으로 OP(600)에서 해당 투자 계약건(ContractNum())으로 투자가 시작(InvestState=1) 되었고 (도 6-6), 아직 투자 종료가 발생되지 않은 상태(OP_InvestDueTimeState=0)에서, 투자자의 이전 계약건으로 분산 투자한 10건 중 n 건의 채권이 희망 대출금 모집이 완료된 상태 발생(bondRight=1) 된 채권만 필터링하여 분류한다.19. Investment started (InvestState=1) from OP(600) to the corresponding investment contract (ContractNum()) as the investor's investment contract (FIG. 6-6), and the investment has not ended yet (OP_InvestDueTimeState=0) In , n of 10 bonds that have been diversified by the investor’s previous contract are filtered and classified only the bonds that have occurred (bondRight=1) in the state where the desired loan collection is completed.

20. 19 번의 희망 대출금 모집이 완료(bondRight=1) 된 상태인 채권명(bondName)과 이에 연결된 차입자 아이디(User0_ID) 그리고 이 아이디 차입자가 대출 등록 시 사용한 서명된 차입자의 인증 1키 (InvestStart_User0H1Key)를 사용자키 모듈의 BondRight1User0_ValiH1KeyMethod( )로 보내어 bondRight=1인 차입자의 검증된 인증 1키와 서명 상태값을 구한다.20. Enter the name of the bond (bondName) that has completed 19 desired loan collection (bondRight=1), the borrower ID (User0_ID) connected to it, and the signed borrower’s authentication key (InvestStart_User0H1Key) that the borrower with this ID used when registering for a loan Send to BondRight1User0_ValiH1KeyMethod( ) of the user key module to obtain the verified authentication 1 key and signature status value of the borrower with bondRight=1.

21. BondRight1User0_ValiH1KeyMethod( ) : 차입자 인증 1키의 위변조를 검증하고, 20번에서 받은 차입자의 InvestStart_User0H1Key 키를 받아서 Dec(차P(User0_H1Key)) 로 서명을 받아(SigState=1) 확보한 User0_H1Key 를 임시 변수 k1 에 보관한다. 21. BondRight1User0_ValiH1KeyMethod( ): Verifies forgery of borrower authentication 1 key, receives the borrower’s InvestStart_User0H1Key key received in step 20, and signs it with Dec(Difference P(User0_H1Key)) (SigState=1) and sets the secured User0_H1Key to temporary variable k1 keep it in

22. 5-1의 2번에서 생성한 TokenHolderHashKeyTxID 를 획득한다.22. Obtain the TokenHolderHashKeyTxID created in step 2 of 5-1.

23. On-chain 에 있는 (TxID, Index) 를 획득한다. 23. Acquire (TxID, Index) in on-chain.

24. TxID 를 사용자키 모듈로 보낸다. 24. Send the TxID to the user key module.

25. 암호화된 데이터베이스에서 24번에서 받은 TxiD 를 query 하여 차입자가 회원 가입 시 생성된 300번 TokenHolderHashKey에 보관했던 차입자용 인증 1키를 암호화된 데이터베이스에서 복호화하여, Dec(OPM.p(TxiDvalue))하여 (THHK_User0H1Key) 를 구하고, 임시변수 k0 에 보관한다.25. Query the TxiD received in step 24 from the encrypted database, decrypt the borrower’s authentication key stored in TokenHolderHashKey No. 300 created when the borrower signed up for membership, in the encrypted database, and perform Dec(OPM.p(TxiDvalue)) Find (THHK_User0H1Key) and store it in temporary variable k0.

26. validateUserH1Key() 에서 임시 변수 k1 과 k0 에 보관중인 두 개의 키가 매칭되는지 검증한다. 두 키가 매칭이 되면 해당 키의 차입자 아이디와 300 번에 저장되는 차입자의 인증 1키(THHK_User0H1Key) 를 저장하고, 매칭 상태값으로 THHK_User0H1KeyState = 1 로 기록하고 서명 상태 (SigState = 1) 값들을 26. In validateUserH1Key(), verify that the two keys stored in temporary variables k1 and k0 match. When the two keys match, the borrower ID of the corresponding key and the borrower's authentication 1 key (THHK_User0H1Key) stored in No. 300 are stored, THHK_User0H1KeyState = 1 is recorded as the matching state value, and the signature state (SigState = 1) values are stored.

27. 300번, TokenHolderHashKey으로 보낸다.27. No. 300, sent to TokenHolderHashKey.

28. TokenHolderHashKey 에서 위에서 받은 값들을 업데이트 한다.28. Update the values received above in TokenHolderHashKey.

29. 차입자의 인증 1키를 TokenHolderHashKey(321) 에서 각 계약을 담당하는 계정 OP(600) 계정을 생성할 수 있는 OPM(551) 으로 전송한다. (도6 참고) OPM_TokenHolderHashKey0(Index, User0_ID, OPM_User0H1Key, OPM_User0H1State) 으로 전송한다. TokenHolderHashKey DB에 포함된 차입자 인증 1키가 업데이트되어 THHK_User0H1KeyState = 1 이면, 차입자의 인증 1키를 담당하는 OPM의 OPM_User0H1Key의 값을 TokenHolderHashKey DB의 차입자의 인증 1키 THHK_User0H1Key 값으로 업데이트 하고, OPM_User0H1Key 값이 업데이트(OPM_User0H1State=1) 되면 블록체인 계정인 신규 OP 계정(600)을 생성시키고, 신규계약 번호를 생성하여 New ContractNum(), 생성된 신규 OP 계정에 할당한다. 신규 OP 계정이 생성되면, 차입자 ID를 키 값으로 OP 모듈에서 차입자 인증 1키를 관리하는 OP_TokenHolderHashKey0() 에서 OPM_TokenHolderHashKey0 에 있는 차입자의 인증 1키 값을 OPM_User0H1State=1 상태값을 체크하여 OP_TokenHolderHashKey0(Index, User0_ID, OP_User0H1Key, OP_User0H1KeyState) 획득하여 업데이트 되면 OP_User0H1KeyState = 1 를 반환한다. (도 8-550 참고)29. Transfer the borrower's authentication 1 key from TokenHolderHashKey (321) to the account OP (600) in charge of each contract to the OPM (551) that can create an account. (See Fig. 6) It is transmitted to OPM_TokenHolderHashKey0(Index, User0_ID, OPM_User0H1Key, OPM_User0H1State). If the borrower authentication 1 key included in the TokenHolderHashKey DB is updated and THHK_User0H1KeyState = 1, the OPM_User0H1Key value of the OPM responsible for the borrower’s authentication 1 key is updated to the THHK_User0H1Key value of the borrower’s authentication 1 key in the TokenHolderHashKey DB, and the OPM_User0H1Key value is updated ( When OPM_User0H1State=1), a new OP account 600, which is a block chain account, is created, and a new contract number is created and assigned to New ContractNum() and the created new OP account. When a new OP account is created, the borrower ID is used as the key value, the borrower's authentication 1 key value in OPM_TokenHolderHashKey0 in OP_TokenHolderHashKey0(), which manages the borrower authentication 1 key in the OP module, and the OPM_User0H1State=1 state value is checked and OP_TokenHolderHashKey0(Index, User0_ID) , OP_User0H1Key, OP_User0H1KeyState) is obtained and updated, OP_User0H1KeyState = 1 is returned. (See Figures 8-550)

30. 투자자, 차입자의 OP. 인증 1키가 업데이트 되면, 투자 유치 성공한 (bondRight =1) 채권들의 정보와 이에 투자한 투자자들의 정보들을 블록에 기록하는 작업을 ContractUpdateValidator() 에서 진행한다. 30. OP of investors and borrowers. When the authentication 1 key is updated, the contractUpdateValidator() performs the work of recording the information of the bonds that have succeeded in attracting investment (bondRight = 1) and the information of the investors who have invested in it in the block.

도 8은 일 실시예에 따라 투자자의 투자 정보 및 차입자의 대출 정보를 생성하고 스마트 컨트랙트에 업로드하는 프로세스의 흐름도이다.8 is a flowchart of a process of generating and uploading investment information of an investor and loan information of a borrower to a smart contract according to an embodiment.

도 8의 구체적 프로세스는 다음과 같다.The specific process of FIG. 8 is as follows.

1. (300)번 모듈에서 투자자의 TokenHolderHashKey 와 상태값을 저장하는 (311 - 도 6-16 참고), OPM은 플랫폼 마스터 역할로서 신규 투자 계약 발생시, 해당 계약을 주관하는 신규 OP (600) 계정을 생성하기 위 해, 검증된 투자자의 인증 1키를 필요로 한다. OPM 에서 투자자의 인증 1키를 관리 함수 OPM_TokenHolderHashKey1() 에서 체크하여 (311번) 에서 투자자의 인증 1키가 정상적으로 검증되어 업데이트 되었는 지와(THHK_User1H1KeyState = 1), 서명(SIgState = 1)되었는 지를 확인한다. 1. The OPM, which stores the investor's TokenHolderHashKey and state value in module (300) (311 - see Fig. 6-16), acts as the platform master, and when a new investment contract occurs, the new OP (600) account in charge of the contract is created. In order to generate it, a verified investor's authentication key is required. In OPM, check the investor's authentication 1 key in the management function OPM_TokenHolderHashKey1() and check whether the investor's authentication 1 key has been properly verified and updated (THHK_User1H1KeyState = 1) and signed (SIgState = 1) in (No. 311) .

2. 투자자의 인증 1키를 관리 함수 OPM_TokenHolderHashKey1() 에 투자자의 인증 1키(OPM_User1H1Key)와 검증되고 서명된 투자자의 인증 1키가 업데이트된 상태값(OPM_User1H1State = 1)을 저장한다. OPM_User1H1State = 1 이 되면 OPM 이 (600)번의 OP 용 계정을 생성(OPM_newOPaccountState = 1) 하고, 투자 시작 시 시스템에서 배당 받은 계약 번호를 OP가 받을 수 있도록 OPM 이 투자관리모듈(Investment Module)에서 사용되지 않은 계약번호를 가져와서 신규 생성된 OP 계정에 계약번호를 할당한다.2. In the management function OPM_TokenHolderHashKey1() of the investor's authentication key, the investor's authentication 1 key (OPM_User1H1Key) and the verified and signed investor's authentication 1 key are updated and stored (OPM_User1H1State = 1). When OPM_User1H1State = 1, OPM creates an account for OP No. 600 (OPM_newOPaccountState = 1), and OPM is not used in the Investment Module so that the OP can receive the contract number allocated from the system at the time of investment start. Import the contract number that has not been assigned and assign the contract number to the newly created OP account.

3. OP(600) 계정이 생성되면, 투자자 인증 1키를 담당하는 OP_TokenHolderHashKey1() 이 정상적으로 업데이트 되었는지 확인(OP_User1H1KeyState = 1) 후에 해당 투자자의 투자 계약 번호의 계약이 정상적으로 시작되어 종료되지 않은 상태임을 확인한다. 3. When the OP(600) account is created, check that the OP_TokenHolderHashKey1(), which is responsible for the investor authentication 1 key, is updated normally (OP_User1H1KeyState = 1), and then confirm that the contract of the investor's investment contract number is normally started and not closed do.

4. 501번에서 투자자 인증 1키에 해당하는 정보 값들 OPM_TokenHolderHashKey1(Index, User1_ID, OPM_User1H1Key, OPM_User1H1State) 에서 OPM에서 투자자 인증 1키가 정상적으로 업데이트 되었을 때 상태값인 OPM_User1H1State = 1 이라면 OP_TokenHolderHashKey1() 로 투자자 인증 1키 값을 501 번에서 OPM_TokenHolderHashKey1() -> 600번 OP_TokenHolderHashKey1() 로 가져온다.4. In OPM_TokenHolderHashKey1(Index, User1_ID, OPM_User1H1Key, OPM_User1H1State), the information values corresponding to the investor authentication 1 key in step 501. When the investor authentication 1 key is normally updated in OPM, the state value OPM_User1H1State = 1, the investor authentication 1 with OP_TokenHolderHashKey1() Get the key value from 501 to OPM_TokenHolderHashKey1() -> 600 to OP_TokenHolderHashKey1().

5. 4번에서 가지고 온 투자자 인증 1키 값을 601번에 업데이트 한다. OP_TokenHolderHashKey1(Index, User1_ID, OP_User1H1Key, OP_User1H1KeyState) 에 업데이트 되면, OP 용 투자자1키의 업데이트 상태 값으로 OP_User1H1KeyState = 1로 업데이트 한다.5. Update the investor authentication 1 key value brought in step 4 to step 601. When OP_TokenHolderHashKey1(Index, User1_ID, OP_User1H1Key, OP_User1H1KeyState) is updated, it is updated to OP_User1H1KeyState = 1 as the updated state value of Investor 1 Key for OP.

6. 601번에서 OP_User1H1KeyState = 1 이면 투자자 인증 1키 (OP_User1H1Key)를 650번 투자 계약정보에 업데이트 하고, 투자자의 투자 시작의 트랜잭션 발생에 따른 투자 계약 정보를 블록에 기록하기 위해서, 회원 가 입시 TxID 에 저장한 투자자의 인증 1키(Cold Version)의 호출 목적으로OP_User1H1KeyState = 1 상태가 되면, 전체투자계약번호 Contract 2342와 투자자의 인증 1키를 계약정보 업데이트 관리함수인 670번 ContractUpdateValidator()로 전송한다. (650번에서 전체투자계약번호는 2342 이고, 분산투자를 10회 하였다면, 하위분산투자 계약번호는 2342-1~10로 리스트가 생성됨. 이때 하위분산투자에 대응되는 채권에 서(680) 희망투자금액이 모집 완료되면 상태값으로 BondRight = 1 로 업데이트되고, (650) 특정 하위분산투자 계약 2342-2 에 원리금 수취권이 형성되어 InvestSubRight = 1 로 상태값이 변경됨)6. If OP_User1H1KeyState = 1 in No. 601, in order to update the investor authentication 1 key (OP_User1H1Key) to the investment contract information in No. 650 and record the investment contract information according to the transaction occurrence of the investor’s investment start in the block, When OP_User1H1KeyState = 1 state for the purpose of calling the stored investor's authentication 1 key (Cold Version), the entire investment contract number Contract 2342 and the investor's authentication 1 key are transmitted to ContractUpdateValidator() 670, the contract information update management function. (In 650, the total investment contract number is 2342, and if the diversification investment is made 10 times, the list of sub-division investment contract numbers 2342-1~10 is created. When the amount is collected, the status value is updated to BondRight = 1, (650) The principal and interest receivables are formed in a specific sub-diversity investment contract 2342-2, and the status value is changed to InvestSubRight = 1)

7. 1001번에 보관중인 투자자 회원 가입 시 저장한 인증1의 콜드버전(도3-13에서 블록으로 기록된) 인증 1키 값을 구하기 위해 OP 계정 서명으로, 사용자아이디, 전체계약넘버를 포함하여 스마트 컨트랙트로 사용자아이디 에 해당하는 인증 1키 값을 요청한다.7. In order to obtain the cold version of authentication 1 (recorded as a block in Fig. 3-13) stored at the time of investor membership registration in number 1001, the OP account signature, including user ID and full contract number The smart contract requests the authentication 1 key value corresponding to the user ID.

8. (1001) 에 기록된 TxID 값을 구하기 위해 7번에서 받은 OP 서명을 OPM 이 받아서, 정상적으로 발급된 OP 계정인지, 해당 OP 계정에 할당된 계약이 정상적으로 시작되었고, 아직 청산되지 않은 지의 상태값을 확인하여 아 직 진행중인 상태가 확인되면 TxID 를 블록에서 읽어서 (682)으로 넘기고 다시 670번으로 보낸다.8. To obtain the TxID value recorded in (1001), the OPM received the OP signature received in step 7, indicating whether the OP account was normally issued, and whether the contract assigned to the OP account was successfully started and not yet liquidated. If it is confirmed that the status is still in progress, read the TxID from the block, pass it to (682), and send it to number 670 again.

9. 8번 프로세스에서 확보한 TxID 에 해당하는 암호화된 데이터를 복호화하여 off-chain에 저장된 투자자의 인증 1키 버전을 확보한다. 9. Decrypt the encrypted data corresponding to the TxID obtained in process 8 to secure the version of the investor's authentication 1 key stored off-chain.

10. u1_0.key 에 임시 저장하고 상태값을 u1_0keyState = 1 로 업데이트 되면 11번을 실행한다.10. Temporarily store in u1_0.key and execute #11 when the state value is updated to u1_0keyState = 1.

11. 투자자가 로그인하여 실제적으로 접속하게 되는 거래활동 및 계약 정보 보관소인 100번 모듈에 포함된 투자자 인증 1키를 관리하는 User_TokenHolderHashKey1() 를 OP 권한으로 엑세스하여 투자자 인증 1키를 구한다. (off-chain 영역에 있으므로 블록체인에서는 전체 로직상 인증 1키의 위변조가 있다고 처음부터 가정하기 때문에 키 값의 매칭 확인을 해야 한다. 잘못된 정보를 블록체인에 보관하게 되면 가짜가 진실이 되어 버림을 방지하는 것이 목적이다)11. Obtain the investor authentication 1 key by accessing User_TokenHolderHashKey1(), which manages the investor authentication 1 key included in module 100, which is the transaction activity and contract information storage that the investor logs in and accesses, with OP authority. (Since it is in the off-chain area, it is assumed from the beginning that there is forgery and falsification of the authentication 1 key in the entire logic, so it is necessary to check the key value matching. to prevent)

12. 11번에서 확보한 투자자 인증 1키를 u1_1.key 에 임시 보관하고 상태값을 u1_1keyState = 1 로 업데이트 되 면, (670) 에서 u1_0keyState = 1 과 u1_1keyState = 1 값을 확인 후에 (671) 값과 (672) 값이 매칭이 되는지 확인한다. 12. If the investor authentication 1 key obtained in step 11 is temporarily stored in u1_1.key and the state value is updated to u1_1keyState = 1, after checking the values of u1_0keyState = 1 and u1_1keyState = 1 in (670), (671) and Check whether the (672) value matches.

13. 675 상태값(ContractVali_H1Key1 = 1 )을 기록하여 650 의 계약 정보에 업데이트하고, 651번에 OP.PublickKey(650 Data)로 암호화하여 저장한다.13. Record the 675 status value (ContractVali_H1Key1 = 1), update the contract information of 650, and store it encrypted with OP.PublickKey(650 Data) at number 651.

14. 단일 채권명(#244553)에 다수의 분산투자를 한 투자자들이 존재하게 되는데, 투자자1의 인증 1키 검증 상태값, ContractVali_H1Key1 = 1 (675) 이 발생하면, 이 채권(#244553)에 투자한 다수의 투자자들의 인증 1키 검증 상태값을 따로 관리하는 OP.rePayBook.bondName(677) 모듈로, 투자자가 분산투자한 채권의 대출금이 모집 되어(bondRight=1) 투자자의 분산투자(2342-2)건이 예비 원리금수취건 확보 상태(InvestSubRight=1)인 경우에만 (677)로 전송하여 채권에 투자한 투자자들의 인증 1키 검증값을 모두 저장하고, OP.rePayBook.bondName(Index,contractNum, contractVali_H1Key1=1) 에서 이 채권에 투자한 모든 투자자들의 인증 1키 검증값이 모두 1이면(contractVali_H1Key1=1), 채권명(bondName)과 함께 상태값 (allContractVCali_H1key=1)을 리턴하여 추후 토큰 지급 및 상환 시에 사용한다. 14. Investors who have made multiple diversified investments in a single bond name (#244553) exist. When investor 1's authentication 1 key verification state value, ContractVali_H1Key1 = 1 (675) occurs, invest in this bond (#244553) OP.rePayBook.bondName(677) module that separately manages the authentication 1 key verification status value of multiple investors, the loans of the bonds invested by investors are collected (bondRight=1), and the investors’ diversified investments (2342-2 ) is sent to (677) only when the preliminary principal and interest receipt is secured (InvestSubRight=1) and stores all the verification values of the authentication 1 key of investors who have invested in bonds, OP.rePayBook.bondName(Index, contractNum, contractVali_H1Key1= In 1), if the verification value of the authentication 1 key of all investors who invested in this bond is all 1 (contractVali_H1Key1=1), the status value (allContractVCali_H1key=1) is returned along with the bond name (bondName), and at the time of token payment and redemption later use.

A. (650) 에 하위투자계약번호에 대응되는 채권에서 대출투자유치 성공이 일어난 채권 SelectedBondName(bondName, bondright=1)을 알아보는 함수에서 해당 채권명이 목표투자유치금액을 달성 (bondright=1)했는지 체크하여 투자 유치 성공한 채권의 차입자의 인증 1키를 구한다.A. In the function to find the SelectedBondName(bondName, bondright=1) of the bond that has succeeded in attracting loan investment from the bond corresponding to the sub-investment contract number in (650), whether the name of the bond has achieved the target investment attraction amount (bondright=1) Check and obtain the 1 key to the borrower's certificate of successful investment attraction.

B. bondright=1 이 된 채권의 소유자 인증 1키를 요청한다. B. Request 1 key to authenticate the owner of the bond with bondright=1.

C, D 해당 차입자의 인증 1키(321)를 551번으로 업데이트 한다. (투자자와 동일)C, D The authentication 1 key 321 of the corresponding borrower is updated to No. 551. (same as investor)

E. (도 8-3)의 설명과 대응. E. Description and correspondence of (Fig. 8-3).

F. (도 8-4)의 설명과 대응.F. Description and correspondence of (Fig. 8-4).

G. (550) OP_TokenHolderHashKey0() 에서 업데이트된 정보를 (602) 에 차입자 인증 1키를 업데이트하고, 업데이트 상태값으로 OP_User0H1KeyState =1 로 업데이트 한다.G. The information updated in (550) OP_TokenHolderHashKey0() is updated with borrower authentication 1 key in (602), and OP_User0H1KeyState = 1 as the update status value.

H. (602) 에서 차입자의 인증 1키 상태값이 OP_User0H1KeyState =1 이면 OP가 관리하는 대출투자유치성공 (bondRight=1) 만 필터링 한 (680) OP.SelectedBondName()에 차입자의 인증 1키(OP_User0H1Key)를 해당 차입 자의 채권명에 해당하는 인덱스에 업데이트 OP.SelectedBondName(Index, OP_bondName, User0_ID, OP_bondRight=1, OP_User0H1Key) 한다. 차입자의 인증 1키가 602번과 같이 정상적으로 OPM에서 업데이트 (OP_User0H1KeyState =1) 되었으면 차입자 아이디(User0_ID)와 채권명(OP_bondName), 차입자 인증 1키 (OP_User0H1Key)를 670번 ContractUpdateValidator()으로 전송한다.H. If the borrower's authentication 1 key state value in (602) is OP_User0H1KeyState = 1, only the successful loan investment attraction (bondRight=1) managed by the OP is filtered (680) The borrower's authentication 1 key (OP_User0H1Key) is ) is updated in the index corresponding to the borrower's bond name, OP.SelectedBondName(Index, OP_bondName, User0_ID, OP_bondRight=1, OP_User0H1Key). If the borrower's authentication 1 key is normally updated in OPM (OP_User0H1KeyState = 1) as shown in #602, the borrower ID (User0_ID), bond name (OP_bondName), and borrower authentication 1 key (OP_User0H1Key) are transmitted to ContractUpdateValidator() #670.

I. off-chain에 저장된 차입자의 인증 1키 버전을 확보한다. (FYI: 해당 TxID는 7,8번에서 확보한 TxID로 통합 사용함)I. Secure the borrower's authentication 1 key version stored off-chain. (FYI: The TxID is used as the TxID obtained in steps 7 and 8)

J. 차입자의 인증 1키 콜드버전 확보하여 673번 u0_0.key 에 임시 저장하고, 상태값을 u0_0keyState=1 로 업데이트 되 면 K 프로세스 실행한다.J. Secure the borrower's authentication 1 key cold version, temporarily store it in u0_0.key #673, and execute K process when the state value is updated to u0_0keyState=1.

K. (752) User_TokenHolderHashKey0() 를 OP 권한으로 엑세스하여 차입자의 인증 1키 구한다. (11번 프로세스 참고)K. (752) Access User_TokenHolderHashKey0() with OP authority to obtain borrower's authentication key. (Refer to process 11)

L. (752) 에서 확보한 키를 u0_1.key 에 임시보관하고 상태값을 u0_1keyState = 1 로 업데이트 되면, (670) 에서 각각 의 u0_1.key 과 u0_0.key dml 의 상태값 1이 확인 후에 (674) 값과 (673) 값이 매칭이 되는지 확인한다. L. If the key obtained in (752) is temporarily stored in u0_1.key and the state value is updated to u0_1keyState = 1, after checking the state value 1 of each u0_1.key and u0_0.key dml in (670) (674) ) and (673) are matched.

M. (676) 분산투자된 차입자의 채권 업데이트 가능 상태값 (ContractVali_H1Key0 = 1 )을 기록하여 680 계약 정보에 업데이트 한다. M. (676) Record the updateable state value of the bond of the diversified borrower (ContractVali_H1Key0 = 1) and update the 680 contract information.

H 프로세스에서 680에 전송된 차입자의 인증 1키와 673의 키가 매칭이 되면 최종적으로 채권(680)의 정보를 ContractUpdateValidator()(670)으로 전송한다. 이때 670 에서는 마찬가 지로 6번 프로세스에서 전송된 투자자. 인증 1키와 671 에서 저장한 키의 값이 매칭되면 670으로 전송하여 전체 계약 정 보를 블록에 기록하는 프로세스 O, P, Q 를 실행한다. ContractVali_H1Key1 = 1 상태에서 6번 프로세스에서 배치된 인증 1키와 다시 비교하는 목적은 off-chain에 저장된 버전의 인증 1키와 투자 시점에서 배치된 인증 1키를 다시 의심해서 비교하는 과정이고, 차입자의 관점에서도 동일한 이유이다.In process H, when the borrower's authentication 1 key transmitted to 680 and the key 673 match, the information of the bond 680 is finally transmitted to the ContractUpdateValidator() 670. At this time, as in 670, the investor transferred from process 6 is the same. If the authentication 1 key matches the value of the key stored in 671, it is transmitted to 670 and processes O, P, and Q are executed to record the entire contract information in the block. In ContractVali_H1Key1 = 1 state, the purpose of comparing the authentication 1 key deployed in process 6 again is the process of comparing the authentication 1 key stored in the off-chain version with the authentication 1 key deployed at the time of investment again in doubt, and the borrower’s The reason is the same from the point of view.

N. 이전 계약 정보를 읽거나 쓰기 위한 과정으로, OPM 계정에서 OP 계정으로 토큰이 전달되었을 때 또는 블록에 정보 기록 시에 사용될 수 있다. 두번째 업데이트 시 이전 거래 기록이 있을 경우 조회하여 인덱스 번호 비교 후 업데이트 진행 여부 결정할 수 있다. (도 8-13 프로세스 참조)N. A process for reading or writing previous contract information, which can be used when tokens are transferred from the OPM account to the OP account or when writing information to a block. In the second update, if there is a previous transaction record, it is possible to determine whether to proceed with the update after comparing the index number. (See Figure 8-13 process)

도 9a, 9b(이하 도 9로 통칭)은 일 실시예에 따라 OP 계정에 투자자의 토큰 및 차입자의 토큰을 발행하는 프로세스의 흐름도이다.9A and 9B (hereinafter collectively referred to as FIG. 9 ) are flowcharts of a process for issuing an investor's token and a borrower's token to an OP account according to an embodiment.

1. OPM 에서 투자자 인증 1키를 확인하여 수신: 투자자의 서명된(SigState=1) 인증 1키(도 8-311). 투자자의 사용자 인증 및 투자거래를 블록에 담기 위해서는 서명된 인증 1키를 OPM(500) 에게 넘겨 주어야 OPM 계정이 각 계약을 담당하는 OP 계정을 생성하고 계약 정보를 OP 계정이 받을 수 있게 된다(도 8-1~4 참조) 1. Confirm and receive investor authentication 1 key in OPM: Investor signed (SigState=1) authentication 1 key (Fig. 8-311). In order to include the investor's user authentication and investment transaction in the block, the signed authentication 1 key must be handed over to the OPM 500 so that the OPM account can create an OP account in charge of each contract and the OP account can receive contract information (Fig. See 8-1~4)

2. OPM에서 투자자1키 확인되면 상태값 업데이트 (도 8-1~4 참조).2. When the investor 1 key is confirmed in the OPM, the status value is updated (refer to FIGS. 8-1 to 4).

3. OP에서 투자자 인증 1키를 OPM에서 받고 상태값 업데이트: OPM->OP 로 투자자 인증 1키를 정상적으로 OP 가 업데이트 받으면 OP_User1H1KeyState = 1 로 업데이트 한다. OP_User1H1KeyState = 1 되면 계약 담당. 계정인 OP 가 본격적으로 계약에 관련된 일을 시작할 수 있게 된다. (도 8- 5번 참조)3. OP receives investor authentication 1 key from OPM and updates status value: When OP receives investor authentication 1 key normally through OPM->OP, it is updated to OP_User1H1KeyState = 1. If OP_User1H1KeyState = 1, the contract is responsible. The account OP will be able to start working on contracts in earnest. (See Figures 8-5)

4. OP에서 OP 계약 계정으로 준비하기: OP_NewContractSet()4. Prepare OP to OP contract account: OP_NewContractSet()

(1) (도 8-2)에서 OPM 이 신규 계약 계정인 OP 를 생성하였다. (도 9-3) 상태와 같이 OP_User1H1KeyState = 1 로 OP가 투자자 아이디에 해당하는 인증 1키를 정상적으로 투자자. 인증1 키 모듈(300)->OPM->OP 로 받았다면 해당 OP 계정에 투자자의 투자계약 계정으로 할당과 투자 계약 넘버를 할당한다. In (1) (FIG. 8-2), OPM created a new contract account, OP. (FIG. 9-3) As in the state, OP_User1H1KeyState = 1, the OP normally invests in the authentication 1 key corresponding to the investor ID. If the authentication 1 key module 300 -> OPM -> OP is received, allocation and investment contract number are allocated to the investor's investment contract account in the corresponding OP account.

(2) OPM->OP에서 투자자 인증 1키 관리 함수 OP_TokenHolderHashKey1(OP_User1H1Key)에 보관한 OP용 사용자 인증 1키(OP_User1H1Key) 의 상태값인 OP_User1H1KeyState = 1 이면 해당 OP 공계정을 계약 계정으로 전환(OP_ContractAccountState = 1)하고 투자자가 투자 시 투자 및 대 출 관리 모듈(Investment Module) 에서 받은 투자계약번호를 받아 OP가 관리하는 투자계약번호에 할당 완료되면 상태값을 업데이트(OP_ContractNumState = 1) 한다. (2) If OP_User1H1KeyState = 1, which is the state value of the user authentication 1 key (OP_User1H1Key) for the OP stored in the investor authentication 1 key management function OP_TokenHolderHashKey1 (OP_User1H1Key) in OPM->OP, the corresponding OP public account is converted to a contract account (OP_ContractAccountState = 1) and the investor receives the investment contract number received from the investment and loan management module when making an investment and updates the state value (OP_ContractNumState = 1) when the allocation to the investment contract number managed by the OP is completed.

5. 상태값 리턴: OP가 계약 계정 상태이고, 투자계약번호 받은 상태 값을 OPM에게 리턴한다.5. Return status value: The OP is in the contract account status, and the status value received by the investment contract number is returned to the OPM.

6. OPM->OP 토큰 전달을 위한 투자자 인증 1키 더블 체크: OPM(500)은 OP에게 투자자용으로 토큰을 발급하기 위해, OPM 계정에서 해당 투자자 아이디와 투자 계약번호에 해당하는 투자자. 인증 1키를 (도6-311)에서 가져와 OP의 투자자. 인증 1키와 대조하여, 인증 1키의 위변조를 판단하기 위해, 매칭이 되면 투자자 아이디 (User1_ID), 에 따른 매칭 상태값(OPM_andOP_H1KeySame = 1)을 저장한다. (Index, User1_ID, ContractNum, OPM_andOP_H1KeySame = 1)6. Investor authentication 1-key double check for OPM->OP token delivery: In order to issue tokens for investors to OPs, OPM(500) is an investor who corresponds to the investor ID and investment contract number in the OPM account. Investor of OP by taking the authentication 1 key from (Fig. 6-311). In contrast with the authentication 1 key, in order to determine forgery of the authentication 1 key, if a match is made, a matching state value (OPM_andOP_H1KeySame = 1) is stored according to the investor ID (User1_ID). (Index, User1_ID, ContractNum, OPM_andOP_H1KeySame = 1)

7. 투자계약넘버에 해당하는 투자자 인증 1키 매칭 상태값(OPM_andOP_H1KeySame = 1)이 생성되면 투자자 가 사용할 토큰을 전송하기 위해 토큰 OPM 이 발행할 토큰량을 +1 시키고, 7. When the investor authentication 1 key matching status value (OPM_andOP_H1KeySame = 1) corresponding to the investment contract number is generated, the amount of tokens to be issued by the token OPM is +1 to transmit the tokens for the investor to use,

8. 토큰 발행을 담당하는 스마트 컨트랙트를 call 한다. (참고로: 토큰 전달 순서는 OPM->OP->투자자 or 차입자 순으로 계약 상태와 각 키의 조건이 매칭되면 토큰을 전송한다.)8. Call the smart contract responsible for issuing tokens. (For reference: The order of token delivery is OPM->OP->investor or borrower, and when the contract status and the conditions of each key match, the tokens are transmitted.)

9. 토큰을 전송 받을 OP 가 할당받은 계약이 정상적으로 시작되었고(InvestState=1) 아직 투자종료(OP_InvestDueTimeState = 0)가 아닌지 확인한다. 9. Check whether the contract assigned to the OP to receive the token has started normally (InvestState=1) and has not yet completed the investment (OP_InvestDueTimeState = 0).

10. OPM.tokenBePublish(7) 의 토큰 발행량만큼 OPM->OP로 토큰을 1개 전송한다. (6번에서 초기 투자자의 OPM_andOP_H1KeySame = 1 의 Index 값이 1개 이므로 1개만 전송한다.)10. One token is sent to OPM->OP equal to the token issuance amount of OPM.tokenBePublish(7). (In No. 6, since the initial investor's OPM_andOP_H1KeySame = 1 Index value is 1, only 1 is transmitted.)

11. OPM_OPtokenReceiveMethod(): 9번 스마트 컨트랙트에서 토큰을 받으면(tokenID) 상태값으로 OP_TokenReceiveState 를 0에서 1로 업데이트 하고 11. OPM_OPtokenReceiveMethod(): When the token is received from smart contract 9 (tokenID), update OP_TokenReceiveState from 0 to 1 with the state value

12. (OP.address, OP_TokenReceiveState = 1)을 OPM.tokenPublished 로 리턴한다.12. (OP.address, OP_TokenReceiveState = 1) is returned as OPM.tokenPublished.

13. 발행된 토큰 관리: 11번에서 토큰을 발행한 주소 및 개수를 OPM.tokenPublished() 업데이트되면, 앞으로 발행할 토큰 예정량 7번에 12번에서 업데이트 받은 만큼 차감시켜 토큰 해킹 및 위변조 가능성을 제어한다.13. Manage issued tokens: When the address and number of tokens issued in step 11 are updated with OPM.tokenPublished(), the amount of tokens to be issued in the future is subtracted by the amount updated in step 12 from No. 7 to control the possibility of token hacking and forgery. .

14. 13번 프로세스에서 토큰 발행된 양 조절 업데이트가 끝남을 OP에게 상태값을 전송하면14. When process 13 sends the status value to the OP that the token issued amount control update is over

15. 11번에서 받은 토큰을 투자 계약에 배치하기 - OP_opContractTokenDeployInstance( ): OP가 받은 투자자 의 인증 1키의 상태값이 1이고, 해당 투자자 아이디로 토큰을 받은 적이 없는지 확인 후에 OP가 배당받은 투자계약 번호에 투자자용 토큰을 배치하고, 계약에 토큰이 배치되면 OP_User1_TokenIDState=1 로 상태값을 업데이트 한다. (추후 OP가 여기서 받은 토큰을 각종 계약 상태 및 인증 2키 확인 후에 OP->투자자에게 전송함) 15. Deploying the token received in step 11 into the investment contract - OP_opContractTokenDeployInstance( ): The investment contract in which the OP is allocated after confirming that the status value of the investor's authentication 1 key received by the OP is 1, and that no token has been received by the investor ID Investor tokens are placed in the number, and when tokens are placed in the contract, the state value is updated as OP_User1_TokenIDState=1. (The OP later sends the token received here to the OP->investor after checking the contract status and authentication 2 key)

16. OP 가 관리하는 계약정보에 배치된 총 토큰의 개수를 업데이트 한다. OP_totalTokenReceiveNum(n) - (추후 OPM이 발행한 총 토큰 개수와 비교하여 토큰의 위변조 방지 및 위변조 토큰의 개입을 방지하는데 사용함)16. Update the total number of tokens placed in the contract information managed by the OP. OP_totalTokenReceiveNum(n) - (Used to prevent forgery of tokens and prevent forgery tokens from intervening in comparison with the total number of tokens issued by OPM later)

17. 16번에서 OP 가 관리하는 토큰개수를 18번(OPM_OPcontractSet.OPM_OPtokenReceived) 으로 전송한다.17. Transmit the number of tokens managed by the OP in No. 16 to No. 18 (OPM_OPcontractSet.OPM_OPtokenReceived).

18. OP 실제 계약에 배치된(Index, OP_User1_TokenIDState=1) 총 토큰의 개수를 업데이트 한다. (13번에서 15번 프로세스 사이에 외부 개입이 일어날 수 있다는 가정을 할 수 있고, P2P에서는 다수의 분산투자가 발생하므로 토큰의 발행량 중요) validateTokenCount() 에서 13번 OPM.tokenPublished(n) 의 개수와 OP_totalTokenReceiveNum(n) 의 n 값이 일치하면 OP계약번호와 상태값을 validateTokenCount(OP.ContractNum, valideTokenNumState=1) 저장 후에 valideTokenNumState=1 을 토큰 정보를 포함하여 OP 전체 계약 정보를 블록에 업데이트 하기 위해서 OP.ContractUpdateValidator() 로 리턴한다.18. Update the total number of tokens placed in the OP actual contract (Index, OP_User1_TokenIDState=1). (It can be assumed that external intervention can occur between processes 13 to 15, and the amount of token issuance is important because a large number of diversified investments occur in P2P) The number of OPM.tokenPublished(n) in validateTokenCount() and If the n value of OP_totalTokenReceiveNum(n) matches, the OP contract number and state value are stored in validateTokenCount(OP. Return to ContractUpdateValidator().

19. OPM 토큰 발행량과 OP에 배치된 토큰개수가 맞는 상태값 전달을 ContractUpdateValidator() 에 전달한다.19. The status value that matches the OPM token issuance amount and the number of tokens placed in the OP is transmitted to ContractUpdateValidator().

20. 토큰 정보를 포함하여 전체 투자 계약정보 중간 업데이트하여 블록에 기록하기, ContractUpdateValidator(): 도 8의 670, 671, 672, 651,681,1002 프로세스를 사용하여 블록에 기록한다.20. Intermediate update of all investment contract information, including token information, and record in block, ContractUpdateValidator(): Write to block using process 670, 671, 672, 651,681,1002 of FIG.

21. 도 8의 670, 671, 672, 651,681,1002 프로세스를 사용하여 블록에 기록한다. 21. Write to the block using processes 670, 671, 672, 651,681,1002 of FIG.

22. OPM 에서 차입자 인증 1키 확인하고 받기: (도 8-321번에 해당)22. Check and receive borrower authentication 1 key from OPM: (corresponding to Fig. 8-321)

23. 도2의 OPM(550)에서 (도 8-321)의 차입자 인증 1키의 상태값(THHK_User0H1KeyState=1)과 서명 (SigState=1)이 확인되면 OPM의 차입자 인증 1키 관리 함수 OPM_TokenHolderHashKey0() 로 22번의 차 입자 인증 1키(THHK_User0H1Key) 값을 OPM의 차입자 인증 1키 값에 업데이트(OPM_User0H1Key = THHK_User0H1Key.User0_H1Key)하고 완료되면 OPM_User0H1State = 1 로 상태값을 갱신한다. (참고로 OPM. 차입자 인증 1키->OP. 차입자 인증 1키로 업데이트 하기 위한 과정. 즉 22번에서는 트랜잭션(투자나 대출 신청의 이벤트) 이 발생했을 때 사용자 서명된 인증 1키 값을 저장하고 계약 별 OP 계정을 생성시키는 OPM 계정으로 인증 1키를 전송 - 계약 관리자 OP 로 인증 1키를 전달하여 사용자 인증 및 계약 인증키로 사용하는 과정)23. When the state value (THHK_User0H1KeyState=1) and signature (SigState=1) of the borrower authentication 1 key of (FIG. 8-321) are confirmed in the OPM 550 of FIG. 2, the OPM borrower authentication 1 key management function OPM_TokenHolderHashKey0() Update the borrower authentication 1 key (THHK_User0H1Key) value of No. 22 to the borrower authentication 1 key value of OPM (OPM_User0H1Key = THHK_User0H1Key.User0_H1Key), and when completed, update the state value to OPM_User0H1State = 1. (For reference, OPM. Borrower authentication 1 key -> OP. Borrower authentication 1 key update process. That is, in step 22, when a transaction (investment or loan application event) occurs, the user-signed authentication 1 key value is stored and contracted. Send authentication 1 key to the OPM account that creates a separate OP account - The process of passing the authentication 1 key to the contract manager OP and using it as a user authentication and contract authentication key)

24. (도 9-3)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함. 24. Description and correspondence of (FIG. 9-3). The applicable entity is the borrower instead of the investor.

25. (도 9-5)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.25. Description and correspondence of (Fig. 9-5). The applicable entity is the borrower instead of the investor.

26. (도 9-6)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.26. Description and correspondence of (Fig. 9-6). The applicable entity is the borrower instead of the investor.

27. (도 9-7)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.27. Description and correspondence of (Figs. 9-7). The applicable entity is the borrower instead of the investor.

28. (도 9-8)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.28. Description and correspondence of (Figs. 9-8). The applicable entity is the borrower instead of the investor.

29. (도 9-9)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.29. Description and correspondence of (FIGS. 9-9). The applicable entity is the borrower instead of the investor.

30. (도 9-10)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.30. Description and correspondence of (Figs. 9-10). The applicable entity is the borrower instead of the investor.

31. (도 9-11)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.31. Description and correspondence of (Figs. 9-11). The applicable entity is the borrower instead of the investor.

32. (도 9-12)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.32. Description and correspondence of (Figs. 9-12). The applicable entity is the borrower instead of the investor.

33. (도 9-13)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.33. Description and correspondence of (Figs. 9-13). The applicable entity is the borrower instead of the investor.

34. (도 9-14)의 설명과 대응. 적용 주체를 투자자 대신 차입자로 함.34. Description and correspondence of (Figs. 9-14). The applicable entity is the borrower instead of the investor.

35. 31번에서 받은 토큰을 대출 희망금을 달성한(bondRight=1) 채권(bondName)에 배치, OP_SelectedBondName(bondName, bondRight=1): OP_opContractTokenDeployInstance( ): OP가 받은 차입자의 인증 1키의 상태값이 1(OP_User0H1KeyState=1)이고, 해당 차입자 아이디로 토큰을 받은 적이 없는지(UserID.OP_ReveivedTokenID !=null) 확인 후에 OP가 배당 받은 투자계약번호에 속해있는 대출 계약에 토큰을 배치(OP_SelectedBondName.OP_User0_TokenID = OP_ReceivedTokenID)하고, 토큰이 배치되면 OP_User0_TokenIDState=1 로 상태값을 업데이트 함. (참고로 추후 OP가 여기서 받은 토큰을 각 종 계약 상태 및 인증 2키 확인 후에 OP->차입자에게 전송함.)35. Place the token received in step 31 into the bond (bondName) that has achieved the desired loan amount (bondRight=1), OP_SelectedBondName(bondName, bondRight=1): OP_opContractTokenDeployInstance( ): Status value of the borrower’s authentication 1 key received by the OP is 1 (OP_User0H1KeyState=1), and after checking that the borrower ID has never received a token (UserID.OP_ReveivedTokenID !=null), the OP places the token in the loan contract belonging to the allocated investment contract number (OP_SelectedBondName.OP_User0_TokenID = OP_ReceivedTokenID) ), and when the token is placed, the state value is updated as OP_User0_TokenIDState=1. (For reference, the tokens received by the OP hereafter are sent to the OP->borrower after checking the contract status and authentication 2 keys.)

36. OP 가 관리하는 대출계약정보에 배치된 총 토큰의 개수를 업데이트 한다. OP_totalTokenReceiveNum(n): 차입자의 경우 투자자의 10회 분산 투자 중 10=>n 횟수로 대출성공이 일어날 수 있으므로, 대출 성공한 채권 SelectedBondName(Index, bondName, bondRight=1) 들의 Index 값의 횟수만큼 OP_User0_TokenIDState = 1 값이(35번) 생성되므로 이 값(i)만큼 n 값을 누적 증강 시켜, 단일 투자 건에서 대출 성공한 차입자의 토큰 개수를 카운팅한다.36. Update the total number of tokens placed in the loan contract information managed by the OP. OP_totalTokenReceiveNum(n): In the case of borrowers, loan success can occur 10 => n times out of 10 diversified investments of investors, so OP_User0_TokenIDState = 1 Since the value (35 times) is generated, the number of tokens of the borrower who succeeded in lending in a single investment case is counted by cumulatively increasing the value of n by this value (i).

37. (도 9-17)의 설명과 대응.37. Description and correspondence of (Figs. 9-17).

38. (도 9-18)의 설명과 대응.38. Description and correspondence of (Figs. 9-18).

39. (도 9-19)의 설명과 대응.39. Description and correspondence of (Figs. 9-19).

40. (도 9-20)의 설명과 대응.40. Description and correspondence of (Figs. 9-20).

도 10a, 10b(이하 도 10로 통칭)은 일 실시예에 따라 인증 2키를 생성하고 투자자의 계정 및 차입자의 계정에 토큰을 발행하는 프로세스의 흐름도이다.10A and 10B (hereinafter collectively referred to as FIG. 10 ) are flowcharts of a process of generating an authentication 2 key and issuing tokens to an investor's account and a borrower's account, according to an embodiment.

1. 투자자1의 분산투자 계약123으로 차입자들에게 희망 대출금이 지급되면 토큰을 지급한다.1. Investor 1’s diversification investment contract 123 gives the borrowers tokens when the desired loan is paid.

2. 차입자들이 토큰을 지급받으면 해당 분산투자 계약건에 대해서 투자자1은 원리금 수취권을 부여 받고, 이에 대 한 권리 증거로 투자자1도 토큰을 지급 받는다. 역으로 표현하면 원리금 수취권에 대한 토큰을 다른 사용자가 받는 일이 생기거나 해킹을 당하는 일이 없도록 하는 것이 중요하다.2. When borrowers receive tokens, Investor 1 is given the right to receive principal and interest in the case of the diversified investment contract, and Investor 1 also receives tokens as proof of the right. Conversely, it is important to prevent other users from receiving tokens for principal and interest receivables or being hacked.

3. 본 문서의 실시예에서는 토큰을 사용하여, i) 투자자는 원리금 수취권과 같은 디지털 자산 증명, 해당 디지털 자산의 분할 판매에 사용할 수 있고, ii) 차입자는 대출금 분할 상환 증명용도로 사용할 수 있게 한다. (다수의 P2P 업체들이 참여하는 디지털 자산을 거래하는 거래소에서 차입자의 분할 상환을 투자자의 자산에 반영하기 위해서는 이기종의 플랫폼을 사용하는 P2P 대출 회사들이 거래소에 참여하기 때문에 블록체인기반의 토큰을 사용한 차입자의 상환증명은 데이터 훼손 없이 블록체인의 장점을 제공 가능하게 한다)3. In the embodiment of this document, tokens are used so that i) investors can use them for proof of digital assets such as principal and interest receivables, installment sales of the corresponding digital assets, and ii) borrowers can use them for proof of repayment of loans do. (In order to reflect the amortization of the borrower to the investor's assets in an exchange that trades digital assets in which many P2P companies participate, P2P lending companies using heterogeneous platforms participate in the exchange, so borrowers using blockchain-based tokens The proof of redemption makes it possible to provide the advantages of blockchain without data corruption)

4. 토큰 전송을 위해서는 시스템 (OPM - 500)에서 발행한 토큰(tokenId=23452) 아이디의 고유번호로 전송을 할 수 있다. [예: _transferTokenTo(to, tokenId)]4. For token transmission, the token (tokenId=23452) ID issued by the system (OPM - 500) can be used for transmission. [Example: _transferTokenTo(to, tokenId)]

5. 이를 가능하게 하기 위해서 차입자와 참여자를 위한 토큰(tokenId) 의 신중한 전송이 요구되는데, 해당 토큰 아이디를 사용하여 유니크한 인증 2키를 생성, 계약 참여자(차입자, 투자자)의 각 계약정보에 이식하여 각 계약 단계별로 인증 2키(reExshKey2)의 상태값을 계약정보와 연동하여 생성, 업데이트 및 검증하여 올바른 참여자가 해당 토큰을 정상적인 계약 상태에서 부여받을 수 있도록 하는 것이 전체 개발의 목적이다. 해당 토큰(tokenId)이 각 투자나 대출 계약과 어떤 긴밀한 연관성(검증에 따른 상태값)을 갖고 계약정보들을 통과된 토큰이 아니면, 다른 개입자가 임의의 토큰을 전송하여 권리 증명을 할 수도 있는 가능성이 있으므로, 인증 2키의 사용은 블록체인 기반 토큰으로 디지털 자산을 증명하고 거래하는 데에 필요하다.5. To make this possible, careful transmission of tokens for borrowers and participants is required. Using the token ID, a unique authentication 2 key is generated and ported to each contract information of contract participants (borrowers, investors). The purpose of the overall development is to generate, update, and verify the state value of the authentication 2 key (reExshKey2) in each contract step with the contract information so that the correct participant can receive the corresponding token in the normal contract state. If the corresponding token (tokenId) is not a token that has a close relationship with each investment or loan contract (status value according to verification) and has passed the contract information, there is a possibility that other actors may transmit arbitrary tokens to prove their rights. Therefore, the use of two authentication keys is necessary to prove and transact digital assets with blockchain-based tokens.

6. 인증 2키 (ExKey) 의 구성 및 생성 방법: 차입자 관점에서 설명 (투자자도 동일). : 아래 구성요소에 해당 하는 동일한 키 값들을 OP 에서 차입자의 채권 상태가 희망 대출금을 분산투자로 확보(bondName, bondRight=1) 되었을 때 먼저 생성하여 제1 스마트 컨트랙트(Smart Contract1) 로 보내고(S0.key), 차입자에게 분산 투자 모집이 성공하여 대출금을 지급할 시점이 되었을 때, 차입자쪽(150)에서 Off-chain 에서 보관하고 있는 차입자 정보들을 사용하여 인증 2키를 생성 -> 제2 스마트 컨트랙트(Smart Contract2) 로 전송(S1.key) 한다. 제2 스마트 컨트랙트에서 S0.key 과 S1.key 키를 대조하여 매칭이 되면 매칭 성공 상태값 (OP_andUser0exKey0same = 1)을 OP 가 담당하는 채권정보 쪽에 저장 후, 정상적으로 신청 대출금을 차입자 에게 입금하고, OP가 채권정보에 보관하고 있던 차입자용 토큰을 차입자에게 전송한다.6. How to configure and generate the authentication 2 key (ExKey): Explained from the borrower's point of view (same for investors). : When the borrower's bond status in the OP has secured the desired loan as a diversified investment (bondName, bondRight=1), the same key values corresponding to the components below are first created and sent to the first smart contract (Smart Contract1) (S0. key), when it is time to pay the loan due to successful distributed investment recruitment to the borrower, the borrower side 150 uses the borrower information stored in the off-chain to generate an authentication 2 key -> 2nd smart contract ( Send (S1.key) to Smart Contract2). In the second smart contract, if the S0.key and S1.key keys are matched and matched, the matching success status value (OP_andUser0exKey0same = 1) is stored in the receivable information page in charge of the OP, the loan is normally deposited to the borrower, and the OP is The borrower token stored in the bond information is transferred to the borrower.

7. 인증 2키 구성요소 7. Authentication Two-Key Component

(1) 인증 2키의 OP 쪽의 구성요소는 OP_ExkeySet[(User0_PublicKey, User0_TokenID, OP_User0H1Key, OP_PublicKey, OP_ExSetTime] 이다. 해당 구성요소를 사용하여 담당 OP계정 의 Private Key 로 Singing 하여 Hash 값을 생성한다. -> 스마트 컨트랙트1(Smart Contract1) 로 전송.(1) The component on the OP side of the authentication 2 key is OP_ExkeySet[(User0_PublicKey, User0_TokenID, OP_User0H1Key, OP_PublicKey, OP_ExSetTime]. Using this component, the Hash value is created by Singing with the private key of the OP account in charge. > Transfer to Smart Contract1.

1) User0_PublicKey: 차입자 공개키1) User0_PublicKey: Borrower public key

2) User0_TokenID: OP 의 투자 채권계약에 배치된 차입자용 토큰아이디2) User0_TokenID: Token ID for borrowers placed in OP's investment bond contract

3) OP_User0H1Key: 차입자 인증 1키3) OP_User0H1Key: Borrower authentication 1 key

4) OP_PublicKey: 계약 OP 계정의 공개키4) OP_PublicKey: the public key of the contract OP account

5) OP_ExSetTime: 인증 2키를 최초로 시스템에서 생성하기 위해 구성 요소들을 OP_ExkeySet() 으로 가져 왔을 때의 시간 system.time() 이다. 즉, system.time() 은 상기 1)~4) 정보가 인증 2키 생성 함수 OP_ExkeySet()로 입력되었을 때의 시간.5) OP_ExSetTime: It is system.time() when the components are imported to OP_ExkeySet() to generate the authentication 2 key in the system for the first time. That is, system.time() is the time when the above 1) to 4) information is input to the authentication 2 key generation function OP_ExkeySet().

(2) 인증 2키의 차입자 측의 구성요소도 역시 1번과 같은데, 차입자에게 대출신청금액을 지급 시, 인증 2키의 구성요소 중 차입자의 User0_Tokenindex(150) 에서 위 (1)-1), (1)-3) 을 Identity & Key Services 모듈에서 가져와서 OP쪽의 (1)-2), (1)-4), (1)-5) 와 합쳐서 비밀키로 서명하여 해쉬 값을 생성한 후 -> 제2 스마트 컨트랙트(Smart Contract2) 로 전송한 후 매칭 작업을 실행하는 과정이다. (블록체인에서는 기본적으로 off-chain에 저장된 모든 데이터는 시간이 경과할수록 신뢰하지 않는다는 가정에서 출발하므로 User0_Tokenindex(150) 에서 있는 차입자의 (1)-1), (1)-3) 은 훼손되었다고 시스템은 가정하고 인증 2키의 프로세스를 진행한다)(2) The components of the borrower's side of the authentication 2 key are also the same as in 1, but when paying the borrower for a loan application, among the components of the authentication 2 key, (1)-1) above in the borrower's User0_Tokenindex(150), (1)-3) is taken from the Identity & Key Services module and combined with (1)-2), (1)-4), and (1)-5) on the OP side to create a hash value by signing with the private key. -> This is the process of executing the matching operation after transmitting to the second smart contract (Smart Contract2). (Basically, in the block chain, all data stored off-chain is based on the assumption that it is not trusted as time passes, so (1)-1), (1)-3) of borrowers in User0_Tokenindex(150) are damaged. assumes and proceeds with the process of authentication 2 key)

상술한 실시예에 따르면 P2P 대출 행위를 수행함에 있어서, 블록체인 기반의 서비스 장치가 사용자의 블록체인 지갑을 직접 관리하여, 사용자로 하여금 직접 블록체인 지갑을 사용하는 일이 없게 하여 불편을 해소하고, 모든 거래의 자격증명과 인증을 중계하여 블록체인의 장점을 제공하는 효과가 있다. According to the above-described embodiment, in performing P2P lending, the block chain-based service device directly manages the user's block chain wallet, so that the user does not directly use the block chain wallet, thereby solving the inconvenience, It has the effect of providing the advantages of blockchain by relaying the credentials and authentication of all transactions.

또한, 사용자의 요청에 대한 수행이 완료된 것을 증명하면서 양도 가능한 사용자 고유 토큰을 발행하여, P2P 대출에 따른 원리금 수취권이나 채무 상태를 증명하면서 사용자의 권리나 채무를 양도할 수 있게 한다. In addition, by issuing a transferable user-specific token while proving that the user's request has been completed, the user's rights or debts can be transferred while proving the principal and interest receivables or debt status according to the P2P loan.

나아가 현실 세계에 존재하는 여러 자산 권리를 각종 토큰화된 디지털 자산으로 증명하고 이와 관련된 참여자의 자격증명, 각종 자산의 등록 및 거래 증명에 대한 신뢰할 수 있는 자동화된 공증 기능을 제공할 수 있다.Furthermore, it is possible to prove the rights of various assets in the real world with various tokenized digital assets, and provide a reliable and automated notarization function for the relevant participant's credentials, the registration of various assets, and the transaction proof.

상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.The above-described embodiments of the present invention may be implemented through various means. For example, embodiments of the present invention may be implemented by hardware, firmware, software, or a combination thereof.

하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.In the case of implementation by hardware, the method according to embodiments of the present invention may include one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), and Programmable Logic Devices (PLDs). , FPGAs (Field Programmable Gate Arrays), processors, controllers, microcontrollers, microprocessors, and the like.

펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드 등이 기록된 컴퓨터 프로그램은 컴퓨터 판독 가능 기록 매체 또는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 메모리 유닛은 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 프로세서와 데이터를 주고 받을 수 있다.In the case of implementation by firmware or software, the method according to the embodiments of the present invention may be implemented in the form of a module, procedure, or function that performs the functions or operations described above. A computer program in which a software code or the like is recorded may be stored in a computer-readable recording medium or a memory unit and driven by a processor. The memory unit may be located inside or outside the processor, and may send and receive data to and from the processor by various known means.

또한 본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Also, combinations of each block in the block diagram attached to the present invention and each step in the flowchart may be performed by computer program instructions. These computer program instructions may be embodied in an encoding processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions executed by the encoding processor of the computer or other programmable data processing equipment may correspond to each block of the block diagram or Each step of the flowchart creates a means for performing the functions described. These computer program instructions may also be stored in a computer-usable or computer-readable memory which may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable or computer-readable memory. The instructions stored in the block diagram may also produce an item of manufacture containing instruction means for performing the functions described in each block in the block diagram or in each step in the flowchart. The computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for carrying out the functions described in each block of the block diagram and each step of the flowchart.

더불어 각 블록 또는 각 단계는 특정된 논리적 기능을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or each step may represent a module, segment, or part of code including one or more executable instructions for executing a specified logical function. It should also be noted that in some alternative embodiments it is also possible for the functions recited in blocks or steps to occur out of order. For example, it is possible that two blocks or steps shown one after another may in fact be performed substantially simultaneously, or that the blocks or steps may sometimes be performed in the reverse order according to the corresponding function.

이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. As such, those skilled in the art to which the present invention pertains will understand that the present invention may be embodied in other specific forms without changing the technical spirit or essential characteristics thereof. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The scope of the present invention is indicated by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. .

Claims (15)

블록체인 기반의 서비스 장치가 수행하는 자율보증증명 방법에 있어서,
P2P 대출 서비스를 사용하는 투자자 및 차입자를 포함하는 사용자의 블록체인 계정을 생성, 상기 사용자의 고유 정보를 암호화한 인증 1키를 생성, 및 상기 인증 1키를 포함하는 정보를 암호화한 TxID를 생성하고 off-chain DB에 저장하는 단계;
상기 TxID를 포함하는 데이터를 상기 장치가 관리하는 블록체인 계정인 OPM(operator master)의 비대칭키로 암호화한 Key Value을 상기 DB에 저장 및 on-chain에 업로드하는 단계; 및
상기 차입자의 대출 요청 및 상기 대출에 대한 상기 투자자의 투자 실행 요청을 포함하는, 상기 사용자로부터 소정의 동작에 대한 요청을 수신하는 경우, 상기 요청 시점 이후 인증 1키를 재생성하고, 상기 on-chain에 업로드된 Key Value를 기초로 상기 DB에 저장된 Key Value를 검색하고, 상기 검색된 Key Value를 상기 비대칭키의 대응키로 복호화하여 구한 인증 1키와 상기 재생성된 인증 1키를 비교하는 위변조 판단을 기초로 상기 요청에 대한 수행을 결정하는 단계를 포함하고,
상기 수행을 결정하는 단계는,
상기 차입자의 대출 요청을 수신하는 경우, 상기 차입자에 대한 소정의 대출 심사에 기초하여 상기 대출 요청 시점 이후 상기 차입자의 인증 1키를 재생성하고, 상기 차입자에 대한 대출 정보를 생성하는 단계;
상기 대출 요청에 대해 상기 투자자의 투자 요청을 수신하는 경우, 상기 투자 요청 시점 이후 상기 투자자의 인증 1키를 재생성하고, 상기 on-chain에 업로드된 상기 투자자의 Key Value를 기초로 상기 DB에 저장된 상기 투자자의 Key Value를 검색하고 상기 OPM의 비대칭키로 복호화하여 구한 상기 투자자의 인증 1키를, 상기 재생성된 투자자의 인증 1키와 비교하여 위변조 판단하여 상기 대출 정보에 대한 상기 투자자의 투자 계약 여부를 결정하는 단계; 및
상기 대출 요청에 따른 투자 계약이 성립하면, 상기 on-chain에 업로드된 상기 차입자의 Key Value를 기초로 상기 off-chain DB에 저장된 상기 차입자의 Key Value를 검색하고 상기 OPM의 비대칭키로 복호화하여 구한 상기 차입자의 인증 1키를, 상기 재생성된 차입자의 인증 1키와 비교하여 위변조 판단하여, 상기 대출 요청과 관련하여 on-chain에 기록할 차입자 정보 및 상기 투자 요청과 관련하여 on-chain에 기록할 투자자 정보를 생성하는 단계를 포함하는,
자율보증증명 방법.
In the self-assurance proof method performed by the blockchain-based service device,
Create a blockchain account for users including investors and borrowers who use the P2P loan service, create an authentication 1 key that encrypts the user's unique information, and generate a TxID that encrypts information including the authentication 1 key, storing in an off-chain DB;
storing the data including the TxID encrypted with an asymmetric key of an operator master (OPM), which is a block chain account managed by the device, in the DB and uploading it to the on-chain; and
When receiving a request for a predetermined operation from the user, including the borrower's loan request and the investor's investment execution request for the loan, the authentication 1 key is regenerated after the request time, and the on-chain Based on the forgery determination of retrieving the Key Value stored in the DB based on the uploaded Key Value, and comparing the authentication 1 key obtained by decrypting the retrieved Key Value with the corresponding key of the asymmetric key with the regenerated authentication 1 key. determining performance of the request;
The step of deciding to perform the
when receiving the loan request from the borrower, regenerating the authentication 1 key of the borrower after the time of the loan request based on a predetermined loan examination for the borrower, and generating loan information for the borrower;
When receiving the investor's investment request for the loan request, the investor's authentication 1 key is regenerated after the investment request time, and stored in the DB based on the investor's Key Value uploaded to the on-chain The investor's authentication 1 key obtained by searching the investor's Key Value and decrypting the OPM's asymmetric key is compared with the regenerated investor's authentication 1 key to determine forgery and forgery to determine whether the investor's investment contract for the loan information to do; and
When the investment contract according to the loan request is established, the borrower's Key Value stored in the off-chain DB is retrieved based on the borrower's Key Value uploaded to the on-chain, and the obtained by decrypting the OPM's asymmetric key The borrower's authentication 1 key is compared with the regenerated borrower's authentication 1 key to determine forgery, and borrower information to be recorded on-chain in relation to the loan request and the investor to be recorded on-chain in relation to the investment request generating information;
How to prove self-assurance.
제1항에 있어서,
상기 사용자의 고유 정보는,
사용자 ID, 사용자 블록체인 계정 주소, 공개키, 및 사용자 가상계좌 번호를 상기 사용자의 첫 로그인 시간 정보를 비밀키로 하여 SHA 알고리즘을 기초로 암호화한 TokenHolderKey를 포함하는,
자율보증증명 방법.
According to claim 1,
The user's unique information is
User ID, user block chain account address, public key, and user virtual account number including TokenHolderKey encrypted based on the SHA algorithm using the user's first login time information as a secret key,
How to prove self-assurance.
제2항에 있어서,
상기 인증 1키는,
사용자 ID, 상기 TokenHolderKey 및 상기 TokenHolderKey가 생성된 시간 정보를 함께 SHA 알고리즘을 기초로 암호화하여 생성된 TokenHolderHashKey 를 포함하는,
자율보증증명 방법.
3. The method of claim 2,
The authentication 1 key is,
Containing a TokenHolderHashKey generated by encrypting the user ID, the TokenHolderKey and the time information at which the TokenHolderKey was created together based on the SHA algorithm,
How to prove self-assurance.
제3항에 있어서,
상기 Key Value는,
상기 인증 1키를 특정하는 인덱스 번호와 함께 상기 TxID를 OPM의 비밀키 또는 공개키로 암호화하여 생성되는,
자율보증증명 방법.
4. The method of claim 3,
The Key Value is,
Generated by encrypting the TxID with an index number specifying the authentication 1 key with an OPM private key or public key,
How to prove self-assurance.
삭제delete 제1항에 있어서,
상기 투자자 정보를 생성하는 단계는,
상기 대출 요청에 기 설정된 금액이 상기 투자자의 투자 요청에 의해 모두 모금되는 경우에만 실행되도록 설정된,
자율보증증명 방법.
According to claim 1,
The step of generating the investor information includes:
Set to be executed only when the amount preset in the loan request is all raised by the investor's investment request,
How to prove self-assurance.
제1항에 있어서,
상기 요청에 대한 수행을 결정하는 단계 이후,
상기 OPM 계정을 통해 상기 요청의 실행을 관리하는 스마트 컨트랙트에 상기 요청이 실행됨에 따른 사용자의 상태를 증명하는 토큰 발행이 수행되도록 하는 트랜잭션을 생성하고 상기 DB에 접근 권한이 있는 블록체인 계정인 OP(operator) 계정을 생성하는 단계;
상기 OPM 계정을 통해 상기 on-chain에 업로드된 Key Value를 복호화하여 구한 인증 1키를 상기 OP 계정에 전송하는 단계; 및
상기 OP 계정이 상기 OPM 계정으로부터 전송 받은 인증 1키와 상기 DB에 저장된 TxID로부터 추출한 인증 1키를 비교하도록 하는 위변조 판단을 기초로 상기 트랜잭션 생성을 결정하는 단계를 더 포함하는,
자율보증증명 방법.
According to claim 1,
After determining to perform the request,
OP (a block chain account with permission to access the DB and create a transaction that allows token issuance to prove the user's status as the request is executed is performed in the smart contract that manages the execution of the request through the OPM account operator) creating an account;
transmitting the authentication 1 key obtained by decrypting the key value uploaded to the on-chain through the OPM account to the OP account; and
Further comprising the step of determining, by the OP account, to create the transaction based on a forgery determination that allows the OP account to compare the authentication 1 key transmitted from the OPM account with the authentication 1 key extracted from the TxID stored in the DB,
How to prove self-assurance.
제7항에 있어서,
상기 트랜잭션 생성을 결정하는 단계 이후,
상기 OPM 계정이 상기 OP 계정으로부터 상기 인증 1키를 다시 전송받고, 상기 다시 전송 받은 인증 1키를 상기 재생성된 인증 1키와 비교하여 상기 OP 계정이 보유하고 있는 인증 1키의 유효성을 판단하는 단계;
상기 인증 1키가 유효하면, 상기 OPM 계정이 상기 스마트 컨트랙트에 소정 수량의 토큰 발행 트랜잭션을 전송하여 상기 토큰이 상기 OP 계정에 지급되도록 하는 단계; 및
상기 OPM 계정이 상기 OP 계정이 수신한 토큰 개수가 상기 소정 수량과 일치하는 지를 판별하여 일치하는 경우, 상기 OP 계정이 상기 토큰 발행에 대한 사실을 블록에 기록하는 단계를 포함하는,
자율보증증명 방법.
8. The method of claim 7,
After determining to create the transaction,
The OPM account receives the authentication 1 key again from the OP account, and compares the re-transmitted authentication 1 key with the regenerated authentication 1 key to determine the validity of the authentication 1 key held by the OP account; ;
if the authentication 1 key is valid, sending, by the OPM account, a token issuance transaction of a predetermined amount to the smart contract so that the token is paid to the OP account; and
The OPM account determines whether the number of tokens received by the OP account matches the predetermined quantity, and if they match, the OP account records the fact about the token issuance in a block,
How to prove self-assurance.
제8항에 있어서,
상기 토큰 발행에 대한 사실을 블록에 기록하는 단계 이후,
상기 OP 계정이 보유한 소정의 정보를 기초로 상기 토큰의 전송에 사용되는 인증 2키 생성하고 제1 스마트 컨트랙트에 전송하게 하는 단계;
상기 요청에 대한 수행이 완료된 것으로 판별되면, 상기 DB가 저장한 소정의 정보를 기초로 상기 토큰의 전송에 사용되는 인증 2키 생성하고, 상기 제1 스마트 컨트랙트가 인증 2키를 비교하도록 규약이 정해진 제2 스마트 컨트랙트에, 상기 DB로부터 생성된 인증 2키를 전송하게 하는 단계; 및
상기 제2 스마트 컨트랙트의 비교 결과 상기 인증 2키가 동일한 것으로 정보를 수신하면, 상기 인증 2키를 상기 DB에 저장하고, 상기 사용자에게 토큰을 지급하는 단계를 더 포함하고,
상기 토큰은 상기 사용자의 요청에 대한 수행이 완료된 것을 증명하는 용도로 사용되는,
자율보증증명 방법.
9. The method of claim 8,
After the step of recording the fact about the token issuance in a block,
generating an authentication 2 key used for transmission of the token based on predetermined information held by the OP account and sending it to a first smart contract;
When it is determined that the execution of the request has been completed, a contract is set so that an authentication 2 key used for transmission of the token is generated based on the predetermined information stored by the DB, and the first smart contract compares the authentication 2 key transmitting the authentication 2 key generated from the DB to the second smart contract; and
The method further comprising: if information is received that the authentication 2 key is the same as the result of comparison of the second smart contract, storing the authentication 2 key in the DB and providing a token to the user;
The token is used for the purpose of proving that the execution of the user's request has been completed,
How to prove self-assurance.
제9항에 있어서,
상기 OP 계정이 보유한 소정의 정보 및 상기 DB가 저장한 소정의 정보는 각각,
상기 사용자의 공개키, 상기 토큰의 식별 정보, 및 상기 사용자의 인증 1키와, 상기 소정의 정보가 인증 2키 생성 함수로 입력되었을 때의 시간 정보를 포함하고,
상기 인증 2키는,
상기 소정의 정보가 상기 OP 계정의 비밀키로 암호화되어 생성되는,
자율보증증명 방법.
10. The method of claim 9,
The predetermined information held by the OP account and the predetermined information stored in the DB are, respectively,
The user's public key, identification information of the token, and the user's authentication 1 key, and time information when the predetermined information is input by an authentication 2 key generation function,
The authentication 2 key is,
The predetermined information is generated by being encrypted with the secret key of the OP account,
How to prove self-assurance.
제1항에 있어서,
상기 on-chain에 기록할 투자자 정보를 생성하는 단계 이후,
상기 OPM 계정을 통해 상기 요청의 실행을 관리하는 스마트 컨트랙트에 상기 투자 계약에 따른 차입자 및 투자자의 상태를 증명하는 토큰 발행이 수행되도록 하는 트랜잭션을 생성하고 상기 DB에 접근 권한이 있는 블록체인 계정인 OP(operator) 계정을 생성하는 단계;
상기 OPM 계정을 통해 상기 on-chain에 업로드된 상기 투자자의 Key Value를 복호화하여 구한 상기 투자자의 인증 1키를 상기 OP 계정에 전송하고, 상기 OP 계정이 상기 OPM 계정으로부터 전송 받은 상기 투자자의 인증 1키와 상기 DB에 저장된 상기 투자자의 TxID로부터 추출한 인증 1키를 비교하도록 하는 제1 위변조 판단 단계;
상기 OPM 계정을 통해 상기 on-chain에 업로드된 상기 차입자의 Key Value를 복호화하여 구한 상기 차입자의 인증 1키를 상기 OP 계정에 전송하고, 상기 OP 계정이 상기 OPM 계정으로부터 전달받은 상기 차입자의 인증 1키와 상기 DB에 저장된 상기 차입자의 TxID로부터 추출한 인증 1키를 비교하도록 하는 제2 위변조 판단 단계; 및
상기 제1 및 제2 위변조 판단을 기초로 상기 트랜잭션 생성을 결정하는 단계를 더 포함하는,
자율보증증명 방법.
According to claim 1,
After the step of creating investor information to be recorded in the on-chain,
OP, which is a blockchain account with permission to access the DB, creates a transaction that allows token issuance to prove the status of borrowers and investors according to the investment contract to a smart contract that manages the execution of the request through the OPM account (operator) creating an account;
Transmits the investor's authentication 1 key obtained by decrypting the investor's Key Value uploaded to the on-chain through the OPM account to the OP account, and the OP account receives the investor's authentication 1 transmitted from the OPM account a first forgery determination step of comparing the key and the authentication 1 key extracted from the investor's TxID stored in the DB;
The borrower's authentication 1 key obtained by decrypting the borrower's Key Value uploaded to the on-chain through the OPM account is transmitted to the OP account, and the OP account receives the borrower's authentication 1 from the OPM account a second forgery determination step of comparing the key and the authentication 1 key extracted from the borrower's TxID stored in the DB; and
Further comprising the step of determining the transaction creation based on the first and second forgery determination,
How to prove self-assurance.
제11항에 있어서,
상기 트랜잭션 생성을 결정하는 단계 이후,
상기 OPM 계정이 상기 OP 계정으로부터 상기 투자자의 인증 1키를 다시 전송받고, 상기 다시 전송 받은 투자자의 인증 1키를 상기 투자자의 재생성된 인증 1키와 비교하여 상기 OP 계정이 보유하고 있는 투자자의 인증 1키의 유효성을 판단하는 단계;
상기 투자자의 인증 1키가 유효하면, 상기 OPM 계정이 상기 스마트 컨트랙트에 소정 수량의 토큰 발행 트랜잭션을 전송하여 제1 토큰이 상기 OP 계정에 지급되도록 하는 단계;
상기 OPM 계정이 상기 OP 계정이 수신한 제1 토큰 개수가 상기 소정 수량과 일치하는 지를 판별하여 일치하는 경우, 상기 OP 계정이 상기 제1 토큰 발행에 대한 사실을 블록에 기록하는 단계;
상기 OPM 계정이 상기 OP 계정으로부터 상기 차입자의 인증 1키를 다시 전송 받고, 상기 다시 전송 받은 차입자의 인증 1키를 상기 차입자의 재생성된 인증 1키와 비교하여 상기 OP 계정이 보유하고 있는 상기 차입자의 인증 1키의 유효성을 판단하는 단계;
상기 차입자의 인증 1키가 유효하면, 상기 OPM 계정이 상기 스마트 컨트랙트에 소정 수량의 토큰 발행 트랜잭션을 전송하여 제2 토큰이 상기 OP 계정에 지급되도록 하는 단계; 및
상기 OPM 계정이 상기 OP 계정이 수신한 제2 토큰 개수가 상기 소정 수량과 일치하는 지를 판별하여 일치하는 경우, 상기 OP 계정이 상기 제2 토큰 발행에 대한 사실을 블록에 기록하는 단계를 더 포함하는,
자율보증증명 방법.
12. The method of claim 11,
After determining to create the transaction,
The OPM account receives the investor's authentication 1 key from the OP account again, and compares the re-transmitted investor's authentication 1 key with the investor's regenerated authentication 1 key to authenticate the investor held by the OP account 1 determining the validity of the key;
if the investor's authentication 1 key is valid, sending, by the OPM account, a token issuance transaction of a predetermined amount to the smart contract so that a first token is paid to the OP account;
determining, by the OPM account, whether the number of first tokens received by the OP account matches the predetermined quantity, and recording the fact that the first token issuance by the OP account in a block;
The OPM account receives the borrower's authentication 1 key from the OP account again, compares the re-transmitted borrower's authentication 1 key with the borrower's regenerated authentication 1 key, determining the validity of the authentication 1 key;
if the borrower's authentication 1 key is valid, sending, by the OPM account, a token issuance transaction of a predetermined amount to the smart contract so that a second token is paid to the OP account; and
When the OPM account determines whether the number of second tokens received by the OP account matches the predetermined quantity, the OP account further comprises the step of recording the fact about the issuance of the second token in a block ,
How to prove self-assurance.
제12항에 있어서,
상기 제1 및 제2 토큰 발행에 대한 사실을 블록에 기록하는 단계 이후, 상기 투자자 및 상기 차입자 각각에 대하여,
상기 OP 계정이 보유한 소정의 정보를 기초로 상기 제1 및 제2 토큰의 전송에 사용되는 인증 2키 생성하고 제1 스마트 컨트랙트에 전송하게 하는 단계;
상기 요청에 대한 수행이 완료된 것으로 판별되면, 상기 DB가 저장한 소정의 정보를 기초로 상기 제1 및 제2 토큰의 전송에 사용되는 인증 2키 생성하고, 상기 제1 스마트 컨트랙트가 인증 2키를 비교하도록 규약이 정해진 제2 스마트 컨트랙트에, 상기 DB로부터 생성된 인증 2키를 전송하게 하는 단계; 및
상기 제2 스마트 컨트랙트의 비교 결과 상기 인증 2키가 동일한 것으로 정보를 수신하면, 상기 인증 2키를 상기 DB에 저장하고, 상기 투자자 및 차입자 각각에게 상기 제1 및 제2 토큰을 지급하는 단계를 더 포함하고,
상기 제1 토큰은 상기 투자자의 원리금 수취권을 증명하는 용도로 사용되고, 상기 제2 토큰은 상기 차입자의 대출 채무를 증명하는 용도로 사용되는,
자율보증증명 방법.
13. The method of claim 12,
After recording the facts about the first and second token issuance in a block, for each of the investor and the borrower,
generating an authentication 2 key used for transmission of the first and second tokens based on predetermined information held by the OP account and transmitting it to a first smart contract;
When it is determined that the execution of the request is completed, an authentication 2 key used for transmission of the first and second tokens is generated based on the predetermined information stored by the DB, and the first smart contract generates the authentication 2 key transmitting the authentication 2 key generated from the DB to a second smart contract with a set protocol for comparison; and
If information is received that the authentication 2 key is the same as a result of the comparison of the second smart contract, storing the authentication 2 key in the DB, and providing the first and second tokens to the investor and borrower, respectively including,
The first token is used to prove the investor's right to receive principal and interest, and the second token is used to prove the borrower's loan debt,
How to prove self-assurance.
블록체인 기반의 서비스 장치에 있어서,
소정의 동작을 수행하도록 하는 명령어들을 저장하는 하나 이상의 메모리; 및 상기 하나 이상의 메모리와 동작 가능하도록 연결되어 상기 명령어들을 실행하도록 설정된 하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는,
P2P 대출 서비스를 사용하는 투자자 및 차입자를 포함하는 사용자의 블록체인 계정을 생성, 상기 사용자의 고유 정보를 암호화한 인증 1키를 생성, 및 상기 인증 1키를 포함하는 정보를 암호화한 TxID를 생성하고 off-chain DB에 저장하는 동작;
상기 TxID를 포함하는 데이터를 상기 장치가 관리하는 블록체인 계정인 OPM(operator master)의 비대칭키로 암호화한 Key Value을 상기 DB에 저장 및 on-chain에 업로드하는 동작; 및
상기 차입자의 대출 요청 및 상기 대출에 대한 상기 투자자의 투자 실행 요청을 포함하는, 상기 사용자로부터 소정의 동작에 대한 요청을 수신하는 경우, 상기 요청 시점 이후 인증 1키를 재생성하고, 상기 on-chain에 업로드된 Key Value를 기초로 상기 DB에 저장된 Key Value를 검색하고, 상기 검색된 Key Value를 상기 비대칭키의 대응키로 복호화하여 구한 인증 1키와 상기 재생성된 인증 1키를 비교하는 위변조 판단을 기초로 상기 요청에 대한 수행을 결정하는 동작을 수행하고,
상기 수행을 결정하는 동작은,
상기 차입자의 대출 요청을 수신하는 경우, 상기 차입자에 대한 소정의 대출 심사에 기초하여 상기 대출 요청 시점 이후 상기 차입자의 인증 1키를 재생성하고, 상기 차입자에 대한 대출 정보를 생성하는 동작;
상기 대출 요청에 대해 상기 투자자의 투자 요청을 수신하는 경우, 상기 투자 요청 시점 이후 상기 투자자의 인증 1키를 재생성하고, 상기 on-chain에 업로드된 상기 투자자의 Key Value를 기초로 상기 DB에 저장된 상기 투자자의 Key Value를 검색하고 상기 OPM의 비대칭키로 복호화하여 구한 상기 투자자의 인증 1키를, 상기 재생성된 투자자의 인증 1키와 비교하여 위변조 판단하여 상기 대출 정보에 대한 상기 투자자의 투자 계약 여부를 결정하는 동작; 및
상기 대출 요청에 따른 투자 계약이 성립하면, 상기 on-chain에 업로드된 상기 차입자의 Key Value를 기초로 상기 off-chain DB에 저장된 상기 차입자의 Key Value를 검색하고 상기 OPM의 비대칭키로 복호화하여 구한 상기 차입자의 인증 1키를, 상기 재생성된 차입자의 인증 1키와 비교하여 위변조 판단하여, 상기 대출 요청과 관련하여 on-chain에 기록할 차입자 정보 및 상기 투자 요청과 관련하여 on-chain에 기록할 투자자 정보를 생성하는 동작을 포함하는,
블록체인 기반의 서비스 장치.
In the blockchain-based service device,
one or more memories storing instructions for performing predetermined operations; and one or more processors operatively coupled with the one or more memories and configured to execute the instructions;
The one or more processors,
Create a blockchain account for users including investors and borrowers who use the P2P loan service, create an authentication 1 key that encrypts the user's unique information, and generate a TxID that encrypts information including the authentication 1 key, Storing in off-chain DB;
an operation of encrypting the data including the TxID with an asymmetric key of an operator master (OPM), which is a block chain account managed by the device, in the DB and uploading it to the DB and on-chain; and
When receiving a request for a predetermined operation from the user, including the borrower's loan request and the investor's investment execution request for the loan, the authentication 1 key is regenerated after the request time, and the on-chain Based on the forgery determination of retrieving the Key Value stored in the DB based on the uploaded Key Value, and comparing the authentication 1 key obtained by decrypting the retrieved Key Value with the corresponding key of the asymmetric key with the regenerated authentication 1 key. perform an action that determines the execution of the request;
The operation to determine the performance is,
when receiving the loan request from the borrower, regenerating the authentication 1 key of the borrower after the time of the loan request based on a predetermined loan examination for the borrower, and generating loan information for the borrower;
When receiving the investor's investment request for the loan request, the investor's authentication 1 key is regenerated after the investment request time, and stored in the DB based on the investor's Key Value uploaded to the on-chain The investor's authentication 1 key obtained by searching the investor's Key Value and decrypting it with the asymmetric key of the OPM is compared with the regenerated investor's authentication 1 key to determine forgery and forgery to determine whether the investor's investment contract for the loan information action to do; and
When the investment contract according to the loan request is established, the borrower's Key Value stored in the off-chain DB is retrieved based on the borrower's Key Value uploaded to the on-chain, and the obtained by decrypting the OPM's asymmetric key The borrower's authentication 1 key is compared with the regenerated borrower's authentication 1 key to determine forgery, and the borrower information to be recorded on-chain in relation to the loan request and the investor to record on-chain in relation to the investment request comprising the operation of generating information;
Blockchain-based service device.
제1항 내지 제4항 및 제6항 내지 제13항 중 어느 한 항의 방법을 프로세서가 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능 기록매체.Claims 1 to 4 and claim 6 to claim 13, any one of the method of any one of claims, a computer program comprising instructions for causing a processor to perform a computer program is recorded on a computer-readable recording medium.
KR1020190143805A 2019-08-05 2019-11-11 Method and apparatus for autonomous guarantee verification for p2p loan service based on blockchain KR102324155B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190095196 2019-08-05
KR20190095196 2019-08-05

Publications (2)

Publication Number Publication Date
KR20210017964A KR20210017964A (en) 2021-02-17
KR102324155B1 true KR102324155B1 (en) 2021-11-10

Family

ID=74731344

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020190121493A KR102321436B1 (en) 2019-08-05 2019-10-01 Server and method for providing information of p2p finance banking and system thereof
KR1020190121495A KR102321437B1 (en) 2019-08-05 2019-10-01 P2p loan server, method and computer program through relationship banking based on machine learning
KR1020190143805A KR102324155B1 (en) 2019-08-05 2019-11-11 Method and apparatus for autonomous guarantee verification for p2p loan service based on blockchain

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020190121493A KR102321436B1 (en) 2019-08-05 2019-10-01 Server and method for providing information of p2p finance banking and system thereof
KR1020190121495A KR102321437B1 (en) 2019-08-05 2019-10-01 P2p loan server, method and computer program through relationship banking based on machine learning

Country Status (1)

Country Link
KR (3) KR102321436B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102527162B1 (en) * 2021-11-17 2023-04-28 이동주 Method and server for Loan Participation based on block chain network
KR20230074868A (en) 2021-11-22 2023-05-31 박혜원 Method and system for paying daily labor expenses on the workers' labor office application platform

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857223B1 (en) * 2017-11-13 2018-05-11 주식회사 온더 Method and system for user identification based block chain token

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140134567A (en) * 2013-05-14 2014-11-24 주식회사 코스콤 System for managing electronic contract and method therefor
KR20160076583A (en) * 2014-12-23 2016-07-01 제이티친애저축은행 주식회사 Instant loan service method using the wired and wireless web service web services
KR20180060317A (en) * 2016-11-28 2018-06-07 한국전력공사 Apparatus and method for predicting electricity demand based on deep neural networks
KR101877335B1 (en) * 2017-01-02 2018-08-09 주식회사 코인플러그 Method for authenticating a user without a face-to-face contact by using mobile id based on blockchain and merkle tree structure related thereto, and terminal and server using the same
KR101955546B1 (en) * 2017-04-24 2019-03-07 (주)투게더앱스 Lending Meditation Platform System and Credit Estimating Apparatus and Method thereof
KR101913591B1 (en) * 2017-08-25 2018-12-28 경희대학교 산학협력단 Method for recommending financial product using user data
KR20190031989A (en) * 2017-09-19 2019-03-27 주식회사 케이티 System and method for processing electronic contracts based on blockchain
KR20190089506A (en) * 2018-01-23 2019-07-31 박동화 System and method for e-contract with shared and distributed ledger coupled with outer storage devices
KR101980307B1 (en) * 2018-04-19 2019-05-20 김시내 Peer To Peer Investment Mediating System
KR20180074650A (en) * 2018-06-27 2018-07-03 이여송 P2P loan service system of online personal bank to provide the cloud funding function from a number of investors
KR101909503B1 (en) * 2018-07-20 2018-10-18 주식회사 에잇퍼센트 Method and server for automatic diversified investment
KR101975448B1 (en) * 2018-08-14 2019-05-08 (주) 에이투연구소 Evaluation System and Method for Big Data Based Commodity Investment Recommendation Algorithms Using Artificial Intelligence

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857223B1 (en) * 2017-11-13 2018-05-11 주식회사 온더 Method and system for user identification based block chain token

Also Published As

Publication number Publication date
KR20210017956A (en) 2021-02-17
KR102321436B1 (en) 2021-11-03
KR102321437B1 (en) 2021-11-03
KR20210017957A (en) 2021-02-17
KR20210017964A (en) 2021-02-17

Similar Documents

Publication Publication Date Title
US11720887B1 (en) System, method and program product for depositing and withdrawing stable value digital assets in exchange for fiat
US11562333B1 (en) System, method and program product for generating and utilizing stable value digital assets
US11308487B1 (en) System, method and program product for obtaining digital assets
US11200569B1 (en) System, method and program product for making payments using fiat-backed digital assets
US10540653B1 (en) System, method and program product for modifying a supply of stable value digital asset tokens
US10540654B1 (en) System, method and program product for generating and utilizing stable value digital assets
JP6697008B2 (en) System and method for updating distributed ledger based on partial authorization of transaction
US10026118B2 (en) System for allowing external validation of data in a process data network
US10607285B2 (en) System for managing serializability of resource transfers in a process data network
US20200051041A1 (en) System and method for arbitrating a blockchain transaction
US20190147431A1 (en) Credit Protocol
US20180293553A1 (en) Account platform for a distributed network of nodes
US11475442B1 (en) System, method and program product for modifying a supply of stable value digital asset tokens
US20170243222A1 (en) System for use of secure data from a process data network as secured access by users
US20170244707A1 (en) System for establishing secure access for users in a process data network
WO2019144156A1 (en) Method and apparatus for a consumer controlled, decentralized financial profile
EP4032052A1 (en) Performing transactions using private and public blockchains
CN111369730B (en) Voting processing method and device based on block chain
KR20190132047A (en) Method for Providing Service Platform based on Blockchain by using Smart Contract
KR20190132054A (en) Method for Providing Cryptocurrency Trading Platform by using Smart Contract based on Blockchain
KR20190132159A (en) Method for Providing Cryptocurrency Trading Platform based on Blockchain by using Smart Contract
KR102324155B1 (en) Method and apparatus for autonomous guarantee verification for p2p loan service based on blockchain
KR102003731B1 (en) System and method for protecting crypto currency using virtual machine
KR20190132160A (en) Method for Providing Cryptocurrency Trading Platform by using Smart Contract
KR102376783B1 (en) The blockchain-based transaction history confirmation system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant