KR102636102B1 - 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템 - Google Patents

블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템 Download PDF

Info

Publication number
KR102636102B1
KR102636102B1 KR1020227034814A KR20227034814A KR102636102B1 KR 102636102 B1 KR102636102 B1 KR 102636102B1 KR 1020227034814 A KR1020227034814 A KR 1020227034814A KR 20227034814 A KR20227034814 A KR 20227034814A KR 102636102 B1 KR102636102 B1 KR 102636102B1
Authority
KR
South Korea
Prior art keywords
token
transaction
blockchain transaction
determining
authenticated
Prior art date
Application number
KR1020227034814A
Other languages
English (en)
Other versions
KR20220141351A (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 엔체인 홀딩스 리미티드
Priority to KR1020247004468A priority Critical patent/KR20240023688A/ko
Publication of KR20220141351A publication Critical patent/KR20220141351A/ko
Application granted granted Critical
Publication of KR102636102B1 publication Critical patent/KR102636102B1/ko

Links

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/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/405Establishing or using transaction specific rules
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/326Payment applications installed on the mobile devices
    • 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/3672Payment 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 initialising or reloading thereof
    • 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/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/3825Use of electronic signatures
    • 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/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/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
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • 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/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
    • G06Q2220/00Business processing using cryptography
    • 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

암호화폐의 양과 관련된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법이 제공된다. 일부 실시예에서, 상기 방법은 제2 사용자; 제1 사용자에서 상기 제2 사용자로 상기 토큰의 전송을 포함하는 제1 거래를 통신 네트워크를 통해 수신하는 단계; 토큰과 연관된 인증된 거래가 식별되었는지 여부를 결정하도록 개인대개인(peer-to-peer) 분산 대장(distributed ledger)에 질의하는(querying) 단계; 인증된 거래를 식별하는 것에 대응하여(responsive to), 상기 토큰이 유효한지를 결정하는 단계;를 포함하고, 상기 인증된 거래는 토큰과 연관된 이전 거래를 포함하고, 상기 토큰은 인증된다. 일부 실시예에서, 상기 방법은 제2 사용자; 제1 사용자에서 상기 제2 사용자로 상기 토큰의 전송을 포함하는 제1 거래를 통신 네트워크를 통해 수신하는 단계; 상기 토큰의 전송을 포함하는 제2 거래가 타이틀 레지스트리 저장소(title registry database)에 기록되는지를 결정하도록 상기 타이틀 레지스트리 저장소에 질의하는(querying) 단계; 및 상기 제2 거래가 상기 타이틀 레지스트리 저장소에 기록되었다고 결정하는 것에 대응하여 상기 토큰을 유효한 것으로 결정하는 단계를 포함한다.

Description

블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템{COMPUTER-IMPLEMENTED METHODS AND SYSTEMS FOR VALIDATING TOKENS FOR BLOCKCHAIN-BASED CRYPTOCURRENCIES}
본 발명은 일반적으로 이에 제한되지 않으나 비트코인 블록체인과 같은 분산 대장 기술에 관한 것이다. 설명된 실시예들은 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 보안-강화(security-enhanced) 시스템 및 방법에 관한 것이다. 일부 실시예는 인증된 서명자에 의해 전자적으로 부서되지(countersigned)되지 않은 블록체인 거래들(TXs)과 연관된 토큰의 유효화 (validating)에 관한 것이다. 다른 실시예들은 컴퓨팅 노드들(computing nodes) 간에 블록체인-구현된 전송 및 통신(transfer and communication)을 가능하게 하고 개선하도록 구성된 시스템 및 컴퓨터 구현된 제어 방법에 관한 것이다.
본 명세서에서 우리는 전자, 컴퓨터 기반(computer-based), 개인 대 개인(peer-to-peer), 분산 대장들의 모든 형태를 포함하는 용어 '블록체인'을 사용한다. 본 명세서에서 우리는 전자, 컴퓨터 기반(computer-based), 개인 대 개인(peer-to-peer), 분산 대장들의 모든 형태를 포함하는 용어 '블록체인'을 사용한다. 다른 블록체인 구현들(implementations)이 제안되고 개발되었지만, 가장 널리 알려진 블록체인 기술의 적용은 비트코인 대장이다. 비트코인은 본 명세서에서 편의상 및 설명을 위해 언급될 수 있지만, 본 발명은 비트코인 블록체인과 함께 사용하는 것으로 제한되지 않으며, 대안적(alternative) 블록체인 구현 및 프로토콜은 본 발명의 범위 내에 속하는 것에 주목해야 한다.
블록체인(block-chain)은 전자 대장(electronic ledger)으로서, 거래들로 구성된 블록들로 구성된 컴퓨터 기반의 분산형, 분산형, 개인 대 개인(peer-to-peer) 시스템으로 구현된다. 각 거래(Tx)는 블록체인 시스템 내의 참가자들 간에 디지털 자산의 제어 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여 해당 블록이 함께 연결되어 처음부터 블록체인에 기록된 모든 거래의 영구적인, 바꿀수 없는(unalterable) 기록을 생성한다. 거래들은 입력과 출력에 임베디드된 스크립트로 알려진 작은 프로그램을 포함하여, 어떻게 그리고 누구에 의해 거래들의 출력이 접근될 수 있는지 구체화한다. 비트코인 플랫폼에서, 이러한 스크립트(scripts)는 스택 기반 스크립팅 언어를 사용하여 작성된다.
거래가 블록체인에 기록되기 위해서는 그것은 "유효화되(validated)"어야 한다. 네트워크 노드(광부, miners)는 네트워크로부터 유효하지 않은 거래를 거부하여 각 거래가 유효한지 확인하기 위해 작업을 수행한다. 노드 상에 설치된 소프트웨어 클라이언트는 잠금(locking) 및 잠금 해제(unlocking scripts) 스크립트를 실행함으로써 소비되지 않은(unspent) 거래(UTXO) 상에 유효성 작업(validation work)을 수행한다. 잠금 스크립트와 잠금 해제 스크립트의 실행이 진실(TURE)로 평가되면, 그 거래는 유효하며 거래는 블록체인에 기록된다.따라서 거래가 블록체인에 의해 기록되려면, i) 거래를 수신하는 제1 노드(the first node)에 의해 유효화되어야 한다 - 만약 거래가 유효화되면, 노드는 이를 네트워크 내의 다른 노드로 중계한다(relay); 그리고 ii) 체굴자에 의해 새로 만들어진 블록에 추가한다. 그리고 iii) 채굴된 예컨대 과거 거래들의 공공 대장에 추가한다.
블록체인 기술이 암호화폐 구현 사용으로 널리 공지되어 있지만, 디지털 기업(digital entrepreneurs)은 비트코인을 기반으로 하는 암호 보안 시스템과 새로운 시스템을 구현하기 위해 블록체인 상에 저장될 수 있는 데이터의 사용을 모색하기 시작해왔다. 블록체인은 암호화폐의 영역(realm)에 제한되지않는 자동화된 작업 및 프로세스에 사용될 수 있다면 매우 유용할 것이다. 이러한 솔루션은 응용 분야에서보다 다목적(versatile)으로, 블록체인의 이점(예로, 영구성, 이벤트(events)의 변조 증거 기록(tamper proof records), 분산 처리 등)을 활용할(harness) 수 있다.
현재의 연구 분야 중 하나는 "스마트 계약(smart contract)"을 구현하기 위한 블록체인의 사용이다. 이들은 기계가 판독가능한(machine-readable) 계약 또는 약정의 조건 실행(execution of terms)을 자동화하도록 설계된 컴퓨터 프로그램이다. 자연어(natural language)로 작성된 기존의 계약서와 달리, 스마트 계약은 결과를 산출하기 위해 입력을 처리할 수 있는 규칙을 포함하는 기계가 실행 가능한(machine executable program) 프로그램으로, 결과에 따라 조기가 수행될 수 있다.
상업 거래들과 관련하여, 예를 들어 이는 재산권(property rights) 및/또는 자산(assets)의 이전과 관련될 수 있다. 그러한 자산에는 부동산(real property), 개인 자산(personal property)(유형 및 비유형 자산 모두 포함), 소프트웨어와 같은 디지털 자산 또는 예로, 기타 유형의 자산을 포함할 수 있다. 디지털 경제에서는 종종 교환 및 전송이 적시에 광범위하게 수행될 것이라는 기대가 존재한다. 실질적인 기술적 한계와 함께 이러한 기대는 계약을 대표하는 문서의 물리적 전달, 협상할 수 있는 수단 등과 같은 전통적인 형태의 자산 이전(전송)을 의미한다. 또는 유형 자산 자체가 바람직하지 않습니다. 따라서 스마트 계약(smart contracts)은 향상된 제어, 효율성 및 전송속도를 제공할 수 있다.
블록체인-관련된 관심(related interest)의 또 다른 영역은 블록체인을 통해 실제 또는 가상 개체(entities)를 표현하고 전달하는 '토큰'(또는 '착색의 코인'(coloured coins))의 사용이다. 잠재적으로 민감 또는 비밀스러운 항목(item)은 인식할 수 없는 의미 또는 가치를 가진 토큰에 의해 나타낼 수 있다. 따라서 토큰은 자산이 블록체인으로부터 참조되게 하는 식별자로 사용된다. 토큰화(tokenisation)의 이용은 블록체인 상의 디지털 개체(entities)의 통신, 전송 및 검증(verification)과 관련하여 강화된 보안 및 제어를 제공한다.
본 명세서에 포함된 문서, 행위, 재료, 장치, 완제품 등의 논의는 이러한 것들 중 일부 또는 전부가 선행기술의 일부를 이루는 것의 승인이나, 이 출원의 각각의 청구항의 우선권 날짜 이전에 존재하였던 본 개시와 관련된 분야의 일반적인 지식으로 간주되어서는 안된다.
본 명세서 전반에 걸쳐 "포함하는"이라는 단어 또는 "포함하다" 또는 "포함하는"과 같은 변형은 명시된 구성요소, 정수 또는 단계, 구성요소, 정수 또는 단계의 그룹을 포함하는 것을 의미하는 것으로 이해되어야 하고, 정수 또는 단계 또는 구성요소, 정수(integers) 또는 단계 그룹을 배제하는 것이 아니다.
첨부된 청구항에 정의된 본 발명의 실시예가 제공된다.
본 발명은 검증(verification) 또는 인증(authentication) 방법 및 대응하는 시스템으로 설명될 수 있다. 이는 토큰(들)을 포함하거나 관련되고 인가된 서명자에 의해 디지털 서명된 블록체인 거래들의 결정 및/또는 식별을 가능하게 한다. 이것은 토큰 발행자 또는 다른 당사자일 수 있다. 검증 기술의 결과로 보인이 강화된다.
일부 실시예는 암호화폐의 양과 관련된 토큰의 유효성을 결정하는 컴퓨터 구현된 방법에 관한 것이다. 상기 방법은 제2 사용자; 제1 사용자에서 상기 제2 사용자로 상기 토큰의 전송을 포함하는 제1 거래를 통신 네트워크를 통해 수신하는 단계; 토큰과 연관된 인증된 거래가 식별되었는지 여부를 결정하도록 개인대개인(peer-to-peer) 분산 대장(distributed ledger)에 질의하는(querying) 단계; 인증된 거래를 식별하는 것에 대응하여(responsive to), 상기 토큰이 유효한지를 결정하는 단계;를 포함하고, 상기 인증된 거래는 토큰과 연관된 이전 거래를 포함하고, 상기 토큰은 인증된다.
일부 실시예로, 상기 개인대개인(peer-to-peer) 분산 대장(distributed ledger)에 질의하는(querying) 단계는 상기 제1 거래의 토큰이 인증되지 않았다고 결정하는 단계에 대응하여(responsive to) 상기 개인대개인 분산 대장에 질의하는 단계를 포함한다.
일부 실시예에서, 상기 토큰이 인증되지 않았다고 결정하는 단계는 인증된 서명자에 의해 서명되지 않은 상기 제1 거래에 입력으로 참조되고 상기 토큰과 연관된 상환 스크립트를 결정하는 단계를 포함한다. 상기 인증된 거래의 토큰은 인증된 서명자에 의해 서명된다. 예를 들어, 상기 인증된 서명자는 상기 토큰의 발행자 및 신뢰된 서비스 제공자(trusted service provider) 중 적어도 하나를 포함한다.
상기 개인대개인 분산 대장에 질의하는 단계는, a) 상기 제1 거래 내의 식별된 이전 거래 ID를 결정하는 단계; b) 상기 개인대개인 분산 대장 내에 기록된 이전 거래를 식별하는 단계; c) 인증된 서명자에 의해 서명된 이전 거래의 상환 스크립트인지를 결정하는 단계; d) 상기 이전 거래의 상환 스크립트가 인증된 서명자에 의해 서명되는 것을 결정하는 단계에 대응하여 상기 인증된 거래로서 상기 이전 거래를 식별하는 단계; e) 상기 이전 거래의 상환 스크립트가 인증된 서명자에 의해 서명되지 않았다고 결정하는 단계에 대응하여(responsive to), 상기 이전 거래에서 식별된 이전 거래ID를 상기 이전 거래ID로 결정하는 단계; 및 f) 더 이상 이전 거래들이 식별되지 않을때까지 단계c) 내지 e)를 반복적으로 수행하는 단계를 포함하고, 상기 이전 거래의 거래ID는 상기 결정된 이전 거래ID에 대응한다.
따라서, 본 발명은, 초기 또는 "트리거" 거래로부터 시작하여, 토큰의 유효성이 입증되거나 적어도 충분하게 입증되거나 또는 유효성이 실패할 때까지 거래들의 논리 경로(logical path) 또는 계층(hierarchy)을 따르도록 블록체인 상의 각 블록 내의 다른 거래들을 조사하는 상기 단계 중 적어도 하나의 실햄을 포함할 수 있다.
일부 실시예에서, 상기 방법은 상기 개인대개인 분산 대장에서 인증된 거래를 식별하지 못하는 것에 대응하여 상기 토큰이 유효하지 않다고 결정하는 단계를 더 포함한다.
일부 실시예는 제2 사용자; 제1 사용자에서 상기 제2 사용자로 상기 토큰의 전송을 포함하는 제1 거래를 통신 네트워크를 통해 수신하는 단계; 상기 토큰의 전송을 포함하는 제2 거래가 타이틀 레지스트리 저장소(title registry database)에 기록되는지를 결정하도록 상기 타이틀 레지스트리 저장소에 질의하는(querying) 단계; 및 상기 제2 거래가 상기 타이틀 레지스트리 저장소에 기록되었다고 결정하는 것에 대응하여 상기 토큰을 유효한 것으로 결정하는 단계를 포함하는 암호화폐의 양과 관련된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법에 관한 것이다.
일부 실시예에서, 상기 타이틀 레지스트리 저장소에 질의하는 단계는 상기 토큰이 인증되지 않은 것으로 결정하는 단계에 대응하여 상기 타이틀 레지스트리 저장소에 질의하는 단계를 포함한다.
상기 타이틀 레지스트리 저장소는 토큰의 전송, 거래 지시자(indicator)와 연관된 각 기입자(entries)를 포함하는 거래들과 연관된 적어도 하나의 기입자(entries)를 포함하고, 상기 타이틀 레지스트리 저장소에 질의하는 단계는 상기 제1 거래로부터 상기 토큰과 연관된 거래 지시자를 결정하는 단계; 및 상기 제2 거래를 식별하도록 상기 타이틀 레지스트리 저장소의 하나 이상의 거래 지시자를 상기 거래 지시자와 비교하는 단계;를 포함한다. 예를 들어, 상기 거래 지시자는 거래 ID를 포함할 수 있다.
일부 실시예로, 상기 토큰이 인증되지 않은 것으로 결정하는 단계는 제1 상환 스크립트가 인증된 서명자에 의해 서명되지 않은 거래에 입력으로 참조되고 토큰과 연관된 되는 것을 결정하는 단계를 포함한다. 상기 인증된 서명자는 상기 토큰의 발행자 및 신뢰된 서비스 제공자 중 적어도 하나를 포함한다.
일부 실시예로 상기 방법은 상기 타이틀 레지스트리 저장소에 상기 제2 거래가 기록되지 않은 것으로 결정하는 단계에 대응하여 토큰이 유효하지 않은 것으로 결정하는 단계를 더 포함한다.
일부 실시예로, 상기 방법은 상기 타이틀 레지스트리 저장소에 제2 거래가 기록되지 않은 단계에 대응하여 상기 토큰과 연관된 인증된 거래가 식별되는지 여부를 결정하도록 개인대개인 분산 대장에 질의하는 단계; 및 인증된 거래를 식별하는 것에 대응하여 상기 토큰이 유효하다고 결정하는 단계를 더 포함하고, 상기 인증된 거래는 상기 토큰과 연관된 이전 거래를 포함하고, 상기 토큰은 인증되는 암호화폐의 양과 관련된다.
일부 실시예는 각 토큰이 암호화폐의 양과 연관되고 발행자에 의해 발행된 토큰들의 전송을 기록하는 타이틀 레지스트리 데이터, 제1 당사자(first party)에 의해 유지하는 컴퓨터로 구현된 방법 에 관한 것으로, 발행자에 의해 발행된 토큰들의 전송을 포함하는 거래들을 위한 개인대개인 분산 대장을 모니터링하는 단계; 및 개인대개인 분산 대장에 기록된 상기 발행자에 의해 발행된 토큰의 전송을 포함하는 제1 거래를 결정하는 단계에 대응하여 상기 타이틀 레지스트리 데이터베이스에서 상기 토큰의 전송을 기록하는 단계를 포함한다.
일부 실시예에서 상기 개인대개인 분산 대장을 모니터링하는 단계는, 상기 개인대개인 분산 대장에 기록된 거래의 이전 거래 ID를 결정하는 단계; 상기 결정된 이전 거래ID와 상기 발행자에 의해 발행된 토큰과 연관된 거래를 식별하는 세트(set)의 거래 ID, 거래 ID들의 세트를 비교하는 단계; 및 상기 결정된 이전 거래 ID를 거래ID들의 세트 중 하나와 매칭하는 것에 대응하여 상기 발행자에 의해 발행된 토큰들의 전송을 포함하는 제1 거래의 기록으로서 상기 이전 거래 ID와 연관된 상기 거래를 결정하는 단계를 포함한다.
일부 실시예에서, 상기 개인대개인 분산 대장을 모니터링하는 단계는, 상기 발행자에 의해 발행된 토큰과 연관된 거래의 타겟 거래ID를 결정하는 단계; 상기 개인대개인 분산 대장에 기록된 거래들의 이전 거래ID들을 상기 타겟 거래ID와 비교하는 단계; 및 상기 개인대개인 분산 대장에 기록된 거래들중 하나의 이전 거래ID에 상기 타겟 거래ID를 매칭하는 것에 대응하여, 제1 거래의 기록으로서 개인대개인 분산 대장에 기록된 상기 거래를 결정하는 단계;를 포함한다.
일부 실시예에서, 상기 방법은 상기 발행자의 서명을 기입자(entry)에 추가함으로써 상기 타이틀 레지스트리 저장소에서 상기 토큰의 전송의 기록과 연관된 상기 기입자를 인증하는 단계를 더 포함하는
상기 타이틀 레지스트리 저장소를 유지하는 단계는 상기 발행자 및 승인된(approved) 서비스 제공자에 의해 수행된다.
일부 실시예에서, 상기 타이틀 레지스트리 저장소는 분산된 해시 테이블(distributed hash table)을 포함한다. 예를 들어, 분산된 해시 테이블은 발행자에 의해 발행된 토큰과 관련된 계약을 포함할 수 있다.
일부 실시예는 유효성 어플리케이션을 실행하도록 구성되는 암호화폐의 양과 연관된 토큰의 유효성을 결정하는 토큰 유효성 시스템에 관한 것으로, 상기 시스템은 유효성 어플리케이션을 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는 상술한 어느 하나의 방법을 수행하는 유효성 어플리케이션을 실행하도록 구성된다.
일부 실시예는 타이틀 레지스트리 유지 시스템(title registry maintenance system)에 관한 것으로, 상기 시스템은 유지 어플리케이션을 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는 상술한 어느 하나의 방법을 수행하는 상기 유지 어플리케이션을 실행하도록 구성되는 암호화폐의 양과 각각 연관된 토큰들의 전송을 기록하는 타이틀 레지스트리 저장소를 유지한다.
일부 실시예는 컴퓨터 프로그램에 관한 것으로, 프로세서에 의해 실행될 때 상기 프로세서가 상술한 어느 하나의 방법을 수행하게 하는 기계가 읽을 수 있는 명령(machine-readable instructions)을 포함한다.
본 발명은 검증(verification) 또는 인증(authentication) 방법 및 대응하는 시스템으로 설명될 수 있다. 이는 토큰(들)을 포함하거나 관련되고 인가된 서명자에 의해 디지털 서명된 블록체인 거래들의 결정 및/또는 식별을 가능하게 한다. 이것은 토큰 발행자 또는 다른 당사자일 수 있다. 검증 기술의 결과로 보인이 강화된다.
이하, 본 발명의 예를 설명한다:
도 1은 일부 실시예에 따른 토큰을 생성 및/또는 전송하기 위한 예시적인 시스템의 개략도이다.
도 2는 토큰을 생성하는 단계(것)를 포함하는 제1 사용자와 발행자 사이의 거래의 제1 유형의 예를 나타내는 도면이다.
도 3은 일부 실시예에 따른 토큰을 생성하기 위한 컴퓨터 구현된(computer-implemented) 방법의 프로세스 흐름도이다.
도 4는 토큰을 전송하는 단계(것)를 포함하는 제1 사용자와 제2 사용자 사이의 거래의 제2 유형의 예를 도시한 도면이다.
도 5는 일부 실시예에 따른 토큰의 전송을 기록하기 위한 타이틀 레지스트리 저장소(title registry database)를 유지하기 위한 컴퓨터 구현된 방법의 프로세스 흐름도이다.
도 6은 일부 실시예에 따른 토큰을 유효화하기 위한 컴퓨터 구현된(computer-implemented) 방법의 프로세스 흐름도이다.
도 7은 일부 실시예에 따른 토큰을 유효화하기 위한 컴퓨터 구현된(computer-implemented) 방법의 프로세스 흐름도이다; 및
도 8은 일부 실시예에 따른 도 1의 시스템의 프로세싱 장치(processing device)의 개략적인 예를 도시한다.
기술된 실시예는 예컨대 비트코인(Bitcoin)과 같은 블록체인 기반의 암호화폐(cryptocurrencies)와 관련하여 구현을 위한 토큰을 유효화 하기 위한 컴퓨터 구현된 방법 및 시스템에 관한 것이다. 일부 실시예는 인가된(authorised) 서명자(signatory)에 의해 카운터되지 않은 거래와 연관된 토큰의 유효성을 확인하는 방법(단계)과 관련된다. 다른 실시예는 토큰의 이전을 기록하기 위한 타이틀 레지스트리 저장소를 유지하기 위한 시스템 및 컴퓨터 구현 방법에 관한 것이다. 토큰은 일부 유형 또는 물리적, 전자적, 디지털 또는 추상적 개체 또는 자산과 관련된 표현(representation) 또는 식별자(identifier)일 수 있다.
일부 실시예는 암호화폐의 양과 관련된 토큰(t)의 유효성(VALIDITY)을 결정하는 방법에 관한 것 이고, 여기서 토큰(t)은 제1 사용자(A)에서 제2 사용자(B)로 전송되고, 예를 들어 토큰(T)의 전송을 포함하는(영향을 주는) 블록체인 거래(Tx)에 의하여 이루어진다. 일부 실시예에서, 토큰(T)은 예를 들어 토큰(T)의 발행자 또는 신뢰된 서비스 제공자와 같은 인가된 서명자에 의해 인증되지 않았다.
일부 실시예에서, 개인대개인 분산 대장(블록체인)은 토큰(T)과 연관된 인증된 거래가 식별될 수 있는 지를 결정하기 위해 질의될 수 있다. 이는 비트코인 블록체인일 수도 있고, 그렇지 않을 수도 있다. 예를 들어, 그러한 인증된 거래는 인증된 토큰(T)과 연관된 이정 거래를 포함할 수 있다. 식별되어진 인증된 거래에 대응하여(responsive to), 토큰(T)은 유효한 것으로 결정될 수 있다. "이전" 거래란, 예로 이전 날짜에 블록체인에 이전에 기록된 거래를 의미한다. 블록(및 따라서 거래들)은 블록체인에 시간순서대로(chronological sequence) 기록된다는 것을 상기해야 한다. 이전 거래는 블록체인에 더 가까운 즉, 원래의 기원(genesis) 블록에 더 가까운 거래로 설명될 수 있다.
일부 실시예에서, 예로, 저장소(database)인 타이틀 레지스트리 저장소(title registry storage) 자원은 토큰(T)의 전송을 포함하는 제2 거래가 타이틀 레지스트리 저장소에 등록되거나 기록되는지를 결정하기 위해 질의될 수 있으며, 여기서 제2 거래는 제1 거래에 선행한다(predate). 타이틀 레지스트리 저장소에 기록된 것으로 결정된 제2 거래(T2)에 대응하여, 토큰(T)은 유효하다고 결정될 수 있다.
일부 실시예에서, 토큰(T)의 발행자(I)와 같은 당사자(P)는 타이틀 레지스트리 저장소에 토큰의 전송을 포함하는 임의의 거래를 기록함으로써 타이틀 레지스트리 저장소를 유지하는데 책임이 있을 수 있다.
이제 도 1을 참조하면, 발행자(I)3와 연관된 제1 처리 장치(processing device) 13, 제1 사용자(A) 5와 연관된 제2 처리 장치 15 및 제2 사용자(B)7와 연관된 제3 처리 장치17을 포함하는 시스템 1이 도시된다. 제1 처리 장치 13, 제2 처리 장치 15 및 제3 처리 장치 17은 통신 네트워크 8을 통해 서로 통신할 수 있다. 제1 처리 장치 13는 예를 들어 직접적으로 또는 통신 네트워크 8를 통해 관련 데이터 저장소를 포함할 수 있거나 통신할 수 있다.
제1 처리 장치 13가 단일 노드로서 도시되어 있지만, 제1 처리 장치 13는 발행자(I) 3와 관련된 하나 이상의 노드를 포함할 수 있는 것이고, 제1 처리 장치13에 의해 수행되는 여기서 설명된 어떤 방법의 하나 이상의 단계가 제1 처리 장치13의 다른 및/또는 복수의 노드에서 분산되고 수행되는 것으로 이해되어야 한다.
일부 실시예에서, 제2 처리 장치(15) 및 제3 처리 장치(17)는 각각 제1 및 제2 사용자 7에 의해 사용되는 컴퓨터, 이동 통신 장치(mobile communication device), 또는 다른 전자 장치일 수 있다. 다른 예에서, 제2 처리 장치 15 및 제3 처리 장치 17은 터미널 또는 다른 인터페이스를 통해 각각 제1 및 제2 사용자에 의해 액세스 가능한(accessible) 가상 머신(virtual machines)일 수 있다.
발행자(I)3는 토큰을 생성하고, 예를 들어 은행, 다른 금융 기관, 조폐국(mint), 회사 등일 수 있다. 그러나, 다른 예에서, 발행자는 금융 기관이 아닐 수 있고, 발명은 재정 지향적(financially-oriented) 어플리케이션(application)에 국한되지 않는다. 제1 사용자(A) 5는 발행자(I)3로부터 토큰의 생성을 요청할 수 있고, 발행자(I) 3과 토큰의 가치의 일부 또는 전부를 상환하도록 요청할 수 있으며, 및/또는 제2 사용자(B)7에게 토큰 값의 일부 또는 전부를 요청할 수 있다. 유사하게, 제2 사용자(B)7는 발행자(I)3으로부터 토큰의 생성을 요철할 수 있고, 발행자(I)와 토큰의 가치의 일부 또는 전부를 상환하도록 요청할 수 있으며, 및/또는 제1 사용자(A)5에게 토큰 값의 일부 또는 전부를 요청할 수 있다.
시스템 1은 또한 거래를 기록하기 위한 개인대개인 분산 대장(블록체인)9을 관리하기 위한 하나 이상의 처리 장치 19를 포함한다. 특히, 하나 이상의 처리 장치 19는 예를 들어 통신 네트워크 8를 통해 각각 제1, 제2 및/또는 제3 처리 장치(13, 15 및 17)로부터 거래들을 수신하고, 거래들을 기록하도록 구성될 수 있다. 개인대개인 분산 대장 9의 예는 블록체인을 포함하고, 이는 비트코인 프로토콜 기반한 거래들(TXs)의 분산 네트워크이다. 따라서, 일부 실시예에서, 하나 이상의 처리 장치 19는 "광부(miners)"와 연관될 수 있다. 그러므로, 본 발명은 블록체인 구현된 분산 네트워크와 통신하는 하나 이상의 처리 장치19를 포함한다. 네트워크 및 다양한 장치는 상호 작용하여 발명을 시행한다.
일부 실시예에서, 시스템1은 또한 토큰의 전송과 관련된 거래들을 기록하기 위한 타이틀 레지스트리 저장소23를 관리하는 하나 이상의 처리 장치 21를 포함한다. 하나 이상의 처리 장치 21는 통신 네트워크8를 통해 제1, 제2 및/또는 제3 처리 장치 13, 15 및 17 및/또는 하나 이상의 처리 장치 19와 통신할 수 있다. 특히, 하나 이상의 처리 장치 19는 토큰(T)의 전송을 포함하는 거래에 관한 데이터를 수신하고 기록하도록 구성될 수 있다.
토큰과 관련된 거래의 개요(Overview of transactions involving tokens)
토큰을 포함하는 3가지 일반적인 유형의 거래들이 있고, 이는 각각으로 발행자(I)3에 의해 토큰의 생성, 발행자(I)와의 제1 사용자(A)5 또는 제2 사용자(B)7에 의한 토큰값의 일부 또는 전부의 상환, 또는 제1 사용자(A)5 또는 제2 사용자(B) 7에 의한 토큰의 값의 일부 또는 전부의 제2 사용자(B)7 또는 제1 사용자(a)5로의 이전이 이다.
도 2를 참조하면, 제1 토큰(T1)의 생성은 일반적으로 제1 사용자(A)가 발행자(I)3에게 신용 화폐(예로, $1,000 AUD )를 전송하는 것을 포함하고, 신용 화폐와 교환에서 발행자(I)는 토큰값을 가지도록 암호화폐 (B1)을 "토큰화(tokensising)"하고 암호화폐의 제1 양(B1)을 제1 사용자(A)5로 전송한다. 제1 토큰(T1)은 발행자(I)가 제1 토큰(T1)의 소지자(bearer)ㄹ르 특정 신용화폐 양(예로, $1,000 AUD)으로 상환하는데 동의한 계약과 같은 계약의 대표물(representative)일 수 있다. 따라서 제1 토큰(T1)은 협상 가능한 도구(negotiable instrument)와 유사할 수 있다. "이용 약관(terms and conditions)에 따라, 제1 사용자(A)5는 예금된 신용화폐와 관련된 가치로 이후에 환불할 수 있다. 이용 약관은 또한 제1 사용자(A)5가 제2 사용자(B)에게 이전된 토큰의 가치의 적어도 일부를 갖도록 허용할 수 있다. 이러한 이용 약관은 토큰에 고유하거나, 사용자5, 7 및 발행자(I)3 사이에 일반적인 이용약관일 수 있다.
토큰 생성 방법의 개요(Overview of method of creating a token)
도 2 및 도 3을 참조하여, 토큰을 생성하는 방법 300이 이하에서 상세히 설명될 것 이다. 특히, 방법 300은 310에서 제1 토큰(T1)과 연관을 위해 암호화폐의 제1 양(B1)을 할당하는 단계(것)를 포함한다. 상기 방법은 제1 상환 스크립트(redeem script)(RS1)의 제1 해시(h1)를 결정하는 단계(것)를 포함하고, 여기서, 제1 상환 스크립트(Rs1)은 이하를 기반으로 한다: 제1 토큰(T1)과 연관된 정보; 제1 사용자 공개키(P1A); 및 발행자(I)와 연관된 제1 발행자 공개키(P1I)를 포함하고, 여기서, 제1 발행자 공개키(P1I)는 단계 312에서 제1 발행자 개인키(V1I)와의 암호쌍을 형성한다. 방법 300은 통신 네트워크 8를 통해 제1 데이터 출력(O1)을 블록체인9로 전송하는 단계314를 포함한다. 제1 데이터 출력은 제1 사용자(A) 5로 암호화폐의 제1 양(B1)의 거래의 표시(indication); 및 제1 해시(H1)를 포함하고, 상기 제1 해시(H1)는 암호화폐의 제1 양(B1)과 연관되어 제1 사용자(A) 5및 발행자(I)와 관련된 제1 토큰(T1)을 제공한다.
따라서 방법 300은 개인 대 개인 분산 대장 9으로 토큰의 기록을 전송함에 의하여 토큰의 생성을 허용한다. 블록체인 9 상의 이러한 거래를 기록하는 이점은 제1 사용자(A)5와 같은 수신자(recipient)가 토큰(T1)의 존재를 유효화하는 것을 허용할 수 있다는 것이다. 또한, 제1 토큰(T1)과 관련된 정보를 포함하는 적어도 제1 메타데이터(MD1)가 해쉬되기(hashed) 때문에, 이것은 토큰과 관련된 정보에 대한 거래(공공 기록(public record) 상에 있는)의 유효성을 허용한다. 일예에서, 제1 토큰(T1)과 관련된 정보는 계약의 이용 약관일 수 있다. 따라서 해쉬될 제1 상환 스크립트 내의 이용 약관은 어떤 변화에도 제1 해시(H1)를 바꿀수 없기에 이용 약관들이 변화될 수 없는 것으므로 제1 사용자(A) 5에 안락을 유리하게 제공할 수 있다. 제1 토큰(H1)은 제1 토큰(T1)을 생성한 시점에 블록체인 9 상에 보내지고 기록되므로, 동일한(identical) 제1 해시(H1)를 제공한 이후에 이용 약관을 변경하는 것은 불가능하다(또는 어렵다).
토큰을 생성하는 상세한 방법(Detailed method of creating a token)
도 3을 참조하면, 일부 실시예에 따른 제1 토큰(T1)을 생성하는 방법300이 도시된다. 이러한 예에서, 토큰을 생성하는 단계는 예금된 현금(cash)을 나타내는 토큰에 대한 대가로 발행자(I) 3에게 제1 사용자(A)5가 현금을 입금하는 문맥(context)에서 설명될 것이다. 그러나, 이는 비 제한적인 예이고, 토큰은 다른 거래들의 문맥(context)에서 생성될 수 있음을 이해해야 한다 예를 들어, 토큰은 다른 계약, 협상 가능한 도구, 유형 자산(tangible property) 등을 나타낼 수 있다.
토큰에 대한 이용 약관에 동의(Agreeing on 이용 약관 for the token)
제1 사용자(A)5는 발행자(I) 3와 연관된 제1 처리 장치13에 제1 토큰(T1)에 대한 요청을 제2 처리 장치 15로부터 전송함으로써 제1 토큰(T1)의 생성을 실시한다(instigates). 일예에서, 제1 사용자(A)5는 토큰(T1)에서 이러한 금액(amount)을 갖는 요청으로 예컨대 $1000 AUD 인 신용 통화를 예금함으로써 이러한 요청을 한다. 요청은 계약의 하나 이상의 이용 약관을 포함할 수 있는 계약에 대한 제안을 포함할 수 있다. 예를 들어, 제1 사용자(A) 5는 $1000 AUD의 예금과 관련된 토큰이 암호화폐에 대한 고정된 페깅율(pegging rate)를 가져야한다는 요청을 포함할 수 있다. 예를 들어, 페깅율은 1000사토시/센트AUD(satoshi/cent (AUD))이다. 다른 이용 약관이 계좌 유지비(account keeping fees), 거래 비용, 토큰이 어떻게 상환되는지 등과 같은 제안을 포함할 수 있음을 이해해야 한다.
단계 304에서 발행자(I)3의 제1 처리 장치 13는 통신 네트워크 8를 통해 제1 토큰(T1) 및 어떤 경우에는 이용 약관의 적어도 일부에 대해 제1 사용자(A) 5로부터 요청을 수신한다. 일부 실시예로, 306단계에서 발행자(I)는 요청을 수락할지, 요청의 이용 약관의 변형을 포함하는 카운터 제안(counter offer)를 제안할지 또는 요청을 거절할지를 결정할 수 있다. 일부 실시예에서, 방법 300은 단계 304에서 결정의 결과를 통신 네트워크 8를 통해 발행자(I)에 의해 송신하는 단계를 포함한다.
일부 실시예에서, 발행자(I)에게 전송된 요청은 단순히 제1 토큰(T1)에 대한 요청을 포함할 수 있다. 이 경우, 발행자(I)는 제1 사용자(A)5에게 이용 약관을 포함하는 제안을 보낼 수 있다. 제1 사용자(A)5는 제안을 수락할지, 카운터 제안을 제안할지 또는 제안을 거절할지를 결정할 수 있으며, 이는 발행자(I)로 전송된다. 그들이 동의할때까지 복수의 오퍼 및 카운터 오퍼가 발행자(I)와 제1 사용자(A) 5 간에 송수신될 수 있음을 이해해야 한다. 일부 실시에로, 이용 약관은 표준화될 수 있으며, 사용자는 방법 300의 단계를 수행함으로써 이용 약관을 수락한다. 일예로, 발행자(I)는 제1 사용자(A)5를 포함하는 그들의 고객들을 위한 토큰에 대한 표준화된 제안(offer)를 가질 수 있다. 이러한 토큰에 대한 제안은 공공 거래소(public exchange) 또는 발행자의 웹사이트와 같이 공개적으로 열거될 수 있다. 판매 제안(standing offer)은 전자메일(email), 응용프로그램 또는 안전한 웹사이트에 로그인(log in)하여 개인적으로 발행자(I)에 의해 제1 사용자(A)5에게 제공될 수 있다. 토큰에 관련된 이용 약관은 데이터 저장소 11에 저장될 수 있고, 저장을 위해 제3 자에게 전송되거나 토렌트(torrent)될 수 있다. 일부 실시예로, 이용 약관은 분산 해쉬 테이블(distributed hash table, DHT) 상에 저장될 수 있다
제1 사용자 공개키 결정(Determining 제1 사용자 공개키)
방법 300은 단계 308에서 제1 사용자(A)5와 연관된 암호쌍의 제1 사용자 공개키(P1A)를 결정하는 단계를 포함하고, 암호쌍은 제1 사용자 개인키(V1A) 및 제1 사용자 공개키(P1A)를 포함한다.20를 포함한다. 일 예로, 제1 사용자 공개키(P1A)는 통신 네트워크 8를 통해 제1 사용자(A)5로부터 발행자(I)로 전해질 수 있다. 다른 예에서, 제1 사용자 공개키(P1A)는 데이터 저장소 11 내에 저장되어 연관될 수 있다(예를 들어, 제1 사용자(A)5의 등록 동안 수신되고, 저장될 수 있다). 따라서, 제1 사용자 공개키(P1A)를 결정하는 단계 308는 데이터 저장소 11로부터 키를 수신하는 단계를 포함한다. 또 다른 예에서, 제1 사용자 공개키(P1A)는 통신 네트워크 8를 통해 제3 자로부터 수신될 수 있다. 제3 자는 예를 들어 인증 기관(certification authority)과 같은 공개 디렉토리(directory)와 같은 역할을 수행하는 신뢰가능한 제3 자를 포함할 수 있다.
토큰 130과 연관된 암호화폐의 제1 양을 할당(Allocating a first quantity of cryptocurrency for association with the token)
방법 300은 제1 토큰(T1)과 연관된 암호화폐의 제1 양(B1)을 할당하는 단계310를 포함한다. 개인대개인 분산 대장 상에 기록되는 제1 토큰(T1)과 관련된 거래의 기록을 위해(본 예에서는 블록체인), 토큰은 암호화폐의 일정량과 연관되어 있어야 한다. 차례로, 암호화폐의 양은 발행자(I) 3로부터 제1 사용자(A)로 거래로 블록체인 상에 기록된다.
제1 토큰(T1)과 연관된 암호화폐의 제1 양(B1)의 할당은 토큰값의 비율에 기초할 수 있다. 예를 들어, 제1 토큰(T1)에 대해 페깅율(PR1)이 구체화될 수 있다. 따라서, 암호화폐의 제1 양(B1)을 할당하는 단계 310는 페깅율(PR1) 및 제1 토큰값(TV1)에 기초한 암호화폐의 제1 양(B1)을 결정하는 단계를 포함한다. 예시적 예로, 페깅율(PR1)은 1000 satoshis/cent AUD(사토시/센트AUD)일 수 있고, 제1 토큰값(TV1)은 $1000 AUD이다. 따라서, 암호화폐의 제1 양(B1)은 10,000,000일 수 있다.
토큰에 대해 할당된 암호화폐의 양은 다음 고려 사항 중 일부에 의해 영향을 받을 수 있다. 먼저, 할당된 암호화폐의 양은 이상적으로 토큰의 값보다 적은 시장 가치를 가지고 있다(이목적을 위해, 이는 토큰값에 참조하지 않고 값을 가진다고 가정할 때, 암호화폐의 시장가치를 의미함). 토큰으로서보다 기본값(underlying value)에 대한 암호화폐의 양을 사용하려는 동기가 없도록하는 것이 바람직하다. 이것은 동전의 액면가를 동전이 주조된 금속보다 높게하는 것이 바람직한 현금 동전과 유사할 수 있으므로, 금속의 가치를 위해 동전을 녹일 필요가 없다. 일부예에서, 토큰값은 암호화폐의 양의 기본값보다 수배로 크다. 그러나, 일부 토큰은 고정되거나 쉽게 결정가능한 토큰 값을 가지지 않을 수도 있음을 이해해야 한다. 예를 들어, 토큰은 일을 수행하기 위한 계약을 대표할 수 있으며, 그로 인해 값은 매일 변할 수 있다. 다른 예에서, 계약서는 상환되는 당일에 결정할 수 있는 가치만을 가질 수 있다.
또 다른 고려사항은 할당된 암호화폐의 양이 거래의 가치 또는 토큰값에 상대적으로 매우 크지 않다는 것으로, 개인대개인 분산 대장 상의 암호화폐의 양의 거래에 대한 기록은 거래 비용이 발생하는 것과 같이 대가를 지불할 수 있다. 일부 예로, 거래 비용(fee)은 거래에서 암호화폐의 양에 기초하므로, 토큰에 대한 암호화폐의 양을 최소 수준(minimum level)로 유지하는 것이 바람직할 수 있다.
한편, 토큰과 관련되어 할당된 암호화폐의 양은 무한히 작지 않을 수 있다. 첫째, 암호화폐는 최소 액면(denomination) 금액(amount)을 가질 수 있고, 예를 들어, 비트코인은 최소 1개의 사토시를 가질 수 있다(1비트코인(BTC)= 10,000,000 satoshi(사토시)). 둘째로, 암호화폐의 거래는 최소 크기로 제한되거나 기록되지 않을 수 있다(또는 거래 비용은 거래 수행 비용에 가깝거나 초과할 것이다). 이러한 최소 금액(minimum amount)은 일부 예에서 "돈(dust)" 한도(limit)이다. 따라서 일부예에서, 토큰을 위한 암호화폐의 양을 할당하는 단계는 암호화폐의 최소 임계값(MT1) 이상이어야 한다. 그러므로, 방법 100은 제1 토큰(T1)에 적합한 암호화폐의 최소 임계값(MT1)을 결정하는 단계 및 암호화폐의 최소 임계값(MT1)이거나 이상인 암호화폐의 제1 양(B1)을 결정하는 단계를 포함한다. 일예에서, "비트코인"에서 암호화폐의 최소 임계값(MT1)은 546 satoshis(사토시)이다.
토큰에 대한 암호화폐의 양을 할당할 때, 다른 고려사항은 후속(subsequent) 토큰의 암호화폐의 양을 나누는 것(divisibility)이다. 예를 들어, 제1 토큰(T1)은 $1000 AUD의 토큰값(TV1)을 가질 수 있고, 제1 사용자(A) 5는 제2 사용자(B) 7로 $800 AUD의 토큰값을 전송하고, 나머지 $200 AUD 토큰을 유지한다. 이러한 거래는 거스름돈(change)으로서 제1 사용자(A)5와 유지하는 $200 AUD 를 나타내는 제2 토큰(T2)과 제1 토큰과 제2 사용자(B) 7로 전송되는 $800 AUD를 나타내는 제3 토큰(T3)의 생성을 결과로하는 거래와 관련된다. 따라서 이러한 전송의 결과는 제2 토큰(T2) 및 제3 토큰(T3)인 2개의 토큰이고, 각 토큰은 암호화폐의 양이 할당되어야 한다. 암호화폐의 제1 양(B1)이 최소일 때, 예를 들어, "돈(dust)" 한도에서 암호화폐의 추가 양이 필요하므로 새로 생성된 각 토큰은 최소 임계값을 만족시키는 암호화폐의 충분한 양과 연관된다. 그러므로, 제1 토큰(T1)에 대해 충분한 암호화폐의 양(B1)을 할당하는 것은 장점이 존재하기에, 후속 토큰의 예상된 수에 사용될 수 있도록 분할되기에 충분한 양이다.
일예에서, 이용 약관은 암호화폐의 양 또는 토큰의 최소값 또는 액면금액(denomination)을 특정할 수 있다. 예를 들어, 이용 약관은 토큰값의 최소 금액을 $10 AUD로 설정할 수 있다. 그러므로, $1000 AUD의 토큰값(TV1)을 갖는 제1 토큰(T1)에 대한 암호화폐의 제1 양(B1)을 할당하는 단계는 전체 토큰값(TV1)이 최소 액면금액까지 분할될 때 충분한 암호화폐가 존재한다고 보장하는 제1 양을 결정하는 단계를 포함한다. 이러한 예에서, 토큰값(TV1)은 100 후속 토큰($1000/$10에 의해 계산됨)으로 분할될 수 있다. 그러므로, 적절한 암호화폐의 제1 양(B1)은 "돈" 한계의 100배가 될 수 있다.
제1 상환 스크립트(redeem script)(RS1)의 제1 해시(H1) 결정 (Determining a first hash (H1) of a first redeem script (RS1))
상기 방법 300은 제1 상환 스크립트(RS1)의 제1 해시(H1)를 결정하는 단계 312를 더 포함한다. 일예에서, 상환 스크립트의 해시는 스크립트 해시 지불(a pay to script hash)(P2SH) 거래에 대한 스크립트 해시 지불(a pay to script hash)(P2SH) 주소를 제공하는데 사용될 수 있다. 비트코인 프로토콜에서, P2SH 스크립트에 사용되는 해시 함수를 예로 들 수 있다. 이는 SHA 256과 RIPEMD160의 조합이 포함될 수 있다.
제1 상환 스크립트(RS1)는 후술하는 바와 같이 암호화폐의 제1 양(B1)의 거래를 포함하는 제1 토큰(T1)을 잠금 해제하는데 사용되는 스크립트이다. 제1 토큰(T1)을 잠금해제할 때, 제1 상환 스크립트(RS1)의 특정 조건을 충족시켜 거래를 잠금해제한다. 특히, 제1 사용자(A)5 와 발행자(I)의 서명이 요구된다. 제1 상환 스크립트(RS1)의 예는 설명될 것이다.
제1 상환 스크립트(redeem script)(RS1)
제1 상환 스크립트는 적어도 제1 토큰과 관련된 정보를 포함하는 제1 메타데이터, 제1 사용자 공개키(P1A) 및 제1 발행자 공개키(P1I)를 기초로 한다.
(i) 일반적으로 P2SH에서 상환 스크립트
배경으로서, 스크립트 해시 지불 방법에서, 상환 스크립트(redeem sript)는 다음의 형태를 가질 수 있다:
<NumSigs PubK1 PubK2 ? PubK15 NumKeys OP_CHECKMULTISIG>
여기서(where),
NumSigs - 는 거래를 잠금 해제하기 위해 상환 스크립트를 만족하는데 필요한 유효 서명의 수 "m"이다.
PubK1, PubK2 ? PubK15 - 는 거래를 잠금 해제할 수 있는 서명에 대응하는 공개키(최대 15개의 공개키)이다.
NumKeys - 는 공개키의 수"n"이다(15 이하여야 함)
상기 상환 스크립트를 잠금 해제하기 위해서, 공개키들에 대응하는 적어도 "m"개의 서명이 요구된다. 일부 예에서, 공개키들의 순서는 중요하며, 서명을 위한 "n"개의 서명 중 "m"은 순서대로 수행해야 한다. 예를 들어, "m"이 2이고, 공개키"n"의 수가 15로 가정한다. Sig1 (PubK1에 해당)과 Sig 15 (PubK15에 해당)인 2개의 서명을 사용할 수 있다고 가정하면, 상환 스크립트는 Sig1을 먼저 서명한 다음 Sig15를 서명해야 한다.
(ii) P2SH를 이용한 제1 상환 스크립트(RS)
본 예로 돌아가면, P2SH를 이용하는 제1 상환 스크립트(RS1)는 상환 스크립트에 적어도 제1 메타데이터(MD1)를 포함할 수 있다. 특히, 적어도 제1 메타데이터(MD1)는 상환 스크립트 내의 공개키들을 이용할 수 있는 15 개 장소 중 하나 이상에 설치될(embedded) 수 있다.
따라서 일예에서, 제1 상환 스크립트(RS1)는 다음의 형태를 가질 수 있다:
<NumSigs Metadata1 Metadata2?PubK1 PubK2?NumKeys OP_CHECKMULTISIG>
여기서,
NumSigs - 은 거래를 잠금 해제 하기 위한 상환 스크립트를 만족시키는데 요구되는 유효 서명(valid signatures)의 수 "m"이다.
Metadata1 및 Metadata2- 는 공개키 대신 메타데이터 포함
PubK1 및PubK2 -은 실제 공개키들일 수 있다. 일예로, PubK1은 제1 사용자 공개키(P1A), PubK2는 발행자 공개키(P1I)일 수 있다.
- NumKeys -는 메타 데이터 및 공개키들(15자 이하여야 함)에 의해 취해진 총 위치(positions) 수이다.
이것의 장점은 메타데이터가 제1 상환 스크립트 내에 포함되는 것이고, 이는 다시 해시되고(hashed), 블록체인 9 내에 포함될 것이다. 그러므로, 불가능하지 않더라도 제1 상환 스크립트 해시(RS1)의 해당 해시가 변경되는 결과 없이 메타데이터의 값을 변경하는 것은 어렵다.
실제 이점은 아래의 예에 의해 예시될 수 있다. 제1 사용자(A) 5 및 발행자(I) 3은 특정 이용 약관을 갖는 계약을 체결하기 바랄 수 있다. 계약은 토큰을 생성하는 발행자(I)를 포함할 수 있고, 특정 이용 약관은 상환 스크립 내에 설치된 메타데이터 내에 포함된다. 상환 스크립트의 해시는 블록체인 9 상에 기록되며, 이는 변경이 어렵거나 불가능한 거래의 기록이 된다. 발행자(I)는 제1 사용자(A)5를 속이려 하며, 예를 들어, 용어를 변형하고 변형된 용어가 원래 합의된 계약에 있다고 주장하는 경우를 가정한다. 제1 사용자(A) 5는 상환 스크립트의 메타데이터에 변형된 용어를 배치하고 이를 해싱한 다음, 이것이 블록체인 상에 기록된 상환 스크립트와 매칭되지 않는 다는 것을 보여줘 다툴 수 있다(contest). 따라서, 적어도 제1 메타데이터에 토큰과 관련된 정보를 포함하는 단계는 토큰의 무결성(integrity)을 보장하는데 유용할 수 있다.
상환 스크립트 내의 메타데이터는 그 자체가 다른 정보의 해시를 포함할 수 있다는 것을 알아야 한다. 예를 들어, 이용 약관이 길면, 이용 약관의 해시를 더 짧은 메타데이터로 제공할 수 있다.
제1 상환 스크립트(RS1)는 기록(record) 로서 그리고 제1 토큰(T1)을 상환하기 위해 데이터 저장소 11에 저장될 수 있다. 일부 대안 예에서, 제1 상환 스크립트는 제1 사용자(A) 5 또는 제3 자에게 전송될 수 있다.
메타데이터(metadata)
본 실시예에서, 제1 상환 스크립트(RS1)은 아래의 형태를 가진다:
<2 Metadata1 Metadata2 P1A P1I 4 OP_CHECKMULTISIG>
따라서, 적어도 제1 메타데이터(MD1)는 상환 스크립트 내의 2개의 장소를 차지하는 Metadata1 및 Metadata2를 모두 포함한다. 이것은 제1 사용자 공개키(P1A) 및 제1 발행자 공개키(P1I)인 2개의 공개키가 순서대로 뒤따른다. NumSigs는 2이며, 이는 거래를 잠금 해제하는데 2개의 서명이 요구되는 것을 의미한다.
메타데이터는 다수의 방식으로 토큰에 관한 정보를 포함할 수 있다. 논의된 바와 같이, 일예에서 이용 약관은 메타데이터에 포함될 수 있다. 다른 예에서, 이용 약관의 해시가 메타데이터에 포함될 수 있다. 또 다른 예에서, 메터데이터는 계약의 이용 약관을 포함하는 파일에 대한 포인터를 포함할 수 있다. 다른 실시예에서, 상기 중 하나 이상을 포함하는 조합이 메타데이터에 포함될 수 있다.
(i) 이용 약관에 대한 포인터가 있는 메타데이터
제1 메타데이터의 구체적인 예는 이하 표 1에서 도시한다.
필드(field) 서브 필드(sub-field) 바이트(bytes) 값(value) 코멘트
Metadata1 ContractType 4 코드된 값은 계약의 유형을 지시한다
ContractPointer 16 실제 계약 파일 위치의 Plv6 주소
ContractTypeData1 12 ContractType의 값에 기초한 포맷.
0(zeros)으로 채워짐(padded with)
Metadata2 ContractHash 20 RIPEMD-160(SHA256(ContractPointer에 의해 어드레스된 실제 계약 파일))
ContractTypeData2 12 ContractType의 값에 기초한 포맷.
0(zeros)으로 채워짐(padded with)
이 예는 토큰 및 거래와 관련된 최소한의 정보양을 포함한다. 이러한 예는 계약의 크기가 메타데이터 내의 세부사항을 포함하지 못하는 경우 유용할 수 있는 계약에 대한 포인터를 제공하는 것을 포함한다. 또한, 메타데이터가 공개되거나 비보안 네트워크를 통해 전송될 수 있기 때문에, 프라이버시 이유로 인해 토큰의 구체적인 세부사항을 가리거나 숨기는 것이 바람직할 수 있다. metadata1의 처음 4바이트는 계약의 종류를 나타낸다. 예를 들어, 계약 유형은 '신용 통화(Fiat Currency)'일 수 있다. 다음 16바이트는 실제 전자 계약 파일 위치의 IP 주소를 보유하여, IPv6주소를 허용한다. 일부 실시예에서, 이 값은 계약 파일이 집중화되기보다는 클라우드를 통해 분산될 수 있도록 토렌트 파일의 시드(seed)를 가르킬 수 있다. 다음 12 바이트에는 계약의 유형 별 데이터를 포함한다.
metadata2의 처음 20바이트는 파일에 적용된 SHA256에 대한 RIPEMD-160을 사용한 실제 계약 파일의 해시이다. 실제 계약 파일은 검색할 수 있으므로, 계약에 대한 거래의 유효성을 확인할 수 있다. 계약 파일 자체는 특정 실시예의 요구에 따라 완전히 공개(암호화되지 않고 사람이 읽을 수 있도록)되거나 프라이버시를 위해 암호화될 수 있음을 유의해야 한다. metadata2의 나머지 12바이트의 내용은 계약의 유형에 따라 사용될 수 있다.
(ii) 토큰의 매개 변수(parameter)가 있는 메타데이터
제1 메타데이터(MD1)의 구체적인 예는 아래 표 2에 도시된다:
필드(field) 서브 필드(sub-field) 바이트(bytes) 값(value) 코멘트
Metadata1 ContractType 4 0x00000001 신용 통화(Fiat Currency) 지시한다
ContractPointer 16 실제 계약 파일 위치의 Plv6 주소
FiatDenomination 2 통화 지시하는 코드된 값(예, 0x0001=CAD, 0x0002=PHP, 등)
PeggingRate 1 BTC/fiat 페깅율( pegging rate)을 나타내는 코드된 값
TransactionType 1 출력 유형을 나타내는 코드된 값(발행(issuance)/지불(payment)/상환(redemption))
Padding 8 0x00000... 스페어 바이트(spare byte)
Metadata2 ContractHash 20 RIPEMD-160(SHA256(ContractPointer에 의해 어드레스된 실제 계약파일))
Padding 12 0x00000... 스페어 바이트(spare byte)
이러한 예에서, 토큰의 일부 키(key) 매개변수는 메타데이터에 포함된다. 키 매개변수에 의해, 이는 토큰 자체에 관련 정보 또는 거래의 처리를 도울 수 있는 정보를 포함할 수 있다. 특히, 상기 표 1에서 서브 필드(sub-field) "ContractTypeData1"에 할당된 바이트는 신용 금액(fiat denomination), 페깅율 및 거래 유형을 지시하는데 사용되었다. 발행자(I)3가 일부 경우에 거래를 처리하는데 요구되는 키 정보(key information)를 위한 계약 파일을 검색하지 않고 거래들 내 토큰을 처리하여, 메타데이터 내의 키 매개변수의 포함은 큰 처리 효율성을 도울 수 있다.
상기 정보에 추가하여, 토큰의 히스토리 또는 토큰에 선행하는 토큰에 대한 다른 정보가 포함될 수 있다. 예를 들어, 제1 사용자(A) 5가 제1 토큰(T1)의 일부를 상환하기 원하고, 제2 토큰(T2)이 발행자(I)에 의해 생성되어 나머지 부분의 값을 나타내는 경우, 발행자는 제2 토큰(T2)을 제1 토큰(T1)과 연관시키기 위해 메타데이터 내의 정보를 임베드(embed)할 수 있다. 이는 발행자(I)가 은행과 같은 발행자(I)를 위해 집중적인(intensive) 작업일 수 있는 거래들의 히스토리(history)를 통해 경로 추적의 비용 없이 토큰의 경로를 유지하고 설명하는데 도움을 제공할 수 있다.
표 2에서, 메타데이터는 신용 화폐(FiatDenomination)를 지시하는 2바이트 필드(2-byte field) 및 페깅율(peggingrate)라고 불리는 1바이트 필드(1-byte field)를 포함한다. 페깅율은 발행자(I)에 의해 설정된다. 동일한 신용 통화에 대해 몇몇 다른 율(rate)이 설정될 수 있지만, 각각 다른 율에 대해 서로 다른 토큰(다른 계약과의)이 필요할 수 있다. 율의 선택은 발행자(I)의 재량(discretion)에 달려있지만, 상기 논의한 토큰에 대한 암호화폐의 양의 할당에 관해서는 페깅율에 대한 유사한 고려를 할 수 있다.
일 예에서, 페깅율은 다음과 같이 8비트 코딩된 값이다:
가장 왼쪽 비트(leftmost bit)은 플래그(flag)로 사용된다:
'' 1=satoshis / cent(사토시/센트)로 표현된 비율('센트'는 최소 신용 금액인 신용 통화의 1/100을 나타낸다)
0= cents/satoshi(센트/사토시)로 표현된 비율
가장 오른쪽의 7비트(rightmost seven bits)는2진수로 10의 거듭 제곱으로 나타낸다. 예를 들면 다음과 같다:
USD 10000010은 100 satoshis/cent(사토시/센트)의 비율을 의미한다(플래그 켜짐(on)) PHP 00000000 은 1 centavo/satoshi(센타보/사토시)의 비율을 의미한다(플래그 꺼짐(off)) IDR 00000001은 10 rupiah/satoshi(루피아/사토시)의 비율을
의미한다(플래그 꺼짐(off))
일 예로, 거래종류(TransactionType)는 1바이트 필드(1-byte field)로 거래가 "발급"(토큰이 암호화폐로부터 생성됨)인지, 지불(토큰값의 적어도 일부가 일 사용자에서 다른 사용자로 전송됨)인지 또는 상환(토큰이 발행자(I)로 전달되어 다시 일반 암호화폐로 변환됨)인지를 나타낸다;
일부 예에서, Metadata1 및 Metadata2 모두에서의 "패딩(padding) "은 각 거래에 대해 무작위로 생성된 값을 포함할 수 있다. 결과는 Metadata1 및 Metadata2의 각각이 거래들 사이에서 변화하는 것이다. 장점은 Metadata1 또는 Metadata2 중 하나 또는 둘 모두를 암호쌍으로 일치시키는 개인키를 결정하는 부도덕한(unscrupulous) 사람의 위험 및 동기부여를 낮출 수 있다는 것이다(상환 스크립트에 서명하기 위해 개인키를 사용하는 목적) 이는 Metadata1 또는 Metadata2의 잔여 벌크(bulk)가 동일한 표준화된 토큰의 경우 중요할 수 있다.
공개키들
제1 사용자 공개키(P1A) 및 발행자 공개키(P1I)는 각각 대응하는 제1 사용자 개인키(V1A) 및 발행자 개인키(P1I)와 쌍을 이룬다. 공개키는 대중에게 널리 공지될 수 있고, 반면에 다른 예에서는 필요에 따라 공개키를 통신하는 것이 바람직할 수 있다는 것을 이해해야 한다.
일부 실시예에서, 발행자(I)는 금융 기관(financial institution)으로 제1 사용자(A)5 및 제2 사용자(B)7의 전자 지갑을 관리할 수 있고, 제1 및 제2 사용자 5,6는 가상의 기계 환경 또는 단말기를 통해 그들의 전자 지갑에 액세스할 수 있다. 전자 지갑은 발행자(I)3(또는 발행자(I)3와 관련된 서버)에 의해 호스트(hosted)될 수 있으며, 사용자에 대응하는 개인키는 데이터 저장소 11에 저장되지만 그 사용자로부터 승인과 함께 발행자(I) 3에 의해 단지 액세스(또는 재생성)될 수 있다. 이러한 경우에, 제1 및 제2 사용자 5,7는 자신의 개인키들이 상환 스크립트를 잠금 해제하기 위해 제공되도록 승인할 수 있다. 이는 사용자의 개인키(들)가 발행자(I)3의 제1 처리 장치 13로 전송되도록 인증하는 단계(것)를 포함할 수 있고, 여기서 제1 처리 장치 13는 사용자의 개인키(들) (예로, P1A, P1B) 및 제1 발행자 공개키(P1I)와 함께 상환 스크립트를 잠금 해제할 수 있다.
블록체인 150에 제1 데이터 출력(O1)을 전송
방법 300은 통신 네트워크 8를 통해 제1 데이터 출력(O1)을 블록체인 9으로 전송하는 단계 314를 더 포함한다. 제1 데이터 출력(O1)은 제1 사용자(A)5에 대한 암호화폐의 제1 양(B1)을 전송하는 거래의 표시를 포함할 수 있고, 즉, 제1 토큰(T1)과 연관된 암호화폐의 기본 양(B1)이 제1 사용자(A)5로 전송되는 것을 기록한다. 제1 데이터 출력(O1)은 또한 전술한 제1 해시(H1)를 포함한다. 제1 해시(H1)는 제1 사용자(A) 5 및 발행자(I)와 연관된 제1 토큰(T1)의 기록을 제공하기 위해 제1 암호화폐의 제1 양(B1)과 관련된다. 중요하게는, 제1 해시(H1)는 발행자(I)와 제1 사용자(A) 5 사이의 관계 및/또는 토큰의 이용 약관인 토큰(T1)의 존재를 증명하거나 검증하기 위해 사용될 수 있는 블록체인 9 상에 있다.
방법300은 또한 나중에 사용하기 위해 데이터 저장소 11에 제1 상환 스크립트(RS1)를 저장하는 단계 160를 포함할 수 있다.
제1 토큰을 생성하는 거래의 구체적인 예는 도 2를 참조하여 설명될 것이다.
제1 사용자(a) 5는 토큰에 상응하는 금액으로 $1000 AUD를 발행자(I)에 예금한다.
이러한 예에서, 제1 사용자(A) 5는 암호화폐의 제1 양(B1)에 10,000,000을 연관함으로써 $1000 AUD를 제1 토큰(T1)을 사례로 생성하는 발행자(I)에 $1000 AUD 의 토큰값(TV1)과 함께 예금하기 바란다.
토큰을 생성하기 위해, 발행자(I)는 암호화폐를 가질 필요가 있다. 이것은 이전 거래들로부터 유래하거나, 제1 토큰(T1)에 대한 제1 사용자(A) 5로부터의 요청에 대한 응답으로 유래할 수 있다. 이것은 도 2의 왼쪽에 "(비토큰화) 암호화폐의 제1 양"으로 표시된다.
표 3은 거래-ID/사토시 양(satoshis amount)/잠금 스크립트의 형태인 발생(originating) 거래 출력을 보여준다. 이러한 발생 거래 출력은 발행자(I)가 제1 토큰과 연관되어 사용된 암호화폐의 적어도 일부인 이전 거래로부터 얻은 암호화폐를 나타낸다.
첫번째 줄(first line) "ID-201"은 이 거래를 식별하기 위한 거래 식별자(transaction identifier)이다. 다음 줄은 이 거래에서 사토시(satoshis)의 수이며, 50,000,000이다. 세번째 줄은 이 거래의 잠금 스크립트(locking script)(출력 스크립트(ouput script))이다. 이러한 출력에서 상환 스크립트 <PubK-Issuer hash>는 제1 발행자 공개키(P1I)로 잠금된 이러한 출력을 보여준다. 즉, 이러한 거래는 발행자의 해당 제1 발행자 개인키(V1I)를 사용하여 잠금 해제될 수 있다.
전술한 바와 같이, 방법 300은 제1 토큰(T1)에 적합한 암호화폐의 제1 양(B1)을 할당하는 단계(것)를 포함한다. 그러나 발행자(I)가 가지고 있는 암호화폐의 양은 암호화폐의 제1 양(B1)과 정확하게 일치하지 않을 수 있다. 본 예에서, 요구되는 암호화폐의 제1 양(B1)은 10,000,000이고, 이는 거래 ID-201로부터의 50,000,000보다 적다. 따라서 제1 토큰(T1)을 생성하는 거래는 토큰에 요구되지 않은 과도한 양의 암호화폐를 위해 발행자(I)에게 암호화폐의 변경을 제공하는 것을 포함한다. 또한, 토큰 100의 생성은 채굴자에 대한 거래 비용의 지불을 요구하는 거래일 수 있다. 이것은 아래 표 4를 참조하여, 토큰을 생성하는 방법을 보여준다.
첫번째 줄 "ID-210"은 이러한 거래를 식별하기 위한 식별자이다. 두번째 줄은 사용된 비트 코인 프로토콜의 버전을 나타내는 "버전 번호(Version number)"이다. 세번째 줄은 단일 입력을 나타내는 거래의 입력수를 지시한다.
표 4의 네번째 내지 일곱번째 줄은 "입력" 즉, 현재 거래 ID-210에 지원하는 이전 거래에 관한 것이다. 네번째 줄은 이전 거래의 식별자이고, 다섯번째 줄"IDX-0""은 이전 거래 ID-201(이전 거래 ID-201로부터 제1 출력이 사용되는 경우 참조)의 출력의 인덱스(index)이다. 여섯번째 줄은 "ScriptSig"이고, 이는 이전 거래 ID-201의 잠금 해제 스크립트이다. 상술한 바와 같이, 이전 거래는 PubK-발행자(PubK-Issuer)에 의해 나타내는 제1 발행자 공개키(P1I)에 의해 잠금되어 있다. 따라서 이전 거래는 Sig-Issuer로 나타낸 발행자의 대응하는 제1 발행자 개인키(V1I)를 사용하여 잠금 해제될 수 있다. 일곱번째 줄은 입력과 관련된 일련 번호이다. 비트코인 거래에서, 각각은 비트코인 코어에 의해 더 이상 사용되지 않는 '시퀀스 번호(sequence number)'라 불리는 4바이트 필드를 포함한다. 발행자의 구현에 따라, 옵션은 거래 입력을 출력에 할당하기 위하여 이 필드를 사용한다. 시퀀스 번호는 1비트 플레그의 열을 나타내며, 오른쪽 비트부터 시작하는 각 플레그의 위치는 입력이 플래그가 지정된 출력에 대한 자금의 일부를 제공했음을 나타낸다. 예를 들어, 스퀀스 번호 "000000000000000000000000000000011"는 입력이 아래에 설명될 출력 1,2로 지불되어야 함을 나타낸다.
표 4에서 여덟번째 줄(line 8)은 거래에 대한 출력 수를 나타내며 이는 2이다. 아홉번째 내지 열한번째 줄(line 9 내지11)은 제1 출력을 나타내고, 열두번째 내지 열네번째 줄(line 12 내지 14)는 제2 출력을 나타낸다.
제1 출력은 제1 토큰(T1)과 연관된 암호화폐의 제1 양(B1)을 반영한다. 아홉번째 줄은 암호화폐의 제1 양(B1)의 출력 값이며, 이는 10,000,000 사토시(satoshis)이다. 열번째줄(lin 120)은 출력 스크립트 길이를 나타낸다. 열한번째 줄(line 11)은 출력 스크립트이다. 즉, 잠금 스크립트는 암호화폐의 제1 양(B1)을 잠근다. 이는 제1 상환 스크립트(RS1)의 제1 해쉬를 포함하며, 다음과 같이 표현된다:
OP_HASH160 <redeem script hash> OP_EQUAL
"OP_HASH160"은 입력이 SHA-256 및 이어서 RIPEMD-160으로 2번(twice) 해싱되는 해시 함수의 종류이다. 상환 스크립트 해시는 상술한 형태와 같이 제1 상환 스크립트(RS1)의 해시이며, 예는 아래와 같다:
2 metadata1 metadata2 P1A P1I 4 OP_CHECKMULTISIG
이것은 상술한 바와 같이 제1 사용자 공개키(P1A) 및 제1 발행자 공개키(P1I)를 포함한다. Metadata1 및 metadata2는 "발행(issuance)" 거래라는 표시를 포함하여 상술한 바와 같은 메타데이터를 포함할 수 있다. OP_EQUAL은 출력을 검증하기 위한 불린 결과(Boolean result)를 제공한다.
제2 출력은 거래에 대한 발행자의 변경을 반영한다. 이전 거래 ID-201인 입력에는 50,000,000 사토시가 포함되어 있으므로, 발행자(I)는 남은 사토시를 받을 것을 기대한다. 열두번째 줄(line 12)는 39,999,000인 제2 출력의 출력 값이다. 열세번째 줄(line 13)은 출력 스크립트 길이이고, 열네번째 줄(line 14)은 제2 출력의 출력 스크립이다. 제2 출력은 발행자(I)로 다시 변경되기 대문에, 발행자는 제2 출력을 자유롭게 소모해야 한다. 따라서, 출력 스크립트(즉, 잠금 스크립트)는 단지 <PubK-Issuer hash>로 표현되는 제1 발행자 공개키(P1I)를 포함한다.
일반적으로, 거래의 출력 값(들)은 입력보다 작거나 같아야 한다. 위의 예에서, 입력은 50,000,000이고, 출력은 49,999,000이다.(제1 출력의 10,000,000 및 제2 출력의 39,999,000을 기준으로 함) 따라서 1,000 사토시의 부족이 있다. 예를 들어, 1,000 사토시는 거래 비용(즉, 채굴자(miner) 비용(fee)이다)
발행자(I)와 있는 제1 사용자(A)에 의한 토큰 값의 일부 또는 전부의 상환의 개요(Overview of redeeming a token)
일반적으로, 토큰은 발행자(I)3와 함께 상환된다. 실시예에서, 발행자(I)는 사용자 5,7에 대한 전자 지갑을 제공하는 서비스 제공자이고, 사용자의 개인키는 발행자(I) 3와 관련된 데이터 저장소 11에서 안전하게 유지된다. 그러므로, 예에서, 사용자들 5,7(또는 각각의 처리 장치 15, 17)은 상환 스크립트에 서명하지 않는다. 대신에, 발행자(I) 3는 사용자 5,7의 승인을 받아 상환 스크립트에 서명한다. 예를 들어, 제1 사용자(A)5는 발행자(I)3에게 토큰을 상환하라는 요청을 전송할 수 있고, 암시적으로 또는 명시적으로 토큰을 상환하기 위한 이러한 요청은 토큰을 상환하기 위하여 발행자(I) 3가 제1 사용자 개인키(P1A)를 사용하는 제1 사용자 (A) 5의 승인도 포함한다.
제1 토큰(T1)을 상환하기 위한 방법은 통신 네트워크8를 통해 제1 토큰(T1)을 상환하기 위하여 제1 사용자(A)5로부터 요청을 발행자(I)3에 의해 수신하는 단계, 제1 토큰(T1)과 연관된 제1 상환 스크립트(RS1)를 결정하는 단계 와 예를 들어 데이터 저장소11 또는 다른 개체 또는 노드로부터 제1 사용자 개인키(V1A)를 얻는 단계를 포함한다. 발행자는 사용자 개인키(P1A) 및 제1 발행자 개인키(P1I)와 함께 제1 상환 스크립트에 서명할 수 있다. 이는 제1 사용자(A) 5에 대한 서비스 제공자인 발행자(I) 3가 제1 상환 스크립트를 전송함이 없이 통신 네트워크를 통해 서명 또는 서명되지 않은 제1 처리 장치 13에서 안전하게 이러한 단계를 수행할 수 있다.
방법은 또한 통신 네트워크 8를 통해 제2 데이터 출력(O2)을 발행자(I)의 암호화폐의 제1 양(B1)의 거래의 표시(indication)를 포함하는 블록 9에 전송하는 단계를 포함한다. 따라서 방법은 제1 토큰(T1)과 연관된 암호화폐의 제1 양(B1)을 발행자(I)에게 되돌려 보낸다. 일 예에서, 제1 상환 스크립트(RS1)가 제1 사용자(A) 5와 발행자(I) 모두의 개인키로 서명되었기 때문에, 거래에서 암호화폐의 제1 양(B1)의 수신자로서 발행자(I)는 다른 거래에서 암호화폐의 제1 양(B1)을 암호화폐 단독으로 또는 다른 연관된 토큰들과 사용할 수 있다.
제1 사용자(A)에 의해 토큰 값의 일부 또는 전부를 제2 사용자(B)로 전송
일부 예에서, 제1 사용자(A)5가 바라는 제1 토큰 값 또는 그것의 일부를 제2 사용자(B) 전송하도록 허락하기 위해, 하나 이상의 추가 토큰이 생성될 수 있다. 예를 들어, 제3 토큰(T3)는 제2 사용자(B)7와 발행자(I)와 연관되어 생성될 수 있다. 이는 제1 사용자(A)5가 사실상 제2 사용자(B)에게 제1 토큰(T1)과 연관된 동일하거나 유사한 권리를 이전하는 것을 허용하는 이점이 있을 수 있다. 제3 토큰(T3)의 형태인 새로운 토큰이 생성될지라도, 제3 토큰(T3)는 제1 토큰(T1)과 유사한 특성을 가질 수 있다. 예를 들어, 토큰은 동일하거나 유사한 연관된 메타데이터를 가질 수 있다. 예를 들어, 제1 사용자(A) 5와 발행자(I) 3사이에 적용되는 동일하거나 유사한 이용 약관은 제2 사용자(B)7와 발행자(I) 3사이에 또한 적용될 수 있다.
일 예에서, 제1 사용자(A)5는 제2 사용자(B)로 제1 토큰(T1)의 전체 값을 전송하기 원할 수 있다. 이는 제2 사용자(B)7로 전달된 암화화폐의 제1 양(B1)과 관련된 제3 토큰(T3)의 생성과 관련된다 효과적으로, 제3 토큰(T3)은 제2 사용자(B)7로 제1 토큰(T1)과 연관된 권리 및 제1 토큰(T1)의 전송이다.
또 다른 예에서, 단지 제1 토큰(T1)의 전체값의 제1 부분(R1)이 제2 사용자(B)7로 전달되고, 이러한 경우에, 전체값의 나머지 제2 부분(R2)은 제1 사용자(A) 5로 다시 환불되는 제2 토큰(T2)에 포함될 수 있다. 따라서 제3 토큰(T3)를 생성하는 요청은 암시적으로 또는 명시적으로 제1 부분(R1)에 기초한 제3 토큰값(TV3)을 갖는 제3 토큰(T3)를 생성하는 요청을 포함할 수 있다.
발행자(I) 또는 다른 제3 자인 중개자의 관련없이 제2 사용자(B)로 제1 사용자(A)에 의해 토큰을 전송
이러한 예에서, 제1 사용자(A) 5로부터 제2 사용자(B)로 값의 전송은 전송을 용이하게 하는 중개자(intermediary)로서 발행자(I)3을 포함한다. 이는 제1 사용자(A)5로부터 제2 사용자(B)7로의 암호화폐의 제1 양(B1)의 직접 거래와 구별된다.
그러나, 일부 경우에, 발행자(I)3 또는 다른 제3 자 중개자의 관련 없이 제1 사용자(A)5에 의해 제2 사용자(B)7로 토큰의 값을 전송하는 것이 바람직할 수 있다. 예를 들어, 제2 사용자(B)7가 서비스 제공자를 가지지 않거나 또는 제2 사용자(B)7의 서비스 제공자가 토큰을 발행할 책임이 있는 제1 사용자(A)5 또는 발행자(I)3의 서비스 제공자로서 동일한 신뢰 웹(same web of trust) 내에 있지 않은 경우에 이러한 상황이 발생할 수 있다. 이러한 실시예에서, 제2 사용자(B)7는 전송되는 토큰의 정당성(legitimacy) 또는 유효성(validity)을 보증하기 위해 예방 조치(precautions)를 취할 수 있다.
일반적으로, 제2 사용자(B)7가 제1 사용자(A)5의 서비스 제공자(SPA)로서 동일한 신뢰 웹 내의 서비스 제공자(SPB)를 갖는 경우, 서비스 제공자(SPB)는 토큰을 소모하거나 또는 상환하는 거래를 위한 서명자(signatory)로서 행동하고, 따라서 제2 사용자(B)7는 진위(authenticity) 또는 유효성(validity)을 확신한다. 그러나 제2 사용자(B)7는 제1 사용자(A)5의 서비스 제공자(SPA)와 도일한 신뢰웹 내의 서비스 제공자(SPB) 또는 서비스 제공자(SPB)를 갖지 않는 다면, 발행자(I) 또는 승인된 자는 거래를 인증하거나 유효성을 검증할 수 없을 것이다.
따라서, 제2 사용자(B)7는 제2 사용자(B)7로 전송되는 토큰(T1)의 정당성을 결정하기 원할 수 있다. 일부 실시예에서, 실행가능한 컴퓨터 코드를 포함하는 유효성 어플리케이션(validation application)이 처리 장치17의 메모리1520(도 8) 내에 저장되고, 처리 장치17의 프로세서1510에 의해(도 8) 실행될 때, 도 6 및 도 7 각각 참조하여 이하에서 보다 상세하게 설명되는 바와 같이 처리 장치17가 암호화폐의 양과 관련된 토큰(T)의 유효성을 결정하는 방법 600 또는 700을 수행하게 한다. 일부 실시예에서, 제2 사용자(B)7는 가상 기계 환경(virtual machine environment) 또는 처리 장치 17와 관련된 단말기(terminal)을 통해 액세스될 수 있는 전자 지갑(도시되지 않음)을 관리 할 수 있고, 전자지갑은 제2 사용자(B)7가 처리 장치17로 하여금 유효성 어플리케이션을 실행하게하는 추가(add-on) 특징(feature)을 포함할 수 있다.
제1 사용자(A)로부터 제2 사용자(B)로 토큰을 전송하는 거래의 구체적인 예는 도 4를 참조하여 설명될 것이다.
제1 사용자(A)는 제2 사용자(B)로 제1 토큰(T1)을 전송한다.
이러한 예에서, 제1 사용자(A) 5는 도 4에 도시된바와 같이 제2 사용자(B)로 토큰(T)을 전송하기 원한다. 이는 아래의 거래 ID-510인 제1 사용자(A) 5로부터 제2 사용자(B)7로 암호화의 양의 거래를 결과로 한다. 제2 사용자(B)7로 암호화폐의 양의 전송은 제2 사용자(B)7가 미래 거래들을 위하여 토큰으로서 암호화폐의 양(B1)을 소모하게 한다. 제2 사용자(B)7는 (제2 사용자(B)7로 암호화폐의 양(B1)을 전송한 지불 거래를 포함하는)메타데이터를 지우는 하나 이상의 거래들에 의해 암호화폐의 양(B1)을 "해독(detokenize)"할 수 있다. 제2 사용자(B)7는 제1 사용자(A)5 또는 다른 사용자로부터 (사인과 같은) 인증을 요구하는 제한없이 이러한 암호화폐를 더 소모할 수 있다.
제1 토큰ID-510을 전송하는 거래를 설명하기 전에, 아래 표7에 도시된 바와 같이, ID-510인 현재 지불 거래에 대한 입력인 거래 출력(거래 ID-500 및 ID-400)을 간략하게 기술할 것이다. 일반적으로, 2개의 입력은 토큰(T)과 연관된 암호화폐의 제1 양(B1)과, 암호화폐의 다른 양이 거래 요금(예로, 채굴자 요금)을 지불하도록 사용된다.
예를 들어, 제1 사용자(A)5는 거래ID-500에서 암호화폐의 양을 수신했을 수 있다. 거래 ID-500에서 제1 사용자(A)5로 보내진 출력은 아래와 같이 요약될 수 있다:
두번째 줄(line 2)은 10,000,000사토시인 토큰(T)과 연관된 암호화폐의 양을 나타낸다. 세번째 줄은 위에서 설명한 표 4에서 열한번째 줄에 해당하는 출력 스크립트를 나타낸다.
제1 사용자(A)5는 또한 이전 거래 ID-400으로부터 수신된 암호화폐의 양으로부터 부분적으로 지불되는 지불 거래 ID-510에 대한 거래 비용(예로, 채굴자 요금)을 지불할 필요가 있다. 암호화폐의 이러한 양은 아래와 같이 요약될 수 있다:
표 6의 두번째 줄은 1,000인 이전 거래로부터 암호화폐의 양을 나타낸다. 표 6의 세번째 줄은 이전 거래로부터 출력 스크립트이다.
이러한 거래 ID-400으로부터 암호화폐는 토큰과 관련이 없으므로(또는 토큰과 연관된 사용자) 상환 스크립트 해시는 PubK-Issuer로 표시되는 단순한 제1 발행자 공개키(P1I)의 해시이다. 즉, 거래ID-400으로부터 출력을 소비하려면, 이는 단순히 제1 발행자 개인키(V1I)와 서명의 서명을 요구한다.
제1 토큰(T1)을 상환하기 위한 거래 ID-510는 이하 표 7을 참조하여 설명될 것이다.
첫번째 줄 "ID-510"은 이러한 거래를 식별하는 거래 식별자이다. 두번째 줄은 사용된 비트코인 프로토콜의 버전을 나타내는 "버전 번호(version number)"를 나타낸다. 세번째 줄은 2개의 입력이 있음을 나타내는 이러한 거래의 입력 수를 나타낸다.
제1 입력이 네번째 내지 여덟번째 줄에 도시되어 있고, 이는 이전 거래 ID-500가 현재 거래ID-510에 자금을 제공하는 것이다. 네번째 줄은 이전 거래ID-500의 거래 식별자이다. 이전 거래 출력 인덱스(index)인 다섯번째 줄은 "IDX-00"으로 표시(marked)되고, 이는 사용된 이전 거래 ID-500으로부터 제1 출력을 가르킨다. 여섯번째줄은 "스크립트 길이(Script length)"로, 스크립트 길이의 지시자이다. 일곱번째 줄은 이전 거래를 위해 잠금 해제 스크립트인 "ScriptSig"이다. 나타난 바와 같이, 이전 거래 ID-500는 PubK-Issuer에 의해 나타난 제1 발행자 공개키(P1I)와 PubK-Alice에 의해 나타난 제1 사용자(A) 공개키(P1A)에 의해 잠금되어 있다. 따라서 이전 거래는 Sig-Alice로 표시된 Alice의 해당 개인키(V1A)와 Sig-Issuer로 표시된 발행자의 해당 제1 발행자 개인키(V1I)를 사용하여 잠금해제될 수 있다. 여덟번째 줄은 입력과 관련된 일련 번호(sequence number)이다.
제1 사용자(A)는 또한 이전 거래 Id-400으로부터 수신한 암호화폐의 양으로부터 일부를 지불한 거래를 전송하기 위해 거래 요금(예로, 채굴자 요금)을 지불할 필요가 있다. 표 7에서 열한번째 줄에서 열다섯번째 줄은 제2 입력의 줄과 관련이 있으며, 이것은 채굴자의 비용의 지불이다. 열한번째 줄은 이전 거래 ID-400의 거래 지시자이다. 열두번째 줄은 "IDX-01"로 이전 거래의 출력의 인덱스(index)이다. 열세번째 줄은 "스크립트 길이(Script length)"로 스크립트 길이의 지시자이다. 열네번째 줄은 이전 거래 ID-400를 위한 스크립트 잠금 해제하는 "ScriptSig"이다. 이러한 거래 ID-400으로부터 암호화폐는 토큰(또는 토큰과 관련된 사용자)과 관련이 없기에, 상환 스크립트 해시는 단순히 PubK-Alice로 도시된 제1 사용자 공개키(P1A)의 해시이다. 즉, 거래ID-400으로부터 출력을 보내기 위해, 이는 제1 사용자 개인키(V1A)로 서명하는 것(단계)를 단순히 요구한다. 열다섯번째 줄은 입력과 관련된 일련 번호(sequence number)이다.
표 7의 열일곱번째 줄은 하나인 이 거래의 출력의 수를 나타낸다. 열여덟번째 줄에서 스물한번째 줄은 토큰(T)와 관련된 암호화폐의 양을 반영한 출력을 나타낸다. 열여덟번째 줄은 암호화폐의 양의 출력 값으로 이 경우 10,000,000 사토시(satochis)이다. 이는 토큰(T)으로부터 암호화폐의 양에 대응한다. 열아홉번째 줄은 출력 스크립트 길이(output script length)를 가르킨다. 스물번째 줄은 출력 스크립트이다-예로, 잠금 스크립트는 암호화폐의 양과 관련된 토큰(T)의 제2 사용자(b)로의 전송을 잠근다.이는 상환 스크립트(RS)의 해시를 포함하며, 다음과 같이 표현된다:
OP_HASH160 <redeem script hash> OP_EQUAL
"OP_HASH160"은 입력이 SHA-256 및 이어서 RIPEMD-160으로 2번(twice) 해싱되는 해시 함수의 종류이다. OP_EQUAL은 출력을 입증하는 불린(Boolean) 결과를 제공한다. 상환 스크립트 해시는 상술한 형태와 같이 상환 스크립트(RS1)의 해시로이며, 예는 아래와 같다:
1 metadata1 metadata2 PubK-Bob 3 OP_CHECKMULTISIG
이러한 상환 스크립트는 PubK-Issuer로 나타난 발행자 공개키(P1I)뿐만 아니라 제1 토큰으로부터의 메타 데이터를 포함한다. metadata 1및 metadata2 는 상술한 메타데이터를 포함할 수 있고, "지불(payment)" 거래인 지시자를 포함한다. 이러한 상환 스크립트는 10,000,000사토시를 소비하기 위한 세가지 서명 중 하나를 필요로 한다. 실제로, 제1 사용자 개인키(V1B)는 후속 거래들에 대한 암호화폐를 서명하고 소비하는데 사용될 수 있다. 제1 사용자 공개키(P1A)는 이러한 상환 스크립트에 있지 않는 것에 주목 할만 하다. 이는 토큰(T) 및 암호화폐의 관련된 양이 제2 사용자(B)7로 전송되고, 그에 따라 제1 사용자(A)5에 의해 소비된 것으로 간주될 수 있기 때문이다. 따라서, 제2 사용자(B)7는 (제1 사용자(A)5의 서명을 통한 암시적 승인과 같이) 승인 요구 없이 암호화폐의 이러한 양을 자유롭게 사용해야 한다.
이러한 예에서, 현재 거래(ID-510)에 자금을 지우너한느 이전 거래ID-500(예로, 보내지 않은(unspent) 거래 출력(UTXO))은 발행자I에 의해 서명되었다. 따라서, 일부 실시예에서, 제2 사용자(B)7는 ?약 토큰(T)이 인증된 경우, 예를 들어 발행자(I)와 같이 인증된 서명에 의해 서명되는 경우, 거래ID-510과 관련된 암호화폐의 양과 관련된 제1 토큰(T)이 유효하다고 결정한다. 예를 들어, 토큰(T)은 토큰과 연관되고 거래ID-510에 입력으로 참조된 상환 스크립트(RS)가 승인된 또는 신뢰된 서명에 의해 서명된 경우, 승인된 서명에 의해 인증된 것으로 간주될 수 있다.
그러나, 제1 사용자(A)5의 서비스 제공자(SPA)가 발행자(I)와 동일한 신뢰 웹(web of trust)에 있지 않고, 거래ID-510과 관련된 토큰이 승인된 서명에 의해 서명되지 않은 경우를 간주해야 한다. 이러한 상황에서, 이전 거래ID-500의 상환 스크립트는 표 7이 일곱번째 줄 상에 표시되고, 이러한 예는 다음 형식을 취한다:
1 metadata1 metadata2 PubK-Alice 3 OP_CHECKMULTISIG
이러한 실시예에서, 토큰(T)과 연관되고 거래ID-510에 입력으로서 참조된 상환 스크립트(RS)는 인증된 서명에 의해 사인되지 않았기에, 따라서 제2 사용자(B)7는 상환 스크립트(RS)를 거래ID-510만을 자금지원하는 (funding) 입력으로서 참조된 것으로 간주함으로써, 토큰(T)의 정당성(legitimacy)을 보장할 수 없다.
타이틀 레지스트리 저장소(title registry store)
도 1을 참조하여 설명된 바와 같이, 일부 실시예에서, 시스템 1은 타이틀 레지스트리 저장소23를 포함하고, 이는 적어도 하나 이상의 처리 장치21 상에 실행되는 제어/관리 어플리케이션에 의하여 영향받거나 제어될 수 있다. 예를 들어, 실행가능한 코드(executable code)를 포함하는 관리 어플리케이션은 적어도 하나 이상의 처리 장치(processing devices) 21의 메모리1520도 8)에 저장될 수 있고, 적어도 하나 이상의 처리 장치21의 프로세서(들) 1510(도 8) 는 타이틀 레지스트리 저장소23를 관린하는 방법을 수행하는 관리 어플리케이션을 실행하도록 구성될 수 있다. 타이틀 레지스트리 저장소23는 토큰의 전송과 관련된 명령에 관한 정보를 기록하도록 구성될 수 있다.
일부 실시예에서, 타이틀 레지스트리 저장소23는 즉, 소유권이 변화하면 토큰(T)의 현재 소유자를 명시적으로 식별하지 않고, 즉 소유권이 변경되었다는 사실에 대한 기록을 유지한다. 따라서 일부 실시예에서, 타이틀 레지스트리 저장소23는 유효화되거나 검증된 미사용 거래 출력(UTXO)의 리스트 또는 서브리스트를 포함할 수 있다. 예를 들어, 거래가 타이틀 레지스트리 저장소23 상에 기록된 경우, 타이틀 레지스트리 저장소23는 즉, 상환 스크립트 해쉬의 메타데이터 내에 임베디드된 현재 소유자의 공개키인 현재 소유자의 지시자를 포함하는 적어도 하나의 거래 식별자 및 거래의 출력 스크립트를 포함할 수 있다.이전 소유자는 거래의 입력 센서의 잠금 해제 스크립트에서 식별된 공개키에서 결정될 수 있다.
그러나, 다른 실시예에서, 타이틀 레지스트리 저장소23는 또한 또는 대신에 토큰의 현재 및/또는 이전 소유자의 식별자를 포함할 수 있다. 예를 들어, 타이틀 레지스트리 저장소23는 직접 및/또는 간접 클라이언트들의 "귀하의 고객을 알아라(Know Your Customer)(KYC)" 등록부(register)를 포함할 수 있다. 일부 실시예에서, KYC 등록부의 유지는 소유권의 조건과 같은 토큰과 연관된 계약 내의 조항(provision)일 수 있다. 이러한 실시예에서, 토큰의 유효성 조건은 제2 사용자(B)7와 같은 피지불인이 당사자(P) 또는 발행자(I)와 직접 등록할 것을 요구할 수 있다. 이것은 전용 웹 페이지(dedicated web page)를 통한 오프 블록(off-block) 메커니즘을 통해 달성될 수 있으며, 그들이 소유자임을 증명하기 위해 서명을 요구하는 것과 같은 적절한 검사가 가능하다. 일부 실시예에서, 당사자(P) 또는 발행자(I)3는 데이터 저장소11 와 같은 내부 저장소 또는 상술한 계약의 이용 약관을 저장하도록 구성된 DHT와 같은 DHT 상에 조건을 저장할 수 있다. 일부 경우에, 발행자(I)3는 계약에 첨부된 소득을 지불하는 것과 같이 특정 의무를 수행하기 위하여 현재 소유자를 알아야할 수 있다. 예를 들어, 계약이 경주마(race horse)의 일부 쇼유권과 관련된 경우, 발행자가 상금을 지급해야하는 당사자를 식별해야할 수 있다.
하나 이상의 처리 장치21는 통신 네트워크8를 통해 제1, 2 및/또는 3 처리 장치 13, 15, 및 17 및/또는 하나 이상의 처리 장치 19로부터 데이터를 수신하고, 타이틀 레지스트리 저장소 23 내의 데이터를 저장하도록 구성될 수 있다. 유사하게, 하나 이상의 처리 장치 21는 타이틀 레지스트리 저장소 23로부터 데이터를 검색하고, 제1,2 및/또는 3 처리 장치 13, 15 및 17 및/또는 하나 이상의 처리 장치 19로 통신 네트워크 8를 통해 예를 들어, 데이터에 대한 요청에 대응하여(responsive to) 및/또는 기설정된 또는 일정한 간격과 같이 자동적으로 검색된 데이터를 제공하도록 구성될 수 있다.
일부 실시예에서, 발행자(I)3에 의해 발행된 토큰(T)의 전송을 포함하는 거래의 타이틀 레지스트리 저장소23에서의 기록은 그 토큰(T)의 발행자(I)3에 의해 조사된다. 예를 들어, 제1 사용자(A)5 또는 제2 사용자(B)7과 같은 사용자에 대한 토큰(T)을 생성하고, 및 토큰을 생성하는 방법300과 관련하여 314에서 상술한 바와 같이 블록체인9에 제1 데이터 출력(O1)을 전송하면서, 적어도 하나 이상의 프로세서13를 사용하는 발행자(I)3가 통신 네트워크 8를 통해 타이틀 레지스트리 저장소23와 연관된 적어도 하나의 프로세서21로 타이틀 레지스트리 저장소23의 관리 어플리케이션에 토큰의 전송을 기록하는 요청을 전송하는 제1 데이터 출력(O1)을 전송한다. 토큰의 발행자는 또한 아래에서보다 상세히 설명되는 바와 같이 토큰과 연관된 거래들에 관한 타이틀 레지스트리 저장소23를 유지 또는 업데이트할 책임이 있다.
일부 실시예에서, 타이틀 레지스트리 저장소23는 분산된 해시 테이블(distributed hash table)(DHT)를 포함할 수 있다. 일부 실시예에서, 분산된 해쉬 테이블(DHT)은 또한 토큰과 여관된 계약을 저장하도록 구성될 수 있다. 일부 실시예에서, 토큰과 연관된 계약을 저장하도록 구성된 분산된 해쉬 테이블(DHT)은 타이틀 레지스트리 저장소23의 분산된 해쉬 테이블(DHT) 내의 관련 엔트리(relevant entry)의 위치를 가르키는 하나 이상의 링크 또는 포인트(pointer)를 포함하는 필드를 포함할 수 있다.
타이틀 레지스트리 유지(Maintaining the Title Registry)
일반적으로, 하나 이상의 당사자(P)는 토큰의 임의의 전송 따라서 토큰의 소유권의 변경에 대한 정확한 기록을 유지 또는 유지하기 위해 타이틀 레지스트리 저장소23를 업데이트할 책임이 있다. 일부 예에서, 토큰(T)의 각 발행자(I) 3는 타이틀 레지스트리 저장소23 상의 토큰의 소유권의 어떤 변경의 정확한 기록을 유지할 책임이 있고, 임의의 거래들의 기록은 발생된 토큰의 이전을 포함한다.
발행자(I)에 의해 발행된 토큰의 전송을 기록하기 위한 타이틀 레지스트리 저장소23를 유지하는 방법 500은 도 5를 참조하여 설명될 것이며, 여기서 각 토큰은 암호화폐의 양과 관련된다. 일부 실시예에서, 실행 가능한 코드를 포함하는 타이틀 레지스트리 유지 어플리케이션은 하나 이상의 처리 장치13의 메모리1520(도 8) 및 토큰의 전송을 기록하기 위한 타이틀 레지스트리 저장소를 유지하는 방법500을 수행하는 타이틀 레지스트리 유지 어플리케이션을 실행하도록 구성된 하나 이상의 처리 장치13의 프로세서(들)1510(도 8) 내에 저장될 수 있다. 다른 실시예에서 방법500은 통신 네트워크 8에 접속된 인증된 당사자(P)와 연관된 처리 장치(미도시됨)에 의해 수행될 수 있다.
방법 500을 수행함에 있어서, 유지 어플리케이션은 502에서 발행자(I)에 의해 발행된 토큰의 전송을 포함하는 거래들을 위한 블록체인 9을 감시(monitor)하도록 구성된다.
블록체인 9 예를 들어 비트코인 블록체인은 거래를 기록하고 이전 거래 식별자, 입력 스크립트(들) 및 출력 스크립트(들)와 같은 거래들(TXs)의 세부사항을 포함할 수 있다. 전술한 바와 같이, 거래와 관련된 토큰은 거래의 입력 스크립트의 메타데이터로부터 결정될 수 있다.
발행자(I)에 의해 발행된 토큰(T)의 전송을 포함하는 거래를 결정하는 것에 대응하여(responsive to), 유지 어플리케이션(maintenance application)은 타이틀 레지스트리 저장소 23 상에 토큰(T)의 전송을 기록하도록 구성된다. 예를 들어, 일부 실시예에서 도 5에서 도시된 바와 같이 유지 어플리케이션은 타이틀 레지스트리 저장소 23 내의 토큰(T)의 전송을 기록하기 위한 요청을 타이틀 레지스트리 저장소23를 관리하는데 책임이 있는 제2 당사자(P2)와 연관된 하나 이상의 처리 장치21에 의해 호스트된(hosted) 유지 어플리케이션에 전송된다.
일부 실시예에서, 요청은 토큰(T)의 전송을 포함하는 거래의 지시자를 포함하는 데이터 데이터를 포함할 수 있다. 예를 들어, 데이터는 거래의 거래 식별자 및/또는 제1 데이터 출력(O1)을 포함할 수 있다. 일부 실시예에서, 데이터는 예를 들어 발행자의 서명(VL1)을 사용하여 서명되는 것으로 발행자(I)3에 의해 인증된다. 데이터는 블록체인 9에 기록된 토큰의 거래의 세부 사항으로부터 검색될 수 있다.
일부 실시예에서, 토큰의 발행자(I)3와 같은 제1 당사자(P1)로부터 제2 당사자(P2)에 의해 토큰의 전송을 기록하는 요청을 수신하는 것,508에서, 에 대응하여(responsive to), 제2 당사자와 관련된 적어도 하나 이상의 처리 장치(미도시됨)의 메모리(미도시됨)에 저장된 유지 어플리케이션은 510에서 타이틀 레지스트리 저장소 23 내의 데이터로 들어가는 적어도 하나의 처리 장치(미도시됨)의 프로세서(들)(미도시됨)에 의해 실행된다. 일부 실시예에서, 새로운 엔트리(entry)는 제2 당사자(P2)에 의해 수신된 각 요청 또는 유효 요청에 대한 타이틀 레지스트리 저장소23에서 생성된다. 일부 실시예에서, 요청과 연관된 토큰(T)에 대한 엔트리가 이미 존재하는 경우, 관리 어플리케이션은 토큰(T)에 대한 다른 엔트리를 생성하는 것과 대조적으로 엔트리를 업데이트하도록 구성될 수 있다.
거래와 연관된 토큰(T)을 유효하도록 타이틀 레지스트리를 사용(Using the Title Registry to validate the token (T) associated with the 거래)
타이틀 레지스트리 저장소 23를 사용하여 암호화폐의 양과 연관된 토큰(T)의 유효성을 결정하는 방법 600은 도 6을 참조하여 이하 설명될 것이다. 일부 실시예에서, 실행 가능한 코드를 포함하는 유효성 어플리케이션(validation application)은 처리 장치 17의 메모리1520(도 8) 내에 저장될 수 있고, 처리 장치17의 프로세서(들) 1510(도 8)는 유효성 어플리케이션을 실행하여 암호화폐의 제1 양(B1)과 연관된 제1 토큰(T1)의 유효성을 결정하는 방법 600을 수행한다. 방법 600은 제2 사용자(B)7와 연관된 처리 장치 17에 의해 수행될 수 있다.
제1 사용자(A)는 제1 토큰(T1)의 전송을 포함하는 제1 거래를 제2 사용자(B)에게 전송할 수 있다. 방법 600을 수행함에 있어서, 유효성 어플리케이션은 통신 네트워크 8를 통해 604에서 제1 사용자(A)에서 제2 사용자(B)로 토큰(T)을 전송하는 것을 포함하는 제1 계약을 수신하도록 구성된다. 제1 거래는 상기 표 7과 관련하여 논의된 것과 같은 암호화폐의 부분의 전송을 위한 블록체인 거래를 포함할 수 있다. 예를 들어, 거래는 거래 id, 적어도 하나의 입력 및 적어도 하나 이상의 출력을 포함할 수 있다. 입력(들)은 이전 거래(들)에 관련될 수 있고, 각각은 이전 거래 id 및 제1 토큰(T1)과 연관된 상환 스크립트를 포함하는 잠금해제 스크립트를 포함할 수 있다. 출력 중 적어도 하나는 현재 또는 첫번째 거래에 의해 영향을 받은 전송 또는 지불과 관련되고 잠금 스크립트를 포함할 수 있다.
일부 실시예에서, 유효성 어플리케이션은 606에서 토큰(T)이 인증되었는지 여부를 결정하도록 구성된다. 예를 들어, 이는 토큰(T)과 연관된 상환 스크립트 및 제1 거래에 대한 입력으로서 참조된 상환 스크립트가 토큰(T)의 발행자 또는 신뢰된 서비스 제공자와 같은 인증된 서명자에 의해 서명되었는지 여부를 결정하는 것을 포함할 수 있다.
유효성 어플리케이션은 608에서 토큰(T)의 전송을 포함하는 이전 거래 또는 제2 거래의 지시자를 결정한다. 제2 거래는 제1 거래를 선행하는 이전 거래일 수 있다. 일부 실시예에서, 지시자는 이전 거래의 거래 식별자일 수 있다. 예를 들어, 이전 거래는 현재 거래에 대한 입력으로 식별된 거래일 수 있고, 식별자는 현재 거래의 복수의 입력 매개 변수 중 하나로서 식별될 수 있다.
유효성 어플리케이션은 610에서 제2 거래가 타이틀 레지스트리 저장소23 상에 기록되는지 여부를 결정하기 위해 지시자를 사용하는 타이틀 레지스트리 저장소 23에 질의(query)하도록 구성된다. 예를 들어, 제2 거래가 타이틀 레지스트리 저장소 23 상에 기록된다면, 타이틀 레지스트리 저장소는 거래 식별자와 같은 제2 거래의 지시자를 포함할 수 있다. 따라서 일부 실시예에서, 토큰의 유효성에 대한 검증은 이전 또는 최종 소유자가 누구인지를 알지못하더라도 결정될 수 있다. 따라서 발명의 실시예는 선행기술에 의해 다루어지지 않은 기술적 문제를 해결하는 새롭고 유리한 검증 기술을 제공한다.
그러나, 다른 실시예에서, 타이틀 레지스트리 저장소23는 또한 또는 대신에 토큰의 현재 및/또는 이전 소유자의 식별자를 포함할 수 있다. 일부 실시예에서, 유효성 어플리케이션은 토큰(T)이 606에서와 같이 인증되지 않았다고 판별하는 경우에만 타이틀 레지스트리 저장소23에 질의하도록 구성될 수 있다.
612에서 제2 거래가 타이틀 레지스트리 저장소에 기록되거나 또는 등록되었다는 결정에 대응하여(responsive to), 유효성 어플리케이션은 토큰(T)이 유효한지를 결정하도록 구성된다.
일부 실시예에서, 제2 거래가 타이틀 레지스트리 저장소에 등록되어 있지 않다고 결정한 것에 대응하여(responsive to), 612에서 유효성 어플리케이션은 토큰이 유효하지 않은 것으로 결정하도록 구성된다. 그러나, 다른 실시예에서, 제2 거래가 타이틀 레지스트리 저장소에 등록되지 않았다고 결정한 것에 대응하여(responsive to), 유효성 어플리케이션은 단계 614에서 후술하는 바와 같이 방법 600의 단계 710 내지 714를 수행하도록 구성된다.
블록체인을 사용하여 거래와 관련된 토큰(T)의 유효성 검사
블록체인9을 사용하여 암호화폐의 양과 관련된 토큰(T)의 유효성(validity)을 결정하는 방법700이 도 7을 참조하여 이하 개시될 것이다. 일부 실시예에서, 실행가능한 코드를 포함하는 유효성 어플리케이션은 처리 장치 17의 메모리 1520 (도 8) 내에 저장될 수 있고, 처리 장치 17의 프로세서(들) 1510(도 8)은 암호화폐의 양과 연관된 토큰(T)의 유효성을 결정하는 방법700을 수행하는 유효성 어플리케이션을 실행하도록 구성된다. 방법 700은 제2 사용자(B)7와 관련된 처리 장치17에 의해 수행될 수 있다.
단계 702에서 제1 사용자(A)는 제2 사용자(B)에게 토큰(T)의 전송을 포함하는 제1 거래를 전송할 수 있다. 방법700을 수행함에 있어서, 유효성 어플리케이션은 단계 704 및 708을 수행하도록 구성되고, 이는 도 6과 연관되어 상술된 방법 600의 단계 604 및 608과 대응된다. 일부 실시예에서, 유효성 어플리케이션은 단계 706을 수행하도록 구성되고, 이는 도 6과 관련되어 상술된 방법 600의 단계 606에 대응한다.
유효성 어플레케이션은 블록체인9에 식별된 토큰(T)과 연관된 인증된 거래가 식별될 수 있는 지 여부를 결정하도록 질의하여 이전 거래의 지시자를 사용하도록 구성된다. 인증된 거래는 인증되었던 토큰(T)과 연관된 거래를 포함한다. 예를 들어, 토큰(T)과 연관된 상관 스크립트가 토큰(T)의 발급자 또는 신뢰된 서비스 제공자와 같은 인가된 서명자에 의해 서명된다면, 토큰은 인가되거나 합법적인 것으로 간주될 수 있다. 서명은 디지털 암화화폐 서명을 포함할 수 있다.
일부 실시예에서, 유효성 어플리케이션은 706에서와 같이 제1 거래의 토큰(T)이 인증되지 않았다고 유효성 어플리케이션이 먼저 결정한다면, 블록체인 9에 질의하도록 구성될 수 있다. 예를 들어, 이것은 토큰(T)과 연관되고 거래에 대한 입력으로서 참조된 상환 스크립트가 토큰(T)의 발행자 또는 신뢰된 서비스 제공자와 같은 인증된 서명자에 의하여 서명되었는지 결정하는 단계(것)를 포함할 수 있다.
일부 실시예에서, 블록체인9에 질의하는 것(단계)은 이전 거래의 지시자로서 동일한 지시자를 갖는 이전 거래를 식별하기 위해 블록체인9 내에 기록된 거래들의 지시자에 대응하는 이전 거래의 지시자를 비교하는 것(단계)를 포함한다. 예를 들어, 이전 거래의 지시자는 제1 거래에서 식별된 이전 거래ID를 포함할 수 있다.
유효성 어플리케이션은 토큰과 연관된 인증된 거래를 탐색하기(locate) 위해 블록체인9 내의 기입자(entries)를 스텝스로우(step through)(즉, 반복)하도록 구성된다. 따라서, 예를 들어, 블록체인9 내의 토큰(T)과 연관된 식별된 가장 최근의 거래가 인증된 거래가 아니면, 유효성 어플리케이션은 가장 최근의 거래 바로 앞에 있는 토큰과 연관된 거래를 찾거나 식별하고, 해당 거래가 인증된 거래인지 여부를 결정하도록 구성된다. 가장 최근 거래 바로 앞의 토큰과 연관된 거래가 인증된 거래가 아닌 경우, 유효성 어플리케이션은 토큰과 연관된 아직 이전 거래를 탐색하고 식별하며, 해당 거래가 인증된 거래인지를 결정하도록 구성된다.
일부 실시예에서, 유효성 어플리케이션은 가장 최근 또는 이전의 거래가 인증된 거래인지를 결정하도록 구성되고, 거래에 입력으로 참조되고 토큰과 연관된 상환 스크립트가 토큰(T)의 발행자 또는 신뢰된 서비스 제공자와 같은 인증된 서명자에 의해 서명되는지 여부를 결정하는 단계를 포함한다.
일부 실시예에서, 블록체인9 내에 기록된 거래가 인증된 거래가 아니라는 결정에 대응하여(responsive to), 유효성 어플리케이션은 거래의 기입자(entry)로부터 이전 거래의 지시자를 결정하고, 블록체인 9 내의 이전 거래를 위한 기입자를 식별하는 이전 거래의 지시자를 사용하도록 구성된다. 지시자는 거래와 연관된 이전 거래ID를 포함할 수 있다. 예를 들어, 일부 실시예에서, 유효성 어플리케이션은 가장 최근 거래 또는 이전 거래의 입력 스크립트로부터 이전 거래 식별자를 결정함으로써 가장 최근의 거래 직전의 거래 또는 이전 거래를인 거래를 탐색하거나 식별하도록 구성된다. 이 프로세스(단계)는 이전 거래를 식별할 수 없을 때까지 반복하여 수행된다.
그러므로, 본 발명은 블록체인 거래들과 관련된 논리적 계층(logical hierarchy)의 동적 구성(dynamic construction)을 포함하는 유리한 유효성 기술(validation techinique)를 제공한다. 거래들이 블록체인 상에 다른 블록에 기록되기 때문에 계층은 초기 거래에서 시작하여 복수의 소스를 사용하여 구성된다. 이러한 의미에서, 본 발명은 다수의 소스로부터 관련 데이터를 식별하고 연관시키며, 유효성 프로세서에 그것을 사용한다.
일단 유효성 어플리케이션이 인증된 거래를 식별하면, 방법 700은 단계 712로 이동한다. 그러나, 유효성 어플리케이션이 인증된 거래를 식별하지 못하면, 방법 700은 단계 714로 이동한다.
블록체인9에서 인증된 거래를 식별하는 것에 대응하여(responsive to), 단계 712에서 유효성 어플리케이션은 토큰(T)이 유효한지를 결정하도록 구성된다. 예를 들어, 유효성 어플리케이션은 이전 거래의 상환 스크립트가 인증된 서명자에 의해 서명되었다고 결정한 경우, 유효성 어플리케이션은 인증된 거래로서 이전 거래를 식별한다.
일부 실시예에서, 블록체인 9 내의 거래를 결정하지 못하는 것에 대응하여(responsive to), 단계 714에서 유효성 어플리케이션은 토큰(T)이 유효하지 않은 것으로 결정하도록 구성된다.
처리 장치(processing device)
도 1과 관련하여 상술한 바와 같이, 발행자(I)3, 제1 사용자(A)5 및 제2 사용자(B)7는 제1 처리 장치13, 제2 처리 장치15 및 제3 처리장치17과 연관될 수 있다. 블록체인9은 다수의 처리 장치 19와 연관될 수 있다. 타이틀 레지스트리 저장소23는 적어도 하나 이상의 처리 장치 21과 연관될 수 있다. 이러한 처리 장치는 컴퓨터, 태블릿 컴퓨터, 이동 통신 장치, 컴퓨터 서버 등과 같은 전자 장치의 일부일 수 있다. 처리 장치에 추가하여, 전자 장치는 데이터 저장소 11 및 사용자 인터페이스를 포함할 수 있다.
도 8은 처리 장치 13, 15, 17, 19, 21의 예를 도시한다. 처리 장치 13, 15, 17, 19, 21는 버스 1530을 통해 서로 통신하는 프로세서 1510, 메모리 1520 및 인터페이스 장치 1540을 포함한다. 메모리 1520는 여기서 기재된 방법 300, 500, 600, 700 을 포함하는 방법을 구현하는 명령 및 데이터를 저장하고, 프로세서 1510는 방법을 구현하기 위해 메모리1520로부터 명령을 수행한다. 인터페이스 장치 1540는 통신 네트워크 5와 일부 예로, 사용자 인터페이스 및 데이터 저장소 11와 같은 주변 장치와 통신을 용이하게 하는 통신 모듈(미도시됨)을 포함할 수 있다. 처리 장치 1501가 독립적인 네트워크 구성요소일지라도, 처리 장치13, 15, 17, 19, 21는 또한 다른 네트워크의 일부일 수도 있음을 알아야 한다. 게다가, 처리 장치13, 15, 17, 19, 21에 의해 수행되는 일부 기능은 복수의 네트워크 요소 사이에 분산될 수 있다. 예로, 발행자 3는 발행자(I)3와 연관된 보안 로컬 영역 네트워크에서 방법 300, 500, 600 및/또는 700을 수행하기 위해 다수의 처리 장치 23를 가질 수 있다.
이 개시는 사용자, 발행자, 판매자, 제공자 또는 기타 단체가 특정 작업(서명, 발행, 결정, 계산, 전송, 수신, 생성 등을 포함)을 수행한다고 설명하는 경우, 이 표현은 설명의 명확성을 위해 사용된다. 이들 동작은 이들 개체에 의해 동작되는 컴퓨팅 장치에 의해 수행된다는 것을 이해해야 한다.
서명은 암호화 기능을 실행하는 것을 포함할 수 있다. 암호 기능은 명확한(clear) 텍스트에 대한 입력과 개인키와 같은 키에 대한 입력을 가진다. 프로세서는 서명으로 사용될 수 있는 숫자 또는 문자열을 계산하는 함수를 실행할 수 있다. 서명은 명확한 텍스트와 함께 제공되어 서명된 텍스트를 제공한다. 서명은 메시지 텍스트 또는 키가 단일 비트로 변경되면 완전히 변한다. 서명을 계산하는데 계산 능력이 거의 필요로 하지 않지만, 주어진 서명을 가진 메시지를 재생성하는 것은 사실상 불가능하다. 이 방법으로, 명확한 텍스트는 변경 가능하며 개인키를 사용할 수 있는 경우 유효한 서명이 첨부된다. 또한, 다른 기관(entities)이 공개적으로 이용 가능한 공개 키를 사용하여 용이하게 검증할 수 있다.
대부분의 경우, 암호화 및 복호화는 암호화된 메시지 또는 평문 메시지를 각각 나타내는 출력 문자열을 계산하기 위해 암호화 기능을 실행하는 프로세서를 포함한다.
키, 토큰, 메타데이터, 거래, 오퍼, 계약, 서명, 스크립트, 메타데이터, 초대장(ivitations) 등은 "문자열" 또는 "인트(int)" 또는 다른 유형 또는 텍스트 파일의 프로그램 코드의 변수 데이터 메모리 상에 저장된 수, 텍스트 또는 문자열로 나타난 데이터를 말한다.
개인대개인 대장의 예로 비트 코인 블록체인이 있다. 비트코인 통화로 자금을 전송하거나 수수료를 지불하는 것은 거래로부터 출력인 자금 또는 비용과 함께 비트코인 블록체인 상의 거래를 생성하는 것을 포함한다. 비트 코인 거래의 예로는 입력 거래 해시, 거래 양, 하나 이상의 목적지, 피지불자(payee)의 공개키 및 입력 거래를 입력 메시지로 사용하여 생성된 서명과 서명을 계산하기 위한 지불자의 개인키를 포함한다. 거래는 입력 거래 해시가 비트코인 블록체인의 사본(copy)에 존재하는지 확인하고, 공개키를 사용하여 서명이 올바른지(correct) 확인함으로써 검증될 수 있다. 동일한 입력 거래 해시가 다른 곳에서 이미 사용되지 않았는지 확인하기 위해, 거래는 컴퓨팅 노드('채굴자')의 네트워크로 뿌려진다(broadeast). 채굴자는 입력 거래 해쉬가 아직 연결되어 있지 않고 서명이 유효한 경우에만 블록체인 상의 거래를 수락하고 기록한다. 입력 거래 해시는 이미 다른 거래에 연결된 경우 채굴자는 거래를 거절한다.
토큰에 대한 암호화폐를 할당하는 것은 거래 내의 메타데이터에서 나타난 할당된 암호화폐와 토큰으로 거래를 생성하는 것을 포함한다.
두 항목이 연관되면, 이는 이러한 항목들 사이에 논리적 연결이 있음을 의미한다. 저장소에서, 예를 들어, 두 항목의 식별자는 동일한 레코드에 저장되어 두 항목을 서로 연관시킬 수 있다. 거래에서, 두 항목의 식별자는 두 항목을 서로 관련되게 하기 위해 거래 문자열에 포함될 수 있다.
비트코인 프로토콜을 사용하여, 스크립트를 상환하는 것 및/또는 토큰을 잠금 해제하는 것은 개인키를 사용하여 스크립트 및/또는 거래의 서명 문자열을 계산하는 것을 포함한다. 스크립트는 다른 개인키 또는 다른 조건에서 파생된 하나 이상의 서명을 요구할 수 있다. 이 거래의 출력은 채굴자에게 제공된다.
다른 기관(entity)를 인증하는 단계는 개인키를 사용하는 거래의 서명 문자열을 계산하는 단계 및 개체가 거래를 인증하는 서명을 사용하도록 허용하는 서명 문자열을 제공하는 단계를 포함한다.
다른 개체(enetity)와의 계정을 갖는 사용자는 이메일 주소, 이름 및 잠재적으로 공개키와 같은 사용자에 대한 정보를 저장하는 개체(entity)를 포함할 수 있다. 예를 들어, 개체는 SQL, OrientDB, MongoDB 또는 다른 저장소(database)와 같은 데이터 베이스를 유지할 수 있다. 일부 예에서, 개체는 사용자의 개인키 중 하나 이상을 저장할 수 있다.
당업자라면 본 개시의 넓은 범위를 벗어나지 않고, 상술한 실시예에 대해 다양한 변형 및/또는 수정이 이루어질 수 있음을 이해할 것이다. 따라서 본 실시예들은 모든면에서 예시적이고, 제한적이지 않은 것으로 간주되어야 한다.

Claims (17)

  1. 하기 각 단계는 컴퓨터의 프로세서에 의해 수행되는 컴퓨터로 구현된 방법에서,
    토큰의 전송(transfer of token)을 포함하는 제1 블록체인 거래를 통신 네트워크를 통해 수신하는 단계;
    제1 블록체인 거래가 인증된 블록체인 거래인지 여부를 결정하는 단계;
    제1 블록체인 거래가 인증된 블록체인 거래로 결정되지 않은 경우, 개인대개인 분산 대장에 있는 항목을 반복하고 인증된 블록체인 거래가 식별되거나 이전 블록체인 거래를 식별할 수 있을 때 까지 하기 단계 i), ii)을 반복적으로 수행하여 토큰과 연관된 인증된 블록체인 거래가 식별되었는지 여부를 결정하도록 블록체인 기반의 상기 개인대개인(peer-to-peer) 분산 대장(distributed ledger)에 질의하는(querying) 단계; 및
    상기 개인대개인 분산 대장 내의 인증된 블록체인 거래를 식별하는 것에 대응하여(responsive to), 상기 토큰이 유효한지를 결정하는 단계;를 포함하고,
    상기 인증된 블록체인 거래는 상기 토큰과 연관된 상환 스크립트를 갖는 이전 블록체인 거래를 포함하고,
    상기 상환 스크립트는 인증된 서명자에 의해 서명되고,
    상기 결정하는 단계에서 상기 토큰이 승인된 서명자에 의해 승인된 경우 상기 제1 블록체인 거래가 인증된 블록체인 거래이고,
    상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법,
    i) 상기 토큰과 관련된 상기 상환 스크립트가 있는 이전 블록체인 거래를 찾거나 식별하는 단계,그리고
    ii) 승인된 서명자가 상기 상환 스크립트에 서명했는지 여부를 결정하는 단계.
  2. 제1항에 있어서,
    상기 개인대개인(peer-to-peer) 분산 대장(distributed ledger)에 질의하는(querying) 단계는 상기 제1 블록체인 거래의 토큰이 인증되지 않았다고 결정하는 단계에 대응하여(responsive to) 상기 개인대개인 분산 대장에 질의하는 단계를 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  3. 제2항에 있어서,
    상기 토큰이 인증되지 않았다고 결정하는 단계는 인증된 서명자에 의해 서명되지 않은 상기 제1 블록체인 거래에 입력으로 참조되고 상기 토큰과 연관된 상환 스크립트를 결정하는 단계를 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  4. 제1항 내지 제3 항 중 어느 하나에 있어서,
    상기 인증된 블록체인 거래의 토큰은 인증된 서명자에 의해 서명되는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  5. 제3항에 있어서,
    상기 인증된 서명자는 상기 토큰의 발행자 및 신뢰된 서비스 제공자(trusted service provider) 중 적어도 하나를 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 개인대개인 분산 대장에 질의하는 단계는,
    a) 상기 제1 블록체인 거래 내의 식별된 이전 블록체인 거래 ID를 결정하는 단계;
    b) 상기 개인대개인 분산 대장 내에 기록된 이전 블록체인 거래를 식별하는 단계;
    c) 인증된 서명자에 의해 서명된 이전 블록체인 거래의 상환 스크립트인지를 결정하는 단계;
    d) 상기 이전 블록체인 거래의 상환 스크립트가 인증된 서명자에 의해 서명되는 것을 결정하는 단계에 대응하여 상기 인증된 블록체인 거래로서 상기 이전 블록체인 거래를 식별하는 단계;
    e) 상기 이전 블록체인 거래의 상환 스크립트가 인증된 서명자에 의해 서명되지 않았다고 결정하는 단계에 대응하여(responsive to), 상기 이전 블록체인 거래에서 식별된 이전 블록체인 거래ID를 상기 이전 블록체인 거래ID로 결정하는 단계; 및
    f) 더 이상 이전 블록체인 거래들이 식별되지 않을때까지 단계c) 내지 e)를 반복적으로 수행하는 단계를 포함하고,
    상기 이전 블록체인 거래의 블록체인 거래ID는 상기 결정된 이전 블록체인 거래ID에 대응하는
    상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 개인대개인 분산 대장에서 인증된 블록체인 거래를 식별하지 못하는 것에 대응하여 상기 토큰이 유효하지 않다고 결정하는 단계를 더 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  8. 하기 각 단계는 컴퓨터의 프로세서에 의해 수행되는 컴퓨터로 구현된 방법에서,
    토큰의 전송을 포함하는 제1 블록체인 거래를 통신 네트워크를 통해 수신하는 단계;
    상기 토큰의 전송을 포함하는 제2 블록체인 거래가 타이틀 레지스트리 저장소(title registry database)에 기록되는지를 결정하도록 상기 타이틀 레지스트리 저장소에 질의하는(querying) 단계; 및
    i) 상기 제2 블록체인 거래가 상기 타이틀 레지스트리 저장소에 기록되었다고 결정하는 것에 대응하여 상기 토큰을 유효한 것으로 결정하거나,ii) 상기 제2 블록체인 거래가 상기 타이틀 레지스트리 저장소에 기록되지 않았다는 결정에 응답하여 상기 토큰과 관련된 인증된 블록체인 거래가 식별될 수 있는지 여부를 결정하기 위해 개인대개인 분산 대장의 항목을 반복적으로 질의하고, 상기 토큰이 인증되었으면 인증된 블록체인 거래를 식별하는 것에 응답하여 상기 토큰이 유효한지 결정하는 단계를 포함하고,
    상기 인증된 블록체인 거래는 상기 토큰과 관련된 이전 블록체인 거래를 포함하고,상기 제2 블록체인 거래는 상기 토큰과 연관된 상환 스크립트를 갖고,
    상기 상환 스크립트는 인증된 서명자에 의해 서명되는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  9. 제8항에 있어서,
    상기 제2 블록체인 거래는 제1 블록체인 거래에 선행하는(predate) 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  10. 제8항 또는 제9항에 있어서,
    상기 타이틀 레지스트리 저장소에 질의하는(querying) 단계는 상기 토큰이 인증되지 않았다고 결정하는 것에 대응하여 상기 타이틀 레지스트리 저장소에 질의하는 단계를 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  11. 제8항에 있어서,
    상기 타이틀 레지스트리 저장소는 토큰의 전송, 거래 지시자(indicator)와 연관된 각 기입자(entries)를 포함하는 블록체인 거래들과 연관된 적어도 하나의 기입자(entries)를 포함하고,
    상기 타이틀 레지스트리 저장소에 질의하는 단계는 상기 제1 블록체인 거래로부터 상기 토큰과 연관된 거래 지시자를 결정하는 단계; 및
    상기 제2 블록체인 거래를 식별하도록 상기 타이틀 레지스트리 저장소의 하나 이상의 거래 지시자를 상기 거래 지시자와 비교하는 단계;를 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  12. 제11항에 있어서,
    상기 거래 지시자는 블록체인 거래 ID인 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  13. 제8항에 있어서,
    상기 토큰이 인증되지 않은 것으로 결정하는 단계는 제1 상환 스크립트가 인증된 서명자에 의해 서명되지 않은 상기 제1 블록체인 거래에 입력으로 참조되고 토큰과 연관된 되는 것을 결정하는 단계를 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  14. 제13항에 있어서,
    상기 인증된 서명자는 상기 토큰의 발행자 및 신뢰된 서비스 제공자 중 적어도 하나를 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  15. 제8항에 있어서,
    상기 타이틀 레지스트리 저장소에 상기 제2 블록체인 거래가 기록되지 않은 것으로 결정하는 단계에 대응하여 토큰이 유효하지 않은 것으로 결정하는 단계를 더 포함하는 상기 토큰과 연관된 암호화폐의 수량을 포함하는 상기 제1 블록체인 거래의 메타데이터 필드에 표시된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  16. 유효성 어플리케이션을 저장하는 메모리 및 프로세서를 포함하고,
    상기 프로세서는 제1 항 내지 제3항 중 어느 하나의 방법을 수행하는 유효성 어플리케이션을 실행하도록 구성되는 암호화폐의 양과 관련된 토큰의 유효성을 결정하는 컴퓨터로 구현된 방법.
  17. 프로세서에 의해 실행될 때 상기 프로세서가 제1항 내지 3항중 어느 하나의 방법을 수행하게 하는 기계가 읽을 수 있는 명령(machine-readable instructions)을 포함하는 매체에 저장된 컴퓨터 프로그램.
KR1020227034814A 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템 KR102636102B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247004468A KR20240023688A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB201606065 2016-04-11
GB1606065.9 2016-04-11
PCT/IB2017/052061 WO2017178955A1 (en) 2016-04-11 2017-04-10 Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies
KR1020187032425A KR20180128968A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187032425A Division KR20180128968A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247004468A Division KR20240023688A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20220141351A KR20220141351A (ko) 2022-10-19
KR102636102B1 true KR102636102B1 (ko) 2024-02-14

Family

ID=58579234

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227034814A KR102636102B1 (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템
KR1020247004468A KR20240023688A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템
KR1020187032425A KR20180128968A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020247004468A KR20240023688A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템
KR1020187032425A KR20180128968A (ko) 2016-04-11 2017-04-10 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템

Country Status (8)

Country Link
US (2) US11727391B2 (ko)
EP (2) EP3443517A1 (ko)
JP (3) JP2019516274A (ko)
KR (3) KR102636102B1 (ko)
CN (1) CN109074565A (ko)
CA (1) CA3019275A1 (ko)
GB (1) GB2564519A (ko)
WO (1) WO2017178955A1 (ko)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10354325B1 (en) 2013-06-28 2019-07-16 Winklevoss Ip, Llc Computer-generated graphical user interface
US10068228B1 (en) 2013-06-28 2018-09-04 Winklevoss Ip, Llc Systems and methods for storing digital math-based assets using a secure portal
US9898782B1 (en) 2013-06-28 2018-02-20 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
US10846984B2 (en) * 2016-02-24 2020-11-24 Uplay1 Casino crypto currency systems and methods
US10362058B2 (en) 2016-05-13 2019-07-23 Vmware, Inc Secure and scalable data transfer using a hybrid blockchain-based approach
US20190005471A1 (en) * 2017-06-28 2019-01-03 Kitaru Innovations Inc. Method of operating and using a cryptocurrency
US11507947B1 (en) * 2017-07-05 2022-11-22 Citibank, N.A. Systems and methods for data communication using a stateless application
CN111866008B (zh) 2017-07-14 2022-05-31 创新先进技术有限公司 一种业务数据处理方法、业务处理方法及设备
GB201714987D0 (en) * 2017-09-18 2017-11-01 Nchain Holdings Ltd Computer-implemented system and method
JP6911725B2 (ja) * 2017-11-20 2021-07-28 富士通株式会社 電子投票システム、電子投票方法、および電子投票プログラム
JP7235153B2 (ja) * 2017-12-29 2023-03-08 株式会社三洋物産 遊技機
CN112330447A (zh) * 2018-01-19 2021-02-05 创新先进技术有限公司 资金流转方法及装置、电子设备
DE102018000687A1 (de) 2018-01-29 2019-08-01 Giesecke+Devrient Mobile Security Gmbh Verwendung von Payment-Token für Blockchain-Transaktionen
US10438290B1 (en) 2018-03-05 2019-10-08 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US10540654B1 (en) 2018-02-12 2020-01-21 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US10373129B1 (en) 2018-03-05 2019-08-06 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US11909860B1 (en) 2018-02-12 2024-02-20 Gemini Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US11475442B1 (en) 2018-02-12 2022-10-18 Gemini Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US11308487B1 (en) 2018-02-12 2022-04-19 Gemini Ip, Llc System, method and program product for obtaining digital assets
US10373158B1 (en) 2018-02-12 2019-08-06 Winklevoss Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US11200569B1 (en) 2018-02-12 2021-12-14 Winklevoss Ip, Llc System, method and program product for making payments using fiat-backed digital assets
JP7235154B2 (ja) * 2018-02-15 2023-03-08 株式会社三洋物産 遊技機
JP7231076B2 (ja) * 2018-03-08 2023-03-01 株式会社三洋物産 遊技機
US11159306B2 (en) * 2018-04-24 2021-10-26 Duvon Corporation Autonomous exchange via entrusted ledger token and transaction management
WO2019220271A1 (en) 2018-05-14 2019-11-21 nChain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
CN111899006A (zh) * 2018-05-29 2020-11-06 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
CN108898493A (zh) * 2018-06-14 2018-11-27 众安信息技术服务有限公司 一种基于区块链的投资策略交易方法及系统
WO2019246062A1 (en) * 2018-06-18 2019-12-26 Jpmorgan Chase Bank, N.A. Systems and methods for distributed-ledger based intercompany netting
WO2019246627A1 (en) * 2018-06-22 2019-12-26 Mshift, Inc. Blockchains for facilitating decentralized fund transfer
WO2020006138A1 (en) * 2018-06-29 2020-01-02 Arcblock, Inc. Blockchain adapter, protocol, and access layer
JP2020046975A (ja) * 2018-09-19 2020-03-26 G.U.Labs株式会社 仮想通貨の資金移動システムおよび方法
EP3864794B1 (en) * 2018-10-10 2022-12-07 "Enkri Holding", Limited Liability Company Linking transactions
JP6956062B2 (ja) * 2018-10-30 2021-10-27 株式会社Crypto Garage 取引方法、プログラム、検証装置及び生成方法
WO2019072287A2 (en) * 2018-11-30 2019-04-18 Alibaba Group Holding Limited USING A TABLE OF NUTS TO RESOLVE SIMULTANEOUS BLOCK CHAIN TRANSACTION FAILURE
KR102110383B1 (ko) * 2018-12-26 2020-05-13 한전케이디엔 주식회사 블록체인 기반의 모바일 보안 시스템
CN109816361B (zh) * 2019-01-10 2023-02-28 仲重宇 一种区块链无矿工费签名转账方法
CN109583863B (zh) * 2019-01-21 2024-04-02 深圳市祥云万维科技有限公司 一种区块链资源交易网络和交易方法
CN109615352B (zh) * 2019-01-21 2024-04-05 深圳市祥云万维科技有限公司 一种资源汇聚网络和方法
WO2020150919A1 (zh) * 2019-01-21 2020-07-30 深圳市祥云万维科技有限公司 一种区块链资源交易网络、网络节点和交易方法
CN109829822B (zh) * 2019-01-28 2020-10-23 杭州复杂美科技有限公司 交易替换方法、交易排队方法、设备和存储介质
JP2020130466A (ja) * 2019-02-15 2020-08-31 株式会社三洋物産 遊技機
CN110008722B (zh) * 2019-03-27 2022-04-08 致信互链(北京)科技有限公司 基于区块链的通证转移奖励处理方法、装置及存储介质
EP3673435B1 (en) * 2019-03-27 2022-05-25 Advanced New Technologies Co., Ltd. Improving integrity of communications between blockchain networks and external data sources
JP7234740B2 (ja) * 2019-03-28 2023-03-08 株式会社三洋物産 遊技機
JP7234741B2 (ja) * 2019-03-28 2023-03-08 株式会社三洋物産 遊技機
JP7234760B2 (ja) * 2019-04-11 2023-03-08 株式会社三洋物産 遊技機
JP7234761B2 (ja) * 2019-04-11 2023-03-08 株式会社三洋物産 遊技機
CN110210857B (zh) * 2019-05-17 2022-06-21 杭州宇链科技有限公司 一种基于公有链的通证交易方法及装置
US20220215394A1 (en) * 2019-05-24 2022-07-07 Gwangju Institute Of Science And Technology Transaction verification system for blockchain, and transaction verification method for blockchain
JP6651108B1 (ja) * 2019-06-06 2020-02-19 株式会社chaintope 暗号資産管理システム及び暗号資産管理方法
US11240244B2 (en) * 2019-06-26 2022-02-01 Microsoft Technologly Licensing, LLC Presentation interrupt for a DID attestation
JP6865251B2 (ja) * 2019-07-04 2021-04-28 三菱Ufj信託銀行株式会社 トークン発行信託システム
KR102139008B1 (ko) * 2019-07-22 2020-07-28 이화여자대학교 산학협력단 퍼블릭 블록체인 환경에서 개인정보보호를 위한 거래방법
WO2021026493A1 (en) * 2019-08-07 2021-02-11 Seatig Inc. A distributed computing architecture with settlement mechanism to enable traceability of credit tokenization, disbursement and repayment
CN112448936B (zh) * 2019-09-03 2023-03-14 致信互链(北京)科技有限公司 区块链中通证的迁移方法及系统
CN110599328B (zh) * 2019-09-09 2021-03-19 腾讯科技(深圳)有限公司 基于区块链的风险用户确定方法、装置、设备及存储介质
GB201913143D0 (en) * 2019-09-12 2019-10-30 Nchain Holdings Ltd Running a program from a blockchain
US10652022B1 (en) 2019-10-10 2020-05-12 Oasis Medical, Inc. Secure digital information infrastructure
US10979228B1 (en) 2019-10-10 2021-04-13 Oasis Medical, Inc. Secure digital information infrastructure
CN110866827B (zh) * 2019-10-12 2023-10-20 平安壹钱包电子商务有限公司 一种通证处理方法、装置、存储介质及服务器
CN110796449B (zh) * 2019-10-28 2023-01-20 网易(杭州)网络有限公司 交易处理方法、系统、介质和计算设备
SG10201912999VA (en) * 2019-12-23 2020-09-29 Islamic Res And Training Institute Method and System for Transaction Validation in a Distributed Computing System
CN111191212B (zh) * 2019-12-31 2020-12-15 卓尔智联(武汉)研究院有限公司 基于区块链的数字凭证处理方法、装置、设备和存储介质
US20210366004A1 (en) * 2020-05-20 2021-11-25 ZEN Global Limited Money management system, money management method, donation management system, donation management method and program
GB202008790D0 (en) * 2020-06-10 2020-07-22 Lee Brendan Computer-implemented methods and systems
AU2021290092A1 (en) * 2020-06-10 2023-02-09 Elas Holdings PTY LTD Computer implemented systems and methods
JP7038764B2 (ja) * 2020-07-21 2022-03-18 三菱Ufj信託銀行株式会社 権利移転完結型電子帳簿サーバ、及び権利移転完結型電子帳簿システム
US20220027896A1 (en) * 2020-07-22 2022-01-27 ZUZLab, Inc. Method and system for defining, creating, managing, and transacting multiple classes of digital objects
JP6935662B1 (ja) * 2020-08-19 2021-09-15 株式会社chaintope 記録が変更されていないことを証明するシステム
US11636467B2 (en) * 2020-09-14 2023-04-25 Visa International Service Association System, method, and computer program product for secured, encrypted transaction processing
GB2598945A (en) * 2020-09-21 2022-03-23 Nchain Holdings Ltd Commensal token system
JP2022072359A (ja) * 2020-10-29 2022-05-17 Line株式会社 情報処理装置、プログラム、方法、端末
US20220147993A1 (en) * 2020-11-12 2022-05-12 Arbër FAZLIU Secure peer-to-peer transctions using a blockchain network
EP4006795A1 (en) 2020-11-27 2022-06-01 ZOE Life Technologies AG Collaborative big data analysis framework using load balancing
US11960469B2 (en) 2020-12-07 2024-04-16 Deixis, PBC Heterogeneous integration with distributed ledger blockchain services
US11568393B2 (en) * 2020-12-23 2023-01-31 Paypal, Inc. Methods and systems for transferring unspent transaction output (UTXO) tokens in a blockchain network
CN112749967A (zh) * 2021-01-19 2021-05-04 矩阵元技术(深圳)有限公司 交易数据的处理方法、装置、用户终端和服务器
CN112950180A (zh) * 2021-02-24 2021-06-11 中国工商银行股份有限公司 一种基于联盟链的通证方法、系统、电子设备及存储介质
GB2605792A (en) * 2021-04-13 2022-10-19 Nchain Licensing Ag Blockchain based system and method
GB202106207D0 (en) * 2021-04-30 2021-06-16 Nchain Licensing Ag Devices and methods for splitting serialized tokens
WO2022245929A1 (en) * 2021-05-18 2022-11-24 Wellfield Technology Ir Limited Methods and system for derivative trading on automated market maker liquidity pools
CN113259128B (zh) * 2021-06-11 2021-09-24 武汉龙津科技有限公司 基于区块链的通证提取方法、装置、电子设备及存储介质
US20230092436A1 (en) * 2021-09-23 2023-03-23 International Business Machines Corporation Framework for demaraction of digital assets
US11887108B2 (en) * 2021-10-01 2024-01-30 Capital One Services, Llc System and user interface of a user device for managing tokens associated with a user
JP2023063369A (ja) * 2022-01-07 2023-05-09 株式会社三洋物産 遊技機
JP2023053387A (ja) * 2022-02-04 2023-04-12 株式会社三洋物産 遊技機
US20230319039A1 (en) * 2022-03-31 2023-10-05 Microsoft Technology Licensing, Llc Securing authentication flows using a decentralized identifier
JP2023060270A (ja) * 2022-04-01 2023-04-27 株式会社三洋物産 遊技機
JP2023060269A (ja) * 2022-04-01 2023-04-27 株式会社三洋物産 遊技機
KR20230161092A (ko) * 2022-05-18 2023-11-27 주식회사 플랜엑스랩 디지털콘텐츠의 nft 렌탈 서비스 제공 장치
WO2024054899A1 (en) * 2022-09-07 2024-03-14 Xixventures, Llc Peer-to-peer selectable digital money system
GB2622359A (en) * 2022-09-08 2024-03-20 Nchain Licensing Ag Blockchain-based token protocol
GB2622627A (en) * 2022-09-23 2024-03-27 Nchain Licensing Ag Atomic swap token trades
JP7392071B1 (ja) 2022-09-27 2023-12-05 三菱Ufj信託銀行株式会社 トークン移転システム

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729085B1 (ko) * 1999-12-18 2007-06-14 주식회사 케이티 전자지불토큰을 이용한 온라인 전자지불 서비스 방법
US6714939B2 (en) 2001-01-08 2004-03-30 Softface, Inc. Creation of structured data from plain text
JP2014519657A (ja) * 2011-05-31 2014-08-14 ブラックホーク ネットワーク、インコーポレイテッド 電子財布を経た支払いのためのシステム
WO2014201059A1 (en) 2013-06-10 2014-12-18 Certimix, Llc Secure storing and offline transfering of digitally transferable assets
US9898782B1 (en) * 2013-06-28 2018-02-20 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
FR3018370A1 (fr) * 2014-03-07 2015-09-11 Enrico Maim Procede et systeme de generation automatique de crypto-monnaies
US10776761B2 (en) * 2014-03-18 2020-09-15 nChain Holdings Limited Virtual currency system
US9858569B2 (en) * 2014-03-21 2018-01-02 Ramanan Navaratnam Systems and methods in support of authentication of an item
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US20150310466A1 (en) * 2014-04-25 2015-10-29 Truecar, Inc. Sales analyzer systems and methods
EP3140979A4 (en) * 2014-05-09 2017-12-27 Veritaseum Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
US9704143B2 (en) 2014-05-16 2017-07-11 Goldman Sachs & Co. LLC Cryptographic currency for securities settlement
US11055707B2 (en) * 2014-06-24 2021-07-06 Visa International Service Association Cryptocurrency infrastructure system
KR20160009301A (ko) * 2014-07-16 2016-01-26 주식회사 코빗 개인키 기반 전자 화폐의 결제 대행 서비스 및 이를 위한 방법
WO2016053760A1 (en) * 2014-09-30 2016-04-07 Raistone, Inc. Systems and methods for transferring digital assets using a de-centralized exchange
US20160098723A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US11250391B2 (en) * 2015-01-30 2022-02-15 Visa International Service Association Token check offline
US11023968B2 (en) 2015-03-05 2021-06-01 Goldman Sachs & Co. LLC Systems and methods for updating a distributed ledger based on partial validations of transactions
US20160267566A1 (en) * 2015-03-13 2016-09-15 Mark Levitt Systems and methods for managing an inventory of digital gift card assets
CA2981511C (en) 2015-03-31 2018-08-28 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
CA2981952A1 (en) 2015-04-06 2016-10-13 Bitmark, Inc. System and method for decentralized title recordation and authentication
CN107660293B (zh) 2015-04-20 2022-04-26 欧吉达克斯公司 物权电子凭证(edt)的分布式管理方法及其系统
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US11232415B2 (en) 2015-05-28 2022-01-25 OX Labs Inc. Method for cryptographically managing title transactions
JP6636058B2 (ja) * 2015-07-02 2020-01-29 ナスダック, インコーポレイテッドNasdaq, Inc. 分散トランザクションデータベースにおける出所保証のシステムおよび方法
KR101637854B1 (ko) * 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
JP6355168B2 (ja) * 2015-11-09 2018-07-11 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
US10719816B1 (en) * 2015-11-19 2020-07-21 Wells Fargo Bank, N.A. Systems and methods for math-based currency escrow transactions
US11270299B2 (en) * 2015-12-07 2022-03-08 Visa International Service Association Methods and systems of using a cryptocurrency system to manage payments and payment alternatives

Also Published As

Publication number Publication date
EP4195127A1 (en) 2023-06-14
KR20180128968A (ko) 2018-12-04
JP2019516274A (ja) 2019-06-13
KR20220141351A (ko) 2022-10-19
KR20240023688A (ko) 2024-02-22
GB201806521D0 (en) 2018-06-06
US11727391B2 (en) 2023-08-15
JP2023065633A (ja) 2023-05-12
EP3443517A1 (en) 2019-02-20
CN109074565A (zh) 2018-12-21
JP7241216B2 (ja) 2023-03-16
US20240005304A1 (en) 2024-01-04
JP2022088560A (ja) 2022-06-14
GB2564519A (en) 2019-01-16
CA3019275A1 (en) 2017-10-19
US20190130391A1 (en) 2019-05-02
WO2017178955A1 (en) 2017-10-19

Similar Documents

Publication Publication Date Title
KR102636102B1 (ko) 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템
JP7381625B2 (ja) 分散ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用した契約の実行を制御する方法及びシステム
JP6556370B2 (ja) 分散型ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用してデジタルアセットのインテグリティを検証する方法及びシステム
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
US20220292471A1 (en) Universal tokenisation system for blockchain-based cryptocurrencies
CN108833081B (zh) 一种基于区块链的设备组网认证方法
US20200145373A1 (en) System for blockchain based domain name and ip number register
Augot et al. A user-centric system for verified identities on the bitcoin blockchain
CN110800254A (zh) 用于生成数字标记的系统和方法
KR20220093198A (ko) 전용 및 개방형 블록체인을 이용한 거래의 수행
EP4035326A1 (en) Divisible tokens
JP2023530594A (ja) 分散型データベースにおける許可されたイベント処理
US11283623B1 (en) Systems and methods of using group functions certificate extension

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant