KR102326460B1 - 원장 시스템에서의 신뢰 포인트 관리 - Google Patents

원장 시스템에서의 신뢰 포인트 관리 Download PDF

Info

Publication number
KR102326460B1
KR102326460B1 KR1020207031204A KR20207031204A KR102326460B1 KR 102326460 B1 KR102326460 B1 KR 102326460B1 KR 1020207031204 A KR1020207031204 A KR 1020207031204A KR 20207031204 A KR20207031204 A KR 20207031204A KR 102326460 B1 KR102326460 B1 KR 102326460B1
Authority
KR
South Korea
Prior art keywords
record
timestamp
transaction
records
trust
Prior art date
Application number
KR1020207031204A
Other languages
English (en)
Other versions
KR20210058745A (ko
Inventor
야양 구안
신잉 양
Original Assignee
알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디. filed Critical 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디.
Publication of KR20210058745A publication Critical patent/KR20210058745A/ko
Application granted granted Critical
Publication of KR102326460B1 publication Critical patent/KR102326460B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

원장 시스템에서 신뢰 포인트들을 관리하기 위한, 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함한, 디바이스, 방법, 시스템 및 장치가 개시된다. 방법들 중 하나는 원장 시스템에서 일련의 기록들 내 지정된 기록에 대한 신뢰 포인트를 설정하기 위한 요청을 획득하는 단계, 지정된 기록이 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한 후보 신뢰 포인트인지 여부를 결정하는 단계, 만약 그렇다면, 지정된 기록이 신뢰 시간 서버로부터의 신뢰 타임스탬프 정보를 포함하는 타임스탬프 기록인지 여부를 결정하는 단계, 지정된 기록이 타임스탬프 기록이 아니라는 결정에 응답하여, 지정된 기록에 인접한 타임스탬프 기록을 식별하는 단계, 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정하는 단계, 및 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다는 결정에 응답하여, 타임스탬프 기록을 일련의 기록들에서 신뢰 포인트로서 마킹하는 단계를 포함한다.

Description

원장 시스템에서의 신뢰 포인트 관리
본 명세서는 원장(ledger) 시스템에서 신뢰 포인트들을 관리하는 것에 관한 것이다.
원장은 일반적으로 조직에서 경제 및 재무 활동 등의 트랜잭션(transaction) 이력을 기록하는 데 사용된다. 관계형 데이터베이스에서 생성된 커스텀 감사 테이블(audit table) 또는 감사 트레일(audit trail) 등의 원장과 같은 기능성을 가진 애플리케이션은 애플리케이션의 데이터의 정확한 이력을 유지하기 위해 구축되었다. 그러나, 이러한 애플리케이션을 구축하는 것은 시간이 많이 걸리고 인적 오류가 발생하기 쉽다. 또한, 관계형 데이터베이스는 본질적으로 불변적인 것이 아니기 때문에, 데이터에 대한 임의의 변경을 추적하고 확인하기가 어렵다.
합의 네트워크(consensus network) 및/또는 블록 체인 네트워크(blockchain network)라고도 지칭될 수 있는 분산 원장 시스템(Distributed ledger system; DLS)은 참여하는 엔티티들이 데이터를 안전하게 그리고 불변적으로 저장할 수 있게 한다. DLS는 일반적으로 어떤 특정 유저 케이스(user case)와도 관련하지 않고서 블록 체인 네트워크라고 지칭된다. 블록 체인 네트워크의 타입들의 예는 퍼블릭 블록 체인 네트워크(public blockchain network), 프라이빗 블록 체인 네트워크(private blockchain network) 및 컨소시엄 블록 체인 네트워크(consortium blockchain network)를 포함할 수 있다. 블록 체인 네트워크는 트랜잭션이 블록 체인 네트워크에 추가될 수 있기 전에 각각의 트랜잭션을 검증(validate)하기 위해 합의 프로세스를 수행하는데, 이는 시간이 많이 걸리고 비효율적이며 복잡할 수 있다.
따라서, 트랜잭션들을 효과적으로 그리고 안전하게 관리할 수 있는 원장 시스템을 개발하고 원장 시스템에 저장된 트랜잭션들의 불변성(immutability), 확실성(reliability), 신뢰성(trustworthiness), 및 추적성(traceability)을 확인하는 보다 효율적인 방법을 제공하는 것이 요망된다.
요지의 설명된 실시형태들은 하나 이상의 특징을 단독으로 또는 조합하여 포함할 수 있다.
예를 들어, 하나의 실시예에서, 컴퓨터 구현 방법은 원장 시스템에서 컴퓨팅 디바이스에 의해 원장 시스템에 저장된 일련의 기록들에서 지정된 기록에 대한 신뢰 포인트를 설정하기 위한 요청을 획득하는 단계로서, 상기 신뢰 포인트는 일련의 기록들에서 신뢰 포인트 전의 기록들이 신뢰할 수 있다는 것을 나타내는, 상기 요청을 획득하는 단계; 지정된 기록이 후보 신뢰 포인트인지 여부를 결정하는 단계; 지정된 기록이 후보 신뢰 포인트라는 결정에 응답하여, 컴퓨팅 디바이스에 의해 지정된 기록이 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 포함하는 타임스탬프 기록인지 여부를 결정하는 단계로서, 상기 신뢰 시간 서버는 신뢰 시간 기관과 연관되고 원장 시스템과는 독립적인, 상기 타임스탬프 기록인지 여부를 결정하는 단계; 지정된 기록이 타임스탬프 기록이 아니라는 결정에 응답하여, 컴퓨팅 디바이스에 의해 일련의 기록들에서 타임스탬프 기록들 중 지정된 기록에 인접한 타임스탬프 기록을 식별하는 단계; 컴퓨팅 디바이스에 의해 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정하는 단계; 및 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다는 결정에 응답하여, 컴퓨팅 디바이스에 의해 타임스탬프 기록을 일련의 기록들에서 신뢰 포인트로서 마킹하는 단계를 포함한다.
일부 실시예에서, 이러한 일반 및 특정 실시예 중 하나 이상은 디바이스, 시스템, 방법, 또는 컴퓨터 판독 가능 매체, 또는 디바이스, 시스템, 방법, 및 컴퓨터 판독 가능 매체의 임의의 조합을 사용하여 구현될 수도 있다. 이전의 그리고 다른 설명된 실시예들은 각각 선택적으로 다음의 실시예들 중 하나 이상을 포함할 수 있다:
일부 실시예에서, 일련의 기록들의 각각의 기록은 각각의 트랜잭션을 포함한다.
일부 실시예에서, 일련의 기록들의 각각의 기록은 일련의 기록들에서 기록 직전 선행 기록의 각각의 해시를 포함한다.
일부 실시예에서, 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다고 결정하는 단계는 타임스탬프 기록이 지정된 기록에 대해 추적 가능하고 이를 인증하는 정보를 포함하는지 확인하는 단계, 또는 지정된 기록이 타임스탬프 기록에 대해 추적 가능하고 이를 인증하는 정보를 포함하는 것을 확인하는 단계 중 적어도 하나를 포함한다.
일부 실시예에서, 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다고 결정하는 단계는 일련의 기록들에서 타임스탬프 기록으로부터 지정된 기록까지 각각의 기록이 기록 직전 선행 기록의 각각의 해시를 포함하는 것을 확인하는 단계를 포함한다.
일부 실시예에서, 지정된 기록이 후보 신뢰 포인트라고 결정하는 단계는 지정된 기록이 일련의 기록들에서 지정된 기록 전 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한 것을 확인하는 단계를 포함한다.
일부 실시예에서, 지정된 기록이 지정된 기록 전 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인하는 단계는 일련의 기록들에서 지정된 기록으로부터 선행 신뢰 포인트까지 각각의 기록이 기록 직전 선행 기록의 각각의 해시를 포함하는 것을 확인하는 단계를 포함한다.
일부 실시예에서, 선행 신뢰 포인트는 일련의 기록들에서 지정된 기록 직전 신뢰 포인트, 또는 일련의 기록들에서 신뢰 포인트들에 대한 소스인 제 1 기록 중 하나이다.
일부 실시예에서, 지정된 기록이 일련의 기록들에서 지정된 기록 전 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인하는 단계는 일련의 기록들에서 지정된 기록으로부터 거슬러(back) 선행 신뢰 포인트로 추적하는 단계, 또는 일련의 기록들에서 선행 신뢰 포인트로부터 앞으로(forward) 지정된 기록으로 추적하는 단계 중 적어도 하나를 포함한다.
일부 실시예에서, 방법은 일련의 기록들에서 지정된 기록 후에 있는 확인될(to-be-verified) 기록을 확인하기 위한 요청을 수신하는 단계; 및 일련의 기록들에서 타임스탬프 기록에 선행하는 기록들을 확인하지 않고서 확인될 기록이 타임스탬프 기록에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인함으로써 확인될 기록이 확인되는 단계를 더 포함한다.
일부 실시예에서, 타임스탬프 요청을 신뢰 시간 서버로 송신하는 단계; 신뢰 시간 서버로부터 타임스탬프 요청에 대한 신뢰 타임스탬프 및 연관된 서명을 수신하는 단계; 및 일련의 기록들에서 기록으로서 신뢰 타임스탬프 및 연관된 서명을 저장하는 단계, 여기서 신뢰 시간 서버로부터 신뢰 타임스탬프 및 연관된 서명을 저장하는 기록은 일련의 기록들에서 새로운 타임스탬프 기록이고, 새로운 타임스탬프 기록은 타임스탬프 요청이 송신될 때 일련의 기록들에 저장된 가장 최근의 기록 직후에 저장되고 가장 최근의 기록의 해시를 포함한다.
일부 실시예에서, 일련의 기록들에서 새로운 타임스탬프 기록과 새로운 타임스탬프 기록 직전의 선행 타임스탬프 기록 사이의 기록들은 유닛으로 그룹화되고, 새로운 타임스탬프 기록은 유닛에 마지막 기록으로서 포함된다.
일부 실시예에서, 타임스탬프 요청은 신뢰 시간 서버로 송신된 타임스탬프 요청들 중 타임스탬프 요청의 식별자, 가장 최근의 기록의 식별자 또는 해시, 또는 유닛 내 기록들의 해시들의 해시 다이제스트 중 적어도 하나를 포함한다.
일부 실시예에서, 타임스탬프 기록을 식별하는 단계는 지정된 기록을 포함하는 유닛 내 마지막 기록을 타임스탬프 기록으로 식별하는 단계, 및 지정된 기록을 포함하는 유닛 직전의 선행 유닛 내 마지막 기록을 타임스탬프 기록으로 식별하는 단계 중 하나를 포함한다.
일부 실시예에서, 방법은 일련의 기록들에서 제 2 기록이 제 2 후보 신뢰 포인트라고 결정하는 단계; 일련의 기록들에서 제 2 기록이 타임스탬프 기록이라고 결정하는 단계; 및 일련의 기록들에서 제 2 기록을 제 2 신뢰 포인트로서 마킹하는 단계를 더 포함한다.
일부 실시예에서, 방법은 타임스탬프 요청을 위해 미리 결정된 시간 주기로 타임스탬프 요청을 신뢰 시간 서버에 주기적으로 송신하는 단계를 더 포함한다.
일부 실시예에서, 방법은 블록 체인에서 일련의 기록들을 저장하는 블록들을 순차적으로 생성하는 단계를 더 포함하고, 각각의 블록은 하나 이상의 기록들을 저장하고 블록 체인에서 함께 링크되고, 블록 체인에서 블록들을 생성하는 단계는 지정된 기록이 신뢰 포인트라고 결정하는 것과는 독립적이고 신뢰 시간 서버에 타임스탬프 요청을 송신하는 것과는 독립적이다.
일부 실시예에서, 원장 시스템에 저장된 일련의 기록들에서 지정된 기록이 후보 신뢰 포인트라고 결정하는 단계는 타임스탬프 요청을 신뢰 시간 서버로 송신하는 것과는 독립적이다.
일부 실시예에서, 지정된 기록이 신뢰 시간 서버로부터의 신뢰 타임스탬프 정보를 포함하는 타임스탬프 기록이 아니라고 결정하는 것에 응답하여 지정된 기록은 일련의 트랜잭션들에서 신뢰 포인트로서 마킹되지 않는다.
일부 실시예에서, 일련의 기록들에서 각각의 기록은 각각의 기록 식별자와 연관되고, 일련의 기록들은 각각의 기록 식별자에 따라 순서대로 저장되고, 일련의 기록들에서 타임스탬프 기록들 중 지정된 기록에 인접한 타임스탬프 기록을 식별하는 단계는 일련의 기록들에서 지정된 기록에 대한 기록 식별자에 가장 가까운 기록 식별자와 연관된 타임스탬프 기록을 식별하는 단계를 포함한다.
일부 실시예에서, 새로운 타임스탬프 기록은 유닛 내 기록들의 해시들의 해시 다이제스트를 포함한다.
본 명세서에 따른 방법은 여기에 기재된 실시예의 임의의 조합을 포함할 수도 있음을 이해한다. 즉, 본 명세서에 따른 방법은 여기에 구체적으로 기재된 실시예의 조합에 제한되는 것이 아니라, 제공되는 실시예들의 임의의 조합도 포함한다.
본 명세서의 하나 이상의 실시예의 상세가 첨부 도면 및 아래의 설명에 제시된다. 본 명세서의 다른 실시예 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1 은 본 명세서의 실시예를 실행하는 데 사용될 수 있는 환경의 예를 예시하는 도면이다.
도 2 은 본 명세서의 실시예에 따른 아키텍처의 예를 예시하는 도면이다.
도 3 은 본 명세서의 실시예에 따른 원장 시스템에서 신뢰 타임스탬프 서비스를 구현하는 환경의 예를 예시하는 도면이다.
도 4a 는 본 명세서의 실시예에 따른 단일 클라이언트와 연관된 단일 원장 서버에서 신뢰 타임스탬프 서비스를 구현하기 위한 원장 시스템의 예를 예시하는 도면이다.
도 4b 는 본 명세서의 실시예에 따른 공동 원장 서버(joint ledger server)에 의한 다수의 클라이언트들에 신뢰 타임스탬프 서비스를 제공하기 위한 원장 시스템의 예를 예시하는 도면이다.
도 5a 는 본 명세서의 실시예에 따른 신뢰 포인트들을 갖는 원장 시스템의 예를 예시하는 도면이다.
도 5b 는 본 명세서의 실시예에 따른 트랜잭션들에 저장된 신뢰 타임스탬프 정보를 갖는 원장 시스템의 예를 예시하는 도면이다.
도 5c 는 본 명세서의 실시예에 따른 타임스탬프 트랜잭션들 상의 신뢰 포인트들을 관리하는 원장 시스템의 예를 예시하는 도면이다.
도 6 은 본 명세서의 실시예에 따라 실행될 수 있는 프로세스의 예를 예시하는 흐름도이다.
도 7 은 본 명세서의 실시예에 따른 장치의 모듈들의 예를 도시한다.
여러 도면들에서 같은 참조 번호 및 부호들은 같은 요소들을 표시한다.
본 명세서는 원장 시스템에서 신뢰 포인트들을 관리하기 위한 기술들을 설명한다. 이들 기술은 일반적으로, 원장 시스템에 저장된 데이터의 불변성, 확실성, 신뢰성, 추적성 및 확인 가능성을 활용하기 위해 블록 체인의 데이터 구조 및/또는 블록 체인과 유사한 데이터 구조를 채택하는 원장 시스템(예를 들어, 블록 체인 기반 집중화 원장 시스템)을 수반한다. 원장 시스템은 데이터를 트랜잭션 또는 블록과 같은 일련의 데이터 기록(기록이라고도 함)으로 저장할 수 있다. 일부 실시예에서, 일련의 기록들은 저장된 데이터의 비인가된 변경을 방지하기 위해 함께 링크되거나 또는 앵커링될 수 있다. 예를 들어, 기록은 기록 직전 선행 기록의 고유 식별자(예를 들어, 각각의 해시)를 저장하여, 선행 기록의 임의의 변경이 고유 식별자의 변경을 초래하고, 이는 결국 기록에 저장된 고유 식별자에 대한 불일치를 초래할 수도 있다. 이 블록 체인과 유사한 데이터 구조는 원장 시스템에 저장된 기록들의 신뢰성을 확인하기 위한 체계를 제공한다. 예를 들어, 기록에 선행하는 모든 기록이 원래 또는 초기 기록(예 : 원장 시스템의 발생 트랜잭션 또는 블록 체인에서 발생 블록)으로 신뢰할 수 있게 거슬러 추적될 수 있는지 여부를 체크하여 기록의 신뢰성을 확인할 수 있다.
본 명세서에 사용된, "A 는 B 에 대해 신뢰할 수 있게 추적 가능하다" 는 A 가 B 에 대해 추적 가능한 정보를 포함하고 그 정보가 B 가 변경되지 않았음을 인증하거나, B 가 A 에 대해 추적 가능한 정보를 포함하고 그 정보가 A 가 변경되지 않았음을 인증하는 시나리오를 포함한다. 예를 들어, A 는 B 의 해시를 포함할 수 있다. 예를 들어, B 의 해시는 확인자에 의해 독립적으로 계산되고 A 에 저장된 해시와 비교될 수 있다. 2 개의 해시가 일치하면, B 가 인증되었음이 결정될 수 있다. 따라서, A 는 B 에 대해 신뢰할 수 있게 추적 가능하다. 유사하게, B 가 A 가 변경되지 않았음을 인증하는 A 의 해시 또는 다른 확인 가능한 정보를 포함하는 경우에 A 는 B 에 대해 신뢰할 수 있게 추적 가능한 것으로 고려된다. 일부 실시예에서, B 에 대해 신뢰할 수 있게 추적 가능한 A 는 또한 A 및 B 가 중간 데이터를 통해 서로에 대해 신뢰할 수 있게 추적 가능한 시나리오를 포함한다. 예를 들어, A 가 C 에 대해 신뢰할 수 있게 추적 가능하고 C 가 B 에 대해 신뢰할 수 있게 추적 가능한 경우 A 는 B 에 대해 신뢰할 수 있게 추적 가능한 것으로 고려된다. 추가 시나리오가 생각될 수 있다.
원장 시스템은 일련의 기록들 중에 신뢰 포인트들을 설정할 수 있다. 예를 들어, 신뢰 포인트는 일련의 기록들 중 한 기록(예를 들어, 블록 체인의 블록에 있는 트랜잭션 또는 블록 체인에 있는 블록)일 수 있으며, 이는 일련의 기록들에서 신뢰 포인트 전에 저장된 모든 기록이 신뢰할 수 있음을 나타낸다. 그래서, 신뢰 포인트 이후에 저장된 데이터의 신뢰성을 확인하는 것은, 원래 또는 초기 기록(예 : 원장 시스템에서 발생 트랜잭션 또는 블록 체인에서 발생 블록) 또는 신뢰 포인트에 선행하는 임의의 데이터로 거슬러 추적할 필요 없이 신뢰 포인트로 신뢰할 수 있게 추적하는 것에 의해 확인될 수 있다. 이에 따라, 확인 프로세스가 단순화될 수 있고 연산 효율이 향상될 수 있다. 일부 실시예에서, 원장 시스템은 원장 시스템과는 독립적인 신뢰 시간 서버(예를 들어, 제 3 자, 세계적으로 승인된 시간 기관)로부터 신뢰 타임스탬프 정보를 획득할 수 있다. 원장 시스템은 신뢰 시간 서버에 의해 제공되는 타임스탬프 정보 상에 설정된 신뢰를 활용하고 저장된 데이터 및/또는 설정된 신뢰 포인트들을 위한 원장 시스템으로 신뢰 타임스탬프 정보를 통합할 수 있으며, 이는 저장된 데이터의 신용성(credibility), 신뢰성, 감사가능성(auditability) 및 적법성(legality)을 더욱 향상시킬 수 있다.
예시 목적으로만, 본 개시에서, 트랜잭션은 기록의 예로서 설명된다.
본 명세서에 설명된 기술은 몇 가지 기술적 효과를 생성한다. 일부 실시예에서, 원장 시스템은(부인 방지(non-repudiation) 및 부정 방지(temper-resistance)를 갖는) 시간 결정적 감사를 갖는 암호화 확인 가능한 상태 독립적 데이터 원장 저장을 제공할 수 있는 블록 체인 기반 집중화 원장 시스템일 수 있다. 일부 실시예에서, 원장 시스템은 신용성과 중립성을 갖는 집중화 보증(endorsement)을 특징으로 하는 클라우드 플랫폼에 기초한 원장 서비스를 제공할 수 있다. 원장 시스템은 감사 요건, 추적성 및 트래킹을 갖는 다양한 타입의 데이터 및 로그의 취급을 위한 블록 체인 시스템의 높은 신용성 및 집중화 시스템의 높은 성능과 낮은 레이턴시 양자 모두를 활용하여 고도로 확실하고 고성능의 감사 가능 스트리밍 원장 서비스를 제공할 수 있다.
일부 실시예에서, 원장 시스템은, 블록 체인 데이터 구조의 블록들에 저장되는 투명하고, 불변적이며, 암호화로 확인 가능한 데이터를 제공하는 중앙 신뢰 기관을 포함할 수 있다. 일부 실시예에서, 저장된 데이터는 예를 들어 트랜잭션 로그뿐만 아니라 다른 트랜잭션 데이터 및 블록 데이터를 포함하는 로그 형식일 수 있다. 중앙 신뢰 기관의 존재로 인해, 원장 시스템은 신뢰를 설정하기 위해 합의 프로세스를 수행할 필요가 없으며, 이는 상당한 시간과 비용 절약을 낳을 수 있다. 일부 실시예에서, 원장 시스템은 전형적인 블록 체인 기반 분산 또는 비집중화 원장 시스템에 비해 더 효율적일 수 있다. 일부 실시예에서, 원장 시스템은 향상된 신뢰, 효율 및 저장 성능을 갖춘 클라우드 기반 저장 서비스를 제공할 수 있다.
일부 실시예에서, 원장 시스템은 원장 시스템에 저장된 데이터의 신용성, 감사 가능성 및 적법성을 향상시킬 수 있다. 예를 들어, 원장 시스템은 신뢰 시간 서버와 인터페이스로 접속하고 신뢰 시간 서버의 신뢰 타임스탬프 정보를 원장 시스템의 클라이언트에게 제공할 수 있다. 신뢰 시간 서버는 원장 시스템과는 독립적이다. 신뢰 시간 서버는 정확한 시간 서비스를 제공하는 제 3 자 신뢰 시간 기관과 연관될 수 있으며, 예를 들어 세계적으로, 공공의, 감사 엔티티(이를테면, 회사, 기관 또는 조직) 및/또는 법률적 엔티티(이를테면, 법원 또는 정부)에 의해 승인되거나 또는 신뢰될 수 있다. 신뢰 시간 서버에 의해 제공된 타임스탬프 정보의 신뢰성이 승인됨에 따라, 저장된 데이터를 위한 원장 시스템에 신뢰 시간 서버의 타임스탬프 정보를 통합하는 것은 원장 시스템에 저장된 데이터의 신용성, 감사 가능성, 및 적법성을 더 향상시킬 수 있다.
일부 실시예에서, 원장 시스템은 원장 시스템의 당사자 또는 참여자의 각각의 권리를 특징으로 한다. 예를 들어, 원장 시스템의 클라이언트는 클라이언트가 트랜잭션 데이터를 부인할 수 없도록 원장 시스템에 트랜잭션 데이터를 저장하기 위한 서명을 제공할 권리를 가질 수 있다. 일부 실시예에서, 원장 시스템은 원장 시스템이 트랜잭션 데이터의 저장을 거부할 수 없도록 트랜잭션 데이터의 저장을 승인하기 위한 서명을 제공할 권리를 갖는다. 일부 실시예에서, 신뢰 시간 서버는 신뢰 시간 서버가 신뢰 타임스탬프 정보를 거부할 수 없도록 원장 시스템에 저장된 트랜잭션 데이터에 대한 신뢰 타임스탬프 정보를 위한 서명을 제공할 권리를 갖는다. 일부 실시예에서, 세 당사자(클라이언트, 원장 시스템 및 신뢰 시간 서버)의 3개 각각의 권리는 서로 독립적이다. 3개의 권리와 그들 각각의 부인 방지 및 부정 방지 성질의 통합은 원장 시스템에 저장된 트랜잭션 데이터의 신용성 및 감사 가능성을 더 향상시킬 수 있다.
일부 실시예에서, 원장 시스템은 원장 시스템에 저장된 트랜잭션 데이터의 향상된 정연성(orderliness) 및 진정성(authenticity)을 제공할 수 있다. 예를 들어, 원장 시스템은 원장 시스템에 저장된 트랜잭션 데이터에 대한 신뢰 타임스탬프 요청을 신뢰 시간 서버로 송신할 수 있으며, 신뢰 시간 서버는 예를 들어, 트랜잭션 데이터의 시간을 인증 또는 보증하기 위하여, 타임스탬프 및 연관된 서명과 같은 신뢰 타임스탬프 정보를 제공할 수 있다. 원장 시스템은 원장 시스템에 예를 들어, 트랜잭션들로서, 신뢰 타임스탬프 정보를 저장할 수 있다.
일부 실시예에서, 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 저장하는 트랜잭션은 타임스탬프 트랜잭션으로 지칭될 수 있다. 일부 실시예에서, 일련의 트랜잭션들은 트랜잭션 직전 선행 트랜잭션의 각각의 해시를 저장하는 각각의 트랜잭션에 의해 함께 링크되거나 또는 앵커링될 수 있다. 타임스탬프 트랜잭션은 또한 타임스탬프 트랜잭션 직전 선행 트랜잭션의 해시를 저장할 수도 있다. 따라서, 신뢰 타임스탬프 정보를 사용하여 원장 시스템에 저장된 트랜잭션들의 정연성 및 진정성을 확인할 수 있으며, 이는 차례로 원장 시스템에 저장된 트랜잭션들의 향상된 신용성, 감사 가능성 및 적법성을 제공할 수 있다.
일부 실시예에서, 원장 시스템은 바로 선행하는 타임스탬프 트랜잭션 후에 원장 시스템에 추가되는 유닛 내 2개 이상의 트랜잭션에 대한 신뢰 타임스탬프 정보를 요청할 수 있다. 원장 시스템은 트랜잭션들의 정보, 예를 들어, 유닛 내 트랜잭션들의 해시들의 해시 다이제스트를 포함하는 타임스탬프 요청을 전송할 수 있다. 타임스탬프 요청에 대한 신뢰 타임스탬프 정보를 수신한 후, 원장 시스템은 유닛 내 마지막 트랜잭션이기도 한 유닛 내 새로운 타임스탬프 트랜잭션으로서 신뢰 타임스탬프 정보를 저장할 수 있다. 유닛 내 트랜잭션들은 새로운 타임스탬프 트랜잭션과 동일한 신뢰 타임스탬프를 갖는 것으로 고려될 수 있다. 이러한 방식으로, 원장 시스템은 신뢰 시간 서버로부터 신뢰 타임스탬프를 요청하는 전체 비용을 줄일 수 있다.
일부 실시예에서, 여기에 설명된 이들 기술은 원장 시스템에 저장된 데이터 기록(예를 들어, 트랜잭션)의 향상된 불변성, 확실성, 신뢰성, 및 추적성을 제공하고 데이터 기록의 그러한 보안 특징을 확인하는 보다 효율적인 방법을 제공할 수 있다. 일부 실시예에서, 원장 시스템은 원장 시스템에 저장된 일련의 트랜잭션들에서 신뢰 포인트들을 설정할 수 있다. 신뢰 포인트는 신뢰 포인트에 선행하는 트랜잭션들이 신뢰할 수 있음을 나타낸다. 일련의 트랜잭션들에서 한 트랜잭션을 확인해야 할 때, 원장 시스템은 그 트랜잭션에 선행하는 가장 가까운 신뢰 포인트를 식별할 수 있고 가장 가까운 신뢰 포인트에 선행하는 트랜잭션들과 같은 이력의 트랜잭션을 확인하지 않고서 가장 가까운 신뢰 포인트에 대해 트랜잭션이 신뢰할 수 있게 추적 가능한지 여부를 확인하는 것만으로 트랜잭션이 확인될 수 있는지 여부를 결정할 수 있다. 이것은 일련의 트랜잭션들에서 트랜잭션 확인 속도, 효율 및 정확성을 크게 향상시킬 수 있다. 예를 들어, 원장 시스템은 다수의 트랜잭션, 예를 들어, 1000 개의 트랜잭션을 포함할 수 있다. 다수의 트랜잭션에 설정된 신뢰 포인트가 없는 경우, 가장 최근의 트랜잭션, 예를 들어 1000 번째 트랜잭션을 확인하기 위해, 원장 시스템은 트랜잭션이 기원 또는 발생 트랜잭션(예를 들어, 제 1 트랜잭션)에 대해 신뢰할 수 있게 추적 가능할 수 있는지 여부를, 예를 들어, 가장 최근의 트랜잭션으로부터 원래 트랜잭션까지 각각의 트랜잭션이 그 직전의 선행 트랜잭션의 각각의 해시를 포함하는지 여부를 확인하는 것에 의해, 확인해야 한다. 즉, 원장 시스템은 약 1000 번의 확인을 수행해야 한다. 그러나, 원장 시스템이 가장 최근의 트랜잭션을 확인하기 위해 다수의 트랜잭션에서 다수의 신뢰 포인트, 예를 들어 10 개의 트랜잭션 마다 신뢰 포인트를 설정하면, 원장 시스템은 가장 최근의 트랜잭션에 선행하는 가장 가까운 신뢰 포인트, 예를 들어, 990 번째 트랜잭션을 식별할 수 있다. 그런 다음 원장 시스템은 가장 가까운 신뢰 포인트 전의 이력의 트랜잭션을 확인하지 않고서 가장 최근의 트랜잭션이 가장 가까운 신뢰 포인트, 예를 들어, 990 번째 트랜잭션으로 신뢰할 수 있게 거슬러 추적될 수 있는지 여부를 확인할 수 있다. 즉, 원장 시스템은 약 10 번의 확인을 수행하기만 하면 된다. 따라서, 확인 계산 효율이 크게 향상될 수 있다. 훨씬 적은 계산으로, 확인 정확도가 또한 증가될 수 있다.
일부 실시예에서, 설명된 기술은 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 저장하는 타임스탬프 트랜잭션 상에 신뢰 포인트를 설정할 수 있다. 신뢰 타임스탬프 정보는 저장된 데이터(예 : 트랜잭션)의 타이밍을 인증하여 저장된 데이터의 비인가된 변경을 더 방지하는 신뢰 시간 서버로부터의 추가 신뢰 계층을 제공한다. 따라서, 신뢰 타임스탬프 정보가 없는 신뢰 포인트와 비교하여, 설정된 신뢰 포인트는 신뢰 시간 서버로부터 타임스탬프 정보를 기반으로 향상된 신뢰 또는 보증을 가질 수 있다. 신뢰 포인트로 결정된 지정된 트랜잭션이 타임스탬프 트랜잭션이 아닌 경우, 원장 시스템은 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능할 수 있는 지정된 트랜잭션에 인접한 타임스탬프 트랜잭션 상에 신뢰 포인트를 설정할 수 있다. 지정된 트랜잭션이 타임스탬프 트랜잭션이지만 신뢰 포인트가 아닌 것으로 결정되면, 원장 시스템은 지정된 트랜잭션에 인접하고 타임스탬프 트랜잭션 전의 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한 타임스탬프 트랜잭션을 식별하고 인접한 타임스탬프 트랜잭션 상에 새로운 신뢰 포인트를 설정할 수 있다.
일부 실시예에서, 타임스탬프 트랜잭션은 지정된 트랜잭션을 포함하는 트랜잭션들의 유닛 내 마지막 트랜잭션 또는 지정된 트랜잭션을 포함하는 유닛 직전의 선행 유닛 내 마지막 트랜잭션일 수 있다. 이러한 방식으로, 지정된 트랜잭션의 신뢰 포인트를 설정하기 위해 인접한 타임스탬프 트랜잭션을 찾는 것이 더 쉽고 더 빠를 수 있다. 그 결과, 원장 시스템에 저장된 트랜잭션의 신용성, 신뢰성, 적법성을 확인하는 데 효율과 정확성을 더욱 향상시킬 수 있다.
일부 실시예에서, 원장 시스템은 두 조건 모두가 충족되는 경우 지정된 트랜잭션을 신뢰 포인트로 설정할 수 있다. (1) 지정된 트랜잭션은 일련의 트랜잭션들에서 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하고, 그리고(2) 특화 트랜잭션은 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 저장하는 타임스탬프 트랜잭션이다. 일부 실시예에서, 원장 시스템은 먼저 2개 조건을 어느 하나의 순서로 또는 병렬로 확인할 수 있다. 예를 들어, 원장 시스템은, 예를 들어, 특화 트랜잭션이 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능할 수 있는 것을 확인하는 것에 의해, 특화 트랜잭션이 신뢰 포인트인 것을 확인하고, 다음으로 지정된 트랜잭션이 타임스탬프 트랜잭션인지 여부를 결정할 수 있다. 일부 실시예에서, 원장 시스템은 먼저 지정된 트랜잭션이 타임스탬프 트랜잭션인지 여부를 결정하고, 다음으로 특화 트랜잭션이 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능할 수 있는지 여부를 결정할 수 있다. 원장 시스템이 지정된 트랜잭션은 두 조건 중 하나를 충족한다고 결정하면, 원장 시스템은 지정된 트랜잭션이 후보 신뢰 포인트라고 결정할 수 있다. 원장 시스템이 지정된 트랜잭션이 두 조건 모두를 충족한다고 결정한 후에만, 원장 시스템은 지정된 트랜잭션이 신뢰 포인트라고 결정할 수 있다.
본 명세서의 실시예를 위한 추가 맥락을 제공하기 위하여, 그리고 위에서 소개한 바처럼,(예를 들어, 피어-투-피어 노드로 구성된) 합의 네트워크 및 블록 체인 네트워크라고도 지칭될 수 있는 분산 원장 시스템(DLS)은 참여 엔티티들로 하여금 안전하게 그리고 불변적으로 트랜잭션을 수행하고 데이터를 저장할 수 있게 한다. 블록 체인이라는 용어는 일반적으로 특정 네트워크, 및/또는 유스 케이스(use case)와 연관되어 있지만, 본 명세서에서는 어떤 특정 유스 케이스와도 관련하지 않고서 일반적으로 DLS 를 나타내기 위해 블록 체인이 사용된다.
블록 체인은 트랜잭션이 불변적이 되는 방식으로 트랜잭션을 저장하는 데이터 구조이다. 따라서, 블록 체인에 기록된 트랜잭션은 확실하고 신뢰할 수 있다. 블록 체인은 하나 이상의 블록들을 포함한다. 체인에 있는 각각의 블록은 이전 블록의 해시를 포함하여 체인에서 그 직전의 이전 블록에 링크된다. 각각의 블록은 또한 로컬 타임스탬프(예를 들어, 블록을 생성하는 컴퓨팅 디바이스 또는 블록 체인을 관리하는 컴퓨팅 시스템에 의해 제공됨), 그 자체 해시, 및 하나 이상의 트랜잭션들을 포함한다. 예를 들어, 블록은 블록 헤더 및 블록 바디를 포함할 수 있다. 블록 헤더는 로컬 타임스탬프, 그 자체 해시, 및 이전 블록의 해시를 포함할 수 있다. 블록 바디는 하나 이상의 트랜잭션들(또는 트랜잭션 데이터)와 같은 페이로드 정보를 포함할 수 있다. 블록 체인 네트워크의 노드에 의해 이미 확인된 트랜잭션들은 해싱되고 Merkle 트리로 인코딩된다. Merkle 트리는, 트리의 리프 노드에 있는 데이터가 해싱되고 트리의 각각의 브랜치(branch)에 있는 모든 해시가 브랜치의 루트에서 연접(concatenate)되는 데이터 구조이다. 이 프로세스는 트리에 있는 모든 데이터를 대표하는 해시를 저장하는 전체 트리의 루트로 트리를 계속한다. 트리에 저장된 트랜잭션의 것으로 칭해지는 해시는 트리의 구조와 일치하는지 여부를 결정함으로써 신속하게 확인될 수 있다.
블록 체인은 트랜잭션을 저장하기 위한 비집중식 또는 적어도 부분적으로 비집중식 데이터 구조인 반면, 블록 체인 네트워크는 트랜잭션들을 브로드캐스트, 확인 및 검증하는 등에 의해 하나 이상의 블록 체인을 관리, 업데이트 및 유지하는 컴퓨팅 노드들의 네트워크이다. 위에서 소개한 바처럼, 블록 체인 네트워크는 퍼블릭 블록 체인 네트워크, 프라이빗 블록 체인 네트워크, 또는 컨소시엄 블록 체인 네트워크로서 제공될 수 있다.
일반적으로, 컨소시엄 블록 체인 네트워크는 참여 엔티티들 중에서 프라이빗이다. 컨소시엄 블록 체인 네트워크에서, 합의 프로세스는, 합의 노드로 지칭될 수 있는, 인가된 노드 세트에 의해 제어되며, 하나 이상의 합의 노드는 각각의 엔티티(예를 들어, 금융 기관, 보험 회사)에 의해 운영된다. 예를 들어, 열(10) 개의 엔티티들(예를 들어, 금융 기관, 보험 회사)의 컨소시엄이 컨소시엄 블록 체인 네트워크를 운영할 수 있으며, 이들 각각은 컨소시엄 블록 체인 네트워크에서 적어도 하나의 노드를 운영한다. 일부 예에서 컨소시엄 블록 체인 네트워크 내에서, 전역 블록 체인은 모든 노드에 걸쳐 복제되는 블록 체인으로서 제공된다. 즉, 모든 합의 노드는 전역 블록 체인에 대해 완벽한 상태 합의를 이룬다. 합의(예를 들어, 블록을 블록 체인에 추가하는 것에 대한 동의)를 달성하기 위해, 합의 프로토콜이 컨소시엄 블록 체인 네트워크 내에서 구현된다. 예를 들어, 컨소시엄 블록 체인 네트워크는 아래에서 더 자세히 설명하는 실용적 비잔틴 장애 허용(practical Byzantine fault tolerance; PBFT) 합의를 구현할 수 있다.
일부 실시예에서, 집중식 원장 시스템은 블록 체인에 저장된 데이터의 불변성, 확실성 및 신뢰성을 활용하기 위해 블록 체인의 데이터 구조를 채택할 수도 있다. 일부 실시예에서, 이러한 집중식 원장 시스템은 블록 체인 기반의 집중식 원장 시스템 또는 보편적 감사 가능 원장 서비스 시스템이라고 할 수 있다. 일부 실시예에서, 블록 체인 기반 집중식 원장 시스템은, 블록 체인 데이터 구조의 블록들에 저장되는 투명하고, 불변적이며, 암호화로 확인 가능한 데이터를 제공하는 중앙 신뢰 기관을 포함할 수 있다. 저장된 데이터는 예를 들어, 트랜잭션 로그뿐만 아니라 다른 트랜잭션 데이터 및 블록 데이터를 포함하는 로그 형식일 수 있다. 중앙 신뢰 기관의 존재로 인해, 블록 체인 기반 집중식 원장 시스템은 신뢰를 설정하기 위해 합의 프로세스를 수행할 필요가 없다. 일부 실시예에서, 블록 체인 기반 집중식 원장 시스템은 전형적인 블록 체인 기반 분산 또는 비집중식 원장 시스템에 비해 더 효율적일 수 있다. 일부 실시예에서, 블록 체인 기반 집중식 원장 시스템은 향상된 신뢰, 효율 및 저장 성능을 갖춘 클라우드 기반 저장 서비스를 제공할 수 있다.
일부 실시예에서, 집중식 원장 시스템은 블록 체인 네트워크의 노드일 수 있다. 예를 들어, 집중식 원장 시스템은 블록 체인 네트워크에서의 비 합의 노드가 될 수 있으며 블록 체인 네트워크에서 합의 노드 또는 다른 비 합의 노드, 또는 블록 체인 네트워크 밖의 엔티티에 대해 매우 확실하고 고성능의 감사 가능한 스트리밍 원장 서비스를 제공할 수 있다.
도 1 은 본 명세서의 실시예를 실행하는 데 사용될 수 있는 환경(100)의 예를 예시하는 도면이다. 일부 예에서, 환경(100)은 엔티티들이 컨소시엄 블록 체인 네트워크(102)에 참여할 수 있게 한다. 환경(100)은 컴퓨팅 시스템(106, 108) 및 네트워크(110)를 포함한다. 일부 예에서, 네트워크(110)는 근거리 네트워크(LAN), 광역 네트워크(WAN), 인터넷, 또는 이들의 조합을 포함하고, 웹 사이트, 사용자 디바이스(예 : 컴퓨팅 디바이스) 및 백엔드 시스템을 접속시킨다. 일부 예에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다. 일부 예에서, 네트워크(110)은 컨소시엄 블록 체인 네트워크(102)와의 그리고 컨소시엄 블록 체인 네트워크(102) 내의 통신을 가능하게 한다. 일반적으로 네트워크(110)는 하나 이상의 통신 네트워크를 나타낸다. 일부 경우에, 컴퓨팅 시스템(106, 108)은 클라우드 컴퓨팅 시스템(미도시)의 노드일 수 있거나, 또는 컴퓨팅 시스템들(106, 108)의 각각은, 네트워크에 의해 상호 접속된 다수의 컴퓨터를 포함하고 분산 처리 시스템으로서 기능하는 별도의 클라우드 컴퓨팅 시스템일 수 있다.
도시된 예에서, 컴퓨팅 시스템(106, 108)은 컨소시엄 블록 체인 네트워크(102)에서 노드로서의 참여를 가능하게 하는 임의의 적절한 컴퓨팅 시스템을 각각 포함할 수 있다. 컴퓨팅 시스템의 예에는 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스 및 스마트폰이 포함되지만, 이에 제한되지는 않는다. 일부 예에서, 컴퓨팅 시스템(106, 108)은 컨소시엄 블록 체인 네트워크(102)와 상호 작용하기 위한 하나 이상의 컴퓨터 구현 서비스를 호스팅한다. 예를 들어, 컴퓨팅 시스템(106)은 제 1 엔티티(예를 들어, 사용자 A)의 컴퓨터 구현 서비스, 이를테면 제 1 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와 그의 트랜잭션을 관리하기 위해 사용하는 트랜잭션 관리 시스템을 호스팅할 수 있다. 컴퓨팅 시스템(108)은 제 2 엔티티(예를 들어 사용자 B)의 컴퓨터 구현 서비스, 이를테면 제 2 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 그의 트랜잭션을 관리하기 위해 사용하는 트랜잭션 관리 시스템을 호스팅할 수 있다. 도 1 의 예에서, 컨소시엄 블록 체인 네트워크(102)는 노드들의 피어-투-피어 네트워크로서 표현되고, 컴퓨팅 시스템들(106, 108)은 컨소시엄 블록 체인 네트워크(102)에 참여하는 제 1 엔티티 및 제 2 엔티티의 노드들을 각각 제공한다.
도 2 는 본 명세서의 실시예에 따른 아키텍처(200)의 예를 예시하는 도면이다. 예시의 개념적 아키텍처(200)는 참여자 A, 참여자 B 및 참여자 C 에 각각 대응하는 참여자 시스템(202, 204, 206)을 포함한다. 각각의 참여자(예를 들어, 사용자, 기업)는 다수의 노드(214)를 포함하는 피어-투-피어 네트워크로서 제공되는 블록 체인 네트워크(212)에 참여하고, 이들 중 적어도 일부는 블록 체인(216)에 정보를 불변적으로 기록한다. 단일 블록 체인(216)이 블록 체인 네트워크(212) 내에 개략적으로 도시되어 있지만, 여기서 더 자세하게 설명되는 바처럼, 블록 체인(216)의 다수의 사본이 제공되고, 블록 체인 네트워크(212)에 걸쳐 유지된다.
도시된 예에서, 각각의 참여자 시스템(202, 204, 206)은 각각 참여자 A, 참여자 B, 및 참여자 C 에 의해 또는 대신에 제공되고, 블록 체인 네트워크 내에서 각각의 노드(214)로서 기능한다. 본 명세서에서 사용되는 바와 같이, 노드는 일반적으로 블록 체인 네트워크(212)에 접속된 개개의 시스템(예를 들어, 컴퓨터, 서버)을 말하며, 각각의 참여자가 블록 체인 네트워크에 참여할 수 있게 한다. 도 2 의 예에서, 참여자는 각각의 노드(214)에 대응한다. 그러나, 참여자가 블록 체인 네트워크(212) 내에서 다수의 노드(214)를 운영할 수 있거나 및/또는 다수의 참여자가 노드(214)를 공유할 수 있다는 것이 생각된다. 일부 예에서, 참여자 시스템(202, 204, 206)은 프로토콜(예를 들어, HTTPS(hypertext transfer protocol secure))을 사용하거나 및/또는 원격 프로시저 호출(RPC)을 사용하여 블록 체인 네트워크(212)와 또는 블록 체인 네트워크(212)를 통해 통신한다.
노드(214)는 블록 체인 네트워크(212) 내에서 다양한 참여도를 가질 수 있다. 예를 들어, 일부 노드(214)는(예를 들어, 블록 체인(216)에 블록을 추가하는 채굴자 노드(miner node)로서) 합의 프로세스에 참여할 수 있는 반면, 다른 노드(214)는 합의 프로세스에 참여하지 않는다. 다른 예로서, 일부 노드(214)는 블록 체인(216)의 완전한 사본을 저장하는 반면, 다른 노드(214)는 블록 체인(216)의 부분들의 사본만을 저장한다. 예를 들어, 데이터 액세스 특권은 각각의 참여자가 그 각각의 시스템 내에 저장하는 블록 체인 데이터를 제한할 수 있다. 도 2 의 예에서, 참여자 시스템(202, 204, 206)은 블록 체인(216)의 각각의 완전한 사본(216', 216'', 및 216''')을 저장한다.
블록 체인(예를 들어, 도 2 의 블록 체인(216))은 블록들의 체인으로 구성되며, 각각의 블록은 데이터를 저장한다. 데이터의 예는 2 이상의 참여자들간의 트랜잭션을 나타내는 트랜잭션 데이터를 포함한다. 트랜잭션 데이터는 블록 체인에 저장된 데이터 기록의 예로 사용된다. 트랜잭션의 예는 가치 있는 것(예 : 자산, 제품, 서비스, 통화)의 교환을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예에서, 원장 시스템에서 실행되는 하나 이상의 연산은 블록 체인에 트랜잭션 데이터로 저장될 수 있다. 예를 들어, 트랜잭션 데이터는 블록 체인에 저장된 데이터의 하나 이상의 연산 또는 조작, 외부 리소스에서 획득된 정보(예를 들어, 타임스탬프 정보)를 포함할 수 있거나, 또는 임의의 적절한 데이터가 블록 체인에 저장될 수 있다(예를 들어, 문서, 이미지, 비디오, 오디오). 트랜잭션 데이터는 블록 체인 내에 불변적으로 저장된다. 즉, 트랜잭션 데이터는 변경될 수 없다.
블록에 저장하기 전에, 트랜잭션 데이터가 해싱된다. 해싱(hashing)은 트랜잭션 데이터(스트링 데이터로 제공됨)를 고정 길이 해시 값(스트링 데이터로도 제공됨)으로 변환하는 프로세스이다. 트랜잭션 데이터를 획득하기 위해 해시 값을 언해싱할 수 없다. 해싱은 트랜잭션 데이터가 약간 변경되어도 완전히 상이한 해시 값이 생성되도록 보장한다. 또한 그리고 위에서 언급했듯이, 해시 값은 고정 길이를 갖는다. 즉, 트랜잭션 데이터의 크기에 관계 없이, 해시 값의 길이는 고정되어 있다. 해싱은 해시 값을 생성하기 위해 해시 함수를 통해 트랜잭션 데이터를 처리하는 것을 포함한다. 해시 함수의 예로는 256 비트 해시 값을 출력하는 SHA(secure hash algorithm)-256 을 포함하지만, 이에 제한되지 않는다.
다수의 트랜잭션들의 트랜잭션 데이터는 해싱되고 블록에 저장된다. 예를 들어, 2개의 트랜잭션의 해시 값이 제공되고, 그 자체가 해싱되어 다른 해시를 제공한다. 이 프로세스는, 블록에 저장될 모든 트랜잭션에 대해, 단일 해시 값이 제공될 때까지 반복된다. 이 해시 값을 Merkle 루트 해시라고 하며 블록의 헤더에 저장된다. 트랜잭션들 중 어느 것이 변경되면 그 해시 값이 변경되게 되고 궁극적으로 Merkle 루트 해시가 변경되게 된다.
블록은 합의 프로토콜을 통해 블록 체인에 추가된다. 블록 체인 네트워크 내의 다수의 노드가 합의 프로토콜에 참여하고, 블록 체인에 블록을 추가하는 일을 수행한다. 이러한 노드를 합의 노드라고 한다. 위에서 소개된 PBFT 는 합의 프로토콜의 비제한적인 예로 사용된다. 합의 노드는 합의 프로토콜을 실행하여 블록 체인에 트랜잭션을 추가하고 블록 체인 네트워크의 전체 상태를 업데이트한다.
더 상세하게, 합의 노드는 블록 헤더를 생성하고, 블록에 있는 모든 트랜잭션을 해싱하고, 블록에 있는 모든 트랜잭션에 대해 단일 해시 값이 제공될 때까지 추가의 해시 값을 생성하기 위해 쌍으로 해시 값을 결합한다(Merkle 루트 해시). 이 해시는 블록 헤더에 추가된다. 합의 노드는 또한 블록 체인에서 가장 최근의 블록(즉, 블록 체인에 추가된 마지막 블록)의 해시 값을 결정한다. 합의 노드는 또한 임시(nonce) 값과 타임스탬프를 블록 헤더에 추가한다.
일반적으로, PBFT 는 비잔틴 장애(예를 들어, 오작동 노드, 악성 노드)를 허용하는 실용적 비잔틴 상태 머신 복제를 제공한다. 이것은 PBFT 에서 장애가 발생할 것이라고 가정(예 : 독립 노드 실패 및/또는 합의 노드에 의해 전송된 조작된 메시지의 존재를 가정)함으로써 달성된다. PBFT 에서, 합의 노드는 기본 합의 노드와 백업 합의 노드를 포함하는 시퀀스에서 제공된다. 기본 합의 노드는 주기적으로 변경되며, 블록 체인 네트워크의 세계 상태에 대한 동의에 도달하는 블록 체인 네트워크 내의 모든 합의 노드에 의해 블록 체인에 트랜잭션이 추가된다. 이 프로세스에서, 합의 노드간에 메시지가 송신되고, 각각의 합의 노드는 지정된 피어 노드로부터 메시지가 수신되었음을 증명하고 송신 중에 메시지가 수정되지 않았음을 확인한다.
PBFT 에서, 합의 프로토콜은 모든 합의 노드가 동일한 상태에서 시작하는 다수의 페이즈(phase)로 제공된다. 시작하기 위해, 클라이언트는 서비스 동작을 호출(예를 들어, 블록 체인 네트워크 내에서 트랜잭션을 실행)하기 위해 기본 합의 노드에 요청을 전송한다. 요청을 수신하는 것에 응답하여, 기본 합의 노드는 요청을 백업 합의 노드로 멀티캐스트한다. 백업 합의 노드는 요청을 실행하고 각각은 클라이언트에 응답을 전송한다. 클라이언트는 임계 수의 응답이 수신될 때까지 대기한다. 일부 예에서 클라이언트는 f+1 응답이 수신되기를 대기하고, 여기서 f 는 블록 체인 네트워크 내에서 허용될 수 있는 장애가 있는 합의 노드의 최대 수이다. 최종 결과는 충분한 수의 합의 노드가 블록 체인에 추가될 기록의 순서에 대한 동의에 이르고 기록이 받아들여지거나 또는 거절된다는 것이다.
일부 블록 체인 네트워크에서, 트랜잭션의 프라이버시를 유지하기 위해 암호화가 구현된다. 예를 들어, 블록 체인 네트워크에 있는 다른 노드가 트랜잭션의 상세를 파악할 수 없도록, 2개의 노드가 트랜잭션을 프라이빗(private) 상태로 유지하기를 원하는 경우, 노드는 트랜잭션 데이터를 암호화할 수 있다. 암호화의 예에는 대칭 암호화 및 비대칭 암호화가 포함되지만 이에 제한되지 않는다. 대칭 암호화는 암호화(평문에서 암호문를 생성하는 것)와 해독(암호문에서 평문을 생성하는 것) 모두에 단일 키를 사용하는 암호화 프로세스를 말한다. 대칭 암호화에서는, 다수의 노드에서 동일한 키를 사용할 수 있으므로, 각각의 노드는 트랜잭션 데이터를 암호화/해독할 수 있다.
비대칭 암호화는 각각 프라이빗 키와 퍼블릭 키를 포함하는 키 쌍을 사용하며, 프라이빗 키는 각각의 노드에만 알려지고, 퍼블릭 키는 블록 체인 네트워크에 있는 임의의 또는 모든 다른 노드에 알려진다. 노드는 다른 노드의 퍼블릭 키를 사용하여 데이터를 암호화할 수 있으며, 암호화된 데이터는 다른 노드의 프라이빗 키를 사용하여 해독될 수 있다. 예를 들어, 그리고 다시 도 2 를 참조하면, 참여자 A 는 참여자 B 의 퍼블릭 키를 사용하여 데이터를 암호화하고 암호화된 데이터를 참여자 B 에게 전송할 수 있다. 참여자 B 는 그의 프라이빗 키를 사용하여 암호화된 데이터(암호문)를 해독하고 원래 데이터(평문)를 추출할 수 있다. 노드의 퍼블릭 키로 암호화된 메시지는 노드의 프라이빗 키를 사용해서만 해독될 수 있다.
비대칭 암호화는, 트랜잭션의 유효성뿐만 아니라, 트랜잭션에 있는 참여자가 트랜잭션에 있는 다른 참여자를 컨펌(confirm)할 수 있게 하는, 디지털 서명을 제공하는 데 사용된다. 예를 들어, 노드는 메시지에 디지털 서명할 수 있고 다른 노드는 참여자 A 의 디지털 서명을 기반으로 메시지가 노드에 의해 전송되었음을 컨펌할 수 있다. 디지털 서명은 또한, 메시지가 전송 중에 변조되지 않도록 보장하는 데 사용될 수 있다. 예를 들어, 그리고 다시 도 2를 참조하면, 참여자 A 는 참여자 B 에게 메시지를 전송할 것이다. 참여자 A는 메시지의 해시를 생성한 다음, 그의 프라이빗 키를 사용하여, 해시를 암호화하여 암호화된 해시로서 디지털 서명을 제공한다. 참여자 A 는 메시지에 디지털 서명을 첨부하고, 디지털 서명이 있는 메시지를 참여자 B 에게 전송한다. 참여자 B는 참여자 A 의 퍼블릭 키를 사용하여 디지털 서명을 해독하고 해시를 추출한다. 참여자 B는 메시지를 해싱하고 해시를 비교한다. 해시가 동일하면, 참여자 B는 메시지가 실제로 참여자 A 로부터 온 것이고 변조되지 않았음을 컨펌할 수 있다.
도 3 는 본 명세서의 실시예에 따른 환경(300)의 예를 예시하는 도면이다. 환경(300)은 원장 시스템(310)에서 신뢰 타임스탬프 서비스를 구현한다. 예시 목적으로 만, 블록 체인 기반 집중식 원장 시스템이 원장 시스템(310)의 예로서 설명된다. 블록 체인 기반 집중식 원장 시스템(310)은 블록 체인에 저장된 데이터의 불변성, 확실성 및 신뢰성을 활용하기 위해 블록 체인의 데이터 구조를 채택한다. 집중식 원장 시스템(310)은 또한 블록 체인에 저장된 데이터에 대해 집중식 원장 시스템(310)과는 독립적인 신뢰 시간 서버(350)로부터의 신뢰 타임스탬프 정보를 통합할 수 있으며, 이는 저장된 데이터의 신용성, 감사 가능성 및 적법성을 크게 향상시킬 수 있다.
일부 실시예에서, 집중식 원장 시스템(310)은 네트워크에 의해 상호 접속된 하나 이상의 컴퓨터를 포함하는 클라우드 컴퓨팅 시스템일 수 있다. 집중식 원장 시스템(310)은 임의의 적절한 컴퓨팅 디바이스를 포함할 수 있다. 컴퓨팅 디바이스의 예는 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스 및 스마트폰을 포함하지만, 이에 제한되지는 않는다.
일부 예에서, 집중식 원장 시스템(310)은 하나 이상의 원장 서버(320-1 내지 320-n)(여기서 "320" 로 총칭됨)를 포함한다. 각각의 원장 서버(320)는 적어도 하나의 클라이언트, 예를 들어 클라이언트 1 또는 클라이언트 m 과 상호 작용하기 위한 하나 이상의 컴퓨터 구현 서비스를 호스팅할 수 있다. 클라이언트는 개인, 회사, 조직, 금융 기관, 보험 회사 또는 임의의 다른 타입의 엔티티일 수 있다. 일부 경우에, 클라이언트가 하나 이상의 원장 서버와 연관될 수 있다. 일부 경우에, 원장 서버가 하나 이상의 클라이언트와 연관될 수 있다.
원장 서버(320)는 클라이언트, 예를 들어, 클라이언트 1 또는 클라이언트 m 에 대한 원장 서비스를 제공하기 위해 트랜잭션 관리 시스템을 호스팅할 수 있으며, 클라이언트는 하나 이상의 연관된 디바이스, 예를 들어 클라이언트 디바이스(340-1 또는 340-m)(여기서 "340" 로 총칭됨)을 사용하여, 원장 서비스를 사용할 트랜잭션 관리 시스템에 액세스할 수 있다. 클라이언트 디바이스(340)는 임의의 적절한 컴퓨팅 디바이스를 포함할 수 있다.
원장 서버(320)에 의해 제공되는 원장 서비스는 클라이언트가 그의 데이터를 투명하고, 불변적이며, 그리고 암호로 확인 가능한 블록 체인 데이터 구조, 예를 들어 블록 체인에 저장할 수 있게 할 수 있다. 각각의 원장 서버(예를 들어, 320-1 또는 320-n)는 각각의 블록 체인(예를 들어, 322-1 내지 322-n)(여기서 "322" 로 총칭됨)을 유지할 수 있다. 일부 실시예에서, 각각의 원장 서버(320)는 블록 체인 네트워크에서 블록 체인 네트워크 노드(예를 들어, 도 1 의 컴퓨팅 시스템(106 또는 108) 또는 도 2 의 컴퓨팅 시스템(202, 204 또는 206))의 기능과 유사한 기능을 수행할 수 있다. 예를 들어, 각각의 원장 서버(320)는 블록을 생성하고 블록을 블록 체인(322)에 추가할 수 있다. 일부 실시예에서, 각각의 원장 서버(320)는 중앙 신뢰 기관으로서 기능할 수 있고 신뢰를 설정하기 위해 다른 노드(예를 들어, 다른 클라이언트 디바이스 또는 다른 원장 서버)와의 합의 프로세스를 수행할 필요가 없다. 예를 들어, 각각의 원장 서버(320)는 블록 체인 네트워크의 비 합의 노드의 기능과 유사한 기능을 수행할 수 있다. 일부 실시예에서, 각각의 원장 서버(320)는 블록 체인(322)을 생성 및/또는 관리하는 단일 노드일 수 있다.
일부 실시예에서, 각각의 클라이언트는 각각의 블록 체인과 연관될 수 있다. 일부 실시예에서, 하나 이상의 클라이언트는 동일한 블록 체인과 연관될 수 있다. 일부 실시예에서, 블록 체인은 하나 이상의 클라이언트와 연관될 수 있다.
일부 예에서, 클라이언트 1은 개인, 회사 또는 조직이다. 클라이언트 1과 연관된 클라이언트 디바이스(340-1)는 집중식 원장 시스템(310)의 원장 서비스를 획득하기 위해 원장 서버(320-1)와 상호 작용할 수 있다. 예를 들어, 클라이언트 디바이스(340-1)는 블록 체인(322-1)에 액세스하여 원장 서버(320-1)를 통해 클라이언트 1 과 연관된 트랜잭션 데이터를 읽고 저장할 수 있다. 클라이언트 디바이스(340-1)는 예를 들어, 여기에 설명된 방법을 수행하도록 프로그래밍된 임의의 적합한 컴퓨터, 모듈, 서버 또는 컴퓨팅 요소를 포함할 수 있다. 일부 실시예에서, 클라이언트 디바이스(340-1)는 개인용 컴퓨터, 스마트폰, 태블릿 또는 다른 핸드헬드 디바이스와 같은 사용자 디바이스를 포함할 수 있다.
일부 예에서, 클라이언트 m 은 보험 회사 또는 금융 기관 이를테면 은행으로 다수의 개개의 사용자를 가진다. 클라이언트 m 과 연관된 클라이언트 디바이스(340-m)는 클라이언트 m 의 개개의 사용자에게 집중식 원장 시스템(310)의 원장 서비스를 제공하기 위해 원장 서버(320-n)와 상호 작용할 수 있다. 예를 들어, 클라이언트 디바이스(340-m)는 블록 체인(322-n)에 액세스하여 원장 서버(320-n)를 통해 클라이언트 m 과 연관된 트랜잭션 데이터를 읽고 저장할 수 있다. 일부 경우에, 클라이언트 m 의 사용자는 클라이언트 디바이스(340-m)를 통해 집중식 원장 시스템(310)의 원장 서비스를 요청할 수 있다.
블록 체인에 저장된 데이터는, 예를 들어, 트랜잭션 로그뿐만 아니라 다른 트랜잭션 데이터 및 블록 데이터를 포함하는 로그 형식일 수 있다. 각각의 블록 체인은 데이터가 불변적이고 변경되거나 삭제될 수 없는 방식으로 데이터를 저장한다. 암호화를 사용하면 저장된 데이터에 의도하지 않은 수정이 없었다는 확인을 가능하게 할 수 있다. 따라서, 블록 체인에 기록된 데이터는 확실하고 신뢰할 수 있다.
블록 체인은 하나 이상의 블록을 포함할 수 있다. 블록 체인에 있는 각각의 블록은 체인에서 그 직전의 이전 블록에 이전 블록의 해시를 포함하는 것에 의해 링크된다. 또한 각각의 블록에는 로컬 타임스탬프, 그 자체 해시, 및 하나 이상의 트랜잭션 또는 트랜잭션 데이터가 포함된다. 예를 들어, 블록은 블록 헤더 및 블록 바디를 포함할 수 있다. 블록 헤더는 로컬 타임스탬프, 그 자체 해시, 및 이전 블록의 해시를 포함할 수 있다. 블록 바디는 하나 이상의 트랜잭션 또는 트랜잭션 데이터와 같은 페이로드 정보를 포함할 수 있다. 로컬 타임스탬프는 블록이 블록 체인에 생성 및/또는 추가되는 시점 또는 인스턴스를 나타낸다. 로컬 타임스탬프는 원장 서버(320), 집중식 원장 시스템(310) 또는 집중식 원장 시스템(310)과 연관된 중앙 신뢰 기관에 의해 내부적으로 제공될 수 있다.
일부 실시예에서, 원장 서버(320)는 클라이언트와 연관된 일련의 트랜잭션들을 순차적으로 수신한 다음, 트랜잭션들을 블록 체인의 블록들에 저장한다. 일부 실시예에서, 원장 서버(320)는 예를 들어, 하나 이상의 클라이언트 디바이스(340)로부터, 하나 이상의 트랜잭션들을 수신할 수 있다. 수신된 트랜잭션들은 데이터 버퍼에 저장될 수 있다. 원장 서버(320)는 예를 들어 양수인 및 양도인 계정, 트랜잭션 량, 또는 다른 타입의 트랜잭션 정보를 포함하는, 트랜잭션들을 저장할 블록을 생성할 수 있다.
일부 실시예에서, 원장 서버(320)는 스트림, 어레이, 또는 다른 데이터 구조(트랜잭션 저장 스트림으로 지칭됨)에 트랜잭션들을 저장할 수 있다. 예를 들어, 트랜잭션 발생 시간에 따라 트랜잭션 저장 스트림에 순차적으로 트랜잭션들이 저장될 수 있다. 각각의 트랜잭션은 예를 들어, 그의 발생 시간에 따라 트랜잭션 저장 스트림에 각각의 트랜잭션 식별자를 가질 수 있다. 원장 서버(320)는 다수의 트랜잭션들 또는 트랜잭션들에 대한 다수의 해시를 포함할 블록을 생성할 수 있다. 일부 실시예에서, 트랜잭션들 또는 트랜잭션들에 대한 해시들은 해시들의 값에 따르는 것 대신에, 대응하는 트랜잭션들의 발생 시간에 따라 저장될 수 있다. 일부 실시예에서, 트랜잭션에 대한 해시들은 트랜잭션들의 해시들 또는 트랜잭션들의 각각의 트랜잭션 식별자들의 해시들일 수 있다. 블록은 블록들이 서로 앵커링되어 블록 체인(또는 블록 저장 스트림)을 형성하도록 그 직전의 이전 블록의 해시를 포함할 수 있다. 이러한 방식으로, 블록들은 트랜잭션들의 상세를 저장하지 않는다. 트랜잭션의 상세는 원장 서버(320)에 있는 트랜잭션 저장 스트림 또는 집중식 원장 시스템(310)에 있는 별도의 저장소에 저장될 수 있다.
원장 서버(320)는 또한 신뢰 타임스탬프 서비스를 클라이언트에 제공할 수 있다. 일부 실시예에서, 원장 서버(320)는 원장 서버(320)에 저장된 데이터에 대해 신뢰 시간 서버(350)로부터 신뢰 타임스탬프를 요청할 수 있으며, 이는 저장된 데이터의 신용성, 감사 가능성 및 적법성을 향상시킬 수 있다. 신뢰 시간 서버(350)는 집중식 원장 시스템(310)과는 독립적이다. 신뢰 시간 서버(350)는 정확한(또는 실제) 시간 서비스를 제공하는 제 3 자 신뢰 시간 기관과 연관될 수 있으며, 예를 들어 세계적으로, 공공, 감사 엔티티(이를테면, 회사, 기관 또는 조직) 및/또는 법률적 엔티티(이를테면, 법원 또는 정부)에 의해 승인되거나 또는 신뢰될 수 있다. 신뢰 시간 서버(350)에 의해 제공된 신뢰 타임스탬프 정보는 공증 및/또는 포렌식 식별 없이 적법성으로 승인되거나 고려될 수 있다. 예를 들어, 신뢰 시간 서버(350)는 UTC(Coordinated Universal Time)/GMT(Greenwich Mean Time) 시간 서비스를 제공하는 UTC/GMT 서버일 수 있다. 신뢰 시간 서버(350)는 국가 또는 지역에 대한 표준 시간을 제공하는 신뢰 기관의 시간 서버일 수도 있다.
집중식 원장 시스템(310)은 네트워크, 예를 들어, 도 1의 네트워크(110)를 통해 신뢰 시간 서버(350)와 통신할 수 있다. 고객, 예를 들어, 원장 서버(320)로부터 타임스탬프 요청을 수신하는 것에 응답하여, 신뢰 시간 서버(350)는 타임스탬프 요청을 수신할 때 시점을 나타내는 타임스탬프를 생성할 수 있다. 신뢰 시간 서버(350)는 타임스탬프 및 타임스탬프 요청(예를 들어, 타임스탬프 요청의 텍스트 또는 이미징 사본)을 인증하기 위한 서명을 생성할 수 있다. 예를 들어, 신뢰 시간 서버(350)는 그의 프라이빗 키를 사용해, 타임스탬프 및 타임스탬프 요청에 서명하여, 이에 따라 암호로 암호화할 수 있다. 신뢰 시간 서버(350)는 타임스탬프 및 연관된 서명을 포함하는 디지털 타임스탬프 인증서를 생성하고 타임스탬프 인증서를 포함하는 타임스탬프 정보를 고객에게 송신할 수 있다. 신뢰 시간 서버(350)는 예를 들어, 타임스탬프 요청 당 $ 1의 비용으로 신뢰 타임스탬프 서비스를 제공할 수 있다.
일부 실시예에서, 원장 서버(320)는 블록 체인에서 블록의 시간을 인증하기 위한 타임스탬프 요청을 신뢰 시간 서버(350)로 송신한다. 타임스탬프 요청은 블록의 정보, 예를 들어 블록의 해시를 포함할 수 있다. 시간 서버(350)는 블록에 대한 타임스탬프 및 연관된 서명 또는 타임스탬프 및 연관된 서명의 해시를 포함하는 타임스탬프 정보를 생성하고 송신할 수 있다. 신뢰 시간 서버(350)로부터 타임스탬프 정보를 수신한 후에, 원장 서버(320)는 타임스탬프 정보 또는 타임스탬프 정보의 해시를 블록 체인에서 그 블록 직후의 다음 블록에 저장할 수 있다. 일부 실시예에서, 타임스탬프 정보는 다음 블록에서 트랜잭션으로 저장될 수 있다. 타임스탬프 정보를 저장하는 블록은 타임스탬프된 블록이라고 할 수 있다. 타임스탬프된 블록은 타임스탬프 정보만 포함하는 블록이거나, 또는 타임스탬프 정보에 추가로 다른 트랜잭션들도 포함하는 블록일 수 있다. 블록 체인에서 타임스탬프된 블록은 블록 체인에서 서로 앵커링되거나 또는 링크될 수 있다.
일부 실시예에서, 원장 서버(320)는 블록 체인에서 타임스탬프될 블록들에 대한 타임스탬프 요청을 미리 결정된 트리거링 시간 주기로 신뢰 시간 서버(350)에 주기적으로 송신할 수 있다. 예를 들어, 원장 서버(320)는 제 1 타임스탬프 요청을 송신한 후 시간을 카운팅하는 타이머를 포함할 수 있다. 타이머가 미리 결정된 트리거링 시간 주기를 카운트할 때, 원장 서버(320)는 제 1 타임스탬프 요청 직후에 제 2 타임스탬프 요청을 송신하도록 트리거될 수 있다. 집중식 원장 시스템(310) 또는 원장 서버(320)는 상이한 트리거링 시간 주기에 대응하는 상이한 비용으로 타임스탬프 서비스를 제공할 수 있다. 트리거링 시간 주기는 블록 체인 또는 원장 서버(320)와 연관된 클라이언트(또는 사용자)에 의해 미리 결정될 수 있다. 예를 들어, 클라이언트는 각각의 비용 및 각각의 트리거링 시간 주기에 대응하는 타임스탬프 서비스를 선택할 수 있다.
일부 실시예에서, 원장 서버(320)는 주기적으로 신뢰 시간 서버(350)에 타임스탬프 요청을 송신하지 않을 수도 있다. 예를 들어, 원장 서버(320)는 요구시에 또는 원장 서버(320)에 의해 생성된 블록들의 수에 기초하여 타임스탬프 요청을 송신할 수도 있다. 예를 들어, 원장 서버(320)는 클라이언트로부터 명령들을 수신할 시에, 또는 미리 결정된 개수의 블록이 최근에 블록 체인(322)에 추가되었을 시에 블록의 타임스탬프 요청을 송신할 수도 있다.
일부 실시예에서, 원장 서버(320)는 미리 결정된 블록 생성의 시간 주기에서 주기적으로 블록들을 생성할 수도 있다. 미리 결정된 트리거링 시간 주기는 블록 생성의 시간 주기와 동일하거나 또는 상이할 수 있다. 미리 결정된 트리거링 시간 주기는, 예를 들어 신뢰 시간 서버(350)로부터 타임스탬프를 획득하는 비용으로 인해, 모든 블록이 타임스탬프되는 것은 아니도록 블록 생성의 시간 주기보다 길 수 있다. 일부 실시예에서, 원장 서버(320)는 블록들을 주기적으로 생성하지 않을 수도 있다. 예를 들어, 원장 서버(320)는 요구 시에 또는 원장 서버(320)에 의해 수신된 트랜잭션의 수에 기초하여 블록들을 생성할 수도 있다. 예를 들어, 원장 서버(320)는 미리 결정된 수의 트랜잭션들을 수신할 시에 새로운 블록을 생성할 수도 있다.
일부 실시예에서, 원장 서버(320)는 신뢰 시간 서버(350)와 통신하도록 구성된 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있다. API는 소프트웨어 빌드를 위한 서브루틴 정의, 통신 프로토콜 및 도구 세트를 포함할 수 있으며, 프로그램(모듈, 라이브러리)에 의해 제공되는 기능성을 정의하고 정확히 이 기능성이 구현되는 방식으로부터 추상화를 가능하게 한다. 소프트웨어 구성 요소는 API 를 통해 서로 상호 작용한다. 일부 실시예에서, 원장 서버(320)는 타임스탬프 요청에 대한 입력으로서 타임스탬프될 블록의 해시를 수신하고, 타임스탬프 요청을 신뢰 시간 서버(350)로 송신하고, 신뢰 시간 서버(350)에 의해 전송되는, 신뢰 타임스탬프 정보, 예를 들어, 디지털 타임스탬프 인증서 또는 타임스탬프 및 연관된 서명을 수신하는 기능성을 구현할 수 있는 하나 이상의 API들을 포함할 수 있다.
원장 서버(320)는 클라이언트와 연관된 클라이언트 디바이스(340)와 통신하도록 구성된 하나 이상의 API 를 포함할 수 있다. 하나 이상의 API 는 클라이언트 디바이스(340)로부터 타임스탬프 서비스에 대한 요청을 수신하고, 상이한 비용 및 상이한 트리거링 시간 주기를 갖는 상이한 타임스탬프 서비스를 목록화하고, 클라이언트 디바이스(340)로부터 타임스탬프 서비스 중에서 선택을 수신하고, 클라이언트 디바이스(340)에 대응하는 트리거링 시간 주기로 대응하는 비용을 송신하거나 표시하는 것과 같은 기능성을 구현할 수 있다. 일부 실시예에서, 하나 이상의 API 는 또한 클라이언트와 연관된 블록 체인에 저장된 트랜잭션들을 확인 또는 감사하기 위한 요청을 수신하고 클라이언트 디바이스(340)에 확인 또는 감사 결과를 송신하는 것과 같은 기능성을 구현할 수 있다. 도 4a 및 도 4b 에서 더 상세히 논의된 바와 같이, 하나 이상의 API 는 또한 클라이언트 디바이스(340)로부터 트랜잭션들 또는 트랜잭션 데이터 및 클라이언트 서명을 수신하고 트랜잭션들 또는 트랜잭션 데이터 및/또는 클라이언트 서명의 수신 또는 저장을 승인하는 것을 나타내는 원장 서명을 송신하는 것과 같은 다른 기능성을 구현할 수 있다.
일부 실시예에서, 집중식 원장 시스템(310)은 집중식 서버(330)를 포함한다. 집중식 서버(330)는 집중식 원장 시스템(310)에서 다수의 원장 서버(320)와 통신할 수 있다. 일부 실시예에서, 원장 서버(320)는 집중식 서버(330)를 통해 클라이언트 디바이스(340)와 통신한다. 예를 들어, 집중식 서버(330)는 클라이언트 디바이스(340)로부터 데이터를 수신하고 클라이언트 디바이스(340)에 대응하는(또는 할당된) 원장 서버(320)로 데이터를 전송할 수 있다.
일부 실시예에서, 집중식 서버(330)는 집중식 원장 시스템(310)에 대한 표준 시간 서버를 유지할 수 있고 내부 타임스탬프(및/또는 연관된 서명)를 원장 서버(320)에 제공할 수 있다. 예를 들어, 원장 서버(320)가 새로운 블록을 생성할 때, 원장 서버(320)는 집중식 서버(330)로부터 내부 타임스탬프(및/또는 연관된 서명)를 획득하고 내부 타임스탬프(및/또는 연관된 서명)를 새로운 블록에 저장할 수 있다.
일부 실시예에서, 각각의 원장 서버(320)는 집중식 서버(330)를 통해 신뢰 시간 서버(350)와 통신한다. 예를 들어, 원장 서버(320)는 원래 타임스탬프 요청을 집중식 서버(330)로 송신할 수 있고 집중식 서버(330)는 타임스탬프 요청과 연관된 원래 타임스탬프 요청 또는 집중식 서버 타임스탬프 요청을 예를 들어 집중식 서버(330)에 있는 집중식 API 를 통해 신뢰 시간 서버(350)에 송신할 수 있다. 집중식 서버(330)는 신뢰 시간 서버(350)로부터 획득된 신뢰 타임스탬프 정보를 원장 서버(320)에 제공할 수 있다. 일부 다른 실시예에서, 위에서 설명된 바처럼, 각각의 원장 서버(320)는 집중식 서버(330) 없이 직접 신뢰 시간 서버(350)와 통신할 수 있다.
도 4a 는 이 명세서의 실시예에 따라 단일 클라이언트와 연관된 단일 원장 서버에서 신뢰 타임스탬프 서비스를 구현하기 위한 블록 체인 기반 집중식 원장 시스템(400)과 같은 원장 시스템의 예를 예시하는 도면이다. 블록 체인 기반 집중식 원장 시스템(400)은 클라이언트 디바이스(410)와 연관된 단일 클라이언트에 원장 서비스를 제공하도록 전용되는 단일 원장 서버(420)를 포함할 수 있다. 블록 체인 기반 집중식 원장 시스템(400)은 도 3의 집중식 원장 시스템(310)의 예일 수 있다. 예를 들어, 원장 서버(420)는 도 3의 원장 서버(320-1)의 예일 수 있다. 예를 들어, 클라이언트 디바이스(410)는 도 3의 클라이언트 디바이스(340-1)의 예일 수 있다. 클라이언트는 클라이언트 디바이스(410)를 사용하여 블록 체인 기반 집중식 원장 시스템(400)에서 원장 서버(420)에 의해 제공되는 원장 서비스에 액세스한다. 원장 서버(420)는 또한 예를 들어, 도 3의 신뢰 시간 서버(350)일 수 있는 신뢰 시간 서버(430)와 통신함으로써 클라이언트에게 신뢰 타임스탬프 서비스를 제공할 수 있다.
원장 서버(420)는 원장 서비스 및 신뢰 타임스탬프 서비스를 클라이언트에게 독점적으로 제공할 수 있다. 원장 서버(420)는 독점적으로 클라이언트을 위한 그리고 집중식 원장 시스템(400)에 있는 다른 클라이언트와는 독립적인(또는 분리된) 블록 체인에 클라이언트와 연관된 트랜잭션 데이터를 저장할 수 있다. 원장 서버(420)는 독점적으로 원장 서버(420)에서 블록 체인에 저장된 클라이언트와 연관된 트랜잭션 데이터를 위한 신뢰 타임스탬프 정보를 요청하고 저장할 수 있다. 클라이언트는 블록 체인에 트랜잭션들을 저장하기 위한 관리 권한을 가질 수 있다. 일부 경우에, 클라이언트는 제 3 자가 클라이언트와 연관된 블록 체인에 트랜잭션들을 저장하는 것을 허용하는 2차 원장 권한을 제 3 자에게 제공할 수 있다.
일부 실시예에서, 클라이언트와 연관된 트랜잭션(또는 트랜잭션 데이터)가 원장 서버(420)에 저장될 때, 클라이언트는 클라이언트 디바이스(410)를 사용하여 클라이언트 서명을 원장 서버(420)에 송신할 수 있다. 클라이언트 서명은 클라이언트가 트랜잭션이 완료되었거나 및/또는 원장 서버(420)에 저장될 것을 승인했음을 나타낼 수 있다. 따라서, 클라이언트는 트랜잭션을 부인할 수 없다.
일부 실시예에서, 원장 서버(420)에(예를 들어, 블록 체인에) 트랜잭션(또는 트랜잭션 데이터)를 수신 및/또는 저장한 후, 원장 서버(420)는 원장 서명을 클라이언트 디바이스(410)로 송신할 수 있다. 원장 서명은 원장 서버(420)가 트랜잭션의 수신 및/또는 저장을 승인했음을 나타낼 수 있다. 따라서, 원장 서버(420)는 트랜잭션을 저장하는 것을 거부할 수 없다.
일부 실시예에서, 원장 서버(420)는 클라이언트와 연관되고 원장 서버(420)에 저장된 트랜잭션들을 위한 타임스탬프 요청을 신뢰 시간 서버(430)에 송신할 수 있다. 신뢰 시간 서버(430)는 트랜잭션들을 위한 타임스탬프 및 연관된 서명을 원장 서버(420)에 제공할 수 있다. 타임스탬프 서명에는 트랜잭션들의 정보가 포함될 수 있다. 따라서, 신뢰 시간 서버(430)는 트랜잭션들의 시간의 보증 및 트랜잭션들을 위한 타임스탬프들이 신뢰할 수 있다는 것을 부인할 수 없다.
일부 실시예에서, 세 당사자(클라이언트, 원장 서버 및 신뢰 시간 서버)의 3개 각각의 권리는 서로 독립적이며, 이는 집중식 원장 시스템에 저장된 트랜잭션 데이터의 신용성과 감사 가능성을 향상시킬 수 있다.
도 4b 는 본 명세서의 실시예에 따른 공동 원장 서버에 의한 다수의 클라이언트들에 신뢰 타임스탬프 서비스를 제공하기 위한 블록 체인 기반 집중식 원장 시스템(450)과 같은 원장 시스템의 예를 예시하는 도면이다. 블록 체인 기반 집중식 원장 시스템(450)은 다수의 클라이언트들, 클라이언트 1 내지 클라이언트 n 에 원장 서비스를 제공하기 위한 단일 공동 원장 서버(470)를 포함할 수 있다. 블록 체인 기반 집중식 원장 시스템(450)은 도 3의 집중식 원장 시스템(310)의 다른 예일 수 있다. 예를 들어, 공동 원장 서버(470)는 도 3의 원장 서버(320)의 예일 수 있다. 각각의 클라이언트, 클라이언트 1 내지 클라이언트 n 은 각각의 클라이언트 디바이스(460-1 내지 460-n)와 연관될 수 있다. 일부 실시예에서, 클라이언트 디바이스(460-1 내지 460-n)는 도 3의 클라이언트 디바이스(340-1 또는 340-m)의 예일 수 있다. 각각의 클라이언트는 그 각각의 클라이언트 디바이스(460)를 사용하여 블록 체인 기반 집중식 원장 시스템(450)에서 원장 서버(420)에 의해 제공되는 원장 서비스에 액세스한다. 예로서, 클라이언트는 고객 은행과 같은 다수의 금융 기관을 포함할 수 있다.
각각의 클라이언트는 그의 연관된 클라이언트 디바이스를 사용하여 다른 클라이언트와 공유되는 공동 블록 체인에 트랜잭션들(또는 트랜잭션 데이터)을 저장할 수 있다. 도 4a 와 유사하게, 각각의 클라이언트는 각각의 클라이언트 서명을 원장 서버(470)에 송신할 수 있고 원장 서버(470)는 대응하는 원장 서명을 클라이언트에 반환할 수 있다. 원장 서버(470)는 공동 블록 체인에 저장된 트랜잭션들에 대한 타임스탬프 요청을 신뢰 시간 서버(430)에 송신하고 공동 블록 체인에 있는 트랜잭션들에 대한 타임스탬프 정보를 수신 및 저장할 수 있다.
도 5a 내지 도 5c 는 본 명세서의 실시예에 따른 신뢰 포인트들을 관리하기 위한 원장 시스템의 예를 예시하는 계통도이다. 원장 시스템은 컨소시엄 블록 체인 네트워크(도 1의 102 또는 도 2의 212), 또는 블록 체인 기반 집중식 원장 시스템(도 3의 310, 도 4a 의 400, 또는 도 5b 의 450)과 같은 블록 체인 기반 원장 시스템일 수 있다. 원장 시스템은 또한, 블록 체인이 없는 원장 시스템일 수 있다. 원장 시스템은 일련의 기록들을 저장한다. 각각의 기록은 원장 시스템에 있는 트랜잭션 또는 블록 체인에 있는 블록을 포함할 수 있다. 예시 목적으로, 트랜잭션은 기록의 예로서 설명된다.
도 5a 에 도시된 바와 같이, 일련의 트랜잭션들(TX)(예를 들어, TXi-5 내지 TXi+3)(여기서 i 는 5 보다 큰 정수임)이 원장 시스템에 저장될 수 있다. 각각의 트랜잭션은 각각의 트랜잭션 식별자(예를 들어 TXi 의 경우 i)를 가질 수 있으며 원장 시스템에서 일련의 트랜잭션들에 순차적으로 추가(또는 저장)될 수 있다. 일련의 트랜잭션들은 각각의 트랜잭션 식별자에 따라 원장 시스템에 순서대로 저장될 수 있다. 트랜잭션들은 함께 링크되거나 또는 앵커링될 수 있다. 예를 들어, 각각의 트랜잭션은 트랜잭션 직전의 선행 트랜잭션의, 예를 들어 선행 트랜잭션의 신뢰성을 확인하기 위한, 정보, 예를 들어 각각의 해시를 저장할 수 있다.
일부 실시예에서, 각각의 트랜잭션은 트랜잭션 헤더 및 트랜잭션 바디를 포함한다. 트랜잭션 헤더는 로컬 타임스탬프, 그 자체 해시, 및/또는 바로 선행하는 트랜잭션의 해시를 포함할 수 있다. 트랜잭션 바디는 이체 참여자, 이체량 및/또는 이체 시간 또는 장소와 같은 트랜잭션의 페이로드 정보를 포함할 수 있다. 로컬 타임스탬프는 트랜잭션이 원장 시스템에 생성 및/또는 추가되는 시점 또는 인스턴스를 나타낸다. 로컬 타임스탬프는 원장 시스템과 연관된 서버 또는 원장 시스템과 연관된 중앙 신뢰 기관에 의해 내부적으로 제공될 수 있다.
일부 실시예에서, 원장 시스템은 일련의 트랜잭션들에서 신뢰 포인트들을 설정할 수 있다. 신뢰 포인트는 일련의 트랜잭션들에서 신뢰 포인트 전의 트랜잭션들이 신뢰할 수 있음을 나타낸다. 일련의 트랜잭션들에서 트랜잭션을 확인해야 할 때, 원장 시스템은 트랜잭션에 선행하는 인접한(예를 들어, 가장 가까운) 신뢰 포인트로 트랜잭션을 추적하는 것에 의해, 일련의 트랜?Ъ풩涌【? 인접한 신뢰 포인트에 선행하는 트랜잭션들을 확인하지 않고서, 트랜잭션이 신뢰할 수 있게 확인되는 것을 결정할 수 있다. 예를 들어, 도 5a 에 도시된 바와 같이, 트랜잭션 TXi 는 원장 시스템에 의해 설정된 신뢰 포인트이다. 원장 시스템이 트랜잭션 TXi+3 이 신뢰할 수 있는지 여부를 확인할 때, 원장 시스템은 트랜잭션 TXi+3 이 신뢰 포인트 TXi 에 대해 신뢰할 수 있게 거슬러 추적 가능한지 여부를, 트랜잭션 TXi+3 이 일련의 트랜잭션들에서 TXi-1, TXi-2, …, TXi-5, 또는 심지어 더 이전의 트랜잭션들로 신뢰할 수 있게 거슬러 추적 가능한지 여부를 확인하지 않고서, 확인하기만 하면 될 수 있다.
원장 시스템은 일련의 트랜잭션들에서 지정된 트랜잭션(예를 들어, 고려중인 트랜잭션 또는 관심 있는 트랜잭션)이 신뢰 포인트인지 여부를, 지정된 트랜잭션이 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한지 확인하는 것에 의해, 결정할 수 있다. 선행 신뢰 포인트는 일련의 트랜잭션들에서 지정된 트랜잭션 전의 가장 가까운 신뢰 포인트, 지정된 트랜잭션 전의 임의의 다른 선행 신뢰 포인트, 또는 일련의 트랜잭션들에서 모든 신뢰 포인트들에 대한 소스인 원래 트랜잭션일 수 있다.
일부 실시예에서, 원장 시스템은 지정된 트랜잭션이 신뢰 포인트에 대해 추적 가능한 정보를 포함하는지 확인함으로써 지정된 트랜잭션이 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인할 수 있다. 추적 가능한 정보는 예를 들어, 바로 선행 트랜잭션의 해시, 바로 선행 트랜잭션의 트랜잭션 식별자의 해시, 또는 바로 선행 트랜잭션의 진정성을 확인하는 데 사용할 수 있는 임의의 다른 타입의 정보를 포함할 수 있다. 예를 들어, 원장 시스템은 일련의 트랜잭션들에서 지정된 트랜잭션으로부터 선행 신뢰 포인트까지 각각의 트랜잭션이 트랜잭션 직전에 선행 트랜잭션의 각각의 해시를 포함하는 것을 확인할 수 있다. 도 5a 에 있는 예를 사용하여, 트랜잭션 TXi+3 이 지정된 트랜잭션임을 고려하면, 원장 시스템은 가장 가까운 신뢰 포인트, 트랜잭션 TXi 를 식별하는 것, 및 트랜잭션 TXi+3 이 트랜잭션 TXi+2 에 대해 신뢰할 수 있게 거슬러 추적 가능하고, 트랜잭션 TXi+2 이 트랜잭션 TXi+1 에 대해 신뢰할 수 있게 거슬러 추적 가능하고, 그리고 트랜잭션 TXi+1이 트랜잭션 TXi 에 대해 신뢰할 수 있게 거슬러 추적 가능함을 확인하는 것에 의해, 그러나 트랜잭션 TXi+3 이 TXi-1, TXi-2, …, TXi-5 에 대해 신뢰할 수 있게 거슬러 추적 가능한지 여부를 확인하지 않고서, 트랜잭션 TXi+3 이 신뢰할 수 있다는 것을 확인할 수 있다. 앞으로, 뒤로 또는 양방향으로, 예를 들어, 일련의 트랜잭션들에서 지정된 트랜잭션으로부터 선행 신뢰 포인트로 거슬러 추적하거나 또는 일련의 트랜잭션들에서 선행 신뢰 포인트로부터 지정된 트랜잭션으로 앞으로 추적하여, 확인이 수행될 수 있다.
일부 실시예에서, 원장 시스템은 시간 주기, 예를 들어 1 시간, 1 일, 1 주, 1 개월 또는 1 년으로 일련의 트랜잭션들에서 신뢰 포인트들을 주기적으로 설정할 수 있다. 시간 주기는 클라이언트의 요청 또는 필요에 따라 결정될 수 있다. 예를 들어, 원장 시스템은 상이한 시간 주기에 대응하는 상이한 비용으로 신뢰 포인트 서비스를 제공할 수 있다. 시간 주기는 원장 시스템과 연관된 클라이언트(또는 사용자)에 의해 미리 결정될 수 있다. 클라이언트는 각각의 비용에 대응하는 각각의 시간 주기로 신뢰 포인트 서비스를 선택할 수 있다.
일부 실시예에서, 원장 시스템은 주기적으로 신뢰 포인트들을 설정하지 않을 수도 있다. 예를 들어, 원장 시스템은 요구 시에 또는 원장 시스템에 의해 수신된 트랜잭션들의 수에 기초하여 신뢰 포인트를 설정할 수도 있다. 예를 들어, 원장 시스템은 클라이언트로부터 요청을 수신하여 지정된 트랜잭션이 신뢰 포인트인지 여부를 결정하거나 및/또는 지정된 트랜잭션 상에 또는 지정된 트랜잭션에 인접한 트랜잭션 상에 신뢰 포인트를 설정할 수 있다. 일부 실시예에서, 원장 시스템은 또한 미리 결정된 수의 트랜잭션들 마다 신뢰 포인트가 존재하도록 미리 결정된 수의 트랜잭션들을 수신할 시에 새로운 신뢰 포인트를 설정할 수도 있다.
일부 실시예에서, 원장 시스템은 신뢰 시간 서버로부터 저장된 트랜잭션들에 대해 신뢰 타임스탬프 정보를 요청할 수 있다. 신뢰 시간 서버는 원장 시스템과는 독립적이고 정확한 시간 서비스를 제공하는 제 3 자 신뢰 시간 기관과 연관될 수 있으며, 예를 들어 세계적으로, 공공의, 감사 엔티티(이를테면, 회사, 기관 또는 조직) 및/또는 법률적 엔티티(이를테면, 법원 또는 정부)에 의해 승인되거나 또는 신뢰될 수 있다. 신뢰 시간 서버는 예를 들어, 도 3 의 시간 서버(350)일 수 있거나 또는 도 4a-4b 의 시간 서버(430)일 수 있다. 신뢰 시간 서버에 의해 제공된 타임스탬프 정보의 신뢰성이 승인됨에 따라, 저장된 트랜잭션들에 대해 원장 시스템에 신뢰 시간 서버의 타임스탬프 정보를 통합하는 것은 원장 시스템에 저장된 트랜잭션들의 신용성, 감사 가능성, 및 적법성을 더 향상시킬 수 있다.
원장 시스템은 신뢰 시간 서버에 타임스탬프 요청을 송신할 수 있다. 일부 예에서, 타임스탬프 요청은 원장 시스템에 의해 신뢰 시간 서버로 송신된 다수의 타임스탬프 요청들 중 그 타임스탬프 요청의 식별자를 포함한다. 일부 예에서, 타임스탬프 요청은 일련의 트랜잭션들에 저장된 가장 최근의 트랜잭션의 식별자 또는 해시를 포함한다. 일부 예에서, 다수의 트랜잭션들은 유닛 또는 그룹으로 고려될 수 있으며 원장 시스템은 유닛 내 트랜잭션들에 대한 신뢰 타임스탬프 정보를 요청할 수 있다. 타임스탬프 요청은 유닛 내 트랜잭션들의 해시들의 해시 다이제스트를 포함할 수 있다.
타임스탬프 요청에 대한 신뢰 타임스탬프 정보, 예를 들어, 신뢰 타임스탬프(TS) 및 연관된 서명을, 신뢰 시간 서버로부터 수신한 후, 원장 시스템은 신뢰 타임스탬프 정보를, 예를 들어, 새로운 트랜잭션으로서 저장할 수 있거나 또는 일련의 트랜잭션들에서 다른 트랜잭션에 추가될 수 있다. 새로운 트랜잭션은 일련의 트랜잭션들에서 가장 최근의 트랜잭션의 해시를 저장하는 것에 의해 일련의 트랜잭션들에 링크되거나 또는 앵커링될 수 있다. 신뢰 타임스탬프 정보를 저장하는 새로운 트랜잭션은 일련의 트랜잭션들에서 새로운 타임스탬프 트랜잭션으로서 표지되거나 마킹될 수 있다. 새로운 타임스탬프 트랜잭션은 일련의 트랜잭션들에서 가장 최근의 트랜잭션 직후에 저장된다.
일부 실시예에서, 원장 시스템은 다수의 트랜잭션들을 유닛으로 그룹화하고 유닛에 마지막 트랜잭션으로서 타임스탬프 트랜잭션을 포함할 수 있다. 일부 경우에, 타임스탬프 트랜잭션은 유닛 내 모든 트랜잭션에 대해 승인된 신뢰 타임스탬프 정보를 포함하는 것으로 고려될 수 있다.
예를 들어, 도 5b 에 예시된 바와 같이, 트랜잭션들 TXi-4, TXi-3, 및 TXi-2 은 유닛으로 고려된다. 일부 실시예에서, 원장 시스템은 유닛 내 3 개의 트랜잭션들의 해시들을 계산하고 해시들의 해시 다이제스트를 생성할 수 있다. 다음으로, 원장 시스템은 유닛 내 트랜잭션들의 해시들의 해시 다이제스트를 포함한 타임스탬프 요청을 전송할 수 있다. 타임스탬프 요청에 대한 신뢰 타임스탬프 및 연관된 서명을 수신한 후, 원장 시스템은 가장 최근의 트랜잭션 TXi-2 직후에 저장된 새 트랜잭션 TXi-1 에 신뢰 타임스탬프 및 연관된 서명을 저장한다. 트랜잭션 TXi-1 은 신뢰 시간 서버로부터의 신뢰 타임스탬프 정보를 저장하는 타임스탬프 트랜잭션이다. 트랜잭션 TXi-1 은 마지막 트랜잭션으로 유닛에 포함되며 바로 선행 트랜잭션 TXi-2 의 해시를 저장하는 것에 의해 트랜잭션들에 링크된다. 일부 실시예에서, 타임스탬프 트랜잭션 TXi-1 은 또한 유닛 내 트랜잭션들, 즉 TXi-4, TXi-3 및 TXi-2 의 해시들의 해시 다이제스트를 저장할 수 있고, 유닛 내 트랜잭션들은 타임스탬프 트랜잭션과 동일한 신뢰 스탬프를 갖는 것으로 고려될 수 있다.
유사하게, 트랜잭션들 TXi, TXi+1, TXi+2 은 유닛으로 고려될 수 있다. 원장 시스템은 신뢰 시간 서버로부터 유닛에 대한 신뢰 타임스탬프 정보를 획득하고 일련의 트랜잭션들에서 TXi+2 바로 뒤에 오는 트랜잭션 TXi+3 에 신뢰 타임스탬프 정보를 저장할 수 있다. 트랜잭션 TXi+3 은 새로운 타임스탬프 트랜잭션이고 트랜잭션들 TXi, TXi+1, 및 TXi+2 을 포함하는 유닛에 마지막 트랜잭션으로서 포함된다.
일부 실시예에서, 2 개의 인접한 타임스탬프 트랜잭션들 사이의 트랜잭션들은 2 개의 인접한 타임스탬프 트랜잭션들 중 후자와 동일한 신뢰 타임스탬프를 갖는 것으로 고려된다. 트랜잭션들 및 후자의 타임스탬프 트랜잭션은 유닛 내 마지막 트랜잭션으로서 후자의 타임스탬프 트랜잭션을 갖는 유닛으로 고려될 수 있다.
일부 실시예에서, 원장 시스템은 제 1 타임스탬프 트랜잭션 후 일련의 트랜잭션들에 저장된 트랜잭션들을 수집하고 수집된 트랜잭션들의 정보, 예를 들어 수집된 트랜잭션들의 해시들의 해시 다이제스트를 포함하는 타임스탬프 요청을 신뢰 시간 서버에 송신할 수 있다. 신뢰 시간 서버로부터 신뢰 타임스탬프 및 연관된 서명을 수신한 후, 원장 시스템은 제 2 타임스탬프 트랜잭션으로서 새로운 트랜잭션에 신뢰 타임스탬프 및 연관된 서명을 저장한다. 제 1 타임스탬프 트랜잭션 후 수집된 트랜잭션들은 제 2 타임스탬프 트랜잭션과 동일한 신뢰 타임스탬프를 갖는 것으로 고려될 수 있다. 수집된 트랜잭션들 및 제 2 타임스탬프 트랜잭션이 유닛으로 고려될 수 있다.
일부 실시예에서, 원장 시스템은 트리거링 시간 주기로 타임스탬프 요청을 신뢰 시간 서버에 주기적으로 송신한 수 있다. 원장 시스템운 제 1 타임스탬프 요청을 송신한 후 시간을 카운팅하는 타이머를 포함할 수 있다. 타이머가 트리거링 시간 주기로 카운팅할 때, 원장 시스템은 신뢰 시간 서버에 제 2 타임스탬프 요청을 송신하도록 트리거될 수 있다.
일부 실시예에서, 원장 시스템은 주기적으로 신뢰 시간 서버에 타임스탬프 요청을 송신하지 않을 수도 있다. 예를 들어, 원장 시스템은 클라이언트로부터 명령들을 수신할 시에, 또는 이전 타임스탬프 요청 후 미리 결정된 수의 트랜잭션들이 최근에 일련의 트랜잭션들에 추가되었을 시에 타임스탬프 요청을 송신할 수도 있다. 예를 들어, 도 5b 에 예시된 바와 같이, 원장 시스템은 3개의 트랜잭션들 예를 들어, TXi-4, TXi-3, 및 TXi-2, 또는 TXi, TXi+1, 및 TXi+2 마다 타임스탬프 요청을 송신하고, 타임스탬프 트랜잭션들, 예를 들어, 트랜잭션들 TXi-5, TXi-1, 및 TXi+3 를 3개의 트랜잭션들마다 생성할 수 있다.
도 5c 는 본 명세서의 실시예에 따른 타임스탬프 트랜잭션들 상의 신뢰 포인트들을 관리하는 원장 시스템의 예를 도시한다. 일부 실시예에서, 원장 시스템은 지정된 트랜잭션에 대한 신뢰 포인트를 설정하기 위한 요청을 수신할 수도 있다. 지정된 트랜잭션은 신뢰 포인트일 수도 있거나 또는 아닐 수도 있다. 일부 실시예에서, 원장 시스템은 두 조건이 모두 충족되는 경우 지정된 트랜잭션을 신뢰 포인트로 설정할 수도 있다. (1) 지정된 트랜잭션은 일련의 트랜잭션들에서 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하고, 그리고(2) 특화 트랜잭션은 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 저장하는 타임스탬프 트랜잭션이다. 일부 실시예에서, 원장 시스템은 먼저 2개 조건을 어느 하나의 순서로 또는 병렬로 확인할 수 있다. 예를 들어, 원장 시스템은, 예를 들어, 특화 트랜잭션이 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능할 수 있는 것을 확인하는 것에 의해, 특화 트랜잭션이 신뢰 포인트인 것을 확인하고, 다음으로 지정된 트랜잭션이 타임스탬프 트랜잭션인지 여부를 결정할 수 있다. 일부 실시예에서, 원장 시스템은 먼저 지정된 트랜잭션이 타임스탬프 트랜잭션인지 여부를 결정하고, 다음으로 특화 트랜잭션이 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능할 수 있는지 여부를 결정할 수 있다. 원장 시스템이 지정된 트랜잭션은 두 조건 중 하나를 충족한다고 결정하면, 원장 시스템은 지정된 트랜잭션이 후보 신뢰 포인트라고 결정할 수 있다. 원장 시스템이 지정된 트랜잭션이 두 조건 모두를 충족한다고 결정한 후에만, 원장 시스템은 지정된 트랜잭션이 신뢰 포인트라고 결정할 수 있다.
일부 실시예에서, 지정된 트랜잭션이 타임스탬프 트랜잭션인지 여부를 결정하기 위해, 원장 시스템은(예를 들어, 각각의 트랜잭션 식별자를 목록화하는 것에 의해) 일련의 트랜잭션들에서 타임스탬프 트랜잭션들을 목록화하는 테이블 또는 다른 적절한 데이터 구조를 저장한다. 원장 시스템은 테이블을 검색하여 지정된 트랜잭션이 타임스탬프 트랜잭션들의 목록에 있는지 여부를 결정할 수 있다. 일부 실시예에서, 원장 시스템은 유닛들의 정보, 예를 들어 각각의 유닛 내 트랜잭션들의 트랜잭션 식별자들을 테이블 또는 다른 적절한 데이터 구조에 저장할 수 있다. 원장 시스템은 지정된 트랜잭션의 트랜잭션 식별자가 대응하는 유닛에서 마지막 트랜잭션 식별자인 것을 결정하여 지정된 트랜잭션이 타임스탬프 트랜잭션인지 여부를 결정할 수 있다.
원장 시스템이 지정된 트랜잭션은 타임스탬프 트랜잭션이라고 결정하면, 원장 시스템은 지정된 트랜잭션을 신뢰 포인트로서 마킹하고 지정된 트랜잭션을 신뢰 포인트로 설정할 수 있다. 원장 시스템은 또한, 일련의 트랜잭션들에서 신뢰 포인트들을 목록화하는 테이블 또는 다른 적절한 데이터 구조를 저장할 수 있다.
원장 시스템이 지정된 트랜잭션은 타임스탬프 트랜잭션이 아니라고 결정하면, 원장 시스템은 지정된 트랜잭션을 신뢰 포인트로서 마킹하지 않을 수 있다. 원장 시스템은 지정된 트랜잭션에 인접한 타임스탬프 트랜잭션을 식별하고 타임스탬프 트랜잭션을 지정된 트랜잭션에 대한 신뢰 포인트로서 마킹할 수 있다. 지정된 트랜잭션에 인접한 타임스탬프 트랜잭션은 지정된 트랜잭션에 선행하는 또는 다음에 오는 타임스탬프 트랜잭션일 수 있다. 예를 들어, 원장 시스템은 지정된 트랜잭션을 포함하는 유닛 내 마지막 트랜잭션을 타임스탬프 트랜잭션으로 식별함으로써, 또는 지정된 트랜잭션을 포함하는 유닛 직전의 선행 유닛 내 마지막 트랜잭션을 타임스탬프 트랜잭션으로 식별함으로써, 인접한 타임스탬프 트랜잭션을 식별할 수 있다. 예를 들어, 도 5c 에 예시된 바와 같이, 원장 시스템이 트랜잭션 TXi 가 신뢰 포인트이지만 타임스탬프 트랜잭션이 아니라고 결정한 후, 원장 시스템은 트랜잭션 TXi 와 동일한 유닛 내 인접한 타임스탬프 트랜잭션 TXi+3 또는 바로 선행 유닛 내 인접한 타임스탬프 트랜잭션 TXi-1 을 식별할 수 있다.
일부 실시예에서, 지정된 트랜잭션에 가장 가까운 타임스탬프 트랜잭션은 지정된 트랜잭션에 대한 후보 신뢰 포인트로 식별될 수 있다. 예를 들어, 원장 시스템은 지정된 트랜잭션에 대한 트랜잭션 식별자에 가장 가까운 트랜잭션 식별자와 연관된 타임스탬프 트랜잭션을 식별함으로써 일련의 트랜잭션들에서 타임스탬프 트랜잭션들 중 인접한 타임스탬프 트랜잭션을 식별할 수 있다.
지정된 트랜잭션에 대한 후보 신뢰 포인트로서 지정된 트랜잭션에 인접한 타임스탬프 트랜잭션을 식별한 후, 원장 시스템은 또한, 예를 들어, 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 추적 가능한 정보를 포함하는지 여부를 결정하여, 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정한다. 일부 실시예에서, 원장 시스템은 일련의 트랜잭션들에서 타임스탬프 트랜잭션으로부터 지정된 트랜잭션까지 각각의 트래잭션이 트랜잭션 직전의 선행 트랜잭션의 각각의 해시를 포함하는 것을 확인하여 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하다고 결정한다. 예를 들어, 도 5c 에 도시된 바와 같이, 트랜잭션 TXi 가 타임스탬프 트랜잭션 TXi-1 에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정하기 위해, 원장 시스템은 트랜잭션 TXi 가 예를 들어 트랜잭션 TXi 의 헤더에 타임스탬프 트랜잭션 TXi-1 의 해시를 포함하는지 여부를 결정할 수 있다. 타임스탬프 트랜잭션 TXi+3 이 트랜잭션 TXi 에 대해 추적 가능한지 여부를 결정하기 위해, 원장 시스템은 트랜잭션 TXi+3 이 트랜잭션 TXi+2 의 해시를 포함하는지 여부, 트랜잭션 TXi+2 이 트랜잭션 TXi+1의 해시를 포함하는지 여부 및 트랜잭션 TXi+1 이 트랜잭션 TXi 의 해시를 포함하는지 여부를 확인할 수 있다. 일부 실시예에서, 다수의 트랜잭션들의 유닛이 구성되면, 원장 시스템은 타임스탬프 트랜잭션이 지정된 트랜잭션과 동일한 유닛 내 마지막 트랜잭션이거나 또는 타임스탬프 트랜잭션이 바로 선행하는 유닛에서 마지막 트랜잭션인 것을 확인하여 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하다는 것을 결정한다.
원장 시스템은 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하다고 결정하면, 원장 시스템은 지정된 트랜잭션이 아니라 타임스탬프 트랜잭션을 지정된 트랜잭션에 대한 신뢰 포인트로서 마킹하고 타임스탬프 트랜잭션 상에 신뢰 포인트를 설정할 수 있다. 원장 시스템이 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하지 않다고 결정하면, 원장 시스템은 다른 인접한 타임스탬프 트랜잭션을 계속 검색하고 위의 단계들을 반복할 수 있다.
일부 실시예에서, 원장 시스템은 블록 체인에 일련의 트랜잭션들을 저장할 수 있다. 예를 들어, 원장 시스템은 도 3 의 원장 시스템(310)일 수 있다. 원장 시스템은 원장 서버, 예를 들어, 도 3의 원장 서버(320), 도 4a 의 원장 서버(320), 또는 도 4b 의 원장 서버(470)를 포함할 수 있다. 예로서, 블록 체인은 도 3 의 블록 체인(322)일 수 있다. 원장 시스템은 블록 체인에 트랜잭션들을 저장하는 블록들을 순차적으로 생성할 수 있다. 각각의 블록은 하나 이상의 트랜잭션들을 저장할 수 있다. 예를 들어, 블록 체인에서 블록 직전에 있는 선행 블록의 해시를 저장하여, 각각의 블록이 함께 링크되거나 또는 앵커링될 수 있다. 원장 시스템은 블록 체인에서 블록들을 미리 결정된 시간 주기로 주기적으로, 또는 비주기적으로(예를 들어, 요구 시에 또는 미리 결정된 수의 트랜잭션들에 기반하여) 생성할 수 있다.
원장 시스템에 의한 블록들의 생성은 원장 시스템에서 신뢰 포인트들을 설정하는 것과는 독립적일 수 있다. 원장 시스템에 의한 블록들의 생성은 또한, 타임스탬프 요청을 신뢰 시간 서버에 송신하는 것 및/또는 원장 시스템에 저장될 타임스탬프 트랜잭션을 생성하는 것과는 독립적일 수 있다. 즉, 블록들의 생성은 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 획득하기 위한 유닛들을 그룹화하는 것과는 독립적일 수 있다. 예를 들어 원장 시스템은 트랜잭션들 TXi-4, TXi-3, TXi-2, 및 TXi-1 을 유닛으로 그룹화할 수 있으며, 원장 시스템은 트랜잭션들 TXi-5, TXi-4, 및 TXi-3 를 저장하는 블록을 생성할 수 있다. 일부 실시예에서, 블록들의 생성은 타임스탬프 요청을 신뢰 시간 서버에 송신하는 것 및 타임스탬프 트랜잭션들을 생성하는 것과 연관될 수 있다. 예를 들어, 원장 시스템은 유닛 내 트랜잭션들을 위한 타임스탬프 트랜잭션을 생성한 후 블록을 생성할 수 있고, 여기서 블록은 유닛 내 트랜잭션들 및 타임스탬프 트랜잭션을 저장한다. 예로서, 원장 시스템은 트랜잭션들 TXi-4, TXi-3, TXi-2, 및 TXi-1 을 저장하는 블록을 생성할 수 있다.
일부 실시예에서, 원장 시스템에 의한 신뢰 포인트의 결정(또는 설정)은 타임스탬프 요청의 송신 및/또는 타임스탬프 트랜잭션의 생성과는 독립적일 수 있다. 일부 실시예에서, 원장 시스템에 의한 신뢰 포인트의 결정은 타임스탬프 요청의 송신 및 타임스탬프 트랜잭션의 생성과 연관될 수 있다. 예를 들어, 원장 시스템은 먼저 타임스탬프 트랜잭션을 생성할 수 있고 다음으로 타임스탬프 트랜잭션이 신뢰 포인트로서 설정될 수 있는지 여부를 결정할 수 있다.
도 6 은 본 명세서의 실시예에 따라 실행될 수 있는 타임스탬프 서비스의 구현을 위한 프로세스(600)의 예를 예시하는 흐름도이다. 편의상, 프로세스(600)는 하나 이상의 컴퓨터들의 시스템에 의해 수행되고, 하나 이상의 위치들에 위치하고, 본 명세서에 따라 적절하게 프로그래밍되는 것으로 설명될 것이다. 예를 들어, 원장 시스템은 프로세스(600)를 수행할 수 있다. 원장 시스템은 컨소시엄 블록 체인 네트워크(도 1의 102 또는 도 2의 212), 또는 블록 체인 기반 집중식 원장 시스템(도 3의 310)과 같은 블록 체인 기반 원장 시스템, 또는 블록 체인이 없는 원장 시스템일 수 있다.
601 에서, 원장 시스템에 저장된 일련의 트랜잭션들에서 지정된 트랜잭션에 대한 신뢰 포인트를 설정하기 위한 요청이 예를 들어 원장 시스템에 있는 컴퓨팅 디바이스에 의해 획득된다. 지정된 트랜잭션은 고려 중인 또는 관심 있는 식별된 트랜잭션일 수 있다. 예를 들어, 지정된 트랜잭션은 일련의 트랜잭션들에서 최근의 트랜잭션일 수 있다. 예를 들어, 지정된 트랜잭션에 대한 신뢰 포인트를 식별하는 기능을 호출하기 위해 스마트 계약에 지정된 트랜잭션의 식별자를 입력하여 지정된 트랜잭션을 지정할 수 있다.
신뢰 포인트는 일련의 트랜잭션들에서 신뢰 포인트 전의 트랜잭션들이 신뢰할 수 있음을 나타낸다. 그래서, 일련의 트랜잭션들에서 확인될 트랜잭션의 진정성을 확인하는 것은 확인될 트랜잭션과 그의 가장 가까운 선행 신뢰 포인트 사이의 트랜잭션들의 진정성을 확인하기만하면 될 수 있다.
일부 실시예에서, 일련의 트랜잭션들에서 각각의 트랜잭션은 각각의 트랜잭션 식별자와 연관되고, 일련의 트랜잭션들은 각각의 트랜잭션 식별자에 따라 순서대로 저장된다. 일련의 트랜잭션들은, 예를 들어, 일련의 트랜잭션들에서 트랜잭션 직전에 있는 선행 트랜잭션의 각각의 해시를 저장하는 각각의 트랜잭션에 의해 함께 링크되거나 또는 앵커링될 수 있다.
일부 실시예에서, 신뢰 포인트를 설정하기 위한 요청은 요구시 클라이언트에 의해 생성되는 명시적 요청이거나, 또는 미리 결정된 시간 주기의 경과 또는 일정 수의 트랜잭션들의 수신 후와 같은 트리거링 이벤트 시의 묵시적 요청일 수 있다.
일부 실시예에서, 도 5c 와 관련하여 설명된 것과 유사하게, 지정된 트랜잭션에 대한 신뢰 포인트를 설정하기 위한 요청은 2 개의 조건을 필요로 할 수 있다:(1) 602 에 대해 설명된 바처럼, 지정된 트랜잭션은 일련의 트랜잭션들에서 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하고, 그리고(2) 604 내지 610 에 대해 설명된 바처럼, 특화 트랜잭션이 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 저장하는 타임스탬프 트랜잭션에 대해 신뢰할 수 있게 추적 가능하다. 일부 실시예에서, 2 개의 조건은 어느 하나의 순서로 또는 병렬로 확인될 수 있다. 원장 시스템이 지정된 트랜잭션은 두 조건 중 하나를 충족한다고 결정하면, 원장 시스템은 지정된 트랜잭션이 후보 신뢰 포인트라고 결정할 수 있다. 원장 시스템이 지정된 트랜잭션이 두 조건 모두를 충족한다고 결정한 후에만, 원장 시스템은 지정된 트랜잭션이 신뢰 포인트라고 결정할 수 있다.
602 에서, 지정된 트랜잭션이 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한지 여부가 결정된다. 즉, 지정된 트랜잭션 자체가 후보 신뢰 포인트인지 여부가 결정된다. 일부 실시예에서, 원장 시스템은, 예를 들어, 일련의 트랜잭션들에서 지정된 트랜잭션으로부터 선행 신뢰 포인트까지 각각의 트랜잭션이 트랜잭션 직전의 선행 트랜잭션의 각각의 해시를 포함하는지 여부를 확인하여, 지정된 트랜잭션이 후보 신뢰 포인트인지 여부를 결정한다. 원장 시스템은 일련의 트랜잭션들에서 지정된 트랜잭션으로부터 선행 신뢰 포인트로 거슬러 추적하는 것 또는 선행 신뢰 포인트로부터 지정된 트랜잭션으로 추적하는 것 중 적어도 하나에 의해 지정된 트랜잭션이 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한지 여부를 확인할 수 있다. 선행 신뢰 포인트는 일련의 트랜잭션들에서 지정된 트랜잭션 직전의 신뢰 포인트 또는 일련의 트랜잭션들에서 신뢰 포인트들에 대한 소스인 제 1 트랜잭션(또는 원래 트랜잭션)일 수 있다.
원장 시스템은 주기적으로 일련의 트랜잭션들에서 트랜잭션들 상에 신뢰 포인트들을 설정할 수 있다. 원장 시스템은 또한 요구시에 또는 바로 선행하는 신뢰 포인트로부터 추가된 트랜잭션들의 수에 따라 신뢰 포인트를 설정할 수 있다. 원장 시스템은 또한 일련의 트랜잭션들 내 트랜잭션이 신뢰 포인트인지 여부를 요청에 따라 확인할 수 있다.
일부 실시예에서, 원장 시스템은 복수의 블록들을 포함하는 블록 체인에 일련의 트랜잭션들을 저장한다. 각각의 블록은 하나 이상의 트랜잭션들을 저장할 수 있고 블록 체인에 바로 선행하는 블록의 해시를 저장하여 함께 링크되거나 또는 앵커링된다. 블록들의 생성은 신뢰 포인트들의 설정 또는 지정된 트랜잭션이 신뢰 포인트로 결정되는 것과는 독립적일 수 있다.
603 에서, 지정된 트랜잭션이 후보 신뢰 포인트가 아니라는 결정에 응답하여, 프로세스(600)가 종료된다. 원장 시스템은 지정된 트랜잭션이 신뢰 포인트로서 설정될 수 없음을 나타내는 메시지를 생성할 수 있다. 메시지는 클라이언트 디바이스로 다시 송신되거나 또는 화면 상에 표시될 수 있다.
604 에서, 지정된 트랜잭션이 후보 신뢰 포인트라는 결정에 응답하여, 원장 시스템은 지정된 트랜잭션이 신뢰 시간 서버로부터 신뢰 타임스탬프 정보를 저장하는 타임스탬프 트랜잭션인지 여부를 결정한다. 신뢰 시간 서버는 원장 시스템과는 독립적이고 제 3 자 신뢰 시간 기관과 연관될 수 있다.
일부 실시예에서, 원장 시스템은 신뢰 시간 서버에 타임스탬프 요청을 송신할 수 있다. 타임스탬프 요청은 신뢰 시간 서버로 송신되는 타임스탬프 요청 중 타임스탬프 요청의 식별자를 포함할 수 있다. 타임스탬프 요청은 일련의 트랜잭션들에서 가장 최근의 트랜잭션의 트랜잭션 식별자 또는 해시를 포함할 수 있다. 타임스탬프 요청은 또한 유닛 내 트랜잭션들의 해시들의 해시 다이제스트를 포함할 수 있다. 유닛은 바로 선행하는 타임스탬프 트랜잭션으로부터 일련의 트랜잭션들에 저장된 트랜잭션들을 수집한다.
신뢰 시간 서버로부터 타임스탬프 요청에 대한 신뢰 타임스탬프 및 연관된 서명을 수신한 후, 원장 시스템은 일련의 트랜잭션들 내 트랜잭션으로서 신뢰 타임스탬프 및 연관된 서명을 저장할 수 있다. 신뢰 시간 서버로부터의 신뢰 타임스탬프 및 연관된 서명을 저장하는 트랜잭션은 새로운 타임스탬프 트랜잭션으로서 마킹될 수 있다. 새로운 타임스탬프 트랜잭션은 타임스탬프 요청이 송신될 때 일련의 트랜잭션들에서 가장 최근의 트랜잭션 직후에 저장될 수 있다. 새로운 타임스탬프 트랜잭션은 가장 최근의 트랜잭션의 해시를 저장하여 일련의 트랜잭션들에 링크될 수 있다. 일부 실시예에서, 새로운 타임스탬프 트랜잭션은 가장 최근의 트랜잭션을 포함하는 유닛 내 트랜잭션들의 해시들의 해시 다이제스트를 저장할 수 있다. 유닛 내 트랜잭션들은 새로운 타임스탬프 트랜잭션과 동일한 신뢰 타임스탬프를 갖는 것으로 고려될 수 있다. 새로운 타임스탬프 트랜잭션은 마지막 트랜잭션으로서 유닛에 포함될 수 있다.
일부 실시예에서, 원장 시스템은 미리 결정된 트리거링 시간 주기로 타임스탬프 요청을 신뢰 시간 서버에 주기적으로 송신할 수 있다. 원장 시스템은 또한 비주기적으로, 예를 들어, 요구시에 또는 바로 선행하는 타임스탬프 요청 후에 수집된 미리 결정된 수의 트랜잭션들에 기초하여 타임스탬프 요청을 신뢰 시간 서버에 송신할 수 있다. 타임스탬프 요청의 송신은 블록들의 생성 및/또는 신뢰 포인트들의 설정과는 독립적일 수 있다.
606 에서, 지정된 트랜잭션이 타임스탬프 트랜잭션이라고 결정하는 것에 응답하여, 원장 시스템은 지정된 트랜잭션을 신뢰 포인트로서 마킹하며, 즉, 원장 시스템은 지정된 트랜잭션 상에 신뢰 포인트를 설정할 수 있다.
608 에서, 지정된 트랜잭션이 타임스탬프 트랜잭션이 아니라는 결정에 응답하여, 원장 시스템은 일련의 트랜잭션들에서 지정된 트랜잭션에 인접한 타임스탬프 트랜잭션을 식별한다. 일부 실시예에서, 원장 시스템은 지정된 트랜잭션을 포함하는 유닛 내 마지막 트랜잭션을 타임스탬프 트랜잭션으로 식별함으로써 또는 지정된 트랜잭션을 포함하는 유닛 직전의 선행 유닛 내 마지막 트랜잭션을 타임스탬프 트랜잭션으로 식별함으로써, 타임스탬프 트랜잭션을 식별할 수 있다. 일부 실시예에서, 원장 시스템은 일련의 트랜잭션들에서 타임스탬프 트랜잭션들의 트랜잭션 식별자를 목록화하는 테이블을 저장한다. 원장 시스템은 일련의 트랜잭션들에서 임의의 다른 타임스탬프 트랜잭션들과 연관된 임의의 다른 트랜잭션 식별자들보다 지정된 트랜잭션의 트랜잭션 식별자에 더 가까운 트랜잭션 식별자와 연관된 타임스탬프 트랜잭션을 식별함으로써 지정된 트랜잭션에 인접한 타임스탬프 트랜잭션을 식별할 수 있다.
610 에서, 원장 시스템은 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정한다. 일부 실시예에서, 원장 시스템은 타임스탬프 트랜잭션이 일련의 트랜잭션들에서 지정된 트랜잭션 다음에 오는 경우 타임스탬프 트랜잭션이 지정된 트랜잭션의 정보를 포함하는지 여부를 확인하거나, 또는 타임스탬프 트랜잭션이 일련의 트랜잭션들에서 지정된 트랜잭션에 선행하는 경우 지정된 트랜잭션이 타임스탬프 트랜잭션의 정보를 포함하는지 여부를 확인할 수 있다. 일부 실시예에서, 원장 시스템은 일련의 트랜잭션들에서 타임스탬프 트랜잭션으로부터 지정된 트랜잭션까지 각각의 트랜잭션이 트랜잭션 직전의 선행 트랜잭션의 각각의 해시를 포함하는지 여부를 확인할 수 있다. 원장 시스템이 일련의 트랜잭션들에서 타임스탬프 트랜잭션으로부터 지정된 트랜잭션까지 각각의 트랜잭션이 트랜잭션 직전에 선행 트랜잭션의 각각의 해시를 포함하는 것을 확인하면, 원장 시스템은 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하다는 것을 결정할 수 있다. 원장 시스템이 일련의 트랜잭션들에서 타임스탬프 트랜잭션으로부터 지정된 트랜잭션까지 각각의 트랜잭션이 트랜잭션 직전에 선행 트랜잭션의 각각의 해시를 포함하는 것을 확인할 수 없으면, 원장 시스템은 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하지 않다는 것을 결정할 수 있다.
타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하지 않다고 결정하는 것에 응답하여, 프로세스(600)는 단계(608)로 돌아가고 원장 시스템은 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능할 수 있는 인접한 타임스탬프 트랜잭션을 계속 식별할 수 있다.
612 에서, 타임스탬프 트랜잭션이 지정된 트랜잭션에 대해 신뢰할 수 있게 추적 가능하다고 결정하는 것에 응답하여, 원장 시스템은 타임스탬프 트랜잭션을 일련의 트랜잭션들에서 신뢰 포인트로서 마킹한다. 즉, 원장 시스템은 지정된 트랜잭션에 대한 신뢰 포인트로서 타임스탬프 트랜잭션을 설정한다.
614 에서, 원장 시스템은 일련의 트랜잭션들에서 확인될 트랜잭션을 확인하기 위한 요청을 수신한다. 예를 들어, 요청은 클라이언트로부터 수신될 수 있다. 확인될 트랜잭션은 클라이언트에게 관심 대상일 수 있다. 확인될 트랜잭션은 일련의 트랜잭션들에서 지정된 트랜잭션 전에 또는 후에 저장된 트랜잭션일 수 있다.
616 에서, 원장 시스템은 트랜잭션이 일련의 트랜잭션들에서 트랜잭션 전에 가장 가까운 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인하여 트랜잭션이 확인된다고 결정한다. 가장 가까운 신뢰 포인트가 신뢰할 수 있으므로, 트랜잭션이 확인된다고 결정하는 것은, 일련의 트랜잭션들에서 가장 가까운 신뢰 포인트에 선행하는 트랜잭션들을 확인할 필요가 없다. 예를 들어, 확인될 트랜잭션이 일련의 트랜잭션들에서 지정된 트랜잭션 후의 트랜잭션인 경우, 원장 시스템은, 일련의 트랜잭션들에서 타임스탬프 트랜잭션에 선행하는 트랜잭션들을 확인하지 않고서, 확인될 트랜잭션이 신뢰 포인트로서 마킹된 타임스탬프 트랜잭션에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인함으로써 확인될 트랜잭션이 확인되는 것을 결정할 수 있다.
도 7 은 본 명세서의 실시예에 따른 장치(700)의 모듈들의 예를 도시한다. 장치(700)는 원장 시스템에 저장된 트랜잭션 데이터에 대한 원장 서비스, 신뢰 타임스탬프 서비스 및 신뢰 포인트 서비스를 제공하도록 구성된 원장 시스템의 실시예의 예일 수 있다. 장치(700)는 위에서 설명된 실시예들에 대응할 수 있고, 장치(700)는 원장 시스템에 있는 컴퓨팅 디바이스에 의해 원장 시스템에 저장된 일련의 기록들에서 지정된 기록에 대한 신뢰 포인트를 설정하기 위한 요청을 획득하는 획득 모듈(701)로서, 상기 신뢰 포인트는 일련의 기록들에서 신뢰 포인트 전의 기록들이 신뢰할 수 있다는 것을 나타내는, 상기 획득 모듈(701); 원장 시스템에 저장된 일련의 기록들에서 지정된 기록이 후보 신뢰 포인트인지 여부를 결정하는 제 1 결정 모듈(702); 컴퓨팅 디바이스에 의해 지정된 기록이 신뢰 시간 서버로부터의 신뢰 타임스탬프 정보를 포함하는 타임스탬프 기록인지 여부를 결정하는 제 2 결정 모듈(704)로서, 상기 신뢰 시간 서버는 신뢰 시간 기관과 연관되고 원장 시스템과는 독립적인, 상기 제 2 결정 모듈(704); 지정된 기록이 타임스탬프 기록이 아니라는 결정에 응답하여 일련의 기록들에서 타임스탬프 기록들 중 지정된 기록에 인접한 타임스탬프 기록을 식별하는 식별 모듈(706); 컴퓨팅 디바이스에 의해 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정하는 제 3 결정 모듈(708); 및 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다는 결정에 응답하여 타임스탬프 기록을 일련의 기록들에서 신뢰 포인트로서 마킹하는 마킹 모듈(710)을 포함한다.
일부 실시예에서, 장치(700)는 일련의 기록들에서 확인될 기록을 확인하기 위한 요청을 수신하는 수신 모듈(712) 및 일련의 기록들에서 가장 가까운 신뢰 포인트에 선행하는 기록들을 확인하지 않고서 확인될 기록에 선행하는 가장 가까운 신뢰 포인트에 대해 확인될 기록이 신뢰할 수 있게 추적 가능하다는 것을 결정함으로써 확인될 기록이 확인되는 것을 결정하는 제 4 결정 모듈(714)을 더 포함한다. 일부 실시예에서, 제 1 결정 모듈(702), 제 2 결정 모듈(704), 제 3 결정 모듈(708) 및 제 4 결정 모듈(714) 중 하나 이상은 단일 모듈로서 구현될 수 있다.
일부 실시예에서, 일련의 기록들의 각각의 기록은 각각의 트랜잭션을 포함한다. 일부 실시예에서, 일련의 기록들 중 각각의 기록은 각각의 블록을 포함하고 일련의 기록들은 블록 체인을 형성한다.
일부 실시예에서, 일련의 기록들의 각각의 기록은 일련의 기록들에서 기록 직전 선행 기록의 각각의 해시를 포함한다.
일부 실시예에서, 제 3 결정 모듈(708)은 타임스탬프 기록이 지정된 기록에 대해 추적 가능하고 지정된 기록을 인증하는 정보를 포함하는 것을 확인하는 것 또는 지정된 기록이 타임스탬프 기록에 대해 추적 가능하고 타임스탬프 기록을 인증하는 정보를 포함하는 것을 확인하는 것 중 적어도 하나에 의해 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다는 것을 결정하도록 구성된다.
일부 실시예에서, 제 3 결정 모듈(708)은 일련의 기록들에서 타임스탬프 기록으로부터 지정된 기록으로 각각의 기록이 기록 직전 선행 기록의 각각의 해시를 포함하는 것을 확인하는 것에 의해 타임스탬프 기록이 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다고 결정하도록 구성된다.
일부 실시예에서, 제 1 결정 모듈(702)은 지정된 기록이 일련의 기록들에서 지정된 기록 전 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한 것을 확인하는 것에 의해 일련의 기록들에서 지정된 기록이 신뢰 포인트라고 결정하도록 구성된다.
일부 실시예에서, 장치(700)는 일련의 기록들에서 지정된 기록으로부터 선행 신뢰 포인트까지 각각의 기록이 기록 직전 선행 기록의 각각의 해시를 포함하는 것을 확인하는 것에 의해 지정된 기록이 지정된 기록 전 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인하도록 구성된 확인 모듈을 포함한다.
일부 실시예에서, 선행 신뢰 포인트는 일련의 기록들에서 지정된 기록 직전 신뢰 포인트, 및 일련의 기록들에서 신뢰 포인트에 대한 소스인 제 1 기록 중 하나이다.
선택적인 실시예에서, 확인 모듈은 일련의 기록들에서 지정된 기록으로부터 거슬러 선행 신뢰 포인트로 추적하는 것 또는 일련의 기록들에서 선행 신뢰 포인트로부터 앞으로 지정된 기록으로 추적하는 것 중 적어도 하나에 의해 지정된 기록이 일련의 기록들에서 지정된 기록 전 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하다는 것을 확인하도록 구성된다.
일부 실시예에서, 장치(700)는 타임스탬프 요청을 신뢰 시간 서버에 송신하는 송신 모듈; 신뢰 시간 서버로부터 타임스탬프 요청에 대한 신뢰 타임스탬프 및 연관된 서명을 수신하는 제 2 수신 모듈; 및 일련의 기록들에서 기록으로서 신뢰 타임스탬프 및 연관된 서명을 저장하는 저장 모듈을 더 포함한다. 신뢰 시간 서버로부터 신뢰 타임스탬프 및 연관된 서명을 저장하는 기록은 일련의 기록들에서 새로운 타임스탬프 기록이고, 타임스탬프 요청이 송신될 때 일련의 기록들에 저장된 가장 최근의 기록 직후에 새로운 타임스탬프 기록이 저장되고 가장 최근의 기록의 해시를 포함한다.
일부 실시예에서, 일련의 기록들에서 새로운 타임스탬프 기록과 새로운 타임스탬프 기록 직전의 선행 타임스탬프 기록 사이의 기록들은 유닛으로 그룹화되고, 새로운 타임스탬프 기록은 유닛에 마지막 기록으로서 포함된다.
일부 실시예에서, 타임스탬프 요청은 신뢰 시간 서버로 송신된 타임스탬프 요청들 중 타임스탬프 요청의 식별자, 가장 최근의 기록의 식별자 또는 해시, 또는 유닛 내 기록들의 해시들의 해시 다이제스트 중 적어도 하나를 포함한다.
일부 실시예에서, 식별 모듈(706)은 지정된 기록을 포함하는 유닛 내 마지막 기록을 타임스탬프 기록으로 식별하거나 또는 지정된 기록을 포함하는 유닛 직전의 선행 유닛 내 마지막 기록을 타임스탬프 기록으로 식별하는 것에 의해 타임스탬프 기록을 식별하도록 구성된다.
일부 실시예에서, 제 1 결정 모듈(702)은 일련의 기록들에서 제 2 기록이 제 2 후보 신뢰 포인트라고 결정하고, 제 2 결정 모듈(704)은 제 2 기록이 일련의 기록들에서 타임스탬프 기록이라고 결정하고, 그리고 마킹 모듈(710)은 제 2 기록을 일련의 기록들에서 제 2 신뢰 포인트로서 마킹한다.
일부 실시예에서, 새로운 타임스탬프 기록은 유닛 내 기록들의 해시들의 해시 다이제스트를 포함한다.
일부 실시예에서, 장치(700)는 타임스탬프 요청을 위해 미리 결정된 시간 주기로 타임스탬프 요청을 신뢰 시간 서버에 주기적으로 송신하는 송신 모듈을 더 포함한다.
일부 실시예에서, 장치(700)는 블록 체인에 일련의 기록들을 저장하는 블록들을 순차적으로 생성하는 생성 모듈을 더 포함하고, 각각의 블록은 하나 이상의 기록들을 저장하고 블록 체인에서 함께 링크된다. 블록 체인에서 블록들을 생성하는 것은 지정된 기록이 신뢰 포인트라고 결정하는 것과는 독립적이며 타임스탬프 요청을 신뢰 시간 서버에 송신하는 것과는 독립적이다.
일부 실시예에서, 일련의 기록들에서 각각의 기록은 각각의 기록 식별자와 연관되고, 일련의 기록들은 각각의 기록 식별자들에 따라 순서대로 저장되고, 식별 모듈(706)은 일련의 기록들에서 지정된 기록에 대한 기록 식별자에 가장 가까운 기록 식별자와 연관된 타임스탬프 기록을 식별하는 것에 의해 일련의 기록들에서 타임스탬프 기록들 중 지정된 기록에 인접한 타임스탬프 기록을 식별한다.
일부 실시예에서, 원장 시스템에 저장된 일련의 기록들에서 지정된 기록이 후보 신뢰 포인트라고 결정하는 단계는 타임스탬프 요청을 신뢰 시간 서버로 송신하는 것과는 독립적이다.
일부 실시예에서, 지정된 기록은 신뢰 시간 서버로부터의 신뢰 타임스탬프 정보를 포함하는 타임스탬프 기록이 아니라고 결정하는 것에 응답하여 지정된 기록이 일련의 기록들에서 신뢰 포인트로서 마킹되지 않는다.
이전 실시예에서 예시된 시스템, 장치, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티를 이용하여 구현될 수 있거나, 또는 특정 기능을 가진 제품을 이용하여 구현될 수 있다. 전형적인 실시예 디바이스는 컴퓨터(그리고 컴퓨터는 개인용 컴퓨터일 수 있음), 랩톱 컴퓨터, 휴대폰, 카메라 폰, 스마트 폰, 개인 휴대용 단말기, 미디어 플레이어, 내비게이션 디바이스, 이메일 수신 및 전송 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스 또는 이러한 디바이스들의 임의의 조합이다.
장치 내의 각각의 모듈의 기능 및 역할의 실시예 프로세스에 대해서는, 이전 방법에서 대응하는 단계들의 실시예 프로세스를 참조할 수 있다. 간결성을 위해 여기서 상세는 생략된다.
장치 실시예는 기본적으로 방법 실시예에 대응하므로, 관련 부분에 대해서는, 방법 실시예에 있는 관련 설명을 참조할 수 있다. 전술한 장치 실시예는 단지 예일 뿐이다. 분리된 부분들로 설명된 모듈은 물리적으로 분리될 수도 있거나 그렇지 않을 수도 있으며, 모듈로 표시되는 부분들은 물리적 모듈일 수도 있거나 아닐 수도 있고, 한 위치에 있을 수도 있거나, 또는 다수의 네트워크 모듈에 분산될 수도 있다. 일부 또는 모든 모듈은 본 명세서의 해법의 목표를 달성하기 위해 실제 요구 사항에 기초하여 선택될 수 있다. 당업자라면 창의적인 노력없이 본 출원의 실시예를 이해하고 구현할 수 있다.
다시, 도 7 을 참조하면, 이는 내부 기능 모듈과 원장 구현 장치의 구조를 예시한 것으로 해석될 수 있다. 원장 구현 장치는 원장 시스템에 저장된 기록들(예를 들어, 트랜잭션 데이터)에 대한 원장 서비스, 신뢰 타임스탬프 서비스 및 신뢰 포인트 서비스를 제공하도록 구성된 원장 시스템의 예일 수 있다. 본질적으로 실행 바디는 전자 디바이스일 수 있으며, 전자 디바이스는 하나 이상의 프로세서; 및 하나 이상의 프로세서의 실행 가능한 명령들을 저장하도록 구성된 하나 이상의 컴퓨터 판독 가능 메모리를 포함한다. 일부 실시예에서, 하나 이상의 컴퓨터 판독 가능 메모리는 하나 이상의 프로세서에 연결되고 본 명세서에 설명된 알고리즘, 방법, 기능, 프로세스, 흐름 및 절차를 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 프로그래밍 명령이 저장된다. 본 명세서는 또한, 하나 이상의 프로세서에 연결되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 본 명세서에 제공된 방법의 실시예에서 따라 동작들을 수행하게 하는 명령들이 저장된 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 제공한다.
본 명세서는 또한 본 명세서에 제공된 방법들을 구현하기 위한 시스템을 제공한다. 시스템은, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 본 명세서에 제공된 방법의 실시예에 따라 동작들을 수행하게 하는 명령들이 저장된 하나 이상의 프로세서에 연결된 컴퓨터 판독가능 저장 매체를 포함한다.
본 명세서에서 설명된 요지 및 액션 및 동작들의 실시예는 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하여, 디지털 전자 회로에서, 또는 유형적으로 구체화된 컴퓨터 소프트웨어 또는 펌웨어에서, 컴퓨터 하드웨어에서, 또는 이들의 하나 이상의 조합들에서 구현될 수 있다. 본 명세서에 기재된 요지의 실시예는, 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위하여 컴퓨터 프로그램 캐리어 상에 인코딩된, 하나 이상의 컴퓨터 프로그램, 예를 들어, 컴퓨터 프로그램 명령들의 하나 이상의 모듈들로서 구현될 수도 있다. 예를 들어, 컴퓨터 프로그램 캐리어는 명령들이 인코딩되거나 저장된 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 캐리어는 자기, 자기 광학 또는 광학 디스크, 솔리드 스테이트 드라이브, RAM(random access memory), ROM(read-only memory) 또는 다른 타입의 매체와 같은 유형의 비일시적 컴퓨터 판독 가능 매체일 수도 있다. 대안적으로 또는 추가적으로, 캐리어는, 데이터 처리 장치에 의한 실행을 위한 적합한 수신기 장치로의 송신을 위해 정보를 인코딩하기 위해 생성되는, 인위적으로 생성된 전파 신호(propagated signal), 예를 들어, 머신에 의해 생성된 전기적, 광학적 또는 전자기적 신호일 수도 있다. 컴퓨터 저장 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나, 또는 이들의 부분일 수 있다. 컴퓨터 저장 매체는 전파 신호가 아니다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트 또는 코드로도 지칭되거나 또는 설명될 수도 있는 컴퓨터 프로그램은, 컴파일 또는 해석 언어, 또는 선언적 또는 절차적 언어를 포함한, 임의의 형태의 프로그래밍 언어로 작성될 수 있고; 그것은 독립형 프로그램으로서 또는 모듈로서, 컴포넌트, 엔진, 서브루틴 또는 컴퓨팅 환경에서 실행하기에 적합한 다른 유닛을 포함한 임의의 형태로 전개될 수 있고, 이러한 환경에는 하나 이상의 위치에서 데이터 통신 네트워크에 의해 상호 접속된 하나 이상의 컴퓨터가 포함될 수도 있다.
컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수도 있지만, 반드시 그럴 필요는 없다. 컴퓨터 프로그램은 다른 프로그램들 또는 데이터를 유지하는 파일의 부분, 예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들에 저장되거나, 당해 프로그램에 전용되는 단일 파일에 저장되거나, 또는 다수의 협력형 파일(coordinated file)들, 예컨대, 하나 이상의 모듈들, 서브프로그램들, 또는 코드의 부분들을 저장하는 파일들에 저장될 수 있다.
컴퓨터 프로그램의 실행을 위한 프로세서들은, 예로서, 일반 및 특수 목적 마이크로프로세서들, 그리고 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 프로세서에 연결된 비일시적 컴퓨터 판독 가능 매체로부터의 데이터뿐만 아니라 실행을 위한 컴퓨터 프로그램의 명령들을 수신할 것이다.
"데이터 처리 장치" 라는 용어는 예로서 프로그램 가능 프로세서, 컴퓨터, 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 종류의 장치들, 디바이스들 및 머신들을 망라한다. 데이터 처리 장치는 특수 목적의 로직 회로, 예를 들어, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 또는 GPU(graphics processing unit)를 포함할 수 있다. 또한, 장치는, 하드웨어 이외에, 컴퓨터 프로그램을 위한 실행 환경을 창출하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
본 명세서에서 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 동작을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 컴퓨터 또는 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한, 특수 목적 로직 회로, 예를 들어, FPGA, ASIC 또는 GPU 에 의해 또는 특수 목적 로직 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 일반 또는 특수 목적의 마이크로 프로세서 또는 양자 모두 또는 임의의 다른 종류의 중앙 처리 유닛에 기초할 수 있다. 일반적으로, 중앙 처리 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 양자 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 엘리먼트들은 명령들을 실행하기 위한 중앙 처리 유닛 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함할 수 있다. 중앙 처리 유닛 및 메모리는 특수 목적 로직 회로에 의해 보충될수 있거나 또는 특수 목적 로직 회로에 포함될 수 있다.
일반적으로, 컴퓨터는 또한 하나 이상의 저장 디바이스들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 또는 이들에 데이터를 전송하도록 동작되게 연결될 것이다. 저장 디바이스는 예를 들어 자기, 자기 광학 또는 광학 디스크, 솔리드 스테이트 드라이브 또는 임의의 다른 유형의 비 일시적 컴퓨터 판독 가능 매체일 수 있다. 그러나, 컴퓨터가 이러한 디바이스들을 구비할 필요는 없다. 따라서, 컴퓨터는 로컬 및/또는 원격인 하나 이상의 메모리와 같은 하나 이상의 저장 디바이스에 연결될 수도 있다. 예를 들어, 컴퓨터는 컴퓨터의 필수 컴포넌트들인 하나 이상의 로컬 메모리를 포함할 수 있거나, 또는 컴퓨터는 클라우드 네트워크에 있는 하나 이상의 원격 메모리에 연결될 수 있다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 말하자면, 이동 전화기, PDA(personal digital assistant), 이동 오디오 혹은 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대용 저장 디바이스, 예를 들어, 범용 직렬 버스(USB) 플래시 드라이브에 임베딩될 수 있다.
컴포넌트들은 전기적으로 또는 광학적으로, 직접 또는 하나 이상의 중간 컴포넌트들을 통해 서로 접속되는 것과 같이 상호적인 것에 의해 서로"에 연결"될 수 있다. 컴포넌트들 중 하나가 다른 하나에 통합되는 경우 컴포넌트들은 또한 서로"에 연결"될 수 있다. 예를 들어, 프로세서에 통합된 저장 컴포넌트(예를 들어, L2 캐시 컴포넌트)는 프로세서"에 연결"된다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 요지의 실시예는, 사용자에게 정보를 표시하기 위한 디스플레이 디바이스, 예를 들어 LCD(액정 디스플레이) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 입력 디바이스, 예를 들어, 키보드 및 포인팅 디바이스, 예를 들어, 마우스, 트랙볼 또는 터치패드를 갖는 컴퓨터에서 구현되거나, 또는 이와 통신하도록 구성될 수 있다. 다른 종류의 디바이스들이 마찬가지로 사용자와의 상호작용을 제공하기 위해 사용될 수 있다; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각적 피드백, 예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있고; 그리고 사용자로부터의 입력은 음향적, 음성적 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 이 디바이스로부터 문서들을 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 또는 사용자 디바이스, 예를 들어, 스마트폰 또는 전자 태블릿 상에서 실행되는 앱과 상호 작용함으로써, 사용자와 상호 작용할 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 디바이스, 예를 들어, 메시징 애플리케이션을 실행하는 스마트 폰에 전송하고 반환으로 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다.
이 명세서는 시스템, 장치 및 컴퓨터 프로그램 컴포넌트와 관련하여 "하도록 구성된" 이라는 용어를 사용한다. 하나 이상의 컴퓨터들의 시스템이 특정 동작 또는 액션을 수행하도록 구성된다는 것은 동작시에 시스템으로 하여금 동작 또는 액션을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 시스템에 설치됨을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작 또는 액션을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 장치로 하여금 동작 또는 액션을 수행하게 하는 명령들을 포함한다는 것을 의미한다. 특수 목적 로직 회로가 특정 동작 또는 액션을 수행하도록 구성된다는 것은 동작 또는 액션을 수행하는 전자 로직을 회로가 갖는다는 것을 의미한다.
본 명세서는 많은 특정 실시예 상세를 포함하지만, 이들은, 청구항 자체에 의해 정의되는, 청구 범위에 대한 제한으로서 해석되는 것이 아니라, 오히려 특정 실시형태에 특유할 수도 있는 특징들에 대한 설명으로 해석되어야 한다. 별개의 실시형태들의 맥락에서 본 명세서에 설명된 특정 특징들은 또한 단일 실시형태에서 조합하여 실현될 수 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징들은 또한 다수의 실시예에서 분리하여 또는 임의의 적합한 부조합(subcombination)으로 실현될 수 있다. 또한, 특징들이 특정 조합들에서 작용하는 것으로 위에서 설명되고 심지어 그것으로서 처음 청구될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징들은 일부 경우에 조합으로부터 삭제될 수 있고, 청구항은 부조합 또는 부조합의 변형에 관련될 수도 있다.
유사하게, 동작들이 특정 순서로 도면들에서 도시되고 청구항에서 언급되지만, 이것은, 바람직한 결과들을 달성하기 위하여, 그러한 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 또는 모든 예시된 동작들이 수행될 것을 필요로 하는 것으로 이해되지 않아야 한다. 특정 상황들에서, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 또한, 전술된 실시예에서 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예에서 그러한 분리는 필요로 하는 것으로 이해되지 않아야 하고, 기재된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 또는 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되야 한다.
본 요지의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구항에 기재된 액션들은 상이한 순서로 수행될 수 있고 여전히 바람직한 결과들을 달성할 수 있다. 일 예로서, 첨부된 도면에 도시된 프로세서들은 바람직한 결과들을 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 일부 경우에, 멀티태스킹 및 병렬 처리가 유리할 수도 있다.

Claims (15)

  1. 컴퓨터 구현 방법에 있어서,
    원장(ledger) 시스템의 컴퓨팅 디바이스에 의해 상기 원장 시스템에 저장된 일련의 기록들에서 지정된 기록에 대한 신뢰 포인트를 설정하기 위한 요청을 획득하는 단계 ― 상기 신뢰 포인트는 상기 일련의 기록들에서 상기 신뢰 포인트 이전의 기록들이 신뢰할 수 있다는 것을 나타냄 ― ;
    (1) 상기 지정된 기록이 상기 일련의 기록들에서 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한지 여부 및 (2) 상기 컴퓨팅 디바이스에 의해 상기 지정된 기록이 신뢰 시간 서버로부터의 신뢰 타임스탬프 정보를 포함하는 타임스탬프 기록인지 여부 ― 상기 신뢰 시간 서버는 신뢰 시간 기관과 연관되고 상기 원장 시스템과는 독립적인 것임 ― 를 결정함으로써, 상기 지정된 기록이 후보 신뢰 포인트인지 여부를 결정하는 단계;
    상기 지정된 기록이 상기 일련의 기록들에서 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능하지만 타임스탬프 기록은 아니라고 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스에 의해 상기 일련의 기록들의 타임스탬프 기록들 중 상기 지정된 기록에 인접한 타임스탬프 기록을 식별하는 단계;
    상기 컴퓨팅 디바이스에 의해 상기 타임스탬프 기록이 상기 지정된 기록에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정하는 단계; 및
    상기 타임스탬프 기록이 상기 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다고 결정하는 것에 응답하여, 상기 컴퓨팅 디바이스에 의해 상기 타임스탬프 기록을 상기 일련의 기록들에서 상기 신뢰 포인트인 것으로 마킹하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 일련의 기록들의 각각의 기록은 각각의 트랜잭션을 포함하는 것인, 컴퓨터 구현 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 일련의 기록들의 각각의 기록은 상기 일련의 기록들에서 상기 기록 직전 선행 기록의 각각의 해시를 포함하는 것인, 컴퓨터 구현 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 타임스탬프 기록이 상기 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다고 결정하는 것은,
    상기 타임스탬프 기록이 상기 지정된 기록에 대해 추적 가능하고 상기 지정된 기록을 인증하는 정보를 포함하는 것을 확인하는 것; 또는
    상기 지정된 기록이 상기 타임스탬프 기록에 대해 추적 가능하고 상기 타임스탬프 기록을 인증하는 정보를 포함하는 것을 확인하는 것
    중 적어도 하나를 포함하는 것인, 컴퓨터 구현 방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 타임스탬프 기록이 상기 지정된 기록에 대해 신뢰할 수 있게 추적 가능하다고 결정하는 것은,
    상기 일련의 기록들에서 상기 타임스탬프 기록으로부터 상기 지정된 기록까지의 각각의 기록이 상기 기록 직전의 선행 기록의 각각의 해시를 포함하는 것을 확인하는 것
    을 포함하는 것인, 컴퓨터 구현 방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 지정된 기록이 상기 일련의 기록들에서 다른 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한지 여부를 결정하는 것은,
    상기 지정된 기록이 상기 일련의 기록들에서 상기 지정된 기록 이전의 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한지 여부를 확인하는 단계
    를 포함하는 것인, 컴퓨터 구현 방법.
  7. 제 6 항에 있어서,
    상기 선행 신뢰 포인트는,
    상기 일련의 기록들에서 상기 지정된 기록 직전의 신뢰 포인트, 또는
    상기 일련의 기록들에서 신뢰 포인트에 대한 소스인 제 1 기록
    중 하나인 것인, 컴퓨터 구현 방법.
  8. 제 6 항에 있어서,
    상기 지정된 기록이 상기 일련의 기록들에서 상기 지정된 기록 이전의 선행 신뢰 포인트에 대해 신뢰할 수 있게 추적 가능한지 여부를 확인하는 단계는,
    상기 일련의 기록들에서 상기 지정된 기록으로부터 상기 선행 신뢰 포인트까지 거슬러(back) 추적하는 단계; 또는
    상기 일련의 기록들에서 상기 선행 신뢰 포인트로부터 상기 지정된 기록까지 앞으로(forward) 추적하는 단계
    중 적어도 하나를 포함하는 것인, 컴퓨터 구현 방법.
  9. 제 1 항 또는 제 2 항에 있어서,
    상기 일련의 기록들에서 상기 지정된 기록 후에 있는 확인될 기록을 확인하기 위한 확인 요청을 수신하는 단계; 및
    상기 일련의 기록들에서 상기 타임스탬프 기록에 선행하는 기록들을 확인하지 않고서, 상기 확인될 기록이 상기 타임스탬프 기록에 대해 신뢰할 수 있게 추적 가능한 것을 확인함으로써 상기 확인될 기록이 확인된다고 결정하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  10. 제 1 항 또는 제 2 항에 있어서,
    상기 신뢰 시간 서버에 타임스탬프 요청을 송신하는 단계;
    상기 신뢰 시간 서버로부터 상기 타임스탬프 요청에 대한 신뢰 타임스탬프 및 연관된 서명을 수신하는 단계; 및
    상기 일련의 기록들에 기록으로서 상기 신뢰 타임스탬프 및 연관된 서명을 저장하는 단계
    를 더 포함하고,
    상기 신뢰 시간 서버로부터의 상기 신뢰 타임스탬프 및 연관된 서명을 저장하는 상기 기록은 상기 일련의 기록들의 새로운 타임스탬프 기록이고,
    상기 새로운 타임스탬프 기록은 상기 타임스탬프 요청이 송신될 때 상기 일련의 기록들에 저장된 가장 최근의 기록 직후에 저장되고 상기 가장 최근의 기록의 해시를 포함하는 것인, 컴퓨터 구현 방법.
  11. 제 10 항에 있어서,
    상기 일련의 기록들에서 상기 새로운 타임스탬프 기록과 상기 새로운 타임스탬프 기록 직전의 선행 타임스탬프 기록 사이의 기록들은 유닛으로 그룹화되고,
    상기 새로운 타임스탬프 기록은 상기 유닛에 마지막 기록으로서 포함되는 것인, 컴퓨터 구현 방법.
  12. 제 11 항에 있어서,
    상기 타임스탬프 요청은,
    상기 신뢰 시간 서버에 송신된 타임스탬프 요청들 중의 상기 타임스탬프 요청의 식별자,
    상기 가장 최근의 기록의 식별자 또는 해시, 또는
    상기 유닛 내 상기 기록들의 해시들의 해시 다이제스트
    중 적어도 하나를 포함하는 것인, 컴퓨터 구현 방법.
  13. 제 11 항에 있어서,
    상기 타임스탬프 기록을 식별하는 단계는,
    상기 지정된 기록을 포함하는 유닛 내 마지막 기록을 상기 타임스탬프 기록인 것으로 식별하는 단계, 및
    상기 지정된 기록을 포함하는 상기 유닛 직전의 선행 유닛 내 마지막 기록을 상기 타임스탬프 기록인 것으로 식별하는 단계
    중 하나를 포함하는 것인, 컴퓨터 구현 방법.
  14. 원장 시스템에서 신뢰 포인트들을 관리하기 위한 시스템에 있어서,
    하나 이상의 프로세서: 및
    상기 하나 이상의 프로세서에 연결되고, 제 1 항 또는 제 2 항의 방법을 수행하기 위해 상기 하나 이상의 프로세서에 의해 실행 가능한 명령어들이 저장된 하나 이상의 컴퓨터 판독 가능 메모리
    를 포함하는, 신뢰 포인트들을 관리하기 위한 시스템.
  15. 원장 시스템에서 신뢰 포인트들을 관리하기 위한 장치에 있어서,
    제 1 항 또는 제 2 항의 방법을 수행하기 위한 복수의 모듈들을 포함하는, 신뢰 포인트들을 관리하기 위한 장치.
KR1020207031204A 2019-11-13 2019-11-13 원장 시스템에서의 신뢰 포인트 관리 KR102326460B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/118143 WO2020035091A2 (en) 2019-11-13 2019-11-13 Managing trust points in ledger systems

Publications (2)

Publication Number Publication Date
KR20210058745A KR20210058745A (ko) 2021-05-24
KR102326460B1 true KR102326460B1 (ko) 2021-11-12

Family

ID=69525958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207031204A KR102326460B1 (ko) 2019-11-13 2019-11-13 원장 시스템에서의 신뢰 포인트 관리

Country Status (9)

Country Link
US (3) US11010372B2 (ko)
EP (1) EP3791559B1 (ko)
JP (1) JP6965463B2 (ko)
KR (1) KR102326460B1 (ko)
CN (1) CN111406398B (ko)
AU (1) AU2019320957C1 (ko)
CA (1) CA3098646C (ko)
SG (1) SG11202010205SA (ko)
WO (1) WO2020035091A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202010205SA (en) 2019-11-13 2020-11-27 Alipay Hangzhou Inf Tech Co Ltd Managing trust points in ledger systems
CN111630549B (zh) 2020-04-22 2022-05-27 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
WO2020143856A2 (en) 2020-04-22 2020-07-16 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
SG11202103074PA (en) 2020-04-22 2021-04-29 Alipay Hangzhou Inf Tech Co Ltd Managing transaction requests in ledger systems
CN113468270A (zh) * 2021-02-07 2021-10-01 支付宝(杭州)信息技术有限公司 一种数据存储方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140298034A1 (en) * 2011-10-14 2014-10-02 Hitachi, Ltd. Data authenticity assurance method, management computer, and storage medium
US20150188715A1 (en) * 2013-12-30 2015-07-02 Palantir Technologies, Inc. Verifiable redactable audit log
CN106375317A (zh) * 2016-08-31 2017-02-01 北京明朝万达科技股份有限公司 一种基于区块链的大数据安全认证方法和系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104348870A (zh) * 2013-08-02 2015-02-11 航天信息股份有限公司 基于可信时间戳的云存储系统的数据管理方法和系统
US10586210B2 (en) 2016-11-30 2020-03-10 International Business Machines Corporation Blockchain checkpoints and certified checkpoints
KR101989450B1 (ko) * 2017-06-23 2019-09-30 홍석현 블록체인 기반의 공개 분산 데이터베이스에서 데이터에 대한 보안을 유지하는 방법 및 이를 이용한 블록체인 관리 서버
US10574453B2 (en) * 2018-01-10 2020-02-25 Ranjit Notani System and computer program product for certified confidential data collaboration using blockchains
US10797883B2 (en) 2018-02-28 2020-10-06 Kyocera Document Solutions Inc. Deploying multiple nodes for creation of blockchains for trackable actions
US20190303932A1 (en) * 2018-03-28 2019-10-03 NEC Laboratories Europe GmbH Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts
CN108711056A (zh) * 2018-05-16 2018-10-26 四川大学 一种中心化的可追溯的区块链系统及方法
US10764070B2 (en) * 2018-08-30 2020-09-01 International Business Machines Corporation High precision timestamps in blockchain
CN109257342B (zh) 2018-09-04 2020-05-26 阿里巴巴集团控股有限公司 区块链跨链的认证方法、系统、服务器及可读存储介质
US10608829B1 (en) * 2018-10-08 2020-03-31 International Business Machines Corporation Blockchain timestamp agreement
US11036395B2 (en) 2018-10-18 2021-06-15 Nec Corporation Secure and transparent pruning for blockchains
CN109327528B (zh) * 2018-10-31 2020-10-20 创新先进技术有限公司 一种基于区块链的节点管理方法和装置
US11777748B2 (en) * 2018-11-28 2023-10-03 International Business Machines Corporation Trusted timestamping
US10824345B2 (en) * 2018-11-29 2020-11-03 Intuit Inc. Systems and methods for storing object state on hash chains
CN109981673B (zh) * 2019-04-04 2021-10-08 上海人行道网络信息技术有限公司 基于区块链的数据存证方法、装置、设备及存储介质
US11070379B2 (en) * 2019-04-18 2021-07-20 Advanced New Technologies Co., Ltd. Signature verification for a blockchain ledger
SG11202002029VA (en) * 2019-09-02 2020-04-29 Alibaba Group Holding Ltd Managing blockchain-based centralized ledger systems
SG11202010205SA (en) 2019-11-13 2020-11-27 Alipay Hangzhou Inf Tech Co Ltd Managing trust points in ledger systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140298034A1 (en) * 2011-10-14 2014-10-02 Hitachi, Ltd. Data authenticity assurance method, management computer, and storage medium
US20150188715A1 (en) * 2013-12-30 2015-07-02 Palantir Technologies, Inc. Verifiable redactable audit log
CN106375317A (zh) * 2016-08-31 2017-02-01 北京明朝万达科技股份有限公司 一种基于区块链的大数据安全认证方法和系统

Also Published As

Publication number Publication date
US11010372B2 (en) 2021-05-18
CA3098646A1 (en) 2020-02-20
CN111406398B (zh) 2022-08-26
JP6965463B2 (ja) 2021-11-10
WO2020035091A3 (en) 2020-04-30
JP2021520164A (ja) 2021-08-12
US20210271669A1 (en) 2021-09-02
AU2019320957C1 (en) 2021-06-17
US11314731B2 (en) 2022-04-26
US20210042296A1 (en) 2021-02-11
SG11202010205SA (en) 2020-11-27
KR20210058745A (ko) 2021-05-24
US20210271668A1 (en) 2021-09-02
CA3098646C (en) 2021-06-01
WO2020035091A2 (en) 2020-02-20
AU2019320957B2 (en) 2021-01-28
EP3791559A4 (en) 2021-06-30
EP3791559A2 (en) 2021-03-17
EP3791559B1 (en) 2023-08-09
CN111406398A (zh) 2020-07-10
US11269865B2 (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US10880105B1 (en) Managing blockchain-based centralized ledger systems
US10924288B2 (en) Managing blockchain-based centralized ledger systems
US11271760B2 (en) Managing blockchain-based centralized ledger systems
KR102326460B1 (ko) 원장 시스템에서의 신뢰 포인트 관리
EP3679534B1 (en) Managing blockchain-based centralized ledger systems
EP3808030B1 (en) Managing blockchain-based centralized ledger systems

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant