[go: up one dir, main page]

KR102416506B1 - 블록체인을 이용한 논리 게이트 기능 구현 - Google Patents

블록체인을 이용한 논리 게이트 기능 구현 Download PDF

Info

Publication number
KR102416506B1
KR102416506B1 KR1020187034294A KR20187034294A KR102416506B1 KR 102416506 B1 KR102416506 B1 KR 102416506B1 KR 1020187034294 A KR1020187034294 A KR 1020187034294A KR 20187034294 A KR20187034294 A KR 20187034294A KR 102416506 B1 KR102416506 B1 KR 102416506B1
Authority
KR
South Korea
Prior art keywords
blockchain
transaction
node
gate
script
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020187034294A
Other languages
English (en)
Other versions
KR20190004311A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=58670105&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR102416506(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from GBGB1607525.1A external-priority patent/GB201607525D0/en
Priority claimed from GBGB1607554.1A external-priority patent/GB201607554D0/en
Priority claimed from GBGB1607552.5A external-priority patent/GB201607552D0/en
Priority claimed from GBGB1607564.0A external-priority patent/GB201607564D0/en
Priority claimed from GBGB1607569.9A external-priority patent/GB201607569D0/en
Priority claimed from GBGB1607541.8A external-priority patent/GB201607541D0/en
Priority claimed from GBGB1607538.4A external-priority patent/GB201607538D0/en
Priority claimed from GBGB1607553.3A external-priority patent/GB201607553D0/en
Priority claimed from GBGB1607555.8A external-priority patent/GB201607555D0/en
Priority claimed from GBGB1607529.3A external-priority patent/GB201607529D0/en
Priority claimed from GBGB1607520.2A external-priority patent/GB201607520D0/en
Priority claimed from GBGB1607558.2A external-priority patent/GB201607558D0/en
Priority claimed from GBGB1607472.6A external-priority patent/GB201607472D0/en
Priority claimed from GBGB1607539.2A external-priority patent/GB201607539D0/en
Priority claimed from GBGB1607537.6A external-priority patent/GB201607537D0/en
Priority claimed from GBGB1607530.1A external-priority patent/GB201607530D0/en
Priority claimed from GBGB1607566.5A external-priority patent/GB201607566D0/en
Priority claimed from GBGB1607561.6A external-priority patent/GB201607561D0/en
Priority claimed from GBGB1607527.7A external-priority patent/GB201607527D0/en
Priority claimed from GBGB1607584.8A external-priority patent/GB201607584D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20190004311A publication Critical patent/KR20190004311A/ko
Publication of KR102416506B1 publication Critical patent/KR102416506B1/ko
Application granted granted Critical
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/602Providing cryptographic facilities or services
    • 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
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K5/00Feeding devices for stock or game ; Feeding wagons; Feeding stacks
    • A01K5/02Automatic devices
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/321Cryptographic 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 a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Animal Husbandry (AREA)
  • Birds (AREA)
  • Medical Informatics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Lock And Its Accessories (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Retry When Errors Occur (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)

Abstract

본 발명은 논리 게이트의 기능을 구현하기 위하여 블록체인 거래를 생성하는 솔루션을 제공한다. 본 발명은 비트코인 플랫폼 또는 대안적인 블록체인 플랫폼 상에서 구현될 수 있다. 거래는 OR, AND, XOR, NOT 등과 같은 논리 게이트의 기능을 구현하기 위하여 선택된 명령을 포함하는 잠금 스크립트를 포함한다. 일부 예에서, 명령은 해시화된 형태로 제공될 수 있다. 스크립트가 실행되면(제2 거래가 잠금 스크립트와 연관된 출력을 소비하려고 시도하기 때문에) 입력은 참 또는 거젓의 출력을 제공하기 위해 조건 명령에 의해 처리된다. 제2 거래는 검증을 위해 즐록체인 네트워크에 전송되고, 만약 유효하다고 결정되면, 블록체인에 기록될 것이다. 제2 거래의 검증은 참 출력으로서 해석될 수 있다. 따라서, 제1 거래의 잠금 스크립트는 원하는 논리 게이트의 기능을 제공한다. 본 발명은 많은 이점을 제공하며, 제어 시스템 또는 프로세스의 구현과 같이 매우 다양한 어플리케이션에 사용될 수 있다.

Description

블록체인을 이용한 논리 게이트 기능 구현
본 발명은 일반적인 분산 원장(블록체인) 기술에 관한 것이다. 이는 비트코인 블록체인을 포함하는 어떠한 블록체인 관련 기술일 수 있으나, 이에 제한되지 않는다. 또한, 본 발명의 양상들은 논리 게이트 및 조합 논리학(combinatorial logic)의 분야에 관련된다. 본 발명은 제어 시스템 또는 프로세스와 함께 이용하기에 적합할 수 있다.
본 문서에서, 전자적, 컴퓨터 기반, 분산 원장의 모든 형태를 포함하기 위하여 '블록체인'이라는 용어를 사용한다. 이는 합의 기반 블록체인 및 거래-체인 기술, 허가 및 무허가 원장, 사이드 체인(side chain) 및 알트 체인(alt chain) 기술, 공유 원장 및 그 변형 예를 포함한다. 비록 다른 블록체인 구현이 제안되고 개발되었지만, 가장 널리 알려진 블록체인 기술의 어플리케이션은 비트코인 원장이다. 편의 및 도시의 목적을 위해 여기에선 비트코인이 언급될 수 있으나, 본 발명은 비트코인 블록 체인과 함께 사용하는 것으로 제한되지 않으며 대안적인 블록 체인 구현 및 프로토콜은 본 발명의 범위 내에 속한다는 것을 주목해야 한다. "사용자"라는 용어는 여기서 사람 또는 프로세서 기반 리소스(resource)을 언급할 수 있다.
블록체인은 피어-투-피어(peer-to-peer), 전자 원장으로, 결과적으로 거래로 이루어진 블록으로 구성된 컴퓨터 기반 분산형 분산 시스템으로 구현된다. 각 거래는 블록체인 시스템의 참가자 사이에서 디지털 자산의 지배의 전송을 부호화하는 데이터 구조이며, 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록은 처음부터 블록체인에 기록된 모든 거래의 영구적이고 변경 불가능한 기록을 생성하기 위해 서로 체인화된 블록들에 대한 이전 블록의 해시를 포함한다. 거래는 입력과 출력에 임베드된 스크립트라고 하는 작은 프로그램이 포함되어 있고, 이는 거래의 출력이 어떻게 누구에 의해 접근될 수 있는지를 특정한다. 비트코인 플랫폼에서, 이들 스크립트는 스택-기반의 스크립팅 언어를 이용하여 기록된다.
블록체인에 기록되는 거래를 위해서는, 반드시 '유효'해야 한다. 네트워크 노드(채굴자)는 네트워크에 의해 거절되는 무효 거래를 통해, 각 거래가 유효하다는 것을 보장하는 작업을 수행한다. 노드에 설치된 소프트웨어 클라이언트는 잠금 및 잠금 해제 스크립트를 실행하여 미사용 거래(UTXO)에서 유효성 작업을 수행한다. 만약 잠금 및 잠금 해제 스크립트 실행이 참(TRUE)으로 평가하면, 거래는 유효하고 거래는 블록체인에 기록된다. 따라서, 잠금 해제 스크립트는 잠금 스크립트의 평가에 대한 입력을 제공할 수 있다. 이는 서명-기반 입력의 형식이지만, 입력의 다른 형식도 가능하다. 또한, 스크립팅 언어의 많은 명령들은 참 또는 거짓 결과를 제공하는 불린 연산자(Boolean operators, 예, OP_EQUAL)이다. 이는 거래에 조건부를 내장할 수 있다.
블록체인 기술은 암호화폐 구현의 사용을 위해 가장 널리 알려져 있다. 그러나, 더 최근에, 디지털 사업가들은 비트코인 기반의 암호화 보안 시스템의 이용 및 새로운 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터를 탐구하기 시작했다. 본 발명은 블록체인 기술의 새롭고 독창적인 적용에 관한 것이다. 특히, 이는 논리 게이트의 기능을 구현 또는 모방하기 위한 블록체인 이용에 관한 것이며, 결과적으로 이는 컴퓨터-구현 시스템의 넓고 다양한 범위를 생성하기 위해 단순하지만 효율적이고 강력한 메커니즘으로 이용될 수 있다. 이러한 시스템은 프로세스 제어 및/또는 장치와 시스템의 동작을 지휘하는 것을 위한 제어 유닛을 포함할 수 있다.
본 발명의 배경이 되는 기술은 미국 특허출원공개공보 US2016/0085955호(2016.03.24)에 개시되어 있다.
제어 유닛의 기본 요소는 논리 게이트이다. 블록체인 거래(TXs)에 게이트 로직을 구축함으로써 블록체인 기술에 의해 제공되는 이점을 이용하는 강력한 프로세스를 구현할 수 있다. 이러한 이점은 향상된 사이버 보안, 분산된 장치/시스템/프로세스 제어, 레거시 시스템(legacy system)과의 잠재적 통합, 기록의 불변성/영구성을 포함하나 이에 제한되지 않는다.
따라서, 블록체인 상에서 또는 이를 통해 논리 게이트의 기능을 에뮬레이트 또는 제공하는 솔루션을 제공하는 것이 요구된다. 이러한 솔루션에서, 논리 게이트는 블록체인 거래의 잠금 스크립트를 통해 구현될 수 있다. 논리 게이트의 기본 구조에 대한 확장은 임의의 수의 입력 및 임의의 수의 출력을 허용하기 위하여 제공될 수 있다.
이러한 개선된 솔루션이 고안되었다. 따라서, 본 발명에 따르면 첨부된 청구항에 정의된 솔루션이 제공된다.
본 발명의 실시예는 컴퓨터 구현 방법 및 대응하는 시스템을 제공할 수 있다. 이들은 제어 방법/시스템으로서 설명될 수 있다.
본 발명은 실행시, 논리 게이트의 기능을 구현 및/또는 에뮬레이트하도록 구성되고 선택된 코드의 일부를 실행하는 잠금 스크립트를 포함하는 블록체인 거래(TX1)를 이용하거나 제공하는 단계를 포함하는 방법을 제공할 수 있다. 코드 일부의 실행은 코드 일부에 대한 입력을 생성하는 적어도 하나의 조건의 평가 후 수행될 수 있다.
적어도 하나의 조건의 평가는 불린 입력을 생성할 수 있다. 코드의 일부는 하나 이상의 명령을 포함할 수 있다. 이들은 연산 부호(opcode)일 수 있다. 연산 부호는 스택에 데이터를 데이터를 푸쉬(push)하거나 스택으로부터 데이터를 팝(pop)할 수 있다. 코드의 일부는 하나 이상의 조건의 결과를 이용하여 실행하도록 구성될 수 있다. 코드의 일부는 특별히 논리 게이트를 에뮬레이트하기 위한 목적을 위해 사용자(즉, 프로그래머 또는 거래의 생성자)에 의해 선택될 수 있다.
추가적으로 또는 대안적으로, 방법은 제1 블록체인 거래에서 잠금 스크립트를 제공하는 단계를 포함할 수 있다. 제1 (및/또는 추가) 거래는 자동화 프로세스, 즉, 사람의 개입없이 컴퓨터에 의해 생성될 수 있다.
잠금 스크립트는 적어도 하나의 불린 입력을 처리하도록 구성된 적어도 하나의 명령(즉, 코드의 일부)을 포함할 수 있다. 하나 이상의 실시예에서, 적어도 하나의 명령은 적어도 하나의 명령의 해시로서 잠금 스크립트에 제공될 수 있다. 따라서, 명령은 해시화 된 형태일 수 있다. 적어도 하나의 명령은 계산에 이용하거나 그것에 연산을 수행함으로써 불린 입력을 처리할 수 있다.
불린 입력은 코드 부분을 실행하기 전에 조건을 평가함으로써 생성될 수 있다. 조건은 해시 값과 기 저장된 해시 값 사이의 동일성 테스트를 포함할 수 있다. 기 저장된 해시 값은 잠금 스크립트 내에서 제공될 수 있다. 대안적으로, 조건은 잠금 스크립트 내에 제공되는 하나 이상의 명령/연산 부호를 통해 구현될 수 있다.
방법은 잠금 해제 스크립트를 가지는 추가 블록체인 거래를 제공하는 단계를 포함할 수 있다. 잠금 해제 스크립트는 리딤 스크립트를 포함한다. 적어도 하나의 명령은 해시로서 잠금 해제 스크립트 내에 제공될 수 있고, 실제 명령은 잠금 해제(리딤) 스크립트를 통해 제공되며, 여기서 제공된 명령의 해시는 거래의 출력을 소비하기 위하여 잠금 스크립트의 해시와 일치해야 한다.
방법은 적어도 하나의 불린 입력을 제공하기 위하여 적어도 하나의 입력 신호를 처리하는 단계를 포함할 수 있다. 입력 신호는 어떠한 소스로부터 도출되거나 수신될 수 있다.
방법은 제1 및 추가 블록체인 거래 각각의 잠금 및 잠금 해제 스크립트를 실행하기 위하여 적어도 하나의 불린 입력을 이용하는 단계를 포함할 수 있다.
적어도 하나의 불린 입력을 제공하기 위하여 적어도 하나의 입력 신호를 처리하는 단계는 추가 블록체인 거래의 잠금 해제 스크립트에 의해 수행될 수 있다.
대안적으로 또는 추가적으로, 잠금 해제 스크립트에 입력으로서 이용되기 전에 적어도 하나의 컴퓨팅 리소스 또는 에이전트에 의해 수행될 수 있다. 컴퓨팅 리소스는 블록체인 네트워크의 일부가 아닌 것을 의미하는 '오프블록' 리소스 일 수 있다.
방법은 검증을 위해 블록체인 네트워크에 추가 거래 및/또는 제1 거래를 전송하는 단계를 포함할 수 있다.
방법은 추가 거래의 존재 또는 부재를 결정하기 위해 네트워크의 블록체인을 모니터링하거나 검색하는 단계를 포함할 수 있다.
방법은 블록체인 내 추가 거래의 검출에 기반하여 장치 또는 프로세스의 동작에 영향을 미치도록 구성되는 컴퓨팅 리소스를 제공하는 단계를 포함할 수 있다.
방법은 논리 게이트에 의해 제공되는 참 출력으로서 추가 거래의 유효성을 해석하는 단계를 포함할 수 있다. 유효성은 제어 에이전트나 블록체인 및/또는 블록체인 네트워크를 모니터링 함으로써 결정될 수 있다.
추가 거래의 유효성 결정은 컴퓨팅 리소스/에이전트에 의해 수행되는 실행에 대한 트리거로서 역할을 할 수 있다.
블록체인 네트워크 내 추가 거래의 검증은 잠금 해제 스크립트의 실행에 기반할 수 있다.
방법은 블록체인 내 추가 거래의 존재 또는 부재의 결정에 기반하여 장치, 시스템 또는 프로세스의 작동 또는 행동을 제어하는 단계를 포함할 수 있다. 이는 어떠한 유형의 장치, 시스템 또는 기술적 프로세스 일 수 있다. 제어되는 장치, 시스템 또는 프로세스는 오프-블록으로 구현될 수 있다. 즉 블록체인 네트워크로부터 구분되거나 분리될 수 있다.
잠금 스크립트 내 적어도 하나의 명령은 논리 게이트의 진리표를 구현하기 위해 구성될 수 있다.
게이트는 OR 게이트, XOR 게이트, NAND 게이트, NOR 게이트, NOT 게이트 또는 XNOR 게이트일 수 있다. AND 게이트일 수 있다. IMPLY 게이트일 수 있다(또한, 논리 조건(Logical conditional), 실질 조건(Material conditional), 실질 함의(Material implication)로 알려짐). 역함축(Converse implication) 게이트일 수 있다.
적어도 하나의 입력 신호는 수치값, 상수값, 해시 함수의 결과, 암호키, 블록체인 퍼즐, 및/또는 비트코인 다른 블록체인 관련 주소를 포함할 수 있다.
제1 및/또는 추가 거래는 컴퓨팅 기반 리소스에서 실행되는 자동화 프로세스에 의해 블록체인 네트워크에 전송 및/또는 생성될 수 있다.
적어도 하나의 명령은 불린 조건 또는 연산자를 포함할 수 있다. 스택 기반 프로그래밍 언어를 이용하여 수행 및/또는 기록될 수 있다.
본 발명은 또한 상기의 방법의 어떠한 버전으로 구현되도록 구성된 컴퓨터 구현 시스템을 제공할 수 있다.
블록체인 상에서 또는 블록체인을 이용하여 구현되는 불린 계산 또는 조건을 포함하는 제어 시스템일 수 있고, 불린 계산은 다음을 포함한다:
잠금 스크립트를 포함하는 블록체인 거래, 적어도 하나의 불린 출력을 제공하기 위해 적어도 하나의 입력을 처리하여 불린 진리표의 기능을 구현하도록 선택된 적어도 하나의 명령을 포함하는 잠금 스크립트.
진리표는 OR 게이트, XOR 게이트, NAND 게이트, NOR 게이트, NOT 게이트 또는 XNOR 게이트에 대한 진리표 일 수 있다. IMPLY 게이트 (또한, 논리 조건(Logical conditional), 실질 조건(Material conditional), 실질 함의(Material implication)로 알려짐) 또는 역함축(Converse implication) 게이트의 진리표 일 수 있다. 진리표는 AND 게이트에 대한 진리표 일 수 있다.
본 발명의 다른 관점에 따르면, 실질적으로 아래에 기술된 "기법 3"에 따른 컴퓨터 구현 제어 방법이 제공될 수 있다. 이러한 방법은 다음의 단계를 포함할 수 있다:
적어도 하나의 입력 신호를 처리하도록 구성된 적어도 하나의 명령을 포함하는 (각각의) 잠금 스크립트, 복수의 제1 블록체인 거래(의 각각)의 (각각의) 잠금 스크립트를 제공하는 단계,
잠금 해제 스크립트를 가지는 추가 블록체인 거래를 제공하는 단계,
적어도 하나의 거래 출력을 생성 제공하기 위하여 적어도 하나의 입력 신호를 처리하는 단계,
제1 및 추가 블록체인 거래의 잠금 및 잠금 해제 스크립트를 실행하기 위하여 적어도 하나의 거래 출력을 이용하는 단계.
적어도 하나의 거래 출력을 생성하기 위하여 적어도 하나의 입력 신호를 처리하는 단계는 다음에 의해 수행될 수 있다.
i) 추가 블록체인 거래의 잠금 해제 스크립트에 의해 ii)적어도 하나의 컴퓨팅 리소스 또는 에이전트에 의해.
방법은 다음의 단계를 포함할 수 있다.
검증을 위한 블록체인 네트워크에 추가 거래 및/또는 제1 거래를 전송하는 단계, 및/또는
추가 거래의 존재 또는 부재를 결정하기 위해 블록체인 또는 블록체인 네트워크를 모니터링 또는 검색하는 단계, 및/또는
다음에 기반하여 장치 또는 프로세스의 동작에 영향을 미치도록 구성된 컴퓨팅 리소스를 제공하는 단계:
블록체인 또는 블록체인 네트워크 내 추가 거래의 검출, 및/또는
추가 거래의 유효성.
방법은 논리 게이트의 참 출력으로서 블록체인 또는 블록체인 네트워크 내 추가 거래의 검출을 검색하는 단계를 포함할 수 있다. 블록체인 네트워크 내 추가 거래의 검증은 잠금 해제 스크립트의 실행에 따를 수 있다.
방법은 추가 거래의 유효성에 기반하여 장치 또는 프로세스를 제어하는 단계를 포함할 수 있고, 여기서 유효성은 컴퓨터 기반 제어 에이전트에 의해, 또는 네트워크 노드에 의해 유효성을 검증받았는지 여부를 결정하기 위해 블록체인 네트워크를 모니터링 함으로써, 및/또는 블록체인에 기록된 거래인지를 결정하기 위해 블록체인의 상태를 모니터링 함으로써 결정되거나 설정될 수 있다.
잠금 스크립트 내 적어도 하나의 명령은 AND 게이트의 진리표를 구현하도록 구성될 수 있다. 적어도 하나의 입력은 수치값, 상수값, 해시 함수의 결과, 암호키, 블록체인 퍼즐, 및/또는 비트코인 다른 블록체인 관련 주소를 포함할 수 있다. 제1 및/또는 추가 거래는 컴퓨팅 기반 리소스에서 실행하는 자동화 프로세스에 의해 블록체인 네트워크에 생성 및/또는 전송될 수 있다. 적어도 하나의 명령은 조건 또는 조건 연산자를 포함 및/또는 스택 기반 프로그래밍 언어를 이용하여 기록 및/또는 실행될 수 있다. 본 발명은 본 발명의 이러한 관점에 따른 어떠한 방법을 구현하기 위하여 구성된 컴퓨터 구현 시스템을 제공할 수 있다.
하나의 양태 또는 실시예와 관련하여 설명된 임의의 특징은 다른 양태 또는 실시예와 관련하여 사용될 수 있다. 예를 들어, 방법에 관련하여 설명된 어떤 특징은 시스템에 적용될 수 있으며 그 반대의 경우도 마찬가지이다.
본 발명의 이들 및 다른 양태는 여기 기술된 실시예를 참조하여 명백하게 설명될 것이다. 본 발명의 실시예는 첨부된 도면을 참조하여 예시로서만 설명될 것이다.
도 1은 본 발명의 실시예에 따른 그리고 예시적인 사용 케이스와 관련하여 구성된 시스템을 도시한다.
도 2는 도 1의 제어 시스템에 대한 진리표를 도시한다.
도 3은 도 1의 예시에 대한 잠금 해제 거래의 프로세싱 단계를 도시한다.
도 4 내지 8은 비밀을 공유하고 공개키 또는 개인키를 생성하는데 이용될 수 있는 기법을 도시한다.
도 9는 불린 출력 X를 생성하기 위하여 두 개의 불린 입력 A 및 B가 제1 거래의 잠금 스크립트 내에서 평가되는 본 발명의 예시적인 실시예의 기능을 도시한다.
도 10은 제1 및 제2 거래를 포함하는 본 발명의 실시예의 개요를 도시한다.
도 11은 본 발명의 실시예에 따른 프로세스를 도시한다.
도 12는 후술되는 본 발명의 "기법 1"에 따른 실시예의 개요를 도시한다.
도 13는 후술되는 본 발명의 "기법 2"에 따른 실시예의 개요를 도시한다.
도 14는 후술되는 본 발명의 "기법 3"에 따른 실시예의 개요를 도시한다.
도 15는 종래 기술에 따른 잠금 및 잠금 해제 스크립트가 어떻게 평가되는지를 도시한다.
본 발명은 특정 진리표의 로직을 구현하기 위해 블록체인 거래의 잠금 스크립트를 이용하는 메커니즘을 제공한다. 종래 기술에서 알려진 것처럼, 이러한 진리표는 논리 게이트를 구현하는데 이용되며, 여기서 일반적으로 기본 게이트는 두 개의 입력 A 및 B와 하나의 출력 X를 가진다. 도 9는 예시적인 본 발명의 실시예에 의해 생성된 구조의 개요를 도시하며, 두 개의 입력 A 및 B는 출력 X를 생성하기 위해 거래 내에서 평가된다. 입력값 A 및 B는 논리 게이트 코드를 포함하는 잠금 스크립트에 관련된 이전 거래의 출력을 소비하려고 시도하는 블록체인 거래의 잠금 해제 스크립트를 통해 제공된다. 하나 이상의 실시예에서, 잠금 해제 스크립트는 리딤 스크립트를 포함한다. 따라서, 적어도 두 개의 거래가 본 발명의 어떤 실시예를 구현하기 위해 요구된다. 제1 거래는 게이트 로직을 내장하는 잠금 스크립트를 가지는 많은 비트코인 또는 다른 암호화폐를 동결(lock)한다. 제2 거래는 A 및 B의 값(아마도 서명과 함께)을 제시함으로써 제1 거래의 출력을 소비한다.
종래의 게이트에서, A, B 및 X는 2진수로, 참(1) 또는 거짓(0)과 동일한 값을 가진다. 그러나, 본 발명의 실시예에 따르면, 종래의 게이트는 더 복잡한 변화를 포함하도록 확장되고 복제된다. 특히, 블록체인 게이트에 대한 입력은 '참' 또는 '거짓' 입력 그 자체가 아니지만, 여러 다른 값, 형식 또는 값의 유형일 수 있다. 예를 들어, A 및 B는 정수, 해시화된 값, 암호화키, BTC-주소(등)일 수 있으며, A 및 B의 진리값은 출력을 생성하기 위하여 거래 내에서 평가될 수 있다. 출력은 거래가 유효('참')하거나 무효('거짓')일 수 있다는 의미에서 반드시 2진수이다.
그러나, 출력은 몇 가지 더 복잡한 함수 중 하나를 제공할 수 있다. 예를 들어, 일련의 조건 만족에 중요한 지급 잠정을 나타낼 수 있으며, 또는 경미한 지불이지만 그럼에도 불구하고 이벤트의 안전하고 영구적인 기록으로 작용할 수 있다. 블록체인 게이트의 다양한 이용법에 대한 추가 예시가 아래에서 제공된다.
많은 상이한 형태의 논리 게이트가 있으며, 이들 모두는 본 발명의 범위 내에 있다. 일반적으로 말해서, 회로의 구성에 필요한 몇 가지 기본 2-입력 게이트가 있다. 특별한 순서는 없다.
1. AND
2. OR
3. XOR Exclusive OR
4. NAND Not AND
5. NOR Not OR
6. XNOR Exclusive NOR
7. IMPLY logical conditional
8. NOT-IMPLY Material Nonimplication
또 다른 일반적으로 사용되는 게이트는 NOT이며, 이는 오직 하나의 입력을 가진다; 그 출력은 입력값의 반대이다. 게이트는 보통 입력값과 관련 출력값의 모든 가능한 조합을 제공하는 '진리표'의 형태로 제공된다. 예를 들어, 표 1은 AND 게이트 및 NOT 게이트를 보여준다.
AND NOT
A B X A X
0 0 0 0 1
1 0 0 1 0
0 1 0
1 1 1
8개의 기본 입력 게이트 모두가 표 2에 나타난다.
A B AND OR XOR NAND NOR XNOR IMP N-IMP
0 0 0 0 0 1 1 1 T F
1 0 0 1 1 1 0 0 F T
0 1 0 1 1 1 0 0 T F
1 1 1 1 0 0 0 1 T F
실제로, 2개의 2진 입력이 주어진 출력 열을 그리기 위한 16개의 가능한 상이한 방법이 있으며, 그 중 많은 수가 요구되는 어플리케이션에 따라 유용할 수 있다. 이들은 단일 게이트로서 각각 생성될 수 있다. 따라서, 진리표가 단일 블록체인 스크립트(예를 들어, 아래의 '기술 1')에 의해 구현될 경우, 16개의 가능한 것 중 하나가 거래 잠금 스크립트 내에 코드화 될 수 있다. 물론 가능한 것 중 일부는 실제 적용 사례가 거의 없거나 아예 없을 수 있다.
A B AND XOR OR NOR XNOR NAND
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
전술한 바와 같이, 본 발명은 논리 게이트 기능의 적어도 일부를 구현하기 위해 블록체인 거래가 생성되는 솔루션을 제공한다. 이 게이트 기능은 거래의 잠금 스크립트 내에 에뮬레이트된다. 이러한 잠금 스크립트는 편의상 여기서 '블록체인 게이트' 또는 '비트코인 게이트'로서 언급될 수 있다. 또한 편의상, 비트코인은 예시로 참조될 수 있지만, 대안적인 블록체인 프로토콜 및 플랫폼이 이용될 수 있다.
공지된 기술에 따라, 블록체인 거래는 m개의 멀티시그(multisig) 옵션 중 n개를 사용하도록 구성될 수 있다. 사실, 이는 거래에 필요한 서명의 수와 관련하여 논리 게이트로서 동작한다. n=m인 경우, 다중 서명 연산은 논리적 AND 게이트로서 동작한다. 그러나, 이는 입력 내에 공급된 서명의 수에만 영향을 받거나 관련되기 때문에 논리 게이트의 제한된 구현이며, 입력의 또 다른 형태에 대한 블록체인 구현 논리 게이트의 평가를 허용하지 않는다. 반면, 본 발명은 보다 넓은 파라미터화된 입력 집합에서 동작할 수 있도록 게이트 기능을 허용한다.
본 발명의 다양한 실시예에 따르면, 제1 블록체인 거래(TX1)의 잠금 스크립트는 선택된 논리 게이트의 기능을 제공하는데 이용된다. 다시 말해, 제1 거래 내에 제공되는 잠금 스크립트는 특정 논리 게이트의 진리표에 따라 출력을 제공하기 위해 실행될 때 제시된 입력 값을 이용할 몇몇 코드를 포함한다. 따라서, 잠금 스크립트 내 명령은 원하는 게이트의 진리표를 구현하도록 구성되고 선택된다. 잠금 스크립트는 제1 거래의 출력(TXO)에 관련된다.
그러면 제2 거래(TX2)가 생성된다. 제2 거래는 잠금 해제 스크립트와 관련되거나 이를 포함하는 입력을 포함한다. 잠금 해제 스크립트는 출력(TXO)을 소비하도록 제1 거래의 잠금 스크립트를 해제하는데 이용될 수 있다. 검증(validation)은 제1 및 제2 거래의 잠금 및 잠금 해제 스크립트가 실행되도록 한다. 따라서, A 및 B에 대한 특정 값은 사용될 것이다. 종래 기술에서 알려진 바와 같이, 거래 검증 동안 잠금 및 잠금 해제 스크립트가 어떻게 평가되는지에 대한 설명을 위해 도 15를 참조한다.
잠금 및 잠금 해제 스크립트의 실행으로 유효한 거래가 발생하면, 거래의 유효성은 논리 게이트의 참 출력으로서 해석될 수 있다. 반대로, 거래의 검증이 실패하면, 논리 게이트로부터 거짓 출력으로 해석될 수 있다. 이는 종래 기술의 향상이며, 공지된 블록체인 기법 및 기술에 따라 실패한 스크립트가 단순히 바로 그것이다. 그러나, 본 발명에 따르면, 실패한 스크립트(즉, 성공하지 않은 검증)은 "거짓" 입력에 대한 검출 및 후속 응답을 가능하게 한다. 따라서, 본 발명은 입력이 참 또는 거짓인지 여부에 관계 없이 의미있는 후속 행동의 도출 및 개시를 가능하게 한다. 왜냐하면 실행의 어떠한 과정은 출력이 무엇이든 간에 블록체인 게이트의 출력에 의존하기 때문이다.
거래의 유효성은 다음에 의해 결정될 수 있다.
Figure 112018118109474-pct00001
컴퓨팅 에이전트
Figure 112018118109474-pct00002
블록체인 네트워크 상의 하나의 이상의 노드
Figure 112018118109474-pct00003
블록체인 상의 블록 내 거래의 검출. 위에서 설명한 것처럼, 제2 거래가 제1 거래로부터의 출력을 소비하게 시도하도록 하기 위하여 (비트코인) 네트워크에 제시되면, 채굴 노드는 그들의 검증 업무를 수행한다. 만약 거래가 유효하면, 블록체인에 기록될 수 있고, 그렇지 않으면 거부된다. 따라서, 컴퓨팅 에이전트는 거래가 원장에 전달되었는지 여부를 확인하기 위하여 블록체인 상태를 모니터링 할 수 있다. 블록체인에서 검출되면, 거래가 유효하였음을 의미한다. 이는 논리 게이트로의 참 출력으로서 컴퓨팅 에이전트에 의해 해석될 수 있다.
유효성 또는 무효성의 확립은 일부 실행의 수행에 대한 트리거로서 역할을 할 수 있다. 이러한 실행은 에이전트에 의해 수행될 수 있다. 이는 장치, 시스템 또는 프로세스의 동작을 제어하거나 영향을 줄 수 있다.
도 12, 13 및 14에 나타난 것처럼, 제1 거래(TX1)는 에뮬레이트 된 게이트의 기능을 정의한다는 점에서 "프라이밍(priming) 논리 게이트"로 지칭될 수 있다. 제2 거래(TX2)는 잠금 해제 스크립트를 통해 게이트 출력의 평가에 사용될 값을 제공하므로 "평가 논리 게이트"로 지칭될 수 있다.
도 10 내지 14를 참조하여 아래에서 설명되는 것처럼, 상기를 달성하기 위한 다양한 기법이 있다.
기법 1
기법 1의 개요는 도 12에서 제공된다. 주요 정의 특성:
Figure 112018118109474-pct00004
입력 신호 A 및 B는 단일 거래(TX2)에 대한 거래 입력의 잠금 해제 스크립트에 제공된다.
Figure 112018118109474-pct00005
A 및 B는 '(비트코인) 퍼즐'이며, 하나 이상의 서명에 의해 수반될 수 있다.
Figure 112018118109474-pct00006
TX2의 잠금 해제 스크립트는 이전 거래 TX1의 출력을 소비하는데 사용된다. 이는 각각의 TX2 및 TX1의 잠금 해제 및 잠금 스크립트를 실행한다.
Figure 112018118109474-pct00007
A 및 B는 참/거짓을 평가하기 위해 TX2의 잠금 해제 스크립트 내에서 처리된다.
Figure 112018118109474-pct00008
관련 로직, 즉 선택된 게이트(TX1의 잠금 스크립트에 제공된)에 대한 코드는 그들의 처리된 값을 이용하여 실행된다.
Figure 112018118109474-pct00009
스크립트 평가는 멀티시그와 같은 다른 로직과 명령을 실행한다. 종래 기술에 공지된 것처럼 멀티시그 연산은 선택된 논리 게이트에 대한 코드의 실행으로부터 분리되고 이후에 실행된다.
각 퍼즐은 참 또는 거짓인 조건을 나타내고 잠금 스크립트의 실행 동안 다음에 의해 평가된다.
Figure 112018118109474-pct00010
먼저 솔루션, 즉 잠금 해제 스크립트를 통해 잠금 스크립트의 퍼즐에 대한 값을 제시한다.
Figure 112018118109474-pct00011
잠금 스크립트는 제시된 값을 해시화하고 내부에 저장된 해시 값과 비교한다("내부에 저장된"이란 잠금 스크립트의 일부에 기록된 해시를 의미). 제시된 값의 해시와 저장된 해시가 같으면 '참'을 의미하고 다르면 '거짓'을 의미한다. 따라서 각 퍼즐에 대해, 해시의 비교는 중간 결과를 제공한다.
Figure 112018118109474-pct00012
두 개의 평가된 조건의 중간 결과는 논리 게이트의 출력 X를 제시하는 최종 결과를 제공하기 위하여 잠금 스크립트 내에 제공되는 관련 게이트 논리 코드에 적용된다. 최종 결과가 참이면 수반된 서면은 멀티시그 연산을 이용하여 확인된다.
TX1의 잠금 스크립트는 비트코인 프로토콜에서 알려진 P2SH 잠금 스크립트이거나 대안 프로코톨과 기능적으로 동등한 것일 수 있다. 알려진 기술에 따르면, P2SH 잠금 스크립트는 리딤 스크립트의 해시를 포함하고, 해시화 되면 TX1 출력은 잠금 스크립트에 저장된 해시를 매칭하는 올바른 스크립트의 표시에만 사용될 수 있다. 따라서, 페이-투-스크립트 해시 거래와 관련하여, 실제 로직은 비록 이후에 제공될 로직을 '알고 있다'고 하더라도, 잠금 해제 스크립트 내에 표시된다. 당업자가 이해할 수 있는 바와 같이, 이러한 거래 내 잠금 스크립트의 동작은 암호화된 보안 기법을 이용하여 알려져야 하지만, 실제 명령 세트는 잠금 해제 스크립트의 일부로서 제공될 수 있다. 이러한 접근법의 이점은 리딤 스크립트의 콘텐츠 또는 저장된 해시가 식별될 수 없다는 점이다. 왜냐하면 실제로 솔루션은 초기 해시로서 리딤 스크립트를 통해 제시되고, 그러면 이는 비교를 수행하기 위하여 잠금 스크립트의 실행 동안 다시 해시화되기 때문이다. 따라서, 프라이버시와 보안이 강화되거나 유지될 수 있다.
다른 변형예에서, A 및 B 값은 해시화되지 않을 수 있고, 해시들 사이에 동등성을 테스트하기 보다는 다른 테스트가 참 및 거짓을 유도하기 위해 적용된다. 예를 들어, A는 현재 다우 존스(Dow Jones) 지수일 수 있고 스크립트는 A > (일부 기 결정된 임계치) 에 대해 테스트할 수 있다. 이러한 접근은 A 및 B의 중간 결과에 도달하기 위해 해시를 비교하는데 P2SH 거래 유형을 이용하지 않지만, 대신 기 결정된 조건의 일부 다른 유형을 평가하기 위하여 잠금 스크립트 내 "조건 평가 코드"를 이용한다. 이러한 방식으로, 많은 다른 종류의 조건은 참/거짓에 대해 테스트될 수 있다. 조건 평가 코드에 대한 중간 결과는 잠금 스크립트의 게이트 논리 부분에 전달될 수 있고, 최종적으로 서명 검증에 전달될 수 있다. 서명 검증 프로세스는 기술 분야에서 알려진 기법에 따라 수행될 수 있다. 이러한 특정 케이스에서 A 및 B의 값은 해시화되지 않기 때문에, 상기의 방법은 테스트된 조건이 비밀을 유지하도록 요구되면 적절하지 않다.
기법 2
기법 2의 개요는 도 13에 제공된다. 주요 정의 특성:
Figure 112018118109474-pct00013
입력 A 및 B는 잠금 해제 스크립트에 포함되고 단일 거래 입력의 잠금 스크립트에 제시된다(예를 들어 제어 에이전트에 의해).
Figure 112018118109474-pct00014
A 및 B는 '참' 또는 '거짓'이고 서명이 수반될 수 있다.
Figure 112018118109474-pct00015
A 및 B에 의해 표현된 조건은 특정 목적의 컴퓨터 기반 에이전트에 의해 참/거짓을 도출하기 위해 거래 외부에서 사전 평가된 다음 제어 에이전트로 안전하게 전송된다.
Figure 112018118109474-pct00016
제어 에이전트는 잠금 해제 스크립트를 포함하는 추가 거래를 생성하고 잠금 스크립트에 A 및 B 값(서명을 더하여)을 제시한다.
따라서, 기법 2는 잠금 해제 스크립트에 대한 제출에 앞서 컴퓨팅 에이전트에 의해 조건이 평가된다는 점을 제외하고는 기법 1과 동일하다. 기법 1에서와 같이, 논리 게이트 기능을 에뮬레이트하는 코드는 제1 거래의 잠금 스크립트에 제공되고, 입력에 대한 실제 값은 추가 거래의 잠금 해제 스크립트를 통해 검증 동안 제공된다.
기법 3
기법 3의 개요는 도 14에 제공된다. 주요 정의 특성:
Figure 112018118109474-pct00017
A 및 B는 두 개의 개별 거래 입력(동일 거래에 대한)의 잠금 스크립트에 제시된다.
Figure 112018118109474-pct00018
A 및 B는 '(비트코인) 퍼즐'이고 서명을 수반한다.
Figure 112018118109474-pct00019
시그해시(SIGHASH)의 관련 조합(예를 들어, ANYONECANPAY)을 이용하여, 두 개의 개별 에이전트는 A 및 B를 개별적으로 거래 템플릿(결과적으로 제어 에이전트에 의해 마무리된)에 제시한다.
Figure 112018118109474-pct00020
A 및 B는 관련 게이트 로직을 수행하는 각각의 잠금 스크립트 내에서 참/거짓으로 평가된다.
Figure 112018118109474-pct00021
각 스크립트는 종래 기술에 따른 서명 검사와 같은 다른 로직을 수행한다.
전체 거래가 유효하려면, 각 입력이 유효해야 한다. 이는 AND 진리표를 구현한다. 동일한 기법은 많은 입력에 이용될 수 있다. 즉, 두 개의 조건 A 및 B를 평가하는 대신, 많은 조건 A, B, C, …는 거래를 생성하기 위한 요구 사항으로 설정될 수 있다.
템플릿 거래
하나 이상의 실시예에서, 블록체인 네트워크에 브로드캐스트 될 수 있는 거래를 생성하기 위해 복사된 다음 A 및 B 입력으로 채워지는 거래 탬플릿이 제공될 수 있다. 브로드캐스트 거래가 네트워크에 의해 유효한 것으로 받아지면, 이는 위에서 설명된 것처럼 '참'의 출력으로서 해석될 뿐만 아니라 영구적이며 변경 불가능한 기록을 블록체인 상에 제공하는 역할을 한다. A 및 B는 보통 참 또는 거짓으로서 평가될 수 있는 조건을 나타낸다. 모든 종류의 조건은 평가될 수 있고, 모든 종류의 데이터는 조건을 평가하기 위해 이용될 수 있다. 예를 들어, 조건은 실제 세계에서의 이벤트, 신호의 수신 또는 부재, 계산의 성공적인 완료, 두 개 또는 그 이상의 아이템 또는 전자 엔티티(entity) 사이의 매칭 등을 포함할 수 있다. 비록 목록은 무제한이지만, 다음은 테스트 될 수 있는 조건의 상이한 유형의 매우 작은 지시 샘플을 나타낸다.
블록체인 게이트에서의 사용을 위해 참/거짓에 대해 테스트될 수 있는 예시 조건
1. 현재 날짜는 2025년 6월 30일이다.
2. 1,000,000번째 비트코인 블록이 도착했다.
3. 엔티티는 코드화된 신호를 보냈다(예를 들어, 밥은 방금 'GO!'라고 말한 거래 사용).
4. 위치 X에서의 온도는 Y도 이하이다.
5. 다우 존스 지수는 현재 20,000이상이다.
6. Juanita Shalala Morgensen-Smythe라는 사람이 방금 결혼했다.
7. (등)
블록체인 게이트는 어떤 엔티티에 의해 생성될 수 있다. 그러나 바람직한 실시예는 블록체인 게이트의 생성, 유지 및 전송에 관한 기능을 수행하기 위해 하나 이상의 자동화 된 소프트웨어 에이전트를 설정하는 것이다. '자동화 된'이란 용어는 작업을 완료하기 위한 수동 개입 없이, 프로그램의 실행에 의해 전체적으로 수행된다는 것을 의미할 수 있다. 바람직한 실시예에서, 이러한 에이전트는 다양한 기능을 수행할 수 있으며 아래에서는 그 중 단지 하나의 샘플만이 열거된다.
블록체인 게이트에 관련한 에이전트에 의해 수행될 수 있는 예시 기능
1. 현실 세계의 이벤트를 모니터링하고 '트리거'가 감지되면 설정된 규칙에 따라 특정 실행을 수행
2. 트리거에 대한 블록체인을 모니터링하고 '트리거가'가 감지되면 설정된 규칙에 따라 특정 실행을 수행
3. 거래 템플릿을 복사하고 설정된 룰에 기반한 입력 및/또는 출력을 거래 템플릿에 채우고, 블록체인 네트워크에 거래를 브로드캐스트
4. 트리거되면, 관심있는 사람에게 경고를 보내거나 데이터를 전송 또는 수신하기 위해 다른 에이전트와 통신하는 등과 같은 다른 유형의 실행을 수행, 등
블록체인 거래의 논리 게이트를 수행하기 위해 많은 잠재적인 어플리케이션 또는 최종 용도가 있다. 어플리케이션을 구현하기 위해 게이트 또는 게이트의 결합이 생성되고 구현되는 방법에 대한 세부 사항은 본 문서의 범위 밖에 있다. 그러나, 본 발명은 예를 들어, 전자 장치의 제어에 이용될 수 있다. 이는 알람 시스템, 차량 잠금 해제 시스템, 기구 스위치, 무선 센서 네트워크, SCADA(안전하게), 공장 제어, 인버터, 거래 잠금 시스템, 시간 기반 안전, 급수 시스템 등과 같은 IOT(Internet of Things) 장치를 포함할 수 있다. 또한 자동 지불 시스템 및 계산의 개발에 이용될 수 있다. 예를 들어:
a. 정시에 지불이 수신되면 출력 1을 전송하고, 그렇지 않으면 출력 2를 전송하고 금액과 이자를 따로 계산한다.
b. 시간이 지남에 따라 증거하거나 감소하는 ANYONECANPAY 블록체인 거래
블록체인 거래에 사용되는 '게이트'의 몇몇 가능한 변형
1. A 및 B는 2진수일 수 있다(전통적인 게이트에서처럼). X는 거래가 '참'(유효) 또는 '거짓'(유효하지 않음)이라는 의미에서 2진수 일 수 있다.
2. A 및 B는 암호화 서명일 수 있다.
3. A 및 B는 의미있는 값을 나타내는 임의의 수일 수 있다. 예를 들어, 날짜.
4. A 및 B는 의미있는 값의 해시일 수 있다.
5. A 및 B는 비트코인 의미에서 '퍼즐'일 수 있다(특정 해시의 해답).
6. A 및 B는 상기 두 개 이상의 결합일 수 있다(예를 들어, 서명 + 퍼즐)
7. A 및 B는 상이한 유형일 수 있다(예를 들어, A = 서명 + 의미있는 값; B = 퍼즐)
8. 다중 입력 A, B, C, … 이 있을 수 있다.
9. X = 참(유효)는 제3자에게 약간의 비트코인이 지급되었음을 의미할 수 있다. 예를 들어, A 및 B로 표현되는 특정 조건이 만족되면 게이트 로직은 수익자에게 비트코인을 지불할 수 있다.
10. X = 참(유효)는 출력 비트코인이 단순히 지불자에게 반환되고, 거래의 목적이 지급과 관련 없음을 의미한다(아래 예시)
11. X = 참(유효)은 이벤트를 트리거함을 의미할 수 있다(예를 들어, 모니터링 에이전트는 IOT 장치를 제어하는 것과 같이 설정된 실행을 취하도록 트리거 될 수 있다)
12. X = 참(유효)은 이벤트를 등록하는 것, 즉, 거래의 목적이 사건의 안전하고 불변 영구적인 기록으로 실행되는 것을 의미할 수 있다.
13. 다중 출력 X, Y, …이 있을 수 있다. 이는 몇몇 수익자들이 비트코인을 지급받거나 여러 트리거가 제정되거나 조합될 수 있음을 의미할 수 있다.
14. 그것 자체가 게이트를 구현하는 단일 거래가 있을 수 있다. 이는 잠금 스크립트 내에서 수행된다.
본 발명의 실시예의 예시 구현
도시된 예에서, 장치 제어 어플리케이션에 사용되는 XOR 게이트를 구현하기 위하여 상기의 기법 1을 이용한다.
블록체인 IOT 장치(BID)는 암호화 키를 통해 접근되고 오프-BID에 안전하게 저장되는 기 결정된 명령을 수행하기 위하여 설정되는 컴퓨팅 에이전트이다. '오프-BID'에 의해 명령은 BID 자체에 제공되지 않지만 다른 곳에 저장되고 필요할 때 접근되는 것을 의미한다. 이러한 명령은 선택된 작업 또는 복수의 작업을 수행하도록 구성되고 선택된다. 실행시, 명령은 IOT 장치의 동작의 제어하고 영향을 미칠 수 있다. BID는 IOT 자체에 존재할 수 있고, 이는 BID가 IOT 장치에 제공되는 메모리에 설치됨을 의미한다. 그러나, 다른 실시예에서 BID는 장치 밖에 존재할 수 있고 장치에 인터넷 접속될 수 있다.
IOT 장치는 그것 자신의 암호화 키(뿐만 아니라 IP 주소)를 가지며 다른 장치 또는 DHT 등과 안전하게 통신 및 상호 작용할 수 있다. 그것의 '운영 체제'는 일부 내장 기능을 가진(적어도 다음에 국한되지 않는) 간단하고 일반적인 시스템이다.
Figure 112018118109474-pct00022
암호화 계산
Figure 112018118109474-pct00023
외부 소스(예를 들어 DHT)에서 명령 검색
Figure 112018118109474-pct00024
스위치 토글과 같은 간단한 실행 수행(예를 들어, 물리적 IOT 장치)
따라서, IOT 장치나 이와 관련된 BID는 그들 자신의 내장 명령을 포함하지 않으며, 그것이 하는 일이나 수행 방법을 '알지도' 못한다. BID는 오직 다른 곳에서 명령을 안전하게 검색하기 위한 메커니즘만을 포함한다. BID는 단순 실행 세트 만을 수행할 수 있다(아래는 다음을 설명하기 위한 것으로 제한되지 않는다).
Figure 112018118109474-pct00025
자체 마스터 개인키 및 공개키 쌍에 접근; 또한 자체 (유도 가능한) BTC 주소를 가진다.
Figure 112018118109474-pct00026
IP 주소에 데이터를 보내거나 IP 주소로부터 데이터를 수신하는 기능
Figure 112018118109474-pct00027
비밀 공유 프로토콜 계산(아래에 설명) - 바람직한 실시예에서 이들은 기계 코드에 내장될 수 있다.
Figure 112018118109474-pct00028
블록체인 이벤트 조회 및 해석
Figure 112018118109474-pct00029
연결된 물리적 장치를 조작하고 제어(본질적으로 단지 스위치 세트인 표준 API를 통해)
BID의 수신 및 발신은 아래에 설명된 보안 메커니즘을 이용하여 암호화되며, 이는 공유 비밀을 이용하여 키가 생성되는 것을 가능하게 한다. 이는 다음을 허용한다.
(i) '해킹'으로부터 보안 강화
(ii) 단순 범용 소프트웨어 업그레이드 프로토콜
(iii) 장치 불가지론(agnosticism)
따라서, 본 발명의 실시예는 임의의 IOT 장치에서 이용될 수 있는 일반 운영 체제를 제공한다. 장치 자체는 프로그래밍 되지 않는다 - 모든 프로그램은 별도로 저장되며 설정 시간(또는 일부 실시예에서는 실행 시간)에 장치에 로드된다.
도 1을 참조하면 시스템(100)은 각각 102a 및 102b로 열결된 제1 및 제2 클라이언트 장치, 제1 및 제2 클라이언트 장치(102a 및 102b)로부터 입력을 수신하고 제1 및 제2 클라이언트 장치(102a 및 102b)에 정보를 전송하기 위해 동작하는 BID 제어 시스템을 포함한다. 이 예시의 사용예에서, 제1 및 제2 클라이언트 장치(102a 및 102b)는 BID 제어 시스템(102)에 의해 검출 가능한 무선 주파수 식별 장치(RFID)이다. 제어 시스템(104)은 블록체인을 이용하도록 동작하고 블록체인에 출력을 전송하도록 동작한다.
제어 시스템(104)이 뒷마당에 하루종일 있는 아르키메데스(A) 및 버트랜드(B)라고 명명된 캐롤의 두 마리 개의 예를 이용하여 어떻게 동작하는 지를 설명한다. , 그들은 어떤 이유로 서로 공격적으로 싸우면서 동시에 먹지 않는 한 서로 친절하다. A 및 B 둘다 IOT 장치에 의해 검출가능한 식별 RFID 칼라(collar), 예를 들어, 제1 RFID 칼라(102a) 및 제2 RFID 칼라(102b)를 가진다. 이 IOT 장치는 개들 중 한마리에 의해 소비되도록 특정 양의 음식을 분배하는 자동 공급기이다. 즉, BID 제어 시스템(104)는 IOT 공급 장치의 작동을 제어한다.
본 예시에서, BID(104)는 IOT 자동 급이기 및 그 기능을 제어하기 위한 급이기를 가진 인터페이스에 제공되는 소프트웨어 리소스 또는 요소이다.
BID는 DHT로부터 그 명령을 다운로드 및 설치함으로써 시작한다. 명령이 수정될때까지 이를 다시할 필요는 없다. 이는 예를 들어, BID가 업그레이드 될 필요가 있거나 BID의 동작이 완전히 수정되어야 할 때, 즉 명령 세트가 3개 이상의 RFID 신호를 검출하기 위하여 수정되어야 할 때 이다.
제어 에이전트는 블록체인 거래를 생성하기 위하여 BID에 의해 전송된 값을 이용하고, 또한 아래에 설명된 것처럼 각 반복 후에 BID를 가진 새로운 비밀을 공유한다.
BID 제어 시스템(104)의 기능은 잠금 스크립트를 이용하여 잠긴 블록체인 거래를 이용하여 구현된다.
OP_HASH(160)<잠금 해재 스크립트 해시> OP_EQUAL
거래는 IOT 자동 급이기를 제어하기 위해 명령 세트를 제공하도록 생성되고 (분산 해시 테이블(DHT)에 링크하는 메타데이터를 통해) 아래에서 설명된 것에 따라 설정된 컴퓨팅 리소스에 대한 명령을 포함할 수 있다. 메타데이터는 거래 자체 내에 명령을 저장하는 대신 명령을 액세스할 수 있는 위치의 참조 또는 포인터를 포함할 수 있다. 따라서, 명령은 '오프-블록(off -block)'으로 유지될 수 있다.
블록체인은 활동을 제어하는 메커니즘뿐 만 아니라 발생한 이벤트에 대한 정보를 기록할 수 있다. 예를 들어, 급이 횟수를 카운트하고, 언제 그들이 발생하였는지, 어떤 개가 먹었는지, 최대 사료 배급이 분배되었는지 등의 능력을 제공한다. 또한, 암호화 보안을 제공한다.
거래의 중요한 기능은 한 마리의 개가 동시에 급이기에 있을 때만 음식이 분배되도록 보장되어야 한다. 따라서, 일부 조건은 거래의 스크립트에 내장되어야 한다. 이는 도 2에 도시된 진리표에 따라 XOR 함수를 사용하여 획득될 수 있다.
Figure 112018118109474-pct00030
A 및 B 모두 급이기에 없다면, 음식을 분배하지 마시오
Figure 112018118109474-pct00031
A가 급이기에 있고 B가 없다면, 음식을 분배하시오
Figure 112018118109474-pct00032
B가 급이기에 있고 A가 없다면, 음식을 분배하시오
Figure 112018118109474-pct00033
A 및 B 모두 급이기에 있다면 음식을 분배하지 마시오
A 또는 B가 급이기에 있으면 RFID 신호는 개의 안전한 현재 퍼즐 솔루션(각 반복 후에 새로운 퍼즐 솔루션으로 안전하게 대체된다)을 잠금 해제하기 위하여 각각의 클라이언트 장치, 즉 제1 RFID 칼라(102a) 및 제2 RFID 칼라(102b)로부터 자동 급이기의 제어 시스템(104)에 전송된다. A 또는 B가 급이기에 없는 경우, 무작위 숫자가 각각의 RFID 칼라로부터 급이기에 대신 전송된다. 다시 말해, '급이기에' 있는 개는 RFID 칼라가 급이기의 탐지 가능한 범위 내에 있다는 것을 의미한다. 이러한 경우, 관련 퍼즐은 전송을 위해 잠금 해제된다. 그렇지 않으면, 디폴트는 무작위 숫자이다.
퍼즐 솔루션은 해시되면 (비트코인) 스크립트 내 저장값과 비교할 때 짝을 제공하는 값을 결과로 낳는 데이터이다. 즉, 프로세스는 다음과 같다: 비밀값(솔루션)은 해시화되고 나중 비교를 위해 잠금 스크립트 내에 저장된다. 스크립트를 잠금 해제하기 위하여 비밀은 먼저 제시된 값을 해시화하는 잠금 스크립트에 제시되고, 그러면 저장된 해시와 비교한다. 비교 결과가 동일하면 비교 결과는 '참'이다. 실제로 저장된 값은 비밀의 더블(DOUBLE)-해시이고, 제시된 값은 비밀의 단일(SINGLE)-해시이다. 이는 비밀의 길이를 스크립트에 입력하기 위해 표준으로 관리가능한 크기로 감소시킬 수 있다(즉, 항상 160비트 길이).
자동 급이기 BID는 BID의 키/쌍에 관련된 룩업키를 이용하여 DHT로부터 검색된 명령을 수행힌다. 제어 에이전트는 BID에/로부터의 데이터 흐름을 관리한다(즉, RFID 신호와 연관되고 BID 명령 세트와 연관이 없음 데이터). 따라서, 자동 급이기 BID는 자신의 상태를 모니터링한다. 개별 제어 에이전트(103)으로부터 수신한 두 개의 비밀값(S1 및 S2)를 저장한다. 제어 에이전트(103)는 급이 프로세스를 감독하도록 구성된 적절하게 프로그램된 컴퓨팅 리소스일 수 있다. 비밀값(S1 및 S2)는 개의 RFID 칼라가 거리 내에 검출될 때 조건부로 이용된다. 적절한 DHT로부터 검색된 명령, 거리 내 RFID의 검출에 기반하여 (날짜의 시간과 관련된 다른 조건, 이전 급이의 횟수, 기타 제한 등과 함께) 제어 에이전트로서 동작하는 일반 에이전트(Generic Agent)에 신호를 전송한다(아래 참조). 신호는 다음을 포함한다.
Figure 112018118109474-pct00034
S1(=퍼즐-A-솔루션) 아르키메데스의 RFID가 검출되면 임의의 숫자
Figure 112018118109474-pct00035
S2(=퍼즐-B-솔루션) 버트랜드의 RFID가 검출되면 임의의 숫자
자동 급이기 BID는 그러면:
Figure 112018118109474-pct00036
자동 급이기는 거래의 유효성을 체크하거나, 몇몇 실시예에서 네트워크 상의 유효한 거래에 대해 체크할 수 있다(이는 블록에 공개되거나 아직 공개되지 않을 수 있지만, 유효한 거래여야 하는 어떤 이벤트일 수 있음). 이 거래는 제어 에이전트에 의해 생성되고 브로드캐스트된다. 내장된 XOR 테스트를 통과하면 유효하다. 만약 통과하지 못하면, 유효하지 않고 블록체인 네트워크 상에 첫번째 "홉(hop)" 이상으로 전파되지 않을 것이다. 따라서 BID에 의해 검출될 수 없다. 또는 BID첫번째 홉 상에 있고 따라서 거래가 검출되면, BID 기능의 일부는 (다른 노드와 마찬가지로) 거래를 확인하는 것이다. 따라서 결과적인 조치를 취하기 전에 거래가 유효한지를 감지할 수 있다. 또한 유효한 거래는 예를 들어 급이기 이벤트에 관하여 블록체인 상에 기록되고 저장된 요청 정보를 보장한다.
Figure 112018118109474-pct00037
위의 응답이 참이면 BID는 조건 명령을 수행한다 - 이 경우, 음식물을 분배한다
Figure 112018118109474-pct00038
두 개의 비밀(아래에 따라 S1 및 S2)을 공유 가능하도록 제어 에이전트(103)로부터의 전송을 수신하고 다음 반복을 위해 준비된 이들 비밀값을 내부적으로 업데이트한다.
비트코인 거래에 대한 잠금 스크립트는 다음과 같다.
OP_HASH160 <Puzzle-A> OP_EQUAL OP_SWAP
OP_HASH160 <Puzzle-B> OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
여기서,
퍼블-A는 OP_HASH 160(Puzzle-A-Solution)와 동일한 결과이다.
퍼즐-B는 OP_HASH 160(Puzzle-B-Solution)와 동일한 결과이다.
메타데이터1은 DHT에 저장된 코드화된 명령에 대한 참조를 포함한다.
PubK-Carol은 캐롤의 공개키이다.
에이전트의 프로그래밍은 하드 코딩되거나 DHT로부터 자체 명령을 검색할 수 있다. 코드화된 명령은 메타데이터를 이용하여 블록체인 거래에 대한 거래를 참조하기 위해 아래에서 설명되는 절차에 따라 액세스되고 저장될 수 있다. 캐롤의 공개키는 아래에서 설명되는 프로세스를 이용하여 안전하게 보관되거나 다시 생성될 수 있다.
위에서 나타낸 도시된 블록체인 거래를 잠금 해제하기 위해, 다음 스크립트가 요청될 수 있다.
Sig-Carol Puzzle-B-solution Puzzle-A-Solution <unlocking script>
다음 단계의 도시를 위해 도 3을 참조한다.
제어 시스템(104)은 제시된 퍼즐-A 솔루션을 해시화하기 위해 동작하고 S300 단계에서 저장소로부터 검색된 퍼즐-A의 저장 버전과 비교한다(여기서 버전은 솔루션의 해시이다). 퍼즐-A의 저장된 버전은 제어 시스템(104) 또는 다른 적절한 저장 매체에 대한 저장소 로컬에 저장될 수 있다. 이들이 동일하면, 스택의 상단(top of stack) = 1이고, 다르면 스택의 상단 = 0이다.
그러면 스택의 상단은 S302 단계에서 퍼즐-B 솔루션인 스택 상에 제2 아이템과 교환된다. 이는 해시화되고 저장소로부터 검색된 퍼즐-B의 저장된 버전과 비교되며, 다시 S300의 결과와 비슷한 맥락에서 스택의 상단에 1 또는 0을 넣는다. 퍼즐-B의 저장된 버전은 제어 시스템(104)의 저장소 로컬이나 다른 적절한 저장 매체에 저장될 수 있다.
여기서 상단 두 개의 스택 아이템은 각각 0 또는 1이다. S304 단계에서 숫자가 동일하면OP_NUMEQUAL는 1을 반환하고, 그렇지 않고XOR 진리표의 정확한 반대이면 0을 반환한다.
S306 단계에서, OP_NOT는 요청된 XOR 결과를 생성하기 위하여 스택 상의 상단 항목을 플립(flip)한다.
S308 단계에서, OP_VERIFY는 스택 상단의 항목이 1인지를 검사하고 그렇지 않으면, 즉, XOR 연산자가 실패한 경우, 제1 및 제2 클라이언트 장치로부터의 하나 이상의 입력이 일치하는 퍼즐 솔루션을 반환하기 때문에 거래는 즉시 무효로 표시된다. IOT 디스펜스(dispenser)에 한 마리 이상의 개가 있으므로 그 결과 IOT 디스펜서로부터 음식이 나오지 않는다. 즉, 제어 시스템(104)의 출력은 기본 비트코인 거래의 실행에 의해 제어된다.
OP_VERIFY가 1을 반환하면, 제어 시스템(104)의 프로세싱은 S310 단계에서 캐롤의 서명의 존재가 검사되는 스크립트의 멀티시그 부분으로 돌아간다.
잠금 해제 스크립트 분석에서 제어 시스템(104)에 의해 수행되는 스택 동작은 아래와 같다. 먼저, 제어 시스템(104)은 OP_EQUAL을 이용하여 잠금 해제 스크립트의 해시와 해시를 비교하기 위하여 잠금 해제 스크립트를 해시화환다. 다음으로, 잠금 해제 스크립트는 실행된다.
스택 스크립트 설명
Empty Sig-Carol Puzzle-B-solution Puzzle-A-Solution
OP_HASH160 <Puzzle-A> OP_EQUAL OP_SWAP
OP_HASH160 <Puzzle-B> OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
Sig-Carol Puzzle-B-solution Puzzle-A-Solution OP_HASH160 <Puzzle-A> OP_EQUAL OP_SWAP
OP_HASH160 <Puzzle-B> OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
스택에 추가되는 데이터
Sig-Carol Puzzle-B-solution Puzzle-A-Solution-hashed <Puzzle-A>
OP_EQUAL OP_SWAP
OP_HASH160 <Puzzle-B> OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
상단 스택이 해시화된다.
Sig-Carol Puzzle-B-solution Puzzle-A-Solution-hashed <Puzzle-A> OP_EQUAL OP_SWAP
OP_HASH160 <Puzzle-B> OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
주어진 해시(퍼즐-A)를 스택의 상단에 넣는다
Sig-Carol Puzzle-B-solution FALSE OP_SWAPOP_HASH160 <Puzzle-B> OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
상단 두 개의 항목은 비교되고 결과(거짓)를 스택의 상단에 넣는다
Sig-Carol FALSE Puzzle-B-solution OP_HASH160 <Puzzle-B> OP_EQUAL OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG

두 개의 상단 항목이 교환된다
Sig-Carol FALSE Puzzle-B-solution-hashed <Puzzle-B>
OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
상단 스택 아이템은 해시화된다
Sig-Carol FALSE Puzzle-B-solution-hashed <Puzzle-B> OP_EQUAL
OP_NUMEQUAL OP_NOT OP_VERIFY
OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG
주어진 해시(퍼즐-B)를 스택 상단에 넣는다
Sig-Carol FALSE TRUE OP_NUMEQUAL OP_NOT OP_VERIFYOP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG 상단 두 개의 항목은 비교되고 결과(참)를 스택 상단에 넣는다
Sig-Carol FALSE OP_NOT OP_VERIFYOP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG 상단 두 개의 수(0 또는 1)는 비교되고 결과(거짓)를 스택 상단에 넣는다.
Sig-Carol TRUE OP_VERIFYOP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG 상단 스택 항목은 플립된다(거짓=0 에서 참=1으로)
Sig-Carol OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG 스택 항목은 검증된다. 참이기 때문에, 거래는 무효로 표시되지 않고 스크립트는 계속된다
TRUE Empty 멀티시그는 확인되고 통과된다.
공유 비밀을 이용하여 키를 생성
키는 안전하게 유지되거나 재생성될 수 있다. 특히, 공개키를 유도하기 위하여 사용될 수 있는 개인키의 경우, 개인키는 나누어서 저장될 수 있다.
사용자, 즉, 앨리스 또는 밥은 그들의 개인키의 한 부분을 보관할 수 있고, 서비스 제공자는 제2 부분을 보관할 수 있고, 제3 부분은 원격 보안 사이트에 보관될 수 있다. 개인키는 3개의 부분 중 어느 2개를 이용하여 재구성될 수 있고, 보다 일반적으로, 개인키는 n개의 부분 중 어느 m개를 이용하여 재구성될 수 있다.
개인키가 재구성될 수 있으면 사용 지점에 공개키를 재생성하기 위해 이용될 수 있고, 공개키는 사용 후에 다시 삭제될 수 있다.
개인키 분할은 샤미르의 비밀 공유 기법(Shamir's Secret Sharing Scheme)을 이용하여 수행될 수 있다. 개인키-공개키 쌍은 다음의 방법을 이용하여 마스터키로부터 결정론적으로 도출될 수 있다. 이러한 방법은 비밀값이 그들을 더 이상 전송하지 않고 참가자에 의해 공유될 수 있다.
시스템은 지금부터 설명될 서브키 생성 방법을 이용하여 참가자를 위한 공개키를 생성할 수 있다.
도 4는 통신 네트워크(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)은 추가적인 단계를 포함할 수 있다. 도 11을 참조한다. 방법(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)의 예는 도 3을 참조하여 설명되며, 여기서 방법(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)는 선택되거나, 무작위로 생성되거나, 할당될 수 있다.
제1 노도(3)으로 돌아가면, 방법(100)은 공통의 ECC 시스템과 베이스 포인트(G)를 결정하는 단계를 포함한다. 이는 제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)를 사용하는 것에 대한 승인을 나타내는 통지를 전송함으로써 결정할 수 있다(210).
방법(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)에 의한 공통 비밀 결정
[1] 공통 비밀(CS)을 결정하는 예시는 도 7을 참조하여 설명될 것이다. 공통 비밀(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을 포함한다. 다른 해시 함수는 셰모르-틸리히(Zmor-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
여기서, ' + ' 연산자는 스칼라 합산을 나타낸다. 타원 곡선 암호화 대수학이 분산적이라는 것을 주목하면, 수학식 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 정수로 변환될 수 있다.
공통 비밀(CS)은 필요에 따라 결정될 수 있다. 중요하게도, 제1 노드(3)는 메시지(M)에 기초하여 재결정될 수 있으므로 공통 비밀(CS)을 저장할 필요가 없다. 몇몇 예에서, 사용된 메시지(M)는 마스터 개인키에 대해 요구되는 것과 동일한 보안 레벨 없이 데이터 저장소(13, 17, 19)(또는 다른 데이터 저장소)에 저장될 수 있다. 몇몇 예에서, 메시지(M)는 공개적으로 이용 가능할 수 있다.
그러나 몇몇 어플리케이션에 따르면, 공통 비밀(CS)은 공통 비밀(CS)이 제1 노드 마스터 개인키(V1C)만큼 보안이 유지되는 것을 제공하는 제1 노드와 연관된 제1 데이터 저장소(X)에 저장될 수 있다.
이점으로는, 이 기법은 하나의 마스터키 암호화 쌍에 기초하여 다중 보안 비밀키에 대응할 수 있는 다중 공통 비밀을 결정하는데 이용될 수 있다.
생성기 값(키)의 계층 구조
일 예에서, 일련의 연속적인 생성기 값(GVs)이 결정될 수 있고, 여기서, 각각의 연속적인 GV는 이전 생성기 값(GV)에 기초하여 결정될 수 있다. 예를 들어, 연속적인 단일 목적 키를 생성하기 위해 310 내지 370 단계 및 410 내지 470 단계를 반복하는 대신, 노드 사이의 사전 합의에 의해, 이전에 사용된 생성기 값(GV)은 생성기 값의 계층 구조를 정하기 위해 양 당사자에 의해 반복적으로 재순환될 수 있다. 결과적으로, 메시지(M)의 해시에 기초한 결정키는 다음 생성 생성기 값(GV')를 위한 다음 생성 메시지(M')일 수 있다. 이를 통해 프로토콜 설정 전송, 특히 공통 비밀의 각 생성을 위한 다수 메시지의 전송을 더 필요로 하지 않고 계산되기 위하여 공유 비밀의 연속적인 생성을 허용할 수 있다. 다음 생성 공통 비밀(CS')은 아래와 같이 연산될 수 있다.
첫째로, 제1 노드(3) 및 제2 노드(7) 모두 생성기 값(GV')의 다음 생성을 독립적으로 결정한다. 이는 320 및 420 단계와 유사하지만 아래의 수학식으로 수정된다.
[수학식 18]
M' = SHA-256(M)
[수학식 19.1]
GV' = SHA-256(M')
[수학식 19.2]
GV' = SHA-256(SHA-256(M))
그러면, 제1 노드(3)는 위에서 설명된 370 및 330 단계와 유사하게 제2 노드 제2 공개키(P2S') 및 제1 노드 제2 개인키(V2C')의 다음 생성을 결정할 수 있지만, 아래의 수학식으로 수정된다.
[수학식 20.1]
P2S' = P1S + DK' x G
[수학식 20.2]
V2C' = V1C + DK'
그러면, 제2 노드(7)는 위에서 설명된 430 및 470 단계와 유사하게 제1 노드 제2 공개키(P2C') 및 제2 노드 제2 개인키(V2S')의 다음 생성을 결정할 수 있지만, 아래의 수학식으로 수정된다.
[수학식 21.1]
P2C' = P1C + DK' x G
[수학식 21.2]
V2S' = V1S + DK'
그러면, 제1 노드(3) 및 제2 노드(7)는 다음 생성 공통 비밀(CS')을 각각 결정할 수 있다. 특히, 제1 노드(3)는 수학식을 통해 다음 생성 공통 비밀(CS')를 결정한다.
[수학식 22]
CS' = V2C' x P2S'
제2 노드(7)는 수학식을 통해 다음 생성 공통 비밀(CS')을 결정한다.
[수학식 23]
CS' = V2S' x P2C'
추가적인 생성 (CS’’, CS’’’, 등)은 체인 계층을 생성하기 위해 동일한 방법으로 계산될 수 있다. 이 기법은 제1 노드(3) 및 제2 노드(7) 모두가 원본 메시지(M) 또는 원본의 계산된 생성기 값(GV), 그리고 그것이 관련된 노드의 추적을 유지할 것을 요구한다. 이것은 공개적으로 알려진 정보이므로 이 정보의 보존에 관련된 보안 문제는 없다. 따라서, 이 정보는 ‘해시 테이블(hash table)’에 보관될 수 있으며(해시 값을 공개키에 연결), 네트워크(5)를 통해 자유롭게 배포될 수 있다(예를 들어, 토렌트를 사용). 또한, 계층의 어떤 개인적인 공통 비밀(CS)이 손상된다면, 개인키 V1C, V1S 가 안전하다는 전제하에 계층 내의 다른 공통 비밀의 보안에 영향을 미치지 않는다.
키의 트리 구조
위에서 설명된 체인(선형) 계층은 물론, 트리 구조의 형태에서 계층이 생성될 수 있다. 트리 구조를 통해, 인증키, 암호화키, 서명키, 지불키 등과 같은 상이한 목적을 위한 다양한 키들이 결정될 수 있으며, 이러한 키들은 하나의 안전하게 유지된 마스터키에 모두 연결된다. 이는 다양한 상이한 키들을 통한 트리 구조(901)를 나타내는 도 9에 가장 잘 도시되어 있다. 이들 각각은 다른 당사자와 공유된 비밀을 생성하는데 사용될 수 있다. 트리 분기는 몇 가지 방법으로 수행될 수 있으며, 그 중 3개가 아래에서 설명된다.
(i) 마스터키 생성
체인 계층에서, 각각의 새로운 '연결'(공개/개인키 쌍)은 원본 마스터키에 다수의 재해시된(rehashed) 메시지를 추가하여 생성된다. 예를 들어, (명료성을 위해 제1 노드(3)의 개인키만 표시하는 것).
[수학식 24]
V2C = V1C + SHA-256(M)
[수학식 25]
V2C' = V1C + SHA-256(SHA-256(M))
[수학식 26]
V2C'' = V1C + SHA-256(SHA-256(SHA-256(M)))
분기를 생성하기 위해, 어떤 키는 서브 마스터키로서 이용될 수 있다. 예를 들어, V2C'는 일반 마스터키에 대해 수행되는 해시를 추가함으로써 서브 마스터키(V3C)로서 사용될 수 있다.
[수학식 27]
V3C = V2C' + SHA-256(M)
서브 마스터키(V3C)는 자체로 다음 생성 키(V3C')를 가질 수 있다. 예를 들어,
[수학식 28]
V3C' = V2C' + SHA-256(SHA-256(M))
이는 도 13에 도시된 마스터키 생성 방법을 이용하는 트리 구조(903)를 제공한다.
(ii) 논리적 연합
본 방법에서, 트리(공개/개인 키 쌍)의 모든 노드들은 체인으로(또한 다른 방법으로) 생성되고, 트리에서 노드 사이의 논리적 관계는 트리의 각 노드가 포인터(pointer)를 사용하여 트리의 부모 노드와 단순히 연관된 테이블에 의해 유지된다. 그래서, 포인터는 세션에 대한 공통 비밀키(CS)를 결정하기 위한 관련 공개/개인키 쌍을 결정하는데 이용될 수 있다.
(iii) 메시지 다중성
새로운 개인/공개키 쌍은 체인 또는 트리의 어떤 포인트에서 새로운 메시지를 소개하는 것에 의해 생성될 수 있다. 메시지 자체는 임의적이거나 어떤 의미 또는 기능을 포함할 수 있다(예, '실제' 은행 계좌 번호 등과 연관될 수 있음). 새로운 개인/공개키 쌍을 형성하기 위한 각각의 새로운 메시지는 안전하게 유지되는 것이 바람직할 수 있다.
부호화 스키마
거래의 메타데이터는 오프-블록 문서에 저장된 명령에 접급하는데 이용될 수 있다. 이러한 문서는 '계약'으로 언급될 수 있다. 계약을 참조하는데 이용되는 메타데이터는 다양한 방식으로 형식을 지정할 수 있다. 그러나 적합한 부호화 스키마는 아래에 설명된다.
계약은 정의한 권리가 계약의 소유자 또는 보유자에게 부여되면 양도가 가능하다. 비양도성 계약의 예시는 참가자가 지명된 계약, 즉 계약의 보유자가 아닌 특정 지명된 독립체에 권리가 부여되는 계약이다. 오직 양도가 가능한 계약이 이 부호화 스키마에서 논의된다.
토큰은 계약에 의해 부여된 권리를 상세히 설명하거나 정의하는 특정 계약을 나타낸다. 본 발명에 따르면, 토큰은 비트코인 거래의 형식에서 계약의 표현이다.
이 체계화 방법은 세 개의 파라미터 또는 데이터 아이템을 포함하는 메타데이터를 이용한다. 이 데이터는 다음으로 나타낼 수 있다.
i) 계약하에서 가능한 공유의 양
(이는 여기서 ' NumShares'일 수 있다.)
ii) 송신자로부터 적어도 하나의 수령인에게 전송되는 전송 유닛의 양
(이는 여기서 'ShareVal'일 수 있다.)
iii) 전송 유닛의 양에 대한 값을 계산하기 위한 요소
(이는 여기서 'pegging rate'일 수 있다.)
이 부호화 스키마의 이점은 위에서 설명된 세 개의 파라미터만 이용하여 블록체인 상에 토큰으로 계약을 표현하거나 캡슐화하는데 이용될 수 있다는 것이다. 결과적으로, 계약은 이러한 세 개의 데이터 아이템의 최소를 이용하여 특정될 수 있다. 부호화 스키마가 양도 가능한 계약의 모든 형태에 대해 시용될 수 있으므로, 일반적인 알고리즘이 고안되고 적용될 수 있다. 이러한 메타데이터 아이템의 더 상세한 사항은 아래에서 제공된다.
분할 가능 토큰은 거래 출력 상의 값이 다중 토큰을 통해 할당된 더 작은 양으로 세분될 수 있다(즉, 다중 거래를 통해 할당됨). 원형은 신용 화폐로 토큰화된다. 분할가능한 계약은 0이 아닌 고정율(pegging rate)을 특정하는 것으로 정의된다. 분할가능한 계약의 경우, 거래 출력에 전송된 토큰화된 값은 고정율을 통해 기반 비트코인(BTC) 값에 연결된다. 이는 계약이 고정율에 관하여 보유자의 권리를 특정하는 것이다. 분할할 수 없는 토큰의 경우, 고정율이 없고 계약은 고정된 값에 관하여 보유자의 권리를 특정한다(예를 들어, 무기명 채권 : 정확히 1000달러의 상황이 가능하다 또는 '이 계약은 한번의 이발에 대한 상환이 가능하다'는 바우처). 분할할 수 없는 계약의 경우, 기반 거래 BTC 값은 계약값과 관련이 없다.
"기반 BTC 값"이라는 구절은 거래 출력에 첨부된 비트코인 양(BTC)을 나타낸다. 비트코인 프로토콜에서, 모든 거래 출력은 가치를 고려하여 0이 아닌 BTC 양을 가져야 한다. 사실, BTC 양은 작성 시점에서 현재 546 사토시로 설정된 세트 최소값('먼지(dust)'로 알려진)보다 커야 한다. 1 비트코인은 1억 사토시와 같은 것으로 정의된다. 비트코인 거래가 여기서 오직 소유권의 교환을 용이하게 하기 위한 수단으로서 이용되기 때문에, 실제 기반 BTC 양은 임의적이다. 실제 값은 계약 명세서에 있다. 이론상 모든 토큰은 먼지에 의해 운반될 수 있다.
본 부호화 스키마에 따르면, 특히 분할 가능한 토큰의 경우, 기반 BTC 값은 수단을 가진다: 고정율을 통해 계약값과의 관계를 유지. 고정율은 그 자체로 임의적이고 기반 BTC 양을 작게 유지하도록 선택된다. 먼지를 통한 모든 토큰 거래를 단순화하는 대신 고정율을 이용하는 이유는 본 발명의 프로토콜이 가분성을 용이하게 하기 때문이다. 토큰이 더 작은 수량의 몇몇 거래 출력에 나누어지면, 원본 계약을 조정할 필요가 없다. 각 세분화된 토큰의 계약값은 고정율과 세분화된 기반 BTC 값의 양에 기초하여 단순히 계산된다.
제한된 토큰은 NumShares로 불리는 양에 의해 정의된 고정된 0이 아닌 수에 의해 총 발행 수가 고정(제한)된 것이다. 그러므로, 제한된 계약 하에서 추가적인 주식(shares)은 발생되지 않는다. 예를 들어, 경주마의 부분 소유권에 대한 계약이 경주마의 100%로 제한된다(예를 들어, 1% 당 100 주 또는 10%당 10 주 등). 무제한 계약은 발급자가 예를 들어, 그들의 지급 준비 계정(Reserve Account)에 신용 화폐의 요청량을 추가함으로써, 주식의 추가 발행을 기명할 수 있다는 것을 의미한다. NumShares는 모든 계약에 명시되어야 한다. 제한된 계약은 NumShares>0이어야 하고, 무제한 계약은 NumShares=0으로 설정하여 나타낸다.
전형예는 예금 은행 계좌가 보유한 총액이 현존하는 약속 어음의 총액과 일치시키는 것과 같은 통화 준비금(currency reserve)이다(금 보유와 유사). 이 개념은 통화 준비금을 넘어서 재고 목록을 포함한다. 예를 들어, 허가된 인쇄 티셔츠 토큰의 발급자는 재고가 있는 10000장의 티셔츠 목록을 가지고 시작할 수 있고, 10000장의 티셔츠를 나타내기 위해 분배 가능한 토큰을 발행할 수 있다(여기서, 각 주식 = 1개의 티셔츠이다). 원본 토큰은 세분화 될 수 있고 각 세분화 된 토큰은 고정율에 의해 정의된 출력의 기반 BTC 값에 따라 얼마간의 티셔츠에 대해 상환될 수 있다. 그러나 수요가 증가하면, 발급자는 추가 주식을 발행하기로 결정할 수 있다(즉, 또 다른 10000개에 의해 유통되는 주식의 수를 늘린다). 그러한 경우 추가 발생을 기명하기 위해서 발급자는 그의 지급 준비 계정(즉, 재고 창고)에 10000개의 티셔츠를 더 입금해야 한다. 따라서, 한번에 재고가 있는(여기서 재고는 '지급 준비 계정'으로서 역할한다) 티셔츠의 총 수 = 상환되지 않은 주식의 총 수 이다.
고정율은 오직 분할 가능한 계약에만 적용되며, 여기서, 주식의 가치(ShareVal로 불리는 수량으로 표시된)는 기반 BTC 양에 고정된다. 예를 들어, 계약은 발급자가 매 기반 1 BTC에 대해 10000달러의 비율로 토큰을 상황하도록 명시될 수 있다. 예를 들어, 15400 사토시의 토큰화된 기반 출력값을 가진 거래는 1.54 달러로 상환될 수 있다. 고정율에 대한 0의 값은 계약이 분할되지 않는다는 것을 나타낸다(즉, 무기명 채권처럼 전체를 양도할 수 있음). 고정율이 0(토큰 분할이 안된다는 의미)이면, 기반 BTC 값은 계약 값에 관련이 없고 어떤 금액이든 설정될 수 있다. 일반적으로 이러한 경우에서, 기반 BTC 양은 운영 비용을 최소화하기 위해 가능한 작게(즉, 먼지로 설정된) 유지되는 것이 바람직하다.
NumShares는 (제한된) 계약 하에서 가능한 주식의 전체 (고정) 수이다. 제한된 계약의 경우, NumShares는 0보다 큰 전체 수를 가져야 한다. 무제한 계약의 경우, NumShares는 어떤 시점에 발행될 수 있는 주식보다 더 고정되지 않고(그들에 의해 기명되어 제공된), 이는 0의 값으로 설정되어 표시된다.
주식은 전송 단위로 정의되고, ShareVal은 해당 단위의 값이다. 예를 들어, 신용화폐에 대해, 전송 단위는 1 센트로 설정될 수 있다. 또는 예를 들어, 50센트로 설정할 수 있다. 이 경우 전송은 50센트의 'lots'로만 허용된다. ShareVal은 또한 백분율로 표시될 수 있다. 예를 들어, 만약 브리더가 10과 같은 주식으로 경주마를 팔기 원한다면 ShareVal =10%이다. ShareVal은 >0이어야 하고 계약상 정의되어야 한다.
TotalIssuance 은 발행된 주식의 전체 수이다. 이 값은 무제한 계약과 같이 제한된 계약에서만 관련되고, 발행이 고정되지 않고 더 많은 주식이 발행될 수 있다. 주식이 백분율로 표현되면 TotalIssuance = 100%로 정의된다.
제한 계약의 경우, NumShares, ShareVal, 및 TotalIssuance는 아래의 방법과 연관된다.
NumShares x ShareVal = TotalIssuance.
TotalIssuance에 대한 0의 값은 무제한 계약을 암시한다. 무제한 계약의 예는 신용 화폐이다(그래서 TotalIssuance는 0으로 설정된다). 제한 계약의 예는 다음과 같다. (i) 한정판 기념 동전(1000 주, 여기서 1주 = 1코인): TotalIssuance = 1000 x 1 = 1000 코인, 그리고 (ii) 티켓 발매소의 좌석, 여기서 TotalIssuance = 이용 가능한 전체 좌석 수
유통은 미사용 토큰의 전체 값으로 정의된다(즉, UTXO의 거래에 의해 결정됨 - 미사용 거래 출력). 모든 미사용 거래의 전체 세트는 모든 비트코인 노드에서 사용할 수 있는 목록에 보관된다. 예를 들어, 발급자가 신용 화폐 형태 토큰으로 10000달러를 발행하고 시간이 지남에 따라 5500달러 상당의 토큰을 상환하면, 유통 = 4500달러가 된다(상환된 토큰의 가치). 이 가치는 연관된 예비 계정의 잔액과 조정되어야 한다.
본 발명의 실시예와 함께 이용하기 적절한 컴퓨팅 리소스('에이전트')의 예시
본 발명은 원하는 프로세스의 자동화 개념을 수행하기 위해 적절하게 구성된 컴퓨팅 리소스(여기서는 "에이전트")를 활용할 수 있다. 적합하고 선호되는 에이전트의 예시는 아래에 제공되나, 다른 구현도 이용될 수 있다.
에이전트는 블록체인과 결합하여 작동할 수 있고, 튜링 머신의 구현에서 삭제할 수 없는 테이프로서 이를 이용한다. 에이전트는 블록체인에 병렬적으로 실행되고, (루프) 프로세스의 실행을 처리하고 감시한다. 루프 프로세스는 장치 또는 시스템의 제어 또는 처리의 자동화와 같은 주어진 작업을 수행하기 위해 설계된다. 병렬 자원은 블록체인의 상태를 모니터링하고 블록체인에 기록된 거래를 야기할 수 있다. 어떤 의미에서, 다음의 정의와 특징을 갖는 튜링 머신의 삭제할 수 없는 테이프로서 블록체인을 활용할 수 있다.
1. 블록체인은 튜링 머신의 테이프로서 동작한다. 블록체인의 각 거래는 테이프 상에 셀(cell)을 나타낸다. 이 셀은 유한 알파벳의 기호를 포함할 수 있다.
2. 테이프 헤드(tape head)는 블록체인상에 이미 기록된 블록으로부터 정보를 읽을 수 있다.
3. 테이프 헤드는 블록체인의 끝에 많은 거래를 포함하는 새로운 블록을 기록할 수 있다. 그러나, 이미 존재하는 블록 상에는 기록할 수 없다. 따라서, 블록체인 테이프는 삭제되지 않는다.
4. 각 거래의 메타데이터는 다중 서명 페이 투 스크립트 해시(signature pay-to-script-hash, P2SH) 거래의 부분으로서 저장될 수 있다.
에이전트의 중요한 기능은 블록체인의 현재 상태를 모니터링하는 자동화된 독립체로서 동작하는 것이다. 또한 어떠한 오프 블록 소스로부터 신호 또는 입력을 수신할 수 있다. 블록체인 상태 및/또는 수신된 입력에 따라, 에이전트는 특정 작업을 수행할 수 있다. 에이전트는 어떠한 작업이 수행될 것인지를 결정한다. 이는 '실제 세상'(즉, 오프 블록)에서 작업 및/또는 블록체인 상의 작업(새로운 거래를 생성하고 브로드캐스팅하는 것과 같은)을 수반하거나 수반하지 않을 수 있다. 에이전트가 취하는 작업은 블록체인 상태 또는 어떠한 오프-블록 입력에 의해 작동될 수 있다. 에이전트는 또한 거래의 다음 세트가 비트코인 네트워크에 브로드캐스트되고 다음으로 블록체인에 기록될 수 있도록 결정할 수 있다.
에이전트의 실행은 블록체인(예를 들어, 비트코인)에 병렬적 및 동시적으로 동작한다. 어떤 의미에서, 이는 블록체인(예를 들어, 비트코인) 스크립트의 기능을 확장한다. 이 지속적인 모니터링은 결합된 에이전트 및 블록체인 시스템 튜링 완전을 만드는 '루프' 제어 흐름 구조를 구현한다.
튜링 머신은 두 개의 스택을 포함한다.
Figure 112018118109474-pct00039
데이터 스택 : 이는 상기에서 설명한 것처럼 블록체인으로 표현된다.
Figure 112018118109474-pct00040
제어 스택 : 이는 관리자 기능으로 표현된다. 이는 반복 제어 흐름 기능에 관련한 정보를 저장한다.
데이터 스택으로부터의 제어 스택 분리는 비트코인 코어 내에서 무한 루프가 발생하는 것을 방지할 수 있는 이점을 제공하며 서비스 거부 공격을 완화한다.
에이전트는 루프 구조의 어떠한 형태(예를 들어, FOR-NEXT; REPEAT UNTIL 등)를 통해 루프할 수 있는 서브 루틴을 관리하고 수행한다. 여기서 설명된 실시예는 '반복' 구조의 일 예를 사용하는 포로세스를 포함한다. 사용자는 인덱스(i) 및 제한(J)을 특정한다. 이는 현재 반복 횟수(일반적으로 0으로부터 시작하여 카운트 된) 및 반복 루프의 반복 총 횟수를 각각 나타낸다.
각 반복은 아래와 같다.
1. 인덱스는 1씩 증가한다. 종료 조건을 위해, 반복은 인덱스가 제한에 도달할 때 멈춘다.
2. ICTA 문(statement)을 포함하는 코드 블록은 실행된다; 실행은 블록체인 상 또는 밖의 어떠한 실행일 수 있다.
3. 이러한 서브루틴의 암호화 해시는 계산된다. 이는 거래(Tx)의 일부로서 블록체인에 저장될 수 있다. 각 코드 블록마다 해시는 고유하기 때문에, 해당 코드가 사용되었는지 검증할 수 있다.
루프의 본체는 코드 블록을 포함한다. 각 코드 블록은 ICTA 문을 포함한다. 이는 아래를 매칭하여 거래를 위한 블록체인의 현재 상태를 모니터링한다.
Figure 112018118109474-pct00041
시작 또는 트리거 조건(즉, 특정 비트코인 주소가 10BTC에 도달한 경우)
Figure 112018118109474-pct00042
반복 조건(즉, 이전 반복과 관련된 메타데이터 또는 해시)
Figure 112018118109474-pct00043
중지 조건(즉, 루프의 마지막 반복)
ICTA 문은 블록체인의 현재 상태에 기초하여, 관리자가 다음 거래에서 생성하도록 결정될 수 있다. 다음 거래를 생성하는 것은 비트코인 네트워크상에 거래를 브로드캐스팅하는 것과 블록체인 상에 새로운 거래를 기록하는 것을 수반한다. 이는 이러한 반복이 실행되는 기록으로서 동작한다. 거래가 블록체인상에 기록되면, 관리자는 이전 반복이 블록체인 상에서 실행되고 기록된 것을 발견하고 다음 반복을 실행할 것이다. 후자는 인덱스(i)가 코드 블록에 지정된 제한(J)에 도달하여 반복 로프가 종료될 때까지 계속된다.
각 거래는 재사용될 수 있는 방법으로 블록체인에 저장된다. 비트코인 구현에서, 거래의 각 서명에는 SIGHASH 플래그가 추가된다. 이 플래그는 다른 값을 가질 수 있으며, 거래의 다른 부분인지를 나타내는 각각은 이 서명 소유자의 개입 없이 수정될 수 있다. 재사용 가능한 거래는 거래 입력의 하나에 SIGHASH 플래그 'SigHash_AnyoneCanPay'를 가진다. 이는 누구나 거래의 입력에 기여하도록 허용한다. 이 파라미터는 관리자의 ICTA 기능이 다른 입력과 함께 여러 번 실행되고 반복될 수 있도록 한다. 기능의 사용은 승인된 당사자로 제한될 수 있다(예를 들어, 재사용 가능한 거래의 저작권을 통해).
ICTA 코드 블록의 'If condition' 섹션은 조건의 어떤 형태를 모니터링할 수 있다. 이는 다른 프로그래밍 언어(예를 들어, C, C++, Java )와 유사하고 블록체인에 저장된 정보에 제한되지 않는다. 예를 들어, 날짜 및 시간을 모니터링 할 수 있거나(즉, 언제 특정 날짜 및 시간에 도달하는지) 날씨를 모니터링 할 수 있고(즉, 언제 온도가 10도 이하이고 비가 오는지), 신뢰 또는 계약의 조건을 모니터링 할 수 있다(즉, 언제 회사 A가 회사 B를 인수하는지).
ICTA 코드 블록의 'Then action' 섹션은 여러가지 실행을 수행할 수 있다. 본 발명은 취할 수 있는 실행의 횟수 또는 유형에 관련하여 제한되지 않는다. 비록 실행과 관련된 메타데이터를 포함하는 거래가 블록체인 상에 기록될 수 있지만, 실행은 블록체인 상의 거래에만 국한되지 않는다.
메타데이터는 어떠한 형태일 수 있다. 그러나, 본 발명의 실시예에 따르면, 메타데이터는 실행에 관련한 더 많은 데이터 또는 명령어를 포함하는 파일에 대한 하이퍼링크(hyperlink)를 저장할 수 있다. 메타데이터는 해시 테이블에 대한 룩업(look-up)키로서 동작하는 실행의 해시와 함께 실행에 관련한 더 많은 데이터 또는 명령어를 포함하는 해시 테이블에 대한 하이퍼링크를 저장할 수 있다.
에이전트의 제어 스택은 각 사용자의 요구에 따라 특정된 다양한 방법으로 구현될 수 있다. 예를 들어, 제어 스택의 반복 루프는 어떤 튜링 완전 언어에 기초할 수 있다. 한가지 가능한 언어 선택은 Forth 스타일 스택 기반 언어이다. 이 언어를 사용하는 이점은 이미 알려져 있고 널리 쓰이는 비트코인 스크립트를 통해 제어 스택을 프로그래밍 스타일에 일관되게 유지할 수 있다는 것이다.
데이터 저장 공간으로서 비트코인 스크립트의 대안적인 스택 이용하기
비트코인 스크립트는 연산 코드(op code)라고 불리는 명령을 포함하며, 이는 사용자가 알트 스택(alt stack)이라고 알려진 대체 스택에 데이터를 이동시킬 수 있도록 한다.
연산 코드는 다음과 같다.
Figure 112018118109474-pct00044
OP_TOALTSTACK - 이는 메인 스택의 상부에서 알트 스택의 상부로 데이터를 이동시킨다.
Figure 112018118109474-pct00045
OP_FROMALTSTACK - 이는 알트 스택의 상부에서 매인 스택의 상부로 데이터를 이동시킨다.
이는 데이터가 계산기 상에 저장될 수 있도록 하는 '메모리' 기능과 유사하게, 계산 중간 단계의 데이터를 알트 스택에 저장할 수 있다. 일 실시예에서, 알트 스택은 비트코인 스크립트가 작은 계산 작업을 해결하도록 구성되고 계산 결과를 반환하는데 이용될 수 있다.
에이전트를 관리하기 위하여 코드 레지스터를 사용하기
에이전트는 또한 소유하고 수행하는 모든 코드의 레지스트리를 관리한다. 이러한 레지스트리는 특정키를 특정값에 매핑하는 룩업 테이블 또는 사전과 같이 구성된다. 키 및 값 쌍은 코드 블록 해시(H1) 및 코드가 각각 저장되는 IPv6 주소로 표시된다. 키 H1을 사용하여 코드 블록을 검색하기 위해, 룩업 테이블은 관련된 값(이는 코드가 저장된 위치이다)을 검색하는데 이용되고 그에 따라 소스 코드를 검색한다. 코드 레지스트리의 구현은 다양할 수 있다.
관리자 코드의 거래 메타데이터, 그리고 루프의 재생성(Re-Spawning)
특정 반복에서 관리자 루프를 재생성하기 위해 요구되는 정보는 블록체인 상에 기록된 거래에 메타데이터로 저장된다.
이러한 방법에서, 블록체인 상의 거래는 에이전트에서 실행중인 루프의 주어진 반복에 대한 정보를 저장하거나 정보로의 접근을 제공한다. 이 정보는 인덱스 i와 같은 루프에 관련한 어떤 변수값, 그리고 코드 블록 또는 더 요청된 정보에 접근할 수 있는 곳을 특정하는 위치 관련 데이터에 이용된 파라미터 값과 같은 다른 필수 정보를 포함한다.
메타데이터 자체는 거래의 다중 서명 P2SH의 부분으로서 저장된다. 거래와 함께 기록된 메타데이터는 또한 과거에 어떻게 코드가 실행되었는지에 대한 감사 추적을 기록할 수 있는 기능을 제공한다.
에이전트가 각 반복에서 반복 루프 코드 블록을 재생성할 수 있는 몇몇 방법이 있다. 코드 블록은 에이전트 자체에서 하드 코드(hard-code)되거나, 개인적 또는 공개적으로 사용가능한 파일에 저장되거나, 개인 또는 공개 해시 테이블 파일상에 항목으로서 저장되거나, 상기의 조합일 수 있다. 코드 블록은 하드 코드된 변수로 고정될 수 있고, 또는 고정될 수 있지만 덧붙일 수 있는 파라미터를 포함할 수 있다. 파라미터는 어떤 데이터 포멧의 단일 값이거나, 작은 코드 덩어리이거나, 상기의 조합일 수 있다. 파라미터는 거래(예를 들어, 비트코인 거래)의 메타데이터로부터 또는 내부 데이터 베이스 또는 개인/공개 파일 또는 해시 테이블 또는 상기의 조합과 같은 외부 소스로부터 직접 그것들을 검색함으로써 덧붙여질 수 있다. 파라미터 값의 외부 소스에 대한 포인터(pointer)는 거래의 메타데이터에 저장될 수 있다.
아래의 단계는 어떻게 에이전트가 i번째 반복에서 반복 루프 코드 블록을 재생성할 수 있는지에 대한 일례를 제공한다. 예를 들어, 코드 레지스트리는 해시 테이블이고 이로써 해시 값은 테이블에 대해 룩업키로서 동작하고 거래 상 메타데이터에 저장된다.
1. 에이전트는 코드 레지스트리의 항목과 매칭되는 코드 블록의 해시를 포함하는 거래에 대한 블록체인을 모니터링한다.
2. 에이전트는 대응하는 해시(H1)를 포함하는 거래를 찾는다.
3. 에이전트는 ‘메타데이터-코드해시(Metadata-CodeHash)를 읽고, H1을 획득하기 위하여 코드해시를 획득하고, 코드(C1)를 검색하기 위해 이를 사용한다. 만약 RIPEMD-160(SHA256(C1))과 H1이 동일하면, 코드는 변경되지 않고 다음 단계로 진행하는 것이 안전하다.
4. 에이전트는 인덱스 I를 저장하는 ‘메타데이터-코드해시’를 읽고, i번째 반복에서 코드를 재생성한다. 다시 말해, 루프는 적절한 반복에서 ‘리로드(reload)’된다.
5. 사용자 서명은 메타데이터의 출처를 확인하기 위해 P2SH 명령에 포함된다.
6. 에이전트는 루프의 반복에 이러한 데이터가 필요하다면, 이전 단계의 출력을 검색하기 위해 ‘메타데이터-출력해시(Metadata-OutputHash)’ 및 ‘메타데이터-출력포인터(Metadata-OutputPointer)’(도 6 참조)를 읽는다.
위에서 언급한 변형의 상이한 조합에 기초하여, 비트코인 게이트를 구현하기 위해 많은 상이한 패턴이 있다는 것을 이해할 것이다. 다음은 오직 설명을 위한 패턴의 선택이며 제한하려는 것이 아니다. 각 패턴은 패턴의 고유 속성 및 게이트 로직의 의도된 용도에 따라 게이트의 한가지 유형, 여러 유형, 또는 모든 유형을 구현하는데 적합할 수 있다.
전술한 실시예들은 본 발명을 제한하기보다는 예시하고, 당업자는 첨부된 청구 범위에 의해 정의된 본 발명의 범위를 벗어나지 않고 많은 대안적인 실시예를 설계 할 수 있음을 알아야 한다. 청구 범위에서, 괄호 안의 임의의 참조 부호는 청구 범위를 제한하는 것으로 해석되어서는 안된다. 용어 "포함하는" 및 "포함하다" 등은 청구 범위 또는 명세서 전체에 열거 된 요소 또는 단계 이외의 요소의 존재를 배제하지 않는다. 본 명세서에서, "포함한다"는 "포함하거나 구성한다"를 의미하고 "포함하는"는 "포함하거나 구성하는"을 의미한다. 요소의 단일 참조는 이러한 요소의 복수 참조를 배제하지 않으며 그 반대도 마찬가지이다. 본 발명은 몇몇 별개의 요소들을 포함하는 하드웨어에 의해 그리고 적절하게 프로그래밍 된 컴퓨터에 의해 구현될 수 있다. 여러 수단들을 열거하는 장치 청구항에서, 이들 수단들 중 몇몇은 하나의 동일한 하드웨어 아이템에 의해 구현될 수 있다. 특정 측정 값이 서로 다른 종속 항에서 인용된다는 단순한 사실만으로 이 측정 값의 조합을 활용할 수 없다는 것을 의미하지는 않는다.

Claims (19)

  1. 프로세싱 리소스(processing resource)에 의해 구현되는 컴퓨터 구현 제어 방법에 있어서,
    제1 블록체인 거래에서 잠금 스크립트를 제공하는 단계, 상기 잠금 스크립트는 적어도 하나의 불린 입력을 처리하도록 구성된 적어도 하나의 명령을 포함하고,
    잠금 해제 스크립트를 가진 추가 블록체인 거래를 제공하는 단계,
    적어도 하나의 불린 입력을 제공하기 위해 적어도 하나의 입력 신호를 처리하는 단계,
    상기 제1 및 추가 블록체인 거래의 상기 잠금 및 잠금 해제 스크립트를 실행하기 위해 적어도 하나의 불린 입력을 이용하는 단계를 포함하고,
    추가 거래의 존재 또는 부재를 결정하기 위해 상기 블록체인 또는 블록체인 네트워크를 모니터링하거나 검색하는 단계, 및 블록체인 또는 블록체인 네트워크 내 추가 거래의 검출을 기반으로 장치 또는 프로세스의 동작에 영향을 미치도록 구성된 컴퓨팅 리소스를 제공하는 단계;를 더 포함하는 컴퓨터 구현 제어 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 불린 입력을 처리하기 위해 적어도 하나의 입력 신호를 처리하는 단계는,
    i) 추가 블록체인 거래의 잠금 해제 스크립트에 의해, 또는
    ii) 적어도 하나의 컴퓨팅 리소스 또는 에이전트에 의해 수행되는 컴퓨터 구현 제어 방법.
  3. 제1항 또는 제2항에 있어서,
    검증을 위해 블록체인 네트워크에 추가 거래 및/또는 제1 거래를 전송하는 단계를 포함하는 컴퓨터 구현 제어 방법.
  4. 제3항에 있어서,
    추가 거래의 유효성을 기반으로 장치 또는 프로세스의 동작에 영향을 미치도록 구성된 컴퓨팅 리소스를 제공하는 단계를 포함하는 컴퓨터 구현 제어 방법.
  5. 제3항에 있어서,
    블록체인 또는 블록체인 네트워크 내 추가 거래의 검출을 논리 게이트의 참(TRUE) 출력으로 해석하는 단계를 포함하는 컴퓨터 구현 제어 방법.
  6. 제1항 또는 제2항에 있어서,
    블록체인 네트워크 내 추가 거래의 검증은 잠금 해제 스크립트의 실행에 의존하는 컴퓨터 구현 제어 방법.
  7. 제1항 또는 제2항에 있어서,
    상기 추가 거래의 유효성에 기초한 프로세스 또는 장치를 제어하는 단계를 포함하며,
    여기서 상기 유효성은 컴퓨터 기반 제어 에이전트에 의해, 또는 네트워크 노드에 의해 검증되었는지를 결정하기 위하여 네트워크 노드를 모니터링 함으로써, 및/또는 상기 거래가 상기 블록체인에 기록되었는지 여부를 결정하기 위하여 상기 블록체인의 상태를 모니터링함으로써 결정되거나 수립되는 컴퓨터 구현 제어 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 잠금 스크립트 내 상기 적어도 하나의 명령은 논리 게이트의 진리표(truth table)를 구현하기 위해 구성되는 컴퓨터 구현 제어 방법.
  9. 제8항에 있어서,
    상기 논리 게이트는 OR 게이트, XOR 게이트, NAND 게이트, NOR 게이트, NOT 게이트, XNOR 게이트, IMPLY 게이트, 역함축(Converse implication) 게이트인 컴퓨터 구현 제어 방법.
  10. 제8항에 있어서,
    상기 논리 게이트는 AND 게이트인 컴퓨터 구현 제어 방법.
  11. 제1항 또는 제2항에 있어서,
    상기 적어도 하나의 입력은 수치값, 상수값, 해시 함수의 결과, 암호키, 블록체인 퍼즐, 및/또는 비트코인 또는 블록체인 관련 주소를 포함하는 컴퓨터 구현 제어 방법.
  12. 제1항 또는 제2항에 있어서,
    상기 제1 및/또는 추가 블록체인 거래는 컴퓨팅 기반 리소스에서 실행되는 자동화 프로세스에 의해 블록체인 네트워크에 전송 및/또는 생성되는 컴퓨터 구현 제어 방법.
  13. 제1항 또는 제2항에 있어서,
    상기 적어도 하나의 명령은,
    불린 조건 또는 연산자를 포함하고; 및/또는
    스택 기반 프로그래밍 언어를 이용하여 수행 및/또는 기록되는; 컴퓨터 구현 제어 방법.
  14. 제1항 또는 제2항의 컴퓨터 구현 제어 방법을 구현하기 위해 구성되는 컴퓨터 구현 시스템.
  15. 블록체인 상에서 또는 블록체인을 이용하여 구현되는 불린 계산 또는 연산을 포함하는 제어 시스템에 있어서,
    상기 불린 계산 또는 연산은,
    적어도 하나의 입력, 그리고 적어도 하나의 불린 출력을 제공하기 위해 상기 적어도 하나의 입력을 처리하여 불린 진리표의 기능을 구현하도록 선택된 적어도 하나의 명령을 포함하는 블록체인 거래를 포함하고,
    상기 제어 시스템은 블록체인 또는 블록체인 네트워크를 모니터링하거나 검색하여 상기 추가 거래의 존재 여부를 결정하고 블록체인 또는 블록체인 네트워크 내에서 상기 추가 거래의 감지를 기반으로 장치 또는 프로세스의 동작에 영향을 미치도록 배열된 컴퓨팅 리소스를 제공하도록 구성되는 제어 시스템.
  16. 제15항에 있어서,
    상기 진리표는 OR 게이트, XOR 게이트, NAND 게이트, NOR 게이트, NOT 게이트, IMPLY 게이트, NOT IMPLY 게이트 또는 XNOR 게이트 중 어느 하나에 대한 진리표인 제어 시스템.
  17. 제16항에 있어서,
    상기 진리표는 AND 게이트에 대한 진리표인 제어 시스템.
  18. 제15항 또는 제16항에 있어서,
    상기 출력은 불린 값이고, 또는
    상기 적어도 하나의 명령은 상기 거래와 연관된 스크립트 내에 제공되는 제어 시스템.
  19. 제18항에 있어서,
    상기 스크립트는 잠금 스크립트인 제어 시스템.
KR1020187034294A 2016-04-29 2017-04-28 블록체인을 이용한 논리 게이트 기능 구현 Active KR102416506B1 (ko)

Applications Claiming Priority (41)

Application Number Priority Date Filing Date Title
GB1607527.7 2016-04-29
GB1607530.1 2016-04-29
GBGB1607564.0A GB201607564D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GB1607558.2 2016-04-29
GB1607555.8 2016-04-29
GBGB1607569.9A GB201607569D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607541.8A GB201607541D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607538.4A GB201607538D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GB1607538.4 2016-04-29
GBGB1607553.3A GB201607553D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GB1607472.6 2016-04-29
GB1607584.8 2016-04-29
GB1607569.9 2016-04-29
GB1607539.2 2016-04-29
GB1607520.2 2016-04-29
GB1607541.8 2016-04-29
GB1607525.1 2016-04-29
GBGB1607555.8A GB201607555D0 (en) 2016-04-29 2016-04-29 Implementing loic gate functionality using a blockchain
GBGB1607529.3A GB201607529D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607520.2A GB201607520D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GB1607553.3 2016-04-29
GBGB1607525.1A GB201607525D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607539.2A GB201607539D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GB1607552.5 2016-04-29
GBGB1607552.5A GB201607552D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607527.7A GB201607527D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607530.1A GB201607530D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607566.5A GB201607566D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GB1607564.0 2016-04-29
GB1607529.3 2016-04-29
GB1607561.6 2016-04-29
GB1607554.1 2016-04-29
GBGB1607561.6A GB201607561D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607537.6A GB201607537D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607584.8A GB201607584D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607472.6A GB201607472D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GB1607566.5 2016-04-29
GB1607537.6 2016-04-29
GBGB1607558.2A GB201607558D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
GBGB1607554.1A GB201607554D0 (en) 2016-04-29 2016-04-29 Implementing logic gate functionality using a blockchain
PCT/IB2017/052464 WO2017187396A1 (en) 2016-04-29 2017-04-28 Implementing logic gate functionality using a blockchain

Publications (2)

Publication Number Publication Date
KR20190004311A KR20190004311A (ko) 2019-01-11
KR102416506B1 true KR102416506B1 (ko) 2022-07-04

Family

ID=58670105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187034294A Active KR102416506B1 (ko) 2016-04-29 2017-04-28 블록체인을 이용한 논리 게이트 기능 구현

Country Status (13)

Country Link
US (5) US11341484B2 (ko)
EP (6) EP3449450B1 (ko)
JP (3) JP2019517175A (ko)
KR (1) KR102416506B1 (ko)
CN (4) CN118313834A (ko)
AU (1) AU2017257448B2 (ko)
BR (1) BR112018071743A2 (ko)
CA (1) CA3019270A1 (ko)
GB (3) GB2564200A (ko)
SG (2) SG10202010720VA (ko)
TW (1) TWI770022B (ko)
WO (3) WO2017187399A1 (ko)
ZA (2) ZA201807089B (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898782B1 (en) 2013-06-28 2018-02-20 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
US10354325B1 (en) 2013-06-28 2019-07-16 Winklevoss Ip, Llc Computer-generated graphical user interface
US10068228B1 (en) 2013-06-28 2018-09-04 Winklevoss Ip, Llc Systems and methods for storing digital math-based assets using a secure portal
GB201607477D0 (en) 2016-04-29 2016-06-15 Eitc Holdings Ltd A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger
BR112018071743A2 (pt) * 2016-04-29 2019-02-19 Nchain Holdings Ltd método de controle e sistema implementados por computador e sistema de controle incorporando um cálculo ou operação booleana
US20190370789A1 (en) * 2017-02-10 2019-12-05 Intermine.com.au Pty Ltd Distributed block chain cryptocurrency system for securement against unauthorised transactions
EP3361672B1 (en) * 2017-02-10 2020-06-17 Nokia Technologies Oy Blockchain-based authentication method and system
WO2018175504A1 (en) * 2017-03-20 2018-09-27 Wasserman Steven Victor Blockchain digital currency: systems and methods for use in enterprise blockchain banking
SG10202112667UA (en) 2017-05-22 2021-12-30 Nchain Holdings Ltd Duplicating smart contracts with termination condition
EP3649547A1 (en) 2017-07-07 2020-05-13 Nchain Holdings Limited Method for compiling from a high-level scripting language to a blockchain native scripting language
EP3683707A4 (en) * 2017-09-14 2020-10-14 Sony Corporation INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING PROCESS AND PROGRAM
US11546162B2 (en) 2017-11-09 2023-01-03 Nchain Licensing Ag Systems and methods for ensuring correct execution of computer program using a mediator computer system
CN111316595B (zh) * 2017-11-09 2024-09-03 区块链控股有限公司 用于保护验证密钥不被更改并验证正确性证明的有效性的系统
GB201720946D0 (en) * 2017-12-15 2018-01-31 Nchain Holdings Ltd Computer-implemented system and method
US11227457B2 (en) * 2017-12-02 2022-01-18 International Business Machines Corporation Blockchain managed storage
SG11202005567QA (en) 2017-12-13 2020-07-29 Nchain Holdings Ltd System and method for securely sharing cryptographic material
GB201720753D0 (en) 2017-12-13 2018-01-24 Nchain Holdings Ltd Computer-implemented system and method
US11049182B2 (en) * 2017-12-28 2021-06-29 Chicago Mercantile Exchange Inc. Secure deterministic tokens for electronic messages
US10958436B2 (en) * 2017-12-28 2021-03-23 Industrial Technology Research Institute Methods contract generator and validation server for access control of contract data in a distributed system with distributed consensus
US11308487B1 (en) 2018-02-12 2022-04-19 Gemini Ip, Llc System, method and program product for obtaining digital assets
US10373158B1 (en) 2018-02-12 2019-08-06 Winklevoss Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US10373129B1 (en) 2018-03-05 2019-08-06 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US11909860B1 (en) 2018-02-12 2024-02-20 Gemini Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US10540654B1 (en) 2018-02-12 2020-01-21 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US10438290B1 (en) 2018-03-05 2019-10-08 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US12271898B1 (en) 2018-03-05 2025-04-08 Gemini Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US11475442B1 (en) 2018-02-12 2022-10-18 Gemini Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US11200569B1 (en) 2018-02-12 2021-12-14 Winklevoss Ip, Llc System, method and program product for making payments using fiat-backed digital assets
US12141871B1 (en) 2018-02-12 2024-11-12 Gemini Ip, Llc System, method and program product for generating and utilizing stable value digital assets
CN111901121B (zh) * 2018-04-03 2023-09-29 创新先进技术有限公司 跨区块链的认证方法及装置、电子设备
JP6949249B2 (ja) * 2018-04-16 2021-10-13 ビーシー ディベロップメント ラボズ ゲーエムベーハー 最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク
US11132707B2 (en) 2018-04-25 2021-09-28 At&T Intellectual Property I, L.P. Blockchain solution for an automated advertising marketplace
JP7372938B2 (ja) 2018-05-14 2023-11-01 エヌチェーン ライセンシング アーゲー ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
US11005646B2 (en) 2018-05-23 2021-05-11 International Business Machines Corporation Blockchain stochastic timer transaction synchronization
US11475448B2 (en) * 2018-05-30 2022-10-18 Launch Tech Co., Ltd. Maintenance plant management method, system and data management server
WO2020006138A1 (en) * 2018-06-29 2020-01-02 Arcblock, Inc. Blockchain adapter, protocol, and access layer
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
US11276059B2 (en) * 2018-07-31 2022-03-15 Molten Inc. System and method for autonomous sustenance of digital assets
US11316668B2 (en) 2018-11-16 2022-04-26 Safetech Bv Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information
US11133983B2 (en) * 2018-12-14 2021-09-28 T-Mobile Usa, Inc. Provisioning edge devices in a mobile carrier network as compute nodes in a blockchain network
TWI701618B (zh) * 2019-01-09 2020-08-11 台灣海耶克股份有限公司 以任務階層分配資源的方法
US10962965B2 (en) 2019-01-15 2021-03-30 Fisher-Rosemount Systems, Inc. Maintaining quality control, regulatory, and parameter measurement data using distributed ledgers in process control systems
US11042147B2 (en) * 2019-01-15 2021-06-22 Fisher-Rosemount Systems, Inc. Machine-to-machine transactions using distributed ledgers in process control systems
US20220130005A1 (en) * 2019-01-31 2022-04-28 Roxe Holding Inc. Digital asset management systems and methods
US20200389435A1 (en) * 2019-03-01 2020-12-10 Syntegrity Networks Inc. Auditing smart bits
US11611584B2 (en) 2019-03-01 2023-03-21 Cloudentity, Inc. Smart bits
GB201905198D0 (en) * 2019-04-12 2019-05-29 Nchain Holdings Ltd Computer implemented method and system for knowledge proof in blockchain transactions
US11228446B2 (en) 2019-05-10 2022-01-18 Advanced New Technologies Co., Ltd. Blockchain-based reconciliation method and apparatus and electronic device
US11153621B2 (en) 2019-05-14 2021-10-19 At&T Intellectual Property I, L.P. System and method for managing dynamic pricing of media content through blockchain
GB201907346D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Using blockchain transactions to provide off-chain functionality
GB201907345D0 (en) 2019-05-24 2019-07-10 Nchain Holdings Ltd Protocol for validating blockchain transactions
GB2588072A (en) * 2019-05-24 2021-04-21 Nchain Holdings Ltd Malleability of transactions for inclusion in a blockchain
GB201907347D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd In-script functions within a blockchain transaction
CN110225016B (zh) * 2019-05-31 2020-05-19 北京理工大学 一种基于区块链网络的数据隐蔽传输方法
TWI722554B (zh) * 2019-09-03 2021-03-21 橘橘鏈科技股份有限公司 證券型代幣協議系統及其代幣化方法
TWI722553B (zh) * 2019-09-03 2021-03-21 橘橘鏈科技股份有限公司 實質資產轉換成加密資產之裝置
GB201913143D0 (en) * 2019-09-12 2019-10-30 Nchain Holdings Ltd Running a program from a blockchain
GB201913667D0 (en) * 2019-09-23 2019-11-06 Nchain Holdings Ltd Computer-implemented system and method
US11954681B2 (en) * 2019-09-30 2024-04-09 Southeast University Blockchain-enhanced open internet of things access architecture
US11556618B2 (en) 2020-02-18 2023-01-17 At&T Intellectual Property I, L.P. Split ledger software license platform
CN114372879A (zh) * 2021-06-29 2022-04-19 杭州复杂美科技有限公司 交易方法、计算机设备和存储介质
US12015602B2 (en) 2021-08-16 2024-06-18 Bank Of America Corporation Information security system and method for secure data transmission among user profiles using a blockchain network
CN116012150A (zh) * 2022-07-25 2023-04-25 天津理工大学 一种比特币交易自治消息提取及解析方法
GB2628365A (en) * 2023-03-21 2024-09-25 Nchain Licensing Ag Determining a system state using a blockchain
GB2628366A (en) * 2023-03-21 2024-09-25 Nchain Licensing Ag Determining a system state using a blockchain
KR102598503B1 (ko) * 2023-05-02 2023-11-07 주식회사 오에스정보통신 블록체인을 이용한 통합배선반 관리 시스템, 블록체인 기반의 분산저장 처리장치 및 방법
WO2025056986A1 (en) 2023-09-12 2025-03-20 Wgc (Uk) Limited Method and system to digitize the value of a commodity
TWI835704B (zh) * 2023-10-02 2024-03-11 安瀚科技股份有限公司 執行硬體電子錢包之非同質化代幣預設鑄造授權之系統與方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150363783A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency risk detection system
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE38451E1 (en) * 1993-11-12 2004-03-02 Altera Corporation Universal logic module with arithmetic capabilities
US8339287B2 (en) * 2002-03-29 2012-12-25 Inputive Corporation Device to control an electronic or computer system utilizing a fluid flow and a method of manufacturing the same
US7096216B2 (en) 2002-07-20 2006-08-22 Microsoft Corporation Performing operations on a set of objects in a database system
US20040215650A1 (en) 2003-04-09 2004-10-28 Ullattil Shaji Interfaces and methods for group policy management
US7627644B2 (en) 2003-11-28 2009-12-01 Canon Kabushiki Kaisha Recipient-centred proactive caching in a peer-to-peer system
US7526672B2 (en) 2004-02-25 2009-04-28 Microsoft Corporation Mutual exclusion techniques in a dynamic peer-to-peer environment
CN1838140A (zh) * 2005-03-25 2006-09-27 威盛电子股份有限公司 运用加密功能以产生信息摘要的设备及方法
CA2611527A1 (en) * 2005-06-09 2006-12-21 Whirlpool Corporation Software architecture system and method for communication with, and management of, at least one component within a household appliance
CA2657212C (en) 2005-07-15 2017-02-28 Indxit Systems, Inc. Systems and methods for data indexing and processing
ATE472212T1 (de) * 2005-11-08 2010-07-15 Irdeto Access Bv Verfahren zur verschlüsselung und entschlüsselung von dateneinheiten
EP1952330A1 (en) * 2005-11-21 2008-08-06 Saxo Bank A/S A financial trading system
US20070136155A1 (en) 2005-11-30 2007-06-14 Microsoft Corporation Financial dimension sets and hierarchies
US7298170B2 (en) * 2005-12-30 2007-11-20 Honeywell International Inc. Safety system based on reconfigurable array of logic gates
US7761277B2 (en) 2006-09-14 2010-07-20 International Business Machines Corporation System and method for improved logic simulation using a negative unknown boolean state
US8185749B2 (en) 2008-09-02 2012-05-22 Apple Inc. System and method for revising boolean and arithmetic operations
US8407723B2 (en) * 2009-10-08 2013-03-26 Tibco Software, Inc. JAVA virtual machine having integrated transaction management system and facility to query managed objects
US9063978B1 (en) 2009-10-16 2015-06-23 Igor US Inc. Apparatuses, methods and systems for a financial transaction tagger
US8301880B2 (en) 2009-11-09 2012-10-30 Cisco Technology, Inc. Certificate enrollment with purchase to limit sybil attacks in peer-to-peer network
US8782429B2 (en) * 2009-12-23 2014-07-15 Ab Initio Technology Llc Securing execution of computational resources
US20110218891A1 (en) 2010-03-02 2011-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Displaying prepaid account information at mobile station
FR2964929B1 (fr) * 2010-09-17 2012-09-28 Renault Sa Procede de commande de l'affichage au tableau de bord des rapports de transmission d'une boite de vitesse automatique et systeme associe
US8261085B1 (en) * 2011-06-22 2012-09-04 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
WO2013172790A1 (en) * 2012-05-16 2013-11-21 Nanyang Technological University Methods for determining a result of applying a function to an input and evaluation devices
US20170220998A1 (en) 2012-06-14 2017-08-03 Gregory William Horn Automated service management system with rule-based, cascading action requests
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.
CN103576076B (zh) * 2012-07-27 2019-02-01 恩智浦美国有限公司 用于执行扫描测试的系统和方法
JP5896342B2 (ja) * 2012-09-04 2016-03-30 富士ゼロックス株式会社 情報処理装置、証跡収集システム及びプログラム
US9282693B2 (en) 2013-02-20 2016-03-15 Deere & Company Data encoding with planting attributes
GB2514716A (en) 2013-10-25 2014-12-03 Univ Stellenbosch System and method for monitoring third party access to a restricted item
US9569616B2 (en) 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
US20150206106A1 (en) 2014-01-13 2015-07-23 Yaron Edan Yago Method for creating, issuing and redeeming payment assured contracts based on mathemematically and objectively verifiable criteria
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
FR3018379A1 (fr) 2014-03-07 2015-09-11 Enrico Maim Systeme et procedes transactionnels a architecture repartie fondes sur des transactions de transfert 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
WO2015142765A1 (en) * 2014-03-17 2015-09-24 Coinbase, Inc Bitcoin host computer system
US9858569B2 (en) 2014-03-21 2018-01-02 Ramanan Navaratnam Systems and methods in support of authentication of an item
US20150278820A1 (en) 2014-03-25 2015-10-01 Mark Stephen Meadows Systems and methods for executing cryptographically secure transactions using voice and natural language processing
EP3123423A4 (en) 2014-03-27 2017-08-30 Nokia Technologies Oy Method and apparatus for automatic inter-device authorisation
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US9830593B2 (en) * 2014-04-26 2017-11-28 Ss8 Networks, Inc. Cryptographic currency user directory data and enhanced peer-verification ledger synthesis through multi-modal cryptographic key-address mapping
EP3140979A4 (en) * 2014-05-09 2017-12-27 Veritaseum Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
ZA201502969B (en) 2014-05-09 2016-01-27 Univ Stellenbosch Enabling a user to transact using cryptocurrency
WO2015175722A1 (en) 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
US9818092B2 (en) * 2014-06-04 2017-11-14 Antti Pennanen System and method for executing financial transactions
KR101626276B1 (ko) * 2014-06-17 2016-06-01 어준선 디지털 화폐와 연동되어 디지털 컨텐츠를 생성, 제공, 재생하기 위한 방법, 이를 이용한 단말 및 컴퓨터 판독 가능한 기록 매체
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
US20160086175A1 (en) 2014-09-22 2016-03-24 Qualcomm Incorporated Peer-to-peer transaction system
GB201416822D0 (en) 2014-09-24 2014-11-05 Byrne Preston J Self-operating smart contract platform
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
CA2964214C (en) * 2014-10-02 2020-08-04 ecoATM, Inc. Wireless-enabled kiosk for recycling consumer devices
CN104392354B (zh) * 2014-11-05 2017-10-03 中国科学院合肥物质科学研究院 一种公钥地址与用户账号的关联和检索方法及其系统
CN104320262B (zh) * 2014-11-05 2017-07-21 中国科学院合肥物质科学研究院 基于加密数字货币公开账本技术的用户公钥地址绑定、检索和校验的方法及系统
US20160217436A1 (en) 2015-01-25 2016-07-28 Dror Samuel Brama Method, System and Program Product for Tracking and Securing Transactions of Authenticated Items over Block Chain Systems.
US9641338B2 (en) 2015-03-12 2017-05-02 Skuchain, Inc. Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items
HK1249791A1 (zh) 2015-03-31 2018-11-09 Nasdaq, Inc. 區塊鏈交易記錄的系統和方法
US9942046B2 (en) 2015-05-06 2018-04-10 21, Inc. Digital currency mining circuitry with adaptable difficulty compare capabilities
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
US20160358267A1 (en) 2015-06-02 2016-12-08 Elwha Llc Machine/article/composition/process state(s) for tracking philanthropic and/or other efforts
EP3125489B1 (en) * 2015-07-31 2017-08-09 BRITISH TELECOMMUNICATIONS public limited company Mitigating blockchain attack
GB2540975A (en) 2015-07-31 2017-02-08 British Telecomm Mitigating blockchain attack
US20170075877A1 (en) * 2015-09-16 2017-03-16 Marie-Therese LEPELTIER Methods and systems of handling patent claims
US10937023B2 (en) 2015-10-15 2021-03-02 Paypal, Inc. Crypto currency chargeback system
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
US20180253702A1 (en) 2015-11-24 2018-09-06 Gartland & Mellina Group Blockchain solutions for financial services and other transactions-based industries
US10521973B2 (en) 2015-12-17 2019-12-31 International Business Machines Corporation System for monitoring and enforcement of an automated fee payment
US20170214701A1 (en) * 2016-01-24 2017-07-27 Syed Kamran Hasan Computer security based on artificial intelligence
US10255108B2 (en) 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
US20170243193A1 (en) 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
US10475030B2 (en) 2016-02-22 2019-11-12 Bank Of America Corporation System for implementing a distributed ledger across multiple network nodes
US10142312B2 (en) 2016-02-22 2018-11-27 Bank Of America Corporation System for establishing secure access for users in a process data network
US20170270527A1 (en) 2016-03-17 2017-09-21 John Rampton Assessing trust to facilitate blockchain transactions
CN109154885B (zh) * 2016-03-21 2023-05-12 澳大利亚国家Ict有限公司 区块链平台上的业务处理执行
GB201605154D0 (en) 2016-03-27 2016-05-11 Csefalvay Chris Von And Kraaijenhagen Rutger And Sanford Brett And Maverick Labs Ltd A method, software and architecture for a graphical user interface for creating, editing, visualizing and authenticating smart contracts
US10346406B2 (en) 2016-03-28 2019-07-09 International Business Machines Corporation Decentralized autonomous edge compute coordinated by smart contract on a blockchain
US11526938B2 (en) * 2016-03-31 2022-12-13 Refinitiv Us Organization Llc Systems and methods for providing financial data to financial instruments in a distributed ledger system
WO2017173399A1 (en) * 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
BR112018071743A2 (pt) * 2016-04-29 2019-02-19 Nchain Holdings Ltd método de controle e sistema implementados por computador e sistema de controle incorporando um cálculo ou operação booleana
US10198325B2 (en) * 2016-05-24 2019-02-05 Mastercard International Incorporated Method and system for desynchronization recovery for permissioned blockchains using bloom filters
US10523443B1 (en) 2016-08-24 2019-12-31 Bruce Kleinman Devices, methods, and systems for cryptographic authentication and provenance of physical assets
KR101781583B1 (ko) 2016-08-31 2017-09-27 서강대학교산학협력단 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법
US11182851B2 (en) * 2016-10-20 2021-11-23 International Business Machines Corporation Inter-ledger messaging in a blockchain
US10380560B2 (en) * 2016-11-14 2019-08-13 International Business Machines Corporation Enforcing multi-use constraints on a blockchain
US10554746B2 (en) * 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
US10396997B2 (en) 2016-12-14 2019-08-27 International Business Machines Corporation Container-based operating system and method
US10445302B2 (en) * 2017-01-03 2019-10-15 International Business Machines Corporation Limiting blockchain size to optimize performance
US10560268B2 (en) * 2017-02-13 2020-02-11 International Business Machines Corporation Node characterization in a blockchain
US10356102B2 (en) * 2017-02-24 2019-07-16 Verizon Patent And Licensing Inc. Permissions using blockchain
US10515233B2 (en) * 2017-03-19 2019-12-24 International Business Machines Corporation Automatic generating analytics from blockchain data
FR3065826B1 (fr) * 2017-04-28 2024-03-15 Patrick Pirim Procede et dispositif associe automatises aptes a memoriser, rappeler et, de maniere non volatile des associations de messages versus labels et vice versa, avec un maximum de vraisemblance
CN108647963B (zh) 2018-05-02 2020-05-12 百度在线网络技术(北京)有限公司 区块链主链的确定方法、装置、服务器和存储介质
US11277406B2 (en) * 2019-06-28 2022-03-15 Intel Corporation MTS-based mutual-authenticated remote attestation

Patent Citations (2)

* 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
US20150363783A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency risk detection system

Also Published As

Publication number Publication date
EP4105868A1 (en) 2022-12-21
JP2024073535A (ja) 2024-05-29
WO2017187398A1 (en) 2017-11-02
SG11201809115RA (en) 2018-11-29
US20240257107A1 (en) 2024-08-01
GB2564198A (en) 2019-01-09
US20190139031A1 (en) 2019-05-09
GB201806516D0 (en) 2018-06-06
EP3449451B1 (en) 2022-07-27
EP3449451B8 (en) 2022-09-14
US11694193B2 (en) 2023-07-04
JP2019517175A (ja) 2019-06-20
WO2017187396A1 (en) 2017-11-02
WO2017187399A1 (en) 2017-11-02
US20220358491A1 (en) 2022-11-10
US11341484B2 (en) 2022-05-24
ZA201807092B (en) 2024-09-25
KR20190004311A (ko) 2019-01-11
US20190116024A1 (en) 2019-04-18
AU2017257448A1 (en) 2018-11-01
GB2568333A (en) 2019-05-15
CN109791659A (zh) 2019-05-21
TWI770022B (zh) 2022-07-11
US20240005310A1 (en) 2024-01-04
EP4102431A1 (en) 2022-12-14
EP3449452B1 (en) 2022-06-29
CN118313834A (zh) 2024-07-09
JP2022095891A (ja) 2022-06-28
SG10202010720VA (en) 2020-12-30
GB201806519D0 (en) 2018-06-06
GB201806702D0 (en) 2018-06-06
EP3449451A1 (en) 2019-03-06
US11900364B2 (en) 2024-02-13
EP4092956A1 (en) 2022-11-23
CN109074576A (zh) 2018-12-21
AU2017257448B2 (en) 2023-03-02
EP3449452A1 (en) 2019-03-06
CN109155034A (zh) 2019-01-04
BR112018071743A2 (pt) 2019-02-19
TW201741956A (zh) 2017-12-01
CA3019270A1 (en) 2017-11-02
EP3449450A1 (en) 2019-03-06
ZA201807089B (en) 2023-04-26
GB2564200A (en) 2019-01-09
EP3449450B1 (en) 2022-06-15

Similar Documents

Publication Publication Date Title
KR102416506B1 (ko) 블록체인을 이용한 논리 게이트 기능 구현
US12278806B2 (en) Operating system for blockchain IoT devices
Yaga et al. Blockchain technology overview
US20190149337A1 (en) Implementing logic gate functionality using a blockchain
HK40077645A (en) Implementing logic gate functionality using a blockchain
HK40077644A (en) Implementing logic gate functionality using a blockchain

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20181127

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200331

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210824

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220330

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220629

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220630

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20250522

Start annual number: 4

End annual number: 4