KR20190111748A - 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20190111748A
KR20190111748A KR1020190017694A KR20190017694A KR20190111748A KR 20190111748 A KR20190111748 A KR 20190111748A KR 1020190017694 A KR1020190017694 A KR 1020190017694A KR 20190017694 A KR20190017694 A KR 20190017694A KR 20190111748 A KR20190111748 A KR 20190111748A
Authority
KR
South Korea
Prior art keywords
external electronic
processor
electronic device
transaction
private keys
Prior art date
Application number
KR1020190017694A
Other languages
English (en)
Inventor
공윤진
박준홍
이준행
Original Assignee
주식회사 스트리미
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 스트리미 filed Critical 주식회사 스트리미
Priority to KR1020190017694A priority Critical patent/KR20190111748A/ko
Publication of KR20190111748A publication Critical patent/KR20190111748A/ko

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/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
    • 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/3825Use of electronic signatures
    • 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/3827Use of message hashing

Abstract

블록체인 기반 암호화폐의 트랜잭션을 수행하는 전자 장치가 개시된다. 전자 장치는, 네트워크를 통해 연결되고, 복수의 개인키 및 상기 복수의 개인키에 대응하는 복수의 공개키 각각이 저장된 복수의 외부 전자 장치와 통신을 수행하는 통신 회로, 상기 복수의 외부 전자 장치에 접속하기 위한 접속 정보를 저장하는 메모리 및 상기 메모리 및 상기 통신 회로와 전기적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 접속 정보를 이용하여, 상기 복수의 외부 전자 장치에 접속하도록 상기 통신 회로를 제어하고, 상기 통신 회로를 통해 상기 복수의 외부 전자 장치로부터 상기 복수의 공개키를 수신하고, 상기 복수의 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하고, 상기 복수의 개인키 중, 상기 주소 정보를 통한 상기 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다.

Description

블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체{METHOD FOR GENERATING ADDRESS INFORMATION USED IN TRANSACTION OF CRYPTOCURRENCY BASED ON BLOCKCHAIN, ELECTRONIC APPARATUS AND COMPUTER READABLE RECORDING MEDIUM}
본 개시는 블록체인 기반 암호화폐의 트랜잭션(transaction)에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
최근, 온라인 트랜잭션 상에서 블록체인 기반의 암호화폐가 사용되고 있으며, 다양한 종류의 블록체인 가빈의 암호화폐가 사용되고 있다. 기존의 명목 화폐(fiat currency)와는 달리 중앙권한이나 은행 없는 운영을 위해, 암호화폐는 블록체인 기술을 기반으로 구현된다.
또한, 암호화폐의 트랜잭션에는 전자 서명(digital signature) 기술이 이용된다. 전자 서명 기술은 메시지를 송신한 사람을 확인하기 위한 기술로서, 암호화폐의 트랜잭션에서는 공개키 암호화 알고리즘을 이용하여 수행된다. 공개키 암호화 알고리즘에서 이용되는 공개키(public key)와 개인키(private key)는 서로 쌍으로 이루어진다. 공개키는 모든 사람에게 공개되나, 개인키는 사용자만이 알고 있는 것으로써, 암호화폐의 트랜잭션에 있어서, 개인키가 유출될 경우, 자신의 암호화폐를 이용할 수 없게 되므로, 개인키에 대한 높은 보안이 요구된다.
암호화폐의 트랜잭션에서는 전자 서명 기술을 이용하여, 암호화폐의 트랜잭션에서 이용되는 메시지를 송신한 사람을 확인함으로써, 암호화폐의 트랜잭션이 성립된다. 따라서, 메시지를 송신한 사람을 확인하는 데에 이용되는 개인키는 높은 보안 수준으로 관리될 필요가 있다. 또한, 사용자는 암호화폐의 트랜잭션을 위해 개인키를 모두 기억하거나 자신만의 방법으로 개인키를 별도로 관리해야 하여, 개인키를 관리하는 함에 있어 불편함이 존재한다.
본 개시의 다양한 실시예는 상술한 문제점 또는 다른 문제점을 해결하기 위한 방법, 블록체인 기반 암호화폐의 트랜잭션을 수행하는 전자 장치, 방법 및 컴퓨터 판독 가능한 기록 매체를 제공할 수 있다.
본 개시의 일 실시예에 따르면, 블록체인 기반 암호화폐의 트랜잭션을 수행하는 전자 장치는, 네트워크를 통해 연결되고, 복수의 개인키 및 상기 복수의 개인키에 대응하는 복수의 공개키 각각이 저장된 복수의 외부 전자 장치와 통신을 수행하는 통신 회로, 상기 복수의 외부 전자 장치에 접속하기 위한 접속 정보를 저장하는 메모리 및 상기 메모리 및 상기 통신 회로와 전기적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 접속 정보를 이용하여, 상기 복수의 외부 전자 장치에 접속하도록 상기 통신 회로를 제어하고, 상기 통신 회로를 통해 상기 복수의 외부 전자 장치로부터 상기 복수의 공개키를 수신하고, 상기 복수의 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하고, 상기 복수의 개인키 중, 상기 주소 정보를 통한 상기 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다.
일 실시예에서, 상기 개인키의 개수는 상기 수신된 복수의 공개키의 개수 이하로 설정될 수 있다.
일 실시예에서, 전자 장치는, 사용자로부터 상기 복수의 외부 전자 장치로 접속하기 위해 이용되는 인증 정보를 수신하는 입력 인터페이스를 더 포함하고, 상기 프로세서는, 상기 접속 정보 및 상기 입력 인터페이스를 통해 수신된 상기 인증 정보를 이용하여 상기 복수의 외부 전자 장치에 접속하도록 상기 통신 회로를 제어할 수 있다.
일 실시예에서, 상기 메모리는, 상기 복수의 공개키의 변조 여부를 확인하기 위한 정보를 더 저장하고, 상기 프로세서는, 상기 복수의 공개키가 수신되면, 상기 복수의 공개키의 변조 여부를 확인하기 위한 정보에 기초하여, 상기 복수의 공개키의 변조 여부를 확인하고, 상기 복수의 공개키가 변조되지 않은 것으로 확인되면, 상기 복수의 공개키를 이용하여 상기 주소 정보를 생성할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 복수의 개인키 중, 상기 설정된 개수의 복수의 개인키 각각을 이용하여 상기 전자 서명이 수행되면, 상기 제1 암호화폐의 트랜잭션을 위한 트랜잭션 메시지를 생성하도록 하는 스마트 컨트랙트(smart contract)을 생성하고, 상기 생성된 스마트 컨트랙트를 브로드캐스팅(broadcasting)하도록 상기 통신 회로를 제어할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 통신 회로를 통해 상기 복수의 외부 장치 중, 적어도 하나의 외부 전자 장치로부터, 상기 복수의 개인키 중, 상기 설정된 개수의 복수의 제1 개인키를 수신하고, 상기 제1 암호화폐의 트랜잭션을 위해 생성되는 제1 트랜잭션 메시지에 대해 상기 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행하고, 상기 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅하도록 상기 통신 회로를 제어할 수 있다.
일 실시예에서, 상기 적어도 하나의 외부 전자 장치는 사용자의 입력 또는 설정된 알고리즘에 따라 선택될 수 있다.
일 실시예에서, 상기 프로세서는, 상기 복수의 제1 개인키가 수신되면, 상기 복수의 개인키의 변조 여부를 확인하기 위한 정보에 기초하여, 상기 복수의 제1 개인키의 변조 여부를 확인하고, 상기 복수의 제1 개인키가 변조되지 않은 것으로 확인되면, 상기 제1 트랜잭션 메시지에 대해 상기 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다.
일 실시예에서, 상기 복수의 개인키는 암호화되어 상기 복수의 외부 전자 장치에 저장되고, 상기 프로세서는, 사용자로부터 입력된 인증 정보를 통해 상기 사용자가 인증되면, 상기 복수의 제1 개인키를 복호화하고, 상기 제1 트랜잭션 메시지에 대해 상기 복호화된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다.
본 개시의 일 실시예에 따르면, 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 비일시적 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 프로그램은, 프로세서에 의한 실행 시, 상기 프로세서가, 복수의 개인키 및 상기 복수의 개인키에 대응하는 복수의 공개키 각각이 저장된 복수의 외부 전자 장치에 접속하기 위한 접속 정보를 획득하는 단계, 상기 접속 정보를 이용하여, 상기 복수의 외부 전자 장치에 접속하여, 상기 복수의 외부 전자 장치로부터 상기 복수의 공개키를 수신하는 단계, 상기 복수의 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 단계 및 상기 복수의 개인키 중, 상기 주소 정보를 통한 상기 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정하는 단계를 수행하도록 하는 실행 가능한 명령을 포함할 수 있다.
일 실시예에서, 상기 실행 가능한 명령은, 상기 복수의 개인키 중, 상기 설정된 개수의 복수의 개인키 각각을 이용하여 상기 전자 서명이 수행되면, 상기 제1 암호화폐의 트랜잭션을 위한 트랜잭션 메시지를 생성하도록 하는 스마트 컨트랙트를 생성하는 단계를 더 수행하도록 할 수 있다.
일 실시예에서, 상기 실행 가능한 명령은, 상기 복수의 외부 장치 중, 적어도 하나의 외부 전자 장치로부터, 상기 복수의 개인키 중, 상기 설정된 개수의 복수의 제1 개인키를 수신하는 단계, 상기 제1 암호화폐의 트랜잭션을 위해 생성되는 제1 트랜잭션 메시지에 대해 상기 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행하는 단계 및 상기 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅하는 단계를 더 수행하도록 할 수 있다.
일 실시예에서, 상기 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 단계는, 상기 복수의 공개키가 수신되면, 상기 복수의 공개키의 변조 여부를 확인하기 위한 정보에 기초하여, 상기 복수의 공개키의 변조 여부를 확인하는 단계 및 상기 복수의 공개키가 변조되지 않은 것으로 확인되면, 상기 복수의 공개키를 이용하여 상기 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 방법은, 복수의 개인키 및 상기 복수의 개인키에 대응하는 복수의 공개키 각각이 저장된 복수의 외부 전자 장치에 접속하기 위한 접속 정보를 획득하는 단계, 상기 접속 정보를 이용하여, 상기 복수의 외부 전자 장치에 접속하여, 상기 복수의 외부 전자 장치로부터 상기 복수의 공개키를 수신하는 단계, 상기 복수의 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 단계 및 상기 복수의 개인키 중, 상기 주소 정보를 통한 상기 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 블록체인 기반 암호화폐의 트랜잭션을 수행하는 전자 장치는, 사용자로부터 입력을 수신하는 입력 인터페이스, 네트워크를 통해 연결되는 적어도 하나의 외부 전자 장치와 통신을 수행하는 통신 회로, 상기 입력 인터페이스를 통해 수신되는 입력에 따라 값을 생성하는 제1 알고리즘 및 개인키를 생성하기 위한 제2 알고리즘을 저장하는 메모리 및 상기 입력 인터페이스, 상기 통신 회로 및 상기 메모리와 전기적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 입력 인터페이스를 통해 제1 입력이 수신되면, 상기 제1 알고리즘에 상기 제1 입력을 적용하여 제1 값을 생성하고, 상기 입력 인터페이스를 통해 수신되는 제2 입력에 대응하는 제1 데이터 및 제2 데이터에 대한 전송 요청을 상기 적어도 하나의 외부 장치로 송신하도록 상기 통신 회로를 제어하고, 상기 통신 회로를 통해 상기 적어도 하나의 외부 전자 장치로부터 상기 제1 데이터 및 상기 제2 데이터를 수신하고, 상기 제2 알고리즘에, 상기 제1 데이터 및 상기 제2 데이터 중 적어도 하나와 상기 제1 값을 적용하여, 복수의 제1 개인키를 생성하고, 상기 복수의 제1 개인키에 대응하는 복수의 제1 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 복수의 제1 개인키 중, 상기 주소 정보를 통한 상기 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정하고, 상기 개인키의 개수는 상기 생성된 복수의 제1 공개키의 개수 이하로 설정될 수 있다.
일 실시예에서, 상기 프로세서는, 상기 주소 정보를 생성한 후, 상기 생성된 복수의 제1 개인키를 폐기할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 입력 인터페이스를 통해 상기 제1 입력이 재 수신되면, 상기 제1 알고리즘에 상기 제1 입력을 적용하여 상기 제1 값을 재 생성하고, 상기 입력 인터페이스를 통해 재 수신되는 제2 입력에 대응하는 제1 데이터 및 제2 데이터에 대한 전송 요청을 상기 적어도 하나의 외부 장치로 송신하도록 상기 통신 회로를 제어하고, 상기 통신 회로를 통해 상기 적어도 하나의 외부 전자 장치로부터 상기 제1 데이터 및 상기 제2 데이터를 수신하고, 상기 제2 알고리즘에 상기 제1 데이터 및 상기 제2 데이터 중 적어도 하나와 상기 제1 값을 적용하여, 상기 복수의 제1 개인키를 복원하고, 상기 제1 암호화폐의 트랜잭션을 위해 생성되는 제1 트랜잭션 메시지에 대해 상기 복원된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행하고, 상기 복원된 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅하도록 상기 통신 회로를 제어할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 제1 트랜잭션 메시지를 브로드캐스팅한 후, 상기 복원된 복수의 제1 개인키를 폐기할 수 있다.
일 실시예에서, 상기 프로세서는, 해쉬 함수를 이용하여 상기 제1 데이터 및 상기 제2 데이터 각각에 대한 제1 해쉬 값 및 제2 해쉬 값을 획득하고, 상기 제2 알고리즘에 상기 제1 해쉬 값 및 상기 제2 해쉬 값 중 적어도 하나와 상기 제1 값을 적용하여 상기 복수의 제1 개인키를 생성할 수 있다.
본 개시의 다양한 실시예에 따르면, 복수의 개인키 및 복수의 개인키에 대응하는 복수의 공개키 각각은 복수의 외부 전자 장치에 저장될 수 있다. 또한, 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하거나 암호화폐에 대한 트랜잭션 데이터의 생성 시, 복수의 외부 전자 장치 중 적어도 하나의 외부 전자 장치로부터 복수의 공개키 또는 복수의 개인키가 수신되어 이용될 수 있다. 이와 같이, 복수의 개인키가 복수의 외부 전자 장치 각각에 저장되고, 암호화폐의 필요 시에만 복수의 외부 전자 장치로부터 수신하여 이용됨으로써, 보다 높은 보안 수준으로 개인키가 관리될 수 있다. 또한, 사용자는 개인키를 모두 기억할 필요가 없으므로, 보다 편리하게 개인키가 관리될 수 있다.
도 1은 본 개시의 다양한 실시예에 따른 전자 장치의 블록도 및 외부 전자 장치를 도시한다.
도 2는 본 개시의 다양한 실시예에 따른 전자 장치에 의한 암호화폐 트랜잭션에 이용되는 주소 정보를 생성하는 방법의 흐름도이다.
도 3은 본 개시의 다양한 실시예에 따른 공개키의 변조 여부에 따른 전자 장치의 동작 방법의 흐름도이다.
도 4는 본 개시의 다양한 실시예에 따른 전자 장치에 의한 트랜잭션 메시지를 브로드캐스팅하는 방법의 흐름도이다.
도 5는 본 개시의 다양한 실시예에 따른 전자 장치에 의한 암호화폐 트랜잭션에 이용되는 주소 생성 방법의 흐름도이다.
도 6은 본 개시의 다양한 실시예에 따른 전자 장치에 의한 트랜잭션 메시지를 브로드캐스팅하는 방법의 흐름도이다.
본 개시의 실시예들은 본 개시의 기술적 사상을 설명하기 위한 목적으로 예시된 것이다. 본 개시에 따른 권리범위가 이하에 제시되는 실시예들이나 이들 실시예들에 대한 구체적 설명으로 한정되는 것은 아니다.
본 개시에 사용되는 모든 기술적 용어들 및 과학적 용어들은, 달리 정의되지 않는 한, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 의미를 갖는다. 본 개시에 사용되는 모든 용어들은 본 개시를 더욱 명확히 설명하기 위한 목적으로 선택된 것이며 본 개시에 따른 권리범위를 제한하기 위해 선택된 것이 아니다.
본 개시에서 사용되는 "포함하는", "구비하는", "갖는" 등과 같은 표현은, 해당 표현이 포함되는 어구 또는 문장에서 달리 언급되지 않는 한, 다른 실시예를 포함할 가능성을 내포하는 개방형 용어(open-ended terms)로 이해되어야 한다.
본 개시에서 기술된 단수형의 표현은 달리 언급하지 않는 한 복수형의 의미를 포함할 수 있으며, 이는 청구범위에 기재된 단수형의 표현에도 마찬가지로 적용된다.
본 개시에서 사용되는 "제1", "제2" 등의 표현들은 복수의 구성요소들을 상호 구분하기 위해 사용되며, 해당 구성요소들의 순서 또는 중요도를 한정하는 것은 아니다.
본 개시에서 사용되는 "~에 기초하여"라는 표현은, 해당 표현이 포함되는 어구 또는 문장에서 기술되는, 결정, 판단의 행위 또는 동작에 영향을 주는 하나 이상의 인자를 기술하는데 사용되며, 이 표현은 결정, 판단의 행위 또는 동작에 영향을 주는 추가적인 인자를 배제하지 않는다.
본 개시에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결될 수 있거나 접속될 수 있는 것으로, 또는 새로운 다른 구성요소를 매개로 하여 연결될 수 있거나 접속될 수 있는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 개시의 실시예들을 설명한다. 첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
도 1은 본 개시의 다양한 실시예에 따른 전자 장치의 블록도 및 외부 전자 장치를 도시한다.
본 개시의 다양한 실시예에 따르면, 전자 장치(100)는 통신 회로(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다. 또한, 전자 장치(100)는 입력 인터페이스(140)를 더 포함할 수 있다. 전자 장치(100)에 포함되는 복수의 구성 요소들은 버스(미도시)를 통해 전기적으로 연결되어, 정보, 제어 명령, 데이터 등을 송수신 할 수 있다. 예를 들어, 전자 장치(100)는 스마트 폰, 태블릿 PC, 데스크탑 PC, 웨어러블 장치 등과 같이 블록체인 기반 암호화폐의 트랜잭션을 수행하기 위해 이용 가능한 다양한 전자 장치를 포함할 수 있다. 예를 들어, 암호 화폐의 트랜잭션은 암호화폐의 소유권을 타인에게 이전하기 위한 동작 및 데이터를 블록체인에 업로드 하는 동작(예: 스마트 컨트랙트(smart contract)의 함수 호출 동작 등) 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 블록체인 기술을 이용하는 암호화폐는 암호를 사용하여 새로운 코인을 생성하거나 트랜잭션을 안전하게 진행할 수 있도록 매개하는 화폐로서, 디지털 화폐의 일종일 수 있다. 암호화폐는 실물 화폐와 달리 화폐를 발행하는 중앙 은행 없이 전 세계 인터넷 네트워크에 P2P(peer-to-peer) 방식으로 분산 저장되어 운영되며, 블록체인 기술을 통해 암호화폐가 발행되고 관리될 수 있다. 예를 들어, 암호화폐는 비트 코인, 이더리움, 스텔라 루멘, 라이트 코인 등을 포함할 수 있다. 다만, 이는 설명의 목적일 뿐, 이에 제한되는 것은 아니며, 이하에서의 암호화폐는 블록체인 기술에 기반한 다양한 종류의 암호화폐를 포함할 수 있다.
일 실시예에서, 통신 회로(110)는 복수의 외부 전자 장치(150, 151)와 통신을 수행할 수 있다. 예를 들어, 통신 회로(110)는 전자 장치(110)와 복수의 외부 전자 장치(150, 151) 사이의 통신을 설정할 수 있다. 통신 회로(110)는 무선 통신 또는 유선 통신을 통해서 네트워크와 연결되어, 복수의 외부 전자 장치(150, 151)와 통신할 수 있다. 또 다른 예로, 통신 회로(110)는 복수의 외부 전자 장치(150, 151)와 유선으로 연결되어 통신을 수행할 수 있다.
무선 통신은, 예를 들면, 셀룰러 통신(예: LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband) 등)을 포함할 수 있다. 또한, 무선 통신은, 근거리 무선 통신(예: WiFi(wireless fidelity), LiFi(light fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication) 등)을 포함할 수 있다.
일 실시예에서, 복수의 외부 전자 장치(150, 151)는 데이터를 저장 및 관리하는 외부 서버들을 포함할 수 있다. 예를 들어, 복수의 외부 전자 장치(150, 151) 각각을 관리하는 주체는 상이할 수 있다.
일 실시예에서, 개인키(private key) 및 공개키(public key)는, 암호화하는 키와 복호화하는 키가 동일하지 않도록(또는 하나의 키로 다른 키를 쉽게 유추할 수 없도록)하는 공개키 암호 알고리즘(예: RSA 알고리즘 등)에서 사용되는 키로서, 공개키는 모든 사람에게 공개되는 키이고, 개인키는 사용자만이 알고, 다른 사람에게는 공개되지 않는 키일 수 있다. 예를 들어, 공개키로 암호화한 메시지는 개인키를 통해 복호화되고, 개인키를 통해 암호화한 메시지는 공개키를 통해 복호화될 수 있다.
일 실시예에서, 복수의 외부 전자 장치(150, 151)는 복수의 개인키 및 복수의 개인키에 대응하는 복수의 공개키 각각을 저장할 수 있다. 예를 들어, 제1 외부 전자 장치(151)는 제1 개인키 및 제1 개인키에 대응하는 제1 공개키를 저장하고, 제2 외부 전자 장치(152)는 제2 개인키 및 제2 개인키에 대응하는 제2 공개키를 저장할 수 있다. 복수의 외부 전자 장치(150, 151)에 저장되는 개인키 및 공개키는 서로 상이할 수 있다. 이하에서는, 복수의 외부 전자 장치(150, 151) 각각이 하나의 개인키 및 하나의 공개키를 저장하는 것을 중심으로 설명하나, 이에 제한되는 것은 아니며, 복수의 외부 전자 장치(150, 151) 각각은 복수의 개인키 및 복수의 공개키를 저장할 수도 있다.
일 실시예에서, 프로세서(130)는 복수의 개인키 및 복수의 개인키에 대응하는 복수의 공개키 각각을 복수의 외부 전자 장치(150, 151)로 송신할 수 있다. 예를 들어, 프로세서(130)는 개인키를 공개키로 변환하도록 설정된 알고리즘을 이용하여, 복수의 개인키에 대응하는 복수의 공개키를 생성할 수 있다.
예를 들어, 프로세서(130)는 가상 화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 과정을 수행하기에 앞서, 미리 복수의 개인키 및 복수의 공개키를 복수의 외부 전자 장치(150, 151)로 송신할 수 있다. 또 다른 예로, 프로세서(130)는 가상 화폐의 트랜잭션에 이용되는 주소 정보 생성을 지시하는 입력이 수신되면, 복수의 개인키 및 복수의 공개키를 복수의 외부 전자 장치(150, 151)로 송신할 수도 있다.
또 다른 예로, 프로세서(130)는 복수의 개인키만을 복수의 외부 전자 장치(150, 151)로 송신할 수도 있다. 복수의 외부 전자 장치(150, 151)는 복수의 개인키만을 수신하는 경우, 개인키를 공개키로 변환하도록 설정된 알고리즘을 이용하여, 복수의 개인키에 대응하는 복수의 공개키를 생성하여 저장할 수 있다.
일 실시예에서, 메모리(120)는 전자 장치(100)의 적어도 하나의 다른 구성 요소에 관계된 명령 또는 데이터를 저장할 수 있다. 또한, 메모리(120)는 소프트웨어 및/또는 프로그램을 저장할 수 있다.
예를 들어, 메모리(120)는 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM 또는 SDRAM 등), 비휘발성 메모리(예: 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브 (SSD)) 중 적어도 하나를 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치(201)와 기능적으로 또는 물리적으로 연결될 수 있다.
일 실시예에서, 메모리(120)는 복수의 외부 전자 장치(150, 151)에 접속하기 위한 접속 정보를 저장할 수 있다. 예를 들어, 접속 정보는, 개인키 및 공개키를 저장하고 있는 복수의 외부 전자 장치(150, 151)에 대한 정보 및 복수의 외부 전자 장치(150, 151)의 주소 정보(IP 주소 등) 등과 같이 복수의 외부 전자 장치(150, 151)에 접속하기 위해 이용되는 정보를 포함할 수 있다.
일 실시예에서, 프로세서(130)는 운영 체제 또는 응용 프로그램을 구동하여 전자 장치(100)의 적어도 하나의 다른 구성 요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 예를 들어, 프로세서(130)는 중앙처리장치 등을 포함할 수 있고, SoC(system on chip)로 구현될 수 있다.
일 실시예에서, 입력 인터페이스(140)는 사용자로부터 수신되는 입력을 전자 장치(100)의 적어도 하나의 다른 구성 요소에 전달할 수 있다. 예를 들어, 입력 인터페이스(140)는 터치 스크린, 키패드, 마우스, 키보드 등을 포함할 수 있다.
일 실시예에서, 프로세서(130)는 메모리(120)에 저장된 접속 정보를 이용하여, 복수의 외부 전자 장치(150, 151)에 접속하도록 통신 회로(110)를 제어할 수 있다. 예를 들어, 프로세서(130)는 사용자로부터 암호화폐의 트랜잭션에 이용되는 주소 정보 생성을 지시하는 입력이 입력 인터페이스(140)를 통해 수신되면, 접속 정보를 이용하여 복수의 외부 전자 장치(150, 151)에 접속하도록 통신 회로(110)를 제어할 수 있다.
이하에서는, 설명의 편의를 위해 프로세서(130)는 접속 정보에 기초하여, 복수의 외부 전자 장치(150, 151)에 접속하도록 통신 회로(110)를 제어하는 것을 중심으로 설명하나, 이에 제한되는 것은 아니며, 복수의 외부 전자 장치(150, 151) 중 적어도 하나의 외부 전자 장치에 접속하도록 통신 회로(110)를 제어할 수도 있다.
일 실시예에서, 입력 인터페이스(140)는 사용자로부터 복수의 외부 전자 장치(150, 151)로 접속하기 위해 이용되는 인증 정보를 수신할 수 있다. 프로세서(130)는 복수의 외부 전자 장치(150, 151)에 접속하기 위하여, 전자 장치(100)의 사용자에 대한 인증 정보가 필요한 경우, 사용자에 대한 인증 정보의 입력을 요청하는 화면을 디스플레이(미도시)를 통해 표시할 수 있다.
또한, 프로세서(130)는 입력 인터페이스(140)를 통해 수신되는 인증 정보 및 메모리(120)에 저장된 접속 정보를 이용하여 복수의 외부 전자 장치(150, 151)에 접속하도록 통신 회로(110)를 제어할 수 있다. 예를 들어, 프로세서(130)는 접속 정보를 이용하여, 복수의 외부 전자 장치(150, 151)로 인증 정보를 송신하고, 복수의 외부 전자 장치(150, 151)로부터 인증 성공을 나타내는 메시지를 수신한 후, 통신 회로(110)를 통해 복수의 외부 전자 장치(150, 151)에 접속할 수 있다.
일 실시예에서, 프로세서(130)는 통신 회로(110)를 통해 접속된 복수의 외부 전자 장치(150, 151)로부터 복수의 공개키를 수신할 수 있다. 예를 들어, 프로세서(130)는 제1 외부 전자 장치(150)로부터 제1 공개키를 수신하고, 제2 외부 전자 장치(151)로부터 제2 공개키를 수신할 수 있다.
또 다른 예로, 프로세서(130)는 통신 회로(110)를 통해 복수의 외부 전자 장치(150, 151)로부터 복수의 개인키를 수신할 수도 있다. 이 경우, 프로세서(130)는 수신된 복수의 개인키를 이용하여 복수의 공개키를 생성할 수 있다. 예를 들어, 프로세서(130)는 제1 외부 전자 장치(150)로부터 제1 개인키를 수신하고, 제2 외부 전자 장치(151)로부터 제2 개인키를 수신하는 경우, 개인키를 이용하여 공개키를 생성하기 위한 알고리즘에 따라, 제1 개인키를 이용하여 제1 공개키를 생성하고, 제2 개인키를 이용하여 제2 공개키를 생성할 수 있다.
일 실시예에서, 프로세서(130)는 수신된 복수의 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 예를 들어, 프로세서(130)는 공개키를 이용하여 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 알고리즘에 따라, 수신된 복수의 공개키를 이용하여 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 제1 암호화폐는 전자 장치(100)의 사용자가 보유하고 있는 암호화폐 중 적어도 일부일 수 있다.
일 실시예에서, 프로세서(130)는 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하기 위하여, 복수의 외부 전자 장치(150, 151)로부터 수신되는 공개키 외에 적어도 하나의 제1 외부 전자 장치로부터 수신되는 공개키를 더 이용할 수 있다. 이 경우, 프로세서(130)는 생성된 주소 정보를 이용하여 트랜잭션 메시지를 생성하는 경우, 트랜잭션 메시지 및 트랜잭션 메시지에 대해 전자 서명 수행을 요청할 수 있다. 프로세서(130)가 적어도 하나의 제1 외부 전자 장치에 트랜잭션 메시지 및 트랜잭션 메시지에 대한 전자 서명을 요청하는 구체적인 방법에 대해서는 후술하도록 한다.
일 실시예에서, 메모리(120)는 복수의 외부 전자 장치(150, 151)에 저장된 복수의 개인키의 변조 여부를 확인하기 위한 정보 및 복수의 공개키의 변조 여부를 확인하기 위한 정보 중 적어도 하나를 더 저장할 수 있다. 예를 들어, 복수의 개인키의 변조 여부를 확인하기 위한 정보는 복수의 개인키의 변조 여부를 확인하기 위한 값을 포함할 수 있고, 복수의 공개키의 변조 여부를 확인하기 위한 정보는 복수의 공개키의 변조 여부를 확인하기 위한 값을 포함할 수 있다. 예를 들어, 복수의 개인키 또는 복수의 공개키의 변조 여부를 확인하기 위한 값은 전자 서명 값(예를 들어, SHA256, MD5 등)을 포함할 수 있다.
예를 들어, 프로세서(130)는 복수의 개인키 및 복수의 공개키를 복수의 외부 전자 장치(150, 151)로 송신하는 시점에서, 복수의 개인키의 변조 여부를 확인하기 위한 정보 및 복수의 공개키의 변조 여부를 확인하기 위한 정보 중 적어도 하나를 생성하여 메모리(120)에 저장할 수 있다. 또한, 복수의 외부 전자 장치(150, 151)에 의해 생성된 복수의 공개키의 변조 여부를 확인하기 위한 정보가 수신되어 메모리(120)에 저장될 수도 있다. 또한, 복수의 개인키의 변조 여부를 확인하기 위한 정보 및 복수의 공개키의 변조 여부를 확인하기 위한 정보는 전자 장치(100)와 유선 또는 무선으로 연동된 다른 전자 장치의 메모리에 저장되고, 복수의 개인키 및 복수의 공개키의 변조 여부를 확인하는 과정에서 프로세서(130)가 통신 회로(110)를 통해 수신하여 이용할 수 있다. 이 경우, 프로세서(130)는 복수의 개인키 및 복수의 공개키의 변조 여부를 확인한 후, 수신된 복수의 개인키의 변조 여부를 확인하기 위한 정보 및 복수의 공개키의 변조 여부를 확인하기 위한 정보를 폐기할 수 있다.
일 실시예에서, 프로세서(130)는 복수의 공개키가 복수의 외부 전자 장치(150, 151)로부터 수신되면, 복수의 공개키의 변조 여부를 확인하기 위한 정보에 기초하여, 수신된 복수의 공개키의 변조 여부를 확인할 수 있다. 예를 들어, 프로세서(130)는 복수의 공개키가 변조되지 않은 것으로 확인되면, 수신된 복수의 공개키를 이용하여 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 또 다른 예로, 프로세서(130)는 복수의 공개키 중 적어도 하나가 변조된 것으로 확인되면, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 없음을 나타내는 메시지를 디스플레이를 통해 표시할 수 있다.
일 실시예에서, 프로세서(130)는 복수의 외부 전자 장치(150, 151)에 저장된 복수의 개인키 중, 주소 정보를 통한 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다. 프로세서(150)는 생성된 주소 정보를 통하여 제1 암호화폐의 적어도 일부분을 트랜잭션 시 수행되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다. 예를 들어, 프로세서(130)는 개인키의 개수를 수신된 복수의 공개키의 개수 이하로 설정할 수 있다.
일 실시예에서, 프로세서(130)는 특정 조건이 만족되면 설정된 동작을 수행하도록 하는 스마트 컨트랙트(smart contract)를 생성할 수 있다. 예를 들어, 프로세서(130)는 특정 조건, 예를 들어 설정된 개수의 복수의 개인키 각각을 이용하여 전자 서명이 수행되면, 설정된 동작, 예를 들어 제1 암호화폐의 트랜잭션을 위한 트랜잭션 메시지의 생성을 수행하도록 하는 스마트 컨트랙트를 생성할 수 있다. 프로세서(130)는 복수의 외부 전자 장치(150, 151)로부터 수신하는 하나의 개인키와 복수의 공개키를 이용하여 스마트 컨트랙트를 생성할 수 있다.
예를 들어, 프로세서(130)는 전자 서명의 수행을 위해 요구되는 설정된 개수의 복수의 개인키 모두를 복수의 외부 전자 장치(150, 151)로부터 수신하는 것으로 스마트 컨트랙트를 생성할 수 있다.
또 다른 예로, 프로세서(130)는 전자 서명의 수행을 위해 요구되는 설정된 개수의 복수의 개인키 중 적어도 하나의 개인키를 통해 전자 서명이 수행되면, 적어도 하나의 제1 외부 전자 장치로 제1 암호화폐의 트랜잭션을 위한 트랜잭션 메시지에 대한 전자 서명을 요청하도록 스마트 컨트랙트를 생성할 수 있다. 적어도 하나의 제1 외부 전자 장치는 트랜잭션 메시지의 생성을 위한 전자 서명을 요청 받으면, 복수의 외부 전자 장치(150, 151)로부터 수신한 적어도 하나의 개인키를 이용하여 전자 서명을 수행함으로써, 트랜잭션 메시지를 생성할 수 있다.
일 실시예에서, 프로세서(130)는 생성된 스마트 컨트랙트를 브로드캐스팅(broadcasting)하도록 통신 회로(110)를 제어할 수 있다. 블록체인과 관련된 노드로서 동작하는 적어도 하나의 제2 외부 전자 장치는 스마트 컨트랙트를 수신하여 스마트 컨트랙트의 유효성을 검증할 수 있다. 적어도 하나의 제2 외부 전자 장치에 의해 스마트 컨트랙트의 유효성이 검증되면, 스마트 컨트랙트는 블록체인에 등록될 수 있다. 예를 들어, 적어도 하나의 제2 외부 전자 장치는 블록체인의 블록들에 대한 블록정보 또는 블록정보의 헤더정보를 저장할 수 있다. 예를 들어, 적어도 하나의 제2 외부 전자 장치는 블록체인의 모든 블록들에 대한 블록정보를 저장할 수도 있고, 모든 블록들에 대한 블록정보를 저장하지 않고, 블록정보의 헤더정보만을 저장할 수도 있다.
일 실시예에서, 프로세서(130)는 통신 회로(110)를 통해 복수의 외부 전자 장치(150, 151) 중, 적어도 하나의 제3 외부 전자 장치로부터 복수의 개인키 중, 설정된 개수의 복수의 제1 개인키를 수신할 수 있다. 예를 들어, 프로세서(130)는 복수의 외부 전자 장치(150, 151) 중 적어도 하나의 제3 외부 전자 장치로부터 설정된 개수의 복수의 제1 개인키를 수신하기 위하여, 적어도 하나의 제3 외부 전자 장치로 개인키에 대한 전송 요청을 송신할 수 있다.
예를 들어, 프로세서(130)는 입력 인터페이스(140)를 통해 수신되는 트랜잭션 메시지 생성을 지시하는 입력에 따라 개인키에 대한 전송 요청을 적어도 하나의 제3 외부 전자 장치로 송신할 수 있다. 적어도 하나의 제3 외부 전자 장치는 개인키에 대한 전송 요청에 응답하여, 저장된 개인키를 전자 장치(100)로 송신할 수 있다. 예를 들어, 적어도 하나의 제3 외부 전자 장치는 사용자의 입력에 따라 선택될 수도 있고, 설정된 알고리즘에 따라 선택될 수도 있다.
일 실시예에서, 프로세서(130)는 제1 암호화폐의 트랜잭션을 위해 생성되는 제1 트랜잭션 메시지에 대해 수신된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다. 프로세서(130)는 제1 트랜잭션 메시지를 생성한 사용자가 전자 장치(100)의 사용자임을 증명하기 위하여, 복수의 제1 개인키를 이용하여 제1 트랜잭션 메시지에 대해 전자 서명을 수행할 수 있다.
일 실시예에서, 프로세서(130)는 적어도 하나의 제3 외부 전자 장치로 제1 트랜잭션 메시지를 전송하며, 제3 외부 전자 장치에 저장된 개인키로 전자 서명을 수행해 줄 것을 요청할 수 있다. 제3 외부 전자 장치는 수신한 트랜잭션 메시지에 저장된 개인키로 전자 서명을 수행할 수 있다. 적어도 하나의 제3 외부 전자 장치는 전자 서명이 수행된 트랜잭션 메시지를 전자 장치(100)로 송신할 수도 있고, 브로드캐스팅할 수도 있다.
예를 들어, 트랜잭션 메시지에 전자 서명의 수행이 요구되는 제3 외부 전자 장치가 복수인 경우, 전자 장치(100)로부터 트랜잭션 메시지 및 트랜잭션 메시지에 대한 전자 서명을 요청 받은 복수의 제3 외부 전자 장치 중 하나의 전자 장치는 전자 서명을 수행 한 후, 다른 외부 전자 장치의 전자 서명이 추가적으로 필요한지 여부를 판단할 수 있다. 다른 외부 전자 장치의 전자 서명이 추가적으로 필요하다고 판단되면, 상기 하나의 전자 장치는 전자 서명을 수행 한 후, 전자 서명이 수행된 트랜잭션 메시지를 복수의 제1 외부 전자 장치 중 다른 외부 전자 장치로 전달할 수 있다. 상기 다른 외부 전자 장치는 복수의 외부 전자 장치(150, 151)로부터 수신한 적어도 하나의 개인키를 이용하여 전자 서명을 수행하고, 전자 서명이 추가적으로 필요하지 않다고 판단되면, 전자 서명이 수행된 트랜잭션 메시지를 전자 장치(100)로 송신하거나 브로드캐스팅할 수 있다.
일 실시예에서, 프로세서(130)는 제1 암호화폐의 트랜잭션을 위하여, 수신된 복수의 제1 개인키 각각을 이용하여, 생성된 스마트 컨트랙트를 호출하기 위한 적어도 하나의 메시지를 생성할 수 있다. 또한, 스마트 컨트랙트가 트랜잭션 메시지를 생성하기 위한 전자 서명의 수행에 요구되는 설정된 개수의 복수의 개인키 중 적어도 하나의 개인키를 통해 전자 서명이 수행되면, 적어도 하나의 제1 외부 전자 장치로 트랜잭션 메시지에 대한 전자 서명을 요청하도록 생성된 경우, 프로세서(130)는 전자 서명이 수행된 트랜잭션 메시지를 적어도 하나의 제1 외부 전자 장치로 송신하며, 트랜잭션 메시지에 대한 전자 서명을 요청할 수 있다. 적어도 하나의 제1 외부 전자 장치는, 수신된 트랜잭션 메시지에 대해 복수의 외부 전자 장치(150, 151)로부터 수신한 적어도 하나의 개인키를 이용하여 전자 서명을 수행함으로써, 전자 서명을 생성하거나 전자 서명이 수행된 트랜잭션 메시지를 생성할 수 있다. 적어도 하나의 제1 외부 전자 장치는 생성된 전자 서명 또는 전자 서명이 수행된 트랜잭션 메시지를 적어도 하나의 다른 외부 전자 장치가 수신할 수 있도록 브로드캐스팅하거나, 전자 서명을 요청한 전자 장치(100)로 송신할 수 있다.
일 실시예에서, 프로세서(130)는 적어도 하나의 제3 외부 전자 장치로부터 복수의 제1 개인키가 수신되면, 메모리(120)에 저장된 복수의 개인키의 변조 여부를 확인하기 위한 정보에 기초하여, 복수의 제1 개인키 중 적어도 하나의 제1 개인키의 변조여부를 확인할 수 있다. 예를 들어, 프로세서(130)는 복수의 제1 개인키가 변조되지 않은 것으로 확인되면, 제1 트랜잭션 메시지에 대해 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다. 또 다른 예로, 프로세서(130)는 복수의 제1 개인키 중 적어도 하나의 제1 개인키가 변조된 것으로 확인되면, 제1 트랜잭션 메시지에 대해 복수의 제1 개인키를 이용하여 전자 서명을 수행할 수 없음을 나타내는 메시지를 디스플레이를 통해 출력할 수 있다.
일 실시예에서, 복수의 개인키는 암호화되어 복수의 외부 전자 장치(150, 151)에 저장될 수 있다. 프로세서(130)는 복수의 개인키를 복수의 외부 전자 장치(150, 151)로 송신하기에 앞서, 복수의 개인키를 암호화하고, 암호화된 복수의 개인키를 복수의 외부 전자 장치(150, 151)로 송신할 수 있다. 또한, 프로세서(130)는 암호화된 복수의 개인키를 복호화하기 위한 알고리즘을 메모리(120)에 저장할 수 있다. 또한, 프로세서(130)는 암호화된 복수의 개인키를 복호화하기 위한 인증 정보를 설정하고, 설정된 인증 정보가 수신되는 경우, 암호화된 복수의 개인키를 복호화하도록 암호화된 복수의 개인키를 복호화하기 위한 알고리즘을 구성할 수 있다.
예를 들어, 프로세서(130)는 암호화된 복수의 제1 개인키가 수신되는 경우, 암호화된 복수의 제1 개인키를 복호화하기 위한 인증 정보를 요청하는 화면을 디스플레이를 통해 표시할 수 있다. 프로세서(130)는 입력 인터페이스(140)를 통해 사용자로부터 제1 인증 정보를 입력 받고, 제1 인증 정보가 설정된 인증 정보에 대응되어 사용자가 인증되면, 암호화된 복수의 제1 개인키를 복호화할 수 있다. 프로세서(130)는 제1 트랜잭션 메시지에 대해 복호화된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다.
또 다른 예로, 프로세서(130)는 제1 인증 정보가 설정된 인증 정보에 대응되지 않으면, 암호화된 복수의 제1 개인키를 복호화할 수 없음을 나타내는 메시지를 디스플레이를 통해 출력할 수 있다.
일 실시예에서, 프로세서(130)는 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅하도록 통신 회로(110)를 제어할 수 있다. 블록체인과 관련된 노드로서 동작하는 하나의 적어도 하나의 제2 외부 전자 장치는 제1 트랜잭션 메시지를 수신하고, 제1 트랜잭션 메시지는 복수의 제1 개인키에 대응하는 복수의 제1 공개키로 복호화하여 제1 트랜잭션 메시지의 유효성을 검증할 수 있다. 제1 트랜잭션 메시지의 유효성이 검증되면, 적어도 하나의 제2 외부 전자 장치는 제1 트랜잭션 메시지를 통해 확인되는 제1 암호화폐의 트랜잭션을 유효한 트랜잭션으로 판단할 수 있다. 예를 들어, 적어도 하나의 제2 외부 전자 장치는 블록체인의 블록들에 대한 블록정보 또는 블록정보의 헤더정보를 저장할 수 있다. 예를 들어, 적어도 하나의 제2 외부 전자 장치는 블록체인의 모든 블록들에 대한 블록정보를 저장할 수도 있고, 모든 블록들에 대한 블록정보를 저장하지 않고, 블록정보의 헤더정보만을 저장할 수도 있다.
일 실시예에서, 메모리(120)는 입력 인터페이스(140)를 통해 사용자로부터 수신되는 제1 입력에 따라 값을 생성하는 제1 알고리즘 및 개인키를 생성하기 위한 제2 알고리즘을 저장할 수 있다.
예를 들어, 제1 알고리즘은 사용자로부터 설정된 입력이 수신되면, 수신된 입력을 변환하여 임의의 값을 생성하도록 구성될 수 있다. 예를 들어, 제1 알고리즘은 제1 입력이 수신되면, 제1 입력을 변환하여 임의의 제1 값을 생성할 수 있다. 또한, 제1 알고리즘은, 제1 입력을 변환하여 임의의 제1 값을 생성한 후, 제1 입력이 재 수신되면, 제1 입력을 변환하여 제1 값을 재생성하도록 구성될 수 있다. 이와 같이, 제1 알고리즘은 특정 개인키를 생성하기 위해 최초로 수신되는 입력에 따라 임의의 값을 생성한 후, 동일한 입력이 재 수신되면, 최초로 수신되는 입력에 따라 생성된 값이 동일하게 재생성되도록 구성될 수 있다.
예를 들어, 제2 알고리즘은, 복수의 외부 전자 장치(160, 161)로부터 수신되는 복수의 데이터 및 제1 알고리즘을 통해 생성된 값을 이용하여 개인키를 생성하도록 구성될 수 있다. 예를 들어, 제2 알고리즘은 유니온 함수(union function), 해쉬 함수(hash function), 쉬프팅 함수(shifting function)등과 같이 미리 설정된 함수들이 임의로 조합되어 구성될 수 있다. 제2 알고리즘은 미리 구성될 수도 있고, 개인키 생성 시마다 구성될 수도 있다. 또한, 제2 알고리즘은 해쉬 함수를 통해 획득되는 복수의 데이터에 대한 해쉬 값과 제1 알고리즘을 통해 생성된 값을 이용하여 개인키를 생성하도록 구성될 수도 있다. 예를 들어, 복수의 외부 전자 장치(160, 161)는 블록체인과 관련된 노드로서 동작하는 외부 전자 장치를 포함할 수 있다. 복수의 외부 전자 장치(160, 161)는 스마트 폰, 태블릿 PC, 데스크탑 PC, 서버, 웨어러블 장치 등 다양한 전자 장치를 포함할 수 있다.
일 실시예에서, 프로세서(130)는 입력 인터페이스(140)를 통해 제1 입력이 수신되면, 제1 알고리즘에 제1 입력을 적용하여 임의의 제1 값을 생성할 수 있다. 제1 알고리즘은 제1 입력을 변환하여 임의의 제1 값을 생성할 수 있다. 예를 들어, 제1 입력은 제1 알고리즘에 최초로 입력된 입력일 수 있다.
일 실시예에서, 프로세서(130)는 입력 인터페이스(140)를 통해 수신되는 제2 입력에 대응하는 제1 데이터 및 제2 데이터에 대한 전송 요청을 복수의 외부 전자 장치(160, 161)로 송신하도록 통신 회로(110)를 제어할 수 있다. 예를 들어, 제2 입력은 전송 요청 대상이 되는 제1 데이터 및 제2 데이터를 지칭하기 위한 입력일 수 있다. 예를 들어, 제1 데이터 및 제2 데이터는 모든 사용자에게 공개된 데이터로서, 제1 데이터 및 제2 데이터를 수신하기 위한 별도의 절차가 요구되지 않을 수 있다. 예를 들어, 제1 데이터 및 제2 데이터는 블록체인 기술을 기반으로 복수의 외부 전자 장치(160, 161)에 저장된 데이터 중 일부 일 수 있다.
이하에서는, 설명의 편의를 위해 제2 입력에 따라 제1 데이터 및 제2 데이터에 대한 전송 요청을 복수의 외부 전자 장치(160, 161)로 송신하는 것을 중심으로 설명하나, 이에 제한되는 것은 아니며, 제1 데이터 및 제2 데이터에 대한 전송 요청을 복수의 외부 전자 장치(160, 161) 중 적어도 하나의 외부 전자 장치로 송신할 수도 있고, 하나의 데이터에 대한 전송 요청 또는 3 개 이상의 데이터에 대한 전송 요청을 복수의 외부 전자 장치(160, 161) 또는 복수의 외부 전자 장치(160, 161) 중 적어도 하나의 외부 전자 장치로 송신할 수도 있다.
일 실시예에서, 프로세서(130)는 통신 회로(110)를 통해 복수의 외부 전자 장치(160, 161)로부터 제1 데이터 및 제2 데이터를 수신할 수 있다. 프로세서(130)는 메모리(120)에 저장된 제2 알고리즘에 제1 데이터 및 제2 데이터 중 적어도 하나와 생성된 제1 값을 적용하여 복수의 제1 개인키를 생성할 수 있다. 예를 들어, 프로세서(130)는 제1 데이터 및 제2 데이터의 수신 순서에 따라 제1 데이터 및 제2 데이터 중 하나를 선택하고, 선택된 데이터와 제1 값을 제2 알고리즘에 적용하여 복수의 제1 개인키를 생성할 수 있다. 다만, 이는 설명의 목적일 뿐, 이에 제한되는 것은 아니며, 다양한 방식으로 제1 데이터 및 제2 데이터 중 하나를 선택 할 수 있다. 또 다른 예로, 프로세서(130)는 제1 데이터 및 제2 데이터 모두와 제1 값을 제2 알고리즘에 적용하여 복수의 제1 개인키를 생성할 수도 있다.
또 다른 예로, 프로세서(130)는 제1 데이터 및 제2 데이터가 수신되면, 해쉬 함수를 이용하여 제1 데이터 및 제2 데이터 각각에 대한 제1 해쉬 값 및 제2 해쉬 값을 획득할 수 있다. 프로세서(130)는 제2 알고리즘에 제1 해쉬 값 및 제2 해쉬 값 중 적어도 하나와 제1 값을 적용하여 복수의 제1 개인키를 생성할 수 있다.
일 실시예에서, 프로세서(130)는 개인키를 공개키로 변환하도록 설정된 알고리즘을 이용하여, 생성된 복수의 제1 개인키에 대응하는 복수의 제1 공개키를 생성할 수 있다. 또한, 프로세서(130)는 생성된 복수의 제1 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 또한, 프로세서(130)는 생성된 복수의 제1 공개키 중, 주소 정보를 통한 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다. 프로세서(150)는 생성된 주소 정보를 통하여 제1 암호화폐의 적어도 일부분을 트랜잭션 시 수행되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다. 예를 들어, 프로세서(130)는 개인키의 개수를 생성된 복수의 공개키의 개수 이하로 설정할 수 있다.
일 실시예에서, 프로세서(130)는 복수의 제1 공개키를 이용하여 주소 정보를 생성한 후, 생성된 복수의 제1 개인키를 폐기할 수 있다. 또한, 프로세서(130)는 생성된 복수의 제1 개인키를 폐기하기 전, 생성된 복수의 제1 개인키를 복수의 외부 전자 장치(150, 151)로 송신하고, 복수의 외부 전자 장치(150, 151)는 수신된 복수의 제1 개인키를 저장할 수 있다. 프로세서(130)는 생성된 복수의 제1 개인키를 암호화하지 않고 복수의 외부 전자 장치(150, 151)로 송신할 수도 있고, 생성된 복수의 제1 개인키를 암호화하여 복수의 외부 전자 장치(150, 151)로 송신할 수도 있다. 예를 들어, 프로세서(130)는 복수의 제1 개인키 자체를 암호화하여 복수의 외부 전자 장치(150, 151)로 송신할 수도 있고, 복수의 제1 개인키를 암호화된 프로토콜을 이용하여 복수의 외부 전자 장치(150, 151)로 송신할 수도 있다. 또 다른 예로, 프로세서(130)는 복수의 제1 개인키 자체를 암호화하고, 암호화된 프로토콜을 이용하여 암호화된 복수의 제1 개인키를 복수의 외부 전자 장치(150, 151)로 송신할 수도 있다.
이와 같이, 생성된 복수의 제1 개인키가 복수의 외부 전자 장치(150, 151)에 저장되는 경우, 프로세서(130)는 제1 암호화폐의 트랜잭션을 위한 트랜잭션 메시지에 전자 서명을 수행하기 위해, 복수의 제1 개인키를 복원하지 않고, 복수의 외부 전자 장치(150, 151)로부터 복수의 제1 개인키를 수신하여 이용할 수 있다.
일 실시예에서, 프로세서(130)는 생성된 복수의 제1 개인키의 폐기 후, 입력 인터페이스(140)를 통해 제1 입력이 재 수신되면, 제1 알고리즘에 제1 입력을 적용하여 제1 값을 재 생성할 수 있다. 예를 들어, 프로세서(130)는 복수의 제1 개인키의 생성에 이용된 제1 값을 생성하기 위해 제1 알고리즘에 적용한 제1 입력과 동일한 제1 입력이 재 수신되면, 제1 알고리즘에 재 수신된 제1 입력을 적용하여, 복수의 제1 개인키의 생성에 이용된 제1 값과 동일한 제1 값을 재 생성할 수 있다.
일 실시예에서, 생성된 복수의 제1 개인키의 폐기 후, 프로세서(130)는 입력 인터페이스(140)를 통해 재 수신되는 제2 입력에 따라, 제1 데이터 및 제2 데이터에 대한 전송 요청을 복수의 외부 전자 장치(160, 161)로 송신하도록 통신 회로(110)를 제어할 수 있다.
일 실시예에서, 프로세서(130)는 통신 회로(110)를 통해 복수의 외부 전자 장치(160, 161)로부터 제1 데이터 및 제2 데이터를 수신할 수 있다. 프로세서(130)는 메모리(120)에 저장된 제2 알고리즘에 제1 데이터 및 제2 데이터 중 적어도 하나와 생성된 제1 값을 적용하여 복수의 제1 개인키를 복원할 수 있다. 예를 들어, 프로세서(130)는 복수의 제1 개인키를 생성한 방식과 동일한 방식으로, 제1 데이터 및 제2 데이터 중 적어도 하나와 제1 값을 제2 알고리즘에 적용하여, 복수의 제1 개인키를 복원할 수 있다.
일 실시예에서, 프로세서(130)는 제1 암호화폐의 트랜잭션을 위해 생성되는 제1 트랜잭션 메시지에 복원된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다. 프로세서(130)는 제1 트랜잭션 메시지를 생성한 사용자가 전자 장치(100)의 사용자임을 증명하기 위하여, 복원된 복수의 제1 개인키를 이용하여 제1 트랜잭션 메시지에 대해 전자 서명을 수행할 수 있다.
일 실시예에서, 프로세서(130)는 복원된 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅하도록 통신 회로(110)를 제어할 수 있다. 블록체인과 관련된 노드로서 동작하는 적어도 하나의 제2 외부 전자 장치는 제1 트랜잭션 메시지를 수신하고, 제1 트랜잭션 메시지는 복수의 제1 개인키에 대응하는 복수의 제1 공개키로 복호화하여 제1 트랜잭션 메시지의 유효성을 검증할 수 있다. 제1 트랜잭션 메시지의 유효성이 검증되면, 적어도 하나의 제2 외부 전자 장치는 제1 트랜잭션 메시지를 통해 확인되는 제1 암호화폐의 트랜잭션을 유효한 트랜잭션으로 판단할 수 있다. 또한, 프로세서(130)는 제1 트랜잭션 메시지를 브로드캐스팅한 후, 복원된 복수의 제1 개인키를 폐기할 수 있다.
이와 같이, 프로세서(130)는 개인키가 필요할 때마다, 공개된 데이터를 이용하여 개인키를 생성하거나 복원하고, 생성되거나 복원된 개인키를 사용한 후에는 개인키를 폐기할 수 있다. 이를 통해, 개인키의 유출의 위험이 감소될 수 있으며, 사용자가 개인키를 별도로 관리하지 않으므로, 사용자에 대한 편리성이 증대될 수 있다.
위에서는, 프로세서(130)가 주소 정보를 생성하거나 트랜잭션 메시지에 전자 서명을 수행하기 위하여, 복수의 외부 전자 장치(150, 151)로부터 복수의 공개키 또는 복수의 개인키를 수신하거나, 복수의 공개키 또는 복수의 개인키를 생성하는 것을 중심으로 설명하였으나, 이에 제한되는 것은 아니다. 프로세서(130)는 주소 정보를 생성하거나 트랜잭션 메시지에 전자 서명을 수행하기 위하여 필요한 복수의 공개키 또는 복수의 개인키 중 일부는 복수의 외부 전자 장치(150, 151)로부터 수신하고, 다른 일부는 생성할 수 있다. 또한, 프로세서(130)는 주소 정보를 생성하거나 트랜잭션 메시지에 전자 서명을 수행하기 위하여 메모리(120)에 저장된 적어도 하나의 공개키 또는 적어도 하나의 개인키를 더 이용할 수도 있다.
도 2는 본 개시의 다양한 실시예에 따른 전자 장치에 의한 암호화폐 트랜잭션에 이용되는 주소 정보를 생성하는 방법의 흐름도이다.
도 2 내지 도 6에 도시된 흐름도에서 프로세스 단계들, 방법 단계들, 알고리즘들 등이 순차적인 순서로 설명되었지만, 그러한 프로세스들, 방법들 및 알고리즘들은 임의의 적합한 순서로 작동하도록 구성될 수 있다. 다시 말하면, 본 개시의 다양한 실시예들에서 설명되는 프로세스들, 방법들 및 알고리즘들의 단계들이 본 개시에서 기술된 순서로 수행될 필요는 없다. 또한, 일부 단계들이 비동시적으로 수행되는 것으로서 설명되더라도, 다른 실시예에서는 이러한 일부 단계들이 동시에 수행될 수 있다. 또한, 도면에서의 묘사에 의한 프로세스의 예시는 예시된 프로세스가 그에 대한 다른 변화들 및 수정들을 제외하는 것을 의미하지 않으며, 예시된 프로세스 또는 그의 단계들 중 임의의 것이 본 개시의 다양한 실시예들 중 하나 이상에 필수적임을 의미하지 않으며, 예시된 프로세스가 바람직하다는 것을 의미하지 않는다.
210 단계에서, 전자 장치(100)는 복수의 공개키를 수신하기 위하여, 복수의 외부 전자 장치(150, 151)에 접속할 수 있다. 예를 들어, 프로세서(130)는 사용자로부터 암호화폐의 트랜잭션에 이용되는 주소 정보 생성을 지시하는 입력이 입력 인터페이스(140)를 통해 수신되면, 메모리(120)에 저장된 접속 정보를 이용하여, 복수의 외부 전자 장치(150, 151)에 접속하도록 통신 회로(110)를 제어할 수 있다. 또한, 프로세서(130)는 복수의 외부 전자 장치(150, 151)로의 접속을 위해 사용자에 대한 인증 정보가 요구되는 경우, 인증 정보의 입력을 요청하기 위한 화면을 디스플레이를 통해 표시할 수 있다. 프로세서(130)는 입력 인터페이스(140)를 통해 수신되는 인증 정보와 메모리(120)에 저장된 접속 정보를 이용하여 복수의 외부 전자 장치(150, 151)에 접속하도록 통신 회로(110)를 제어할 수 있다.
220 단계에서, 전자 장치(100)는 복수의 외부 전자 장치(150, 151)로부터 복수의 공개키를 수신할 수 있다. 예를 들어, 프로세서(130)는 복수의 외부 전자 장치(150, 151)로 접속되면, 복수의 외부 전자 장치(150, 151) 각각에 저장된 공개키의 전송을 요청할 수 있다. 프로세서(130)는 공개키 전송 요청에 응답하여, 복수의 외부 전자 장치(150, 151) 각각이 송신하는 복수의 공개키를 통신 회로(110)를 통해 수신할 수 있다.
230 단계에서, 전자 장치(100)는 수신된 복수의 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 예를 들어, 프로세서(130)는 공개키를 이용하여 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 알고리즘에 따라, 수신된 복수의 공개키를 이용하여 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다.
240 단계에서, 전자 장치(100)는 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다. 예를 들어, 프로세서(130)는 복수의 외부 전자 장치(150, 151)에 저장된 복수의 개인키 중, 20 단계에서 생성된 주소 정보를 통한 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다. 예를 들어, 프로세서(130)는 개인키의 개수를 수신된 복수의 공개키의 개수 이하로 설정할 수 있다. 예를 들어, 프로세서(130)는 수신된 복수의 공개 키의 개수가 a개인 경우, 생성된 주소 정보를 통한 제1 암호화폐의 트랜잭션에서 이용되는 전자 서명을 위해 필요한 개인키의 개수를 a개 이하의 수인 b개로 설정할 수 있다.
도 3은 본 개시의 다양한 실시예에 따른 공개키의 변조 여부에 따른 전자 장치의 동작 방법의 흐름도이다.
310 단계에서, 전자 장치(100)는 복수의 공개키가 수신되면, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하기에 앞서, 복수의 공개키 중 적어도 하나의 공개키의 변조 여부를 확인할 수 있다. 예를 들어, 프로세서(130)는 메모리(120)에 저장된 복수의 공개키의 변조 여부를 확인하기 위한 정보에 기초하여, 수신된 복수의 공개키의 변조 여부를 확인할 수 있다. 복수의 공개키가 변조되었을 경우, 복수의 공개키에 대응하는 복수의 개인키가 변조되었을 가능성이 있으므로, 주소 정보 생성에 앞서 복수의 공개키의 변조 여부를 확인할 필요가 있다.
320 단계에서, 전자 장치(100)는 복수의 공개키가 변조되었을 경우, 수신된 복수의 공개키를 이용하여 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 없음을 나타내는 메시지를 표시할 수 있다. 예를 들어, 프로세서(130)는 복수의 공개키 중 적어도 하나가 변조된 것으로 확인되면, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 없음을 나타내는 메시지를 디스플레이를 통해 표시할 수 있다. 또한, 프로세서(130)는 복수의 공개키 중 적어도 하나가 변조된 것으로 확인되면, 복수의 외부 전자 장치(150, 151) 중 변조가 확인된 적어도 하나의 공개키가 저장된 적어도 하나의 외부 전자 장치에 대한 정보를 디스플레이를 통해 표시할 수 있다. 이를 통해, 사용자는 적어도 하나의 외부 전자 장치에 저장된 적어도 하나의 공개키를 주소 정보 생성에 이용하지 않거나, 적어도 하나의 외부 전자 장치에 새로운 개인키 및 공개키가 다시 저장되도록 할 수 있다.
330 단계에서, 전자 장치(100)는 복수의 공개키가 변조되지 않은 것으로 확인되면, 수신된 복수의 공개키를 이용하여 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 예를 들어, 프로세서(130)는 복수의 공개키가 변조되지 않은 것으로 확인되면, 공개키를 이용하여 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성하는 알고리즘에 따라, 수신된 복수의 공개키를 이용하여 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 또한, 프로세서(130)는 생성된 주소 정보를 디스플레이를 통해 표시하고, 메모리(120)에 저장할 수 있다.
도 4는 본 개시의 다양한 실시예에 따른 전자 장치에 의한 트랜잭션 메시지를 브로드캐스팅하는 방법의 흐름도이다.
410 단계에서, 전자 장치(100)는 복수의 외부 전자 장치(150, 151) 중, 적어도 하나의 제3 외부 전자 장치로부터 복수의 개인키 중, 설정된 개수의 복수의 제1 개인키를 수신할 수 있다. 예를 들어, 프로세서(130)는 복수의 외부 전자 장치(150, 151) 중 적어도 하나의 제3 외부 전자 장치로부터 설정된 개수의 복수의 제1 개인키를 수신하기 위하여, 적어도 하나의 제3 외부 전자 장치로 개인키에 대한 전송 요청을 송신할 수 있다.
예를 들어, 적어도 하나의 제3 외부 전자 장치는 사용자의 입력에 따라 복수의 외부 전자 장치(150, 151) 중에서 선택될 수 있다. 프로세서(130)는 선택된 적어도 하나의 제3 외부 전자 장치로 개인키에 대한 전송 요청을 송신할 수 있다. 또 다른 예로, 적어도 하나의 제3 외부 전자 장치는 설정된 알고리즘에 따라 복수의 외부 전자 장치(150, 151) 중에서 선택될 수도 있고, 복수의 외부 전자 장치(150, 151) 중에서 설정된 개수의 외부 전자 장치가 임의로 선택될 수도 있다.
420 단계에서, 전자 장치(100)는 제1 암호화폐의 트랜잭션을 위해 생성되는 제1 트랜잭션 메시지에 대해 수신된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다. 예를 들어, 프로세서(130)는 제1 트랜잭션 메시지를 생성한 사용자가 전자 장치(100)의 사용자임을 증명하기 위하여, 복수의 제1 개인키를 이용하여 제1 트랜잭션 메시지에 대해 전자 서명을 수행할 수 있다.
예를 들어, 프로세서(130)는 메모리(120)에 저장된 복수의 개인키의 변조 여부를 확인하기 위한 정보에 기초하여, 복수의 제1 개인키 중 적어도 하나의 제1 개인키의 변조여부를 확인할 수 있다. 프로세서(130)는 복수의 제1 개인키가 변조되지 않은 것으로 확인되면, 제1 트랜잭션 메시지에 대해 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다. 또 다른 예로, 프로세서(130)는 복수의 제1 개인키 중 적어도 하나의 제1 개인키가 변조된 것으로 확인되면, 제1 트랜잭션 메시지에 대해 복수의 제1 개인키를 이용하여 전자 서명을 수행할 수 없음을 나타내는 메시지를 디스플레이를 통해 출력할 수 있다.
430 단계에서, 전자 장치(100)는 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅할 수 있다. 예를 들어, 프로세서(130)는 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅하도록 통신 회로(110)를 제어할 수 있다.
도 5는 본 개시의 다양한 실시예에 따른 전자 장치에 의한 암호화폐 트랜잭션에 이용되는 주소 생성 방법의 흐름도이다.
510 단계에서, 전자 장치(100)는 사용자로부터 제1 입력을 수신할 수 있다. 예를 들어, 프로세서(130)는 입력 인터페이스(140)를 통해 제1 입력이 수신되면, 수신된 제1 입력이 설정된 입력에 대응되는 지를 결정할 수 있다.
520 단계에서, 전자 장치(100)는 제1 입력을 변환하여 임의의 제1 값을 생성할 수 있다. 예를 들어, 프로세서(130)는 제1 입력이 설정된 입력에 대응되면, 제1 알고리즘에 제1 입력을 적용하여 임의의 제1 값을 생성할 수 있다.
530 단계에서, 전자 장치(100)는 사용자로부터 제2 입력을 수신할 수 있다. 예를 들어, 제2 입력은 전송 요청 대상이 되는 제1 데이터 및 제2 데이터를 지칭하기 위한 입력일 수 있다. 또한, 제2 입력은 제1 데이터 및 제2 데이터를 요청할 외부 전자 장치에 대해서도 지칭할 수 있다. 프로세서(130)는 입력 인터페이스(140)를 통해 제2 입력이 수신되면, 제2 입력에 따라, 제1 데이터 및 제2 데이터를 확인할 수 있다. 또한, 프로세서(130)는 제2 입력에 따라 제1 데이터 및 제2 데이터를 요청할 제1 외부 전자 장치(501) 및 제2 외부 전자 장치(502)를 확인할 수 있다.
531 단계에서, 전자 장치(100)는 수신되는 제2 입력에 따라, 제1 데이터에 대한 전송 요청을 제1 외부 전자 장치(501)로 송신하고, 532 단계에서, 제2 데이터에 대한 전송 요청을 제2 외부 전자 장치(502)로 송신할 수 있다. 프로세서(130)는 제2 입력에 기초하여, 제1 데이터에 대한 전송 요청을 제1 외부 전자 장치(501)로 송신하고, 제2 데이터에 대한 전송 요청을 제2 외부 전자 장치(502)로 송신하도록 통신 회로(110)를 제어할 수 있다. 예를 들어, 제1 외부 전자 장치(501) 및 제2 외부 전자 장치(502)는 블록체인과 관련된 노드로서 동작하는 외부 전자 장치를 포함할 수 있다.
또한, 도시되지는 않았으나, 프로세서(130)는 제2 입력에서 지칭하고 있지 않는 적어도 하나의 데이터에 대한 전송 요청을 적어도 하나의 다른 외부 전자 장치로 송신하고, 적어도 하나의 데이터를 수신할 수 있다. 예를 들어, 프로세서(130)는 수신된 적어도 하나의 데이터는 제1 암호화폐의 트랜잭션에 이용되는 주소 정보의 생성에는 이용하지 않을 수 있다. 이를 통해, 다른 사용자가 제1 암호화폐의 트랜잭션에 이용되는 주소 정보의 생성에 어떤 데이터가 이용되는 지를 알 수 없게 하여, 다른 사용자에 의해 개인키가 생성되어 개인키가 유출되는 것을 방지할 수 있다.
540 단계에서 제1 외부 전자 장치(501)는 제1 데이터에 대한 전송 요청에 응답하여, 제1 데이터를 검색하여 전자 장치(100)로 송신할 수 있다. 또한, 541 단계에서, 제2 외부 전자 장치(502)는 제2 데이터에 대한 전송 요청에 응답하여, 제2 데이터를 검색하여 전자 장치(100)로 송신할 수 있다.
또한, 도시되지는 않았으나, 개인키 생성 방법에 대한 보안을 강화하기 위하여, 530 단계 내지 541 단계는 미리 설정된 횟수만큼 반복될 수 있다. 다시 말해서, 개인키를 생성하기 위하여 이용되는 데이터의 수가 설정에 따라 2 개 이상일 수 있다.
550 단계에서, 전자 장치(100)는 수신된 제1 데이터 및 제2 데이터 중 적어도 하나와 생성된 제1 값을 이용하여 복수의 제1 개인키를 생성할 수 있다. 예를 들어, 프로세서(130)는 메모리(120)에 저장된 제2 알고리즘에 제1 데이터 및 제2 데이터 중 적어도 하나와 생성된 제1 값을 적용하여 복수의 제1 개인키를 생성할 수 있다. 예를 들어, 프로세서(130)는 생성된 복수의 제1 개인키를 메모리(120)의 보안 영역에 저장할 수 있다. 예를 들어, 메모리(120)의 보안 영역은 권한이 부여되지 않은 전자 장치(100)의 적어도 하나의 구성 요소가 접근하지 못하도록 논리적으로 구분된 영역일 수 있다.
또한, 프로세서(130)는 복수의 제1 개인키를 생성한 후, 제1 데이터, 제2 데이터 및 제1 값을 폐기할 수 있다. 예를 들어, 프로세서(130)는 메모리(120)에 저장된 제1 데이터, 제2 데이터 및 제1 값을 삭제할 수 있다.
560 단계에서, 전자 장치(100)는 생성된 복수의 제1 개인키를 이용하여 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 예를 들어, 프로세서(130)는 개인키를 공개키로 변환하도록 설정된 알고리즘을 이용하여, 생성된 복수의 제1 개인키에 대응하는 복수의 제1 공개키를 생성할 수 있다. 또한, 프로세서(130)는 생성된 복수의 제1 공개키를 이용하여, 제1 암호화폐의 트랜잭션에 이용되는 주소 정보를 생성할 수 있다. 또한, 프로세서(130)는 생성된 주소 정보를 통하여 제1 암호화폐의 적어도 일부분을 트랜잭션 시 수행되는 전자 서명을 위해 필요한 개인키의 개수를 설정할 수 있다.
570 단계에서, 전자 장치(100)는 복수의 제1 개인키를 폐기할 수 있다. 예를 들어, 프로세서(130)는 복수의 제1 공개키를 이용하여 주소 정보를 생성한 후, 복수의 제1 개인키를 폐기할 수 있다. 예를 들어, 프로세서(130)는 메모리(120)의 보안 영역에 저장된 복수의 제1 개인키를 삭제할 수 있다. 이와 같이, 전자 장치(100)는 생성된 복수의 제1 개인키가 반복되어 사용되는 것을 방지하고, 암호화폐의 트랜잭션에서 개인키가 필요할 때마다 개인키를 복원하여 이용할 수 있다. 개인키를 복원하는 방법에 대해서는 후술하도록 한다.
도 6은 본 개시의 다양한 실시예에 따른 전자 장치에 의한 트랜잭션 메시지를 브로드캐스팅하는 방법의 흐름도이다.
610 단계에서, 전자 장치(100)는 사용자로부터 제1 입력을 수신할 수 있다. 예를 들어, 프로세서(130)는 생성된 복수의 제1 개인키를 폐기한 후, 입력 인터페이스(140)를 통해 설정된 입력에 대응하는 제1 입력을 재 수신할 수 있다.
620 단계에서, 전자 장치(100)는 제1 입력을 변환하여 제1 값을 생성할 수 있다. 예를 들어, 프로세서(130)는 제1 알고리즘에 제1 입력을 적용하여 제1 값을 재 생성할 수 있다. 예를 들어, 제1 알고리즘은, 제1 입력을 변환하여 임의의 제1 값을 생성한 후, 제1 입력이 재 수신되면, 제1 입력을 변환하여 제1 값을 생성하도록 구성될 수 있다.
630 단계에서, 전자 장치(100)는 사용자로부터 제2 입력을 수신할 수 있다. 예를 들어, 프로세서(130)는 복수의 제1 개인키를 폐기한 후 재 수신되는 제2 입력에 따라, 제1 데이터 및 제2 데이터를 확인할 수 있다. 또한, 프로세서(130)는 재 수신되는 제2 입력에 따라, 제1 데이터 및 제2 데이터를 요청할 제1 외부 전자 장치(601) 및 제2 외부 전자 장치(602)를 확인할 수 있다.
631 단계에서, 전자 장치(100)는 제2 입력에 따라, 제1 데이터에 대한 전송 요청을 제1 외부 전자 장치(601)로 송신하고, 632 단계에서, 제2 데이터에 대한 전송 요청을 제2 외부 전자 장치(602)로 송신할 수 있다. 프로세서(130)는 제2 입력에 따라 확인되는 제1 데이터에 대한 전송 요청을 제1 외부 전자 장치(601)로 송신하고, 제2 입력에 따라 확인되는 제2 데이터에 대한 전송 요청을 제2 외부 전자 장치(602)로 송신하도록 통신 회로(110)를 제어할 수 있다. 예를 들어, 제1 외부 전자 장치(601) 및 제2 외부 전자 장치(602)는 블록체인과 관련된 노드로서 동작하는 외부 전자 장치를 포함할 수 있다.
또한, 도시되지는 않았으나, 프로세서(130)는 제2 입력에서 지칭하고 있지 않는 적어도 하나의 데이터에 대한 전송 요청을 적어도 하나의 다른 외부 전자 장치로 송신하고, 적어도 하나의 데이터를 수신할 수 있다. 예를 들어, 프로세서(130)는 수신된 적어도 하나의 데이터는 제1 암호화폐의 트랜잭션에 이용되는 주소 정보의 생성에는 이용하지 않을 수 있다. 이를 통해, 다른 사용자가 제1 암호화폐의 트랜잭션에 이용되는 주소 정보의 생성에 어떤 데이터가 이용되는 지를 알 수 없게 하여, 다른 사용자에 의해 개인키가 생성되어 개인키가 유출되는 것을 방지할 수 있다.
640 단계에서 제1 외부 전자 장치(601)는 제1 데이터에 대한 전송 요청에 응답하여, 제1 데이터를 검색하여 전자 장치(100)로 송신할 수 있다. 또한, 641 단계에서, 제2 외부 전자 장치(602)는 제2 데이터에 대한 전송 요청에 응답하여, 제2 데이터를 검색하여 전자 장치(100)로 송신할 수 있다.
또한, 도시되지는 않았으나, 개인키 생성 방법에 대한 보안을 강화하기 위하여, 630 단계 내지 641 단계는 미리 설정된 횟수만큼 반복될 수 있다. 다시 말해서, 개인키를 생성하기 위하여 이용되는 데이터의 수가 설정에 따라 2 개 이상일 수 있다.
650 단계에서, 전자 장치(100)는 수신된 제1 데이터 및 제2 데이터 중 적어도 하나와 생성된 제1 값을 이용하여 복수의 제1 개인키를 복원할 수 있다. 예를 들어, 프로세서(130)는 메모리(120)에 저장된 제2 알고리즘에 제1 데이터 및 제2 데이터 중 적어도 하나와 생성된 제1 값을 적용하여 복수의 제1 개인키를 복원할 수 있다. 복원되는 복수의 제1 개인키의 개수는 제1 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 시 설정된, 제1 암호화폐의 적어도 일부분을 트랜잭션 시 수행되는 전자 서명을 위해 필요한 개인키의 개수일 수 있다.
660 단계에서, 전자 장치(100)는 제1 암호화폐의 트랜잭션을 위해 생성되는 제1 트랜잭션 메시지에 복원된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다. 예를 들어, 프로세서(130)는 사용자의 입력에 따라, 제1 암호화폐의 트랜잭션을 위해 제1 트랜잭션 메시지를 생성하고, 제1 트랜잭션 메시지에 복원된 복수의 제1 개인키 각각을 이용하여 전자 서명을 수행할 수 있다.
670 단계에서, 전자 장치(100)는 제1 트랜잭션 메시지를 브로드캐스팅할 수 있다. 예를 들어, 프로세서(130)는 복원된 복수의 제1 개인키 각각을 이용하여 전자 서명이 수행된 제1 트랜잭션 메시지를 브로드캐스팅하도록 통신 회로(110)를 제어할 수 있다.
680 단계에서, 전자 장치(100)는 복원된 복수의 제1 개인키를 폐기할 수 있다. 예를 들어, 프로세서(130)는 복수의 제1 개인키 각각을 이용하여 제1 트랜잭션 메시지에 전자 서명을 수행한 후, 복원된 복수의 제1 개인키를 폐기할 수 있다. 이와 같이, 전자 장치(100)는 생성된 복수의 제2 개인키가 반복되어 사용되는 것을 방지하고, 암호화폐의 트랜잭션에서 개인키가 필요할 때마다 개인키를 복원하여 이용할 수 있다.
상기 방법은 특정 실시예들을 통하여 설명되었지만, 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 개시가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상 일부 실시예들과 첨부된 도면에 도시된 예에 의해 본 개시의 기술적 사상이 설명되었지만, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 이해할 수 있는 본 개시의 기술적 사상 및 범위를 벗어나지 않는 범위에서 다양한 치환, 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 치환, 변형 및 변경은 첨부된 청구범위 내에 속하는 것으로 생각되어야 한다.

Claims (1)

  1. 블록체인 기반 암호화폐의 트랜잭션(transaction)을 수행하는 전자 장치.
KR1020190017694A 2019-02-15 2019-02-15 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체 KR20190111748A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190017694A KR20190111748A (ko) 2019-02-15 2019-02-15 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190017694A KR20190111748A (ko) 2019-02-15 2019-02-15 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180033148A Division KR101952329B1 (ko) 2018-03-22 2018-03-22 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체

Publications (1)

Publication Number Publication Date
KR20190111748A true KR20190111748A (ko) 2019-10-02

Family

ID=68423177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190017694A KR20190111748A (ko) 2019-02-15 2019-02-15 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR20190111748A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021071157A1 (en) * 2019-10-07 2021-04-15 Samsung Electronics Co., Ltd. Electronic device and method for managing blockchain address using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021071157A1 (en) * 2019-10-07 2021-04-15 Samsung Electronics Co., Ltd. Electronic device and method for managing blockchain address using the same
US11621855B2 (en) 2019-10-07 2023-04-04 Samsung Electronics Co., Ltd. Electronic device and method for managing blockchain address using the same

Similar Documents

Publication Publication Date Title
CN108235806B (zh) 安全访问区块链的方法、装置、系统、存储介质及电子设备
US9832016B2 (en) Methods, systems and computer program product for providing verification code recovery and remote authentication
CN110380852B (zh) 双向认证方法及通信系统
US20200162246A1 (en) Methods and Systems For Cryptographic Private Key Management For Secure Multiparty Storage And Transfer Of Information
US10271209B2 (en) Session protocol for backward security between paired devices
EP2491672B1 (en) Low-latency peer session establishment
CN111431713B (zh) 一种私钥存储方法、装置和相关设备
AU2012367314B2 (en) Secure peer discovery and authentication using a shared secret
CN111404950B (zh) 一种基于区块链网络的信息共享方法、装置和相关设备
KR101952329B1 (ko) 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체
US20160226829A1 (en) Systems and methods for secure data exchange
US11367065B1 (en) Distributed ledger system for electronic transactions
US20190044922A1 (en) Symmetric key identity systems and methods
CN113438205B (zh) 区块链数据访问控制方法、节点以及系统
CN110635901A (zh) 用于物联网设备的本地蓝牙动态认证方法和系统
JP2017112604A (ja) 対称鍵暗号化と非対称鍵二重暗号化を複合的に適用した暗/復号化速度改善方法
KR101968424B1 (ko) 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법
US10785193B2 (en) Security key hopping
CN111464295B (zh) 银行卡制卡方法及装置
CN111010283B (zh) 用于生成信息的方法和装置
CN110166460B (zh) 业务帐号的注册方法和装置、存储介质、电子装置
KR20190111748A (ko) 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체
KR20180053066A (ko) 키 확장 방식을 적용한 묵시적 인증서 발급 방법 및 시스템
CN110912685A (zh) 建立受保护通信信道
CN116455561A (zh) 用于轻量装置的嵌入式tls协议

Legal Events

Date Code Title Description
A107 Divisional application of patent