KR101974075B1 - 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템 - Google Patents
분산 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR101974075B1 KR101974075B1 KR1020187034991A KR20187034991A KR101974075B1 KR 101974075 B1 KR101974075 B1 KR 101974075B1 KR 1020187034991 A KR1020187034991 A KR 1020187034991A KR 20187034991 A KR20187034991 A KR 20187034991A KR 101974075 B1 KR101974075 B1 KR 101974075B1
- Authority
- KR
- South Korea
- Prior art keywords
- user
- computer software
- public key
- key
- peer
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000009434 installation Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 37
- 238000004891 communication Methods 0.000 claims description 18
- 230000004913 activation Effects 0.000 claims description 4
- 238000013515 script Methods 0.000 description 84
- 239000003795 chemical substances by application Substances 0.000 description 23
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008449 language Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- QSHDDOUJBYECFT-UHFFFAOYSA-N mercury Chemical compound [Hg] QSHDDOUJBYECFT-UHFFFAOYSA-N 0.000 description 1
- 229910052753 mercury Inorganic materials 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000000230 xanthan gum Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6281—Protecting 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 at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0435—Network 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 symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Power Engineering (AREA)
- Library & Information Science (AREA)
- Finance (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
분산 해시 테이블(13)과 피어투피어 분산 원장(14)을 사용하여 설치 후 실행 전의 컴퓨터 소프트웨어의 소유권을 검증하기 위한 컴퓨터 구현 방법(600)과 시스템(1)에 관한 것이다. 이것은 비트코인 블록체인 또는 대체 구현예일 수 있다. 방법은, 피어투피어 분산 원장(14) 상에 저장된 거래 기록으로부터 제2 사용자(24)에 연관된 제2 사용자 공개키를 결정하는 단계(610)를 포함한다. 제2 사용자에 연관된 제2 공개키는, 분산 해시 테이블(13) 상의 엔트리로부터 결정될 수 있다(620). 방법은, 제2 사용자 공개키와 제2 공개키를 비교하는 단계(630), 및 제2 사용자 공개키와 제2 공개키의 비교에 기초하여 컴퓨터 소프트웨어의 소유권을 검증하는 단계(640)를 더 포함한다.
Description
본 개시 내용은, 디지털 자산의 인가된 제어를 보장하기 위한 보안, 제어, 및 검증 방법에 관한 것이다. 본 발명은, 컴퓨터 소프트웨어의 항목의 소유권 또는 인가된 사용/제어를 검증하는 데 특히 적합하다. 이는, 분산 해시 테이블과 피어투피어 분산 원장(블록체인)을 사용하는 것을 포함할 수 있다.
본원에서는, 모든 형태의 컴퓨터 기반 전자 분산 원장을 포함하기 위해 '블록체인'이라는 용어를 사용한다. 이들 용어는, 컨센서스 기반 블록체인 및 거래(transaction) 체인 기술, 허가된 및 허가되지 않은 원장, 공유 원장, 및 그 변형을 포함한다. 블록체인 기술의 가장 널리 알려진 응용분야는 비트코인 원장이지만, 다른 블록체인 구현예도 제안되고 개발되었다. 본원에서는 비트코인을 편의상 및 설명을 위해 언급할 수 있지만, 본 발명은 비트코인 블록체인과 함께 사용하는 것으로 한정되지 않으며 대체 블록체인 구현예 및 프로토콜도 본 발명의 범위 내에 속한다는 점에 주목한다. "사용자"라는 용어는 본원에서 사람 또는 프로세서 기반 자원을 가리킬 수 있다.
블록체인은, 컴퓨터 기반 비집중형 분산 시스템으로서 구현되는 전자 원장으로서 블록들로 구성된 피어투피어 분산 시스템이며, 이러한 블록들은 다시 거래들로 구성된다. 각 거래는, 블록체인 시스템의 참여자들 간에 디지털 자산의 제어 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록은, 거래의 개시 이후로 블록체인에 기입된 모든 거래의 영구적이면서 변경불가 레코드를 생성하도록 그 블록들이 함께 체인 연결되는 이전 블록의 해시를 포함한다. 거래는, 자신의 입력과 출력에 내장된 스크립트라고 하는 작은 프로그램을 포함하며, 이 프로그램은 거래의 출력에 어떻게 액세스할 수 있는지 및 누가 액세스할 수 있는지를 특정한다. 비트코인 플랫폼 상에서, 이들 스크립트는 스택 기반 스크립팅 언어를 사용하여 기입된다.
거래를 블록체인에 기입하려면, 거래를 "유효성 확인(validated)"해야 한다. 네트워크 노드(채굴자)는, 네트워크로부터 유효하지 않은 거래를 거부하여 각 거래가 유효함을 보장하도록 작업을 수행한다. 노드에 설치된 소프트웨어 클라이언트는, 자신의 잠금 및 잠금해제 스크립트를 실행함으로써 사용되지 않은 거래(UTXO)에 대하여 이러한 유효성 확인 작업을 수행한다. 잠금 및 잠금해제 스크립트의 실행이 참(TRUE)으로 평가되면, 거래는 유효한 것이며, 거래가 블록체인에 기록된다. 따라서, 거래를 블록체인에 기록하려면, i) 거래를 수신하는 제1 노드에 의해 거래를 유효성 확인해야 하고, 거래가 유효성 확인되면, 노드가 그러한 거래를 네트워크의 나머지 노드들에 중계하며, ii) 거래를 마이너에 의해 구축되는 새로운 블록에 추가해야 하고, iii) 채굴해야 하며, 즉, 과거 거래들의 공개 원장에 추가해야 한다.
블록체인 기술이 암호화폐의 구현 용도에 가장 널리 알려져 있지만, 디지털 기업가는, 비트코인이 기반으로 하는 암호 보안 시스템 및 새로운 시스템을 구현하도록 블록체인에 저장될 수 있는 데이터의 사용 모두를 모색하기 시작했다. 블록체인이 암호화폐의 영역으로 한정되지 않는 자동화된 작업 및 프로세스에 사용될 수 있다면 매우 유리할 것이다. 이러한 솔루션은, 블록체인의 이점(예를 들어, 이벤트의 영구적인 변경 방지 레코드, 분산 처리 등)을 활용할 수 있고 또한 해당 응용분야에서 더욱 다용도일 수 있다.
현재 연구 분야 중 하나는 "스마트 계약"을 구현하기 위한 블록체인의 사용이다. 스마트 계약은, 기계 판독가능 계약 또는 합의의 실행을 자동화하도록 설계된 컴퓨터 프로그램이다. 자연어로 기록되는 기존의 계약과 달리, 스마트 계약은, 결과를 생성하도록 입력을 처리할 수 있는 규칙을 포함하는 기계 실행가능 프로그램이며, 그러한 결과에 따라 액션이 수행되게 할 수 있다.
블록체인과 관련된 또 다른 관심 분야는, 블록체인을 통해 현실 세계 엔티티를 표현하고 전송하도록 '토큰'(또는 '컬러드 코인(Coloured Coin)')을 사용하는 것이다. 잠재적으로 민감한 또는 비밀 항목은, 식별할 수 있는 의미 또는 값이 없는 토큰에 의해 표현될 수 있다. 따라서, 토큰은 실세계 항목을 블록체인으로부터 참조할 수 있게 하는 식별자로서 기능한다.
토큰이 제공하는 위조방지 레코드 때문에, 블록체인은, 제어, 이벤트의 가시성, 및 보안 거래/교환이 중요한 응용분야에 매우 적합하다. 이러한 적합한 한 응용분야는, 예를 들어, 소프트웨어와 같은 디지털 자산의 교환 또는 전송이다. 컴퓨터 소프트웨어의 무결성과 공유를 보장하기 위한 전통적인 방안은 컴퓨터 소프트웨어의 실행 파일에 디지털 서명을 행하는 것을 포함한다. 예를 들어, 실행파일(executable) 또는 연관 코드를 공개키와 개인키와 같은 키들의 암호쌍(cryptographic pair)으로 서명하는 것이다. 공개키는 인증 기관과 같이 신뢰할 수 있는 중앙 기관으로부터 종종 취득된다.
컴퓨터 소프트웨어에는 계약상 의무 사항들이 포함된 라이센스가 종종 수반된다. 라이센스에는, 소프트웨어의 사용 또는 재배포를 규제하는 조건이 포함할 수 있다. 그러나, 컴퓨터 소프트웨어 또는 연관된 라이센스가 다른 사용자에게 비인가 방식으로 또는 바람직하지 않은 방식으로 전달되는 경우 문제가 발생할 수 있다. 소프트웨어의 소유권, 인가, 및 정당한 제어를 검증하는 것이 중요하다. 이는, 예를 들어, 소프트웨어가 잘못된 소유자에게 또는 인가받지 않고서 전달되지 않았음을 보장하기 위한 것이다. 따라서, 소유권의 검증 및/또는 소프트웨어 등의 제어되는 디지털 자산 또는 자원의 전달을 용이하게 하거나 가능하게 하는 솔루션을 제공하는 것이 바람직하다. 이는 결국 소프트웨어 및 전자 전송 프로세스의 무결성을 보장하는 데 도움이 된다.
본 명세서에 포함된 문헌, 행위, 재료, 장치, 물품 등의 임의의 설명은, 이러한 사안들 중 일부 또는 전부가 종래 기술 기반의 일부를 형성하거나 또는 본원의 각 청구항의 우선일 전에 존재하였던 것처럼 본 개시 내용에 관한 분야의 일반적인 지식임을 인정하는 것으로서 간주해서는 안 된다.
본 명세서 전체에 걸쳐, "포함하다"라는 단어 또는 "포함한다" 또는 "포함하는"과 같은 변형은, 명시된 요소, 정수 또는 단계, 혹은 요소, 정수 또는 단계의 그룹을 포함하지만, 다른 임의의 요소, 정수 또는 단계, 혹은 요소, 정수 또는 단계의 그룹을 배제하지 않는다는 점을 의미하는 것임을 이해할 것이다.
본 발명은 첨부된 청구범위에서 정의되는 방법(들) 및 대응하는 시스템(들)을 제공한다. 본 발명은 컴퓨터 구현 제어 및 검증 방법/시스템을 제공할 수 있다. 본 발명은 컴퓨터 기반 네트워크 상의 사용자들 간의 자산의 전송 제어를 가능하게 하거나 용이하게 할 수 있다. 자산은 디지털 자산일 수 있다. 여기서, "사용자"라는 용어는 컴퓨터 기반 자원을 지칭하는 데 사용될 수 있다. 제어되는 자산은 소프트웨어의 일부 또는 항목일 수 있다. 본 발명은, 제어되는 자산, 예를 들어, 컴퓨터 소프트웨어의 일부를 검증하는 컴퓨터 구현 방법을 제공할 수 있다. 이것은 소프트웨어의 인가 또는 소유권을 검증하는 방법일 수 있다. 소프트웨어는 컴퓨터 기반 자원에 대한 설치에 대하여 검증될 수 있다.
방법은, 분산 해시 테이블과 피어투피어 분산 원장(블록체인)을 사용하여 설치 후 실행 전의 컴퓨터 소프트웨어의 항목의 인가된 사용/제어 또는 소유권을 검증하는 컴퓨터 구현 방법을 포함할 수 있다. 방법은, 피어투피어 분산 원장에 저장된 거래 기록으로부터 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)를 결정하는 단계; 분산 해시 테이블에 저장된 엔트리로부터 제2 사용자(U2)에 연관된 제2 공개키(P2)를 결정하는 단계; 제2 사용자 공개키(PU2)와 제2 공개키(P2)를 비교하는 단계; 및 제2 사용자 공개키(PU2)와 제2 공개키(P2)의 비교에 기초하여 컴퓨터 소프트웨어의 소유권을 검증하는 단계를 포함할 수 있다.
제2 사용자 공개키(PU2)와 제2 공개키(P2)는, 개별적인 기술 자원들에, 즉, 블록체인과 DHT에 각각 저장될 수 있고, 이러한 기술 자원들로부터 회수(retrive)될 수 있다는 점에 주목해야 한다. 따라서, 본 발명은, 상이하고 개별적인 저장 자원들을 사용하는 것, 및 이들 간의 데이터 전송과 상호통신을 포함할 수 있다. 본 발명은, DHT와 블록체인으로부터 데이터를 검색, 처리, 및 회수함으로써, 디지털 자산(예를 들어, 소프트웨어) 설치, 전송, 및 인가에 대한 더욱 안전한 방안을 초래하는 향상된 제어, 보안, 및 검증 효과를 달성할 수 있다.
방법에 있어서, 제2 사용자 공개키(PU2)와 제2 공개키(P2)를 비교하는 단계는, 제2 사용자 공개키(PU2)와 제2 공개키(P2)가 일치하는지 여부를 결정하는 단계를 포함할 수 있다. "일치"라는 용어는, 제2 사용자 공개키(PU2)와 제2 공개키(P2) 간의 대응성, 평등성, 또는 연관성을 포함할 수 있다.
방법에 있어서, 컴퓨터 소프트웨어는 헤더와 바디를 포함할 수 있다. 헤더는 컴퓨터 소프트웨어의 바디의 해시값을 포함할 수 있다. 헤더는 컴퓨터 소프트웨어 또는 라이센스에 연관된 데이터의 해시값(H2)을 더 포함할 수 있다. 컴퓨터 소프트웨어의 바디는 컴퓨터 소프트웨어의 실행파일을 포함할 수 있다.
방법에 있어서, 제2 사용자 공개키(PU2)를 결정하는 단계 전에, 방법은, 제2 사용자(U2)에 연관된 처리 장치에 컴퓨터 소프트웨어의 실행파일을 설치하는 단계를 포함할 수 있다. 방법에 있어서, 컴퓨터 소프트웨어의 실행파일을 설치하는 단계 전에, 방법은 컴퓨터 소프트웨어의 실행파일을 암호화하는 단계를 포함할 수 있다.
컴퓨터 소프트웨어의 실행파일을 암호화하는 단계는, 생성기 값(GV)을 결정하는 단계; 제2 사용자 공개키(PU2)와 생성기 값(GV)에 기초하여 제2 사용자 제2 공개키(P2U2)를 결정하는 단계로서, 제2 사용자 제2 공개키(P2U2)는 제2 사용자 제2 개인키(V2U2)와의 암호쌍을 형성하는, 단계; 제1 사용자 공개키(VU1)와 생성기 값(GV)에 기초하여 제1 사용자 제2 공개키(P2U1)를 결정하는 단계로서, 제1 사용자 제2 공개키(P2U1)는 제1 사용자 제2 개인키(V2U1)와의 암호쌍을 형성하는, 단계; 제2 사용자 제2 공개키(P2U2)와 제1 사용자 제2 개인키(V2U1)에 기초하여 공통 비밀(CS)을 결정하는 단계; 및 컴퓨터 소프트웨어의 실행파일을 공통 비밀(CS)로 암호화하여 컴퓨터 소프트웨어의 암호화된 실행파일을 생성하는 단계를 포함할 수 있다.
방법에 있어서, 컴퓨터 소프트웨어의 암호화된 실행파일은, 제1 사용자 제2 공개키(P2U1)와 제2 사용자 제2 개인키(V2U2)에 기초하여 공통 비밀(CS)을 결정하는 단계; 및 컴퓨터 소프트웨어의 실행파일을 공통 비밀(CS)로 해독하여 컴퓨터 소프트웨어의 해독된 실행파일을 생성하는 단계에 의해 해독될 수 있다.
방법은, 컴퓨터 소프트웨어의 해독된 실행파일의 명령을 제2 사용자(U2)에 연관된 처리 장치에 대하여 실행하는 단계를 더 포함할 수 있다. 방법은, 제2 사용자(U2)로부터 활성화 키(AK)를 결정하는 단계; 및 활성화 키(AK)에 기초하여 컴퓨터 소프트웨어의 해독된 실행파일의 명령을 제2 사용자(U2)에 연관된 처리 장치에 대하여 실행하는 단계를 더 포함할 수 있다.
방법에 있어서, 컴퓨터 소프트웨어의 실행파일을 암호화하는 단계 전에, 방법은, 컴퓨터 소프트웨어에 연관된 데이터(D1)를 결정하는 단계; 컴퓨터 소프트웨어의 제1 해시값(H1)을 결정하는 단계; 데이터(D1)와 컴퓨터 소프트웨어에 기초하여 제2 해시값(H2)을 결정하는 단계; 통신 네트워크를 통해, 데이터(D1), 제1 해시값, 및 제2 해시값(H2)을 분산 해시 테이블에 저장하기 위한 엔트리에 전송하는 단계로서, 제2 해시값(H2)이 키-값 쌍의 키이고 데이터(D1) 및 제1 해시값(H1)이 키-값 쌍의 값인, 단계; 및 피어투피어 분산 원장 상에 저장하기 위한 제2 해시값(H2)을 포함하는 메타데이터(M)를 결정하는 단계를 포함할 수 있다.
컴퓨터 소프트웨어 프로그램은, 처리 장치가 전술한 방법을 구현하게 하는 기계 판독가능 명령을 포함한다.
분산 해시 테이블과 피어투피어 분산 원장을 사용하여 설치 후 실행 전의 컴퓨터 소프트웨어의 소유권을 검증하기 위한 컴퓨터 시스템으로서, 이 컴퓨터 시스템은, 노드들의 피어투피어 네트워크 상의 노드에 연관된 처리 장치를 포함하고, 처리 장치는, 피어투피어 분산 원장에 저장된 거래 기록으로부터 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)를 결정하고, 분산 해시 테이블 상에 저장된 엔트리로부터 제2 사용자(U2)에 연관된 제2 공개키(P2)를 결정하고, 제2 사용자 공개키(PU2)와 제2 공개키(P2)를 비교하고, 제2 사용자 공개키(PU2)와 제2 공개키(P2)의 비교에 기초하여 컴퓨터 소프트웨어의 소유권을 검증하도록 구성된다.
이하, 본 개시 내용의 예들을 도면을 참조하여 설명한다.
도 1은 해시 테이블의 일례를 도시한다.
도 2는 분산 해시 테이블을 사용하여 설치 후 실행 전의 컴퓨터 소프트웨어의 컴퓨터 소프트웨어를 보안화하기 위한 메타데이터(M)를 결정하는 예시적인 시스템의 개략도를 도시한다.
도 3은 분산 해시 테이블을 사용하여 컴퓨터 소프트웨어를 보안화하기 위한 메타데이터(M)를 결정하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 4는 머클(Merkle) 트리의 일례를 도시한다.
도 5는 컴퓨터 소프트웨어 및 컴퓨터 소프트웨어에 연관된 라이센스를 참조하여 머클 트리의 일례를 도시한다.
도 6은 분산 해시 테이블을 사용하여 컴퓨터 소프트웨어의 위치를 나타내는 식별자를 결정하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 7은 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 설치할 컴퓨터 소프트웨어의 소유권을 검증하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 8은 공통 비밀을 결정하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 9는 컴퓨터 소프트웨어의 실행파일을 암호화하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 10은 예시적인 처리 장치의 개략도를 도시한다.
도 1은 해시 테이블의 일례를 도시한다.
도 2는 분산 해시 테이블을 사용하여 설치 후 실행 전의 컴퓨터 소프트웨어의 컴퓨터 소프트웨어를 보안화하기 위한 메타데이터(M)를 결정하는 예시적인 시스템의 개략도를 도시한다.
도 3은 분산 해시 테이블을 사용하여 컴퓨터 소프트웨어를 보안화하기 위한 메타데이터(M)를 결정하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 4는 머클(Merkle) 트리의 일례를 도시한다.
도 5는 컴퓨터 소프트웨어 및 컴퓨터 소프트웨어에 연관된 라이센스를 참조하여 머클 트리의 일례를 도시한다.
도 6은 분산 해시 테이블을 사용하여 컴퓨터 소프트웨어의 위치를 나타내는 식별자를 결정하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 7은 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 설치할 컴퓨터 소프트웨어의 소유권을 검증하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 8은 공통 비밀을 결정하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 9는 컴퓨터 소프트웨어의 실행파일을 암호화하는 컴퓨터 구현 방법의 흐름도를 도시한다.
도 10은 예시적인 처리 장치의 개략도를 도시한다.
본 개시 내용은, 일반적으로 설치 후 실행 전의 컴퓨터 소프트웨어를 검증할 수 있도록 비트코인 블록체인과 같은 피어투피어(P2P) 분산 원장과 분산 해시 테이블을 이용하는 방법 및 시스템에 관한 것이다.
후술하는 실시예들은 특히 비트코인 블록체인(여기서는 블록체인이라고 칭함) 상에서 발생하는 거래를 참조할 수 있지만, 본 발명은 다른 P2P 분산 원장을 사용하여 구현될 수 있음을 이해할 수 있을 것이다. 블록체인은, 이하에서 표준화 수준이 높고 연관된 공개 문서가 많기 때문에 단순화를 위해서만 본 발명의 양태들을 설명하도록 사용된다.
분산 해시 테이블
통상적인 클라이언트/서버 모델에서는, 중앙 서버가 대부분의 자원을 담당할 수 있다. 이는, 중앙 서버에서 공격 또는 고장이 발생하는 경우 중앙 서버에 저장된 대부분의 자원이 손상될 수 있음을 의미한다. 반대로, 분산 모델에서는, 자원들이 참여 노드들 간에 공유("분산")된다. 이러한 방식으로, 모든 참여 노드의 용량이 활용되며, 한 서버에서 고장이 발생하더라도 대부분의 자원이 손상되는 것은 아니다.
도 1은 해시 테이블의 일례를 도시한다. 해시 테이블은 키-값 쌍들로 구성된다. 각 키-값 쌍의 키는 해시 함수를 통해 인덱스에 맵핑된다. 인덱스는 키-값 쌍들의 저장된 값들의 위치를 정의한다.
DHT는 분산 모델을 해시 테이블에 적용하는 일례이다. 해시 테이블과 마찬가지로, DHT는, 키-값 쌍들을 포함하며, 키만 제공된 키-값 쌍의 값을 위치파악("룩업")하는 효율적인 방법을 제공한다. 그러나, 해시 테이블과는 대조적으로, 키-값 쌍들은 다수의 참여 노드에 의해 분산되고 저장된다. 이러한 방식으로, 키-값 쌍들을 저장하고 유지하는 책임은 참여 노드들에 의해 공유된다.
해시 테이블과 동일한 방식으로, DHT의 각 키-값 쌍은 인덱스에 맵핑된다. 인덱스는, 키에 대해 해시 함수를 수행함으로써 각 키-값 쌍에 대해 결정된다. 예를 들어, 암호 보안 해시 알고리즘(SHA-1)을 사용하여 인덱스를 결정할 수 있다.
각 참여 노드에는 키스페이스 파티셔닝에 의해 적어도 하나의 인덱스가 할당된다. 참여 노드에 할당된 각 인덱스에 대해, 참여 노드는 해당 키-값 쌍의 값을 저장한다.
키-값 쌍들의 값들이 효율적으로 회수될 수 있는 이점이 있다. 키에 연관된 값을 회수하기 위해, 노드는 "룩업"을 실행하여 (인덱스를 통해) 담당 노드를 결정할 수 있다. 이어서, 담당 노드에 액세스하여 값을 결정할 수 있다.
비트코인과 블록체인
당업계에 공지되어 있는 바와 같이, 블록체인은, 비트코인 프로토콜에 기초한 시스템에 참여하는 네트워크화 노드들에 걸쳐 통해 저장 용량이 분산되는 데이터베이스의 거래 유형 원장이다. 각 비트코인 거래는 네트워크로 브로드캐스팅되고, 거래는 확인된 후 블록으로 집계된다. 이어서, 블록들은, 여러 참여 노드에 블록들을 저장함으로써 블록체인에 포함된다.
암호화폐의 P2P 분산 원장의 전체 사본은 암호화폐에서 실행된 모든 거래를 포함한다. 따라서, 지속적으로 증가하는 거래 데이터의 레코드 리스트를 제공한다. 블록체인에 입력된 각 거래는 암호로 시행되므로, 블록체인은, 참여 노드의 운영자에 의한 변조 및 수정에도 저항하도록 강화되어 있다.
블록체인의 투명성 때문에, 각 거래마다 이력을 공개적으로 이용할 수 있다.
블록체인의 다른 장점은, 거래와 거래의 레코드가 동일하다는 점이다.
이러한 방식으로, 거래에 관련된 정보가 실제 거래에서 캡처된다. 이 레코드는 영구적이며 변경 불가능하므로, 제3자가 거래 기록을 별도의 데이터베이스에 보관해야 할 요건이 제거된다.
페이-투-스크립트-해시 및 다중 서명
이하의 실시예들은 비트코인 프로토콜의 페이-투_스크립트-해시(P2SH) 메소드를 사용하는 거래를 구체적으로 참조할 수 있지만, 본 발명은 페이-투-퍼블릭-키-해시 메소드 등의 비트코인 프로토콜의 다른 메소드를 사용하여 구현될 수 있음을 인식할 것이다.
블록체인 상의 각 거래 기록은, 다수의 공개키 및 거래를 나타내는 정보를 포함하는 스크립트를 포함한다. 이들 공개키는 암호화폐의 발신자와 수신자에 연관될 수 있다. 스크립트는, 사용자가 거래 기록에 특정된 암호화폐에 액세스하는 방법을 설명하는 블록체인 상의 각 거래 기록과 함께 기록된 명령들의 리스트로서 간주될 수 있다.
배경으로서, 비트코인 프로토콜의 표준 P2SH 메소드에 있어서, 출력 스크립트 또는 리딤 스크립트(redeem script)는, 아래의 형태를 취할 수 있다.
<NumSigs PubK1 PubK2 ... PubK15 NumKeys OP_CHECKMULTISIG>
여기서, NumSigs는 거래를 잠금해제하도록 리딤 스크립트를 만족시키는 데 필요한 유효 서명의 개수("m")이고, PubK1, PubK2...PubK15는 거래를 잠금해제하는 서명들에 해당하는 공개키들(최대 15개의 공개키)이고, NumKeys는 공개키들의 개수("n")이다.
비트코인 프로토콜에 있어서, 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm)을 사용하여 사용자의 개인키에 기초하는 서명을 생성할 수 있다. 이어서, 서명은 출력 스크립트 또는 리딤 스크립트에 연관된 암호화폐를 교환하는 데 사용된다. 사용자가 출력 스크립트 또는 리딤 스크립트를 교환하는 경우, 사용자는 자신의 서명과 공개키를 제공한다. 이어서, 출력 스크립트 또는 리딤 스크립트는 공개키에 대한 서명을 검증한다.
전술한 리딤 스크립트를 교환하려면, 적어도 공개키에 해당하는 서명의 개수("m")가 필요하다. 일부 예에서는, 공개키들의 순서가 중요하며, 서명을 위한 "n"개의 서명 중 "m"개를 순서대로 수행해야 한다. 예를 들어 "m"이 2이고 "n"이 15인 경우를 고려해 본다. 이용가능한 두 개의 서명인 Sig1(PubK1에 해당)과 Sig15(PubK15에 해당)를 사용할 수 있다면, 리딤 스크립트는, Sig1에 의해 먼저 서명되고 이어서 Sig15에 의해 서명되어야 한다.
시스템의 개요
이제, 컴퓨터 소프트웨어를 보안화하고 설치 후 실행 전의 컴퓨터 소프트웨어의 소유권을 검증하기 위한 메타데이터(M)를 결정하는 방법, 장치, 및 시스템을 설명한다.
도 2는 통신 네트워크(5)를 통해 제2 노드(7)와 통신하는 제1 노드(3)를 포함하는 시스템(1)을 도시한다. 제1 노드(3)는 연관된 제1 처리 장치(21)를 갖고, 제2 노드(5)는 연관된 제2 처리 장치(27)를 갖는다. 제1 및 제2 노드(3, 7)의 예는, 컴퓨터, 테블릿 컴퓨터, 이동 통신 장치, 컴퓨터 서버 등의 전자 장치를 포함한다.
키-값 쌍을 기록하고 저장하기 위한 DHT(13)가 또한 도 2에 도시되어 있다. DHT(13)는, 키-값 쌍들의 값들을 수신, 기록, 및 저장하도록 하나 이상의 처리 장치(19)에 연관될 수 있다. 처리 장치(19)는 DHT(13)의 참여 노드들에 의해 사용될 수 있다. 전술한 바와 같이, DHT(13)는 키-값 쌍들의 값들을 위치파악하는 효율적인 방법을 제공한다.
도 2는 또한 거래를 기록하기 위한 P2P 분산 원장(14)을 도시한다. P2P 분산 원장(14)은, 거래를 수신하고 기록하도록 하나 이상의 처리 장치(20)에 연관될 수 있다. 전술한 바와 같이, P2P 분산 원장(14)의 일례는 비트코인 블록체인이다. 따라서, 블록체인의 맥락에서, P2P 분산 원장(14)에 연관된 처리 장치(20)는 "채굴자"라고 칭하는 처리 장치일 수 있다.
제1 노드(3)는 제1 사용자(23)에 연관되고, 제2 노드(7)는 제2 사용자(24)에 연관된다. 일례로, 제1 노드(3)는 컴퓨터 소프트웨어의 벤더를 나타낼 수 있다. 다른 일례로, 제1 노드(3)는 에이전트 또는 서비스 제공자를 나타낼 수 있다. 또 다른 일례로, 제1 노드(3)는 컴퓨터 소프트웨어의 사용자를 나타낼 수 있다.
제2 노드(7)는 컴퓨터 시스템의 사용자를 나타낼 수 있다. 다른 일례로, 제2 노드(7)는 컴퓨터 소프트웨어의 에이전트, 서비스 제공자, 또는 벤더를 나타낼 수 있다.
일례로, 제1 노드(3)는, 도 3, 도 6, 도 7, 도 8, 및 도 9에 도시된 바와 같이 방법(100, 300, 400, 500, 600, 700, 800)을 수행한다. 다른 일례로는, 제2 노드(7)가 방법(100, 300, 400, 500, 600, 700, 800)을 수행한다.
이하의 예시적인 실시예들은 제1 노드(3)가 방법들을 수행하는 것으로서 또는 제2 노드(7)가 방법들을 수행하는 것으로서 참조할 수 있지만, 본 개시 내용은 다른 노드들에 의해 수행되도록 변형되거나 수정될 수도 있음을 이해해야 한다.
도 3에 도시된 바와 같은 방법(100)은, 컴퓨터 소프트웨어를 보안화하고, 컴퓨터 소프트웨어에 연관된 데이터(D1)를 결정하는 단계(110)를 포함한다. 데이터(D1)는 컴퓨터 소프트웨어에 연관된 라이센스를 더 포함할 수 있다. 방법(100)은, 또한, 컴퓨터 소프트웨어에 기초하여 제1 해시값(H1)을 결정하는 단계(120)를 포함한다. 일례로, 제1 해시값(H1)은 컴퓨터 소프트웨어의 실행파일에 관련될 수 있다.
방법(100)은, 또한, 데이터(D1)와 컴퓨터 소프트웨어에 기초하여 제2 해시값(H2)을 결정하는 단계(130)를 포함한다. 일례로, 제2 해시값(H2)은 컴퓨터 소프트웨어 및 컴퓨터 소프트웨어에 연관된 라이센스의 세부 사항을 나타낼 수 있다. 다른 일례로, 제2 해시값(H2)은 추가 정보를 포함할 수 있다.
방법(100)은, 데이터(D1), 제1 해시값(H1), 및 제2 해시값(H2)을 통신 네트워크(5)를 통해 분산 해시 테이블(13) 상의 엔트리에 전송하는 단계(140)를 더 포함하고, 여기서, 제2 해시값(H2)은 키-값 쌍의 키에 할당되고, 데이터(D1)와 제1 해시값(H1)은 키-값 쌍의 값에 할당된다. 키-값 쌍의 값은 컴퓨터 소프트웨어 또는 라이센스의 위치를 나타내는 식별자를 더 포함할 수 있다.
방법(100)은, 또한, 피어투피어 분산 원장(14)에 포함하도록 제2 해시값(H2)에 기초하는 메타데이터(M)를 결정하는 단계(150)를 포함한다. 일례로, 메타데이터(M)는, 피어투피어 분산 원장(14)에 포함하도록 제1 리딤 스크립트(RS1)에 포함될 수 있다.
도 7에 도시된 바와 같은 방법(600)은, 컴퓨터 소프트웨어의 설치 후에 컴퓨터 소프트웨어의 소유권을 검증하고, 상술한 방법 후에 수행된다. 이는 도 7의 선택적 단계(100)로서 도시되어 있다. 방법(600)은, 피어투피어 분산 원장(14)에 저장된 거래 기록으로부터 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)를 결정하는 단계(610)를 포함한다. 제2 사용자 공개키(PU2)는 거래 기록의 출력 스크립트에 포함될 수 있다. 다른 일례로, 제2 사용자 공개키(PU2)는, 전술한 바와 같이 피어투피어 분산 원장(14) 상에 있는 메타데이터(M)에 포함될 수 있다.
방법(600)은, 또한, 분산 해시 테이블(13) 상에 저장된 엔트리로부터 제2 사용자(U2)에 연관된 제2 공개키(P2)를 결정하는 단계(620)를 포함한다. 제2 공개키(P2)는 제2 사용자 공개키(PU2)와 동일할 수 있다. 분산 해시 테이블(13) 상의 엔트리는 키-값 쌍을 포함할 수 있다.
방법(600)은 제2 사용자 공개키(PU2)와 제2 공개키(P2)를 비교하는 단계(630)를 더 포함한다. 방법(600)은, 또한, 제2 사용자 공개키(PU2)와 제2 공개키(P2)의 비교에 기초하여 컴퓨터 소프트웨어의 소유권을 검증하는 단계(640)를 포함한다. 일례로, 소유권을 검증하는 것은, 제2 사용자 공개키(PU2)와 제2 공개키(P2)가 일치함을 나타낼 수 있다.
이제, 방법(100, 600)의 상세한 예를 설명한다.
컴퓨터 소프트웨어에 연관된 데이터를 결정하는 단계(110)
전술한 바와 같이, 방법(100)은 컴퓨터 소프트웨어에 연관된 데이터(D1)를 결정하는 단계(110)를 포함한다. 데이터(D1)를 결정하는 단계(110)는 사용자, 노드, 또는 데이터 저장소로부터 데이터(D1)를 수신하는 단계를 포함할 수 있다. 데이터(D1)를 결정하는 단계(110)는 제1 노드(3)에서 데이터(D1)를 생성하는 단계를 더 포함할 수 있다.
일례로, 제1 노드(3)는 사용자 인터페이스(15)를 통해 제1 사용자(23)로부터 데이터(D1)를 수신할 수 있다. 다른 일례로, 제1 노드(3)는 제2 사용자(24)로부터 데이터(D1)를 수신할 수 있다. 또 다른 일례로, 제1 노드(3)는 데이터 저장소(17)로부터 데이터(D1)를 수신할 수 있다.
데이터(D1)는, 데이터(D1)가 컴퓨터 소프트웨어, 추가 정보, 컴퓨터 소프트웨어의 라이센스를 식별할 수 있거나 컴퓨터 소프트웨어의 위치를 나타낼 수 있는 컴퓨터 소프트웨어에 연관된다. 예를 들어, 데이터(D1)는 컴퓨터 소프트웨어를 식별하는 스트링 또는 데이터 구조를 포함할 수 있다. 스트링 또는 데이터 구조는 컴퓨터 소프트웨어에 관한 식별 키워드 및/또는 추가 정보의 집합을 포함할 수 있다. 추가 정보의 일례는 컴퓨터 소프트웨어 버전의 식별자, 예를 들어, 숫자일 수 있다. 예를 들어, 컴퓨터 소프트웨어의 명칭이 BobSoftware이고 그 버전이 3.0인 경우, 스트링 또는 데이터 구조(D1)는 "BobSoftware/3.0"을 포함할 수 있다.
또 다른 일례로, 데이터(D1)는 컴퓨터 소프트웨어에 연관된 라이센스의 식별자를 포함할 수 있다. 이것은 소프트웨어 라이센스 식별 번호(ID) 또는 소프트웨어 라이센스 키일 수 있다. 다른 일례로, 라이센스의 식별자는 라이센스의 내용의 암호 해시를 포함할 수 있다.
데이터(D1)는 컴퓨터 소프트웨어의 저장 위치를 나타내는 식별자를 더 포함할 수 있다. 일례로, 식별자는 인터넷 상의 객체에 대한 URL을 포함할 수 있다. 다른 일례로, 해시 테이블 또는 분산 해시 테이블과 같은 리포지토리(repository) 상의 컴퓨터 소프트웨어의 저장 위치에 대한 링크가 제공될 수 있다.
또 다른 일례로, 데이터(D1)는 컴퓨터 소프트웨어의 벤더를 식별하는 정보를 포함할 수 있다. 이것은, 이름, 어드레스, 연락처 세부 사항과 같은 개인 세부 사항, 또는 벤더에 연관된 공개키를 포함할 수 있다.
컴퓨터 소프트웨어에 기초하여 제1
해시값(H1)을
결정하는 단계(120)
또한, 전술한 바와 같이, 방법(100)은 컴퓨터 소프트웨어의 제1 해시값(H1)을 결정하는 단계(120)를 더 포함한다. 제1 해시값(H1)을 결정하는 단계(120)는, 사용자로부터 제1 해시값(H1)을 수신하는 단계 또는 데이터 저장소로부터의 제1 해시값(H1)에 액세스하는 단계를 포함할 수 있다. 제1 해시값(H1)을 결정하는 단계(120)는 제1 노드(3)에서 해시값을 계산하는 단계를 더 포함할 수 있다.
일례로, 제1 노드(3)는 사용자 인터페이스(15)를 통해 제1 사용자(23)로부터 제1 해시값(H1)을 수신할 수 있다. 다른 일례로, 제1 노드(3)는 제2 사용자(24)로부터 제1 해시값(H1)을 수신할 수 있다. 또 다른 일례로, 제1 노드(3)는 로컬 데이터 저장소(17) 또는 원격 데이터 저장소로부터의 제1 해시값(H1)에 액세스할 수 있다.
일례로, 제1 해시값(H1)은 컴퓨터 소프트웨어의 실행파일이다. 컴퓨터 소프트웨어의 실행파일은 인터넷과 같은 통신 네트워크(5)로부터 회수될 수 있다. 다른 일례로, 실행파일은 제1 사용자(23) 또는 제2 사용자(24)에 의해 제공될 수 있다. 또 다른 일례로, 실행파일은 데이터 저장소(17)로부터 회수될 수 있다. 또 다른 일례로, 실행파일은 해시 테이블 또는 DHT와 같은 리포지토리로부터 검색될 수 있다.
소프트웨어의 실행파일의 해시는, 정보의 256비트 표현을 생성하도록 SHA-256 알고리즘을 사용하여 결정될 수 있다. 보안 해시 알고리즘(SHA) 패밀리의 다른 알고리즘들을 포함하여 다른 해시 알고리즘을 사용할 수 있다는 것을 인식해야 한다. 특정한 일부 예는, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE 128, SHAKE256을 포함하는 SHA-3 서브세트의 인스턴스들을 포함한다. 다른 해시 알고리즘은, RACE 무결성 프리미티브 평가 메시지 다이제스트(RIPEMD) 패밀리의 알고리즘을 포함할 수 있다. 특정한 일례는 RIPEMD-160을 포함할 수 있다. 다른 해시 함수는, 해시 함수 및 냅색(knapsack) 기반 해시 함수에 기초하는 패밀리를 포함할 수 있다.
데이터(D1)와 컴퓨터 소프트웨어에 기초하여 제2
해시값(H2)을
결정하는 단계(130)
방법(100)은, 또한, 데이터(D1)와 컴퓨터 소프트웨어에 기초하여 제2 해시값(H2)을 결정하는 단계(130)를 포함한다.
일례로, 제2 해시값(H2)은, 데이터(D1)와 컴퓨터 소프트웨어의 실행파일(또는 실행파일의 해시, 즉, 제1 해시값(H1))의 결합의 해시에 기초하여 결정될 수 있다. 다른 일례로, 제2 해시값(H2)은, 데이터(D1), 컴퓨터 소프트웨어의 실행파일(또는 실행파일의 해시),및 추가 정보의 결합의 해시에 기초하여 결정될 수 있다.
추가 정보는 제1 사용자(23)의 공개키(PU1) 또는 제2 사용자(24)의 공개키(PU2)를 포함할 수 있다. 다른 일례로, 추가 정보는 제1 사용자(23) 또는 제2 사용자(24)에 연관된 엔티티의 식별자를 포함할 수 있다. 예를 들어, 엔티티는 제1 사용자(23) 또는 제2 사용자(24)의 고용주일 수 있다. 또 다른 일례로, 엔티티는 제1 사용자(23) 또는 제2 사용자(24)의 서비스 제공자일 수 있다.
추가 정보는, 제1 노드(3), 제2 노드(7), 제1 사용자(23), 또는 제2 사용자(24)에 연관된 장치의 장치 식별자를 더 포함할 수 있다. 장치의 일례는 도 2에 도시된 바와 같은 제1 처리 장치(21)이다. 장치 식별자는, MAC 어드레스, 마더보드 일련 번호, 또는 장치 식별 번호 중 적어도 하나를 포함할 수 있다. 장치 식별자는, 또한, MAC 어드레스, 마더보드 일련 번호, 또는 장치 식별 번호 중 적어도 두 개의 결합일 수 있다. 다른 예에서, 장치 식별자는, MAC 어드레스, 마더보드 일련 번호, 또는 장치 식별 번호, 또는 전술한 결합에 연관된 해시값을 포함할 수 있다.
또 다른 예에서, 추가 정보는 컴퓨터 소프트웨어에 연관된 라이센스의 만료일을 포함할 수 있다.
컴퓨터 소프트웨어에 연관된 라이센스
추가 예에서, 제2 해시값(H2)은, 데이터(D1), 컴퓨터 소프트웨어의 실행파일(또는 실행파일의 해시),추가 정보, 또는 컴퓨터 소프트웨어에 연관된 라이센스의 결합에 기초하여 결정될 수 있다.
라이센스의 표현은 라이센스의 내용을 특정하는 파일 또는 문서일 수 있다. 예를 들어, 일반 ASCII 텍스트, PDF 문서, 또는 Word 문서가 있다. 제2 해시값(H2)은, 라이센스를 원래의 형태로 포함할 수 있거나, 예를 들어, 인터넷과 같이 공개적으로 액세스가능한 통신 네트워크 상의 라이센스의 위치에 대한 링크를 제공할 수 있다. 또 다른 예에서, 해시 테이블 또는 DHT와 같은 리포지토리 상의 라이센스 위치에 대한 링크가 제공될 수 있다. 또 다른 예에서, 데이터 저장소(17)와 같은 컴퓨터 기반 자원 상의 라이센스의 위치에 대한 링크가 제공될 수 있다.
일례로, 라이센스는 컴퓨터 소프트웨어에 연관된 제1 해시값(H1)을 포함할 수 있다.
컴퓨터 소프트웨어에 연관된 라이센스는 전술한 바와 같은 추가 정보를 더 포함할 수 있다. 일례로, 라이센스는 제1 사용자(23) 또는 제2 사용자(24)에 연관될 수 있다. 라이센스는 제1 사용자(23)의 공개키(PU1) 또는 제2 사용자(24)의 공개키(PU2)를 포함할 수 있다. 다른 예에서, 라이센스는 제1 사용자(23) 또는 제2 사용자(24)에 연관된 엔티티의 식별자를 포함할 수 있다.
컴퓨터 소프트웨어에 연관된 라이센스는, 제1 노드(3), 제2 노드(7), 제1 사용자(23), 또는 제2 사용자(24)에 연관된 장치의 장치 식별자를 더 포함할 수 있다. 장치의 일례는 도 2에 도시된 바와 같은 제1 처리 장치(21)이다. 장치 식별자는, MAC 어드레스, 마더보드 일련 번호, 또는 장치 식별 번호 중 적어도 하나를 포함할 수 있다. 장치 식별자는, 또한, MAC 어드레스, 마더보드 일련 번호, 또는 장치 식별 번호 중 적어도 두 개의 결합일 수 있다. 다른 예에서, 장치 식별자는, MAC 어드레스, 마더보드 일련 번호, 또는 장치 식별 번호, 또는 전술한 결합에 연관된 해시값을 포함할 수 있다.
제1 사용자(23)는 컴퓨터 소프트웨어의 벤더일 수 있고, 제2 사용자(24)는 컴퓨터 소프트웨어의 수신자("최종 사용자")일 수 있다. 다른 일례로, 제2 사용자(24)가 컴퓨터 소프트웨어의 벤더일 수 있고, 제1 사용자(23)가 컴퓨터 소프트웨어의 최종 사용자일 수 있다.
일례로, 컴퓨터 소프트웨어에 연관된 라이센스는, 한 명의 최종 사용자("단일 사용자 라이센스")만을 인가할 수 있다. 추가 예에서, 컴퓨터 소프트웨어에 연관된 라이센스는 최종 사용자의 하나의 장치("단일 장치 라이센스")를 인가할 수 있다. 다른 예에서, 컴퓨터 소프트웨어에 연관된 라이센스는 최종 사용자의 하나보다 많은 장치("다중 장치 라이센스")를 인가할 수 있다.
또 다른 예에서는, 한 명보다 많은 최종 사용자("다중 사용자 라이센스")가 있을 수 있다. 추가 예에서, 컴퓨터 소프트웨어에 연관된 라이센스는 최종 사용자당 하나의 장치를 인가할 수 있다. 또 다른 예에서, 컴퓨터 소프트웨어에 연관된 라이센스는 최종 사용자당 하나보다 많은 장치를 인가할 수 있다.
라이센스가 제1 사용자(23) 또는 제2 사용자(24)에 연관되는 경우, 라이센스는, 제1 사용자(23)에 연관된 제1 사용자 공개키(PU1) 및 제2 사용자에 연관된 제2 사용자 공개키(PU2)를 포함할 수 있다.
머클 트리
다른 일례로, 라이센스는 머클 트리의 최상위 해시값일 수 있다. 머클 트리의 일례가 도 4에 도시되어 있다. 머클 트리에서, 각 노드에서의 해시값들은 각자의 "자식" 노드들의 해시들이다. 예를 들어, 해시값 Hash-A(305)는 두 개의 "자식" 노드(309, 311)에서의 해시값들의 해시이다. 머클 트리의 최상위 해시값 Hash-AB(303)는, 머클 트리의 모든 해시값을 포함한다는 점을 알 수 있다. 즉, 이것은 트리의 최하위에 있는 네 개의 "잎"의 해시값 A1(317), A2(319), B1(321), 및 B2(323)를 캡처한다.
본 개시 내용의 일례에서, 머클 트리의 각 "잎"은 라이센스 정보의 양태를 나타낼 수 있다. 예시적인 라이센스가 도 5에 도시되어 있다. 데이터(D1)(417)는 해시값 Hash-D(409)에서 캡처되고, 소프트웨어(419)의 실행파일은 해시값 Hash-S411(H1)에서 캡처되고, 사용자(23 및/또는 24)의 공개키들(421)은 해시값 Hash- P(413)에 캡처되고, 만료일(423)은 해시값 Hash-E(415)에서 캡처된다. 노드들(405, 407)은, 데이터(D1)(417)와 소프트웨어(419)에 대한 잎들에 연관된 해시값들, 및 공개키(421)와 만료일(423)을 각각 캡처한다는 것을 알 수 있다.
전술하지 않은 기타 정보는 해시값(H2)이 기초로 하는 추가 정보를 포함할 수 있다는 것을 이해해야 한다.
데이터(D1), 제1
해시값
(H1), 및 제2
해시값(H2)을
분산 해시 테이블에 전송하는 단계(140)
방법(100)은, 또한, 통신 네트워크(5)를 통해 데이터(D1), 제1 해시값(H1), 및 제2 해시값(H2)을 분산 해시 테이블(13) 상의 엔트리에 전송하는 단계(140)를 포함한다.
일례로, 제2 해시값(H2)은 키-값 쌍의 키일 수 있고, 데이터(D1)와 제1 해시값(H1)은 키-값 쌍의 값일 수 있다.
다른 일례로, 전술한 바와 같은 추가 정보도 키-값 쌍의 값의 일부일 수 있다. 이는, 제1 사용자(23) 또는 제2 사용자(24)의 공개키, 제1 노드(3), 제2 노드(7), 제1 사용자(23), 또는 제2 사용자(24)에 연관된 장치의 장치 식별자, 컴퓨터 소프트웨어 또는 라이센스의 위치를 나타내는 식별자, 또는 라이센스에 연관된 다른 추가 정보를 포함하지만, 이에 한정되지 않는다.
전술한 바와 같이, DHT(13)는 키-값 쌍들로 구성되고, 각 키-값 쌍은 인덱스에 할당된다. 일례로, 제2 해시값(H2)은 인덱스를 생성하는 데 사용될 수 있다. 해시 함수 또는 암호 해시 함수는 제2 해시값(H2)에 대해 수행될 수 있다. 예를 들어, 암호 함수 SHA-1을 사용할 수 있다.
Index = SHA-1(H2)
DHT(13) 내의 키-값 쌍의 키로 되는 제2 해시값(H2) 및 키-값 쌍의 값으로 되는 데이터(D1)와 제1 해시값(H1)에 대하여, 키와 값은 DHT(13)의 임의의 참여 노드에 전송된다.
일례로, put(key, value)와 같은 메시지는 DHT(13)의 참여 노드에 전송될 수 있으며, 여기서 키는 제2 해시값(H2)이고, 값은 데이터(D1) 및 제1 해시값(H1)이다. 메시지는, 키스페이스 파티셔닝에 의해 표시되는 바와 같이 인덱스에 할당된 참여 노드에 의해 수신될 때까지 주위의 모든 참여 노드에 전송될 수 있다. 이어서, 메시지에 표시된 인덱스에 할당된 참여 노드는, 키-값 쌍을 DHT(13)에 저장할 수 있고, 키-값 쌍에 연관된 엔트리를 유지하는 책임을 맡는다.
임의의 주어진 키의 값이 DHT(13)로부터 회수될 수 있다는 것은 이점이다. 일례로, 제1 사용자(23) 또는 제2 사용자(24)는 값을 회수하길 원할 수 있다. 제1 사용자(23) 또는 제2 사용자(24)는, 제1 노드(3), 제2 노드(7) 또는 달리 도시되지 않은 다른 노드를 통해 DHT(13)의 임의의 참여 노드에 get(key)와 같은 요청 메시지를 제공할 수 있다. 이어서 요청 메시지는, 키스페이스 파티셔닝에 의해 표시된 바와 같이 인덱스에 할당된 참여 노드에 의해 수신될 때까지 주위의 모든 참여 노드에 전송될 수 있다.
메타데이터(M)를 결정하는 단계(150)
방법(100)은 제2 해시값(H2)을 포함하는 메타데이터(M)를 결정하는 단계(150)를 더 포함한다. 메타데이터(M)를 결정하는 단계(150)는 사용자, 노드, 또는 데이터 저장소로부터 메타데이터(M)를 수신하는 단계를 포함할 수 있다. 메타데이터(M)는, 예를 들어, P2P 분산 원장(14) 상의 거래의 P2SH 다중 서명 제1 리딤 스크립트(RS1)에서 공개키들을 위해 이용 가능한 15개 장소 중 하나 이상에 포함될 수 있다.
P2P 분산 원장(14) 상의 거래의 제1 리딤 스크립트(RS1)는, 메타데이터(M)에 포함된 내용을 나타내는 토큰화된 거래("발행 토큰")의 발행 또는 생성을 나타낼 수 있다. 일례로, 토큰은 에이전트(A)에 의해 발행될 수 있다.
비트코인 프로토콜의 P2SH 메소드에 있어서, 메타데이터는 이하에 제공되는 방법에 의해 리딤 스크립트에 포함될 수 있다.
메타데이터
메타데이터(M)는, P2SH 다중 서명 리딤 스크립트(RS1)의 공개키를 위해 이용가능한 15개 장소 중 하나 이상에 내장될 수 있다. 예를 들어, 리딤 스크립트(REM)는 다음의 형태를 취할 수 있다.
<NumSigs Metadata1 Metadata2 ... PubK1 PubK2 ... NumKeys OP_CHECKMULTISIG>
여기서, Metadata1과 Metadata2는 각각 리딤 스크립트의 공개키를 대신하는 메타데이터를 포함하고, PubK1과 PubK2는 공개키다.
메타데이터(M)는 제2 해시값(H2)을 포함할 수 있다. 메타데이터(M)는, 컴퓨터 소프트웨어 또는 라이센스에 연관된 조건을 기술하는 설명 또는 키워드를 더 포함할 수 있다. 예를 들어, 라이센스 날짜, 이름, 생년월일, 어드레스, 연락처 세부사항, 또는 라이센스에 연관된 사용자의 기타 세부 사항이 있다. 다른 예에서는, 암호화폐의 양에 연관된 정보가 포함될 수 있다.
메타데이터(M)는 여러 가지 방식으로 정보를 포함할 수 있다. 일례로, 정보의 내용이 포함될 수 있다. 또 다른 예에서는, 정보의 암호 해시가 포함될 수 있다. SHA-256 알고리즘을 사용하여 정보의 해시를 결정하여 정보의 256비트 표현을 생성할 수 있다. 보안 해시 알고리즘(SHA) 패밀리의 다른 알고리즘을 포함하여 다른 해시 알고리즘이 사용될 수 있다는 것을 이해해야 한다. 구체적인 일부 예는, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256을 포함한 SHA-3 서브세트의 인스턴스들을 포함한다. 다른 해시 알고리즘은, RACE 무결성 프리미티브 평가 메시지 다이제스트(RIPEMD) 패밀리의 알고리즘을 포함할 수 있다. 특정 예는 RIPEMD-160을 포함할 수 있다. 다른 해시 함수는, 해시 함수 및 냅색 기반 해시 함수에 기초하는 패밀리를 포함할 수 있다.
본 개시 내용의 다른 실시예에서는, 상기한 예들 중 하나 이상을 포함하는 조합이 메타데이터(M)에 포함될 수 있다. 메타데이터(M)는, 블록체인과 같은 P2P 분산 원장(14)을 통해 공개될 수 있고 또는 비보안 네트워크를 통해 전송될 수 있으므로, 프라이버시 이유로 인해 메타데이터(M)의 특정한 세부사항을 가리거나 숨기는 것이 바람직할 수 있다.
따라서, 본 개시 내용의 실시예들에서 다중 서명 P2SH 비트코인 거래의 사용은, 컴퓨터 소프트웨어 및 라이센스에 연관된 정보의 전달과 영구적 기록을 가능하게 하므로 이점을 제공한다. 이 레코드는, 거래의 출력 스크립트, 예를 들어, 리딤 스크립트에 메타데이터를 포함시켜 달성될 수 있다.
제1 리딤 스크립트
전술한 바와 같이, 리딤 스크립트는, 비트코인 프로토콜의 표준 P2SH 메소드에서의 출력 스크립트의 일례이며, 사용자가 거래 기록에서 특정된 암호화폐에 대한 액세스를 어떻게 얻을 수 있는지를 기술한다.
본 개시 내용에서, 발행 토큰에 대한 제1 리딤 스크립트(RS1)는 메타데이터(M)에 기초할 수 있다. 제1 리딤 스크립트(RS1)는, 에이전트 개인키(VA)와의 암호쌍을 형성하는 에이전트 공개키(PA)를 더 포함할 수 있다. 이러한 방식으로, 에이전트 개인키(VA)는 거래에 연관된 암호를 "잠금해제"하거나 소비하는 데 필요하다.
일례로, 발행 토큰에 대한 제1 리딤 스크립트(RS1)는 메타데이터(M)를 포함할 수 있다. 제1 리딤 스크립트(RS1)는 에이전트 공개키(PA)를 더 포함할 수 있다. 이 예에서, 제1 리딤 스크립트(RS1)는 다음의 형태를 취할 수 있다.
<OP_1 PA Metadata1 Metadata2 OP_3 OP_CHECKMULTISIG>
여기서, OP_1은 거래를 잠금해제하도록 제1 리딤 스크립트(RS1)를 충족시키는 데 필요한 서명의 개수("NumSigs")를 나타내고, OP_3은 리딤 스크립트에서의 공개키의 개수("NwnKeys")를 나타낸다.
이 예에서, 제1 리딤 스크립트(RS1)는 메타데이터를 위한 두 개의 지정된 필드인 Metadata1과 Metadata2를 포함할 수 있다. Metadata1과 Metadata2의 특정한 예가 이하의 표 1에 도시되어 있다.
필드 | 서브 필드 | 바이트 | 코멘트 |
Metadata1 | LicenseType | 4 | 코딩 값은 라이센스의 유형을 나타냄 |
LicencePointer | 16 | IPv6 어드레스는 DHT를 식별함 | |
LicenceTypeData1 | 12 | 포맷은 LicenceType의 값에 의존함제로로 패딩됨 | |
Metadata2 | LicenceHash | 20 | RIPEMD-160(SHA256(LicencePointer에 의해 어드레싱된 실제 라이센스 파일)) |
LicenceTypeData2 | 12 | 포맷은 LicenceType의 값에 의존함제로로 패딩됨 |
이 예는, 라이센스의 크기가 메타데이터(M)에 이러한 세부사항을 포함하지 못하는 경우에 유용할 수 있는, Metadata1에서 라이센스에 대한 포인터를 제공하는 것을 포함한다. 또한, 메타데이터(M)가 공개될 수 있거나 비보안 네트워크를 통해 전송될 수 있으므로, 프라이버시 이유로 인해 토큰의 특정한 세부사항을 가리거나 숨기는 것이 바람직할 수 있다.
Metadata1의 처음 4바이트는 라이센스 유형을 나타낸다. 예를 들어, 라이센스 유형은 BobSoftware와 같은 컴퓨터 소프트웨어의 이름을 나타낼 수 있다. 다른 예에서, 라이센스 유형은, 전술한 바와 같이 "단일 사용자" 또는 "다중 장치"와 같은 라이센스의 인가 유형을 나타낼 수 있다. 다음 16바이트는 실제 전자 라이센스 파일의 위치의 IP 주소를 보유하여, IPv6 주소를 허용한다. 일부 실시예에서, 이 값은, 라이센스 파일이 집중화되기보다는 클라우드에 걸쳐 분산될 수 있도록 토렌트 파일의 시드를 가리킬 수 있음을 주목한다. 다음 12바이트는 라이센스 유형에 대하여 특정된 데이터를 포함한다.
Metadata2의 처음 20바이트는, 라이센스 파일의 실제 내용에 적용된 SHA256에 대하여 RIPEMD-160을 사용하는 실제 라이센스 파일의 해시이다. 실제 라이센스 파일을 회수할 수 있으므로, 계약에 대한 거래의 유효성 확인이 가능하다. 라이센스 파일 자체는 특정 실시예의 요구사항에 따라 완전히 공개(암호화되지 않고 사람이 판독할 수 있음)되거나 프라이버시를 위해 암호화될 수 있다는 점에 주목한다. Metadata2의 나머지 12바이트의 내용은 라이센스의 유형에 따라 사용될 수 있다.
위에서 제공된 제1 리딤 스크립트(RS1)의 예에서, 발행 토큰은 소비되기 위해 에이전트(A)에 의해 서명되어야 한다는 것을 알 수 있다. 발행 토큰에 대한 거래의 일례가, 간결함을 위해 마이너의 수수료는 표시하지 않은 표 2에 제공되어 있다.
표 2의 라인 4 내지 8은, 발행 토큰에 포함될(즉, "토큰화될") 암호화폐의 제1 양(C1)인 거래에 대한 입력을 나타낸다. 이 예에서, 암호화폐의 제1 양(C1)은 암호화폐의 제1 양을 에이전트(A)의 이익으로 전달한 이전 거래(ID-110)의 결과였으므로, 이전 거래(ID-110) 출력 스크립트(리딤 스크립트(ID-110))는 에이전트의 공개키(PA)를 포함한다. 이에 따라, 이러한 이전 출력을 잠금해제하려면, 스크립트(리딤 스크립트(ID-110))가 제1 사용자의 개인키(VA)로 서명되어야 한다. 마지막으로, 표 2의 라인 8은, 암호화폐의 제1 양(C1)이 이러한 거래(ID-600)의 제1 출력임을 나타낸다.
표 2의 라인 9 내지 13은 거래(ID-600)의 (유일한) 제1 출력을 나타내며, 이러한 출력은 이 경우 생성되어 에이전트에 다시 전달되는 발행 토큰을 나타낸다. 라인 10은 암호화폐의 제1 양(C1)인 출력값을 나타낸다. 라인 11은, 비트코인 프로토콜의 P2SH 메소드에서 사용되는 "<hash of redeem script>"를 포함하는 출력 스크립트를 나타낸다. 이 예에서, 리딤 스크립트는 전술한 바와 같은 형태의 제1 리딤 스크립트(RS1)이다.
이어서, 표 2에 도시한 거래(ID-600)의 출력은 제1 데이터 출력(O1)과 함께 P2P 분산 원장(14)에 기록된다. 특히, 제1 데이터 출력(O)은 거래에서 전달된 암호화폐의 제1 양(C1)의 표시를 포함할 수 있다. 제1 데이터 출력(O1)은 제1 리딤 스크립트(RS1)의 해시를 더 포함할 수 있다.
암호화폐의 제1 양(C1)의 향후 거래에 있어서, 예를 들어, 제1 사용자(23) 또는 제2 사용자(24)에게 토큰을 전달하는 경우, 암호화폐의 제1 양(C1)을 잠금해제하기 위한 스크립트(향후 거래의 입력 ScriptSig)는 다음의 형태를 취할 수 있다.
OP_0 Sig-VA Sig-VU1 <OP_1 PA PU1 Metadata1 Metadata2 OP_4 OP_CHECKMULTISIG>
여기서, Sig-VU1은 제1 사용자(23)의 서명을 나타낸다. 상술한 스크립트는 에이전트(A) 또는 제1 사용자(23)로부터의 하나의 서명만이 암호화폐의 제1 양(C1)을 잠금해제하도록 요구된다는 짐에 주목한다.
발행 토큰은 제2 리딤 스크립트(RS2)를 통해 다른 사용자에게 전달될 수 있다.
변형예
제2 리딤 스크립트
컴퓨터 소프트웨어 및 라이센스에 연관된 토큰은, 에이전트(A)로부터 다른 사용자로, 예컨대, 제1 사용자(23) 또는 제2 사용자(24)로 전달될 수 있다. 일례로, 토큰 전달은, 컴퓨터 소프트웨어 또는 라이센스에 대한 사용자의 액세스를 인가함을 나타낼 수 있다. 전달은 제2 리딤 스크립트(RS2)에 의해 구현될 수 있다.
일례로, 에이전트(A)는 발행 토큰을 제1 사용자(23)에게 전달하고자 한다. 제1 사용자(23)는 예를 들어 컴퓨터 소프트웨어의 벤더를 나타낼 수 있다.
이 예에서, 제2 리딤 스크립트(RS2)는, 메타데이터(M), 에이전트(A)에 연관된 에이전트 공개키(PA), 및 제1 사용자(23)에 연관된 제1 사용자 공개키(PU1)에 기초할 수 있다.
제2 리딤 스크립트(RS2)는 다음과 같은 형태일 수 있다.
<OP_1 PA PU1 Metadata1 Metadata2 OP_4 OP_CHECKMULTISIG>
이 예에서, 제2 리딤 스크립트(RS2)는 제1 리딤 스크립트(RS1)와 동일한 두 개의 메타데이터 필드를 포함한다. 제2 리딤 스크립트(RS2)는, 에이전트에 연관된 에이전트 공개키(PA) 및 제1 사용자에 연관된 제1 사용자 공개키(PU1)를 더 포함한다.
위에서 제공된 제2 리딤 스크립트(RS2)의 예에서, 전달되는 토큰이 사용되도록 에이전트(A) 또는 제1 사용자(23)에 의해 서명되어야 한다는 것을 알 수 있다. 발행 토큰의 이러한 전달에 대한 거래의 일례가, 간결함을 위해 마이너의 수수료는 표시하지 않은 표 3에 제공된다.
표 2와 유사하게, 표 3의 라인 4 내지 8은 거래(ID-610)에 대한 입력을 나타낸다. 이 예에서, 입력은, 발행 토큰이며, 즉, 표 2에 예시된 거래(ID-600)의 출력이다. 라인 7의 리딤 스크립트는 발행 토큰의 리딤 스크립트, 즉, 제1 리딤 스크립트(RS1)에 대응함을 알 수 있다. 이에 따라, 거래(ID-600)의 출력을 잠금해제하려면, 제1 리딤 스크립트(RS1)가 에이전트의 공개키(PA)로 서명되어야 한다.
표 3의 라인 9 내지 13은 거래(ID-610)의 출력을 나타내며, 이러한 출력은 이 경우 에이전트(A) 또는 제1 사용자(23; U1)에게 전달되는 발행 토큰을 나타낸다. 라인 10은 암호화폐의 제1 양(C1)인 출력값을 나타낸다. 라인 12는, 비트 코인 프로토콜의 P2SH 메소드에서 사용되는 "<hash of redeem script>"를 포함하는 출력 스크립트를 나타낸다. 이 예에서, 리딤 스크립트는 전술한 바와 같은 형태의 제2 리딤 스크립트(RS2)이다.
이어서, 거래(ID-610)의 출력은 제2 데이터 출력(O2)과 함께 P2P 분산 원장(14)에 기록된다. 제2 데이터 출력(O2)은, 제1 데이터 출력(O1)으로부터의 암호화폐의 제1 양(C1)이 거래에서 전달될 것이라는 표시를 포함할 수 있다. 제2 데이터 출력(O2)은 제2 리딤 스크립트(RS2)의 해시를 더 포함할 수 있다.
컴퓨터 소프트웨어 또는 라이센스의 위치를 나타내는 식별자
전술한 바와 같이, 데이터(D1) 또는 라이센스는 컴퓨터 소프트웨어 또는 라이센스의 위치를 나타내는 식별자를 각각 포함할 수 있다.
일례로, 식별자는, 데이터(D1) 또는 라이센스와는 독립적으로 결정될 수 있고, 데이터(D1) 또는 라이센스와는 별개로 유지될 수 있다. 식별자는, 또한, 방법(100)에서 전술한 바와 같이 데이터(D1) 및 제1 해시값(H1)과 함께 키-값 쌍의 값에 할당될 수 있다. 이러한 방식으로, 식별자는, 전술한 바와 같이 메시지 put(key, value)의 값 필드에 포함될 수 있고 DHT(13)의 참여 노드에 전송될 수 있다.
일례로, 위치를 나타내는 식별자는 인터넷 상의 객체에 대한 URL을 포함할 수 있다. 다른 일례로, 위치를 나타내는 식별자는 해시 테이블 또는 DHT(13)와 같은 리포지토리에 대한 어드레스를 포함할 수 있다. 또 다른 일례로, 위치를 나타내는 식별자는, 제1 노드(3)의 제1 처리 장치(21)에 연관된 데이터 저장소(17)와 같은 컴퓨터 기반 자원 상에 제공되는 서버, 데이터베이스, 또는 저장 시설 등의 컴퓨터 기반 리포지토리의 어드레스를 포함할 수 있다.
도 6은 컴퓨터 소프트웨어 또는 라이센스의 위치를 결정하는 방법(500)을 도시한다. 방법(500)은 제1 리딤 스크립트(RS1)로부터 메타데이터(M)를 결정하는 단계(510)를 포함한다. 전술한 바와 같이, 메타데이터(M)는, 제1 리딤 스크립트(RS1)의 공개키를 위해 이용가능한 15개 장소 중 하나 이상에 내장될 수 있다.
비트코인 프로토콜의 P2SH 메소드에 있어서, 거래의 출력이 후속 거래에서 소비되는 경우, 후속 거래에서 리딤 스크립트를 볼 수 있다. 전술한 바와 같이 그리고 표 2를 참조하면, 발행 토큰에 대한 거래(ID-600)은 에이전트(A)에게 지불된다. 이러한 방식으로, 에이전트(A)는 이 발행 토큰을 소비하여 제1 리딤 스크립트(RS1)를 노출할 수 있다. 따라서, 제2 해시값(H2)에 기초하는 메타데이터(M)를 P2P 분산 원장(14)에서 볼 수 있다. 이러한 방식으로, 제2 해시값(H2)은 제1 리딤 스크립트(RS1)의 메타데이터(M)로부터 회수될 수 있다(520). 일례로, 키-값 쌍의 키에 연관된 값은 요청 메시지 get(key)을 사용하여 DHT(13)로부터 회수될 수 있다.
방법(500)은 제2 해시값(H2)을 통신 네트워크(5)를 통해 DHT(13)의 참여 노드에 연관된 프로세서에 전송하는 단계(530)를 더 포함한다. 전술한 바와 같이, 제2 해시값(H2)은 키-값 쌍의 키일 수 있다. 또한, 전술한 바와 같이, 주어진 키에 대한 값은, 키를 포함하는 메시지를 DHT(13)의 임의의 참여 노드에 제공함으로써 회수될 수 있다. 따라서, 식별자가 키-값 쌍의 값 필드에 포함되는 예에서, 방법(500)은, 참여 노드의 프로세서로부터 컴퓨터 소프트웨어 또는 라이센스의 위치를 나타내는 식별자를 결정할 수 있다(540).
설치 후의 컴퓨터 소프트웨어의 소유권을 검증(600)
전술한 바와 같이, 방법(600)은, 컴퓨터 소프트웨어의 설치 후의 컴퓨터 소프트웨어의 소유권을 검증한다. 일례로, 제2 사용자(24) 등의 컴퓨터 소프트웨어의 사용자는 컴퓨터 소프트웨어 및 라이센스에 연관된 토큰을 교환할 수 있다. 추가 예로, 토큰은, 전술한 바와 같이 제2 리딤 스크립트를 사용하는 제2 사용자(24)에 의해 수신될 수 있다.
제2 사용자(24)는, 전술한 바와 같이 방법(500)을 사용함으로써 DHT(13) 상의 엔트리로부터 컴퓨터 소프트웨어의 위치를 나타내는 식별자를 결정할 수 있다. 이러한 방식으로, 제2 사용자(24)는 컴퓨터 소프트웨어의 위치를 결정하여 회수할 수 있다. 일례로, 컴퓨터 소프트웨어는 인터넷 상의 URL에서 저장될 수 있다. 다른 일례로, 컴퓨터 소프트웨어는, 컴퓨터 기판 자원 상에 제공되는 서버, 데이터베이스, 또는 저장 시설 등의 컴퓨터 기반 리포지토리 상에 저장될 수 있다.
제2 사용자(34)가 컴퓨터 소프트웨어를 회수한 후, 컴퓨터 소프트웨어는 제2 사용자(24)에 연관된 처리 장치(27)에 설치될 수 있다. 일례로, 컴퓨터 소프트웨어의 실행파일은 또한 컴퓨터 소프트웨어의 설치자이다. 다른 일례로, 컴퓨터 소프트웨어의 설치자는 부트 로더일 수 있다.
컴퓨터 소프트웨어가 처리 장치(17)에 설치된 후, 컴퓨터 소프트웨어의 소유권을 검증할 수 있다. 소유권 검증은 거래 기록을 사용할 수 있으며, 거래는, 전술한 표 2 또는 표 3에서 설명한 바와 같이 결정될 수 있고, 정보는 DHT(13) 상의 엔트리의 값 필드에 저장될 수 있다.
제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2) 결정(610)
전술한 바와 같이, 방법(600)은, P2P 분산 원장(14)에 저장된 거래 기록으로부터 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)를 결정하는 단계(610)를 포함한다. 거래 기록으로부터 제2 사용자 공개키(PU2)를 결정하는 단계는, 사용자, 노드, 또는 데이터 저장소로부터 거래 기록을 수신하는 단계, 및 제2 사용자 공개키(PU2)에 대하여 거래 기록에 질의하는 단계를 포함할 수 있다. 거래 기록으로부터 제2 사용자 공개키(PU2)를 결정하는 단계는, 사용자, 노드, 또는 데이터 저장소에서 거래 기록에 액세스하는 단계, 및 제2 사용자 공개키(PU2)에 대하여 거래 기록에 질의하는 단계를 더 포함할 수 있다.
일례로, 제2 사용자(24)에 연관된 제2 노드(7)는, 제1 노드(3) 또는 제1 노드(3)에 연관된 데이터 저장소(17)로부터 거래 기록을 수신할 수 있다. 다른 일례로, 제2 노드(7)는 제1 사용자(23) 또는 제2 사용자(24)로부터 거래 기록을 수신할 수 있다. 거래 기록은 위의 표 2 및 표 3에서 설명한 바와 같이 거래에 관련될 수 있다.
또 다른 일례로, 제2 노드(7)는, 제2 노드(7)에서 또는 제2 노드(7)에 연관된 데이터 저장소에서 거래 기록에 액세스할 수 있다. 다른 예에서, 거래 기록은, www.blockchain.info와 같이 공개적으로 이용가능한 기능을 사용하여 제2 노드(7)에 의해 액세스될 수 있다.
P2P 분산 원장(14)에 저장된 거래 기록은 거래 또는 거래에 연관된 사용자를 식별하는 정보를 포함할 수 있다. 거래 기록에 포함된 정보의 일례가 표 4에 표시되어 있다.
필드 | 설명 |
Version number | 거래가 따르는 비트코인 프로토콜의 해당 규칙을 나타냄 |
Number of inputs | 입력의 개수 |
Inputs | 적어도 하나의 입력 |
Number of outputs | 출력의 개수 |
Outputs | 적어도 하나의 출력 |
LockTime | 타임스탬프 |
각 거래 출력은, 전달되는 암호화폐의 양에 관한 정보, 및 암호화폐를 소비하기 위해 충족되어야 하는 조건을 정의하는 출력 스크립트를 포함한다. 출력 스크립트는, 통상적으로 암호화폐의 수신자에 연관된 공개키를 포함한다.
일례로, 출력 스크립트에서 암호화폐의 수신자에 연관된 공개키는 제2 사용자 공개키(PU2)일 수 있다. 이러한 방식으로, 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)는 P2P 분산 원장(14)에 저장된 거래 기록 상의 출력 스크립트로부터 결정된다.
전술한 바와 같이, 비트코인 프로토콜의 P2SH 메소드에서, 출력 스크립트는 리딤 스크립트다. 리딤 스크립트는 암호화폐의 전송자와 수신자에 연관된 다수의 공개키를 포함할 수 있다. 일례로, 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)는 거래 기록의 리딤 스크립트로부터 결정될 수 있다.
다른 일례로, 제2 사용자 공개키(PU2)는 리딤 스크립트의 메타데이터(M)에 저장될 수 있다. 전술한 바와 같이, P2SH 메소드에서, 거래의 출력이 후속 거래에서 소비되는 경우, P2P 분산 원장(14) 상의 리딤 스크립트를 볼 수 있다. 이러한 방식으로, 제2 사용자 공개키(PU2)는 리딤 스크립트의 메타데이터(M)로부터 회수될 수 있다.
제2 사용자(U2)에 연관된 제2 공개키(P2) 결정(620)
방법(600)은, DHT(13)에 저장된 엔트리로부터 제2 사용자(U2)에 연관된 제2 공개키(P2)를 결정하는 단계(620)를 더 포함한다. 제2 공개키(P2)를 결정하는 단계는 DHT(13)에 저장된 엔트리에 연관된 키-값 쌍의 값을 회수하는 단계를 포함할 수 있다. 제2 공개키(P2)를 결정하는 단계는 또한 다른 노드로부터 키-값 쌍의 값을 수신하는 단계를 포함할 수 있다.
일례로, DHT(13) 상의 엔트리에 연관된 키-값 쌍의 값은, DHT(13)의 참여 노드에 요청 메시지를 전송함으로써 회수될 수 있다. 전술한 바와 같이, 요청 메시지는 get(key)을 포함할 수 있는데, 여기서 key는 DHT(13) 상의 엔트리에 연관된 키-값 쌍에 대한 키이다.
또 다른 일례로, 키-값 쌍의 키는 제2 해시값(H2)이다.
또 다른 일례로, 제2 노드(7)는 제1 노드(3) 또는 달리 예시하지 않은 다른 노드로부터 DHT(13)에 저장된 값을 수신할 수 있다. 제1 노드(3) 또는 다른 노드는 DHT(13)의 참여 노드에 요청 메시지 get(key)을 제공할 수 있다. 이어서, 제1 노드(3) 또는 다른 노드는 DHT(13) 상의 엔트리에 연관된 키-값 쌍의 값을 수신할 수 있다. 이어서, 키-값 쌍의 값은 제1 노드(3) 또는 다른 노드로부터 통신 네트워크(5)를 통해 제2 노드(7)로 전송될 수 있다.
제2 사용자 공개키(PU2)와 제2 공개키(P2) 비교(630)
이 방법은, 제2 사용자 공개키(PU2)와 제2 공개키(P2)를 비교하는 단계(630)를 더 포함한다. 비교하는 단계는 제2 사용자 공개키(PU2)와 제2 공개키(P2)가 일치하는지 여부를 결정하는 단계를 포함할 수 있다.
일례로, 일치는, 제2 사용자 공개키(PU2)와 제2 공개키(P2)가 동등하다는 것을 나타낼 수 있다.
다른 일례로, 일치는, 제2 사용자 공개키(PU2)와 제2 공개키(P2)가 동일한 암호화폐 지갑에 속함을 나타낼 수 있다.
또 다른 일례로, 암호화폐 지갑은 결정론적 지갑 일 수 있고, 일치는, 제2 사용자 공개키(PU2)와 제2 공개키(P2)가 공통 시드로부터 도출됨을 나타낼 수 있다. 공통 시드는 문자들의 시퀀스일 수 있다.
비교에 기초하여 컴퓨터 소프트웨어의 소유권 검증(640)
방법(600)은, 제2 사용자 공개키(PU2)와 제2 공개키(P2)의 비교에 기초하여 컴퓨터 소프트웨어의 소유권을 검증하는 단계(640)를 더 포함한다.
일례로, 컴퓨터 소프트웨어의 소유권을 검증하는 단계는, 비교 결과 제2 사용자 공개키(PU2)와 제2 공개키(P2)가 일치한다는 결정하는 경우에 발생한다. 검증하는 단계는, 일치가 확립되었다면 사용자가 소프트웨어를 사용하거나 소프트웨어와 상호작용하고 또는 그 외에는 소프트웨어에 관련하여 소정의 행위를 수행하는 것을 허용하거나 가능하게 하는 단계를 포함할 수 있다.
변형예
컴퓨터 소프트웨어
컴퓨터 소프트웨어는 헤더와 바디를 포함할 수 있다. 일례로, 헤더는 컴퓨터 소프트웨어에 연관된 정보를 포함할 수 있다. 다른 일례로, 헤더는 컴퓨터 소프트웨어의 바디의 해시값을 포함할 수 있다. 또 다른 일례로, 헤더는 전술한 바와 같이 제2 해시값(H2)을 포함할 수 있다.
컴퓨터 소프트웨어의 바디는 컴퓨터 소프트웨어의 실행파일을 포함할 수 있다.
컴퓨터 소프트웨어 설치
컴퓨터 소프트웨어의 실행파일은, 제2 사용자(24)에 연관된 제2 처리 장치(27)가 컴퓨터 소프트웨어를 설치하게 하는 명령을 포함할 수 있다. 일례로, 컴퓨터 소프트웨어는, 제2 사용자 공개키(PU2)를 결정하는 단계(610) 전에 제2 처리 장치(27)에 설치된다.
컴퓨터 소프트웨어의 실행파일 암호화
전술한 방법(600)에서, 컴퓨터 소프트웨어의 실행파일을 설치하는 단계 전에, 방법(600)은 컴퓨터 소프트웨어의 실행파일을 암호화하는 단계를 포함할 수 있다. 컴퓨터 소프트웨어의 실행파일은 전술한 방법(100) 후에 암호화될 수 있다.
일례로, 컴퓨터 소프트웨어의 실행파일은 제1 사용자(23) 또는 제2 사용자(24)에 연관된 공개키로 암호화된다. 다른 일례로, 컴퓨터 소프트웨어의 실행파일은 제1 노드(3) 또는 제2 노드(7)에 연관된 공개키로 암호화된다. 또 다른 일례로, 컴퓨터 소프트웨어의 실행파일은 제3자 또는 달리 예시하지 않은 노드에 연관된 공개키로 암호화된다.
또 다른 일례로, 컴퓨터 소프트웨어의 실행파일은, 이하에서 제공 및 설명하는 기술과 유사한 공통 비밀 공유 방안을 사용하여 암호화될 수 있다.
공통 비밀(CS) 결정
암호화를 위한 공통 비밀은, 도 8에 도시된 바와 같이 방법들(300, 400)의 단계들을 각각 수행함으로써 노드들에 연관된 사용자들(23, 24)에 의해 노드들(3, 7)에서 결정될 수 있다. 이러한 방식으로, 공통 비밀은, 통신 네트워크(5)를 통해 사용자들(23, 24)에 연관된 개인키들을 통신하지 않고 독립적으로 결정될 수 있다.
도 8에 도시된 바와 같이, 제1 사용자(23)에 의해 수행되는 방법(300)은, 적어도 제1 사용자 개인키(VU1)와 생성기 값(GV)에 기초하여 제1 사용자 제2 개인키(V2U1)를 결정하는 단계(300)를 포함한다. 제1 사용자 개인키(VU1)는 제1 사용자 공개키(PU1)와의 암호쌍을 형성한다.
생성기 값은, 통신 네트워크(5)를 통해 메시지를 공유하는 것을 포함할 수 있는 제1 사용자(23)와 제2 사용자(24) 간에 공유되는 메시지에 기초할 수 있다. 또한, 방법(300)은, 적어도 제2 사용자 공개키(PU2)와 생성기 값(GV)에 기초하여 제2 사용자 제2 공개키(P2U2)를 결정하는 단계(370)를 포함한다. 방법(300)은, 제2 사용자 제2 공개키(P2U2)와 제1 사용자 제2 개인키(V2U1)에 기초하여 공통 비밀(CS)을 제1 사용자(23)에서 결정하는 단계(380)를 더 포함한다.
중요한 점은, 동일한 공통 비밀(CS)이 방법(400)에 의해 제2 노드(7)에 연관된 제2 사용자(24)에 의해 결정될 수 있다. 방법(400)은, 제1 사용자 공개키(PU1)와 생성기 값(GV)에 기초하여 제1 사용자 제2 공개키(P2U1)를 결정하는 단계(430)를 포함한다. 방법(400)은, 제2 사용자 개인키(VU2)와 생성기 값(GV)에 기초하여 제2 사용자 제2 개인키(V2U2)를 결정하는 단계(470)를 더 포함한다. 제2 사용자 개인키(VU2)는 제2 사용자 공개키(PU2)와의 암호쌍을 형성한다.
방법(400)은, 제1 사용자 제2 공개키(P2U1)와 제2 사용자 제2 개인키(V2U2)에 기초하여 공통 비밀(CS)을 제2 사용자(24)에서 결정하는 단계(480)를 더 포함한다. 방법들(300, 400)은 제1 사용자 추가 공개키 또는 제2 사용자 추가 공개키를 생성하도록 반복될 수 있다.
컴퓨터 소프트웨어의 실행파일 암호화
공통 비밀(CS)은 암호화를 위한 대칭키를 생성하기 위한 기반으로서 사용될 수 있다. 일례로, 공통 비밀(CS)은 타원 곡선 점(xs, ys)의 형태일 수 있다. 이것은, 노드들(3, 7)에 의해 합의된 표준 연산을 사용하여 표준 키 포맷으로 변환될 수 있다. 예를 들어, xs 값은, AES256(어드밴스드 암호화 표준) 암호화의 키로서 사용될 수 있는 256비트 정수일 수 있다. 이것은, 또한, RIPEMD160을 사용하여 160비트 정수로 변환될 수 있다. 제1 사용자(23)에 의한 암호화를 이용하는 보안 통신 방법(700, 800)을 도 9를 참조하여 설명한다.
이하에서 제공되는 예시적인 실시예에서, 제1 노드(3)에 연관된 제1 사용자(23)는 컴퓨터 소프트웨어의 실행파일을 암호화하는 방법(700)을 수행한다. 방법(700)은 제2 노드(7)에서 제2 사용자(24)에 동등하게 적용될 수 있음을 이해해야 한다.
제1 사용자(23)는 상술한 방법들(300, 400)에서 결정된 공통 비밀(CS)에 기초하여 대칭키를 결정한다(710). 이것은, 전술한 바와 같이 공통 키(CS)를 표준 키 포맷으로 변환하는 것을 포함할 수 있다. 유사하게, 제2 사용자(24)는 또한 공통 비밀(CS)에 기초하여 대칭키를 결정할 수 있다(810).
대칭키는, 컴퓨터 소프트웨어의 실행파일을 암호화하여 컴퓨터 소프트웨어의 암호화된 실행파일을 형성(720)하도록 제1 사용자(23)에 의해 사용될 수 있다. 이어서, 컴퓨터 소프트웨어의 암호화된 실행파일을 컴퓨터 소프트웨어의 바디에 포함시킨다(730).
컴퓨터 소프트웨어의 암호화된 실행파일을 포함하는 컴퓨터 소프트웨어를 통신 네트워크(5)를 통해 저장 위치로 전송할 수 있다(740). 일례로, 저장 위치는 해시 테이블 또는 DHT(13)와 같은 리포지토리일 수 있다. 다른 위치에서, 저장 위치는 인터넷 상에 있을 수 있다. 다른 일례로, 저장 위치는, 제1 노드(3)의 제1 처리 장치(21)에 연관된 데이터 저장소(17)와 같은 컴퓨터 기반 자원 상에 제공되는 서버, 데이터베이스, 또는 저장 시설과 같은 컴퓨터 기반 리포지토리일 수 있다.
이어서, 제2 사용자(24)는 컴퓨터 소프트웨어의 암호화된 실행파일을 결정한다. 컴퓨터 소프트웨어의 암호화된 실행파일을 결정하는 것은, 전술한 바와 같이 저장 위치로부터 컴퓨터 소프트웨어를 다운로드하는 것을 포함할 수 있다. 일례로, 제2 사용자(24)는 DHT(13) 상의 엔트리로부터 컴퓨터 소프트웨어의 암호화된 실행파일을 다운로드한다.
제2 사용자(24)는, 컴퓨터 소프트웨어의 암호화된 실행파일을 대칭키로 해독하여 컴퓨터 소프트웨어의 실행파일을 얻는다(830).
처리 장치
전술한 바와 같이, 제1 노드(3)와 제2 노드(7)는, 컴퓨터, 태블릿 컴퓨터, 이동 통신 장치, 컴퓨터 서버 등의 전자 장치일 수 있다. 전자 장치는 처리 장치(21, 27), 데이터 저장소(17), 및 사용자 인터페이스(15)를 포함할 수 있다.
도 10은 처리 장치(21, 27)의 일례를 도시한다. 처리 장치(21, 27)는, 제1 노드(3), 제2 노드(7), 또는 달리 예시하지 않은 다른 노드에서 사용될 수 있다. 처리 장치(21, 27)는, 버스(1530)를 통해 서로 통신하는 프로세서(1510), 메모리(1520), 및 인터페이스 장치(1540)를 포함한다. 메모리(1520)는, 전술한 방법들(100, 300, 400, 600, 700, 800)을 구현하기 위한 기계 판독가능 명령과 데이터를 포함하는 컴퓨터 소프트웨어 프로그램을 저장하고, 프로세서(1510)는 방법들(100, 300, 400, 600, 700, 800)을 구현하도록 메모리(1520)로부터의 명령을 수행한다. 인터페이스 장치(1540)는, 통신 네트워크(5)와의 통신 및 일부 예에서는 데이터 저장소(17)와 같은 주변 장치 및 사용자 인터페이스(15)와의 통신을 용이하게 하는 통신 모듈을 포함할 수 있다. 처리 장치(1510)가 독립적인 네트워크 요소일 수 있지만, 처리 장치(1510)는 다른 네트워크 요소의 일부일 수도 있다는 점에 주목해야 한다. 또한, 처리 장치(1510)에 의해 수행되는 일부 기능은 다수의 네트워크 요소 간에 분산될 수 있다. 예를 들어, 제1 노드(3)는, 제1 노드(3)에 연관된 보안 로컬 영역 네트워크에서 방법들(100, 300, 400, 600, 700, 800)을 수행하기 위한 다수의 처리 장치(21)를 가질 수 있다.
본 개시 내용에서 사용자, 고용주, 피고용인, 발행인, 판매자, 제공자, 또는 기타 엔티티가 (서명, 발행, 결정, 계산, 전송, 수신, 생성 등을 포함하는) 특정 작업을 수행한다고 설명하는 경우, 이러한 표현은 설명의 명료성을 위해 사용된 것이다. 이들 작업은 이들 엔티티에 의해 동작하는 연산 장치들에 의해 수행된다는 점을 이해해야 한다.
통상의 기술자라면, 본 개시 내용의 넓은 범용 범위를 벗어나지 않고서 전술한 실시예들에 대하여 다양한 변형 및/또는 수정을 행할 수 있음을 이해할 것이다. 따라서, 본 실시예들은 모든 면에서 예시적인 것이며 제한적이지 않은 것으로 간주해야 한다.
Claims (15)
- 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 설치 후 실행 전의 컴퓨터 소프트웨어의 소유권을 검증하는 컴퓨터 구현 방법으로서,
상기 피어투피어 분산 원장에 저장된 거래 기록으로부터 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)를 결정하는 단계;
상기 분산 해시 테이블에 저장된 엔트리로부터 상기 제2 사용자(U2)에 연관된 제2 공개키(P2)를 결정하는 단계;
상기 제2 사용자 공개키(PU2)와 상기 제2 공개키(P2)를 비교하는 단계; 및
상기 제2 사용자 공개키(PU2)와 상기 제2 공개키(P2)의 비교에 기초하여 상기 컴퓨터 소프트웨어의 소유권을 검증하는 단계를 포함하는, 컴퓨터 구현 방법. - 제1항에 있어서,
상기 제2 사용자 공개키(PU2)와 상기 제2 공개키(P2)를 비교하는 단계는,
상기 제2 사용자 공개키(PU2)와 상기 제2 공개키(P2)가 일치하는지 여부를 결정하는 단계를 포함하는, 컴퓨터 구현 방법. - 제1항 또는 제2항에 있어서,
상기 컴퓨터 소프트웨어는 헤더와 바디를 포함하는, 컴퓨터 구현 방법. - 제3항에 있어서,
상기 헤더는 상기 컴퓨터 소프트웨어의 바디의 해시값을 포함하는, 컴퓨터 구현 방법. - 제3항에 있어서,
상기 헤더는 상기 컴퓨터 소프트웨어 또는 라이센스에 연관된 데이터의 해시값((H2)을 더 포함하는, 컴퓨터 구현 방법. - 제3항에 있어서,
상기 컴퓨터 소프트웨어의 바디는 상기 컴퓨터 소프트웨어의 실행파일(executable)을 포함하는, 컴퓨터 구현 방법. - 제5항에 있어서,
상기 제2 사용자 공개키(PU2)를 결정하는 단계 전에, 상기 제2 사용자(U2)에 연관된 처리 장치에 상기 컴퓨터 소프트웨어의 실행파일을 설치하는 단계를 포함하는, 컴퓨터 구현 방법. - 제7항에 있어서,
상기 컴퓨터 소프트웨어의 실행파일을 설치하는 단계 전에, 상기 컴퓨터 소프트웨어의 실행파일을 암호화하는 단계를 포함하는, 컴퓨터 구현 방법. - 제8항에 있어서,
상기 컴퓨터 소프트웨어의 실행파일을 암호화하는 단계는,
생성기 값(GV)을 결정하는 단계;
상기 제2 사용자 공개키(PU2)와 상기 생성기 값(GV)에 기초하여 제2 사용자 제2 공개키(P2U2)를 결정하는 단계로서, 상기 제2 사용자 제2 공개키(P2U2)는 제2 사용자 제2 개인키(V2U2)와의 암호쌍(cryptographic pair)을 형성하는, 단계;
제1 사용자 공개키(PU1)와 상기 생성기 값(GV)에 기초하여 제1 사용자 제2 공개키(P2U1)를 결정하는 단계로서, 상기 제1 사용자 제2 공개키(P2U1)는 제1 사용자 제2 개인키(V2U1)와의 암호쌍을 형성하는, 단계;
상기 제2 사용자 제2 공개키(P2U2)와 상기 제1 사용자 제2 개인키(V2U1)에 기초하여 공통 비밀(CS)을 결정하는 단계; 및
상기 컴퓨터 소프트웨어의 실행파일을 상기 공통 비밀(CS)로 암호화하여 상기 컴퓨터 소프트웨어의 암호화된 실행파일을 생성하는 단계를 포함하는, 컴퓨터 구현 방법. - 제9항에 있어서,
상기 컴퓨터 소프트웨어의 암호화된 실행파일은,
상기 제1 사용자 제2 공개키(P2U1)와 상기 제2 사용자 제2 개인키(V2U2)에 기초하여 상기 공통 비밀(CS)을 결정하는 단계; 및
상기 컴퓨터 소프트웨어의 실행파일을 상기 공통 비밀(CS)로 해독하여 상기 컴퓨터 소프트웨어의 해독된 실행파일을 생성하는 단계에 의해, 상기 컴퓨터 소프트웨어의 실행파일을 설치하기 전에 해독되는, 컴퓨터 구현 방법. - 제10항에 있어서,
상기 컴퓨터 소프트웨어의 소유권을 검증한 후 상기 제2 사용자(U2)에 연관된 상기 처리 장치에 대하여 상기 컴퓨터 소프트웨어의 상기 해독된 실행파일의 명령을 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법. - 제11항에 있어서,
상기 명령을 실행하는 단계 전에,
상기 제2 사용자(U2)로부터 활성화 키(AK)를 결정하는 단계; 및
상기 활성화 키(AK)에 기초하여 상기 컴퓨터 소프트웨어의 해독된 실행파일의 명령을 상기 제2 사용자(U2)에 연관된 처리 장치에 대하여 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법. - 제8항에 있어서,
상기 컴퓨터 소프트웨어의 실행파일을 암호화하는 단계 전에, 상기 방법은,
상기 컴퓨터 소프트웨어에 연관된 데이터(D1)를 결정하는 단계;
상기 컴퓨터 소프트웨어의 제1 해시값(H1)을 결정하는 단계;
상기 데이터(D1)와 상기 컴퓨터 소프트웨어에 기초하여 제2 해시값(H2)을 결정하는 단계;
통신 네트워크를 통해, 상기 데이터(D1), 상기 제1 해시값(H1), 및 상기 제2 해시값(H2)을 상기 분산 해시 테이블에 저장하기 위한 엔트리에 전송하는 단계로서, 상기 제2 해시값(H2)이 키-값 쌍의 키이고 상기 데이터(D1) 및 상기 제1 해시값(H1)이 상기 키-값 쌍의 값인, 단계; 및
상기 피어투피어 분산 원장 상에 저장하기 위한 상기 제2 해시값(H2)을 포함하는 메타데이터(M)를 결정하는 단계를 더 포함하는, 컴퓨터 구현 방법. - 삭제
- 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 설치 후 실행 전의 컴퓨터 소프트웨어의 소유권을 검증하기 위한 컴퓨터 시스템으로서,
노드들의 피어투피어 네트워크 상의 노드에 연관된 처리 장치를 포함하고,
상기 처리 장치는,
상기 피어투피어 분산 원장에 저장된 거래 기록으로부터 제2 사용자(U2)에 연관된 제2 사용자 공개키(PU2)를 결정하고,
상기 분산 해시 테이블 상에 저장된 엔트리로부터 상기 제2 사용자(U2)에 연관된 제2 공개키(P2)를 결정하고,
상기 제2 사용자 공개키(PU2)와 상기 제2 공개키(P2)를 비교하고,
상기 제2 사용자 공개키(PU2)와 상기 제2 공개키(P2)의 비교에 기초하여 상기 컴퓨터 소프트웨어의 소유권을 검증하도록 구성된, 컴퓨터 시스템.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1608456.8A GB201608456D0 (en) | 2016-05-13 | 2016-05-13 | A method and system for verifying ownership of a computer software using a distributed hash table and a peer-to-peer distributed ledger |
GB1608456.8 | 2016-05-13 | ||
GBGB1608454.3A GB201608454D0 (en) | 2016-05-13 | 2016-05-13 | A method and system for verifying ownership of a computer software using a distributed hash table and a peer-to-peer distributed ledger |
GB1608463.4 | 2016-05-13 | ||
GB1608454.3 | 2016-05-13 | ||
GBGB1608463.4A GB201608463D0 (en) | 2016-05-13 | 2016-05-13 | A method and system for veryfying integrity of a computer software using a distributed hash table and a peer-to-peer distributed ledger |
PCT/IB2017/052804 WO2017195164A1 (en) | 2016-05-13 | 2017-05-12 | A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180137022A KR20180137022A (ko) | 2018-12-26 |
KR101974075B1 true KR101974075B1 (ko) | 2019-04-30 |
Family
ID=58737700
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187034991A KR101974075B1 (ko) | 2016-05-13 | 2017-05-12 | 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템 |
KR1020187035450A KR102051288B1 (ko) | 2016-05-13 | 2017-05-12 | 분산형 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 무결성을 검증하기 위한 방법 및 시스템 |
KR1020187035210A KR101974060B1 (ko) | 2016-05-13 | 2017-05-12 | 분산 해시 테이블과 피어투피어 분산 대장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187035450A KR102051288B1 (ko) | 2016-05-13 | 2017-05-12 | 분산형 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 무결성을 검증하기 위한 방법 및 시스템 |
KR1020187035210A KR101974060B1 (ko) | 2016-05-13 | 2017-05-12 | 분산 해시 테이블과 피어투피어 분산 대장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템 |
Country Status (18)
Country | Link |
---|---|
US (8) | US10579779B2 (ko) |
EP (3) | EP3295349B1 (ko) |
JP (3) | JP6514831B1 (ko) |
KR (3) | KR101974075B1 (ko) |
CN (5) | CN116842483A (ko) |
AU (3) | AU2017263290B2 (ko) |
BR (3) | BR112018072969A2 (ko) |
CA (3) | CA3022899A1 (ko) |
ES (3) | ES2701981T3 (ko) |
GB (3) | GB2558485A (ko) |
HK (3) | HK1245430B (ko) |
IL (3) | IL262807B (ko) |
MX (3) | MX2018013617A (ko) |
PH (3) | PH12018502386A1 (ko) |
SG (3) | SG11201809582PA (ko) |
SI (3) | SI3295362T1 (ko) |
WO (3) | WO2017195160A1 (ko) |
ZA (1) | ZA201807299B (ko) |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636471B2 (en) * | 2017-12-15 | 2023-04-25 | Fmr Llc | Social data tracking datastructures, apparatuses, methods and systems |
CN116842483A (zh) | 2016-05-13 | 2023-10-03 | 区块链控股有限公司 | 验证数字资产完整性的方法和系统 |
US10169614B2 (en) * | 2016-11-17 | 2019-01-01 | International Business Machines Corporation | Container update system |
JP6340120B1 (ja) * | 2017-06-16 | 2018-06-06 | アイビーシー株式会社 | デバイスプロビジョニングシステム |
EP3428577A1 (en) | 2017-07-12 | 2019-01-16 | Veoneer Sweden AB | A driver assistance system and method |
US11362834B2 (en) * | 2017-07-24 | 2022-06-14 | Comcast Cable Communications, Llc | Systems and methods for managing digital rights |
EP3445017B1 (en) * | 2017-08-16 | 2019-10-09 | Veoneer Sweden AB | A method relating to a motor vehicle driver assistance system |
GB2568453A (en) * | 2017-09-14 | 2019-05-22 | Blockpass Idn Ltd | Systems and methods for user identity |
WO2019098895A1 (en) * | 2017-11-17 | 2019-05-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for detecting digital content tampering |
CN108573741A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 业务数据记录方法、装置、设备和存储介质 |
US10896418B2 (en) | 2017-12-29 | 2021-01-19 | Ebay Inc. | Secure management of data files using a blockchain |
US10715323B2 (en) | 2017-12-29 | 2020-07-14 | Ebay Inc. | Traceable key block-chain ledger |
US10841372B1 (en) * | 2018-01-11 | 2020-11-17 | Hoot Live, Inc. | Systems and methods for performing useful commissioned work using distributed networks |
US11210369B2 (en) * | 2018-01-19 | 2021-12-28 | Nasdaq, Inc. | Systems and methods of digital content certification and verification using cryptography and blockchain |
CA2993064A1 (en) * | 2018-01-26 | 2019-07-26 | Erik Dean Lindquist | Methods and systems for enabling interoperability of independent hash-based authentication technologies |
US11438139B2 (en) * | 2018-02-07 | 2022-09-06 | Raouf Boutaba | Blockchain based secure naming and update verification |
US20210099284A1 (en) * | 2018-02-08 | 2021-04-01 | 2Bc Innovations, Llc | Modifying blockchain-encoded records of rived longevity-contingent instruments |
US20210097610A1 (en) * | 2018-02-08 | 2021-04-01 | 2Bc Innovations, Llc | Utilizing blockchain-encoded records for rived longevity-contingent instruments |
US20210004906A1 (en) * | 2018-02-08 | 2021-01-07 | 2Bc Innovations, Llc | Modifying a portfolio of blockchain-encoded rived longevity-contingent instruments |
US20210035217A1 (en) * | 2018-02-08 | 2021-02-04 | 2Bc Innovations, Llc | Updating blockchain-encoded records of rived longevity-contingent instruments |
US20190251627A1 (en) * | 2018-02-11 | 2019-08-15 | Loopring Project Ltd | Methods and systems for digital asset transaction |
US11582042B2 (en) * | 2018-03-16 | 2023-02-14 | General Electric Company | Industrial data verification using secure, distributed ledger |
US10846375B2 (en) * | 2018-04-11 | 2020-11-24 | Microsoft Technology Licensing, Llc | Software license distribution and validation using a distributed immutable data store |
WO2019200460A1 (en) * | 2018-04-20 | 2019-10-24 | Interbit Ltd. | Method and system for storing a binary large object |
EP3565211B1 (en) * | 2018-05-03 | 2021-04-07 | Nokia Technologies Oy | Method network element, system and computer readable medium, for onboarding a device |
WO2019213752A1 (en) * | 2018-05-11 | 2019-11-14 | Echoai Corp. | A method and system for managing digital assets in a blockchain |
US11431477B2 (en) | 2018-05-14 | 2022-08-30 | nChain Holdings Limited | Computer-implemented systems and methods for using a blockchain to perform an atomic swap |
US11615070B2 (en) | 2018-05-25 | 2023-03-28 | Intertrust Technologies Corporation | Digital content integrity verification systems and methods |
DE102018208591A1 (de) | 2018-05-30 | 2019-12-05 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Prüfen eines Sachverhaltes in einem dezentralen Transaktionssystem |
US11777744B2 (en) | 2018-06-25 | 2023-10-03 | Auth9, Inc. | Method, computer program product and apparatus for creating, registering, and verifying digitally sealed assets |
CA3104911A1 (en) * | 2018-07-09 | 2020-01-16 | Prescient Innovations Inc. | Media attribution systems and methods |
GB201811263D0 (en) * | 2018-07-10 | 2018-08-29 | Netmaster Solutions Ltd | A method and system for managing digital using a blockchain |
WO2020033556A1 (en) * | 2018-08-07 | 2020-02-13 | Walmart Apollo, Llc | System and method for a distributed ledger for industrial asset management |
WO2020033558A1 (en) * | 2018-08-07 | 2020-02-13 | Walmart Apollo, Llc | System and method for a distributed ledger for information technology asset management |
DE102018213304A1 (de) | 2018-08-08 | 2020-02-13 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Prüfen eines Sachverhaltes in einem dezentralen Transaktionssystem |
US11335109B2 (en) | 2018-08-28 | 2022-05-17 | Marlabs Incorporated | Computing device for document authentication and a method to operate the same |
US10250395B1 (en) * | 2018-08-29 | 2019-04-02 | Accenture Global Solutions Limited | Cryptologic blockchain interoperation |
US11128472B2 (en) * | 2018-09-04 | 2021-09-21 | Red Hat, Inc. | Signature verification using blockchain |
WO2020076679A1 (en) * | 2018-10-09 | 2020-04-16 | Northwestern University | Distributed digital currency mining to perform network tasks |
US11301452B2 (en) | 2018-10-09 | 2022-04-12 | Ebay, Inc. | Storing and verification of derivative work data on blockchain with original work data |
TW202016743A (zh) * | 2018-10-25 | 2020-05-01 | 財團法人資訊工業策進會 | 用於物聯網系統之資料處理裝置及資料處理方法 |
GB201817507D0 (en) * | 2018-10-27 | 2018-12-12 | Nchain Holdings Ltd | Computer implemented system and method |
DE102018129354A1 (de) * | 2018-11-21 | 2020-05-28 | Phoenix Contact Gmbh & Co. Kg | Verfahren zum Bearbeiten von Anwendungsprogrammen auf einem verteilten Automatisierungssystem |
EP3660770A1 (en) | 2018-11-30 | 2020-06-03 | Mastercard International Incorporated | Methods and systems for secure product tracking data storage and verification |
US11178151B2 (en) * | 2018-12-19 | 2021-11-16 | International Business Machines Corporation | Decentralized database identity management system |
JP6640320B1 (ja) * | 2018-12-28 | 2020-02-05 | 玲於奈 日置 | トークン管理システムおよびトークン管理方法 |
EP3566418B1 (en) * | 2018-12-29 | 2021-04-21 | Advanced New Technologies Co., Ltd. | Blockchain-based crowdsourcing of map applications |
WO2020145507A1 (ko) * | 2019-01-08 | 2020-07-16 | 주식회사 에치에프알 | 블록체인을 이용한 로밍 서비스 제공방법 및 그를 위한 장치 |
US11405180B2 (en) | 2019-01-15 | 2022-08-02 | Fisher-Rosemount Systems, Inc. | Blockchain-based automation architecture cybersecurity |
US20200242711A1 (en) * | 2019-01-27 | 2020-07-30 | Auth9, Inc. | Method, computer program product and apparatus for transferring ownership of digital assets |
CN109995523B (zh) * | 2019-03-13 | 2021-07-09 | 网易(杭州)网络有限公司 | 激活码管理方法及装置、激活码生成方法及装置 |
JP6779389B2 (ja) | 2019-04-03 | 2020-11-04 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | 信頼できる実行環境下でのブロックチェーンデータの処理および保存 |
US11228446B2 (en) | 2019-05-10 | 2022-01-18 | Advanced New Technologies Co., Ltd. | Blockchain-based reconciliation method and apparatus and electronic device |
CN110213263B (zh) * | 2019-05-30 | 2021-10-22 | 全链通有限公司 | 基于联盟区块链的身份验证方法、设备及存储介质 |
US11501295B2 (en) * | 2019-07-24 | 2022-11-15 | Advanced New Technologies Co., Ltd. | Object distribution processing |
KR102273160B1 (ko) | 2019-08-01 | 2021-07-05 | 주식회사 블룸테크놀로지 | Bft 확정 합의 방식의 dag-awtc 원장 시스템 |
TW202143136A (zh) * | 2019-08-09 | 2021-11-16 | 英商路昂有限公司 | 使用者媒體平台伺服器系統 |
WO2021039453A1 (ja) * | 2019-08-29 | 2021-03-04 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 制御方法、サーバ、および、プログラム |
GB2587190B (en) * | 2019-09-12 | 2021-12-01 | Nchain Holdings Ltd | Storing a program on a blockchain |
KR102101726B1 (ko) * | 2019-10-11 | 2020-05-29 | (주)소프트제국 | 블록체인 기반의 브라우저의 웹스토리지를 이용한 간편인증 방법 및 시스템 |
CA3150117A1 (en) * | 2019-10-22 | 2021-04-29 | Robert I. Beaver Iii | SYSTEM AND METHOD FOR COLLABORATIVE DESIGN OF ALLOCATION TRACKING BASED ON CUSTOMIZED PRODUCT ROLES BASED ON MANUFACTURING CONSTRAINTS |
US12073148B2 (en) | 2019-10-22 | 2024-08-27 | Zazzle, Inc. | Method and media for generating and using digital product tokens to represent digital and physical products |
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 |
KR102274656B1 (ko) * | 2019-11-22 | 2021-07-09 | 주식회사 티맥스엔터프라이즈 | 블록체인 네트워크에서 데이터를 관리하기 위한 기법 |
JP7162634B2 (ja) | 2019-12-12 | 2022-10-28 | 株式会社bitFlyer Blockchain | 証明書データをデジタルに利用可能にするための装置、方法及びそのためのプログラム |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US11526585B2 (en) * | 2020-02-06 | 2022-12-13 | Dell Products L.P. | Vendor software activation using distributed ledger |
US11556618B2 (en) * | 2020-02-18 | 2023-01-17 | At&T Intellectual Property I, L.P. | Split ledger software license platform |
US11922278B1 (en) * | 2020-02-26 | 2024-03-05 | American Express Travel Related Services Company, Inc. | Distributed ledger based feature set tracking |
WO2021188765A1 (en) | 2020-03-20 | 2021-09-23 | Mastercard International Incorporated | Method and system for auditing smart contracts |
CN111526197B (zh) * | 2020-04-24 | 2023-05-09 | 远光软件股份有限公司 | 一种云端数据安全共享方法 |
CN113626040B (zh) * | 2020-05-06 | 2023-12-22 | 伊姆西Ip控股有限责任公司 | 用于安装应用的方法、电子设备和计算机程序产品 |
WO2021232295A1 (zh) * | 2020-05-20 | 2021-11-25 | 新华三技术有限公司 | 软件许可信息的监控方法、装置、服务器及存储介质 |
US11431492B2 (en) * | 2020-06-25 | 2022-08-30 | At&T Intellectual Property I, L.P. | Mutable encrypted system |
US11368310B2 (en) | 2020-07-11 | 2022-06-21 | Bank Of America Corporation | Data transfer between computing nodes of a distributed computing system |
US12039309B2 (en) * | 2020-07-29 | 2024-07-16 | Canon Kabushiki Kaisha | Information processing apparatus, method of activating an application and storage medium |
US10965461B1 (en) * | 2020-08-31 | 2021-03-30 | Syniverse Technologies, Llc | Method of verifying telecommunications messaging traffic based on decentralized identifiers |
CN112347456B (zh) | 2020-10-28 | 2023-09-01 | 达闼机器人股份有限公司 | 程序验证方法和装置、平台和用户终端及在线服务系统 |
JP2023548415A (ja) | 2020-11-09 | 2023-11-16 | リドル アンド コード ゲーエムベーハー | 保護装置によって達成される対象物の保護を停止する方法 |
CN115280717B (zh) * | 2021-01-11 | 2024-06-07 | 微福斯有限责任公司 | 区块链审计系统和方法 |
WO2023015312A1 (en) | 2021-08-05 | 2023-02-09 | Artema Labs, Inc | Methods for securely adding data to a blockchain using dynamic time quanta and version authentication |
WO2023034127A1 (en) * | 2021-08-31 | 2023-03-09 | Disney Enterprises, Inc. | Acquisition and use of multi-platform portable non-fungible token credits |
FR3136565A1 (fr) * | 2022-06-08 | 2023-12-15 | La Preuve Numerique | Procédé d’enregistrement renforcé d’un fichier numérique |
US20240113889A1 (en) * | 2022-09-29 | 2024-04-04 | ForgeRock, Inc. | Verifying ownership using decentralized verification |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715403A (en) | 1994-11-23 | 1998-02-03 | Xerox Corporation | System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar |
US20150242958A1 (en) | 2010-12-08 | 2015-08-27 | David Andrew D'Zmura | Counter-party license transaction (C.P.L.T.) |
Family Cites Families (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5944821A (en) | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
JPH1031587A (ja) * | 1996-07-15 | 1998-02-03 | Hitachi Ltd | データ端末装置およびコンピュータプログラム |
GB2345775A (en) | 1998-10-21 | 2000-07-19 | Ordertrust Llc | Analyzing transaction information |
US7673137B2 (en) | 2002-01-04 | 2010-03-02 | International Business Machines Corporation | System and method for the managed security control of processes on a computer system |
JP4176533B2 (ja) * | 2003-03-31 | 2008-11-05 | 株式会社エヌ・ティ・ティ・ドコモ | 端末装置及びプログラム |
CN100504818C (zh) * | 2003-07-07 | 2009-06-24 | 巨视股份有限公司 | 调控对非易失性存储区访问的方法和判定访问的自动方法 |
US8875309B1 (en) * | 2004-12-15 | 2014-10-28 | Nvidia Corporation | Content server and method of providing content therefrom |
US7577848B2 (en) * | 2005-01-18 | 2009-08-18 | Microsoft Corporation | Systems and methods for validating executable file integrity using partial image hashes |
WO2007010427A1 (en) * | 2005-07-22 | 2007-01-25 | Koninklijke Philips Electronics N.V. | Digital inheritance |
KR101185595B1 (ko) * | 2005-09-30 | 2012-09-24 | 삼성전자주식회사 | 스마트 카드를 이용하여 보안 기능을 수행하는 장치 및 그방법 |
EP1785901B1 (en) * | 2005-10-31 | 2012-03-07 | Research In Motion Limited | Secure License Key Method and System |
US8775562B2 (en) * | 2006-12-05 | 2014-07-08 | International Business Machines Corporation | Mapping file fragments to file information and tagging in a segmented file sharing system |
US20090280906A1 (en) * | 2008-04-30 | 2009-11-12 | Bally Gaming, Inc. | Server client network throttling method for download content |
US8775797B2 (en) * | 2010-11-19 | 2014-07-08 | Microsoft Corporation | Reliable software product validation and activation with redundant security |
US9276752B2 (en) * | 2011-02-11 | 2016-03-01 | Siemens Healthcare Diagnostics Inc. | System and method for secure software update |
WO2012145650A1 (en) * | 2011-04-22 | 2012-10-26 | Google Inc. | Transcoding content based on verification of ownership of the content |
US9754130B2 (en) * | 2011-05-02 | 2017-09-05 | Architecture Technology Corporation | Peer integrity checking system |
US8806192B2 (en) * | 2011-05-04 | 2014-08-12 | Microsoft Corporation | Protected authorization for untrusted clients |
CN103380589B (zh) * | 2011-06-13 | 2016-04-27 | 松下电器产业株式会社 | 终端装置、服务器装置、内容记录控制系统及记录方法 |
JP5708365B2 (ja) * | 2011-08-22 | 2015-04-30 | 大日本印刷株式会社 | コンテンツデータ閲覧制御方法、コンテンツデータ管理閲覧プログラム |
CN102404347A (zh) * | 2011-12-28 | 2012-04-04 | 南京邮电大学 | 一种基于公钥基础设施的移动互联网接入认证方法 |
US9223939B2 (en) | 2012-10-11 | 2015-12-29 | Activision Publishing, Inc. | Key generation method |
US10231126B2 (en) * | 2012-12-06 | 2019-03-12 | Gpvtl Canada Inc. | System and method for enterprise security through P2P connection |
US20160085955A1 (en) | 2013-06-10 | 2016-03-24 | Doosra, Inc. | Secure Storing and Offline Transferring of Digitally Transferable Assets |
EP2996378B1 (en) | 2013-06-19 | 2019-01-30 | Huawei Technologies Co., Ltd. | Communication quality measurement method |
US20160203572A1 (en) * | 2013-08-21 | 2016-07-14 | Ascribe Gmbh | Method to securely establish, affirm, and transfer ownership of artworks |
US20150120569A1 (en) * | 2013-10-31 | 2015-04-30 | Bitgo, Inc. | Virtual currency address security |
US10121215B2 (en) | 2014-07-29 | 2018-11-06 | GeoFrenzy, Inc. | Systems and methods for managing real estate titles and permissions |
KR101754308B1 (ko) * | 2013-10-04 | 2017-07-07 | 한국전자통신연구원 | 모바일 민감 데이터 관리 방법 및 이를 수행하는 위탁 서버 |
US9595034B2 (en) | 2013-10-25 | 2017-03-14 | Stellenbosch University | System and method for monitoring third party access to a restricted item |
US9832217B2 (en) * | 2014-03-13 | 2017-11-28 | International Business Machines Corporation | Computer implemented techniques for detecting, investigating and remediating security violations to IT infrastructure |
WO2015142765A1 (en) | 2014-03-17 | 2015-09-24 | Coinbase, Inc | Bitcoin host computer system |
KR102089513B1 (ko) | 2014-03-19 | 2020-03-16 | 한국전자통신연구원 | 모바일 저장장치에 기반한 소프트웨어 검증 시스템 및 그 방법 |
US9858569B2 (en) | 2014-03-21 | 2018-01-02 | Ramanan Navaratnam | Systems and methods in support of authentication of an item |
US9912690B2 (en) | 2014-04-08 | 2018-03-06 | Capital One Financial Corporation | System and method for malware detection using hashing techniques |
US9940444B1 (en) * | 2014-04-21 | 2018-04-10 | Virtual Marketing Incorporated | Software wrapper and installer using timestamp validation and system identification validation |
US10356094B2 (en) | 2014-06-30 | 2019-07-16 | Vescel, Llc | Uniqueness and auditing of a data resource through an immutable record of transactions in a hash history |
CN104123488A (zh) * | 2014-08-14 | 2014-10-29 | 北京网秦天下科技有限公司 | 应用程序的验证方法和装置 |
US20160048688A1 (en) * | 2014-08-14 | 2016-02-18 | Google Inc. | Restricting System Calls using Protected Storage |
US20160092988A1 (en) * | 2014-09-30 | 2016-03-31 | Raistone, Inc. | Systems and methods for transferring digital assests using a de-centralized exchange |
US20160098723A1 (en) | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
CN104392354B (zh) * | 2014-11-05 | 2017-10-03 | 中国科学院合肥物质科学研究院 | 一种公钥地址与用户账号的关联和检索方法及其系统 |
US9667628B2 (en) * | 2014-11-06 | 2017-05-30 | Intel Corporation | System for establishing ownership of a secure workspace |
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 |
EP3032783A1 (en) * | 2014-12-11 | 2016-06-15 | Hewlett-Packard Development Company, L.P. | Fragmented packet processing resource determination |
WO2016105265A1 (en) | 2014-12-22 | 2016-06-30 | Cryex Group Ab | Methods, apparatus and systems for enabling settlement of transactions of cryptographic assets |
US20160218882A1 (en) | 2015-01-23 | 2016-07-28 | Canon Kabushiki Kaisha | Methods and systems for installing software |
CN104580253B (zh) * | 2015-01-30 | 2017-08-08 | 网易(杭州)网络有限公司 | 一种处理用户数据的方法及装置 |
US9374373B1 (en) * | 2015-02-03 | 2016-06-21 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Encryption techniques for improved sharing and distribution of encrypted content |
WO2016131056A1 (en) | 2015-02-13 | 2016-08-18 | Visa International Service Association | Confidential communication management |
US20160283920A1 (en) | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
WO2016160850A1 (en) * | 2015-03-30 | 2016-10-06 | Iperial, Inc. | System and method for authenticating digital content |
SG11201708295XA (en) * | 2015-04-06 | 2017-11-29 | Bitmark Inc | System and method for decentralized title recordation and authentication |
CN104735164B (zh) * | 2015-04-10 | 2018-05-18 | 网易(杭州)网络有限公司 | 一种保存文件信息的方法和装置 |
US20160321675A1 (en) | 2015-05-01 | 2016-11-03 | Monegraph, Inc. | Authenticating content at an online content management system |
US11074224B2 (en) * | 2015-05-11 | 2021-07-27 | Apple Inc. | Partitioned data replication |
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 |
US20160342977A1 (en) * | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
US10402792B2 (en) | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
US9832024B2 (en) * | 2015-11-13 | 2017-11-28 | Visa International Service Association | Methods and systems for PKI-based authentication |
US9992028B2 (en) | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
KR101772553B1 (ko) * | 2015-12-29 | 2017-08-30 | 주식회사 코인플러그 | 파일에 대한 공증 및 검증을 수행하는 방법 및 서버 |
US9679276B1 (en) | 2016-01-26 | 2017-06-13 | Stampery, Inc. | Systems and methods for using a block chain to certify the existence, integrity, and/or ownership of a file or communication |
KR20180110670A (ko) * | 2016-02-08 | 2018-10-10 | 린제이 몰로니 | 문서 정보의 진본성을 검증하기 위한 시스템 및 방법 |
US20170236123A1 (en) | 2016-02-16 | 2017-08-17 | Blockstack Inc. | Decentralized processing of global naming systems |
SG10202007904SA (en) * | 2016-02-23 | 2020-10-29 | Nchain Holdings Ltd | A method and system for securing computer software using a distributed hash table and a blockchain |
CN107145768B (zh) | 2016-03-01 | 2021-02-12 | 华为技术有限公司 | 版权管理方法和系统 |
US10063529B2 (en) | 2016-03-28 | 2018-08-28 | Accenture Global Solutions Limited | Secure 3D model sharing using distributed ledger |
GB2549085B (en) * | 2016-03-30 | 2020-11-18 | British Telecomm | Blockchain state reliability determination |
US10937069B2 (en) * | 2016-04-13 | 2021-03-02 | Paypal, Inc. | Public ledger authentication system |
US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
US10022613B2 (en) * | 2016-05-02 | 2018-07-17 | Bao Tran | Smart device |
US20170324711A1 (en) * | 2016-05-03 | 2017-11-09 | The Real Mccoy, Llc Inc. | Method for establishing, securing and transferring computer readable information using peer-to-peer public and private key cryptography |
CN116842483A (zh) | 2016-05-13 | 2023-10-03 | 区块链控股有限公司 | 验证数字资产完整性的方法和系统 |
-
2017
- 2017-05-12 CN CN202310819908.4A patent/CN116842483A/zh active Pending
- 2017-05-12 SG SG11201809582PA patent/SG11201809582PA/en unknown
- 2017-05-12 CA CA3022899A patent/CA3022899A1/en active Pending
- 2017-05-12 SI SI201730006T patent/SI3295362T1/sl unknown
- 2017-05-12 WO PCT/IB2017/052800 patent/WO2017195160A1/en active Application Filing
- 2017-05-12 GB GB1806707.4A patent/GB2558485A/en not_active Withdrawn
- 2017-05-12 SI SI201730005T patent/SI3295350T1/sl unknown
- 2017-05-12 EP EP17724453.0A patent/EP3295349B1/en active Active
- 2017-05-12 US US16/300,929 patent/US10579779B2/en active Active
- 2017-05-12 SI SI201730007T patent/SI3295349T1/sl unknown
- 2017-05-12 BR BR112018072969-8A patent/BR112018072969A2/pt not_active Application Discontinuation
- 2017-05-12 CN CN201780024156.5A patent/CN109074434B/zh active Active
- 2017-05-12 BR BR112018072965-5A patent/BR112018072965A2/pt not_active Application Discontinuation
- 2017-05-12 AU AU2017263290A patent/AU2017263290B2/en active Active
- 2017-05-12 AU AU2017261921A patent/AU2017261921B2/en active Active
- 2017-05-12 KR KR1020187034991A patent/KR101974075B1/ko active IP Right Grant
- 2017-05-12 JP JP2018536404A patent/JP6514831B1/ja active Active
- 2017-05-12 WO PCT/IB2017/052804 patent/WO2017195164A1/en active Application Filing
- 2017-05-12 EP EP17724454.8A patent/EP3295362B1/en active Active
- 2017-05-12 ES ES17724645T patent/ES2701981T3/es active Active
- 2017-05-12 MX MX2018013617A patent/MX2018013617A/es unknown
- 2017-05-12 ES ES17724453.0T patent/ES2691254T3/es active Active
- 2017-05-12 WO PCT/IB2017/052801 patent/WO2017195161A1/en active Application Filing
- 2017-05-12 IL IL262807A patent/IL262807B/en unknown
- 2017-05-12 US US16/300,528 patent/US11294991B2/en active Active
- 2017-05-12 CN CN201780024137.2A patent/CN109074433B/zh active Active
- 2017-05-12 SG SG11201809585WA patent/SG11201809585WA/en unknown
- 2017-05-12 SG SG11201809584XA patent/SG11201809584XA/en unknown
- 2017-05-12 CN CN202310733070.7A patent/CN116776318A/zh active Pending
- 2017-05-12 JP JP2018536487A patent/JP6556370B2/ja active Active
- 2017-05-12 GB GB1806704.1A patent/GB2559908A/en not_active Withdrawn
- 2017-05-12 KR KR1020187035450A patent/KR102051288B1/ko active IP Right Grant
- 2017-05-12 BR BR112018072929-9A patent/BR112018072929A2/pt not_active Application Discontinuation
- 2017-05-12 CA CA3022809A patent/CA3022809A1/en active Pending
- 2017-05-12 GB GB1806705.8A patent/GB2564208A/en not_active Withdrawn
- 2017-05-12 ES ES17724454T patent/ES2701980T3/es active Active
- 2017-05-12 CA CA3022803A patent/CA3022803A1/en active Pending
- 2017-05-12 MX MX2018013618A patent/MX2018013618A/es unknown
- 2017-05-12 US US16/300,514 patent/US11210372B2/en active Active
- 2017-05-12 JP JP2018536399A patent/JP6514830B2/ja active Active
- 2017-05-12 EP EP17724645.1A patent/EP3295350B1/en active Active
- 2017-05-12 KR KR1020187035210A patent/KR101974060B1/ko active IP Right Grant
- 2017-05-12 MX MX2018013620A patent/MX2018013620A/es unknown
- 2017-05-12 CN CN201780024133.4A patent/CN109074462B/zh active Active
- 2017-05-12 AU AU2017263291A patent/AU2017263291B2/en active Active
-
2018
- 2018-03-28 HK HK18104246.4A patent/HK1245430B/zh unknown
- 2018-03-28 HK HK18104245.5A patent/HK1245429B/zh unknown
- 2018-03-28 HK HK18104244.6A patent/HK1245428B/zh unknown
- 2018-10-31 ZA ZA2018/07299A patent/ZA201807299B/en unknown
- 2018-11-06 IL IL262809A patent/IL262809B/en active IP Right Grant
- 2018-11-06 IL IL262806A patent/IL262806B/en unknown
- 2018-11-12 PH PH12018502386A patent/PH12018502386A1/en unknown
- 2018-11-12 PH PH12018502385A patent/PH12018502385A1/en unknown
- 2018-11-12 PH PH12018502384A patent/PH12018502384A1/en unknown
-
2020
- 2020-03-02 US US16/806,835 patent/US11366882B2/en active Active
-
2021
- 2021-12-22 US US17/560,107 patent/US20220366019A1/en active Pending
-
2022
- 2022-03-31 US US17/710,866 patent/US20220366020A1/en active Pending
- 2022-06-17 US US17/843,184 patent/US11934494B2/en active Active
-
2024
- 2024-01-31 US US18/428,697 patent/US20240248966A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5715403A (en) | 1994-11-23 | 1998-02-03 | Xerox Corporation | System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar |
US20150242958A1 (en) | 2010-12-08 | 2015-08-27 | David Andrew D'Zmura | Counter-party license transaction (C.P.L.T.) |
Non-Patent Citations (2)
Title |
---|
C. Fromknecht, ‘A Decentralzed Public Key Structure’, International Association for Cryptologic Reseach, 2014 |
J. Herbert et al. "A novel Method for Decentralized Peer-to-Peer Software License Validation Using Cryptocurrency Blockchain Technology", 2015.01.27. |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101974075B1 (ko) | 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템 | |
JP6877448B2 (ja) | 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |