KR20240005957A - 양자 내성 해싱 스킴을 위한 방법 및 시스템 - Google Patents

양자 내성 해싱 스킴을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20240005957A
KR20240005957A KR1020237042852A KR20237042852A KR20240005957A KR 20240005957 A KR20240005957 A KR 20240005957A KR 1020237042852 A KR1020237042852 A KR 1020237042852A KR 20237042852 A KR20237042852 A KR 20237042852A KR 20240005957 A KR20240005957 A KR 20240005957A
Authority
KR
South Korea
Prior art keywords
value
reference value
block
blockchain
processing server
Prior art date
Application number
KR1020237042852A
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
Priority claimed from US17/317,456 external-priority patent/US11626999B2/en
Application filed by 마스터카드 인터내셔날, 인코포레이티드 filed Critical 마스터카드 인터내셔날, 인코포레이티드
Publication of KR20240005957A publication Critical patent/KR20240005957A/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/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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/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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 방법은 가장 최근의 블록을 포함하는 블록체인을 저장하는 단계; 거래 데이터 값을 수신하는 단계; 제1 기준 값 및 제2 기준 값을 수신하는 단계; 제1 기준 값을 해싱함으로써 제1 해시 값을 생성하는 단계; 제1 해시 값, 제2 해시 값, 제3 기준 값, 및 블록 값을 포함하는 블록 증명을 생성하는 단계; 블록 증명을 사용하여 가장 최근 블록의 블록 헤더를 검증하는 단계; 새로운 블록 값을 수신하는 단계; 제1 기준 값, 제2 기준 값, 제4 기준 값, 및 새로운 블록 값을 포함하는 새로운 블록 헤더를 생성하는 단계; 새로운 블록 헤더 및 거래 데이터 값을 포함하는 블록체인에 대한 새로운 블록을 생성하는 단계; 및 새로운 블록을 블록체인과 연관된 하나 이상의 추가 노드로 전송하는 단계를 포함한다.

Description

양자 내성 해싱 스킴을 위한 방법 및 시스템
관련 출원의 교차 참조
본 출원은 2021년 5월 11일에 출원된 미국 특허 출원 제17/317,456호의 이익을 주장하며, 그 전체 내용은 모든 목적을 위해 본원에 참조로서 원용된다.
기술분야
본 개시내용은 양자 컴퓨팅을 포함한 컴퓨팅 기법의 사용을 통해 깨지거나 해결되지 않는 해싱 스킴(hashing scheme)을 사용하여, 제시된 신원 또는 계약서와 같은, 주장의 증명을 검증할 수 있는 것에 관한 것이다.
많은 암호화 기법은 표준 컴퓨터로는 해결이 거의 불가능한 수학적 문제를 포함하는 복잡한 알고리즘의 사용을 중심으로 다룬다. 예를 들어, 블록체인 및 디지털 서명 사용에 의존하는 다른 기술은 소인수 분해에 의존하는 RSA(Rivest-Shamir-Adleman) 또는 이산 로그 문제를 사용하는 ECDSA(타원 곡선 디지털 서명 알고리즘)를 활용하는 경우가 많다. 둘 모두의 경우, 표준 컴퓨터는 이러한 수학적 문제를 해결하기에 너무 느리고 비효율적이므로, 관련 알고리즘을 적합하게 암호화적으로 안전하게 만든다.
그러나, 양자 컴퓨팅이 개발되고 있으며, 이는 성공할 경우 이러한 수학적 문제를 해결할 수 있는 잠재력을 갖는다. 그 결과, RSA 및 ECDSA와 같은 알고리즘을 통한 디지털 서명을 사용하면 근본적인 수학 문제가 해결될 수 있을 때 효과적이지 못하므로, 수많은 취약점 및 보안 위협을 야기할 수 있다. 또한, 전통적인 해시 기반 서명은 사용하기에 너무 비현실적인 데이터 크기를 갖고 있다. 따라서, 기존 알고리즘에서 이용 가능한 신원 및 주장 증명을 계속 제공하면서 양자 컴퓨팅에 의한 해결 노력에도 저항하는 암호화 기법을 사용할 수 있는 기술 시스템이 필요하다.
본 개시내용은 해시 지향적 거래 스킴을 사용하여 값의 주장을 증명하기 위한 시스템 및 방법에 대한 설명을 제공한다. 수학적 문제에 의존하는 표준 알고리즘 대신 해싱을 사용하는 것은, 특히 SHA-256과 같이 충돌에 견딜 수 있을 충분한 크기를 갖는 결과 값과 함께 충분히 복잡한 해시가 사용되는 경우, 양자 컴퓨팅에 대한 저항을 제공한다. 블록체인은 선언을 저장하는 데 사용되며, 여기서 블록체인은 선언 메시지의 불변의 타임스탬프형 기록을 제공한다. 선언은 신원 문서, 계약서, 토지 증서, 투표 기록 등과 같이 사용자가 나중에 증명하기를 원할 수 있는 값을 포함한다. 선언은 또한 값을 해싱하여 생성된 해시 값뿐만 아니라 사용자에게만 알려진 하나 이상의 다른 품목을 포함한다. 사용자가 해당 값의 소유권을 증명하거나 또는 다른 방식으로 진위를 입증하려는 경우, 사용자는 블록체인에 대해 확인 메시지를 만들 수 있다. 확인 메시지는 선언에 저장된 해시 값을 생성하는 데 사용된 하나 이상의 다른 품목을 포함한다. 사용자에게 알려진 해당 값을 드러냄으로써, 사용자의 주장을 감사하려는 임의의 엔티티는 입증될 값 및 확인 메시지 내의 하나 이상의 다른 품목을 사용하여 해시 값을 계산하고 이를 선언 내의 해시 값과 대조할 수 있다. 일치는 사용자의 주장이 성공했음을 증명한다. 그 결과는 양자 컴퓨팅에 저항하면서, 동시에 사용자가 해싱 및 블록체인의 사용을 통해 값의 주장을 빠르고 쉽고 안전하게 증명할 수 있게 하는 시스템이다.
해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 방법은 처리 서버의 메모리에 가장 최근의 블록을 포함하는 복수의 블록으로 구성된 블록체인을 저장하는 단계로서, 가장 최근의 블록은 블록 헤더를 포함하는, 단계; 처리 서버의 수신기가 하나 이상의 거래 데이터 값을 수신하는 단계; 처리 서버의 수신기가 제1 기준 값 및 제2 기준 값을 수신하는 단계; 처리 서버의 처리 장치가 제1 기준 값을 해싱함으로써 제1 해시 값을 생성하는 단계; 처리 서버의 처리 장치가 적어도 제1 해시 값, 제2 해시 값, 제3 기준 값, 및 블록 값을 포함하는 블록 증명을 생성하는 단계; 처리 서버의 처리 장치가 블록 증명을 사용하여 가장 최근의 블록에 포함된 블록 헤더를 검증하는 단계; 처리 서버의 수신기가 새로운 블록 값을 수신하는 단계; 처리 서버의 처리 장치가 적어도 제1 기준 값, 제2 기준 값, 제4 기준 값, 및 새로운 블록 값을 포함하는 새로운 블록 헤더를 생성하는 단계; 처리 서버의 처리 장치가 새로운 블록 헤더 및 하나 이상의 거래 데이터 값을 포함하는 블록체인에 대한 새로운 블록을 생성하는 단계; 및 처리 서버의 전송기가 새로운 블록을 블록체인과 연관된 하나 이상의 추가 노드로 전송하는 단계를 포함한다.
해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 시스템은 블록체인과 연관된 노드로서의 처리 서버; 및 블록체인과 연관된 하나 이상의 추가 노드를 포함하고, 처리 서버는 적어도 전송기; 가장 최근의 블록을 포함하는 복수의 블록으로 구성된 블록체인을 저장하는 메모리로서, 가장 최근의 블록은 블록 헤더를 포함하는, 메모리; 하나 이상의 거래 데이터 값, 제1 기준 값, 제2 기준 값을 수신하는 수신기; 및 처리 장치를 포함하고, 처리 장치는 제1 기준 값을 해싱함으로써 제1 해시 값을 생성하고, 적어도 제1 해시 값, 제2 해시 값, 제3 기준 값, 및 블록 값을 포함하는 블록 증명을 생성하고, 블록 증명을 사용하여 가장 최근의 블록에 포함된 블록 헤더를 검증하고, 수신기는 추가로 새로운 블록 값을 수신하고, 처리 장치는 추가로 적어도 제1 기준 값, 제2 기준 값, 제4 기준 값, 및 새로운 블록 값을 포함하는 새로운 블록 헤더를 생성하고, 새로운 블록 헤더 및 하나 이상의 거래 데이터 값을 포함하는 블록체인에 대한 새로운 블록을 생성하고, 전송기는 새로운 블록을 블록체인과 연관된 하나 이상의 추가 노드로 전송한다.
본 개시내용의 범위는 첨부 도면과 함께 읽을 때 예시적인 실시예에 대한 다음의 상세한 설명으로부터 가장 잘 이해된다. 도면에는 다음의 도해가 포함되어 있다.
도 1은 예시적인 실시예에 따른 해시 지향적 거래 스킴 및 블록체인을 사용하여 값의 주장을 증명하기 위한 고수준 시스템 아키텍처를 나타낸 블록도이다.
도 2는 예시적인 실시예에 따른 해시 지향적 거래 스킴 및 블록체인을 사용하여 값의 주장을 검증하기 위한 도 1의 시스템의 처리 서버를 나타낸 블록도이다.
도 3은 예시적인 실시예에 따른 도 1의 블록체인에 저장될 수 있는 예시적인 선언 및 확인 메시지를 나타낸 도면이다.
도 4는 예시적인 실시예에 따른 블록 헤더를 통한 소유권 이전을 위해 도 1의 블록체인에 저장될 수 있는 예시적인 메시지를 나타낸 도면이다.
도 5a 및 도 5b는 예시적인 실시예에 따른 도 1의 시스템에서 해시 지향적 거래 스킴 및 블록체인을 사용하여 주장된 값을 검증하기 위한 프로세스를 나타낸 흐름도이다.
도 6은 예시적인 실시예에 따른 해시 지향적 거래 스킴을 사용하여 값의 주장 증명을 검증하기 위한 예시적인 방법을 나타내는 순서도이다.
도 7은 예시적인 실시예에 따른 해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 예시적인 방법을 나타낸 순서도이다.
도 8은 예시적인 실시예에 따른 컴퓨터 시스템 아키텍처를 나타낸 블록도이다.
본 개시내용이 적용 가능한 추가적인 영역은 이하에 제공되는 상세한 설명으로부터 명백해질 것이다. 예시적인 실시예의 상세한 설명은 단지 예시적인 목적으로만 의도되며, 이에 따라 본 개시내용의 범위를 반드시 제한하려는 의도가 아님을 이해해야 한다.
용어의 해설
블록체인 - 암호 화폐와 같은 블록체인 기반 디지털 자산의 모든 거래에 대한 공유된 원장. 하나 이상의 컴퓨팅 장치는 블록체인 네트워크를 포함할 수 있으며, 이는 블록체인에서 블록의 일부로서 거래를 처리하고 기록하도록 구성될 수 있다. 블록이 완성되면, 그 블록은 블록체인에 추가되고 이에 의해 거래 기록이 업데이트된다. 여러 경우에, 블록체인은 시간순에 따른 거래의 원장일 수 있거나, 또는 블록체인 네트워크가 사용하기에 적합할 수 있게 기타 순서로 제시될 수 있다. 일부 구성에서, 블록체인에 기록된 거래는, 블록체인이 특정 주소에 어느 정도의 자산(들)이 귀속되는지를 기록하도록, 목적지 주소 및 화폐량을 포함할 수 있다. 일부 경우에, 거래가 금융이고 다른 거래는 금융이 아니거나 소스 주소, 타임스탬프 등과 같은 추가 정보 또는 다른 정보를 포함할 수 있다. 일부 실시예들에서, 블록체인은 또한, 심지어 그 운영자들에 의해서도 변조하고 수정하기 어려운 데이터 기록들의 연속적으로 증가하는 리스트를 유지하는 분산 데이터베이스에 위치되거나 위치될 필요가 있는 거래의 형태로서 거의 임의의 유형의 데이터를 포함하거나 대안적으로 포함할 수 있고, 작업 증명 및/또는 그와 연관된 임의의 다른 적절한 검증 기술들을 통해 블록체인 네트워크에 의해 확인 및 유효성 검사될 수 있다. 일부 경우에, 주어진 거래에 관한 데이터는 거래 데이터에 첨부된 거래의 직접적인 일부가 아닌 추가 데이터를 더 포함할 수 있다. 일부 경우에, 블록체인에 이러한 데이터의 포함은 거래로 여겨질 수 있다. 이러한 경우에, 블록체인은 특정 디지털, 가상, 피아트(fiat), 또는 다른 유형의 화폐와 직접 연관되지 않을 수 있다.
해싱 및 블록체인을 사용하여 주장 증명을 위한 시스템
도 1은 해시 지향적 거래 스킴 및 블록체인을 사용하여 값의 주장 증명을 검증하기 위한 시스템(100)을 도시하고 있다.
시스템(100)은 처리 서버(102)를 포함할 수 있다. 아래에서 더 자세히 논의될 처리 서버(102)는 특정 값을 주장하는 사용자(104)에 의해 제공되는 증명을 검증하도록 구성될 수 있다. 시스템(100)에서, 특정 값은 사용자(104)에 의해 블록체인 네트워크(106)와 연관된 블록체인에 제공될 수 있다. 특정 값은 아래에서 더 자세히 논의될 선언 메시지에서 사용자(104)에 의해 블록체인 네트워크(106)에 제출될 수 있다.
블록체인 네트워크(106)는 복수의 노드로 구성될 수 있다. 각 노드는 블록체인 데이터 값 생성, 제안된 블록체인 거래 검증, 디지털 서명 검증, 새로운 블록 생성, 새로운 블록 유효성 검사, 및 블록체인 사본의 유지 관리를 포함하여 블록체인의 처리 및 관리와 관련된 기능을 수행하도록 구성된 컴퓨팅 시스템일 수 있다. 블록체인은 적어도 복수의 블록으로 구성된 분산 원장일 수 있다. 각 블록은 적어도 블록 헤더 및 하나 이상의 데이터 값을 포함할 수 있다. 각 블록 헤더는 적어도 타임스탬프, 블록 기준 값, 및 데이터 기준 값을 포함할 수 있다. 타임스탬프는 블록 헤더가 생성된 시간일 수 있고, 임의의 적합한 방법(예를 들어, UNIX 타임스탬프, DateTime 등)을 사용하여 표현될 수 있다. 블록 기준 값은 블록체인에서 (예를 들어, 타임스탬프에 기초한) 앞선 블록을 참조하는 값일 수 있다. 일부 실시예에서, 블록 헤더에서의 블록 기준 값은 각각의 블록 이전에 가장 최근에 추가된 블록의 블록 헤더에 대한 참조일 수 있다. 예시적인 실시예에서, 블록 기준 값은 가장 최근에 추가된 블록의 블록 헤더의 해싱을 통해 생성된 해시 값일 수 있다. 유사하게, 데이터 기준 값은 블록 헤더를 포함하는 블록 내에 저장된 하나 이상의 데이터 값들에 대한 참조일 수 있다. 예시적인 실시예에서, 데이터 기준 값은 하나 이상의 데이터 값의 해싱을 통해 생성된 해시 값일 수 있다. 예를 들어, 블록 기준 값은 하나 이상의 데이터 값을 사용하여 생성된 머클 트리의 루트일 수 있다.
각 블록 헤더에 있는 블록 기준 값 및 데이터 기준 값을 사용하면 블록체인이 변경되지 않을 수 있다. 데이터 값을 수정하려는 임의의 시도는 그 블록에 대한 새로운 데이터 기준 값의 생성을 필요로 하고, 이에 의해 후속 블록의 블록 기준 값이 새롭게 생성되는 것을 필요로 하며, 이는 모든 후속 블록에서의 새로운 블록 기준 값의 생성을 더 필요로 한다. 이는 변경이 영구적으로 이루어지기 위해 블록체인에 새 블록의 생성 및 추가 이전에 블록체인 네트워크(106)에 있는 모든 단일 노드에서 수행되고 업데이트되어야 할 것이다. 계산 및 통신 제한으로 인해 이러한 수정이 불가능하지는 않더라도 매우 어려워질 수 있으므로, 블록체인이 변경될 수 없게 된다.
각 블록체인 데이터 값은 아래에서 논의될 바와 같이 확인 메시지 또는 선언 메시지에 해당할 수 있다. 선언 메시지는 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 휴대폰, 스마트폰, 스마트 워치, 스마트 텔레비전, 웨어러블 컴퓨팅 장치, 또는 본원에 논의된 기능을 수행하도록 특별히 구성된 기타 유형의 컴퓨팅 장치와 같은 적합한 컴퓨팅 장치(108)를 사용하여 사용자(104)에 의해 블록체인 네트워크에 있는 노드에 제출될 수 있다. 선언 메시지는 값 자체가 진짜라는 증명, 값의 소유권 증명 등으로서 사용자(104)가 나중에 증명하기를 원할 수 있는 특정 값을 포함할 수 있다. 예를 들어, 특정 값은 신원 문서일 수 있으며, 본원에서 논의된 방법을 사용하면 사용자(104)는 신원 문서에 명시된 사람임을 증명할 수 있다. 다른 예에서, 특정 값은 토지 증서일 수 있으며, 본원에서 논의된 방법을 통해 사용자(104)는 토지 증서의 소유자이므로 토지 증서가 적용되는 토지임을 증명할 수 있다.
선언 메시지는 또한 본원에서 "신원 해시 값"으로도 지칭되는 해시 값을 포함할 수 있다. 해시 값은 특정 값 및 본원에서 "체인 값"으로 지칭되는 하나 이상의 추가 값을 해싱하여 생성될 수 있다. 체인 값은 선언 메시지가 제출될 때 사용자(104)에게 알려질 수 있지만, 다른 방식으로 기타 엔티티에게, 특히 블록체인 네트워크(106)에 있는 임의의 노드에게, 알려지지 않을 수 있다. 사용자(104)는 SHA-256과 같은 임의의 적합한 해싱 알고리즘을 사용하여 특정 값 및 체인 값(들)의 해싱을 통해 신원 해시 값을 생성할 수 있다. 예시적인 실시예에서, 충돌 회피 해싱 알고리즘이 사용될 수 있다. 바람직한 실시예에서, 해시 값의 생성 시 적어도 2개의 체인 값이 사용될 수 있다. 사용자(104)는 선언 메시지를 블록체인 네트워크(106)에 있는 노드에 제출할 수 있으며, 그 선언 메시지는 적어도 특정 값 및 신원 해시 값을 포함한다. 그런 다음, 선언 메시지는 검증되어 블록체인에 추가되는 새 블록에 포함될 수 있다.
시스템(100)에서, 요청 시스템(110)은 사용자(104)에게 특정 값의 주장 증명을 제공하도록 요청할 수 있다. 예를 들어, 특정 값이 신원 문서인 예에서, 요청 시스템(110)은 사용자(104)에게 자신의 신원 증명을 제공하도록 요청할 수 있다. 이러한 예에서, 사용자(104)는 블록체인 및 신원 해시 값을 사용하여 선언 메시지에 저장된 신원 문서에 표시된 개인임을 증명할 수 있다. 요청 시스템(110)은 처리 서버(102)에 확인 요청을 제출할 수 있다. 확인 요청은 요청 시스템(110)이 검증을 원하는 선언 메시지를 나타낼 수 있다. 일부 경우에, 각 선언 메시지는 고유 식별자를 포함할 수 있으며, 이는 선언 메시지의 식별 시 처리 서버(102)에 의해 사용하기 위한 확인 요청에 포함될 수 있다.
그런 다음, 처리 서버(102)는 사용자(104)에 의해 제공된 주장의 증명을 통해 선언 메시지에 포함된 값을 검증하려고 시도할 수 있다. 검증은 블록체인에 저장된 확인 메시지를 사용하여 수행될 수 있다. 확인 메시지는 검증이 요청될 때 사용자(104)에 의해 (예를 들어, 컴퓨팅 장치(108)를 통해) 블록체인 네트워크(106) 내의 노드에 제출될 수 있다. 일부 경우에, 처리 서버(102)는 사용자(104)에게 (예를 들어, 요청 시스템(110)으로부터 확인 요청을 수신한 후, 여기서 사용자(104)에 대한 연락처 정보는 확인 요청에 포함될 수 있음) 확인 메시지를 제출하도록 요청할 수 있다. 일부 경우에, 요청 시스템(110)은 사용자(104)에게 확인 메시지를 게시하도록 요청할 수 있다. 예를 들어, 위의 예에서, 요청 시스템(110)이 사용자(104)에게 자신의 신원 증명을 제공하도록 요청하는 경우, 사용자(104)는 확인 메시지를 블록체인에 제출하고 신원 문서를 포함하는 선언 메시지에 대한 식별자를 요청 시스템(110)에 제공함으로써 응답할 수 있다.
특정 값의 주장에 대한 사용자의 증명을 검증하기 위해, 처리 서버(102)는 먼저 블록체인에 저장된 확인 메시지를 식별할 수 있다. 일부 경우에, 각 확인 메시지는 대응하는 선언 메시지에서 찾은 식별자를 포함할 수 있다. 다른 경우에, 각 확인 메시지는 자체의 식별자를 포함할 수 있으며, 여기서 식별자는 블록체인에서의 모든 메시지에 고유하고, 사용자(104)나 요청 시스템(110)은 확인 메시지를 식별하는 데 사용하기 위해 처리 서버(102)에 해당 식별자를 제공할 수 있다.
확인 메시지는 선언 메시지에 저장된 신원 해시 값을 생성할 때 사용자(104)에 의해 사용되는 체크 값(들)을 적어도 포함할 수 있다. 처리 서버(102)는 확인 메시지에 있는 체크 값(들)을 식별한 다음, 식별된 선언 메시지에 포함된 특정 값 및 체크 값(들)을 사용하여 체크 해시 값을 생성할 수 있다. 그런 다음, 처리 서버(102)는 일치가 있는지 보기 위해 선언 메시지에서 찾은 신원 해시 값에 대해 체크 해시 값을 확인할 수 있다. 일치가 있다면, 이는 사용자(104)가 신원 해시 값을 생성하는 데 사용된 체크 값(들)을 가지고 있으므로 (예를 들어, 선언 메시지를 포함하는 블록의 블록 헤더에서 찾은 타임스탬프에서) 블록체인에 추가될 때 특정 값을 소유해야 함을 의미한다. 이는 특정 값의 주장에 대한 증명 역할을 할 수 있으며, 이에 따라 처리 서버(102)는 요청 시스템(110)에 통지할 수 있다. 체크 해시 값과 신원 해시 값 사이에 일치가 없다면, 이에 따라 처리 서버(102)는 사용자의 증명 시도가 실패했음을 요청 시스템(110)에 알릴 수 있다.
따라서, 본원에 논의된 방법 및 시스템을 통해 사용자(104)는 블록체인을 사용하여 특정 시간에 값의 소유권 또는 존재를 주장할 수 있으며, 여기서 해당 주장의 증명은 블록체인에 나중에 제출되는 확인 메시지의 사용을 통해 해시 지향적 거래 스킴을 사용하여 검증될 수 있다. 검증은 본원에 개시된 바와 같이 특별히 구성된 처리 서버(102)에 의해 쉽게 수행될 수 있어, 요청 시스템(110)은 임의의 복잡한 작업 자체를 수행할 필요 없이 쉽게 증명을 검증할 수 있다. 또한, 디지털 서명 대신 해시를 사용함으로써, 본원에서 논의된 방법은 양자 컴퓨팅을 통한 해결 시도에 저항하면서, 충분히 복잡한 해싱 알고리즘을 통해 충돌이 없게 하여 안전하면서도 쉽게 구현되는 시스템을 제공한다.
일부 실시예에서, 확인 및 선언 메시지는 소유권 및 주장의 증명에 관한 추가 보안을 제공할 뿐만 아니라 특정 값의 소유권을 다른 사용자에게 이전하기 위해 함께 연쇄화될 수 있다. 추가적인 체인 값을 사용하여 연쇄화를 수행할 수 있다. 예를 들어, 확인 메시지는 선언 메시지에서 찾은 신원 해시 값을 계산하는 데 사용되는 2개의 체인 값을 포함할 수 있다. 선언 메시지는 2개의 새로운 체인 값을 포함할 수 있다. 이러한 새로운 체인 값은 새로운 선언 및 확인 메시지 조합에 사용되는 해시 체인의 일부일 수 있다.
예를 들어, 선언 메시지는 값 X 및 X, A, 및 B의 조합을 해싱하여 생성된 신원 해시 값을 포함할 수 있다. 따라서, A와 B는 값 X의 검증에 사용된 확인 메시지에서 찾은 체인 값일 수 있다. 선언 메시지는 2개의 새로운 체인 값인 C2 및 D2를 더 포함할 수 있다. 후속 선언 메시지는 값 X의 나중 증명 라운드를 위해 사용자(104)에 의해 제출될 수 있으며, 여기서 선언 메시지는 X, C1, 및 D1의 조합을 해싱함으로써 생성된 신원 해시 값을 포함할 수 있다. C2 및 D2에 대한 값은, 예를 들어 C1 및 D1의 값의 해시인 것과 같이, C1 및 D1의 값과 관련될 수 있으며, 여기서C2 = H(C1) 및 D2 = H(D1)이고, H는 해싱 작업을 나타낸다.
일례에서, 유권자는 공개 선거에서 투표하기 전에 투표 관리자에게 자신의 신원을 증명하도록 요구될 수 있으며, 여기서 신원 문서는 값 X이다. 유권자는 C1을 소유할 수 있고 필요에 따라 해싱을 통해 C2를 생성할 수 있다. 신원 증명을 확립하기 위해, 투표 관리자는 유권자에게 D1을 제공할 수 있다. 유권자는 D1을 해싱하여 D2를 생성한 다음, C2, D2, 신원 문서, 및 C1 + D1 + 신원 문서의 해시를 포함하는 선언 메시지를 게시할 수 있다. 이때, 투표 관리자는 선언을 보고 제공된 값에 기초하여 D2를 인식할 수 있다. 그런 다음, 투표 관리자는 유권자가 제공된 D1과 함께 자신의 C1의 확인 메시지를 게시할 때까지 기다릴 수 있고, 그 값을 사용하여 선언 메시지에서 해시를 확인할 수 있다. 확인되면, 유권자에 의해 신원 문서의 소유를 증명하고, 이에 따라 유권자의 신원을 검증할 수 있다.
일부 경우에, 선언 메시지에 사용된 새로운 체인 값 중 하나는 새로운 해시 체인의 일부일 수 있다. 예를 들어, 사용자(104)는 H(X+A1+B1)의 신원 해시 값을 포함하는 값 X에 대한 제1 선언 메시지를 제출할 수 있다(여기서, 대응하는 확인 메시지는 체인 값 A1 및 B1을 포함). 제1 선언 메시지는 또한 A2 및 B2의 새로운 체인 값을 포함할 수 있다. 제2 선언 메시지의 경우, 제2 선언 메시지가 값 X 및 H(X+B3+C1)의 신원 해시 값을 포함하도록 새로운 해시 체인이 활용될 수 있다. 따라서, 제2 선언 메시지에 대한 확인 메시지는 B3 및 C1의 체인 값을 포함할 수 있다. 따라서, 새로운 해시 체인인 C1이 사용되므로 사악한 행위자는 나중의 선언-확인 조합을 추측하려고 시도하기 위해 선언 메시지에서 체인 값을 간단히 계속해서 해싱할 수 없다. 유사하게, 사용자(104)가 값 X의 소유권을 이전하기를 원하는 경우, 새로운 사용자로부터 신원 해시 값 H(X+B3+C1)이 주어질 수 있으며, 여기서 새로운 사용자는 C1의 값을 알고 있지만 사용자(104)에게는 알려지지 않았다. 따라서, 새로운 사용자만이 값 X의 주장에 대한 검증 가능한 증명을 제공할 수 있다. 따라서, 선언 메시지에서 해시 체인이나 다른 새로 도입된 체인 값을 사용하면 시스템(100)에서 소유권이나 다른 값 주장을 쉽게 이전할 수 있다.
일부 경우에, 블록체인은 허가된 또는 다른 방식으로 조정된 블록체인일 수 있으며, 여기서 하나 이상의 조정 엔티티(112)는 블록체인 네트워크(106)에 참여하여 블록체인에 관련된 컴퓨팅 장치(108), 처리 서버(102), 및/또는 다른 시스템의 참여를 조정할 수 있다. 이러한 경우, 조정 엔티티(112)는 블록체인에 추가되는 새로운 블록에 대해 자체의 디지털 서명을 제공하도록 요구될 수 있다. 그 결과, 3개의 엔티티는 블록체인에 표현되는 임의의 새로운 작업에 관련될 수 있고, 이와 같이 선언 및 확인 메시지를 사용하면 조정 엔티티(112)를 포함시키기에 충분하지 않을 수 있다. 이러한 경우, 블록 헤더는 위에서 논의된 바와 같이 해시 체인과 함께 사용될 수 있으며, 여기서 각 블록 헤더는 해시 체인 값을 포함할 수 있다.
이러한 실시예에서, 블록 헤더는 값 X, X와 체인 값의 조합을 해싱하여 생성된 해시 값 H뿐만 아니라 체인 값 자체를 저장하는 데 사용될 수 있다. 이러한 실시예에서, 체인 값은 이전에 관련된 엔티티와 연관된 값(예를 들어, 체인 값 A1 및 B2)을 포함할 수 있고, 조정 엔티티와 연관된 다른 체인 값(예를 들어, 체인 값 C2)도 포함할 수 있다. 조정된 블록체인에서 블록 헤더에 대한 예시는 아래에서 더 자세히 논의될 도 4에 나와 있다. 이러한 블록체인에서, 체인의 "소유자"가 다음 블록을 확인할 권리가 있다는 점에서 소유권의 이전이 수행될 수 있다. 일부 경우에, 엔티티는 각 새로운 블록이 추가되면서 그 자체에게 소유권을 다시 이전함으로써 소유자로서 반복할 수 있다. 예를 들어, 조정 엔티티(112)는 모든 블록의 확인을 위해 완전한 소유권을 유지할 수 있으며, 여기서 위에서 논의된 바와 같이 다른 엔티티는 이에 참여할 수 있다.
이러한 실시예에서, 각 블록의 헤더에 포함된 값 X는 블록 버전, 네트워크 식별자, 및 슬롯 번호와 같은 버전 데이터, 이전 블록의 블록 헤더의 해시(예를 들어, 블록 기준 값), 및 추가되는 새 블록에 포함된 모든 거래의 머클 트리의 루트(예를 들어, 데이터 기준 값)로 구성될 수 있다. 이러한 값 X는 각 블록에 추가되는 해시 값에 포함될 수 있으며, 여기서 값 X는 위에서 논의되고 도 4에 도시된 프로세스에서와 같이 체인 값과 조합될 수 있다.
처리 서버
도 2는 시스템(100)에서 처리 서버(102)의 일 실시예를 도시하고 있다. 도 2에 도시된 처리 서버(102)의 실시예가 단지 예시로서 제공되고, 본원에서 논의된 바와 같은 기능을 수행하기에 적합한 처리 서버(102)의 모든 가능한 구성을 망라하는 것이 아닐 수 있음은 당업자에게 명백할 것이다. 예를 들어, 도 8에 도시되고 아래에서 더 자세히 논의될 컴퓨터 시스템(800)은 처리 서버(102)의 적합한 구성일 수 있다.
처리 서버(102)는 수신 장치(202)를 포함할 수 있다. 수신 장치(202)는 하나 이상의 네트워크 프로토콜을 거쳐 하나 이상의 네트워크를 통해 데이터를 수신하도록 구성될 수 있다. 일부 경우에, 수신 장치(202)는 무선 주파수, 근거리 통신망, 무선 통신망, 셀룰러 통신 네트워크, 블루투스, 인터넷 등과 같은 하나 이상의 통신 방법을 통해 블록체인 네트워크(106), 컴퓨팅 장치(108), 요청 시스템(110), 및 다른 시스템 및 엔티티로부터 데이터를 수신하도록 구성될 수 있다. 일부 실시예에서, 수신 장치(202)는 근거리 통신망을 통해 데이터를 수신하기 위한 제1 수신 장치 및 인터넷을 통해 데이터를 수신하기 위한 제2 수신 장치와 같이, 서로 다른 네트워크를 통해 데이터를 수신하기 위한 서로 다른 수신 장치와 같은 여러 장치로 구성될 수 있다. 수신 장치(202)는 전자적으로 전송된 데이터 신호를 수신할 수 있으며, 여기서 데이터는 데이터 신호에 중첩되거나 또는 다른 방식으로 인코딩될 수 있고, 수신 장치(202)에 의한 데이터 신호의 수신을 통해 디코딩, 파싱, 판독, 또는 다른 방식으로 획득될 수 있다. 일부 경우에, 수신 장치(202)는 수신된 데이터 신호를 파싱하여 그에 중첩된 데이터를 획득하기 위한 파싱 모듈을 포함할 수 있다. 예를 들어, 수신 장치(202)는 수신된 데이터 신호를 수신하고 이를 본원에 설명된 방법 및 시스템을 실행하기 위해 처리 장치에 의해 수행되는 기능에 대한 사용 가능한 입력으로 변환하도록 구성된 파서 프로그램을 포함할 수 있다.
수신 장치(202)는, 확인 메시지 및 선언 메시지를 포함할 수 있는 블록체인 데이터 값을 포함하여, 블록체인 데이터와 중첩되거나 또는 다른 방식으로 인코딩될 수 있는 블록체인 네트워크(106)에 있는 노드에 의해 전자적으로 전송된 데이터 신호를 수신하도록 구성될 수 있다. 일부 실시예에서, 수신 장치(202)는 모든 새로운 블록을 포함하는 블록체인의 전체 사본을 수신할 수 있다. 다른 실시예에서, 수신 장치(202)는 요청된 대로 블록을 수신할 수 있다. 다른 실시예에서, 수신 장치(202)는 블록체인 데이터 값을 수신할 수 있다. 일부 실시예에서, 처리 서버(102)는 블록체인 네트워크(106)에 있는 노드일 수 있고, 블록체인 네트워크(106)에 있는 다른 노드로부터 블록체인에 대한 검증 및 추가를 위한 블록을 수신할 수 있다. 수신 장치(202)는 또한 확인 요청과 중첩되거나 또는 다른 방식으로 인코딩된 컴퓨팅 장치(108) 및/또는 요청 시스템(110)에 의해 전자적으로 전송된 데이터 신호를 수신하도록 구성될 수 있으며, 이는 선언 및/또는 확인 메시지에 대한 식별자를 포함할 수 있다.
처리 서버(102)는 또한 통신 모듈(204)을 포함할 수 있다. 통신 모듈(204)은 본원에서 논의된 기능을 수행하는 데 사용하기 위해 처리 서버(102)의 모듈, 엔진, 데이터베이스, 메모리, 및 다른 구성요소 사이에서 데이터를 전송하도록 구성될 수 있다. 통신 모듈(204)은 하나 이상의 통신 유형으로 구성될 수 있고 컴퓨팅 장치 내 통신을 위해 다양한 통신 방법을 활용할 수 있다. 예를 들어, 통신 모듈(204)은 버스, 접촉 핀 커넥터, 와이어 등으로 구성될 수 있다. 일부 실시예에서, 통신 모듈(204)은 또한 처리 서버(102)의 내부 구성요소와 외부에 연결된 데이터베이스, 디스플레이 장치, 입력 장치 등과 같은 처리 서버(102)의 외부 구성요소 사이에서 통신하도록 구성될 수 있다. 처리 서버(102)는 또한 처리 장치를 포함할 수 있다. 처리 장치는 당업자에게 명백한 바와 같이 본원에서 논의된 처리 서버(102)의 기능을 수행하도록 구성될 수 있다. 일부 실시예에서, 처리 장치는 질의 모듈(218), 생성 모듈(220), 검증 모듈(222) 등과 같은 처리 장치의 하나 이상의 기능을 수행하도록 특별히 구성된 복수의 엔진 및/또는 모듈로 구성될 수 있고 및/또는 이를 포함할 수 있다. 본원에서 사용된 바와 같이, "모듈"이란 용어는 입력을 수신하고, 입력을 사용하여 하나 이상의 프로세스를 수행하고, 출력을 제공하도록 특별히 프로그래밍된 소프트웨어 또는 하드웨어일 수 있다. 다양한 모듈에 의해 수행되는 입력, 출력, 및 프로세스는 본 개시내용에 기초하여 당업자에게 명백할 것이다.
처리 서버(102)는 질의 모듈(218)을 포함할 수 있다. 질의 모듈(218)은 정보를 식별하기 위해 데이터베이스에 대한 질의를 실행하도록 구성될 수 있다. 질의 모듈(218)은 하나 이상의 데이터 값 또는 질의 문자열을 수신할 수 있고, 내부에 저장된 정보를 식별하기 위해 메모리(226)와 같은 표시된 데이터베이스에 기초하여 질의 문자열을 실행할 수 있다. 그런 다음, 질의 모듈(218)은 필요에 따라 식별된 정보를 처리 서버(102)의 적절한 엔진 또는 모듈에 출력할 수 있다. 예를 들어, 질의 모듈(218)은 예를 들어 식별자를 사용하여 블록체인 내의 블록에 저장된 선언 메시지 또는 확인 메시지를 식별하기 위해 메모리(226)에 대한 질의를 실행할 수 있다.
처리 서버(102)는 또한 생성 모듈(220)을 포함할 수 있다. 생성 모듈(220)은 본원에서 논의된 기능을 수행 시 처리 서버(102)에 의해 사용하기 위한 데이터를 생성하도록 구성될 수 있다. 생성 모듈(220)은 명령어를 입력으로 수신할 수 있고, 명령어에 기초하여 데이터를 생성할 수 있고, 생성된 데이터를 처리 서버(102)의 하나 이상의 모듈에 출력할 수 있다. 예를 들어, 생성 모듈(220)은 확인 메시지 및/또는 식별자 또는 검증 시도 결과에 대한 프롬프트와 같은 컴퓨팅 장치(108) 또는 요청 시스템(110)으로의 전송을 위해 뿐만 아니라 새로운 블록이나 블록체인 데이터 값을 요청하는 것과 같은 블록체인 네트워크(106)에 있는 노드로의 전송을 위해 통지 및 다른 데이터 메시지를 생성하도록 구성될 수 있다. 생성 모듈(220)은 또한 데이터를 해싱하여 체크 해시 값을 생성하도록 구성될 수 있다. 처리 서버(102)가 블록체인 네트워크(106)에 있는 노드인 실시예에서, 생성 모듈(220)은 또한 검증을 위한 블록 헤더 및 새로운 블록을 생성하고 블록체인에 추가하도록 구성될 수 있다.
처리 서버(102)는 또한 검증 모듈(222)을 포함할 수 있다. 검증 모듈(222)은 본원에서 논의된 바와 같이 처리 서버(102)의 기능의 일부로서 데이터를 검증하도록 구성될 수 있다. 검증 모듈(222)은 검증될 데이터를 입력으로서 수신할 수 있고, 그 데이터를 검증하려고 시도할 수 있고, 검증 결과를 처리 서버(102)의 다른 모듈 또는 엔진으로 출력할 수 있다. 일부 경우에, 그 입력은 검증에 사용될 데이터를 포함할 수 있다. 일부 경우에, 검증 모듈(222)은, 예를 들어 검증 모듈(222)에 의해 체크 해시 값의 사용을 위해 선언 메시지에서 체인 값을 사용하여 체크 해시 값을 생성하도록 생성 모듈(220)에 지시함으로써, 검증에 사용될 데이터를 식별하도록 구성될 수 있다. 검증 모듈(222)은 예를 들어 대응하는 확인 메시지에서 찾은 체인 값을 사용하여 생성된 체크 해시 값을 사용하여 선언 메시지에서 찾은 신원 해시 값을 검증하도록 구성될 수 있다.
처리 서버(102)는 또한 전송 장치(224)를 포함할 수 있다. 전송 장치(224)는 하나 이상의 네트워크 프로토콜을 거쳐 하나 이상의 네트워크를 통해 데이터를 전송하도록 구성될 수 있다. 일부 경우에, 전송 장치(224)는 근거리 통신망, 무선 통신망, 셀룰러 통신, 블루투스, 무선 주파수, 인터넷 등인 하나 이상의 통신 방법을 통해 블록체인 네트워크(106), 컴퓨팅 장치(108), 요청 시스템(110), 및 다른 엔티티로 데이터를 전송하도록 구성될 수 있다. 일부 실시예에서, 전송 장치(224)는 근거리 통신망을 통해 데이터를 전송하기 위한 제1 전송 장치 및 인터넷을 통해 데이터를 전송하기 위한 제2 전송 장치와 같이, 서로 다른 네트워크를 통해 데이터를 전송하기 위한 서로 다른 전송 장치와 같은 여러 장치로 구성될 수 있다. 전송 장치(224)는 수신 컴퓨팅 장치에 의해 파싱될 수 있는 중첩된 데이터를 갖는 데이터 신호를 전자적으로 전송할 수 있다. 일부 경우에, 전송 장치(224)는 데이터를 전송에 적합한 데이터 신호로 중첩, 인코딩, 또는 다른 방식으로 형식화하기 위한 하나 이상의 모듈을 포함할 수 있다.
전송 장치(224)는 블록체인 데이터 값 또는 블록에 대한 요청과 중첩되거나 또는 다른 방식으로 인코딩된 블록체인 네트워크(106)에 있는 노드에 데이터 신호를 전자적으로 전송하도록 구성될 수 있으며, 이는 선언 또는 확인 메시지에 대한 식별자를 포함할 수 있다. 전송 장치(224)는 또한 데이터 신호를 컴퓨팅 장치(108)에 전자적으로 전송하도록 구성될 수 있으며, 이는 확인 메시지의 제출 요청, 확인 메시지에 대한 식별자 요청 등과 중첩되거나 또는 다른 방식으로 인코딩될 수 있다. 전송 장치(224)는 또한 데이터 신호를 요청 시스템(110)에 전자적으로 전송하도록 구성될 수 있으며, 이는 검증 결과와 중첩되거나 또는 다른 방식으로 인코딩될 수 있다.
처리 서버(102)는 또한 메모리(226)를 포함할 수 있다. 메모리(226)는 공개 키와 개인 키, 대칭 키 등과 같은 본원에서 논의된 기능을 수행 시 처리 서버(102)에 의해 사용하기 위한 데이터를 저장하도록 구성될 수 있다. 메모리(226)는 적합한 데이터 형식화 방법 및 스키마를 사용하여 데이터를 저장하도록 구성될 수 있고 리드 온리 메모리, 랜덤 액세스 메모리 등과 같은 임의의 적합한 유형의 메모리일 수 있다. 메모리(226)는 예를 들어 암호화 키 및 알고리즘, 통신 프로토콜 및 표준, 데이터 형식화 표준 및 프로토콜, 처리 장치의 모듈 및 애플리케이션 프로그램에 대한 프로그램 코드, 및 당업자에게 명백한 바와 같이 본원에 개시된 기능의 수행 시 처리 서버(102)에 의해 사용하기에 적합할 수 있는 다른 데이터를 포함할 수 있다. 일부 실시예에서, 메모리(226)는 내부에 저장된 구조화된 데이터 세트의 저장, 식별, 수정, 업데이트, 액세스 등을 위해 구조화된 질의 언어를 활용하는 관계형 데이터베이스로 구성되거나 또는 다른 방식으로 이를 포함할 수 있다. 메모리(226)는 예를 들어 확인 메시지 및 선언 메시지를 포함하는 블록체인 데이터, 블록 생성을 위한 해싱 알고리즘, 체크 해시 값 생성을 위한 해싱 알고리즘, 검증을 위한 자격 증명, 사용 규칙 템플릿, 블록체인 노드를 위한 통신 데이터, 컴퓨팅 장치(108) 및 요청 시스템(110) 등을 위한 통신 데이터 등을 저장하도록 구성될 수 있다.
선언 및 확인 메시지
도 3은 값의 주장 증명의 검증 시 도 1의 시스템(100)에서 사용하기 위한 예시적인 선언 및 확인 메시지를 도시하고 있다.
위에서 논의된 바와 같이, 사용자(104)는 검증되어 블록체인에 추가되는 새로운 블록에 포함시키기 위해 블록체인 네트워크(106)에 선언 메시지(302)를 제출할 수 있다. 선언 메시지는 특정 값(304)을 포함할 수 있으며, 여기서 사용자(104)는 특정 값(304)(예를 들어, 위에서 논의된 예에서 신원 문서)의 증명을 주장하기를 원할 수 있다. 선언 메시지는 또한 신원 해시 값(308)을 포함할 수 있으며, 여기서 신원 해시 값은 2개의 체인 값(312)뿐만 아니라 특정 값(304)의 해싱을 통해 생성된 해시 값이다. 선언 메시지(302)의 제출 시, 체인 값(312)은 사용자(104)에게 알려질 수 있지만 다른 사람에게는 알려지지 않을 수 있다. 선언 메시지(302)는 또한 도 3에 도시된 2개의 새로운 체인 값(306)을 새로운 체인 값(306a 및 306b)으로 포함할 수 있으며, 이는 나중 선언 및 확인 메시지 쌍에 사용되는 해시 체인의 일부일 수 있다.
사용자(104)가 특정 값(304)의 주장을 증명하기를 원하는 경우, 사용자(104)는 확인 메시지(310)를 블록체인에 제출할 수 있다. 확인 메시지는 도 3에 도시된 체인 값(312)을 신원 해시 값(308)을 생성하는 데 사용되었던 체인 값(312a 및 312b)으로서 포함할 수 있다. 일부 실시예에서, 체인 값(312)은 새로운 체인 값(306)을 가진 해시 체인의 일부일 수 있다. 도 3에 도시된 예에서, 새로운 체인 값(306a)은 체인 값(312a)의 해시일 수 있고, 새로운 체인 값(306b)은 체인 값(312b)의 해시일 수 있다. 도시된 예에서, 체인 값(312a)은 새로운 해시 체인의 시작일 수 있는 반면, 체인 값(312b)은 이전 선언 및 확인 메시지 세트에서 사용되었던 것과 같은 기존 해시 체인의 일부일 수 있다.
조정된 블록체인에서의 블록 헤더
도 4는 해시 체인을 활용하는 조정된 블록체인에 대한 블록 헤더의 확인에서 도 1의 시스템(100)에서 사용하기 위한 예시적인 블록 헤더를 도시하고 있다.
시스템(100)에서, 요청 시스템(110)은 블록체인을 위한 새로운 블록을 구성할 수 있다는 점에서 블록체인의 소유권을 획득하는 데 관심을 가질 수 있다. 요청 시스템(110)은 도시된 예에서 "B"로 레이블링된 체인 값으로 표현될 수 있으며, 여기서 요청 시스템(110)은 현재 소유권을 갖고 있지 않지만 나중의 블록(404)을 구성할 수 있도록 이를 획득하기를 원한다. 소유권을 얻기 위해, 요청 시스템(110)은 도시된 예에서 "A"로 레이블링된 체인 값으로 표현되는 현재 소유자인 처리 서버(102)로부터 소유권을 찾을 것이다. 소유권을 획득하기 전에, 요청 시스템(110)은 발생할 다음 이전을 인식해야 할 것이며, 여기서 이러한 후속 엔티티는 "C"로 레이블링된 체인 값으로 예시된다.
소유권을 수용하기 위해, 요청 시스템(110)은 체인 값(406b 및 406c)을 처리 서버(102)에 전송할 것이며, 여기서 체인 값(406b)은 요청 시스템(110)에만 알려진 값인 B1의 해시인 B2이다. 체인 값(406c)은 C2의 해시인 C3이며, 이는 후속 엔티티에 의해 요청 시스템(110)으로 알려진 것으로 그 기저 값은 요청 시스템(110)에 알려지지 않는다. 그런 다음, 처리 서버(102)는 특정 값(410a) 및 체인 값(406b 및 406c)을 가질 것이다. 새로운 블록(402)을 추가할 수 있도록, 요청 시스템(110)은 처리 서버(102)가 아닌 요청 시스템(110)에 알려진 체인 값의 해시인 블록 값(412a)을 제공해야 한다. 그런 다음, 처리 서버(102)는 체인 값(406a, 406b, 406c), 특정 값(410a), 및 해시 값(412a)으로 이루어진 새로운 블록(402)을 생성한다. 새로운 블록(402)의 추가와 더불어, 요청 시스템(110)이 적어도 체인 값(408a)에 대한 지식을 가진 유일한 엔티티이므로 블록 구성에 대한 소유권은 요청 시스템(110)으로 이전된다. 그런 다음, 요청 시스템(110)은 위에서 설명된 동일한 방식으로 요청 시스템에 대해 값 2(410b), 408c 및 412b를 사용하여 체인 값(408b)에 대한 기저 값을 갖는 후속 엔티티에 소유권을 이전할 수 있고, 그 이후 새로운 블록에 대해서도 마찬가지이다.
해싱 및 블록체인을 사용하여 주장 증명을 검증하기 위한 프로세스
도 5a 및 도 5b는 블록체인 네트워크(106) 및 해싱 지향적 거래 스킴을 사용하여 사용자(104)가 제시한 특정 값의 주장 증명을 검증하기 위한 도 1의 시스템(100)의 예시적인 프로세스를 도시하고 있다.
단계 502에서, 사용자(104)는 컴퓨팅 장치(108)를 사용하여 선언 메시지를 블록체인 네트워크(106)에 제출할 수 있다. 선언 메시지는 적어도 본원에서 데이터 항목 식별자로 지칭되는 식별자, 특정 값, 및 신원 해시 값을 포함할 수 있다. 단계 504에서, 블록체인 네트워크(106)는 선언 메시지를 수신할 수 있다. 단계 506에서, 선언 메시지는 검증되어 블록체인에 추가되는 새 블록에 포함될 수 있다. 일부 실시예에서, 선언 메시지에 대한 데이터 항목 식별자는 단계 504 또는 단계 506에서 블록체인 네트워크(106)에 의해 식별될 수 있으며, 이는 컴퓨팅 장치(108)로 반환될 수 있다.
단계 508에서, 컴퓨팅 장치(108) 및 요청 시스템(110)은 마련 작업에 들어갈 수 있다. 예를 들어, 위의 예에서 요청 시스템(110)은 사용자(104)에게 자신의 신원 증명을 제공하도록 요청할 수 있고, 사용자(104)는 블록체인 네트워크(106)에 제출되었던 선언 메시지에 포함된 특정 값으로 신원 문서를 사용하여 달성하려고 시도할 수 있다. 단계 510에서, 마련 작업의 일환으로, 사용자(104)는 컴퓨팅 장치(108)를 통해 선언 메시지에 대한 데이터 항목 식별자를 요청 시스템(110)에 제공할 수 있다. 단계 512에서, 요청 시스템(110)은 적합한 통신 네트워크 및 방법을 사용하여 처리 서버(102)에 확인 요청을 제출할 수 있다. 확인 요청은 적어도 데이터 항목 식별자를 포함할 수 있다.
단계 514에서, 처리 서버(102)의 수신 장치(202)는 요청 시스템(110)으로부터 확인 요청을 수신할 수 있다. 단계 516에서, 처리 서버(102)는 컴퓨팅 장치(108)에 요청 메시지를 전자적으로 전송할 수 있으며, 이는 사용자(104)에게 특정 값(예를 들어, 위의 예에서 신원 문서)의 증명을 주장하기 위해 확인 메시지를 블록체인 네트워크(106)에 제출하도록 요청한다. 단계 518에서, 컴퓨팅 장치(108)는 처리 서버(102)로부터 요청 메시지를 수신할 수 있다.
단계 520에서, 컴퓨팅 장치(108)는 확인 메시지를 블록체인 네트워크(106)에 제출할 수 있다. 확인 메시지는 적어도 데이터 항목 식별자 및 하나 이상의 체인 값을 포함할 수 있다. 단계 522에서, 블록체인 네트워크(106)는 확인 메시지를 수신할 수 있다. 단계 524에서, 확인 메시지는 생성되고 검증되어 블록체인에 게시되는 새로운 블록에 포함될 수 있다. 단계 526에서, 처리 서버(102)의 수신 장치(202)는 블록체인 네트워크의 업데이트를 통해 확인 메시지를 수신할 수 있다. 단계 528에서, 처리 서버(102)의 생성 모듈(220)은 확인 메시지에서 찾은 체인 값뿐만 아니라 선언 메시지에서 찾은 특정 값을 해싱함으로써 체크 해시 값을 생성할 수 있다.
단계 530에서, 처리 서버(102)의 검증 모듈(222)은 사용자(104)에 의한 주장 증명의 검증으로서, 선언 메시지에서 찾은 신원 해시 값과 비교함으로써 체크 해시 값의 검증을 시도할 수 있다. 단계 532에서, 처리 서버(102)의 전송 장치(224)는 확인 통지를 요청 시스템(110)에 전자적으로 전송할 수 있다. 확인 통지는 검증 결과를 포함할 수 있으며, 이는 성공할 경우 사용자의 주장(예를 들어, 위의 예에서 신원 문서에서 식별된 사람임)을 확인할 수 있다. 단계 534에서, 요청 시스템(110)은 처리 서버(102)로부터 확인 통지를 수신할 수 있다.
값의 주장 증명을 검증하기 위한 예시적인 방법
도 6은 해시 지향적 거래 스킴과 조합된 블록체인을 사용하여 값의 주장 증명을 검증하기 위한 방법(600)을 도시하고 있다.
단계 602에서, 확인 요청은 처리 서버(예를 들어, 처리 서버(102))의 수신기(예를 들어, 수신 장치(202))에 의해 수신될 수 있다. 단계 604에서, 확인 메시지는 처리 서버의 처리 장치(예를 들어, 질의 모듈(218))에 의해 식별될 수 있고, 확인 메시지는 적어도 하나 이상의 체인 값을 포함하고, 확인 요청에 포함되거나 블록체인에 포함된 블록에 저장되고 확인 요청에 포함된 기준 식별자를 사용하여 식별되는 것 중 하나이다. 단계 606에서, 선언 메시지는 처리 서버의 처리 장치에 의해 식별될 수 있으며, 여기서 선언 메시지는 적어도 주장된 값 및 신원 해시 값을 포함한다.
단계 608에서, 적어도 주장된 값 및 하나 이상의 체인 값을 해싱함으로써 처리 서버의 처리 장치(예를 들어, 생성 모듈(220))에 의해 체크 해시 값이 생성될 수 있다. 단계 610에서, 체크 해시 값은 신원 해시 값을 사용하여 처리 서버의 처리 장치(예를 들어, 검증 모듈(222))에 의해 검증될 수 있다. 단계 612에서, 수신된 확인 요청에 응답하여 처리 서버의 전송기(예를 들어, 전송 장치(224))에 의해 체크 해시 값의 검증 결과는 전송될 수 있다.
허가된 블록체인의 조정을 위한 예시적인 방법
도 7은 해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 방법(700)을 도시하고 있다.
단계 702에서, 블록체인은 처리 서버(예를 들어, 처리 서버(102))의 메모리(예를 들어, 메모리(226))에 저장될 수 있으며, 여기서 블록체인은 가장 최근의 블록을 포함하는 복수의 블록으로 구성되고, 가장 최근의 블록은 블록 헤더를 포함한다. 단계 704에서, 하나 이상의 거래 데이터 값은 처리 서버의 수신기(예를 들어, 수신 장치(202))에 의해 수신될 수 있다. 단계 706에서, 제1 기준 값 및 제2 기준 값은 처리 서버의 수신기에 의해 수신될 수 있다. 단계 708에서, 제1 기준 값을 해싱함으로써 처리 서버의 처리 장치(예를 들어, 생성 모듈(220))에 의해 제1 해시 값이 생성될 수 있다. 단계 710에서, 처리 서버의 처리 장치에 의해 적어도 제1 해시 값, 제2 해시 값, 제3 기준 값, 및 블록 값을 포함하는 블록 증명이 생성될 수 있다.
단계 712에서, 가장 최근의 블록에 포함된 블록 헤더는 블록 증명을 사용하여 처리 장치(예를 들어, 검증 모듈(222))에 의해 검증될 수 있다. 단계 714에서, 처리 서버의 수신기에 의해 새로운 블록 값이 수신될 수 있다. 단계 716에서, 처리 서버의 처리 장치에 의해 새로운 블록 헤더가 생성될 수 있고, 새로운 블록 헤더는 적어도 제1 기준 값, 제2 기준 값, 제4 기준 값, 및 새로운 블록 값을 포함한다. 단계 718에서, 처리 서버의 처리 장치에 의해 새로운 블록이 블록체인에 대해 생성될 수 있고, 새로운 블록은 새로운 블록 헤더 및 하나 이상의 거래 데이터 값을 포함한다. 단계 720에서, 새로운 블록은 처리 서버의 전송기(예를 들어, 전송 장치(224))에 의해 블록체인과 연관된 하나 이상의 추가 노드로 전송될 수 있다.
일 실시예에서, 본 방법(700)은 처리 서버의 처리 장치가 하나 이상의 거래 데이터 값을 사용하여 머클 트리를 생성하는 단계를 더 포함할 수 있고, 새로운 블록 헤더는 머클 트리의 루트를 더 포함한다. 추가 실시예에서, 새로운 블록 헤더는 버전 데이터 및 블록 헤더 기준 값을 더 포함할 수 있다. 또 다른 실시예에서, 본 방법(700)은 또한 처리 서버의 처리 장치가 검증된 블록 헤더를 해싱함으로써 블록 헤더 기준 값을 생성하는 단계를 포함할 수 있다. 일부 실시예에서, 본 방법(700)은 처리 서버의 처리 장치가 제1 기준 값, 제2 기준 값, 제4 기준 값, 및 하나 이상의 데이터 포인트의 조합을 해싱함으로써 블록 값을 생성하는 단계를 더 포함할 수 있다. 추가 실시예에서, 하나 이상의 데이터 포인트는 적어도 버전 데이터, 블록 헤더 기준 값, 및 머클 트리의 루트를 포함할 수 있다.
일 실시예에서, 본 방법(700)은 또한 처리 서버의 처리 장치가 제4 기준 값을 해싱함으로써 제2 해시 값을 생성하는 단계를 포함할 수 있다. 추가 실시예에서, 제4 기준 값은 처리 서버의 메모리에 저장될 수 있다. 일부 실시예에서, 제1 기준 값 및 제2 기준 값은 외부 컴퓨팅 시스템(예를 들어 조정 엔티티(112))으로부터 수신될 수 있고, 새로운 블록 값은 외부 컴퓨팅 시스템으로부터 수신될 수 있다. 추가 실시예에서, 외부 컴퓨팅 시스템은 블록체인과 연관된 하나 이상의 추가 노드 중 하나일 수 있다.
컴퓨터 시스템 아키텍처
도 8은 본 개시내용의 실시예 또는 그 일부가 컴퓨터 판독 가능 코드로 구현될 수 있는 컴퓨터 시스템(800)을 도시하고 있다. 예를 들어, 도 1의 처리 서버(102)는 하드웨어, 소프트웨어, 펌웨어, 명령어가 저장된 비일시적 컴퓨터 판독 가능 매체, 또는 이들의 조합을 사용하여 컴퓨터 시스템(800)에서 구현될 수 있고 하나 이상의 컴퓨터 시스템 또는 다른 처리 시스템에서 구현될 수 있다. 하드웨어, 소프트웨어, 또는 이들의 임의의 조합은 도 3, 도 4, 도 5a, 도 5b, 도 6, 및 도 7의 방법을 구현하는 데 사용되는 모듈 및 구성요소를 구현할 수 있다.
프로그래머블 로직이 사용되는 경우, 이러한 로직은 실행 가능한 소프트웨어 코드에 의해 구성된 상용 처리 플랫폼에서 실행되어 특정 목적의 컴퓨터 또는 특수 목적의 장치(예를 들어, 프로그래머블 로직 어레이, 주문형 집적 회로 등)가 될 수 있다. 당업자는 개시된 기술 요지의 실시예가 멀티 코어 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터, 분산 기능으로 링크되거나 클러스터링된 컴퓨터, 및 거의 모든 장치에 내장될 수 있는 퍼베이시브 또는 소형 컴퓨터를 포함하는 다양한 컴퓨터 시스템 구성으로 실행될 수 있음을 이해할 수 있다. 예를 들어, 적어도 하나의 프로세서 장치 및 메모리는 전술한 실시예를 구현하는 데 사용될 수 있다.
본원에서 논의된 바와 같은 프로세서 유닛 또는 장치는 단일 프로세서, 복수의 프로세서, 또는 이들의 조합일 수 있다. 프로세서 장치는 하나 이상의 프로세서 "코어"를 구비할 수 있다. 본원에서 논의된 바와 같은 "컴퓨터 프로그램 매체", "비일시적 컴퓨터 판독 가능 매체", 및 "컴퓨터 사용 가능 매체"라는 용어는 일반적으로 이동식 저장 유닛(818), 이동식 저장 유닛(822) 및 하드디스크 드라이브(812)에 설치된 하드디스크와 같은 유형식 미디어를 지칭하는 데 사용된다.
본 개시내용의 다양한 실시예는 이러한 예시적인 컴퓨터 시스템(800)의 관점에서 설명된다. 이러한 설명을 읽은 후, 다른 컴퓨터 시스템 및/또는 컴퓨터 아키텍처를 사용하여 본 개시내용을 구현하는 방법은 당업자에게 명백해질 것이다. 동작은 순차적 프로세스로 설명될 수 있지만, 동작 중 일부는 실제로 병렬로, 동시에, 및/또는 분산 환경에서 수행될 수 있으며 단일 또는 다중 프로세서 머신에서 액세스할 수 있도록 로컬 또는 원격으로 저장된 프로그램 코드를 사용하여 수행될 수 있다. 또한, 일부 실시예에서, 동작 순서는 개시된 기술 요지의 사상을 벗어나지 않고 재배열될 수 있다.
프로세서 장치(804)는 본원에서 논의된 기능을 수행하도록 특별히 구성된 특수 목적 또는 범용 프로세서 장치일 수 있다. 프로세서 장치(804)는 버스, 메시지 큐, 네트워크, 멀티 코어 메시지 전달 스키마 등과 같은 통신 인프라(806)에 연결될 수 있다. 네트워크는 본원에 개시된 기능을 수행하는 데 적합한 임의의 네트워크일 수 있고 근거리 통신망(LAN), 광역 통신망(WAN), 무선 네트워크(예를 들어, WiFi), 이동 통신 네트워크, 위성 네트워크, 인터넷, 광섬유, 동축 케이블, 적외선, 무선 주파수(RF), 또는 이들의 임의의 조합을 포함할 수 있다. 다른 적합한 네트워크 유형 및 구성은 당업자에게 명백할 것이다. 컴퓨터 시스템(800)은 또한 주 메모리(808)(예를 들어, 랜덤 액세스 메모리, 읽기 전용 메모리 등)를 포함할 수 있고, 보조 메모리(810)도 포함할 수 있다. 보조 메모리(810)는 하드 디스크 드라이브(812), 및 플로피 디스크 드라이브, 자기 테이프 드라이브, 광 디스크 드라이브, 플래시 메모리 등과 같은 이동식 저장 드라이브(814)를 포함할 수 있다.
이동식 저장 드라이브(814)는 주지된 방식으로 이동식 저장 유닛(818)에 대한 읽기 및/또는 쓰기를 수행할 수 있다. 이동식 저장 유닛(818)은 이동식 저장 드라이브(814)에 의해 판독 및 기록될 수 있는 이동식 저장 매체를 포함할 수 있다. 예를 들어, 이동식 저장 드라이브(814)가 플로피 디스크 드라이브 또는 범용 직렬 버스 포트인 경우, 이동식 저장 유닛(818)은 각각 플로피 디스크 또는 포터블 플래시 드라이브일 수 있다. 일 실시예에서, 이동식 저장 유닛(818)은 비일시적 컴퓨터 판독 가능 기록 매체일 수 있다.
일부 실시예에서, 보조 메모리(810)는 컴퓨터 프로그램 또는 다른 명령어가 컴퓨터 시스템(800)에 로딩될 수 있게 하는 대안적인 수단을, 예를 들어 이동식 저장 유닛(822) 및 인터페이스(820)를, 포함할 수 있다. 이러한 수단의 예로는 프로그램 카트리지 및 카트리지 인터페이스(예를 들어, 비디오 게임 시스템에서 볼 수 있음), 탈착식 메모리 칩(예를 들어, EEPROM, PROM 등) 및 관련 소켓, 및 다른 이동식 저장 유닛(822) 및 인터페이스(820)를 포함할 수 있으며, 이는 당업자에게 명백할 것이다.
컴퓨터 시스템(800)(예를 들어, 주 메모리(808) 및/또는 보조 메모리(810))에 저장된 데이터는 광학 스토리지(예를 들어 컴팩트 디스크, 디지털 다기능 디스크, 블루레이 디스크 등) 또는 자기 테이프 스토리지(예를 들어, 하드 디스크 드라이브)와 같은 모든 유형의 적합한 컴퓨터 판독 가능 매체에 저장될 수 있다. 데이터는 관계형 데이터베이스, 구조화된 질의 언어(SQL) 데이터베이스, 분산 데이터베이스, 객체 데이터베이스 등과 같은 모든 유형의 적합한 데이터베이스 구성으로 구성될 수 있다. 적합한 구성 및 저장 유형은 당업자에게 명백할 것이다.
컴퓨터 시스템(800)은 또한 통신 인터페이스(824)를 포함할 수 있다. 통신 인터페이스(824)는 소프트웨어 및 데이터가 컴퓨터 시스템(800)과 외부 장치 사이에 전송될 수 있도록 구성될 수 있다. 예시적인 통신 인터페이스(824)는 모뎀, 네트워크 인터페이스(예를 들어, 이더넷 카드), 통신 포트, PCMCIA 슬롯, 및 카드 등을 포함할 수 있다. 통신 인터페이스(824)를 통해 전송되는 소프트웨어 및 데이터는 신호 형태일 수 있으며, 이는 전자, 전자기, 광학 또는 당업자에게 명백한 바와 같은 다른 신호일 수 있다. 신호는 신호를 전달하도록 구성될 수 있으며 전선, 케이블, 광섬유, 전화선, 휴대폰 링크, 무선 주파수 링크 등을 사용하여 구현될 수 있는 통신 경로(826)를 통해 이동할 수 있다.
컴퓨터 시스템(800)은 디스플레이 인터페이스(802)를 더 포함할 수 있다. 디스플레이 인터페이스(802)는 데이터가 컴퓨터 시스템(800)과 외부 디스플레이(830) 사이에 전송될 수 있도록 구성될 수 있다. 예시적인 디스플레이 인터페이스(802)는 고화질 멀티미디어 인터페이스(HDMI), 디지털 비주얼 인터페이스(DVI), 비디오 그래픽 어레이(VGA) 등을 포함할 수 있다. 디스플레이(830)는 음극선관(CRT) 디스플레이, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 정전식 터치 디스플레이, 박막 트랜지스터(TFT) 디스플레이 등을 비롯하여 컴퓨터 시스템(800)의 디스플레이 인터페이스(802)를 통해 전송된 데이터를 표시하기 위한 임의의 적합한 유형의 디스플레이일 수 있다.
컴퓨터 프로그램 매체 및 컴퓨터 사용 가능 매체는 메모리 반도체(예를 들어, DRAM 등)일 수 있는 주 메모리(808) 및 보조 메모리(810)와 같은 메모리를 지칭할 수 있다. 이들 컴퓨터 프로그램 제품은 컴퓨터 시스템(800)에 소프트웨어를 제공하기 위한 수단일 수 있다. 컴퓨터 프로그램(예를 들어, 컴퓨터 제어 로직)은 주 메모리(808) 및/또는 보조 메모리(810)에 저장될 수 있다. 컴퓨터 프로그램은 통신 인터페이스(824)를 통해 수신될 수도 있다. 이러한 컴퓨터 프로그램은 실행될 때 컴퓨터 시스템(800)이 본원에서 논의된 본 방법을 구현하도록 할 수 있다. 특히, 컴퓨터 프로그램은, 실행될 때, 프로세서 장치(804)가 본원에서 논의된 바와 같이 도 3, 도 4, 도 5a, 도 5b, 도 6, 및 도 7에 도시된 방법을 구현하도록 할 수 있다. 따라서, 이러한 컴퓨터 프로그램은 컴퓨터 시스템(800)의 제어기를 나타낼 수 있다. 본 개시내용이 소프트웨어를 사용하여 구현되는 경우, 소프트웨어는 컴퓨터 프로그램 제품에 저장될 수 있고 이동식 저장 드라이브(814), 인터페이스(820), 및 하드 디스크 드라이브(812) 또는 통신 인터페이스(824)를 사용하여 컴퓨터 시스템(800)에 로딩될 수 있다.
프로세서 장치(804)는 컴퓨터 시스템(800)의 기능을 수행하도록 구성된 하나 이상의 모듈 또는 엔진을 포함할 수 있다. 모듈 또는 엔진 각각은 하드웨어를 사용하여 구현될 수 있고, 일부 경우에 예를 들어 주 메모리(808) 또는 보조 메모리(810)에 저장된 프로그램 코드 및/또는 프로그램에 대응하는 소프트웨어를 활용할 수도 있다. 이러한 경우, 프로그램 코드는 컴퓨터 시스템(800)의 하드웨어에 의해 실행되기 전에 프로세서 장치(804)에 의해(예를 들어, 컴파일 모듈 또는 엔진에 의해) 컴파일될 수 있다. 예를 들어, 프로그램 코드는 프로세서 장치(804) 및/또는 컴퓨터 시스템(800)의 임의의 추가적인 하드웨어 구성요소에 의한 실행을 위해 어셈블리 언어 또는 기계어 코드와 같은 하위 레벨 언어로 번역되는 프로그래밍 언어로 작성된 소스 코드일 수 있다. 컴파일 프로세스는 어휘 분석, 전처리, 파싱, 의미 분석, 구문 지향 번역, 코드 생성, 코드 최적화, 및 프로그램 코드를 컴퓨터 시스템(800)을 제어하는 데 적합한 하위 레벨 언어로 번역하는 데 적합할 수 있는 기타 기법의 사용을 포함하여 본원에 개시된 기능을 수행할 수 있다. 이러한 프로세스로 인해 컴퓨터 시스템(800)이 위에서 논의된 기능을 수행하도록 고유하게 프로그래밍된 특별히 구성된 컴퓨터 시스템(800)이 된다는 것은 당업자에게 명백할 것이다.
본 개시내용에 따른 기법은 특히 해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 시스템 및 방법을 제공한다. 개시된 시스템 및 방법의 다양한 예시적인 실시예를 위에서 설명하였지만, 이들은 단지 예시의 목적으로 제시되고 제한되지 않음을 이해해야 한다. 이는 본 개시내용을 개시된 정확한 형태로 총망라하거나 제한하지 않는다. 수정 및 변형은 위의 교시를 고려하여 가능하거나 또는 폭이나 범위를 벗어나지 않고 본 개시내용의 실시로부터 획득될 수 있다.

Claims (20)

  1. 해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 방법으로서,
    처리 서버의 메모리에 가장 최근의 블록을 포함하는 복수의 블록으로 구성된 블록체인을 저장하는 단계로서, 상기 가장 최근의 블록은 블록 헤더를 포함하는, 단계;
    상기 처리 서버의 수신기가 하나 이상의 거래 데이터 값을 수신하는 단계;
    상기 처리 서버의 수신기가 제1 기준 값 및 제2 기준 값을 수신하는 단계;
    상기 처리 서버의 처리 장치가 상기 제1 기준 값을 해싱함으로써 제1 해시 값을 생성하는 단계;
    상기 처리 서버의 처리 장치가 적어도 상기 제1 해시 값, 제2 해시 값, 제3 기준 값, 및 블록 값을 포함하는 블록 증명을 생성하는 단계;
    상기 처리 서버의 처리 장치가 상기 블록 증명을 사용하여 상기 가장 최근의 블록에 포함된 상기 블록 헤더를 검증하는 단계;
    상기 처리 서버의 수신기가 새로운 블록 값을 수신하는 단계;
    상기 처리 서버의 처리 장치가 적어도 상기 제1 기준 값, 상기 제2 기준 값, 제4 기준 값, 및 상기 새로운 블록 값을 포함하는 새로운 블록 헤더를 생성하는 단계;
    상기 처리 서버의 처리 장치가 상기 새로운 블록 헤더 및 상기 하나 이상의 거래 데이터 값을 포함하는 상기 블록체인에 대한 새로운 블록을 생성하는 단계; 및
    상기 처리 서버의 전송기가 상기 새로운 블록을 상기 블록체인과 연관된 하나 이상의 추가 노드로 전송하는 단계를 포함하는, 해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 방법.
  2. 제1항에 있어서,
    상기 처리 서버의 처리 장치가 상기 하나 이상의 거래 데이터 값을 사용하여 머클 트리를 생성하는 단계를 더 포함하고,
    상기 새로운 블록 헤더는 상기 머클 트리의 루트를 더 포함하는, 방법.
  3. 제2항에 있어서, 상기 새로운 블록 헤더는 버전 데이터 및 블록 헤더 기준 값을 더 포함하는, 방법.
  4. 제3항에 있어서,
    상기 처리 서버의 처리 장치가 상기 검증된 블록 헤더를 해싱함으로써 상기 블록 헤더 기준 값을 생성하는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서,
    상기 처리 서버의 처리 장치가 상기 제1 기준 값, 상기 제2 기준 값, 상기 제4 기준 값, 및 하나 이상의 데이터 포인트의 조합을 해싱함으로써 상기 블록 값을 생성하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서, 상기 하나 이상의 데이터 포인트는 적어도 버전 데이터, 블록 헤더 기준 값, 및 머클 트리의 루트를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 처리 서버의 처리 장치가 상기 제4 기준 값을 해싱함으로써 상기 제2 해시 값을 생성하는 단계를 더 포함하는, 방법.
  8. 제7항에 있어서, 상기 제4 기준 값은 상기 처리 서버의 메모리에 저장되는, 방법.
  9. 제1항에 있어서,
    상기 제1 기준 값 및 제2 기준 값은 외부 컴퓨팅 시스템으로부터 수신되고,
    상기 새로운 블록 값은 상기 외부 컴퓨팅 시스템으로부터 수신되는, 방법.
  10. 제9항에 있어서, 상기 외부 컴퓨팅 시스템은 상기 블록체인과 연관된 상기 하나 이상의 추가 노드 중 하나인, 방법.
  11. 해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 시스템으로서,
    블록체인과 연관된 노드로서의 처리 서버; 및
    상기 블록체인과 연관된 하나 이상의 추가 노드를 포함하고,
    상기 처리 서버는 적어도,
    전송기;
    가장 최근의 블록을 포함하는 복수의 블록으로 구성된 블록체인을 저장하는 메모리로서, 상기 가장 최근의 블록은 블록 헤더를 포함하는, 메모리;
    하나 이상의 거래 데이터 값, 제1 기준 값, 제2 기준 값을 수신하는 수신기; 및
    처리 장치를 포함하고, 상기 처리 장치는,
    상기 제1 기준 값을 해싱함으로써 제1 해시 값을 생성하고;
    적어도 상기 제1 해시 값, 제2 해시 값, 제3 기준 값, 및 블록 값을 포함하는 블록 증명을 생성하고;
    상기 블록 증명을 사용하여 상기 가장 최근의 블록에 포함된 상기 블록 헤더를 검증하고,
    상기 수신기는 추가로 새로운 블록 값을 수신하고,
    상기 처리 장치는 추가로,
    적어도 상기 제1 기준 값, 상기 제2 기준 값, 제4 기준 값, 및 상기 새로운 블록 값을 포함하는 새로운 블록 헤더를 생성하고;
    상기 새로운 블록 헤더 및 상기 하나 이상의 거래 데이터 값을 포함하는 상기 블록체인에 대한 새로운 블록을 생성하고,
    상기 전송기는 상기 새로운 블록을 상기 블록체인과 연관된 하나 이상의 추가 노드로 전송하는, 해시 지향적 스킴을 사용하여 허가된 블록체인을 조정하기 위한 시스템.
  12. 제11항에 있어서,
    상기 처리 서버의 처리 장치는 추가로 상기 하나 이상의 거래 데이터 값을 사용하여 머클 트리를 생성하고,
    상기 새로운 블록 헤더는 상기 머클 트리의 루트를 더 포함하는, 시스템.
  13. 제12항에 있어서, 상기 새로운 블록 헤더는 버전 데이터 및 블록 헤더 기준 값을 더 포함하는, 시스템.
  14. 제13항에 있어서, 상기 처리 서버의 처리 장치는 추가로 상기 검증된 블록 헤더를 해싱함으로써 상기 블록 헤더 기준 값을 생성하는, 시스템.
  15. 제11항에 있어서, 상기 처리 서버의 처리 장치는 추가로 상기 제1 기준 값, 상기 제2 기준 값, 상기 제4 기준 값, 및 하나 이상의 데이터 포인트의 조합을 해싱함으로써 상기 블록 값을 생성하는, 시스템.
  16. 제15항에 있어서, 상기 하나 이상의 데이터 포인트는 적어도 버전 데이터, 블록 헤더 기준 값, 및 머클 트리의 루트를 포함하는, 시스템.
  17. 제11항에 있어서, 상기 처리 서버의 처리 장치는 추가로 상기 제4 기준 값을 해싱함으로써 상기 제2 해시 값을 생성하는, 시스템.
  18. 제17항에 있어서, 상기 제4 기준 값은 상기 처리 서버의 메모리에 저장되는, 시스템.
  19. 제11항에 있어서,
    상기 제1 기준 값 및 제2 기준 값은 외부 컴퓨팅 시스템으로부터 수신되고,
    상기 새로운 블록 값은 상기 외부 컴퓨팅 시스템으로부터 수신되는, 시스템.
  20. 제19항에 있어서, 상기 외부 컴퓨팅 시스템은 상기 블록체인과 연관된 상기 하나 이상의 추가 노드 중 하나인, 시스템.
KR1020237042852A 2021-05-11 2022-04-07 양자 내성 해싱 스킴을 위한 방법 및 시스템 KR20240005957A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/317,456 2021-05-11
US17/317,456 US11626999B2 (en) 2018-11-09 2021-05-11 Method and system for quantum-resistant hashing scheme
PCT/US2022/023795 WO2022240500A1 (en) 2021-05-11 2022-04-07 Method and system for quantum-resistant hashing scheme

Publications (1)

Publication Number Publication Date
KR20240005957A true KR20240005957A (ko) 2024-01-12

Family

ID=84029793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237042852A KR20240005957A (ko) 2021-05-11 2022-04-07 양자 내성 해싱 스킴을 위한 방법 및 시스템

Country Status (5)

Country Link
EP (1) EP4338370A1 (ko)
JP (1) JP2024518487A (ko)
KR (1) KR20240005957A (ko)
CN (1) CN117157939A (ko)
WO (1) WO2022240500A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101680540B1 (ko) * 2015-06-18 2016-11-30 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
US9992022B1 (en) * 2017-02-06 2018-06-05 Northern Trust Corporation Systems and methods for digital identity management and permission controls within distributed network nodes
EP3396608A1 (en) * 2017-04-24 2018-10-31 BlockSettle AB Method and system for settling a blockchain transaction
US11063764B2 (en) * 2018-11-09 2021-07-13 Mastercard International Incorporated Method and system for quantum-resistant hashing scheme
US11070379B2 (en) * 2019-04-18 2021-07-20 Advanced New Technologies Co., Ltd. Signature verification for a blockchain ledger

Also Published As

Publication number Publication date
EP4338370A1 (en) 2024-03-20
WO2022240500A1 (en) 2022-11-17
CN117157939A (zh) 2023-12-01
JP2024518487A (ja) 2024-05-01

Similar Documents

Publication Publication Date Title
CA3009326C (en) Method and system for blockchain variant using digital signatures
US20180349896A1 (en) Method and system for anonymization of electronic transactions via blockchain
US11373179B2 (en) Method and system for secure and verifiable offline blockchain transactions
EP3900257B1 (en) Method and system for consent to time-bound queries in a blockchain
US11063764B2 (en) Method and system for quantum-resistant hashing scheme
US11924185B2 (en) Method and system for general data protection compliance via blockchain
US20210117938A1 (en) Method and system for control of pii through limiting transfers on blockchain
US20230283453A1 (en) Method and system for the atomic exchange of blockchain assets using transient key pairs
JP2023103346A (ja) 複数のブロックチェーンにわたる一貫した台帳の分散のための方法およびシステム
JP2023518761A (ja) ハッシュチェインを使用してスカラーデジタル資産を表すための方法及びシステム
KR20240005957A (ko) 양자 내성 해싱 스킴을 위한 방법 및 시스템
US11917077B2 (en) Method and system for quantum-resistant hashing scheme
US11900367B2 (en) Method and system for enabling traceable privacy-maintaining multi-hop offline transactions in digital currencies
US20210295278A1 (en) Method and system to delegate issuance capability to a third-party
US20230196346A1 (en) Method and system of providing for offline transactions in digital currencies
WO2023080971A1 (en) Method and system for private transaction processing

Legal Events

Date Code Title Description
A201 Request for examination