Nothing Special   »   [go: up one dir, main page]

KR20220006097A - 블록체인을 이용한 공개 키 관리를 위한 방법 및 디바이스 - Google Patents

블록체인을 이용한 공개 키 관리를 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20220006097A
KR20220006097A KR1020217040005A KR20217040005A KR20220006097A KR 20220006097 A KR20220006097 A KR 20220006097A KR 1020217040005 A KR1020217040005 A KR 1020217040005A KR 20217040005 A KR20217040005 A KR 20217040005A KR 20220006097 A KR20220006097 A KR 20220006097A
Authority
KR
South Korea
Prior art keywords
public key
transaction
output
certificate
new
Prior art date
Application number
KR1020217040005A
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 KR20220006097A publication Critical patent/KR20220006097A/ko

Links

Images

Classifications

    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

블록체인 네트워크는 디지털 인증서의 신속하고 안전한 등록, 폐기 및 업데이트를 위해 제공하여 공개-키 기반 구조를 개선하기 위해 사용될 수 있다. 공개 키는, 임의의 제3자가 공개 키가 인증 기관에 의해 인증됨 및 인증이 폐기되지 않았음을 신속하고 용이하게 검증할 수 있도록 하는 방식으로, 인증 기관에 의해 블록체인에 기록될 수 있다. 인증 기관은 거의 즉각적으로 인증을 폐기할 수 있고, 및/또는 오래된 키를 폐기하면서 동일한 개체에 대한 신규 키를 동시에 인증할 수 있다. 일부 경우에, 인증을 폐기하는 능력은 공개 키의 소유자에게, 또는 일부 경우에는 다른 개체 중 한 명 또는 심지어는 그룹에게 주어질 수 있다.

Description

블록체인을 이용한 공개 키 관리를 위한 방법 및 디바이스
본 개시는 블록체인 네트워크, 특히 공개 키 기반 구조(public key infrastructure)를 위한 공개 키 관리를 용이하게 하기 위한 블록 체인의 사용에 관한 것이다.
공개 키 기반 구조에서, 컴퓨팅 디바이스는 보안 통신, 디지털 서명, 부인 방지(non-repudiation), 및 다른 기능을 용이하게 하기 위해 공개-개인 키 쌍을 가질 수 있다. 공개 키 기반 구조의 일부로서, 컴퓨팅 디바이스는, 컴퓨팅 디바이스에 공개 키의 소유권 및 권한을 확인하는 디지털 인증서(digital certificate)를 제공하는 인증 기관에 등록된 그의 공개 키를 가질 수 있다.
인증 기관을 이용하는 것의 문제점은, 일단 디지털 인증서가 발행되면, 지정된 만료일까지 디지털 인증서가 유효한 것으로 유지된다는 점이다. 하지만, 공개 키는 손상되어(compromised) 인증서의 폐기(revocation)를 요구할 수 있다. 이러한 문제점을 해결하기 위해, 인증 기관은 어떤 디지털 인증서가 폐기된 것으로 고려되어야 하는지 열거하는(detailing) “폐기 리스트(revocation lists)”를 관리하고, 이러한 리스트를 주기적으로 업데이트 및 공개(publish)한다. 공개 키를 유효성 검증하고자 하는 개체(entity)는 디지털 인증서에 의존할 수 있지만, 이 경우에도 디지털 인증서가 인증 기관에 의해 폐기되지 않았는지 알아보기 위해 대응하는 인증서 폐기 리스트를 획득 및 검토해야 한다. 이러한 시스템 및 그 내재적인 딜레이(inherent delay)는, 일부 디지털 인증서가 폐기될 수 있고, 이러한 폐기가 아직 공개되지 않거나 디지털 인증서에 의존하고자 의도하는 개체에게 아직 접근 가능(available)하지 않을 수 있음을 의미한다.
이제, 본 출원의 예시적인 실시예를 도시하는 첨부된 도면이 예시로서 참조될 것이다.
도 1은 블록체인 네트워크에 대한 예시적인 블록 구조를 도시한다.
도 2는 예시적인 블록 전파 방법의 흐름도를 나타낸다.
도 3은 공개 키를 검증하는 하나의 예시적인 방법을 흐름도의 형태로 도시한다.
도 4는 채굴 노드의 단순화된 예시를 블록 다이어그램 형태로 도시한다.
도면에서, 유사한 도면 부호는 유사한 요소 및 특징부를 나타내기 위해 사용된다.
일 양태에서, 블록체인 네트워크를 이용한 공개 키 기반 구조를 관리하는 컴퓨터-구현 방법이 제공될 수 있다. 방법은, 인증 트랜잭션을 생성함으로써 제1 개체에 대한 디지털 인증서를 생성하는 단계 - 제1 개체는 제1 공개 키를 갖고, 인증 트랜잭션은 인증 기관으로부터의 디지털 서명, 제2 공개 키에 기초한 주소로의 제1 출력, 및 제1 공개 키를 포함하는 정보 필드를 갖는 제2 출력을 포함함 -; 인증 트랜잭션의 해시(hash)로부터 인증 트랜잭션 식별자를 결정하는 단계; 및 인증 트랜잭션을 블록체인 네트워크에 전파하는 단계를 포함할 수 있다. 디지털 인증서는 제1 공개 키 및 인증 트랜잭션 식별자를 포함한다.
일부 구현예에서, 제2 출력은 적어도 제1 공개 키를 포함하는 OP_RETURN 필드를 포함한다. 일부 구현예에서, 제1 출력은, 제2 공개 키의 해시로서 획득되는 주소를 참조하는 P2PKH(pay-to-public-key-hash) 동작을 포함한다. 일부 구현예에서, 인증 기관은 제2 공개 키에 대응하는 제2 개인 키를 유지(hold)한다.
일부 구현예에서, 방법은 디지털 인증서를 검증하는 단계를 더 포함할 수 있다. 디지털 인증서를 검증하는 단계는, 디지털 인증서 내 인증 트랜잭션 식별자에 기초하여 블록체인으로부터 인증 트랜잭션의 사본을 획득하는 것; 제1 출력이 미사용 트랜잭션 출력(unspent transaction output)인지 결정하는 것; 및 인증 트랜잭션 내 제2 출력에 포함되는 제1 공개 키가 디지털 인증서 내 공개 키와 일치하는지 결정하는 것을 포함할 수 있다. 이러한 일부 구현예에서, 제1 출력이 미사용 트랜잭션 출력인지 결정하는 것은, 제1 출력이 블록체인 네트워크의 미사용 트랜잭션 출력 풀(unspent transaction output pool)에 존재하는지 결정하는 것을 포함한다. 이러한 일부 구현예에서, 인증 트랜잭션으로의 입력은 인증 기관 공개 키를 더 포함할 수 있고, 디지털 인증서를 검증하는 것은 인증 트랜잭션이 인증 기관 공개 키에 기초하여 인증 기관에 의해 서명된 것인지 결정하는 것을 더 포함할 수 있다.
일부 구현예에서, 방법은, 입력으로서 인증 트랜잭션의 제1 출력을 포함하는 폐기 트랜잭션을 생성함으로써 디지털 인증서를 폐기하는 단계; 및 폐기 트랜잭션을 블록체인 네트워크에 전파하는 단계를 더 포함할 수 있다.
일부 구현예에서, 방법은, 디지털 인증서를 신규 공개 키를 위한 신규 디지털 인증서로 대체하는 단계를 더 포함할 수 있다. 대체하는 단계는, 신규 인증 트랜잭션을 생성하는 것 - 신규 인증 트랜잭션은 입력으로서 인증 트랜잭션의 제1 출력, 제3 공개 키에 기초한 신규 주소로의 제1 신규 출력, 및 정보 필드를 갖는 제2 신규 출력을 포함하며, 정보 필드는 신규 공개 키를 포함함 -; 신규 인증 트랜잭션의 해싱으로부터 신규 인증 트랜잭션 식별자를 결정하는 것; 및 신규 인증 트랜잭션을 블록체인 네트워크에 전파하는 것을 포함할 수 있다. 신규 디지털 인증서는 신규 공개 키 및 신규 인증 트랜잭션 식별자를 포함할 수 있다.
일부 구현예에서, 정보 필드는 OP_RETURN 출력이다.
일부 구현예에서, 인증 트랜잭션은 인증 기관 공개 키의 해시로부터 획득되는 미사용 트랜잭션 아웃포인트 주소(unspent transaction outpoint address)를 참조하는 입력을 포함하고, 인증 트랜잭션은 인증 기관 공개 및 디지털 서명을 포함하는 미사용 트랜잭션 아웃포인트 주소에 대한 잠금 해제 스크립트를 포함하며, 디지털 서명은 인증 기관 공개 키에 대응하는 개인 키에 기초하여 생성된다.
일부 구현예에서, 제1 출력은 2개 이상의 개인 키 중 어느 하나가 제1 출력을 활용할 수 있도록 하는 다중-서명 잠금 스크립트(multi-sig locking script)를 포함한다.
또 다른 양태에서, 본 출원은 블록체인 네트워크를 이용하여 디지털 인증서를 검증하는 컴퓨터-구현된 방법을 설명한다. 디지털 인증서는 제1 공개 키 및 인증 트랜잭션 식별자를 포함한다. 방법은, 제1 개체로부터 디지털 서명을 수신하는 단계 및 디지털 인증서 내 인증 트랜잭션 식별자에 기초하여 블록체인으로부터 인증 트랜잭션의 사본을 획득하는 단계 - 인증 트랜잭션은 인증 기관으로부터의 디지털 서명, 제2 공개 키에 기초한 주소로의 제1 출력, 및 정보 필드를 갖는 제2 출력을 포함함 -를 포함할 수 있다. 방법은, 정보 필드가 디지털 인증서 내 제1 공개 키와 일치하는 공개 키를 포함하는지 결정하는 단계; 인증 트랜잭션 내 제1 출력이 어떤 후속 트랜잭션에서도 사용되지 않았음을 결정하기 위해 미사용 트랜잭션 출력 풀을 질의하는 단계; 및 이러한 결정들에 기초하여, 제1 공개 키가 유효한 것으로 인증되는지 검증하는 단계를 더 포함할 수 있다.
다른 양태에서, 네트워크 내의 노드를 구현하는 컴퓨팅 디바이스가 제공될 수 있다. 컴퓨팅 디바이스는 메모리, 하나 이상의 프로세서, 및 실행될 때, 프로세서로 하여금 본 명세서에서 설명되는 방법들 중 하나 이상을 수행하도록 하는 컴퓨터-실행 가능한 명령어를 포함할 수 있다.
또 다른 양태에서, 네트워크에서 노드를 작동시키기 위한 프로세서-실행 가능한 명령어를 저장하는 컴퓨터-판독 가능 매체가 제공될 수 있으며, 프로세서-실행 가능한 명령어는, 하나 이상의 프로세서에 의해 실행될 때 프로세서로 하여금 본 명세서에서 설명되는 방법들 중 적어도 하나를 수행하도록 하는 명령어를 포함한다.
본 개시의 다른 예시적인 실시예들은 도면과 함께 이하의 상세한 설명의 검토로부터 통상의 기술자에게 명백해질 것이다.
본 출원에서, “및/또는”이라는 용어는, 나열된 요소들 단독, 임의의 하위 조합, 또는 모든 요소들 중 임의의 것을 포함한, 나열된 요소들의 모든 가능한 조합 및 하위 조합을 포함하고, 반드시 추가적인 요소를 배제하지 않는 것으로 의도된다.
본 출원에서, “… 또는 … 중 적어도 하나”라는 구문은, 나열된 요소들 단독, 임의의 하위 조합, 또는 모든 요소들 중 임의의 것을 포함한, 나열된 요소들의 임의의 하나 이상의 것을 포함하고, 반드시 어떤 추가적인 요소를 배제하는 것은 아니며, 반드시 모든 요소들을 요건으로 하지도 않는 것으로 의도된다.
본 출원은, 임의의 데이터 또는 “메시지” 세트에 적용되었을 때 고유의 고정-길이 영숫자 문자열(unique fixed-length alphanumeric string)을 결정적으로 생성하는 다수의 암호화 해시 함수 중 어느 하나를 포함하도록 의도되는 해싱 또는 해시 함수를 참조할 것이다. 해시 함수의 결과는 해시 값, 핑거프린트, 해시 결과, 또는 이에 상응하는 것으로 지칭될 수 있다. 예시로는 SHA-2, SHA-3, 및 BLAKE2가 포함되지만, 이에 국한되는 것은 아니다.
본 문서에서, “블록체인”이라는 용어는 모든 형태의 전자, 컴퓨터-기반, 분산 원장을 포함하는 것으로 이해된다. 이는 합의-기반 블록체인 및 트랜잭션-체인 기술, 허가 및 비-허가 원장, 공유 원장, 및 이들의 변형을 포함한다. 다른 블록체인 구현예들이 제안 및 개발되었지만, 블록체인 기술의 가장 널리 알려진 어플리케이션은 비트코인 원장이다. Bitcoin SV 프로토콜로서 예시되는 비트코인은 편의성 및 예시적인 목적으로 본 명세서에서 참조될 수 있지만, 본 발명은 비트코인 블록체인과의 사용에 국한되지 않으며, 대안적인 블록체인 구현예 및 프로토콜도 본 발명의 범위 내에 있음에 유의해야 한다.
블록체인은 컴퓨터-기반 탈중앙화, 분산 시스템을 이용하여 구현되는 P2P(peer-to-peer) 전자 원장이다. 블록체인은 트랜잭션을 구성하게 되는 블록들로 이루어진다. 각 트랜잭션은 다른 가능한 정보 중에서 블록체인 내 참가자들 간의 디지털 자산 제어 전송을 인코딩하고, 적어도 하나의 입력과 적어도 하나의 출력을 포함하는 데이터 구조이다. 각 블록 헤더(block header)는 Merkle 루트 형식과 같은 블록의 컨텐츠의 요약을 포함하며, 각 블록 헤더는, 개시 이래로 블록체인에 작성되었던 모든 트랜잭션의 영구적이고 변경 불가능한 기록을 생성하기 위해 블록들이 함께 체인화되도록, 이전의 블록 헤더의 해시를 포함한다. 트랜잭션은, 트랜잭션의 출력이 어떻게 그리고 누구에 의해 접근될 수 있는지를 특정하는 그 입력 및 출력에 내장되는 스크립트로 알려진 소형 프로그램을 포함한다. 비트코인 플랫폼에서, 이러한 스크립트는 스택-기반 스크립트 언어(stack-based scripting language)를 이용하여 작성된다.
블록체인은 노드들의 네트워크를 통해 구현된다. 각 노드는, 네트워크 연결성을 갖는 컴퓨팅 디바이스이며, 적용 가능한 블록체인 프로토콜을 수행하는 소프트웨어를 실행한다. 노드는 트랜잭션을 유효성 검증하고(validate), 이를 네트워크 내 다른 노드들로 전파한다. “채굴 노드(mining nodes)” 또는 “채굴자(miners)”라고 하는 특수한 네트워크 노드는 확인되지 않은 트랜잭션, 즉 보류중인 트랜잭션의 세트를 블록으로 집속하여, 블록을 “채굴(mine)”하려고 시도한다. 이러한 예시에서, 채굴은 네트워크 내 어느 다른 채굴자가 그들의 각각의 블록에 대한 작업 증명(POW: proof-of-work)을 푸는 것에 성공하기 전에, 작업 증명을 푸는 것을 지칭한다. 비트코인 예시에서, POW는, 결과가 난이도 파라미터에 의해 설정된 임계 값 미만이 될 때까지 넌스(nonce)를 포함하는 블록 헤더를 해싱하는 것과 관련된다. 넌스는 반복적으로 증가되고, 결과가 임계 값 미만이 될 때까지 또는 채굴자가 다른 채굴자가 성공했다는 통지를 수신할 때까지 해싱이 반복된다. 채굴 프로세스의 변형들은 통상의 기술자에게 익숙할 것이다.
트랜잭션을 유효성 검증할 때 확인되는 다양한 것들 중에서, 노드는 트랜잭션에 대한 입력이 유효한 것이지 여부를 결정한다. 특히, 노드는 잠금 해제 스크립트가 진짜(true)인 것으로 평가되는지 여부를 평가하고, 입력이 이전 트랜잭션의 “미사용 트랜잭션 출력(UTXO: unspent transaction output)”을 참조하는지 여부를 결정한다. 일부 노드들은 참조되는 트랜잭션 출력이 UTXO에 있는지 여부에 대한 신속한 결정을 가능하게 하기 위해 UTXO의 실행 목록 또는 풀을 관리할 수 있다. 트랜잭션은, 일부 구현예에서 트랜잭션의 해시인 고유의 트랜잭션 식별자(TxID)에 의해 식별될 수 있다. 일부 트랜잭션은 하나보다 많은 출력을 가질 수 있어, 고유의 트랜잭션 출력(즉, 아웃포인트(outpoint))이 TxID 및 인덱스에 의해 식별될 수 있으며, 인덱스는 트랜잭션의 정렬된 출력 세트 내 출력들 중 하나를 가리킨다. 트랜잭션 출력이 UTXO 풀에 존재하는 경우, 트랜잭션의 출력은 “미사용”이며, 입력으로 사용하는 것이 가능하다.
트랜잭션 아웃포인트에 대한 잠금 해제 스크립트는 실행되기 위해(exercised) 해당 출력에 대한 “제어”가 어떻게 입증되는지를 정의한다. 많은 경우, 트랜잭션 출력과 연관된 주소는 공개 키의 해시이다. 그 출력에 대한 제어를 입증하기 위해, 잠금 해제 스크립트는 종종 공개 키와, 대응하는 개인 키를 이용하여 생성되는 디지털 서명을 요구한다. 이러한 방식으로, 개인 키를 제어하는 노드는, 언제, 어떻게 트랜잭션 출력이 임의의 후속 입력에 사용되는지 제어할 수 있다. 이하에서 더욱 논의되겠지만, 이는 특정 공개 키에 대응하는 트랜잭션 입력이, 대응하는 개인 키를 이용하여 생성되는 디지털 서명을 포함할 때, 그 특정 공개 키와 연관된 개체가 트랜잭션 컨텐츠를 효과적으로 서명 또는 인증하는 결과를 낳는다.
공개-키 암호화는 온라인 통신에서 보편적인 것이 되었다. 많은 경우에, 공개 키가 연관된 특정 개체에 의해 소유된다는 확신을 제공하기 위해 절차 및 규정이 요구된다. 공개 키가 진짜이고 손상되지 않았음을 보장하기 위한 가장 일반적인 접근 방법은 공개 키 기반 구조(PKI)이다. PKI는 공개 키를 유효한 것으로 “증명(authenticate)”하기 위해 신뢰성 있는 제3자에게 의존한다. 이러한 개체들은 “인증 기관(CA: certificate authorities)”이다. CA는 공개 키와 특정 소유자 사이의 결합을 확인하는 디지털 인증서의 등록 및 발행을 제공한다. 공개 키의 홀더는 다른 개체에게 그의 공개 키 및 디지털 인증서를 제공한다. 그러면, 다른 개체는 신뢰성 있는 CA가 공개 키가 홀더에게 귀속되는 것으로 디지털 방식으로 서명한 것을 확인함으로써 공개 키의 진실성(authenticity)을 검증할 수 있다.
기존의 PKI의 문제점 중 하나는, 예를 들어 인증서의 특정 만기일 이전에 개인 키가 분실되거나 공개되는 경우, 종종 공개 키가 손상된다는 것이다. 이러한 이유로, CA는 인증서 폐기 리스트를 관리할 수 있다. 공개 키와 연관된 인증서에 의존하고자 하는 개체는 모두, 인증서가 CA에 의해 폐기되지 않았는지 확인하기 위해 연관된 인증서 폐기 리스트를 찾아 검토해야 한다. 이는, 오프라인으로 키를 증명하는 능력을 손상시키고, 폐기 및 신규 인증서 폐기 리스트의 공개 사이의 종종 24시간 이상의 딜레이에 의한 위험을 발생시킨다.
본 출원의 일 양태에 따르면, 블록체인 네트워크는 디지털 인증서의 신속하고 안전한 유효성 검증, 폐기, 및 업데이트를 제공함으로써 공개-키 기반 구조를 개선하는 데 사용될 수 있다. 공개 키는 임의의 제3자가 공개 키가 인증 기관에 의해 인증되고, 인증서가 폐기되지 않았음을 신속하고 용이하게 검증할 수 있도록 하는 방식으로, 인증 기관에 의해 블록체인에 기록될 수 있다. 이하에서 설명되는 방식으로 공개 키를 기록함으로써, 인증 기관은 거의 즉각적으로 인증서를 폐기할 수 있게 되거나, 또는 오래된 키를 폐기하는 동안 동시에 동일한 개체에 대한 신규 키를 인증하는 것이 가능할 수 있다. 일부 경우, 인증서를 폐기하는 능력은 공개 키의 소유자에게, 또는 일부 경우에는 다른 개체, 심지어는 다른 개체들의 그룹에게 주어질 수 있다.
이제, 공개 키 기반 구조를 관리하기 위한 예시적인 시스템(100)을 도식화하여 나타내는 도 1을 참조할 것이다. 본 예시에서 시스템(100)은 제1 컴퓨팅 디바이스(102), 제2 컴퓨팅 디바이스(104), 및 서버(106)를 포함한다. 제1 컴퓨팅 디바이스(102) 및 제2 컴퓨팅 디바이스(104)는 서버, 개인 컴퓨터, 태블릿, 스마트폰, 연결된 차량(connected cars), 사물 인터넷(Internet-of-things) 디바이스, 또는 임의의 이러한 기타 디바이스를 포함하는, 임의의 네트워크-가능한 컴퓨팅 디바이스로서 구현될 수 있다. 서버(106)는 인증 기관(CA)에 의해 동작되고, 디지털 인증서에 대한 요청을 수신 및 응답하도록 구성된다. CA가 서버(106)에 의해 구현되는 것으로 도시되어 있지만, CA 기능은 하나 이상의 서버 또는 다른 컴퓨팅 디바이스에 의해 구현될 수 있음을 이해할 것이다.
시스템(100)은 블록체인 네트워크(108)를 더 포함한다. 블록체인 네트워크(108)는 적용 가능한 블록체인 프로토콜에 따라 동작하는 노드들의 네트워크를 포함한다. 일부 구현예에서, 제1 컴퓨팅 디바이스(102), 제2 컴퓨팅 디바이스(104), 및/또는 서버(106) 중 하나 이상은 블록체인 네트워크(108) 내 노드들일 수도 있지만, 본 예시에서는 설명의 용이성을 위해 블록체인 네트워크(108)와 별도의 노드인 것으로 도시된다.
본 예시적인 시스템(100)에서, “앨리스(Alice)”로서 분류(labelled)된 제1 컴퓨팅 디바이스(102)는 비대칭 암호화 통신에서 사용하기 위한 공개-개인 키 쌍을 갖는다. 일부 암호화 시나리오에서 공개 키를 사용하기 위해, 앨리스는 공개 키 및 공개 키와 앨리스의 연관성(association)을 증명하는, 대응하는 디지털 인증서를 가져야 할 수 있다. 따라서, 동작(110)에서, 앨리스는 등록 요청과 함께 공개 키(PKA)를 CA에게 제공한다. CA는 공개 키의 소유자로서의 앨리스의 신원을 보장하기 위해 일정 수준으로 증명에 관여할 수 있다. 일부 경우, 이러한 증명은 동작(110)에 제공되는 데이터에 기초하여 서버(106)에 의해 수행되는 자동화 온라인 동작(automated online operations)일 수 있다. 일부 경우에, 이러한 증명은 추가적으로 또는 대안적으로 오프라인 증명 동작을 포함할 수 있다. 2-단계 증명(two-factor authentication) 및 이러한 다른 기법이 활용될 수 있다.
일단 CA가 공개 키(PKA)가 인증되는 것으로 결정하면, 공개 키(PKA)를 포함하고 CA에 의해 서명된 블록체인 트랜잭션인 “인증 트랜잭션(certification transaction”(CTX)을 생성한다. 인증 트랜잭션은 CA에 의해 제어되는 출력을 더 포함한다. 트랜잭션은 동작(112)에 의해 표시되는 바와 같이, 블록체인 네트워크(108)에 제출된다. 그러면, CA는 동작(114)에서, 인증 트랜잭션 식별자(TxIDCTX_PKA)를 앨리스에게 제공한다. 일부 구현예에서, 앨리스는, 트랜잭션 식별자에 기초하여 블록체인 네트워크(108)로부터 인증 트랜잭션의 사본을 획득하여, 기대치(expectations)에 부합하고 공개 키(PKA)를 포함하는지 확인할 수 있다.
트랜잭션 식별자(TxIDCTX _ PKA)는 공개 키(PKA)와 함께 앨리스에 대한 디지털 인증서를 효과적으로 형성한다. 본 예시에서 “밥(Bob)”으로 분류되는 제2 통신 디바이스(104)와의 일부 통신과 관련하여, 동작(116)에서 앨리스는 밥에게 앨리스의 디지털 인증서를 전송할 수 있다. 그러면, 밥은 공개 키(PKA)를 증명할 수 있고, 블록체인 네트워크(108)에 의해 유지되는 블록체인에 기초하여 인증이 폐기되지 않았음을 검증한다.
특히, 동작(118 및 120)에서, 밥은 인증 트랜잭션의 사본을 요청 및 수신할 수 있다. 인증 트랜잭션으로부터, 밥은 이것이 앨리스의 공개 키(PKA)로 주장되는(purported) 것을 포함하고 있는지, 그리고 신뢰할 수 있는 인증 기관에서 서명된 것인지 검증할 수 있다. 동작(122 및 124)에 의해 표시되는 바와 같이, 밥은 CA에 의해 제어되는 트랜잭션 출력이 “미사용” 상태로 남아있는지, 즉 트랜잭션 출력 지점이 블록체인 네트워크(108)에 대한 UTXO 풀(130)에 존재하는지 질의함으로써 인증이 폐기되지 않았음을 추가적으로 검증할 수 있다. UTXO 풀(130)은 블록체인 네트워크(108)의 다수의 노드 중 어느 하나에 의해 관리되는 “미사용” 트랜잭션 출력 지점의 풀이다.
이제, 인증 기관에 공개 키를 등록하기 위한 하나의 예시적인 방법을 흐름도 형태로 도시하는 도 2를 참조할 것이다. 예시적인 방법(200)은 인가된 인증 기관에 의해 구현되며, 설명되는 기능들을 수행하도록 적절하게 프로그램되는 하나 이상의 서버에 의해 구현될 수 있다.
동작(202)에서, 인증 기관은 공개 키(PKA)의 인증을 위한 앨리스로부터의 요청을 수신한다. 인증 기관은 적용 가능한 정책에 따라 증명 또는 인가 프로토콜을 수행할 수 있다. 이러한 프로토콜은 자동화된 컴퓨터-구현되는 동작 및/또는 운영자-수행되는 동작(administrator-facilitated operations)을 포함할 수 있다. 특정 증명 동작에 관계없이, 동작(204)에서, 앨리스에 대한 공개 키를 인증할 것인지 여부에 대한 결정이 이루어진다. 만약 아닐 경우, 방법(200)은 종료된다. 인증이 허가될 경우, 동작(206)에서 인증 기관은 인증 트랜잭션을 생성한다. 전술된 바와 같이, 인증 트랜잭션은 인증 기관의 공개 키 및 인증 기관으로부터의 디지털 서명을 포함하는 입력, 인증 기관에 의해 제어되는 출력, 및 공개 키(PKA)를 포함한다. 특정 예시를 제공하기 위해, 입력은 인증 기관이 유효한 잠금 해제 스크립트에서 서명을 생성하기 위해 개인 키를 가지고 있는 일부 공칭(nominal) 또는 임의 값(arbitrary value)의 UTXO일 수 있다. UTXO는 인증 트랜잭션을 채굴하기 위한 임의의 트랜잭션 수수료(transaction fee)를 상쇄(offset)하기에 충분한 디지털 값과 연관될 수 있다.
인증 트랜잭션은 2개의 출력을 포함할 수 있으며, 첫 번째 것은 인증 기관에 의해 선택 및 제어되는 CA 공개 키(PKCTX _ PKA)에 기반한 것이고, 두 번째 것은 예를 들어 비-운영 정보 필드(non-operational information field)에 공개 키(PKA)를 포함하는 것이다. 후자의 예시는 비트코인의 OP_RETRUN 함수이다. OP_RETURN은 실질적으로 트랜잭션이 채굴되면 블록체인 상의 기록을 위해 임의의 데이터가 배치될 수 있는 출력이다.
제1 출력은 예를 들어, 인증 기관에 의해 선택 및 제어되는 공개 키 해시(public key hash)(예를 들어, 비트코인 주소)로의 전환을 특정하는 P2PKH(pay to public key hash) 동작일 수 있다.
트랜잭션 내 디지털 서명을 통해, 인증 기관은 트랜잭션에 대한 UTXO의 입력을 인가하여 잠금 해제 스크립트를 만족시키고, 인증 기관이 OP_RETURN 출력에 나타나는 공개 키(PKA)를 인증하였다는 검증 가능한 증거를 제공한다. 일부 구현예에서, 앨리스로부터의 디지털 서명 또는 이러한 기타 데이터와 같은 추가적인 정보가 OP_RETURN 출력 필드에 나타날 수 있음에 유의한다.
인증 트랜잭션이 생성되면, 인증 기관은 동작(208)에서 트랜잭션 식별자(TxIDCTX_PKA)를 찾기 위해 트랜잭션을 해싱하고, 동작(210)에 의해 표시되는 바와 같이 블록체인 네트워크에 트랜잭션을 전파한다. 트랜잭션을 “전파(propagating)”하는 것은 이를 블록체인 네트워크의 노드에 제출하는 것을 포함하는 것으로 이해될 것이며, 여기서 트랜잭션이 검증되고, 트랜잭션이 네트워크 내 실질적으로 모든 노드에 도달할 때까지, 차례로 검증 및 재전송하는 다른 모든 노드들로 전송된다. 일부 실시예에서, 인증 기관은 그 자체가 블록체인 네트워크의 노드들 중 하나이다.
동작(212)에서 인증 기관은 인증 트랜잭션, 즉 트랜잭션의 “확인”을 포함하는 블록의 채굴을 기다리고, 그 다음 동작(214)에서 트랜잭션 식별자(TxIDCTS _ PKA)를 앨리스에게 전송한다. 일부 구현예에서, 인증 기관은 트랜잭션이 채굴되기 전에 앨리스에게 트랜잭션 식별자를 제공할 수 있다.
그러면 앨리스는 앨리스의 공개 키(PKA)를 포함하는 디지털 서명 및 인증 트랜잭션 식별자(TxIDCTX _ PKA)를 임의의 제3자에게 제공할 수 있다. 이로부터, 제3자는 앨리스의 공개 키가 CA에 의해 인증됨을 검증할 수 있다.
인증 트랜잭션의 단순화된 예시가 아래에 도시된다:
인증 트랜잭션- TXIDCTX _ PKA
입력 1: 출력 1:
아웃포인트(트랜잭션 id 및 출력 인덱스): CA의 미사용 아웃포인트 P2PKH(CA의 공개 키의 해시, 입력 내 CA의 PK와 상이할 수 있음)
잠금 해제 스크립트: <CA's Sig>, <CA's PK> 출력 2:
시퀀스 번호: 0xFFFFFFFF OP_RETURN PKA
입력에 대한 잠금 해제 스크립트는 인증 기관의 공개 키 및 인증 기관에 의해 생성되는 서명을 포함함을 유의할 것이다. 앨리스의 공개 키(PKA)는 OP_RETURN 필드에 제2 출력으로서 나타난다. 제1 출력은 인증 기관에 의해 제어되는 임의의 공개 키 해시이다.
이제, 공개 키를 검증하는 하나의 예시적인 방법(300)을 나타내는 도 3이 참조된다. 예시적인 방법(300)에서 설명되는 동작들은 도 2에 예시된 프로세스를 이용하여 인증되도록 주장되는 공개 키를 검증하고자 시도하는 컴퓨팅 디바이스에 의해 수행될 수 있다. 예시적인 컴퓨팅 디바이스는 임의의 네트워크-가능한 컴퓨팅 디바이스를 포함한다.
방법(300)은 동작(302)에서 “앨리스”로 분류되는 제1 컴퓨팅 디바이스(102)(도 1)와 같은 또 다른 개체에 대한 디지털 서명을 수신하는 단계를 포함한다. 디지털 서명은 적어도 공개 키(PKA) 및 인증 트랜잭션 식별자(TxIDCTX _ PKA)를 포함한다. 인증 트랜잭션 식별자를 사용하여, 동작(304)에서 블록체인 네트워크로부터 인증 트랜잭션이 획득된다. 인증 트랜잭션은, 사본이 컴퓨팅 디바이스에 로컬(local)인지 여부 또는 블록체인 네트워크의 노드에 의해 관리되는지 여부에 관계없이 블록체인의 사본으로부터 획득될 수 있음을 이해할 것이다. 트랜잭션이 아직 확인되지 않은 드문 경우, 즉 아직 채굴된 블록에 있지 않은 경우, 트랜잭션은 확인되지 않은 트랜잭션의 멤풀(mempool)에 존재할 수 있다. 하지만, 많은 구현예에서, 인증 기관은 앨리스에게 인증 트랜잭션이 채굴된 이후의 인증 트랜잭션만을 제공할 수 있다.
인증 트랜잭션으로부터, 컴퓨팅 디바이스는 특정 사항을 검증할 수 있다. 특히, 동작(306)에서, 컴퓨팅 디바이스는 인증 트랜잭션이 인증 기관에 의해 서명되는 것을 검증할 수 있다. 컴퓨팅 디바이스는, 컴퓨팅 디바이스가 디지털 서명을 유효성 검증할 수 있도록 할 수 있는 인정된 또는 승인된 인증 기관 및 이들의 각각의 공개 키의 리스트를 가질 수 있거나 이에 대한 액세스를 가질 수 있다. 디지털 서명은 설명된 바와 같이 인증 트랜잭션으로의 입력의 일부분을 형성할 수 있다. 인증 트랜잭션이 신뢰할 수 있는 또는 인정된 인증 기관에 의해 서명됨을 확인함으로써, 컴퓨팅 디바이스는 인증서가 적법함(legitimate)을 확인할 수 있다. 컴퓨팅 디바이스는, 트랜잭션이 블록 체인에 있을 경우, 채굴자에 의해 확인 및 검증될 것이기 때문에, 입력 내 디지털 서명을 반드시 검증할 필요가 없음에 유의한다. 그보다, 컴퓨팅 디바이스는 입력에서 식별되는 공개 키가 인증 기관과 연관이 있음을 단순히 검증할 수 있다.
컴퓨팅 디바이스는 동작(308)에 의해 표시되는 바와 같이, 인증 트랜잭션의 출력 지점들 중 하나가 “미사용”으로 남아있음, 즉 출력 지점이 UTXO 풀에서 발견을 추가적으로 검증할 수 있다. 이러한 검증 동작은 인증서가 유효하고 폐기되지 않은 채로 남아있음을 확인한다. 위에서 논의된 바와 같이, 이러한 출력 지점은 대부분의 실시예(대안책들은 이하에서 설명된다)에서 인증 기관에 의해 제어되며, 이는 키가 손상되거나, 만료되거나, 또는 다른 방식으로 더 이상 유효하지 않는 경우, 인증 기관이 인증을 취소할 수 있도록 한다. 폐기 또는 취소는 인증 기관이 출력 지점을 “사용(spend)”하여, UTXO 풀로부터 제거하도록 함으로써 용이하게 이루어질 수 있다. 출력 지점이 UTXO 풀에 존재함을 확인하는 것은 예를 들어, TxID 번호 및 출력 인덱스에 기초하여 UTXO 풀을 질의함으로써 수행될 수 있다. 일부 예시에서, 컴퓨팅 디바이스는 블록체인 네트워크의 노드와 같은 중재자(intermediary)를 통해 UTXO 풀을 질의할 수 있다.
동작(310)에서, 컴퓨팅 디바이스는 인증 트랜잭션의 제2 출력 내 공개 키(PKA)가 앨리스로부터의 디지털 서명의 일부로서 수신된 공개 키(PKA)와 일치함을 확인한다.
동작(306, 308, 및 310)이 모두 확인되면, 동작(312)에서 컴퓨팅 디바이스는 앨리스로부터 수신된 디지털 인증서 내 공개 키(PKA)가 유효함을 결정한다.
공개 키 인증을 기록하기 위해 블록체인 네트워크를 사용함으로써, 인증 기관들은 출력 지점을 “사용”함으로써 동작(308)에서의 검증이 실패하도록 인증을 신속하고 용이하게 폐기할 수 있다. 따라서, 인증 기관은 인증 트랜잭션의 제1 출력을 이용하는 트랜잭션을 생성 및 전파함으로써 공개 키의 인증을 폐기할 수 있다. 위에서 논의된 바와 같이, 제1 출력은 공칭 디지털 자산(nominal digital asset)을 제1 출력에서 특정되는 공개 키 해시 주소로 전송하는 P2PKH 동작일 수 있다. 이러한 예시에서, 그 제1 출력을 위한 잠금 해제 스크립트는 P2PKH 동작에서 사용되는 CA 공개 키(PKCTX _ PKA)에 대응하는 개인 키에 대한 제어를 요구하는 인증 기관으로부터 디지털 서명을 요구할 수 있다.
일부 경우에, 인증 기관은 단순히 인증을 폐기하지 않을 수 있고, 인증된 공개 키를 대체/업데이트하도록 요청 받을 수 있다. 예를 들어, 개인 키가 손실되거나 손상되는 경우, 소유자(예를 들어, 앨리스)는 인증 기관이 이전에-인증된 공개 키를 신규 공개 키(PKA _new)로 업데이트 또는 대체하도록 요청할 수 있다. 인증 기관은 어떤(whatever) 온라인 또는 오프라인 증명 메커니즘이 작동되든(in place) 이를 사용하여 요청을 증명하고, 업데이트 동작이 발생되어야 함을 결정하면, 구 인증(old certification)을 폐기하고 신규 인증을 발행하기 위해 신규 인증 트랜잭션(CTXnew)을 생성한다.
신규 인증 트랜잭션은 동일한 유형의 출력, 즉 PKCTX _new와 같은 CA에 의해 선택되는 신규 공개 키 및 PKA _new를 포함하는 OP_RETURN 필드를 사용하는 P2PKH 동작을 특징으로 한다. 하지만, 입력은 본래의 인증 트랜잭션(TxIDCTX _ PKA)으로부터 CA=제어된 출력 지점을 포함할 수 있다. 신규 인증 트랜잭션의 입력으로서 이러한 출력을 “사용”함으로써, UXTO 풀로부터 그 출력 지점을 제거함에 의해 폐기가 달성된다. 유리하게는, 구 공개 키 인증의 폐기와 신규 공개 키 인증의 등록은 단일 트랜잭션에서 발생한다. 또한, 별도의 인증 폐기에 대한 주기적으로 공개되는 리스트가 관리되거나 인증 기관에 의해 사용 가능하게 만들어질 필요가 없다.
전술한 바와 같이, 많은 경우에 인증 트랜잭션의 제1 출력 지점은, 인증 기관만이 공개 키의 인증을 폐기할 수 있도록, 인증 기관에 의해 제어될 수 있다. 폐기는 출력 지점에 대응하는 개인 키를 사용함으로써 제1 출력 지점을 “사용”하는 것에 기초한다. 하지만, 일부 경우에는, 인증 트랜잭션이 다른 개체로 하여금 인증을 폐기할 수 있도록 하기 위해 구조화하는 것이 유리할 수 있다.
예를 들어, 일부 경우에는 공개 키의 소유주, 예를 들어 앨리스가 자신의 공개 키를 폐기할 권한을 가질 수 있다. 이러한 방식(arrangement)에서, 인증 트랜잭션에서의 제1 출력 지점은 앨리스에 의해 제어된다. 즉, 앨리스가 대응하는 개인 키를 갖는 공개 키(공개 키 해시)를 참조한다. 즉, 제1 출력 지점에 대한 잠금 해제 스크립트는 앨리스로부터의 디지털 서명을 요구한다. 이러한 방식은 온라인 서비스로의 등록과 같은 일부 공개 키 인증 시나리오의 경우에 유리할 수 있다. 온라인 서비스의 일 예시는 소셜 미디어 플랫폼에서의 소셜 미디어 계정이다. 플랫폼은 플랫폼 이용을 위한 사용자의 공개 키를 등록하기 위해 전술된 메커니즘을 사용하여, 사용자로 하여금 인증 트랜잭션을 통해 백업되는 그들의 디지털 인증서에 의한 신뢰성 있는 기반에 의해 플랫폼과 및/또는 플랫폼의 다른 사용자들과 상호 작용 가능하도록 할 수 있다. 그러면, 사용자는 플랫폼의 협조 없이 그들의 계정을 종료(terminate)하기 위해 인증을 폐기할 수 있다.
또 다른 시나리오에서, 하나보다 많은 출력 지점이 제공되어, 그들 중 하나가 인증을 종료하기 위해 “사용”될 수 있다. 이러한 시나리오에서, 제3자는 이들의 UTXO 풀에서의 미사용 트랜잭션 출력으로서의 존재를 위해 인증 트랜잭션의 이러한 출력 지점들 두 개 다(both)(또는 모두)를 테스트하도록 구성된다.
대안적으로, 다수의 당사자 중 어느 한 명으로부터 폐기가 촉진되는 경우, 제1 출력은 다수의 서명을 사용하도록 구성될 수 있다. 즉, 출력을 “사용”하기 위해 다수의 서명 중 어느 하나가 사용될 수 있다. 이러한 목적을 위해, 다중-서명(multi-sig)이 출력에서 사용될 수 있다.
또 다른 시나리오에서, 다중-서명은 적어도 임계 수의 개체가 인증서를 폐기하는 데 동의하는 것을 보장하도록 구성될 수 있다. 다중-서명은 출력을 잠금 해제하기 위해 m개 서명 중 n개의 서명을 요구하도록 구성될 수 있으며, 이때 n≤m이다. 하나의 예시로서, 기업(business), 파트너쉽 또는 기타 이러한 개인들의 집합과 같은 조직의 경우, 조직과 연관된 인증된 공개 키는 CEO, COO, CTO 또는 기업에 관여하는 다른 임원 또는 개인과 같은 특정 개체들 중 모두 또는 적어도 임계 수 만큼이 폐기를 승인(sign off)한 경우에만 폐기 가능할 수 있다.
다양한 전술된 예시적인 방법들의 전술된 동작들 중 일부 또는 전부는 도시된 것과는 다른 순서로 수행될 수 있고, 및/또는 이러한 방법의 전체 동작을 변화시키지 않으면서 동시에 수행될 수 있음을 이해할 것이다.
이제, 본 출원의 일 예시에 따른 단순화된 컴퓨팅 디바이스(400)를 블록도 형태로 도시하는 도 4를 참조한다. 컴퓨팅 디바이스(400)는 전술된 기능 중 하나 이상을 수행할 수 있다. 이러한 의미에서, 일부 구현예에서 그것은 제1 컴퓨팅 디바이스(102)(도 1), 제2 컴퓨팅 디바이스(104)(도 1), 또는 서버(106)(도 1)로서의 역할을 할 수 있다.
컴퓨팅 디바이스(400)는 하나 이상의 마이크로프로세서, 주문형 반도체(ASICs: application specific integrated circuits), 마이크로 제어기, 또는 유사한 컴퓨터 처리 디바이스를 포함할 수 있는 프로세서(402)를 포함한다. 컴퓨팅 디바이스(400)는 값, 변수, 및 일부 경우에는 프로세서-실행 가능한 프로그램 명령어를 저장하기 위해 영구적 및 비-영구적 메모리를 포함할 수 있는 메모리(404), 및 네트워크 인터페이스(406)를 더 포함할 수 있다.
컴퓨팅 디바이스(400)는 실행될 때 프로세서(402)로 하여금 본 명세서에서 설명되는 기능 또는 동작들 중 하나 이상을 수행하도록 하는 프로세서-실행 가능한 명령어를 포함하는 프로세서-실행 가능한 어플리케이션(408)을 포함할 수 있다.
위에서 제시된 다양한 실시예들은 단지 예시이며, 절대 본 출원의 범위를 제한하도록 의도되지 않는다. 본 명세서에서 설명되는 혁신들의 변형은 당 업계의 통상의 기술자에게 명백할 것이며, 이러한 변형들은 본 출원의 의도되는 범위 내에 있다. 특히, 전술된 예시적인 실시예들 중 하나 이상으로부터의 특징들은, 위에서 명시적으로 설명되지 않았을 수 있는 특징들의 하위 조합을 포함한 대안적인 예시적인 실시예를 생성하기 위해 선택될 수 있다. 또한, 전술된 예시적인 실시예들 중 하나 이상으로부터의 특징들은, 위에서 명시적으로 설명되지 않았을 수 있는 특징들의 조합을 포함한 대안적인 예시적인 실시예를 생성하기 위해 선택 및 조합될 수 있다. 이러한 조합 및 하위 조합에 적절한 특징들은 본 출원 전체를 검토할 때 통상의 기술자에게 용이하게 명백해질 것이다. 본 명세서 및 인용된 청구항에 기재되어 있는 본 발명은 기술적으로 모든 적절한 변경 사항을 포함 및 포섭하는 것으로 의도된다.

Claims (15)

  1. 블록체인 네트워크를 이용하여 공개 키 기반 구조를 관리하는 컴퓨터-구현되는 방법에 있어서,
    제1 개체에 대한 디지털 인증서(digital certificate)를 생성하되 - 상기 제1 개체는 제1 공개 키(first public key)를 가짐 -:
    인증 트랜잭션(certification transaction), 제2 공개 키에 기초한 주소로의 제1 출력, 및 상기 제1 공개 키를 포함하는 정보 필드를 갖는 제2 출력을 생성하고 - 상기 인증 트랜잭션은 인증 기관(certificate authority)으로부터의 디지털 서명(digital signature)을 포함함 -;
    상기 인증 트랜잭션의 해시(hash)로부터 인증 트랜잭션 식별자를 결정하고; 및
    상기 인증 트랜잭션을 상기 블록체인 네트워크 상에 전파
    함으로써, 상기 제1 개체에 대한 디지털 인증서를 생성하는 단계를 포함하며,
    상기 디지털 인증서는 상기 제1 공개 키 및 상기 인증 트랜잭션 식별자를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제2 출력은 적어도 상기 제1 공개 키를 포함하는 OP_RETURN 필드를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 출력은 상기 제2 공개 키의 해시로서 획득되는 주소를 참조하는 P2PKH(pay-to-public-key-hash) 동작을 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 인증 기관은 상기 제2 공개 키에 대응하는 제2 개인 키를 유지(hold)하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 디지털 인증서를 검증하는 단계로서,
    상기 디지털 인증서 내 상기 인증 트랜잭션 식별자에 기초하여, 블록체인으로부터 상기 인증 트랜잭션의 사본을 획득하고;
    상기 제1 출력이 미사용 트랜잭션 출력(unspent transaction output)임을 결정하고; 및
    상기 인증 트랜잭션 내 상기 제2 출력에 포함되는 상기 제1 공개 키가 상기 디지털 인증서 내 공개 키와 일치함을 결정
    함으로써, 상기 디지털 인증서를 검증하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제1 출력이 미사용 트랜잭션 출력임을 결정하는 것은, 상기 제1 출력이 상기 블록체인 네트워크의 미사용 트랜잭션 출력 풀(unspent transaction output pool)에 존재함을 결정하는 것을 포함하는, 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 인증 트랜잭션으로의 입력은 인증 기관 공개 키(certificate authority public key)를 더 포함하고, 상기 디지털 인증서를 검증하는 단계는 상기 인증 트랜잭션이 상기 인증 기관 공개 키에 기초하여 상기 인증 기관에 의해 서명됨을 결정하는 것을 더 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 인증 트랜잭션의 상기 제1 출력을 입력으로서 포함하는 폐기 트랜잭션(revocation transaction)을 생성함으로써 상기 디지털 인증서를 폐기하는 단계, 및 상기 블록체인 네트워크 상에 상기 폐기 트랜잭션을 전파하는 단계를 더 포함하는, 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 디지털 인증서를 신규 공개 키를 위한 신규 디지털 인증서로 대체하는 단계로서,
    신규 인증 트랜잭션을 생성하고 - 상기 신규 인증 트랜잭션은 입력으로서 상기 인증 트랜잭션의 상기 제1 출력, 제3 공개 키에 기초한 신규 주소로의 제1 신규 출력, 및 상기 정보 필드를 갖는 제2 신규 출력을 포함하며, 상기 정보 필드는 상기 신규 공개 키를 포함함 -;
    상기 신규 인증 트랜잭션의 해싱으로부터 신규 인증 트랜잭션 식별자를 결정하고; 및
    상기 신규 인증 트랜잭션을 상기 블록체인 네트워크 상에 전파
    함으로써, 상기 디지털 인증서를 신규 공개 키를 위한 신규 디지털 인증서로 대체하는 단계 - 상기 신규 디지털 인증서는 상기 신규 공개 키 및 상기 신규 인증 트랜잭션 식별자를 포함함 - 를 더 포함하는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 정보 필드는 OP_RETURN 출력인, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 인증 트랜잭션은 인증 기관 공개 키의 해시로부터 획득되는 미사용 트랜잭션 아웃포인트 주소를 참조하는 입력을 포함하고, 상기 인증 트랜잭션은 상기 인증 기관 공개 및 상기 디지털 서명을 포함하는 상기 미사용 트랜잭션 아웃포인트 주소에 대한 잠금 해제 스크립트를 포함하며, 상기 디지털 서명은 상기 인증 기관 공개 키에 대응하는 개인 키에 기초하여 생성되는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 출력은, 2개 이상의 개인 키 중 어느 하나가 상기 제1 출력을 활용할 수 있도록 하는 다중-서명 잠금 스크립트(multi-sig locking script)를 포함하는, 방법.
  13. 블록체인 네트워크를 이용하여 공개 키 기반 구조를 관리하기 위한 컴퓨팅 디바이스에 있어서, 상기 컴퓨팅 디바이스는,
    하나 이상의 프로세서;
    메모리;
    상기 하나 이상의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제12항 중 어느 한 항에서 청구되는 방법을 수행하도록 하는 상기 메모리에 저장된 컴퓨터-실행 가능한 명령어
    를 포함하는, 컴퓨팅 디바이스.
  14. 블록체인 네트워크를 이용하여 공개 키 기반 구조를 관리하기 위한 프로세서-실행 가능한 명령어를 저장하는 컴퓨터-판독 가능 매체에 있어서, 상기 프로세서-실행 가능한 명령어는, 하나 이상의 프로세서에 의해 실행될 때 상기 프로세서로 하여금 제1항 내지 제12항 중 어느 한 항에서 청구되는 방법을 수행하도록 하는 명령어를 포함하는, 컴퓨터-판독 가능 매체.
  15. 블록체인 네트워크를 이용하여 디지털 인증서를 검증하는 컴퓨터-구현되는 방법에 있어서, 상기 디지털 인증서는 제1 공개 키 및 인증 트랜잭션 식별자를 포함하고, 상기 방법은,
    제1 개체로부터 상기 디지털 인증서를 수신하는 단계;
    상기 디지털 인증서 내 상기 인증 트랜잭션 식별자에 기초하여 블록체인으로부터 상기 인증 트랜잭션의 사본을 획득하는 단계 - 상기 인증 트랜잭션은 인증 기관으로부터의 디지털 서명, 제2 공개 키에 기초한 주소로의 제1 출력, 및 정보 필드를 갖는 제2 출력을 포함함 -;
    상기 정보 필드가, 상기 디지털 인증서 내 상기 제1 공개 키와 일치하는 공개 키를 포함함을 결정하는 단계;
    상기 인증 트랜잭션 내 상기 제1 출력이 어떤 후속 트랜잭션에서도 사용되지 않았음을 결정하기 위해 미사용 트랜잭션 출력 풀을 질의하는 단계; 및
    이러한 결정들에 기초하여, 상기 제1 공개 키가 유효한 것으로 인증됨을 검증하는 단계
    를 포함하는, 방법.
KR1020217040005A 2019-05-10 2020-05-05 블록체인을 이용한 공개 키 관리를 위한 방법 및 디바이스 KR20220006097A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1906637.2A GB2583767A (en) 2019-05-10 2019-05-10 Methods and devices for public key management using a blockchain
GB1906637.2 2019-05-10
PCT/IB2020/054259 WO2020229947A1 (en) 2019-05-10 2020-05-05 Methods and devices for public key management using a blockchain

Publications (1)

Publication Number Publication Date
KR20220006097A true KR20220006097A (ko) 2022-01-14

Family

ID=67384537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217040005A KR20220006097A (ko) 2019-05-10 2020-05-05 블록체인을 이용한 공개 키 관리를 위한 방법 및 디바이스

Country Status (8)

Country Link
US (1) US20220094542A1 (ko)
EP (2) EP4312399A3 (ko)
JP (1) JP2022532578A (ko)
KR (1) KR20220006097A (ko)
CN (1) CN113950801B (ko)
GB (1) GB2583767A (ko)
SG (1) SG11202112441PA (ko)
WO (1) WO2020229947A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024117830A1 (ko) * 2022-11-30 2024-06-06 히포크랏다오 아이앤씨 통신 시스템에서 블록 체인에 기반하여 보안성을 가진 의료 데이터 거래를 지원하기 위한 방법 및 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3970102A1 (en) * 2019-05-16 2022-03-23 GMO Globalsign, Inc. Systems and methods for blockchain transactions with offer and acceptance
CN110601851B (zh) * 2019-09-12 2021-06-04 腾讯科技(深圳)有限公司 在区块链网络中更换身份证书的方法、装置、介质和设备
GB2594684A (en) 2020-02-19 2021-11-10 Nchain Holdings Ltd Layered network
GB2592211A (en) 2020-02-19 2021-08-25 Nchain Holdings Ltd Adapting connections of a layered network
SE545490C2 (en) 2021-02-11 2023-09-26 Wone Sagl Methods, module and blockchain for distributed public keystore
EP4054116A1 (en) * 2021-03-05 2022-09-07 Siemens Aktiengesellschaft Ecosystem exchanging information about esg data of a product related entity
GB2607618A (en) * 2021-06-09 2022-12-14 Nchain Licensing Ag Computer-implemented method and system
EP4422116A1 (en) * 2023-02-27 2024-08-28 ZF CV Systems Global GmbH Computer-readable medium relating to trust relationships between a first party and a second party, search method, computer program for an electronic device, electronic device, and first vehicle, in particular utlity vehicle
CN116886319A (zh) * 2023-09-08 2023-10-13 海马云(天津)信息技术有限公司 证书校验方法及装置、通信设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661930B1 (ko) * 2015-08-03 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템
KR101766303B1 (ko) * 2016-04-19 2017-08-08 주식회사 코인플러그 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버
GB201607477D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger
KR101799343B1 (ko) * 2016-05-16 2017-11-22 주식회사 코인플러그 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버
DE102016215917A1 (de) * 2016-08-24 2018-03-01 Siemens Aktiengesellschaft Gesichertes Verarbeiten einer Berechtigungsnachweisanfrage
CN106372941B (zh) * 2016-08-31 2019-07-16 江苏通付盾科技有限公司 基于区块链的ca认证管理方法、装置及系统
US10848322B2 (en) * 2017-03-24 2020-11-24 Cable Television Laboratories, Inc System and method for distributed PKI root
CN107592293A (zh) * 2017-07-26 2018-01-16 阿里巴巴集团控股有限公司 区块链节点间通讯方法、数字证书管理方法、装置和电子设备
US11546162B2 (en) * 2017-11-09 2023-01-03 Nchain Licensing Ag Systems and methods for ensuring correct execution of computer program using a mediator computer system
FR3076422B1 (fr) * 2017-12-29 2020-09-25 Commissariat Energie Atomique Methode d'echange de cles authentifie par chaine de blocs
CN108667618B (zh) * 2018-05-10 2020-07-03 阿里巴巴集团控股有限公司 区块链成员管理的数据处理方法、装置、服务器及系统
CN108964924B (zh) * 2018-07-24 2020-06-05 腾讯科技(深圳)有限公司 数字证书校验方法、装置、计算机设备和存储介质
CN109617698B (zh) * 2019-01-09 2021-08-03 腾讯科技(深圳)有限公司 发放数字证书的方法、数字证书颁发中心和介质
SG11202108153QA (en) * 2019-02-15 2021-08-30 Nchain Holdings Ltd Computer-implemented systems and methods for implementing transfers over a blockchain network
CN111106940B (zh) * 2019-11-25 2022-11-04 广州大学 一种基于区块链的资源公钥基础设施的证书交易验证方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024117830A1 (ko) * 2022-11-30 2024-06-06 히포크랏다오 아이앤씨 통신 시스템에서 블록 체인에 기반하여 보안성을 가진 의료 데이터 거래를 지원하기 위한 방법 및 장치

Also Published As

Publication number Publication date
EP3966997A1 (en) 2022-03-16
US20220094542A1 (en) 2022-03-24
JP2022532578A (ja) 2022-07-15
EP4312399A2 (en) 2024-01-31
GB201906637D0 (en) 2019-06-26
GB2583767A (en) 2020-11-11
CN113950801A (zh) 2022-01-18
EP3966997B1 (en) 2024-02-07
CN113950801B (zh) 2024-10-11
EP4312399A3 (en) 2024-02-14
WO2020229947A1 (en) 2020-11-19
SG11202112441PA (en) 2021-12-30

Similar Documents

Publication Publication Date Title
KR20220006097A (ko) 블록체인을 이용한 공개 키 관리를 위한 방법 및 디바이스
KR102440626B1 (ko) 디지털 인증서 관리 방법, 장치, 컴퓨터 기기 및 저장 매체
US11228452B2 (en) Distributed certificate authority
JP7109569B2 (ja) デジタル証明書の検証方法並びにその、装置、コンピュータ機器並びにコンピュータプログラム
US8312264B2 (en) Method and system for authentication among peer appliances within a computer network
US9906373B2 (en) Revocation of public key infrastructure signatures
CN114008968B (zh) 用于计算环境中的许可授权的系统、方法和存储介质
US10200199B2 (en) Strengthened entity identity for digital record signature infrastructure
US20230006840A1 (en) Methods and devices for automated digital certificate verification
US8984283B2 (en) Private certificate validation method and apparatus
JP2019519987A (ja) ブロックチェーンに基づくアイデンティティ認証方法、装置、ノード及びシステム
US20110231662A1 (en) Certificate validation method and validation server
US11968316B1 (en) Systems and methods for enhanced public key infrastructure
WO2011022918A1 (zh) 一种引入在线第三方的实体双向鉴别方法
CN112583596A (zh) 一种基于区块链技术的完全跨域身份认证方法
WO2011026296A1 (zh) 引入在线可信第三方的实体鉴别方法
WO2011022919A1 (zh) 一种引入在线第三方的实体鉴别方法
Larsen et al. Direct anonymous attestation on the road: Efficient and privacy-preserving revocation in c-its
CN112968779A (zh) 一种安全认证与授权控制方法、控制系统、程序存储介质
Bavishi et al. Scalable and efficient mutual authentication strategy in fog computing
JP5641493B2 (ja) 公開鍵証明書検証処理システム
Scurtu et al. Device Centric Cloud Signature Solution under eIDAS Regulation
Bellatriu Kerberos Realm Crossover
CN117811738A (zh) 一种网络中授权证书生成、认证的方法和设备
Zieglar et al. Suite B Profile of Certificate Management over CMS