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 PDF

Info

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
Application number
KR1020180121881A
Other languages
Korean (ko)
Inventor
백상수
김태경
조소영
유민호
Original Assignee
주식회사 아이오트러스트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아이오트러스트 filed Critical 주식회사 아이오트러스트
Priority to KR1020180121881A priority Critical patent/KR20200041607A/en
Publication of KR20200041607A publication Critical patent/KR20200041607A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment 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/3674Payment 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment 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/3678Payment 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment 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

Provided are a blockchain-based cryptocurrency wallet, a blockchain transaction method and a firmware forgery prevention method. According to an embodiment of the present invention, the wallet storing cryptocurrency based on a blockchian can comprise: a software part including a wallet application having an interface and an API for communicating with a blockchain network; and a hardware part performing approval for blockchain transactions.

Description

블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법과 펌웨어 위변조 방지 방법{Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method}Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method

본 발명은 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법과 펌웨어 위변조 방지 방법에 관한 것이다. 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 cryptocurrency wallet 10 can be used only in a PC environment because it can be used through a wired connection to the host device 20. Since the PC environment is very vulnerable to malicious codes such as viruses and malware, when the cryptocurrency wallet 10 is connected through a wire, it may be infected, so a private key leak due to hacking may occur. In particular, it is possible to leak in the process of generating a private key in the initialization stage of the cryptocurrency wallet 10. Therefore, in case of being infected with malicious code, it is possible to steal cryptocurrencies and cause financial damage, so safe key management is required.

기존에 암호화폐 지갑(10)의 사용자 인증 및 블록체인 거래의 최종 승인 방식은 단순한 PIN(비밀번호) 입력을 통해 이루어지기 때문에 보안에 취약하다. PIN 기반 인증은 무작위 대입(Brute Force) 공격에 매우 취약하다. 또한, 기존 암호화폐 지갑(10)은 개인키를 암호화하지 않은 상태(raw 상태)로 저장하며, 이에 접근하는 방식은 PIN 입력에 의해 가능하기에 보안에 취약하다. Conventionally, the user authentication of the cryptocurrency wallet 10 and the final approval method of the blockchain transaction are made through simple PIN (password) input, and thus are vulnerable to security. PIN-based authentication is very vulnerable to brute force attacks. In addition, the existing cryptocurrency wallet 10 stores the private key in an unencrypted state (raw state), and the access method is vulnerable to security because it is possible by PIN input.

따라서, 강화된 개인정보보호와 개인키 관리 및 안전한 저장 방식이 필요한 실정이다. 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 cryptocurrency wallet 10 is controlled based on firmware installed in a microcontroller unit (MCU). The firmware of the MCU includes hardware-equipped peripherals (Hardware resource) and software (SW) that implements the wallet function, so when the forged custom firmware is installed, the cryptocurrency wallet 10 operates in a jailbreak state Therefore, it is possible to leak wallet data (recovery code and private key). In addition, MCUs are very vulnerable to SW-based attacks and physical attacks such as side-channel attacks, system bus probing, and memory probing. Therefore, a security method for preventing forgery and alteration of the firmware is needed.

한국공개특허 제10-2018-0107037호 (2018.10.01 공개) - 가상 화폐를 이용하는 결제 시스템Korean Patent Publication No. 10-2018-0107037 (published Oct. 1, 2018)-Payment system using virtual currency

본 발명은 호스트 기기와 물리적 연결이 필요 없이 사용할 수 있도록 블루투스(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 cryptocurrency wallet 100 according to an embodiment of the present invention includes a hardware part 110 corresponding to the HW part and a software part 120 corresponding to the SW part, and functions of the cryptocurrency wallet HW And SW.

소프트웨어부(120)는 호스트 기기에 탑재되며, 보안을 요하지 않는 일반 데이터와 태스크를 처리한다. 하드웨어부(110)에서는 개인 인증 처리, 블록체인 서명 처리, 계정(개인키) 관리 등과 같은 보안을 요하는 태스크를 처리한다. The software unit 120 is mounted on a host device and processes general data and tasks that do not require security. The hardware unit 110 processes tasks requiring security such as personal authentication processing, blockchain signature processing, and account (private key) management.

소프트웨어부(120)와 하드웨어부(110)는 각각 BLE 통신부(123, 113)를 포함하고 있어, 서로 블루투스(BLE) 통신을 통해 데이터를 동기화함으로써 향상된 안전성을 제공한다. 도 1에 도시된 것과 같은 기존 환경에서는 호스트 기기(20)와 유선으로 연결 시 호스트 기기(20)가 감염되어 있으면 유선 연결선을 통하여 하드웨어로 구성된 암호화폐 지갑(10)을 감염시킬 수 있다. 이로 인해 해킹을 통해 블록체인 거래 시 올바르지 않은 주소가 표시되거나 개인키가 유출될 위험성이 있다. The software unit 120 and the hardware unit 110 each include BLE communication units 123 and 113, thereby providing improved safety by synchronizing data with each other through Bluetooth (BLE) communication. In the existing environment as shown in FIG. 1, when the host device 20 is infected with a wired connection to the host device 20, the cryptocurrency wallet 10 composed of hardware may be infected through the wired connection line. Due to this, there is a risk that an incorrect address is displayed or a private key is leaked in a blockchain transaction through hacking.

따라서, 본 실시예에서는 블록체인 거래 시 소프트웨어부(120)는 지갑앱(121)을 포함하며, 지갑앱(121)에서는 보안을 요하지 않는 기능을 주로 처리한다. 예컨대, 지갑앱(121)이 실행되면(단계 S200), 사용자가 암호화폐 지갑의 메뉴를 탐색(Navigate)할 수 있는 직관적인 사용자 인터페이스(User Interface) 기능을 제공하고, 블록체인 거래를 실행하기 위한 특정 값(예를 들어, 상대방 주소, 금액, 수수료 등)을 입력할 수 있는 입력란을 제공한다(단계 S205). Therefore, in this embodiment, in the blockchain transaction, the software unit 120 includes the wallet app 121, and the wallet app 121 mainly processes functions that do not require security. For example, when the wallet app 121 is executed (step S200), it provides an intuitive user interface function for a user to navigate through the menu of a cryptocurrency wallet, and for executing a blockchain transaction. An input field for inputting a specific value (eg, counterpart address, amount, fee, etc.) is provided (step S205).

지갑앱(121)은 블록체인 네트워크와 통신하는 인터페이스를 가지고, 특정 블록체인 네트워크와 연결이 가능한 API를 가질 수 있다. 또한, 암호화폐 지갑의 기능을 사용할 수 있는 사용자 인터페이스(메뉴 탐색, 계정 정보 조회, 거래 정보 입력 등 보안을 요하지 않는 단순한 인터페이스)를 제공할 수 있다. The wallet app 121 has an interface that communicates with a blockchain network, and may have an API that can be connected to a specific blockchain network. In addition, it is possible to provide a user interface (a simple interface that does not require security, such as menu navigation, account information inquiry, transaction information input) that can use the functions of a cryptocurrency wallet.

이후 소프트웨어부(120)에서 생성된 블록체인 거래 데이터는 하드웨어부(110)로 전달된다(단계 S210). Thereafter, the blockchain transaction data generated by the software unit 120 is transferred to the hardware unit 110 (step S210).

하드웨어부(110)는 MCU(111), SE(112), BLE 통신부(113), 지문센서(114), 디스플레이부(116), 입력부(115)를 포함한다. The hardware unit 110 includes an MCU 111, a SE 112, a BLE communication unit 113, a fingerprint sensor 114, a display unit 116, and an input unit 115.

하드웨어부(110)는 디스플레이부(116)를 통하여 사용자가 입력한 값(예를 들어, 상대방 주소, 금액, 수수료 등)이 소프트웨어부(120)에 표시된 값과 일치하는지 확인이 가능하다(단계 S215). 또한, 확인한 블록체인 거래를 승인하기 위한 모든 절차는 SE(Secure Element)(112) 안에서 안전하게 처리된다. The hardware unit 110 can check whether a value input by the user (eg, counterpart address, amount, fee, etc.) matches the value displayed on the software unit 120 through the display unit 116 (step S215). ). In addition, all procedures for approving the verified blockchain transaction are safely processed within the secure element (SE) 112.

블록체인 거래 승인 시 사용자는 지문센서(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 fingerprint sensor 114 to perform personal authentication (step S220), and the SE 112 verifies the fingerprint information (step S225). When the fingerprint is verified, the authority to access the SE 112 is given (step S230), the private key encrypted and stored in the SE 112 is decrypted, and the blockchain transaction is signed with the decrypted private key (step S235). . The signed transaction information of the blockchain and the generated hash value are included in the data and transmitted to the software unit 120 (step S240).

소프트웨어부(120)는 전달받은 데이터를 블록체인 네트워크에 전송하여 거래를 마무리한다(단계 S245). 따라서, 블록체인 거래에 필요한 모든 주요 보안 처리를 하드웨어부(110)의 SE(112) 내에서 수행함으로써 안전성을 향상시킬 수 있다. The software unit 120 completes the transaction by transmitting the received data to the blockchain network (step S245). Therefore, it is possible to improve safety by performing all major security processing required for the blockchain transaction within the SE 112 of the hardware unit 110.

본 실시예에 따른 암호화폐 지갑(100)의 하드웨어부(110)는 소프트웨어부(120)가 설치된 호스트 기기와 분리된 환경으로, 만일 소프트웨어부(120)가 해킹되어 암호화폐 계정 정보가 위변조 되어도 하드웨어부(110)와 연결 시 하드웨어부(110)에 저장된 계정 정보는 무결성이 보장된다. 따라서, BLE 무선 연결을 통한 주기적인 동기화를 통해 올바른 정보를 소프트웨어부(120)에 전달하여 기존 계정 정보를 블록체인 네트워크를 통해 업데이트하여 올바른 정보를 표시할 수 있다. The hardware unit 110 of the cryptocurrency wallet 100 according to the present embodiment is an environment separated from the host device on which the software unit 120 is installed. If the software unit 120 is hacked and the cryptocurrency account information is forged, the hardware unit 110 is hardware. When connected to the unit 110, the account information stored in the hardware unit 110 is guaranteed integrity. Therefore, the correct information can be displayed by updating the existing account information through the blockchain network by passing the correct information to the software unit 120 through periodic synchronization through a BLE wireless connection.

또한, 블록체인 거래 시 사용되는 계정 주소는 계층적 결정(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 SE 112 of the hardware unit 110 and delivered to the software unit 120. The new address created at this time does not require security because it is public information, but the process of creating a new address requires security.

거래 시 사용되는 주소는 부모 개인키(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 SE 112, and thus cannot be exposed. The parent public key (Xpub) is public information, but is not recommended.

도 1에 도시된 것과 같은 기존 암호화폐 지갑(10)에서는 HW 부분의 MCU 칩에서 연산하여 주소를 생성한다. 하지만 SE 외부에서 주소를 생성하는 행위는 만일 암호화폐 지갑 기기가 감염된 상태라면 부모 공개키(Xpub)가 노출될 수 있다. 사용자의 부모 공개키(Xpub)가 노출될 경우 해당 계정의 모든 거래 내역 및 해당 계정의 총 보유 금액을 블록체인 네트워크를 통해 누구나 확인 가능할 뿐만 아니라 다음 블록체인 거래에 사용될 주소를 예측할 수 있게 된다. 이는 보안 이슈와 더불어 개인의 프라이버시(Privacy)를 해치게 된다. In the existing cryptocurrency wallet 10 as shown in FIG. 1, an address is generated by operating on the MCU chip of the HW part. However, the act of generating an address outside SE may expose the parent public key (Xpub) if the cryptocurrency wallet device is infected. When the user's parent public key (Xpub) is exposed, anyone can check the transaction history of the account and the total amount of the account held through the blockchain network, as well as predict the address to be used for the next blockchain transaction. This harms the privacy of the individual as well as security issues.

따라서, 본 실시예에서는 부모 공개키(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 SE 112 so that the parent public key (Xpub) is not exposed and interworked with the software unit 120 through a BLE wireless connection. To apply a new address.

도 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 hardware unit 110 of the cryptocurrency wallet 100 according to this embodiment includes a SE 112 having a firmware update function.

SE(112)는 펌웨어 검증 모듈(1121), 펌웨어 모니터(1122), 펌웨어 서버 통신 모듈(1123)을 포함한다. The SE 112 includes a firmware verification module 1121, a firmware monitor 1122, and a firmware server communication module 1123.

하드웨어부(110)의 전원이 켜질 때(단계 S300) 보안 부팅(Secure Booting) 절차를 통해 SE(112)가 먼저 활성화된다(단계 S305). 그리고 펌웨어 검증 모듈(1121)에서는 MCU(111)에 펌웨어를 로딩하기 전 펌웨어의 서명을 확인하여(단계 S310), 위변조 검증을 통해 승인된 펌웨어만 작동하도록 하여(단계 S315 내지 S325) 보안을 향상시킬 수 있다. When the power of the hardware unit 110 is turned on (step S300), the SE 112 is first activated through a secure booting procedure (step S305). And the firmware verification module 1121 checks the signature of the firmware before loading the firmware to the MCU 111 (step S310), so that only approved firmware is operated through forgery verification (steps S315 to S325) to improve security. You can.

런타임(runtime)에도 펌웨어 모니터(1122)는 주기적인 펌웨어의 위변조 여부를 모니터링하여 암호화폐 지갑 실행환경의 안전성을 보장한다. 펌웨어의 검증을 통해 변조되었다고 판단될 경우(즉 펌웨어가 승인되지 못한 경우(단계 S330)), 펌웨어 서버 통신 모듈(1123)은 펌웨어 서버(50)와 통신하여(단계 S335) 승인된 펌웨어를 강제적으로 다운로드 및 업데이트한다(단계 S340). 그리고 승인된 펌웨어만 로딩이 가능하게 하고(단계 S345 내지 S355) 승인되지 않은 펌웨어의 작동을 방지할 수 있다(단계 S360). 펌웨어가 승인되지 못한 경우 단계 S335로 되돌아가 펌웨어 서버(50)와 재통신하여 승인된 펌웨어를 재차 다운로드 및 업데이트할 수 있다. Even at run time, the firmware monitor 1122 monitors the falsification of periodic firmware to ensure the security of the cryptocurrency wallet execution environment. If it is determined that it has been tampered with through verification of the firmware (that is, if the firmware is not approved (step S330)), the firmware server communication module 1123 communicates with the firmware server 50 (step S335) to force the approved firmware. Download and update (step S340). And it is possible to load only the approved firmware (steps S345 to S355) and prevent the operation of unauthorized firmware (step S360). If the firmware is not approved, the process returns to step S335 to re-communicate with the firmware server 50 to download and update the approved firmware again.

본 실시예에 따른 암호화폐 지갑(100)의 하드웨어부(110)는 기존과 달리 호스트 기기와의 유선 연결 없이 자체적으로 초기화가 가능하여, 개인키 생성 시 해킹으로 인한 개인키 유출에 대해 향상된 안전성을 제공한다. Unlike the existing, the hardware unit 110 of the cryptocurrency wallet 100 according to the present embodiment can initialize itself without a wired connection with the host device, thereby improving the security of the private key leakage due to hacking when generating the private key. to provide.

암호화폐 지갑(100)의 초기화는 3가지 경우에 진행된다. Initialization of the cryptocurrency wallet 100 proceeds in three cases.

(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 cryptocurrency wallet 100 is initialized so that the user directly creates a wallet account (private key). If a private key is generated on the device before the hardware unit 110 (that is, the wallet device) of the newly purchased cryptocurrency wallet 100 is delivered to the user, there is a possibility that the private key is exposed. It is impossible to check if it has been exposed at. Therefore, the initialization procedure is a method to prevent the private key from being exposed in the life cycle from the time of mass production of the device to delivery to the user, and also to secure the reliability by inducing the user to directly generate the private key.

기존 암호화폐 지갑(10)은 암호화폐를 보유한 사용자가 암호화폐의 저장을 주요 목적으로 생산되었기에 PC 환경에서만 사용하도록 기능이 한정되어 있어 유선 연결이 필수적이었다. 지갑 기기 자체에서 초기화를 진행할 수 있는 디스플레이와 값을 입력할 수 있는 사용자 인터페이스(UI)가 제한적이어서 PC와 유선으로 연결하고 PC에 설치된 프로그램이 초기화 진행을 위한 사용자 인터페이스를 제공하였다. 하지만, 만일 PC가 바이러스, 멀웨어와 같은 악성코드에 감염된 경우 암호화폐 지갑(10)이 유선으로 연결되면 유선 연결을 통해 암호화폐 지갑(10)을 감염시켜 개인키 생성 시 개인키와 복구코드가 노출될 가능성이 있다. Since the existing cryptocurrency wallet 10 was produced for the main purpose of storage of cryptocurrency by users who have cryptocurrencies, the function is limited to use only in the PC environment, so wired connection was essential. The wallet device itself has a limited display and a user interface (UI) for entering values, so it is wired to a PC and a program installed on the PC provides a user interface for initialization. However, if the PC is infected with malicious codes such as viruses and malware, if the cryptocurrency wallet 10 is connected to the wire, the private key and recovery code are exposed when the private key is generated by infecting the cryptocurrency wallet 10 through a wired connection. It is possible.

따라서, 본 실시예에서는 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 display unit 116 and the input unit 115 provided by the hardware unit 110. We want to safely generate the private key and prevent the recovery code for wallet recovery from leaking to the outside.

복구코드는 사용자의 개인키를 복구할 수 있는 연상코드로서, 예를 들어 순서를 가지는 복수개(예를 들어, 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 wallet app 121 for general public data of blockchain transactions. The input data is transmitted to the hardware unit 110 through a BLE wireless connection, and a hardware unit 110 that is a hardware device that provides important processing functions (for example, blockchain signature, account management, key management, etc.) requiring security. Through, the user directly performs processing through personal authentication.

하드웨어부(110)를 통해 처리된 블록체인 데이터는 다시 BLE 무선 연결을 통해 호스트 기기의 지갑앱(121)에 전달되고, 지갑앱(121)은 네트워크를 통해 블록체인 데이터를 블록체인 네트워크에 전달하여 블록체인 거래를 완성하게 된다. 블록체인 거래에 포함된 데이터는 계정 주소(받는이, 보낸이), 금액, 수수료 등의 정보가 포함되며, 이는 공개된 정보로서 블록체인 네트워크를 통해 확인 가능하다. 다만, 블록체인 거래에 관한 데이터를 블록체인 네트워크로 전송하기 전에 사용자가 승인을 하는 절차를 진행하게 되는데, 이 과정에서 해당 블록체인 거래 정보를 사용자의 개인키로 서명함으로써 부인방지를 확보한다. 그리고 이와 함께 블록체인 거래 정보의 해쉬(HASH)값을 포함한 패키지 데이터로 블록체인 네트워크에 전송하게 된다. 블록체인 네트워크에서는 포함된 해쉬의 넌스(Nonce)값을 구하는 연산을 수행하여 해당 데이터가 변조되지 않았음을 증명한다. The blockchain data processed through the hardware unit 110 is transmitted back to the wallet app 121 of the host device through a BLE wireless connection, and the wallet app 121 delivers blockchain data to the blockchain network through the network. Blockchain transactions will be completed. The data included in the blockchain transaction includes information such as the account address (receiver, sender), amount, and fee, which is publicly available and can be checked through the blockchain network. However, before the data on the blockchain transaction is transmitted to the blockchain network, a user approval process is performed. In this process, the relevant blockchain transaction information is signed with the user's private key to secure non-repudiation. In addition, the package data including the hash value of the blockchain transaction information is transmitted to the blockchain network. Blockchain networks prove that the corresponding data has not been tampered with by performing an operation to obtain the nonce of the included hash.

본 실시예에서 소프트웨어부(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 secure SE 112 installed in the hardware unit 110. Even if the firmware is updated, the private key used for blockchain transactions is maintained. Therefore, according to the present embodiment, unlike the existing cryptocurrency wallet 10, there is no need to recover the private key, and it is possible to update the account through the delivery of the public key of the existing account through synchronization with the wallet app 121.

기존 암호화폐 지갑(10)에서는 펌웨어를 업데이트하는 경우 지갑 기기가 초기화됨으로써 지갑 기기에 저장된 모든 데이터(개인키, 계정 정보 등)가 삭제되어 사용자가 복구코드를 입력하여 복구를 진행해야 했다. 복구절차는 예를 들어 12개, 18개 또는 24개의 복구코드를 모두 올바르게 입력해야 기존에 사용하던 지갑의 개인키(Private Key)가 생성된다. In the existing cryptocurrency wallet 10, when updating the firmware, the wallet device is initialized, so all data (private key, account information, etc.) stored in the wallet device is deleted, and the user has to enter the recovery code to recover. For the recovery procedure, for example, 12, 18, or 24 recovery codes must be correctly entered to create a private key of an existing wallet.

매번 펌웨어가 업데이트될 때마다 복구코드를 입력하여 복구하는 방식은 상당히 번거롭고 시간도 오래 걸린다. It is very cumbersome and time consuming to enter the recovery code every time the firmware is updated.

본 실시예에 따른 암호화폐 지갑(100)에서는 기존 지갑과 다르게 펌웨어를 업데이트하여도 SE(112)에 저장된 데이터(예를 들어, PIN, 지문, 개인키 등)가 그대로 유지되기 때문에 복구절차를 진행할 필요가 없다. In the cryptocurrency wallet 100 according to the present embodiment, even if the firmware is updated differently from the existing wallet, the data stored in the SE 112 (eg, PIN, fingerprint, private key, etc.) is maintained, so the recovery procedure is performed. no need.

지갑앱(121)에서 사용되는 주소(공개키) 또한 SE(112)에서 모두 관리하며, 지갑앱(121)에서 사용이 필요할 때 SE(112) 내에서 생성함으로써 프라이버시를 보호하고, BLE 무선 연결을 통해 해당 데이터를 지갑앱(121)에 전달한다.The address (public key) used in the wallet app 121 is also managed by the SE 112, and when it is necessary to use the wallet app 121, it is created within the SE 112 to protect privacy and secure BLE wireless connection. The data is transmitted to the wallet app 121 through.

지갑앱(121)은 이후 블록체인 네트워크를 통해 해당 주소의 데이터를 업데이트한다. 여기서, 해당 주소는 사용자의 지갑에 존재하는 한 주소를 의미한다. 예를 들어 사용자가 블록체인 거래를 블록체인 네트워크에 전송하면 사용자가 보낸 블록체인 거래가 블록체인 네트워크에서 여러 노드에 의해 올바른 거래로 판정될 경우 해당 블록체인 거래가 블록체인 네트워크에서 공유하고 있는 블록에 추가되면서 보낸이 주소(사용자의 주소)에서 받은이의 주소에 송금된 금액이 반영된다. 따라서 사용자의 주소를 블록체인 네트워크에서 조회하여 업데이트된 데이터(거래 내역 및 금액 변경 등)를 불러와 지갑(소프트웨어부(120)의 지갑앱(121) 혹은 하드웨어부(110)의 디스플레이부(116))에 표시되게 한다. The wallet app 121 then updates the data of the corresponding address through the blockchain network. Here, the address means an address that exists in the user's wallet. For example, when a user sends a blockchain transaction to the blockchain network, if the blockchain transaction sent by the user is judged to be the correct transaction by multiple nodes in the blockchain network, the corresponding blockchain transaction is added to the block shared by the blockchain network. From the sender's address (user's address), the amount transferred is reflected in the recipient's address. Therefore, the user's address is retrieved from the blockchain network, and the updated data (such as transaction history and amount change) is called to bring the wallet (the wallet app 121 of the software unit 120 or the display unit 116 of the hardware unit 110). ).

본 실시예에 따른 암호화폐 지갑은 개인키의 외부 유출을 방지하고 안전하게 보호되게 한다. 기존 암호화폐 지갑의 경우 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 hardware unit 110 of the cryptocurrency wallet 100 is illustrated.

입력부(115)는 버튼으로 구현되어 있으며, 버튼 조작을 통해 입력 값을 변경할 수 있다. 예를 들어, (상)버튼은 입력할 값(숫자, 알파벳 등)을 상위 순서의 값으로 변경할 수 있다(예: 1-->2, a-->b). (하)버튼은 입력할 값(숫자, 알파벳 등)을 하위 순서의 값으로 변경할 수 있다(예: 1-->0, a-->z). The input unit 115 is implemented as a button, and an input value can be changed through a button operation. For example, the (Up) button can change the value to be input (numbers, alphabets, etc.) to a higher order value (e.g. 1-> 2, a-> b). The (Down) button can change the value to be input (numbers, alphabets, etc.) to a value in a lower order (eg 1-> 0, a-> z).

그리고 (상/하)버튼은 화면에 표시된 항목으로 이동할 수 있게 한다. 예컨대, (상)버튼은 위로 이동하고, (하)버튼은 아래로 이동하게 한다. 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 cryptocurrency wallet 100 according to the present embodiment.

소유하고 있는 암호화폐의 종류를 선택하면 디스플레이부(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.
제1항에 있어서,
상기 소프트웨어부와 상기 하드웨어부는 각각 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.
제1항에 있어서,
상기 하드웨어부는,
사용자의 지문을 입력받는 지문센서;
개인키 및 지문 정보를 관리하고, 블록체인 거래에 대한 서명 처리를 수행하는 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.
제3항에 있어서,
상기 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.
제4항에 있어서,
상기 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.
제3항에 있어서,
상기 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.
제6항에 있어서,
펌웨어 업데이트 시에도 상기 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.
제3항에 있어서,
상기 하드웨어부는 자체적으로 초기화가 이루어져 상기 개인키를 안전하게 생성하는 것을 특징으로 하는 블록체인 기반 암호화폐 지갑.
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.
제9항에 있어서,
상기 하드웨어부와 상기 소프트웨어부 사이의 데이터 전달은 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.
제9항에 있어서,
상기 블록체인 거래 승인 단계는,
지문센서에서 사용자의 지문을 입력받는 단계;
상기 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.
KR1020180121881A 2018-10-12 2018-10-12 Blockchain-based cryptocurrency wallet and blockchain transaction method and firmware anti-forgery method KR20200041607A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180107037A (en) 2018-09-10 2018-10-01 이장원 Transaction system using virtual currency

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180107037A (en) 2018-09-10 2018-10-01 이장원 Transaction system using virtual currency

Cited By (6)

* Cited by examiner, † Cited by third party
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