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

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

Info

Publication number
KR102464299B1
KR102464299B1 KR1020197004243A KR20197004243A KR102464299B1 KR 102464299 B1 KR102464299 B1 KR 102464299B1 KR 1020197004243 A KR1020197004243 A KR 1020197004243A KR 20197004243 A KR20197004243 A KR 20197004243A KR 102464299 B1 KR102464299 B1 KR 102464299B1
Authority
KR
South Korea
Prior art keywords
node
script
key
gate
logic
Prior art date
Application number
KR1020197004243A
Other languages
English (en)
Other versions
KR20190033564A (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 KR20190033564A publication Critical patent/KR20190033564A/ko
Application granted granted Critical
Publication of KR102464299B1 publication Critical patent/KR102464299B1/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
    • 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
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Power Engineering (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Administration (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Abstract

본 발명은 컴퓨터 구현 제어 방법 및 대응하는 시스템을 제공한다. 이 방법은 장치, 시스템 또는 기술 프로세스와 같은 다른 자원을 제어하거나 영향을 줄 수 있다. 본 발명은 컴퓨터 기반 분산 대장(블록체인)을 통해 로직 게이트의 기능을 에뮬레이트하거나 시행하기 위한 메커니즘을 제공할 수 있다. 이는 비트코인 블록체인 또는 대체 네트워크/프로토콜일 수 있다. 본 발명은 리딤 스크립트 내에 내장된 로직을 제공하여, 어떤 특정 개인키가 잠금 해제 스크립트에 서명하는데 사용되었는지를 결정한 다음 미리 결정된 기능에 따라 이들 키의 제공을 해석한다. 바람직한 실시예에서, 상기 방법은 출력에 대한 리딤 스크립트를 포함하는 블록체인 거래를 제공하는 단계;를 포함하고, 상기 리딤 스크립트는, i) 복수의 공개키를 지정하고, 각각은 대응하는 개인키와 연관되고, 상기 각 공개키는 적어도 하나의 데이터 소스의 잠재적인 상태와 고유하게 연관되어 있고; 및 ii) 상기 복수의 관련된 개인키(들) 중 어느 것이 잠금 해제 스크립트에 서명하는데 사용되는지에 기초하여 결과를 제공하도록 구성된 로직;을 포함하고, 상기 개인키의 최소 수(minimum number)가 상기 출력을 소비하기 위해 추가의 블록 체인 거래의 잠금 해제 스크립트에 서명하기 위해 사용되어야 한다. 바람직하게, 로직은 NOT, AND, OR, NOR, XOR, IMPLY, NAND, NONIMPLY 또는 XNOR 게이트와 같은 로직 게이트의 기능을 구현하도록 구성된다.

Description

블록체인 구현 방법 및 시스템
본 발명은 일반적으로 분산 대장(distributed ledger) 기술(블록체인 관련 기술 포함), 특히 작업 또는 프로세스를 구현(implementing), 제어(controlling) 및/또는 자동화하는(automating) 블록체인(blockchain)의 사용에 관한 것이다. 로직(logic) 부분의 실행(execution)을 기록하거나(recording) 또는 나타내는(representing) 블록체인 또는 관련된 기술의 사용에 관한 것일 수 있다. 이러한 로직 부분은 로직 게이트(logic gate), 또는 AND, XOR, NOT, OR 등과 같은 복수의 로직 게이트의 기능을 구현하도록 배열될 수 있다.
이 문서에서 우리는 최근에 가장 널리 알려진 용어이기 때문에 편의와 용이함을 위해 '블록체인'이라는 용어를 사용한다는 점에 유의해야 한다. 그러나 이 용어는 여기서 (청구항을 포함하여) 전자, 컴퓨터 기반(computer-based) 분산 대장을 포함하고, 블록체인 및 거래(transaction)-체인(chain) 기술, 허가된 및 비허가된 대장, 공유 대장 및 그것의 변형을 포함하되 이에 국한되지 않는다.
블록체인은 순차의 거래로 구성된 블록으로 이루어진 합의-기반(consensus-based)의, 컴퓨터 기반(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) 등).
미국공개특허 2015-0287026호 국재공개특허 WO2015-144971호
이와 같은 개선된 해결책이 고안되었다. 따라서, 본 발명에 따르면 첨부된 청구 범위에 정의된 시스템 및 방법이 제공된다.
따라서 본 발명에 따라 컴퓨터로 구현된 방법이 제공될 수 있다. 그것은 제어 방법으로 설명될 수 있다. 그것은 기술적 프로세스의 동작 또는 하나 이상의 디바이스의 동작을 제어할 수 있다. 추가적으로 또는 대안으로, 그것은 블록체인 스크립트의 실행을 제어할 수 있다. 그것은 블록체인 거래(UTXO)의 출력이 잠금 해제되는지 여부를 제어할 수 있다. 암호화폐의 일부가 블록체인을 통해 일 당사자에서 다른 당사자로 전송되는지 여부를 제어할 수 있다.
상기 방법은 출력을 위한 리딤 스크립트(redeem script)를 포함하는 블록체인 거래(Tx)를 제공하는 단계를 포함하고, 상기 리딤 스크립트는:
복수의 공개키를 지정한다. 이것들은 암호화 키일 수 있다. 그들은 개인/공개 키 쌍의 일부를 형성할 수 있다. 복수(또는 리스트)의 키들 각각은 대응하는 개인키와 연관될 수 있다. 각 공개키는 적어도 하나의 데이터 소스의 잠재적인 상태와 고유하게 연관될 수 있다. 따라서 리딤 스크립트는 공개키들의 리스트를 포함할 수 있으며, 공개키들에 대해 대응하는 개인키들만이 거래 출력(TxO)를 소비하는데 사용될 수 있다.
이 방법은 거래를 생성하는 단계를 포함할 수 있다. 이를 블록체인에 제출하는 단계를 포함할 수 있다.
거래 및/또는 추가 (소비) 거래는 컴퓨팅 에이전트에 의해 생성될 수 있다. 그것은 센서 또는 다른 신호원으로부터 수신된 입력(들)에 기초하여 자동적으로(사람의 개입 없이) 생성될 수 있다.
부가적으로 또는 대안적으로, 리딤 스크립트는 복수의 연관된 개인키(들) 중 어느 것이 잠금 해제 스크립트에 서명하는데 사요되는지에 기초한 결과를 제공하도록 구성된 로직의 일부를 포함할 수 있다. 따라서 리딤 스크립트에 제공된 로직의 실행은 잠금 해제 스크립트에 서명하기 위해 공개키가 사용되었는지에 의해 결정될 수 있다.
유리하게는, 이것은 특정키가 사용되는 것이 아니라 특정 개수의 키가 단순히 요구되는 종래의 기술보다 더 큰 제어의 정도를 제공한다. 본 발명은 다수로부터의 특정키들이 사용되는지 여부를 결정함으로써, 거래 출력 UTXO이 잠금/잠금 해제를 제어할 때보다 세밀한 정도(granularity) 또는 정교함(sophistication)을 용이하게 하는 대안적이고 강화된 보안 기술을 제공한다. 따라서 본 발명은 암호화폐의 일부 전달을 제어하기 위한 개선된 암호 기술을 제공한다 말할 수 있다.
부가적으로 또는 대안적으로, 출력을 소비하기 위해 추가 블록체인 거래의 잠금 해제 스크립트에 서명하기 위해 상기 개인키들 중 최소 개수가 요구될 수 있다.
로직에 의해 제공된 결실 또는 결과는 잠금 해제 스크립트에 서명하기 위해 (특히) 개인키(들)가 사용되었는지 여부에 따라 결정되거나 영향을 받을 수 있다. 이 방법은 잠금 해제 스크립트에 서명하는데 사용된 개인키(들)를 리딤 스크립트 내에 제공된 관련 공개키와 매칭하는 단계를 포함할 수 있다.
리딤 스크립트 내의 로직은 로직 게이트의 기능을 구현하도록 구성될 수 있다. ? 로직 게이트는 NOT, AND, OR, NOR, XOR, IMPLY, NAND, NONIMPLY 및/또는 XNOR 게이트일 수 있다. 따라서 본 발명은 로직 게이트의 기능이 블록체인 거래를 통해 시뮬레이트되거나(simulated) 실행될 수 있게 하는 기술을 제공하는 것으로 설명될 수 있다.
적어도 하나의 데이터 소스의 상태는 컴퓨팅 에이전트에 의해 결정될 수 있다. 에이전트는 상태(condition)를 모니터링하도록 구성될 수 있다. 이는 예를 들어 컴퓨팅 네트워크 또는 장치관련 상태의 상태 또는 환경 요인의 상태이거나 다른 유형의 정량화 가능한 상태일 수 있다.
컴퓨팅 에이전트는 제어 컴퓨팅 에이전트와 통신할 수 있다. 이는 여기서 "컨트롤러(controller)"로 지칭될 수 있다. 리딤 스크립트는 컴트롤러에 의해 생성될 수 있다. 하나 이상의 에이전트는 프로세스 또는 장치를 제어하도록 구성될 수 있다.
컴퓨팅 에이전트의 하나, 일부 또는 전부는 에이전트 기본키(agent base key)라 불리는 암호화 키를 포함할 수 있다. 이는 에이전트(들)에 의해 생성될 수 있다. 이것은 컨트롤러로부터 유도(derived) 및/또는 수신될 수 있다. 복수의 키들 중 적어도 하나 이상은 기본(base) 또는 "마스터(master)" 키로부터 생성되거나 유도될 수 있다. 키 생성(generation)은 결정론적 키 생성 기술(deterministic key generation technique)을 사용함으로써 수행될 수 있다. 이 방법은 에이전트에 의해 모니터링되고 있는 상태의 각 가능한 상태에 대한 추가 또는 개별 키를 생성 또는 유도하는 단계를 포함할 수 있다. 추가 키는 아래 "공유 암호를 사용하여 키 만들기" 섹션에서 설명한 기술을 사용하여 기본키로부터 유도될 수 있다.
로직에 의해 제공된 결과는 불 방식의(Boolean) 결과 또는 다른 유형의 결과일 수 있다. 로직은 제한된 범위의 결과로부터의 결과를 제공할 수 있다.
적어도 2개의 데? 소스가 있을 수 있다. 각 데이터 소스에는 2개의 잠재적인 상태가 있을 수 있다. 각 잠재적인 상태는 공개키와 연관되거나 공개키로 표시될 수 있다. 따라서, 리딤 스크립트 내에 제공된 공개키들의 리스트는 데이터 소스(들)이 채택하거나 입력할 수 있는 가능한 모든 상태를 정의, 표현 또는 설명하는데 사용될 수 있다.
이 방법은 아래 단계를 포함한다:
상기 적어도 하나의 데이터 소스 각각에 대해:
복수의 공개키 내의 공개키를 데이터 소스의 잠재적인 상태와 연관시키는 단계;
데이터 소스의 모든 가능한 상태가 각각의 공개키에 의해 표현된다.
즉, 각 데이터 소스의 가능한 상태는 공개키가 해당 상태에 대한 (고유한(unique)) 식별자(identifier)로 사용될 수 있도록 공개키와 연관될 수 있다. 따라서 키들은 각 키와 데이터 소스의 잠재적인 상태 사이에서 매핑을 형성하도록 의도적으로 선택될 수 있다. 이는 키들이 데이터 소스의 잠재적인 상태의 표현으로서 기능하게 할 수 있다. 어떤 개인키가 잠금 해제 프로세스(process) 동안 서명하는데 사용되었는에 대한 분석 또는 결정은 데이터 소스의 상태를 결정할 수 있다.
적어도 하나의 데이터 소스는 센서를 포함할 수 있다. 추가적으로, 또는 대안적으로, 데이터 소스는 컴퓨팅 자원 또는 에이전트에 입력 신호를 생성 및/또는 송신할 수 있는 소스를 포함할 수 있다.
각각의 공개키는 적어도 하나의 데이터 소스의 잠재적인 상태를 나타내는 불 방식의(Boolean) 값을 나타낼 수 있다. 예를 들어, 신호가 수신되었거나, 수신되지 않았는지, 또는 20 ℃이상의 온도입니까?
본 발명은 또한 대응하는 시스템을 제공한다. 상기 시스템은 상술한 방법의 임의의 실시예를 구현하도록 구성될 수 있다.
본 발명은 다음을 포함하는 컴퓨터로 구현된 시스템을 제공할 수 있다:
상술한 임의의 방법의 단계(들)을 수행하도록 구성된 적어도 하나의 컴퓨터 기본의 리소스; 및
블록체인 또는 다른 유형의 전기적 대장 또는 비트코인 대장의 변형.
이는 분산 대장일 수 있다.
적어도 하나의 컴퓨터 기반 리소스는 구성될 수 있다:
블록체인 네트워크에 거래를 제출하고(이는 비트코인 네트워크일 수도 있고 그렇지 않을 수도 있다- 모든 유형의 분산 대장일 수 있다); 및/또는
거래를 생성하고; 및/또는
잠금 스크립트에 디지털로 서명하고; 및/또는
공개/개인 암화 키를 생성한다.
시스템은 결과가 프로세스 또는 장치의 실행 또는 동작을 제어 또는 영향을 주기위해 사용되도록 구성될 수 있다. 컴퓨터 기반 리소스는 "에이전트(agent)"라고 지칭할 수 있다.
상기 시스템은 적어도 하나의 컴퓨터 기반의 리소스에 입력을 제공하도록 배열/구성된 적어도 하나의 센서 또는 다른 신호 생성 컴포넌트(component)를 포함할 수 있다.
본 발명의 하나의 양태 또는 실시예와 관련하여 설명된 임의의 특징은 또한 하나 이상의 다른 양태/ 실시예를 실시하는데 사용될 수 있다. 상기 방법과 관련하여 설명된 모든 특징은 시스템에 적용될 수 있으며, 반대의 경우도 마찬가지이다.
본 발명의 이들 및 다른 양태는 본원에 기술된 실시예를 참조하여 명백하게 설명될 것이다. 본 발명의 실시예는 첨부된 도면을 참조하여 예로서만 설명될 것이다.
설계에 의한 본질적 보안(비트코인 프로토콜에는 신뢰되지 않은 당사자를 요구하지 않는다)을 제공할 수 있다.
분산되어 대규모 단일 장애 지점(single point of failure)을 피하고 공격에 취약하지 않을 수 있다.
비트코인 네트워크는 사용하기에 복잡하지 않아, 관리 및 유지가 쉬워 용이할 수 있다.
저비용(비트코인 프로토콜 하에서 보통 작은 거래 비용이 예상된다)일 수 있다.
글로벌이며 인터넷에 접속할 수 있는 사람에 의해 언제든지 사용될 수 있다.
투명성: 데이터가 블록체인에 쓰여지면 누구나 그것을 볼 수 있다.
불변성, 데이터가 블록체인에 쓰여지면 아무도 그것을 변경할 수 없다.
개인 정보(privacy)가 유지되며, 개인 식별 정보(personally identifying information)가 관련되지 않는다.
도 1은 본 발명의 실시예를 도시한다.
도 2는 복수의 독립적인 컴퓨팅 에이전트가 로직 게이트 거래에 입력을 제공하기 위해 외부 환경의 모니터링을 수행하는 본 발명의 예시적인 실시예를 도시한다.
도 3은 발명의 다른 실시예의 개관(overview)을 도시한다.
도 4는 본 발명의 일 실시예에 따라 구성된 예시적인 블록체인 거래를 도시하며, 거래 출력1은 거래 출력2가 컨트롤러에 다시 지불하는 NOR 게이트를 구현한다.
도 5는 본 발명의 추가 실시예의 개관(overview)를 도시한다.
도 6 내지 도 10은 기본키(base key)로부터 암호키를 생성하는 기술을 도시한다.
본 발명은 기능을 구현하기 위해 블록체인을 사용하기 위해 새롭고 유리한 해결책을 제공한다. 블록체인은 함수의 실행 및/또는 그것의 결과의 결과에 대한 기록을 제공하는데 사용된다. 함수는 입력 집합에 적용되고 출력 집합을 반환하는 서브루틴(subroutine) 또는 절차(procedure)(예로, 프로세스 또는 로직의 부분)일 수 있다. 하나의 가능한 실시예에서, 기능은 '오프 블록(off-lock)'으로 실행될 수 있는데, 즉 그 성능은 블록체인에 의존하지 않는다. 기능은 컴퓨터 기반 리소스에 의해 수행된다.
블록체인(예로, 비트코인) 거래는 전형적으로 이전 거래 출력을 새로운 거래 입력으로 참조하고 모든 입력 값을 새로운 출력으로 전용하는 (예로, 비트코인) 값의 전송이다. 거래는 암호화되지 않으므로, 수집된 모든 거래를 블록으로 찾아보고 볼 수 있다. 그러나 거래 출력이 제공된 정보에 조건부이거나 의존적인 함수로 동작하는 블록체인 거래를 구성할 수 있다는 것은 매우 유용할 것이다. 이것은 블록체인을 통해 정교한 수준의 행동을 가능하게 한다.
본 발명의 중요한 측면은 기능 입력(들)이 거래 출력의 리딤 스크립트(redeem script) 내에서 사용되는 공개키에 의해 표현되는 기능을 나타내는 블록체인 거래를 생성하는 방법을 포함하고(이에 한정되는 것은 아니며), 실제 값은 하나 이상의 공개키와 연관된 서명으로 표현된다.
본 발명은 블록체인(예로, 비트코인) 거래가 로직 게이트에 의해 제공되는 기능을 나타내기 위해 사용될 수 있다는 아래에 제공된 사용 사례(case)를 통해 설명될 것이다. 그 다음에 이러한 기능은 일부 기술 프로세스 또는 장치를 제어하도록 사용될 수 있다.
본 발명은 블록체인 상에 다수의 신규 특징을 제공하며,
에이전트가 블록체인으로부터 직접 제어되고 작동하기 위해 다른 네트워크의 접근을 필요로 하지 않는 센서 또는 다른 유형의 신호/입력 생성기에 대하여 에이전트를 생성하는 기능(ability);
여러 서명으로 보호된 거래에서 거래 서명 프로세스(transaction signing process)에 포함된 공개키를 결정할 수 있는 기능; 및
서명 키(signing keys) 내에 제한되고, 분리된 개별 범위의 페이로드(payload) 값을 내장(embed)하고, 리딤 스크립트 내의 행동(예로, 코드 실행 방법)을 결정하는데 사용될 수 있는 기능.
또한, 본 발명의 실시예는 A 및 B로부터의 입력값들이 서명에 사용된 키 내에 내장되거나 또는 표시되는 로직 게이트(예로, NOR 게이트)를 전달하기 위해 상기 요소들을 이용할 수 있다.
이익( Benefits )
제안된 발명은 다음과 같은 이점을 제공한다:
·설계에 의한 본질적 보안(비트코인 프로토콜에는 신뢰되지 않은 당사자를 요구하지 않는다);
·분산되어 대규모 단일 장애 지점(single point of failure)을 피하고 공격에 취약하지 않다;
·비트코인 네트워크는 사용하기에 복잡하지 않아, 관리 및 유지가 쉬워 용이하다.
·저비용(비트코인 프로토콜 하에서 보통 작은 거래 비용이 예상된다)
·글로벌이며 인터넷에 접속할 수 있는 사람에 의해 언제든지 사용될 수 있다;
·투명성: 데이터가 블록체인에 쓰여지면 누구나 그것을 볼 수 있다;
·불변성, 데이터가 블록체인에 쓰여지면 아무도 그것을 변경할 수 없다; 그리고
·개인 정보(privacy)가 유지되며, 개인 식별 정보(personally identifying information)가 관련되지 않는다.
본 발명이 동작하기 위해서, 비트코인 프로토콜 및 지갑(wallet)의 현존의 구성 및 동작을 준수해야 한다. 도 1은 표준(standard) 비트코인 거래(TX)가 본 발명의 실시예에 따라 어떻게 구성되는지 도시한다. (비트코인은 단지 예시를 위해 사용되며, 다른 대장 및 관련 프로토콜이 여전히 본 발명의 범위 내에 속하면서 사용될 수 있다).
에이전트 구성( Agent Configuration )
본 발명의 실시예는 도 2에 도시된 바와 같이 로직 게이트 거래에 입력을 제공하기 위해 외부 환경의 모니터링을 수행하도록 구성된 다수의 독립(컴퓨팅) 에이전트의 사용을 포함한다. 따라서 컴퓨팅 에이전트는 일부 상태를 모니터링하도록 설계된다. 이러한 목적을 위해 센서로부터 입력이 수신될 수 있다. 예를 들어, 에이전트는 "섭씨 영하의 온도입니까?" 또는 다른 유형의 검사 가능한 상태와 같이 상태를 모니터링할 수 있다. 따라서 에이전트는 관찰된 상태의 상태를 모니터링하도록 구성될 수 있다.
에이전트는 제어 또는 이하에서 "컨트롤러"라고 지칭되는 마스터 에이전트와 통신한다. 컨트롤러는 블록체인 프로토콜로 작동하도록 구성된다.
하나 이상의 실시예에서, 하위 에이전트(예를 들어, A 및 B)는 컨트롤러로부터 유도된 키를 포함할 수 있다. 그러나 에이전트 A와 에이전트 B는 자체 생성(self-generated) 키를 가지고, 컨트롤러로부터 이들을 유도할 수 없다는 점에 유의해야 한다. 이는 컨트롤러가 키 상에 사용할 수 있는 기능을 제한한다.
하나 이상의 실시예에서, 모니터되는 각 상태는 그들 자신의 키로 설정된 개별의 모니터링 에이전트를 갖는다. 이 키로부터, 그들은 그들의 모니터링 상태(예로, 각 가능한 상태)로부터 출력을 위한 개별의 키를 유도한다. 이러한 값들은 모니터링 시점에서 수행된 기본키로부터 결정적으로 유도 가능하거나 또는 에이전트가 값들을 기유도(pre-derive)할 수 있다(예로, 참/거짓 센서가 단순하게 미리 정의하는 것이 더욱 효과적일 수 있다). 키는 아래 "공유된 비밀을 사용하여 키를 생성하기"(Creating a Key Using a shared Secret) 섹션에서 설명한 기술을 사용하여 기본키로부터 유도될 수 있다.
에이전트 행동( 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)가 각 가능한 값 또는 상태를 나타내는데 사용되므로, 리딤 스크립트는 잠금 해제 스크립트에 서명하는데 사용된 키를 기반으로 값을 결정할 수 있다. 그러나 리딤 스크립트 내에 제공된 로직(logic)은 이러한 분석을 수행하도록 구성되고, 상기 방법은 무한 범위의 가능한 값들을 지원하지 않는다.
이 방법은 에이전트에 의해 제공된 서명을 해당 에이전트의 가능한 유도 공개키(derived public key)들에 대하여 평가함으로써 수행한다. 따라서 리딤 스크립트가 컨트롤러에 의해 처음으로 작성될 때, 가능한 입력 값(상태)에 대한 공개키가 있는 것과 이것들이 리딤 스크립트의 페이로드(payload) 내에 포함되어 있는 것을 결정했을 수 있다.
스크립트가 이러한 데이터를 추출하기 위해, 어느 공개키가 거래를 서명하기 위해 사용되었는지 결정하고 스크립트가 이 공개키를 나타내는 값을 암시적으로 이해하도록 코딩되어 있으므로, 스크립트의 경계(confines) 내에서 활용할 목적으로 효과적으로 해당 값을 추출했다.
알려진 블록체인 표준에서 내장된 OP_CHECKMULTISIG 거래 함수는 잠금 해제 스크립트를 통해 충분한 서명이 수집되었는지를 결정하기 위해 서명 평가를 허용한다. 그러나 이것은 어떤 것이 사용되었는지에 대한 명시적인 결정은 허용하지 않는다. 따라서, 본 발명은 Tx를 사용하여 특정 키들에 대해 명시적으로 매치하여 사용된 것을 결정하는 기술을 나타내고, 거래를 통해 구현되는 매우 복잡한 것을 허용하기 때문에 종래 기술 대비 개선점을 제공한다. 다시 말해, 복수의 키 중 어느 서브셋(subset)이 서명 프로세스에서 사용되었는지를 결정함으로써, 블록체인을 통해 보다 정교한 행동을 생성하는 것이 가능하다.
예를 들어, 에스크로(escrow) 기능에서는 복수의 에스크로 에이전트를 사용한 에스크로를 효과적으로 만들 수 있지만 구매자(buyer)에 판매자(seller)를 더한 서명, 또는 구매자에 에스크로 에이전트 중 하나를 더한 또는 판매자에 에스크로 에이전트 중 하나를 더한 서명의 규정을 요구하는 스크립트 규칙(rule)을 정의할 수 있다. 표준 구조는 에스크로 에이전트 모두가 거래에 서명하게 하기 때문에 알려진 표준 비트코인 프로토콜(standard Bitcoin protocol)에서 이는 가능하지 않다.
리딤 스크립트 의사 코드( Redeem Script Pseudo Code )
본 발명의 일 실시예에 따르면, 리딤 스크립트 내의 로직은 아래와 같이 구성될 수 있다:
Figure 112019015080299-pct00001
거래 예( Example Transaction )
거래 예에서, 거래 출력(TxO)1은 거래 출력2가 컨트롤러에서 다시 지불하는 NOR 게이트를 구현한다. 거래는 도 4에서 도시된다.
리딤 스크립트( Redeem Script )
전체 리딤 스크립트는 아래에 도시된다. 그런 다음 이는 논리 구성요소로 나뉜다.
Figure 112019015080299-pct00002
박스 내의 명령 코드(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>
이 코드 블록은 다음 사항을 확인한다:
·A 공개키들 중 하나 또는 단지 하나가 거래를 서명하는데 사용된다.
RS Block 5 OP_DUP
OP_TOALTSTACK
OP_SWAP
OP_DUP
OP_TOALTSTACK
OP_NUMNOTEQUAL
OP_VERIFY<RS Block 6>
이 코드 블록은 다음 사항을 확인한다:
·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)를 취할 수 있다:
·<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
·<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
잠금 스크립트( Locking Script )
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script-Hash) 모델이다.
Figure 112019015080299-pct00003
잠금 해제 시크립트 ( Unlocking Script )
필요한 잠금 해제 스크립트는 다음과 같다:
Figure 112019015080299-pct00004
여기서(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)를 취할 수 있다:
· <B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
· <A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
NAND 게이트( NAND Gate )
A,B,X
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)를 취할 수 있다:
·<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
·<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)를 취할 수 있다:
·<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
·<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)를 취할 수 있다:
·<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
·<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)를 취할 수 있다:
·<B-False-Result>가 참이거나, <B-True-Result>가 참일 수 있으나, 둘 다 같은 값을 가질 수 없다;
·<A-False-Result>가 참이거나, <A-True-Result>가 참이지만, 둘 다 같은 값을 가질 수 없다.
NOT 게이트( NOT Gate )
이 게이트의 구현은 단일 입력만 있기 때문에 조금 더 복잡하다.
A X
0 1
1 0
결과적으로, 잠금 해제 스크립트(unlocking Script)는 다음과 같이 변경된다:
Figure 112019015080299-pct00005
단일 입력의 결과로 다음 블록 변경이 발생한다:
이름( Name ) 스크립트( Script ) 블록 목적( Block Purpose )
RS Block 1
Figure 112019015080299-pct00006
이것은 컨트롤러가 거래를 승인한 것을 확인하기 전에, 서명이 있는 데이터를 대체 스택(alternative stack)으로 민다(push).
RS Block 2
Figure 112019015080299-pct00007
이 블록은 이 거래를 서명하는데 사용된 A 공개키를 평가한다. 스크립트는 (지금 시점에서) 어떤 서명이 사용되었는지 여부를 신경쓰지 않는다.
RS Block 3
Figure 112019015080299-pct00008
전체 블록 제거된다(Entire block removed)
RS Block 4
Figure 112019015080299-pct00009
이 코드 블록은 다음 사항을 확인한다:
· A 공개키들 중 하나 또는 단지 하나가 거래를 서명하는데 사용된다.
RS Block 5
Figure 112019015080299-pct00010
전체 블록 제거된다(Entire block removed)
RS Block 6
Figure 112019015080299-pct00011
이 블록은 대체 스택에서 유효화된 키 정보를 가져오고 신호들을 정렬한다.
RS Block 7(NOT)
Figure 112019015080299-pct00012
이 블록은 스크립트 내에서 NOT 논리를 구현한다.
이하에서 설명되는 바와 같이, 다수의 실시예가 제공될 수 있다.
변형1:참 &거짓 신호 생성 ( Variant 1: Generating a TRUE & FALSE SIGNAL )
상기 설명은 논리 게이트를 나타내는 비서명된 거래 출력(UTXO)이 게이트 조건이 참(TRUE)으로 평가되는 경우에만 소비되도록 허용한다. 그러나 여러 상황에서 회로의 실제 출력에 관계없이 출력을(다른 수신자 주소임에도 불구하고) 소비하는 것이 유리하다.
이것은 실시예를 사용하여 가능하다. 효과적으로, 도 1에 도시된 실시예는 도 3에 도시된 바와 같이 수정된다. 이러한 시나리오에서, 리딤 스크립트에 제공된 여분의 매개변수가 있고, 이는 퍼즐이거나 또는 키에 내장된 값이거나 명시적으로 제공된 값일 수 있다. 이것은 UTXO를 사용하기 위해 컨트롤러가 원하는 결과를 정의한다.
그러므로 간단한 로직 게이트의 경우, 컨트롤러는 동일한 서명을 사용하여 거래를 두 번 소비하려고 시도한다; 하나는 예상되는 참 결과를 가지며, 한번은 예상되는 거짓 결과를 가진다.
리딤 스크립트는 게이트 계산(calculation)의 ?에서 게이트 출력을 컨트롤러가 요청한 출력에 대해 동일성 검사를 적용하도록 다음과 같이 확장된다:
만약 내장된 게이트 로직이 거짓(FALSE)을 반환하고, 원하는 결과가 거짓(FALSE)인 경우, 리딤 스크립트는 참(TRUE)으로 평가되고 UTXO가 소비될 수 있다;
만약 내장된 게이트 로직이 참을 반환하고, 원하는 결과가 참인 경우, 리딤 스크립트는 참을 평가하고 UTXO가 소비될 수 있다;
만약 내장된 게이트 로직이 참을 반환하더라도 원하는 결과가 거짓인 경우, 리딤 스크립트는 거짓을 평가되고 UTXO가 소비될 수 없다; 및
만약 내장된 게이트 로직이 거짓을 반환하더라도 원하는 결과가 참인 경우, 리딤 스크립트는 거짓을 평가하고 UTXO가 소비될 수 없다.
변형 스크립트들( Variant Scripts )
전체 리딤 스크립트는 아래와 같다. 이것은 리더의 편의를 위해 논리적 구성 요소로 분류된다. 기본 실시예에서의 추가 사항은
Figure 112019015080299-pct00013
텍스트로 도시된다(삭제는 중간을 지나는 선(
Figure 112019015080299-pct00014
)으로 표시됨)
Figure 112019015080299-pct00015
박스 내의 명령 코드는 데이터를 유효화할 수 있는 형식으로 가져오도록 서명 조작 논리 위의 NOR 게이트 페이로드(payload) 코드를 보여준다.
잠금 스크립트( Locking Script )
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script Hash) 모델이다:
Figure 112019015080299-pct00016
잠금 해제 스크립트( Unlocking Script )
이러한 로직 게이트의 패턴에 대한 잠금 해제 스크립트는 다음과 같다:
Figure 112019015080299-pct00017
여기서(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은 참 또는 거짓 조건이 스크립트로부터 보내졌는지 여부에 대한 공개 지식(리딤 스크립트로부터)이 있다는 작은 단점을 가진다. 컨트롤러로부터 서명 안에 원하는 신호를 내장하여 이러한 이슈(issue)를 피할 수 있다. 변형 2의 실시예에서, 컨트롤러는 도 5에서 도시된 바와 같이 그것의 주요 키로부터 유도된 2개의 공개키를 갖는다.
변형 스크립트( Variant Scripts )
전체 리딤 스크립트는 아래와 같다. 이것은 리더의 편의를 위해 논리적 구성 요소로 분류된다. 기본 실시예에서의 추가 사항은
Figure 112019015080299-pct00018
텍스트로 도시된다(삭제는 중간을 지나는 선(
Figure 112019015080299-pct00019
)으로 표시됨)
Figure 112019015080299-pct00020
박스 내의 명령 코드는 데이터를 유효화할 수 있는 형식으로 가져오도록 서명 조작 논리 위의 NOR 게이트 페이로드 코드를 보여준다.
잠금 스크립트( Locking Script 0
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script Hash) 모델이다:
Figure 112019015080299-pct00021
잠금 해제 스크립트( Unlocking Script )
이러한 로직 게이트의 패턴에 대한 잠금 해제 스크립트는 다음과 같다:
Figure 112019015080299-pct00022
여기서(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 112019015080299-pct00023
박스 내의 명령 코드는 데이터를 유효화할 수 있는 형식으로 가져오도록 서명 조작 논리 위의 NOR 게이트 페이로드 코드를 보여준다.
모든 스택은 위에서 아래로 순서대로 나타난다.
잠금 스크립트( Locking Script )
잠금 스크립트는 표준 페이 투 스크립트 해시(Pay-to-Script Hash) 모델이다:
Figure 112019015080299-pct00024
잠금 해제 시크립트 ( Unlocking Script )
로직 게이트의 패턴에 대한 잠금 해제 스크립트는 다음과 같다(서명 블록의 다른 순서에 유의하시오):
Figure 112019015080299-pct00025
여기서(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는 서버일 수 있다. 서버는 디지털 지갑(digital wallet) 제공자의 서버일 수 있다.
제1 노드3는 제1 노드 마스터 개인키(V1C) 및 제1 노드 마스터 공개키(P1C)를 갖는 제1 비대칭 암호화 쌍(asymmetric cryptography pair)과 관련된다. 제2 노드7는 제2 노드 마스터 개인키(V1S) 및 제2 노드 마스터 공개키(P1S)를 갖는 제2 비대칭 암호화 쌍과 관련된다. 다른 말로, 제1 및 제2 노드는 각각 공개-개인키 쌍을 소요한다.
각각의 제1 및 제2 노드3,7에 대한 제1 및 제2 비대칭 암호화 상은 지급에 대한 등록과 같은 프로세스 동안 생성될 수 있다. 각 노드에 대한 공개키는 예컨대 통신 네트워크5를 통해 공개적으로 공유될 수 있다.
제1 노드3 및 제2 노드 7 모두에서 공통 비밀(SC)을 결정하기 위해 노드3,7는 통신 네트워크5를 통해 개인키를 통신하지 않고 각각의 방법300,400의 단계를 수행한다.
제1 노드3에 의해 수행되는 방법 300은 적어도 제1 노드 마스터 개인키(V1C) 및 생성자 값(Generator Value, 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)를 기초로한 공통 비밀(SC)을 결정하는 단계480을 포함한다.
통신 네트워크5는 근거리 통신망(local area network), 광역 네트워크(wide area network), 셀룰러 네트워크(cellular networks), 무선 통신 네트워크(radio communication network), 인터넷 등을 포함할 수 있다. 데이터가 전선, 광섬유 또는 무선과 같은 통신 매체를 통해 전송될 수 있는 이러한 네트워크들은 도청자(eavesdropper)11와 같은 도청에 취약할 수 있다. 방법 300,400은 제1 노드3 및 제2 노드7가 통신 네트워크5를 통해 공통 비밀을 전송하지 않고도 공통 비밀을 독립적으로 결정하도록 허용할 수 있다.
따라서 하나의 이점은 공통 비밀(CS)이 잠재적으로 비보안 통신 네트워크5를 통해 개인키를 전송할 필요없이 각 노드에 의해 안전하고 독립적으로 결정될 수 있다. 결국, 공통 비밀은 비밀 키(또는 비밀 키의 기초(basis))로서 사용될 수 있다.
방법 300, 400은 추가적인 단계를 포함할 수 있다. 방법 300은 제1 노드3에서 메시지M 및 제1 노드 제2 개인키(V2C)를 기초하여 서명 메시지(SM1)을 생성하는 단계를 포함할 수 있다. 방법 300은 통신 네트워크를 통해 제1 서명 메시지(SM1)를 제2 노드7로 보내는 단계를 더 포함한다. 결국, 제2 노드7는 제1 서명 메시지(SM1)를 수신하는 단계400를 수행할 수 있다. 방법 400은 또한 제1 서명 메시지(SM2)를 제1 노드3 제2 공개키(P2C)로 검증하는 단계와 제1 서명 메시지(SM1)의 검증 결과를 기초하여 제1 노드3를 인증하는 단계460를 포함한다. 유리하게는, 이는 제2 노드7가 제1 노드3 인 의도된 제1 노드(제1 서명 메시지가 생성되는)임을 인증하게 한다. 이것은 제1 노드3만이 제1 노드 마스터 개인키(V1C)에 액세스하고, 그에 따라 제1 노드3만이 제1 서명 메시지(SM1)를 생성하기 위한 제1 노드 제2 개인키(V2C)를 결정할 수 있다는 가정에 기초한다. 유사하게, 제2 서명 메시지(SM2)는 제2 노드7에서 생성될 수 있고, 제1 노드3로 보내어 개인대개인(peer-to-peer) 시나리오와 같이 제1 노드3가 제2 노드7를 인증할 수 있는 것으로 이해되어야 한다.
제1 노드와 제2 노드 사이에서 메시지(M)를 공유하는 것은 다양한 방식으로 수행될 수 있다. 일예에서, 메시지는 통신 네트워크5를 통해 제2 노드7로 전송될 수 있는 제1 노드에서 생성될 수 있다. 대안적으로, 메시지는 제2 노드7에서 생성된 다음, 통신 네트워크5를 통해 제2 노드7로 전송될 수 있다. 일부 예에서, 메시지(M)는 공개될 수 있으며, 따라서 비보안 네트워크5를 통해 전송될 수 있다. 하나 이상의 메시지(M)는 데이터 저장소13,17,19에 저장될 수 있다. 당업자는 메시지의 공유가 다양한 방식으로 달성될 수 있음을 인식해야 할 것이다.
유리하게는, 공통 비밀(CS)의 재생성을 허용하는 기록은 그 자체가 개인적으로 저장되거나 안전하게 전송되어야 하는 기록 없이 유지될 수 있다.
등록 방법 100, 200( Method of registration )
방법 100이 제1 노드3에 의해 수행되고, 방법 200이 제2 노드7에 의해 수행되는 등록 방법 100,200의 일예가 설명된다. 이는 각각의 제1 및 제2 노드 3,7에 대한 제1 및 제2 비대칭 암호화 쌍을 설정하는 것을 포함한다. 비대칭 암호화 쌍은 공개키 암호화에서 사용되는 것과 같은 관련된 개인 및 공개키가 포함된다. 이러한 예에서, 비대칭 암호화 쌍은 타원 곡선 암호(Elliptic Curve Cryptography, ECC) 및 타원 곡선 연산의 속성을 사용하여 생성된다.
방법 100, 200에서, 이것은 제1 노드 및 제2 노드들이 공통 ECC 시스템 상에서 그리고 기본점(base point, G)를 사용하여 동의하는 단계(것)110, 210를(을) 포함한다. (참고: 기본점은 공통 생성자라고 할 수 있지만, '기본점'이라는 용어는 생성자 값GV와의 혼동을 피하기 위해 사용된다). 일예에서, 공통 ECC 시스템은 비트코인에 의해 사용되는 ECC 시스템인 secp256k1에 기초할 수 있다. 기본점(G)은 선택되거나, 임의로 생성되거나, 할당될 수 있다.
이제, 제1 노드3로 돌아가면, 방법 100은 공통 ECC 시스템 및 기본점(G) 상에 정산하는 단계(settling) 110를 포함한다. 이는 제2 노드7 또는 제3 노드9로부터 공통 ECC 시스템 및 기본점을 수신하는 것을 포함할 수 있다. 대안적으로, 사용자 인터페이스15는 제1 노드3와 연관될 수 있으며, 이에 의해 사용자는 공통 ECC 시스템 및/또는 기본점(G)을 선택적으로 제공할 수 있다. 또 다른 대안에서, 공통 ECC 시스템 및/또는 기본점(G) 중 하나 또는 둘 다는 제1 노드3에 의해 랜덤하게 선택될 수 있다. 제1 노드3 는 통신 네트워크5를 통해 제2 노드7에 대한 기본점(G)을 갖는 공통 ECC 시스템을 사용하는 것을 나타내는 통지를 전송할 수 있다. 결국, 제2 노드7는 공통 ECC 시스템 및 기본점(G)을 사용하는 것에 대한 확인 응답(notice indicative)을 나타내는 통지를 전송함으로써 정산할 수 있다.
방법 100은 또한 제1 노드 마스터 개인키(V1C) 및 제1 노드 마스터 공개키(P1C)를 포함하는 제1 비대칭 암호화 쌍을 생성하는 제1 노드3를 포함한다. 이는 공통 ECC 시스템에 지정된 허용 범위 내의 임의의 정수에 적어도 부분적으로 기초하여 제1 마스터 개인키(V1C)를 생성하는 단계(것)를 포함한다. 이것은 또한 식에 따라 제1 노드 마스터 개인키(P1C) 및 기본점(G)의 타원 곡선 포인트 곱(elliptic curve point multiplication)에 기초하여 제1 노드 마스터 공개키(P1C)를 결정하는 단계(것)를 포함한다:
P1C = V1C x G (식 1)
따라서 제1 비대칭 암호화 쌍에는 다음이 포함된다:
V1C : 제1 노드에 의해 비밀로 유지되는 제1 노드 마스터 개인키
P1C: 공개적으로 알려진 제1 노드 마스터 공개키
제1 노드3는 제1 노드 마스터 개인키(V1C) 및 제1 노드 마스터 공개키(P1C)를 제1 노드3와 연관된 제1 데이터 저장소13에 저장할 수 있다. 보안을 위해, 제1 노드 마스터 개인키(V1C)는 제1 데이터 저장소13의 보안 부분에 저장되어 키가 비밀(private)로 유지되도록 할 수 있다.
방법100은 도 6에서 도시된 바와 같이, 통신 네트워크5를 통해 제1 노드 마스터 공개키(P1C)를 제2 노드7로 전송하는 단계130를 더 포함한다. 제2 노드7는 제1 노드 마스터 공개키(P1C)를 수신하면 220 제1 노드 마스터 공개키(P1C)를 제2 노드7와 연관된 제2 데이터 저장소17에 저장한다230.
제1 노드3와 유사하게, 제2 노드7의 방법200은 제2 노드 마스터 개인키(V1S) 및 제2 노드 마스터 공개키(P1S)를 포함하는 제2 비대칭 암호화 쌍을 생성하는 단계240를 포함한다. 제2 노드 마스터 개인키(V1S)는 또한 허용 범위 내의 랜덤 정수이다. 결국, 제2 노드 마스터 공개키(P1S)는 아래의 식으로 결정된다:
P1S = V1S x G (식2)
따라서 제2 비대칭 암호화 쌍에는 다음이 포함된다:
V1S : 제2 노드에 의해 비밀로 유지되는 제2 노드 마스터 개인키
P1S: 공개적으로 알려진 제2 노드 마스터 공개키
제2 노드7는 제2 비대칭 암호화 쌍을 제2 데이터 저장소17에 저장할 수 있다. 방법 200은 제2 노드 마스터 공개키(P1S)를 제1 노드3로 전송하는 단계250를 더 포함한다. 결국, 제1 노드3는 제2 노드 마스터 공개키(P1S)를 수신하고140 저장한다150.
일부 대안에서, 각각의 공개 마스터 키는(신뢰할 수 있는 제3 자와 같은) 제3 노드9와 연관된 제3 데이터 저장소19에서 수신되고 저장될 수 있음을 이해해야 한다. 이는 인증 기관(certification authority)과 같은 공개 디렉터리(directory) 역할을 하는 제3 자를 포함할 수 있다. 따라서 일부 예에서, 제1 노드 마스터 공개키(P1C)는 공통 비밀(CS)이 요구되는(그리고 반대의 경우) 경우에만 제2 노드7에 의해 요청되고 수신될 수 있다.
등록 단계는 초기 설정(setup)으로 한번만 수행하면 된다.
세션 개시( initiation ) 및 제1 노드3에 의한 공통 비밀 결정( Session initiation and determining the common secret by the first node 3)
이하에서 공통 비밀(CS)을 결정하는 예를 설명한다. 공통 비밀(CS)은 제1 노드3와 제2 노드7 사이의 특정 세션, 시간, 거래 또는 다른 목적을 위해 사용될 수 있으며, 같은 공통 비밀(CS)을 사용하는 것이 바람직하지 않거나 안전하지 않을 수 있다. 따라서 공통 비밀(CS) 은 상이한 세션들, 시간, 거래들 등 사이에서 변경될 수 있다.
다음은 전술한 보안 전송 기술을 설명하기 위해 제공된다.
메시지(M) 생성( Generating a message (M)) 310
이러한 예에서, 제1 노드3에 의해 수행되는 방법 300은 메시지(M)를 생성하는 단계310를 포함한다. 메시지(M)는 랜덤, 의사 랜덤(pseudo random) 또는 사용자 정의일 수 있다. 하나의 예에서, 메시지(M)는 유닉스(Unix) 시간 및 논스(nonce)(및 임의의 값)에 기초한다. 예를 들어, 메시지(M)는 다음과 같이 제공될 수 있다:
Message (M) = UnixTime + nonce (식 3)
일부 예에서, 메시지(M)는 임의적이다. 그러나 메시지(M)는 일부 어플리케이션에서 유용할 수 있는 선택 값(유닉스 시간 등과 같이)을 가질 수 있음을 이해해야 한다.
방법 300은 메시지(M)를 통신 네트워크3를 통해 제2 노드7로 전송하는 단계315를 포함한다. 메시지(M)는 개인키 상의 정보를 포함하지 않으므로 비보안 네트워크를 통해 메시지가(M)가 전송될 수 있다.
생성자 값( GV ) 결정 320( Determining a Generator Value ( GV ))
방법 300은 메시지(M)에 기초한 생성자 값(GV)를 결정하는 단계320를 더 포함한다. 이 예에서, 이는 메시지의 암호화 해시를 결정하는 단계(것)를 포함한다. 암호화 해시 알고리즘의 예에는 256 비트 생성자 값(GV)을 생성하는 SHA-256을 포함한다. 즉:
GV = SHA-256(M) (식 4)
다른 해시 알고리즘들이 사용될 수 있다는 것을 이해해야 한다. 이는 안전한 해시 알고리즘(Secure Hash Algorithm, SHA) 군(family)에서 다른 알고리즘들을 포함할 수 있다. 일부 특정 예는 SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256를 포함하는 SHA-3 하위 집합의 예를 포함한다. 다른 해시 알고리즘은 RACE Integrity Primitives Evaluation Message Digest(RIPEMD) 군(family)의 알고리즘을 포함할 수 있다. 특정 예는 RIPEMD-160을 포함할 수 있다. 다른 해시 함수에는 Z
Figure 112019015080299-pct00026
mor-Tillich 해시 함수 및 배낭 기반 해시 함수(knapsack-based hash functions)를 기반으로 하는 군(family)를 포함할 수 있다.
제1 노드 제2 개인키 결정330 ( Determining a first node second private key )
방법 300은 제2 노드 마스터 개인키(V1C) 및 생성자 값(GV)에 기초한 제1 노드 제2 개인키(V2C)를 결정하는 단계330를 포함한다. 이것은 다음 수식에 따라 제1 노드 마스터 개인키(V1C) 및 생성자 값(GV)의 스칼라 추가(scalar addition)를 기반으로 할 수 있다:
V2C = V1C + GV (식 5)
따라서 제1 노드 제2 개인키(V2C)는 랜덤값이 아니라, 대신에 제1 노드 마스터 개인키로부터 결정론적으로 도출된다. 암호화 쌍 내의 대응하는 공개키, 즉 제1 노드 제2 공개키(P2C)는 다음의 관계를 갖는다:
P2C = V2C x G (식 6)
식5 에서 식6으로의 V2C의 치환은 다음을 제공한다:
P2C = (V1C + GV) x G (식 7)
여기서, '+' 연산자는 타원 곡선 포인트 추가(elliptic curve point addition)를 나타낸다. 타원 곡선 암호화 대수학이 분산적이라는 것에 주목하면, 식 7은 다음과 같이 표현될 수 있다:
P2C = V1C x G + GV x G (식 8)
마지막으로, 식 1을 식 7에 대입하여 다음을 제공한다:
P2C = P1C + GV x G (식 9.1)
P2C = P1C + SHA-256(M) x G (식 9.2)
따라서 대응하는 제1 노드 제2 공개키(P2C)는 제1 노드 마스터 공개키(P1C) 및 메시지(M)지식이 주어지면 추론될 수 있다. 제2 노드7는 방법 400과 관련하여 이하에서 더 상세히 설명되는 바와 같이 제1 노드 제2 공개키(P2C)를 독립적으로 결정하는 지식을 가질 수 있다.
메시지 및 제1 노드 제2 개인키에 기초하여 제1 서명 메시지(SM1)를 생성350 (Generate a first signed message (SM1) based on the message and the first node second private key)
방법 300은 메시지(M) 및 결정된 제1 노드 제2 개인키(V2C)에 기초하여 제1 서명 메시지(SM1)를 생성하는 단계 350를 더 포함한다. 서명 메시지를 생성하는 단계는 디지털 서명 알고리즘을 적용하여 메시지(M)에 디지털 서명을 적용하는 단계를 포함한다. 일 예에서, 이는 제1 서명 메시지(SM1)을 획득하기 위해 제1 노드 제2 개인키(V2C)를 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA) 내의 메시지에 적용하는 단계를 포함한다. ECDSA의 예는 secp256k1, secp256r1, secp384r1, se3cp521r1이 있는 ECC 시스템 기반의 것들을 포함한다.
제1 서명 메시지(SM1)는 제2 노드7에서 대응하는 제1 노드 제2 공개키(P2C)로 검증될 수 있다. 제1 서명 메시지(SM1)의 이러한 검증은 제2 노드7에 의해 사용되어 제1 노드3를 인증할 수 있으며, 이는 이하의 방법 400에서 논의될 것이다.
제2 노드 제2 공개키 결정370'(Determine a second node second public key )
제1 노드3는 제2 노드 제2 공개키(P2S)를 결정할 수 있다 370. 전술한 바와 같이, 제2 노드 제2 공개키(P2S)는 적어도 제2 노드 마스터 공개키(P1S) 및 생성자값(GV)에 기초할 수 있다. 이러한 예에서, 공개키는 기본점(G)과의 타원 곡선 포인트 곱을 갖는 개인키로서 결정되므로 370', 제2 노드 제2 공개키(P2S)는 식 6과 유사한 방식으로 아래와 같이 표현될 수 있다:
P2S = V2S x G (식 10.1)
P2S = P1S + GV x G (식 10.2)
식 10.2에 대한 수학적 증명은 제1 노드 제2 공개키(P2C)에 대해 식 9.1을 유도하기 위해 상기 설명된 것과 동일하다. 제1 노드3는 제2 노드7와 독립적으로 제2 노드 제2 공개키를 결정할 수 있다는 것 370을 알아야 한다.
제1 노드3에서 공통 비밀 결정 380( Determine the common secret 380 at the first node 3)
제1 노드3는 결정된 제1 노드 제2 개인키(V2C) 및 결정된 제2 노드 제2 공개키(P2S)에 기초하여 공통 비밀(Cs)을 결정할 수 있다380. 공통 비밀(CS)은 아래의 식에 의해 제1 노드3에 의해 결정될 수 있다:
S = V2C x P2S (식 11)
제2 노드7에서 수행되는 방법400 ( Method performed at the second node 7)
제2 노드7에서 수행되는 대응하는 방법400이 이하 기술될 것이다. 이들 단계 중 일부는 제1 노드3에 의해 수행된 전술한 단계들과 유사하다는 것을 이해해야 한다.
방법 400은 제1 노드3로부터 통신 네트워크5를 통해 메시지(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와 유사한 방식으로 아래와 같이 표현될 수 있다:
P2C = V2C x G (식 12.1)
P2C = P1C + GV x G (식 12.2)
식 12.1과 12.2에 대한 수학적 증명은 식 10.1과 10.2에 대해 위에서 논의된 방식과 동일하다.
제1 노드3를 인증하는 제2 노드7 ( The second node 7 authenticating the first node 3)
방법 400은 주장된 제1 노드3가 제1 노드3임을 인증하기 위해 제2 노드7에 의해 수행되는 단계들을 포함할 수 있다. 전술한 바와 같이, 이는 제1 노드3로부터 제1 서명 메시지(SM1)를 수신하는 단계440를 포함한다. 제2 노드7는 단계 430에서 결정된 제1 노드 제2 공개키(P2C)로 제1 서명 메시지(SM1) 상의 서명을 검증할 수 있다450.
디지털 서명을 검증하는 것은 전술한 바와 같이 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)에 따라 행해질 수 있다. 중요하게, 제1 노드 제2 공개키(P2C)로 서명된 제1 서명 메시지(SM1)는 V2C와 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 ( The second node 7 determining the common secret)
방법 400은 제2 노드7가 제2 노드 마스터 개인키(V1S) 및 생성자 값(GV)에 기초하여 제2 노드 제2 개인키(V2S)를 결정하는 단계470를 더 포함할 수 있다. 제1 노드3에 의해 수행되는 단계330와 유사하게, 제2 노드 제2 개인키(V2S)는 다음의 식에 따라 제2 노드 마스터 개인키(V1S) 및 생성자 값(GV)의 스칼라 추가에 기초될 수 있다:
V2S = V1S + GV (식 13.1)
V2S = V1S + SHA-256(M) (식 13.2)
그 다음, 제2 노드7는 제1 노드3와 독립적으로, 다음의 식에 기초하여 제2 노드 제2 개인키(V2S) 및 제1 노드 제2 공개키(P2C)에 기초한 공통 비밀(CS)을 결정한다480:
S = V2S x P2C (식 14)
제1 노드3 및 제2 노드7에 의해 결정된 공통 비밀( Cs )의 증명( Proof of the common secret ( CS ) determined by the first node 3 and second node 7)
제1 노드3에 의해 결정된 공통 비밀(CS)은 제2 노드7에서 결정된 공통 비밀(CS)과 동일하다. 식 11 및 식 14이 동일한 공통 비밀(CS)을 제공한다는 수학적 증명이 이제 설명될 것이다.
제1 노드3에 의해 결정된 공통 비밀(CS)로 돌아가면, 식 10.1 은 다음과 같이 식 11에 대입될 수 있다:
S = V2C x P2S (식 11)
S = V2C x (V2S x G)
S = (V2C x V2S) x G (식 15)
제2 노드7에 의해 결정된 공통 비밀(CS)로 돌아가면, 식 12.1은 다음과 같이 식 14로 대입될 수 있다:
S = V2S x P2C (식 14)
S = V2S x (V2C x G)
S = (V2S x V2C) x G (식 16)
ECC 대수는 교환 가능하기 때문에, 식 15와 식 16은 동일하므로 다음과 같다:
S = (V2C x V2S) x G = (V2S x V2C) x G (식 17)
공통 비밀( CS ) 및 비밀 키( The common secret ( CS ) and secret key )
공통 비밀(CS)은 이제 비밀 키로서 또는 제1 노드3 와 제2 노드7 사이의 보안 통신을 위한 대칭 키 알고리즘에서 비밀 키의 기초로서 사용될 수 있다.
공통 비밀(CS)는 타원 곡선 점(xS, yS)의 형태일 수 있다. 이것은 노드 3, 7에 의해 동의한 표준 공개 동작(standard publicly known operations)을 사용하여 표준 키 형식(standard key format)으로 변환될 수 있다. 예를 들어, xS값은 AES256 암호화의 키로 사용될 수 있는 256 비트 정수일 수 있다. 이러한 길이 키가 필요한 모든 어플리케이션에 대해 RIPEMD160을 사용하여 160비트 정수로 변환할 수도 있다.
공통 비밀(CS)은 필요에 따라 결정될 수 있다. 중요하게, 제1 노드 3는 메시지(M)에 기초하여 다시 결정될 수 있기 때문에 공통 비밀(CS)을 저장할 필요가 없다. 일부 예에서, 사용된 메시지(들)(M)는 마스터 개인키들을 요구하는 것과 동일한 보안 레벨 없이 데이터 저장소 13, 17, 19(또는 다른 데이터 저장소)에 저장될 수 있다. 일부 예에서, 메시지(M)는 공개적으로 이용 가능할 수 있다.
그러나 몇몇 어플리케이션에 따라, 공통 비밀(CS)이 제1 노드 마스터 개인키(V1C)만큼 안전하게 유지되면 공통 비밀(CS)은 제1 노드와 연관된 제1 데이터 저장소(X)에 저장될 수 있다.
바람직하게, 이 기술은 단일 마스터 키 암호화 쌍에 기초한 다수의 보안 비밀 키들에 대응할 수 있는 다수의 공통 비밀을 결정하는데 사용될 수 있다.
전술한 실시예들은 본 발명을 제한하기보다는 예시하고, 당업자는 첨부된 청구 범위에 의해 규정된 본 발명의 범위를 벗어나지 않고 다양한 대안적인 실시예를 설계할 수 있음을 알아야 한다. 청구 범위에서, 괄호 안의 임의의 참조 부호는 청구 범위를 제한하는 것으로 해석되어서는 안된다. """" "포함하는" 및 "포함한다" 이라는 단어 등은 청구 범위 또는 명세서 전체에 열거된 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서, "포함하다"는 "포함하거나 이루어지다"를 의미하고, "포함하는"은 "포함하거나 이루어진"을 의미한다. 구성 요소의 단일 참고는 해당 구성 요소의 복수 차고를 배제하지 않으며, 반대의 경우도 마찬가지이다. 본 발명은 몇몇 별개의 구성 요소를 포함하는 하드웨어에 의하여 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 장치 청구항에서, 이들 수단 중 몇몇은 하나의 동일한 하드웨어 항목에 의해 구현될 수 있다. 특정 측정 값이 서로 다른 종속항에 인용되어 있다는 단순한 사실만으로 이 측정값의 조합을 활용할 수 없다는 것을 의미하지 않는다.

Claims (17)

  1. 컴퓨터로 구현된 제어 방법에 관한 것으로,
    상기 방법은 처리 자원(processing resource)에 의해 실행되고,
    상기 방법은, 출력에 대한 리딤 스크립트를 포함하는 블록체인 거래를 제공하는 단계;를 포함하고,
    상기 리딤 스크립트는,
    i) 복수의 공개키를 지정하고, 각각은 대응하는 개인키와 연관되고, 상기 각 공개키는 적어도 하나의 데이터 소스의 잠재적인 상태와 고유하게 연관되어 있고; 그리고
    ii) 상기 복수의 관련된 개인키(들) 중 어느 것이 잠금 해제 스크립트에 서명하는데 사용되는지에 기초하여 결과를 제공하도록 구성된 로직;을 포함하고,
    상기 개인키의 최소 수(minimum number)가 상기 출력을 소비하기 위해 추가의 블록 체인 거래의 잠금 해제 스크립트에 서명하기 위해 사용되어야 하는 컴퓨터로 구현된 제어 방법.
  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. 제12항에 있어서, 키 생성은 결정론적 키 생성 기술을 사용하여 수행되는 컴퓨터로 구현된 제어 방법.
  14. 제1항 내지 제3항 중 어느 한항에 있어서 단계를 수행하도록 구성된 적어도 하나의 컴퓨터 기반의 자원(resource); 및
    블록체인을 포함하는 컴퓨터로 구현된 시스템.
  15. 제14항에 있어서,
    상기 적어도 하나의 컴퓨터 기반의 자원은 블록 체인 네트워크에 거래를 제출하고, 거래를 생성하며, 잠금 스크립트에 디지털 서명하고, 및/또는 공개/개인 암호화 키를 생성하는 컴퓨터로 구현된 시스템.
  16. 제14항에 있어서, 상기 결과는 프로세스 또는 장치의 실행 또는 동작을 제어 또는 영향을 주기 위해 사용되는 컴퓨터로 구현된 시스템.
  17. 제14항에 있어서, 상기 적어도 하나의 컴퓨터 자원에 입력을 제공하도록 배치되고 구성된 적어도 하나의 센서 또는 신호 발생 구성 요소를 더 포함하는 컴퓨터로 구현된 시스템.
KR1020197004243A 2016-07-29 2017-07-21 블록체인 구현 방법 및 시스템 KR102464299B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GB1613177.3 2016-07-29
GB1613188.0 2016-07-29
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
GB1613148.4 2016-07-29
GBGB1613148.4A GB201613148D0 (en) 2016-07-29 2016-07-29 Computer-implemented method and system
PCT/IB2017/054422 WO2018020369A1 (en) 2016-07-29 2017-07-21 Blockchain-implemented method and system

Publications (2)

Publication Number Publication Date
KR20190033564A KR20190033564A (ko) 2019-03-29
KR102464299B1 true KR102464299B1 (ko) 2022-11-07

Family

ID=59485389

Family Applications (3)

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 블록체인 구현 방법 및 시스템
KR1020197005310A KR102472231B1 (ko) 2016-07-29 2017-07-21 블록체인 구현 방법 및 시스템

Family Applications Before (1)

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

Family Applications After (1)

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

Country Status (8)

Country Link
US (6) US20230155846A1 (ko)
EP (5) EP4235550A1 (ko)
JP (9) JP7203009B2 (ko)
KR (3) KR102467596B1 (ko)
CN (6) CN109478223B (ko)
SG (6) SG11201811009VA (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
CN109314636B (zh) 2016-02-23 2022-01-11 区块链控股有限公司 用于从区块链中安全提取数据的密码方法和系统
SG11201806711QA (en) 2016-02-23 2018-09-27 Nchain Holdings Ltd 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
BR112018016245A2 (pt) 2016-02-23 2018-12-18 Nchain Holdings Ltd método, dispositivo e sistema para determinação de um segredo comum para o intercâmbio seguro de informações e chaves criptoógráficas, sistema para comunicação e programa de computador
GB2561725A (en) 2016-02-23 2018-10-24 Nchain Holdings Ltd Blockchain-implemented method for control and distribution of digital content
GB2560274C (en) 2016-02-23 2022-06-15 Nchain Holdings Ltd Personal device security using elliptic curve cryptography for secret sharing
CN114723447A (zh) 2016-02-23 2022-07-08 区块链控股有限公司 区块链系统内的基于代理的图灵完备交易集成反馈
SG11201806709PA (en) 2016-02-23 2018-09-27 Nchain Holdings Ltd Universal tokenisation system for blockchain-based cryptocurrencies
EP3257191B1 (en) 2016-02-23 2018-04-11 Nchain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
MX2018010045A (es) 2016-02-23 2019-01-21 Nchain Holdings Ltd Intercambio basado en cadena de bloques con tokenizacion.
JP7128111B2 (ja) 2016-02-23 2022-08-30 エヌチェーン ホールディングス リミテッド ブロックチェーンを介して資産関連活動を制御するシステム及び方法
EP3420514B1 (en) 2016-02-23 2024-03-13 nChain Licensing AG A method and system for securing computer software using a distributed hash table and a blockchain
EP3420517B1 (en) 2016-02-23 2022-07-06 nChain Holdings Limited A method and system for the secure transfer of entities on a blockchain
CN116957790A (zh) 2016-02-23 2023-10-27 区块链控股有限公司 一种实现区块链上交换的通证化方法及系统
GB2561729A (en) 2016-02-23 2018-10-24 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
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
SG11201811009VA (en) 2016-07-29 2019-02-27 Nchain Holdings Ltd 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 Алексей Сергеевич СМИРНОВ Способ и устройство для осуществления безопасных транзакций в блокчейн инфраструктуре
CN112154626A (zh) 2018-05-14 2020-12-29 区块链控股有限公司 使用区块链执行原子交换的计算机实现的系统和方法
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 广州闪链区块链科技有限公司 一种基于区块链的黄金资产赎回方法、装置及存储介质
EP3607483B1 (en) 2019-03-15 2021-07-07 Advanced New Technologies Co., Ltd. Authentication based on a recoverd public key
CN110135964A (zh) * 2019-05-21 2019-08-16 山东浪潮通软信息科技有限公司 一种基于区块链技术的财务记账方法
CN110415092A (zh) * 2019-08-07 2019-11-05 北京艾摩瑞策科技有限公司 互联网租房关联数据的上链方法及其装置
CN111464636B (zh) * 2020-03-31 2021-12-07 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质
CN111464538B (zh) * 2020-03-31 2022-02-01 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质、资产交易后台
CN111510309B (zh) * 2020-04-08 2022-05-10 深圳大学 区块链数据传输方法、装置、设备及计算机可读存储介质
US20230214792A1 (en) * 2020-06-10 2023-07-06 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 (4)

* 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
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 (70)

* 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
KR101712850B1 (ko) * 2010-03-31 2017-03-07 이르데토 비.브이. 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법
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
US9710807B2 (en) * 2011-08-18 2017-07-18 Visa International Service Association Third-party value added wallet features and interfaces apparatuses, methods and systems
US20150220914A1 (en) 2011-08-18 2015-08-06 Visa International Service Association Electronic Wallet Management Apparatuses, Methods and Systems
US10825001B2 (en) * 2011-08-18 2020-11-03 Visa International Service Association Multi-directional wallet connector 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
WO2014201059A1 (en) * 2013-06-10 2014-12-18 Certimix, Llc Secure storing and offline transfering of digitally transferable assets
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
ZA201502969B (en) * 2014-05-09 2016-01-27 Univ Stellenbosch Enabling a user to transact using cryptocurrency
EP3140979A4 (en) 2014-05-09 2017-12-27 Veritaseum Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
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
WO2016054435A1 (en) * 2014-10-02 2016-04-07 ecoATM, Inc. 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
JP2018516026A (ja) 2015-03-20 2018-06-14 リヴェッツ・コーポレーションRivetz Corp. ブロックチェーンを使用したデバイス整合性の自動認証
JP6704985B2 (ja) * 2015-04-05 2020-06-03 デジタル・アセット・ホールディングス・エルエルシー デジタル資産仲介電子決済プラットフォーム
EP3317775B1 (en) * 2015-07-02 2022-02-16 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US10504179B1 (en) * 2015-12-08 2019-12-10 Fmr Llc Social aggregated fractional equity transaction partitioned acquisition apparatuses, methods and systems
US11436598B2 (en) * 2017-12-15 2022-09-06 Fmr Llc Social data tracking datastructures, apparatuses, methods and systems
US20170228731A1 (en) * 2016-02-09 2017-08-10 Fmr Llc Computationally Efficient Transfer Processing and Auditing 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
US11488147B2 (en) 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing 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
SG11201806404SA (en) * 2016-02-04 2018-08-30 Nasdaq Tech 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
SG11201806709PA (en) * 2016-02-23 2018-09-27 Nchain Holdings Ltd Universal tokenisation system for blockchain-based cryptocurrencies
EP3257191B1 (en) * 2016-02-23 2018-04-11 Nchain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
MX2018010045A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Intercambio basado en cadena de bloques con tokenizacion.
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
WO2017148527A1 (en) * 2016-03-03 2017-09-08 Nec Europe Ltd. Method for managing data in a network of nodes
AU2016402395A1 (en) * 2016-04-12 2018-08-23 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
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
US10532268B2 (en) 2016-05-02 2020-01-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
SG11201811009VA (en) 2016-07-29 2019-02-27 Nchain Holdings Ltd 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 (4)

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

Similar Documents

Publication Publication Date Title
KR102464299B1 (ko) 블록체인 구현 방법 및 시스템
TWI770022B (zh) 電腦實施之控制方法、系統及控制系統

Legal Events

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