KR20210128455A - 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법 - Google Patents

블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법 Download PDF

Info

Publication number
KR20210128455A
KR20210128455A KR1020217029707A KR20217029707A KR20210128455A KR 20210128455 A KR20210128455 A KR 20210128455A KR 1020217029707 A KR1020217029707 A KR 1020217029707A KR 20217029707 A KR20217029707 A KR 20217029707A KR 20210128455 A KR20210128455 A KR 20210128455A
Authority
KR
South Korea
Prior art keywords
transaction
blockchain
resource
merkle
bob
Prior art date
Application number
KR1020217029707A
Other languages
English (en)
Inventor
크레이그 스티븐 라이트
잭 오웬 데이비스
알렉산더 테니슨 맥케이
Original Assignee
엔체인 홀딩스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1902090.8A external-priority patent/GB201902090D0/en
Priority claimed from GBGB1902089.0A external-priority patent/GB201902089D0/en
Priority claimed from GBGB1902086.6A external-priority patent/GB201902086D0/en
Priority claimed from GBGB1902088.2A external-priority patent/GB201902088D0/en
Priority claimed from GBGB1902092.4A external-priority patent/GB201902092D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20210128455A publication Critical patent/KR20210128455A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a 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/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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/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
    • 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
    • G06Q20/4014Identity check for transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

발명은 블록체인-구현된 이전을 위한 개선된 검증 해결책을 제공한다. 이는 SPV 지갑에서의 구현에 적합하지만, 이에 제한되지 않는다. 일 실시예에 따르면, 밥이 앨리스에게 지불 트랜잭션 템플릿(템플릿 Tx3)을 보내고 다음을 요청할 수 있도록 하는 방법, 시스템 또는 자원이 제공된다: 앨리스가 이전(Tx3)에 대한 입력으로 지출하고자 하는 적어도 하나의 출력을 포함하는 모든 입력 트랜잭션(Tx1, Tx2)에 대한 전체 트랜잭션 데이터; 모든 입력 트랜잭션(Tx1, Tx2)에 대하여 이들을 각 블록 헤더와 연관된 각 머클 루트에 연결하는 머클 경로; 완료된 이전 트랜잭션(Tx3). 앨리스는 이 정보와 그녀의 서명을 제공하고, 그리고 선택적으로 변경 주소를 제공한다. 그런 다음 밥은 트랜잭션(Tx1 및 Tx2), 대응하는 머클 경로(Path 1, Path 2) 및 밥의 블록 헤더의 로컬 목록을 사용하여 입력 트랜잭션(Tx1, Tx2)에 대한 로컬 SPV 확인을 수행할 수 있다. 밥은 이전 트랜잭션(Tx3)을 P2P 네트워크에 브로드캐스팅한다.

Description

블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
이 발명은 일반적으로 네트워크를 통한 자원 이전 및 통신에 관한 것으로, 특히 블록체인 네트워크를 통해 수행되는 이전 및 디지털 지갑에 관한 것이다. 발명은 블록체인 상에서 구현되거나 이를 통해 통신하는 암호 화폐, 토큰 및 다른 자원의 이전 처리를 위한 지갑에 특히 적합하지만, 이에 제한되지 않는다. 발명은 디지털 지갑 및 블록체인 기반 통신의 보안, 다양성(versatility), 탄력성 및 효율을 개선하는 것을 포함하지만 이에 제한되지 않는 다수의 기술적 이점을 제공하는 장치 및 기술을 제공한다.
이 문서에서 우리는 모든 형태의 전자, 컴퓨터 기반, 분산 원장을 포함하기 위하여 '블록체인'이라는 용어를 사용한다. 이는 합의 기반(consensus-based) 블록체인 및 트랜잭션 체인 기술, 허가 및 비허가 원장, 공유 원장 및 그 변형을 포함한다. 블록체인 기술의 가장 널리 알려진 응용은 비트코인 원장이지만, 다른 블록체인 구현이 제안되고 개발되었다. 비트코인은 편의 및 예시의 목적으로 본원에서 언급될 수 있지만, 발명은 비트코인 블록체인과 함께 사용하는 것으로 제한되지 않으며, 대안적인 블록체인 구현 및 프로토콜이 본 개시의 범위 내에 속한다는 점에 유의하여야 한다. 용어 "비트코인"은 본원에서 비트코인 프로토콜의 임의의 변형을 구현하거나 이로부터 파생되는 구현 또는 프로토콜의 모든 변형을 포함하도록 사용된다. 용어 "사용자"는 본원에서 사람 또는 프로세서 기반 자원을 지칭할 수 있다.
블록체인은 트랜잭션으로 구성된 블록으로 구성된 컴퓨터 기반 비중앙식 분산 시스템으로 구현되는 피어-투-피어 전자 원장이다. 각 트랜잭션은 블록체인 시스템 참여자 사이의 디지털 자산의 제어의 이전을 인코딩하는 데이터 구조이며, 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록에는 이전 블록의 해시가 포함되어 블록이 함께 연결되어 처음부터 블록체인에 기록된 모든 트랜잭션에 대한 영구적이고 변경 불가능한 기록을 생성한다. 각 블록의 헤더는 그 블록에 대한 머클(Merkle) 루트를 제공하는 필드를 포함한다. 머클 루트는 단일 해시에 도달할 때까지 블록으로부터 트랜잭션 ID 쌍을 반복적으로 함께 해시하여 생성된다. 이 머클 루트는 사용자가 전체 블록체인을 다운로드하지 않고도 특정 트랜잭션을 검증할 수 있도록 하기 때문에 트랜잭션이 블록의 일부임을 검증하기 위한 효율적인 메커니즘을 제공한다.
트랜잭션에는 그 입력 및 출력에 내재된 스크립트로 알려진 작은 프로그램이 포함되며, 이는 트랜잭션의 출력에 접근할 수 있는 방법과 대상을 지정한다. 비트코인 플랫폼에서, 이러한 스크립트는 스택 기반 스크립트 언어를 사용하여 작성된다.
트랜잭션이 블록체인에 기록되려면, "유효성 검증(validated)"되어야 한다. 네트워크 노드(채굴자)는 각 트랜잭션이 유효한지 확인하기 위한 작업을 수행하며, 유효하지 않은 트랜잭션은 네트워크에서 거부된다. 노드에 설치된 소프트웨어 클라이언트는 잠금 및 잠금 해제 스크립트를 실행하여 미지출 트랜잭션(UTXO)에 대하여 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 참(TRUE)으로 평가되면, 트랜잭션은 유효하고 트랜잭션이 블록체인에 기록된다. 따라서, 트랜잭션이 블록체인에 기록되려면, i) 트랜잭션을 수신하는 제1 노드에 의해 유효성 검증되고-트랜잭션이 유효성 검증되면, 노드는 이를 네트워크의 다른 노드에 중계함, ii) 채굴자가 구축한 새로운 블록에 추가되며, iii) 채굴, 즉 과거 트랜잭션의 공개 원장에 추가되어야 한다. (참고: 위에 설명된 유효성 검증(validation)은 특정 트랜잭션이 블록체인 상의 블록에 포함되었는지 확정하거나 확인하는 것을 의미하기 위하여 본원에서 사용되는 용어 "검증(verification)"과 혼동되어서는 안 된다).
블록체인에 UTXO로 저장되면, 사용자는 연관된 암호화폐의 제어를 다른 트랜잭션의 입력과 연관된 다른 주소로 이전할 수 있다. 이는 종종 사용자의 암호화폐와 연관된 공개 및 개인 키 쌍을 저장하는 디지털 지갑을 사용하여 수행된다. SPV(간편 지불 검증; Simplified Payment Verification) 지갑을 포함하여, 다양한 형태의 암호화폐 지갑이 알려져 있다.
앨리스(Alice)와 밥(Bob) 사이의 SPV 기반 암호화폐 교환에서, 양 당사자는 동일 유형의 SPV 지갑을 사용한다. SPV 지갑은 사용자의 개인 및 공개 키, 미지출 트랜잭션 및 블록 헤더를 저장한다. 또한 이는 블록체인 네트워크 연결 기능을 가지고 있다. 용어 "블록 헤더"는 당업계에 알려져 있으며, 블록체인 트랜잭션 블록의 상단에 제공되는 데이터를 지칭하는 데 사용된다. 블록 헤더는 블록을 고유하게 식별하여 블록체인에서 위치를 찾을 수 있다. 이는 전체 블록 콘텐츠의 고유한 요약 또는 지문을 제공하는 데이터 필드를 포함한다. 블록 헤더는 해당 블록 내의 모든 트랜잭션의 해시인 머클 루트(Merkle Root)를 포함한다. 따라서 사용자는 전체 블록체인을 다운로드할 필요 없이, 해당 루트로 머클 트리를 검색하여 특정 트랜잭션이 블록체인의 특정 블록에 포함되었는지 여부를 확인(즉, 검증)할 수 있다.
SPV 지갑의 장점은 다른 형태의 지갑에서와 같이 블록체인의 전체 검사를 수행하는 대신 트랜잭션이 검증되었는지 확인하기만 하면 되므로(따라서 "간편 지불 검증"으로 명명됨) 전화기 및 랩톱과 같은 전력 및 저장의 제약이 있는 디바이스가 비트코인 생태계 내에서 작동할 수 있게 한다는 점이다. SPV 지갑은 트랜잭션을 포함하지 않고 블록 헤더만을 다운로드하므로, 필요한 저장 공간이 159GB(2018년 11월 기준)에서 43MB로 줄어들고, 저장 요구 사항은 비트코인이 확장되더라도 연간 4.2MB로 일정하게 증가할 것이다.
앨리스가 밥에게 암호화폐 또는 토큰화된 자산/자원을 보내기를 원한다고 가정한다. 기존의 SPV 지갑을 사용할 때, 앨리스와 밥 사이의 통신 흐름은 다음과 같다.
1. 앨리스는 출력에 밥의 주소를 지정하고 (이전 미지출 트랜잭션으로부터 앨리스로) 입력에 대한 서명을 제공하는 블록체인 트랜잭션(TX)을 생성한다.
2. 앨리스는 트랜잭션을 블록체인 네트워크에 브로드캐스팅 한다.
3. 밥은 트랜잭션이 수락되었는지 검증하기 위하여 네트워크에 질의한다.
본질적으로, 블록체인 네트워크는 앨리스의 지갑과 밥의 지갑 사이에서 중개자 역할을 한다. 그러나, 이는 자원 집약적인 프로세스일 뿐만 아니라, 네트워크 연결성을 요구한다. 앨리스의 지갑이 실행되고 있는 디바이스가 어떤 이유로 오프라인 상태이면, 이전을 완료할 수 없다. 따라서, 하나의 개체(예를 들어, 컴퓨팅 자원/노드/디지털 지갑)에서 다른 개체로 전자적 이전을 수행하는 더욱 안정적이고 효율적인 메커니즘을 구현하기 위한 방법, 시스템 및 디바이스를 제공하는 방법을 포함하지만 이에 제한되지 않는 기술적 도전이 있다.
따라서, 적어도 이러한 기술적 과제를 해결하는 해결책을 제공하는 것이 바람직하다. 이러한 개선된 해결책이 이제 고안되었다. 따라서, 본 발명에 따라, 첨부된 청구범위에 정의된 바와 같은 시스템 및 방법이 제공된다. 본 발명에 따르면, 컴퓨터 및/또는 블록체인 구현된 방법 및 대응하는 시스템 및/또는 자원이 제공될 수 있다. 자원은 컴퓨터-구현된 자원 또는 디바이스(들)이거나 이를 포함할 수 있다.
본 발명은 블록체인 네트워크 상에서 또는 이를 통해 (양도인과 양수인 사이의) 자산의 이전을 용이하게 하거나 가능하게 하도록 동작할 수 있는 컴퓨터-구현된 자원을 제공할 수 있다. 양도인(자산의 송신자)은 여기에서 앨리스로 지칭될 수 있고 양수인(자산의 수신자)은 밥으로 지칭될 수 있다. 자산은 임의의 유형의 이전 가능한 전자적 엔티티, 예를 들어 암호화폐 또는 토큰의 일부, 또는 블록체인 트랜잭션을 통해 어떤 방식으로든 디지털 방식으로 이전될 수 있는 그 밖의 다른 것이 될 수 있거나 이를 포함할 수 있다.
추가로 또는 대안적으로, 자원은 블록체인 트랜잭션의 검증을 용이하게 하거나 가능하게 하도록 동작할 수 있다. 용어 "동작하는"은 본원에서 적어도 용어 "배열된" 및 "구성된"을 포함하는 것으로 사용된다.
자원은:
추가의 자원으로부터:
적어도 하나의 블록체인 트랜잭션과 관련된 완전한 트랜잭션 데이터; 및
적어도 하나의 블록체인 트랜잭션에 대한 머클 경로를 수신 및/또는 요청하고; 그리고
적어도 하나의 트랜잭션에 대한 머클 증명을 검증하도록 머클 경로를 사용하도록 동작할 수 있다.
자원은 양수인이 될 수 있으며 추가의 자원은 양도인이 될 수 있다. 트랜잭션 데이터는 블록체인 프로토콜에 따라 유효한 블록체인 트랜잭션을 형성하기에 충분하다는 의미에서 완전할 수 있다. 이는 "전체(full)" 트랜잭션 데이터라고 부를 수 있다.
대응하는 방법이 제공될 수 있다. 이는 컴퓨터-구현된 자원에 의해 구현될 수 있으며,
추가의 컴퓨터-구현된 자원으로부터:
적어도 하나의 블록체인 트랜잭션과 관련된 완전한 트랜잭션 데이터; 및
적어도 하나의 블록체인 트랜잭션에 대한 머클 경로를 수신 및/또는 요청하는 단계; 및
적어도 하나의 트랜잭션에 대한 머클 증명을 검증하도록 머클 경로를 사용하는 단계를 포함할 수 있다.
추가적으로 또는 대안적으로, 본 발명에 따른 방법은:
컴퓨터 구현된 자원에서 그리고 추가의 컴퓨터-구현된 자원으로부터, 적어도 하나의 출력(UTXO)을 포함하는 제1 블록체인 트랜잭션에 대한 전체 트랜잭션 데이터, 및 제1 블록체인 트랜잭션에 대한 머클 경로를 수신하는 단계;
컴퓨터 구현된 자원에서, 제1 블록체인 트랜잭션이 블록체인에 있는지 확인하도록 머클 경로를 사용하는 단계; 및
제1 블록체인 트랜잭션이 블록체인에 있다면, 제2 블록체인 트랜잭션을 어느 하나의 블록체인에 또는 동일한 블록체인에 제출하는 단계를 포함할 수 있다.
제1 블록체인 트랜잭션은 도 8 및 10에 나타낸 바와 같이 Tx1 또는 Tx2일 수 있다. 제2 트랜잭션은 Tx3일 수 있다. 블록체인 트랜잭션은 요청에 대한 응답으로 추가의 컴퓨터-구현된 자원으로부터 컴퓨터-구현된 자원에 의해 수신될 수 있다; 컴퓨터-구현된 자원은 추가의 컴퓨터-구현된 자원에 송금 금액 및 출력(지불) 주소를 전송할 수 있다; 제1 블록체인 트랜잭션은 컴퓨터-구현된 자원에 의해 지정된 (출력/지불) 주소로 암호화폐의 양(송금 금액)을 지출하는 출력(UTXO)을 포함할 수 있다.
추가의 컴퓨터-구현된 자원은 (디지털) 지갑 또는 이러한 지갑을 포함하는 자원일 수 있다. 지갑은 경량/SPV 지갑일 수 있다. 이는 앨리스와 관련하고 그리고 "오프라인 SPV 지갑"이라는 제목의 섹션에서 실질적으로 설명된 자원 또는 지갑일 수 있다.
시스템 또는 자원과 관련하여 아래 또는 여기에서 설명된 임의의 피쳐는 본 발명의 방법에 동일하게 적용 가능하며 그 반대도 마찬가지이다. 본 발명의 실시예는 실질적으로 밥과 관련하여 설명된 것과 같거나, 또는 여기에 제공된 "PoS SPV 지갑"이라는 제목의 섹션일 수 있다. 자원(및/또는 추가의 자원)은 하드웨어와 소프트웨어의 조합을 포함하거나, 순수하게 소프트웨어 기반일 수 있다. 자원은 이하에서 밥으로 지칭될 수 있고, 추가의 자원은 앨리스로 지칭될 수 있다.
방법은, 자원에서, 적어도 하나의 공개 키 및/또는 적어도 하나의 개인 키를 저장, 수신 및/또는 요청하는 단계를 포함할 수 있다. 이는 적어도 하나의 블록 헤더를 저장, 수신 및/또는 요청하는 단계를 더 포함할 수 있다. 이는 트랜잭션이 특정 블록에 포함되었는지의 검증을 가능하게 한다. 이는, 지불 영수증 또는 발생한 이전 이벤트(transfer event)의 다른 기록으로서의 역할을 할 수 있다.
적어도 하나의 블록 헤더는 추가의 자원으로부터 수신될 수 있다. 추가의 자원은 디지털 지갑, 예를 들어 암호화폐 지갑, 경량 지갑 또는 SPV 지갑, 지불 카드 등일 수 있다. 블록 헤더(들)는 블록체인으로부터 다운로드 또는 액세스되거나, 다른 당사자에 의해 제공될 수 있다.
방법은 추가의 자원으로부터 머클 경로 및 완전한 트랜잭션 데이터를 요청하는 단계를 포함할 수 있다. 이는, 추가의 자원에: 공개 키 주소; 및/또는 이전 가치(transfer value)를 전송하는 것을 포함할 수 있다. 이전 가치는 암호화폐의 양일 수 있다. 이는 이전되는 자산 또는 자산의 가치일 수 있다. 이는 지불 금액일 수 있다. 주소는 지불 주소 또는 수취인 주소로서 지칭될 수 있다. 이는 자산(예컨대, 암호화폐의 양)이 이전되는 주소일 수 있다.
방법은:
적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)과 관련된 데이터;
적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)을 포함하는 트랜잭션에 대한 트랜잭션 ID(TXID);
적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)에서 지출하기 위한 서명;
적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)을 포함하는 트랜잭션에 대한 머클 경로; 및/또는
공개 키 주소 중 적어도 하나를 포함하는 트랜스퍼 데이터(transfer data)에 대한 요청을, 추가의 컴퓨터-구현된 자원에 전송하는 단계를 더 포함할 수 있다.
유리하게, 머클 경로는 블록체인 네트워크 상의 피어로부터 얻을 필요 없이 추가의 자원(앨리스)으로부터 자원(밥)에게 제공될 수 있다. 이는 밥이 블록체인 또는 네트워크에 액세스하거나 통신할 필요 없이 적어도 하나의 트랜잭션(들)에 대한 로컬 SPV 확인을 수행할 수 있게 한다. 또한, 데이터, 요청 및 응답이 오프-체인 통신을 사용하여 밥과 앨리스 사이에서 전송될 수 있다. "오프 체인 통신"이라는 용어는, 통신이 블록체인 또는 블록체인 네트워크를 통하거나 쿼리하거나 상호 작용하지 않음을 의미하도록 의도된다.
트랜스퍼 데이터는 자원에 의해 요청될 수 있다. 이는 추가의 자원에 신호 또는 다른 요청을 전송할 수 있다. 이는, 추가적으로 또는 대안적으로, 추가의 컴퓨터-구현된 자원으로부터 수신될 수 있다. 환언하면, 프로세스는 밥 또는 앨리스에 의해 트리거되거나 개시될 수 있지만, 바람직한 실시예에서 밥은 필요한 데이터에 대한 요청을 앨리스에게 전송한다. 요청되는 트랜스퍼 데이터의 요청 및/또는 전송은 오프-체인 통신을 사용하여 수행될 수 있으며, 이는 통신이 블록체인 네트워크 및/또는 블록체인 자체를 수반하지 않음을 의미한다.
밥의 요청 및/또는 앨리스의 데이터 전송은 블록체인 트랜잭션 템플릿을 사용하여 수행될 수 있다. 템플릿은 유효한 블록체인 트랜잭션을 형성하는 데 요구되는 정보의 전부는 아니지만 일부를 포함할 수 있다. 밥이 원하는 이전을 완료하기 위해 일부 데이터가 누락될 수 있다. 방법은, 블록체인 트랜잭션 템플릿을 업데이트하거나 완료함으로써, 추가의 자원에 의해 트랜스퍼 데이터를 제공하는 단계를 포함할 수 있다. 템플릿은 자원에 의해 제공될 수 있다. 템플릿은 "불완전한(블록체인) 트랜잭션"이라고도 지칭될 수 있다. 방법은 완전한 또는 부분적으로 완전한 블록체인 트랜잭션의 형태로 추가의 자원으로부터 트랜스퍼 데이터를 수신하는 단계를 포함할 수 있다.
방법은 적어도 하나의 블록체인 트랜잭션에 대한 머클 증명의 성공적인 검증 시에 블록체인 트랜잭션을 블록체인 네트워크에 제출하는 단계를 포함할 수 있다. 성공적인 검증은, 머클 증명이 블록체인에 적어도 하나의 블록체인 트랜잭션이 존재함을, 즉 블록으로 채굴되었음을 규명하는 것을 의미할 수 있다. 방법은 블록체인 트랜잭션을 생성하거나 추가의 자원으로부터 이를 수신하는 단계를 포함할 수 있다. 이는 도 8 및 10에서 Tx3으로 지칭되는 트랜잭션일 수 있다. 이는 여기에 설명되고 개시된 Tx3일 수 있다. 이는 적어도 하나의 블록체인 트랜잭션의 출력(UTXO)을 지출하는 입력을 포함하는 블록체인 트랜잭션일 수 있다.
또한 본 발명은, 프로세서; 및 프로세서에 의한 실행의 결과로서, 시스템으로 하여금 본 명세서에 설명되어 있는 컴퓨터-구현된 방법의 임의의 실시예를 수행하게 하는 실행 가능한 명령어를 포함하는 메모리를 포함하는 시스템을 제공한다.
또한 본 발명은, 컴퓨터 시스템의 프로세서에 의해 실행된 결과로서, 컴퓨터 시스템으로 하여금 본 명세서에 설명되어 있는 컴퓨터-구현된 방법의 실시예를 적어도 수행하게 하는 실행 가능한 명령어를 저장한 비일시적 컴퓨터 판독 가능 저장 매체를 제공한다.
본 발명의 이들 및 다른 양상은 본원에 기재된 실시예로부터 명백하고 이를 참조하여 설명될 것이다. 본 발명의 실시예는 이제 단지 예로서, 그리고 첨부 도면을 참조하여 설명될 것이다.
도 1은 개시의 실시예에 따른 "오프라인 SPV 지갑"의 예시를 도시한다.
도 2는 개시의 실시예에 따른 "온·오프라인 SPV 지갑"의 예시를 도시한다.
도 3은 개시의 실시예에 따른 "PoS SPV 지갑"의 예시를 도시한다.
도 4는 개시의 실시예에 따른 부분적 및 완료된 템플릿 트랜잭션 및 연관된 머클 증명을 도시한다.
도 5는 개시의 실시예에 따른 분할 SPV 지갑을 사용하여 트랜잭션을 수행할 때 앨리스와 밥 사이의 데이터 흐름 및 상호작용을 도시한다.
도 6은 사용 중인 개시의 실시예의 개략도를 도시한다.
도 7은 다양한 실시예가 구현될 수 있는 컴퓨팅 환경을 도시하는 개략도이다.
도 8은 3개의 트랜잭션과 이들을 블록(헤더)으로 연관시키는 데 사용할 수 있는 머클 경로를 도시하는 개략도이다.
도 9는 전통적인 SPV 지불 방법을 도시한다.
도 10은 개시의 실시예에 따른 방법의 예시를 도시한다.
도 11은 종래 기술에서 공지된 이진 머클 트리의 예를 도시한다.
도 12는 종래 기술에 따른, 머클 경로를 사용하여, 루트 R로 표시되는 트리에서 데이터 블록 D1의 머클 존재 증명을 도시한다.
종래 기술: 머클 트리
본 발명은 머클 트리의 개념을 유리하게 활용하므로, 배경으로서만 설명을 제공한다.
머클 트리는 데이터 컬렉션의 보안 검증을 가능하게 하는 계층적 데이터 구조이다. 머클 트리에서, 트리의 각 노드에는 인덱스 쌍 (i, j)이 주어지며 N(i, j)로 표시된다. 인덱스 i, j는 단순히 트리 내의 특정 위치와 관련된 숫자 라벨이다. 머클 트리의 중요한 특징은 각 노드의 구성이 다음의 (단순화된) 식에 의해 결정된다는 것이다.
Figure pct00001
여기에서
Figure pct00002
이고 H는 암호화 해시 함수이다.
이러한 식에 따라 구성된, 라벨링된 이진 머클 트리가 도 11에 도시되며, 여기에서 i = j의 경우는 단순히 데이터 Di의 대응하는 제i 패킷의 해시인 리프 노드에 대응한다는 것을 알 수 있다. i ≠ j의 경우는 내부 또는 부모 노드에 대응하며, 이는 하나의 부모(머클 루트)를 찾을 때까지 자식 노드를 재귀적으로 해시하고 연결하여 생성된다.
예를 들어, 노드 N(1,4)는 다음과 같이 4개의 데이터 패킷 D1, ..., D4로부터 구성된다.
Figure pct00003
Figure pct00004
Figure pct00005
.
트리 깊이 M은 트리에서 노드의 가장 낮은 수준으로 정의되며, 노드의 깊이 m는 노드가 존재하는 수준이다. 예를 들어,
Figure pct00006
Figure pct00007
이고, 도 11에서 M=3이다.
머클 증명
머클 트리의 주요 기능은 일부 데이터 패킷 Di이 N 데이터 패킷의 목록 또는 집합의 원소
Figure pct00008
인지 검증하는 것이다. 검증을 위한 메커니즘은 머클 증명으로 알려져 있으며 주어진 데이터 패킷 Di 및 머클 루트 R에 대한 머클 경로로 알려진 해시 집합을 얻는 것으로 구성된다. 데이터 패킷에 대한 머클 경로는 단순히 반복적인 해시 및 연결을 통해 루트 R를 재구성하는 데 필요한 최소 해시 목록이며, 종종 '인증 경로'로 지칭된다. 모든 패킷
Figure pct00009
이 증명자에게 알려진 경우, 존재 증명(proof-of-existence)은 자명하게(trivially) 수행될 수 있다. 그러나 이는 머클 경로보다 훨씬 더 큰 저장 오버헤드를 요구할 뿐 아니라, 전체 데이터 집합을 증명자가 사용할 수 있어야 한다. 머클 경로를 사용하는 것과 전체 목록을 사용하는 것 사이의 비교가 아래의 표에 나타나 있으며, 여기에서 이진 머클 트리를 사용하고 데이터 블록의 수 N이 정수 거듭제곱 2와 정확히 같다고 가정하였다. 그렇지 않은 경우, 머클 증명에 필요한 해시 수는 각 인스턴스에서 ±1만큼 다를 것이다.
Figure pct00010
표: 머클 트리의 리프 노드 수와 머클 증명에 필요한 해시 수 사이의 관계
데이터 패킷의 수가 리프 노드의 수와 동일한 이 단순화된 시나리오에서 머클 증명을 계산하는 데 필요한 해시 값의 수가 대수적으로 확장된다는 것을 알 수 있다. N개의 데이터 해시를 저장하고 자명한 증명(trivial proof)을 계산하는 것보다 logKN 해시를 포함하는 머클 증명을 계산하는 것이 분명히 훨씬 더 효율적이고 실용적이다.
방법
머클 루트 R이 주어졌을 때, 데이터 블록 D1이 R로 나타내는 집합에 속한다는 것(
Figure pct00011
)을 증명하려면 다음과 같이 머클 증명을 수행할 수 있다.
i. 신뢰할 수 있는 출처로부터 머클 루트 R를 획득한다.
ii. 출처로부터 머클 경로 Γ를 획득한다. 이 경우, Γ는 해시의 집합이다:
Figure pct00012
.
iii. 다음과 같이 D1 및 Γ를 사용하여 머클 증명을 계산한다:
a. 데이터 블록을 해시하여 다음을 획득한다:
Figure pct00013
.
b.
Figure pct00014
를 해시와 연결하여 다음을 획득한다:
Figure pct00015
.
c.
Figure pct00016
를 해시와 연결하여 다음을 획득한다:
Figure pct00017
.
d.
Figure pct00018
를 해시와 연결하여 루트를 획득한다:
Figure pct00019
,
Figure pct00020
.
e. 계산된 루트
Figure pct00021
를 (i)에서 획득한 루트 R과 비교한다:
I.
Figure pct00022
이면, 트리 내 및 따라서 데이터 집합 D 내에서
Figure pct00023
의 존재가 확인된다.
II.
Figure pct00024
이면, 증명은 실패하고
Figure pct00025
은 D의 원소임이 확인되지 않는다.
이는 머클 트리와 그 루트로 표현되는 데이터 집합의 일부로서 일부 데이터에 대한 존재 증명을 제공하기 위한 효율적인 메커니즘이다. 예를 들어, 데이터
Figure pct00026
가 블록체인 트랜잭션에 대응하고 루트 R가 블록 헤더의 일부로 공개적으로 사용 가능하면, 트랜잭션이 해당 블록에 포함되었음을 신속하게 증명할 수 있다.
예시적인 머클 트리의 일부로서 D1의 존재를 인증하는 프로세스는 도 12에 도시되어 있으며 머클 경로를 사용하여 루트 R로 표시되는 트리에서 데이터 블록 D1의 머클 존재 증명을 도시한다. 이는 주어진 블록 D1 및 루트 R에 대해 머클 증명을 수행하는 것이 필요한 최소 수의 해시 값만 사용하여 머클 트리를 '상향'으로 효과적으로 횡단한다는 것을 보여준다.
본 발명은 이러한 기술을 사용하여 더욱 효율적이고 안전한 검증 해결책을 제공하며, 이제 이에 대하여 논의한다.
간편 검증 지불( SPV )
본 발명이 개선된 SPV 해결책을 제공하므로, 이제 참조의 용이성을 위하여 공지된 SPV 검증 기술의 개요를 제공한다. 다음에서, 일부 상품의 판매 시점(point-of-sale)에서 거래를 원하는 앨리스(고객)와 밥(판매자)을 고려한다. 우리는 나카모토 백서("비트코인: 피어-투-피어 전자 화폐 시스템", 사토시 나카모토, [2008] www.bicoin.org/bitcoin.pdf)에 설명된 바와 같이, 전통적인 방법을 사용하여 간편 지불 검증(SPV)을 사용하여 이러한 상호 작용이 어떻게 발생하는지 조사한다. 동일한 상호 작용이, "발명의 개요"라는 제목의 섹션에서, 본 발명의 예시적인 실시예와 관련하여 이후에 설명된다. 두 경우 모두, 3개의 블록체인 트랜잭션(Tx)의 역할을 고려한다. 두 개의 트랜잭션은 앨리스가 소유한 지출 가능한(spendable) 출력(UTXO)을 갖는다.
· Tx1-지출 가능한 출력 (vout-1)을 갖는 트랜잭션
· Tx2-지출 가능한 출력 (vout-0)을 갖는 트랜잭션
이러한 트랜잭션 Tx1, Tx2는 본원에서 일부 후속 트랜잭션, 예를 들어 Tx3의 입력에 의해 지출되는 출력을 포함하는 트랜잭션의 간결한 표현법으로 입력 트랜잭션으로 지칭될 것이다.
제3 블록체인 트랜잭션은 지불 트랜잭션이다.
· Tx3 -두 개의 입력으로서 vout-0 및 vout-1과 밥에게 지불하는 한 개의 출력을 사용하는 지불(이전) 트랜잭션. 발명의 간단한 설명을 위하여 두 개의 입력과 한 개의 출력만이 있다.
이러한 세 개의 트랜잭션과 이들을 블록(헤더)에 관련시키는 데 사용할 수 있는 머클 경로가 도 8에 개략적으로 도시되어 있다.
SPV의 기본 개념은 나카모토 백서에서부터 존재하였으며 원래 비트코인 클라이언트(v 0.1, 2009)에서 구현되었다. 본질적으로, SPV는 비트코인 블록체인의 두 가지 속성을 사용한다.
1. 주어진 트랜잭션이 머클 트리에 포함되고 머클 루트로 표시되는지 검증하는 데 쉽게 사용할 수 있는 머클 증명; 및
2. 트랜잭션의 머클 트리의 머클 루트를 포함하여 트랜잭션 블록을 나타내는 블록 헤더.
이 두 속성을 결합함으로써 경량 비트코인 클라이언트는 네트워크에서 트랜잭션이 처리되었는지 검증하기 위하여 전체 블록이 아니라 전체 블록체인에 대한 블록 헤더의 사본만을 유지하면 된다. 주어진 트랜잭션이 처리되고 블록에 포함되었는지 검증하려면, SPV 클라이언트는 다음만이 필요하다:
· 최신 블록 헤더의 전체 목록;
· 해당 트랜잭션에 대한 머클 경로.
속성 1에서 SPV 사용자는 위의 섹션에서 설명한 대로 머클 경로 인증 증명을 수행하기만 하면 주어진 트랜잭션이 머클 루트로 표시되는 머클 트리의 일부인지 검증할 수 있음을 알 수 있다. 그런 다음, 속성 2에서 SPV 클라이언트가 이 머클 루트를 포함하는 유효한 블록 헤더를 갖는 경우 트랜잭션이 또한 블록체인 내 블록의 일부임을 알 수 있다. 비트코인에서 이러한 유형의 지불 검증을 수행하는 것을 본원에서 'SPV 확인' 수행으로 지칭할 것이다.
나카모토가 지정한 이 SPV 메커니즘은 판매 시점(point-of-sale)을 포함하여 SPV 클라이언트 구현의 기존 방법을 알려준다. 중요하게는, SPV 구현의 최신 기술은 사용자가 지불이 블록에 포함되었음을 (블록체인에서 적절한 깊이, 예를 들어 6까지) 확인함으로써 지불을 받았는지 검증하는 패러다임을 기반으로 한다. 실제로, 이것은 트랜잭션이 채굴되었는지 검증하기 위한 브로드캐스팅 후 확인( post-broadcast check)이다.
대조적으로, 본 발명은 브로드캐스팅 전에( prior to its broadcast ) 트랜잭션의 입력에 대해 필요한 SPV 확인을 수행할 것을 요구한다. 이러한 강조점의 변화는 무효 트랜잭션을 처리할 때 네트워크의 부담과 트래픽을 크게 줄인다.
기존 SPV 시스템에서 두 번째로 중요한 패러다임은 SPV 확인에 필요한 머클 경로를 얻기 위해 SPV 클라이언트가 네트워크의 전체 노드를 질의해야 한다는 것이다. 이는 비트코인 개발자 가이드(https://bitcoin.org/en/developer-guide)에서 볼 수 있으며, "SPV 클라이언트는 머클 루트 및 연관된 트랜잭션 정보를 알고 있으며, 전체 노드로부터 각 머클 분기를 요청한다"고 명시한다.
본 개시의 실시예는 경량 비트코인 클라이언트 사용자가 소유한 미지출 트랜잭션 출력과 관련된 머클 경로의 자신의 사본을 보관, 유지 또는 적어도 접근할 수 있도록 규정함으로써, 네트워크에 대한 이러한 부담을 제거하는 SPV 확인을 포함하는 메커니즘 및 방법을 제공한다.
(트랜잭션 시점에서) SPV를 구현하는 전통적인 방법은 다음과 같으며, 도 9를 참조한다.
[1] 메시지: 밥이 앨리스에게
· 밥(판매자)은 앨리스(고객)에게 자신의 공개 키 주소를 보낸다. 그의 메시지는 또한 밥이 선택한 리딤 스크립트(redeem script)의 해시로 제공되는 다른 지출 조건 외에 지불해야 할 금액도 포함할 수 있다.
· 앨리스는 또한 지불 트랜잭션(Tx3)의 트랜잭션 ID(TxID3)를 밥(미도시)에게 전달한다.
[2] P2P 네트워크는 앨리스와 밥 사이의 교환을 중재한다.
[2.i] 메시지: 앨리스에서 P2P 네트워크로
· 앨리스는 Tx3을 네트워크에 브로드캐스팅한다.
[2.ii] 메시지: 밥에서 P2P 네트워크로
· 밥은 네트워크에 질의하여 Tx3가 블록체인으로의 채굴에 대해 허용되는지 확인한다.
· 밥은 지불이 네트워크에서 유효한 것으로 간주되는 것으로 만족할 때까지 계속 질의 [2.ii]를 보낸다. [2.i]가 발생하기 전에 질의를 시작할 수 있음을 유의한다.
· 밥이 만족하면, 어느 당사자도 다음 블록이 채굴될 때까지 기다리지 않고, 트랜잭션을 완료된 것으로 취급할 수 있다.
[3] SPV 확인(메시지): 밥에서 P2P 네트워크로
· 밥은 다음 블록이 채굴될 때까지 기다렸다가 네트워크에서 브로드캐스팅될 때 새 블록 헤더를 다운로드한다.
· 밥은 네트워크에 'SPV 확인' 요청을 보낸다. 이는 Tx3에 대응하는 머클 경로를 최근 채굴된 블록의 머클 루트에 연결하는 머클 경로에 대한 요청이다.
· 네트워크가 밥에게 머클 경로를 제공할 수 있으면, 그는 자신의 SPV 지갑을 사용하여 머클 증명을 직접 계산하고 지불 Tx3이 처리되었는지 확인할 수 있다.
이 통신 흐름은 도 9에 도시되어 있다. [2.i], [2.ii] 및 [3]은 P2P 네트워크에 의해 중재되므로 네트워크의 트래픽에 기여함을 유의하여야 한다. 또한 기존 SPV 패러다임에서는 다음과 같이 필수적인 SPV 확인 [3]이 수행된다는 점을 유의하여야 한다:
· 지불(Tx3)이 제출된 ;
· 지불(Tx3) 자체에 대해;
· 머클 경로를 제공하는 다른 네트워크 피어의 도움으로.
이제 이 공지의 접근법을 본 발명의 것과 대조한다.
본 개시의 실시예의 개요
본 개시의 실시예는 저대역폭 SPV 시스템을 사용하여 블록체인 네트워크(이하 편의상 "비트코인" 네트워크라고 지칭함)에서 검증을 위한 향상된 보안 해결책을 제공한다. 발명의 실시예에 따르면, 자원의 송신자(예를 들어, 고객)는 트랜잭션이 생성 및/또는 수신자(예를 들어, 판매자)에 의해 수락되기 위해 온라인 상태일 필요가 없다. 수신자만이 온라인일 필요가 있다. 편의와 참조의 용이함을 위하여 "송신자" 대신 "고객" 또는 "앨리스"를, "수신자" 대신 "판매자" 또는 "밥"이라는 용어를 사용할 것이다.
본 발명은 기존의 SPV 트랜잭션과 관련하여 당사자 간의 새로운 통신 흐름을 사용하며, 이는 판매자의 지갑만이 네트워크에 연결될 것을 요구한다. 이는 판매자의 지갑이 고객이 제공해야 하는 정보, 예를 들어 변경 주소, 서명 등을 갖는 템플릿("불완전한 트랜잭션"으로 지칭될 수 있음)을 생성함으로써 달성된다. 판매자가 이러한 요청 정보를 고객으로부터 받으면, 트랜잭션을 네트워크에 브로드캐스팅한다.
따라서, 발명은 비트코인 네트워크에서 간편 지불 검증 동안 거래 당사자와 네트워크 사이의 다음과 같은 통신 및 교환 프로세스의 근본적인 변화를 야기한다:
판매자 -> 고객 -> 네트워크 -> 판매자
로부터
판매자 -> 고객 -> 판매자 -> 네트워크
로.
앨리스와 밥은 예를 들어 WO 2017145016에 설명된 것과 같은 비밀 공유 프로토콜을 사용하여 메시지를 안전하게 교환할 수 있다.
이러한 프로세스의 변화는 고객 지갑과 판매자 지갑 모두에 대해 새로운 디자인이 필요한 기술적인 문제를 야기한다. 이는 기존 배열에 대한 중요한 아키텍처 변경이다. 따라서, 발명의 실시예는 적어도 다음을 제공한다:
1. 앨리스를 위한 새로운 고객 지갑("오프라인 지갑"으로 지칭함):
이는 앨리스의 공개 키, 개인 키, 지출 가능한 출력을 포함하는 트랜잭션, 모든 블록 헤더 및 중요하게는 저장된 트랜잭션의 머클 경로를 저장한다.
(앨리스가 네트워크에 연결해야 하는 요구 사항을 제거함)
2. 밥을 위한 새로운 판매자 지갑("판매 시점(PoS) 지갑"으로 지칭함):
이는 밥의 공개 키와 모든 블록 헤더를 저장한다.
이제 이러한 구성 요소에 대한 자세한 설명을 제공한다.
발명의 실시예에 따라 (트랜잭션 시점에서) SPV를 구현하기 위한 예시적인 방법이 도 10을 참조하여 다음과 같이 제공된다:
[1] 메시지: 밥이 앨리스에게
· 밥은 앨리스에게 지불 트랜잭션 템플릿(템플릿 Tx3)을 보내고 앨리스에게 다음의 정보를 요청한다.
o 앨리스가 지불(Tx3)에 대한 입력으로 지출하기를 원하는 적어도 하나의 출력을 포함하는 모든 입력 트랜잭션(Tx1 및 Tx2)에 대한 전체 트랜잭션 데이터;
o 모든 입력 트랜잭션(Tx1 및 Tx2)을 각 블록 헤더와 연관된 각 머클 루트에 연결하는 이에 대한 머클 경로.
o 완료된(즉, 채워진 템플릿) 지불 트랜잭션(Tx3).
· 밥은 그의 주소를 보내는 것이 아니라, 앨리스에게 정보를 요청하는 것임을 유의한다.
[2] 메시지: 앨리스가 밥에게
· 앨리스는 요청된 정보를 밥에게 보낸다.
o 앨리스가 지불(Tx3)에 대한 입력(들)로 지출하기를 원하는 적어도 하나의 출력을 포함하는 모든 입력 트랜잭션(Tx1 및 Tx2)에 대한 전체 트랜잭션 데이터;
o 모든 입력 트랜잭션(Tx1 및 Tx2)을 각 블록 헤더에 연결하는 이에 대한 머클 경로.
o 완료된(즉, 채워진 템플릿) 지불 트랜잭션(Tx3). 템플릿을 채우는 것에 추가하여, 앨리스는 또한 자신의 서명을 제공한다.
[3] SPV 확인(로컬): 밥
· 밥은 다음을 사용하여 입력 트랜잭션(Tx1 및 Tx2)에 대한 SPV 확인을 수행한다:
o 트랜잭션(Tx1 및 Tx2);
o 대응하는 머클 경로(Path 1 및 Path 2);
o 밥의 블록 헤더 로컬 목록
· 이러한 검사는 밥에 의해 로컬로 수행되며 P2P 네트워크를 거치지 않는다.
· 바람직한 실시예에서, 이 단계에서 밥이 또한 앨리스에게서 받은 지불 Tx3에 대한 적절한 확인을 수행하여 다음을 보장한다:
o 지불(Tx3)이 밥이 예상한 것인지;
o 앨리스의 서명(들)이 이 트랜잭션에 대해 유효한지.
[4] 메시지: 밥에서 P2P 네트워크로
· 밥은 지불 트랜잭션(Tx3)을 P2P 네트워크에 브로드캐스팅한다. 기존 패러다임에서는, 앨리스가 트랜잭션을 네트워크에 제출하였을 것이다.
· 이는 Tx3에 대한 모든 입력에 대한 SPV 확인 [3]이 긍정적인 경우에만 수행된다.
[5] SPV 확인(메시지): 밥에서 P2P 네트워크로
· 이 단계는 SPV 방법의 기존 패러다임(앞서 참조)의 단계 [3]과 동일하다.
이 통신 흐름은 도 10에 도시되어 있다. 단지 [4]와 [5]만 P2P 네트워크에 의해 중재된다는 점을 유의하여야 한다. 단계 [5]는 기존 SPV 기술의 반복에 불과하며 제안하는 방법의 필수 특징이 아니다 . 이는 완전성 및 기존 패러다임과 본 발명 사이의 구별을 위해 본원에 포함된다.
본 발명의 실시예에 따르면, 필수적인 SPV 확인[3]이 다음과 같이 수행된다는 점을 유의한다.
· 지불 트랜잭션(Tx3)이 제출되기 ;
· 지불 트랜잭션(Tx3)에 대한 입력 트랜잭션(Tx1 및 Tx2)에 대해;
· 머클 경로를 제공하기 위한 네트워크 피어의 도움 없이(앨리스가 제공).
발명의 실시예의 특징은 다음을 포함하지만 이에 제한되지 않는다:
· 앨리스는 온라인 상태이거나 네트워크에 정보를 직접 제출할 필요가 없다. 이는 앨리스에게 더 신뢰할 만한 것이다. 또한 네트워크에 연결하는 기능이 없는 스마트 카드와 같은 디바이스를 사용할 수 있다.
· 머클 경로를 포함하면 밥이 앨리스의 유효하지 않은 입력을 신속하게 거부할 수 있다. 이는 유효하지 않은 머클 경로를 갖는 '스팸' 트랜잭션 제출을 거부하여 과도한 네트워크 트래픽을 완화한다.
· 밥은 네트워크에 대해 특히 빠른 연결을 보유할 수 있으므로 트랜잭션의 유효성을 더 빨리 검증할 수 있다.
· 밥은 앨리스가 서명할 트랜잭션을 생성하므로 트랜잭션의 내용을 더 많이 제어할 수 있고, 예를 들어, 트랜잭션이 네트워크에서 수락되도록 보장하기 위해 트랜잭션 수수료를 더 많이 지불하도록 선택할 수 있다.
· 밥의 지갑은 개인 키를 포함할 필요가 없다. 이렇게 하면 권한이 없는 제3자가 개인 키에 접근하거나 훼손할 수 없으므로 보안이 강화된다.
· 네트워크에 트랜잭션을 제출하는 책임은 밥에게 있다.
· 앨리스의 SPV 지갑에는 개인 키와 트랜잭션 서명 기능이 있어야 한다. 따라서 타원 곡선 점 곱셈을 수행하기 위한 충분한 처리 능력이 있어야 한다.
이제 발명의 다양한 구성요소를 더 자세히 고려한다.
오프라인 SPV 지갑
오프라인 SPV의 실시예는 도 1에 개략적으로 나타나 있으며 다음과 같은 특징을 포함한다.
1. TX - 앨리스가 이용할 수 있는 미지출 트랜잭션 출력을 포함하는 사전 로드된 전체 트랜잭션 데이터. 머클 경로와 결합하여 이 전체 트랜잭션 데이터는 앨리스가 지출하는 트랜잭션이 유효하다는 머클 증명을 구성한다. 전체 트랜잭션을 해시하면 앨리스가 완료하려는 새 트랜잭션에 대한 입력 데이터의 일부로 필요한 트랜잭션 ID(TXID)가 제공될 것이다. 밥은 TXID가 실제로 트랜잭션의 해시인지 검증할 수 있어야 하므로 TXID를 제공하는 것만으로는 충분하지 않다는 점을 유의한다. 이는 그녀가 밥에게 전체 트랜잭션 데이터를 제공하는 경우에만 가능하며, 따라서 그녀는 이를 저장하거나 최소한 필요할 때 접근할 수 있어야 한다.
2. 개인/ 공개 키 - 지갑은 트랜잭션 출력에 서명하기 위해 개인 키 집합에 접근할 수 있어야 하며, 또한 트랜잭션 수행 시 변경 주소를 지정하기 위해 공개 키에도 접근할 수 있어야 한다.
3. 머클 경로 - 트랜잭션 출력(UTXO)을 포함하는 각 트랜잭션의 (완전한) 머클 경로. 이는 판매자의 판매 시점 지갑에서 TX가 유효한지 검증하는 데 사용될 것이다. 이 지갑에서 제공하는 머클 증명은 이중 지출을 방지하지 못하지만, 스팸 공격에 대한 빠른 실패(fail-fast) 메커니즘으로 작동하여 지갑의 강건성과 보안을 향상시킨다는 점을 유의하여야 한다.
4. 최소 처리 - 오프라인 SPV 지갑은 미지출 트랜잭션을 지출하기 위해 서명을 필요로 한다. 이를 위해서는 오프라인 지갑(및 지갑이 설치된 디바이스)이 ECDSA와 같은 암호화 알고리즘을 구현할 수 있어야 하며, 타원 곡선 점 곱셈을 수행하고 해시 함수를 계산할 수 있도록 충분한 처리 능력이 필요함을 의미한다.
5. 블록 헤더(선택 사항) - 오프라인 SPV 지갑은 판매 시점 SPV 지갑에 대한 지불이 처리되었는지 검증하기 위해 블록 헤더를 포함하기를 원할 수 있다. 또한 판매 시점 지갑과 상호 작용한 후 TXID 및 머클 경로를 저장해야 한다.
하나 이상의 실시예에서, 위의 사항은 온라인 및 오프라인 상태 또는 기능 모두를 갖는 지갑으로서 구현될 수 있다. 이는 지갑이 UTXO 및 머클 경로 집합을 업데이트해야 할 때 유리할 수 있다.
이러한 실시예에서, 앨리스의 지갑은 기존 SPV 지갑과 동일한 방식으로 네트워크에 일시적으로 연결하여 데이터를 다운로드할 수 있다. 이는 도 2에 도시되어 있으며, 편의상 온·오프라인 SPV 지갑으로 지칭할 수 있다.
앨리스의 지갑이 연결되면 전체 트랜잭션, 머클 경로 및 블록 헤더를 다운로드할 수 있다. 1개의 입력과 2개의 출력이 있는 당업계에 알려진 표준 P2PKH 트랜잭션은 226바이트이고, 블록 헤더는 80바이트이며, 100,000개 트랜잭션을 포함하는 블록의 트랜잭션에 대한 머클 경로는 약 560바이트이다. 세 가지를 모두 결합하면 앨리스의 SPV 지갑을 업데이트할 때 새로운 입력당 1MB 미만의 데이터만 다운로드하면 되는 것을 의미한다. 이는 낮은 대역폭 연결에서도 달성할 수 있어 매우 유리하다.
이 구현을 사용하는 지갑은 필요할 때 네트워크에 연결할 수 있는 기능을 유지하면서 블록체인을 사용하여 오프라인 지불 및 검증을 용이하게 할 수 있다는 이점을 제공하므로 유리하다. 추가 온라인 상태는 블록 헤더 목록을 업데이트하고, 새로운 TX 및 연관된 머클 경로를 얻고, 필요할 때 트랜잭션을 보내는 데 사용할 수 있다.
소프트웨어 애플리케이션 및 비접촉식 지불 카드를 포함하여 온·오프라인 SPV에 대한 여러 가능한 사용 사례가 있다.
PoS SPV 지갑
PoS SPV 지갑은 위에서 설명한 것처럼 오프라인 SPV 지갑을 사용하는 앨리스로부터의 이전을 밥이 수락하는 데 필요한 최소한의 기능을 달성하도록 설계되었다. 이러한 요구 사항은 밥이 다음을 수행할 수 있어야 한다는 것이다.
· 판매 시점 트랜잭션 템플릿 생성
· 블록 헤더와 연관된 머클 증명 계산
· UTXO 집합의 질의를 포함하여, 네트워크에 연결 및 브로드캐스팅
· 지불을 받기 위한 공개 키 주소 관리
· 앨리스의 UTXO가 포함된 전체 TX 데이터 목록 업데이트
위의 모든 요구 사항은 도 3에 도시된 개략적 설계에 따라 PoS SPV 지갑에서 충족되며 다음 특징을 포함한다.
1. 블록 헤더 - PoS SPV 지갑은 블록체인 내의 블록에 대응하는 블록 헤더 데이터 목록의 최신 사본을 유지 관리한다. 트랜잭션과 그 머클 경로가 제시되면, PoS SPV 지갑은 머클 루트에 대한 반복적인 해시에 의해 간단한 머클 증명을 수행할 수 있다.
이 루트를 관련 블록 헤더의 것과 비교함으로써, 밥은 오류 또는 사기성 지불을 감지하기 위한 효율적인 빠른 실패 메커니즘을 갖게 된다.
2. 네트워크 연결성 - PoS SPV 지갑은 네트워크에 연결할 수 있는 기능을 갖는다. 이는 서명된 새 트랜잭션을 블록체인 네트워크에 브로드캐스팅하고 현재 UTXO 집합 내에서 특정 UTXO의 존재를 질의하는 기능을 포함하지만 이에 제한되지 않는다.
3. 공개 키 저장 - PoS SPV 지갑은 밥이 자산(들) 또는 지불을 받기 원하는 공개 키 주소만 저장하면 된다. 이는 예를 들어 (WO 2017/145016에 개시된 것과 같은) 결정성 비밀을 사용하거나 계층적 결정성 지갑 구조를 사용하는 것과 같은 여러 방식으로 수행될 수 있다.
판매 시점에서 연관된 개인 키가 아닌 공개 키 주소만 저장함으로써, 밥의 개인 키가 훼손되기 쉽지 않으므로 '카드 제시' 트랜잭션에 대한 보안이 크게 향상되고, 따라서 자금이 보호된다.
4. 최소 처리 - PoS SPV 지갑은 앨리스가 작성한 템플릿을 기반으로 머클 증명의 최소 처리만을 수행하여야 한다.
이는 전체 블록을 반복하고 처리하여 머클 경로를 독립적으로 얻는 부담을 크게 줄여, 판매 시점/트랜잭션 프로세스를 촉진하고, 네트워크를 통한 자원 전송을 촉진하며, 밥과 앨리스 모두의 효율성을 향상시킨다.
적어도 하나의 실시예에서, 판매 시점 SPV 지갑은 밥이 블록체인 이력 내의 모든 트랜잭션에 대해 머클 경로에 대한 SPV 확인을 항상 수행할 수 있도록 보장하기 위해 블록 헤더의 전체 목록 사본을 유지한다는 점을 유의하여야 한다. 그러나, 밥이, 예를 들어, 지출 가능한 출력이 있는 트랜잭션이 포함되지 않은 블록에 대응하는 것과 같이, 블록 헤더의 전체 목록을 유지하지 않기로 선택한 경우일 수도 있다. 이 경우, 밥은 자신이 아직 갖고 있지 않은 블록 헤더를 얻기 위해 때때로 제3자에게 질의해야 할 수도 있음을 이해하여야 한다. 다음 섹션에서는, 하나 이상의 실시예에 따라 밥이 앨리스에게 보내는 판매자 판매 시점 템플릿을 자세히 설명하고, 밥이 모든 블록 헤더의 완전한 목록을 가지고 있지 않은 경우, 그녀의 미지출 트랜잭션 출력과 연관된 블록 헤더에 대한 요청을 이 템플릿으로 통합할 수 있음을 이해하여야 한다.
PoS SPV 지갑 템플릿
도 4를 보면, 밥의 PoS SPV 지갑은 앨리스의 오프라인(또는 오프/온라인) 지갑에 다음 형식으로 정보를 요청한다.
1. TX/ UTX - 앨리스의 지출 가능한 트랜잭션의 전체 트랜잭션 데이터(위에서 설명한 바와 같이).
2. 트랜잭션 템플릿 - (적어도) 밥의 출력 주소와 앨리스로부터 요청되는 암호화폐의 양을 포함하는 부분적으로 완전한 블록체인 트랜잭션. 트랜잭션이 완료되기 위해서는, 앨리스의 오프라인 지갑은 (적어도) 그녀의 미지출 트랜잭션 출력의 TXID, 사용할 각 지출 가능한 TX 출력에 대한 유효한 서명 및 변경 주소를 제공하여야 한다.
3. 머클 경로 - 전체의 완료된 트랜잭션과 결합하면, 앨리스의 TX가 블록에 포함되어 유효한지 검증하기 위한 머클 증명을 구성할 수 있다.
가장 간단한 경우, 앨리스는 P-o-S에서 상품을 교환하는 대가로 밥에게 유효한 지불 트랜잭션(Tx3)을 제공하여야 함을 유의한다. 발명의 적어도 하나의 실시예에 따르면, 밥은 이것을 용이하게 하기 위해 판매자 템플릿을 제공하지만 템플릿이 사용되지 않는 것도 생각할 수 있다. 예를 들어, 앨리스가 이미 가격과 밥의 주소를 알고 있다면, 그녀의 지불을 구성하고 밥에게 직접 전송할 수 있다. 앨리스는 템플릿 자체를 명시적으로 '채우지(filling-in)' 않고도 필요한 서명 및 아웃포인트(outpoint) 참조를 또한 제공할 수 있다.
전체 트랜잭션(도 4의 (1) 참조)과 머클 증명(도 4의 (3) 참조)은 앨리스가 보내고 밥이 처리할 수 있다. 이는 앨리스가 밥의 템플릿을 완성하는 것(도 4의 (2) 참조)과 병행하여 독립적으로 수행될 수 있다.
지연된 트랜잭션 제출:
온라인 소매업체와 같은 일부 경우에는, 지불 트랜잭션을 정기적인 간격으로 일괄 제출하는 것이 유리할 수 있다. 이는 회계 목적을 위해 또는 발생하는 트랜잭션 수수료의 총 값을 줄이기 위해 개선된/최적의 네트워크 연결을 사용할 수 있을 때까지 기다리는 것과 같은 기술적 이유에서 유용할 수 있다.
판매자 밥에게 이것은 추가적인 과제를 제시하지 않지만, 고객 앨리스에게는 밥이 서명된 트랜잭션을 네트워크에 최종적으로 제출할 때까지 앨리스의 변경 주소와 연관된 암호 화폐를 그녀가 사용할 수 없음을 의미한다.
문제에 대한 해결책은 밥이 앨리스에게 제공하는 템플릿 내에서 트랜잭션 처리의 인위적인 지연을 지정하는 것이다. 앨리스의 오프라인 지갑은 이를 네트워크에 일괄 트랜잭션을 제출하기 전에는 밥에 대한 지불로 인해 생성된 변경 사항을 판매자가 미리 정한 시간 동안 판매자가 지출하고자 사용할 수 없다는 의미로 해석할 수 있다. 판매자가 일괄 트랜잭션을 제출하기 전에 이중 지출의 증거를 찾으면 구매한 상품의 배송이 취소될 수 있으므로, 이 시나리오에서 밥에게는 추가 위험이 없다는 점에 유의해야 한다.
PoS SPV 지갑 확장 - 분할 지갑
위에서 설명한 PoS SPV 지갑의 확장으로, 단일 분할 지갑(split-wallet) 시스템으로 취급될 수 있는, 서로 다른 기능을 가진 여러 개의 연결된 지갑을 밥이 활용하는 것이 바람직할 수 있다.
따라서, 발명의 특정 실시예는 하나 이상의 판매 시점 지갑을 조정할 수 있는 더욱 진보된 마스터 SPV를 도입함으로써 판매 시점(P-o-S) SPV의 기본 개념 상에 구축된다. 마스터 SPV와 하나 이상의 P-o-S SPV의 조합은 본원에서 "분할 지갑" 시스템으로 간주될 것이다.
발명의 실시예에 따른 분할 지갑 시스템은 마스터 SPV 구성요소에 의해 조정되는, 지불 단말의 역할을 하는, 적어도 하나의 PoS SPV 지갑을 포함한다. 마스터 SPV의 기능을 통해 지갑은 다음을 할 수 있다.
· P-o-S SPV의 공개 키 주소와 연관된 개인 키 저장.
· 블록 헤더와 연관된 머클 증명 계산.
· UTXO 집합의 질의를 포함하여, 블록체인 네트워크에 연결 및 브로드캐스팅.
· 지불 단말 역할을 하는 적어도 하나의 PoS SPV 지갑과 통신.
모든 간편 지불 검증 시스템과 마찬가지로, 마스터 지갑은 주어진 트랜잭션에 대한 머클 존재 증명을 확인하는 것과 같은 유효한 SPV의 모든 기본 기능을 수행할 수 있어야 한다. 이는 밥이 판매 시점에서 브로드캐스팅하는 임의의 트랜잭션이 네트워크에서 수락되고 블록에 포함되었는지 확인할 수 있음을 의미한다. 그러나 중요하게는, 본 발명의 실시예에 따른 마스터 지갑은 적어도 하나의 더 단순한 PoS SPV 지갑과 통신하고 이에 의해 처리되는 지불을 조정한다.
마스터 SPV가 밥의 지불 주소에 대한 개인 키를 저장하는 것이 유리할 수 있다. 이를 통해 밥은 분할 지갑 시스템을 사용할 때 그의 지불 처리에 대해 훨씬 더 강력한 보안을 유지할 수 있다. 그러나, 밥의 개인 키를 저장하는 것은 마스터 지갑의 선택적 기능이며 주요 기능은 여러 판매 시점 지갑으로부터 지불을 집계하고 조정하는 것이다.
기본 마스터 SPV만 사용하는 이 판매자 분할 지갑 구현에서는 판매자-고객 상호 작용이 엄격하게 수정되지 않는다. PoS SPV 지갑은 여전히 머클 경로에 대해 동일한 확인을 수행하고 UTXO 집합에 대해 네트워크에 동일한 질의를 수행하여야 한다. 프로세스의 차이점은 다음을 포함한다:
· 앨리스와 밥이 사용할 P-o-S SPV 단말 선택.
· 마스터 SPV는 백그라운드에서 블록체인과 지속적으로 동기화되어야 한다.
· 밥의 지불 주소와 연관된 개인 키는 마스터 지갑에서 전용 관리를 받는다. 이는 판매 시점 지갑에 공개 키 주소만 저장함으로써 이전에 도입된 보안에 구조를 추가한다.
분할 지갑 구현의 일부로 사용되는 마스터 지갑은 일반적으로 보안 문제와 실용주의 모두를 위해 회사 백오피스 또는 본사와 같은 판매 시점 SPV와 별도의 위치에 상주한다는 점을 유의하여야 한다. 판매자-고객 상호 작용은 도 5와 같이 시각화할 수 있다.
논의한 바와 같이, 판매자 분할 지갑의 일부로 단순한 마스터 SPV를 사용하는 이 구현은 밥에게 유용하지만, 분할 지갑이 적절한 수준의 이중 지출 보호를 제공하고자 한다면 UTXO 집합의 질의에 응답하기 위하여 여전히 네트워크에 의존한다.
이것은 마스터 SPV가 멤풀(mempool)의 자체 사본을 또한 유지하는 더 강력한 유형의 마스터 지갑으로 대체되는 하나 이상의 실시예에 따라 해결될 수 있다. 이러한 마스터 지갑이 장착된 분할 지갑 아키텍처는 고객의 UTXO가 현재 UTXO 집합의 일부인지 확인하기 위해 네트워크에 질의할 필요가 없다.
자체 멤풀 복사본이 있는 마스터 지갑은 기존의 비채굴 '전체 노드' 클라이언트와 유사하게 기능하지만, 유리하게는 블록체인의 전체 사본을 유지할 필요가 없다. 대신, 이러한 유형의 마스터 지갑은 블록 헤더와 자체 멤풀 로컬 사본만을 유지한다. 멤풀의 사본은 네트워크와 동기화하여 로컬로 구성하거나 신뢰할 수 있는 제3자 또는 서비스로부터 제공될 수 있다.
자체 멤풀 사본을 갖는 마스터 SPV 지갑을 사용하여 분할 지갑을 구현하면 판매자의 관점에서 판매자-고객 상호 작용이 변경된다.
도 5와 관련하여 위에서 설명한 상호 작용의 주요 변경 사항은 단계 4 및 5에서 나타난다.
· 단계 4에서, 판매자는 UTXO 집합의 추가 질의를 추가하지 않고, 네트워크에 트랜잭션만을 브로드캐스팅한다.
· 단계 5에서, 판매자는 이제 충돌 트랜잭션에 대한 멤풀을 확인하여 고객 트랜잭션의 유효성에 대한 자체 확인을 수행한다. 그런 다음 판매자는 동기화된 멤풀 사본의 상태에 기반하여 수행할 작업을 결정할 수 있다.
사용 중인 발명의 예시
앨리스가 밥에게서 무언가를 사고 싶어하는 일반적인 판매자-고객 상호 작용을 고려한다. 발명의 실시예에 따르면, 프로세스는 도 6을 참조하여 아래에 개략된 바와 같이 수행된다:
1. 밥은 부분적으로 완전한 블록체인 트랜잭션을 생성하고 앨리스에게 다음 정보를 요청한다. 이는 앨리스가 채울 수 있는 템플릿으로 함께 패키징될 수 있다.
a. 앨리스가 구매를 완료하기 위해 지출할 TX 출력
b. 앨리스의 (비트코인) 변경 주소
c. 앨리스의 서명
d. TX에 대한 머클 경로(이는 트랜잭션의 일부를 구성하지 않음)
2. 앨리스는 필요한 정보를 제공하여 템플릿을 완성한다.
3. 밥은 앨리스가 제공한 TX의 유효성을 확인하기 위해 머클 증명을 수행한다. 증명이 유효하지 않으면 밥은 앨리스의 TX가 블록체인에서 유효하지 않음을 알고 트랜잭션을 거부한다. 유리하게는, 이는 빠른 실패 메커니즘이다.
4. 밥은 완전한 트랜잭션을 네트워크에 브로드캐스팅하고 UTXO 집합을 질의한다.
a. 브로드캐스팅은 채굴자가 트랜잭션을 블록으로 채굴하려는 시도를 시작할 수 있게 한다.
b. 질의는 앨리스가 제공한 표면적으로 유효한 UTXO가 여전히 UTXO 집합에 있는지 여부를 묻는다.
이는 앨리스의 이중 지출을 방지하기 위한 메커니즘이다.
5. 네트워크는 밥의 UTXO 질의에 응답한다. 이는 밥이 다음 작업 과정 중 하나를 수행할 수 있도록 한다.
a. 앨리스의 UTXO가 여전히 UTXO 집합의 일부인 경우, 밥은 이중 지출의 위험을 최소화하면서 지불을 수락할 수 있다.
i. 밥이 감수하는 위험은 일정 시간 간격 τ 동안 이 질의로 네트워크 노드를 계속 폴링하여 최소화할 수 있다.
ii. 베이지안 분석(Bayesian analysis)을 활용하여 밥이 일부 신뢰 구간 내에서 정직한 대다수의 노드를 질의하는 것을 보장하도록 할 수 있다.
b. 앨리스의 UTXO가 UTXO 집합의 일부가 아닌 경우, 밥은 앨리스의 지불을 거부한다.
위에서 언급한 바와 같이, 발명의 실시예는 다양한 형태의 사용 및 구현에 적합하다. 이들은 예를 들어 지불 카드를 포함할 수 있다.
당업계에 알려진 바와 같이, 전통적인 SPV 지갑은 네트워크를 질의하여 수행하는 블록체인 내 깊이를 확인하여 트랜잭션이 이중 지출이 아님을 검증한다. 트랜잭션이 채굴자에 의해 유효성 검증되고 블록에 포함되면 트랜잭션은 1개의 확인을 받는다. 블록체인에 추가되는 모든 추가적인 블록은 확인을 1씩 증가시키고 새로운 확인이 있을 때마다 이중 지출의 위험이 감소한다. 기존 SPV 지갑은 6번의 확인이 있을 때까지 트랜잭션을 "n/unconfirmed"로 표시한다.
그러나 기본 6 확인 규칙은 비트코인의 기본이 아니다. 모든 판매자가 지불에 만족하기 전에 6블록(또는 1블록)이 생성되기를 기다리는 것을 원하는 것은 아니다. "0-conf"는 블록에 아직 포함되지 않은 트랜잭션을 나타내기 위해 당업계에서 사용되는 용어이다. 앨리스가 트랜잭션을 완료하면 그녀는 이를 네트워크에 브로드캐스팅하고 밥은 (최소한) 멤풀에서 트랜잭션을 찾을 수 있어야 한다.
본 발명은 트랜잭션을 브로드캐스팅하는 부담을 송신자 앨리스가 아닌 수신자 밥에게 전가하여 필요한 CPU를 최소화하고 앨리스의 경험을 개선한다. 밥은 앨리스의 네트워크 연결에 의존할 필요가 없으므로 트랜잭션 프로세스에 대해 더 높은 정도로 제어할 수 있지만, 앨리스의 보안을 훼손할 만큼의 제어는 아니다. 기본적으로 앨리스(만)이 디지털 서명을 제공하여 트랜잭션을 수락하거나 거부할 수 있는 권한을 가진다.
밥이 트랜잭션이 네트워크에 의해 중계되는 것을 볼 수 있고 멤풀에 있을 때에 0-conf에 단지 도달하므로 머클 경로 확인은 이중 지출을 방지하지 않는다. 대신, 이는 존재하지 않는 UTXO를 지출하려는 시도를 밥이 즉시 거부할 수 있도록 하는 빠른 실패 메커니즘으로 작동한다. 이는 밥이 스팸 공격의 중개자로 사용되는 것을 방지하기 때문에 유용하며, 특히 연결이 좋지 않은 경우 브로드캐스팅한 다음 전체 노드를 질의하는 데 몇 초 이상이 걸릴 수 있기 때문이다.
오프라인 지불이 ##활성화되면, 선불 스마트 카드와 같은 하드웨어를 비트코인 생태계에 통합할 수 있다. 지불 카드는 개인 키와 UTXO, 완전한 트랜잭션 및 머클 경로를 저장하기 위한 데이터 용량이 필요하다. 또한 ECDSA 서명 알고리즘을 구현하려면 약간의 처리 능력이 필요하다. 표 1은 출원 당시 이용할 수 있는 일부 전자 카드 유형 목록을 나타낸다.
최대 데이터
용량
처리 능력 카드 비용 (USD) 판독기/연결 비용
자기 띠 카드 140 bytes 없음 $0.20-$0.75 $750
집적회로
메모리 카드
1 kB 없음 $1-$2.50 $500
집적회로
프로세서 카드
8 kB 8-bit CPU
(향후 확장
최대 23비트)
$7-$15 $500
표 1: 일반적인 지불 카드 사양
이중 지출 보호
고객 앨리스가 상점에서 암호화폐를 실제 상품과 교환하기를 원한다고 가정한다. 전통적으로, 앨리스는 POS(point-of-sale)에서 블록체인 네트워크로 트랜잭션을 전송하고 판매자인 밥은 다음과 같이 이 트랜잭션을 볼 때에만 앨리스가 상품을 가지고 떠날 수 있도록 허용한다.
(a) 네트워크에서 수락한 것으로 소문이 되돌아오거나; 또는
(b) 블록(또는 n-conf의 경우 n 블록 깊이)에서 확인된다.
시나리오 (a)에서 밥은 앨리스의 지불 트랜잭션이 유효하고 채굴자가 이 지불을 블록으로 채굴하려고 시도한다는 것을 안다. 이는 앨리스가 원격으로 충돌 트랜잭션을 제출함에 의한 단순한 이중 지출로부터 밥을 보호하지는 않지만, 이 시나리오는 기존의 블록 헤더 기반 SPV와 호환된다.
시나리오 (b)에서 밥은 지불 트랜잭션이 유효하고 이중 지출되지 않았음을 모두 안다. 그러나, 이를 위해서는 밥이 전체 노드를 실행하고 현장에서 다음 블록(들)을 다운로드해야 한다. 또한, 앨리스가 상품을 가지고 지역을 떠날 때까지 비트코인 네트워크에서 평균 10분이 소요된다.
이 문제 진술에서, 완화하고자 하는 공격은 앨리스의 단순한 이중 지출이므로 밥에게는 0-conf 보안이 만족스럽다고 가정한다는 것을 유의하여야 한다. 하나 이상의 블록이 필요한 것은 전체 네트워크를 압도하는 제3의 상대방, 캐롤(Carol)의 다른 공격 벡터를 완화하고자 할 때이다.
다음의 표는 시나리오 (a)와 (b)가 어떻게 이러한 고객-판매자 상호 작용에 대해 독립적으로 수용 가능하지 않은지를 보여준다. 이 표는 시나리오 a) 및 b)의 트랜잭션 특징을 보여준다.
Figure pct00027
이는 이 당사자에게 전체 노드 요구 사항이 없음을 의미한다. 이러한 기준을 모두 충족하는 해결책만이 대부분의 트랜잭션에서 밥(판매자)과 앨리스(고객) 모두에게 수용 가능하다.
본원에 개시된 판매자 PoS 지갑의 실시예는 다음과 같은 이점을 제공한다.
· 판매자에 대한 이중 지출 보호
· 즉각(<<10초) 평균 트랜잭션 시간
· 고객과 판매자 모두 판매 시점에서 SPV 지갑을 사용할 수 있다.
Figure pct00028
발명의 실시예는 기존 SPV/암호화폐 트랜잭션 비율에 비해 상당한 개선이 될 성능 및 결과를 제공할 수 있고, 적어도 즉각성의 측면에서 기존의 칩-앤-핀/비접촉식 단말 지불 상호작용에 필적할 수 있는 것으로 예상된다.
더욱이, 발명은 또한 지불이 대략 1시간 내에 높은 수준의 확실성으로(즉, 6-conf) 정산되고 승인된 것으로 간주되도록 허용한다. 이는 최대 60일의 현재 지불 정산 시간, 즉 비자 및 마스터카드 정산 시간보다 훨씬 뛰어나다.
가변 위험
판매자인 밥은 판매 시점에 지불을 수락하기 위한 대기 시간(latency)을 보정할 수 있다. 최소 폴링 시간 간격 τ을 선택함으로써 그는 또한 자신이 수용할 수 있는 이중 지출 위험에 대한 확률적 상한을 설정한다. 이를 통해 판매자의 지불 처리 효율성과 유연성을 높일 수 있다.
또한, 밥은 템플릿을 생성할 때 트랜잭션에 대한 채굴 수수료를 설정할 수 있다. 누가 이 수수료를 지불하는지는 중요하지 않지만, 값은 판매자가 수용할 수 있는 수준으로 이중 지출 위험을 설정하기 위한 매개변수로 사용될 수 있다.
전체적으로 판매 시점 시간 지연과 트랜잭션에 대한 채굴 수수료는 사례별로 효율성과 위험을 효과적으로 보정할 수 있는 판매자가 설정할 수 있고 고객의 디지털 서명에 의해 동의될 수 있는 두 가지 매개변수이다. 이는 예를 들어 교환할 상품의 가치에 따라 달라질 수 있다.
이제 도 7로 돌아가면, 본 개시의 적어도 하나의 실시예를 실행하는 데 사용될 수 있는 컴퓨팅 디바이스(2600)의 예시적이고 단순화된 블록도가 제공된다. 다양한 실시예에서, 컴퓨팅 디바이스(2600)는 위에서 예시되고 설명된 임의의 시스템을 구현하는 데 사용될 수 있다. 예를 들어, 컴퓨팅 디바이스(2600)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터 또는 임의의 전자 컴퓨팅 디바이스로 사용하도록 구성될 수 있다. 도 7에 도시된 바와 같이, 컴퓨팅 디바이스(2600)는 하나 이상의 캐시 메모리 레벨 및 주 메모리(2608) 및 영구 저장소(2610)를 포함하는 저장 서브시스템(2606)과 통신하도록 구성될 수 있는 메모리 제어기를 갖는 하나 이상의 프로세서(집합적으로 2602로 라벨링됨)를 포함할 수 있다. 주 메모리(2608)는 도시된 바와 같이 동적 임의 접근 메모리(DRAM)(2618) 및 읽기 전용 메모리(ROM)(2620)를 포함할 수 있다. 저장 서브시스템(2606) 및 캐시 메모리(2602)는 본 개시에서 설명된 바와 같이 트랜잭션 및 블록과 연관된 세부 사항과 같은 정보의 저장을 위해 사용될 수 있다. 프로세서(들)(2602)는 본 개시에서 설명된 바와 같은 임의의 실시예의 단계 또는 기능을 제공하기 위해 이용될 수 있다.
프로세서(들)(2602)는 또한 하나 이상의 사용자 인터페이스 입력 디바이스(2612), 하나 이상의 사용자 인터페이스 출력 디바이스(2614) 및 네트워크 인터페이스 서브시스템(2616)과 통신할 수 있다.
버스 서브시스템(2604)은 컴퓨팅 디바이스(2600)의 다양한 구성요소 및 서브시스템이 의도된 대로 서로 통신할 수 있도록 하는 메커니즘을 제공할 수 있다. 버스 서브시스템(2604)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 실시예는 다중 버스를 이용할 수 있다.
네트워크 인터페이스 서브시스템(2616)은 다른 컴퓨팅 디바이스 및 네트워크에 대한 인터페이스를 제공할 수 있다. 네트워크 인터페이스 서브시스템(2616)은 컴퓨팅 디바이스(2600)의 다른 시스템으로부터 데이터를 수신하고 데이터를 전송하기 위한 인터페이스 역할을 할 수 있다. 예를 들어, 네트워크 인터페이스 서브시스템(2616)은 데이터 기술자가 디바이스를 네트워크에 연결하여 데이터 기술자가 데이터 센터와 같은 원격 위치에 있는 동안 디바이스로 데이터를 전송하고 디바이스에서 데이터를 수신할 수 있도록 할 수 있다.
사용자 인터페이스 입력 디바이스(2612)는 키보드; 통합 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스; 스캐너; 바코드 스캐너; 디스플레이에 통합된 터치스크린; 음성 인식 시스템, 마이크와 같은 오디오 입력 디바이스; 및 다른 유형의 입력 디바이스와 같은 하나 이상의 사용자 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)에 정보를 입력하기 위한 모든 가능한 유형의 디바이스 및 메커니즘을 포함하도록 의도된다.
하나 이상의 사용자 인터페이스 출력 디바이스(2614)는 디스플레이 서브시스템, 프린터, 또는 오디오 출력 디바이스 등과 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이와 같은 평면 패널 디바이스, 프로젝션 또는 다른 디스플레이 디바이스일 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)로부터 정보를 출력하기 위한 모든 가능한 유형의 디바이스 및 메커니즘을 포함하도록 의도된다. 하나 이상의 사용자 인터페이스 출력 디바이스(2614)는, 예를 들어, 그러한 상호 작용이 적절할 수 있는 경우 설명된 프로세스 및 변형을 수행하는 애플리케이션과의 사용자 상호 작용을 용이하게 하는 사용자 인터페이스를 표시하는 데 사용될 수 있다.
저장 서브시스템(2606)은 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하기 위한 컴퓨터 판독 가능 저장 매체를 제공할 수 있다. 하나 이상의 프로세서에 의해 실행될 때, 애플리케이션(프로그램, 코드 모듈, 명령)은 본 개시의 하나 이상의 실시예의 기능을 제공할 수 있고, 저장 서브시스템(2606)에 저장될 수 있다. 이러한 애플리케이션 모듈 또는 명령은 하나 이상의 프로세서(2602)에 의해 실행될 수 있다. 저장 서브시스템(2606)은 본 개시에 따라 사용되는 데이터를 저장하기 위한 저장소를 추가로 제공할 수 있다. 예를 들어, 주 메모리(2608) 및 캐시 메모리(2602)는 프로그램 및 데이터를 위한 휘발성 저장소를 제공할 수 있다. 영구 저장소(2610)는 프로그램 및 데이터를 위한 영구(비 휘발성) 저장소를 제공할 수 있으며, 플래시 메모리, 하나 이상의 솔리드 스테이트 드라이브, 하나 이상의 자기 하드 디스크 드라이브, 연관된 이동식 매체가 있는 하나 이상의 플로피 디스크 드라이브, 연관된 이동식 매체가 있는 하나 이상의 광학 드라이브(예를 들어, CD-ROM 또는 DVD 또는 블루레이) 및 다른 유사한 저장 매체를 포함할 수 있다. 이러한 프로그램 및 데이터는 본 개시에 설명된 바와 같은 트랜잭션 및 블록과 관련된 데이터뿐만 아니라 본 개시에 설명된 바와 같은 하나 이상의 실시예의 단계를 수행하기 위한 프로그램을 포함할 수 있다.
컴퓨팅 디바이스(2600)는 휴대용 컴퓨터 디바이스, 태블릿 컴퓨터, 워크 스테이션, 또는 아래에서 설명되는 임의의 다른 디바이스를 포함하는 다양한 유형일 수 있다. 추가적으로, 컴퓨팅 디바이스(2600)는 하나 이상의 포트(예를 들어, USB, 헤드폰 잭, 라이트닝 커넥터 등)를 통해 컴퓨팅 디바이스(2600)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(2600)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성된 복수의 포트를 포함할 수 있다. 따라서, 이 디바이스는 광학 신호를 처리를 위해 디바이스를 컴퓨팅 디바이스(2600)에 연결하는 포트를 통해 전송될 수 있는 전기 신호로 변환하도록 구성될 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 7에 도시된 컴퓨팅 디바이스(2600)에 대한 설명은 디바이스의 바람직한 실시예를 설명하기 위한 특정 예로서만 의도된다. 도 7에 도시된 시스템보다 더 많거나 더 적은 구성요소를 갖는 많은 다른 구성이 가능하다.
용어 "블록체인 트랜잭션"은 블록체인 네트워크를 통해 디지털 자원 또는 자산에 대한 제어의 이전을 달성하기 위하여 암호화 키의 사용을 구현하는 데이터 구조를 지칭하기 위하여 사용될 수 있다. 위에서 언급한 바와 같이, 트랜잭션이 블록체인에 기록되기 위해서는 i) 트랜잭션을 수신하는 제1 노드에 의해 유효성이 검증되어야 하며, 트랜잭션이 유효성 검증되면, 노드는 이를 네트워크의 다른 노드에 중계하고, ii) 채굴자가 만든 새 블록에 추가되어야 하며, iii) 채굴, 즉 과거 트랜잭션의 공공 원장에 추가되어야 한다. 채굴자가 수행하는 작업의 특성은 블록체인을 유지 관리하는 데 사용되는 합의 메커니즘의 유형에 의존함을 이해할 것이다. 작업 증명(PoW)이 원래 비트코인 프로토콜과 연관되어 있지만, 지분 증명(PoS; proof of stake), 지분 위임 증명(DPoS; delegated proof of stake), 용량 증명(PoC; proof of capacity), 경과 시간 증명(PoET; proof of elapsed time), 권한 증명(PoA; proof of authority) 등과 같은 다른 합의 메커니즘을 사용할 수 있음을 이해할 것이다. 서로 다른 합의 메커니즘은 노드 사이에서 채굴이 분산되는 방식에 따라 다르며, 블록을 성공적으로 마이닝할 확률은 예를 들어 채굴자의 해시 파워(PoW), 채굴자가 보유한 암호화폐의 양(PoS), 위임 채굴자에 점유된 암호화폐의 양(DPoS), 암호화 퍼즐에 대한 사전 결정된 해결책을 저장할 수 있는 채굴자의 능력(PoC), 채굴자에게 무작위로 할당된 대기 시간(PoET) 등에 의존한다.
일반적으로 채굴자에게는 블록 채굴에 대한 인센티브 또는 보상이 제공된다. 예를 들어, 비트코인 블록체인은 채굴자들에게 새로 발행된 암호화폐(비트코인)와 블록 내 트랜잭션과 연관된 수수료(트랜잭션 수수료)로 보상한다. 비트코인 블록체인의 경우, 발행되는 암호화폐의 양은 시간이 지남에 따라 줄어들고, 인센티브는 결국 트랜잭션 수수료로만 구성된다. 따라서, 트랜잭션 수수료 처리는 비트코인 블록체인과 같은 공공 블록체인에 데이터를 위임하기 위한 기본 메커니즘의 일부라는 점을 이해할 것이다.
이전에 언급한 바와 같이, 주어진 블록의 각 트랜잭션은 블록체인 시스템의 참여자 간의 디지털 자산 제어의 이전을 인코딩한다. 디지털 자산이 반드시 암호화폐에 대응할 필요는 없다. 예를 들어, 디지털 자산은 물리적 객체, 이미지, 문서의 디지털 표현 등과 관련될 수 있다. 채굴자에게 암호화폐 및/또는 트랜잭션 수수료를 지불하는 것은 단순히 필요한 작업을 수행함에 의하여 블록체인에서 블록의 유효성을 유지하기 위한 인센티브로 작용할 수 있다. 블록체인과 연관된 암호화폐는 채굴자를 위한 보안 역할을 할 수 있으며, 블록체인 자체는 암호화폐 이외의 디지털 자산과 주로 관련된 트랜잭션의 원장일 수 있다. 경우에 따라, 참여자 간의 암호화폐 이전은 트랜잭션 원장을 유지하기 위해 블록체인을 사용하는 개체와 상이한 개체에 의해 처리될 수 있다.
위에서 언급된 실시예는 발명을 제한하기보다는 예시하며, 당업자는 첨부된 청구 범위에 의해 정의된 발명의 범위를 벗어나지 않고 많은 대안적인 실시예를 설계할 수 있다는 점에 유의하여야 한다. 청구항에서, 괄호 안에 있는 참조 기호는 청구항을 제한하는 것으로 해석되어서는 안된다. "포함하는" 및 "포함한다" 등의 단어는 청구 범위 또는 명세서 전체에 나열된 것 이외의 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서 "포함하다"는 "포함하거나 구성된다"를 의미하고, "포함하는"은 "포함하거나 구성되는"을 의미한다. 요소의 단수 참조는 그러한 요소의 복수 참조를 배제하지 않으며 그 반대의 경우도 마찬가지이다. 발명은 몇몇 별개의 요소를 포함하는 하드웨어에 의해, 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 장치 청구항에서, 이러한 수단 중 몇몇은 하나의 동일한 하드웨어 항목에 의해 구현될 수 있다. 특정 조치가 서로 다른 종속 항에 언급되어 있다는 단순한 사실은 이러한 조치의 조합이 이점으로 사용될 수 없음을 의미하지 않는다.

Claims (15)

  1. 블록체인 네트워크 상에서 자산을 이전하는 컴퓨터-구현된 방법으로서:
    상기 자산의 양수인인 자원에 의해 그리고 상기 자산의 양도인인 추가의 자원으로부터:
    적어도 하나의 블록체인 트랜잭션과 관련된 완전한 트랜잭션 데이터(complete transaction data); 및
    상기 적어도 하나의 블록체인 트랜잭션에 대한 머클(Merkle) 경로를 수신 및/또는 요청하는 단계; 및
    상기 적어도 하나의 트랜잭션에 대한 머클 증명을 검증하도록 상기 머클 경로를 사용하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 자원에서 또는 상기 자원 상에: 적어도 하나의 공개 키 및/또는 적어도 하나의 개인 키를 저장하는 단계를 더 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 자원에서 또는 상기 자원 상에: 적어도 하나의 블록 헤더를 저장, 수신 및/또는 요청하는 단계를 더 포함하는, 방법.
  4. 제3항에 있어서,
    상기 적어도 하나의 블록 헤더는 상기 추가의 자원으로부터 수신되고, 상기 추가의 자원은 디지털 지갑을 포함하는, 방법.
  5. 전술한 청구항 중 어느 한 항에 있어서,
    상기 자원에 의해 그리고 상기 추가의 자원으로부터 상기 머클 경로 및 완전한 트랜잭션 데이터를 요청하는 단계를 더 포함하는, 방법.
  6. 전술한 청구항 중 어느 한 항에 있어서,
    상기 추가의 자원에:
    공개 키 주소; 및/또는
    이전 가치(transfer value)를 전송하는 단계를 더 포함하는, 방법.
  7. 전술한 청구항 중 어느 한 항에 있어서,
    상기 자원으로부터 상기 추가의 자원에,
    적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)과 관련된 데이터;
    상기 적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)을 포함하는 트랜잭션에 대한 트랜잭션 ID(TXID);
    상기 적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)에서 지출하기 위한 서명;
    상기 적어도 하나의 미지출 블록체인 트랜잭션 출력(UTXO)을 포함하는 트랜잭션에 대한 머클 경로; 및/또는
    공개 키 주소 중 적어도 하나를 포함하는 트랜스퍼 데이터(transfer data)에 대한 요청을 전송하는 단계를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 트랜스퍼 데이터는, 블록체인 트랜잭션 템플릿을 사용하여, 상기컴퓨터-구현된 자원에 의해 요청되고/되거나 상기 추가로부터 수신되는, 방법.
  9. 제6항 또는 제7항에 있어서,
    상기 트랜스퍼 데이터는 완전한 블록체인 트랜잭션(complete blockchain transaction) 또는 부분적으로 완전한 블록체인 트랜잭션(partially complete blockchain transaction)의 형태로 상기 추가의 자원으로부터 수신되는, 방법.
  10. 전술한 청구항 중 어느 한 항에 있어서,
    상기 적어도 하나의 블록체인 트랜잭션에 대한 상기 머클 증명의 성공적인 검증 시 블록체인 트랜잭션을 블록체인 네트워크에 제출하는 단계를 더 포함하는, 방법.
  11. 전술한 청구항 중 어느 한 항에 있어서,
    상기 자원은 디지털 지갑을 포함하는, 방법.
  12. 컴퓨터-구현된 시스템으로서,
    블록체인 네트워크 상에서 자산의 이전을 용이하게 하도록 동작하고, 그리고
    상기 자산의 양도인인 추가의 자원으로부터:
    적어도 하나의 블록체인 트랜잭션과 관련된 완전한 트랜잭션 데이터; 및
    상기 적어도 하나의 블록체인 트랜잭션에 대한 머클 경로를 수신 및/또는 요청하고; 그리고
    상기 적어도 하나의 트랜잭션에 대한 머클 증명을 검증하기 위해 상기 머클 경로를 사용하도록 배열되는,
    자원을 포함하는, 컴퓨터-구현된 시스템.
  13. 제12항에 있어서,
    상기 블록체인 트랜잭션은 요청에 대한 응답으로 상기 추가의 자원으로부터 상기 자원에 의해 수신되고;
    상기 자원은, 상기 추가의 자원에, 이전 금액(transfer amount) 및 출력 주소를 전송하도록 동작하고;
    상기 제1 블록체인 트랜잭션은 상기 자원에 의해 지정되거나 결정된 주소에 암호화폐의 양을 지출하는 출력(UTXO)을 포함하는, 컴퓨터-구현된 시스템.
  14. 제12항 또는 제13항에 있어서,
    프로세서; 및
    상기 프로세서에 의한 실행의 결과로서, 상기 시스템으로 하여금 제1항 내지 제11항 중 어느 한 항에 청구된 방법의 임의의 실시예를 수행하게 하는 실행 가능한 명령어를 포함하는 메모리를 더 포함하는, 컴퓨터-구현된 시스템.
  15. 컴퓨터 시스템의 프로세서에 의해 실행된 결과로서, 상기 컴퓨터 시스템으로 하여금 제1항 내지 제11항에 청구된 방법의 실시예를 적어도 수행하게 하는 실행 가능한 명령어를 저장한, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020217029707A 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법 KR20210128455A (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
GB1902089.0 2019-02-15
GBGB1902090.8A GB201902090D0 (en) 2019-02-15 2019-02-15 Computer-implemented system and method
GB1902086.6 2019-02-15
GB1902088.2 2019-02-15
GBGB1902089.0A GB201902089D0 (en) 2019-02-15 2019-02-15 Computer-implemented system and method
GBGB1902086.6A GB201902086D0 (en) 2019-02-15 2019-02-15 Computer-implemented system and method
GBGB1902088.2A GB201902088D0 (en) 2019-02-15 2019-02-15 Computer-implemented system and method
GB1902090.8 2019-02-15
GBGB1902092.4A GB201902092D0 (en) 2019-02-15 2019-02-15 Computer-implemented system and method
GB1902092.4 2019-02-15
PCT/IB2020/050739 WO2020165679A1 (en) 2019-02-15 2020-01-30 Computer-implemented systems and methods for implementing transfers over a blockchain network

Publications (1)

Publication Number Publication Date
KR20210128455A true KR20210128455A (ko) 2021-10-26

Family

ID=69500792

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020217029708A KR20210128456A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
KR1020217029704A KR20210128452A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
KR1020217029707A KR20210128455A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
KR1020217029705A KR20210128453A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
KR1020217029706A KR20210128454A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020217029708A KR20210128456A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
KR1020217029704A KR20210128452A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020217029705A KR20210128453A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
KR1020217029706A KR20210128454A (ko) 2019-02-15 2020-01-30 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법

Country Status (8)

Country Link
US (5) US20220138737A1 (ko)
EP (5) EP3924923A1 (ko)
JP (5) JP2022520844A (ko)
KR (5) KR20210128456A (ko)
CN (5) CN113874898A (ko)
SG (5) SG11202108169UA (ko)
TW (4) TWI828857B (ko)
WO (5) WO2020165676A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11196543B2 (en) * 2018-09-05 2021-12-07 International Business Machines Corporation Minimum evidence calculation in blockchain transactions
US11645632B2 (en) * 2020-05-26 2023-05-09 Derek Norman La Salle System and method for a decentralized portable information container supporting privacy protected digital information credentialing, remote administration, local validation, access control and remote instruction signaling utilizing blockchain distributed ledger and container wallet technologies
TWI762010B (zh) * 2020-10-30 2022-04-21 鴻海精密工業股份有限公司 區塊鏈交易方法及區塊鏈交易系統
GB2600770A (en) * 2020-11-10 2022-05-11 Nchain Holdings Ltd Merkle proof entity
GB2600769A (en) * 2020-11-10 2022-05-11 Nchain Holdings Ltd Merkle proof entity
CN112085504B (zh) * 2020-11-16 2021-02-09 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备及存储介质
US11843702B2 (en) * 2020-11-20 2023-12-12 The Toronto-Dominion Bank System and method for secure distribution of resource transfer request data
KR102478699B1 (ko) * 2021-03-18 2022-12-16 중앙대학교 산학협력단 블록체인 기반 IoT 보안 방법 및 장치
US11902426B2 (en) * 2021-06-26 2024-02-13 Ceremorphic, Inc. Efficient storage of blockchain in embedded device
CN117941322A (zh) * 2021-09-22 2024-04-26 恩晨特许股份公司 基于区块链的交易协议
US20230121349A1 (en) * 2021-10-15 2023-04-20 Chia Network Inc. Method for securing private structured databases within a public blockchain
WO2023072965A1 (en) * 2021-10-28 2023-05-04 Nchain Licensing Ag Methods and systems for distributed blockchain functionalities
WO2023118843A1 (en) * 2021-12-20 2023-06-29 WRT Technologies Limited Recording blockchain transactions
CN114356937B (zh) * 2022-01-09 2022-08-26 上海即科智能技术集团有限公司 一种基于区块链和大数据的金融信息管理系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB512169A (en) 1938-04-28 1939-08-30 Norman Finlay Johnston Improvements in and relating to ventilators, air diffusers and the like
US10230526B2 (en) * 2014-12-31 2019-03-12 William Manning Out-of-band validation of domain name system records
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US20180331832A1 (en) * 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US20170132619A1 (en) * 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
CN115549887A (zh) 2016-02-23 2022-12-30 恩链控股有限公司 用于信息的安全交换的公共秘密的确定和层级确定性密钥
EP3472994B1 (en) * 2016-06-20 2020-10-21 Innogy Innovation Gmbh Software defined networking system
TWI651671B (zh) * 2016-08-25 2019-02-21 第一商業銀行股份有限公司 快速區塊鏈交易方法
EP3520317B1 (en) * 2016-10-03 2021-05-12 Visa International Service Association Network topology with multiple data centers for building blockchain blocks
US11831748B1 (en) * 2017-01-17 2023-11-28 Justin Fisher Method and system for utilizing the infrastructure of a blockchain to enhance the degree of security and veracity of another blockchain
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
WO2018201147A2 (en) * 2017-04-28 2018-11-01 Neuromesh Inc. Methods, apparatus, and systems for controlling internet-connected devices having embedded systems with dedicated functions
TWI646480B (zh) * 2017-07-05 2019-01-01 台新金融控股股份有限公司 結合區塊鏈的憑證發行與驗證之系統及其方法
FR3075534B1 (fr) * 2017-12-14 2020-01-10 CopSonic Dispositif de stockage de cles numeriques pour signer des transactions sur une chaine de blocs
US20190188698A1 (en) * 2017-12-19 2019-06-20 Tbcasoft, Inc. Computer apparatus for cross-ledger transfers between distributed ledgers
CN108683630B (zh) * 2018-04-03 2020-05-29 阿里巴巴集团控股有限公司 跨区块链的认证方法及装置、电子设备
US20200104228A1 (en) * 2018-09-27 2020-04-02 Ripple Labs Inc. Asynchronous self-proving transactions
WO2020082031A1 (en) * 2018-10-18 2020-04-23 Eian Labs Inc. Confidential transaction auditing using an authenticated data structure
CN110009334B (zh) * 2018-11-07 2020-04-28 阿里巴巴集团控股有限公司 一种构建梅克尔树、简单支付验证方法及装置
WO2020114590A1 (en) * 2018-12-05 2020-06-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for determining a state of an account in a network device running a light client protocol of a distributed ledger technology network
US11177962B2 (en) * 2019-02-05 2021-11-16 Visa International Service Association Optimizations for verification of interactions system and method
GB2597592A (en) * 2020-06-10 2022-02-02 Elas Holdings PTY LTD Computer-implemented control system and method
US20220270093A1 (en) * 2021-02-23 2022-08-25 Bit Trap Pte. Ltd. System and method for detecting intrusions by recognizing unauthorized cryptocurrency transactions at an optimized cost
CN113435896B (zh) * 2021-05-18 2022-05-31 腾讯科技(深圳)有限公司 一种交易验证方法、装置、设备及存储介质
US20230144486A1 (en) * 2021-11-09 2023-05-11 Vincent Bono Cryptocurrency Transaction Process

Also Published As

Publication number Publication date
CN113874897A (zh) 2021-12-31
CN113874898A (zh) 2021-12-31
EP3924923A1 (en) 2021-12-22
KR20210128452A (ko) 2021-10-26
WO2020165679A1 (en) 2020-08-20
CN113508410A (zh) 2021-10-15
CN113508409A (zh) 2021-10-15
JP2022520844A (ja) 2022-04-01
WO2020165677A1 (en) 2020-08-20
WO2020165678A1 (en) 2020-08-20
TW202036336A (zh) 2020-10-01
TW202036335A (zh) 2020-10-01
TW202044157A (zh) 2020-12-01
JP2022520273A (ja) 2022-03-29
JP2022520845A (ja) 2022-04-01
EP3924924A1 (en) 2021-12-22
TWI828857B (zh) 2024-01-11
JP2022520478A (ja) 2022-03-30
US20220138738A1 (en) 2022-05-05
EP3924921A1 (en) 2021-12-22
KR20210128454A (ko) 2021-10-26
EP3924920A1 (en) 2021-12-22
EP3924922A1 (en) 2021-12-22
US20220138737A1 (en) 2022-05-05
WO2020165676A1 (en) 2020-08-20
SG11202108169UA (en) 2021-08-30
SG11202108153QA (en) 2021-08-30
US20220129888A1 (en) 2022-04-28
SG11202108151UA (en) 2021-08-30
US20220129887A1 (en) 2022-04-28
US20220129893A1 (en) 2022-04-28
SG11202108152XA (en) 2021-08-30
KR20210128453A (ko) 2021-10-26
KR20210128456A (ko) 2021-10-26
SG11202108154TA (en) 2021-08-30
CN113874899A (zh) 2021-12-31
TW202040457A (zh) 2020-11-01
JP2022520656A (ja) 2022-03-31
TW202040391A (zh) 2020-11-01
WO2020165680A1 (en) 2020-08-20

Similar Documents

Publication Publication Date Title
KR20210128455A (ko) 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법
CN107438002B (zh) 基于区块链的系统以及系统中的电子设备和方法
US20160342977A1 (en) Device, method and system for virtual asset transactions
CN112437938A (zh) 用于区块链地址和所有者验证的系统和方法
KR101918446B1 (ko) 이중보안 블록체인 인증시스템 및 그 방법
CN115917546A (zh) 生成区块链地址
CN116210200A (zh) 区块链通证
TW202139669A (zh) 用於與區塊鏈相關聯之事件序列之事件串流
JP2023502057A (ja) ブロックチェーントランザクションを使用したアイデンティティ検証プロトコル
TWI836003B (zh) 在區塊鏈網路上實施轉移之電腦實施系統及方法
CN117941322A (zh) 基于区块链的交易协议
CN115836314A (zh) 区块链事务输出的概率成员资格测试
WO2021165815A1 (en) Synchronising event streams

Legal Events

Date Code Title Description
E902 Notification of reason for refusal