KR102373685B1 - 블록체인 iot장치를 위한 동작 시스템 - Google Patents

블록체인 iot장치를 위한 동작 시스템 Download PDF

Info

Publication number
KR102373685B1
KR102373685B1 KR1020187034205A KR20187034205A KR102373685B1 KR 102373685 B1 KR102373685 B1 KR 102373685B1 KR 1020187034205 A KR1020187034205 A KR 1020187034205A KR 20187034205 A KR20187034205 A KR 20187034205A KR 102373685 B1 KR102373685 B1 KR 102373685B1
Authority
KR
South Korea
Prior art keywords
node
control component
blockchain
dht
control
Prior art date
Application number
KR1020187034205A
Other languages
English (en)
Other versions
KR20190004309A (ko
Inventor
크레이그 스티븐 라이트
스테판 사바나
Original Assignee
엔체인 홀딩스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20190004309A publication Critical patent/KR20190004309A/ko
Application granted granted Critical
Publication of KR102373685B1 publication Critical patent/KR102373685B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/308Payment architectures, schemes or protocols characterised by the use of specific devices or networks using the Internet of Things
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G16Y80/03
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/35Utilities, e.g. electricity, gas or water
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Power Engineering (AREA)
  • Environmental Sciences (AREA)
  • Medical Informatics (AREA)
  • Birds (AREA)
  • Animal Husbandry (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 장치의 활동을 조정, 제어 및 / 또는 영향을 미치는 일반적인 운영 시스템을 제공한다. 본 발명은 운영 체제가 상호 작용하도록 구성된 블록체인 플랫폼을 사용하여 구현된다. 블록체인은 비트코인 블록체인 일 수 있다. 바람직한 실시예에서, 상기 장치는 IOT (Internet of Things) 장치이다. 본 발명은 장치를 제어하기 위하여 컴퓨터 - 구현 제어 시스템 및 대응하는 방법을 제공한다. 상기 시스템은, 네트워크와 통신하고 IP 어드레스 및 장치와 관련된 공개 - 개인키 암호화 키 쌍을 갖는 장치; 블록체인 네트워크의 상태를 모니터링하고 및 / 또는 블록체인 거래를 블록체인 네트워크에 전송하는 소프트웨어 구현 제어 컴포넌트에 있어서, 상기 제어 컴포넌트는 상기 장치와 별도의 저장된 위치로부터 상기 명령어 세트에 액세스하도록 배열되고; 그리고, 상기 장치의 기능을 제어하기 위해 상기 제어 컴포넌트에 의해 실행되도록 구성되는 명령어 세트에 있어서, 상기 명령어 세트는 분산 해시 테이블(DHT, Distributed Hash Table)에 저장되고, 상기 DHT로부터 상기 제어 컴포넌트에 의한 다운로드 및 설치를 위해 액세스되며, 상기 DHT의 위치는 블록체인 거래내에 제공된 메타 데이터를 사용하여 지시되거나 제공된다. 제어 컴포넌트는 상기 장치와 별도의 저장된 위치로부터 상기 명령 세트에 액세스하도록 배열될 수 있다. 상기 명령어는 분산 해시 테이블(DHT, Distributed Hash Table)에 저장되고, 필요시 상기 DHT로부터 상기 제어 컴포넌트에 의한 다운로드 및 설치를 위해 액세스될 수 있다. 상기 DHT의 위치는 블록체인 거래내에 제공된 메타 데이터를 사용하여 지시되거나 제공될 수 있다. 상기 명령어 세트는 암호화 키 쌍과 관련된 룩업 키를 사용하여 상기 제어 컴포넌트에 의해 액세스될 수 있다. 제어 컴포넌트는 장치상에 또는 장치내에 제공 될 수 있다. 이것은 오프 디바이스 위치에 제공될 수 있고 장치와의 무선 통신을 위해 배열 될 수 있다.

Description

블록체인 IOT장치를 위한 동작 시스템
본 발명은 일반적으로 분산 장부(블록 체인) 기술에 관한 것이다. 비트코인 블록 체인을 포함하되 이에 국한되지 않는 임의의 블록 체인 관련 기술이 될 수 있다. 본 발명의 일면은 사물 인터넷 (IoT)에 관한 것이다. 본 발명은 IoT 장치를 제어하는데 적합 할 수 있다.
이 문서에서는 모든 형태의 전자, 컴퓨터 기반 분산 장부를 포함하기 위해 '블록체인(blockchain)'이라는 용어를 사용한다. 여기에는 합의-기반 블록체인 및 거래-체인 기술, 허가된 및 허가되지 않은 장부, 공유 장부 및 그 변형이 포함된다. 다른 블록체인 구현이 제안되고 개발되었지만, 블록체인 기술의 가장 널리 알려진 응용은 비트코인 장부이다. 비트코인은 본 명세서에서 편의 및 설명을 위해 언급 될 수 있지만, 본 발명은 비트코인 블록체인과 함께 사용하는 것으로 제한되지 않으며 다른 블록체인 구현 및 프로토콜도 본 발명의 범위 내에 속한다는 것을 알아야 한다. "사용자"라는 용어는 여기에서 인간 또는 프로세서 기반 리소스를 의미 할 수 있다.
블록체인은 결과적으로 거래로 이루어진 블록으로 이루어진 컴퓨터 기반 분산, 분배 시스템으로 구현된 피어-투-피어, 전자 장부이다. 각 거래는 블록체인 시스템의 참여자간 디지털 자산의 제어 전환을 인코딩하고, 적어도 하나의 입력 및 적어도 하나의 출력을 포함하는 데이터 구조이다. 각 블록은 시작 이래로 블록체인에 기록된 모든 거래의 영구적이고 바꿀 수 없는 기록을 생성하기 위해 서로 연결된 해당 블록에 대한 이전 블록의 해시를 포함한다. 거래는 입력 및 출력에 임베드(embed)된 스크립트로 알려진 작은 프로그램을 포함하며, 이는 어떻게 또는 누구에 의해 거래의 출력이 접근될 수 있는지를 특정한다. 비트코인 플랫폼 상에서, 이러한 스크립트는 스택 기반(stack-based) 스크립팅 언어를 사용하여 기록된다.
거래가 블록체인에 저장되기 위해서는, “유효성 검사(validated)”가 되어야 한다. 네트워크 노드(채굴자(miner))는 네트워크로부터 거부된 비유효(invalid) 거래를 통해, 각 거래가 유효한지를 확인하기 위하여 작업을 수행한다. 노드에 설치된 소프트웨어 클라이언트는 잠금 및 잠금 해제 스크립트를 실행함으로써 미사용 거래(UTXO)에 대한 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 수행이 참(TRUE)으로 평가되면, 거래는 유효하다. 스크립팅 언어의 많은 명령은 부울값(예: OP-EQUAL)을 반환하므로 블록체인 거래에 조건을 내장 할 수 있다
블록체인 기술은 암호 화폐 구현시 사용되는 것으로 가장 널리 알려져 있다. 그러나 최근에 디지털 기업은 비트코인을 기반으로 하는 암호화 보안 시스템의 사용과 새로운 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터를 모두 연구하기 시작했다. 본 발명은 블록체인 기술의 새롭고 독창적인 사용법 중 하나에 관한 것이다.
특히 광범위하고 다양한 컴퓨터 구현 시스템을 만들기 위해 간단하지만 효과적이고 강력한 메커니즘을 구현하는 블록체인(blockchain)의 사용과 관련이 있다. 이러한 시스템은 프로세스를 자동화 및 제어하고 / 또는 장치의 행동을 지시하기 위한 제어 유닛 및 제어 시스템을 포함 할 수 있다.
이러한 장치에는 IOT 장치가 포함될 수 있다. IOT 장치는 전자 회로, 소프트웨어, 센서 및 네트워킹 기능 등이 내장되어 있어 무선 장치를 통해 다른 장치 및 시스템과 통신하고 원하는 작업을 수행할 수 있다. 어떤 경우에는 매우 작을 수 있으며 제한된 처리 기능 및 메모리 용량만 포함할 수 있다. 장치 작업에 필요한 소프트웨어가 크고 복잡하면 문제가 된다. 또한, IoT 연결성 및 인텔리전스를 제공하는 데 필요한 소프트웨어 및 하드웨어가 장치 자체에 제공되기 때문에 설치, 유지 관리 및 업그레이드 등이 더 어렵고 비용이 많이 소요된다. 또한 IOT의 잠재력에 대한 최근의 관심은 보안과 관련한 우려로 줄어들고 있다.
공개 선행 기술 "ADEPT: IoT Practitioner Perspective"(2015년 1월)는 블록체인 기술과 IoT 장치를 통합하는 접근법을 제시한다. 발표 당시 자료는, https://ia902601.us.archive.org/4/items/pdfy-esMcC00dKmdo53-/IBM%20ADEPT%20Practictioner%20Perspective%20-%20Pre%20Publication%20Draft%20-%207%20Jan%202015.pdf에서 검색할 수 있다. 이 공개 기술(이하 "ADEPT")은 블록체인을 통하여 계약에 의해 관리되고 소매업자와 통신하여 "세제를 사용하지 않음" 상태를 만족할 때 소모품을 구매하는 세탁기 장치를 설명한다.
그러나, ADEPT는 IoT 시스템이 어떻게 블록체인에 대해 작동할 수 있는지를 개시하지만, 그러한 시스템이 블록체인을 사용하여 어떻게 배열, 구성 또는 기술적으로 영향을 받을 수 있는지에 대한 문제의 원인은 제시하지 않는다. 즉, ADEPT는 IoT의 소프트웨어가 블록체인과 자율적으로 상호 작용할 수 있는 방법을 설명하지만, 첫 번째 인스턴스에서 어떻게 소프트웨어를 장치에 가져올 수 있는지, 또는 사용 / 작동 / 배포 중에 어떻게 장치의 동작을 변경할 수 있는지에 대한 논의나 공개는 없다.
따라서 강력한 장치 보안을 유지하면서 모든 장치에 로드할 수 있을 정도로 충분히 작고 일반적인 장치(즉 비장치 특화)가 있는 운영 체제를 갖는 것이 이점이다. 다시 말해, 장치의 구성, 설정 및 기능을 간단하고 효율적이며 동적인 방법으로 변경할 수 있다면 상당한 기술적 이점이 될 것이다. 이러한 기술적 해결책은 ADEPT와 같은 종래 기술에서는 다루어지지 않는다. 공개된 선행 기술에 대한 또 다른 이점은 장치에 의해 제공되는 서비스에 대한 지불을 처리할 수 있는 가능성을 포함하는, 간단하고 안전하며 강력한 제어 기능을 가능하게 하는 능력이다. 본 발명은 IOT를 예를 들어, 비트코인 프로토콜과 같은 블록체인 프로토콜에 인터페이싱함으로써 이러한 목적 및 다른 목적을 해결한다.
따라서, 본 발명에 따르면, 첨부된 청구항에 정의된 바와 같은 시스템 및 방법이 제공된다.
본 발명은 컴퓨터 구현 시스템 및 방법을 제공할 수있다. 이것은 하나 이상의 장치의 활동을 제어, 지시 및 / 또는 영향을 주기 때문에 제어 방법으로 설명 될 수 있다. 본 발명은 운영 체제로서 설명될 수 있으며, 소프트웨어로 구현될 수 있다.
그것은 적어도 하나의 장치의 활동을 조정, 제어 및 / 또는 영향을 미치는 운영 체제를 포함할 수 있다. 운영 체제는 제어하는 장치와 독립적이라는 점에서 일반적인 것일 수 있다.
본 발명은 운영 시스템("제어 컴포넌트")이 상호 작용하도록 배열된 블록체인 플랫폼을 사용하여 구현될 수 있다. 블록체인은 비트코인 블록체인 일 수 있다. 바람직한 실시예에서, 상기 장치는 IOT(Internet of Things) 장치이다.
본 발명은 장치를 제어하기 위한 컴퓨터 구현 제어 시스템을 제공할 수 있다. 상기 시스템은: 네트워크와 통신하고 IP 어드레스 및 장치와 관련된 공개 - 개인키 암호화 키 쌍을 갖는 장치; 블록체인 네트워크의 상태를 모니터링하고 및 / 또는 블록체인 거래를 블록체인 네트워크에 전송하는 소프트웨어 구현 제어 컴포넌트에 있어서, 상기 제어 컴포넌트는 상기 장치와 별도의 저장된 위치로부터 상기 명령어 세트에 액세스하도록 배열되고; 그리고, 상기 장치의 기능을 제어하기 위해 상기 제어 컴포넌트에 의해 실행되도록 구성되는 명령어 세트에 있어서, 상기 명령어 세트는 분산 해시 테이블(DHT, Distributed Hash Table)에 저장되고, 상기 DHT로부터 상기 제어 컴포넌트에 의한 다운로드 및 설치를 위해 액세스되며, 상기 DHT의 위치는 블록체인 거래내에 제공된 메타 데이터를 사용하여 지시되거나 제공된다.
제어 컴포넌트는 장치와 분리 된 저장된 위치, 즉 "오프 장치"로부터 명령 세트에 액세스하도록 배열될 수 있다.
제어 컴포넌트는 입력 소스로부터 입력 신호를 수신하도록 배치되고, 상기 입력 소스는, 추가 장치; 및 / 또는 컴퓨터 기반 자원 또는 에이전트일 수 있다. 컴퓨터 기반 에이전트 또는 리소스는 실질적으로 아래에서 설명하는 것과 같다.
명령어 세트는 분산 해시 테이블(DHT, Distributed Hash Table)에 저장되고, 상기 DHT로부터 상기 제어 컴포넌트에 의한 다운로드 및 설치를 위해 액세스될 수 있다. 이것의 장점은 명령(및 장치의 기능성)을 변경할 수 있는 능력을 제공한다는 것이다.
DHT의 위치는 블록체인 거래내에 제공된 메타 데이터를 사용하여 지시되거나 제공될 수 있다. 이것의 장점은 명령어의 위치가 블록체인 내에서 일관되게 기록된다는 것이다. 따라서 영구적이고 변조 방지된 기록이 제공되며 위치는 블록체인에 대한 액세스 권한이 있는 모든 당사자가 확인할 수 있다. 따라서 보안성 및 검증성이 향상된다.
명령어 세트는 암호 키 쌍과 관련된 룩업 키를 사용하여 제어 컴포넌트에 의해 액세스 될 수 있다.
제어 컴포넌트는 장치상에 또는 장치 내에 제공될 수 있다. 이것은 오프 장치 위치에 제공될 수 있고, 장치와의 무선 통신을 위해 배열될 수 있다
상기 제어 컴포넌트는, 암호화 연산 수행; 연관된 개인 / 공개키 쌍에 액세스; 관련된 비트코인 또는 다른 블록체인 관련 주소 보유; API를 통한 장치 작동; 비밀 공유 프로토콜 동작 수행;을 하도록 구성될 수 있다. 이것은 실질적으로 아래에서 설명되는 비밀 공유 프로토콜에 따른 것일 수 있다.
제어 컴포넌트는 유효한 블록체인 거래의 검출에 기초하여 장치(들)의 활동에 영향을 주거나 제어하도록 구성될 수 있다.
본 발명은 실질적으로 아래에서 설명되는 바와 같은 시스템 및 / 또는 방법을 제공 할 수 있다.
본 발명은 장치 또는 복수의 장치를 제어하도록 구성된 컴퓨터 구현 제어 방법을 제공 할 수 있다. 상기 방법은:
네트워크와의 무선 통신을 위해 구성되고 IP 어드레스 및 장치와 관련된 공개 - 개인키 암호화 키 쌍을 갖는 장치를 제공하는 단계;
블록체인 네트워크의 상태를 모니터링하고 및 / 또는 블록체인 네트워크에 블록체인 거래들을 전송하도록 구성된 소프트웨어 구현 제어 컴포넌트를 제공하는 단계;
상기 장치의 기능을 제어하기 위해 상기 제어 컴포넌트에 의해 실행되도록 구성된 명령들의 세트를 제공하는 단계를 포함할 수 있다.
제어 컴포넌트는 상기 장치와 별도의 저장된 위치로부터 상기 명령 세트에 액세스하도록 배열될 수 있다. 제어 컴포넌트는 입력 소스로부터 입력 신호를 수신하도록 배열될 수 있으며, 입력 소스는: 추가 장치; 및 / 또는 컴퓨터 기반 자원 또는 에이전트일 수 있다.
상기 명령어 세트는 분산 해시 테이블(DHT, Distributed Hash Table)에 저장되고, 상기 DHT로부터 상기 제어 컴포넌트에 의한 다운로드 및 설치를 위해 액세스될 수 있다.
상기 DHT의 위치는 블록체인 거래내에 제공된 메타 데이터를 사용하여 지시되거나 제공될 수 있다. 상기 명령어 세트는 암호화 키 쌍과 관련된 룩업 키를 사용하여 상기 제어 컴포넌트에 의해 액세스될 수 있다.
제어 컴포넌트는 장치상에 또는 장치내에 제공될 수 있다. 이것은 오프 디바이스 위치에 제공될 수 있고 장치와의 무선 통신을 위해 배열될 수 있다.
상기 제어 컴포넌트는,
암호화 연산 수행;
연관된 개인 / 공개키 쌍에 액세스;
관련된 비트코인 또는 다른 블록체인 관련 주소 보유;
API를 통한 장치 작동;
비밀 공유 프로토콜 동작 수행;을 하도록 구성될 수 있다.
상기 제어 컴포넌트는 유효한 블록체인 거래의 검출에 기초하여 상기 장치의 활동에 영향을 주거나 제어하도록 구성될 수 있다.
본 발명의 일 실시예 또는 양태와 관련하여 설명된 임의의 특징은 또한 본 발명의 임의의 다른 특징 또는 실시예에 적용될 수 있다. 예를 들어, 시스템과 관련하여 언급된 모든 기능은 방법에 적용될 수 있으며 그 반대의 경우도 마찬가지이다.
본 발명의 실시예 및 다른 양태는 본원에 기재된 실시예를 참조하여 명백하게 설명될 것이다. 본 발명의 실시예는 첨부된 도면을 참조하여 예로서만 설명될 것이다.
본 발명은 특히 다음과 같은 이점을 제공한다:
·의도적으로 '박막형'(메모리 및 / 또는 처리 요구 사항에 있어 작은 크기)의 운영 체제를 제공하므로 모든 IOT 장치에서 구현될 수 있다.
·장치별 기능은 장치에 하드 코딩되지 않고 분산된 해쉬 테이블(DHT, Distributed Hash Table)과 같은 안전한 저장소에서 로드되므로 쉽게 '업그레이드'할 수 있다. 이는 동적 구성을 용이하게 하지 않는 종래 기술에 비해 중요한 기술적 개선이다.
·자율 컴퓨팅 에이전트(IOT 장치 또는 외부 장치에 상주하는 소프트웨어)에 의해 제어 및 관리 될 수 있다.
· 블록체인과 인터페이스 할 때, 예를 들면 Bitcoin 플랫폼을 통해 지불 처리 기능을 통합 할 수 있다.
·비트코인 ECC와 같은 블록체인 암호화를 기반으로 강력한 보안을 제공한다.
도 1은 본 발명의 일실시예에 따라 그리고 예시적인 사용 케이스와 관련하여 구성된 시스템을 도시한다.
도 2는 도 1의 제어 시스템에 대한 논리표를 도시한다.
도 3은 도 1의 예에 대한 잠금 해제 거래의 처리 단계를 도시한다. 그리고,
도 4 내지 도 8은 비밀을 공유하고 공용 또는 개인 키를 생성하는데 사용할 수 있는 기술을 도시한다.
도 9 내지 도 11은 블록체인 거래의 잠금 스크립트가 논리 게이트의 기능을 구현하는데 사용되는 구현예의 양상을 나타낸다.
도 9는 2 개의 부울 입력 A 및 B가 부울 출력 X를 생성하기 위해 제 1 거래의 잠금 스크립트 내에서 평가되는 기술의 개요를 도시한다.
도 10은 제 1 및 제 2 블록체인 거래를 사용하여 논리 게이트를 구현하는 기술의 개요를 도시한다.
도 11은 블록체인 거래의 잠금 스크립트가 논리 게이트의 기능을 구현하는데 사용되는 프로세스를 도시한다.
블록체인 IOT 장치(BCH)는 안전하게 오프 BID로 저장되고 암호화 키를 통해 액세스되는 기 결정된 명령을 실행하도록 설정된 컴퓨팅 에이전트이다. 'off-BID'는 명령이 BID 자체에서 제공되지는 않지만 다른 곳에 저장되고 필요할 때 액세스 된다는 것을 의미한다. 이들 명령은 선택된 태스크 또는 복수의 태스크를 수행하도록 선택되고 배열된다. 명령이 실행되면 IOT 장치의 동작을 제어하고 영향을 줄 수 있다. 바람직한 실시 예에서, BID는 IOT 자체 상에 존재하는데, 이는 BID가 ITO 장치 내에 또는 그 위에 제공된 메모리에 설치됨을 의미한다. 그러나, 다른 실시 예들에서, BID는 오프 - 장치(off-device)에 상주할 수 있고, 장치에 인터넷 접속을 할 수 있다.
IOT 장치는 자체 암호화 키(IP 주소와 같이)를 가지고 있어 다른 장치나 DHT 등과 안전하게 통신하고 상호 작용할 수 있다. '운영체제'는 (적어도 다음에 국한되지는 않지만) 일부 임베디드 기능을 갖춘 간단하고 일반적인 시스템이다.
·암호화 계산
·외부 소스(예: DHT)에서 지침 가져 오기
·스위치 토글(예: 물리적 IOT 장치에서)과 같은 간단한 행동 수행하기
따라서 IOT 장치나 관련 BID에는 자체 내장 명령이 포함되어 있지 않으며 해당 명령이 수행하는 작업이나 수행 방법을 알지 못한다. BID에는 다른 곳에서 안전하게 명령을 검색하기 위한 메커니즘만 포함된다. BID는 일련의 단순 작업만 수행 할 수 있다(다음은 설명을 위한 것으로 제한적인 것은 아니다).
·자체 마스터 개인키 및 공개키 쌍에 대한 액세스; 자체(유추 가능한) BTC 주소도 가지고 있다.
·IP 주소로 데이터를 보내거나 IP 주소에서 데이터를 수신하는 기능
·비밀 공유 프로토콜 연산(아래에 설명) - 바람직한 실시예에서 이들은 기계 코드에 내장 될 수 있다
·Blockchain 이벤트 조회 및 해석
·연결된 물리적 장치를 조작하고 제어한다(기본적으로 스위치 세트인 표준 API를 통해)
BID의 수신 및 발신 통신은 아래에 설명된 보안 메커니즘을 사용하여 암호화되며 공유 비밀을 사용하여 키를 만들 수 있다. 이것은 다음을 허용한다:
(i) '해킹'에 대한 보안 강화
(ii) 단순한 범용 소프트웨어 업그레이드 프로토콜
(iii) 장치 불가지론
따라서, 본 발명은 임의의 IOT 장치에서 사용할 수 있는 일반적인 운영 시스템을 제공한다. 장치 자체는 프로그래밍되지 않는다. 모든 프로그램은 별도로 저장되며 설정 시간(또는 일부 실시 예에서는 실행 시간)에 장치로 로드된다.
발명의 실시예 (Example Use of the Invention)
다음의 예시적인 실시예는 자동 - 공급기 IOT 장치의 제어를 위한 본 발명의 실시예의 사용에 관한 것이다. 이것은 본 발명의 일 구현이 어떻게 사용될 수 있는지의 예로서 단지 설명을 목적으로 제공된다.
도 1을 참조하면, 시스템(100)은 각각 102a 및 102b로 표시된 제 1 및 제 2 클라이언트 장치, 제 1 클라이언트 장치(102a) 및 제 2 클라이언트 장치(102b)로부터 입력을 수신하고 제 1 클라이언트 장치(102a) 및 제 2 클라이언트 장치(102b)에 정보를 전송하도록 동작하는 BID 제어 시스템(104)을 포함한다. 이 예시의 사용 예에서, 제 1 및 제 2 클라이언트 장치들(102a, 102b)은 BID 제어 시스템(104)에 의해 검출 가능한 무선 주파수 식별 장치들(RFIDs)이다. 제어 시스템(104)은 블록체인을 사용하도록 동작하며 블록체인으로 출력을 송신하도록 동작한다.
우리는 뒷마당에서 하루 종일 혼자 있으며, 동시에 먹이를 주지 않는 한 서로에게 친절하며, 동시에 어떤 이유로 그들이 공격적으로 서로 싸우게 하는지에 대하여 캐롤의 강아지 아르키메데스(A)와 버트 랜드(B)를 예로 들어 제어 시스템(104)이 어떻게 작동하는지 설명한다. A 및 B는 IOT 디바이스(101)에 의해 검출 가능한 RFID 목걸이, 즉 제 1 RFID 목걸이(102a) 및 제 2 RFID 목걸이(102b)를 갖는다. 이 IOT 디바이스는 강아지 중 하나가 소비하기 위해 지정된 양의 음식을 분배하는 자동 공급기이다. 즉 BID 제어 시스템(104)은 IOT 공급기의 작동을 제어한다.
이 예에서, BID(104)는 IOT 자동 - 공급기 상에 제공되고 그 기능을 제어하기 위해 공급기와 인터페이스하는 소프트웨어 자원 또는 구성 요소이다.
BID는 DHT로부터 명령을 다운로드하고 설치함으로써 그의 생애가 시작된다. 명령이 수정될 때까지 다시 이 작업을 수행할 필요가 없다. 이는 예를 들어, BID가 업그레이드 되어야 하거나 BID의 동작이 완전히 수정되어야 하는 경우이다. 예를 들어 명령 세트가 3 개 이상의 RFID 신호를 검출하도록 수정될 수 있다.
제어 에이전트는 BID에 의해 전송된 값을 사용하여 블록체인 거래를 생성하고, 아래에 설명된 대로 각 과정의 반복 후에 BID와 새로운 비밀을 공유한다.
BID 제어 시스템(104)의 기능은 잠금 스크립트를 사용하여 잠기는 블록체인 거래를 사용하여 구현된다 :
OP_HASH160 <unlocking script hash> OP_EQUAL
거래는 IOT 자동 공급 장치를 제어하기 위한 명령 세트를 제공하도록(DHT에 연결되는 메타 데이터를 통해) 생성되며 아래에 설명된 내용에 따라 설정된 컴퓨팅 리소스에 대한 명령을 포함 할 수 있다. 메타 데이터에는 거래내에서 명령을 저장하는 대신 명령에 액세스 할 수 있는 위치에 대한 포인터 또는 참조가 포함될 수 있다. 따라서 명령은 '오프-블록'으로 유지 될 수 있다.
블록체인은 활동을 제어하는 메커니즘뿐만 아니라 발생된 이벤트에 대한 정보를 기록하는 메커니즘도 제공한다. 사료 공급 횟수, 발생 시간, 개가 먹은 것, 최대 사료 분배량이 등을 계산하는 기능을 제공한다. 또한 암호 보안을 제공한다.
거래의 중요한 기능은 한 마리의 강아지가 동시에 공급기에 있을 때만 음식을 배출하는 것이다. 따라서 거래의 스크립트에 일부 조건을 구축해야 한다. 이것은 도 2에 도시된 논리표 및 도 9 내지 도 11을 참조하는 XOR 함수로 달성된다.
·A 나 B 중 어느 것도 공급기에 없다면, 음식을 분배하지 마시오;
·A가 공급기에 있지만 B는 아닌 경우, 음식을 분배하시오;
·B가 공급기에 있지만 A는 아닌경우, 음식을 분배하시오;
·A와 B가 모두 공급기에 있으면 음식을 분배하지 마시오.
A 또는 B가 공급기에 있을 때, RFID 신호는 각각의 클라이언트 장치, 즉 제 1 RFID 목걸이(102a) 또는 제 2 RFID 목걸이(102b)로부터 자동 공급기의 제어 시스템(104)으로 전송되어 그 강아지의 안전한 현재 퍼즐 솔루션(각 반복 후에 새로운 퍼즐 솔루션으로 안전하게 대체됨)을 잠금 해제한다. A 또는 B가 공급기에 없는 경우, 각각의 RFID 목걸이에서 공급기로 임의의 숫자가 대신 전송된다. 즉, '공급기에 있는' 강아지는 RFID 목걸이가 공급기의 감지 범위 내에 있음을 의미한다. 이 경우 해당 퍼즐은 전송을 위해 잠금 해제된다. 그렇지 않은 경우 기본값은 임의의 숫자이다.
당해 기술 동 기술분야에서 알려진 바와 같이, 퍼즐 솔루션은 해시 될 때 (비트코인)스크립트 내의 저장된 값과 비교하여 매칭 결과를 제공하는 값을 산출하는 데이터이다. 즉, 프로세스는 다음과 같다. 비밀값('솔루션')이 해시되어 나중에 비교할 수 있도록 잠금 스크립트에 저장된다. 잠금 스크립트의 잠금을 해제하기 위하여 암호가 잠금 해제 (리딤)를 통해 스크립트에 제공된다. 제공된 값은 해시된 다음 저장된 해시와 비교된다. 비교 결과가 같다고 판단되면 비교 결과는 '참'이다. 실제로, 저장된 값은 비밀의 더블 해시(DOUBLE-hash)이고, 제시된 값은 비밀의 싱글 해시(SINGLE-hash)이다. 이는 스크립트에 입력하기 위한 임의의 길이의 비밀을 표준 관리 가능한 크기(즉, 항상 160 비트 길이)로 감소시킬 수 있게 한다.
자동 공급기 BID는 BID의 키 / 쌍과 관련된 룩업키를 사용하여 DHT에서 검색된 명령을 실행한다. 제어 에이전트는 BID로 또는 BID로부터 데이터 흐름을 관리한다(즉, BID의 명령 세트와 관련이 없는 RFID 신호와 관련된 데이터). 따라서 자동 공급기 BID는 자체 상태를 모니터링 한다. 이는 별도의 제어 에이전트(103)로부터 수신한 2 개의 비밀값(S1 및 S2)을 저장한다. 제어 에이전트(103)는 공급 프로세스를 감독하도록 배열되는 적절하게 프로그래밍 된 컴퓨팅 리소스 일 수 있다. 비밀값 S1 및 S2는 강아지들의 RFID 목걸이가 범위 내에서 검출 될 때 조건부로 사용된다. 적절한 DHT에서 검색된 명령에 따라(하루 중 시간과 관련된 다른 조건, 이전 먹이 공급 횟수, 기타 제한 사항 등과 함께) 범위 내에서 RFID가 감지되면 제어 에이전트로 동작하는 포괄 에이전트(Generic Agent)에 신호를 보낸다(아래 참조). 신호에는 다음이 포함된다:
·아르키메데스의 RFID가 발견되면 S1 (=퍼즐 -A-솔루션)( S1 (= Puzzle-A-Solution) if Archimedes’ RFID is detected else Random Number)
·버트랜드의 RFID가 읨의발견되면 S2 (= 퍼즐-B-솔루션)( S2 (= Puzzle-B-Solution) if Bertrand’s RFID is detected else Random Number)
그 다음 자동 공급기는:
·자동 공급기는 네트워크에서 유효한 거래(블록에 게시되었거나 아직 게시되지 않았지만 유효한 거래여야 함)을 확인한다. 이 거래는 제어 에이전트에 의해 생성되고 브로드 캐스트된다. 이는 내장된 XOR 테스트가 통과되면 유효하다. 통과되지 않으면, 유효하지 않으며 네트워크의 첫 번째 홉(hop)을 넘어서 전파되지 않는다. 따라서 이것은 BID에 의해 감지되지 않는다. 또는 BID가 첫 번째 홉에 있고 따라서 거래가 감지되면 BID 기능의 일부(다른 노드와 마찬가지로)는 거래의 유효성을 검사하는 것이다. 따라서 거래가 결과적으로 취해지기 전에 거래가 유효한지 여부를 감지할 수 있다. 유효한 거래는 또한 요구된 정보가 블록체인상에 저장되고 기록되는 것을 보장한다.
·위의 대답이 참이면 BID는 조건부 명령을 수행한다. 이 경우 BID는 일부 음식을 분배한다
·제어 에이전트(103)로부터 전송을 수신하여 두 개의 비밀 (아래의 S1 및 S2)을 공유하고 다음 반복을 위해 준비된 이러한 비밀 값을 내부적으로 업데이트 한다.
비트코인 거래 대한 잠금 스크립트는 다음에 의해 제공된다:
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
에서,
Puzzle-A is the equivalent result of OP_HASH160(Puzzle-A-Solution)
Puzzle-B is the equivalent result of OP_HASH160(Puzzle-B-Solution)
Metadata1 Contains a reference to codified instructions stored in a DHT.
PubK-Carol is Carol’s public key
에이전트의 프로그래밍은 하드 코딩되거나 DHT에서 자체 명령을 검색할 수 있다.
목록화 된 명령은 메타 데이터를 사용하여 블록체인 거래로부터 계약을 참조하기 위해 이하에 설명되는 절차에 따라 저장되고 액세스 될 수 있다.
캐롤의 공개키는 아래에 설명된 절차를 사용하여 안전하게 보관하거나 다시 작성할 수 있다.
위에 표시된 블록체인 거래의 잠금을 해제하려면 다음 스크립트가 필요하다:
Sig-Carol Puzzle-B-solution Puzzle-A-Solution <unlocking script>
도 3을 참조하여 다음 단계를 설명하기로 한다.
제어 시스템(104)은 제시된 퍼즐-A 솔루션을 해싱하고, 이를 단계 S300에서 저장 장치로부터 검색된 저장된 버전의 퍼즐-A(버전이 솔루션의 해시인)와 비교하기 위해 작동한다. 저장된 버전의 퍼즐-A 는 제어 시스템(104)의 국부적 저장 장치 또는 임의의 다른 적절한 저장 매체에 저장 될 수 있다. 값이 같으면 스택의 상부 = 1이고 다르면, 스택의 상부 = 0이다.
그 다음, 스택의 상부는 단계 S302에서 퍼즐-B 솔루션인 스택상의 제 2 항목과 교환된다. 이것은 해싱되어 저장 장치에서 검색된 저장된 버전의 퍼즐 B와 비교된다. S300의 결과와 비슷한 맥락에서 스택의 상부에 1 또는 0을 다시 푸시한다. 저장된 버전의 퍼즐-B는 제어 시스템(104)의 국부적 저장 장치 또는 임의의 다른 적절한 저장 매체에 저장될 수 있다.
이 시점에서 상위 2 개의 스택 항목은 각각 0 또는 1이다. 단계 S304에서 OP_NUMEQUAL은 숫자가 같으면 1을 반환하고, 그렇지 않으면 0을 반환한다. 이는 XOR 논리표의 정확한 역이다.
단계 S306에서, OP_NOT은 스택상의 상부 항목을 뒤집어 필요한 XOR 결과를 생성한다.
단계 S308에서, OP_VERIFY는 스택의 상부 항목이 1인지를 검사하고, 그렇지 않은 경우, 즉 XOR 연산이 실패한 경우, 제 1 및 제 2 클라이언트 장치로부터의 하나 이상의 입력이 매칭 퍼즐 솔루션이 반환됨으로써 즉시 거래를 무효로 표시한다. 그 결과로 IOT 디스펜서에 한 마리 이상의 강아지가 있기 때문에, 음식이 IOT 디스펜서에서 분배되지 않는다. 즉, 제어 시스템(104)의 출력은 기본 비트코인 거래의 실행에 의해 제어된다.
OP_VERIFY가 1을 반환하면, 제어 시스템(104)의 처리는 단계 S310에서 캐롤의 서명의 존재가 검사되는 스크립트의 다중 서명 제어 컴포넌트는 장치상에 또는 장치내에 제공 될 수 있다.
잠금 해제 스크립트를 분석할 때 제어 시스템(104)에 의해 수행되는 스택 동작은 이하에 도시된다. 먼저, 제어 시스템(104)은 잠금 해제 스크립트를 해싱하고 OP_EQUAL을 사용하여 해킹 스크립트의 해시와 해시를 비교한다. 그런 다음 잠금 해제 스크립트가 실행된다.
스택(Stack) 스크립트(Script) 설명(Description)
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 상위 두 항목이 비교되고 결과 (TRUE)가 스택의 맨 위로 밀어 넣어짐
Sig-Carol FALSE OP_NOT OP_VERIFYOP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG 상위 두 숫자(0 또는 1)가 비교되고 결과(FALSE)가 스택의 맨 위로 밀어 넣어짐
Sig-Carol TRUE OP_VERIFYOP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG 상부의 스택 항목이 뒤집힘 (FALSE = 0에서 TRUE = 1)
Sig-Carol OP_1 metadata1 PubK-Carol OP_2 OP_CHECKMULTSIG 상부 스택 항목이 확인됨참이기 때문에 거래는 (아직) 유효하지 않은 것으로 표시되지 않고 스크립트는 계속됨
TRUE Empty 다중 신호가 체크되고 통과됨
공유 암호를 사용하여 키 만들기(Creating a Key Using a Shared Secret)
키를 안전하게 보관하거나 다시 만들 수 있다. 특히, 공개키를 유추하는데 사용될 수 있는 개인키의 경우, 개인키는 부분들에 저장될 수 있다.
사용자, 즉 앨리스(Alice) 또는 밥(Bob)은 자신의 개인키의 제1부분을 유지할 수 있고, 서비스 제공자는 제 2 부분을 유지할 수 있으며, 제 3 부분은 원격 보안 사이트에 유지 될 수 있다. 개인키는 세 부분 중 두 개를 사용하여 재구성되거나, 보다 일반적으로 개인키는 임의의 n 개 부분을 사용하여 재구성 될 수 있다.
개인키가 재구성 될 수 있으면, 사용 시점에 공개키를 다시 만드는 데 사용할 수 있으며, 사용 후 개인키와 공개키는 다시 삭제될 수 있다.
개인키 분할은 샤미르의 비밀 공유 체계(Shamir’s Secret Sharing Scheme)를 사용하여 수행할 수 있다. 개인키 - 공개키 쌍은 다음 방법을 사용하여 마스터 키에서 결정론적으로 파생 될 수 있다. 이 방법을 사용하면 비밀 값을 전송하지 않고 참가자가 공유할 수 있다.
시스템은 이제 설명되는 바와 같이 서브키 생성 방법을 사용하여 참가자에 대한 공개키를 생성할 수 있다.
도 4는 통신 네트워크(5)를 통해 통신하는 제 1 노드(3)와 제 2 노드(7)를 포함하는 시스템(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) 모두에서 공통 비밀(CS)을 결정하기 위해, 노드(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)를 통해 공통 비밀을 전송하지 않고도 공통 비밀을 독립적으로 결정하도록 허용 할 수 있다.
따라서, 하나의 이점은 비보안이 잠재된 통신 네트워크(5)를 통해 개인키를 전송할 필요없이 각 노드에 의해 공통 비밀(CS)이 안전하고 독립적으로 결정될 수 있다는 것이다. 다음으로, 공통 비밀은 암호화 된 통신을 위해 비밀키(또는 비밀키의 기초)로서 사용된다.
상기 방법들 300, 400은 추가적인 단계들을 포함 할 수 있다. 상기 방법 300은 제 1 노드 (3)에서 메시지(M) 및 제 1 노드 제 2 개인키(V2C)에 기초하여 서명된 메시지 (SM1)를 생성하는 단계를 포함 할 수 있다. 상기 방법 300은 통신 네트워크를 통해 제 1 서명 메시지(SM1)를 제 2 노드(7)로 보내는 단계 360을 더 포함한다. 다음으로, 제 2 노드(7)는 제 1 서명 메시지(SM1)를 수신하는 단계 (440)를 수행 할 수 있다. 또한, 상기 방법 400은 제 1 서명 메시지(SM2)를 제 1 노드 제 2 공개키(P2C)로 검증하는 단계 450 및 제 1 서명 메시지(SM1)를 검증한 결과에 기초하여 제 1 노드를 인증하는 단계 460를 포함한다. 유리하게, 이는 제 2 노드(7)로 하여금 제 1 노드로 알려진 노드(제 1 서명 메시지가 생성된 노드)가 제 1 노드(3)임을 인증 할 수 있게 한다. 이는 제1노드(3)만이 제 1 노드 마스터 개인키(V1C)에 액세스할 수 있으므로, 제1노드(3)만이 제 1 서명 메시지(SM1)를 생성하기 위한 제 1 노드 제 2 개인키 (V2C)를 결정할 수 있다는 가정에 기반하고 있다. 유사하게, 피어-투-피어(peer-to-peer) 시나리오와 같이, 제 2 서명 메시지(SM2)는 제 2 노드(7)에서 생성 될 수 있고, 제1노드(3)로 전송되어 제 1 노드(3)가 제 2 노드(7)를 인증할 수 있게 한다.
제 1 노드와 제 2 노드 사이에서 메시지(M)를 공유하는 것은 다양한 방법으로 달성 될 수 있다. 일예로, 메시지는 제1노드(3)에서 생성되어 통신 네트워크(5)를 통해 제 2 노드(7)로 전송될 수 있다. 대안적으로, 메시지는 제 2 노드(7)에서 생성되어 통신 네트워크(5)를 통해 제2노드(7)로 전송될 수 있다. 일부 예에서, 메시지(M)는 공개될 수 있고, 따라서 비보안 네트워크(5)를 통해 전송될 수 있다. 하나 이상의 메시지(M)가 데이터 저장소(13, 17, 19)에 저장 될 수 있다. 본 기술분야의 통상의 기술자는 다양한 방법으로 메시지를 얻을 수 있음을 이해할 것이다.
유리하게, 공통 비밀(CS)의 재창조를 허용하는 레코드는 그 자체가 개인적으로 저장되거나 안전하게 전송되어야 하는 레코드 없이 유지 될 수 있다.
등록 방법 100, 200(Method of registration 100, 200)
제 1 노드(3)에 의해 방법 100이 수행되고, 제 2 노드(7)에 의해 방법 200이 수행되는 등록 방법 100, 200의 일예가 도3을 참조하여 설명 될 것이다. 이는 제 1 노드(3) 및 제 2 노드(7) 각각의 제 1 및 제 2 비대칭 암호쌍을 구성하는 것을 포함한다.
비대칭 암호쌍에는 공개-키 암호화에 사용되는 것과 같은 개인 및 공개키가 포함된다. 본 예시에서, 비대칭 암호쌍은 타원 곡선 암호화(Elliptic Curve Cryptography, ECC) 및 타원 곡선 연산의 속성을 사용하여 생성된다.
상기 방법 100, 200에서, 이는 공통 ECC 시스템상에 동의하며, 베이스 포인트(G)를 사용하는 제 1 및 제 2 노드(110, 210)를 포함한다. (참고: 상기 베이스 포인트는 공통 생성기라고 할 수 있지만, '베이스 포인트'라는 용어는 생성기 값 GV와의 혼동을 피하기 위해 사용된다). 일예에서, 공통 ECC 시스템은 비트코인에 의해 사용되는 ECC 시스템인 secp256K1에 기반할 수 있다. 베이스 포인트(G)은 선택되거나 임의로 생성되거나 할당 될 수 있다.
이제 제 1 노드 (3)로 돌아가면, 상기 방법 100은 공통 ECC 시스템 및 베이스 포인트(G)에서 마무리하는 단계 110을 포함한다. 이는 제2노드(7)로부터 공통 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 비대칭 암호쌍을 생성하는 제 1 노드(3)를 포함한다. 여기에는 공통 ECC 시스템에 지정된 허용 범위 내의 임의의 정수에 적어도 부분적으로 기초하여 첫 번째 마스터 개인키(V1C)를 생성하는 것이 포함된다. 이것은 또한 수학식에 따라 제 1 노드 마스터 개인키(P1C)와 베이스 포인트(G)의 타원 곡선 점 곱셈에 기초하여 제 1 노드 마스터 공개키 (P1C)를 결정하는 단계를 포함한다:
P1C = V1C x G (수학식1)
따라서 첫 번째 비대칭 암호쌍은 다음을 포함한다:
V1C: 제 1 노드에 의해 비밀로 유지되는 제 1 노드 마스터 개인키.
P1C: 공개적으로 알려지는 제 1 노드 마스터 공개키.
제 1 노드 마스터 개인키(V1C)는 제 1 노드 마스터 개인키(V1C) 및 제 1 노드 마스터 공개키(P1C)를 제 1 노드(3)와 연관된 제 1 데이터 저장소(13)에 저장할 수 있다. 보안을 위해, 제 1 노드 마스터 개인키(V1C)는 제 1 데이터 저장소(13)의 안전한 부분에 저장되어 키가 비밀로 유지되도록 할 수 있다.
상기 방법 100은 통신 네트워크(5)를 통해 제 1 노드 마스터 공개키(P1C)를 제 2 노드(7)로 전송하는 단계 130을 더 포함한다. 제 2 노드(7)는 제 1 노드 마스터 공개키(P1C)를 수신하면 220, 제 1 노드 마스터 공개키(P1C)를 제 2 노드(7)와 연관된 제 2 데이터 저장소 (17)에 저장할 수 있다230.
제 1 노드(3)와 유사하게, 제 2 노드(7)의 상기 방법 200은 제 2 노드 마스터 개인키(V1S) 및 제 2 노드 마스터 공개키(P1S)를 포함하는 제 2 비대칭 암호쌍을 생성하는 단계 240을 포함한다. 제 2 노드 마스터 개인키(V1S) 또한 허용 가능한 범위 내의 임의의 정수이다. 다음으로, 제 2 노드 마스터 공개키(P1S)는 다음 수학식으로 결정된다.
P1S = V1S x G (수학식2)
따라서 두 번째 비대칭 암호쌍은 다음을 포함한다:
V1S: 제2 노드에 의해 비밀로 유지되는 제 2 노드 마스터 개인키.
P1S: 공개적으로 알려지는 제 2 노드 마스터 공개키.
제 2 노드(7)는 제 2 비대칭 암호쌍을 제 2 데이터 저장소(17)에 저장할 수 있다. 상기 방법 200은 제 2 노드 마스터 공개키(P1S)를 제 1 노드(3)로 전송하는 단계 250을 더 포함한다. 다음으로, 제 1 노드(3)는 제 2 노드 마스터 공개키(P1S)를 수신하고(140), 저장한다(150).
일부 대안에서, 각각의 공개 마스터키는 (신뢰할 수 있는 제 3 자와 같은) 제 3 노드(9)와 연관된 제 3 데이터 저장소(19)에서 수신되고 저장 될 수 있다는 것을 이해하여야 한다. 여기에는 인증 기관과 같은 공개 디렉토리 역할을 하는 제 3자가 포함될 수 있다. 따라서, 일부 예들에서, 제 1 노드 마스터 공개키(P1C)는 공통 비밀(CS)의 결정이 요구되는(및 그 반대) 경우에만 제 2 노드(7)에 의해 요청되고 수신 될 수 있다.
등록 단계는 예를 들어, 디지털 지갑의 초기 설정으로 한 번만 수행되면 된다.
세션 개시 및 제 1 노드(3)에 의한 공통 비밀 결정도 4를 참조하여 공통 비밀(CS)을 결정하는 과정이 기술 될 것이다. 공통 비밀(CS)은 제 1 노드(3)와 제 2 노드(7) 사이의 특정 세션, 시간, 거래 또는 다른 목적에 사용될 수 있다. 동일한 공통 비밀(CS)을 사용하는 것은 바람직하지 않거나 안전하지 않을 수 있다. 따라서, 공통 비밀(CS)은 상이한 세션들, 시간, 거래 등의 사이에서 변경 될 수 있다.
다음은 전술한 보안 전송 기술의 설명을 위해 제공된다.
메시지 생성 (M) 310(Generating a message (M) 310)
본 예시에서, 제 1 노드(3)에 의해 수행되는 방법 300은 메시지(M)를 생성하는 단계 310을 포함한다. 메시지(M)는 난수, 의사 난수 또는 사용자 정의 일 수 있다. 일예에서, 메시지(M)는 유닉스 시간(Unix time) 및 논스(nonce)(및 임의의 값)에 기초한다. 예를 들어, 메시지(M)는 다음과 같이 제공 될 수 있다:
Message (M) = UnixTime + nonce (수학식3)
일부 예시에서, 메시지(M)는 임의적이다. 그러나, 메시지(M)는 일부 애플리케이션에서 유용 할 수 있는 선택값(예: 유닉스 시간 등)을 가질 수 있음을 이해하여야 한다.
상기 방법 300은 통신 네트워크(3)를 통해 메시지(M)를 제 2 노드(7)로 전송하는 단계 315를 포함한다. 메시지(M)는 개인키에 관한 정보를 포함하지 않으므로 비보안 네트워크를 통해 전송 될 수 있다.
생성기 값( GV ) 결정 320(Determining a Generator Value ( GV ) 320)
상기 방법 300은 메시지(M)에 기초하여 생성기 값(GV)을 결정하는 단계 (320)를 더 포함한다. 본 예시에서, 이는 메시지의 암호화 해시를 결정하는 작업을 포함한다. 암호화 해시 알고리즘의 예에는 256-비트 생성기 값(Generator Value)을 생성하는 SHA-256이 포함된다. 즉:
GV = SHA-256(M) (수학식4)
다른 해시 알고리즘들도 사용될 수 있다는 것을 이해하여야 한다. 여기에는 Secure Hash Algorithm(SHA) 제품군의 다른 해쉬 알고리즘이 포함될 수 있다. SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256을 포함한 몇 가지 특정 예시는 SHA-3 하위 집합의 사례를 포함한다. 다른 해시 알고리즘에는 RACE Integrity Primitives Evaluation Message Digest (RIPEMD) 제품군의 알고리즘이 포함될 수 있다. 특정 예시는 RIPEMD-160을 포함 할 수 있다. 다른 해시 함수는 Zmor-Tillich 해시 함수 및 knapsack 기반 해시 함수를 기반으로 하는 제품군을 포함할 수 있다.
제 1 노드 제 2 개인키 결정 330(Determining a first node second private key 330)
상기 방법 300은 제 2 노드 마스터 개인키(V1C) 및 생성기 값(GV)에 기초하여 제 1 노드 제 2 개인키(V2C)를 결정하는 단계 330을 포함한다. 이는 다음 수학식에 따라 제 1 노드 마스터 개인키(V1C)와 생성기 값(GV)의 스칼라 합산을 기반으로 할 수 있다:
V2C = V1C + GV (수학식5)
따라서, 제 1 노드 제 2 개인키(V2C)는 임의의 값이 아니고, 대신에 제 1 노드 마스터 개인키로부터 결정론적으로 도출된다. 암호쌍 내의 대응하는 공개키, 즉 제 1 노드 제 2 공개키(P2C)는 다음 관계를 갖는다 :
P2C = V2C x G (수학식6)
방정식 5에서 방정식 6으로의 V2C의 치환은 다음의 수학식을 제공한다:
P2C = (V1C + GV) x G (수학식 7)
여기서 '+' 연산자는 타원 곡선 점 합산을 나타낸다. 타원 곡선 암호화 대수학이 분산 적이라는 것을 주목하면, 수학식 7은 다음과 같이 표현 될 수 있다:
P2C = V1C x G + GV x G (수학식 8)
최종적으로, 수학 식 1을 수학 식 7에 대입하면 다음과 같다:
P2C = P1C + GV x G (수학식 9.1)
P2C = P1C + SHA-256(M) x G (수학식 9.2)
따라서, 대응하는 제 1 노드 제 2 공개키(P2C)는 주어진 제 1 노드 마스터 공개키(P1C) 및 메시지(M)의 지식에 기초하여 유도 될 수 있다. 상기 방법 400과 관련하여 이하에서 더 상세히 설명되는 바와 같이, 제 2 노드(7)는 제 1 노드 제 2 공개키(P2C)를 독립적으로 결정하기 위하여 앞서 언급한 지식을 가질 수 있다.
메시지 및 제 1 노드 제 2 개인키에 기초하여 제 1 서명 메시지 (SM1)를 생성하는 단계(350)(Generate a first signed message (SM1) based on the message and the first node second private key 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)의 이러한 검증은 제 2 노드(7)에 의해 이용되어 제 1 노드(3)를 인증 할 수 있으며, 이는 이하의 방법 (400)에서 논의 될 것이다.
제 2 노드 제 2 공개키를 결정하는 단계( 370 ' )(Determine a second node second public key 370’)
제 1 노드(3)는 제 2 노드 제 2 공개키(P2S)를 결정할 수 있다(370). 전술한 바와 같이, 제 2 노드 제 2 공개키(P2S)는 적어도 제 2 노드 마스터 공개키(P1S) 및 생성기 값(GV)에 기반 할 수 있다. 본 예시에서, 공개키는 베이스 포인트(G)와의 타원 곡선 점 곱셈을 갖는 개인키로서 결정되므로(370'), 제 2 노드 제 2 공개키(P2S)는 식 6과 유사한 방식으로 다음과 같이 표현 될 수 있다:
P2S = V2S x G (수학식 10.1)
P2S = P1S + GV x G (수학식 10.2)
수학식 10.2에 대한 수학적 증명은 제 1 노드 제 2 공개키(P2C)에 대한 수학식 9.1을 유도하기 위하여 위에서 설명한 것과 같다. 제 1 노드(3)는 제 2 노드(7)와 독립적으로 제 2 노드 제 2 공개키를 결정할 수 있다고 이해되어야 한다 (370).
제 1 노드(3)에서 공통 비밀을 결정하는 단계(380)(Determine the common secret 380 at the first node 3)
그 다음, 제 1 노드(3)는 결정된 제 1 노드 제 2 개인키(V2C) 및 결정된 제 2 노드 제 2 공개키(P2S)에 기반하여 공통 비밀(CS)을 결정할 수 있다(380). 공통 비밀(CS)은 다음의 수학식에 따라 제 1 노드(3)에 의해 결정될 수 있다:
S = V2C x P2S (수학식 11)
제 2 노드(7)에서 수행되는 방법(400)(Method 400 performed at the second node 7)
제 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와 유사한 방식으로 다음과 같이 표현 될 수 있다:
P2C = V2C x G (수학식 12.1)
P2C = P1C + GV x G (수학식 12.2)
수학식 12.1 및 12.2에 대한 수학적 증명은 수학식 10.1 및 10.2에 대하여 위에서 설명한 바와 동일하다.
제 1 노드(3)를 인증하는 제2노드 (7)(The second node 7 authenticating the first node 3)
상기 방법 400은 추정 제 1 노드(3)가 제 1 노드(3)임을 인증하기 위해 제 2 노드(7)에 의해 수행되는 다음 단계들을 포함 할 수 있다. 전술한 바와 같이, 이는 제 1 노드(3)로부터 제 1 서명 메시지(SM1)를 수신하는 단계(440)를 포함한다. 그 다음, 제 2 노드(7)는 단계 430에서 결정된 제 1 노드 제 2 공개키(P2C)로 제 1 서명 메시지 (SM1)상의 서명을 검증 할 수 있다(450).
디지털 서명의 검증은 전술한 바와 같이 Elliptic Curve Digital Signature Algorithm(ECDSA) 에 따라 수행될 수 있다. 중요하게, V2C와 P2C가 암호쌍을 구성하기 때문에, 제 1 노드 제 2 개인키(V2C)로 서명된 제 1 서명 메시지(SM1)는 대응하는 제 1 노드 제 2 공개키(P2C)로만 정당하게 검증되어야 한다.
이들 키는 제 1 노드(3) 등록시에 생성되는 제 1 노드 마스터 개인키(V1C) 및 제 1 노드 마스터 공개키(P1C)에 의하여 결정되기 때문에, 제 1 서명 메시지(SM1)를 검증하는 것은 제 1 서명 메시지(SM1)를 전송하는 추정 제 1 노드가 등록 과정 동안에 동일한 제 1 노드(3)라는 것을 인증하는 기반이 된다. 따라서, 제 2 노드(7)는 제 1 서명 메시지의 유효성을 검증한 결과 (450)에 기초하여 제 1 노드(3)를 인증하는 단계(460)를 더 수행 할 수있다.
공통 비밀을 결정하는 제 2 노드(7)(The second node 7 determining the common secret )
상기 방법 400은 제 2 노드 마스터 개인키(V1S) 및 생성기 값(GV)에 기초하여 제 2 노드 제 2 개인키(V2S)를 결정하는 제 2 노드(7)를 더 포함 할 수 있다(470). 제 1 노드(3)에 의해 수행된 단계(330)와 유사하게, 제 2 노드 제 2 개인키(V2S)는 다음의 수학식에 따라 제 2 노드 마스터 개인키(V1S) 및 생성기 값(GV)의 스칼라 합산에 기반 할 수 있다:
V2S = V1S + GV (수학식 13.1)
V2S = V1S + SHA-256(M) (수학식 13.2)
그 다음, 제 2 노드(7)는 제 1 노드(3)와는 독립적으로, 제 2 노드 제 2 개인키(V2S) 및 제 1 노드 제 2 공개키(P2C)에 기반하여 다음 수학식에 따라 공통 비밀(CS)을 결정할 수 있다(480):
S = V2S x P2C (수학식 14)
제 1 노드(3) 및 제 2 노드(7)에 의해 결정된 공통 비밀(CS)의 증명 (Proof of the common secret (CS) determined by the first node 3 and second node 7)
제 1 노드(3)에 의해 결정된 공통 비밀(CS)은 제 2 노드(7)에서 결정된 공통 비밀 (CS)과 동일하다. 수학식 11과 수학식 14가 동일한 공통 비밀(CS)을 제공한다는 수학적 증명이 이제 설명될 것이다.
제 1 노드(3)에 의해 결정된 공통 비밀(CS)로 돌아가면, 수학식 10.1은 다음과 같이 수학식 11에 대입 될 수 있다:
S = V2C x P2S (수학식 11)
S = V2C x (V2S x G)
S = (V2C x V2S) x G (수학식 15)
제 2 노드(7)에 의해 결정된 공통 비밀 (CS)로 돌아가면, 수학식 12.1은 다음과 같이 수학식 14에 대입 될 수 있다:
S = V2S x P2C (수학식 14)
S = V2S x (V2C x G)
S = (V2S x V2C) x G (수학식 16)
ECC 대수는 교환 가능하기 때문에 수학식 15와 수학식 16은 동일하다, 따라서:
S = (V2C x V2S) x G = (V2S x V2C) x G (수학식 17)
공통 비밀(CS) 및 비밀키 (The common secret (CS) and secret key)
공통 비밀(CS)은 이제 비밀 키 또는 제 1 노드(3)와 제 2 노드(7) 사이의 보안 통신을 위한 대칭-키 알고리즘에서 비밀키의 기초로서 사용될 수 있다. 이 통신은 개인키의 일부, 개인 키의 대표 또는 식별자, 또는 개인키의 연상 기호를 전달하는데 사용될 수 있다. 따라서, 예를 들어, 본 발명이 디지털 지갑 또는 다른 제어된 리소스의 설정 중에 한 번 사용되면, 그 후에 당사자들 간의 보안 통신이 수행 될 수 있다.
공통 비밀(CS)은 타원 곡선 점(xS, yS)의 형태 일 수 있다. 이것은 노드(3, 7)에 의해 합의된 공지 표준 체계를 사용하여 표준키 포맷으로 변환 될 수 있다. 예를 들어, xS값은 AES256 암호화의 키로 사용될 수있는 256-비트 정수일 수 있다. 이것은 해당 길이의 키가 필요한 모든 응용 프로그램에 대해 RIPEMD160을 사용하여 160-비트 정수로 변환 될 수 있다.
공통 비밀(CS)은 요청에 따라 결정될 수 있다. 중요하게도, 제 1 노드(3)는 메시지(M)에 기초하여 공통 비밀 (CS)을 다시 결정할 수 있으므로, 공통 비밀 (CS)을 저장할 필요가 없다. 일부 예시에서, 사용된 메시지(들)(M)은 마스터 개인키들에 대해 요구되는 것과 동일한 보안 레벨 없이 데이터 저장소(13, 17, 19)(또는 다른 데이터 저장소)에 저장 될 수 있다. 일부 예시에서, 메시지(M)는 공개적으로 이용 가능할 수 있다.
그러나 몇몇 애플리케이션에 따라, 공통 비밀(CS)이 제 1 노드 마스터 개인키(V1C)만큼 안전하게 유지된다면, 공통 비밀(CS)은 제 1 노드와 연관된 제 1 데이터 저장소(X)에 저장 될 수 있다.
바람직하게는, 이 기술은 단일 마스터 키 암호화 쌍에 기초한 다수의 보안 비밀 키에 대응할 수 있는 복수의 공통 비밀을 결정하는데 사용될 수 있다.
생성기 값의 계층 구조(키)(Hierarchy of Generator Values (keys))
예를 들어, 일련의 연속적인 생성기 값(Generator Value, GV)이 결정될 수 있으며, 각각의 연속하는 GV는 선행 GV (Generator Value)에 기초하여 결정될 수 있다. 예를 들어, 단계 310 내지 단계 370 및 단계 410 내지 단계 470을 반복하여 노드들 간의 사전 합의에 따른 연속적인 단일 목적 키를 생성하는 대신에, 생성기 값의 계층을 설정하기 위해 양 당사자는 이전에 사용된 생성기 값(GV)을 반복적으로 다시 해싱 할 수 있다. 결과적으로 메시지 (M)의 해시에 기반한 생성기 값은 차세대 생성기 값(GV')에 대한 차세대 메시지 (M')가 될 수 있다. 이를 통해 연속적인 세대의 공유 비밀을 추후의 프로토콜 설정 전송 없이, 특히 공통 비밀의 생성마다 다중 메시지를 전송하지 않고 계산할 수 있다. 차세대 공통 비밀 (CS')은 다음과 같이 계산할 수 있다.
먼저, 제 1 노드(3)와 제 2 노드(7)는 독립적으로 차세대 생성기 값(GV')을 결정한다. 이것은 320 단계 및 420 단계와 유사하지만 다음 공식으로 수정되었다: M’ = SHA-256(M) (수학식 18)
GV’ = SHA-256(M’) (수학식 19.1)
GV’ = SHA-256(SHA-256(M)) (수학식 19.2)
그 다음, 제 1 노드(3)는 제 2 노드 제 2 공개키(P2S') 및 제 1 노드 제 2 개인키(V2C')의 다음 세대를 결정할 수 있다. 이것은 전술한 370 단계 및 330 단계와 유사하지만 다음 공식으로 수정되었다:
P2S’ = P1S + GV’ x G (수학식 20.1)
V2C’ = V1C + GV’ (수학식 20.2)
그 다음, 제 2 노드(7)는 제 1 노드 제 2 공개키(P2C') 및 제 2 노드 제 2 개인키 (V2S')의 다음 세대를 결정할 수 있다. 이것은 전술한 430 단계 및 470 단계와 유사하지만 다음 공식으로 수정되었다:
P2C’ = P1C + GV’ x G (수학식 21.1)
V2S’ = V1S + GV’ (수학식 21.2)
제 1 노드(3) 및 제 2 노드(7)는 각각 차세대 공통 비밀(CS')을 결정할 수있다. 특히, 제 1 노드(3)는 다음의 수식으로 차세대 공통 비밀(CS')을 결정한다:
CS’ = V2C’ x P2S’ (수학식 22)
제 2 노드(7)는 다음 수식으로 다음 세대의 공통 비밀(CS ')을 결정한다 :
CS’ = V2S’ x P2C’ (수학식 23)
더 많은 세대(CS'', CS'''등)는 동일한 방식으로 계산되어 체인 계층을 만들 수 있다. 이 기술은 제 1 노드(3) 및 제 2 노드(7) 모두가 원래의 메시지(M) 또는 원래 계산된 생성기 값(GV), 그리고 그것이 관련된 노드를 추적할 것을 요구한다. 이것은 공개적으로 알려진 정보이므로 이 정보의 보존과 관련된 보안 문제는 없다. 따라서 이 정보는 '해시 테이블'(해시 값을 공개 키에 연결) 및 네트워크(5)에서 자유롭게 배포 할 수 있다(예 : 토렌트 사용). 또한, 계층 구조에 있는 개인 공통 비밀(CS)이 손상된 경우, 개인키 V1C, V1S가 안전하게 유지되는한 계층 구조에서 다른 모든 공통 비밀의 보안에 영향을 주지 않는다.
키의 트리구조 (Tree structure of keys)
전술한 체인(선형) 계층은 물론 트리 구조의 계층 구조를 만들 수 있다. 트리 구조로, 인증키, 암호화키, 서명키, 지불키 등과 같은 상이한 목적을 위한 다양한 키가 결정될 수 있으며, 이들 키는 모두 안전하게 유지되는 단일 마스터 키에 링크된다. 이것은 다양하고 상이한 키들을 갖는 트리 구조(901)를 도시한 도 17에 가장 잘 나타나 있다. 이들 각각은 다른 당사자와 공유된 비밀을 생성하는 데 사용될 수 있다. 트리 분기는 몇 가지 방법으로 수행 할 수 있으며 그 중 3 가지가 아래에 설명된다.
(i) 마스터 키 생성 (Master key spawning)
체인 계층 구조에서, 새로운 각 '링크'(공개 / 개인키 쌍)는 원래의 마스터 키에 여러 번 다시 해시된 메시지를 추가하여 만들어진다. 예를 들어(명확성을 위해 제1 노드(3)의 개인키만 표시):
V2C = V1C + SHA-256(M) (수학식 24)
V2C’ = V1C + SHA-256(SHA-256(M)) (수학식 25)
V2C’’ = V1C + SHA-256(SHA-256(SHA-256(M))) (수학식 26)
… 기타 등등.
분기를 만들기 위하여, 모든 키를 서브 마스터 키로 사용할 수 있다. 예를 들어 V2C'는 일반 마스터 키와 마찬가지로 해시를 추가하여 서브 마스터 키(V3C)로 사용할 수 있다.
V3C = V2C’ + SHA-256(M) (수학식 27)
서브 마스터 키(V3C) 자체는 다음 세대 키(V3C ')를 가질 수 있다. 예를 들면:
V3C’ = V2C’ + SHA-256(SHA-256(M)) (수학식 28)
이는 도 18에 도시된 바와 같이 마스터 키 생성 방법을 사용하여 트리 구조 (903)를 제공한다.
(ii) 논리적 연계 (Logical Association)
이 방법에서 트리의 모든 노드(공개 키 / 개인 키 쌍)는 체인으로(또는 다른 방법으로) 생성되며, 트리 내 노드들 간의 논리적 관계는 트리의 각 노드가 포인터를 사용하여 트리의 부모 노드와 간단하게 연관되는 테이블에 의해 유지된다. 따라서, 포인터는 세션에 대한 공통 비밀 키(CS)를 결정하기 위해 관련 공개 / 비밀 키 쌍을 결정하는데 사용될 수 있다.
(iii) 메시지 다양성 (Message Multiplicity)
개인 또는 공개 키 쌍은 체인 또는 트리의 어느 지점에나 새 메시지를 삽입하여 생성 될 수 있다. 메시지 자체는 임의적이거나, 일부 의미 또는 기능을 전달 할 수 있다(예 : '실제'은행 계좌 번호 등과 관련 될 수 있음). 새로운 개인 / 공개 키 쌍을 형성하기 위한 그러한 새로운 메시지가 안전하게 유지되는 것이 바람직 할 수 있다.
체계화 계획(Codification Scheme)
거래의 메타 데이터는 오프 블록 문서에 저장된 명령에 액세스하는데 사용될 수 있다. 이 문서는 '계약'이라고 할 수 있다.블록체인 거래의 메타 데이터는 다양한 방식으로 형식을 지정할 수 있다. 그러나 가능한 하나의 체계화 방법이 여기에 설명된다.
계약서에 정의된 권리가 계약의 소유자 또는 소유자에게 부여되는 경우 계약을 양도 할 수 있다. 양도가 불가능한 계약의 예는 참가자가 지명된 계약 즉, 계약 보유자가 아닌 특정 지정 개체에게 권리가 부여되는 계약이다. 이 체계화 계획에서는 양도가 가능한 계약만 논의된다.
토큰은 계약에 의해 부여된 권리를 상세화 또는 정의하는 특정 계약을 나타낸다. 토큰은 비트코인 거래 형식으로 계약을 표현한 것일 수 있다.
이 체계화 방법은 세 개의 매개 변수 또는 데이터 항목으로 구성된 메타 데이터를 사용한다. 이 데이터는 다음을 나타낼 수 있다:
i) 계약에 따라 사용할 수 있는 지분의 수량(여기서는 'NumShares'라고도 함).
ii) 송신자로부터 적어도 하나의 수신자에게 전송 단위의 양(여기서는 'ShareVal'이라고도 함). 과
iii) 전송 단위의 양에 대한 값을 계산하기 위한 요소(이것은 본 명세서에서 '페깅 레이트'로 지칭될 수 있음).
이 체계화 계획의 장점은 위에 설명된 세 가지 매개 변수만 사용하여 블록체인에 토큰으로 계약을 캡슐화하거나 표현하는 데 사용할 수 있다는 것이다. 사실상, 이 세 가지 데이터 항목 중 최소한을 사용하여 계약을 지정할 수 있다. 이 체계화 계획은 모든 유형의 양도 가능한 계약에 사용할 수 있으므로 일반적인 알고리즘을 고안하고 적용 할 수 있다. 이러한 메타 데이터 항목에 대한 자세한 내용은 다음과 같다.
분할 가능한 토큰은 거래 출력의 값을 여러 토큰에 할당된 더 작은 금액(즉, 여러 거래에 할당됨)으로 세분화 할 수 있는 토큰이다. 전형(archetype)은 토큰화 된 신용 화폐이다. 분할 가능한 계약은 0이 아닌 페깅 레이트를 지정하는 것으로 정의된다. 분할 가능한 계약의 경우, 거래 출력에서 전달된 토큰화 된 값은 페깅 레이트를 통해 기본 비트코인 값에 연결된다. 즉, 계약서는 보유자의 권리를 페깅 레이트와 관련하여 명시한다. 분할할 수 없는 토큰의 경우에는 페깅 레이트가 없으며 계약서는 보유자의 권리를 고정된 가치로 명시한다(예로써, 무기명 채권: '이 계약은 정확히 1000 달러에 상환 가능함' 또는 바우처 ‘이 계약서는 헤어 커트에 한 번만 사용할 수 있음' ). 분할 불가능한 계약의 경우 기본 거래 BTC 값은 계약값과 관련이 없다.
"기본 BTC 값"이라는 문구는 거래 출력에 첨부된 비트코인 수량(BTC)을 나타낸다. 비트코인 프로토콜에서 모든 거래 출력은 유효한 것으로 간주되는 0이 아닌 BTC 금액을 가져야 한다. 실제로 BTC 금액은 서면 작성 시점에 현재 546 사토시로 설정된 최소 설정값('먼지(dust)'로 알려짐)보다 커야 한다. 1 비트코인은 1 억 사토시와 같은 것으로 정의된다. 비트코인 거래는 여기 소유권 교환을 촉진하는 수단으로만 사용되므로 실제 BTC 금액은 임의적이다: 즉, 실제 가치는 계약 세부사항에 달려있다. 이론상 모든 토큰은 먼지(dust)로 이전될 수 있다.
현재의 체계화 계획, 특히 분할 가능 토큰에서, 기본적인 BTC 값은 의미가 있다: 즉, 페깅 레이트를 통해 계약값과의 관계를 유지한다. 페깅 레이트는 그 자체로 임의의 속성을 가지고 있으며, 기본 BTC 금액을 작게 유지하도록 선택된다. 먼지(dust)와 함께 간단히 모든 토큰 거래의 기본이 아닌 페깅 레이트를 사용하는 이유는 본 발명의 프로토콜이 분배를 용이하게 하기 때문이다: 토큰이 더 작은 양의 몇몇 거래 출력으로 분할 될 때 원래의 계약을 조정할 필요가 없다. 오히려 각 세분화 된 토큰의 계약값은 페깅 레이트와 기본 BTC 값의 세분화 된 금액에 따라 간단히 계산된다.
제한된 토큰은 NumShares라는 수량으로 정의된 대로 고정된 0이 아닌 수의 지분 수로 총 발행 값이 고정(또는 '제한')되는 토큰이다. 따라서 제한된 계약하에서는 더 이상의 지분을 발행 할 수 없다. 예를 들어, 경주마의 일부 소유권에 대한 계약은 경주마의 100 %로 제한된다(예 : 각각 1 %의 100 개의 지분 또는 각각 10 %의 10 개의 지분 등). 무제한 계약은 예를 들어, 요구되는 신용 화폐 수량을 그들의 예금 계좌에 추가함으로써 발급자가 추가 발행을 할 수 있음을 의미한다. NumShares는 모든 계약에 충분하게 명시되어야 한다. 제한된 계약에서 NumShares> 0이어야 한다; 무제한 계약은 NumShares = 0으로 설정하여 나타낸다.
통화 준비금을 넘어서 재고 목록을 포함한다. 예를 들어 면허가 있는 인쇄된 티셔츠 토큰 발급자는 10,000 장의 티셔츠 인벤토리로 시작할 수 있으며, 10,000 장의 티셔츠를 나타낼 수 있는 분할 가능 토큰을 발행 할 수 있다(각 지분 = 1 티셔츠). 원래 토큰은 세분화 될 수 있으며 각 세분화 된 토큰은 페깅 레이트에 정의 된 거래 출력의 기본 BTC 값에 따라 여러 개의 T 셔츠에 대해 상환 할 수 있다. 그러나 수요가 증가 할 경우 발급자는 추가 지분을 발행하기로 결정할 수 있다 (즉, 발행 지분수를 또 다른 10,000개로 늘릴 수 있다). 이 경우 발급자는 추후 발행을 위임하기 위해 자신의 예금 계좌(예: 재고 창고)에 10,000개의 티셔츠를 예치해야 한다. 따라서 한 번에 재고(재고가 ‘예금 계좌’로서 행동하는 경우에서)가 있는 티셔츠의 총 수 = 사용되지 않은 공유의 총 수이다.
페깅레이트는 지분의 가치(ShareVal이라는 수량으로 표시)가 기본 BTC 금액으로 고정되는 분할 가능한 계약에만 적용된다. 예를 들어, 계약서는 발급자가 모든 기본 1 BTC에 대해 10,000 달러의 비율로 토큰을 상환하겠다고 약속 할 수 있다. 이는 (예를 들어)토큰화 된 기본 출력값이 15,400 사토시인 거래가 $ 1.54로 상환 될 수 있음을 의미한다. 페깅레이트의 값이 0이면 계약이 분할 할 수 없다는 것을 나타낸다(즉, 무기명 채권처럼 전체로만 양도할 수 있음). 페깅레이트가 0(분할할 수 없는 토큰을 의미)으로 설정되면 기본 BTC 값은 계약값과 관련이 없으며, 임의의 금액으로 설정할 수 있다. 통상적으로, 이 경우 동작 비용을 최소화하기 위해, 기본 BTC 값을 가능한 한 작게(즉, 먼지(dust)로 설정) 유지하는 것이 바람직하다.
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의 거래에 의해 결정된 바와 같이 미사용 거래 출력)로 정의된다. 사용되지 않은 모든 거래의 전체 집합은 모든 비트코인 노드에서 사용할 수 있는 목록에 보관된다. 예를 들어, 발급자가 처음에 $ 10,000을 신용 화폐 유형 토큰으로 발행하고 시간이 지남에 따라 $ 5500 상당의 토큰이 회수되면 유통액 = $ 4500 (회수되지 않은 토큰의 가치 임)이다. 이 값은 연관된 예비 계정의 잔액과 조화되어야 한다.
본 발명의 실시예와 함께 사용하기에 적합한 컴퓨팅 리소스('에이전트')의 예시(An Illustrative Example of A Computing Resource (‘Agent’) Suitable for Use with embodiments of the invention)
본 발명은 계약 프로세스의 자동화 개념을 수행하기 위해 컴퓨팅 자원 또는 에이전트를 활용할 수 있다. 적합한 에이전트의 예시는 아래에 제공되나, 다른 구현도 이용될 수 있다.
에이전트는 블록체인과 결합하여 작동할 수 있고, 튜링 머신의 구현에서 삭제할 수 없는 테이프로서 이를 이용한다. 에이전트는 블록체인에 병렬적으로 실행되고, (루프) 프로세스의 실행을 처리하고 감시한다. 루프 프로세스는 장치 또는 시스템의 제어 또는 처리의 자동화와 같은 주어진 작업을 수행하기 위해 설계된다. 병렬 자원은 블록체인의 상태를 모니터링하고 블록체인에 기록된 거래를 야기할 수 있다. 어떤 의미에서, 다음의 정의와 특징을 갖는 튜링 머신의 삭제할 수 없는 테이프로서 블록체인을 활용할 수 있다.
1. 블록체인은 튜링 머신의 테이프로서 동작한다. 블록체인의 각 거래는 테이프 상에 셀(cell)을 나타낸다. 이 셀은 유한 알파벳의 기호를 포함할 수 있다.
2. 테이프 헤드(tape head)는 블록체인상에 이미 기록된 블록으로부터 정보를 읽을 수 있다.
3. 테이프 헤드는 블록체인의 끝에 많은 거래를 포함하는 새로운 블록을 기록할 수 있다. 그러나, 이미 존재하는 블록 상에는 기록할 수 없다. 따라서, 블록체인 테이프는 삭제되지 않는다.
4. 각 거래의 메타데이터는 다중 서명 페이 투 스크립트 해시(signature pay-to-script-hash, P2SH) 거래 의 부분으로서 저장될 수 있다.
에이전트의 중요한 기능은 블록체인의 현재 상태를 모니터링하는 자동화된 독립체로서 동작하는 것이다. 또한 어떠한 오프 블록 소스로부터 신호 또는 입력을 수신할 수 있다. 블록체인 상태 및/또는 수신된 입력에 따라, 에이전트는 특정 작업을 수행할 수 있다. 에이전트는 어떠한 작업이 수행될 것인지를 결정한다. 이는 ‘실제 세상’(즉, 오프 블록)에서 작업 및/또는 블록체인 상의 작업(새로운 거래를 생성하고 브로드캐스팅하는 것과 같은)을 수반하거나 수반하지 않을 수 있다. 에이전트가 취하는 작업은 블록체인 상태 또는 어떠한 오프-블록 입력에 의해 작동될 수 있다. 에이전트는 또한 거래의 다음 세트가 비트코인 네트워크에 브로드캐스트되고 다음으로 블록체인에 기록될 수 있도록 결정할 수 있다.
에이전트의 작업은 블록체인(예를 들어, 비트코인)에 병렬적 및 동시적으로 실행한다. 어떤 의미에서, 블록체인(예를 들어, 비트코인) 스크립트의 기능을 확장한다. 이 지속적인 모니터링은 결합된 에이전트 및 블록체인 시스템 튜링 완전을 만드는 ‘루프’ 제어 흐름 구조를 구현한다.
튜링 머신은 두 개의 스택을 포함한다.
·데이터 스택 : 이는 상기에서 설명한 것처럼 블록체인으로 표현된다.
·제어 스택 : 이는 관리자 기능으로 표현된다. 이는 반복 제어 흐름 기능에 관련한 정보를 저장한다.
데이터 스택에서 제어 스택을 분리하면 비트코인 코어에서 무한 루프가 발생하는 것을 방지하여 서비스-거부 공격을 완화 할 수 있다는 이점이 있다.
에이전트는 루프 구조의 어떠한 형태(예를 들어, FOR-NEXT; REPEAT UNTIL 등)를 통해 루프할 수 있는 서브 루틴을 관리하고 수행한다. 여기서 설명된 실시예는 ‘반복’구조의 일 예를 사용하는 포로세스를 포함한다(도 2 참조). 사용자는 인덱스(i) 및 제한(J)을 특정한다. 이는 현재 반복 횟수(일반적으로 0으로부터 시작하여 카운트된) 및 반복 루프의 반복 총 횟수를 각각 나타낸다.
각 반복은 아래와 같다.
1. 인덱스는 1씩 증가한다. 종료 조건을 위해, 반복은 인덱스가 제한에 도달할 때 멈춘다.
2. ICTA 문(statement)을 포함하는 코드 블록은 실행된다; 실행은 블록체인 상 또는 밖의 어떠한 실행일 수 있다.
3. 이러한 서브루틴의 암호화 해시는 계산된다. 이는 거래(Tx)의 일부로서 블록체인에 저장될 수 있다. 각 코드 블록마다 해시는 고유하기 때문에, 해당 코드가 사용되었는지 검증할 수 있다.
따라서, 루프의 본체는 코드 블록을 포함한다. 각 코드 블록은 ICTA 문을 포함한다(도 3 참조). 이는 아래를 매칭하여 거래를 위한 블록체인의 현재 상태를 모니터링한다.
·시작 또는 트리거 조건(즉, 특정 비트코인 주소가 10BTC에 도달한 경우)
·반복 조건(즉, 이전 반복과 관련된 메타데이터 또는 해시)
·중지 조건(즉, 루프의 마지막 반복).
ICTA 구문은 블록체인의 현재 상태에 기초하여, 관리자가 다음 거래에서 생성하도록 결정될 수 있다. 다음 거래를 생성하는 것은 비트코인 네트워크상에 거래를 브로드캐스팅하는 것과 블록체인 상에 새로운 거래를 기록하는 것을 수반한다. 이는 이러한 반복이 실행되는 기록으로서 동작한다. 거래가 블록체인상에 기록되면, 관리자는 이전 반복이 블록체인 상에서 실행되고 기록된 것을 발견하고 다음 반복을 실행할 것이다. 후자는 인덱스(i)가 코드 블록에 지정된 제한(J)에 도달하여 반복 로프가 종료될 때까지 계속된다.
각 거래는 재사용될 수 있는 방법으로 블록체인에 저장된다. 비트코인 구현에서, 거래의 각 서명에는 SIGHASH 플래그가 추가된다. 이 플래그는 다른 값을 가질 수 있으며, 거래의 다른 부분인지를 나타내는 각각은 이 서명 소유자의 개입 없이 수정될 수 있다. 재사용 가능한 거래는 거래 입력의 하나에 SIGHASH 플래그 ‘SigHash_AnyoneCanPay’를 가진다. 이는 누구나 거래의 입력에 기여하도록 허용한다. 이 파라미터는 관리자의 ICTA 기능이 다른 입력과 함께 여러 번 실행되고 반복될 수 있도록 한다. 기능의 사용은 승인된 당사자로 제한될 수 있다(예를 들어, 재사용 가능한 거래의 저작권을 통해).
ICTA 코드 블록의 ‘If condition’ 섹션은 조건의 어떤 형태를 모니터링할 수 있다. 이는 다른 프로그래밍 언어(예를 들어, C, C++, Java )와 유사하고 블록체인에 저장된 정보에 제한되지 않는다. 예를 들어, 날짜 및 시간을 모니터링 할 수 있거나(즉, 언제 특정 날짜 및 시간에 도달하는지) 날씨를 모니터링 할 수 있고(즉, 언제 온도가 10도 이하이고 비가 오는지), 신뢰 또는 계약의 조건을 모니터링 할 수 있다(즉, 언제 회사 A가 회사 B를 인수하는지).
ICTA 코드 블록의 ‘Then action’ 섹션은 여러가지 실행을 수행할 수 있다. 본 발명은 취할 수 있는 실행의 횟수 또는 유형에 관련하여 제한되지 않는다. 비록 실행과 관련된 메타데이터를 포함하는 거래가 블록체인 상에 기록될 수 있지만, 실행은 블록체인 상의 거래에만 국한되지 않는다.
ICTA 코드 블록의 ‘Then action’ 섹션은 여러가지 실행을 수행할 수 있다. 본 발명은 취할 수 있는 실행의 횟수 또는 유형에 관련하여 제한되지 않는다. 비록 실행과 관련된 메타데이터를 포함하는 거래가 블록체인 상에 기록될 수 있지만, 실행은 블록체인 상의 거래에만 국한되지 않는다.
에이전트의 제어 스택은 각 사용자의 요구에 따라 특정된 다양한 방법으로 구현될 수 있다. 예를 들어, 제어 스택의 반복 루프는 어떤 튜링 완전 언어에 기초할 수 있다. 한가지 가능한 언어 선택은 Forth 스타일 스택 기반 언어이다. 이 언어를 사용하는 이점은 이미 알려져 있고 널리 쓰이는 비트코인 스크립트를 통해 제어 스택을 프로그래밍 스타일에 일관되게 유지할 수 있다는 것이다.
데이터 저장 공간으로서 비트코인 스크립트의 대체 스택 이용(Using the Bitcoin Script’s Alternate Stack as a Data Storage Space)
비트코인 스크립트는 연산 코드(op code)라고 불리는 명령을 포함하며, 이는 사용자가 알트 스택(alt stack)이라고 알려진 대체 스택에 데이터를 이동시킬 수 있도록 한다.
연산 코드는 다음과 같다.
·OP_TOALTSTACK ? 이는 메인 스택의 상부에서 알트 스택의 상부로 데이터를 이동시킨다.
·OP_FROMALTSTACK ? 이는 알트 스택의 상부에서 매인 스택의 상부로 데이터를 이동시킨다
이는 데이터가 계산기 상에 저장될 수 있도록 하는 ‘메모리’ 기능과 유사하게, 계산 중간 단계의 데이터를 알트 스택에 저장할 수 있다. 일 실시예에서, 알트 스택은 비트코인 스크립트가 작은 계산 작업을 해결하도록 구성되고 계산 결과를 반환하는데 이용될 수 있다.
에이전트를 관리하기 위하여 코드 레지스터를 사용하기(Using a Code Register to Manage the Agent)
에이전트는 또한 소유하고 수행하는 모든 코드의 레지스트리를 관리한다. 이러한 레지스트리는 특정키를 특정값에 매핑하는 룩업 테이블 또는 사전과 같이 구성된다. 키 및 값 쌍은 코드 블록 해시(H1) 및 코드가 각각 저장되는 IPv6 주소로 표시된다. 키 H1을 사용하여 코드 블록을 검색하기 위해, 룩업 테이블은 관련된 값(이는 코드가 저장된 위치이다)을 검색하는데 이용되고 그에 따라 소스 코드를 검색한다. 코드 레지스트리의 구현은 다양할 수 있다.
에이전트 코드의 거래 메타데이터, 그리고 루프의 재생성(Transaction Metadata of the Agent’s Code, and Re-Spawning of the Loop)
특정 반복에서 관리자 루프를 재생성하기 위해 요구되는 정보는 블록체인 상에 기록된 거래에 메타데이터로 저장된다.
이러한 방법에서, 블록체인 상의 거래는 에이전트에서 실행중인 루프의 주어진 반복에 대한 정보를 저장하거나 정보로의 접근을 제공한다. 이 정보는 인덱스 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)’를 읽는다.
전술한 실시예들은 본 발명을 제한하는 것이 아닌 예시임을 알아야하며, 당업자는 첨부된 청구 범위에 의해 정의된 본 발명의 범위를 벗어나지 않고 많은 대안적인 실시 예를 설계 할 수 있음을 알아야 한다. 청구 범위에서, 괄호안의 임의의 참조 부호는 청구 범위를 제한하는 것으로 해석되어서는 안된다. 용어 "포함하는" 및 “포함한다” 등은 청구 범위 또는 명세서 전체에 열거된 요소 또는 단계 이외의 요소의 존재를 배제하지 않는다. 본 명세서에서, "포함한다"는 "포함하거나 구성된다"를 의미하고 "포함하는"은 "포함하거나 구성되는"을 의미한다. 요소의 단일 참조는 이러한 요소의 복수 참조를 배제하지 않으며, 그 반대도 마찬가지이다. 본 발명은 몇몇 별개의 요소들을 포함하는 하드웨어에 의해, 그리고 적합하게 프로그래밍 된 컴퓨터에 의해 구현 될 수 있다. 여러 수단들을 열거하는 장치 청구항에서, 이들 수단들 중 몇몇은 하나의 동일한 하드웨어 아이템에 의해 구현 될 수 있다. 특정 측정 값이 서로 다른 종속 항에서 인용된다는 단순한 사실만으로 이 측정 값의 조합을 활용할 수 없다는 것을 의미하지는 않는다.

Claims (14)

  1. 장치를 제어하기 위한 컴퓨터 구현 제어 시스템에 있어서,
    네트워크와 통신하고 IP 어드레스 및 장치와 관련된 공개 - 개인키 암호화 키 쌍을 갖는 장치;
    블록체인 네트워크의 상태를 모니터링하고 및 / 또는 블록체인 거래를 블록체인 네트워크에 전송하는 소프트웨어 구현 제어 컴포넌트에 있어서, 상기 제어 컴포넌트는 상기 장치와 별도의 저장된 위치로부터 명령어 세트에 액세스하도록 배열되고; 그리고,
    상기 장치의 기능을 제어하기 위해 상기 제어 컴포넌트에 의해 실행되도록 구성되는 상기 명령어 세트에 있어서, 상기 명령어 세트는 분산 해시 테이블(DHT, Distributed Hash Table)에 저장되고, 상기 DHT로부터 상기 제어 컴포넌트에 의한 다운로드 및 설치를 위해 액세스되며, 상기 DHT의 위치는 블록체인 거래내에 제공된 메타 데이터를 사용하여 지시되거나 제공되는 시스템.
  2. 제 1 항에 있어서, 상기 제어 컴포넌트는 입력 소스로부터 입력 신호를 수신하도록 배치되고, 상기 입력 소스는,
    추가 장치; 및 / 또는
    컴퓨터 기반 자원 또는 에이전트인 시스템.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 명령어 세트는 암호화 키 쌍과 관련된 룩업 키를 사용하여 상기 제어 컴포넌트에 의해 액세스되는 시스템.
  4. 제1항에 있어서, 상기 제어 컴포넌트는 상기 장치 상에 또는 상기 장치 내에 제공되는 시스템.
  5. 제1항에 있어서, 상기 제어 컴포넌트는 오프 - 장치 위치에 제공되고, 상기 장치와의 무선 통신을 위해 배치되는 시스템.
  6. 제1항에 있어서, 상기 제어 컴포넌트는,
    암호화 연산 수행;
    연관된 개인 / 공개키 쌍에 액세스;
    관련된 비트코인 또는 다른 블록체인 관련 주소 보유;
    API를 통한 장치 작동;
    비밀 공유 프로토콜 동작 수행;을 하도록 구성되는 시스템.
  7. 제1항에 있어서, 상기 제어 컴포넌트는 유효한 블록체인 거래의 검출에 기초하여 상기 장치의 활동에 영향을 주거나 제어하도록 구성되는 시스템.
  8. 장치를 제어하기 위한 컴퓨터에 의하여 각 단계가 구현되는 제어 방법으로서,
    네트워크와의 무선 통신을 위해 구성되고 IP 어드레스 및 장치와 관련된 공개 - 개인키 암호화 키 쌍을 갖는 장치를 제공하는 단계;
    블록체인 네트워크의 상태를 모니터링하고 및 / 또는 블록체인 네트워크에 블록체인 거래들을 전송하도록 구성된 소프트웨어 구현 제어 컴포넌트를 제공하는 단계;
    상기 장치의 기능을 제어하기 위해 상기 제어 컴포넌트에 의해 실행되도록 구성된 명령어 세트를 제공하는 단계에 있어서; i) 상기 제어 컴포넌트는 상기 장치와 별도의 저장된 위치로부터 상기 명령어 세트에 액세스하도록 배열되고;
    ii) 상기 명령어 세트는 분산 해시 테이블(DHT, Distributed Hash Table)에 저장되고, 상기 DHT로부터 상기 제어 컴포넌트에 의한 다운로드 및 설치를 위해 액세스되며; 그리고
    iii) 상기 DHT의 위치는 블록체인 거래내에 제공된 메타 데이터를 사용하여 지시되거나 제공되는 방법.
  9. 제 8 항에 있어서, 상기 제어 컴포넌트는 입력 소스로부터 입력 신호를 수신하도록 배치되고, 상기 입력 소스는,
    추가 장치; 및 / 또는
    컴퓨터 기반 자원 또는 에이전트인 방법.
  10. 제 9 항에 있어서, 상기 명령어 세트는 암호화 키 쌍과 관련된 룩업 키를 사용하여 상기 제어 컴포넌트에 의해 액세스되는 방법.
  11. 제8항에 있어서, 상기 제어 컴포넌트는 상기 장치 상에 또는 상기 장치 내에 제공되는 방법.
  12. 제8항에 있어서, 상기 제어 컴포넌트는 오프 - 장치 위치에 제공되고, 상기 장치와의 무선 통신을 위해 배치되는 방법.
  13. 제8항에 있어서, 상기 제어 컴포넌트는,
    암호화 연산 수행;
    연관된 개인 / 공개키 쌍에 액세스;
    관련된 비트코인 또는 다른 블록체인 관련 주소 보유;
    API를 통한 장치 작동;
    비밀 공유 프로토콜 동작 수행;을 하도록 구성되는 방법.
  14. 제8항에 있어서, 상기 제어 컴포넌트는 유효한 블록체인 거래의 검출에 기초하여 상기 장치의 활동에 영향을 주거나 제어하도록 구성되는 방법.
KR1020187034205A 2016-04-29 2017-04-28 블록체인 iot장치를 위한 동작 시스템 KR102373685B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1607476.7A GB201607476D0 (en) 2016-04-29 2016-04-29 Operating system for blockchain IOT devices
GB1607476.7 2016-04-29
PCT/IB2017/052465 WO2017187397A1 (en) 2016-04-29 2017-04-28 Operating system for blockchain iot devices

Publications (2)

Publication Number Publication Date
KR20190004309A KR20190004309A (ko) 2019-01-11
KR102373685B1 true KR102373685B1 (ko) 2022-03-14

Family

ID=56234103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187034205A KR102373685B1 (ko) 2016-04-29 2017-04-28 블록체인 iot장치를 위한 동작 시스템

Country Status (13)

Country Link
US (2) US11128607B2 (ko)
EP (2) EP4184410A1 (ko)
JP (3) JP7048511B2 (ko)
KR (1) KR102373685B1 (ko)
CN (2) CN118041632A (ko)
AU (1) AU2017257449B2 (ko)
BR (1) BR112018071802A2 (ko)
CA (1) CA3019276A1 (ko)
EA (1) EA201892133A1 (ko)
GB (2) GB201607476D0 (ko)
SG (2) SG10202010719PA (ko)
WO (1) WO2017187397A1 (ko)
ZA (1) ZA201807090B (ko)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4235552A3 (en) 2016-02-23 2023-09-13 nChain Licensing AG Methods and systems for efficient transfer of entities on a peer-to-peer distributed ledger using the blockchain
SG10202011641RA (en) 2016-02-23 2021-01-28 Nchain Holdings Ltd Tokenisation method and system for implementing exchanges on a blockchain
EP3420669B1 (en) 2016-02-23 2021-03-24 Nchain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
KR20180115293A (ko) 2016-02-23 2018-10-22 엔체인 홀딩스 리미티드 블록체인상의 개체의 안전한 전송을 위한 방법 및 시스템
US11126976B2 (en) 2016-02-23 2021-09-21 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
SG10202011640TA (en) 2016-02-23 2021-01-28 Nchain Holdings Ltd System and method for controlling asset-related actions via a blockchain
KR20180116278A (ko) 2016-02-23 2018-10-24 엔체인 홀딩스 리미티드 안전한 정보 교환과 계층 구조적이고 결정론적인 암호키를 위한 공통 비밀 결정
CA3013182A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US11410145B2 (en) 2016-02-23 2022-08-09 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
AU2017223129A1 (en) * 2016-02-23 2018-07-12 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US11120437B2 (en) 2016-02-23 2021-09-14 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
AU2017222468B2 (en) 2016-02-23 2023-01-12 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
EP4167165A1 (en) 2016-02-23 2023-04-19 nChain Licensing AG Blockchain-based exchange with tokenisation
CN108780548B (zh) 2016-02-23 2022-08-05 区块链控股有限公司 将椭圆曲线加密用于个人装置安全以共享秘密
MX2018010056A (es) 2016-02-23 2019-01-21 Nchain Holdings Ltd Un metodo y sistema para asegurar software de computadora usando un cuadro hash distribuido y una cadena de bloques.
JP6533771B2 (ja) * 2016-11-15 2019-06-19 富士通株式会社 通信方法、装置、及びプログラム
CN106980649B (zh) 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
GB201705621D0 (en) * 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201707788D0 (en) * 2017-05-15 2017-06-28 Nchain Holdings Ltd Computer-implemented system and method
US10140392B1 (en) 2017-06-29 2018-11-27 Best Apps, Llc Computer aided systems and methods for creating custom products
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
US20170357678A1 (en) * 2017-07-31 2017-12-14 Qiang Wang Internet Map Macro Marker Management Theory and Control System
US11256799B2 (en) * 2017-08-29 2022-02-22 Seagate Technology Llc Device lifecycle distributed ledger
US10878248B2 (en) 2017-10-26 2020-12-29 Seagate Technology Llc Media authentication using distributed ledger
JP7405745B2 (ja) 2017-11-02 2023-12-26 エヌチェーン ライセンシング アーゲー ブロックチェーンをデジタルツインのセットにリンクするための、コンピュータにより実施されるシステム及び方法
US10567168B2 (en) 2017-11-16 2020-02-18 International Business Machines Corporation Blockchain transaction privacy enhancement through broadcast encryption
WO2019111506A1 (ja) * 2017-12-04 2019-06-13 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
KR20240093786A (ko) * 2018-01-17 2024-06-24 티제로 아이피, 엘엘씨 고객 지갑을 복원하기 위해 n개의 키 중 m개를 사용하는 다중 승인 시스템
CN111602372B (zh) * 2018-01-22 2022-12-09 西门子股份公司 用于控制和/或监控设备的方法和控制系统
CN110086755B (zh) 2018-01-26 2022-06-21 巍乾全球技术有限责任公司 实现物联网服务的方法、应用服务器、物联网设备和介质
WO2019148248A1 (en) * 2018-02-02 2019-08-08 Varughese Ian Arvind Personal record repository arrangement and method for incentivised data analytics
ES2794904T3 (es) 2018-02-19 2020-11-19 Deutsche Telekom Ag Ecosistema de gestión de funciones hash superdistribuidas
AU2018410093A1 (en) * 2018-02-23 2020-07-09 Land Layby Technologies Limited Asset transaction system and method
US11263641B2 (en) 2018-03-08 2022-03-01 International Business Machines Corporation Cognitive operational vehicle blockchain for privileges, licensing, evaluation, authorization, and training
US10693637B2 (en) * 2018-03-23 2020-06-23 Belavadi Nagarajaswamy Ramesh System and method for composite-key based blockchain device control
US11995648B2 (en) * 2018-03-23 2024-05-28 Nchain Licensing Ag Computer-implemented system and method for enabling zero-knowledge proof
WO2019185042A1 (en) * 2018-03-29 2019-10-03 AnApp Technologies Limited System and method for operating a blockchain network
JP6949249B2 (ja) * 2018-04-16 2021-10-13 ビーシー ディベロップメント ラボズ ゲーエムベーハー 最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク
JP2021523504A (ja) 2018-05-06 2021-09-02 ストロング フォース ティエクス ポートフォリオ 2018,エルエルシーStrong Force Tx Portfolio 2018,Llc エネルギー、コンピュータ、ストレージ、及びその他のリソースの、スポット市場及び先物市場における分散型元帳及びその他のトランザクションの実行を自動化する、機械及びシステムを改善するための方法及びシステム
US11544782B2 (en) 2018-05-06 2023-01-03 Strong Force TX Portfolio 2018, LLC System and method of a smart contract and distributed ledger platform with blockchain custody service
US11550299B2 (en) 2020-02-03 2023-01-10 Strong Force TX Portfolio 2018, LLC Automated robotic process selection and configuration
US11669914B2 (en) 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
WO2019213700A1 (en) * 2018-05-07 2019-11-14 Dream Channel Pty. Ltd. Films on a blockchain
CN108377272B (zh) * 2018-05-09 2021-02-02 深圳市有方科技股份有限公司 一种管理物联网终端的方法及系统
MY197067A (en) * 2018-05-24 2023-05-24 Soft Space Sdn Bhd Method for processing a secure financial transaction using a commercial off-the-shelf or an internet of things device
US10693716B2 (en) 2018-05-29 2020-06-23 At&T Mobility Ii Llc Blockchain based device management
US11475398B2 (en) * 2018-05-30 2022-10-18 Ncr Corporation Product traceability processing
WO2019236482A1 (en) 2018-06-04 2019-12-12 Rafalko Noah Telecommunication system and method for settling session transactions
US10972463B2 (en) 2018-06-06 2021-04-06 Cisco Technology, Inc. Blockchain-based NB-IoT devices
US10673618B2 (en) 2018-06-08 2020-06-02 Cisco Technology, Inc. Provisioning network resources in a wireless network using a native blockchain platform
US10505718B1 (en) 2018-06-08 2019-12-10 Cisco Technology, Inc. Systems, devices, and techniques for registering user equipment (UE) in wireless networks using a native blockchain platform
US10754847B2 (en) 2018-06-19 2020-08-25 Cannagri Blockchain, Inc. Method, apparatus and system for production management
US10887082B2 (en) * 2018-07-24 2021-01-05 Vmware, Inc. Internet of things blockchain auditing
US10826762B2 (en) * 2018-08-06 2020-11-03 Cisco Technology, Inc. Configuring resource-constrained devices in a network
US11410174B2 (en) 2018-08-07 2022-08-09 International Business Machines Corporation Custom blockchain for IoT devices
US10868876B2 (en) 2018-08-10 2020-12-15 Cisco Technology, Inc. Authenticated service discovery using a secure ledger
JP7206698B2 (ja) * 2018-08-28 2023-01-18 セイコーエプソン株式会社 提供装置、処理システム及び通信方法
US11750395B2 (en) * 2018-09-03 2023-09-05 Icncast Co., Ltd System and method for blockchain-based multi-factor security authentication between mobile terminal and IoT device
US11044104B2 (en) 2018-09-05 2021-06-22 International Business Machines Corporation Data certification as a service powered by permissioned blockchain network
CN112232817A (zh) * 2018-10-25 2021-01-15 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
US11308194B2 (en) 2018-10-31 2022-04-19 Seagate Technology Llc Monitoring device components using distributed ledger
EP3654578B1 (en) 2018-11-16 2022-04-06 SafeTech BV Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information
US10867081B2 (en) 2018-11-21 2020-12-15 Best Apps, Llc Computer aided systems and methods for creating custom products
KR101997673B1 (ko) * 2018-12-06 2019-07-08 주식회사 푸시풀시스템 가상 블록체인을 갖는 듀얼 블록체인 기반의 디지털 전자기기
CN109302431B (zh) * 2018-12-14 2021-03-09 广州大学 一种物联网海量资源与数据安全可信管理系统
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
US11068316B2 (en) 2018-12-24 2021-07-20 LiquidApps Ltd Systems and method for managing memory resources used by smart contracts of a blockchain
KR102177794B1 (ko) * 2018-12-26 2020-11-12 서강대학교 산학협력단 사물인터넷 블록체인 환경에서의 디바이스 분산 인증 방법 및 이를 이용한 디바이스 분산 인증 시스템
US10402823B1 (en) * 2018-12-30 2019-09-03 Alexander Vladimirovich Vlasov System for exchanging private keys for mutual settlements between users of a cryptocurrency outside blockchains
TWI701618B (zh) * 2019-01-09 2020-08-11 台灣海耶克股份有限公司 以任務階層分配資源的方法
CN110011823B (zh) * 2019-01-18 2020-10-30 创新先进技术有限公司 物联网设备的远程管理实现方法和装置
US11411739B2 (en) * 2019-02-07 2022-08-09 Internatiional Business Machines Corporation Smart device to impose trust at the edge of a blockchain
US20220060332A1 (en) * 2019-02-12 2022-02-24 Commonwealth Scientific And Industrial Research Organisation Energized identity powered blockchain
US11038857B1 (en) * 2019-02-14 2021-06-15 Sprint Communications Company L.P. Data messaging service with distributed ledger control
KR102519186B1 (ko) * 2019-02-18 2023-04-06 아주대학교산학협력단 트랜잭션 처리를 위한 블록체인 네트워크의 노드 장치 및 이의 동작방법
KR20200106603A (ko) 2019-03-05 2020-09-15 정상국 블록체인 기반의 블록데이터 분산 저장방법
CN110011972B (zh) * 2019-03-05 2023-03-31 未鲲(上海)科技服务有限公司 一种基于区块链的动态口令请求、响应方法及装置
KR20200106604A (ko) 2019-03-05 2020-09-15 정상국 블록체인 기반의 합의 알고리즘에서 대표자 선정방법
KR20200106605A (ko) 2019-03-05 2020-09-15 정상국 블록체인 기반의 합의 알고리즘에서 이중 합의방법
US11228443B2 (en) * 2019-03-25 2022-01-18 Micron Technology, Inc. Using memory as a block in a block chain
WO2020222701A1 (en) * 2019-05-02 2020-11-05 Singapore Airlines Limited Method, transaction management device and computer-readable media for facilitating concurrent transactions
US11228446B2 (en) 2019-05-10 2022-01-18 Advanced New Technologies Co., Ltd. Blockchain-based reconciliation method and apparatus and electronic device
US11423016B2 (en) * 2019-06-26 2022-08-23 Indian Institute Of Technology Bombay Method for scaling computation in blockchain by delaying transaction execution
US20210051019A1 (en) * 2019-08-13 2021-02-18 Realtime Applications, Inc. Blockchain communication architecture
KR102152537B1 (ko) * 2019-10-10 2020-09-07 (주) 모로보기 사물 인터넷 장치를 위한 블록체인 네트워크
US11489676B2 (en) 2019-10-24 2022-11-01 Hewlett Packard Enterprise Development Lp Blockchain internet-of-things system and related method
CA3098936A1 (en) * 2019-11-13 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. Dynamic blockchain data storage based on error correction code
US11288052B2 (en) 2019-11-21 2022-03-29 General Electric Company Devices, systems, and methods for providing on-demand engine software using a distributed ledger
CN110990896B (zh) * 2019-12-03 2023-01-06 成都卫士通信息产业股份有限公司 基于sm2白盒的数字签名装置、方法、存储介质及设备
US11982993B2 (en) 2020-02-03 2024-05-14 Strong Force TX Portfolio 2018, LLC AI solution selection for an automated robotic process
US11770257B1 (en) * 2020-02-07 2023-09-26 Research Blocks Technologies, Inc. Blockchain incorporated system for verifying ingredients in agricultural products and byproducts
US11514203B2 (en) 2020-05-18 2022-11-29 Best Apps, Llc Computer aided systems and methods for creating custom products
CN111552215B (zh) * 2020-05-22 2022-02-11 中国联合网络通信集团有限公司 物联网设备安全防护方法和系统
CN111628998B (zh) * 2020-05-26 2022-03-01 中国联合网络通信集团有限公司 一种粉尘攻击防范方法
CN112118124B (zh) * 2020-08-03 2022-05-03 西安电子科技大学 区块链构建方法、系统、存储介质、计算机设备及应用
EP3958507A1 (en) * 2020-08-17 2022-02-23 Nokia Solutions and Networks Oy Blockchain-based network device management methods and devices
JP6935662B1 (ja) * 2020-08-19 2021-09-15 株式会社chaintope 記録が変更されていないことを証明するシステム
EP3968188A1 (de) * 2020-09-10 2022-03-16 Siemens Mobility AG Verfahren zum sicheren aus- oder einschalten einer anlage
CN112689016B (zh) * 2020-12-25 2022-06-28 杭州复杂美科技有限公司 智能设备控制方法、设备和存储介质
CN112819467B (zh) * 2021-02-23 2024-09-06 中国信息通信研究院 一种隐私交易方法、装置及系统
KR20220141493A (ko) 2021-04-13 2022-10-20 주식회사 노틸러스 링크드 데이터를 처리하는 장치
US11463130B1 (en) * 2021-10-13 2022-10-04 Roku, Inc. Proving physical possession of internet-of-things (IoT) devices
US11924351B1 (en) 2023-02-09 2024-03-05 Hong Kong Applied Science and Technology Research Institute Company Limited Optimizing data transactions and verification on a blockchain network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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.

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP2005512170A (ja) * 2001-11-12 2005-04-28 ネットワーク リサーチ ラブ リミテッド 不正使用に対する情報保護の方法および装置
US6868804B1 (en) 2003-11-20 2005-03-22 Growsafe Systems Ltd. Animal management system
US20060069800A1 (en) * 2004-09-03 2006-03-30 Microsoft Corporation System and method for erasure coding of streaming media
CN101449274B (zh) * 2006-05-18 2010-10-06 松下电器产业株式会社 用于内容再现控制的电子设备、方法和集成电路
CN101490687B (zh) * 2006-07-07 2012-04-18 桑迪士克股份有限公司 使用身份对象的控制系统及方法
KR100875931B1 (ko) * 2006-12-05 2008-12-26 한국전자통신연구원 통합 ip 패킷 지원 보안 장치 및 방법
US10621809B2 (en) 2012-01-19 2020-04-14 Christopher M. Smolen Digital currency enabled vending machine
KR101451280B1 (ko) * 2012-10-16 2014-10-16 케이티하이텔 주식회사 분산형 데이터베이스 관리 시스템 및 방법
US9596305B2 (en) * 2013-04-06 2017-03-14 Citrix Systems, Inc. Systems and methods for distributed hash table contract renewal
US9595034B2 (en) 2013-10-25 2017-03-14 Stellenbosch University System and method for monitoring third party access to a restricted item
CN103795785B (zh) 2014-01-16 2019-01-08 加一联创电子科技有限公司 物联网控制方法和终端
CN104869129B (zh) 2014-02-20 2018-12-07 中国移动通信集团公司 一种应用程序管理方法、设备及系统
JP6488691B2 (ja) * 2014-03-03 2019-03-27 株式会社バッファロー 無線中継装置、制御システムおよびコンピュータープログラム
WO2015144971A1 (en) * 2014-03-27 2015-10-01 Nokia Technologies Oy Method and apparatus for automatic inter-device authorisation
US20160335628A1 (en) * 2014-05-15 2016-11-17 Adam Mark Weigold System and method for digital currency storage, payment and credit
US20160098723A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US9967333B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Deferred configuration or instruction execution using a secure distributed transaction ledger
US10158480B1 (en) * 2015-03-16 2018-12-18 Winklevoss Ip, Llc Autonomous devices
GB2531828A (en) 2015-03-24 2016-05-04 Intelligent Energy Ltd An energy resource network
US20160299918A1 (en) 2015-04-07 2016-10-13 Dell Software, Inc. Device Control Using a Secure Decentralized Transactional Ledger
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
US20170178127A1 (en) * 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database
US10520670B2 (en) * 2017-11-28 2019-12-31 Sterlite Technologies Limited Few mode optical fiber

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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.

Also Published As

Publication number Publication date
JP2019515373A (ja) 2019-06-06
GB2564199A (en) 2019-01-09
US20220021662A1 (en) 2022-01-20
JP7048511B2 (ja) 2022-04-05
GB201806518D0 (en) 2018-06-06
AU2017257449A1 (en) 2018-11-01
CN118041632A (zh) 2024-05-14
JP2023175927A (ja) 2023-12-12
BR112018071802A2 (pt) 2019-02-19
ZA201807090B (en) 2022-10-26
GB2564199B (en) 2022-02-23
SG11201809117QA (en) 2018-11-29
WO2017187397A1 (en) 2017-11-02
CA3019276A1 (en) 2017-11-02
CN109089427A (zh) 2018-12-25
GB201607476D0 (en) 2016-06-15
AU2017257449B2 (en) 2023-01-19
JP2022075949A (ja) 2022-05-18
US11128607B2 (en) 2021-09-21
EA201892133A1 (ru) 2019-04-30
KR20190004309A (ko) 2019-01-11
EP4184410A1 (en) 2023-05-24
EP3449449A1 (en) 2019-03-06
US20190158470A1 (en) 2019-05-23
SG10202010719PA (en) 2020-11-27
JP7364724B2 (ja) 2023-10-18

Similar Documents

Publication Publication Date Title
KR102373685B1 (ko) 블록체인 iot장치를 위한 동작 시스템
US11900364B2 (en) Implementing logic gate functionality using a blockchain
KR101987692B1 (ko) 블록체인 집행의 스마트 계약을 위한 레지스트리 및 자동화 관리 방법
US20190149337A1 (en) Implementing logic gate functionality using a blockchain
Michelagnoli Quantum-resistant Blockchain
Varfolomeev et al. B-FEF-blockchain based framework to exchange files

Legal Events

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