KR20210033846A - 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법 - Google Patents
암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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
본 발명은 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 관한 것으로서, 보다 구체적으로는 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파하는 것을 그 구성상의 특징으로 한다.
또한, 본 발명은 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 관한 것으로서, 보다 구체적으로는 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서, 상기 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하고, (a) 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하는 단계; (b) 상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 상기 트랜잭션을 전파하는 단계; 및 (c) 상기 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 상기 트랜잭션 정보를 상기 승인되지 않은 거래 풀에서 제거하는 단계를 포함하는 것을 또 다른 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.
또한, 본 발명은 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 관한 것으로서, 보다 구체적으로는 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서, 상기 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하고, (a) 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하는 단계; (b) 상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 상기 트랜잭션을 전파하는 단계; 및 (c) 상기 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 상기 트랜잭션 정보를 상기 승인되지 않은 거래 풀에서 제거하는 단계를 포함하는 것을 또 다른 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.
Description
본 발명은 블록체인 트랜잭션 방법에 관한 것으로서, 보다 구체적으로는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 관한 것이다.
전자서명에는 보통 RSA와 ECC 등 비대칭 암호 알고리즘에 기반한 전자서명 스킴이 사용된다. 그러나 실용적으로 사용 가능한 양자 컴퓨터가 구현될 시 프로세서의 성능이 막대하게 향상될 수 있으며, 쇼어 알고리즘(Shors algorithm), 그로버 알고리즘(Grovers algorithm) 등 양자 알고리즘을 이용하여, 기존 컴퓨터로 연산할 수 없던 문제를 풀 수 있다. 쇼어 알고리즘은 공개키 암호 알고리즘의 근간이 되는 인수분해, 이산 로그 문제를 다항식 시간 내로 연산할 수 있어, RSA, ECC는 취약한 암호 알고리즘으로 전락하게 된다. 그로버 알고리즘은 기존 암호 알고리즘의 보안 복잡도를 반감할 수 있어 해시함수, 대칭키 등의 암호 알고리즘의 보안성이 반감된다.
대부분의 분산원장 및 블록체인은 ECC 기반의 전자서명 스킴(ECDSA)을 사용한다. 이를 이용하는 분산원장 및 블록체인은 양자 컴퓨터를 고려할 시 장기적인 사용을 기대할 수 없다. 이에 대비해 양자 내성 암호(Post-Quantum Cryptography)를 블록체인에 도입하는 연구가 진행되고 있다. 양자 내성 암호와 블록체인을 결합한 것을 양자 내성 블록체인(Post-Quantum Blockchain)이라 부르며, 쇼어 알고리즘, 그로버 알고리즘 등 양자 알고리즘 공격에 내성을 갖는다.
그러나, 양자 내성 블록체인을 구현하기 위해 임의의 양자 내성 암호를 블록체인에 그대로 도입하게 되면, 비대한 공개키, 서명 크기가 문제가 되거나, 서명 검증시간이 길어지는 문제가 발생할 수 있다. 따라서 이를 해결할 수 있는 기술의 개발이 필요한 실정이다.
한편, 본 발명과 관련된 선행기술로서, 등록특허 제10-1950912호(발명의 명칭: 블록체인 기반 트랜잭션 검증 시스템 및 그 방법, 등록 일자: 2019년 02월 15일) 등이 개시된 바 있다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법을 제공하는 것을 그 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은,
복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,
수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하여 전파하는 것을 그 구성상의 특징으로 한다.
바람직하게는,
(1) 수신자 공개키의 해시값을 트랜잭션 데이터에 저장하는 단계;
(2) 서명 함수를 콜하는 단계;
(3) 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명하는 단계; 및
(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,
상기 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성할 수 있다.
바람직하게는,
상기 블록체인은, 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하며,
수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파하되,
(1) 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장하는 단계;
(2) 서명 함수를 콜하는 단계;
(3) 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명하는 단계; 및
(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,
상기 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성할 수 있다.
더욱 바람직하게는, 상기 단계 (4) 이후에는,
(5) 상기 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계를 더 포함할 수 있다.
더더욱 바람직하게는,
상기 트랜잭션 정보는, 발신자 공개키 및 발신자 서명을 포함하며,
상기 트랜잭션 정보는, 승인되지 않은 거래 풀(pool)에 보관되고, 상기 풀에서 트랜잭션이 포함된 블록의 모든 트랜잭션이 안정적인 상태가 되면, 상기 트랜잭션 정보는 상기 승인되지 않은 거래 풀에서 제거될 수 있다.
더더더욱 바람직하게는, 상기 트랜잭션 정보는,
수신자 확인을 위한 상기 수신자 공개키 및 트랜잭션의 해시값을 더 포함할 수 있다.
바람직하게는, 상기 블록체인은,
블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함할 수 있다.
더욱 바람직하게는,
상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부하고, 상기 비고정 블록이 고정 블록이 되면 상기 첨부된 발신자 공개키 및 발신자 서명을 트랜잭션에서 제거할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 특징에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은,
복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,
상기 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하고,
(a) 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계;
(b) 상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 상기 트랜잭션을 전파하는 단계; 및
(c) 상기 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 상기 트랜잭션 정보를 상기 승인되지 않은 거래 풀에서 제거하는 단계를 포함하는 것을 또 다른 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.
도 1은 양자 내성 전자서명 스킴에 대한 평균 거래 크기, 블록 크기 및 체인 전체의 크기를 예측하여 표시한 도면.
도 2는 기존 트랜잭션 구조를 설명하기 위해 도시한 도면.
도 3은 메인체인에서의 고정 블록과 비고정 블록을 나타낸 도면.
도 4는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 흐름을 도시한 도면.
도 5는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따른 트랜잭션 구조를 설명하기 위해 도시한 도면.
도 6은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S100의 세부적인 흐름을 도시한 도면.
도 7은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 단계 S100의 구현을 위한 알고리즘을 도시한 도면.
도 8은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S300의 처리를 위한 알고리즘을 도시한 도면.
도 9는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 고정 블록을 검증하기 위한 알고리즘을 도시한 도면.
도 10은 각 실험환경에서의 평균 서명 및 검증시간과 표준편차를 나타낸 도면.
도 2는 기존 트랜잭션 구조를 설명하기 위해 도시한 도면.
도 3은 메인체인에서의 고정 블록과 비고정 블록을 나타낸 도면.
도 4는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 흐름을 도시한 도면.
도 5는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따른 트랜잭션 구조를 설명하기 위해 도시한 도면.
도 6은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S100의 세부적인 흐름을 도시한 도면.
도 7은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 단계 S100의 구현을 위한 알고리즘을 도시한 도면.
도 8은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S300의 처리를 위한 알고리즘을 도시한 도면.
도 9는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 고정 블록을 검증하기 위한 알고리즘을 도시한 도면.
도 10은 각 실험환경에서의 평균 서명 및 검증시간과 표준편차를 나타낸 도면.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 연결 되어 있다고 할 때, 이는 직접적으로 연결 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 간접적으로 연결 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 포함 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
본 발명은 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 관한 것으로서, 본 발명의 특징에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 메모리 및 프로세서를 포함한 하드웨어에서 기록되는 소프트웨어로 구성될 수 있다. 예를 들어, 본 발명의 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 개인용 컴퓨터, 노트북 컴퓨터, 서버 컴퓨터, PDA, 스마트폰, 태블릿 PC 등에 저장 및 구현될 수 있다. 이하에서는 설명의 편의를 위해, 각 단계를 수행하는 주체는 생략될 수 있다.
블록체인 기반 시스템에서는, 복수의 트랜잭션이 모여 블록을 구성할 수 있고, 블록은 블록체인 형태로 구성될 수 있다. 노드는 서버나 컴퓨터 등으로 구현될 수 있으며 각각의 노드에는 블록체인이 탑재되는데, 이를 블록체인 노드라 할 수 있다. 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서, 노드는 결제 등의 이벤트에 따라 트랜잭션을 생성하고, 각 노드는 트랜잭션 정보를 수신하여 검증하며, 지정된 다음 단의 노드들에게 트랜잭션을 전파하게 된다.
트랜잭션을 위한 전자서명에는 보통 RSA와 ECC 등 비대칭 암호 알고리즘에 기반한 전자서명 스킴이 사용된다. 그러나 양자 컴퓨터의 실용적 구현이 임박하면서, 양자 내성 암호(Post-Quantum Cryptography)를 블록체인에 도입하는 연구가 진행되고 있다.
모든 양자 내성 암호는 ECDSA보다 비대한 공개키 크기와 서명 크기를 가진다. 공개키는 최소 2배에서 최대 64배 차이가 나며, 서명은 최소 22배에서 최대 1920배가 차이난다. 이러한 양자 내성 전자서명이 그대로 적용되면, 트랜잭션의 크기 또한 비례하여 증가하고, 블록, 블록체인의 크기 또한 비례하여 증가할 것이다. 따라서 블록체인 저장 공간이 매우 비대해지므로 한 노드가 부담하는 자원, 비용 등이 증폭될 것으로 예측된다.
도 1은 양자 내성 전자서명 스킴에 대한 평균 거래 크기, 블록 크기 및 체인 전체의 크기를 예측하여 표시한 도면이다. 도 1은, 2019년 4월 14일 09:00(GMT+0900)시 기준 비트코인 블록체인의 전체 크기는 약 207.66GB, 평균 거래 수 2,763, 블록 수는 578,151개인 것에 기반하여, 각 양자 내성 전자서명 스킴에 대해 평균 거래 크기, 블록 크기, 체인 전체의 크기를 추측한 것이다. 현재 비트코인과 같은 블록 수가 쌓였다고 가정하면, 도 1에서 확인할 수 있는 바와 같이, 양자 내성 전자서명 스킴에 대한 체인 전체의 크기는, 최소 약 54Tb에서 최대 1,924Tb 정도로 추측됐다. 이렇게 공개키/서명 쌍의 사이즈 증가는 블록체인의 무게를 배로 증가시켜 상당한 부담이 될 것이다. 따라서 공개키/서명 크기에 대한 부담을 줄일 수 있는 방안이 필요하다.
본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하여 전파할 수 있다. 다만, 블록체인이 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하는 경우에는, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파할 수 있다. 즉, 본 발명에서는, 블록체인의 특성에 따라 가치 교환을 하지 않는 블록체인의 경우에는, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 트랜잭션을 구성하고, 암호화폐 등 화폐 자산을 이용하여 가치를 금액으로 환산해 거래하는 블록체인의 경우에는, 수신자 공개키의 해시값 및 발신자 서명의 해시값 외에, 금액을 더 포함하여 트랜잭션을 구성할 수 있다.
따라서 본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키가 아닌 수신자 공개키의 해시값, 발신자 서명이 아닌 발신자 서명의 공개키를 포함하여, 암호학적 해시 알고리즘을 이용해 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시킬 수 있다. 따라서 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.
이하에서는, 설명의 편의를 위해 금액을 포함하는 트랜잭션 구조를 기본으로 설명하며, 가치 교환을 하지 않는 블록체인의 경우에는 금액이 제외된다는 점 이외에, 나머지는 동일하게 처리될 수 있다.
도 2는 기존 트랜잭션 구조를 설명하기 위해 도시한 도면이다. 도 2에 도시된 바와 같은 구조에서, 트랜잭션은 발신자 서명, 발신자 공개키, 수신자 공개키, 금액 등의 정보를 모두 포함한다. 반면에 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서는, 암호학적 해시 알고리즘을 이용해, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액만을 포함하는 트랜잭션 구조를 제안함으로써, 트랜잭션 사이즈를 대폭 감소시킬 수 있다.
이하에서는, 도 2를 참조하여, 본 발명에서 설명을 위해 사용하는 개념과 기호에 대해 설명하도록 한다.
블록: 도 2는 블록 구조를 표현한 예제이며, 본 발명은 다음 구조를 기본 블록 구조로 따른다.
메인체인: 노드들이 합의를 통해 유효한 것으로 여기는 가장 긴 체인을 메인체인(mainchain)이라 한다.
팁: 메인체인의 가장 끝단에 있는 블록을 팁(tip)이라 한다.
트랜잭션: 트랜잭션은 TX로 나타낸다. 코인을 사용하기 위해 발신자는 이전에 받은 코인 전송 내역을 담은 트랜잭션을 호출하는 경우가 있으며, 이 경우 호출되는 트랜잭션은 PrevTX 로 나타낸다.
공개키 개인키 쌍: 본 발명에서는 발신자(Sender)의 키쌍을 나타내기 위해 pubs, privs로 표기하며, 수신자(recipient)의 키쌍은 pubr, privr로 표기한다.
금액: 트랜잭션에서 발신자가 받는 코인 금액의 양을 amount라 한다.
해시함수: 해시함수를 수행하는 함수식 H(x)=h이며, 임의의 유한 비트 길이의 입력 x에서 고정된 비트 길이의 해시값 h를 출력으로 맵핑한다. 해시함수는 (a) preimage resistance, (b) 2nd-preimage resistance, (c) collision resistance, 세 가지 속성을 만족해야 안전하다고 볼 수 있다.
서명: 트랜잭션에는 일반적으로 발신자의 서명이 포함된다. 본 발명에서는 발신자의 서명 σs에 들어가는 요소를 축약하며, 다음 수학식 1을 통해 만들 수 있다.
즉, 사용하려는 코인의 수신 내역이 담긴 이전 트랜잭션의 해시값 H(PrevTX)을 참조를 위해 넣고, 수신자의 공개키 pubr, 금액 amount을 발신자의 개인키 privs로 서명한다. 이를 통해 서명 σs을 도출할 수 있다.
서명 검증: 다음 수학식 2는 서명을 검증하는 함수식이다. 서명 σ은 노드의 공개키 pub를 이용하여 유효성을 검증할 수 있다.
노드의 공개키 pub와 서명 σ을 검증하면 검증값 v가 나오며, 검증값 0은 true를 1은 false를 의미한다. 즉 v=0이면, 트랜잭션은 유효하다.
보안 파라미터: 트랜잭션이 블록에 포함되면, 그 트랜잭션은 승인(confirmed)받았다고 말한다. 또한, 트랜잭션이 포함된 블록에 뒤이어 블록이 더해지면, 더해진 블록 수만큼 승인 횟수(Confirmation Number)가 증가한다. 승인 횟수가 증가할수록 트랜잭션이 조작될 가능성은 작아지며, 승인횟수가 k번 이상일 때 트랜잭션의 상태(status)는 안정적(stable)이라고 표현할 수 있다. 이때, k는 보안 파라미터이다. 승인 횟수는 트랜잭션이 포함된 블록의 높이에 따라 달라지고, 보안 파라미터 k는 고정 상수로, 개발자/운영자가 설정할 수 있다.
수학식 3에서, 트랜잭션의 승인횟수가 k보다 작으면, 트랜잭션의 상태는 불안정적(unstable)이며 1로 표현된다. 트랜잭션의 승인횟수가 k 이상일 때, 트랜잭션의 상태는 안정적이며 0으로 표현된다.
고정 블록 / 비고정 블록: 블록 내에 포함된 모든 TX가 안정적인(stable) 상태를 가질 때, 해당 블록을 고정 블록(fixed block)이라 한다. 즉, 고정 블록은 메인체인의 팁에서 k 블록 이상 떨어진 블록을 말한다. 또한, 메인체인의 팁에서 k 미만으로 떨어진 블록은 비고정 블록(unfixed block)이라 불리며 비고정 블록에 포함되는 TX는 불안정적(unstable)이다.
도 3은 메인체인에서의 고정 블록과 비고정 블록을 나타낸 도면이다. 도 3에 도시된 바와 같이, 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함할 수 있다.
이하에서는, 전술한 바와 같은 개념을 이용하여, 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 세부적인 흐름에 대해 상세히 설명하도록 한다.
도 4는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 흐름을 도시한 도면이다. 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계(S100), 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 트랜잭션을 전파하는 단계(S200), 및 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 트랜잭션 정보를 승인되지 않은 거래 풀에서 제거하는 단계(S300)를 포함하여 구현될 수 있다.
단계 S100에서는, 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성할 수 있다. 이때, 블록체인이 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하는 경우에는, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성할 수 있다. 도 5는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따른 트랜잭션 구조를 설명하기 위해 도시한 도면이다.
본 발명에서는, 양자 내성 전자서명 적용을 위한 새로운 트랜잭션 구조 및 합의 메커니즘을 제안한다. 기존 트랜잭션의 구조를 단순화하면, 발신자의 서명과 공개키 쌍, 수신자의 공개키, 송금금액으로 이루어진다. 도 2에 도시된 바와 같이, 기존 트랜잭션의 구성요소는 크게 2종류로 나뉜다. 사용하려는 금액의 소유권 증명을 위한 발신자의 서명 σs(도 2에서 sigS), 공개키 pubs(도 2에서 pubS)가 있고, 금액의 수신자에 대한 정보로 수신자의 공개키 pubr(도 2에서 pubR), 받는 금액의 양 amount가 기록된다. 이때, 서명은 이전 트랜잭션의 해시값과, 수신자의 공개키, 금액을 서명한 값이다.
그러나 기존 구조에 양자 내성 암호를 그대로 적용한다면 전술한 바와 같이, 트랜잭션의 크기가 비대해질 수 있다. 따라서 본 발명에서는, 발신자의 서명과 수신자의 공개키를 해시한 값과 금액으로 이루어진 트랜잭션을 제안하여 공개키/서명 크기를 줄이고자 한다. 제안 트랜잭션은, 도 5에 도시된 바와 같이, 발신자의 서명 σs의 해시값(도 5에서 sigSHash), 수신자의 공개키 pubr의 해시값(도 5에서 pubRHash)과 받는 금액의 양 amount만으로 이루어질 수 있다. 발신자의 공개키 pubs는 트랜잭션에서 제거되고, 서명 해시값은 서명 확인 용도로, 공개키 해시값과 금액은 수신자에 대한 정보로 저장될 수 있다.
한편, 서명 검증에는 공개키/서명 쌍이 필요하므로, 본 발명에서는 {pubs, σs}를 같이 전송하여 추후 상세히 설명할 단계 S200 및 단계 S300에서 검증에 이용하고, 일정 기간이 지난 뒤에는 {pubs, σ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)를 늘려 같은 안정성을 유지하고자 한다.
도 6은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S100의 세부적인 흐름을 도시한 도면이고, 도 7은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법의 단계 S100의 구현을 위한 알고리즘을 도시한 도면이다. 도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법은, 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장하는 단계(S110), 서명 함수를 콜하는 단계(S120), 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명하는 단계(S130) 및 발신자 서명의 해시값을 생성해 트랜잭션 데이터에 저장하는 단계(S140)를 포함하여 구현될 수 있으며, 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계(S150)를 더 포함하여 구현될 수 있다. 본 발명에서, 트랜잭션은 도 6 및 도 7에 도시된 바와 같은 방식으로 생성되고 전파될 수 있다.
거래 생성 알고리즘의 인풋은 서명과 검증에 쓰이는 발신자의 키쌍 {pubs, privs}, 수신자의 공개키 pubr와 받는 금액 amount, 코인을 사용하기 위해 참조하는 이전 TX의 해시 H(PrevTX)이고, 아웃풋은 트랜잭션 TX를 포함한 트랜잭션에 대한 데이터인 TXinfo가 될 수 있다.
단계 S110에서는, 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장할 수 있다. 즉, 단계 S110에서는, 우선 수신자 공개키의 해시값과 금액을 TX에 넣는다(도 7의 ①, ②). 이때, 블록체인의 특성에 따라 가치 교환을 하지 않는 블록체인의 경우에는, 금액 없이 수신자 공개키의 해시값만 트랜잭션 데이터에 저장할 수 있다.
단계 S120에서는, 서명 함수를 콜할 수 있다(도 7의 ③).
단계 S130에서는, 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명할 수 있다(도 7의 ④). 이때, 블록체인의 특성에 따라 가치 교환을 하지 않는 블록체인의 경우에는, 금액 없이 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명할 수 있다.
단계 S140에서는, 단계 130의 발신자 서명의 해시값을 생성해 트랜잭션 데이터에 저장할 수 있다. 즉, 서명값 σs의 해시값을 생성하여 트랜잭션에 입력한다(도 7의 ⑤). 이렇게 단계 S110 내지 단계 S140을 수행하여 트랜잭션 TX을 생성할 수 있다.
단계 S150에서는, 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보 TXinfo를 생성할 수 있다. 여기서, 트랜잭션 정보는, 발신자 공개키 및 발신자 서명을 포함하며, 수신자 확인을 위한 수신자 공개키 및 트랜잭션의 해시값을 더 포함할 수 있다. 보다 구체적으로, 단계 S150에서는, 트랜잭션에 대한 부가 정보까지 포함하는 TXinfo에 TX를 넣고(도 7의 ⑥), 검증을 위한 정보 {pubs, σs}를 첨부할 수 있다(도 7의 ⑦ 및 ⑧). 수신자를 확인하기 위한 pubr을 첨부하고(도 7의 ⑨), 트랜잭션의 해시값을 추가할 수 있다(도 7의 ⑩).
블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함할 수 있다. 본 발명에서는, 비고정 블록에서의 검증을 위해, 트랜잭션 정보 TXinfo에 발신자 공개키 및 발신자 서명을 첨부하고, 비고정 블록에서는 첨부된 공개키와 서명 쌍 {pubs, σs}을 이용해 기존 방식(예를 들어, P2PKH 등)과 동일하게 블록을 검증할 수 있다. 비고정 블록이 고정 블록이 되면 첨부된 발신자 공개키 및 발신자 서명을 트랜잭션에서 제거할 수 있다.
단계 S200에서는, 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 트랜잭션을 전파할 수 있다. 즉, 트랜잭션 정보 TXinfo는 승인되지 않은 거래 풀에 추가되고, 노드는 정보를 전파하며, 트랜잭션 정보는 상태가 안정적으로 변할 때까지 승인되지 않은 거래 풀에 보관될 수 있다.
단계 S300에서는, 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 트랜잭션 정보를 승인되지 않은 거래 풀에서 제거될 수 있다. 보다 구체적으로, 단계 S200에서는, 단계 S100에서 생성된 트랜잭션 정보 TXinfo는, 승인되지 않은 거래 풀(pool)에 보관되고, 단계 S300에서는, 풀에서 트랜잭션이 포함된 블록의 모든 트랜잭션이 안정적인 상태가 되면, 서명 쌍 {pubs, σs}을 포함한 트랜잭션 정보는 승인되지 않은 거래 풀에서 제거될 수 있다.
도 8은 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 단계 S300의 처리를 위한 알고리즘을 도시한 도면이다. 트랜잭션의 상태를 파악하기 위해 풀은 주기적으로 업데이트되어야 한다. 도 8에 도시된 알고리즘은 전파된 트랜잭션을 검증을 거쳐 받아들이고 안정적인 트랜잭션을 풀에서 제거하는 기능을 수행할 수 있다.
도 8에 도시된 바와 같이, 프로토콜의 인풋으로는 TXinfo와 TX, 트랜잭션의 상태를 확인하기 위해 필요한 보안 파라미터 k, 메인체인의 팁 높이 n이 있다. 아웃풋으로는 트랜잭션의 검증 결과인 v와 트랜잭션의 상태를 나타내는 status가 업데이트되어 TXinfo가 나온다. 우선 트랜잭션에 대한 검증을 수행하기 위해 트랜잭션에 기록된 수신자의 서명과 발신자의 공개키가 적절한지 확인할 수 있다.
구체적으로 살펴보면, TX의 서명 해시값이 TXinfo의 서명 해시값과 동일하지 않은 경우, 또는 TX의 공개키 해시값이 TXinfo의 공개키 해시값과 동일하지 않은 경우, 프로토콜을 종료한다(도 8의 ①). 서명 검증 함수를 불러와 트랜잭션 정보에 있는 발신자의 서명과 공개키를 넣고(도 8의 ② 내지 ④), 검증값을 트랜잭션 정보에 다시 추가한다(도 8의 ⑤ 및 ⑥). 검증값이 유효하지 않으면 프로토콜을 종료하고(도 8의 ⑦), 유효한 경우에만 트랜잭션 정보를 풀에 추가한다(도 8의 ⑧). 또한, 풀에서 트랜잭션이 담긴 블록의 높이가 n-k보다 낮아져 고정 블록에 포함되는 경우(도 8의 ⑨), 트랜잭션의 상태를 안정적(stable)으로 변경한다(도 8의 ⑩). 추후 상태가 안정적인 TXinfo는 승인되지 않은 거래 풀에서 제거한다.
본 발명에서 제안하고 있는 트랜잭션 구조와 검증 방식을 도입하면, 비고정 블록에 대해서 트랜잭션 검증에 필요한 발신자의 공개키와 서명 쌍을 첨부하기 때문에 기존 방식과 동일하게 블록 검증할 수 있다. 고정 블록은 변경 가능성이 거의 없으므로, 고정 블록에 대해서는 간략하게 검증을 수행할 수 있는데, 이하에서는 고정 블록에 대한 검증에 대해 상세히 설명하도록 한다.
고정 블록에서는 블록 및 블록 헤더에 대한 검증을 수행할 수 있다. 즉, 고정 블록을 전송받을 시에는 블록과 블록 헤더에 대한 검증을 수행하여 블록의 유효성을 확인할 수 있다.
도 9는 본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에서, 고정 블록을 검증하기 위한 알고리즘을 도시한 도면이다. 즉, 도 9의 알고리즘은 고정 블록 Block에 대한 검증 프로토콜 예제이다.
도 9에 예시된 바와 같이, 우선 현재 블록헤더의 이전 블록 해시가 실제 이전 블록의 해시와 일치하는지 확인하고 일치하지 않는 경우 false값을 반환한다(도 9의 ①). 생성된 블록의 PoW가 제대로 수행되었는지 확인하기 위해 블록의 해시값이 기존에 설정된 타겟 난이도보다 작게 나왔는지 확인하고 그렇지 않으면 false값을 반환한다(도 9의 ②). 이렇게 블록에 대한 검증을 수행하며, 검증이 참인 경우에만(도 9의 ③) 블록을 추가할 수 있다.
보안성 검토
본 발명의 일실시예에 따른 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법이 이전 블록체인과 마찬가지로 체인 구조를 통해 각 블록의 무결성을 보장하고, PoW를 통해 공격자의 변조된 블록을 받아들이기 어렵게 하는 특성이 유지되는지 검토한다. 검토를 위해 2가지 공격 시나리오를 상정한다. 중간에 조작된 블록을 삽입하는 공격 시나리오를 통해 본 발명에서 블록체인의 무결성이 유지되는지 검토하고, 조작된 블록을 이어 메인체인을 탈취하는 공격 시나리오를 통해 PoW의 보안성이 유지되는지 검토한다.
악의적인 사용자가 메인체인의 팁 높이에서 z만큼 떨어진 체인 C에 이어 조작된 블록을 작성하여 불법적인 자산 탈취를 시도한다고 가정해보자. 조작된 블록이 포함된 체인 C에 블록을 덧대어 메인체인으로 만들기 위해서는 고정 블록과 비고정 블록에 대해 다음과 같은 조건을 만족하여야 한다. 이때 각 블록은 Bi로 나타내며, i는 해당 블록의 높이를 의미한다. x는 공격자의 체인 C의 블록 수, k는 보안 파라미터를 의미한다.
① 고정 블록 Bi에 대해서는 다음 수학식 4를 충족해야 노드들이 블록을 받아들인다.
② 비고정 블록 Bi에 대해서는 다음 수학식 5를 충족해야 노드들이 블록을 받아들인다.
위 조건에 따라 다음과 같이 공격 시나리오 a), b)를 검토한다.
a) 중간에 조작된 블록을 삽입하는 공격
체인 C 중간에 조작된 블록 Bi`를 삽입하고 뒤이어 기존의 체인을 덧붙인다고 하면, 블록 Bi+1에 대해 다음 수학식 6을 만족해야 한다.
이는 다음 수학식 7을 만족하는 H(Bi)의 2nd preimage를 구하는 것과 같으며, 해시함수의 보안성에 위배된다.
고정/비고정 블록에 대하여 수학식 7의 조건을 모두 만족해야 하므로, 변조된 고정/비고정 블록을 체인 중간에 삽입하는 것이 불가능하다. 따라서 블록체인이 가지는 무결성 특징은 본 발명에서도 동일하게 유지된다고 볼 수 있다.
b) 조작된 블록 뒤에 블록을 연이어 생성하여 메인체인을 탈취하는 공격
메인체인을 탈취하기 위해서는 공격자가 착한 노드보다 빨리 블록을 생성해야 하고, 합의 알고리즘에 따라 공격 성공률이 좌우된다. 본 발명은 PoW 합의 알고리즘에 따라 블록을 생성한다. 고정/비고정 블록에 상관없이 생성되는 블록 Bi에 대하여 다음 수학식 8을 만족해야 하므로, 고정/비고정 블록은 PoW를 따라 합의된다고 볼 수 있다.
PoW에서 공격자가 z 블록만큼 떨어진 체인을 따라잡는 확률은, 착한 노드가 다음 블록을 발견할 확률 p, 공격자가 다음 블록을 발견할 확률 q, 따라잡아야 하는 블록 수 z에 따라 달라진다. 블록 생성 확률은 공격자와 착한 노드의 해시율과 높은 상관성을 가지며 본 발명의 본 발명은 이에 영향을 끼치지 않는다. 그리고 따라잡아야 하는 블록 수 z는 트랜잭션이 안정적으로 변하여 사용 가능해지는 기준이 되는 보안 파라미터 k와 동일하며, 본 발명에서 k는 독립 상수로 본 발명에 따라 변경되지 않는다. 그러므로 본 발명은 PoW에 따라 블록을 생성하며, 본 발명에서의 공격 b)가 성공할 확률은 기존의 51% 공격 확률과 동일하다.
따라서 본 발명은, 기존의 블록체인과 PoW가 갖는 고유의 보안성을 크게 해치지 않는다.
구현 및 성능 실험
본 발명의 실험을 위하여, 구현된 양자 내성 블록체인(이하 BPQB)은 비트코인 오픈소스인 bitcoin core version 0.15.1을 기반으로 개발/구현하였다. Bitcoin core는 정해진 블록 크기, 스마트 컨트랙트 실행 불가 등 한계가 많은 대표적인 블록체인이다. Bitcoin core는 블록체인이 가진 한계성을 잘 나타내기 때문에 향후 양자 내성 암호를 도입하기 위해 개선해야 할 부분들에 관해 연구하기 적합한 것으로 판단하고 이를 기반 소스로 선정하였다.
또한, 양자 내성 알고리즘은 격자 기반의 pqNTRUSign 전자서명 알고리즘을 적용하였다. pqNTRUSign은 모듈러 격자 기반의 전자서명 스킴으로 가우시안 샘플러(Gaussian sampler) 또는 유니폼 샘플러(uniform sampler)와 함께 NTRU 래티스를 사용한다. pqNTRUSign은 공개키/서명 크기가 다른 암호 알고리즘에 비해 작은 편에 속해, 각 노드가 부담할 승인되지 않은 트랜잭션 풀의 용량을 최소화할 수 있을 것이다. 모든 노드가 서명 검증을 통해 트랜잭션을 전송받는 것을 고려할 때, 서명 검증시간이 다른 암호 알고리즘에 비해 짧은 편이어서, 검증 속도가 실용적인 블록체인을 구현하는 데에 적절할 것으로 판단했다. BPQB의 성능을 측정하고자, 2개의 PC 실험환경에서 서명과 검증시간을 각 50회 측정했다.
도 10은 각 실험환경에서의 평균 서명 및 검증시간과 표준편차를 나타낸 도면이다. 블록체인은 트랜잭션 유효성 확인을 위해 전파되는 모든 트랜잭션의 서명 검증을 수행한다. 따라서 성능 부문에 있어 가장 중요한 요소는 검증시간이 된다. 도 10에 도시된 바와 같이, bitcoin 0.15.1이 BPQB보다 빠르나, BPQB의 평균값은 ms(millisecond)로 10㎳ 이하의 값이기 때문에 실용적으로 사용할 수 있을 것이다. 서명 시간은 BPQB는 약 602㎳이고, bitcoin 0.15.1은 약 0.4㎳로 현저한 차이를 보이나 이는 개인이 트랜잭션을 생성하는 시간에만 영향을 주기 때문에 실용적인 사용에 있어 큰 무리가 없을 것으로 판단된다.
전술한 바와 같이, 본 발명에서 제안하고 있는 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법에 따르면, 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파함으로써, 비대한 공개키와 서명 크기를 가진 트랜잭션 사이즈를 대폭 감소시켜 다양한 양자 내성 전자서명을 블록체인에 도입할 수 있으며, 궁극적으로 블록체인의 양자 내성 전자서명 호환성을 증대시키고, 전체적인 블록체인의 크기도 감소시킬 수 있다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
S100: 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계
S110: 수신자 공개키의 해시값을 트랜잭션 데이터에 저장하는 단계
S120: 서명 함수를 콜하는 단계
S130: 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명하는 단계
S140: 발신자 서명의 해시값을 생성해 트랜잭션 데이터에 저장하는 단계
S150: 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계
S200: 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 트랜잭션을 전파하는 단계
S300: 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 트랜잭션 정보를 승인되지 않은 거래 풀에서 제거하는 단계
S110: 수신자 공개키의 해시값을 트랜잭션 데이터에 저장하는 단계
S120: 서명 함수를 콜하는 단계
S130: 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명하는 단계
S140: 발신자 서명의 해시값을 생성해 트랜잭션 데이터에 저장하는 단계
S150: 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계
S200: 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 트랜잭션을 전파하는 단계
S300: 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 트랜잭션 정보를 승인되지 않은 거래 풀에서 제거하는 단계
Claims (9)
- 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,
수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하여 전파하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 제1항에 있어서,
(1) 수신자 공개키의 해시값을 트랜잭션 데이터에 저장하는 단계;
(2) 서명 함수를 콜하는 단계;
(3) 이전 트랜잭션의 해시값 및 수신자 공개키를 발신자 개인키로 서명하는 단계; 및
(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,
상기 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 제1항에 있어서,
상기 블록체인은, 화폐 자산을 이용해 가치를 금액으로 환산하여 거래하며,
수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하여 전파하되,
(1) 수신자 공개키의 해시값 및 금액을 트랜잭션 데이터에 저장하는 단계;
(2) 서명 함수를 콜하는 단계;
(3) 이전 트랜잭션의 해시값, 수신자 공개키 및 금액을 발신자 개인키로 서명하는 단계; 및
(4) 상기 단계 (3)의 발신자 서명의 해시값을 생성해 상기 트랜잭션 데이터에 저장하는 단계를 포함하여,
상기 수신자 공개키의 해시값, 발신자 서명의 해시값 및 금액으로 구성되는 트랜잭션을 생성하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 제2항 또는 제3항에 있어서, 상기 단계 (4) 이후에는,
(5) 상기 트랜잭션 데이터 및 트랜잭션에 대한 부가 정보를 포함하는 트랜잭션 정보를 생성하는 단계를 더 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 제4항에 있어서,
상기 트랜잭션 정보는, 발신자 공개키 및 발신자 서명을 포함하며,
상기 트랜잭션 정보는, 승인되지 않은 거래 풀(pool)에 보관되고, 상기 풀에서 트랜잭션이 포함된 블록의 모든 트랜잭션이 안정적인 상태가 되면, 상기 트랜잭션 정보는 상기 승인되지 않은 거래 풀에서 제거되는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 제5항에 있어서, 상기 트랜잭션 정보는,
수신자 확인을 위한 상기 수신자 공개키 및 트랜잭션의 해시값을 더 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 제1항에 있어서, 상기 블록체인은,
블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 제7항에 있어서,
상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부하고, 상기 비고정 블록이 고정 블록이 되면 상기 첨부된 발신자 공개키 및 발신자 서명을 트랜잭션에서 제거하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법. - 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서 트랜잭션 방법으로서,
상기 블록체인은, 블록 내에 포함된 모든 트랜잭션이 안정적인(stable) 상태인 고정 블록(fixed block) 및 불안정한(unstable) 트랜잭션을 적어도 하나 이상 포함하는 비고정 블록(unfixed block)을 포함하고,
(a) 수신자 공개키의 해시값 및 발신자 서명의 해시값으로 구성되는 트랜잭션을 생성하는 단계;
(b) 상기 비고정 블록에서의 검증을 위해, 발신자 공개키 및 발신자 서명을 첨부한 트랜잭션 정보를 승인되지 않은 거래 풀에 보관하고, 상기 트랜잭션을 전파하는 단계; 및
(c) 상기 트랜잭션이 담긴 블록이 고정 블록에 포함되면, 상기 트랜잭션 정보를 상기 승인되지 않은 거래 풀에서 제거하는 단계를 포함하는 것을 특징으로 하는, 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190115665A KR102311354B1 (ko) | 2019-09-19 | 2019-09-19 | 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190115665A KR102311354B1 (ko) | 2019-09-19 | 2019-09-19 | 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210033846A true KR20210033846A (ko) | 2021-03-29 |
KR102311354B1 KR102311354B1 (ko) | 2021-10-13 |
Family
ID=75250189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190115665A KR102311354B1 (ko) | 2019-09-19 | 2019-09-19 | 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102311354B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584291A (zh) * | 2022-02-18 | 2022-06-03 | 杭州代码狗科技有限公司 | 基于hmac算法的密钥保护方法、装置、设备和存储介质 |
WO2023277552A1 (ko) * | 2021-06-30 | 2023-01-05 | 주식회사 아티프렌즈 | 스토리지 노드의 참여를 통한 데이터 분할 보관 방법 |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101841566B1 (ko) * | 2016-10-11 | 2018-05-04 | 주식회사 코인플러그 | 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버 |
KR20190033581A (ko) * | 2016-07-29 | 2019-03-29 | 엔체인 홀딩스 리미티드 | 블록 체인으로 구현된 방법 및 시스템 |
-
2019
- 2019-09-19 KR KR1020190115665A patent/KR102311354B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190033581A (ko) * | 2016-07-29 | 2019-03-29 | 엔체인 홀딩스 리미티드 | 블록 체인으로 구현된 방법 및 시스템 |
KR101841566B1 (ko) * | 2016-10-11 | 2018-05-04 | 주식회사 코인플러그 | 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버 |
Non-Patent Citations (2)
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023277552A1 (ko) * | 2021-06-30 | 2023-01-05 | 주식회사 아티프렌즈 | 스토리지 노드의 참여를 통한 데이터 분할 보관 방법 |
US20230139519A1 (en) * | 2021-11-02 | 2023-05-04 | Samsung Electronics Co., Ltd. | Storage device supporting multi-tenant operation and methods of operating same |
US12045472B2 (en) * | 2021-11-02 | 2024-07-23 | Samsung Electronics Co., Ltd. | Storage device supporting multi-tenant operation and methods of operating same |
CN114584291A (zh) * | 2022-02-18 | 2022-06-03 | 杭州代码狗科技有限公司 | 基于hmac算法的密钥保护方法、装置、设备和存储介质 |
CN114584291B (zh) * | 2022-02-18 | 2023-12-29 | 杭州代码狗科技有限公司 | 基于hmac算法的密钥保护方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR102311354B1 (ko) | 2021-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Traceable monero: Anonymous cryptocurrency with enhanced accountability | |
KR102311354B1 (ko) | 암호학적 해시 알고리즘을 이용해 트랜잭션 사이즈를 감소시킨 블록체인 트랜잭션 방법 | |
US20220321360A1 (en) | Hash function attacks | |
WO2020165679A1 (en) | Computer-implemented systems and methods for implementing transfers over a blockchain network | |
KR20210008516A (ko) | 블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법 | |
Giechaskiel et al. | When the crypto in cryptocurrencies breaks: Bitcoin security under broken primitives | |
CN110505067B (zh) | 区块链的处理方法、装置、设备及可读存储介质 | |
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 (zh) | 識別阻斷服務攻擊之技術 | |
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 | |
TW202046678A (zh) | 區塊鏈交易中知識證明之電腦實行方法及系統 | |
KR20220024124A (ko) | 지식 증명 | |
Wang et al. | A universal method for realizing non‐repudiable provable data possession in cloud storage | |
Gan et al. | Online/offline remote data auditing with strong key-exposure resilience for 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 | |
Swathi et al. | A survey on quantum-safe blockchain system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |