KR102580509B1 - 복수의 스토리지 노드를 통해 대규모 블록체인의 안전한 저장을 가능하게 하는 컴퓨터 구현 시스템 및 방법 - Google Patents

복수의 스토리지 노드를 통해 대규모 블록체인의 안전한 저장을 가능하게 하는 컴퓨터 구현 시스템 및 방법 Download PDF

Info

Publication number
KR102580509B1
KR102580509B1 KR1020207002988A KR20207002988A KR102580509B1 KR 102580509 B1 KR102580509 B1 KR 102580509B1 KR 1020207002988 A KR1020207002988 A KR 1020207002988A KR 20207002988 A KR20207002988 A KR 20207002988A KR 102580509 B1 KR102580509 B1 KR 102580509B1
Authority
KR
South Korea
Prior art keywords
blockchain
transactions
node
storage
transaction
Prior art date
Application number
KR1020207002988A
Other languages
English (en)
Other versions
KR20200034728A (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 KR20200034728A publication Critical patent/KR20200034728A/ko
Application granted granted Critical
Publication of KR102580509B1 publication Critical patent/KR102580509B1/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/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
    • 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/3271Cryptographic 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 challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

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

Abstract

프로토콜이 기술되며, 이 프로토콜은: (i) 스토리지 노드가 공개 블록체인을 유지하는 것에 대한 보상을 받을 수 있게 하며, (ii) PoBS (Proof-of-Blockchain Storage) 체계의 도움으로 블록체인의 무결성을 확인한다. 이 프로토콜은 원격 서버에 저장된 데이터 파일이 챌린지-응답 방법을 사용하여 손상되지 않았는지를 암호화 방식으로 체크하는 방식을 제공한다. 이 프로토콜은 중간자 공격으로부터 보호된다. 악의적인 피어는 데이터를 저장하고 있는 제3자에게 챌린지를 전달하고 응답을 돌려줄 수가 없다. 이 체계는 또한 공개적으로 확인 가능하다.

Description

복수의 스토리지 노드를 통해 대규모 블록체인의 안전한 저장을 가능하게 하는 컴퓨터 구현 시스템 및 방법
본 명세서는 일반적으로 블록체인 네트워크의 노드에서의 구현에 적합한 컴퓨터 구현 방법 및 시스템에 관한 것이다. 대량의 트랜잭션과 대규모의 트랜잭션 블록을 처리하기 위한 수정된 블록체인 노드 구조, 네트워크 아키텍처, 및 프로토콜이 개시된다. 본 발명은 비트 코인 블록체인과 함께 사용하기에 특히 적합하지만 이에 제한되지는 않는다.
본 문서에서는 모든 형태의 전자식의 컴퓨터 기반으로 분산된 원장(electronic, computer-based, distributed ledgers)을 포함하도록 '블록체인'이라는 용어를 사용한다. 이들은 블록체인 및 트랜잭션-체인 기술, 허가 및 비허가 원장, 공유된 원장, 및 그 변형을 포함하지만 이에 제한되지 않는다. 블록체인 기술에서 가장 널리 알려진 애플리케이션은 비트 코인 원장(Bitcoin ledger)이지만, 다른 블록체인 구현예가 제안 및 개발되었다. 비트 코인은 본원에서 편의 및 예시의 목적으로 언급될 수 있지만, 본 발명은 비트 코인 블록체인과 함께 사용되는 것으로 제한되지 않으며 대안적인 블록체인 구현예 및 프로토콜은 본 발명의 범주 내에 속한다는 것에 주목해야 한다.
블록체인은 합의 기반의 전자식 원장으로서, 블록으로 구성된 컴퓨터 기반의 탈중앙화 분산형 시스템으로 구현되며, 이 블록은 다시 트랜잭션 및 다른 정보로 구성된다. 비트 코인의 경우, 각각의 트랜잭션은 블록체인 시스템의 참여자들 사이에서 디지털 자산의 제어권(control)의 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여, 블록들은 처음부터 블록체인에 기입된 모든 트랜잭션에 대한 영구적이고 변경 불가능한 레코드를 생성하기 위해 함께 체인화되어 있다. 트랜잭션은 자신의 입력 및 출력에 임베딩되는 스크립트(scripts)라고 알려진 작은 프로그램을 포함하며, 이는 트랜잭션의 출력이 어떻게 그리고 누구에 의해 액세스될 수 있는지를 특정한다. 비트 코인 플랫폼에서, 이러한 스크립트는 스택 기반 스크립팅 언어(stack-based scripting language)를 사용하여 기입된다.
트랜잭션이 블록체인에 기입되기 위해서는 "유효성"이 검증되어야 한다. 일부 네트워크 노드는 채굴기로서 역할을 하며, 각 트랜잭션이 유효하다는 것을 보장하는 작업을 수행하며, 유효하지 않은 트랜잭션은 네트워크에서 거부된다. 예를 들어, 노드에 설치된 소프트웨어 클라이언트는 사용되지 않은 트랜잭션 출력(UTXO)을 참조하는 트랜잭션에 대해 이 유효성 검사 작업을 수행한다. 잠금 및 잠금 해제 스크립트를 실행하여 유효성 검사를 수행할 수 있다. 잠금 및 잠금 해제 스크립트의 실행이 TRUE로 평가되고 소정의 다른 조건이 충족되면, 트랜잭션이 유효하고 트랜잭션이 블록체인에 기입될 수 있다. 따라서, 트랜잭션이 블록체인에 기입되기 위해서는, i) 트랜잭션을 수신하는 노드에 의해 유효성이 검증되어야 하며 - 트랜잭션이 검증되면, 그 노드는 그 트랜잭션을 네트워크 내의 다른 노드에 중계함 -; 그리고 ii) 채굴기에 의해 구축된 새로운 블록에 추가되어야 하며; 그리고 iii) 채굴, 즉 과거 트랜잭션의 공개 원장에 추가되어야 한다. 트랜잭션을 실질적으로 되돌릴 수 없도록 충분한 수의 블록이 블록체인에 추가되면 이 트랜잭션은 확인된 것으로 간주된다.
블록체인 기술이 암호 화폐 구현의 사용을 위해 가장 널리 알려져 있지만, 디지털 기업가는 비트 코인(Bitcoin)이 기반하고 있는 암호화 보안 시스템과 새로운 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터의 사용을 모색하기 시작했다. 암호 화폐로 표시된 지불에만 제한되지 않는 자동화된 태스크 및 프로세스에 블록체인이 사용될 수 있다면 매우 유리할 것이다. 이러한 솔루션은 블록체인의 이점(예를 들어, 이벤트에 대한 영구적인 변조 방지 레코드, 분산 처리 등)을 활용할 수 있을뿐만 아니라 그 적용 분야가 더욱 다양하다.
연구 분야 중 하나는 "스마트 계약서"를 구현하기 위해 블록체인을 사용하는 것이다. 이들 계약서는 머신 판독 가능한 계약서 또는 합의서의 조건의 실행을 자동화하도록 설계된 컴퓨터 프로그램이다. 자연 언어로 작성된 기존 계약서와는 달리, 스마트 계약서는 결과를 생성하기 위해 입력을 처리할 수 있는 규칙을 포함하는 머신 실행 가능한 프로그램으로서, 이는 이후 그 결과에 따라 액션이 수행될 수 있게 한다.
다른 블록체인 관련 관심 분야는 블록체인을 통해 실세계 엔티티를 나타내고 전송하기 위해 '토큰'(또는 '컬러드 코인(coloured coins')을 사용하는 것이다. 잠재적 민감 또는 비밀 아이템은 식별 가능한 의미나 값이 없는 토큰으로 표시될 수 있다. 따라서, 토큰은 실세계 아이템이 블록체인에서 참조될 수 있게 하는 식별자로서 역할을 한다.
블록체인 기반 암호 화폐의 건강(health)을 측정하는 핵심 요소 중 하나는 실제로 블록체인을 저장하는 노드의 수이다. 블록체인은 초당 트랜잭션의 수에 따라 증가한다. 그러나 암호 화폐가 널리 보급됨에 따라, 초당 지불의 횟수가 증가하고 블록체인 증가률 또한 증가한다. 그에 따라 저장 비용은 엄청나게 높아지게 된다.
따라서 한 가지 기술적 문제는 초대규모 블록체인을 저장하는 데 적응되도록 블록체인 네트워크를 어떻게 재구성하느냐에 있다. 추가적인 기술적 문제는 블록체인 네트워크 상의 모든 노드가 그러한 초대규모 블록체인을 저장하지 않고도 이를 어떻게 달성하느냐에 있다. 또 다른 기술적 문제는 특수한 스토리지 노드가 그러한 초대규모 블록체인의 적어도 일부를 저장하고 있음을 입증할 수 있도록 블록체인 네트워크를 어떻게 재구성하느냐에 있다. 또한 또 다른 기술적 문제는 특수한 스토리지 노드가 그러한 초대규모 블록체인의 적어도 일부를 저장하는 것을 장려하도록 블록체인 네트워크를 어떻게 재구성하느냐에 있다.
본 발명의 목적은 본원에 기술된 바와 같이 기술적 해결책을 제공함으로써 이러한 기술적 문제를 해결하는 것이다. 특히, 본 명세서는 프로토콜을 기술하며, 이는 (i) 스토리지 노드가 공개 블록체인을 유지하는 것에 대한 보상을 받을 수 있게 하며, (ii) PoBS (Proof-of-Blockchain Storage) 체계의 도움으로 블록체인의 무결성을 확인한다. 이 프로토콜은 원격 서버에 저장된 데이터 파일이 챌린지-응답 방법을 사용하여 손상되지 않았는지를 암호화 방식으로 체크하는 방식을 제공한다. 이 프로토콜은 중간자 공격으로부터 보호된다. 악의적인 피어는 데이터를 저장하고 있는 제3자에게 챌린지를 전달하고 응답을 돌려줄 수가 없다. 이 체계는 또한 공개적으로 확인 가능하다.
본 발명의 실시예는 다양한 형태로 제공될 수 있다. 예를 들어, 컴퓨터 판독 가능 저장 매체가 제공될 수 있으며, 이는 실행될 때 본원에 기술된 바와 같은 방법을 수행하도록 하나 이상의 프로세서를 구성하는 컴퓨터 실행 가능 명령어를 포함한다. 전자 디바이스가 또한 제공될 수 있으며, 이 디바이스는: 인터페이스 디바이스; 상기 인터페이스 디바이스에 연결된 하나 이상의 프로세서(들); 및 상기 하나 이상의 프로세서(들)에 연결되고, 실행시에, 본원에 기술된 바와 같은 방법을 수행하도록 하나 이상의 프로세서(들)를 구성하는 컴퓨터 실행 가능 명령어를 저장한 메모리를 포함한다. 또한, 블록체인 네트워크의 노드가 제공될 수 있으며, 이 노드는 본원에 기술된 방법을 수행하도록 구성된다.
본 발명의 이들 및 다른 양태는 본원에 기술되는 실시예로부터 명백할 것이고 이들 실시예를 참조하여 자세히 설명될 것이다. 본 발명의 실시예는 이제 첨부된 도면을 참조하여 예로서만 기술될 것이다.
도 1은 PoBS (Proof-of-Blockchain Storage) 프로토콜의 단계 1을 도시한 도면이다.
도 2는 PoBS 프로토콜에서의 단계 3을 도시한 도면이다.
도 3은 종 형상 곡선(bell-shaped curve) 형태의 분포 함수(f(T))를 도시한다.
도 4는 PoBS 프로토콜에서 사용되는 트랜잭션의 예를 도시한 도면이다.
도 5는 PoBS 프로토콜에서의 랜덤 오라클(random oracle)의 사용을 도시한 도면이다.
발명의 개요 섹션에 기술된 바와 같이, 블록체인은 초당 트랜잭션의 수에 따라 증가한다. 그러나 암호 화폐가 널리 보급됨에 따라, 초당 지불의 횟수가 증가하고 블록체인 증가률 또한 증가한다. 그에 따라 저장 비용은 엄청나게 높아지게 된다.
본 개시는 (i) 스토리지 노드가 공개 블록체인을 유지하는 것에 대한 보상을 받을 수 있게 하며, (ii) PoBS (Proof-of-Blockchain Storage) 체계의 도움으로 블록체인의 무결성을 확인하는 프로토콜을 기술한다. 이 프로토콜은 원격 서버에 저장된 데이터 파일이 챌린지-응답 방법(challenge-response method)을 사용하여 손상되지 않았는지를 암호화 방식으로 체크하는 방식을 제공한다. 이 프로토콜은 중간자 공격으로부터 보호된다. 악의적인 피어는 데이터를 저장하고 있는 제3자에게 챌린지를 전달하고 응답을 돌려줄 수가 없다. 이 체계는 또한 공개적으로 확인 가능하다.
채굴기에 의해 (예를 들어) 실행되는 시스템이 제공되며, 여기서, (예를 들어) 매분마다 각 채굴기는 블록체인에서 트랜잭션을 랜덤하게 샘플링한다(채굴기들은 반드시 동기화되는 것은 아니다).
블록체인 네트워크의 노드에 대한 컴퓨터 구현 방법이 제공되며, 이 컴퓨터 구현 방법은:
블록체인으로부터 저장 증명이 챌린지될(to be challenged) 하나 이상의 트랜잭션을 선택하는 단계 - 선택된 하나 이상의 트랜잭션은 트랜잭션 심도(transaction depth)를 가짐 -;
저장 증명이 챌린지될 상기 하나 이상의 선택된 블록체인 트랜잭션을 나타내는 블록체인 저장 증명 트랜잭션(proof of blockchain storage transaction) 및 상기 하나 이상의 선택된 블록체인 트랜잭션을 저장하는 스토리지 노드에 의해 잠금 해제될 수 있는 블록체인 저장 증명 보상(proof of blockchain storage reward)을 생성하는 단계; 및
상기 블록체인 저장 증명 트랜잭션을 상기 블록체인 네트워크 상의 하나 이상의 스토리지 노드에 전송하는 단계를 포함한다.
이 방법은 상기 블록체인 네트워크 상의 채굴기가 블록체인 또는 그 일부를 저장하고 있음을 증명하기 위해 상기 블록체인 네트워크 상의 스토리지 노드에 챌린지할 수 있게 하는 수단을 제공한다.
상기 하나 이상의 선택된 블록체인 트랜잭션은 블록체인 내의 하나 이상의 트랜잭션의 심도에 대응하는 트랜잭션 심도(d)를 가지며, 상기 블록체인 저장 증명 보상은 트랜잭션 심도(d)에 따라 설정될 수 있어서 트랜잭션 심도(d)가 클수록 상기 보상은 커지게 된다.
이 특징은 스토리지 노드가 더 깊은 트랜잭션을 저장하면 더 큰 보상을 받기 때문에 더 많은 블록체인을 저장하도록 권장한다.
상기 하나 이상의 블록체인 트랜잭션은 블록체인에서 랜덤하게 선택될 수 있다. 블록체인 트랜잭션의 리스트는 선택될 수 있다. 랜덤 선택(random selection)을 도입하면 시스템의 보안성을 높일 수 있다. 보안성은 하나 이상의 트랜잭션이 블록체인 상에서 복수의 확인을 수신한 하나 이상의 블록으로부터 선택되도록 함으로써 더욱 개선된다.
상기 블록체인 저장 증명 트랜잭션은 블록체인에 저장될 새롭게 채굴된 블록과 연관된 데이터를 포함할 수 있다. 새롭게 채굴된 블록과 연관된 데이터는, 예를 들어, 새롭게 채굴된 블록의 블록 헤더 데이터일 수 있다. 이와 같이, 채굴기는 블록체인 상의 스토리지 노드에 저장을 위해 새롭게 채굴된 블록이 준비될 때 블록체인 상의 스토리지 노드에 챌린지할 수 있으며, 이 챌린지는 저장될 새롭게 채굴된 블록과 연관되어 있다.
새롭게 채굴된 블록과 연관된 데이터는 블록체인에서 선택된 하나 이상의 블록체인 트랜잭션과 연관된 데이터와 결합될 수 있다. 예를 들어, 새롭게 채굴된 블록과 연관된 데이터는 XOR 동작 또는 연결(concatenation)에 의해 블록체인으로부터 선택된 하나 이상의 블록체인 트랜잭션과 연관된 데이터와 결합될 수 있다. 또한, 블록체인 저장 증명 트랜잭션은:
하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터의 암호화 함수;
하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터와 결합된 새롭게 채굴된 블록과 연관된 데이터의 암호화 함수 중 하나를 포함할 수 있다.
이러한 특징은 상기 보상을 잠금 해제하기 위해 상기 하나 이상의 선택된 블록체인 트랜잭션을 소유한 스토리지 노드에 의해 계산될 수 있는 암호화 함수를 설정한다.
블록체인 저장 증명 트랜잭션은 또한 블록체인 네트워크 상의 하나 이상의 스토리지 노드와 연관된 하나 이상의 블록체인 네트워크 어드레스를 포함한다. 이러한 어드레스는 인증된 블록체인 네트워크 어드레스일 수 있으며, 인증은 (나중에 보다 상세히 기술되는) 시스템의 보안성을 높이기 위해 개인 키 공유 체계(private key share scheme)를 통해 달성된다.
이 방법은 하나 이상의 선택된 블록체인 트랜잭션에 대한 식별 번호를 포함하는 챌린지 프리픽스(challenge prefix)를 생성하는 단계를 더 포함할 수 있고, 상기 챌린지 프리픽스 및 상기 블록체인 저장 증명 트랜잭션은 블록체인 네트워크 상의 하나 이상의 스토리지 노드에 전송될 수 있다. 챌린지 프리픽스는 하나 이상의 스토리지 노드에 의해 블록체인의 사본으로 하나 이상의 선택된 블록체인 트랜잭션을 식별 및 추출하는 데 사용될 수 있다. 시스템의 보안성을 추가로 높이기 위해, 랜덤 오라클(random oracle)이 사용되어, 상기 챌린지 프리픽스와, 상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터의 암호화 함수 및 상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터와 결합된 새롭게 채굴된 블록과 연관된 데이터의 암호화 함수 중 하나를 생성할 수 있다. 챌린지 프리픽스는 또한 무결성(integrity) 및 인증(authentication)을 위한 디지털 시그니처(digital signature)와 함께 제공될 수 있거나 챌린지 프리픽스 메시지는 비 트랜잭션 필드(non-transaction field)에서 스토리지 노드에 전송될 수 있다.
블록체인 저장 증명 트랜잭션을 수신하면, 하나 이상의 스토리지 노드는 자신의 노드에 저장된 하나 이상의 선택된 블록체인 트랜잭션에 액세스할 수 있고 하나 이상의 선택된 블록체인 트랜잭션을 사용하여 보상을 잠금 해제할 수 있다. 예를 들어, 앞에서 설명한 예에 따라, 보상은:
하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터의 암호화 함수;
하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터와 결합된 새롭게 채굴된 블록과 연관된 데이터의 암호화 함수 중 하나를 계산함으로써 잠금 해제될 수 있다.
컴퓨터 판독 가능 저장 매체가 제공될 수 있으며, 이는 실행될 때 본원에 기술된 바와 같은 방법을 수행하도록 하나 이상의 프로세서를 구성하는 컴퓨터 실행 가능 명령어를 포함한다.
전자 디바이스가 또한 제공될 수 있으며, 이 전자 디바이스는:
인터페이스 디바이스;
상기 인터페이스 디바이스에 연결된 하나 이상의 프로세서(들); 및
상기 하나 이상의 프로세서(들)에 연결되고, 실행될 때 본원에 기술된 바와 같은 방법을 수행하도록 하나 이상의 프로세서(들)를 구성하는 컴퓨터 실행 가능 명령어를 저장한 메모리를 포함한다.
또한, 블록체인 네트워크의 노드가 제공될 수 있으며, 이 노드는 본원에 기술된 방법을 수행하도록 구성된다.
블록체인 저장 증명 프로토콜의 예가 이제 설명될 것이다. 이 섹션에서는, 를 기입하여, 세트(X)로부터 랜덤하게 샘플링되는 요소(x)를 나타낸다. 때로는 를 기입하여, 입력(x) 상에서 알고리즘(A)을 실행한 결정 결과(deterministic result)를 나타낸다. 문자열 연결(string concatenations)은 세로 막대로 표시된다. XOR 동작은 심볼로 표시된다. 블록체인 트랜잭션의 세트는 심볼 로 표시된다.
각 채굴기에 의해 실행되는 프로토콜:
1. 시간 에, 랜덤하게 선택된 트랜잭션의 세트가 블록체인으로부터 선택된다(도 1). 트랜잭션의 리스트는 로컬로 저장된다(GenList 기능).
2. 새로운 블록을 성공적으로 채굴하면, 성공적인 채굴기는 (다수의) 챌린지(들)(GenChal 기능)를 생성한다. 챌린지 수익(들)(challenge revenue(s))은 로 계산되며, 여기서 는 트랜잭션 심도이다.
3. 채굴기는 저장 증명과 연관된 챌린지(들)를 포함하는 코인베이스 트랜잭션을 포함하는 새롭게 채굴된 블록 데이터를 브로드캐스트한다(도 2).
이제 PoBS 구성에 사용된 기능을 정의한다.
전처리: 트랜잭션 심도(d) 상에서 작동하는 PoBS 보상 함수()를 설정한다. 블록체인에서 트랜잭션()의 심도가 깊을수록 PoBS 보상은 더 높다.
GetReward 기능:
는 보상 함수라고 하자. 상기 심도(d)의 수신시
GetReward():
1. 를 리턴한다
GenList 기능:
n은 요청된 트랜잭션의 총 개수라고 하자. 블록체인()에 질의시, 리스트(L)가 생성된다.
GenList(n):
1. i=0
2. in 동안
3.
4. 이면,
5. L을 리턴
셋업: (i) 새롭게 채굴된 블록 헤더(Head) 및 (ii) 확인된 트랜잭션의 리스트(L)를 보유하고 있는 채굴기()를 고려할 경우, 은 무엇보다도, 이 소유 증명을 원하는 인 특정 트랜잭션을 나타내는 챌린지()를 생성한다. 이 트랜잭션은 다수의 확인을 수신한 블록에 레코딩된다.
GenChal 기능:
이전에 정의된 바와 같이, 는 블록 헤더라 하고, 은 확인된 트랜잭션의 리스트라 하고, 는 암호화 해시 함수라고 하자. 는 트랜잭션의 심도(이후 블록 또는 확인의 개수)라 하자. GenChal(, ) 기능은 다음과 같이 정의된다:
GenChal(, ):
1. 를 랜덤하게 선택
2. 또는 또는…
3.
4. 를 리턴
위에서는 분포 함수 의 형상을 나타내지 않았다는 점을 주목하라. 그 함수는 균일하거나 종 형상의 곡선을 따라갈 수 있다(도 3 참조).
코인 베이스 TX 준비: 및 스토리지 노드 수신자 비트 코인 어드레스를 사용하여 코인 베이스 트랜잭션을 완료한다. 설명을 위해 간단한 예가 도 4에 제공된다.
챌린지: 은 트랜잭션 식별 번호(들)를 포함하는 챌린지 프리픽스 를 생성한다. 메시지는 (i) 무결성 및 인증을 위한 디지털 시그니처와 함께 제공될 수 있거나 (ii) 예를 들어, OP_RETURN 후에, 비 트랜잭션 필드에 포함될 수 있다. 를 스토리지 노드()에 전송한다. 수신시, 서버는 펀드(fund)를 잠금 해제할 수 있게 하는 )를 계산한다.
위에서 설명한 기술은 또한 프로토콜에 랜덤 오라클을 추가하는 것으로부터 이점을 얻을 수 있다. 랜덤 오라클은 (정직한 당사자를 나타내는) 랜덤하게 선택된 응답으로 모든 쿼리에 응답하는 오라클이다. 이 시나리오에서, 채굴기()는 블록 헤더() 상의 랜덤 오라클()에 질의한다. 의 수신시, 는 진정한 랜덤 응답 ,으로 모든 쿼리에 응답한다(도 5 참조).
인증된 비트 코인 어드레스
또한 보안을 위해 채굴기와 스토리지 노드 간의 공모를 방지하기 위해 인증된 비트 코인 어드레스를 사용할 것을 제안한다. 이와 관련하여, 탈중앙화 피어-투-피어 시스템에서의 과제 중 하나는 노드가 네트워크의 다른 노드와 신뢰할 수 있는 방식으로 통신할 수 있음을 보장하는 것이다. 일부 구현예의 네트워크 아키텍처가 발전함에 따라, 일부 노드는 보다 전문화된 태스크를 수행할 수 있으며, 다른 노드는 (이전에 설명된 바와 같이) 특정 데이터의 소스로서 또는 특정 기능의 수행자로서 해당 특수 노드에 의존할 수 있다. 노드가 정보를 위해 또는 합법적인 소스로서 다른 노드에 의존하려는 경우, 해당 노드와 통신하기 위해 신뢰할 수 있는 관계를 설정할 수 있어야 한다. 노드들이 상이한 역할을 가질 수 있는 경우, 노드의 역할을 결정하고 확인하는 메커니즘을 갖는 것이 유리할 것이다. 더욱이, 노드가 불법이거나 악의적인 것으로 판명되면, 다른 노드가 그 노드를 기억하여 그러한 노드로부터의 향후 통신을 무시할 수 있어야 한다. 피어-투-피어 시스템에서, 과제는 중앙 권한을 부여함으로써 시스템의 피어-투-피어 속성을 손상시키지 않고 이러한 문제를 해결하는 것이다.
따라서 자율적인 특수 노드 그룹으로부터 요청 노드로 크리덴셜의 안전한 배포를 관리하는 방법 및 디바이스가 제공될 수 있다. 크리덴셜의 안전한 배포는 노드들이 재구성하거나 소유하지 않는 비밀 공유분(secret share) 및 그룹 전용 키(group private key)를 사용할 수 있다. 크리덴셜은 요청 노드에 대한 식별자 및 그 요청 노드가 복수의 특수 노드의 각각에 의해 제공된 비밀 포인트의 부분들로부터 어셈블하는 비밀 포인트를 포함하며, 여기서 비밀 포인트는 상기 그룹 전용 키 및 상기 요청 노드의 식별자의 맵-투-포인트 해시(map-to-point hash)에 기초하고 있다. 일부 구현예에서 노드는 블록체인 노드일 수 있다.
두 개의 노드는 그룹 또는 중앙 집중식 인증서 관리자(centralized certificate manager) 또는 인증자(authenticator)를 포함하지 않고도, 자율적인 특수 노드의 그룹에 의해 자격 증명되는 것으로 서로를 인증할 수 있다. 상기 방법은, 동일한 키를 도출하기 위해 각각의 식별자 및 비밀 포인트를 포함하는 이중 선형 페어링 동작(bilinear pairing operations)을 사용하는 제 1 노드 및 제 2 노드를 포함할 수 있다. 비밀 포인트와 식별자가 그룹 전용 키를 사용하여 상기 그룹으로 획득되는 경우, 이중 선형 페어링 동작은 두 노드의 각각에서 동일한 키를 생성하여, 그들 제각기의 크리덴셜을 인증하고 두 노드 사이에서 신뢰할 수 있는 통신을 가능하게 한다.
노드는 특수 노드의 그룹으로부터 크리덴셜을 획득할 수 있으며, 각 특수 노드는 그룹 전용 키의 전용 키 공유분(private key share)을 갖는다. 이 방법은 노드로부터 복수의 특수 노드에 크리덴셜에 대한 요청을 전송하는 단계 - 상기 노드는 식별자를 가짐 - ; 상기 복수의 특수 노드 내의 각각의 노드로부터, 해당 노드에 의해 그 식별자 및 해당 노드의 전용 키 공유분으로부터 생성되는 비밀 포인트의 일부를 수신하는 단계; 및 상기 비밀 포인트의 수신된 부분들을 결합함으로써 상기 비밀 포인트를 생성하는 단계를 포함할 수 있고, 상기 비밀 포인트는 상기 그룹 전용 키와 상기 식별자의 맵-투-포인트 해시를 곱한 것이 되며, 상기 크리덴셜은 상기 식별자 및 비밀 포인트가 된다. 그룹 전용 키의 전체 사본을 획득하는 데 상기 특수 노드나 상기 노드가 필요하지 않을 수 있다.
일부 구현예에서, 상기 요청을 전송하는 단계는 복수의 특수 노드의 각각에 개별 요청을 전송하는 단계를 포함할 수 있다. 상기 식별자는 노드를 식별하는 식별자 문자열 및 특수 노드의 그룹의 역할을 식별하는 역할 문자열을 포함할 수 있다. 일부 경우에, 식별자는 크리덴셜에 대한 만료 시간을 더 포함하고, 일부 경우에 요청을 전송하는 단계는 식별자 문자열을 전송하는 단계를 포함하고, 수신하는 단계는 식별자를 수신하는 단계를 포함한다.
일부 구현예에서, 비밀 포인트를 생성하는 단계는 비밀 포인트의 수신된 부분들을 결합하는 단계를 포함한다. 결합은 일부 예시적인 구현예에서 합산을 포함할 수 있다.
일부 구현예에서, 비밀 포인트는 비밀 공유분을 사용하여 생성되고, 그룹 전용 키에 기초한다. 이들 경우 중 일부에서, 비밀 공유분은 그룹 전용 키를 재구성하지 않고 복수의 특수 노드의 전용 키 공유분 및 라그랑주 보간(Lagrange interpolation)을 사용한다.
컴퓨터로 구현되는 방법은 또한 제 1 노드가 제 2 노드와의 신뢰된 통신을 수립하기 위해 제공될 수 있고, 제 2 노드는 제 2 노드 식별자 및 제 2 비밀 포인트를 가지며, 제 2 비밀 포인트는 그룹 전용 키와 제 2 노드 식별자의 맵-투-포인트 해시를 곱한 것이 되며, 그룹 전용 키는 크리덴셜을 부여하도록 구성된 노드의 그룹과 연관된다. 이 방법은 노드의 그룹으로부터 제 1 비밀 포인트를 획득하는 단계 - 상기 제 1 비밀 포인트는 그룹 전용 키와 제 1 노드 식별자의 맵-투-포인트 해시를 곱한 것임 -; 상기 제 1 노드 식별자를 제 2 노드에 전송하는 단계; 상기 제 2 노드 식별자를 수신하는 단계; 상기 제 2 노드 식별자의 맵-투-포인트 해시 및 상기 제 1 비밀 포인트와의 이중 선형 페어링 동작을 사용하여 제 1 세션 키를 생성하는 단계; 및 상기 제 2 비밀 포인트 및 상기 제 1 노드 식별자의 맵-투-포인트 해시와의 이중 선형 페어링 동작을 사용하여 상기 제 1 세션 키가 상기 제 2 노드에 의해 생성된 제 2 세션 키와 매칭되는지를 확인하는 단계를 포함할 수 있다.
일부 구현예에서, 제 1 세션 키를 생성하기 위한 이중 선형 페어링 연산 동작은 다음과 같은 표현들 중 하나에 의해 특징지어질 수 있으며:
, 및
,
그리고 제 2 세션 키를 생성하기 위한 이중 선형 페어링 동작은 그 표현들 중 나머지에 의해 특징지어지며, 여기서 e()는 이중 선형 페어링 동작이며, H 1()는 맵-투-포인트 해시이며, id A id B 는 각각 제 1 노드 식별자 및 제 2 노드 식별자 중 하나이며, s A s B 는 각각 제 1 비밀 포인트 및 제 2 비밀 포인트 중 하나이다.
일부 구현들에서, 제 1 비밀 포인트를 획득하는 단계는 노드의 그룹 내의 복수의 노드들의 각각으로부터, 제각기의 제 1 비밀 포인트의 부분들을 획득하는 단계와 그룹 전용 키를 재구성하지 않고 제 1 비밀 포인트를 형성하기 위해 제각기의 제 1 비밀 포인트의 부분들을 결합하는 단계를 포함한다.
일부 구현예에서, 확인하는 단계는 제 1 세션 키로 암호화된 챌린지를 제 1 노드로부터 제 2 노드로 전송하는 단계, 상기 챌린지에 대한 응답을 수신하는 단계, 및 상기 응답에 기초하여, 제 2 노드가 제 2 세션 키를 사용하여 상기 챌린지를 유효하게 해독했다고 결정하는 단계를 포함한다.
일부 구현예에서, 전송하는 단계는 제 1 넌스(nonce)를 전송하는 단계를 더 포함하고, 수신하는 단계는 제 2 넌스 및 계산된 C 0값을 수신하는 단계를 더 포함하며, 여기서, C 0값은 제 2 세션 키, 제 1 넌스 및 제 2 넌스의 연결(concatenation)의 해시를 포함한다. 이들 경우 중 일부에서, 이 연결은 제 1 노드 식별자 및 제 2 노드 식별자를 더 포함한다. 이러한 경우 중 일부에서, 생성하는 단계는 제 1 세션 키, 제 1 넌스 및 제 2 넌스의 연결의 해시를 포함하는 계산된 C 1값을 생성하는 단계를 포함하며, 확인하는 단계는 계산된 C 0값이 계산된 C 1값과 매칭한다고 확인하는 단계를 포함한다.
일부 구현예에서, 제 2 비밀 포인트는 그룹 전용 키와 제 2 노드 식별자의 맵-투-포인트 해시를 곱한 것이 된다.
일부 구현예에서, 제 1 비밀 포인트 및 제 2 비밀 포인트는 각각 비밀 공유분을 사용하여 노드의 그룹에 의해 제 1 노드 및 제 2 노드에 제각기 제공된다.
예를 들어, 노드의 그룹 내의 각 노드는 전용 키(k)의 공유분(k i )을 포함할 수 있다. 비밀 공유는 비밀 개의 플레이어(player) 사이에 분할되어 있는 임계치 암호화 시스템(threshold cryptosystems)에서 사용되어, 적어도 개의 참여자는 를 재구성하기 위해 협력할 필요가 있다. 비밀 의 임의의 개의 조각의 지식은 비밀 k를 결정되지 않은 상태로 남겨둔다.
비밀 공유는 다항식 보간(polynomial interpolation)을 기반으로 하며, 비밀은 유한 필드()의 요소로 추정된다. 이 체계는 딜러(dealer)(딜러리스 버전(dealerless versions)도 존재함) 및 개의 참여자()의 세트를 포함한다. 프로토콜에서, 임의의 랜덤 비밀(random secret)은 로서 차수 다항식()에 저장되며, 노드()만이 그 공유분()을 계산할 수 있다. 만약 개의 노드 중 개의 노드가 협력하면, 라그랑주 다항식 보간을 사용하여 에 대응하는 (키()의) 공유분()으로 f(x) 상의 임의의 포인트를 재구성할 수 있다. 라그랑주 다항식 보간에 의해 제공되는 것은 차수의 함수()가 개의 포인트 로 재구성될 수 있다는 것이며,
이고,
여기서,
이다.
주목할 것은 이라는 것이다. 이와 관련하여, b i 는 보간 계수이다.
딜러리스 공유분 배포(dealerless shares distribution)를 포함하는 구현예에서:
1. 각 노드()에는 모두에게 알려져 있는 가 할당된다. 각각의 는 고유해야 한다.
2. 각각의 노드()는 차수 를 갖는 랜덤 다항식 를 생성한다.
3. 각각의 노드()는 다른 모든 노드에 다항식 상의 그들 제각기의 포인트를 비밀리에(수신자의 공개 키로 암호화하여) 전송한다.
4. 각각의 노드()는, 모두 인 그들의 모든 수신된 를 합산하여(여기서, n은 기본 필드 의 특성이며, 는 또한 , 로 표시할 수 있음), 다항식 상의 공유분이 되는 를 형성한다.
노드 그룹의 노드들은 요청 노드에 대한 비밀 포인트(s A )를 생성하도록 협력한다. 비밀 포인트(s A )는 사이클릭 그룹(cyclic group)(G 1 ) 내에 있으며, 그 의미는 핸드세이크(handshakes) 및 페어링(pairing)에 대한 아래의 설명으로부터 명확해질 것이다. 비밀 포인트는 다음과 같이 식별자와 관련되며:
여기서, id A 는 요청 노드(504)에 대한 식별자이다. 크리덴셜은 일부 구현예에서 (id A , s A )인 것으로 간주될 수 있다. H 1는 맵-투-포인트 해시 함수로서, 아래에서 더 상세히 설명될 것이다.
그룹 전용 키(k)를 재구성하지 않고 비밀 포인트를 생성하기 위해, 노드의 그룹은 s A 의 생성시 비밀 공유분 결합(Secret Share Joining)의 형태를 사용하여 협력한다. 요청 노드는 크리덴셜 요청을 노드 그룹 중의 적어도 t+1 개의 노드에 전송한다. 이러한 노드의 각각은 요청 노드에 s A 의 일부를 제공한다. 특히, 비밀 포인트(s A )의 각각의 공유분(s Ai )은 노드(i)에 의해 결정되어 요청 노드에 전송되며, 요청 노드는 그 후 그것을 비밀 포인트(s A )로 어셈블한다(즉, 결합한다). 일부 예에서, 공유분(s Ai )은 합산에 의해 결합되어 비밀 포인트(s A )를 획득한다.
크리덴셜의 그룹 기반 분산 생성을 위한 일 예의 프로세스가 이제 설명된다. 이 프로세스는 요청 노드에 의해 수행된다. 이 프로세스는 요청 노드가 인덱스(i)를 1로 설정하는 것으로부터 시작된다. 그런 다음, 요청 노드는 노드(i)로부터 크리덴셜을 요청한다. 노드(i)는 본원에 기술된 크리덴셜 부여 절차의 구현을 수행하도록 구성된 노드 그룹 내의 특수 노드이다. 노드(i)는 그룹 전용 키 공유분(k i )의 부분을 사용하여 비밀 포인트(s A )의 i 번째 부분을 결정한다. 그 부분은 s Ai 로서 언급될 수 있다.
요청 노드는 i 번째 노드로부터 부분(s Ai )을 수신, 즉 부분 크리덴셜(partial credential)을 수신한다. 수신 노드는 인덱스(i)가 t+1인지를 평가한다. 그러한 경우, 수신 노드는 t+1개의 부분 크리덴셜을 수신하지만, 그러하지 않은 경우, 비밀 포인트(s A )를 재구성하도록 추가적인 부분 크리덴셜을 여전히 필요로 한다. 만약 it+1과 여전히 동일하지 않으면, 1 씩 증분되고 프로세스는 노드 그룹 내의 다른 노드로부터 추가의 부분 크리덴셜을 요청하도록 리턴한다. 만약 it+1과 동일하게 되면, 동작(712)에서 요청 노드는 비밀 포인트(s A )를 어셈블한다.
노드 그룹에서의 노드의 협력적 노력을 통해 크리덴셜을 획득하는 경우, 중앙 권한에 의존하거나 유효성 검증/인증을 위해 그룹으로 돌아가지 않고 크리덴셜을 체크하거나 유효성 검증하는 메커니즘을 갖는 것이 유리할 것이다. 이러한 방식으로, 동일한 노드 그룹에서 유효한 크리덴셜을 자격 증명을 갖도록 의도된 두 노드는 노드 그룹이 발행된 크리덴셜을 협력적으로 확인 및 유효성 검증하는 것과 연관된 시간 지연 및 통신 오버 헤드의 부담없이 서로의 크리덴셜을 유효성 검증할 수 있다.
개요로서, 그룹 전용 키(k)는 유한 필드의 멤버, 즉 이다. 크리덴셜을 획득하는 요청 노드는 그 식별자(id A )의 형태의 크리덴셜과, 사이클릭 그룹() 내의 비밀 포인트()를 갖는다. 이 예시적인 실시예에서, 식별자(또는 "가명")(id A )는 이며, 여기서, 는 두 문자열의 연결을 나타내며, 역할은 노드 그룹 및/또는 그의 기능 또는 역할과 연관된 문자열 또는 다른 영숫자 식별자이다. 요청 노드는 자신의 식별자를 누구에게나 공개할 수 있지만 를 비밀로 유지한다.
다른 요청 노드는 로서의 식별자(id B ) 및 비밀 포인트(s B )를 획득한다.
주목할 것은 비밀 포인트(s A )는 의해 주어지며, 비밀 포인트(s B )는 에 의해 주어진다는 것이다.
앨리스이 서로 간의 신뢰되는 통신을 수립하고자 하는 경우, 즉, 그들 중 하나 또는 둘 모두가 상대방의 크리덴셜을 확인하고자 하는 경우, 두 노드는 그들의 비밀 포인트를 공개하지 않고 각자의 식별자/가명을 교환한다.
노드(앨리스)는 그 후, 다음의 컴퓨팅에 의해 세션 키(K A )를 생성하며:
여기서, ()는 이중 선형 맵, 즉 페어링 동작이며, 노드()는 다음의 컴퓨팅에 의해 세션 키(K B )를 계산한다:
동작 H 1()는 맵-투-포인트 함수로서, 아래에서 더 설명될 것이다. 페어링의 속성으로 인해 두 키는 동일한데, 즉 이 된다. 챌린지 값을 전송하고 이에 대한 응답을 입수함으로써, 두 노드는 프로토콜이 성공했음을 확인할 수 있ㄴ는데, 즉, 두 노드는 각각 동일한 역할을 나타내는 동일한 노드 그룹에 의해 발행된 크리덴셜을 보유하고 있음을 확인할 수 있다. 대안으로, 한 당사자가 다른 당사자에게 일부 컨텐츠를 전송할 수 있으며, 이 컨텐츠는 핸드세이크가 성공한 경우에만 성공적으로 해독될 것이다.
이 예에서의 페어링 동작은 이 경우 동일한 사이클릭 그룹(G 1)으로부터 나온 s A 및 s B 에 의존한다. 다른 경우에, 둘은 상이한 사이클릭 그룹(G1 및 G2)으로부터 유래될 수 있으며, 이들 그룹은 다음과 같이 다른 아벨 그룹(abelian group)의 값을 취하는 두 개의 아벨 그룹으로서 관련되어 있다:
여기서, G 1, G 2, 및 G T 동일한 차수(same order)의 사이클릭 그룹이다.
크리덴셜의 생성에는 공개적인 특정 파라미터가 존재한다. 이 파라미터는 프로세스에서 임의의 노드에 의해 생성되어 다른 노드와 공유될 수 있다. 는 필드 위에서 개의 포인트를 포함하는 타원 곡선이라는 가정으로부터 시작하며, 여기서, q는 2 및 3에 대해 서로소인 소수의 멱승(power of a prime relatively prime to 2 and 3)이며, 공개적인 파라미터는 다음을 포함할 수 있으며:
여기서, (제각기의 )는 이중 선형 맵 을 갖는 소수 차수(prime order)()의 그룹 (제각기의 )의 생성기이다. 는 서로소인 을 갖는 차수()의 의 사이클릭 서브 그룹이다. 그리고, 는, 차수()를 또한 갖는 를 생성한다. H 1H 2는 제각기 G 1G 2에 대한 맵-투-포인트 해시가 된다. 위에서 언급한 바와 같이, 일부 구현예 및 본원에 기술된 많은 예에서, G 1만이 사용될 수 있는데, 이는 모든 비밀 포인트(s A s B )에 대해 동일한 맵-투-포인트 해시 함수(H 1)가 사용된다는 것을 의미한다.
일부 타원 곡선 암호화 시스템에서, 해시 알고리즘은 유한 필드의 요소인 암호 또는 다른 문자열을 주어진 타원 곡선의 포인트에 매핑하는 데 사용된다. 이것들은 맵-투-포인트 해시가 된다. 보다 정확하게는, 맵-투-포인트 해시 함수()는 메시지()를 입력받아 포인트()를 리턴하는 변환이 된다. 보다 구체적으로, 는 포인트()를 리턴하며, 여기서, 에 의해 생성된 의 서브 그룹이다. 이 체계에는 기본 필드 로부터 곡선으로의 일대일 매핑 가 존재한다. 이는 (여기서, 는 고전적인 해시 함수임) 및 를 사용하여 해시하는 것을 가능하게 한다.
이제, 신뢰되는 통신 채널의 수립시 서로의 크리덴셜을 유효성 검증함으로써 두 노드(A 및 B) 간의 메시지 흐름이 기술된다. 이 예시적인 구현예에서, 노드(A)는 자신의 식별자(id A )를 노드(B)에 제공한다. 식별자(id A )는 공개적으로 사용 가능하며, 경우에 따라 다른 소스로부터 노드(B)에 의해 획득될 수 있다. 이로부터, 노드(B)는 노드(A)의 식별자, 노드(B)가 보유하는 비밀 포인트(s B ), 및 크리덴셜을 발행한 노드 그룹에 의해 규정된 맵-투-포인트 해시 함수(H 1)를 사용하여 세션 키(K B )를 생성할 수 있다. 세션 키(K B )는 노드 그룹에 의해 또한 규정되는 페어링 동작 e()을 사용하여 생성된다:
여기서, 이 예에서 노드(B)의 식별자(id B )는 이다.
노드(B)는 자신의 식별자(id B )를 노드(A)에 제공하며, 노드(A)는 그 후 유사하게 노드(B)의 식별자, 자신의 비밀 포인트(s A ), 및 동일한 페어링 동작 및 맵-투-해시 함수를 사용하여 세션 키(K A )를 생성할 수 있다:
비밀 포인트가 동일한 그룹 전용 키(k) 및 각각의 노드(A 및 B)의 식별자를 사용하여 노드 그룹에 의해 합법적 및 협력적으로 생성되면, 페어링 동작은 K A = K B 를 생성할 수 있을 것이다. 이는 어떠한 방법으로든 테스팅될 수 있다. 이 예시적인 구현예에서, 노드(A)는 세션 키(K A )로 암호화된 챌린지를 노드(B)에 전송한다. 노드(B)는 자신의 세션 키(K B )를 사용하여 챌린지의 해독을 시도하며, 그 챌린지에 대한 응답을 전송한다. 응답은 세션 키(K B )에 의해 암호화될 수 있다. 이를 바탕으로 두 노드는 모두 동일한 세션 키를 가질 수 있다. 이 세션 키는 두 노드 간의 통신을 암호화하는 데 사용될 수 있다. 다른 구현예에서, 세션 키는 다른 키의 설정으로 이어지는 통신을 암호화하는 데 사용될 수 있다. 또 다른 구현예에서, 두 노드 사이의 통신은 단순히 전술한 절차에 의존하여 서로의 크리덴셜 유효성 검증/인증하고, 두 노드 사이의 통신은 암호화되지 않거나 노드의 일반적인 공개-개인 키 쌍을 사용하여 암호화된다.
이제, 다른 예시적인 구현예가 설명된다. 이 예에서, 노드(A)는 랜덤 넌스(nonce A )를 생성함으로써 시작된다. 노드(A)는 자신의 식별자(id A ) 및 자신의 넌스를 노드(B)에 전송한다. 노드(B)는 자체 넌스(nonce B )를 생성한다. 노드(B)는 그런 다음 값(C 0)을 생성하며, 이 값은 페어링 동작의 결과 및 넌스를 포함하는 다른 데이터의 해시가 된다. 이 예에서, 값(C 0)은 다음에 의해 주어질 수 있다:
여기서, H는 문자열 간의 충돌 방지 해시 함수가 된다. 일 예에서, H는 SHA-256이다.
노드(B)는 그 후 노드(A)에 응답하여 자신의 식별자(id B ), 자신의 넌스(nonce B ) 및 값(C 0)을 제공한다. 노드(A)는 그 후 유사한 계산을 수행하여, 이 예에서 다음과 같이 표현되는 값(C 1)을 획득한다:
.
주목할 것은 C 1C 0에 대한 표현에서 인수의 유일한 차이점이 페어링 동작에 있다는 것이다. 따라서, 이중 선형 페어링 동작에서 노드(A)와 노드(B)의 크리덴셜들이 동일한 노드 그룹으로부터 획득된 것으로 확인되면, 두 값은 매칭될 것이다. 노드(A)는 이들이 매칭하는지를 확인할 수 있으며, 만약 그렇다면, C 1을 노드(B)에 전송하며, 노드(B)는 이들이 매칭하는지를 또한 확인한다. 일 구현예에서, 값(C 0 = C 1)은 그 후 노드(A)와 노드(B) 사이의 통신을 암호화하기 위해 세션 키로서 사용된다. 일부 구현예에서, 노드들은 단순히 그들의 통상적인 공개 키-개인 키 쌍에 의존하여 통신을 암호화하고, 전술한 동작들은 인증을 위한 것이며 세션 키를 수립하기 위한 것도 아니다.
일부 예시적인 구현예에서, 값(C 0C 1)을 형성하기 위해 결합 및 해시된 데이터 또는 문자열은 다른 데이터 또는 문자열을 포함할 수 있거나 위의 예시적인 문자열 중 일부를 제외할 수 있다. 예를 들어, 일 구현예에서 값(C 0 = C 1)은 식별자(id A id B )의 연결을 포함하지 않을 수 있다. 그러나, 해시 및 넌스는 중간자 공격으로부터 통신을 보호하는 데 도움이 된다는 것이 이해될 것이다.
주목해야 하는 것은, 전술한 실시예가 본 발명을 제한하기보다는 예시하는 것이고, 본 기술 분야의 기술자가 첨부된 청구항에 의해 정의된 본 발명의 범주를 벗어나지 않고 많은 대안의 실시예를 설계할 수 있을 것이라는 것이다. 예를 들어, 트랜잭션은 비트 코인을 전송할 수 있지만, 사용자는 대신에 본원에 설명된 방법 및 시스템을 사용하여 정보, 계약서 및 토큰과 같은 다른 리소스를 교환할 수 있음을 이해해야 한다. 토큰은 토큰과 연관된 스마트 계약서에 따른 자산 또는 리소스를 나타내므로, 토큰을 제어하면 자산 또는 리소스를 제어할 수 있다. 스마트 계약서 자체는 블록체인 외부에 저장될 수 있거나 하나 이상의 트랜잭션 내부에 저장될 수 있다.
청구항에서, 괄호 내에 배치된 임의의 참조 부호는 청구항을 제한하는 것으로 해석되어서는 안된다. "포함하는(comprising)" 및 "포함한다(comprises)" 등의 단어는 임의의 청구항 또는 명세서 전체에 열거된 것 이외의 요소 또는 단계의 존재를 배제하지는 않는다. 본 명세서에서, "포함한다"는 "구비하거나 구성된다"를 의미하고, "포함하는"은 "구비하거나 구성되는"을 의미한다. 요소의 단일 참조 형태는 그러한 요소의 복수의 형태를 배제하지 않으며 그 반대도 마찬가지이다. 본 발명은 수 개의 별개의 요소를 포함하는 하드웨어 및 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 수 개의 수단을 열거하는 디바이스 청구항에서, 이들 수단 중 일부는 하나의 동일한 하드웨어 아이템에 의해 구현될 수 있다. 특정 수단들이 서로 다른 종속항들에 열거되어 있다는 단순한 사실은 이러한 수단들의 조합이 더 나은 효과를 가져오는 데 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (20)

  1. 블록체인 네트워크의 노드에 대한 컴퓨터 구현 방법으로서,
    블록체인으로부터 저장 증명(proof of storage)이 챌린지될(to be challenged) 하나 이상의 트랜잭션을 선택하는 단계 - 상기 하나 이상의 선택된 트랜잭션은 트랜잭션 심도(transaction depth)(d)를 가지며, 상기 트랜잭션 심도는 상기 선택된 트랜잭션 이후의 블록 또는 확인(confirmation)의 수임 - 와,
    저장 증명이 챌린지될 상기 하나 이상의 선택된 블록체인 트랜잭션을 나타내는 블록체인 저장 증명 트랜잭션(proof of blockchain storage transaction) 및 상기 하나 이상의 선택된 블록체인 트랜잭션을 저장하는 스토리지 노드에 의해 잠금 해제될 수 있는 블록체인 저장 증명 보상(proof of blockchain storage reward)을 생성하는 단계와,
    상기 블록체인 저장 증명 트랜잭션을 상기 블록체인 네트워크 상의 하나 이상의 스토리지 노드에 전송하는 단계를 포함하는,
    컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 선택된 블록체인 트랜잭션은 상기 블록체인에서의 상기 하나 이상의 트랜잭션의 심도에 대응하는 트랜잭션 심도(d)를 가지며,
    상기 블록체인 저장 증명 보상은 상기 트랜잭션 심도(d)가 클수록 상기 보상이 커지도록 상기 트랜잭션 심도(d)에 따라 설정되는,
    컴퓨터 구현 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 하나 이상의 블록체인 트랜잭션은 상기 블록체인으로부터 랜덤하게 선택되는,
    컴퓨터 구현 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 블록체인으로부터 블록체인 트랜잭션의 리스트가 선택되는,
    컴퓨터 구현 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 하나 이상의 트랜잭션은 상기 블록체인 상에서 복수의 확인을 수신한 하나 이상의 블록으로부터 선택되는,
    컴퓨터 구현 방법.
  6. 제1항 또는 제2항에 있어서,
    상기 블록체인 저장 증명 트랜잭션은 상기 블록체인에 저장될 새롭게 채굴된 블록과 연관된 데이터를 포함하는,
    컴퓨터 구현 방법.
  7. 제6항에 있어서,
    상기 새롭게 채굴된 블록과 연관된 데이터는 상기 새롭게 채굴된 블록의 블록 헤더 데이터인,
    컴퓨터 구현 방법.
  8. 제6항에 있어서,
    상기 새롭게 채굴된 블록과 연관된 데이터는 상기 블록체인으로부터 선택된 상기 하나 이상의 블록체인 트랜잭션과 연관된 데이터와 결합되는,
    컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 새롭게 채굴된 블록과 연관된 데이터는 XOR 연산 또는 연결(concatenation)에 의해 상기 블록체인으로부터 선택된 상기 하나 이상의 블록체인 트랜잭션과 연관된 데이터와 결합되는,
    컴퓨터 구현 방법.
  10. 제6항에 있어서,
    상기 블록체인 저장 증명 트랜잭션은,
    상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터의 암호화 함수와,
    상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터와 결합된 새롭게 채굴된 블록과 연관된 데이터의 암호화 함수
    중 하나를 포함하는,
    컴퓨터 구현 방법.
  11. 제1항 또는 제2항에 있어서,
    상기 블록체인 저장 증명 트랜잭션은 상기 블록체인 네트워크 상의 상기 하나 이상의 스토리지 노드와 연관된 하나 이상의 블록체인 네트워크 어드레스를 포함하는,
    컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 블록체인 네트워크 상의 상기 하나 이상의 스토리지 노드와 연관된 상기 하나 이상의 블록체인 네트워크 어드레스는 인증된 블록체인 네트워크 어드레스이며, 상기 인증은 개인 키 공유 체계를 통해 달성되는,
    컴퓨터 구현 방법.
  13. 제1항 또는 제2항에 있어서,
    상기 하나 이상의 선택된 블록체인 트랜잭션에 대한 식별 번호를 포함하는 챌린지 프리픽스(challenge prefix)를 생성하는 단계를 더 포함하되, 상기 챌린지 프리픽스 및 상기 블록체인 저장 증명 트랜잭션은 상기 블록체인 네트워크 상의 상기 하나 이상의 스토리지 노드에 전송되는,
    컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 챌린지 프리픽스와, 상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터의 암호화 함수 또는 상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터와 결합된 새롭게 채굴된 블록과 연관된 데이터의 암호화 함수를 생성하는 데 랜덤 오라클(random oracle)이 사용되는,
    컴퓨터 구현 방법.
  15. 제13항에 있어서,
    상기 챌린지 프리픽스는 무결성 및 인증을 위한 디지털 시그니처와 함께 제공되거나 챌린지 프리픽스 메시지는 비 트랜잭션 필드(non-transaction field)에서 전송되는,
    컴퓨터 구현 방법.
  16. 제1항 또는 제2항에 있어서,
    상기 블록체인 저장 증명 트랜잭션을 수신하면, 상기 하나 이상의 스토리지 노드는 자신의 노드에 저장된 상기 하나 이상의 선택된 블록체인 트랜잭션에 액세스하고 상기 하나 이상의 선택된 블록체인 트랜잭션을 사용하여 상기 보상을 잠금 해제하는,
    컴퓨터 구현 방법.
  17. 제16항에 있어서,
    상기 보상은,
    상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터의 암호화 함수와,
    상기 하나 이상의 선택된 블록체인 트랜잭션과 연관된 데이터와 결합된 새롭게 채굴된 블록과 연관된 데이터의 암호화 함수
    중 하나를 계산함으로써 잠금 해제되는,
    컴퓨터 구현 방법.
  18. 컴퓨터 판독 가능 저장 매체로서,
    하나 이상의 프로세서에 의하여 실행시 제1항 또는 제2항의 방법을 수행하는 컴퓨터 실행 가능 명령어를 포함하는,
    컴퓨터 판독 가능 저장 매체.
  19. 전자 디바이스로서,
    인터페이스 디바이스와,
    상기 인터페이스 디바이스에 연결된 하나 이상의 프로세서와,
    상기 하나 이상의 프로세서에 연결되어 있으며, 상기 하나 이상의 프로세서에 의하여 실행될 경우에 제1항 또는 제2항의 방법을 수행하는 컴퓨터 실행 가능 명령어가 저장되어 있는 메모리를 포함하는,
    전자 디바이스.
  20. 제1항 또는 제2항의 방법을 수행하도록 구성되어 있는 블록체인 네트워크의 노드.
KR1020207002988A 2017-07-24 2018-07-16 복수의 스토리지 노드를 통해 대규모 블록체인의 안전한 저장을 가능하게 하는 컴퓨터 구현 시스템 및 방법 KR102580509B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1711867.0 2017-07-24
GBGB1711867.0A GB201711867D0 (en) 2017-07-24 2017-07-24 Computer-implemented system and method
PCT/IB2018/055237 WO2019021106A1 (en) 2017-07-24 2018-07-16 COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR SECURE STORAGE OF A LARGE BLOCK CHAIN ON A PLURALITY OF STORAGE NODES

Publications (2)

Publication Number Publication Date
KR20200034728A KR20200034728A (ko) 2020-03-31
KR102580509B1 true KR102580509B1 (ko) 2023-09-21

Family

ID=59771651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207002988A KR102580509B1 (ko) 2017-07-24 2018-07-16 복수의 스토리지 노드를 통해 대규모 블록체인의 안전한 저장을 가능하게 하는 컴퓨터 구현 시스템 및 방법

Country Status (8)

Country Link
US (1) US20200213125A1 (ko)
EP (2) EP3659082B1 (ko)
JP (2) JP7190481B2 (ko)
KR (1) KR102580509B1 (ko)
CN (1) CN110959163B (ko)
GB (1) GB201711867D0 (ko)
SG (1) SG11201912220VA (ko)
WO (1) WO2019021106A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113765657B (zh) * 2017-08-28 2023-10-24 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器
US10929473B2 (en) 2018-09-27 2021-02-23 Palo Alto Research Center Incorporated Integrated index blocks and searching in blockchain systems
CN109598504B (zh) * 2018-10-25 2020-09-01 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
CN109768866B (zh) * 2019-03-05 2021-03-30 同济大学 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法
CN110445852B (zh) * 2019-07-29 2021-12-10 杭州复杂美科技有限公司 通证发放方法、设备和存储介质
US11057188B2 (en) * 2019-08-19 2021-07-06 International Business Machines Corporation Database service token
US11228452B2 (en) * 2019-09-16 2022-01-18 Cisco Technology, Inc. Distributed certificate authority
CN111510309B (zh) * 2020-04-08 2022-05-10 深圳大学 区块链数据传输方法、装置、设备及计算机可读存储介质
KR102276527B1 (ko) * 2020-11-11 2021-07-13 (주)소셜인프라테크 오브젝트의 정보 변경 방지를 위한 오브젝트 발행 시스템
CN114785509A (zh) * 2021-01-20 2022-07-22 杭州链网科技有限公司 一种基于区块链的可信计算存储方法
CN114362917B (zh) * 2021-12-28 2024-04-30 安徽师范大学 移动群智感知中安全可验证的数据真值发现方法
WO2024090461A1 (ja) * 2022-10-27 2024-05-02 株式会社ZK Corporation 鍵システム、電子錠装置、電子鍵装置、および情報通信システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085882A (ja) 2012-10-24 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、ストレージサーバ、ストレージシステム、バックアップ方法、およびバックアッププログラム
WO2016151316A1 (en) 2015-03-24 2016-09-29 Intelligent Energy Limited An energy resource network
US20160358169A1 (en) 2015-03-12 2016-12-08 International Business Machines Corporation Cryptographic methods implementing proofs of work in systems of interconnected nodes
US20170140408A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
WO2017108783A1 (en) 2015-12-22 2017-06-29 Gemalto Sa Method for managing a trusted identity
US20180336552A1 (en) 2017-05-17 2018-11-22 Nec Europe Ltd. Method and system for providing a robust blockchain with an integrated proof of storage

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9922339B2 (en) * 2013-03-15 2018-03-20 Google Llc Randomized reward system for stored value transactions
EP3123432A4 (en) * 2014-03-22 2017-08-30 RetailMeNot, Inc. Caching geolocated offers
US20150363772A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency online vault storage system
CA3002034A1 (en) * 2015-10-14 2017-04-20 Cambridge Blockchain, LLC Systems and methods for managing digital identities
WO2017091530A1 (en) * 2015-11-24 2017-06-01 Gartland & Mellina Group Blockchain solutions for financial services and other transaction-based industries
EP3414713B1 (en) * 2016-02-12 2023-07-26 Royal Bank Of Canada Methods and systems for digital reward processing
EP3420518B1 (en) * 2016-02-23 2023-08-23 nChain Licensing AG Methods and systems for efficient transfer of entities on a peer-to-peer distributed ledger using the blockchain
MX2018010054A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Metodo y sistema de tokenizacion para la implementacion de cambios de moneda en una cadena de bloques.
EP3862958A1 (en) * 2016-02-23 2021-08-11 Nchain Holdings Limited Methods and systems for the efficient transfer of entities on a blockchain
CA3014737A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
EP3424179B1 (en) * 2016-03-04 2022-02-16 Ping Identity Corporation Method and system for authenticated login using static or dynamic codes
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
KR102050129B1 (ko) * 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
US10291627B2 (en) * 2016-10-17 2019-05-14 Arm Ltd. Blockchain mining using trusted nodes
US10387684B2 (en) * 2016-12-09 2019-08-20 International Business Machines Corporation Interlocked blockchains to increase blockchain security
US20180189781A1 (en) * 2017-01-05 2018-07-05 The Toronto-Dominion Bank Real-time approval and execution of data exchanges between computing systems
EP3563553B1 (en) * 2017-02-24 2022-02-16 NEC Corporation Method for signing a new block in a decentralized blockchain consensus network
US10762481B2 (en) * 2017-03-21 2020-09-01 The Toronto-Dominion Bank Secure offline approval of initiated data exchanges
US10467586B2 (en) * 2017-03-23 2019-11-05 International Business Machines Corporation Blockchain ledgers of material spectral signatures for supply chain integrity management
US11887115B2 (en) * 2017-04-17 2024-01-30 Jeff STOLLMAN Systems and methods to validate transactions for inclusion in electronic blockchains
US20180330386A1 (en) * 2017-05-09 2018-11-15 Heonsu Kim Proof of ownership device and methods for using the same
US10762506B1 (en) * 2017-05-11 2020-09-01 United Services Automobile Association Token device for distributed ledger based interchange
US11924322B2 (en) * 2017-05-16 2024-03-05 Arm Ltd. Blockchain for securing and/or managing IoT network-type infrastructure
US10601900B2 (en) * 2017-05-24 2020-03-24 Red Hat, Inc. Supporting distributed ledgers in a micro-services environment
US11030681B2 (en) * 2017-07-21 2021-06-08 International Business Machines Corporation Intermediate blockchain system for managing transactions
CN112119611A (zh) * 2018-05-14 2020-12-22 区块链控股有限公司 使用区块链执行原子交换的计算机实现的系统和方法
US20210264419A1 (en) * 2020-02-21 2021-08-26 International Business Machines Corporation Resolution of conflicting data
US20230297983A1 (en) * 2022-03-18 2023-09-21 Capital One Services, Llc Systems and methods for granting smart contracts

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085882A (ja) 2012-10-24 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、ストレージサーバ、ストレージシステム、バックアップ方法、およびバックアッププログラム
US20160358169A1 (en) 2015-03-12 2016-12-08 International Business Machines Corporation Cryptographic methods implementing proofs of work in systems of interconnected nodes
WO2016151316A1 (en) 2015-03-24 2016-09-29 Intelligent Energy Limited An energy resource network
US20170140408A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
WO2017108783A1 (en) 2015-12-22 2017-06-29 Gemalto Sa Method for managing a trusted identity
US20180336552A1 (en) 2017-05-17 2018-11-22 Nec Europe Ltd. Method and system for providing a robust blockchain with an integrated proof of storage

Also Published As

Publication number Publication date
JP2020528691A (ja) 2020-09-24
EP3659082B1 (en) 2022-04-13
JP7190481B2 (ja) 2022-12-15
KR20200034728A (ko) 2020-03-31
CN110959163B (zh) 2024-04-02
JP2023024499A (ja) 2023-02-16
EP4068183A1 (en) 2022-10-05
EP3659082A1 (en) 2020-06-03
US20200213125A1 (en) 2020-07-02
SG11201912220VA (en) 2020-02-27
GB201711867D0 (en) 2017-09-06
CN110959163A (zh) 2020-04-03
WO2019021106A1 (en) 2019-01-31

Similar Documents

Publication Publication Date Title
KR102580509B1 (ko) 복수의 스토리지 노드를 통해 대규모 블록체인의 안전한 저장을 가능하게 하는 컴퓨터 구현 시스템 및 방법
EP3664005B1 (en) Credential generation and distribution method and system for a blockchain network
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
CN108885741B (zh) 一种实现区块链上交换的令牌化方法及系统
KR20210008516A (ko) 블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법
Ghaffar et al. An improved authentication scheme for remote data access and sharing over cloud storage in cyber-physical-social-systems
CN109359464B (zh) 一种基于区块链技术的无线安全认证方法
Zhou et al. EverSSDI: blockchain-based framework for verification, authorisation and recovery of self-sovereign identity using smart contracts
WO2019110018A1 (zh) 通信网络系统的消息验证方法、通信方法和通信网络系统
Ayub et al. Secure consumer-centric demand response management in resilient smart grid as industry 5.0 application with blockchain-based authentication
TWI840358B (zh) 用以使用區塊鏈來執行基元式互換之電腦實施系統及方法
Shekhawat et al. Quantum-resistance blockchain-assisted certificateless data authentication and key exchange scheme for the smart grid metering infrastructure

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right