KR20200041607A - Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method - Google Patents
Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method Download PDFInfo
- Publication number
- KR20200041607A KR20200041607A KR1020180121881A KR20180121881A KR20200041607A KR 20200041607 A KR20200041607 A KR 20200041607A KR 1020180121881 A KR1020180121881 A KR 1020180121881A KR 20180121881 A KR20180121881 A KR 20180121881A KR 20200041607 A KR20200041607 A KR 20200041607A
- Authority
- KR
- South Korea
- Prior art keywords
- blockchain
- firmware
- wallet
- blockchain transaction
- private key
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
본 발명은 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법과 펌웨어 위변조 방지 방법에 관한 것이다. The present invention relates to a blockchain-based cryptocurrency wallet and blockchain transaction method and a method for preventing firmware forgery.
블록체인 기술의 발전과 함께 이를 악용하고자 하는 해킹 기술 또한 나날이 발전하고 있으며, 암호화폐 지갑을 해킹한 사례가 급증하여 보안을 위한 하드웨어(HW) 기반 지갑이 출시되었으나, 이 또한 해킹이 가능하다.With the development of blockchain technology, hacking technology that attempts to exploit it is also evolving day by day, and cases of hacking cryptocurrency wallets have rapidly increased, and a hardware (HW) based wallet for security has been released, but it is also possible to hack.
그리고 도 1에 도시된 것과 같이 이러한 기존의 암호화폐 지갑(10)은 호스트 기기(20)에 유선연결을 통해 사용이 가능함으로 주로 PC 환경에서만 사용이 가능하다. PC 환경은 바이러스(Virus) 및 멀웨어(Malware)와 같은 악성코드에 매우 취약하여 암호화폐 지갑(10)을 유선으로 연결 시 감염될 수 있기에 해킹으로 인한 개인키 유출이 발생할 수 있다. 특히 암호화폐 지갑(10)의 초기화 단계에서 개인키를 생성하는 과정에서 유출이 가능하다. 따라서, 악성코드에 감염될 경우 암호화폐의 도난이 가능하여 금전적 피해를 발생시키기 때문에 안전한 키 관리가 요구되고 있다. In addition, as shown in FIG. 1, the existing
기존에 암호화폐 지갑(10)의 사용자 인증 및 블록체인 거래의 최종 승인 방식은 단순한 PIN(비밀번호) 입력을 통해 이루어지기 때문에 보안에 취약하다. PIN 기반 인증은 무작위 대입(Brute Force) 공격에 매우 취약하다. 또한, 기존 암호화폐 지갑(10)은 개인키를 암호화하지 않은 상태(raw 상태)로 저장하며, 이에 접근하는 방식은 PIN 입력에 의해 가능하기에 보안에 취약하다. Conventionally, the user authentication of the
따라서, 강화된 개인정보보호와 개인키 관리 및 안전한 저장 방식이 필요한 실정이다. Therefore, there is a need for enhanced personal information protection, private key management, and a secure storage method.
또한, 기존 암호화폐 지갑(10)은 MCU(Micro Controller Unit)에 탑재된 펌웨어(Firmware)를 기반으로 시스템이 제어된다. MCU의 펌웨어는 하드웨어에 탑재된 주변기기(Hardware resource) 및 지갑 기능을 구현한 소프트웨어(SW)를 포함함으로써, 위변조된 커스텀 펌웨어가 탑재될 경우 암호화폐 지갑(10)은 탈옥(Jailbreak)된 상태로 작동하여 지갑 데이터(복구코드 및 개인키)의 유출이 가능하다. 또한, MCU의 경우 부채널 공격, 시스템 버스 프로빙(Probing), 메모리 프로빙 등 SW 기반 공격과 물리적인 공격에 매우 취약한 상태이다. 따라서, 펌웨어의 위변조 방지를 위한 보안 방안이 필요하다. In addition, the system of the existing
본 발명은 호스트 기기와 물리적 연결이 필요 없이 사용할 수 있도록 블루투스(BLE)를 사용한 무선연결 기능을 탑재하여 모바일 환경에서 사용이 가능한 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법을 제공하기 위한 것이다.The present invention is to provide a blockchain-based cryptocurrency wallet and a blockchain transaction method that can be used in a mobile environment by mounting a wireless connection function using Bluetooth (BLE) so that a physical connection with a host device is not necessary.
본 발명은 지문인식 기술과 별도의 하드웨어 보안 저장 장치를 탑재하여 개인정보보호를 강화하고 개인키 관리를 안전하게 수행하며 보호된 상태로 저장이 가능한 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법 을 제공하기 위한 것이다. The present invention provides a fingerprint-based technology and a separate hardware security storage device to enhance personal information protection, securely perform personal key management, and provide a blockchain-based cryptocurrency wallet and blockchain transaction method that can be stored in a protected state. It is for.
본 발명은 소프트웨어(SW) 기반 공격과 물리적 공격에 안전한(tamper-proof) 보안 엘리먼트(SE, Secure Element)를 사용하고, SE를 기반한 시스템 제어를 통해 안전한 실행환경을 보장하는 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법 을 제공하기 위한 것이다. The present invention uses a software (SW) -based attack and a tamper-proof security element (SE, Secure Element) for physical attacks, and a blockchain-based cryptocurrency wallet that ensures a secure execution environment through system control based on SE And to provide a blockchain transaction method.
본 발명은 지갑의 기능을 하드웨어(HW)와 소프트웨어(SW)로 분리하여 각 부분(하드웨어부, 소프트웨어부)에서 처리하는 데이터와 태스크(task)를 보안 필요성에 따라 구분하여 향상된 안전성을 제공하는 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법 을 제공하기 위한 것이다. The present invention divides the function of the wallet into hardware (HW) and software (SW), and blocks data and tasks processed by each part (hardware part, software part) according to security needs, thereby providing improved safety It is intended to provide a chain-based cryptocurrency wallet and blockchain transaction method.
본 발명은 하드웨어측, 특히 MCU에 탑재된 펌웨어에 대한 위변조 여부를 주기적으로 모니터링하고 승인된 펌웨어만 작동하도록 함으로써 암호화폐 지갑 실행환경의 안전성을 보장하는 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법과 펌웨어 위변조 방지 방법을 제공하기 위한 것이다. The present invention is a blockchain-based cryptocurrency wallet and blockchain transaction method that ensures the security of the cryptocurrency wallet execution environment by periodically monitoring for forgery and alteration of the firmware mounted on the hardware side, especially the MCU, and It is to provide a method for preventing firmware forgery and alteration.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.Objects other than the present invention will be easily understood through the following description.
본 발명의 일 측면에 따르면, 블록체인을 기반으로 하며 암호화폐를 저장하는 지갑으로서, 블록체인 네트워크와 통신하는 인터페이스 및 API를 가지는 지갑앱을 포함하는 소프트웨어부; 및 블록체인 거래에 대한 승인을 수행하는 하드웨어부를 포함하는 블록체인 기반 암호화폐 지갑이 제공된다. According to an aspect of the present invention, a wallet based on a blockchain and storing a cryptocurrency, a software unit including a wallet app having an interface and an API to communicate with a blockchain network; And a blockchain-based cryptocurrency wallet is provided that includes a hardware unit that performs approval for blockchain transactions.
상기 소프트웨어부와 상기 하드웨어부는 각각 BLE 통신부를 포함하며, BLE 통신을 통해 데이터를 서로 전송할 수 있다.The software unit and the hardware unit each include a BLE communication unit, and can transmit data to each other through BLE communication.
상기 하드웨어부는, 사용자의 지문을 입력받는 지문센서; 개인키 및 지문 정보를 관리하고, 블록체인 거래에 대한 서명 처리를 수행하는 SE(보안 엘리먼트); 펌웨어를 로딩하여 블록체인 거래를 위한 지갑 환경을 부팅하는 MCU를 포함할 수 있다. The hardware unit includes a fingerprint sensor that receives a user's fingerprint; A security element (SE) that manages private key and fingerprint information and performs signature processing for blockchain transactions; It may include an MCU that loads firmware to boot the wallet environment for blockchain transactions.
상기 SE는 상기 개인키를 암호화하여 저장하고, 상기 지문 정보가 검증될 경우 접근권한을 부여하며, 상기 접근권한에 의해 암호화된 상기 개인키를 복호화하고, 복호화된 상기 개인키로 블록체인 거래를 서명 처리하며, 상기 MCU는 서명 처리된 블록체인 거래 정보와 생성한 해쉬 값을 데이터에 포함하여 상기 소프트웨어부로 전달할 수 있다.The SE encrypts and stores the private key, grants access when the fingerprint information is verified, decrypts the private key encrypted by the access permission, and signs a blockchain transaction with the decrypted private key The MCU may include the signed blockchain transaction information and the generated hash value in the data and transmit it to the software unit.
상기 SE는 계층적 결정(HD) 방식으로 다음 블록체인 거래에 사용될 새로운 주소를 생성하여 상기 소프트웨어부로 전달해 줄 수 있다.The SE may generate a new address to be used for the next blockchain transaction in a hierarchical decision (HD) method and deliver it to the software unit.
상기 SE는, 상기 MCU에 펌웨어를 로딩하기 이전에 상기 펌웨어의 서명을 확인하고, 위변조 검증을 통해 승인된 경우에 한해 작동하게 하는 펌웨어 검증 모듈과; 런타임에도 주기적으로 상기 펌웨어의 위변조 여부를 모니터링하는 펌웨어 모니터와; 상기 펌웨어가 승인되지 못한 경우, 펌웨어 서버와 통신하여 승인된 펌웨어를 강제적으로 다운로드 및 업데이트하는 펌웨어 서버 통신 모듈을 포함할 수 있다.The SE includes: a firmware verification module that verifies the signature of the firmware before loading the firmware to the MCU and operates only when it is approved through forgery verification; A firmware monitor that periodically monitors for forgery and alteration of the firmware even at runtime; If the firmware is not approved, it may include a firmware server communication module for forcibly downloading and updating the approved firmware by communicating with the firmware server.
펌웨어 업데이트 시에도 상기 SE는 상기 개인키를 유지시킬 수 있다.Even when updating the firmware, the SE can maintain the private key.
상기 하드웨어부는 자체적으로 초기화가 이루어져 상기 개인키를 안전하게 생성할 수 있다. The hardware unit can be initialized by itself to safely generate the private key.
한편 본 발명의 다른 측면에 따르면, 하드웨어부와 소프트웨어부가 분리된 블록체인 기반 암호화폐 지갑에서 수행되는 블록체인 거래 방법으로서, 상기 소프트웨어부에서 지갑앱을 실행하는 단계; 블록체인 거래를 위한 값을 입력하여 제1 블록체인 거래 데이터를 생성하는 단계; 상기 제1 블록체인 거래 데이터를 상기 하드웨어부로 전달하는 단계; 디스플레이부를 통해 사용자 입력 값을 표시하는 단계; SE에서 지문 정보를 이용하여 블록체인 거래를 승인하는 단계; 서명처리된 블록체인 거래 정보와 해쉬 값을 제2 블록체인 거래 데이터에 포함시키는 단계; 상기 재2 블록체인 거래 데이터를 상기 소프트웨어부에 전달하는 단계; 상기 소프트웨어부에서 상기 제2 블록체인 거래 데이터를 블록체인 네트워크에 전송하는 단계를 포함하는 블록체인 거래 방법이 제공된다. On the other hand, according to another aspect of the present invention, the hardware and software is a blockchain transaction method performed in a separate blockchain-based cryptocurrency wallet, comprising: executing the wallet app in the software unit; Generating first blockchain transaction data by inputting a value for a blockchain transaction; Transferring the first blockchain transaction data to the hardware unit; Displaying a user input value through a display unit; The SE approving the blockchain transaction using the fingerprint information; Including the signed blockchain transaction information and hash value in the second blockchain transaction data; Transferring the second block chain transaction data to the software unit; There is provided a blockchain transaction method comprising the step of transmitting the second blockchain transaction data from the software unit to a blockchain network.
상기 하드웨어부와 상기 소프트웨어부 사이의 데이터 전달은 BLE 통신을 통해 이루어질 수 있다.Data transfer between the hardware unit and the software unit may be performed through BLE communication.
상기 블록체인 거래 승인 단계는, 지문센서에서 사용자의 지문을 입력받는 단계; 상기 SE에서 상기 지문 정보를 검증하는 단계; 지문 검증 성공 시 상기 SE에의 접근권한을 부여하는 단계; 암호화되어 저장된 개인키를 복호화하는 단계; 및 상기 개인키로 블록체인 거래를 서명 처리하는 단계를 포함할 수 있다.The blockchain transaction approval step includes receiving a user's fingerprint from a fingerprint sensor; Verifying the fingerprint information in the SE; Granting access to the SE when fingerprint verification is successful; Decrypting the encrypted private key; And signing the blockchain transaction with the private key.
한편 본 발명의 또 다른 측면에 따르면, 소프트웨어부가 분리된 블록체인 기반 암호화폐 지갑의 하드웨어부에서 수행되는 펌웨어 위변조 방지 방법으로서, 상기 하드웨어부에 전원이 인가되면, SE를 활성화시키는 단계; MCU에 로딩될 제1 펌웨어를 검증하는 단계; 검증에 성공하면 상기 제1 펌웨어를 상기 MCU에 로딩시켜 지갑 환경을 정상 부팅하는 단계; 검증에 실패하면 펌웨어 서버와 통신하여 승인된 제2 펌웨어를 다운로드하고 검증하는 단계; 검증에 성공하면 상기 제2 펌웨어를 상기 MCU에 로딩시켜 지갑 환경을 정상 부팅하고, 검증에 실패하면 다시 상기 펌웨어 서버와 통신하는 단계를 포함하는 펌웨어 위변조 방지 방법이 제공된다. On the other hand, according to another aspect of the present invention, a software forgery prevention method performed in the hardware unit of a blockchain-based cryptocurrency wallet with a separate software unit, when power is applied to the hardware unit, activating SE; Verifying the first firmware to be loaded into the MCU; If verification is successful, loading the first firmware into the MCU to normally boot a wallet environment; If verification fails, downloading and verifying the approved second firmware by communicating with the firmware server; A method for preventing forgery and alteration of firmware is provided, comprising: if the verification is successful, loading the second firmware into the MCU to boot the wallet environment normally, and if verification fails, communicating with the firmware server again.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages than those described above will become apparent from the following drawings, claims, and detailed description of the invention.
본 발명의 실시예에 따르면, 호스트 기기와 물리적 연결이 필요 없이 사용할 수 있도록 블루투스(BLE)를 사용한 무선연결 기능을 탑재하여 모바일 환경에서 사용이 가능한 효과가 있다.According to an embodiment of the present invention, a wireless connection function using Bluetooth (BLE) is mounted so that a physical connection with a host device is not necessary, and thus it can be used in a mobile environment.
그리고 지문인식 기술과 별도의 하드웨어 보안 저장 장치를 탑재하여 개인정보보호를 강화하고 개인키 관리를 안전하게 수행하며 보호된 상태로 저장이 가능한 효과가 있다. In addition, it is equipped with fingerprint recognition technology and a separate hardware security storage device to enhance personal information protection, safely perform private key management, and to store in a protected state.
또한, SW 기반 공격과 물리적 공격에 안전한 SE를 사용하고, SE를 기반한 시스템 제어를 통해 안전한 실행환경을 보장하는 효과도 있다.In addition, there is an effect of using a secure SE for SW-based attacks and physical attacks, and ensuring a safe execution environment through SE-based system control.
또한, 지갑의 기능을 HW와 SW로 분리하여 각 부분(SW 지갑부, HW 지갑부)에서 처리하는 데이터와 태스크를 보안 필요성에 따라 구분하여 향상된 안전성을 제공하는 효과도 있다.In addition, there is an effect of separating the functions of the wallet into HW and SW to separate the data and tasks processed by each part (SW wallet part, HW wallet part) according to security needs to provide improved safety.
또한, 하드웨어측, 특히 MCU에 탑재된 펌웨어에 대한 위변조 여부를 주기적으로 모니터링하고 승인된 펌웨어만 작동하도록 함으로써 암호화폐 지갑 실행환경의 안전성을 보장하는 효과도 있다. In addition, there is an effect of ensuring the security of the cryptocurrency wallet execution environment by periodically monitoring for forgery and alteration of the firmware installed on the hardware side, especially the MCU, and allowing only approved firmware to operate.
도 1은 기존 암호화폐 지갑 및 호스트 기기를 나타낸 도면,
도 2는 본 발명의 일 실시예에 따른 블록체인 기반 암호화폐 지갑의 구성 블록도,
도 3은 본 발명의 일 실시예에 따른 블록체인 기반 암호화폐 지갑에서 수행되는 블록체인 거래 방법의 순서도,
도 4는 지문 정보를 통한 블록체인 거래 서명 처리 과정을 나타낸 도면,
도 5는 본 발명의 일 실시예에 따른 암호화폐 지갑의 하드웨어부와 펌웨어 서버의 구성블록도,
도 6은 본 발명의 일 실시예에 따른 암호화폐 지갑의 펌웨어 업데이트 방법의 순서도,
도 7은 본 발명의 일 실시예에 따른 암호화폐 지갑의 하드웨어부 모습,
도 8은 디스플레이부를 통해 표시되는 암호화폐 종류 및 계좌 정보를 나타낸 예시도. 1 is a view showing an existing cryptocurrency wallet and a host device,
2 is a block diagram of a blockchain-based cryptocurrency wallet according to an embodiment of the present invention,
3 is a flowchart of a blockchain transaction method performed in a blockchain-based cryptocurrency wallet according to an embodiment of the present invention,
4 is a diagram illustrating a process of signing a blockchain transaction through fingerprint information;
5 is a block diagram of a hardware part of a cryptocurrency wallet and a firmware server according to an embodiment of the present invention;
6 is a flow chart of a firmware update method of a cryptocurrency wallet according to an embodiment of the present invention,
7 is a hardware part of a cryptocurrency wallet according to an embodiment of the present invention,
8 is an exemplary view showing cryptocurrency types and account information displayed through a display unit.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but other components may exist in the middle. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as “include” or “have” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, and that one or more other features are present. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.
또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.In addition, the components of the embodiments described with reference to the drawings are not limited to those embodiments, and may be implemented to be included in other embodiments within the scope of maintaining the technical spirit of the present invention. Although the description is omitted, it is natural that a plurality of embodiments may be reimplemented as one integrated embodiment.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. In addition, in the description with reference to the accompanying drawings, the same components, regardless of reference numerals, are assigned the same or related reference numerals, and redundant description thereof will be omitted. In the description of the present invention, when it is determined that detailed descriptions of related known technologies may unnecessarily obscure the subject matter of the present invention, detailed descriptions thereof will be omitted.
또한, 명세서에 기재된 "…부", "…모듈", "…기" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as “… unit”, “… module”, and “… group” described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software. You can.
도 2는 본 발명의 일 실시예에 따른 블록체인 기반 암호화폐 지갑의 구성 블록도이고, 도 3은 본 발명의 일 실시예에 따른 블록체인 기반 암호화폐 지갑에서 수행되는 블록체인 거래 방법의 순서도이며, 도 4는 지문 정보를 통한 블록체인 거래 서명 처리 과정을 나타낸 도면이다. 2 is a block diagram of a blockchain-based cryptocurrency wallet according to an embodiment of the present invention, and FIG. 3 is a flowchart of a blockchain transaction method performed in a blockchain-based cryptocurrency wallet according to an embodiment of the present invention , FIG. 4 is a diagram showing a process of signing a blockchain transaction through fingerprint information.
본 발명의 일 실시예에 따른 블록체인 기반 암호화폐 지갑(100)은 HW 부분에 해당하는 하드웨어부(110)와 SW 부분에 해당하는 소프트웨어부(120)를 포함하며, 암호화폐 지갑의 기능을 HW와 SW로 분리한 것을 특징으로 한다. The blockchain-based
소프트웨어부(120)는 호스트 기기에 탑재되며, 보안을 요하지 않는 일반 데이터와 태스크를 처리한다. 하드웨어부(110)에서는 개인 인증 처리, 블록체인 서명 처리, 계정(개인키) 관리 등과 같은 보안을 요하는 태스크를 처리한다. The
소프트웨어부(120)와 하드웨어부(110)는 각각 BLE 통신부(123, 113)를 포함하고 있어, 서로 블루투스(BLE) 통신을 통해 데이터를 동기화함으로써 향상된 안전성을 제공한다. 도 1에 도시된 것과 같은 기존 환경에서는 호스트 기기(20)와 유선으로 연결 시 호스트 기기(20)가 감염되어 있으면 유선 연결선을 통하여 하드웨어로 구성된 암호화폐 지갑(10)을 감염시킬 수 있다. 이로 인해 해킹을 통해 블록체인 거래 시 올바르지 않은 주소가 표시되거나 개인키가 유출될 위험성이 있다. The
따라서, 본 실시예에서는 블록체인 거래 시 소프트웨어부(120)는 지갑앱(121)을 포함하며, 지갑앱(121)에서는 보안을 요하지 않는 기능을 주로 처리한다. 예컨대, 지갑앱(121)이 실행되면(단계 S200), 사용자가 암호화폐 지갑의 메뉴를 탐색(Navigate)할 수 있는 직관적인 사용자 인터페이스(User Interface) 기능을 제공하고, 블록체인 거래를 실행하기 위한 특정 값(예를 들어, 상대방 주소, 금액, 수수료 등)을 입력할 수 있는 입력란을 제공한다(단계 S205). Therefore, in this embodiment, in the blockchain transaction, the
지갑앱(121)은 블록체인 네트워크와 통신하는 인터페이스를 가지고, 특정 블록체인 네트워크와 연결이 가능한 API를 가질 수 있다. 또한, 암호화폐 지갑의 기능을 사용할 수 있는 사용자 인터페이스(메뉴 탐색, 계정 정보 조회, 거래 정보 입력 등 보안을 요하지 않는 단순한 인터페이스)를 제공할 수 있다. The
이후 소프트웨어부(120)에서 생성된 블록체인 거래 데이터는 하드웨어부(110)로 전달된다(단계 S210). Thereafter, the blockchain transaction data generated by the
하드웨어부(110)는 MCU(111), SE(112), BLE 통신부(113), 지문센서(114), 디스플레이부(116), 입력부(115)를 포함한다. The
하드웨어부(110)는 디스플레이부(116)를 통하여 사용자가 입력한 값(예를 들어, 상대방 주소, 금액, 수수료 등)이 소프트웨어부(120)에 표시된 값과 일치하는지 확인이 가능하다(단계 S215). 또한, 확인한 블록체인 거래를 승인하기 위한 모든 절차는 SE(Secure Element)(112) 안에서 안전하게 처리된다. The
블록체인 거래 승인 시 사용자는 지문센서(114)를 통해 지문을 입력하여 개인인증을 수행하고(단계 S220), SE(112)에서는 지문 정보를 검증한다(단계 S225). 지문이 검증될 경우 SE(112)에 접근할 권한이 주어지며(단계 S230), SE(112) 내에 암호화되어 저장된 개인키를 복호화하고, 복호화된 개인키로 블록체인 거래를 서명 처리한다(단계 S235). 서명 처리된 블록체인 거래 정보와 생성한 해쉬(HASH)값을 데이터에 포함하여 소프트웨어부(120)로 전달한다(단계 S240). When the blockchain transaction is approved, the user enters the fingerprint through the
소프트웨어부(120)는 전달받은 데이터를 블록체인 네트워크에 전송하여 거래를 마무리한다(단계 S245). 따라서, 블록체인 거래에 필요한 모든 주요 보안 처리를 하드웨어부(110)의 SE(112) 내에서 수행함으로써 안전성을 향상시킬 수 있다. The
본 실시예에 따른 암호화폐 지갑(100)의 하드웨어부(110)는 소프트웨어부(120)가 설치된 호스트 기기와 분리된 환경으로, 만일 소프트웨어부(120)가 해킹되어 암호화폐 계정 정보가 위변조 되어도 하드웨어부(110)와 연결 시 하드웨어부(110)에 저장된 계정 정보는 무결성이 보장된다. 따라서, BLE 무선 연결을 통한 주기적인 동기화를 통해 올바른 정보를 소프트웨어부(120)에 전달하여 기존 계정 정보를 블록체인 네트워크를 통해 업데이트하여 올바른 정보를 표시할 수 있다. The
또한, 블록체인 거래 시 사용되는 계정 주소는 계층적 결정(HD, Hierarchical Deterministic) 방식을 사용하여 매번 새로운 블록체인 거래가 일어날 경우 새로운 주소를 사용하게 된다. 새로운 주소는 기존 지갑과는 달리 하드웨어부(110)의 SE(112) 내에서 생성하여 소프트웨어부(120)에 전달해 준다. 이 때 생성한 새로운 주소는 공개되는 정보이기에 보안을 요하지 않지만, 새로운 주소를 생성하는 과정은 보안이 필요하다. In addition, the account address used in the blockchain transaction uses a hierarchical deterministic (HD) method, and a new address is used whenever a new blockchain transaction occurs. Unlike the existing wallet, the new address is generated in the
거래 시 사용되는 주소는 부모 개인키(Parent Private Key)를 기반으로 생성하거나 또는 HD 체인의 최상위인 부모 공개키(Parent Public Key)(Xpub)를 기반으로 생성된다. 부모 개인키는 SE(112) 내에서 암호화된 상태로 저장되어 노출이 불가능하다. 부모 공개키(Xpub)는 공개된 정보이지만 공개를 권하지 않는다. The address used in the transaction is generated based on the parent private key or the parent public key (Xpub), which is the top of the HD chain. The parent private key is stored in an encrypted state within the
도 1에 도시된 것과 같은 기존 암호화폐 지갑(10)에서는 HW 부분의 MCU 칩에서 연산하여 주소를 생성한다. 하지만 SE 외부에서 주소를 생성하는 행위는 만일 암호화폐 지갑 기기가 감염된 상태라면 부모 공개키(Xpub)가 노출될 수 있다. 사용자의 부모 공개키(Xpub)가 노출될 경우 해당 계정의 모든 거래 내역 및 해당 계정의 총 보유 금액을 블록체인 네트워크를 통해 누구나 확인 가능할 뿐만 아니라 다음 블록체인 거래에 사용될 주소를 예측할 수 있게 된다. 이는 보안 이슈와 더불어 개인의 프라이버시(Privacy)를 해치게 된다. In the existing
따라서, 본 실시예에서는 부모 공개키(Xpub)가 노출되지 않도록 SE(112) 내에서 다음 블록체인 거래에 사용될 새로운 주소(Child Public Key)를 생성하고 BLE 무선 연결을 통해 소프트웨어부(120)와 연동하여 새로운 주소를 전달하는 방안을 적용한다. Accordingly, in this embodiment, a new address (Child Public Key) to be used for the next blockchain transaction is generated in the
도 5는 본 발명의 일 실시예에 따른 암호화폐 지갑의 하드웨어부와 펌웨어 서버의 구성블록도이고, 도 6은 본 발명의 일 실시예에 따른 암호화폐 지갑의 펌웨어 업데이트 방법의 순서도이다. 5 is a block diagram of a hardware part of a cryptocurrency wallet and a firmware server according to an embodiment of the present invention, and FIG. 6 is a flowchart of a firmware update method of a cryptocurrency wallet according to an embodiment of the present invention.
본 실시예에 따른 암호화폐 지갑(100)의 하드웨어부(110)는 펌웨어 업데이트 기능을 구비한 SE(112)를 포함한다. The
SE(112)는 펌웨어 검증 모듈(1121), 펌웨어 모니터(1122), 펌웨어 서버 통신 모듈(1123)을 포함한다. The
하드웨어부(110)의 전원이 켜질 때(단계 S300) 보안 부팅(Secure Booting) 절차를 통해 SE(112)가 먼저 활성화된다(단계 S305). 그리고 펌웨어 검증 모듈(1121)에서는 MCU(111)에 펌웨어를 로딩하기 전 펌웨어의 서명을 확인하여(단계 S310), 위변조 검증을 통해 승인된 펌웨어만 작동하도록 하여(단계 S315 내지 S325) 보안을 향상시킬 수 있다. When the power of the
런타임(runtime)에도 펌웨어 모니터(1122)는 주기적인 펌웨어의 위변조 여부를 모니터링하여 암호화폐 지갑 실행환경의 안전성을 보장한다. 펌웨어의 검증을 통해 변조되었다고 판단될 경우(즉 펌웨어가 승인되지 못한 경우(단계 S330)), 펌웨어 서버 통신 모듈(1123)은 펌웨어 서버(50)와 통신하여(단계 S335) 승인된 펌웨어를 강제적으로 다운로드 및 업데이트한다(단계 S340). 그리고 승인된 펌웨어만 로딩이 가능하게 하고(단계 S345 내지 S355) 승인되지 않은 펌웨어의 작동을 방지할 수 있다(단계 S360). 펌웨어가 승인되지 못한 경우 단계 S335로 되돌아가 펌웨어 서버(50)와 재통신하여 승인된 펌웨어를 재차 다운로드 및 업데이트할 수 있다. Even at run time, the
본 실시예에 따른 암호화폐 지갑(100)의 하드웨어부(110)는 기존과 달리 호스트 기기와의 유선 연결 없이 자체적으로 초기화가 가능하여, 개인키 생성 시 해킹으로 인한 개인키 유출에 대해 향상된 안전성을 제공한다. Unlike the existing, the
암호화폐 지갑(100)의 초기화는 3가지 경우에 진행된다. Initialization of the
(1) 새로운 암호화폐 지갑을 구매, 사용하던 지갑의 계정을 삭제하고 새로운 계정을 생성한 경우, (2) 기존 지갑을 복구하는 경우, (3) 개인인증 시 최대 시도 가능한 한도를 초과하여 강제적으로 모든 데이터가 삭제되는 경우(사용자가 인증에 실패하거나 또는 타인에 의하여 인증을 시도한 경우 주로 발생)(1) Purchasing and using a new cryptocurrency wallet, deleting an account in the wallet and creating a new account, (2) recovering an existing wallet, (3) forcing personal authentication to exceed the maximum attemptable limit When all data is deleted (mostly when the user fails to authenticate or attempts to authenticate by someone else)
새로 구매한 암호화폐 지갑(100)은 초기화를 통해 사용자가 직접 지갑 계정(개인키)를 생성하게 된다. 사용자에게 새로 구매한 암호화폐 지갑(100)의 하드웨어부(110)(즉, 지갑 기기)가 전달되기 이전에 기기에 개인키가 생성되어 있는 경우 개인키가 노출될 가능성이 존재하며, 언제 어느 시점에서 노출되었는지 확인이 불가능하다. 따라서, 초기화 절차는 기기의 양산시점부터 사용자에게 전달되기까지의 라이프사이클 내에 개인키가 노출되는 것을 방지하기 위한 방안이며, 사용자에 의한 직접적인 개인키 생성을 유도하여 신뢰성을 확보하는 방안이기도 하다.The newly purchased
기존 암호화폐 지갑(10)은 암호화폐를 보유한 사용자가 암호화폐의 저장을 주요 목적으로 생산되었기에 PC 환경에서만 사용하도록 기능이 한정되어 있어 유선 연결이 필수적이었다. 지갑 기기 자체에서 초기화를 진행할 수 있는 디스플레이와 값을 입력할 수 있는 사용자 인터페이스(UI)가 제한적이어서 PC와 유선으로 연결하고 PC에 설치된 프로그램이 초기화 진행을 위한 사용자 인터페이스를 제공하였다. 하지만, 만일 PC가 바이러스, 멀웨어와 같은 악성코드에 감염된 경우 암호화폐 지갑(10)이 유선으로 연결되면 유선 연결을 통해 암호화폐 지갑(10)을 감염시켜 개인키 생성 시 개인키와 복구코드가 노출될 가능성이 있다. Since the existing
따라서, 본 실시예에서는 PC 환경 및 모바일 환경에서도 사용이 가능하며 자체적으로 초기화가 가능하도록 하여, 하드웨어부(110)에서 제공하는 디스플레이부(116)와 입력부(115)를 통하여 사용자가 초기화를 진행하여 개인키를 안전하게 생성하고 지갑 복구를 위한 복구코드가 외부로 유출되는 것을 방지하고자 한다. Therefore, in the present embodiment, it can be used in a PC environment and a mobile environment and can be initialized by itself, so that the user initializes through the
복구코드는 사용자의 개인키를 복구할 수 있는 연상코드로서, 예를 들어 순서를 가지는 복수개(예를 들어, 24개)의 간단한 영단어로 이루어질 수 있다. The recovery code is an association code capable of recovering the user's private key, and may be composed of a plurality of simple English words (for example, 24) having an order.
사용자는 블록체인 거래의 일반 공개 데이터에 대해 지갑앱(121)을 통해 입력, 조회, 조작 등의 기능을 사용한다. 입력된 데이터는 BLE 무선 연결을 통해 하드웨어부(110)에 전달되며, 보안을 요하는 중요한 처리 기능(예를 들어, 블록체인 서명, 계정 관리, 키 관리 등)을 하드웨어 기기인 하드웨어부(110)를 통해 사용자가 직접 개인인증을 통하여 처리를 수행한다. The user uses functions such as input, inquiry, and manipulation through the
하드웨어부(110)를 통해 처리된 블록체인 데이터는 다시 BLE 무선 연결을 통해 호스트 기기의 지갑앱(121)에 전달되고, 지갑앱(121)은 네트워크를 통해 블록체인 데이터를 블록체인 네트워크에 전달하여 블록체인 거래를 완성하게 된다. 블록체인 거래에 포함된 데이터는 계정 주소(받는이, 보낸이), 금액, 수수료 등의 정보가 포함되며, 이는 공개된 정보로서 블록체인 네트워크를 통해 확인 가능하다. 다만, 블록체인 거래에 관한 데이터를 블록체인 네트워크로 전송하기 전에 사용자가 승인을 하는 절차를 진행하게 되는데, 이 과정에서 해당 블록체인 거래 정보를 사용자의 개인키로 서명함으로써 부인방지를 확보한다. 그리고 이와 함께 블록체인 거래 정보의 해쉬(HASH)값을 포함한 패키지 데이터로 블록체인 네트워크에 전송하게 된다. 블록체인 네트워크에서는 포함된 해쉬의 넌스(Nonce)값을 구하는 연산을 수행하여 해당 데이터가 변조되지 않았음을 증명한다. The blockchain data processed through the
본 실시예에서 소프트웨어부(120)(호스트 기기)와 하드웨어부(110)(암호화폐 지갑 기기) 간의 BLE를 통해 데이터가 전송될 때 해당 데이터는 암호화되어 전송됨으로써 스누핑(snooping)하여 데이터를 갈취하는 중간자 공격에 대한 방어가 이루어진다. In this embodiment, when data is transmitted through the BLE between the software unit 120 (host device) and the hardware unit 110 (encryption wallet device), the data is encrypted and transmitted, thereby snooping to steal data Defense against man-in-the-middle attacks is made.
개인키 관리는 하드웨어부(110)에 설치된 안전한(tamperproof)한 SE(112)를 통해 처리된다. 펌웨어 업데이트를 진행한 경우에도 블록체인 거래에 사용되는 개인키가 유지된다. 따라서, 본 실시예에 따르면, 기존 암호화폐 지갑(10)과 달리 개인키 복구과정이 필요 없으며, 지갑앱(121)과 동기화를 통해 기존 계정의 공개키 전달을 통해 계정 업데이트가 가능하다. The private key management is processed through a
기존 암호화폐 지갑(10)에서는 펌웨어를 업데이트하는 경우 지갑 기기가 초기화됨으로써 지갑 기기에 저장된 모든 데이터(개인키, 계정 정보 등)가 삭제되어 사용자가 복구코드를 입력하여 복구를 진행해야 했다. 복구절차는 예를 들어 12개, 18개 또는 24개의 복구코드를 모두 올바르게 입력해야 기존에 사용하던 지갑의 개인키(Private Key)가 생성된다. In the existing
매번 펌웨어가 업데이트될 때마다 복구코드를 입력하여 복구하는 방식은 상당히 번거롭고 시간도 오래 걸린다. It is very cumbersome and time consuming to enter the recovery code every time the firmware is updated.
본 실시예에 따른 암호화폐 지갑(100)에서는 기존 지갑과 다르게 펌웨어를 업데이트하여도 SE(112)에 저장된 데이터(예를 들어, PIN, 지문, 개인키 등)가 그대로 유지되기 때문에 복구절차를 진행할 필요가 없다. In the
지갑앱(121)에서 사용되는 주소(공개키) 또한 SE(112)에서 모두 관리하며, 지갑앱(121)에서 사용이 필요할 때 SE(112) 내에서 생성함으로써 프라이버시를 보호하고, BLE 무선 연결을 통해 해당 데이터를 지갑앱(121)에 전달한다.The address (public key) used in the
지갑앱(121)은 이후 블록체인 네트워크를 통해 해당 주소의 데이터를 업데이트한다. 여기서, 해당 주소는 사용자의 지갑에 존재하는 한 주소를 의미한다. 예를 들어 사용자가 블록체인 거래를 블록체인 네트워크에 전송하면 사용자가 보낸 블록체인 거래가 블록체인 네트워크에서 여러 노드에 의해 올바른 거래로 판정될 경우 해당 블록체인 거래가 블록체인 네트워크에서 공유하고 있는 블록에 추가되면서 보낸이 주소(사용자의 주소)에서 받은이의 주소에 송금된 금액이 반영된다. 따라서 사용자의 주소를 블록체인 네트워크에서 조회하여 업데이트된 데이터(거래 내역 및 금액 변경 등)를 불러와 지갑(소프트웨어부(120)의 지갑앱(121) 혹은 하드웨어부(110)의 디스플레이부(116))에 표시되게 한다. The
본 실시예에 따른 암호화폐 지갑은 개인키의 외부 유출을 방지하고 안전하게 보호되게 한다. 기존 암호화폐 지갑의 경우 PIN 매칭(matching)으로 접근을 관리하고 있으며, 개인키는 암호화되지 않은 상태로 저장된다. The cryptocurrency wallet according to this embodiment prevents external leakage of the private key and is secured. In the case of existing cryptocurrency wallets, access is managed by PIN matching, and the private key is stored unencrypted.
이에 비해 본 실시예에서는 지문 인식 기술을 활용하여 등록된 지문 정보로 개인키를 암호화하여 SE에 안전하게 저장한다. 블록체인 서명 요청 시 사용자는 지문을 스캔하여 개인 인증을 진행하고, 지문정보가 일치하는 경우에만 SE에 암호화되어 저장된 개인키를 복호화한 후 활성화하고, SE 내에서 서명처리를 진행함으로써 외부 유출에 대한 절대적으로 향상된 보안성을 제공할 수 있다. On the other hand, in this embodiment, the private key is encrypted with the registered fingerprint information by using the fingerprint recognition technology and safely stored in the SE. When requesting a blockchain signature, the user scans the fingerprint to perform personal authentication, decrypts and activates the private key stored in the SE only when the fingerprint information matches, activates it, and proceeds with signature processing within the SE to prevent external leakage. It can provide absolutely improved security.
도 7은 본 발명의 일 실시예에 따른 암호화폐 지갑의 하드웨어부 모습이며, 도 8은 디스플레이부를 통해 표시되는 암호화폐 종류 및 계좌 정보를 나타낸 예시도이다. 7 is a view of a hardware part of a cryptocurrency wallet according to an embodiment of the present invention, and FIG. 8 is an exemplary view showing cryptocurrency types and account information displayed through a display part.
도 7을 참조하면 암호화폐 지갑(100)의 하드웨어부(110)가 도시되어 있다. Referring to FIG. 7, the
입력부(115)는 버튼으로 구현되어 있으며, 버튼 조작을 통해 입력 값을 변경할 수 있다. 예를 들어, (상)버튼은 입력할 값(숫자, 알파벳 등)을 상위 순서의 값으로 변경할 수 있다(예: 1-->2, a-->b). (하)버튼은 입력할 값(숫자, 알파벳 등)을 하위 순서의 값으로 변경할 수 있다(예: 1-->0, a-->z). The
그리고 (상/하)버튼은 화면에 표시된 항목으로 이동할 수 있게 한다. 예컨대, (상)버튼은 위로 이동하고, (하)버튼은 아래로 이동하게 한다. And (Up / Down) button allows you to move to the items displayed on the screen. For example, the (Up) button moves up, and the (Down) button moves down.
(확인/OK)버튼은 선택한 항목 또는 입력된 값을 확정할 때 사용된다. (OK / OK) button is used to confirm the selected item or the entered value.
(이전/BACK)버튼은 이전 화면으로 이동 또는 현재 위치의 입력을 취소하고 이전 입력 위치로 이동을 원할 때 사용된다. 본 실시예에 따른 암호화폐 지갑(100)에는 하나 이상의 암호화폐(비트코인, 이더리움, 모나코인, ERC-20, 리플 등)가 보관될 수 있다. (Previous / BACK) button is used to move to the previous screen or cancel input of the current location and move to the previous input location. One or more cryptocurrency (Bitcoin, Ethereum, Monacoin, ERC-20, Ripple, etc.) may be stored in the
소유하고 있는 암호화폐의 종류를 선택하면 디스플레이부(116)를 통해 계좌정보를 확인할 수 있다(도 8의 (a) 참조). If you select the type of cryptocurrency you own, you can check your account information through the display unit 116 (see Fig. 8 (a)).
그리고 송금을 받는 계좌 정보가 문자와 QR 코드로 표시될 수 있다(도 8의 (b) 참조). And the account information receiving the remittance may be displayed by a text and a QR code (see FIG. 8 (b)).
전술한 블록체인 거래 방법 및 펌웨어 위변조 방지 방법은 디지털 처리 장치에 내장된 소프트웨어 프로그램 등에 의해 시계열적 순서에 따른 자동화된 절차로 수행될 수도 있음은 당연하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 상기 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체 등을 포함한다.It is natural that the above-mentioned block chain transaction method and firmware forgery prevention method may be performed by an automated procedure according to a time series sequence by a software program embedded in a digital processing device. The codes and code segments constituting the program can be easily deduced by a computer programmer in the field. In addition, the program is stored in a computer readable media, and read and executed by a computer to implement the method. The information storage medium includes a magnetic recording medium, an optical recording medium, and the like.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to embodiments of the present invention, those skilled in the art variously modify the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. And can be changed.
100: 블록체인 기반 암호화폐 지갑
110: 하드웨어부
111: MCU
112: SE
113: BLE 통신부
114: 지문센서
115: 입력부
116: 디스플레이부
120: 소프트웨어부
121: 지갑앱
123: BLE 통신부
50: 펌웨어 서버
1121: 펌웨어 검증 모듈
1122: 펌웨어 모니터
1123: 펌웨어 서버 통신 모듈100: blockchain-based cryptocurrency wallet 110: hardware
111: MCU 112: SE
113: BLE communication unit 114: fingerprint sensor
115: input unit 116: display unit
120: software unit 121: wallet app
123: BLE communication unit 50: firmware server
1121: firmware verification module 1122: firmware monitor
1123: Firmware server communication module
Claims (12)
블록체인 네트워크와 통신하는 인터페이스 및 API를 가지는 지갑앱을 포함하는 소프트웨어부; 및
블록체인 거래에 대한 승인을 수행하는 하드웨어부를 포함하는 블록체인 기반 암호화폐 지갑.
A wallet that is based on blockchain and stores cryptocurrency,
A software unit including a wallet app having an interface and API to communicate with a blockchain network; And
A blockchain-based cryptocurrency wallet that includes a hardware part that performs approval for blockchain transactions.
상기 소프트웨어부와 상기 하드웨어부는 각각 BLE 통신부를 포함하며, BLE 통신을 통해 데이터를 서로 전송하는 것을 특징으로 하는 블록체인 기반 암호화폐 지갑.
According to claim 1,
The software unit and the hardware unit each include a BLE communication unit, a blockchain-based cryptocurrency wallet characterized in that data is transmitted to each other through BLE communication.
상기 하드웨어부는,
사용자의 지문을 입력받는 지문센서;
개인키 및 지문 정보를 관리하고, 블록체인 거래에 대한 서명 처리를 수행하는 SE(보안 엘리먼트);
펌웨어를 로딩하여 블록체인 거래를 위한 지갑 환경을 부팅하는 MCU를 포함하는 블록체인 기반 암호화폐 지갑.
According to claim 1,
The hardware unit,
A fingerprint sensor that receives a user's fingerprint;
A security element (SE) that manages private key and fingerprint information and performs signature processing for blockchain transactions;
A blockchain-based cryptocurrency wallet that includes an MCU that loads firmware to boot the wallet environment for blockchain transactions.
상기 SE는 상기 개인키를 암호화하여 저장하고, 상기 지문 정보가 검증될 경우 접근권한을 부여하며, 상기 접근권한에 의해 암호화된 상기 개인키를 복호화하고, 복호화된 상기 개인키로 블록체인 거래를 서명 처리하며,
상기 MCU는 서명 처리된 블록체인 거래 정보와 생성한 해쉬 값을 데이터에 포함하여 상기 소프트웨어부로 전달하는 것을 특징으로 하는 블록체인 기반 암호화폐 지갑.
According to claim 3,
The SE encrypts and stores the private key, grants access rights when the fingerprint information is verified, decrypts the private key encrypted by the access rights, and signs a blockchain transaction with the decrypted private key And
The MCU is a blockchain-based cryptocurrency wallet characterized by including the signed transaction data and the generated hash value in data to the software unit.
상기 SE는 계층적 결정(HD) 방식으로 다음 블록체인 거래에 사용될 새로운 주소를 생성하여 상기 소프트웨어부로 전달해 주는 것을 특징으로 하는 블록체인 기반 암호화폐 지갑.
According to claim 4,
The SE is a blockchain-based cryptocurrency wallet characterized by generating a new address to be used for the next blockchain transaction in a hierarchical decision (HD) method and delivering it to the software unit.
상기 SE는,
상기 MCU에 펌웨어를 로딩하기 이전에 상기 펌웨어의 서명을 확인하고, 위변조 검증을 통해 승인된 경우에 한해 작동하게 하는 펌웨어 검증 모듈과;
런타임에도 주기적으로 상기 펌웨어의 위변조 여부를 모니터링하는 펌웨어 모니터와;
상기 펌웨어가 승인되지 못한 경우, 펌웨어 서버와 통신하여 승인된 펌웨어를 강제적으로 다운로드 및 업데이트하는 펌웨어 서버 통신 모듈을 포함하는 블록체인 기반 암호화폐 지갑.
According to claim 3,
The SE,
A firmware verification module that verifies the signature of the firmware before loading the firmware into the MCU and operates only when approved through forgery and alteration verification;
A firmware monitor that periodically monitors for forgery and alteration of the firmware even at runtime;
If the firmware is not approved, a blockchain-based cryptocurrency wallet including a firmware server communication module for forcibly downloading and updating the approved firmware by communicating with the firmware server.
펌웨어 업데이트 시에도 상기 SE는 상기 개인키를 유지시키는 것을 특징으로 하는 블록체인 기반 암호화폐 지갑.
The method of claim 6,
Blockchain-based cryptocurrency wallet characterized in that the SE maintains the private key even when the firmware is updated.
상기 하드웨어부는 자체적으로 초기화가 이루어져 상기 개인키를 안전하게 생성하는 것을 특징으로 하는 블록체인 기반 암호화폐 지갑.
According to claim 3,
The hardware part is initialized by itself and is a blockchain-based cryptocurrency wallet characterized in that the private key is safely generated.
상기 소프트웨어부에서 지갑앱을 실행하는 단계;
블록체인 거래를 위한 값을 입력하여 제1 블록체인 거래 데이터를 생성하는 단계;
상기 제1 블록체인 거래 데이터를 상기 하드웨어부로 전달하는 단계;
디스플레이부를 통해 사용자 입력 값을 표시하는 단계;
SE에서 지문 정보를 이용하여 블록체인 거래를 승인하는 단계;
서명처리된 블록체인 거래 정보와 해쉬 값을 제2 블록체인 거래 데이터에 포함시키는 단계;
상기 제2 블록체인 거래 데이터를 상기 소프트웨어부에 전달하는 단계;
상기 소프트웨어부에서 상기 제2 블록체인 거래 데이터를 블록체인 네트워크에 전송하는 단계를 포함하는 블록체인 거래 방법.
As a blockchain transaction method performed in a blockchain-based cryptocurrency wallet where the hardware and software parts are separated,
Executing a wallet app in the software unit;
Generating first blockchain transaction data by inputting a value for a blockchain transaction;
Transferring the first blockchain transaction data to the hardware unit;
Displaying a user input value through a display unit;
The SE approving the blockchain transaction using the fingerprint information;
Including the signed blockchain transaction information and hash value in the second blockchain transaction data;
Transferring the second blockchain transaction data to the software unit;
And transmitting, by the software unit, the second blockchain transaction data to a blockchain network.
상기 하드웨어부와 상기 소프트웨어부 사이의 데이터 전달은 BLE 통신을 통해 이루어지는 것을 특징으로 하는 블록체인 거래 방법.
The method of claim 9,
Blockchain transaction method characterized in that the data transfer between the hardware portion and the software portion is made through BLE communication.
상기 블록체인 거래 승인 단계는,
지문센서에서 사용자의 지문을 입력받는 단계;
상기 SE에서 상기 지문 정보를 검증하는 단계;
지문 검증 성공 시 상기 SE에의 접근권한을 부여하는 단계;
암호화되어 저장된 개인키를 복호화하는 단계; 및
상기 개인키로 블록체인 거래를 서명 처리하는 단계를 포함하는 블록체인 거래 방법.
The method of claim 9,
The blockchain transaction approval step,
Receiving a user's fingerprint from a fingerprint sensor;
Verifying the fingerprint information in the SE;
Granting access to the SE when fingerprint verification is successful;
Decrypting the encrypted private key; And
Blockchain transaction method comprising the step of signing the blockchain transaction with the private key.
상기 하드웨어부에 전원이 인가되면, SE를 활성화시키는 단계;
MCU에 로딩될 제1 펌웨어를 검증하는 단계;
검증에 성공하면 상기 제1 펌웨어를 상기 MCU에 로딩시켜 지갑 환경을 정상 부팅하는 단계;
검증에 실패하면 펌웨어 서버와 통신하여 승인된 제2 펌웨어를 다운로드하고 검증하는 단계;
검증에 성공하면 상기 제2 펌웨어를 상기 MCU에 로딩시켜 지갑 환경을 정상 부팅하고, 검증에 실패하면 다시 상기 펌웨어 서버와 통신하는 단계를 포함하는 펌웨어 위변조 방지 방법. As a method of preventing forgery of firmware performed in the hardware part of a blockchain-based cryptocurrency wallet with a separate software part,
Activating a SE when power is applied to the hardware unit;
Verifying the first firmware to be loaded into the MCU;
If verification is successful, loading the first firmware into the MCU to normally boot a wallet environment;
If verification fails, downloading and verifying the approved second firmware by communicating with the firmware server;
The method for preventing forgery and alteration of firmware, comprising loading the second firmware to the MCU to successfully boot the wallet environment if verification is successful, and communicating with the firmware server again if verification is unsuccessful.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180121881A KR20200041607A (en) | 2018-10-12 | 2018-10-12 | Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180121881A KR20200041607A (en) | 2018-10-12 | 2018-10-12 | Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200041607A true KR20200041607A (en) | 2020-04-22 |
Family
ID=70473020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180121881A KR20200041607A (en) | 2018-10-12 | 2018-10-12 | Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20200041607A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287334A (en) * | 2020-11-06 | 2021-01-29 | 浙江中控技术股份有限公司 | User-defined library processing method, device and system |
CN112669021A (en) * | 2020-12-31 | 2021-04-16 | 北京握奇数据股份有限公司 | Digital currency hardware wallet based on mobile terminal |
WO2021247639A1 (en) * | 2020-06-04 | 2021-12-09 | iCoin Technology, Inc. | Multiple microprocessor architecture for cold storage |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180107037A (en) | 2018-09-10 | 2018-10-01 | 이장원 | Transaction system using virtual currency |
-
2018
- 2018-10-12 KR KR1020180121881A patent/KR20200041607A/en not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180107037A (en) | 2018-09-10 | 2018-10-01 | 이장원 | Transaction system using virtual currency |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021247639A1 (en) * | 2020-06-04 | 2021-12-09 | iCoin Technology, Inc. | Multiple microprocessor architecture for cold storage |
US11386425B2 (en) | 2020-06-04 | 2022-07-12 | iCoin Technology, Inc. | Multiple microprocessor architecture for cold storage |
CN112287334A (en) * | 2020-11-06 | 2021-01-29 | 浙江中控技术股份有限公司 | User-defined library processing method, device and system |
CN112287334B (en) * | 2020-11-06 | 2024-03-08 | 浙江中控技术股份有限公司 | Custom library processing method, device and system |
CN112669021A (en) * | 2020-12-31 | 2021-04-16 | 北京握奇数据股份有限公司 | Digital currency hardware wallet based on mobile terminal |
CN112669021B (en) * | 2020-12-31 | 2024-05-24 | 北京握奇数据股份有限公司 | Digital currency hardware wallet based on mobile terminal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9135425B2 (en) | Method and system of providing authentication of user access to a computer resource on a mobile device | |
US10102510B2 (en) | Method and system of conducting a cryptocurrency payment via a mobile device using a contactless token to store and protect a user's secret key | |
US9210133B2 (en) | Method and system of providing authentication of user access to a computer resource via a mobile device using multiple separate security factors | |
US9521123B2 (en) | Method for file encryption | |
ES2218484T3 (en) | A METHOD OF PROTECTING THE INTEGRITY OF A COMPUTER PROGRAM. | |
US20160005032A1 (en) | Method and system of providing authentication of user access to a computer resource via a mobile device using multiple separate security factors | |
CN111034120B (en) | Encryption key management based on identity information | |
JP5216932B1 (en) | One-time password device, system and program | |
CN107567630B (en) | Isolation of trusted input/output devices | |
ES2332020T3 (en) | PROCEDURE AND CONTROL SYSTEM OF THE LOCK / UNLOCK OF THE NETWORK ACCESS FUNCTIONS OF A TEMRINAL WITH MULTIPLE FUNCTIONS. | |
CN101523399A (en) | Methods and systems for modifying an integrity measurement based on user athentication | |
CN101983375A (en) | Binding a cryptographic module to a platform | |
CN103080946A (en) | Method, secure device, system and computer program product for securely managing files | |
CN111971672A (en) | Provable and destructible device identity | |
KR20200041607A (en) | Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method | |
CN112257086A (en) | User privacy data protection method and electronic equipment | |
Nyman et al. | Citizen electronic identities using TPM 2.0 | |
Cooijmans et al. | Secure key storage and secure computation in Android | |
US9177123B1 (en) | Detecting illegitimate code generators | |
Vachon | The identity in everyone's pocket | |
KR101296402B1 (en) | Registration method for mobile otp device using encrypted seed | |
KR101586562B1 (en) | Hardware security module and operation method thereof | |
US8914901B2 (en) | Trusted storage and display | |
Κασαγιάννης | Security evaluation of Android Keystore | |
Altuwaijri et al. | Computer and Information Sciences |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E601 | Decision to refuse application |