KR102472231B1 - 블록체인 구현 방법 및 시스템 - Google Patents

블록체인 구현 방법 및 시스템 Download PDF

Info

Publication number
KR102472231B1
KR102472231B1 KR1020197005310A KR20197005310A KR102472231B1 KR 102472231 B1 KR102472231 B1 KR 102472231B1 KR 1020197005310 A KR1020197005310 A KR 1020197005310A KR 20197005310 A KR20197005310 A KR 20197005310A KR 102472231 B1 KR102472231 B1 KR 102472231B1
Authority
KR
South Korea
Prior art keywords
node
script
key
logic
gate
Prior art date
Application number
KR1020197005310A
Other languages
English (en)
Other versions
KR20190033580A (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
Priority claimed from GBGB1613177.3A external-priority patent/GB201613177D0/en
Priority claimed from GBGB1613188.0A external-priority patent/GB201613188D0/en
Priority claimed from GBGB1613148.4A external-priority patent/GB201613148D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20190033580A publication Critical patent/KR20190033580A/ko
Application granted granted Critical
Publication of KR102472231B1 publication Critical patent/KR102472231B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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
    • 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
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • 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/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • 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/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/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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • 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
    • 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

Abstract

본 발명은 일반적으로 분산 원장 기술(블록체인 관련 기술 포함), 특히 작업 또는 프로세스를 구현, 제어 및/또는 자동화하는 블록체인의 사용에 관한 것이다. 그것은 로직의 일부분의 실행을 기록하거나 나타내는 블록체인 또는 관련 기술의 사용과 연관될 수 있다. 이러한 로직의 부분은 AND, XOR, NOT, OR 등과 같은 하나의 로직 게이트 또는 복수의 로직 게이트의 기능을 구현하도록 구성될 수 있다. 본 발명의 실시예는 출력에 대한 리딤 스크립트를 포함하는 블록체인 거래를 제공하는 단계를 포함할 수 있다. 여기서, 리딤 스크립트는 i) 복수의 공개키, 각각이 대응하는 개인키에 연관되고; 여기서 각각의 공개키는 적어도 하나의데이터 소스의 잠재적 상태와 고유하게 연관되고; 상기 개인키의 최소 개수는 출력을 소비하기 위해 추가 블록체인 거래의 잠금 해제 스크립트에 서명하는데 사용되고; ii) 다음에 기초하여 결과를 제공하도록 구성된 로직: A) 잠금 해제 스크립트에 서명하는데 이용되는 상기 복수의 관련 개인키의 결정(determination); 그리고 B) 중간 결과에 대한 잠금 해제 스크립트를 통해 제공되는 매개변수의 비교(comparison)를 포함한다. 상기 방법은 또한 각각의 시도가 상이한 매개변수를 제공하되, 거래 출력을 두 번 이상 소비하려고 시도하는 단계를 포함한다.

Description

블록체인 구현 방법 및 시스템
본 발명은 일반적으로 분산 원장(distributed ledger) 기술(블록체인 관련 기술 포함), 특히 작업 또는 프로세스를 구현(implementing), 제어(controlling) 및/또는 자동화하는(automating) 블록체인(blockchain)의 사용에 관한 것이다. 로직(logic)의 일부의 실행(execution)을 기록하거나(recording) 또는 나타내는(representing) 블록체인 또는 관련된 기술의 사용에 관한 것일 수 있다. 이러한 로직 부분은 AND, XOR, NOT, OR 등과 같은 하나의 로직 게이트(logic gate), 또는 복수의 로직 게이트의 기능을 구현하도록 배열될 수 있다.
이 문서에서 우리는 최근에 가장 널리 알려진 용어이기 때문에 편의와 용이함을 위해 '블록체인'이라는 용어를 사용한다는 점에 유의해야 한다. 그러나 이 용어는 여기서 (청구항을 포함하여) 전자, 컴퓨터 기반(computer-based) 분산 원장의 모드 형태를 포함하되, 합의-기반(consensus-based) 블록체인 및 거래-체인(transaction-chain) 기법, 허가 및 비허가 원장, 공유 원장 및 그 변형을 포함하며 제한되지 않는다.
블록체인은 순차로 거래로 구성된 블록으로 이루어진 컴퓨터 기반(computer-based)의 분산(decentralised), 분산 시스템(distributed system)으로 구현되는 전자 원장(electronic ledger)이다. 각 거래는 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시(hash)를 포함하여 해당 블록이 서로 연결되어 영구적이며 변경 불가능하고 처음부터 블록체인에 기록된 모든 거래의 기록을 생성한다. 거래는 입력 및 출력에 내장된(embedded) 스크립트(script)로 알려진 작은(small) 프로그램을 포함하며, 거래의 출력에 접근할 수 있는 방법 및 대상을 구체화한다. 비트코인(Bitcoin) 플랫폼 상에서, 이러한 스크립트들은 스택 기반(stack-based) 스크립팅 언어를 사용하여 작성된다.
거래를 블록체인에 기록하기 위하여, 해당 거래는 "유효화 되어야(validated)" 한다. 네트워크 노드(채굴자(miners))는 각 거래가 유효한지, 네트워크로부터 거부된 유효하지 않은(invalid) 거래인지를 확인하기 위해 작업을 수행한다. 노드에 설치된 소프트웨어 클라이언트(Software clients)는 잠금(locking) 및 잠금 해제(unlocking) 스크립트를 실행하여 사용되지 않은 거래(unspent transaction, UTXO)에 대해 유효성(validation)을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 참(TRUE)으로 평가되면, 거래가 유효하며 거래가 블록체인에 기록된다.
비록 다른 블록체인 구현(implementations)이 제안되고 개발되었지만, 블록체인 기술의 가장 널리 알려진 어플리케이션(application)은 비트코인 원장(Bitcoin ledger)이다. 비트코인은 본 명세서에서 편의상 설명을 위해 언급될 수 있지만, 본 발명은 비트코인 블록체인과 함께 사용하는 것으로 제한되지 않으며, 대안적인 블록체인 구현(implementations)은 본 발명의 범위 내에 있다.
블록체인 기술은 암호화폐(cryptocurrency) 구현의 사용으로 가장 널리 알려져 있다. 그러나 최근에 디지털 기업가는 비트코인이 기반인 암호화 보안 시스템(cryptographic security system)의 사용과 새로운 시스템을 구현하기 위해 블록체인에 저장할 수 있는 데이터를 모두 탐색하기 시작했다. 블록체인이 암호화폐의 영역에 국한되지 않는 자동화 제어 프로세스와 같은 작업 및 프로세스에 사용될 수 있다면 매우 유용할 것이다. 이러한 솔루션은 응용 분야에서 매우 다목적이므로 블록체인의 이점을 활용할 수 있다(예로, 영구적이고 쉽게 변경할 수 없는(tamper proof) 이벤트의 기록, 분산 처리(distributed processing) 등).
미국 공개특허공보 US 2015-0287026(2015.10.08) 국제 공개특허공보 WO 2015-144971(2015.10.01)
이와 같은 개선된 해결책이 고안되었다. 따라서, 본 발명에 따르면 첨부된 청구 범위에 정의된 시스템 및 방법이 제공된다.
따라서 본 발명에 따라 컴퓨터로 구현된 방법이 제공될 수 있다. 그것은 제어 방법으로 설명될 수 있다. 그것은 기술적 프로세스의 동작 또는 하나 이상의 디바이스의 동작을 제어할 수 있다. 추가적으로 또는 대안으로, 그것은 블록체인 스크립트의 실행을 제어할 수 있다. 그것은 거래 출력(UTXO)과 연관된 잠금 스크립트를 잠금 해제하기 위한 시도에 의해 생성된 출력을 제어할 수 있다. 그것은 블록체인 거래(UTXO)의 출력이 잠금 해제되는지 여부를 제어할 수 있다. 암호화폐의 일부가 블록체인을 통해 일 당사자에서 다른 당사자로 전송되는지 여부를 제어할 수 있다.
본 발명은 도 3에 도시된 실시예에 따라 실질적으로 구성될 수 있다.
방법은 출력에 대한 리딤 스크립트를 포함하는 블록체인 거래(Tx)를 제공하는 단계를 포함할 수 있고, 리딤 스크립트는:
복수의 공개키를 기입한다(specify). 이들은 암호화 키들일 수 있다. 그들은 개인/공개키 쌍의 일부를 형성할 수 있다. 복수(또는 "리스트(list)")의 키들 각각은 대응하는 개인키와 연관될 수 있다. 각 공개키는 적어도 하나의 데이터 소스의 잠재적 상태와 고유하게 연관될 수 있다. 따라서 리딤 스크립트는 공개키의 리스트를 포함할 수 있으며, 공개키에 대해 대응하는 개인키만이 거래 출력(TxO)을 소비하는데 사용될 수 있다.
결과는 잠금 해제 스크립트에 서명하는데 사용되는 복수의 관련 개인키에 의해 결정되거나 영향을 받을 수 있다. 스크립트에 서명하는데 사용되는 개인키의 비교는 중간 결과를 제공할 수 있다. 비교는 스크립트 내에 제공되는 알려지거나 기 결정된 파라미터 또는 값에 대하여 수행될 수 있다. 이는 거래 출력을 소비(또는 소비하지 않는)하기 위한 컴퓨팅 에이전트의 요구(desire)를 나타낼 수 있다.
중간 결과에 대하여 잠금 해제 스크립트를 통해 제공된 매개변수의 비교가 있을 수 있다 .
따라서, 본 발명의 실시예는 블록체인 거래(Tx)가 스크립트로부터 참이 아닌 값을 반환하도록 허용할 수 있다. 이는 매개변수를 사용하여 스크립트의 출력이 매개변수로 표시되거나 연관되는 제공된 목표 값(target value)과 일치하는지를 확인하거나 결정함으로써 달성될 수 있다.
방법은 2개 이상의 거래 출력을 소비하도록 시도하는 단계를 포함할 수 있다. 사실상, 이것은 이중(또는 그 이상)의 소비이다. 이중의 소비는 전통적으로 다른 수신자에 동일한 양의 암호화폐를 전달하려고 시도할 때 부정적인 행동으로 보여진다. 그러나, 이 경우에는 이점으로 이용된다.
각 소비 시도는 블록체인 네트워크에 (상이한) 거래를 제출하는 단계를 포함할 수 있다. 각 시도는 리딤 스크립트에 상이한 매개변수를 제공하거나 공급하는 거래를 이용하여 수행될 수 있다. 각 시도는 상이한 (블록체인) 주소에 출력을 소비하도록 시도하는 블록체인 거래를 생성할 수 있다.
매개변수는 참(TRUE) 또는 거짓(FALSE)을 나타낼 수 있는 잠금 해제 스크립트를 통해 공급될 수 있다. 이는 암호화 퍼즐과 같은 퍼즐일 수 있다. 이는 키에 내장된 값일 수 있다. 방법은 키로부터 값을 추출하는 단계를 포함할 수 있다.
로직은 동등성 검사 또는 비교를 수행하도록 구성될 수 있다. 검사 또는 비교는 중간 결과를 매개변수와 비교할 수 있다. 중간 결과는 리딤 스크립트 내 제공되거나 내장된 실행 로직에 의해 제공될 수 있다. 이는 로직 게이트의 기능을 에뮬레이트하거나 제공하도록 구성된 로직의 일부일 수 있다. 중간 결과는 메모리의 스택으로부터 검색/배치될 수 있다.
방법은 거래를 생성하는 단계를 포함할 수 있다. 이는 이를 블록체인에 제출하는 단계를 포함할 수 있다.
거래 및/또는 추가 (소비) 거래는 컴퓨팅 에이전트에 의해 생성될 수 있다. 이는 센서 또는 다른 신호 소스로부터 수신된 입력에 기초하여 (사람의 개입 없이) 자동적으로 생성될 수 있다.
추가적 또는 대안적으로, 리딤 스크립트는 잠금 해제 스크립트에 서명하는데 사용되는 복수의 공개키에 기초하여 결과를 제공하도록 구성된 로직의 일부를 포함할 수 있다. 따라서, 리딤 스크립트에 제공된 로직의 실행은 잠금 해제 스크립트에 서명하는데 사용되는 관련 개인키에 의해 결정되거나 영향을 받을 수 있다.
추가적 또는 대안적으로, 상기 개인키의 최소 개수는 출력을 소비하기 위하여 추가 블록체인 거래의 잠금 해제 스크립트에 서명하도록 요구될 수 있다.
결과(result 또는 outcome)는 잠금 해제 스크립트에 서명하는데 이용되는 (특정) 개인키의 결정에 의존할 수 있다. 방법은 리딤 스크립트 내 제공된 관련 공개키에 대하여 잠금 해제 스크립트에 서명하는데 사용되는 개인키를 매칭하는 단계를 포함할 수 있다.
유리하게는, 이는 특정키가 사용되는 것이 아니라 단순히 특정 개수의 키가 사용되는 것을 요구하는 종래 기술보다 훨씬 더 많은 제어를 본 발명이 제공할 있도록 한다. 복수로부터의 어떤 특정키가 사용되는지를 결정함으로써, 본 발명은 거래 출력 UTXO를 잠금/잠금 해제하는 것을 제어할 때 보다 높은 수준의 입상(granularity) 또는 세련(sophistication)을 촉진하는 대안적이고 강화된 보안 기법을 제공한다. 따라서, 본 발명이 암호화폐의 일부의 전송을 제어하기 위한 개선된 암호화 기법을 제공한다고 말할 수 있다.
중간 결과는 리딤 스크립트 내에 제공되는 로직으로부터 도출되고, 및/또는 잠금 해제 스크립트에 서명하는데 사용되는 키를 결정하는 것에 의해 계산되는 불 값이다.
리딤 스크립트의 로직은 로직 게이트의 기능을 구현하도록 구성될 수 있다. 로직 게이트는 NOT, AND, OR, NOR, XOR, IMPLY, NAND, NONIMPLY 및/또는 XNOR 게이트일 수 있다. 따라서, 본 발명은 로직 게이트의 기능이 블록체인 거래를 통해 시뮬레이트되거나 시행되는 것이 가능하게 하는 기법을 제공하는 것으로 설명될 수 있다. 로직을 에뮬레이트하는 스크립트 로직의 일부는 중간 결과를 제공할 수 있다.
적어도 하나의 데이터 소스의 상태는 컴퓨팅 에이전트에 의해 결정될 수 있다. 에이전트는 상태(condition)를 모니터링하도록 구성될 수 있다. 이는 예를 들어 컴퓨팅 네트워크 또는 장치관련 상태의 상태 또는 환경 요인의 상태이거나 다른 유형의 정량화 가능한 상태일 수 있다.
컴퓨팅 에이전트는 제어 컴퓨팅 에이전트와 통신할 수 있다. 이는 여기서 "컨트롤러(controller)"로 지칭될 수 있다. 리딤 스크립트는 컨트롤러에 의해 생성될 수 있다. 하나 이상의 에이전트는 프로세스 또는 장치를 제어하도록 구성될 수 있다.
컴퓨팅 에이전트의 하나, 일부 또는 전부는 에이전트 기본 키(agent base key)라 불리는 암호화 키를 포함할 수 있다. 이는 에이전트(들)에 의해 생성될 수 있다. 이것은 컨트롤러로부터 도출(derived) 및/또는 수신될 수 있다. 복수의 키들 중 적어도 하나 이상은 기본(base) 또는 "마스터(master)" 키로부터 생성되거나 도출될 수 있다. 키 생성(generation)은 결정론적 키 생성 기술(deterministic key generation technique)을 사용함으로써 수행될 수 있다. 이 방법은 에이전트에 의해 모니터링되고 있는 상태의 각 가능한 상태에 대한 추가 또는 개별 키를 생성 또는 유도하는 단계를 포함할 수 있다. 추가 키는 아래의 "공유 비밀을 사용하여 키 생성하기"로 명명된 섹션에서 설명된 기술을 이용하여 기본 키로부터 도출될 수 있다.
로직에 의해 제공된 결과는 불(Boolean) 결과 또는 다른 유형의 결과일 수 있다. 로직은 제한된 범위의 결과로부터의 결과를 제공할 수 있다.
적어도 2개의 데이터 소스가 있을 수 있다. 각 데이터 소스에는 2개의 잠재적인 상태가 있을 수 있다. 각 잠재적인 상태는 공개키와 연관되거나 공개키로 표시될 수 있다. 따라서, 리딤 스크립트 내에 제공된 공개키들의 리스트는 데이터 소스(들)가 채택하거나 입력할 수 있는 가능한 모든 상태를 정의, 표현 또는 설명하는데 사용될 수 있다.
방법은 단계를 포함할 수 있다:
적어도 하나의 데이터 소스 각각에 대해:
복수의 공개키를 데이터 소스의 잠재적 상태와 연관시키는 단계;
데이터 소스의 모든 가능한 상태가 각각의 공개키에 의해 나타난다.
다시 말해, 공개키가 상태에 대한 (고유) 식별자로서 이용될 수 있도록 각 데이터 소스의 각 가능한 상태는 공개키와 연관될 수 있다. 따라서, 키는 각 키와 데이터 소스의 잠재적 상태 사이에 매핑을 형성하기 위해 신중히 선택될 수 있다. 이는 키들이 데이터 소스의 잠재적인 상태의 표현으로서 기능하게 할 수 있도록 한다. 어떤 개인키가 잠금 해제 프로세스(process) 동안 서명하는데 사용되었는지에 대한 분석 또는 결정은 데이터 소스의 상태의 결정을 가능하게 한다.
적어도 하나의 데이터 소스는 센서를 포함할 수 있다. 추가적으로 또는 대안적으로, 데이터 소스는 컴퓨팅 자원 또는 에이전트에 입력 신호를 생성 및/또는 송신할 수 있는 소스를 포함할 수 있다.
각각의 공개키는 적어도 하나의 데이터 소스의 잠재적인 상태를 나타내는 불(Boolean) 값을 나타낼 수 있다. 예를 들어, 신호가 수신되었는가 수신되지 않았는가, 또는 온도가 20 ℃이상인가?
본 발명은 또한 대응하는 시스템을 제공한다. 시스템은 상술한 방법의 임의의 실시예를 구현하도록 구성될 수 있다. 시스템은 도 3에 도시된 것처럼 대체로 방법 또는 기법을 구현하도록 구성될 수 있다.
본 발명은 다음을 포함하는 컴퓨터로 구현되는 시스템을 제공할 수 있다:
상술한 임의의 방법의 단계(들)을 수행하도록 구성된 적어도 하나의 컴퓨터 기반의 자원(resource); 및
블록체인 또는 다른 유형의 전기적 원장 또는 비트코인 원장의 변형.
이는 분산 원장일 수 있다.
적어도 하나의 컴퓨터 기반 자원(resource)은 다음을 하도록 구성될 수 있다:
블록체인 네트워크에 거래를 제출하고(이는 비트코인 네트워크일 수도 있고 그렇지 않을 수도 있다- 모든 유형의 분산 원장일 수 있다); 및/또는
거래를 생성하고; 및/또는
잠금 스크립트에 디지털 서명하고; 및/또는
공개/개인 암호키를 생성한다.
시스템은 결과가 프로세스 또는 장치의 실행 또는 동작을 제어하거나 영향을 미치는데 사용되도록 구성될 수 있다. 컴퓨터 기반 자원(resource)은 "에이전트(agent)"라고 지칭할 수 있다.
시스템은 적어도 하나의 컴퓨터 기반의 자원(resource)에 입력을 제공하도록 배열/구성된 적어도 하나의 센서 또는 다른 신호/입력 생성 구성 요소(component)를 포함할 수 있다.
본 발명의 하나의 양태 또는 실시예와 관련하여 설명된 임의의 특징은 또한 하나 이상의 다른 양태/ 실시예를 실시하는데 사용될 수 있다. 상기 방법과 관련하여 설명된 모든 특징은 시스템에 적용될 수 있으며, 반대의 경우도 마찬가지이다.
본 발명의 이들 및 다른 양태는 본원에 기술된 실시예를 참조하여 명백하게 설명될 것이다. 본 발명의 실시예는 첨부된 도면을 참조하여 예로서만 설명될 것이다.
도 1은 본 발명의 실시예를 도시한다.
도 2는 복수의 독립적인 컴퓨팅 에이전트가 로직 게이트 거래에 입력을 제공하기 위해 외부 환경의 모니터링을 수행하는 본 발명의 예시적인 실시예를 도시한다.
도 3은 본 발명의 다른 실시예의 개요(overview)를 도시한다.
도 4는 본 발명의 일 실시예에 따라 구성된 예시적인 블록체인 거래를 도시하며, 거래 출력 1은 거래 출력 2가 컨트롤러에 다시 지불하는 NOR 게이트를 구현한다.
도 5는 본 발명의 다른 실시예의 개요(overview)를 도시한다.
도 6 내지 도 10은 기본키(base key)로부터 암호키를 생성하는 기술을 도시한다.
본 발명은 기능을 구현하는데 블록체인을 사용하기 위해 새롭고 유리한 해결책을 제공한다. 블록체인은 함수의 실행 및/또는 그것의 결과의 결과에 대한 기록을 제공하는데 사용된다. 함수는 입력 집합에 적용되고 출력 집합을 반환하는 서브루틴(subroutine) 또는 절차(procedure)(예로, 프로세스 또는 로직의 부분)일 수 있다. 하나의 가능한 실시예에서, 기능은 '오프 블록(off-lock)'으로 실행될 수 있는데, 즉 그 성능은 블록체인에 의존하지 않는다. 기능은 컴퓨터 기반 자원(resource)에 의해 수행된다.
블록체인(예로, 비트코인) 거래는 전형적으로 이전 거래 출력을 새로운 거래 입력으로 참조하고 모든 입력 값을 새로운 출력으로 전용하는 (예로, 비트코인) 값의 전송이다. 거래는 암호화되지 않으므로, 수집된 모든 거래를 블록으로 둘러보고 볼 수 있다. 그러나 거래 출력이 제공된 정보에 조건부이거나 의존적인 함수로 동작하는 블록체인 거래를 구성할 수 있다는 것은 매우 유용할 것이다. 이것은 블록체인을 통해 정교한 수준의 행동을 가능하게 한다.
본 발명의 중요한 양상은 기능을 표현하는 블록체인 거래를 생성하기 위한 방법을 포함하고(이에 한정되는 것은 아니다), 여기서 기능 입력은 거래 출력의 리딤 스크립트 내에 사용되는 공개키에 의해 표현되며, 여기서, 실제 값은 하나 이상의 공개키와 연관된 서명에 의해 표현된다.
본 발명의 중요한 양상은 기능을 표현하는 블록체인 거래를 생성하기 위한 방법을 포함하고(이에 한정되는 것은 아니다), 여기서 기능 입력은 거래 출력의 리딤 스크립트 내에 사용되는 공개키에 의해 표현되며, 여기서, 실제 값은 하나 이상의 공개키와 연관된 서명에 의해 표현된다.
본 발명은 블록체인 상에 다수의 일반적인 신규 특징을 제공하며, 다음을 포함한다.
Figure 112019018860007-pct00001
센서 또는 기타 신호/입력 생성기에 대하여 에이전트를 생성하는 기능(ability), 여기서 에이전트는 블록체인으로부터 직접 제어되고 작동을 위해 다른 네트워크 접근을 요구하지 않는다;
Figure 112019018860007-pct00002
다중 서명에 의해 보호된 거래에서 거래 서명 프로세스(transaction signing process)에 포함된 공개키를 결정하는 기능; 및
Figure 112019018860007-pct00003
리딤 스크립트 내 행동(예로, 코드 실행 방법)을 결정하는데 사용될 수 있는 서명키 내에 제한된 개별 범위의 페이로드(payload) 값을 내장하는 기능.
또한, 본 발명의 실시예는 로직 게이트(예로, NOR 게이트)를 전달하기 위해 상기 요소를 이용할 수 있고, 여기서 A 및 B로부터의 입력 값은 서명에 사용된 키 내에 내장되거나 서명에 사용된 키에 의해 표현된다.
이익(Benefits)
Figure 112019018860007-pct00004
제안된 발명은 다음과 같은 이점을 제공한다:
Figure 112019018860007-pct00005
설계에 의한 본질적 보안(비트코인 프로토콜에는 신뢰되지 않은 당사자를 요구하지 않는다);
Figure 112019018860007-pct00006
분산되어 대규모 단일 장애 지점(single point of failure)을 피하고 공격에 취약하지 않다;
Figure 112019018860007-pct00007
비트코인 네트워크는 사용하기에 복잡하지 않아, 관리 및 유지가 쉬워 용이하다.
Figure 112019018860007-pct00008
저비용(비트코인 프로토콜 하에서 보통 작은 거래 비용이 예상된다)
Figure 112019018860007-pct00009
글로벌하고 인터넷에 접속할 수 있는 사람에 의해 언제든지 사용될 수 있다;
Figure 112019018860007-pct00010
투명성: 데이터가 블록체인에 쓰여지면 누구나 그것을 볼 수 있다;
Figure 112019018860007-pct00011
불변성, 데이터가 블록체인에 쓰여지면 아무도 그것을 변경할 수 없다;
Figure 112019018860007-pct00012
개인 정보(privacy)가 유지되며, 개인 식별 정보(personally identifying information)가 관여되지 않는다.
본 발명이 동작하기 위해서, 비트코인 프로토콜 및 지갑(wallet)의 현존 구조 및 동작을 준수해야 한다. 도 1은 표준(standard) 비트코인 거래(TX)가 본 발명의 실시예에 따라 어떻게 구성되는지 도시한다. (비트코인은 단지 예시를 위해 사용되며, 다른 원장 및 관련 프로토콜이 여전히 본 발명의 범위 내에 속하면서 사용될 수 있다).
에이전트 구성( Agent Configuration )
본 발명의 실시예는 도 2에 도시된 바와 같이 로직 게이트 거래에 입력을 제공하기 위해 외부 환경의 모니터링을 수행하도록 구성된 다수의 독립(컴퓨팅) 에이전트의 사용을 포함한다. 따라서 컴퓨팅 에이전트는 일부 상태를 모니터링하도록 설계된다. 이러한 목적을 위해 센서로부터 입력이 수신될 수 있다. 예를 들어, 에이전트는 "섭씨 영하의 온도입니까?" 또는 다른 유형의 검사 가능한 상태와 같이 상태를 모니터링할 수 있다. 따라서 에이전트는 관찰된 상태의 상태를 모니터링하도록 구성될 수 있다.
에이전트는 제어 또는 이하에서 "컨트롤러"라고 지칭되는 마스터 에이전트와 통신한다. 컨트롤러는 블록체인 프로토콜로 작동하도록 구성된다.
하나 이상의 실시예에서, 하위 에이전트(예를 들어, A 및 B)는 컨트롤러로부터 도출된 키를 포함할 수 있다. 그러나 에이전트 A와 에이전트 B는 자체 생성(self-generated) 키를 가지고, 컨트롤러로부터 이들을 유도할 수 없다는 점에 유의해야 한다. 이는 컨트롤러가 키 상에 사용할 수 있는 기능을 제한한다.
하나 이상의 실시예에서, 모니터되는 각 상태는 그들 자신의 키로 설정된 개별의 모니터링 에이전트를 갖는다. 이 키로부터, 그들은 그들의 모니터링 상태(예로, 각 가능한 상태)로부터 출력을 위한 개별의 키를 도출한다. 이러한 값들은 모니터링 시점에서 수행된 기본키로부터 결정론적으로 도출 가능하거나 또는 에이전트가 값들을 기 도출(pre-derive)할 수 있다(예로, 참/거짓 센서가 단순하게 미리 정의하는 것이 더욱 효과적일 수 있다). 키는 아래에서 "공유 비밀을 사용하여 키를 생성하기"로 명명된 섹션에 설명된 기술을 사용하여 기본키로부터 도출될 수 있다.
에이전트 행동( Agent Behaviour )
전술한 실시예는 에이전트가 매우 엄격하게 정의된 동작을 가질 수 있게 한다; 기본 위치에서 단일 조건 및 해당 조건에 대한 요구에 응답하는 센서가 있을 수 있다. 아래 표 1은 이러한 에이전트의 행동 패턴을 나타낸다.
단계( Step ) 설명( Description )
1 에이전트를 시작하고 시작(start-up) 매개변수(parameters)로부터 새 키를 유도한다(Startup agent, and derive new key from start-up parameters).
2 거래 서명 요청을 기다린다(Wait for transaction signing request).
3 거래 서명 요청을 수신하면, 첨부된 센서로부터 데이터를 얻는다(On receipt of transaction signing request, get data from attached sensor)
4 첨부된 센서의 데이터를 사용하여 새로운 서명키를 유도한다(Using data from attached sensor, derive new signing key)
5 거래 요청 서명(Sign transaction request)
6 단계 2로 간다(Go to step 2)
단계 2는 종래 기술에서 공지된 바와 같이 다중 서명(multi-signature) 거래를 구현하기 위한 표준 프로세스이다. 진보성은 에이전트가 에이전트로부터 반환된 서명에 센서값을 내장하게 하는 단계 3 및 단계 4에서 보여질 수 있다.
데이터 값 추출 및 거래 평가( Data Value Extraction & Transaction Evaluation)
거래에서 리딤 스크립트는 자발적인(autonomous) 에이전트에 의해 내장된 값들의 사실상 효과적인 추출을 허용한다. 그러나, 이는 가능한 값의 범위를 미리 알고 있는 경우에만 동작한다; 예를 들어, 여기서 에이전트 A와 B가 '참(true)'/'거짓(false)' 값을 제공하지만 이 방법(예로, 1,2,3,4,5)을 사용하여 더 넓은 범위의 값이 가능할 수 있다. 포인트는 고유 키(unique key)가 각 가능한 값 또는 상태를 나타내는데 사용된다는 것이며, 따라서 리딤 스크립트는 잠금 해제 스크립트에 서명하는데 사용된 키를 기반으로 값을 결정할 수 있다. 그러나 리딤 스크립트 내에 제공된 로직은 이러한 분석을 수행하도록 구성되고, 상기 방법은 무한 범위의 가능한 값들을 지원하지 않는다.
이 방법은 에이전트에 의해 제공된 서명을 해당 에이전트의 가능한 도출 공개키(derived public key)들에 대하여 평가함으로써 수행한다. 따라서 리딤 스크립트가 컨트롤러에 의해 처음으로 작성될 때, 가능한 입력 값(상태)에 대한 공개키가 있는 것과 이것들이 리딤 스크립트의 페이로드(payload) 내에 포함되어 있는 것을 결정했을 수 있다.
스크립트가 이러한 데이터를 추출하기 위해, 어느 공개키가 거래를 서명하기 위해 사용되었는지 결정하고 스크립트가 이 공개키를 나타내는 값을 암시적으로 이해하도록 코딩되어 있으므로, 스크립트의 경계(confines) 내에서 활용할 목적으로 효과적으로 해당 값을 추출했다.
블록체인 표준에서 내장된 OP_CHECKMULTISIG 거래 함수는 잠금 해제 스크립트를 통해 충분한 서명이 수집되었는지를 결정하기 위해 서명 평가를 허용한다. 그러나 이것은 어떤 것이 사용되었는지에 대한 명시적인 결정은 허용하지 않는다. 따라서, 본 발명은 Tx를 사용하여 특정 키들와 명시적으로 매치시켜 사용된 것을 결정하는 기술을 나타내고, 거래를 통해 훨씬 더 많은 복잡성이 구현될 수 있기 때문에 종래 기술 대비 개선점을 제공한다. 다시 말해, 복수의 키 중 어느 서브셋(subset)이 서명 프로세스에서 사용되었는지를 결정함으로써, 블록체인을 통해 보다 정교한 행동을 생성하는 것이 가능하다.
예를 들어, 에스크로(escrow) 기능에서는 복수의 에스크로 에이전트를 사용한 에스크로를 효과적으로 만들 수 있지만 구매자(buyer)에 판매자(seller)를 더한 서명, 또는 구매자에 에스크로 에이전트 중 하나를 더한 또는 판매자에 에스크로 에이전트 중 하나를 더한 서명의 규정을 요구하는 스크립트 규칙(rule)을 정의할 수 있다. 표준 구조는 에스크로 에이전트 모두가 거래에 서명하게 하기 때문에 알려진 표준 비트코인 프로토콜(standard Bitcoin protocol)에서 이는 가능하지 않다.
리딤 스크립트 의사 코드( Redeem Script Pseudo Code )
본 발명의 일 실시예에 따르면, 리딤 스크립트 내의 로직은 아래와 같이 구성될 수 있다:
Figure 112019018860007-pct00013
거래 예( Example Transaction )
거래 예에서, 거래 출력(TxO) 1은 거래 출력 2가 컨트롤러에서 다시 지불하는 NOR 게이트를 구현한다. 거래는 도 4에서 도시된다.
리딤 스크립트( Redeem Script )
전체 리딤 스크립트는 아래에 도시된다. 그런 다음 이는 논리 구성요소로 나뉜다.
Figure 112019018860007-pct00014
박스 내의 명령 코드(instruction codes)는 유효화될 수 있는 포맷으로 데이터를 가져오는데 필요한 서명 조작(manipulation) 로직 위에 제공된 NOR 게이트 페이로드 코드(아래 블록 7번)를 보여준다.
로직 '부-기능(sub-functions)'으로 분할하기 위해 스크립트는 리더(reader)의 편의를 위해 아래 표 2에 표시된 대로 블록의 순서로 분류된다.
이름( Name ) 스크립트( Script ) 블록 목적( Block Purpose )
RS Block 1 OP_DUP
OP_TOALTSTACK
OP_TOALTSTACK
OP_DUP
OP_TOALTSTACK
OP_TOALTSTACK
<PubK-Controller>
OP_CHECKSIGVERIFY<RS Block 2>
이것은 컨트롤러가 거래를 승인한 것을 확인하기 전에, 서명이 있는 데이터를 대체 스택(alternative stack)으로 민다(push).
RS Block 2 OP_FROMALTSTACK
<PubK-A-True>
OP_CHECKSIG
OP_FROMALTSTACK
<PubK-A-False>
OP_CHECKSIG<RS Block 3>
이 블록은 이 거래를 서명하는데 사용된 A 공개키를 평가한다. 스크립트는 (지금 시점에서) 어떤 서명이 사용되었는지 여부를 신경쓰지 않는다.
RS Block 3 OP_FROMALTSTACK
<PubK-B-True>
OP_CHECKSIG
OP_FROMALTSTACK
<PubK-B-False>
OP_CHECKSIG<RS Block 4>
이 블록은 2개의 B 공개키 중 어느 것이 거래를 서명하도록 사용되었는지 그리고 사용 여부를 평가한다. 스크립트는 (지금 시점에서) 어떤 서명이 사용되었는지 여부는 신경쓰지 않는다.
RS Block 4 OP_DUP
OP_TOALTSTACK
OP_SWAP
OP_DUP
OP_TOALTSTACK
OP_NUMNOTEQUAL
OP_VERIFY<RS Block 5>
이 코드 블록은 다음 사항을 확인한다:
Figure 112019018860007-pct00015
A 공개키들 중 하나 또는 단지 하나가 거래를 서명하는데 사용된다.
RS Block 5 OP_DUP
OP_TOALTSTACK
OP_SWAP
OP_DUP
OP_TOALTSTACK
OP_NUMNOTEQUAL
OP_VERIFY<RS Block 6>
이 코드 블록은 다음 사항을 확인한다:
Figure 112019018860007-pct00016
B 공개키들 중 하나 또는 단지 하나가 거래를 서명하는데 사용된다.
RS Block 6 OP_FROMALTSTACK
OP_FROMALTSTACK
OP_FROMALTSTACK
OP_SWAP
OP_FROMALTSTACK<RS Block 7>
이 블록은 대체 스택에서 유효화된 키 정보를 가져오고 신호들을 정렬한다.
RS Block 7 (NOR) OP_EQUAL
OP_TOALTSTACK
OP_DROP
OP_DROP
OP_FROMALTSTACK
이 블록은 스크립트 내의 NOR 로직을 구현한다. 다음 중 하나를 알면 일부 바로가기(shortcuts)를 취할 수 있다:
Figure 112019018860007-pct00017
<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
Figure 112019018860007-pct00018
<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
잠금 스크립트( Locking Script )
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script-Hash) 모델이다.
OP_HASH160 <Redeem Script Hash> OP_EQUAL
잠금 해제 스크립트( Unlocking Script )
필요한 잠금 해제 스크립트는 다음과 같다:
<Sig-Controller> <Sig-A-Used> <Sig-B-Used> <RS Block 1>
여기서(Where):
<Sig-A-Used> 는 다음 중 하나이다(is either):
<Sig-A-True>; 또는(or)
<Sig-A-False>
<Sig-B-Used> 는 다음 중 하나이다(is either):
<Sig-B-True>; 또는(or)
<Sig-B-False>
삽화: NOR 로직 게이트( Illustration : NOR Logic Gate )
NOR 게이트는 NOT OR를 구현하는 논리 게이트이다. 즉, 두 입력이 모두 거짓(false)이면, 출력이 참(true)이되고, 그렇지 않으면 출력이 거짓(false)이 된다.
A B X
0 0 1
0 1 0
1 0 0
1 1 0
NOR 로직은 컨트롤러 서명과 참 또는 거짓 값을 나타내는 A 에이전트로부터의 서명과 B 에이전트로부터의 또 다른 서명(다시 한번 참 또는 거짓)을 요구하는 단일 비트코인 거래 출력 내에서 구현된다. 도 1은 비트코인 프로토콜을 통해 NOR 방법이 구현될 수 있는 방법에 대한 개요를 도시한다.
후속 섹션에서 도시된 바와 같이, RB 블록(Block) 7을 대체함으로써, 대체 게이트(alternative) 게이트를 구현할 수 있다.
AND 게이트( AND Gate )
A B X
0 0 0
0 1 0
1 0 0
1 1 1
이름( Name ) 스크립트( Script ) 블록 목적( Block Purpose )
RS Block 7
(AND)
OP_DROP
OP_DROP
OP_1
OP_EQUAL
OP_EQUAL
이 블록은 스크립트 내에서 AND 로을 구현한다. 다음 중 하나를 알면 일부 바로가기(shortcuts)를 취할 수 있다:
Figure 112019018860007-pct00019
<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
Figure 112019018860007-pct00020
<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
NAND 게이트( NAND Gate )
A B X
0 0 1
0 1 1
1 0 1
1 1 0
이름( Name ) 스크립트( Script ) 블록 목적( Block Purpose )
RS Block 7(NAND) OP_1
OP_EQUAL
OP_EQUAL
OP_TOALTSTACK
OP_DROP
OP_DROP
OP_FROMALTSTACK
이 블록은 스크립트 내에서 NAND 로직을 구현한다. 다음 중 하나를 알면 일부 바로가기(shortcuts)를 취할 수 있다:
Figure 112019018860007-pct00021
<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
Figure 112019018860007-pct00022
<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
OR 게이트( OR Gate )
A B X
0 0 0
0 1 1
1 0 1
1 1 1
이름( Name ) 스크립트( Script ) 블록 목적( Block Purpose )
RS Block 7
(OR)
OP_TOALTSTACK
OP_0
OP_EQUAL
OP_FROMALTSTACK
OP_0
OP_EQUAL
OP_EQUAL
OP_NOT
OP_TOALTSTACK
OP_DROP
OP_DROP
OP_FROMALTSTACK
이 블록은 스크립트 내에서 OR 로직을 구현한다. 다음 중 하나를 알면 일부 바로가기(shortcuts)를 취할 수 있다:
Figure 112019018860007-pct00023
<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
Figure 112019018860007-pct00024
<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
XOR 게이트( XOR Gate )
A B X
0 0 0
0 1 1
1 0 1
1 1 0
이름( Name ) 스크립트( Script ) 블록 목적( Block Purpose )
RS Block 7
(XOR)
OP_1
OP_EQUAL
OP_EQUAL
OP_NOT
이 블록은 스크립트 내에서 XOR 로직을 구현한다. 다음 중 하나를 알면 일부 바로가기(shortcuts)를 취할 수 있다:
Figure 112019018860007-pct00025
<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
Figure 112019018860007-pct00026
<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
XNOR 게이트( XNOR Gate )
A B X
0 0 1
0 1 0
1 0 0
1 1 1
이름( Name ) 스크립트( Script ) 블록 목적( Block Purpose )
RS Block 7(XNOR) OP_1
OP_EQUAL
OP_EQUAL
이 블록은 스크립트 내에서 XNOR 로직을 구현한다. 다음 중 하나를 알면 일부 바로가기(shortcuts)를 취할 수 있다:
Figure 112019018860007-pct00027
<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
Figure 112019018860007-pct00028
<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
NOT 게이트( NOT Gate )
A X
0 1
1 0
결과적으로, 잠금 해제 스크립트(unlocking Script)는 다음과 같이 변경된다:
Figure 112019018860007-pct00029
단일 입력의 결과로 다음 블록 변경이 발생한다:
이름(Name) 스크립트(Script) 블록 목적( Block Purpose )
RS Block 1
Figure 112019018860007-pct00030
이것은 컨트롤러가 거래를 승인한 것을 확인하기 전에, 서명이 있는 데이터를 대체 스택(alternative stack)으로 민다(push).
RS Block 2
Figure 112019018860007-pct00031
이 블록은 이 거래를 서명하는데 사용된 A 공개키를 평가한다. 스크립트는 (지금 시점에서) 어떤 서명이 사용되었는지 여부를 신경쓰지 않는다.
RS Block 3
Figure 112019018860007-pct00032
전체 블록 제거된다(Entire block removed)
RS Block 4
Figure 112019018860007-pct00033
이 코드 블록은 다음 사항을 확인한다:
·A 공개키들 중 하나 또는 단지 하나가 거래를 서명하는데 사용된다.
RS Block 5
Figure 112019018860007-pct00034
전체 블록 제거된다(Entire block removed).
RS Block 6
Figure 112019018860007-pct00035
이 블록은 대체 스택에서 유효화된 키 정보를 가져오고 신호들을 정렬한다.
RS Block 7(NOT)
Figure 112019018860007-pct00036
이 블록은 스크립트 내에서 NOT 논리를 구현한다.
이하에서 설명되는 바와 같이, 다수의 실시예가 제공될 수 있다.
변형1 : 참&거짓 신호 생성( Variant 1: Generating a TRUE & FALSE SIGNAL )
본 실시예는 실질적으로 본 발명의 주제일 수 있다.
전술한 실시예는 로직 게이트를 나타내는 무서명 거래 출력(UTXO)이 게이트 조건이 참으로 평가되는 경우에만 소비되도록 허용한다. 그러나 여러 상황에서 회로의 실제 출력에 관계없이 출력을(다른 수신자 주소임에도 불구하고) 소비하는 것이 유리하다.
이것은 실시예를 사용하여 가능하다. 효과적으로, 도 1에 도시된 실시예는 현재 청구된 본 발명을 제공하기 위하여 도 3에 도시된 바와 같이 수정된다. 이 실시예에서, 제1 거래(Tx)의 리딤 스크립트에 제공된 여분의 매개변수가 있다. 이러한 여분의 매개변수는 퍼즐 또는 키에 내장된 값이거나 명시적으로 제공된 값일 수 있다(예에서와 같이) 이것은 UTXO를 사용하기 위해 컨트롤러가 원하는 결과를 정의한다.
그러므로 간단한 로직 게이트의 경우, 컨트롤러는 동일한 서명을 사용하여 거래를 두 번 소비하려고 시도한다; 하나는 예상되는 참 결과를 가지며, 한번은 예상되는 거짓 결과를 가진다.
리딤 스크립트는 게이트 계산(calculation)의 끝에서 게이트 출력을 컨트롤러가 요청한 출력에 대해 동일성 검사를 적용하도록 다음과 같이 확장된다:
만약 내장된 게이트 로직이 거짓(FALSE)를 반환하고, 원하는 결과가 거짓(FALSE)인 경우, 리딤 스크립트는 참(TRUE)으로 평가되고 UTXO가 소비될 수 있다;
만약 내장된 게이트 로직이 참을 반환하고, 원하는 결과가 참인 경우, 리딤 스크립트는 참을 평가하고 UTXO가 소비될 수 있다;
만약 내장된 게이트 로직이 참을 반환하더라도 원하는 결과가 거짓인 경우, 리딤 스크립트는 거짓을 평가되고 UTXO가 소비될 수 없다; 및
만약 내장된 게이트 로직이 거짓을 반환하더라도 원하는 결과가 참인 경우, 리딤 스크립트는 거짓을 평가하고 UTXO가 소비될 수 없다.
변형 스크립트들( Variant Scripts )
전체 리딤 스크립트는 아래와 같다. 이것은 리더의 편의를 위해 논리적 구성 요소로 분류된다. 기본 솔루션의 추가 내용은
Figure 112019018860007-pct00037
텍스트로 도시된다(삭제는 중간을 지나는 선(
Figure 112019018860007-pct00038
)으로 표시됨)
Figure 112019018860007-pct00039
Figure 112019018860007-pct00040
박스 내의 명령 코드는 데이터를 유효화할 수 있는 형식으로 가져오도록 서명 조작 논리 위의 NOR 게이트 페이로드 코드를 보여준다.
잠금 스크립트( Locking Script )
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script Hash) 모델이다:
OP_HASH160 <Redeem Script Hash> OP_EQUAL
잠금 해제 스크립트( Unlocking Script )
이러한 로직 게이트의 패턴에 대한 잠금 해제 스크립트는 다음과 같다:
Figure 112019018860007-pct00041
여기서(Where):
<Sig-A-Used>은 <Sig-A-True> 또는 <Sig-A-False> 중 하나이다(is either <Sig-A-True> or <Sig-A-False>)
<Sig-B-Used>은 <Sig-B-True> 또는 <Sig-B-False> 중 하나이다(is either <Sig-B-True> or <Sig-B-False>)
<Signal-Required>은 참 또는 거짓 중 하나이다 (1 또는 0)
변형 2: 숨긴 참&거짓 신호 생성( Variant 2: Generating a Concealed TRUE & FALSE Signal)
변형 1은 참 또는 거짓 조건이 스크립트로부터 신호 전송되었는지 여부를 (리딤 스크립트로부터) 공개적으로 알 수 있다는 사소한 단점이 있다. 컨트롤러로부터 서명 내에 요청 신호를 내장하는 것은 이러한 이슈를 피한다. 변형 2에서, 컨트롤러는 도 5에 도시된 주요 키로부터 도출된 2개의 공개키를 가진다.
변형 스크립트( Variant Scripts )
전체 리딤 스크립트는 아래와 같다. 이것은 논리적 구성 요소로 분류된다. 기본 솔루션의 추가 사항은
Figure 112019018860007-pct00042
텍스트로 도시된다(삭제는 중간을 지나는 선(
Figure 112019018860007-pct00043
)으로 표시됨).
Figure 112019018860007-pct00044
박스 내의 명령 코드는 데이터를 유효화할 수 있는 형식으로 가져오도록 서명 조작 논리 위의 NOR 게이트 페이로드 코드를 보여준다.
잠금 스크립트( Locking Script )
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script Hash) 모델이다:
OP_HASH160 <Redeem Script Hash> OP_EQUAL
잠금 해제 스크립트( Unlocking Script )
이러한 로직 게이트의 패턴에 대한 잠금 해제 스크립트는 다음과 같다:
Figure 112019018860007-pct00045
여기서(Where):
<Sig-A-Used> 은 <Sig-A-True> 또는 <Sig-A-False> 중 하나이다 (is either <Sig-A-True> or <Sig-A-False>)
<Sig-B-Used> 은 <Sig-B-True> 또는 <Sig-B-False> 중 하나이다(is either <Sig-B-True> or <Sig-B-False>)
<Sig-Control-Desire>은 <Sig-Control-Desire-True> 또는 <Sig-Control-Desire-False> 중 하나이다( is either <Sig-Control-Desire-True> or <Sig-Control-Desire-False>)
변형 3: 단일 코드 스택(Variant 3: Single Code Stack)
알트(alt) 스택을 사용하는 대신 단일 스택을 사용하여 이러한 게이트를 구현하는 것이 가능하다.
리딤 스크립트:개요 NOR ( Redeem Script : Overview and NOR )
전체 리딤 스크립트는 아래와 같다. 이것은 논리적 구성 요소로 분류된다.
Figure 112019018860007-pct00046
박스 내의 명령 코드는 데이터를 유효화할 수 있는 형식으로 가져오도록 서명 조작 논리 위의 NOR 게이트 페이로드 코드를 보여준다.
모든 스택은 위에서 아래로 순서대로 나타난다.
잠금 스크립트( Locking Script )
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script Hash) 모델이다:
Figure 112019018860007-pct00047
잠금 해제 스크립트( Unlocking Script )
로직 게이트의 패턴에 대한 잠금 해제 스크립트는 다음과 같다(서명 블록의 다른 순서에 유의하시오)
<Sig-B-Used> <Sig-A-Used> <Sig-Controller> <RS Block 1>
여기서(Where):
<Sig-A-Used> 은 <Sig-A-True> 또는 <Sig-A-False> 중 하나이다(is either <Sig-A-True> or <Sig-A-False>)
<Sig-B-Used> 은 <Sig-B-True> 또는 <Sig-B-False> 중 하나이다(is either <Sig-B-True> or <Sig-B-False>)
대체 게이트( Alternative Gates )
대체 로직 게이트를 구현하기 위해, 파란색 직사각형의 명시적인 NOR 코드를 다음으로 대체하십시오:
이름( Name ) 블록 목적( Block Purpose )
AND OP_BOOLAND
OR OP_BOOLOR
NAND OP_BOOLAND OP_NOT
XOR OP_NUMNOTEQUAL
XNOR OP_NUMEQUAL
IMPLY OP_SWAP OP_NOT OP_BOOLOR
Converse Implication OP_NOT OP_BOOLOR
Material Non-implication OP_NOT OP_BOOLAND
Converse Non-implication OP_SWAP OP_NOT OP_BOOLAND
시나리오: 도난 경보 설정( NOR 게이트)( Scenario : burglar Alarm Setting ( NOR Gate))
NOR 게이트를 이용하는 상기 실시예에 대한 간단한 예는 도난 경보의 설정이다.
이러한 예에서, 에이전트 A는 도어(door)가 열려있을 때 참을 표시하고, 닫을 때 거짓을 표시하는 적재 베이 도어(loading bay door) 상의 도어 센서이다.
에이전트 B는 또는 도어 센서이나, 건물 내의 현금 금고(cash safe) 상에 있다. 그것은 또한 도어가 열릴 때 참을, 닫힐 때 거짓을 신호로 보낸다. 컨트롤러는 중앙 경보 시스템이며, 건물 내의 모든 도어가 닫혀있는 경우에만 경보를 설정한다. 따라서 컨트롤러가 알람을 설정하도록 요청되면, 다양한 모니터링 에이전트에 거래를 퍼뜨린다. 에이전트 A와 에이전트 B가 각각의 도어가 닫힌 경우에만 거래가 완료된다.
위에서 설명한 것처럼 기본키에서 새로운 키를 생성하는 기술을 설명한다.
공유 비밀을 사용하여 키 생성하기( Creating a Key Using a Shared Secret )
다음의 기술은 도 5 내지 도 9를 참조하여 기술된다.
다음 기술을 사용하면 키를 안전하게 보관하거나 다시 만들 수 있다. 특히, 공개키를 유도하는데 사용될 수 있는 개인키의 경우 개인키는 부분들에 저장될 수 있다.
사용자, 즉 엘리스(Alice) 또는 밥(Bob)은 자신의 개인키의 일부를 유지할 수 있고, 서비스 제공자는 제2 부분을 유지할 수 있고, 제3 부분은 원격 보안 사이트에 유지될 수 있다. 개인키는 세 부분 중 임의의 두 개를 사용하여 재구성될 수 있으며, 보다 일반적으로 개인키는 n개의 부분에서 임의의 m을 사용하여 재구성될 수 있다.
개인키를 재구성할 수 있으면, 사용 시점에 공개키를 다시 생성할 수 있는데 사용할 수 있으며, 사용 후 개인키와 공개키를 다시 삭제할 수 있다.
개인키를 분할하는 것은 Shamir의 비밀 공유 방식(Shamir's Secret Sharing Scheme)을 사용하여 수행될 수 있다. 개인키-공개키 쌍은 다음 방법을 사용하여 마스터 키로부터 결정론적으로 유도될 수 있다. 이 방법을 사용하면 비밀 값을 전송하지 않고 참가자(participant)들에 의해 공유되게 할 수 있다.
시스템은 이하 설명되는 바와 같이 서브키 생성 방법을 사용하여 참가자에 대한 공개키를 생성할 수 있다.
도 5는 통신 네트워크(5)를 통해 제2 노드(7)과 통신하는 제1 노드(3)를 포함하는 시스템(1)을 도시한다. 제1 노드(3)는 제1 처리 장치(23)와 연관되고, 제2 노드(5)는 제2 처리 장치(27)와 연관된다. 제1 및 제2 노드(3, 7)는 컴퓨터, 폰, 태블릿 컴퓨터, 모바일 통신 장치, 컴퓨터 서버 등과 같은 전자 장치를 포함한다. 일 예에서, 제1 노드(3)는 클라이언트(사용자) 장치일 수 있고, 제2 노드(7)는 서버일 수 있다.
제1 노드(3)는 제1 노드 마스터 개인키(V1C) 및 제1 노드 마스터 공개키(P1C)를 가지는 제1 비대칭 암호쌍과 연관된다. 제2 노드(7)는 제2 노드 마스터 개인키(V1S) 및 제2 노드 마스터 공개키(P1S)를 가지는 제2 비대칭 암호쌍과 연관된다. 다시 말해, 제1 및 제2 노드는 각각 각각의 공개-개인키 쌍을 소유한다.
제1 및 제2 노드(3, 7) 각각에 대한 제1 및 제2 비대칭 암호쌍은 지갑 등록과 같은 등록 절차 동안 생성된다. 각 노드에 대한 공개키는 통신 네트워크(5)를 통해 공개적으로 공유된다.
제1 노드(3) 및 제2 노드(7) 모두에 공통 비밀(C)을 결정하기 위해, 노드(3, 7)는 통신 네트워크(5)를 통해 개인키를 통신하지 않고 각 방법(300, 400)의 단계를 수행한다.
제1 노드(3)에 의해 수행되는 방법(300)은 적어도 제1 노드 마스터 개인키(V1C) 및 생성기 값(GV)에 기초하여 제1 노드 제2 개인키(V2C)를 결정하는 단계(330)를 포함한다. 생성기 값은 제1 및 제2 노드 사이에 공유된 메시지(M)에 기초할 수 있다. 이는 아래에서 추가 설명된 것처럼 통신 네트워크(5)를 통해 메시지를 공유하는 단계를 포함한다. 방법(300)은 또한 적어도 제2 노드 마스터 공개키(P1S) 및 생성기 값(GV)에 기초하여 제2 노드 제2 공개키(P2S)를 결정하는 단계(370)를 포함한다. 방법(300)은 제1 노드 제2 개인키(V2C) 및 제2 노드 제2 공개키(P2S)에 기초하여 공통 비밀(CS)을 생성하는 단계(380)를 포함한다.
중요한 것은, 동일한 공통 비밀(CS)은 또한 방법(400)에 의해 제2 노드(7)에서 결정될 수 있다. 방법(400)은 제1 노드 마스터 공개키(P1C) 및 생성기 값(GV)에 기초하여 제1 노드 제2 공개키(P2C)를 결정하는 단계(430)를 포함한다. 방법(400)은 제2 노드 마스터 개인키(V1S) 및 생성기 값(GV)에 기초하여 제2 노드 제2 개인키(V2S)를 결정하는 단계(470)를 더 포함한다. 방법(400)은 제2 노드 제2 개인키(V2S) 및 제1 노드 제2 공개키(P2C)에 기초하여 공통 비밀(CS)을 결정하는 단계(480)를 포함한다.
통신 네트워크(5)는 근거리 네트워크, 광역 네트워크, 셀룰러 네트워크, 라디오 통신 네트워크, 인터넷 등을 포함한다. 데이터가 전선, 광섬유 또는 무선과 같은 통신 매체를 통해 전송될 수 있는 이러한 네트워크는 도청자(11)에 의한 것과 같이 도청에 취약할 수 있다. 방법(300, 400)은 제1 노드(3) 및 제2 노드(7) 둘다 통신 네트워크(5)를 통해 공통 비밀을 전송하지 않고 공통 비밀을 독립적으로 결정할 수 있도록 한다.
따라서, 공통 비밀(CS)이 잠재적 비보안 통신 네트워크(5)를 통해 개인키를 전송하지 않아도 각 노드에 의해 안전하고 독립적으로 결정될 수 있는 이점이 있다. 결과적으로, 공통 비밀은 비밀키(또는 비밀키의 기초)로서 이용될 수 있다.
방법(300, 400)은 추가적인 단계를 포함할 수 있다. 방법(300)은 제1 노드(3)에서 메시지(M) 및 제1 노드 제2 개인키(V2C)에 기초하여 서명 메시지(SM1)을 생성하는 단계를 포함한다. 방법(300)은 통신 네트워크를 통해 제1 서명 메시지(SM1)를 제2 노드(7)로 전송하는 단계(360)를 더 포함한다. 결과적으로, 제2 노드(7)는 제1 서명 메시지(SM1)를 수신하는 단계(440)를 수행할 수 있다. 방법(400)은 또한 제1 노드 제2 공개키(P2C)를 통해 제1 서명 메시지(SM2)를 검증하는 단계(450) 및 제1 서명 메시지(SM1)을 검증한 결과에 기초하여 제1 노드(3)를 인증하는 단계(460)를 포함한다. 이점으로, 이는 제2 노드(7)가 지칭된 제1 노드(여기서 제1 서명 메시지는 생성되었음)는 제1 노드(3)인지 인증하도록 한다. 이것은 제1 노드(3)만이 제1 노드 마스터 개인키(V1C)에 접근할 수 있다는 가정에 기반하고, 따라서 오직 제1 노드(3)만이 제1 서명 메시지(SM1)를 생성하기 위해 제1 노드 제2 개인키(V2C)를 결정할 수 있다. 피어 투 피어 시나리오와 같이 제2 노드(3)가 제2 노드(7)를 인증할 수 있도록 제2 서명 메시지(SM2)가 제2 노드(7)에서 생성되고 제1 노드(3)에 전송될 수 있도록 하는 것과 유사할 수 있다.
제1 및 제2 노드 사이에 메시지를 공유하는 것은 다양한 방법에 의해 구현될 수 있다. 일 예로, 메시지는 제1 노드(3)에서 생성될 수 있고, 통신 네트워크(5)를 통해 제2 노드(7)로 전송될 수 있다. 대안적으로 메시지는 제2 노드(7)에서 생성될 수 있고, 그러면 통신 네트워크(5)를 통해 제2 노드(7)로 전송될 수 있다. 일부 예에서, 메시지(M)는 공개될 수 있고, 따라서 비보안 네트워크(5)를 통해 전송될 수 있다. 하나 이상의 메시지(M)는 데이터 저장소(13, 17, 19)에 저장될 수 있다. 당업자는 메시지 저장이 다양한 방법으로 구현될 수 있음을 이해할 것이다.
이점으로는, 공통 비밀(CS)의 재생성을 허용하기 위한 기록은 개인적으로 저장되거나 보안 전송되어야 하는 기록 없이 유지될 수 있다.
등록 방법(100, 200)
등록 방법(100,200)의 예가 설명되며, 여기서 방법(100)은 제1 노드(3)에 의해 수행되고, 방법(200)은 제2 노드(7)에 의해 수행된다. 이는 제1 및 제2 노드(3, 7) 각각에 대한 제1 및 제2 비대칭 암호쌍을 설정하는 것을 포함한다. 비대칭 암호쌍은 공개키 암호화에 이용되는 것과 같은 연관된 개인키 및 공개키를 포함한다. 이 예에서, 비대칭 암호쌍은 타원 곡선 암호화(ECC) 및 타원 곡선 연산의 속성을 이용하여 생성된다.
방법(100, 200)에서, 이는 공통의 ECC 시스템을 결정하고 베이스 포인트(G)를 사용하는(110, 210) 제1 및 제2 노드를 포함한다. (주의 : 베이스 포인트는 공통 생성기로 불릴 수 있으나, '베이스 포인트'라는 용어는 생성기 값(GV)과의 혼란을 피하기 위해 사용된다). 하나의 예에서, 공통의 ECC 시스템은 비트코인(Bitcoin)에 의해 사용된 ECC 시스템인 secp256K1에 기반할 수 있다. 베이스 포인트(G)는 선택되거나, 무작위로 생성되거나, 할당될 수 있다.
방법(100, 200)에서, 이는 공통의 ECC 시스템을 결정하고 베이스 포인트(G)를 사용하는(110, 210) 제1 및 제2 노드를 포함한다. (주의 : 베이스 포인트는 공통 생성기로 불릴 수 있으나, '베이스 포인트'라는 용어는 생성기 값(GV)과의 혼란을 피하기 위해 사용된다). 하나의 예에서, 공통의 ECC 시스템은 비트코인(Bitcoin)에 의해 사용된 ECC 시스템인 secp256K1에 기반할 수 있다. 베이스 포인트(G)는 선택되거나, 무작위로 생성되거나, 할당될 수 있다.
방법(100)은 또한 제1 노드 마스터 개인키(V1C) 및 제1 노드 마스터 공개키(P1C)를 포함하는 제1 비대칭 암호쌍을 생성하는(120) 제1 노드(3)를 포함한다. 이는 적어도 부분적으로, 공통 ECC 시스템에 규정된 허용 범위 내의 임의 정수에 기초한 제1 노드 마스터 개인키(V1C)를 생성하는 단계를 포함한다. 이는 또한 아래의 수학식에 따른 제1 노드 마스터 개인키(V1C) 및 공통 생성기(G)의 타원 곡선 점 합산에 기초한 제1 노드 마스터 공개키(P1C)를 결정하는 단계를 포함한다.
[수학식 1]
P1C = V1C x G
따라서 제1 비대칭 암호쌍은,
V1C : 제1 노드에 의해 비밀이 유지된 제1 노드 마스터 개인키
P1C: 공개적으로 알려진 제1 노드 마스터 공개키를 포함한다.
제1 노드(3)는 제1 노드(3)와 연관된 제1 데이터 저장소(13)에 제1 노드 마스터 개인키(V1C) 및 제1 노드 마스터 공개키(P1C)를 저장할 수 있다. 보안을 위해, 제1 노드 마스터 개인키(V1C)는 키를 개인적으로 유지하기 위해 제1 데이터 저장소(13)의 보안 부분에 저장될 수 있다.
방법(100)은 통신 네트워크(5)를 통해, 제2 노드(7)에 제1 노드 마스터 공개키(P1C)를 전송하는 단계(130)를 포함한다. 제2 노드(7)는 제1 노드 마스터 공개키(P1C)를 검색하는 단계에서, 제2 노드(7)와 연관된 제2 데이터 저장소(17)에 제1 노드 마스터 공개키(P1C)를 저장할 수 있다.
제1 노드(3)와 유사하게, 제2 노드(7)의 방법(200)은 제2 노드 마스터 개인키(V1S) 및 제2 노드 마스터 공개키(P1S)를 포함하는 제2 비대칭 암호쌍을 생성하는 단계(240)를 포함한다. 제2 노드 마스터 개인키(V1S)는 또한 허용 범위 내의 임의 정수이다. 결과적으로, 제2 노드 마스터 공개키(P1S)는 아래의 수학식에 의해 결정된다.
[수학식 2]
P1S = V1S x G
따라서 제2 비대칭 암호쌍은,
V1S : 제2 노드에 의해 비밀로 유지되는 제2 노드 마스터 개인키
P1S: 공개적으로 알려진 제2 노드 마스터 공개키을 포함한다.
제2 노드(7)는 제2 데이터 저장소(17)에 제2 비대칭 암호쌍을 저장할 수 있다. 방법(200)은 제1 노드(3)에 제2 노드 마스터 공개키(P1S)를 전송하는 단계(250)를 더 포함한다. 결과적으로, 제1 노드(3)는 제2 노드 마스터 공개키(P1S)를 수신하고(140) 저장할(150) 수 있다.
일부 대안에서, 각각의 공개 마스터키는 제3 노드(9, 신뢰할 수 있는 제3자와 같은)와 연관된 제3 데이터 저장소(19)에 수신되고 저장될 수 있다. 이는 인증 기관과 같은 공개 디렉터리(public directory) 역할을 하는 제3자를 포함할 수 있다. 따라서, 일부 예에서, 제1 노드 마스터 공개키(P1C)는 공통 비밀(CS)이 필요하다고 결정할 때만(그리고 그 반대의 경우) 제2 노드(7)에 의해 요청되고 수신될 수 있다.
등록 단계는 최초 설정으로 한 번만 발생할 필요가 있을 것이다.
세션 시작 및 제1 노드(3)에 의한 공통 비밀 결정
공통 비밀(CS)을 결정하는 예시는 도 4를 참조하여 설명될 것이다. 공통 비밀(CS)은 특정 세션, 시간, 거래 또는 제1 노드(3)와 제2 노드(7) 사이의 다른 목적으로 이용될 수 있으며, 동일한 공통 비밀(CS)을 사용하는 것이 바람직하지 않거나 안전하지 않을 수 있다. 따라서, 공통 비밀(CS)은 다른 세션, 시간, 거래 등 사이에서 변경될 수 있다.
아래는 위에서 설명된 보안 전송 기술의 예시가 제공된다.
메시지 (M)를 생성하기(310)
본 예에서, 제1 노드(30)에 의해 수행되는 방법(300)은 메시지(M)를 생성하는 단계(310)를 포함한다. 메시지(M)는 랜덤, 의사 랜덤 또는 사용자 정의일 수 있다. 일 예에서, 메시지(M)는 유닉스 타임(Unix time) 및 논스(nonce) (그리고 임의의 값)에 기초할 수 있다. 예를 들어, 메시지(M)는 다음과 같이 제공될 수 있다.
[수학식 3]
Message (M) = UnixTime + nonce
일부 예에서, 메시지(M)는 임의적이다. 그러나 메시지(M)는 일부 어플리케이션에서 유용할 수 있는 선택 값(예를 들어 유닉스 타임 등)을 가질 수 있음을 이해해야 한다.
방법(300)은 통신 네트워크(3)를 통해, 제2 노드(7)로 메시지(M)를 전송하는 단계(315)를 포함한다. 메시지 (M)는 개인키에 대한 정보를 포함하지 않으므로 메시지(M)는 비보안 네트워크를 통해 전송될 수 있다.
생성기 값( GV ) 결정하기(320)
방법(300)은 메시지 (M)에 기초하여 생성기 값(GV)을 결정하는 단계(320)를 더 포함한다. 본 예에서, 이는 메시지의 암호화 해시를 결정하는 단계를 포함한다. 암호화 해시 알고리즘의 예는 256-bit 생성기 값(GV)을 생성하기 위한 SHA-256를 포함한다. 그건 아래와 같다.
[수학식 4]
GV = SHA-256(M)
다른 해시 알고리즘이 이용될 수 있음을 이해해야 한다. 이는 보안 해시 알고리즘(Secure Hash Algorithm, SHA) 제품군의 다른 알고리즘이 포함될 수 있다. 몇몇 특정 예는 SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256을 포함한 SHA-3 하위 집합의 인스턴스를 포함한다. 다른 해시 알고리즘은 RIPEMD(RACE Integrity Primitives Evaluation Message Digest) 제품군의 것들을 포함한다. 특정 예는 RIPEMD-160을 포함한다. 다른 해시 함수는 셰모르-틸리히(Zιmor-Tillich) 해시 함수 및 냅색 기반(knapsack-based) 해시 함수을 포함한다.
제1 노드 제2 개인키 결정하기(330)
방법(300)은 다음으로 제2 노드 마스터 개인키(V1C) 및 생성기 값(GV)에 기초하여 제1 노드 제2 개인키(V2C)를 결정하는 단계(330)를 포함한다. 이는 아래의 수학식에 따라, 제1 노드 마스터 개인키(V1C) 및 생성기 값(GV)의 스칼라 합산에 기초할 수 있다.
[수학식 5]
V2C = V1C + GV
따라서 제1 노드 제2 개인키 (V2C)는 무작위 값이 아니라 제1 노드 마스터 개인키로부터 결정론적으로 파생된 것이다. 암호쌍에 대응하는 공개키, 즉, 제1 노드 제2 공개키(P2C)는 다음과 같은 관계를 가진다.
[수학식 6]
P2C = V2C x G
수학식 5로부터 수학식 5에 V2C 을 대입하면 다음과 같다.
[수학식 7]
P2C = (V1C + GV) x G
여기서, ' + ' 연산자는 스칼라 합산을 나타내고, 'x' 연산자는 타원 곡선 점 합산을 나타낸다. 타원 곡선 암호화 대수학이 분산적이라는 것을 주목하면, 수학식 7은 다음과 같이 표현될 수 있다.
[수학식 8]
P2C = V1C x G + GV x G
결론적으로, 수학식 1은 수학식 7에 대입되어 다음과 같이 나타날 수 있다.
[수학식 9.1]
P2C = P1C + GV x G
[수학식 9.2]
P2C = P1C + SHA-256(M) x G
따라서, 대응하는 제1 노드 제2 공개키(P2C)는 제1 노드 마스터 공개키(P1C) 및 메시지(M)의 주어진 지식을 파생시킬 수 있다. 제2 노드(7)는 방법(400)과 관련하여 아래에서 더 상세히 설명되는 바와 같이, 제1 노드 제2 공개키(P2C)를 독립적으로 결정할 수 있는 그러한 지식을 가질 수 있다.
메시지 및 제1 노드 제2 개인키에 기초하여 제1 서명 메시지(SM1)을 생성하기(350)
방법(300)은 메시지(M) 및 결정된 제1 노드 제2 개인키(V2C)에 기초하여 제1 서명 메시지(SM1)를 생성하는 단계(350)를 더 포함한다. 서명 메시지를 생성하는 것은 메시지(M)에 디지털 서명을 하기 위해 디지털 서명 알고리즘을 적용하는 것을 포함한다. 일 예에서, 이는 제1 서명 메시지(SM1)를 획득하기 위해 타원 곡선 전자 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)의 메시지에 제1 노드 제2 개인키(V2C)를 적용하는 것을 포함한다. ECDSA의 예는 secp256k1, secp256r1, secp384r1, se3cp521r1를 갖는 ECC 시스템에 기초하는 것들을 포함한다.
제1 서명 메시지(SM1)는 제2 노드(7)에서 대응하는 제1 노드 제2 공개키(P2C)로 확인될 수 있다. 이러한 제1 서명 메시지(SM1)의 확인은 제1 노드(3)를 인증하기 위해 제2 노드(7)에 의해 이용될 수 있으며, 이는 아래의 방법(400)에서 논의 될 것이다.
제2 노드 제2 공개키 결정하기(370')
그러면, 제1 노드(3)는 제2 노드 제2 공개키(P2S)를 결정할 수 있다(370). 위에서 논의된 것처럼, 제2 노드 제2 공개키(P2S)는 적어도 제2 노드 마스터 공개키(P1S) 및 생성기 값(GV)에 기초할 수 있다. 본 예에서, 공개키는 생성기(G)와 타원 곡선 점 곱셈을 갖는 개인키로서 결정되기 때문에(370`), 제2 노드 제2 공개키(P2S)는 수학식 6과 유사한 방식으로 표현될 수 있다.
[수학식 10.1]
P2S = V2S x G
[수학식 10.2]
P2S = P1S + DK x G
수학식 10.2에 대한 수학적 증명은 제1 노드 제2 공개키(P2C)에 대한 수학식 9.1을 유도하기 위해 위에서 설명된 것과 동일하다. 제1 노드(3)는 제2 노드(7)와 독립적으로 제2 노드 제2 공개키를 결정할 수 있음이(370) 인정되어야 한다.
제1 노드(3)에서 공통 비밀 결정하기(380)
그러면, 제1 노드(3)는 결정된 제1 노드 제2 개인키(V2C) 및 결정된 제2 노드 제2 공개키(P2S)에 기초하여 공통 비밀(CS)을 결정할 수 있다(380). 공통 비밀(CS)은 아래의 수학식에 따라, 제1 노드(3)에 의해 결정될 수 있다.
[수학식 11]
S = V2C x P2S
제2 노드(7)에서 수행되는 방법(400)
제2 노드(7)에서 수행되는 대응하는 방법(400)이 설명될 것이다. 이러한 단계들 중 몇몇은 제1 노드(3)에 의해 수행된 전술한 단계들과 유사하다는 것을 이해해야 한다.
방법(400)은 통신 네트워크(5)를 통해 제1 노드(3)로부터 메시지(M)를 수신하는 단계(410)를 포함한다. 이는 315 단계에서 제1 노드(3)에 의해 전송된 메시지(M)를 포함할 수 있다. 그러면, 제2 노드(7)는 메시지(M)에 기초하여 생성기 값(GV)를 결정한다(420). 제2 노드(7)에 의해 생성기 값(GV)를 결정하는 단계(420)는 위에서 설명된 제1 노드에 의해 수행되는 320 단계와 유사하다. 본 예에서, 제2 노드(7)는 제1 노드(3)와 독립적으로 이러한 결정 단계(420)를 수행한다.
다음 단계는 제1 노드 마스터 공개키 (P1C) 및 생성기 값(GV)에 기초하여 제1 노드 제2 공개키(P2C)를 결정하는 단계(430)를 포함한다. 본 예에서, 공개키는 베이스 포인트(G)와 타원 곡선점 곱셈을 갖는 개인키로서 결정(430`)되기 때문에, 제1 노드 제2 공개키(P2C)는 수학식 9와 유사한 형태로 표현될 수 있다.
[수학식 12.1]
P2C = V2C x G
[수학식 12.2]
P2C = P1C + GV x G
수학식 12.1 및 12.2의 수학적 증명은 수학식 10.1 및 10.2를 위해 위에서 논의된 것과 동일하다.
제1 노드(3)를 인증하는 제2 노드(7)
방법(400)은 주장된 제1 노드(3)가 제1 노드(3)임을 인증하기 위해 제2 노드(7)에 의해 수행되는 단계를 포함할 수 있다. 이전에 논의된 것처럼, 제1 노드(3)로부터 제1 서명 메시지 (SM1)를 수신하는 것(440)을 포함한다. 그러면, 제2 노드(7)는 430 단계에서 결정된 제1 노드 제2 공개키(P2C)를 통해 제1 서명 메시지(SM1)의 서명을 검증할 수 있다(450).
디지털 서명을 검증하는 것은 위에서 논의된 타원 곡선 전자 서명 알고리즘 (ECDSA)에 따라 행해질 수 있다. 중요한 것은, 제1 노드 제2 개인키 (V2C)로 서명된 제1 서명 메시지 (SM1)는 V2C and P2C가 암호쌍을 형성하기 때문에, 대응하는 제1 노드 제2 공개키 (P2C)와 정확하게 일치해야 한다. 이러한 키들은 제1 노드(3)의 등록시 생성되는 제1 노드 마스터 개인키 (V1C) 및 제1 노드 마스터 공개키 (P1C)에 대해 결정적으므로, 제1 서명 메시지 (SM1)을 결정하는 것은 제1 서명 메시지 (SM1)를 전송하는 주장된 제1 노드가 등록시 동일한 제1 노드(3)임을 인증하는 근거로 이용될 수 있다. 그래서 제2 노드(7)는 제1 서명 메시지를 검증하는 단계(450)의 결과에 기초하여 제1 노드(3)를 인증하는 단계(460)를 더 수행할 수 있다.
공통 비밀을 결정하는 제2 노드(7)
방법(400)은 제2 노드(7)가 제2 노드 마스터 개인키(V1S) 및 생성기 값(GV)에 기초하여 제2 노드 제2 개인키(V2S)를 결정(470)하는 노드를 더 포함할 수 있다. 제1 노드(3)에 의해 수행되는 330 단계와 유사하게, 제2 노드 제2 개인키(V2S)는 아래의 수학식에 따라, 제2 노드 마스터 개인키(V1S) 및 생성기 값(GV)의 스칼라 합산에 기초할 수 있다.
[수학식 13.1]
V2S = V1S + DK
[수학식 13.2]
V2S = V1S + SHA-256(M)
그러면, 제2 노드(7)는 아래의 수학식에 기초하여, 제1 노드(3)와 독립적으로, 제2 노드 제2 개인키(V2S) 및 제1 노드 제2 공개키(P2C)에 기초한 공통 비밀(CS)을 결정(480)할 수 있다.
[수학식 14]
S = V2S x P2C
제1 노드(3) 및 제2 노드(7)에 의해 결정된 공통 비밀 ( CS )의 증명
제1 노드(3)에 의해 결정된 공통 비밀(CS)은 제2 노드(7)에서 결정된 공통 비밀(CS)과 동일하다. 수학식 11 및 수학식 14가 동일한 공통 비밀(CS)을 제공하는 것에 대한 수학적 증명을 이제 설명할 것이다.
제1 노드(3)에 의해 결정된 공통 비밀(CS)로 돌아가면, 수학식 10.1은 아래의 수학식 11에 대입될 수 있다.
[수학식 11]
S = V2C x P2S
S = V2C x (V2S x G)
[수학식 15]
S = (V2C x V2S) x G
제2 노드(7)에 의해 결정된 공통 비밀(CS)로 돌아가면, 수학식 12.1은 아래의 수학식 14에 대입될 수 있다.
[수학식 14]
S = V2S x P2C
S = V2S x (V2C x G)
[수학식 16]
S = (V2S x V2C) x G
ECC 대수학은 교환 가능하기 때문에, 수학식 15 및 수학식 16은 동일하다. 그러므로 아래와 같다.
[수학식 17]
S = (V2C x V2S) x G = (V2S x V2C) x G
공통 비밀 ( CS ) 및 비밀키
공통 비밀(CS)은 비밀키로서 또는 제1 노드(3) 및 제2 노드(7) 사이의 보안 통신을 위한 대칭키 알고리즘에서 비밀키의 근거로서 이용될 수 있다.
공통 비밀(CS)은 타원 곡선 점(xS, yS)의 형태일 수 있다. 이는 노드(3, 7)에 의해 합의된 표준 공개 연산을 이용하여 표준키 포멧으로 변환될 수 있다. 예를 들어, xS 값은 AES256 암호화를 위한 키로서 이용될 수 있는 256-bit 정수일 수 있다. 또한, 이 길이키를 요구하는 어떤 어플리케이션을 위해 RIPEMD160을 사용하여 160-bit 정수로 변환될 수 있다.[1] 공통 비밀(CS)은 필요에 따라 결정될 수 있다. 중요하게도, 제1 노드(3)는 메시지(M)에 기초하여 재결정 될 수 있으므로 공통 비밀(CS)을 저장할 필요가 없다. 몇몇 예에서, 사용된 메시지(M)는 마스터 개인키에 대해 요구되는 것과 동일한 보안 레벨 없이 데이터 저장소(13, 17, 19)(또는 다른 데이터 저장소)에 저장될 수 있다. 몇몇 예에서, 메시지(M)는 공개적으로 이용 가능할 수 있다.
그러나 몇몇 어플리케이션에 따르면, 공통 비밀(CS)은 공통 비밀(CS)이 제1 노드 마스터 개인키(V1C)만큼 보안이 유지되는 것을 제공하는 제1 노드와 연관된 제1 데이터 저장소(X)에 저장될 수 있다.
이점으로는, 이 기법은 하나의 마스터키 암호화 쌍에 기초하여 다중 보안 비밀키에 대응할 수 있는 다중 공통 비밀을 결정하는데 이용될 수 있다.
전술한 실시예들은 본 발명을 제한하기보다는 예시하고, 당업자는 첨부된 청구 범위에 의해 규정된 본 발명의 범위를 벗어나지 않고 다양한 대안적인 실시예를 설계할 수 있음을 알아야 한다. 청구 범위에서, 괄호 안의 임의의 참조 부호는 청구 범위를 제한하는 것으로 해석되어서는 안된다. "포함하는" 및 "포함한다" 이라는 단어 등은 청구 범위 또는 명세서 전체에 열거된 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서, "포함하다"는 "포함하거나 이루어지다"를 의미하고, "포함하는"은 "포함하거나 이루어진"을 의미한다. 구성 요소의 단일 참고는 해당 구성 요소의 복수 차고를 배제하지 않으며, 반대의 경우도 마찬가지이다. 본 발명은 몇몇 별개의 구성 요소를 포함하는 하드웨어에 의하여 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 장치 청구항에서, 이들 수단 중 몇몇은 하나의 동일한 하드웨어 항목에 의해 구현될 수 있다. 특정 측정 값이 서로 다른 종속항에 인용되어 있다는 단순한 사실만으로 이 측정값의 조합을 활용할 수 없다는 것을 의미하지 않는다.

Claims (20)

  1. 처리 장치가 출력에 대한 리딤 스크립트를 포함하는 블록체인 거래를 제공하는 단계,
    여기서, 리딤 스크립트는,
    i) 복수의 공개키, 각각이 대응하는 개인키에 연관되고; 여기서 각각의 공개키는 적어도 하나의 데이터 소스의 잠재적 상태와 고유하게 연관되고; 상기 개인키의 최소 개수는 출력을 소비하기 위해 추가 블록체인 거래의 잠금 해제 스크립트에 서명하는데 사용되고;
    ii) 다음에 기초하여 결과를 제공하도록 구성된 로직:
    - 잠금 해제 스크립트에 서명하는데 이용되는 복수의 연관 개인키의 결정(determination); 그리고
    - 중간 결과에 대한 잠금 해제 스크립트를 통해 제공되는 매개변수의 비교(comparison),
    상기 처리 장치가 각각의 시도가 상이한 매개변수를 제공하되, 거래 출력을 두 번 이상 소비하려고 시도하는 단계를 포함하는 컴퓨터로 구현되는 제어 방법.
  2. 제1항에 있어서,
    상기 로직은 로직 게이트의 기능을 구현하도록 구성되는 컴퓨터로 구현되는 제어 방법.
  3. 제2항에 있어서,
    상기 로직 게이트는 NOT 게이트, AND 게이트, OR 게이트, NOR 게이트, XOR 게이트, IMPLY 게이트, NAND 게이트, NONIMPLY 게이트 또는 XNOR 게이트인 컴퓨터로 구현되는 제어 방법.
  4. 제1항 내지 제3항 중 어느 하나에 있어서,
    상기 적어도 하나의 데이터 소스의 상태는 컴퓨팅 에이전트에 의해 결정되는 컴퓨터로 구현되는 제어 방법.
  5. 제4항에 있어서,
    상기 컴퓨팅 에이전트는 제어 컴퓨팅 에이전트(control computing agent)와 통신하는 컴퓨터로 구현되는 제어 방법.
  6. 제1항 내지 제3항 중 어느 하나에 있어서,
    상기 결과는 불(Boolean) 결과인 컴퓨터로 구현되는 제어 방법.
  7. 제1항 내지 제3항 중 어느 하나에 있어서,
    적어도 2개의 데이터 소스가 있는 컴퓨터로 구현되는 제어 방법.
  8. 제1항 내지 제3항 중 어느 하나에 있어서,
    각각의 데이터 소스에 대한 2개 이상의 잠재적인 상태가 있고,
    각각의 잠재적인 상태는 공개키와 관련되거나 공개키로 표현되는 컴퓨터로 구현되는 제어 방법.
  9. 제1항 내지 제3항 중 어느 하나에 있어서,
    적어도 하나의 데이터 소스의 각각에 대해:
    상기 처리 장치가 상기 복수의 공개키를 상기 데이터 소스의 잠재적 상태에 연관시키는 단계를 포함하며;
    상기 데이터 소스의 모든 가능한 상태는 각각의 공개키에 의해 표현되는 컴퓨터로 구현되는 제어 방법.
  10. 제1항 내지 제3항 중 어느 하나에 있어서,
    상기 적어도 하나의 데이터 소스는 센서 또는 신호 발생 구성 요소를 포함하는 컴퓨터로 구현되는 제어 방법.
  11. 제1항 내지 제3항 중 어느 하나에 있어서,
    각각의 공개키는 적어도 하나의 데이터 소스의 잠재적 상태를 나타내는 불 값을 표현하는 컴퓨터로 구현되는 제어 방법.
  12. 제1항 내지 제3항 중 어느 하나에 있어서,
    상기 매개변수는 값 또는 키에 내장된 값인 컴퓨터로 구현되는 제어 방법.
  13. 제1항 내지 제3항 중 어느 하나에 있어서,
    상기 로직은 상기 중간 결과를 상기 매개변수와 비교하기 위해 동등성 검사를 수행하도록 구성되는 컴퓨터로 구현되는 제어 방법.
  14. 제1항 내지 제3항 중 어느 하나에 있어서,
    상기 중간 결과는 상기 리딤 스크립트 내에 제공되는 상기 로직으로부터 도출되고, 및/또는 잠금 해제 스크립트에 서명하는데 이용되는 키를 결정하는 것에 의해 계산되는 불 값인 컴퓨터로 구현되는 제어 방법.
  15. 제1항 내지 제3항 중 어느 하나에 있어서,
    상기 처리 장치가 기본키 또는 마스터 키로부터 상기 복수의 공개키 중 하나 이상을 생성하거나 도출하는 단계를 더 포함하는 컴퓨터로 구현되는 제어 방법.
  16. 제15항에 있어서,
    상기 하나 이상을 생성하거나 도출하는 단계는,
    결정론적 키 생성 기법(deterministic key generation technique)을 이용하여 수행되는 컴퓨터로 구현되는 제어 방법.
  17. 제1항 내지 제3항 중 어느 하나의 단계를 수행하도록 구성된 적어도 하나의 컴퓨터 기반의 자원(resource); 및
    블록체인을 포함하는 컴퓨터로 구현되는 시스템.
  18. 제17항에 있어서,
    상기 적어도 하나의 컴퓨터 기반의 자원은,
    블록체인 네트워크에 거래를 제출하고;
    거래를 생성하며;
    잠금 스크립트에 디지털 서명하고; 및/또는
    공개/개인 암호화 키를 생성하도록 구성되는 컴퓨터로 구현되는 시스템.
  19. 제17항에 있어서,
    상기 결과는 프로세스 또는 장치의 실행 또는 동작을 제어 또는 영향을 주기 위해 사용되는 컴퓨터로 구현되는 시스템.
  20. 제17항에 있어서,
    상기 적어도 하나의 컴퓨터 기반의 자원에 입력을 제공하도록 배치되고 구성된 적어도 하나의 센서 또는 신호 발생 구성 요소를 더 포함하는 컴퓨터로 구현되는 시스템.
KR1020197005310A 2016-07-29 2017-07-21 블록체인 구현 방법 및 시스템 KR102472231B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GBGB1613177.3A GB201613177D0 (en) 2016-07-29 2016-07-29 Computer-implemented method and system
GBGB1613188.0A GB201613188D0 (en) 2016-07-29 2016-07-29 Computer-implemented method and system
GB1613177.3 2016-07-29
GB1613148.4 2016-07-29
GB1613188.0 2016-07-29
GBGB1613148.4A GB201613148D0 (en) 2016-07-29 2016-07-29 Computer-implemented method and system
PCT/IB2017/054423 WO2018020370A1 (en) 2016-07-29 2017-07-21 Blockchain-implemented method and system

Publications (2)

Publication Number Publication Date
KR20190033580A KR20190033580A (ko) 2019-03-29
KR102472231B1 true KR102472231B1 (ko) 2022-11-29

Family

ID=59485389

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020197005310A KR102472231B1 (ko) 2016-07-29 2017-07-21 블록체인 구현 방법 및 시스템
KR1020197004247A KR102467596B1 (ko) 2016-07-29 2017-07-21 블록 체인 구현 방법 및 시스템
KR1020197004243A KR102464299B1 (ko) 2016-07-29 2017-07-21 블록체인 구현 방법 및 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020197004247A KR102467596B1 (ko) 2016-07-29 2017-07-21 블록 체인 구현 방법 및 시스템
KR1020197004243A KR102464299B1 (ko) 2016-07-29 2017-07-21 블록체인 구현 방법 및 시스템

Country Status (8)

Country Link
US (6) US11271736B2 (ko)
EP (5) EP3491599A1 (ko)
JP (8) JP7203009B2 (ko)
KR (3) KR102472231B1 (ko)
CN (6) CN109478223B (ko)
SG (6) SG11201811010UA (ko)
WO (3) WO2018020369A1 (ko)
ZA (2) ZA201900509B (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180114942A (ko) 2016-02-23 2018-10-19 엔체인 홀딩스 리미티드 분산형 해시 테이블 및 블록체인을 사용하여 컴퓨터 소프트웨어를 보호하기 위한 방법 및 시스템
JP6511201B1 (ja) 2016-02-23 2019-05-15 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンにより施行される洗練された取引のためのレジストリ及び自動管理方法
CA3014727A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
CN109314636B (zh) 2016-02-23 2022-01-11 区块链控股有限公司 用于从区块链中安全提取数据的密码方法和系统
JP6957482B2 (ja) 2016-02-23 2021-11-02 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンベースにおけるエンティティのセキュアな移転のための方法およびシステム
EP3420515B1 (en) 2016-02-23 2023-05-10 nChain Licensing AG Blockchain-based exchange with tokenisation
CN116934328A (zh) 2016-02-23 2023-10-24 区块链控股有限公司 用于经由区块链控制资产有关的动作的系统及方法
EP3764589A1 (en) 2016-02-23 2021-01-13 Nchain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
EP4274154A3 (en) * 2016-02-23 2023-12-20 nChain Licensing AG Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
CA3010116A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
EP3259725B1 (en) 2016-02-23 2020-06-10 Nchain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
BR112018016826A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método e sistema de controle implementados por blockchain
BR112018016810A2 (pt) 2016-02-23 2018-12-26 nChain Holdings Limited método e sistema implementado por computador para criptografia de dados em um dispositivo eletrônico, dispositivo eletrônico e programa de computador
CN108781161B (zh) 2016-02-23 2021-08-20 区块链控股有限公司 用于控制和分发数字内容的区块链实现的方法
FR3049089B1 (fr) * 2016-03-21 2018-02-16 Sebastien Jean Serge Dupont Procede permettant de gerer les validations des messages relatifs a une chaine de messages de facon unitaire a travers un reseau de validation decentralise
GB201611698D0 (en) * 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
EP3491599A1 (en) 2016-07-29 2019-06-05 Nchain Holdings Limited Blockchain-implemented method and system
US20190188697A1 (en) * 2017-12-19 2019-06-20 Tbcasoft, Inc. Systems of multiple distributed ledgers using cross-ledger transfers for highly-scalable transaction throughput
WO2019199196A1 (ru) * 2018-04-11 2019-10-17 Алексей Сергеевич СМИРНОВ Способ и устройство для осуществления безопасных транзакций в блокчейн инфраструктуре
EP3794765A1 (en) 2018-05-14 2021-03-24 Nchain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
US10902140B2 (en) * 2018-06-18 2021-01-26 CBRE, Inc. Services platform for managing a verifiable permissioned ledger in a distributed database management system
WO2020010490A1 (zh) * 2018-07-09 2020-01-16 彭英均 一种无需仲裁解决录入区块链的交易数据真实有效的方法
GB2578168A (en) * 2018-10-19 2020-04-22 Star Hat Solutions Ltd Computer-implemented method and system for digital signing of transactions
EP3654578B1 (en) 2018-11-16 2022-04-06 SafeTech BV Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information
CN109451036B (zh) * 2018-12-04 2021-07-16 北京创世智链信息技术研究院 一种区块链安全通信方法、服务节点及系统
CN109859042A (zh) * 2019-01-09 2019-06-07 广州闪链区块链科技有限公司 一种基于区块链的黄金资产赎回方法、装置及存储介质
WO2019101240A2 (en) * 2019-03-15 2019-05-31 Alibaba Group Holding Limited Authentication based on a recoverd public key
CN110135964A (zh) * 2019-05-21 2019-08-16 山东浪潮通软信息科技有限公司 一种基于区块链技术的财务记账方法
CN110415092A (zh) * 2019-08-07 2019-11-05 北京艾摩瑞策科技有限公司 互联网租房关联数据的上链方法及其装置
CN111464538B (zh) * 2020-03-31 2022-02-01 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质、资产交易后台
CN111464636B (zh) * 2020-03-31 2021-12-07 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质
CN111510309B (zh) * 2020-04-08 2022-05-10 深圳大学 区块链数据传输方法、装置、设备及计算机可读存储介质
AU2021290092A1 (en) * 2020-06-10 2023-02-09 Elas Holdings PTY LTD Computer implemented systems and methods
CN113052576B (zh) * 2020-11-05 2024-02-27 北京跨联元焕网络科技有限公司 跨链交换的托管方法和系统
US20230125542A1 (en) * 2021-10-22 2023-04-27 Mastercard International Incorporated Method and system of initiating simultaneous start of block formation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015144971A1 (en) 2014-03-27 2015-10-01 Nokia Technologies Oy Method and apparatus for automatic inter-device authorisation
US20150287026A1 (en) 2014-04-02 2015-10-08 Modernity Financial Holdings, Ltd. Data analytic and security mechanism for implementing a hot wallet service
US20160085955A1 (en) 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US20170091756A1 (en) 2015-07-14 2017-03-30 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
US20170316390A1 (en) 2016-04-30 2017-11-02 Civic Technologies, Inc. Methods and systems of revoking an attestation transaction using a centralized or distributed ledger

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170058B1 (en) * 1997-12-23 2001-01-02 Arcot Systems, Inc. Method and apparatus for cryptographically camouflaged cryptographic key storage, certification and use
KR100291838B1 (ko) * 1999-11-25 2001-06-01 정회선 훈민정음 제자 원리에 기반한 한글 입력 장치 및 방법
US6701463B1 (en) * 2000-09-05 2004-03-02 Motorola, Inc. Host specific monitor script for networked computer clusters
US8219801B2 (en) * 2003-03-10 2012-07-10 International Business Machines Corporation Method of authenticating digitally encoded products without private key sharing
US7793154B2 (en) * 2006-11-30 2010-09-07 International Business Machines Corporation Method and implementation for automating processes using data driven pre-recorded transactions
US7930554B2 (en) * 2007-05-31 2011-04-19 Vasco Data Security,Inc. Remote authentication and transaction signatures
CN103081398B (zh) * 2010-03-31 2016-04-06 爱迪德技术有限公司 用于保护密码资产免受白盒攻击的系统和方法
CA2716982C (en) * 2010-10-06 2016-07-19 Ibm Canada Limited - Ibm Canada Limitee Digital signatures on composite resource documents
JP2012213859A (ja) * 2011-03-31 2012-11-08 Fujitsu Component Ltd プリンタ、プログラム、およびプリンタシステム
US9355393B2 (en) 2011-08-18 2016-05-31 Visa International Service Association Multi-directional wallet connector apparatuses, methods and systems
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
US10825001B2 (en) 2011-08-18 2020-11-03 Visa International Service Association Multi-directional wallet connector apparatuses, methods and systems
US20150220914A1 (en) 2011-08-18 2015-08-06 Visa International Service Association Electronic Wallet Management Apparatuses, Methods and Systems
US9710807B2 (en) 2011-08-18 2017-07-18 Visa International Service Association Third-party value added wallet features and interfaces apparatuses, methods and systems
US20130166455A1 (en) * 2011-12-23 2013-06-27 Douglas Feigelson Creating and using digital currency
US9230130B2 (en) * 2012-03-22 2016-01-05 Docusign, Inc. System and method for rules-based control of custody of electronic signature transactions
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
EP2698756B1 (en) * 2012-08-13 2016-01-06 Nxp B.V. Local Trusted Service Manager
US9876775B2 (en) 2012-11-09 2018-01-23 Ent Technologies, Inc. Generalized entity network translation (GENT)
EP2755158A1 (en) * 2013-01-09 2014-07-16 Thomson Licensing Method and device for privacy-respecting data processing
US10200199B2 (en) 2013-08-05 2019-02-05 Guardtime Holdings Limited Strengthened entity identity for digital record signature infrastructure
US20150120569A1 (en) * 2013-10-31 2015-04-30 Bitgo, Inc. Virtual currency address security
FR3018378A1 (fr) * 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
FR3018370A1 (fr) * 2014-03-07 2015-09-11 Enrico Maim Procede et systeme de generation automatique de crypto-monnaies
JP6813477B2 (ja) 2014-05-09 2021-01-13 ヴェリタセウム アイエヌシー. 信頼度が低い、または信頼度が皆無の当事者間での価値転送を円滑化する装置、システム、または方法
ZA201502969B (en) * 2014-05-09 2016-01-27 Univ Stellenbosch Enabling a user to transact using cryptocurrency
US10346814B2 (en) * 2014-06-04 2019-07-09 MONI Limited System and method for executing financial transactions
GB201413284D0 (en) 2014-07-28 2014-09-10 Pardi Tibor Z And Zovolt Ltd System to interact with internet of things decices using block-chain based smart contracts and digital currencies
US9705501B2 (en) * 2014-10-01 2017-07-11 Maxim Integrated Products, Inc. Systems and methods for enhancing confidentiality via logic gate encryption
CA3074916A1 (en) * 2014-10-02 2016-04-07 Ecoatm, Llc Application for device evaluation and other processes associated with device recycling
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
US20160164884A1 (en) * 2014-12-05 2016-06-09 Skuchain, Inc. Cryptographic verification of provenance in a supply chain
CN104463001A (zh) * 2014-12-19 2015-03-25 比特卡国际有限公司 一种独立生成和保存加密数字货币私钥的方法及承载加密数字货币私钥的装置
US9973341B2 (en) * 2015-01-23 2018-05-15 Daniel Robert Ferrin Method and apparatus for the limitation of the mining of blocks on a block chain
US20160275461A1 (en) 2015-03-20 2016-09-22 Rivetz Corp. Automated attestation of device integrity using the block chain
AU2016246428B2 (en) * 2015-04-05 2017-11-09 Digital Asset (Switzerland) GmbH Digital asset intermediary electronic settlement platform
JP6636058B2 (ja) * 2015-07-02 2020-01-29 ナスダック, インコーポレイテッドNasdaq, Inc. 分散トランザクションデータベースにおける出所保証のシステムおよび方法
US20170228731A1 (en) 2016-02-09 2017-08-10 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
US10504179B1 (en) * 2015-12-08 2019-12-10 Fmr Llc Social aggregated fractional equity transaction partitioned acquisition apparatuses, methods and systems
US11488147B2 (en) * 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
US11436598B2 (en) * 2017-12-15 2022-09-06 Fmr Llc Social data tracking datastructures, apparatuses, methods and systems
US20180191503A1 (en) * 2015-07-14 2018-07-05 Fmr Llc Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
CN105160012B (zh) * 2015-09-23 2019-03-26 烽火通信科技股份有限公司 一种异构数据库的管理方法及系统
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
CN105681301B (zh) * 2016-01-16 2019-03-12 杭州复杂美科技有限公司 区块链上的结算方法
CN105610578B (zh) * 2016-01-25 2019-05-03 杭州复杂美科技有限公司 区块链信息存证及隐私保护方法
US9849364B2 (en) * 2016-02-02 2017-12-26 Bao Tran Smart device
US11130042B2 (en) * 2016-02-02 2021-09-28 Bao Tran Smart device
EP3411824B1 (en) * 2016-02-04 2019-10-30 Nasdaq Technology AB Systems and methods for storing and sharing transactional data using distributed computer systems
US11354658B2 (en) * 2016-02-11 2022-06-07 Mastercard International Incorporated Method and system for offline blockchain exchanges
JP6511201B1 (ja) * 2016-02-23 2019-05-15 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンにより施行される洗練された取引のためのレジストリ及び自動管理方法
EP3420515B1 (en) * 2016-02-23 2023-05-10 nChain Licensing AG Blockchain-based exchange with tokenisation
EP3259725B1 (en) * 2016-02-23 2020-06-10 Nchain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US10454677B1 (en) * 2016-02-24 2019-10-22 United Services Automobile Associate (USAA) Cryptographic key generation from biometric data
US9940480B2 (en) 2016-02-25 2018-04-10 Red Hat, Inc. Securing delegated remote management with digital signature
EP3423999A1 (en) * 2016-03-03 2019-01-09 NEC Laboratories Europe GmbH Method for managing data in a network of nodes
US11625461B2 (en) * 2016-04-12 2023-04-11 Sensoriant, Inc. Method and system for safeguarding stored data
US20170302663A1 (en) * 2016-04-14 2017-10-19 Cisco Technology, Inc. BLOCK CHAIN BASED IoT DEVICE IDENTITY VERIFICATION AND ANOMALY DETECTION
US10521775B2 (en) * 2016-04-18 2019-12-31 R3 Ltd. Secure processing of electronic transactions by a decentralized, distributed ledger system
US20190149337A1 (en) * 2016-04-29 2019-05-16 nChain Holdings Limited Implementing logic gate functionality using a blockchain
US10532268B2 (en) 2016-05-02 2020-01-14 Bao Tran Smart device
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
AU2017263465B9 (en) * 2016-05-11 2021-01-28 Nasdaq, Inc. Application framework using blockchain-based asset ownership
EP3478174A1 (en) * 2016-07-01 2019-05-08 L.I.F.E. Corporation S.A. Biometric identification by garments having a plurality of sensors
GB201611698D0 (en) 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
EP3491599A1 (en) 2016-07-29 2019-06-05 Nchain Holdings Limited Blockchain-implemented method and system
US20200204338A1 (en) * 2018-12-20 2020-06-25 Ripple Labs Inc. Securing public key cryptographic algorithms
US11196759B2 (en) * 2019-06-26 2021-12-07 Microsoft Technology Licensing, Llc SIEM system and methods for exfiltrating event data
US20230298001A1 (en) * 2022-03-21 2023-09-21 Paypal, Inc. Non-fungible token (nft) purchase and transfer system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160085955A1 (en) 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
WO2015144971A1 (en) 2014-03-27 2015-10-01 Nokia Technologies Oy Method and apparatus for automatic inter-device authorisation
US20150287026A1 (en) 2014-04-02 2015-10-08 Modernity Financial Holdings, Ltd. Data analytic and security mechanism for implementing a hot wallet service
US20170091756A1 (en) 2015-07-14 2017-03-30 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
US20170316390A1 (en) 2016-04-30 2017-11-02 Civic Technologies, Inc. Methods and systems of revoking an attestation transaction using a centralized or distributed ledger

Also Published As

Publication number Publication date
SG11201811071VA (en) 2019-02-27
WO2018020371A1 (en) 2018-02-01
CN109478279B (zh) 2023-11-24
JP2019525590A (ja) 2019-09-05
US20190229911A1 (en) 2019-07-25
JP2019528592A (ja) 2019-10-10
US11563574B2 (en) 2023-01-24
US11271736B2 (en) 2022-03-08
US20220191021A1 (en) 2022-06-16
JP7295927B2 (ja) 2023-06-21
WO2018020370A1 (en) 2018-02-01
JP6990690B2 (ja) 2022-01-12
US20190356472A1 (en) 2019-11-21
JP7304398B2 (ja) 2023-07-06
JP2023123673A (ja) 2023-09-05
CN109478280A (zh) 2019-03-15
SG11201811009VA (en) 2019-02-27
CN116911835A (zh) 2023-10-20
CN109478223A (zh) 2019-03-15
CN109478279A (zh) 2019-03-15
US20230231711A1 (en) 2023-07-20
SG10202107636WA (en) 2021-08-30
SG10202107632SA (en) 2021-08-30
KR102464299B1 (ko) 2022-11-07
SG10202107635QA (en) 2021-08-30
JP2022043178A (ja) 2022-03-15
JP7454035B2 (ja) 2024-03-21
EP4235550A1 (en) 2023-08-30
EP3491598A1 (en) 2019-06-05
SG11201811010UA (en) 2019-02-27
KR20190033580A (ko) 2019-03-29
KR20190033564A (ko) 2019-03-29
JP6997755B2 (ja) 2022-01-18
CN109478223B (zh) 2023-08-29
ZA201900512B (en) 2023-10-25
EP3491599A1 (en) 2019-06-05
JP2022033913A (ja) 2022-03-02
WO2018020369A1 (en) 2018-02-01
JP7203009B2 (ja) 2023-01-12
EP3491600B1 (en) 2023-09-13
CN109478280B (zh) 2023-08-22
CN116911836A (zh) 2023-10-20
KR102467596B1 (ko) 2022-11-16
JP2023113899A (ja) 2023-08-16
EP4220515A1 (en) 2023-08-02
JP2023036840A (ja) 2023-03-14
ZA201900509B (en) 2022-12-21
JP2019525591A (ja) 2019-09-05
US20240113877A1 (en) 2024-04-04
EP3491598B1 (en) 2023-09-20
CN117391682A (zh) 2024-01-12
KR20190033565A (ko) 2019-03-29
US11838415B2 (en) 2023-12-05
EP3491600A1 (en) 2019-06-05
US20230155846A1 (en) 2023-05-18

Similar Documents

Publication Publication Date Title
KR102472231B1 (ko) 블록체인 구현 방법 및 시스템
KR20210008516A (ko) 블록체인을 사용하여 원자 스왑을 수행하기 위한 컴퓨터-구현된 시스템 및 방법
US11416821B1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN107026729B (zh) 用于传输软件的方法和装置
JP2024063229A (ja) ブロックチェーンにより実装される方法及びシステム

Legal Events

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