[go: up one dir, main page]

KR20240136961A - 암호 화폐 지갑의 자금 긴급 복구 트랜잭션 - Google Patents

암호 화폐 지갑의 자금 긴급 복구 트랜잭션 Download PDF

Info

Publication number
KR20240136961A
KR20240136961A KR1020247023072A KR20247023072A KR20240136961A KR 20240136961 A KR20240136961 A KR 20240136961A KR 1020247023072 A KR1020247023072 A KR 1020247023072A KR 20247023072 A KR20247023072 A KR 20247023072A KR 20240136961 A KR20240136961 A KR 20240136961A
Authority
KR
South Korea
Prior art keywords
encryption key
recovery
emergency
user
recovery information
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020247023072A
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 블록데몬 에이피에스
Publication of KR20240136961A publication Critical patent/KR20240136961A/ko
Pending legal-status Critical Current

Links

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/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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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
    • 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/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/385Payment protocols; Details thereof using an alias or single-use codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

암호 화폐 지갑의 자금 긴급 복구 트랜잭션을 수행하는 방법이 개시된다. 분산형 암호화 키가 제공되며, 암호화 키는 두 개 이상의 노드들 사이에 공유되며 각 노드는 암호화 키의 공유를 보유하고 전체 암호화 키를 보유하는 노드는 없다. 암호화 키는 암호 화폐 지갑의 자금에 대한 액세스를 제공한다. 암호화 키에 관한 복구 정보, 예를 들어 암호화 키의 공유 중 일부는 두 개 이상의 노드들과 분리된 저장소에 저장된다. 암호화 키 및/또는 지갑이 동작하지 않는 경우, 사용자는 저장소로부터 복구 정보를 검색하고, 검색된 복구 정보 중 적어도 일부를 긴급 복구 서비스에 제공한다. 긴급 복구 서비스는 사용자와 협력하여 복구 정보에 기초하여, 암호 화폐 지갑으로부터 새로운 암호 화폐 지갑으로 자금의 긴급 복구 트랜잭션을 수행한다.

Description

암호 화폐 지갑의 자금 긴급 복구 트랜잭션
본 발명은 암호 화폐 지갑(crypto currency wallet)의 자금 긴급 복구 트랜잭션(emergency recovery transaction)을 수행하는 방법에 관한 것이다. 보다 구체적으로, 본 발명에 따른 방법은 암호 화폐 지갑 및/또는 암호 화폐 지갑에 대한 액세스를 제공하는 암호화 키(cryptographic key)가 동작하지 않는 경우 암호 화폐 자금에 대한 사용자 액세스를 허용한다.
비트코인과 같은 암호 화폐는 일반적으로 하나 이상의 디지털 주소 형태로 디지털 '지갑'에 보관된다. 암호 화폐 트랜잭션을 수행할 때 블록체인(blockchain) 기술을 통해 자금이 새로운 주소로 이동된다. 트랜잭션을 수행하려면 사용자는 개인 암호화 키를 적용해야 한다.
개인 암호화 키는 개인용 컴퓨터, 태블릿, 휴대폰, 동글(dongles) 등과 같은 개인 암호화 키 소유자가 직접 제어하는 하나 이상의 디바이스에 저장될 수 있다. 또는 개인 암호화 키는 신뢰할 수 있는 키 관리 서비스를 통해 관리될 수도 있다. 이 경우, 개인 암호화 키는 신뢰할 수 있는 키 관리 서비스의 제어를 받는 하나 이상의 서버 또는 하나 이상의 노드에 저장된다. 임의의 경우에, 개인 암호키는 그 전체가 한 위치에 저장될 수도 있고, 둘 이상의 노드에 분산형(distributed) 또는 공유되는 방식으로 저장될 수도 있다.
암호 화폐 지갑 및/또는 개인 암호화 키가 동작하지 않는 경우, 암호 화폐 소유자는 더 이상 암호 화폐 지갑의 자금에 액세스할 수 없다. 암호 화폐 지갑 및/또는 개인 암호화 키는 예를 들어, 지갑 및/또는 개인 암호화 키가 도난당하거나 물리적으로 파괴되거나 손상된 경우, 디바이스(들), 서버(들), 노드(들) 등에 의해 동작하지 않게 될 수 있다.
US 2019/0007205 A1은 온라인 환경에서 개인 관리를 위한 시스템 및 방법을 개시한다. 신뢰할 수 있는 당사자가 있는 신원 프록시(identity proxy)는 소비자의 개인(private) 암호화 키의 일부를 가지고 있으므로 소비자가 보유한 개인 암호화 키가 분실되거나 파기되는 경우 소비자의 개인 암호화 키가 재생성되거나 복구될 수 있다. 분실한 지갑의 소유자는 새 지갑을 사용하여 신원이 확인된 후 신뢰할 수 있는 당사자로부터 개인 키의 공유를 검색할 수 있다. 새 지갑이 생성되면 키 복구 엔진을 사용하여 검색된 키 공유로부터 개인 키의 복구를 시작할 수 있다. 따라서 전체 키는 소비자가 보유한 디바이스에서 복구된다.
본 발명의 실시예의 목적은 안전하고 신뢰할 수 있는 방식으로 암호 화폐 지갑에서 자금을 긴급 복구할 수 있는 방법을 제공하는 것이다.
본 발명은 암호 화폐 지갑에서 자금의 긴급 복구 트랜잭션을 수행하기 위한 방법을 제공하며, 이 방법은 다음 단계를 포함한다:
- 각 노드가 암호화 키의 공유를 보유하고 전체 암호화 키를 보유하는 노드가 없는, 두 개 이상의 노드들 사이에서 공유되는 분산형 암호화 키를 제공하는 단계, 암호화 키는 암호 화폐 지갑의 자금에 대한 액세스를 제공,
- 암호화 키에 관한 복구 정보를 두 개 이상의 노드들과 분리된 저장소에 저장하는 단계,
- 암호화 키 및/또는 지갑이 동작하지 않는 경우, 사용자가 저장소로부터 복구 정보를 검색하고, 검색된 복구 정보 중 적어도 일부를 긴급 복구 서비스에 제공하는 단계, 및
- 긴급 복구 서비스와 사용자가 협력하여 복구 정보에 기초하여, 암호 화폐 지갑으로부터 새로운 암호 화폐 지갑으로 자금의 긴급 복구 트랜잭션을 수행하는 단계.
따라서, 본 발명은 암호 화폐 지갑으로부터 자금의 긴급 트랜잭션을 수행하는 방법에 관한 것이다. 본 맥락에서 '암호 화폐 지갑'이라는 용어는 하나 이상의 디지털 주소 및 연관된 개인 키를 포함하여 사용자 및 해당 사용자에게 속한 암호 화폐 자금과 연관된 시스템을 의미하는 것으로 해석되어야 한다.
본 맥락에서, '긴급 복구 트랜잭션'이라는 용어는, 정상적으로 암호 화폐 지갑에 대한 액세스를 제공하는 사용자의 지갑 및/또는 개인 암호화 키가 동작하지 않는 경우, 예를 들어 하나 이상의 새로운 디지털 주소와 같은 새로운 지갑으로 자금을 이동하기 위해, 사용자가 암호 화폐 지갑의 자금에 한 번만 액세스할 수 있도록 허용하는 트랜잭션을 의미하는 것으로 해석되어야 한다.
본 발명에 따른 방법에서, 분산형 암호화 키가 초기에 제공되고, 암호화 키는 암호 화폐 지갑의 자금에 대한 액세스를 제공하며, 즉 암호화 키는 암호 화폐 지갑과 연관되고 암호 화폐 지갑의 자금을 소유하는 사용자의 개인 키를 형성한다. 분산형 암호화 키는 두 개 이상의 노드들 사이에 공유되며 각 노드는 암호화 키의 공유를 보유하고 전체 암호화 키를 보유하는 노드는 없다. 따라서, 암호 화폐 지갑에 액세스하려면 두 개 이상의 노드들, 가능하면 모든 노드들이 보유하는 정보나 지식이 필요하며, 노드들 중 하나만 손상시켜 암호 화폐 지갑의 자금에 무단으로 액세스하는 것은 불가능하다.
따라서, 본 발명에 따른 방법을 수행할 때 적용되는 암호화 키는 둘 이상의 노드들 사이에 분산되거나 공유되는 종류이다. 이러한 암호화 키는 단일 신뢰 지점(single point of trust)이 없기 때문에, 단일 노드나 디바이스에 저장되는 암호화 키보다 더 높은 보안 수준을 제공한다.
본 맥락에서, '노드'라는 용어는 다른 노드들과 구분되는, 저장 기능을 갖춘 디지털 위치를 의미하는 것으로 해석되어야 한다. 노드들은 예를 들어 서버, 서버의 별개 부분, 휴대폰, 개인용 컴퓨터, 동글 등과 같은 다양한 디바이스 또는 이들의 임의의 조합 형태일 수 있다.
다음으로, 암호키에 관한 복구 정보는 두 개 이상의 노드들과 분리된 저장소에 저장된다. 따라서 하나 이상의 노드가 손상되거나 물리적으로 파괴되거나 손상되거나 다른 방식으로 동작하지 않는 경우에도, 암호화 키와 관련된 복구 정보를 계속 사용할 수 있다. 또한 특정 노드에 대한 액세스 권한을 얻고 해당 노드가 보유한 공유를 손상시킬 수 있는 악의적인 당사자는 대응하는 복구 정보에 액세스할 수 없으므로 복구 정보는 손상되지 않은 상태로 유지된다.
별도의 저장소는 오프라인 저장소일 수도 있고, 소위 '콜드 저장소(cold storage)'일 수도 있다. 이 경우 온라인 통신 채널, 예를 들어 인터넷을 통해 저장소, 그리고 복구 정보에 액세스할 수 없으므로 복구 정보에 대한 무단 액세스 위험이 최소화된다.
본 맥락에서 '복구 정보'라는 용어는 적어도 암호 화폐 지갑의 자금에 대한 액세스가 가능한 범위 내에서 암호화 키의 적어도 부분적 복구를 허용하는 정보를 의미하는 것으로 해석되어야 한다. 이에 대해서는 아래에서 더 자세히 설명한다. 복구 정보는 각 노드가 보유한 공유에 관한 별도의 정보를 제공할 수 있다. 대안으로, 복구 정보는 예를 들어 보안 다자간 계산(secure multiparty computation)(MPC)과 같은 다자간 암호화 프로세스를 통해 협력하여 노드들에 의해 생성되는 암호화 키의 다자간 암호화 버전의 형태일 수 있다.
암호화 키 및/또는 지갑이 동작하지 않게 되는 경우, 사용자는 저장소로부터 복구 정보를 검색하고, 검색된 복구 정보 중 적어도 일부를 긴급 복구 서비스에 제공한다.
본 맥락에서 '동작하지 않음(in-operational)'이라는 용어는 예를 들어, 암호화 키 또는 지갑이 손상되거나 오염되었기 때문이거나, 암호화 키의 공유를 보유하고 있는 하나 이상의 디바이스가 도난당했거나 분실되었기 때문에, 또는 암호화 키의 공유를 보유하고 있는 하나 이상의 노드들이 예를 들어 화재나 폭발로 인해, 물리적으로 파괴되거나 손상되었기 때문에, 암호 화폐 지갑의 자금에 더 이상 액세스할 수 없는 상황을 포괄하는 것으로 해석되어야 한다.
본 맥락에서 '긴급 복구 서비스'라는 용어는 사용자가 제공한 관련 복구 정보의 일부에 기초하여 암호화 키 또는 암호화 키의 공유와 같은 분산형 암호화 키의 표현을 적어도 부분적으로 복구할 수 있고, 사용자 및/또는 사용자와 협력하여 제공된 추가 정보를 적용할 수 있는, 서비스 제공자를 의미하는 것으로 해석되어야 한다.
이에 따라, 긴급 복구 서비스와 사용자가 협력하여 최종적으로 복구 정보에 기초하여, 암호 화폐 지갑에서 새로운 암호 화폐 지갑으로 자금의 긴급 복구 트랜잭션을 수행하게 된다.
이로써, 암호화 키 및/또는 지갑이 동작하지 않아 사용자가 액세스할 수 없게 된 암호 화폐 지갑의 자금이 새로운 암호 화폐 지갑에서 사용자가 다시 한 번 액세스할 수 있음이 보장된다. 더 나아가, 긴급 복구 트랜잭션은 저장소에서 검색되어 사용자에 의해 긴급 복구 서비스에 제공된 복구 정보에 기초하여 수행되었기 때문에, 저장소 및 이에 따른 관련 복구 정보에 대한 적절한 액세스 권한이 있는 사용자만이 긴급 복구 트랜잭션을 시작할 수 있음이 보장된다. 이를 통해 암호 화폐 지갑의 복구된 자금에 대한 무단 액세스 위험이 최소화된다.
긴급 복구 트랜잭션은 긴급 복구 서비스에 의해 단독으로 수행될 수 있으나, 사용자가 제공한 정보에 기초하여 이루어질 수 있다. 이 정보는 단순히 복구 정보일 수도 있으나, 사용자의 신원을 증명하는 정보, 암호 화폐 지갑과 관련되거나 식별되는 정보 등 추가적인 정보를 포함할 수도 있다. 대안으로, 긴급 복구 트랜잭션은 긴급 복구 서비스와 사용자 간의 상호 작용을 요구할 수 있다. 예를 들어, 사용자와 긴급 복구 서비스는 긴급 복구 트랜잭션을 수행하기 위해 보안 다자간 계산을 수행할 수 있다. 또 다른 대안으로서, 복구 정보에 기초하여 긴급 복구 서비스에 의해 생성된 출력에 기초하여 사용자에 의해 긴급 복구 트랜잭션이 수행될 수도 있다. 이러한 출력에는 예를 들어 암호화 키의 복구된 버전이 포함될 수 있다.
어떠한 경우에도, 긴급 복구 트랜잭션은 긴급 복구 서비스와 사용자가 협력하여 수행되며, 이는 긴급 복구 서비스나 사용자 모두 스스로, 즉 상대방의 참여 없이 긴급 복구 트랜잭션을 수행할 수 없다는 의미이다. 따라서 긴급 복구 서비스나 사용자 모두 단일 신뢰 지점을 구성하지 않으며 이는 시스템 및 방법의 안전성과 신뢰성을 크게 향상시킨다. 특히, 긴급 복구 트랜잭션이 진행되는 동안 긴급 복구 서비스나 사용자 모두 전체 암호키에 대한 지식을 얻지 못한다.
예를 들어, 긴급 복구 트랜잭션을 수행하기 위해 적용되는 복구 트랜잭션 프로토콜은 사용자와 긴급 복구 서비스가 함께 대화형 보안 다자간 계산(MPC) 프로토콜을 실행하는 것을 포함할 수 있다. MPC 프로토콜을 실행할 때 다음이 발생할 수 있다:
(1) 사용자는 프로토콜의 입력으로 암호화된 복구 정보를 사용하고 긴급 복구 서비스는 프로토콜의 입력으로 복호화(decryption) 키를 사용하며, 여기서 복호화 키는 암호화 키를 재생성하기 위해 복구 정보를 복호화하는 데 사용될 수 있다;
(2) MPC 프로토콜에서 복구 정보는 복호화 키를 사용하여 복호화된다;
(3) MPC 프로토콜에서 긴급 트랜잭션은 복호화/재생성된 암호화 키를 사용하여 서명(sign)되며; 그리고
(4) MPC 프로토콜의 출력은 현재 암호화 키로 서명된 긴급 트랜잭션이다.
보안 다자간 계산을 사용하여 암호화된 복구 정보를 복호화하고, 암호화 키를 획득하고, 암호화 키로 긴급 트랜잭션에 서명하면 사용자나 긴급 복구 서비스가 어느 시점에서든 복호화된 암호화 키를 학습하지 못하므로 단일 신뢰 지점이 없다. 예를 들어, 복구 작업 시 사용자나 긴급 복구 서비스 중 하나의 단일 손상만으로는 긴급 트랜잭션의 목적지를 제어하고 자금을 탈취하기에 충분하지 않다. 두 당사자 중 적어도 한 명이 정직한 상태를 유지하는 한, 보안 다자간 계산은 긴급 트랜잭션이 자금을 새로운 목적지 지갑으로 올바르게 전송하는 것을 보장한다.
긴급 복구 서비스와 사용자가 협력하여 긴급 복구 트랜잭션을 수행하는 단계는 다음과 같은 단계를 포함할 수 있다:
- 수신된 복구 정보에 기초하여, 긴급 복구 서비스가 일회성 암호화 트랜잭션 키를 생성하는 단계, 및
- 일회성 암호화 트랜잭션 키를 사용하여, 암호 화폐 지갑으로부터 새로운 암호 화폐 지갑으로 자금의 긴급 복구 트랜잭션을 수행하는 단계.
본 실시예에 따르면, 긴급 복구 서비스는 사용자를 통해 수신된 복구 정보를 적용하여 일회성 암호화 트랜잭션 키를 생성하며, 이는 적어도 새로운 암호 화폐 지갑에 대한 긴급 트랜잭션이 수행될 수 있는 범위 내에서 암호 화폐 지갑의 콘텐츠에 액세스하는 데 사용될 수 있다. 긴급 트랜잭션이 수행된 후에는, 새로운 암호 화폐 지갑과 지갑의 자금에 대한 액세스 권한을 얻는 데 사용되는 것을 포함하여, 일회성 암호화 트랜잭션 키를 더 이상 사용할 수 없다. 따라서 긴급 트랜잭션 이후 일회성 암호화 트랜잭션 키가 유출되더라도 문제가 되지 않는다.
일회성 암호화 트랜잭션 키는 예를 들어, 암호화 키의 복구된 버전일 수 있다. 이 경우 자금이 새로운 암호 화폐 지갑으로 이체된 후 새로운 분산형 암호화 키를 생성해야 한다. 새로운 암호 화폐 지갑으로 자금을 이동하려면 일반적으로 새로운 키 쌍(공개(public) 및 개인)을 생성해야 하며, 새로운 공개 키는 새로운 지갑의 주소에 링크된다.
대안으로서, 긴급 복구 서비스는 복구 정보에 기초하여 사용자가 암호화 키 또는 일회성 암호화 트랜잭션 키를 복구할 수 있는 정보를 생성할 수 있다. 이 경우, 사용자는 긴급 복구 서비스에서 제공한 정보에 기초하여, 후속적으로 긴급 트랜잭션을 수행할 수 있다. 이 실시예에 따르면 긴급 복구 서비스는 암호화 키를 보유하지 않게 된다.
또 다른 대안으로서, 긴급 복구 서비스와 사용자는 예를 들어, 보안 다자간 계산(MPC)을 사용하여 긴급 복구 트랜잭션을 수행하는데 협력할 수 있다. 이 경우 긴급 복구 서비스도, 사용자도 혼자서 긴급 트랜잭션을 수행할 수 없다. 또한, 긴급 복구 서비스나 사용자 모두 암호화 키를 보유할 수 없다.
복구 정보는 노드들이 보유한 암호화 키의 공유에 기초하여 노드들에 의해 생성된 사전 서명의 형태일 수 있다. 본 실시예에 따르면, 노드들은 암호화 키의 공유를 사용하여 사전 서명을 생성하고, 이러한 사전 서명은 내보내기되어 별도의 저장소에 저장된다. 긴급 트랜잭션이 필요한 경우 사전 서명에 기초하여 서명을 생성하고, 이 서명을 적용하여 긴급 트랜잭션을 수행한다. 디지털 서명을 계산할 때 수행되는 계산은 종종 두 단계로 나눌 수 있으며, 여기서 첫 번째 단계에서 생성된 데이터가 마지막 단계에서 필요하고, 마지막 단계에서 최종 디지털 서명이 생성된다. 본 맥락에서 '사전 서명(pre-signature)'이라는 용어는 첫 번째 단계에서 생성된 데이터를 의미하는 것으로 해석되어야 한다.
예를 들어, 암호화 키 x는 ECDSA 디지털 서명 체계에 대한 개인 서명 키일 수 있고, 사전 서명은 랜덤 넌스(random nonce) k에 대한 값(gk, k, x·k-1)일 수 있다. 이러한 사전 서명을 보유하면 최종 서명을 생성하는 데 필요한 계산량이 줄어든다. 예를 들어 노드는 x의 비밀 공유에 기초하여 보안 다자간 계산을 사용하여 사전 서명의 비밀 공유를 생성할 수 있다. 복구 정보는 사전 서명의 암호화된 공유로 구성될 수 있다.
사용자가 검색된 복구 정보 중 적어도 일부를 긴급 복구 서비스에 제공하는 단계는 긴급 복구 서비스에 대해 사용자의 신원(identity)을 증명하는 단계를 포함할 수 있다.
본 실시예에 따르면, 긴급 복구 서비스는 검색된 복구 정보를 긴급 복구 서비스에 제공한 사용자가 실제로 복구 정보 및 암호화 키의 정당한 권리를 가진 소유자임을 검증할 수 있는 경우에만 긴급 복구 트랜잭션에 참여한다. 이를 통해 복구 정보에 액세스한 악의적인 당사자가 암호 화폐 지갑의 자금에도 접근할 위험이 줄어든다.
복구 정보는 사용자의 고유 신원(unique identity)에 관한 정보를 포함할 수 있으며, 긴급 복구 서비스에 대한 사용자의 신원을 증명하는 단계는 사용자가 고유 신원에 대한 소유권을 증명하는 단계를 포함할 수 있다.
본 실시예에 따르면, 복구 정보가 생성될 때, 사용자의 고유 신원에 관한 정보가 복구 정보에 추가되거나, 복구 정보에 통합된다. 이를 통해 긴급 복구 서비스는 복구 정보를 제공하는 사용자가 제시한 고유 신원이 복구 정보의 일부를 구성하는 고유 신원과 일치하는지 여부를 쉽게 검증할 수 있다.
고유 신원은 복구 정보에 암호학적으로(cryptographically) 링크될 수 있다. 이 실시예에 따르면, 고유 신원, 예를 들어 UID(user identity string) 형식으로 복구 정보의 필수 부분을 형성한다.
예를 들어, 복구 정보는 사용자의 고유 신원을 포함하는 영지식(zero-knowledge) 증명을 포함할 수 있다. 영지식 증명은 예를 들어, 피아트-샤미르(Fiat-Shamir) 변환을 사용하여 비대화형으로 만들 수 있으며, 사용자의 고유 신원인 UID가 해시된(hashed) 챌린지에 포함될 수 있다. 이 실시예에 따르면 긴급 복구 서비스는 사용자의 신원이 노드가 영지식 증명을 생성할 때 사용했던 신원과 동일한지 검증할 수 있다. 이는 결국 사용자에게 속한 복구 데이터만을 기반으로 긴급 트랜잭션이 수행되도록 보장한다.
대안으로, 디지털 서명을 사용하여 사용자 신원을 복구 정보에 링크할 수도 있다. 예를 들어, 노드들은 엔티티에 동의하는 다자간 프로세스를 수행할 수 있다. 세 개의 노드가 있는 경우 s는 다음과 같이 정의될 수 있다:
,
여기서, c1, c2 및 c3는 각각의 세 노드로부터 발생하는 복구 정보를 나타내고, UID는 사용자의 고유 신원이며, ||는 문자열 연결(string concatenation)이다. 다음으로, 노드들은 공유 암호화 서명 키(sk)를 사용하여, 서명
Figure pct00002
= signsk(s)을 생성하기 위해 임계 서명 체계를 사용할 수 있다. s 및
Figure pct00003
는 사용자 및/또는 긴급 복구 서비스에 제공될 수 있다. 그런 다음, 긴급 복구 서비스는 임계 서명 체계 vk의 공개 검증 키를 사용하여, 서명
Figure pct00004
가 유효하고 사용자의 신원이 s에 포함된 값 UID와 일치하는지 검증할 수 있다. 이는 복구 데이터가 비밀 키 sk를 보유한 노드들에 의해 생성되었으며 복구 정보가 사용자의 것임이 긴급 복구 서비스에 입증된다.
방법은 다음 단계를 더 포함할 수 있다:
- 두 개 이상의 노드들이 암호화 키의 공유의 암호화된 버전을 서로에게 제공하는 단계, 및
- 두 개 이상의 노드들이 암호화 키의 암호화된 공유를 검증하는 단계.
그리고 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는 영지식 증명이 유효한 경우 각 노드가 암호화 키의 공유의 암호화된 버전을 저장소에 제공하는 단계를 포함할 수 있다.
이 실시예에 따르면, 노드들은 암호화 키의 각자의 공유의 암호화된 버전을 검증하는 다자간 검증 프로세스를 수행한다. 이는 예를 들어, 영지식 증명을 통해 수행될 수 있으며, 이를 통해 어떤 노드도 다른 노드가 보유한 공유의 지분(possession of the shares)에 대한 지식을 얻거나 소유하지 않고도 수행될 수 있다. 그러나 사용자는 암호화 키의 암호화된 공유가 저장소에 복구 정보로 제공되기 전에 올바르고 손상되지 않았는지 확인할 수 있다.
이 실시예의 예는 다음과 같다: 각 노드가 공개 암호화 키 ek를 보유하고 긴급 복구 서비스가 공개 키 암호화 체계에 대한 대응하는 개인 복호화 키 dk를 보유한다고 가정한다. 또한 암호화 키가 개인 ECDSA 또는 EdDSA 서명 키라고 가정한다. 그런 다음 각 노드는 ek를 사용하여 암호화 키 x의 공유 xi를 암호화하고, 해당 공유에 대한 암호화된 펠드먼(Feldman) 커밋(commitment), gxi 및 해당 약속이 암호화된 동일한 값에 대한 커밋이라는 비대화형 영지식 증명과 함께 암호화된 키의 공유를 다른 모든 노드들에 보낸다. 노드가 다른 노드로부터 커밋과 암호화를 수신하면 영지식 증명의 유효성을 검증한다. 노드가 다른 모든 노드로부터 암호화된 값과 커밋을 수신하고 모두 유효한 것으로 판명되면 노드는 자체 암호화 및 커밋을 포함하여 모든 암호화된 값과 커밋을 사용자에게 보낸다. 그런 다음, 사용자는 노드로부터 수신된 각 커밋 및 암호화를 다른 노드로부터 수신된 대응하는 커밋 및 암호화와 비교함으로써 모든 수신된 암호화 및 커밋의 유효성을 검사한다. 마지막으로, 사용자는 커밋을 암호화 키, Y = gx1 · gx2 … gxn에 대한 커밋으로 결합하며, 여기서 n은 노드 수이고 사용자는 Y가 실제로 개인 암호화 키 x에 대응하는 올바른 공개 키인지 확인한다.
이 실시예의 장점은 암호화된 공유가 노드를 떠나기 전에, 모든 영지식 증명이 노드들에 의해 생성되고 검증된다는 것이다. 사용자는 단순히 값을 비교하고 ECDSA 또는 EdDSA 타원 곡선(elliptic curve)의 일반적인 지점인 펠드먼 커밋을 곱함으로써 복구 정보를 검증할 수 있다.
대안으로서, 방법은 두 개 이상의 노드들이 암호화 키의 공유에 기초하여 다자간 암호화 프로세스를 사용하여 암호화 키의 암호화된 버전을 생성하는 단계를 더 포함할 수 있으며, 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는 암호화 키의 암호화된 버전을 저장소에 저장하는 단계를 포함할 수 있다.
이 실시예에 따르면, 저장되는 복구 정보는 개별 키 공유와 관련된 정보가 아니라 전체 암호화 키의 암호화된 버전이다. 암호화 키의 암호화된 버전은 노드에서 수행되는 보안 다자간 계산(MPC)과 같은 다자간 암호화 프로세스를 통해 생성된다.
암호화 키는 예를 들어 노드에서 사용할 수 있는 별도의 공개 키 암호화 키를 통해 암호화될 수 있다. 대응하는 복호화 키는 긴급 복구 서비스에서 사용할 수 있으므로, 암호화 키 및/또는 지갑이 동작하지 않는 경우 암호화 키의 암호화된 버전을 복호화할 수 있는 긴급 복구 서비스가 가능해지며, 이에 따라 암호 화폐 지갑에서 자금의 긴급 복구 트랜잭션이 필요하다. 이로 인해 긴급 복구 서비스에 암호화 키가 노출될 수 있다. 그러나 해당 트랜잭션은 긴급 트랜잭션이고, 새로운 암호 화폐 지갑에 대해 새로운 암호화 키가 생성될 수 있으므로 이는 허용 가능한 것으로 간주될 수 있다.
암호화 키의 암호화된 버전은 영지식 증명을 포함할 수 있으며, 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는 암호화 키의 암호화된 버전을 저장하는 단계 이전에 영지식 증명을 검증하는 단계를 포함할 수 있다.
이 실시예에 따르면, 암호화 키의 암호화된 버전과 그에 따라 저장되는 복구 정보가 저장되기 전에 정확하고 손상되지 않는 것이 보장된다. 이에 따라 긴급 트랜잭션이 필요한 경우 실제로 저장된 복구 정보에 기초하여 긴급 트랜잭션을 수행하는 것이 가능하다는 것이 보장된다. 영지식 증명을 통해 검증을 진행하므로, 암호화 키나 암호화 키의 개별 공유에 관한 정보가 유출되는 것을 방지한다.
예를 들어, 암호화 키의 암호화된 버전이 올바르게 생성되지 않은 경우, 예를 들어, 암호화된 버전을 생성할 때 악의적인 활동이 있었던 경우, 분실된 지갑의 소유자는 원래 암호화 키를 복구하지 못할 수도 있다(예: 암호화된 부분의 일부 또는 전부가 암호화 전에 손상되었기 때문). 이와 반대로, 본 발명의 일부 실시예에서는, 지갑 사용자는 (또는 다른 누구라도) 언제든지 암호화 키의 암호화된 버전이 올바른지 검증할 수 있으므로 나중에 암호화 키를 실제로 복구할 수 있다. 따라서 암호화 영지식 기술을 사용하면 암호화된 부분을 복호화할 수 없는 당사자도 포함하여 누구라도 이 검증을 수행할 수 있다.
이 방법은 마스터 체인 코드(master chain code)를 제공하고, 두 개 이상의 노드들에 마스터 체인 코드를 저장하는 단계를 더 포함할 수 있으며, 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는 복구 정보의 일부로서 마스터 체인 코드의 암호화된 버전을 저장하는 단계를 포함할 수 있다.
예를 들어, BIP-32와 같은 일부 암호 화폐 표준에서, 암호화 마스터 키뿐만 아니라 마스터 체인 코드는 마스터 시드에서 도출될 수 있으며, 암호화 마스터 키와 마스터 체인 코드를 조합하여 암호 화폐의 트랜잭션에 사용될 후속 암호화 키를 도출하는 데 사용할 수 있다. 이 경우, 암호화 마스터 키뿐만 아니라 마스터 체인 코드와 관련된 복구 정보를 저장하는 것과 관련이 있을 수 있다. 이를 통해 암호 화폐 트랜잭션 키 생성에 필요한 정보를 복원하고, 이에 따라 암호 화폐 지갑 자금의 긴급 트랜잭션을 수행할 수 있게 된다.
각 노드는 전체 마스터 체인 코드를 보유할 수 있다. 대안으로, 마스터 체인 코드는 노드들 간에 분산될 수 있으며, 예를 들어 공유 암호화 키와 유사하게, 노드들 사이에 공유되는 비밀일 수 있다.
전술한 바와 같이, 분산형 암호화 키와 마스터 체인 코드는 공통 마스터 시드로부터 도출될 수 있으며, 복구 정보를 저장하는 단계는 공통 마스터 시드의 암호화된 버전을 저장하는 단계를 포함할 수 있다. 본 실시예에 따르면, 마스터 체인 코드뿐만 아니라 마스터 암호화 키도 복구 정보로부터 도출될 수 있다.
본 방법은 암호화 키와 마스터 체인 코드 사이의 대응성을 검증함으로써 검색된 복구 정보를 사용자가 검증하는 단계를 더 포함할 수 있다.
본 실시예에 따르면, 사용자는 긴급 복구 서비스에 제공되기 전에 저장소에서 검색된 복구 정보가 실제로 정확하고 손상되지 않았는지 검증한다. 검증은 예를 들어 영지식 증명을 통해 수행될 수 있다.
예를 들어, 복구 정보가 마스터 체인 코드뿐만 아니라 암호화 키에 관한 정보로 구성되어 있는 경우, 영지식 증명은 암호화 키와 마스터 체인 코드를 사용한 키 도출(key derivation)이 사용자에 의해 제공된 두 개의 공개 키에 대응하는지 검증할 수 있다. 대안적으로 또는 추가적으로, 영지식 증명은 공통 마스터 시드에 올바른 키 도출을 적용하는 것이 사용자에 의해 제공된 공개 키에 대응하는 암호화 키를 생성하는지 검증할 수 있다.
이제 본 발명은 첨부된 도면을 참조하여 더욱 상세하게 설명될 것이다.
도 1은 본 발명의 실시예에 따른 방법을 도시하는 도면이다.
도 2는 본 발명의 실시예에 따른 방법을 수행하는 과정의 일부로서 복구 정보를 저장하는 시스템을 도시하는 블록도이다.
도 3은 본 발명의 실시예에 따른 방법을 수행하는 과정의 일부로서 복구 정보에 기초하여 긴급 복구 트랜잭션을 수행하는 시스템을 도시하는 블록도이다.
도 4는 본 발명의 실시예에 따른 방법을 수행하는 과정의 일부로서 복구 정보를 저장하는 것을 도시한다.
도 5는 본 발명의 실시예에 따른 방법에 따른 긴급 복구 트랜잭션을 도시한다.
도 6은 본 발명의 대안적인 실시예에 따른 방법을 수행하는 것의 일부로서 복구 정보를 저장하는 것을 도시한다.
도 7은 본 발명의 대안적인 실시예에 따른 방법에 따른 긴급 복구 트랜잭션을 도시한다.
도 8은 본 발명의 실시예에 따른 보안 다자간 계산(MPC)을 사용한 복구 데이터 생성을 도시한다.
도 1은 본 발명의 실시예에 따른 방법을 도시하는 도면이다. 암호 화폐 지갑의 자금에 대한 액세스를 제공하는 분산형 암호화 키는 다수의 노드들 사이에서 공유된다. 따라서, 노드들(1) 각각은 암호화 키의 일부를 보유하지만, 노드들(1) 중 어느 것도 전체 암호화 키를 소유하거나 알고 있지 않다. 도 1에는 2개의 노드(1)가 도시되어 있지만, 3개 이상의 노드(1)를 적용하는 것도 본 발명의 범위 내에 있다는 점에 유의해야 한다.
사용자 에이전트(2)는 노드들(1)에게 암호화 키의 공유에 관한 복구 정보 D를 요청하고, 노드들(1)은 프로토콜(3)을 적용하여 요청된 복구 정보 D를 사용자 에이전트(2)에게 제공한다. 프로토콜은 대화형일 수 있으며 노드들(1)과 사용자 에이전트(2) 사이에 여러 차례의 통신이 필요할 수 있다. 복구 정보 D는 노드들(1)이 보유한 각 공유에 관한 정보의 형태일 수 있고, 또는 다자간 생성 비밀(multiparty generated secret) 또는 분산형 암호화 키(distributed cryptographic key)의 암호화 버전 형태일 수 있다.
사용자 에이전트(2)는 복구 정보 D가 노드들(1)과 별도의 저장소(4)에 저장되도록 보장한다. 저장소(4)는 예를 들어 콜드 저장소(cold storage), 즉 인터넷과 같은 통신 네트워크를 통해 액세스할 수 없는 저장소일 수 있다. 이 경우, 사용자 에이전트(2)는 복구 정보를 저장소(4)에 물리적으로 USB 스틱과 같은 오프라인 저장 매체에 담아 운반할 수 있다.
암호화 키 및/또는 지갑이 동작하지 않게 되는 경우, 사용자 에이전트(2)는 저장소(4)에서 복구 정보 D를 검색하고 복구 트랜잭션 프로토콜(5)을 적용하는 것을 포함하여 긴급 복구 절차를 개시한다. 여기에는 복구 정보의 버전(version) D'를 트랜잭션 프로토콜(5)에 제공하는 것이 포함된다. 트랜잭션 프로토콜(5)에 제공되는 복구 정보의 버전 D'는 단순히 저장소(4)에 저장된 복구 정보 D, 즉, D = D'일 수 있다. 대안적으로, 이는 저장된 복구 정보 D의 수정된 버전, 예를 들어 암호화된 버전, 사용자 에이전트(2)가 제공한 추가 정보를 포함하는 버전, 또는 복구 정보 D의 일부만 포함하는 버전일 수 있다.
긴급 복구 절차는 복구 정보 D'를 긴급 복구 서비스(6)에 제공하는 것을 포함한다. 그런 다음, 사용자 에이전트(2)와 긴급 복구 서비스(6)는 복구 트랜잭션 프로토콜(5)을 통해 암호 화폐 지갑에서 새로운 암호 화폐 지갑(7)으로 자금의 긴급 트랜잭션을 수행하고 해당 트랜잭션을 블록체인 네트워크(8)에 포스팅하는 데 협력한다.
긴급 트랜잭션은 여러 가지 방법으로 이루어질 수 있다. 예를 들어, 긴급 복구 서비스(6) 또는 사용자 에이전트(2)는 복구 트랜잭션 프로토콜(5)의 출력으로서 서명된(signed) 복구 트랜잭션을 수신할 수 있으며, 긴급 복구 서비스(6) 또는 사용자 에이전트(2)는 이후에 이를 블록체인 네트워크(8)에 포스팅한다. 포스팅은 긴급 복구 서비스(6)나 자체적으로 블록체인 노드를 실행하는 사용자 에이전트(2) 또는 트랜잭션이 전달되는 제3자를 통해 발생할 수 있다. 대안으로, 복구 트랜잭션 프로토콜(5)은 사용자 에이전트(2)와 긴급 복구 서비스(6)가 각각 복구된 트랜잭션의 암호화된 또는 비밀 공유 버전만을 보유하게 할 수 있고, 블록체인 네트워크(8)에 트랜잭션을 포스팅하는 데는 보다 발전된 프로토콜이 필요할 수 있다.
새로운 암호 화폐 지갑(7)은 표준 암호 화폐 지갑일 수도 있고, 여러 개의 지갑 노드를 포함하는 임계 지갑(threshold wallet)일 수도 있다.
긴급 복구 절차에는 오리지널 암호화 키, 즉 노드들(1) 사이에 분산되었던 암호화 키를 복구하는 것이 포함될 수 있다. 이 경우, 사용자 에이전트(2) 및/또는 긴급 복구 서비스(6)는 복구 트랜잭션 프로토콜(5)의 일부로서 오리지널 암호화 키에 대한 지식을 일시적으로 학습하거나 얻을 수 있고, 따라서 새로운 암호 화폐 지갑(7)에 대한 액세스를 얻기 위해서는 새로운 암호화 키가 필요하다. 대안으로, 복구 트랜잭션 프로토콜(5)은 오리지널 암호화 키가 투명하게 공개되지 않고 암호화되거나 비밀 공유 형식으로만 공개되도록 보장할 수 있다.
도 1에 도시된 실시예에 따르면, 새로운 암호 화폐 지갑은 복구 트랜잭션 프로토콜의 결과로 새로운 암호화 키 x'를 획득한다. 키 x'는 사용자 또는 긴급 복구 서비스에 의해 생성되어 새로운 암호 화폐 지갑으로 전송될 수 있다. 대안적으로, x'는 새로운 암호 화폐 지갑에 의해 생성될 수 있으며, 대응하는 공개 키 Y만이 사용자 및/또는 긴급 복구 서비스에 공개될 수 있다. 대안적으로, x'는 사용자, 긴급 복구 서비스 및/또는 새로운 암호 화폐 지갑 사이의 다자간 프로세스를 사용하여 생성될 수 있다. 어쨌든 긴급 복구의 결과는 새로운 암호 화폐 지갑에 새로운 암호화 키 x'가 저장된다는 것이다.
복구 정보 D의 생성과 긴급 복구 절차는 시간적으로 분리될 수 있으며, 즉 긴급 복구 절차는 복구 정보 D가 생성되어 저장소(4)에 저장된 후 오랜 시간이 지난 후에 이루어질 수 있다. 또한, 노드들(1)로부터 복구 정보 D를 수신하고 이를 저장소(4)에 저장하는 사용자 에이전트(2)는 저장소(4)에서 복구 정보 D를 검색하고 긴급 복구 절차를 시작하는 사용자 에이전트(2)와 동일할 필요는 없다. 예를 들어, 두 프로세스는 두 개의 서로 다른 디바이스에서 수행될 수 있다.
도 2는 본 발명의 실시예에 따른 방법의 일부를 수행하는데 사용하기 위한 시스템(9)을 도시하는 블록도이다. 보다 구체적으로, 도 2에 도시된 시스템(9)은 분산형 암호화 키의 공유에 관한 복구 정보를 생성하고 저장하는 데 사용될 수 있다.
시스템(9)은 암호 화폐 지갑(10)을 포함한다. 분산형 암호화 키 x는 다수의 노드들(1) 사이에서 공유되며, i번째 노드(1)는 암호화 키 x의 공유 xi를 보유한다. 도 2에는 3개의 노드(1)가 도시되어 있다. 그러나, 시스템(9)이 2개의 노드(1) 또는 4개 이상의 노드(1)를 포함하는 것도 본 발명의 보호 범위 내에 있다는 점에 유의해야 한다.
사용자 에이전트(2)는 노드들(1)로부터 암호화 키 x의 공유 xi에 대한 복구 정보 D를 획득하고, 복구 정보 D를 노드들(1)과는 별도의 저장소(4)에 저장한다. 이는 예를 들어 도 1을 참조하여 위에 설명된 방식으로 수행될 수 있다.
도 3은 본 발명의 실시예에 따른 방법의 일부를 수행하는데 사용하기 위한 시스템(11)을 도시하는 블록도이다. 보다 구체적으로, 도 3의 시스템(11)은 암호 화폐 지갑의 자금에 대한 긴급 복구 트랜잭션를 수행하는 데 사용될 수 있다.
사용자 에이전트(2)는 복구 정보 D를 이전에 저장되었던 저장소(4)로부터, 예를 들어 도 1 및 도 2를 참조하여 위에서 설명한 방식으로, 검색한다. 사용자 에이전트(2)는 검색된 복구 정보 버전 D'를 긴급 복구 서비스(6)에 제공한다. 도 1을 참조하여 전술한 바와 같이, 긴급 복구 서비스(6)에 제공되는 복구 정보의 버전 D'는 저장소(4)에 저장되었다가 이후에 사용자 에이전트(2)에 의해 검색된 복구 정보 D와 동일할 수도 있고, 수정된 버전일 수도 있다.
사용자 에이전트(2)와 긴급 복구 서비스(6)는 긴급 복구 트랜잭션을 수행하는데 협력하여 해당 트랜잭션을 블록체인 네트워크(8)에 포스팅함으로써 암호 화폐 지갑의 자금이 새로운 암호 화폐 지갑(7)으로 전송되도록 한다. 이는 예를 들어 도 1을 참조하여 위에 설명된 방식으로 수행될 수 있다.
도 4는 본 발명의 실시예에 따른 방법을 수행하는 것의 일부로서 복구 정보를 저장하는 것을 도시한다. 보다 구체적으로, 도 4는 노드(1)에 의해 보유된 암호화 키의 공유에 관한 복구 정보를 생성하고 저장소(4)에 저장하기 위한 하나의 노드(1)와 사용자 에이전트(2) 사이의 상호 작용을 도시한다. 그러나 사용자 에이전트(2)는 암호화 키의 다른 공유를 보유하고 있는 다른 노드(1)와 유사한 방식으로 상호 작용한다는 것을 이해해야 한다.
도 4에 도시된 실시예에서, 노드들(1)은 예를 들어, 개인(private) 타원 곡선 디지털 신호 알고리즘(ECDSA, Elliptic Curve Digital Signal Algorithm) 서명 키 형태로, 암호화 키 x의 추가 비밀 공유를 보유하고 있다고 가정된다. 각 노드(1)와 사용자 에이전트(2)는 대응하는 공개(public) 검증 키, Y=gx를 추가로 보유한다. 또한 암호 화폐 지갑의 자금과 암호화 키 x를 소유한 사용자는 사용자 신원, UID를 가지고 있다고 가정한다.
또한 모든 관련 당사자가 모든 공개 파라미터에 동의한다고 가정한다. 여기에는 임계 지갑에 대한 파라미터, 특히 노드들(1)의 수, 타원 곡선 그룹 및 생성기 g의 설명, 공개 키 Y 등을 포함한 ECDSA 체계에 대한 공개 파라미터가 포함된다. 여기에는 암호화 키 ek, 적용된 영지식 체계에 대한 파라미터 a 및 b를 포함하여 적용된 공개 키 암호화 체계에 대한 공개 파라미터가 더 포함된다.
사용자 에이전트(2)가 올바른 공개 파라미터를 갖도록 보장하기 위해, 각 노드(1)는 이러한 파라미터를 사용자 에이전트(2)에 보내고, 노드(1)가 파라미터에 모두 동의하지 않는 것으로 관찰되면, 사용자 에이전트(2)가 중단되도록 할 수 있다. 이로써 모든 노드들(1)이 손상되지 않는 한 사용자 에이전트(2)가 올바른 파라미터를 보유하는 것이 보장된다. 대안적으로 또는 추가적으로, 사용자 에이전트(2)는 신뢰할 수 있는 외부 소스, 예를 들어 블록체인으로부터 파라미터를 획득할 수 있다.
도 4에 도시된 실시예에서, 사용자 에이전트(2)는 각 노드(1)에 복구 정보 요청을 보낸다. 전술한 바와 같이, 도 4에는 하나의 노드(1), 즉 노드 N1만 도시되어 있다. 복구 정보 요청에는 사용자의 신원, UID가 포함된다.
복구 정보 요청에 응답하여, 노드 인덱스 i가 있고 비밀 공유 xi를 보유한 각 노드(1)는 MSG=UID∥Y를 계산하며, 여기서 ∥는 문자열 연결(string concatenation)을 의미한다. 그런 다음, (Yi, Ci, ZKi)=EncryptWithProof(xi, ek, MSG)를 계산하며, 여기서 EncryptWithProof는 입력 값 xi, ek, MSG를 취하고 다음 단계를 수행하는 알고리즘이며, 여기서 Enc는 RSA-OAEP와 같은 표준 공개 키 암호화 체계이다:
1. f(0)=xi 정도의 임의의 다항식 f를 생성한다.
2. j∈{1, 2, ..., b}에 대해, vj=f(j)를 계산한다.
3. ej=Enck(vj, rj) 암호화하며, 여기서 rj는 암호화에 사용되는 임의성(randomness)이다.
4. j∈{1, 2, ..., a}에 대해, 커밋 yj=gvj 를 계산한다.
5. gxi, e1, ..., eb, y1, ..., ya, MSG를 크기 a의 서브세트 F⊂{1, 2, ..., b}로 해시한다(hash).
6. Yi=gxi, Ci=(e1, e2, ..., eb) 및 ZKi={(j, vj, rj) : j∈F; y1, ..., ya}를 출력한다.
각 노드(1)는 복구 정보 Di=(Yi, Ci, ZKi)를 사용자 에이전트(2)에게 반환한다. 그런 다음 사용자 에이전트(2)는 수신된 복구 정보의 유효성을 검증하기 위해 각 노드(1)에 대한 MSG=UID∥Y 및 Vi=IsProofValid(Di, ek, MSG)를 계산한다. 만약 Vi가 거짓인 경우 사용자 에이전트(2)는 중단된다. Vi는 Di, MSG, ek를 입력으로 갖고 true/false를 출력으로 갖는 IsProofValid 알고리즘을 사용하여 계산된다. Di에 포함된 ZK 증명이 암호화 Ci 및 Di에 포함된 Yi 값과 공개 키 ek 및 MSG 값에 대해 유효한 경우 알고리즘은 "true"를 반환하고, 그렇지 않으면 false를 반환하며, 다음 단계를 수행한다:
1. e1, ..., eb, y1, ..., ya를 Di 및 ZKi에 포함된 암호화 및 커밋이라고 가정한다. Y, e1, ..., eb, y1, ..., ya 및 MSG를 크기 a의 서브세트 F⊂{1, 2, ..., b}로 해시한다.
2. "지수 내(in the exponent)" 보간법을 사용하여 모든 b 커밋 y1, ..., yb를 계산한다. 이는 1≤i≤a에 대해, Yi=gxi=gf(0) 및 yi=gf(i)의 a+1 커밋이 있기 때문에 가능하다.
3. 모든 j
Figure pct00005
F에 대해 ZK에 값 (j,·,·)이 없고, 모든 j
Figure pct00006
F에 대해 ej=Eek(vj, rj) 및 yj=gvj와 같은 값 (j, vj, rj)이 ZK에 있으면, true를 반환하고, 그렇지 않으면 false를 반환한다.
사용자 에이전트(2)가 두 개 이상의 노드들(1) 모두로부터 메시지 D1, D2, ...,Dn을 수신하면, 사용자 에이전트(2)는 Y=RecombineInExp(Y1, Y2, ..., Yn)이 아니면 중단되며, 여기서 RecombineInExp는 입력으로 gx1, gx2, ..., gxn을 갖고 출력으로 Y=gx를 갖고, 지수의 비밀 공유를 재결합하기 위해 지수의 동형(homomorphic) 속성을 사용한다. 알고리즘은 다음 단계를 수행한다:
1. 샤미르(Shamir) 공유라면, 각 공유에 공개 라그랑주(Lagrange) 계수를 곱하여 가산 공유(additive sharing)로 변환한다.
2. Y = Y1Y2…Yn = gx1gx2 gxn = gx1+x2+ ... +xn 을 계산 및 출력한다.
마지막으로 사용자 에이전트(2)는 프로세스가 중단되지 않는 한 복구 정보 D=(D1, D2, ..., Dn) 를 저장소(4)에 저장한다.
도 5는 본 발명의 실시예에 따른 방법에 따른 긴급 복구 트랜잭션을 도시한다. 보다 구체적으로, 도 5는 암호 화폐 지갑 및/또는 대응하는 암호화 키가 동작하지 않는 경우, 암호 화폐 지갑에서 새로운 암호 화폐 지갑(7)으로 긴급 자금 트랜잭션을 수행하기 위한 사용자 에이전트(2)와 긴급 복구 서비스(6) 사이의 상호 작용을 도시한다.
도 5에 도시된 실시예에서는, 도 4를 참조하여 전술한 가정이 또한 적용된다. 또한, 긴급 복구 서비스(6)는 적용된 공개 키 암호화 체계의 개인 복호화 키 dk를 보유하고 있고, 사용자 에이전트(2)는 대응하는 암호화 키 ek를 보유하고 있다고 가정한다. 또한, 긴급 복구 서비스(6)는 외부 인증 메커니즘을 통해 사용자 신원, UID를 검증할 수 있다고 가정한다. 예를 들어, 여기에는 외부 신원 공급자를 사용하는 것이 포함될 수 있거나, 사용자는 물리적으로 긴급 복구 서비스(6)에 연락하여 여권과 같은 적절한 ID를 제시할 수 있다. 또한, 긴급 복구 서비스(6)는 RSA-OAEP와 같은 표준 암호화만을 지원하는 하드웨어 보안 모듈(HSM)(12)에 복호화 키 dk를 저장한다고 가정한다.
도 5에 도시된 실시예에서, 사용자 에이전트(2)는 암호화 키 x에 관한 복구 정보 D를 이전에 저장되어 있던 저장소(4)로부터, 예를 들어 도 4를 참조하여 전술한 방식으로 검색한다. 그런 다음, 사용자 에이전트(2)는 긴급 복구 서비스(6)에서 사용자 신원, UID 및 외부 메커니즘을 통해 인증한다. 이는 긴급 복구 서비스(6)가 사용자 에이전트(2)가 올바른 UID를 가지고 있음을 보장할 수 있게 해준다. 사용자 에이전트(2)는 인증된 채널을 사용하여 복구 정보 D 뿐만 아니라 Y=gx 를 긴급 복구 서비스(6)에 제공한다.
복구 정보 D의 개별 메시지 Di 각각에 대해, 긴급 복구 서비스(6)는 MSG=UID∥Y 및 Vi=IsProofValid(Di, ek, MSG)를 계산하고, Vi=false이면 중단한다. IsProofValid 알고리즘은 도 4를 참조하여 위에서 설명되었다.
모든 Di를 수신하면, 긴급 복구 서비스(6)는 x=Recover(Y, D, dk)를 계산하며, 여기서 Recover는 Y, D=(D1, D2, ..., Dn), dk를 입력으로, 암호화 비밀 x를 출력으로 하는 알고리즘이다. 알고리즘은 다음 단계를 수행한다:
1. 각 Di에 대해:
a. j=1...b에 대해, 여기서, (j,·,·)
Figure pct00007
Di.ZK
i. vj=Decdk(Di.C[j])를 계산, 여기서 C[j]는 Di의 j번째 C 값이다.
ii. 이제 a+1 v 값이 있으므로, 라그랑주 보간법에 의해 xi'=f(0) 획득할 수 있다.
iii. Di.Y=gx' 인 경우, b 단계로 이동한다.
b. Di.Y=gxi' 와 같은 xi' 가 발견되면, xi=x'로 두고, 그렇지 않으면 중단한다.
2. x=x1+x2+...+xn을 계산; Y=gx 이면 x 출력하고, 그렇지 않으면 중단한다.
복구 알고리즘이 수행되는 동안에도 dk는 HSM(12)에 남아 있으며, 여러 표준 RSA-OAEP 복호화를 계산하는 데에만 사용된다.
그런 다음, 새로운 암호 화폐 지갑(7)은 표준 키 생성 알고리즘을 사용하여 새로운 키 쌍 (x', Y'=gx')을 생성한다. 새로운 공개 키 Y'는 예를 들어, 인증된 채널을 통해 긴급 복구 서비스(6)에 제공된다.
긴급 복구 서비스(6)는 서명된 블록체인 트랜잭션 T를 오리지널 개인 키 x와 새로운 공개 키 Y'를 기반으로 표준 알고리즘을 사용하여 계산한다. 블록체인 트랜잭션 T는 모든 자금을 오리지널 암호 화폐 지갑에서 새로운 암호 화폐 지갑(7)으로, 즉 x로 정의된 주소에서 Y'로 정의된 주소로 이동시킨다. 블록체인 트랜잭션 T는 블록체인(8)에 포스팅된다.
긴급 복구 서비스(6)는 T가 블록체인(8)에서 성공적으로 확인될 때까지 기다린 후, 새로운 공개 키 Y'를 사용자 에이전트(2)에 반환한다. 사용자 에이전트(2)는 새로운 공개 키 Y'의 수신을 확인하고, 긴급 복구 서비스(6)는 개인 키 x를 삭제한다.
도 4 및 도 5에 도시된 실시예들은 다음과 같은 이점이 있다.
ek과 dk가 분산되는 시스템의 초기 설정을 제외하고 긴급 복구 서비스(6)는 복구가 필요하기 전에 프로세스에 참여하지 않는다.
긴급 복구 서비스(6)는 RSA-OAEP와 같은 표준 공개 키 복호화 동작만 적용하면 된다. 이는 많은 경우에 긴급 복구 서비스(6)가 표준 동작만 제공하는 서비스 또는 하드웨어 보안 모듈(HSM)(12)에 dk를 저장하기 때문에 이점이 있다.
올바른 Y 및 ek를 보유하고 있다고 가정하면, 사용자 에이전트(2)는 복구 정보가 노드(1)로부터 수신될 때 영지식 증명을 사용하여 복구 정보가 올바른지 검증할 수 있다. 특히, 사용자 에이전트(2)가 공개 키 Y=gx 및 암호화 키 ek의 올바른 버전을 보유하고 있는 경우, 사용자 에이전트(2)는 수신된 복구 정보가 암호 화폐 지갑에서 자금을 복구하는 데 실제로 사용될 수 있는 값의 ek 하에서 올바른 암호화를 포함하고 있는지 확인할 수 있다.
사용자 에이전트(2)가 올바른 y와 ek를 갖고 있는 경우, 사용자 에이전트(2)는 비대화식으로, 즉 노드(1)의 도움 없이 복구 데이터를 검증할 수 있으며 이는 원하는 만큼 자주 수행될 수 있다. 예를 들어, 매월 1회씩 저장소(4)에 저장된 복구 정보가 유효한지 확인할 수 있다.
y와 ek가 정확하다면, 모든 노드들(1)이 손상되더라도 사용자 에이전트(2)에 의해 유효성을 검증될 수 있다. 이는 일반적으로 노드들(1) 중 적어도 하나가 정직하다고 가정하는 임계 보장(threshold guarantee)보다 강력하다.
사용자는 복구 정보 D를 비밀로 유지할 필요가 없다. 만일 악의적인 당사자가 복구 정보 D를 도용하는 경우, 악의적인 당사자는 이를 오용할 수 없게 되는데, 이는 긴급 복구 서비스(6)만이 복호화 키 dk를 보유하고 있기 때문이며, 악의적인 당사자는 사용자와 동일한 UID를 사용하여 긴급 복구 서비스(6)에 대해 사용자로 인증할 수 없기 때문이다. 비밀이 아닌 데이터를 처리하는 것이 더 쉬운 경우가 많으며, 백업, 복제 등과 같은 측면에서 그것의 가용성을 보장하는 것이 더 쉽다.
영지식 증명은 비대화형이다. 따라서, 각 노드(1)는 사용자 에이전트(2)에게 하나의 메시지만 보내면 되며, 노드들(1)은 서로 더 이상 통신할 필요가 없다.
도 6은 본 발명의 대안적인 실시예에 따른 방법을 수행하는 것의 일부로서 복구 정보를 저장하는 것을 도시한다. 도 6에 도시된 방법은 도 4에 도시된 방법과 매우 유사하므로 여기서는 자세히 설명하지 않는다.
다만, 도 6의 실시예에서는, 지갑의 노드(1)와 사용자 에이전트(2) 사이의 보안 다자간 계산을 통해 복구 정보가 생성된다. 이는 다음과 같은 방식으로 수행된다.
초기에, 노드(1)는 암호화 키의 비밀 공유 [x]를 보유한다. 그런 다음, 보안 다자간 계산을 사용하여 임의의 비밀 공유 [r]을 생성하고 [m]=[x]-[r]을 계산하고 열어서, 각 노드(1)이 x 또는 r이 특정 노드에 노출되지 않고 m을 수신하도록 한다. 그런 다음, 노드(1)는 입력으로 x의 공유 대신 r의 공유를 사용하는 것을 제외하고는 도 4와 같이 복구 정보를 생성한다. 각 노드 i는 또한 m을 사용자 에이전트(2)로 보낸다. 사용자 에이전트(2)는 도 4에서와 같이 수신한 각 영지식 증명을 검증한다. 그런 다음, 모든 메시지 Di가 수신되면 사용자 에이전트(2)는 모든 노드들(1)로부터 동일한 m을 수신했는지 확인하고 "지수 내(in the exponent)" 재결합을 사용하여 R을 계산하고 Y=R·gm인지 검증한다. 이러한 단계는 결합된 복구 정보 D가 값 m과 값 r의 공유 키 ek 하에 암호화를 포함하여 암호화 키 x가 m+r과 동일하다는 것을 사용자 에이전트(2)에게 증명한다. 마지막으로 사용자 에이전트(1)는 D를 사용자 저장소(4)에 저장한다.
도 7은 본 발명의 대안적인 실시예에 따른 방법에 따른 긴급 복구 트랜잭션을 도시한다. 도 7에 도시된 방법은 도 5에 도시된 방법과 매우 유사하므로 여기서는 자세히 설명하지 않는다.
다만, 도 7에 도시된 실시예에서는, 긴급 트랜잭션은 사용자 에이전트(2)와 긴급 복구 서비스(6) 간의 보안 다자간 계산을 통해 수행된다.
도 7에서는 도 6에서 설명한 방법에 따라 복구 데이터 D가 생성된다고 가정한다. 긴급 트랜잭션이 필요한 경우, 사용자 에이전트(2)는 긴급 복구 서비스(6)에 m을 제공하지 않는다. 따라서, 사용자 에이전트(2)는 m을 보유하고, 긴급 복구 서비스(6)는 r을 보유한다. 이는 x의 추가 공유, 즉 x=m+r이다. 또한, Y가 주어지면 사용자 에이전트(2)와 긴급 복구 서비스(6)는 각각 상대방의 공유에 대한 커밋, 예를 들어, 펠드먼 커밋을 계산할 수 있다. 보다 구체적으로, 사용자 에이전트(2)는 R=RR2…Rn=gr1+r2+...+rn=gr을 계산할 수 있고, 긴급 복구 서비스(6)는 M=Y/R=gx/gr=gx-r=gm을 계산할 수 있다.
상대방의 공유에 대한 커밋과 같은 공유는 보안 다자간 계산(13)에 대한 입력으로 매우 적합하다. 다자간 계산(13)은 예를 들어, 새로운 ECDSA 키 쌍(x', Y')을 계산하고, 예를 들어 새로운 암호 화폐 지갑에서 얻은 공개 키 pk-rec에 새로운 개인 키 x'를 래핑함으로써 새로운 개인 키 x'를 새로운 암호 화폐 지갑(7)으로 전송할 수 있다.
또한, 사용자 에이전트(2)와 긴급 복구 서비스(6)는 이제 암호 화폐 지갑에서 자금을 복구하는 트랜잭션 T에 서명하기 위해 다자간 계산을 수행할 수 있다. 다자간 계산(13)을 통해 T를 계산하면 사용자 에이전트(2)와 긴급 복구 서비스(6) 모두가 T가 정확한 금액인지, 올바른 목적지 주소를 가지고 있는지 등을 검증할 수 있다.
사용자 에이전트(2)는 새로운 공개 키 Y'를 수신하고, 긴급 복구 서비스(6)는 F와 T를 수신하며, 여기서 F는 공개 키 pk-rec에 래핑된 새로운 개인 키 x'이고 T는 트랜잭션이다. 긴급 복구 서비스(6)는 새로운 암호 화폐 지갑(7)에 F를 공급하고, 새로운 암호 화폐 지갑(7)은 dk-new를 이용하여 새로운 개인키 x'를 복호화한다. 긴급 복구 서비스(6)는 트랜잭션 T를 블록체인(8)에 포스팅하여 자금을 새로운 암호 화폐 지갑(7)으로 이동시킨다.
긴급 복구 프로세스에서 다자간 계산(13)을 적용함으로써, 사용자 에이전트(2) 및 긴급 복구 서비스(6) 중 어느 하나도 복구 시점에 x 또는 x'를 학습하지 않는다는 것을 알 수 있고, 다자간 계산은 사용자 에이전트(2) 및 긴급 복구 서비스(6) 중 적어도 하나가 정직한 한, 서명된 트랜잭션 T가 올바른 금액과 목적지 주소를 포함하는 것을 보장한다.
도 8은 본 발명의 실시예에 따른 암호 화폐 지갑의 노드(1) 사이에서 보안 다자간 계산(MPC)을 사용하는 복구 데이터 생성을 도시한다. 도 8에는 3개의 노드(1)가 도시되어 있다. 그러나 2개의 노드(1) 또는 4개 이상의 노드(1)가 적용될 수 있다는 점에 유의해야 한다.
노드들(1)은 보안 다자간 계산에 참여한다. 입력으로 각 노드는 암호화 키 x의 공유 xi, 긴급 복구 서비스(미도시)의 공개 암호화 키 ek 및 공개 서명 키 Y를 사용한다. 계산의 출력은 암호화 C=Encek(x)와 비대화형 영지식 증명 ZK이며, 이는 C와 Y가 일관성이 있음을 증명하며, 즉 C는 ek와 Y=gx를 사용하여 x의 올바른 암호화임을 증명한다. 보안 다자간 계산에는 노드들(1) 간의 여러 차례의 통신이 포함될 수 있다.
노드들(1) 중 하나는 (C, ZK)를 사용자 에이전트(2)에 제공하고, 사용자 에이전트(2)는 증명을 검증한다. 마지막으로 사용자 에이전트(2)는 복구 정보를 C와 ZK 형태로 저장소(4)에 저장한다.
이후에 긴급 트랜잭션가 필요한 경우, 다음과 같은 방식으로 수행될 수 있다. 사용자 에이전트(2)는 저장소(4)에서 D=(C, ZK)를 검색하여 긴급 복구 서비스에 D를 제공한다. 그러면, 긴급 복구 서비스는 x를 획득하기 위해 dk를 사용하여 C를 복호화하고, (x', Y') 및 자금을 x에서 Y'로 이동시키는, T를 계산하며, T를 블록체인에 포스팅하고, x'를 새로운 암호 화폐 지갑으로 가져온 다음, 마지막으로 x를 삭제한다.
도 8에 도시된 실시예의 한 가지 이점은 사용자 에이전트(2)가 단일 노드(1)로부터 데이터(C 및 ZK)만 수신하면 되며, 이 데이터를 보안 채널을 통해 전송할 필요가 없다는 점이다. 또 다른 이점은 이제 복구 정보가 x의 각 공유에 대한 암호화 대신 x 값의 단일 암호화로만 구성된다는 것이다.

Claims (14)

  1. 암호 화폐 지갑(crypto currency wallet)에서 자금의 긴급 복구 트랜잭션(emergency recovery transaction)을 수행하는 방법으로서, 상기 방법은:
    각 노드가 암호화 키의 공유(share)를 보유하고 전체 암호화 키를 보유하는 노드가 없는, 두 개 이상의 노드들 사이에서 공유되는 분산형 암호화 키를 제공하는 단계 - 상기 암호화 키는 암호 화폐 지갑의 자금에 대한 액세스를 제공하고 -,
    상기 암호화 키에 관한 복구 정보를 두 개 이상의 노드들과 분리된 저장소에 저장하는 단계,
    상기 암호화 키 및/또는 지갑이 동작하지 않는 경우, 사용자가 저장소로부터 복구 정보를 검색하고, 검색된 복구 정보 중 적어도 일부를 긴급 복구 서비스에 제공하는 단계, 및
    긴급 복구 서비스와 사용자가 협력하여 복구 정보에 기초하여, 암호 화폐 지갑으로부터 새로운 암호 화폐 지갑으로 자금의 긴급 복구 트랜잭션을 수행하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    긴급 복구 서비스와 사용자가 협력하여 긴급 복구 트랜잭션을 수행하는 단계는:
    수신된 복구 정보에 기초하여, 긴급 복구 서비스가 일회성 암호화 트랜잭션 키를 생성하는 단계, 및
    일회성 암호화 트랜잭션 키를 사용하여, 암호 화폐 지갑으로부터 새로운 암호 화폐 지갑으로 자금의 긴급 복구 트랜잭션을 수행하는 단계를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    복구 정보는 노드들에 의해 보유된 상기 암호화 키의 공유에 기초하여 노드들에 의해 생성된 사전 서명의 형태인, 방법.
  4. 선행하는 어느 한 항에 있어서,
    사용자가 검색된 복구 정보 중 적어도 일부를 긴급 복구 서비스에 제공하는 단계는, 긴급 복구 서비스에 대한 사용자의 신원을 증명하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    복구 정보는 사용자의 고유 신원에 관한 정보를 포함하고, 긴급 복구 서비스에 대한 사용자의 신원을 증명하는 단계는 사용자가 고유 신원에 대한 소유권을 증명하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    고유 신원은 복구 정보에 암호학적으로(cryptographically) 링크되는, 방법.
  7. 제6항에 있어서,
    복구 정보는 사용자의 고유 신원을 포함하는 영지식(zero-knowledge) 증명을 포함하는, 방법.
  8. 제6항에 있어서,
    사용자의 신원은 디지털 서명을 사용하여 복구 정보에 링크되는, 방법.
  9. 선행하는 어느 한 항에 있어서,
    두 개 이상의 노드들이 상기 암호화 키의 공유의 암호화된 버전을 서로에게 제공하는 단계, 및
    두 개 이상의 노드들이 상기 암호화 키의 암호화된 공유를 검증하는 단계를 더 포함하고,
    그리고 상기 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는, 영지식 증명이 유효한 경우 각 노드가 상기 암호화 키의 공유의 암호화된 버전을 저장소에 제공하는 단계를 포함하는, 방법.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서,
    두 개 이상의 노드들이 상기 암호화 키의 공유에 기초하여 그리고 다자간 암호화 프로세스를 사용하여, 상기 암호화 키의 암호화된 버전을 생성하는 단계를 더 포함하고, 그리고 상기 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는, 상기 암호화 키의 암호화된 버전을 저장소에 저장하는 단계를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 암호화 키의 암호화된 버전은 영지식 증명을 포함하고, 그리고 상기 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는, 상기 암호화 키의 암호화된 버전을 저장하는 단계 이전에 영지식 증명을 검증하는 단계를 포함하는, 방법.
  12. 선행하는 어느 한 항에 있어서,
    마스터 체인 코드(master chain code)를 제공하고, 두 개 이상의 노드들에 상기 마스터 체인 코드를 저장하는 단계를 더 포함하며, 그리고 상기 암호화 키에 관한 복구 정보를 저장소에 저장하는 단계는 복구 정보의 일부로서 상기 마스터 체인 코드의 암호화된 버전을 저장하는 단계를 포함하는, 방법.
  13. 제12항에 있어서,
    상기 분산형 암호화 키와 상기 마스터 체인 코드는 공통 마스터 시드로부터 도출되고, 그리고 복구 정보를 저장하는 단계는 상기 공통 마스터 시드의 암호화된 버전을 저장하는 단계를 포함하는, 방법.
  14. 제12항 또는 제13항에 있어서,
    사용자가 상기 암호화 키와 상기 마스터 체인 코드 사이의 대응성을 검증함으로써 검색된 복구 정보를 검증하는 단계를 더 포함하는, 방법.
KR1020247023072A 2022-01-21 2023-01-20 암호 화폐 지갑의 자금 긴급 복구 트랜잭션 Pending KR20240136961A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP22152701 2022-01-21
EP22152701.3 2022-01-21
PCT/EP2023/051324 WO2023139192A1 (en) 2022-01-21 2023-01-20 Emergency recovery transaction of funds of crypto currency wallet

Publications (1)

Publication Number Publication Date
KR20240136961A true KR20240136961A (ko) 2024-09-19

Family

ID=79927441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247023072A Pending KR20240136961A (ko) 2022-01-21 2023-01-20 암호 화폐 지갑의 자금 긴급 복구 트랜잭션

Country Status (5)

Country Link
US (1) US20250104028A1 (ko)
EP (1) EP4466652A1 (ko)
JP (1) JP2025502962A (ko)
KR (1) KR20240136961A (ko)
WO (1) WO2023139192A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018231832A1 (en) 2017-06-12 2018-12-20 PokitDok, Inc. System and method for autonomous dynamic person management
US11367066B2 (en) * 2018-06-28 2022-06-21 Coinbase, Inc. Wallet recovery method
US11444779B2 (en) * 2018-08-02 2022-09-13 Paypal, Inc. Techniques for securing application programming interface requests using multi-party digital signatures
WO2021073953A1 (en) * 2019-10-15 2021-04-22 Sepior Aps Digital signature generation using a cold wallet

Also Published As

Publication number Publication date
JP2025502962A (ja) 2025-01-30
EP4466652A1 (en) 2024-11-27
US20250104028A1 (en) 2025-03-27
WO2023139192A1 (en) 2023-07-27

Similar Documents

Publication Publication Date Title
US20240283637A1 (en) Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US10903991B1 (en) Systems and methods for generating signatures
KR0148300B1 (ko) 복수의 정보 처리 장치를 구비하는 통신 시스템에서 비밀 정보의 분산, 디지탈 서명의 생성 및 인증의 수행 방법과 그 통신 시스템
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN104283880A (zh) 安全工作组管理和通信的系统和方法
WO2013112901A1 (en) System and method for securing private keys issued from distributed private key generator (d-pkg) nodes
EP4046325A1 (en) Digital signature generation using a cold wallet
CN108809636B (zh) 基于群组型量子密钥卡实现成员间消息认证的通信系统
US10447475B1 (en) System and method for managing backup of cryptographic keys
CN118555133B (zh) 传输层安全协议的抗量子安全增强方法
CN115314207A (zh) 一种sm2签名制作数据的安全可控使用方法及系统
KR20240136961A (ko) 암호 화폐 지갑의 자금 긴급 복구 트랜잭션
CN118659881B (zh) 安全外壳协议的抗量子安全增强方法
CN118659923A (zh) 简单认证和安全层协议的抗量子安全增强方法

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20240710

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application