KR20210033846A - Blockchain transaction method with reduced transaction size using cryptographic hash algorithm - Google Patents

Blockchain transaction method with reduced transaction size using cryptographic hash algorithm Download PDF

Info

Publication number
KR20210033846A
KR20210033846A KR1020190115665A KR20190115665A KR20210033846A KR 20210033846 A KR20210033846 A KR 20210033846A KR 1020190115665 A KR1020190115665 A KR 1020190115665A KR 20190115665 A KR20190115665 A KR 20190115665A KR 20210033846 A KR20210033846 A KR 20210033846A
Authority
KR
South Korea
Prior art keywords
transaction
sender
signature
public key
hash value
Prior art date
Application number
KR1020190115665A
Other languages
Korean (ko)
Other versions
KR102311354B1 (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 주식회사 엔에스에이치씨
Priority to KR1020190115665A priority Critical patent/KR102311354B1/en
Publication of KR20210033846A publication Critical patent/KR20210033846A/en
Application granted granted Critical
Publication of KR102311354B1 publication Critical patent/KR102311354B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

The present invention relates to a blockchain transaction method for reducing a transaction size using a cryptographic hash algorithm. The blockchain transaction method generates and propagates a transaction consisting of a hash value of a public key of a recipient, a hash value of the signature of a sender, and the amount.

Description

암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법{BLOCKCHAIN TRANSACTION METHOD WITH REDUCED TRANSACTION SIZE USING CRYPTOGRAPHIC HASH ALGORITHM}Blockchain transaction method with reduced transaction size using cryptographic hash algorithm {BLOCKCHAIN TRANSACTION METHOD WITH REDUCED TRANSACTION SIZE USING CRYPTOGRAPHIC HASH ALGORITHM}

본 발명은 블록체인 트랜잭션 방법에 관한 것으로서, 보다 구체적으로는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 관한 것이다.The present invention relates to a block chain transaction method, and more specifically, to a block chain transaction method in which the transaction size is reduced using a cryptographic hash algorithm.

전자서명에는 보통 RSA와 ECC 등 비대칭 암호 알고리즘에 기반한 전자서명 스킴이 사용된다. 그러나 실용적으로 사용 가능한 양자 컴퓨터가 구현될 시 프로세서의 성능이 막대하게 향상될 수 있으며, 쇼어 알고리즘(Shors algorithm), 그로버 알고리즘(Grovers algorithm) 등 양자 알고리즘을 이용하여, 기존 컴퓨터로 연산할 수 없던 문제를 풀 수 있다. 쇼어 알고리즘은 공개키 암호 알고리즘의 근간이 되는 인수분해, 이산 로그 문제를 다항식 시간 내로 연산할 수 있어, RSA, ECC는 취약한 암호 알고리즘으로 전락하게 된다. 그로버 알고리즘은 기존 암호 알고리즘의 보안 복잡도를 반감할 수 있어 해시함수, 대칭키 등의 암호 알고리즘의 보안성이 반감된다.
For digital signatures, digital signature schemes based on asymmetric cryptographic algorithms such as RSA and ECC are usually used. However, when a practically usable quantum computer is implemented, the performance of the processor can be vastly improved, and it is a problem that cannot be computed with an existing computer using quantum algorithms such as the Shores algorithm and the Grovers algorithm. Can be solved. The Shore algorithm can compute factorization and discrete log problems, which are the basis of public key cryptographic algorithms, within polynomial time, so RSA and ECC become weak cryptographic algorithms. Grover's algorithm can halve the security complexity of existing cryptographic algorithms, so the security of cryptographic algorithms such as hash functions and symmetric keys is halved.

대부분의 분산원장 및 블록체인은 ECC 기반의 전자서명 스킴(ECDSA)을 사용한다. 이를 이용하는 분산원장 및 블록체인은 양자 컴퓨터를 고려할 시 장기적인 사용을 기대할 수 없다. 이에 대비해 양자 내성 암호(Post-Quantum Cryptography)를 블록체인에 도입하는 연구가 진행되고 있다. 양자 내성 암호와 블록체인을 결합한 것을 양자 내성 블록체인(Post-Quantum Blockchain)이라 부르며, 쇼어 알고리즘, 그로버 알고리즘 등 양자 알고리즘 공격에 내성을 갖는다.
Most distributed ledgers and blockchains use ECC-based digital signature scheme (ECDSA). Distributed ledgers and blockchains using this cannot be expected to be used for a long time when quantum computers are considered. In preparation for this, research is underway to introduce Post-Quantum Cryptography to the blockchain. The combination of quantum resistant cryptography and blockchain is called a post-quantum blockchain, and is resistant to quantum algorithm attacks such as Shore algorithm and Grover algorithm.

그러나, 양자 내성 블록체인을 구현하기 위해 임의의 양자 내성 암호를 블록체인에 그대로 도입하게 되면, 비대한 공개키, 서명 크기가 문제가 되거나, 서명 검증시간이 길어지는 문제가 발생할 수 있다. 따라서 이를 해결할 수 있는 기술의 개발이 필요한 실정이다.
However, if an arbitrary quantum-resistant cipher is introduced into the blockchain as it is to implement a quantum-resistant blockchain, there may be a problem with a large public key and signature size, or a problem that the signature verification time is lengthened. Therefore, it is necessary to develop a technology that can solve this problem.

한편, 본 발명과 관련된 선행기술로서, 등록특허 제10-1950912호(발명의 명칭: 블록체인 기반 트랜잭션 검증 시스템 및 그 방법, 등록 일자: 2019년 02월 15일) 등이 개시된 바 있다.Meanwhile, as a prior art related to the present invention, Patent No. 10-1950912 (title of the invention: blockchain-based transaction verification system and method thereof, registration date: February 15, 2019) has been disclosed.

본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법을 제공하는 것을 그 목적으로 한다.The present invention has been proposed to solve the above problems of the previously proposed methods. By generating and propagating a transaction consisting of the hash value of the recipient public key, the hash value of the sender's signature, and the amount, the large public key and Cryptography that can significantly reduce the size of transactions with signature sizes to introduce various quantum-resistant electronic signatures into the blockchain, and ultimately increase the compatibility of quantum-resistant electronic signatures of the blockchain and reduce the overall size of the blockchain. Its purpose is to provide a blockchain transaction method that reduces the size of a transaction by using a hash algorithm.

상기한 목적을 달성하기 위한 본 발명의 특징에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은,Blockchain transaction method in which the transaction size is reduced by using a cryptographic hash algorithm according to a feature of the present invention to achieve the above object,

복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,As a transaction method in a blockchain-based system including a plurality of blockchain nodes,

수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하여 전파하는 것을 그 구성상의 특징으로 한다.
The constructional feature is that a transaction consisting of the hash value of the recipient's public key and the hash value of the sender's signature is generated and propagated.

바람직하게는,Preferably,

(1) 수신자 공개키의 해시값을 트랜잭션 데이터에 저장하는 단계;(1) storing the hash value of the recipient public key in transaction data;

(2) 서명 함수를 콜하는 단계;(2) calling a signature function;

(3) 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명하는 단계; 및(3) signing the hash value of the previous transaction and the recipient public key with the sender private key; And

(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,(4) generating a hash value of the sender's signature in step (3) and storing it in the transaction data,

상기 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성할 수 있다.
A transaction consisting of the hash value of the recipient public key and the hash value of the sender's signature may be generated.

바람직하게는,Preferably,

상기 블록체인은, 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하며,The blockchain uses monetary assets to convert values into amounts and transact,

수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파하되,Generate and propagate a transaction consisting of the hash value of the recipient's public key, the hash value of the sender's signature, and the amount,

(1) 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장하는 단계;(1) storing the hash value and the amount of the recipient public key in transaction data;

(2) 서명 함수를 콜하는 단계;(2) calling a signature function;

(3) 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명하는 단계; 및(3) signing the hash value, the recipient public key, and the amount of the previous transaction with the sender private key; And

(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,(4) generating a hash value of the sender's signature in step (3) and storing it in the transaction data,

상기 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성할 수 있다.
A transaction consisting of the hash value of the recipient public key, the hash value of the sender's signature, and the amount may be generated.

더욱 바람직하게는, 상기 단계 (4) 이후에는,More preferably, after step (4),

(5) 상기 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계를 더 포함할 수 있다.
(5) The step of generating transaction information including the transaction data and additional information on the transaction may be further included.

더더욱 바람직하게는,Even more preferably,

상기 트랜잭션 정보는, 발신자 공개키 및 발신자 서명을 포함하며,The transaction information includes a sender public key and a sender signature,

상기 트랜잭션 정보는, 승인되지 않은 거래 풀(pool)에 보관되고, 상기 풀에서 트랜잭션이 포함된 블록의 모든 트랜잭션이 안정적인 상태가 되면, 상기 트랜잭션 정보는 상기 승인되지 않은 거래 풀에서 제거될 수 있다.
The transaction information is stored in an unauthorized transaction pool, and when all transactions in a block including a transaction in the pool become stable, the transaction information may be removed from the unauthorized transaction pool.

더더더욱 바람직하게는, 상기 트랜잭션 정보는,Even more preferably, the transaction information,

수신자 확인을 위한 상기 수신자 공개키 및 트랜잭션의 해시값을 더 포함할 수 있다.
The recipient public key for confirming the recipient and a hash value of the transaction may be further included.

바람직하게는, 상기 블록체인은,Preferably, the block chain,

블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함할 수 있다.
All transactions included in the block may include a fixed block in a stable state and an unfixed block including at least one unstable transaction.

더욱 바람직하게는,More preferably,

상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부하고, 상기 비고정 블록이 고정 블록이 되면 상기 첨부된 발신자 공개키 및 발신자 서명을 트랜잭션에서 제거할 수 있다.
For verification in the non-fixed block, a sender public key and a sender signature may be attached, and when the non-fixed block becomes a fixed block, the attached sender public key and sender signature may be removed from the transaction.

또한, 상기한 목적을 달성하기 위한 본 발명의 특징에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은,In addition, the blockchain transaction method in which the transaction size is reduced by using a cryptographic hash algorithm according to a feature of the present invention for achieving the above object,

복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,As a transaction method in a blockchain-based system including a plurality of blockchain nodes,

상기 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하고,The blockchain includes a fixed block in which all transactions included in the block are in a stable state and an unfixed block including at least one unstable transaction,

(a) 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계;(a) generating a transaction consisting of a hash value of a recipient public key and a hash value of a sender's signature;

(b) 상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 상기 트랜잭션을 전파하는 단계; 및(b) storing the transaction information attached to the sender public key and the sender signature in an unauthorized transaction pool for verification in the non-fixed block, and propagating the transaction; And

(c) 상기 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 상기 트랜잭션 정보를 상기 승인되지 않은 거래 풀에서 제거하는 단계를 포함하는 것을 또 다른 구성상의 특징으로 한다.(c) if the block containing the transaction is included in the fixed block, removing the transaction information from the unauthorized transaction pool is another structural feature.

본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.According to the blockchain transaction method in which the transaction size is reduced by using the cryptographic hash algorithm proposed in the present invention, a transaction consisting of the hash value of the recipient public key, the hash value of the sender's signature, and the amount is generated and propagated. By drastically reducing the size of transactions with public keys and signature sizes, various quantum-resistant electronic signatures can be introduced into the blockchain, and ultimately, quantum-resistant electronic signature compatibility of the blockchain can be increased, and the size of the overall blockchain can also be reduced. have.

도 1은 양자 내성 전자서명 스킴에 대한 평균 거래 크기, 블록 크기 및 체인 전체의 크기를 예측하여 표시한 도면.
도 2는 기존 트랜잭션 구조를 설명하기 위해 도시한 도면.
도 3은 메인체인에서의 고정 블록과 비고정 블록을 나타낸 도면.
도 4는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 흐름을 도시한 도면.
도 5는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따른 트랜잭션 구조를 설명하기 위해 도시한 도면.
도 6은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S100의 세부적인 흐름을 도시한 도면.
도 7은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 단계 S100의 구현을 위한 알고리즘을 도시한 도면.
도 8은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S300의 처리를 위한 알고리즘을 도시한 도면.
도 9는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 고정 블록을 검증하기 위한 알고리즘을 도시한 도면.
도 10은 각 실험환경에서의 평균 서명 및 검증시간과 표준편차를 나타낸 도면.
1 is a diagram showing an average transaction size, a block size, and the overall size of the chain for a quantum resistant electronic signature scheme predicted and displayed.
2 is a diagram illustrating an existing transaction structure.
3 is a view showing a fixed block and a non-fixed block in the main chain.
4 is a diagram illustrating a flow of a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention.
5 is a diagram illustrating a transaction structure according to a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention.
6 is a diagram showing a detailed flow of step S100 in a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention.
7 is a diagram showing an algorithm for implementing step S100 of a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention.
8 is a diagram showing an algorithm for processing step S300 in a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention.
9 is a diagram showing an algorithm for verifying a fixed block in a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention.
10 is a diagram showing the average signature and verification time and standard deviation in each experimental environment.

이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
Hereinafter, preferred embodiments will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present invention. However, in describing a preferred embodiment of the present invention in detail, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, the same reference numerals are used throughout the drawings for parts having similar functions and functions.

덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 연결 되어 있다고 할 때, 이는 직접적으로 연결 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 간접적으로 연결 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 포함 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
In addition, throughout the specification, when a part is said to be connected to another part, this includes not only the case that it is directly connected, but also the case that it is indirectly connected with another element interposed therebetween. In addition, the inclusion of certain components means that other components may be further included rather than excluding other components unless specifically stated to the contrary.

본 발명은 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 관한 것으로서, 본 발명의 특징에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 메모리 및 프로세서를 포함한 하드웨어에서 기록되는 소프트웨어로 구성될 수 있다. 예를 들어, 본 발명의 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 개인용 컴퓨터, 노트북 컴퓨터, 서버 컴퓨터, PDA, 스마트폰, 태블릿 PC 등에 저장 및 구현될 수 있다. 이하에서는 설명의 편의를 위해, 각 단계를 수행하는 주체는 생략될 수 있다.
The present invention relates to a blockchain transaction method in which a transaction size is reduced using a cryptographic hash algorithm, and a blockchain transaction method in which the transaction size is reduced using a cryptographic hash algorithm according to a feature of the present invention includes a memory and a processor. It can be configured with software that is recorded in hardware. For example, the blockchain transaction method in which the transaction size is reduced by using the cryptographic hash algorithm of the present invention can be stored and implemented in a personal computer, a notebook computer, a server computer, a PDA, a smartphone, a tablet PC, and the like. Hereinafter, for convenience of description, a subject performing each step may be omitted.

블록체인 기반 시스템에서는, 복수의 트랜잭션이 모여 블록을 구성할 수 있고, 블록은 블록체인 형태로 구성될 수 있다. 노드는 서버나 컴퓨터 등으로 구현될 수 있으며 각각의 노드에는 블록체인이 탑재되는데, 이를 블록체인 노드라 할 수 있다. 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서, 노드는 결제 등의 이벤트에 따라 트랜잭션을 생성하고, 각 노드는 트랜잭션 정보를 수신하여 검증하며, 지정된 다음 단의 노드들에게 트랜잭션을 전파하게 된다.
In a blockchain-based system, a plurality of transactions can be gathered to form a block, and a block can be configured in the form of a block chain. Nodes can be implemented as servers or computers, and each node is equipped with a blockchain, which can be referred to as a blockchain node. In a blockchain-based system including multiple blockchain nodes, a node creates a transaction according to an event such as payment, each node receives and verifies the transaction information, and propagates the transaction to the next designated node. .

트랜잭션을 위한 전자서명에는 보통 RSA와 ECC 등 비대칭 암호 알고리즘에 기반한 전자서명 스킴이 사용된다. 그러나 양자 컴퓨터의 실용적 구현이 임박하면서, 양자 내성 암호(Post-Quantum Cryptography)를 블록체인에 도입하는 연구가 진행되고 있다.
Digital signature schemes based on asymmetric cryptographic algorithms such as RSA and ECC are usually used for digital signatures for transactions. However, as the practical implementation of quantum computers is imminent, research on introducing Post-Quantum Cryptography into the blockchain is underway.

모든 양자 내성 암호는 ECDSA보다 비대한 공개키 크기와 서명 크기를 가진다. 공개키는 최소 2배에서 최대 64배 차이가 나며, 서명은 최소 22배에서 최대 1920배가 차이난다. 이러한 양자 내성 전자서명이 그대로 적용되면, 트랜잭션의 크기 또한 비례하여 증가하고, 블록, 블록체인의 크기 또한 비례하여 증가할 것이다. 따라서 블록체인 저장 공간이 매우 비대해지므로 한 노드가 부담하는 자원, 비용 등이 증폭될 것으로 예측된다.
All quantum resistant ciphers have a larger public key size and signature size than ECDSA. Public keys differ by a minimum of 2 times and a maximum of 64 times, and signatures differ by a minimum of 22 times and a maximum of 1920 times. If such quantum resistant digital signature is applied as it is, the size of the transaction will also increase proportionally, and the size of the block and blockchain will also increase proportionately. Therefore, it is expected that the resources and costs borne by one node will be amplified as the block chain storage space becomes very large.

도 1은 양자 내성 전자서명 스킴에 대한 평균 거래 크기, 블록 크기 및 체인 전체의 크기를 예측하여 표시한 도면이다. 도 1은, 2019년 4월 14일 09:00(GMT+0900)시 기준 비트코인 블록체인의 전체 크기는 약 207.66GB, 평균 거래 수 2,763, 블록 수는 578,151개인 것에 기반하여, 각 양자 내성 전자서명 스킴에 대해 평균 거래 크기, 블록 크기, 체인 전체의 크기를 추측한 것이다. 현재 비트코인과 같은 블록 수가 쌓였다고 가정하면, 도 1에서 확인할 수 있는 바와 같이, 양자 내성 전자서명 스킴에 대한 체인 전체의 크기는, 최소 약 54Tb에서 최대 1,924Tb 정도로 추측됐다. 이렇게 공개키/서명 쌍의 사이즈 증가는 블록체인의 무게를 배로 증가시켜 상당한 부담이 될 것이다. 따라서 공개키/서명 크기에 대한 부담을 줄일 수 있는 방안이 필요하다.
1 is a diagram illustrating predicted and displayed average transaction size, block size, and overall chain size for a quantum resistant electronic signature scheme. Figure 1 shows that at 09:00 on April 14, 2019 (GMT+0900), the total size of the Bitcoin blockchain is about 207.66 GB, the average number of transactions is 2,763, and the number of blocks is 578,151, each quantum resistant electron For the signature scheme, the average transaction size, block size, and overall size of the chain were estimated. Assuming that the number of blocks equal to the current bitcoin is accumulated, as can be seen in FIG. 1, the size of the entire chain for the quantum resistant electronic signature scheme was estimated to be about 54 Tb at the minimum and 1,924 Tb at the maximum. This increase in the size of the public key/signature pair will increase the weight of the blockchain, which will be a significant burden. Therefore, there is a need for a way to reduce the burden on the size of the public key/signature.

본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하여 전파할 수 있다. 다만, 블록체인이 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하는 경우에는, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파할 수 있다. 즉, 본 발명에서는, 블록체인의 특성에 따라 가치 교환을 하지 않는 블록체인의 경우에는, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 트랜잭션을 구성하고, 암호화폐 등 화폐 자산을 이용하여 가치를 금액으로 환산해 거래하는 블록체인의 경우에는, 수신자 공개키의 해시값 및 발신자 서명의 해시값 외에, 금액을 더 포함하여 트랜잭션을 구성할 수 있다.
A blockchain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention is a transaction method in a blockchain-based system including a plurality of blockchain nodes, and includes a hash value of a recipient public key and a sender. A transaction consisting of the hash value of the signature can be created and propagated. However, when the blockchain transacts by converting value into an amount using a monetary asset, it can generate and propagate a transaction consisting of the hash value of the recipient's public key, the hash value of the sender's signature, and the amount. That is, in the present invention, in the case of a block chain that does not exchange value according to the characteristics of the block chain, a transaction is constructed with the hash value of the recipient's public key and the hash value of the sender's signature, and value In the case of a blockchain that converts to an amount and transacts, in addition to the hash value of the recipient's public key and the hash value of the sender's signature, a transaction can be formed by further including an amount.

따라서 본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키가 아닌 수신자 공개키의 해시값, 발신자 서명이 아닌 발신자 서명의 공개키를 포함하여, 암호학적 해시 알고리즘을 이용해 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시킬 수 있다. 따라서 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.
Therefore, according to the blockchain transaction method in which the transaction size is reduced using the cryptographic hash algorithm proposed in the present invention, the hash value of the recipient public key rather than the recipient public key, and the public key of the sender's signature rather than the sender's signature, are included. By using a cryptographic hash algorithm, the size of transactions with large public keys and signature sizes can be drastically reduced. Therefore, various quantum resistant electronic signatures can be introduced into the blockchain, ultimately increasing the compatibility of the blockchain's quantum resistant electronic signature, and reducing the overall size of the blockchain.

이하에서는, 설명의 편의를 위해 금액을 포함하는 트랜잭션 구조를 기본으로 설명하며, 가치 교환을 하지 않는 블록체인의 경우에는 금액이 제외된다는 점 이외에, 나머지는 동일하게 처리될 수 있다.
In the following, for convenience of explanation, a transaction structure including an amount is basically described, and in the case of a blockchain that does not exchange value, the rest can be processed in the same manner, except that the amount is excluded.

도 2는 기존 트랜잭션 구조를 설명하기 위해 도시한 도면이다. 도 2에 도시된 바와 같은 구조에서, 트랜잭션은 발신자 서명, 발신자 공개키, 수신자 공개키, 금액 등의 정보를 모두 포함한다. 반면에 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서는, 암호학적 해시 알고리즘을 이용해, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액만을 포함하는 트랜잭션 구조를 제안함으로써, 트랜잭션 사이즈를 대폭 감소시킬 수 있다.
2 is a diagram illustrating an existing transaction structure. In the structure as shown in FIG. 2, a transaction includes all information such as a sender's signature, a sender's public key, a recipient's public key, and an amount. On the other hand, in the blockchain transaction method in which the transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention, only the hash value of the recipient public key, the hash value of the sender's signature, and the amount are included using a cryptographic hash algorithm. By proposing a transaction structure that can be used, the transaction size can be significantly reduced.

이하에서는, 도 2를 참조하여, 본 발명에서 설명을 위해 사용하는 개념과 기호에 대해 설명하도록 한다.
Hereinafter, with reference to FIG. 2, concepts and symbols used for description in the present invention will be described.

블록: 도 2는 블록 구조를 표현한 예제이며, 본 발명은 다음 구조를 기본 블록 구조로 따른다.
Block: FIG. 2 is an example of expressing a block structure, and the present invention follows the following structure as a basic block structure.

메인체인: 노드들이 합의를 통해 유효한 것으로 여기는 가장 긴 체인을 메인체인(mainchain)이라 한다.
Mainchain: The longest chain that nodes consider to be valid through consensus is called the mainchain.

팁: 메인체인의 가장 끝단에 있는 블록을 팁(tip)이라 한다.
Tip: The block at the very end of the main chain is called a tip.

트랜잭션: 트랜잭션은 TX로 나타낸다. 코인을 사용하기 위해 발신자는 이전에 받은 코인 전송 내역을 담은 트랜잭션을 호출하는 경우가 있으며, 이 경우 호출되는 트랜잭션은 PrevTX 로 나타낸다.
Transaction: Transaction is indicated by TX. In order to use the coin, the sender sometimes calls a transaction containing the previously received coin transmission history, and in this case, the called transaction is represented by PrevTX.

공개키 개인키 쌍: 본 발명에서는 발신자(Sender)의 키쌍을 나타내기 위해 pubs, privs로 표기하며, 수신자(recipient)의 키쌍은 pubr, privr로 표기한다.
Public key private key pair: In the present invention, pub s and priv s are used to indicate the sender's key pair, and the recipient's key pair is pub r and priv r .

금액: 트랜잭션에서 발신자가 받는 코인 금액의 양을 amount라 한다.
Amount: The amount of coins received by the sender in a transaction is called amount.

해시함수: 해시함수를 수행하는 함수식 H(x)=h이며, 임의의 유한 비트 길이의 입력 x에서 고정된 비트 길이의 해시값 h를 출력으로 맵핑한다. 해시함수는 (a) preimage resistance, (b) 2nd-preimage resistance, (c) collision resistance, 세 가지 속성을 만족해야 안전하다고 볼 수 있다.
Hash function: A function expression H(x)=h that performs a hash function, and maps a hash value h of a fixed bit length from an input x of an arbitrary finite bit length to an output. The hash function can be considered safe only when three properties are satisfied: (a) preimage resistance, (b) 2nd-preimage resistance, and (c) collision resistance.

서명: 트랜잭션에는 일반적으로 발신자의 서명이 포함된다. 본 발명에서는 발신자의 서명 σs에 들어가는 요소를 축약하며, 다음 수학식 1을 통해 만들 수 있다. Signature: Transactions usually contain the sender's signature. In the present invention, the element that enters the sender's signature σ s is abbreviated and can be made through Equation 1 below.

Figure pat00001
Figure pat00001

즉, 사용하려는 코인의 수신 내역이 담긴 이전 트랜잭션의 해시값 H(PrevTX)을 참조를 위해 넣고, 수신자의 공개키 pubr, 금액 amount을 발신자의 개인키 privs로 서명한다. 이를 통해 서명 σs을 도출할 수 있다.
That is, the hash value H (PrevTX) of the previous transaction containing the reception details of the coin to be used is put for reference, and the recipient's public key pub r and the amount amount are signed with the sender's private key priv s. This allows us to derive the signature σ s.

서명 검증: 다음 수학식 2는 서명을 검증하는 함수식이다. 서명 σ은 노드의 공개키 pub를 이용하여 유효성을 검증할 수 있다. Signature Verification: The following Equation 2 is a functional equation for verifying the signature. The signature σ can be validated using the node's public key pub.

Figure pat00002
Figure pat00002

노드의 공개키 pub와 서명 σ을 검증하면 검증값 v가 나오며, 검증값 0은 true를 1은 false를 의미한다. 즉 v=0이면, 트랜잭션은 유효하다.
Verification of the node's public key pub and signature σ results in a verification value v, where 0 means true and 1 means false. That is, if v=0, the transaction is valid.

보안 파라미터: 트랜잭션이 블록에 포함되면, 그 트랜잭션은 승인(confirmed)받았다고 말한다. 또한, 트랜잭션이 포함된 블록에 뒤이어 블록이 더해지면, 더해진 블록 수만큼 승인 횟수(Confirmation Number)가 증가한다. 승인 횟수가 증가할수록 트랜잭션이 조작될 가능성은 작아지며, 승인횟수가 k번 이상일 때 트랜잭션의 상태(status)는 안정적(stable)이라고 표현할 수 있다. 이때, k는 보안 파라미터이다. 승인 횟수는 트랜잭션이 포함된 블록의 높이에 따라 달라지고, 보안 파라미터 k는 고정 상수로, 개발자/운영자가 설정할 수 있다. Security parameter: When a transaction is included in a block, the transaction is said to have been confirmed. In addition, when a block is added following a block containing a transaction, the confirmation number increases by the number of blocks added. As the number of approvals increases, the possibility of a transaction being manipulated decreases, and when the number of approvals is more than k, the status of the transaction can be expressed as stable. In this case, k is a security parameter. The number of approvals depends on the height of the block containing the transaction, and the security parameter k is a fixed constant and can be set by the developer/operator.

Figure pat00003
Figure pat00003

수학식 3에서, 트랜잭션의 승인횟수가 k보다 작으면, 트랜잭션의 상태는 불안정적(unstable)이며 1로 표현된다. 트랜잭션의 승인횟수가 k 이상일 때, 트랜잭션의 상태는 안정적이며 0으로 표현된다.
In Equation 3, if the number of approvals of the transaction is less than k, the state of the transaction is unstable and is expressed as 1. When the number of approvals of a transaction is more than k, the state of the transaction is stable and is expressed as 0.

고정 블록 / 비고정 블록: 블록 내에 포함된 모든 TX가 안정적인(stable) 상태를 가질 때, 해당 블록을 고정 블록(fixed block)이라 한다. 즉, 고정 블록은 메인체인의 팁에서 k 블록 이상 떨어진 블록을 말한다. 또한, 메인체인의 팁에서 k 미만으로 떨어진 블록은 비고정 블록(unfixed block)이라 불리며 비고정 블록에 포함되는 TX는 불안정적(unstable)이다.
Fixed Block / Non-Fixed Block: When all TXs included in a block have a stable state, the corresponding block is called a fixed block. In other words, a fixed block refers to a block that is more than k blocks away from the tip of the main chain. In addition, blocks that are less than k from the tip of the main chain are called unfixed blocks, and TX included in the unfixed blocks is unstable.

도 3은 메인체인에서의 고정 블록과 비고정 블록을 나타낸 도면이다. 도 3에 도시된 바와 같이, 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함할 수 있다.
3 is a diagram showing a fixed block and a non-fixed block in the main chain. As shown in Figure 3, the blockchain is an unfixed block including at least one or more fixed blocks and unstable transactions in which all transactions included in the block are in a stable state. It may include.

이하에서는, 전술한 바와 같은 개념을 이용하여, 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 세부적인 흐름에 대해 상세히 설명하도록 한다.
Hereinafter, a detailed flow of a blockchain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention will be described in detail using the above-described concept.

도 4는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 흐름을 도시한 도면이다. 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계(S100), 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 트랜잭션을 전파하는 단계(S200), 및 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 트랜잭션 정보를 승인되지 않은 거래 풀에서 제거하는 단계(S300)를 포함하여 구현될 수 있다.
4 is a diagram illustrating a flow of a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention. As shown in Figure 4, the blockchain transaction method in which the size of a transaction is reduced using a cryptographic hash algorithm according to an embodiment of the present invention includes a hash value of a recipient public key and a hash value of a sender's signature. Generating (S100), for verification in a non-fixed block, storing the transaction information attached to the sender public key and the sender signature in an unauthorized transaction pool, and propagating the transaction (S200), and If the block is included in the fixed block, it may be implemented including the step (S300) of removing transaction information from the unauthorized transaction pool.

단계 S100에서는, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성할 수 있다. 이때, 블록체인이 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하는 경우에는, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성할 수 있다. 도 5는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따른 트랜잭션 구조를 설명하기 위해 도시한 도면이다.
In step S100, a transaction consisting of a hash value of a recipient public key and a hash value of a sender's signature may be generated. At this time, when the blockchain transacts by converting the value into an amount using a monetary asset, a transaction consisting of the hash value of the recipient public key, the hash value of the sender's signature, and the amount can be created. 5 is a diagram illustrating a transaction structure according to a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention.

본 발명에서는, 양자 내성 전자서명 적용을 위한 새로운 트랜잭션 구조 및 합의 메커니즘을 제안한다. 기존 트랜잭션의 구조를 단순화하면, 발신자의 서명과 공개키 쌍, 수신자의 공개키, 송금금액으로 이루어진다. 도 2에 도시된 바와 같이, 기존 트랜잭션의 구성요소는 크게 2종류로 나뉜다. 사용하려는 금액의 소유권 증명을 위한 발신자의 서명 σs(도 2에서 sigS), 공개키 pubs(도 2에서 pubS)가 있고, 금액의 수신자에 대한 정보로 수신자의 공개키 pubr(도 2에서 pubR), 받는 금액의 양 amount가 기록된다. 이때, 서명은 이전 트랜잭션의 해시값과, 수신자의 공개키, 금액을 서명한 값이다.
In the present invention, a new transaction structure and consensus mechanism for applying quantum resistant digital signatures is proposed. Simplifying the structure of the existing transaction consists of the sender's signature and public key pair, the recipient's public key, and the amount of remittance. As shown in Fig. 2, the components of an existing transaction are largely divided into two types. There is a sender's signature σ s (sigS in Fig. 2), a public key pub s (pubS in Fig. 2) for proof of ownership of the amount to be used, and the recipient's public key pub r (in Fig. 2) as information on the recipient of the amount pubR), the amount of the received amount amount is recorded. At this time, the signature is the hash value of the previous transaction, the recipient's public key, and the signed value.

그러나 기존 구조에 양자 내성 암호를 그대로 적용한다면 전술한 바와 같이, 트랜잭션의 크기가 비대해질 수 있다. 따라서 본 발명에서는, 발신자의 서명과 수신자의 공개키를 해시한 값과 금액으로 이루어진 트랜잭션을 제안하여 공개키/서명 크기를 줄이고자 한다. 제안 트랜잭션은, 도 5에 도시된 바와 같이, 발신자의 서명 σs의 해시값(도 5에서 sigSHash), 수신자의 공개키 pubr의 해시값(도 5에서 pubRHash)과 받는 금액의 양 amount만으로 이루어질 수 있다. 발신자의 공개키 pubs는 트랜잭션에서 제거되고, 서명 해시값은 서명 확인 용도로, 공개키 해시값과 금액은 수신자에 대한 정보로 저장될 수 있다.
However, if the quantum resistant cipher is applied to the existing structure as it is, as described above, the size of the transaction may be enlarged. Therefore, in the present invention, the public key/signature size is reduced by proposing a transaction consisting of a value and amount obtained by hashing the sender's signature and the receiver's public key. As shown in FIG. 5, the proposed transaction consists only of the hash value of the sender's signature σ s (sigSHash in FIG. 5), the hash value of the recipient's public key pub r (pubRHash in FIG. 5), and the amount of the received amount. I can. The sender's public key pub s may be removed from the transaction, the signature hash value may be stored for signature verification purposes, and the public key hash value and amount may be stored as information about the recipient.

한편, 서명 검증에는 공개키/서명 쌍이 필요하므로, 본 발명에서는 {pubs, σs}를 같이 전송하여 추후 상세히 설명할 단계 S200 및 단계 S300에서 검증에 이용하고, 일정 기간이 지난 뒤에는 {pubs, σs}를 파기하는 새로운 방식을 제안한다.
Meanwhile, since a public key/signature pair is required for signature verification, in the present invention, {pub s and σ s } are transmitted together and used for verification in steps S200 and S300 that will be described in detail later, and after a certain period of time, {pub s We propose a new method to destroy, σ s }.

도 5에 예를 들어 도시된 바와 같이, 트랜잭션 정보 TXinfo에는 트랜잭션 데이터 그 자체(도 5에서 txdata)와 트랜잭션의 해시값(도 5에서 hashvalue), 검증 결과(도 5에서 v), 트랜잭션이 포함되는 블록의 높이(도 5에서 height), 발신자의 공개키와 서명(도 5에서 pubS, sigS), 수신처를 확인하기 위한 수신자의 공개키(도 5에서 pubR), 그리고 트랜잭션이 안정적인지(stable) 불안정적인지(unstable)를 나타내는 상태 필드(도 5에서 status)가 있다. 이 트랜잭션 정보는 승인되지 않은 거래 풀(Unconfirmed Transaction Pool)에서 보관된다. 이때, 해시함수에 그로버 알고리즘과 생일 공격을 접목하여 수행하면 비도가 낮아진다. 따라서 본 발명에서는, 해시함수의 길이(도 5에서 HashSizes)를 늘려 같은 안정성을 유지하고자 한다.
5, the transaction information TXinfo includes the transaction data itself (txdata in FIG. 5), the hash value of the transaction (hashvalue in FIG. 5), the verification result (v in FIG. 5), and the transaction. Block height (height in FIG. 5), sender's public key and signature (pubS, sigS in FIG. 5), recipient's public key to verify destination (pubR in FIG. 5), and whether the transaction is stable (stable) unstable There is a status field (status in FIG. 5) indicating whether it is unstable. This transaction information is stored in the Unconfirmed Transaction Pool. At this time, if the hash function is combined with the Grover algorithm and the birthday attack, the ratio is lowered. Therefore, in the present invention, it is intended to maintain the same stability by increasing the length of the hash function (HashSizes in FIG. 5).

도 6은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S100의 세부적인 흐름을 도시한 도면이고, 도 7은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 단계 S100의 구현을 위한 알고리즘을 도시한 도면이다. 도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장하는 단계(S110), 서명 함수를 콜하는 단계(S120), 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명하는 단계(S130) 및 발신자 서명의 해시값을 생성해 트랜잭션 데이터에 저장하는 단계(S140)를 포함하여 구현될 수 있으며, 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계(S150)를 더 포함하여 구현될 수 있다. 본 발명에서, 트랜잭션은 도 6 및 도 7에 도시된 바와 같은 방식으로 생성되고 전파될 수 있다.
6 is a diagram showing a detailed flow of step S100 in a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention. A diagram showing an algorithm for the implementation of step S100 of the blockchain transaction method in which the transaction size is reduced by using the cryptographic hash algorithm according to the following. As shown in FIG. 6, the block chain transaction method in which the transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention includes storing a hash value and an amount of a recipient public key in transaction data (S110). ), calling the signature function (S120), signing the hash value of the previous transaction, the recipient public key, and the amount with the sender's private key (S130), and generating the hash value of the sender's signature and storing it in the transaction data (S140) ), and generating transaction information including transaction data and additional information on the transaction (S150). In the present invention, transactions can be created and propagated in a manner as shown in Figs. 6 and 7.

거래 생성 알고리즘의 인풋은 서명과 검증에 쓰이는 발신자의 키쌍 {pubs, privs}, 수신자의 공개키 pubr와 받는 금액 amount, 코인을 사용하기 위해 참조하는 이전 TX의 해시 H(PrevTX)이고, 아웃풋은 트랜잭션 TX를 포함한 트랜잭션에 대한 데이터인 TXinfo가 될 수 있다.
The input of the transaction creation algorithm is the sender's key pair {pub s , priv s } used for signing and verification, the recipient's public key pub r and the amount received, the hash H (PrevTX) of the previous TX referenced to use the coin, The output can be TXinfo, which is data about transactions including transaction TX.

단계 S110에서는, 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장할 수 있다. 즉, 단계 S110에서는, 우선 수신자 공개키의 해시값과 금액을 TX에 넣는다(도 7의 ①, ②). 이때, 블록체인의 특성에 따라 가치 교환을 하지 않는 블록체인의 경우에는, 금액 없이 수신자 공개키의 해시값만 트랜잭션 데이터에 저장할 수 있다.
In step S110, the hash value and the amount of the recipient public key may be stored in the transaction data. That is, in step S110, the hash value and the amount of the recipient's public key are first put into TX (1, 2 in Fig. 7). At this time, in the case of a blockchain that does not exchange value according to the characteristics of the blockchain, only the hash value of the recipient's public key can be stored in the transaction data without an amount.

단계 S120에서는, 서명 함수를 콜할 수 있다(도 7의 ③).
In step S120, it is possible to call the signature function (3 in Fig. 7).

단계 S130에서는, 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명할 수 있다(도 7의 ④). 이때, 블록체인의 특성에 따라 가치 교환을 하지 않는 블록체인의 경우에는, 금액 없이 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명할 수 있다.
In step S130, the hash value, the recipient public key, and the amount of the previous transaction may be signed with the sender private key (4 in FIG. 7). At this time, in the case of a blockchain that does not exchange value according to the characteristics of the blockchain, the hash value of the previous transaction and the recipient public key can be signed with the sender's private key without an amount.

단계 S140에서는, 단계 130의 발신자 서명의 해시값을 생성해 트랜잭션 데이터에 저장할 수 있다. 즉, 서명값 σs의 해시값을 생성하여 트랜잭션에 입력한다(도 7의 ⑤). 이렇게 단계 S110 내지 단계 S140을 수행하여 트랜잭션 TX을 생성할 수 있다.
In step S140, a hash value of the sender's signature in step 130 may be generated and stored in transaction data. That is, a hash value of the signature value σ s is generated and input to the transaction (5 in Fig. 7). In this way, the transaction TX may be generated by performing steps S110 to S140.

단계 S150에서는, 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보 TXinfo를 생성할 수 있다. 여기서, 트랜잭션 정보는, 발신자 공개키 및 발신자 서명을 포함하며, 수신자 확인을 위한 수신자 공개키 및 트랜잭션의 해시값을 더 포함할 수 있다. 보다 구체적으로, 단계 S150에서는, 트랜잭션에 대한 부가 정보까지 포함하는 TXinfo에 TX를 넣고(도 7의 ⑥), 검증을 위한 정보 {pubs, σs}를 첨부할 수 있다(도 7의 ⑦ 및 ⑧). 수신자를 확인하기 위한 pubr을 첨부하고(도 7의 ⑨), 트랜잭션의 해시값을 추가할 수 있다(도 7의 ⑩).
In step S150, transaction information TXinfo including transaction data and additional information on the transaction may be generated. Here, the transaction information includes a sender public key and a sender signature, and may further include a receiver public key for verifying the recipient and a hash value of the transaction. More specifically, in step S150, TX is put into TXinfo including additional information on the transaction (6 in FIG. 7), and information for verification {pub s , σ s } may be attached (7 in FIG. 7 and ⑧). It is possible to attach pub r for identifying the recipient (⑨ in Fig. 7) and add the hash value of the transaction (⑩ in Fig. 7).

블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함할 수 있다. 본 발명에서는, 비고정 블록에서의 검증을 위해, 트랜잭션 정보 TXinfo에 발신자 공개키 및 발신자 서명을 첨부하고, 비고정 블록에서는 첨부된 공개키와 서명 쌍 {pubs, σs}을 이용해 기존 방식(예를 들어, P2PKH 등)과 동일하게 블록을 검증할 수 있다. 비고정 블록이 고정 블록이 되면 첨부된 발신자 공개키 및 발신자 서명을 트랜잭션에서 제거할 수 있다.
The blockchain may include a fixed block in which all transactions included in the block are in a stable state and an unfixed block including at least one or more unstable transactions. In the present invention, for verification in a non-fixed block, the sender public key and the sender's signature are attached to the transaction information TXinfo, and in the non-fixed block, the attached public key and signature pair {pub s , σ s } are used in the conventional method ( For example, the block can be verified in the same way as P2PKH). When the non-fixed block becomes a fixed block, the attached sender public key and sender signature can be removed from the transaction.

단계 S200에서는, 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 트랜잭션을 전파할 수 있다. 즉, 트랜잭션 정보 TXinfo는 승인되지 않은 거래 풀에 추가되고, 노드는 정보를 전파하며, 트랜잭션 정보는 상태가 안정적으로 변할 때까지 승인되지 않은 거래 풀에 보관될 수 있다.
In step S200, for verification in the non-fixed block, the sender public key and transaction information attached with the sender's signature may be stored in an unauthorized transaction pool, and the transaction may be propagated. That is, the transaction information TXinfo is added to the unauthorized transaction pool, the node propagates the information, and the transaction information can be stored in the unauthorized transaction pool until the state changes stably.

단계 S300에서는, 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 트랜잭션 정보를 승인되지 않은 거래 풀에서 제거될 수 있다. 보다 구체적으로, 단계 S200에서는, 단계 S100에서 생성된 트랜잭션 정보 TXinfo는, 승인되지 않은 거래 풀(pool)에 보관되고, 단계 S300에서는, 풀에서 트랜잭션이 포함된 블록의 모든 트랜잭션이 안정적인 상태가 되면, 서명 쌍 {pubs, σs}을 포함한 트랜잭션 정보는 승인되지 않은 거래 풀에서 제거될 수 있다.
In step S300, if the block containing the transaction is included in the fixed block, the transaction information may be removed from the unauthorized transaction pool. More specifically, in step S200, the transaction information TXinfo generated in step S100 is stored in an unauthorized transaction pool, and in step S300, when all transactions of the block containing the transaction in the pool become stable, Transaction information including signature pairs {pub s , σ s } can be removed from the unauthorized transaction pool.

도 8은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S300의 처리를 위한 알고리즘을 도시한 도면이다. 트랜잭션의 상태를 파악하기 위해 풀은 주기적으로 업데이트되어야 한다. 도 8에 도시된 알고리즘은 전파된 트랜잭션을 검증을 거쳐 받아들이고 안정적인 트랜잭션을 풀에서 제거하는 기능을 수행할 수 있다.
8 is a diagram illustrating an algorithm for processing step S300 in a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention. The pool needs to be updated periodically to understand the status of the transaction. The algorithm shown in FIG. 8 may perform a function of accepting a propagated transaction through verification and removing a stable transaction from the pool.

도 8에 도시된 바와 같이, 프로토콜의 인풋으로는 TXinfo와 TX, 트랜잭션의 상태를 확인하기 위해 필요한 보안 파라미터 k, 메인체인의 팁 높이 n이 있다. 아웃풋으로는 트랜잭션의 검증 결과인 v와 트랜잭션의 상태를 나타내는 status가 업데이트되어 TXinfo가 나온다. 우선 트랜잭션에 대한 검증을 수행하기 위해 트랜잭션에 기록된 수신자의 서명과 발신자의 공개키가 적절한지 확인할 수 있다.
As shown in FIG. 8, inputs of the protocol include TXinfo and TX, a security parameter k required to check the status of a transaction, and a tip height n of the main chain. As output, v, which is the verification result of the transaction, and the status indicating the status of the transaction are updated, and TXinfo is displayed. First, in order to verify the transaction, it is possible to check whether the receiver's signature recorded in the transaction and the sender's public key are appropriate.

구체적으로 살펴보면, TX의 서명 해시값이 TXinfo의 서명 해시값과 동일하지 않은 경우, 또는 TX의 공개키 해시값이 TXinfo의 공개키 해시값과 동일하지 않은 경우, 프로토콜을 종료한다(도 8의 ①). 서명 검증 함수를 불러와 트랜잭션 정보에 있는 발신자의 서명과 공개키를 넣고(도 8의 ② 내지 ④), 검증값을 트랜잭션 정보에 다시 추가한다(도 8의 ⑤ 및 ⑥). 검증값이 유효하지 않으면 프로토콜을 종료하고(도 8의 ⑦), 유효한 경우에만 트랜잭션 정보를 풀에 추가한다(도 8의 ⑧). 또한, 풀에서 트랜잭션이 담긴 블록의 높이가 n-k보다 낮아져 고정 블록에 포함되는 경우(도 8의 ⑨), 트랜잭션의 상태를 안정적(stable)으로 변경한다(도 8의 ⑩). 추후 상태가 안정적인 TXinfo는 승인되지 않은 거래 풀에서 제거한다.
Specifically, when the signature hash value of TX is not the same as the signature hash value of TXinfo, or the public key hash value of TX is not the same as the public key hash value of TXinfo, the protocol is terminated (1 in FIG. 8). ). Call the signature verification function, put the sender's signature and public key in the transaction information (2 to 4 in Fig. 8), and add the verification value to the transaction information again (5 and 6 in Fig. 8). If the verification value is not valid, the protocol is terminated (7 in Fig. 8), and transaction information is added to the pool only if it is valid (8 in Fig. 8). In addition, when the height of the block containing the transaction in the pool is lower than nk and is included in the fixed block (⑨ in Fig. 8), the state of the transaction is changed to stable (⑩ in Fig. 8). In the future, TXinfo with stable status is removed from the pool of unauthorized transactions.

본 발명에서 제안하고 있는 트랜잭션 구조와 검증 방식을 도입하면, 비고정 블록에 대해서 트랜잭션 검증에 필요한 발신자의 공개키와 서명 쌍을 첨부하기 때문에 기존 방식과 동일하게 블록 검증할 수 있다. 고정 블록은 변경 가능성이 거의 없으므로, 고정 블록에 대해서는 간략하게 검증을 수행할 수 있는데, 이하에서는 고정 블록에 대한 검증에 대해 상세히 설명하도록 한다.
When the transaction structure and verification method proposed in the present invention are introduced, the sender's public key and signature pair required for transaction verification are attached to the non-fixed block, so that the block verification can be performed in the same manner as the existing method. Since the fixed block has almost no possibility of change, the fixed block can be briefly verified. Hereinafter, the verification of the fixed block will be described in detail.

고정 블록에서는 블록 및 블록 헤더에 대한 검증을 수행할 수 있다. 즉, 고정 블록을 전송받을 시에는 블록과 블록 헤더에 대한 검증을 수행하여 블록의 유효성을 확인할 수 있다.
In the fixed block, the block and the block header can be verified. That is, when a fixed block is received, the validity of the block can be verified by performing verification on the block and the block header.

도 9는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 고정 블록을 검증하기 위한 알고리즘을 도시한 도면이다. 즉, 도 9의 알고리즘은 고정 블록 Block에 대한 검증 프로토콜 예제이다.
9 is a diagram illustrating an algorithm for verifying a fixed block in a block chain transaction method in which a transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention. That is, the algorithm of FIG. 9 is an example of a verification protocol for a fixed block block.

도 9에 예시된 바와 같이, 우선 현재 블록헤더의 이전 블록 해시가 실제 이전 블록의 해시와 일치하는지 확인하고 일치하지 않는 경우 false값을 반환한다(도 9의 ①). 생성된 블록의 PoW가 제대로 수행되었는지 확인하기 위해 블록의 해시값이 기존에 설정된 타겟 난이도보다 작게 나왔는지 확인하고 그렇지 않으면 false값을 반환한다(도 9의 ②). 이렇게 블록에 대한 검증을 수행하며, 검증이 참인 경우에만(도 9의 ③) 블록을 추가할 수 있다.
As illustrated in FIG. 9, first, it is checked whether the previous block hash of the current block header matches the actual hash of the previous block, and if not, a false value is returned (1 in FIG. 9). In order to check whether the PoW of the generated block is properly performed, it is checked whether the hash value of the block is smaller than the previously set target difficulty level, and if not, a false value is returned (2 in FIG. 9). In this way, the block is verified, and the block can be added only when the verification is true (③ in FIG. 9).

보안성 검토Security review

본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법이 이전 블록체인과 마찬가지로 체인 구조를 통해 각 블록의 무결성을 보장하고, PoW를 통해 공격자의 변조된 블록을 받아들이기 어렵게 하는 특성이 유지되는지 검토한다. 검토를 위해 2가지 공격 시나리오를 상정한다. 중간에 조작된 블록을 삽입하는 공격 시나리오를 통해 본 발명에서 블록체인의 무결성이 유지되는지 검토하고, 조작된 블록을 이어 메인체인을 탈취하는 공격 시나리오를 통해 PoW의 보안성이 유지되는지 검토한다.
The blockchain transaction method in which the transaction size is reduced using a cryptographic hash algorithm according to an embodiment of the present invention guarantees the integrity of each block through a chain structure as in the previous block chain, and protects the attacker's forged blocks through PoW. Examine whether the characteristics that make it difficult to accept are maintained. Two attack scenarios are assumed for review. In the present invention, the integrity of the block chain is maintained through an attack scenario in which a manipulated block is inserted in the middle, and whether the security of the PoW is maintained through an attack scenario in which the manipulated block is subsequently hijacked the main chain.

악의적인 사용자가 메인체인의 팁 높이에서 z만큼 떨어진 체인 C에 이어 조작된 블록을 작성하여 불법적인 자산 탈취를 시도한다고 가정해보자. 조작된 블록이 포함된 체인 C에 블록을 덧대어 메인체인으로 만들기 위해서는 고정 블록과 비고정 블록에 대해 다음과 같은 조건을 만족하여야 한다. 이때 각 블록은 Bi로 나타내며, i는 해당 블록의 높이를 의미한다. x는 공격자의 체인 C의 블록 수, k는 보안 파라미터를 의미한다.
Suppose a malicious user attempts to illegally steal assets by creating a manipulated block following Chain C, which is z away from the tip height of the main chain. In order to make the main chain by adding a block to the chain C containing the manipulated block, the following conditions must be satisfied for the fixed block and the non-fixed block. At this time, each block is represented by B i , and i means the height of the corresponding block. x is the number of blocks in the attacker's chain C, and k is the security parameter.

① 고정 블록 Bi에 대해서는 다음 수학식 4를 충족해야 노드들이 블록을 받아들인다.① For the fixed block B i , the nodes accept the block only when the following Equation 4 is satisfied.

Figure pat00004
Figure pat00004

② 비고정 블록 Bi에 대해서는 다음 수학식 5를 충족해야 노드들이 블록을 받아들인다.② For the non-fixed block B i , the nodes accept the block only when the following equation (5) is satisfied.

Figure pat00005
Figure pat00005

위 조건에 따라 다음과 같이 공격 시나리오 a), b)를 검토한다.
According to the above conditions, review attack scenarios a) and b) as follows.

a) 중간에 조작된 블록을 삽입하는 공격 a) Attack that inserts a manipulated block in the middle

체인 C 중간에 조작된 블록 Bi`를 삽입하고 뒤이어 기존의 체인을 덧붙인다고 하면, 블록 Bi+1에 대해 다음 수학식 6을 만족해야 한다. Assuming that the manipulated block B i `is inserted in the middle of the chain C and the existing chain is then added, the following Equation 6 must be satisfied for block B i+1.

Figure pat00006
Figure pat00006

이는 다음 수학식 7을 만족하는 H(Bi)의 2nd preimage를 구하는 것과 같으며, 해시함수의 보안성에 위배된다.This is equivalent to obtain the 2 nd preimage of H (B i) which satisfies the following equation (7), is against the security of the hash function.

Figure pat00007
Figure pat00007

고정/비고정 블록에 대하여 수학식 7의 조건을 모두 만족해야 하므로, 변조된 고정/비고정 블록을 체인 중간에 삽입하는 것이 불가능하다. 따라서 블록체인이 가지는 무결성 특징은 본 발명에서도 동일하게 유지된다고 볼 수 있다.
Since all the conditions of Equation 7 must be satisfied for the fixed/non-fixed block, it is impossible to insert the modulated fixed/non-fixed block in the middle of the chain. Therefore, it can be seen that the integrity characteristics of the blockchain are maintained the same in the present invention.

b) 조작된 블록 뒤에 블록을 연이어 생성하여 메인체인을 탈취하는 공격b) An attack that hijacks the main chain by creating blocks after the manipulated block

메인체인을 탈취하기 위해서는 공격자가 착한 노드보다 빨리 블록을 생성해야 하고, 합의 알고리즘에 따라 공격 성공률이 좌우된다. 본 발명은 PoW 합의 알고리즘에 따라 블록을 생성한다. 고정/비고정 블록에 상관없이 생성되는 블록 Bi에 대하여 다음 수학식 8을 만족해야 하므로, 고정/비고정 블록은 PoW를 따라 합의된다고 볼 수 있다.In order to seize the main chain, an attacker must create a block faster than a good node, and the attack success rate depends on the consensus algorithm. The present invention generates a block according to the PoW consensus algorithm. Since the following Equation 8 must be satisfied for the block B i generated regardless of the fixed/non-fixed blocks, it can be seen that the fixed/non-fixed blocks are agreed upon along the PoW.

Figure pat00008
Figure pat00008

PoW에서 공격자가 z 블록만큼 떨어진 체인을 따라잡는 확률은, 착한 노드가 다음 블록을 발견할 확률 p, 공격자가 다음 블록을 발견할 확률 q, 따라잡아야 하는 블록 수 z에 따라 달라진다. 블록 생성 확률은 공격자와 착한 노드의 해시율과 높은 상관성을 가지며 본 발명의 본 발명은 이에 영향을 끼치지 않는다. 그리고 따라잡아야 하는 블록 수 z는 트랜잭션이 안정적으로 변하여 사용 가능해지는 기준이 되는 보안 파라미터 k와 동일하며, 본 발명에서 k는 독립 상수로 본 발명에 따라 변경되지 않는다. 그러므로 본 발명은 PoW에 따라 블록을 생성하며, 본 발명에서의 공격 b)가 성공할 확률은 기존의 51% 공격 확률과 동일하다.
In PoW, the probability that an attacker catches up to a chain z blocks away depends on the probability p that a good node finds the next block, the probability q that the attacker finds the next block, and the number of blocks z that must catch up. The block generation probability has a high correlation with the hash rate of the attacker and the good node, and the present invention of the present invention does not affect this. In addition, the number of blocks z to be caught up is the same as the security parameter k, which is a criterion at which the transaction is stably changed and usable. In the present invention, k is an independent constant and is not changed according to the present invention. Therefore, the present invention generates a block according to PoW, and the probability that the attack b) succeeds in the present invention is the same as the existing 51% attack probability.

따라서 본 발명은, 기존의 블록체인과 PoW가 갖는 고유의 보안성을 크게 해치지 않는다.
Therefore, the present invention does not significantly impair the inherent security of the existing blockchain and PoW.

구현 및 성능 실험Implementation and performance experiment

본 발명의 실험을 위하여, 구현된 양자 내성 블록체인(이하 BPQB)은 비트코인 오픈소스인 bitcoin core version 0.15.1을 기반으로 개발/구현하였다. Bitcoin core는 정해진 블록 크기, 스마트 컨트랙트 실행 불가 등 한계가 많은 대표적인 블록체인이다. Bitcoin core는 블록체인이 가진 한계성을 잘 나타내기 때문에 향후 양자 내성 암호를 도입하기 위해 개선해야 할 부분들에 관해 연구하기 적합한 것으로 판단하고 이를 기반 소스로 선정하였다.
For the experiment of the present invention, the implemented quantum resistant blockchain (hereinafter referred to as BPQB) was developed/implemented based on bitcoin core version 0.15.1, which is a bitcoin open source. Bitcoin core is a typical blockchain with many limitations, such as a fixed block size and inability to execute smart contracts. Since the Bitcoin core well represents the limitations of the blockchain, it was judged to be suitable for research on areas to be improved in order to introduce quantum resistant cryptography in the future, and this was selected as the base source.

또한, 양자 내성 알고리즘은 격자 기반의 pqNTRUSign 전자서명 알고리즘을 적용하였다. pqNTRUSign은 모듈러 격자 기반의 전자서명 스킴으로 가우시안 샘플러(Gaussian sampler) 또는 유니폼 샘플러(uniform sampler)와 함께 NTRU 래티스를 사용한다. pqNTRUSign은 공개키/서명 크기가 다른 암호 알고리즘에 비해 작은 편에 속해, 각 노드가 부담할 승인되지 않은 트랜잭션 풀의 용량을 최소화할 수 있을 것이다. 모든 노드가 서명 검증을 통해 트랜잭션을 전송받는 것을 고려할 때, 서명 검증시간이 다른 암호 알고리즘에 비해 짧은 편이어서, 검증 속도가 실용적인 블록체인을 구현하는 데에 적절할 것으로 판단했다. BPQB의 성능을 측정하고자, 2개의 PC 실험환경에서 서명과 검증시간을 각 50회 측정했다.
In addition, a lattice-based pqNTRUSign digital signature algorithm was applied to the quantum tolerance algorithm. pqNTRUSign is a modular lattice-based electronic signature scheme that uses NTRU lattice with a Gaussian sampler or a uniform sampler. Since pqNTRUSign has a smaller public key/signature size than other cryptographic algorithms, it will be able to minimize the capacity of the unauthorized transaction pool to be borne by each node. Considering that all nodes receive transactions through signature verification, the signature verification time is shorter than that of other cryptographic algorithms, so it was determined that the verification speed would be appropriate for implementing a practical blockchain. To measure the performance of BPQB, the signature and verification time were measured 50 times each in two PC experimental environments.

도 10은 각 실험환경에서의 평균 서명 및 검증시간과 표준편차를 나타낸 도면이다. 블록체인은 트랜잭션 유효성 확인을 위해 전파되는 모든 트랜잭션의 서명 검증을 수행한다. 따라서 성능 부문에 있어 가장 중요한 요소는 검증시간이 된다. 도 10에 도시된 바와 같이, bitcoin 0.15.1이 BPQB보다 빠르나, BPQB의 평균값은 ms(millisecond)로 10㎳ 이하의 값이기 때문에 실용적으로 사용할 수 있을 것이다. 서명 시간은 BPQB는 약 602㎳이고, bitcoin 0.15.1은 약 0.4㎳로 현저한 차이를 보이나 이는 개인이 트랜잭션을 생성하는 시간에만 영향을 주기 때문에 실용적인 사용에 있어 큰 무리가 없을 것으로 판단된다.
10 is a diagram showing the average signature and verification time and standard deviation in each experimental environment. Blockchain performs signature verification of all transactions that are propagated to verify transaction validity. Therefore, the most important factor in the performance area is verification time. As shown in FIG. 10, bitcoin 0.15.1 is faster than BPQB, but since the average value of BPQB is less than 10 ms in ms (millisecond), it may be practically used. The signing time is about 602 ms for BPQB and about 0.4 ms for bitcoin 0.15.1, but this only affects the time when an individual creates a transaction.

전술한 바와 같이, 본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.
As described above, according to the blockchain transaction method in which the transaction size is reduced using the cryptographic hash algorithm proposed in the present invention, a transaction consisting of the hash value of the recipient public key, the hash value of the sender's signature, and the amount is generated. By propagating, it is possible to introduce a variety of quantum resistant electronic signatures into the blockchain by drastically reducing the size of transactions with large public keys and signature sizes, ultimately increasing the compatibility of quantum resistant electronic signatures of the blockchain, and You can also reduce the size.

이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.The present invention described above can be modified or applied in various ways by those of ordinary skill in the technical field to which the present invention belongs, and the scope of the technical idea according to the present invention should be determined by the following claims.

S100: 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계
S110: 수신자 공개키의 해시값을 트랜잭션 데이터에 저장하는 단계
S120: 서명 함수를 콜하는 단계
S130: 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명하는 단계
S140: 발신자 서명의 해시값을 생성해 트랜잭션 데이터에 저장하는 단계
S150: 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계
S200: 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 트랜잭션을 전파하는 단계
S300: 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 트랜잭션 정보를 승인되지 않은 거래 풀에서 제거하는 단계
S100: Step of generating a transaction consisting of a hash value of the recipient public key and a hash value of the sender's signature
S110: Storing the hash value of the recipient public key in transaction data
S120: Step of calling the signature function
S130: Signing the hash value of the previous transaction and the recipient public key with the sender private key
S140: Step of generating a hash value of the sender's signature and storing it in the transaction data
S150: generating transaction information including transaction data and additional information on the transaction
S200: For verification in a non-fixed block, storing the sender public key and the transaction information attached to the sender's signature in an unauthorized transaction pool, and propagating the transaction
S300: If the block containing the transaction is included in the fixed block, removing the transaction information from the unauthorized transaction pool

Claims (9)

복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,
수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하여 전파하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
As a transaction method in a blockchain-based system including a plurality of blockchain nodes,
A blockchain transaction method in which a transaction size is reduced using a cryptographic hash algorithm, characterized in that a transaction consisting of a hash value of a recipient public key and a hash value of a sender's signature is generated and propagated.
제1항에 있어서,
(1) 수신자 공개키의 해시값을 트랜잭션 데이터에 저장하는 단계;
(2) 서명 함수를 콜하는 단계;
(3) 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명하는 단계; 및
(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,
상기 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
The method of claim 1,
(1) storing the hash value of the recipient public key in transaction data;
(2) calling a signature function;
(3) signing the hash value of the previous transaction and the recipient public key with the sender private key; And
(4) generating a hash value of the sender's signature in step (3) and storing it in the transaction data,
A blockchain transaction method in which a transaction size is reduced using a cryptographic hash algorithm, characterized in that generating a transaction consisting of the hash value of the recipient public key and the hash value of the sender's signature.
제1항에 있어서,
상기 블록체인은, 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하며,
수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파하되,
(1) 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장하는 단계;
(2) 서명 함수를 콜하는 단계;
(3) 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명하는 단계; 및
(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,
상기 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
The method of claim 1,
The blockchain uses monetary assets to convert values into amounts and transact,
Generate and propagate a transaction consisting of the hash value of the recipient's public key, the hash value of the sender's signature, and the amount,
(1) storing the hash value and the amount of the recipient public key in transaction data;
(2) calling a signature function;
(3) signing the hash value, the recipient public key, and the amount of the previous transaction with the sender private key; And
(4) generating a hash value of the sender's signature in step (3) and storing it in the transaction data,
A blockchain transaction method in which a transaction size is reduced using a cryptographic hash algorithm, characterized in that generating a transaction consisting of the hash value of the recipient public key, the hash value of the sender's signature, and the amount.
제2항 또는 제3항에 있어서, 상기 단계 (4) 이후에는,
(5) 상기 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계를 더 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
The method of claim 2 or 3, wherein after step (4),
(5) A blockchain transaction method in which the transaction size is reduced using a cryptographic hash algorithm, further comprising generating transaction information including the transaction data and additional information on the transaction.
제4항에 있어서,
상기 트랜잭션 정보는, 발신자 공개키 및 발신자 서명을 포함하며,
상기 트랜잭션 정보는, 승인되지 않은 거래 풀(pool)에 보관되고, 상기 풀에서 트랜잭션이 포함된 블록의 모든 트랜잭션이 안정적인 상태가 되면, 상기 트랜잭션 정보는 상기 승인되지 않은 거래 풀에서 제거되는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
The method of claim 4,
The transaction information includes a sender public key and a sender signature,
The transaction information is stored in an unauthorized transaction pool, and when all transactions of a block containing a transaction in the pool become stable, the transaction information is removed from the unauthorized transaction pool. A blockchain transaction method that reduces the transaction size using a cryptographic hash algorithm.
제5항에 있어서, 상기 트랜잭션 정보는,
수신자 확인을 위한 상기 수신자 공개키 및 트랜잭션의 해시값을 더 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
The method of claim 5, wherein the transaction information,
Blockchain transaction method in which the transaction size is reduced using a cryptographic hash algorithm, characterized in that it further includes the recipient public key for confirming the recipient and a hash value of the transaction.
제1항에 있어서, 상기 블록체인은,
블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
The method of claim 1, wherein the block chain,
A cryptographic hash algorithm, characterized in that all transactions included in the block include a fixed block in a stable state and an unfixed block including at least one unstable transaction. Blockchain transaction method that reduces the transaction size by using.
제7항에 있어서,
상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부하고, 상기 비고정 블록이 고정 블록이 되면 상기 첨부된 발신자 공개키 및 발신자 서명을 트랜잭션에서 제거하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
The method of claim 7,
For verification in the non-fixed block, a sender public key and a sender signature are attached, and when the non-fixed block becomes a fixed block, the attached sender public key and sender signature are removed from a transaction. A blockchain transaction method that reduces the transaction size using a hash algorithm.
복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,
상기 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하고,
(a) 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계;
(b) 상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 상기 트랜잭션을 전파하는 단계; 및
(c) 상기 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 상기 트랜잭션 정보를 상기 승인되지 않은 거래 풀에서 제거하는 단계를 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
As a transaction method in a blockchain-based system including a plurality of blockchain nodes,
The blockchain includes a fixed block in which all transactions included in the block are in a stable state and an unfixed block including at least one unstable transaction,
(a) generating a transaction consisting of a hash value of a recipient public key and a hash value of a sender's signature;
(b) storing the transaction information attached to the sender public key and the sender signature in an unauthorized transaction pool for verification in the non-fixed block, and propagating the transaction; And
(c) If the block containing the transaction is included in the fixed block, a block chain in which the transaction size is reduced using a cryptographic hash algorithm, comprising the step of removing the transaction information from the unauthorized transaction pool. Transaction method.
KR1020190115665A 2019-09-19 2019-09-19 Blockchain transaction method with reduced transaction size using cryptographic hash algorithm KR102311354B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190115665A KR102311354B1 (en) 2019-09-19 2019-09-19 Blockchain transaction method with reduced transaction size using cryptographic hash algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190115665A KR102311354B1 (en) 2019-09-19 2019-09-19 Blockchain transaction method with reduced transaction size using cryptographic hash algorithm

Publications (2)

Publication Number Publication Date
KR20210033846A true KR20210033846A (en) 2021-03-29
KR102311354B1 KR102311354B1 (en) 2021-10-13

Family

ID=75250189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190115665A KR102311354B1 (en) 2019-09-19 2019-09-19 Blockchain transaction method with reduced transaction size using cryptographic hash algorithm

Country Status (1)

Country Link
KR (1) KR102311354B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114584291A (en) * 2022-02-18 2022-06-03 杭州代码狗科技有限公司 Key protection method, device, equipment and storage medium based on HMAC algorithm
WO2023277552A1 (en) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 Data segmentation and storage method through participation of storage node
US20230139519A1 (en) * 2021-11-02 2023-05-04 Samsung Electronics Co., Ltd. Storage device supporting multi-tenant operation and methods of operating same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101841566B1 (en) * 2016-10-11 2018-05-04 주식회사 코인플러그 Method for issuing, using, refunding, settling and revocating electric voucher using updated status of balance database by respective blocks in blockchain, and server using the same
KR20190033581A (en) * 2016-07-29 2019-03-29 엔체인 홀딩스 리미티드 Method and system implemented with block chain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190033581A (en) * 2016-07-29 2019-03-29 엔체인 홀딩스 리미티드 Method and system implemented with block chain
KR101841566B1 (en) * 2016-10-11 2018-05-04 주식회사 코인플러그 Method for issuing, using, refunding, settling and revocating electric voucher using updated status of balance database by respective blocks in blockchain, and server using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Marcelo Salhab Brogliato, Hathor: An alternative towards a scalable cryptocurrency, Technical Report (2018.11.01.)* *
Shweta Amarjeet Singh, DIGITAL STORAGE VAULT MANAGED USING BLOCKCHAIN ENGINE, California State University, Master of Science (2018.)* *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023277552A1 (en) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 Data segmentation and storage method through participation of storage node
US20230139519A1 (en) * 2021-11-02 2023-05-04 Samsung Electronics Co., Ltd. Storage device supporting multi-tenant operation and methods of operating same
CN114584291A (en) * 2022-02-18 2022-06-03 杭州代码狗科技有限公司 Key protection method, device, equipment and storage medium based on HMAC algorithm
CN114584291B (en) * 2022-02-18 2023-12-29 杭州代码狗科技有限公司 Key protection method, device, equipment and storage medium based on HMAC algorithm

Also Published As

Publication number Publication date
KR102311354B1 (en) 2021-10-13

Similar Documents

Publication Publication Date Title
Li et al. Traceable monero: Anonymous cryptocurrency with enhanced accountability
KR102311354B1 (en) Blockchain transaction method with reduced transaction size using cryptographic hash algorithm
US20220321360A1 (en) Hash function attacks
KR20210008516A (en) Computer-implemented system and method for performing atomic swaps using blockchain
Giechaskiel et al. When the crypto in cryptocurrencies breaks: Bitcoin security under broken primitives
CN110505067B (en) Block chain processing method, device, equipment and readable storage medium
Ramezan et al. Analysis of proof-of-work-based blockchains under an adaptive double-spend attack
Khedr et al. Cryptographic accumulator-based scheme for critical data integrity verification in cloud storage
Yavuz et al. Ultra lightweight multiple-time digital signature for the internet of things devices
US7904710B2 (en) Method and system for providing a secure message transfer within a network system
US20220239501A1 (en) Knowledge proof
WO2021009496A1 (en) Peer-to-peer network and method
Rahmadika et al. Toward Privacy‐Preserving Shared Storage in Untrusted Blockchain P2P Networks
TW202231018A (en) Identifying denial-of-service attacks
Darwish et al. A model to authenticate requests for online banking transactions
Hameed et al. Towards a formal modelling, analysis and verification of a clone node attack detection scheme in the internet of things
US11831749B1 (en) Method and system for utilizing the infrastructure of a blockchain to enhance the degree of reliability of another blockchain
KR20220024124A (en) proof of knowledge
Wang et al. A universal method for realizing non‐repudiable provable data possession in cloud storage
Elbuz et al. Designing a secure blockchain-based trading platform for internet of things
Zhang et al. Improved publicly verifiable auditing protocol for cloud storage
Gan et al. Online/offline remote data auditing with strong key-exposure resilience for cloud storage
Swathi et al. A survey on quantum-safe blockchain system
US12022003B2 (en) Safe use of legacy digital signatures in a post-quantum world
Abd Rasid Blockchain technology in e-voting: Comparative study

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant