KR20210096178A - 블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 컴퓨터 구현 시스템 및 방법 - Google Patents

블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 컴퓨터 구현 시스템 및 방법 Download PDF

Info

Publication number
KR20210096178A
KR20210096178A KR1020217019737A KR20217019737A KR20210096178A KR 20210096178 A KR20210096178 A KR 20210096178A KR 1020217019737 A KR1020217019737 A KR 1020217019737A KR 20217019737 A KR20217019737 A KR 20217019737A KR 20210096178 A KR20210096178 A KR 20210096178A
Authority
KR
South Korea
Prior art keywords
data
blockchain
metanet
transaction
content
Prior art date
Application number
KR1020217019737A
Other languages
English (en)
Inventor
크레이그 스티븐 라이트
오웬 바우간
잭 오웬 데이비스
클로이 세렌 타르탄
Original Assignee
엔체인 홀딩스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1819297.1A external-priority patent/GB201819297D0/en
Priority claimed from GBGB1819284.9A external-priority patent/GB201819284D0/en
Priority claimed from GBGB1819286.4A external-priority patent/GB201819286D0/en
Priority claimed from GBGB1819293.0A external-priority patent/GB201819293D0/en
Priority claimed from GBGB1819290.6A external-priority patent/GB201819290D0/en
Priority claimed from GBGB1819291.4A external-priority patent/GB201819291D0/en
Priority claimed from GBGB1819299.7A external-priority patent/GB201819299D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20210096178A publication Critical patent/KR20210096178A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 방법이 개시된다. 방법은 블록체인의 적어도 하나의 제1 블록체인 트랜잭션을 생성하는 것을 포함하며, 제1 데이터가 적어도 하나의 제1 블록체인 트랜잭션에 저장되고 제1 접근 데이터가 없으면 제1 참여자가 접근할 수 없다. 방법은 블록체인의 제2 블록체인 트랜잭션을 생성하는 것을 더 포함하며, 제2 블록체인 트랜잭션은 제1 참여자가 제1 접근 데이터를 사용할 수 있게 하는 수단을 포함한다.

Description

블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 컴퓨터 구현 시스템 및 방법
이 발명은 일반적으로 전자 네트워크, 특히 블록체인 네트워크와 같은 피어-투-피어 네트워크를 통한 개선된 데이터 통신 및 교환을 위한 암호화 기술에 관한 것이다. 이는 데이터 저장, 접근, 리트리브(retrieve) 및 처리, 특히 블록체인 상에서의 이러한 데이터 관련 활동에 관한 것이다. 발명은 웹 사이트 및 웹 페이지에서 제공하는 것과 유사하지만 웹 서버(들)가 아닌 기본 메커니즘 또는 플랫폼으로서 블록체인을 사용하는 방식으로 데이터를 처리하는 데 사용하기에 특히 적합하지만, 이에 제한되지 않는다. 따라서, 발명은 데이터 처리 및 전송을 위한 안전하고 효율적이며 암호화가 적용되는 대체 인프라를 제공한다.
이 문서에서 우리는 모든 형태의 전자, 컴퓨터 기반, 분산 원장을 포함하기 위하여 '블록체인'이라는 용어를 사용한다. 이는 합의 기반(consensus-based) 블록체인 및 트랜잭션 체인 기술, 허가 및 비허가 원장, 공유 원장 및 그 변형을 포함한다. 다른 블록체인 구현이 제안되고 개발되었지만, 블록체인 기술의 가장 널리 알려진 응용은 비트코인 원장이다. 비트코인은 편의 및 예시의 목적으로 본원에서 언급될 수 있지만, 발명은 비트코인 블록체인과 함께 사용하는 것으로 제한되지 않으며, 대안적인 블록체인 구현 및 프로토콜이 본 발명의 범위 내에 속한다는 점에 유의하여야 한다. 용어 "사용자"는 본원에서 사람 또는 프로세서 기반 자원을 지칭할 수 있다. 본원에서 사용되는 바에 따르면 "비트코인"은 비트코인 프로토콜로부터 도출되는 프로토콜의 모든 버전 및 변형을 포함한다.
블록체인은 트랜잭션으로 구성된 블록으로 구성된 컴퓨터 기반 탈중앙화된 분산 시스템으로 구현되는 P2P 전자 원장이다. 각 트랜잭션은 블록체인 시스템 참여자 사이의 디지털 자산 제어 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록에는 이전 블록의 해시가 포함되어 블록이 함께 연결되어 처음부터 블록체인에 기록된 모든 트랜잭션에 대한 영구적이고 변경 불가능한 기록을 생성한다. 트랜잭션에는 그 입력 및 출력에 내장된 스크립트로 알려진 작은 프로그램이 포함되며, 이는 트랜잭션의 출력에 접근할 수 있는 방법과 대상을 지정한다. 비트코인 플랫폼에서, 이러한 스크립트는 스택 기반 스크립트 언어를 사용하여 작성된다.
트랜잭션이 블록체인에 기록되려면, "유효성 검증(validated)"되어야 한다. 네트워크 노드(채굴자)는 각 트랜잭션이 유효한지 확인하기 위한 작업을 수행하며, 유효하지 않은 트랜잭션은 네트워크에서 거부된다. 노드에 설치된 소프트웨어 클라이언트는 잠금 및 잠금 해제 스크립트를 실행하여 사용되지 않은 트랜잭션(UTXO)에 대하여 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 참(TRUE)으로 평가되면, 트랜잭션은 유효하고 트랜잭션이 블록체인에 기록된다. 따라서, 트랜잭션이 블록체인에 기록되려면, i) 트랜잭션을 수신하는 제1 노드에 의해 유효성 검증되어야 하며-트랜잭션이 유효성 검증되면, 노드는 이를 네트워크의 다른 노드에 중계하고, ii) 채굴자가 구축한 새로운 블록에 추가되어야 하며, iii) 채굴, 즉 과거 트랜잭션의 공개 원장에 추가되어야 한다.
블록체인 기술이 암호화폐 구현의 사용에 대해 가장 널리 알려져 있지만, 디지털 기업가들은 새로운 시스템을 구현하기 위하여 비트코인이 기반으로 하는 암호화 보안 시스템과 블록체인에 저장할 수 있는 데이터를 모두 사용하는 방법을 모색하기 시작하였다. 블록체인이 암호화폐 영역에 국한되지 않는 작업과 프로세스에 사용될 수 있다면 매우 유리할 것이다. 이러한 해결책은 블록체인의 이점(예를 들어, 이벤트에 대한 영구 변조 방지 기록, 분산 처리 등)을 이용하면서 그 응용에서 더 다양하게 활용할 수 있다.
이러한 관심 영역 중 하나는 사용자 간의 데이터 저장, 공유, 접근 및 제어를 위해 블록체인을 사용하는 것이다. 오늘날, 이는 일반적으로 검색 엔진을 사용하여 원하는 데이터에 접근하기 위해 사용자가 방문하는 웹 사이트 및 페이지를 호스팅하는 서버를 사용하여, 인터넷을 통해 달성된다.
그러나 일부 전문가는 중앙 집중식 당사자에 의한 대량의 데이터 및 콘텐츠 제어와 같은, 인터넷의 일부 단점을 해결하기 위하여 블록체인을 사용하는 것을 예상하기 시작하였다. 예를 들어 "구글(Google) 이후의 삶: 빅 데이터의 몰락과 블록체인 경제의 부상", George Gilder, 게이트웨이 에디션스, 2018년 7월, ISBN-10: 9781621575764 및 ISBN-13 : 978-1621575764를 참조한다.
따라서, 블록체인의 분산되고, 변경 불가능하며, 영구적인 특성을 활용하여 이러한 데이터가 블록체인에서 저장, 처리, 리트리브(retrieve), 검색(search) 및/또는 공유될 수 있도록 하는 배열을 제공하는 것이 바람직하다. 이러한 개선된 해결책이 이제 고안되었다.
본 개시의 실시예는 블록체인 해결책을 구현하고 그 위에서 또는 그로부터 데이터를 저장, 처리, 검색 및/또는 리트리브하기 위한 적어도 대안적이고 효율적이며 안전한 기술을 제공한다. 실시예는 또한 컴퓨팅 노드 사이에서 데이터를 저장, 처리, 리트리브, 전송, 검색 및/또는 공유하기 위한 적어도 대안적인 블록체인 구현 기술 인프라를 제공한다. 발명이 블록체인 네트워크를 새로운 방식으로 사용하며 개선되고 기술적인 결과를 제공할 수 있으므로, 발명은 개선된 블록체인 구현 네트워크를 제공한다.
실시예는 또한 블록체인 및 블록체인 프로토콜을 포함하는 기술적으로 상이하며 개선된 컴퓨팅 플랫폼을 통해 디지털 자원에 대한 접근을 안전하게 제어하기 위한 해결책을 제공한다.
발명은 첨부된 청구 범위에서 정의된다.
발명에 따르면 컴퓨터 구현 방법이 제공될 수 있다. 방법은 블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 방법일 수 있으며, 방법은:
블록체인의 적어도 하나의 제1 블록체인 트랜잭션을 생성하는 것-상기 제1 데이터가 적어도 하나의 상기 제1 블록체인 트랜잭션에 저장되고 제1 접근 데이터가 없으면 제1 참여자가 접근할 수 없음; 및
상기 블록체인의 제2 블록체인 트랜잭션을 생성하는 것-상기 제2 블록체인 트랜잭션은 제1 참여자가 제1 접근 데이터를 사용할 수 있게 하는 수단을 포함함-을 포함한다.
이는 제2 트랜잭션의 잠금 해제 스크립트 조건이 충족되면 제1 데이터에 접근할 수 있도록 보장함으로써 프로세스의 보안을 강화하는 이점을 제공하여, 두 트랜잭션이 실행되거나 아무 것도 실행되지 않는 구성을 가능하게 한다.
적어도 하나의 상기 제1 블록체인 트랜잭션은 이전 블록체인 트랜잭션의 각 출력인 적어도 하나의 각 입력을 가질 수 있으며, 상기 출력은 암호화 시스템의 각 개인 키를 통해 상환 가능(redeemable)하고, 상기 제1 데이터는 상기 암호화 시스템을 통해 암호화될 수 있다.
이는 트랜잭션의 코드 기반을 줄이는 이점을 제공하여, 필요한 저장 공간의 양을 줄인다.
상기 제1 참여자에 의한 상기 제1 데이터에 대한 접근은 상기 제1 참여자가 적어도 하나의 상기 제1 블록체인 트랜잭션과 관련된 적어도 하나의 제3 블록체인 트랜잭션에 추가 데이터를 저장하도록 할 수 있다.
이는 블록체인의 데이터 저장 공간을 효율적으로 사용할 수 있게 하는 이점을 제공한다.
제2 블록체인 트랜잭션은 암호화폐의 양을 나타내는 제2 데이터를 포함할 수 있다.
제2 블록체인 트랜잭션은 적어도 하나의 토큰을 나타내는 제2 데이터를 포함할 수 있다.
이는 토큰에, 예를 들어 시간 제한(timed) 접근 또는 만료와 같은, 조건을 적용할 수 있는 이점을 제공하여, 방법의 유연성을 증가시킨다.
적어도 하나의 상기 토큰은 일방 함수의 반복 적용을 통해 생성된 복수의 토큰 중 적어도 하나일 수 있다.
예를 들어, 초기 토큰 및 해시 함수와 같은 일방 함수 형태의 생성 알고리즘의 반복 적용으로부터 토큰이 생성될 수 있어, 초기 토큰으로부터 후속 토큰의 생성을 가능하게 한다. 이는 더 적은 데이터 저장 공간이 요구되는 이점을 제공한다.
방법은 제2 블록체인 트랜잭션의 적어도 하나의 출력의 미상환(non-redemption)의 경우 상기 제2 데이터의 적어도 일부를 환불하기 위한 적어도 하나의 제4 블록체인 트랜잭션을 생성하는 것을 더 포함할 수 있다.
이는 제1 블록체인 트랜잭션 미상환의 경우 제2 데이터가 리트리브할 수 없게 되는 것을 방지하는 이점을 제공한다.
적어도 하나의 상기 제4 블록체인 트랜잭션은 소정 기간 이후에만 상환 가능한 적어도 하나의 출력을 가질 수 있다.
적어도 하나의 상기 제4 블록체인 트랜잭션은 소정 수의 블록 이후에만 상환 가능한 적어도 하나의 출력을 가질 수 있다.
적어도 하나의 상기 제1 블록체인 트랜잭션은 상기 제1 참여자가 상기 제1 접근 데이터를 사용할 수 있게 하는 데이터를 포함하는 스크립트를 통해 상환 가능한 적어도 하나의 출력을 가질 수 있다.
스크립트는 일방 함수의 입력이 결정될 수 있게 하는 데이터를 포함할 수 있다.
적어도 하나의 상기 일방 함수는 해시 함수일 수 있다.
스크립트는 제1 참여자에 의하여 공개-개인 키 쌍의 개인 키가 결정될 수 있게 하는 데이터를 포함할 수 있다.
방법은 상기 제1 참여자가 상기 제1 접근 데이터를 사용할 수 있게 하는 데이터가 결정될 수 있도록 상기 제1 참여자와 제2 참여자 사이에서 제1 비밀을 안전하게 공유하는 것을 더 포함할 수 있다.
예를 들어, 공유 비밀은 임시 키 또는 해시 사전 이미지를 마스킹하는 데 사용될 수 있다.
발명은 또한
프로세서; 및
프로세서에 의한 실행의 결과로, 시스템이 본원에 설명된 컴퓨터 구현 방법의 임의의 실시예를 수행하도록 하는 실행 가능한 명령을 포함하는 메모리를 포함하는 시스템을 제공한다.
발명은 또한 컴퓨터 시스템의 프로세서에 의해 실행된 결과, 컴퓨터 시스템이 본원에 설명된 컴퓨터 구현 방법의 실시예를 적어도 수행하도록 하는 실행 가능한 명령을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 제공한다.
본 발명의 이들 및 다른 양상은 본원에 설명된 실시예로부터 명백하며 이를 참조하여 이해될 것이다. 이제 본 발명의 실시예가, 단지 예로서, 첨부된 도면을 참조하여 설명될 것이다.
도 1은 데이터가 복수의 출력에 저장되는 본 발명을 구현하는 블록체인 트랜잭션을 도시한다.
도 2는 데이터가 입력에 저장되는 본 발명을 구현하는 블록체인 트랜잭션을 도시한다.
도 3은 데이터가 복수의 블록체인 트랜잭션의 출력에 저장되는 본 발명을 구현하는 일련의 블록체인 트랜잭션을 도시한다.
도 4는 원자 스왑을 통해 데이터에 접근할 수 있도록 암호화폐 지불을 전송하는 본 발명을 구현하는 블록체인 트랜잭션을 도시한다.
도 5는 도 4의 트랜잭션의 지불을 상환(redeem)하기 위해 본 발명을 구현하는 블록체인 트랜잭션을 도시한다.
도 6은 원자 스왑을 통해 데이터에 접근할 수 있도록 토큰을 발행하기 위해 본 발명을 구현하는 블록체인 트랜잭션에서 참여자가 보관하는 비밀 값을 도시한다.
도 7 및 8은 원자 스왑을 통해 데이터에 접근할 수 있도록 토큰을 발행하기 위해 본 발명을 구현하는 블록체인 트랜잭션을 도시한다.
도 9 및 10은 도 7 및 8의 트랜잭션에 의해 발행된 토큰을 상환(redeem)하기 위해 본 발명을 구현하는 블록체인 트랜잭션을 도시한다.
도 11 및 12는 도 9 및 10의 트랜잭션에 의해 교환된 비밀에 접근하기 위한 블록체인 트랜잭션을 도시한다.
도 13은 본 발명의 일 실시예에 따른 메타넷(Metanet) 그래프 구조의 예시를 제공한다.
도 14는 본 발명의 일 실시예에 따른 MURL 검색 경로를 포함하는 도메인 'bobsblog'에 대한 메타넷 그래프 트리의 예시를 도시한다.
도 15는 발명의 일 예에 따른 브라우저 지갑의 예시적인 실시예에 대한 개략도 및 그 핵심 기능이 애플리케이션의 상이한 구성요소에 걸쳐 분할될 수 있는 방법을 도시한다.
도 16은 발명의 실시예의 인프라 내에서 콘텐츠 검색이 수행될 수 있는 방법을 예시하는 도면을 제공한다.
도 17은 발명의 일 실시예에 따른 로컬 및 글로벌 전체 사본 피어(full copy peer) 간의 예시적인 상호 작용을 도시한다.
도 18은 아래에 설명된 예시적인 사용례를 참조하여 사용하기 위한 메타넷 트리(또는 그래프)를 도시한다.
도 19는 아래에 제공된 예시적인 사용례에 의해 구현된 프로세스를 설명하는 흐름도를 도시한다.
도 20은 다양한 실시예가 구현될 수 있는 컴퓨팅 환경을 나타내는 개략도이다.
용어 "비트코인"은 본원에서 편의를 위해서만 사용되며, 비트코인 프로토콜에서 도출된 모든 변형과 다른 블록체인에 대한 대체 프로토콜을 포함하지만 이에 제한되지 않는 모든 암호화폐/블록체인 프로토콜을 포함하도록 의도된다. 이 문서의 나머지 부분에서, 본 발명의 실시예들의 프로토콜 결정 동작은 "메타넷 프로토콜"로 지칭될 것이다.
용어 "콘텐츠" 및 "데이터"는 본 발명의 실시예에 따라 블록체인 트랜잭션에 저장되는 데이터를 지칭하기 위해 본원에서 상호 교환적으로 사용될 수 있다. 본원에서, "공유"는 노드 또는 사용자에게, 데이터의 일부를 송신, 통신, 전송 또는 접근을 제공하는 것을 포함할 수 있다. 용어 "처리"는 트랜잭션 또는 그 연관된 데이터와 관련된 모든 활동을 의미하는 것으로 해석될 수 있으며, 생성, 전송, 유효성 검증, 접근, 검색, 공유, 블록체인 네트워크로 제출 및/또는 식별을 포함한다.
개요
위에서 언급한 바와 같이, 컴퓨팅 노드 사이에 또는 이에 의해 데이터를 저장, 쓰기, 접근 및 검토하기 위한 개선된 및/또는 대안적인 인프라에 대한 인식된 요구가 있다. 블록체인 기술의 고유한 이점(예를 들어, 불변 기록, 암호화된 제어 및 접근, 내장된 지불 메커니즘, 원장을 공개적으로 검사하는 기능, 분산 아키텍처 등)을 사용하는 것이 유리할 것이다. 그러나, "블록체인 구현 인터넷"의 구축은 여러 기술적 관점에서 도전적이다.
이러한 도전은: 네트워크 내에서 데이터의 특정 부분을 찾는 방법; 승인된 당사자만 접근할 수 있도록 데이터에 대한 접근을 보호하고 제어하는 방법; 피어-투-피어 방식으로 데이터를 한 당사자에서 다른 당사자로 전송하는 방법; 데이터가 논리적으로 연관되지만 네트워크 내의 상이한 위치에 저장될 수 있도록 데이터를 배열하는 방법과 이후에 상이한 위치로부터 데이터를 결합하여 집합적이고 증강된 결과를 제공하는 방법; 계층적 방식으로 데이터를 제공 및/또는 저장하는 방법; 다른 컴퓨팅 플랫폼을 가진 사용자와 당사자가 원하는 데이터에 접근할 수 있도록 허용하는 방법; 대규모 저장 서버 및 중앙 집중식 데이터 제어기에 대한 의존 또는 필요 없이 (잠재적으로 글로벌) 컴퓨팅 네트워크에서 데이터를 저장, 제공 및 공유하는 방법, 및 네트워크에서 이러한 데이터 관련 활동의 효율성을 개선하는 방법을 포함할 수 있지만 이에 제한되지는 않는다
본 발명은 어떤 면에서 인터넷과 유사하지만 종래 기술에 알려진 것과는 완전히 다른 하드웨어 및 소프트웨어 구성요소 플랫폼을 사용하여, 완전히 다른 방법으로 그 결과를 달성하는 방식으로 그러한 개선된 해결책을 제공한다. 본 발명의 실시예에 따르면, 인터넷/웹 데이터를 저장하고 이를 최종 사용자에게 제공하는 서버는 블록체인 네트워크에 상주하는(residing) 블록체인 트랜잭션으로 대체된다. 이를 달성하기 위하여, 몇 가지 혁신을 고안하여야 했다. 이에 대해서는 다음 섹션에서 설명한다.
블록체인 "메타넷" 내로 데이터 삽입 도 1을 참조하면, 본 발명을 구현하는 블록체인 트랜잭션이 도시되며 블록체인에 저장될 제1 데이터가 트랜잭션의 하나 이상의 제1 출력에 저장되고, 제1 데이터의 속성을 나타내는 제2 데이터가 트랜잭션의 하나 이상의 제2 출력에 저장된다. 제1 데이터의 하나 이상의 제1 부분 <Content 1>은 트랜잭션의 지출 가능한 출력에 저장된다. 제1 데이터의 각 속성을 나타내는 데이터 <Attribute 1> 및 <Attribute 2>는, 메타넷 프로토콜에 따라 데이터가 저장되고 있음을 나타내는 플래그와 함께, 트랜잭션의 지출 불가능한 제2 출력에 저장된다. 용어 "지출 불가능(unspendable)"은 트랜잭션의 적어도 하나의 제1 및/또는 제2 출력이 후속 트랜잭션에 대한 입력으로서 후속 사용을 위해 유효하지 않은 것으로 출력을 표시하기 위한 스크립트 명령 코드(OP RETURN)를 포함할 수 있음을 나타내기 위해 사용된다.
데이터의 콘텐츠 및 속성 부분을 트랜잭션의 별도 출력에 별도로 저장하는 것이 유리하다.
도 2는 블록체인에 저장될 제1 데이터 <Content 1>이 트랜잭션 입력에 저장되는 본 발명을 구현한 블록체인 트랜잭션을 도시한다. 메타넷 플래그와 속성 데이터 <Attribute 1> 및 <Attribute 2>는 도 1에 도시한 배열과 유사한 방식으로, 트랜잭션의 지출 불가능한 출력에 저장된다.
데이터 삽입
데이터 삽입 방법
다음의 데이터를 블록체인에 삽입할 수 있어야 한다.
a) 메타넷 플래그
b) 속성
c) 콘텐츠
콘텐츠는 블록체인에 저장되는 데이터이고, 메타넷 플래그는 메타넷 프로토콜과 관련된 모든 데이터의 식별자 역할을 하는 4바이트 접두사이며, 속성은 콘텐츠에 대한 인덱싱, 허가 및 인코딩 정보가 포함된다. 이는 데이터 유형, 암호화 및/또는 압축 체계가 포함될 수 있지만 이에 제한되지 않는다. 이러한 속성은 종종 메타데이터로 또한 지칭된다. 트랜잭션 메타데이터와의 혼동을 피하기 위하여 본 문서에서는 이 용어의 사용을 피할 것이다.
다음의 기술을 사용하여 이 데이터를 비트코인 스크립트에 포함할 수 있다.
1. OP_RETURN - 이 방법에서 모든 데이터(속성 및 콘텐츠)는 증명 가능하게 지출 불가능한 트랜잭션 출력의 잠금 스크립트 내에서 OP_RETURN 뒤에 배치된다.
이 연산자를 사용하는 출력 스크립트의 예는 다음과 같다.
UTXO0: OP_RETURN <Metanet Flag> <attributes> <content>
2. OP_DROP을 갖는 OP_RETURN - 이 경우 OP_RETURN에는 속성이 포함되어 있는 반면, 콘텐츠는 지출 가능한 트랜잭션 스크립트(잠금 또는 잠금 해제) 내에서 OP_DROP 전에 저장된다. 콘텐츠는 트랜잭션 입력 및 출력 내에서 여러 데이터 패킷으로 분할될 수 있다. 그러나, 이는 비트코인 프로토콜로 서명될 수 있는 출력 스크립트일 뿐이므로 트랜잭션 출력에 데이터를 삽입하는 것이 유리하다. 데이터가 트랜잭션 입력에 삽입되면, OP_MOD를 데이터의 체크섬(checksum)으로 사용하여 채굴자 유효성 검증을 대신하여 그 유효성을 확인할 수 있다. 예를 들어, 32비트 OP_MOD 연산을 수행하고 미리 계산된 값과 같은지 확인할 수 있다.
이 경우, 속성에는 콘텐츠 데이터 패킷이 어떻게 재결합되는지에 대한 정보가 포함될 수 있다. 또한, 재결합된 데이터 패킷 H (content1 + content2)의 해시를 속성으로 제공하면 권장 재결합 체계가 사용되었는지 검증할 수 있다.
제2 데이터 삽입 방법을 구현하는 트랜잭션이 도 1에 도시된다. 단순성을 위해 이 트랜잭션은 단일 입력으로 서명된, 출력에 삽입된 콘텐츠만을 포함한다. 추가 입력에 삽입된 콘텐츠는 도 2에 도시된 바와 같이 이 방법을 사용하여 OP_DROP 문을 사용하여 또한 가능할 것이다.
콘텐츠가 매우 크면, 여러 트랜잭션으로 분할하는 것이 유리할 수 있다. 이러한 배열이 도 3에 도시되어 있다. 도 3은 블록체인에 저장될 제1 데이터 <Content>가 두 개의 청크 <Content chunk 1>과 <Content chunk 2>로 분할되며 이후에 <Content> = <Content chunk 1> ∥ <Content chunk 2>로 재결합될 수 있는 본 발명을 구현하는 한 쌍의 블록체인 트랜잭션을 도시하며, 여기에서 연산자 '∥'는 두 개의 콘텐츠 데이터 청크를 연결한다. 이 연결 연산자는 임의의 원하는 비트 단위(bitwise) 또는 유사한 조각 단위(piecewise) 이항 연산자(binary operator)로 대체될 수 있다. 그런 다음 두 청크 <Content chunk 1> 과 <Content chunk 2> 는 별도의 블록체인 트랜잭션의 각각의 지출 가능한 출력에 저장되고, 콘텐츠 데이터의 속성과 관련된 데이터는 블록체인 트랜잭션의 각각의 지출 불가능한 출력에 저장된다. 다시 말하지만, 속성에는 재결합 체계에 대한 정보가 포함될 수 있다. 예를 들어, 콘텐츠는 원시 데이터, 실행 가능한 프로그램 또는 HTML 웹 페이지일 수 있다. 또한 콘텐츠 1은 콘텐츠 2의 블록체인 상의 위치에 대한 포인터를 포함할 수 있으며, 이는 웹 페이지에 포함된 HTML 링크와 동일한 방식으로 작동한다.
두 트랜잭션 모두 동일한 공개 키 P(및 ECDSA 서명)를 입력으로 사용하므로, <Content chunk 1> 및 <Content chunk 2>는 각각 TxID1 및 TxID2로 상이한 트랜잭션에 저장되어 있음에도 불구하고 동일한 공개 키 P로 관련될 수 있음에 유의해야 한다.
채굴자 유효성 검증의 역할 활용
여기에서 이 데이터를 저장할 때 이점을 얻기 위해 채굴자가 수행하는 트랜잭션 유효성 검증 프로세스를 사용한다. 이는 트랜잭션 출력의 모든 데이터가 적어도 하나의 트랜잭션 입력(SIGHASH | ALL 플래그가 있는 경우)에서 공개 키 P의 소유자에 의해 서명될 것이고 이 서명은 모든 채굴자가 수행하는 트랜잭션 검증 프로세스에서 확인될 것이기 때문이다.
이것은 다음을 보장한다.
. 데이터 무결성-데이터가 손상되면 CHECKSIG 연산이 실패한다.
. 데이터 진정성-P의 소유자는 증명 가능하게 데이터를 목격하고 서명하였다.
이는 도 3에 도시된 배열을 참조하여 위에서 설명한 바와 같이, P의 입력 서명이 데이터의 분할된 구성요소 간에 증명 가능한 링크를 제공하므로 여러 트랜잭션으로 분할된 콘텐츠에 특히 유용하다.
라빈(Rabin) 서명
데이터 진정성을 보장하는 다른 방법은 전체 메시지가 아닌 데이터 자체에 서명하는 데 사용할 수 있는 라빈 서명을 사용하는 것이다. 이는 서명자가 데이터가 나타나는 모든 개별 트랜잭션에 서명할 필요가 없으며, 서명을 여러 트랜잭션에서 재사용할 수 있기 때문에 유리할 수 있다.
라빈 서명은 스크립트에서 쉽게 유효성 검증할 수 있다. 이들은 OP_DROP 명령 앞에 라빈 서명 검증을 삽입하여 위의 사례 (2)에 통합될 수 있다.
<content1> <Rabin Sig (content1)> FUNC_CHECKRABSIG OP_DROP <H(
Figure pct00001
)> [CheckSig
Figure pct00002
]
OP_RETURN을 포함하는 스크립트는 결국 실패하고 유효성 검증을 수행할 수 없기 때문에 위의 사례 (1)에서는 이와 같이 할 수 없음을 유의하여야 한다.
라빈 서명 사용의 구체적인 예
소개
디지털 서명은 비트코인 프로토콜의 기본적인 부분이다. 이는 블록체인에 기록된 모든 비트코인 트랜잭션이 전송되는 비트코인의 합법적인 소유자에 의해 승인되었음을 보장한다. 표준 비트코인 P2PKH 트랜잭션에서 트랜잭션 메시지는 타원 곡선 디지털 서명 알고리즘(elliptic curve digital signature algorithm; ECDSA)을 사용하여 서명된다. 그러나 ECDSA 서명은 일반적으로 전체 트랜잭션에 적용된다.
네트워크 외부의 참여자가 네트워크 참여자가 사용할 수 있는 임의의 데이터 유형에 대한 서명을 제공하고자 하는 비트코인 블록체인의 일부 사용 사례가 있다. 라빈 디지털 서명을 사용하면 비트코인 블록체인 외부에서 생성된 데이터가 하나 또는 여러 트랜잭션에 배치되더라도 모든 데이터가 서명될 수 있다.
이제 라빈 암호화 시스템의 대수적 구조를 활용하여 비트코인 스크립트에서 데이터를 직접 서명하고 검증할 수 있는 방법을 보여준다.
라빈 디지털 서명
라빈 디지털 서명 알고리즘
배경 수학
정의-정수 mod p
정수 모듈로(modulo) p 는 아래의 집합으로 정의된다.
Figure pct00003
페르마의 소정리(Fermat's Little Theorem)
p를 소수라고 한다. 임의의 정수 a에 대하여 다음이 적용된다.
Figure pct00004
오일러 기준(Euler's Criterion)
p를 소수라고 한다. r은 다음과 같은 경우 및 그 경우에만 이차 잉여(quadratic residue) mod p이다.
Figure pct00005
모듈러 제곱근(p = 3 mod 4)
p를
Figure pct00006
이 되는 소수라고 한다. 그러면 오일러 기준을 만족하는 임의의 정수 r에 대하여, a가 다음과 같은 정수이면
Figure pct00007
a에 대해 다음 형태의 해가 존재한다.
Figure pct00008
중국인의 나머지 정리
서로소인 양의 정수 n1, n2,…, nk 및 임의의 정수 a1, a2,…, ak 가 주어지면 동시 합동(simultaneous congruences) 시스템
Figure pct00009
은 고유한 해 모듈로
Figure pct00010
을 갖는다. 중국인의 나머지 정리의 특별한 경우로
Figure pct00011
의 경우 및 그 경우에만
Figure pct00012
임을 알 수 있다.
라빈 디지털 서명 알고리즘
라빈 디지털 서명 알고리즘은 다음과 같이 설명될 수 있다:
임의의 메시지 m에 대해 H가 k 출력 비트를 갖는 충돌 방지 해시 알고리즘이라고 한다.
키를 생성하기 위하여, p≡ 3 mod 4, q≡3 mod 4가 되는 각각 비트 길이가 약 k/2인 소수 p와 q를 선택하고 곱 n = p·q를 계산한다. 개인 키는 (p, q)이고 공개 키는 n = p·q이다.
메시지 m에 서명하기 위하여, 서명자는 H (m || U)가 다음을 만족하는 패딩 U를 선택한다.
Figure pct00013
서명 S는 다음 식을 사용하여 계산된다.
Figure pct00014
메시지 m의 서명은 쌍 (S, U)이다. 검증은 주어진 m, U 및 S에 대하여 다음을 확인하여 간단히 이루어질 수 있다.
Figure pct00015
(식 1)
이는 0,…, n-1 범위에 다음과 같은 정수 λ가 존재하는 경우 및 그 경우에만 참이다.
Figure pct00016
(식 2)
인수 λ는 (S, λ, U) 조합을 제공하기 위하여, 서명에 안전하게 포함될 수 있다.
라빈 서명 체계의 이점은 다음과 같다.
a) 서명 생성은 계산적으로 비용이 많이 드는 반면, 서명 검증은 계산적으로 용이하다.
b) 서명의 보안은 정수 분해의 곤란함에만 의존한다. 결과적으로 라빈 서명은 실체적으로 위조 불가이다(RSA와 달리).
c) 해시 함수 값 H (m || U)는 공개 키 n과 비슷한 크기여야 한다.
스크립트의 검증은 주어진 서명을 제곱하고 모듈러 축소를 수행한 다음 결과가 H (m || U)와 같은지 확인하기만 하면 되므로 간단하다.
라빈 서명 증명
p, q가 서로소이고 n = p·q라 한다. 중국인의 나머지 정리에 의하여
Figure pct00017
인 경우 및 그 경우에만
Figure pct00018
로 나타낼 수 있다.
Figure pct00019
를 사용하여
Figure pct00020
로 나타낼 수 있다.
따라서
Figure pct00021
H (m || U)가 오일러 기준을 만족한다고 가정하였다. 유사한 계산을 통해 또한 다음을 알 수 있다.
Figure pct00022
비트코인 내의 라빈 서명
스크립트 내의 서명 검증
라빈 서명을 검증하기 위하여 약간의 산술 및 스택 조작 명령 코드가 필요하다. 다음의 형식의 상환 스크립트(redeem script)를 고려한다.
OP_DUP OP_HASH160 <
Figure pct00023
> OP_EQUALVERIFY OP_MUL OP_SWAP OP_2 OP_ROLL OP_CAT FUNC_HASH3072 OP_ADD OP_SWAP OP_DUP OP_MUL OP_EQUAL
여기에서 n은 서명자의 공개 키이다. 이는 다음의 입력과 함께 제공된 경우 및 그 경우에만 참(TRUE)으로 평가될 것이다.
Figure pct00024
여기에서 m은 임의의 메시지이고, (S, λ, U)는 유효한 라빈 서명이다. 대안적으로, 위의 식 1을 사용하여 라빈 서명을 확인하면 상환 스크립트가 다음과 같이 주어진다.
OP_DUP OP_HASH160 <
Figure pct00025
> OP_DUP OP_TOALTSTACK OP_SWAP <roll index> OP_ROLL OP_CAT FUNC_HASH3072 OP_SWAP OP_MOD OP_SWAP OP_DUP OP_MUL OP_FROMALTSTACK OP_MOD OP_EQUAL
이 경우 스크립트는 다음의 입력과 함께 제공된 경우 및 그 경우에만 참(TRUE)으로 평가될 것이다.
Figure pct00026
두 상환 스크립트 모두에서, 사용은 3072비트 해시 프로젝션 함수 'FUNC_HASH3072'를 구성되었다. 주어진 메시지/패딩 연결에 대하여 FUNC_HASH3072 해시 프로젝션이 스크립트를 사용하여 생성된다.
OP_SHA256 {OP_2 OP_SPLIT OP_SWAP OP_SHA256 OP_SWAP} (x11)
OP_SHA256 OP_SWAP OP_SHA256 {OP_CAT}(x11)
데이터 압축
인터넷 데이터는 자바스크립트(JavaScript) 및 텍스트 파일(SML, HTML 등), 비디오 파일(MPEG, M-JPEG 등), 이미지 파일(GIF, JPEG 등) 및 오디오 파일(AU, WAV)과 같은 일반적인 파일 유형으로 구성되며, 예를 들어 https://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol1/mmp/#text에 더 자세히 설명되어 있다. 위의 데이터 삽입 기술을 사용하여, 이러한 상이한 데이터 유형을 또한 블록체인에 삽입할 수 있다.
더 큰 파일 크기는 블록체인에 삽입하기 전에 기존의 여러 코딩 체계 중 하나를 사용하여 압축할 수 있다. 런-렝스(Run-length) 및 허프만(Huffman) 인코딩과 같은 무손실 데이터 압축 알고리즘은 ZIP 파일, 실행 가능 프로그램, 텍스트 문서 및 소스 코드를 포함한 여러 애플리케이션에서 사용할 수 있다.
특정 입력 데이터에 따라 많은 상이한 알고리즘이 존재한다. 애플 무손실(Apple Lossless) 및 적응 제어 변형 음향 부호화(Adaptive Transform Acoustic Coding)는 그래픽 파일 압축을 위해 오디오 파일, PNG 및 TIFF를 압축하는 데 사용할 수 있으며, 동영상 파일은 많은 무손실 비디오 코덱 중 하나를 사용하여 압축할 수 있다. 데이터 콘텐츠의 임의의 압축은 속성 내의 플래그를 사용하여 표시할 수 있다. 예를 들어, 속성 내의 LZW 무손실 코딩 체계에 대한 플래그는 <LZW>이다.
암호화 및 지불한 해독
데이터 암호화
콘텐츠 소유자는 콘텐츠를 블록체인에 삽입하기 전에 콘텐츠를 보호하기로 선택할 수 있다. 이는 필요한 허가를 얻지 않고는 콘텐츠를 볼 수 없도록 보장한다.
데이터(일반 텍스트 또는 기타 데이터 유형) 암호화에 대해 많은 잘 확립된 기술이 있다. 이들은 비대칭 암호화 또는 대칭 암호화로 분류할 수 있다.
타원 곡선 암호화(Elliptic Curve Cryptography; ECC)는 공개-개인 키 쌍에 의존하므로 비대칭이다. 이는 가장 안전한 암호화 시스템 중 하나이며 일반적으로 비트코인과 같은 암호화폐에 사용된다. ECC 암호화에 대해 데이터를 암호화하기 위하여 코블리츠(Koblitz) 알고리즘을 사용할 수 있다.
대칭 체계에서는 단일 키를 사용하여 데이터를 암호화하고 해독한다. 고급 암호화 표준(Advanced Encryption Standard; AES) 알고리즘은 이러한 비밀에 의해 시드(seed)되는 가장 안전한 대칭 알고리즘 중 하나로 간주되며, 예를 들어 C. Paar 및 J. Pelzl, "암호화의 이해" 제4장, Springer-Verlag Berlin Heidelberg 제2판, 2010, pp. 87-118에 더 자세히 설명된다.
블록체인에 저장된 데이터를 암호화할 때 기본 블록체인과 동일한 암호화 시스템을 사용하면 이점이 있다. 비트코인에서 이것은 비대칭 암호화의 ECC 키 쌍에 대한 secp256k1 규칙과 대칭 암호화의 SHA-256 해시 함수이다. 이점은 다음과 같다.
-암호화의 보안 수준은 데이터가 저장된 기본 시스템과 동일하다.
-암호화된 데이터를 저장하는 데 필요한 소프트웨어 아키텍처는 더 작은 코드베이스를 가질 것이다.
-지갑의 키 관리는 트랜잭션 및 암호화/해독 모두에 사용할 수 있다.
-동일한 키를 암호화 및 암호화폐 지불에 모두 사용할 수 있어, 더 적은 수의 키가 필요하므로 더 효율적이다. 이는 또한 저장 공간을 줄인다.
-데이터 해독 기능을 교환/구매하는 데 필요한 통신 채널이 더 적을 수 있다.
-암호화 및 트랜잭션에 사용되는 키가 동일한 데이터 구조이므로 보안이 강화되어 특정 키 유형에 대한 표적 공격이 완화된다.
-키는 기본 암호화폐를 사용하여 구매할 수 있다.
예시를 목적으로, ECC를 사용하여 데이터를 암호화하기 위하여 코블리츠 알고리즘이 사용되는 방법을 설명한다.
코블리츠 알고리즘
ECC 키 쌍 P1 = S1 · G가 주어지면 코블리츠 알고리즘은 대응하는 개인 키 S1을 아는 사람만 메시지를 해독할 수 있도록 공개 키 P1을 사용하여 누구나 메시지를 암호화할 수 있게 한다.
코블리츠 방법을 사용하여 일반 텍스트 메시지 'hello world'를 암호화하고자 한다고 가정한다. 이는 문자 단위로 수행된다. 첫 번째 문자 'h'는 다음과 같이 암호화되고 해독된다.
1. 문자 'h'는 secp256k1 곡선의 점에 매핑된다. 이는 ASCII 규칙을 사용하여 일반 텍스트 문자를 8비트 숫자로 매핑하여 달성된다. 그런 다음 기준점 G에 이 숫자를 곱하여 곡선의 한 점을 계산한다. 이 예에서 'h'는 ASCII에서 104에 매핑되고 타원 곡선 점은 Pm = 104 · G로 주어진다.
2. 그런 다음 점 Pm 은 공개 키 P1을 사용하여 암호화된다. 이는 임의의 임시 키(ephmeral key) k0을 선택하고 점 쌍 Cm = {k0· G, Q}를 계산하여 달성되며 여기에서
Figure pct00027
이고, 그런 다음 브로드캐스트될(broadcast) 수 있다.
3. 개인 키 S1의 소유자는
Figure pct00028
를 계산하여 원래 점을 해독할 수 있다. 그런 다음 시행 착오(trial-and-error)를 거치거나 조회 테이블(look up table)을 통해 원래 ASCII 번호를 복구하여 어떤 수 x가 Pm = x · G에 해당하는지 확인할 수 있다.
블록체인을 사용하여 허가 구매
블록체인에 데이터를 저장하는 것은 지불 메커니즘이 시스템에 구축되어 있다는 분명한 이점이 있다. 지불은 다음의 구매에 사용할 수 있다.
-조회/사용을 위하여 데이터 해독
-특정 주소에 데이터를 삽입할 수 있는 허가
두 경우 모두 구매자는 비트코인과 같은 암호화폐를 사용하여 무언가를 할 수 있는 허가를 부여하는 비밀을 구매한다. 이 비밀은 해시 사전 이미지(preimage) 또는 개인 키일 수 있다.
이러한 구매를 하는 효율적이고 안전한 방법은 원자 스왑(atomic swap)을 사용하는 것이다. 이는 보안 통신 채널을 최소한으로 유지하고 판매자가 지불을 받고 비밀이 구매자에게 노출되거나, 둘 중 어떤 사건도 발생하지 않도록 보장한다.
암호화폐 지불 외에도, 접근 토큰을 사용하여 허가를 구입하는 것도 편리할 수 있다. 이는 구매자가 구매에 사용할 수 있도록 소유하는 비밀 값(일반적으로 해시 사전 이미지)이다. 이러한 토큰은 구매자가 미리 대량으로 구매한 다음, 실제로 허가를 사용하려는 시간에 활성화될 수 있다.
이제 원자 스왑이 실행되는 방법을 도 4 및 5를 참조하여 설명한다.
해시 퍼즐 또는 개인 키 퍼즐을 사용하는 원자 스왑
앨리스가 비밀의 소유자라고 가정한다. 이 비밀은 알려진 해시 다이제스트(digest)의 해시 사전 이미지이거나, 알려진 공개 키의 개인 키일 수 있다. 밥이 비트코인을 사용하여 앨리스로부터 이 비밀을 사고자 한다고 가정한다. 이 트랜잭션을 발생시킬 수 있는 원자 스왑이라고 하는 메커니즘이 설명되어 있다. 앨리스가 비트코인을 지불받고 비밀이 밥에게 노출되거나, 두 사건 중 어느 것도 발생하지 않는다는 점에서 이는 원자적이다.
방법은 다음과 같다.
앨리스는 공개/개인 키 쌍 PA = SA · G의 개인 키 SA를 소유하고 밥은 공개/개인 키 쌍 PB = SB · G의 개인 키 SB를 소유한다.
앨리스는 알려진 해시 다이제스트 H(X)의 사전 이미지 X 또는 알려진 공개 키 P1 = S1 · G의 개인 키 S1인 비밀을 소유한다.
그들은 앨리스가 밥에게 비밀을 팔 수 있도록 비트코인 가격에 합의한다.
이렇게 하기 전에, 밥은 앨리스가 디지털 서명의 구성요소인 r0을 계산할 수 있도록 앨리스에게 임시 키 k0을 블록 외부로 전송하는 트랜잭션을 설정해야 한다.
이제 도 4를 참조하면,
1. 밥은 다음의 상환 스크립트로 잠금된 비트코인을 앨리스에게 전송한다.
R (개략적으로 작성):
해시 사전 이미지에 대하여:
Figure pct00029
= [Hash Puzzle
Figure pct00030
] [CheckSig
Figure pct00031
]
이렇게 하면 상환 스크립트의 입력에서 사전 이미지 X가 노출된다.
개인 키에 대하여:
Figure pct00032
= [Private Key Puzzle
Figure pct00033
,
Figure pct00034
] [CheckSig
Figure pct00035
]
이렇게 하면 상환 스크립트에 대한 입력으로부터 개인 키 S1을 계산할 수 있다. 이 경우 밥과 앨리스는 r0을 구성하는 데 사용되는 임시 키 k0에 합의해야 하며, 여기에서 (r0, Ry) = k0 · G이다.
2. 앨리스는 자신의 비밀(X 또는 S1)을 알고 있으므로 도 5에 도시된 트랜잭션을 통해 비트코인 블록체인에 자금을 지출할 수 있다. 이는 밥이 앨리스의 비밀을 결정할 수 있게 한다.
선택적 보안 기능으로, 앨리스와 밥은 공개 키 PA, PB를 사용하여 양 당사자에게만 알려진 공유 비밀 S를 설정할 수 있다. 이는 국제 특허 공보 WO 2017/145016에 설명된 방식으로 달성될 수 있다. 이 경우 X가 블록체인에 공개적으로 노출되지 않도록 해시 퍼즐의 사전 이미지 X에 S를 추가할 수 있다. 유사하게, 개인 키 퍼즐에서 S는 앨리스 또는 밥만이 개인 키를 계산할 수 있도록 보장하기 위하여 임시 키 k0로 사용될 수 있다.
앨리스가 자금을 지출하지 않기로 결정한 경우, 밥의 자금이 앨리스에 의해 잠기는 것을 방지하기 위하여 절차에 시간 잠금(time-locked) 환불을 도입할 수 있다.
토큰을 사용한 구매
위에서 설명한 것과 동일한 상황이 존재하지만, 그 사용 시점에서 앨리스의 비밀을 암호화폐로 지불하는 대신 밥은 자신이 미리 구입한 접근 토큰을 비밀과 교환하기 위하여 상환하고자 한다고 가정한다.
앨리스와 밥이 따라야 하는 절차는 이전 섹션에서 설명한 경우와 유사하지만, 대신 일련의 유사한 원자 스왑을 사용한다. 프로세스에는 토큰 발행 및 토큰 상환의 두 단계가 있다.
단계 1: 토큰 발행
토큰 발행 단계는 실제적으로 밥이 토큰을 한 번 구매하는 것이다. 예를 들어, 앨리스가 10개의 구분되는 비밀 X1, X2,…, X10을 갖고 밥이 각 비밀에 대하여 접근을 각각 허락하는 10개의 토큰 T1, T2,…, T10에 대해 단일 구매를 원하는 시나리오를 고려할 것이다.
먼저 밥은 자신에게만 알려진 비밀 시드 값 Y에서 10개의 토큰 집합을 생성한다. 이러한 토큰은 시드를 순차적으로 해시하여 해시 체인을 형성하여 생성되며, 각 토큰은 다음과 같이 계산된다.
Figure pct00036
앨리스와 밥은 이제 각각 10개의 비밀 값을 갖게 되며, 이는 예를 들어, 토큰 상환을 위하여 해시 퍼즐에서 노출될 수 있다. 그러나 이러한 토큰을 발행하려면, 각각 비밀 초기화 값 IAlice 및 IBob을 또한 생성하여야 한다. 이는 다음과 같이 주어진다.
Figure pct00037
Figure pct00038
앨리스의 초기화 값(initialiser)은 단순히 특별한 의미가 없는 임의의 정수이지만 밥의 초기화 값은 그의 제1 토큰 T1 = H9(Y)의 해시이어야 한다는 점을 유의하여야 한다. 이러한 방식으로 토큰 체인을 초기화 값으로 확장하면 토큰 발행에서 연속적인 상환을 위해 나중에 사용할 토큰을 또한 정의할 수 있다. 각 참여자가 보관하는 전체 비밀 값은 도 6에 도시된다.
이제 앨리스와 밥은 토큰 10개의 구매에 대하여 10 암호화폐 단위의 가격으로 합의할 수 있다. 이러한 토큰의 구매는 여러 방법으로 발생할 수 있으며, 여기에서는 원자 스왑을 사용하여 설명한다. 원자 스왑은 앨리스와 밥이 각각 도 7 및 8에 도시된 트랜잭션을 브로드캐스트함에 의해 개시되며, 두 출력 모두 두 개의 해시 퍼즐과 유효한 서명에 대한 해를 요구한다.
두 트랜잭션이 모두 블록체인에 나타나면 앨리스와 밥은 자신들의 공유 초기화 값 IAlice 및 IBob을 공유하고 토큰 발행을 위한 원자 스왑을 완료할 수 있다.
이 원자 스왑의 결과 앨리스는 10개의 토큰 구매에 대한 지불을 받고 두 초기화 값의 비밀이 모두 노출된다. 여기에서는 밥의 비밀 IBob = H10(Y)이 그 해가 초기화 값 H10(Y)의 사전 이미지 H9(Y)인 풀어야 할 제1 해시 퍼즐 [Hash Puzzle (T1)]을 정의하기 때문에 그것만이 의미가 있다는 점을 유의하여야 한다.
단계 2: 토큰 상환
미래의 어느 시점에서 밥은 그의 제1 토큰 T1 = H9 (Y)을 상환하고 제1 비밀 X1을 받기를 원하지만, 유효한 토큰을 구매함으로써 이미 이 비밀에 대해 지불한 것을 상기한다. 토큰을 상환하는 과정은 다른 원자 스왑의 형태를 취할 것이며, 잠금 해시 퍼즐에 대한 해는 토큰 Ti와 대응하는 비밀 Xi이다.
토큰을 상환하려면, 밥은 도 9에 도시된 트랜잭션을 브로드캐스트하여야 하며, 그 출력은 두 개의 해시 퍼즐로 잠겨 있다. 앨리스가 이 트랜잭션을 볼 때 앨리스는 도 10에 도시된 바와 같이, 동일한 두 개의 해시 퍼즐로 출력이 잠겨있는 자신의 유사한 트랜잭션을 브로드캐스트한다. 두 참여자는 이제 비밀 T1 및 X1을 교환하고 이러한 트랜잭션에 대한 출력을 잠금 해제할 수 있다. 이제 양 당사자는 두 비밀을 또한 모두 노출하는 올바른 잠금 해제 스크립트를 제공하여 명목 수수료 x를 상환할 수 있다. 이러한 잠금 해제 스크립트를 사용한 트랜잭션은 도 11 및 12에 도시된다.
토큰 상환을 위한 이 원자 스왑이 완료되면 앨리스의 제1 비밀 X1이 밥에게 노출되고 밥의 제1 토큰 T1이 앨리스에게 노출되며, x의 양이 양 당사자가 잠긴 출력을 소비하도록 장려하기에 적합하게 크면, 암호화폐 자금을 넷-제로(net-zero) 교환할 수 있다. 결정적으로, 이는 또한 밥이 사용할 수 있는 다음 토큰이 해시 퍼즐 [Hash Puzzle H(T2)]에 대한 해 T2가 되어야 함을 설정하며, 여기에서 대상 해시 H(T2) = T1이 방금 앨리스에게 노출되었다. 이 프로세스는 밥이 그의 최종 토큰 T10= Y를 사용할 때까지 재귀적으로 반복될 수 있다.
명명 및 주소 지정
노드 및 에지(edge) 구조
위에서 데이터를 트랜잭션 내에서 제공하여 블록체인에 삽입할 수 있는 방법에 대하여 설명하였다. 이제 노드, 허가 및 콘텐츠 버전 제어의 주소 지정을 허용하는 논리적 방식으로 이러한 트랜잭션을 구조화하기 위한 프로토콜을 제시한다. 이 분산된 피어 메타넷의 구조는 기존 인터넷과 유사하다.
이는 기본 블록체인의 프로토콜 또는 합의 규칙을 수정하지 않는 "계층 2(tier-2)" 프로토콜이라는 점에 유의하여야 한다.
여기에 설명된 구조의 목적은
(i) 데이터에 대한 검색, 식별 및 접근을 가능하게 하도록 상이한 트랜잭션 내에 관련된 콘텐츠를 연관시키고
(ii) 사람이 읽을 수 있는 키워드 검색을 사용하여 콘텐츠 식별을 허용하여 검색 속도, 정확성 및 효율성을 개선하고
(iii) 블록체인 내에서 서버와 같은 구조를 구축하고 에뮬레이션하는 것이다.
우리의 접근법은 메타넷과 연관된 데이터를 방향성 그래프로 구조화하는 것이다. 이 그래프의 노드와 에지는 다음에 대응한다.
노드-메타넷 프로토콜과 연관된 트랜잭션. 노드는 콘텐츠를 저장한다. (용어 "콘텐츠"와 "데이터"는 이 문서에서 상호교환적으로 사용할 수 있다)
노드는 바로 뒤에 <Metanet Flag>가 오는 OP_RETURN을 포함하여 생성된다. 각 노드에는 공개 키 Pnode가 할당된다. 공개 키와 트랜잭션 ID의 조합은 노드의 인덱스
Figure pct00039
를 고유하게 지정한다.
사용되는 해시 함수는 발명이 사용되는 기본 블록체인 프로토콜, 예를 들어 비트코인에 대해 SHA-256 또는 RIPEMD-160과 일치하여야 한다.
에지-자식 노드와 부모 노드의 연관.
메타넷 트랜잭션의 입력에 서명 Sig Pparent가 나타날 때 에지가 생성되므로, 부모만이 에지를 생성하는 허가를 줄 수 있다. 모든 노드는 최대 하나의 부모를 가질 수 있으며, 부모 노드는 임의의 수의 자식을 가질 수 있다. 그래프 이론의 언어에서 각 노드의 입력차수(indegree)는 최대 1이고, 각 노드의 출력차수(outdegree)는 임의적이다.
에지는 메타넷 프로토콜의 한 양상이며 그 자체가 기본 블록체인과 연관된 트랜잭션이 아니라는 점에 유의하여야 한다.
유효한 메타넷 노드(부모 포함)는 다음 형식의 트랜잭션에 의해 제공된다.
Figure pct00040
이 트랜잭션은 노드 및 그 부모의 인덱스를 지정하는 데 필요한 모든 정보를 포함한다.
Figure pct00041
,
Figure pct00042
.
또한, 부모 노드의 서명이 필요하므로, 부모만이 자식에 대한 에지를 생성할 수 있다. <TxIDparent> 필드가 없거나, 유효한 메타넷 트랜잭션을 가리키지 않는 경우, 노드는 고아(orphan)이다. 도달할 수 있는 상위 수준 노드가 없다.
각 노드에 추가적인 속성이 추가될 수 있다. 여기에는 플래그, 이름 및 키워드가 포함될 수 있다. 이들은 이 문서에서 나중에 논의된다.
나타난 것처럼, 노드(트랜잭션)의 인덱스는 다음과 같이 나눌 수 있다.
a) 노드의 주소로 해석되는 공개 키 Pnode
b) 노드의 버전으로 해석되는 트랜잭션 ID TxIDnode
이 구조화에서 두 가지 유리한 특징이 발생한다.
1. 버전 제어-동일한 공개 키를 가진 두 개의 노드가 있는 경우, 작업 증명이 가장 큰 트랜잭션 ID가 있는 노드를 해당 노드의 최신 버전으로 해석한다. 노드가 상이한 블록에 있으면, 이는 블록 높이로 확인할 수 있다. 동일한 블록에 있는 트랜잭션의 경우, 이는 토폴로지 트랜잭션 순서 규칙(Topological Transaction Ordering Rule; TTOR)에 의해 결정된다.
2. 허가-노드의 자식은 공개 키 Pnode 의 소유자가 자식 노드 생성에서 트랜잭션 입력에 서명하는 경우에만 생성될 수 있다. 따라서 Pnode 는 노드의 주소뿐만 아니라 자식 노드를 생성할 수 있는 허가도 나타낸다. 이는 의도적으로 표준 비트코인 트랜잭션과 유사하다-주소뿐만 아니라 해당 주소와 연관된 허가의 공개 키.
부모 노드의 서명은 UXTO 잠금 해제 스크립트에 나타나기 때문에 트랜잭션이 네트워크에 수락되는 시점에서 표준 채굴자 유효성 검증 프로세스를 통해 유효성 검증됨을 유의한다. 이는 자식 노드를 생성할 수 있는 허가가 비트코인 네트워크 자체에 의해 유효성 검증된다는 것을 의미한다.
표준 인터넷 프로토콜(Internet Protocol; IP) 주소는 특정 시점의 네트워크 내에서만 고유하다는 점은 주목할 가치가 있다. 반면, 메타넷의 노드 인덱스는 항상 고유하며 별도의 네트워크 개념이 없으므로, 데이터가 단일 객체 IDnode에 영구적으로 고정될(anchored) 수 있다.
노드 및 에지 구조는, 도 13에 도시된 바와 같이, 메타넷을 그래프로 시각화할 수 있게 한다.
메타넷 내의 도메인, 명명 및 콘텐츠 찾기
메타넷 그래프의 계층 구조는 도메인과 유사한 풍부한 구조가 나타날 수 있게 한다. 고아 노드는 최상위 도메인(top-level domain; TLD)으로, 고아 노드의 자식은 하위 도메인으로, 손자는 하위 하위 도메인으로, 자식 없는 노드는 끝점으로 해석한다. 도 13 참조.
도메인 이름은 IDnode로 해석된다. 메타넷의 각 최상위 도메인은 루트가 고아 노드이고 리프가 자식이 없는 노드인 트리로 생각할 수 있다. 메타넷 자체는 그래프를 형성하는 글로벌 트리 모음이다.
메타넷 프로토콜은 모든 노드에 콘텐츠 데이터가 포함되어 있다고 규정하지 않지만, 리프(자식 없는) 노드는 데이터 트리에서 유향 경로의 끝을 나타내므로, 일반적으로 콘텐츠 데이터를 저장하는 데 사용될 것이다. 그러나, 콘텐츠는 트리의 임의의 노드에 저장될 수 있다. 노드에 속성으로 포함된 프로토콜별 플래그를 사용하여, 데이터 트리(디스크 공간, 폴더, 파일 또는 허가 변경)에서 노드의 역할을 지정할 수 있다.
인터넷은 도메인 네임 시스템(Domain Name System; DNS)을 사용하여 사람이 읽을 수 있는 이름을 인터넷 프로토콜(IP) 주소에 연관시킨다는 점을 상기한다. DNS는 실제로는 정부 및 대기업과 같은 소수의 핵심 플레이어가 제어하지만, 어떤 의미에서는 탈중앙화되어 있다. DNS 제공자에 따라 동일한 이름이 다른 주소로 이동하게 할 수 있다. 이 문제는 사람이 읽을 수 있는 짧은 이름을 컴퓨터 생성된 숫자에 매핑할 때 발생한다.
사람이 읽을 수 있는 최상위 도메인 이름을 루트 노드의 탈중앙화된 인덱스 IDroot에 매핑하는 동등한 분산 시스템이 존재한다고 가정한다. 즉, 사람이 읽을 수 있는 이름을 메타넷 루트 노드 인덱스에 매핑하는 1-1 함수 κ가 있다. 예를 들어,
Figure pct00043
.
왼쪽의 입력은 사람이 읽을 수 있는 단어인 반면, 오른쪽의 출력은 일반적으로 256비트 데이터 구조인 해시 다이제스트이다. Pbobsblog 및 TxIDbobsblog 또한 일반적으로 사람이 읽을 수 없음을 유의한다. 표준 IP 프로토콜에서 이는 www.bobsblog.com으로부터 네트워크 내의 대응하는 도메인의 IP 주소로의 맵이다.
맵 κ는 DNS 발행 도메인 이름의 인간 가독성을 복제할 때 메타넷과 인터넷의 역호환성(backwards-compatibility)을 보장하는 수단으로 해석되어야 하지만, 메타넷의 구조를 제공하는 명명 및 주소 지정 체계는 명시적으로 이 맵에 종속되지 않는다.
매핑 함수 κ의 가능한 기존 형식은 IPFS(Interplanetary File System) 또는 OpenNIC 서비스(https://www.openic.org)에서 사용하는 DNSLink 시스템을 포함한다. 이 매핑은 DNS의 일부로 기존 TXT 레코드에 저장될 수 있다. 이는 IPFS의 DNSLink와 유사하다-https://docs.ipfs.io/guides/concepts/dnslink/ 참조. 그러나, 일반적으로 이들은 1-1 맵을 제공하기 위해 탈중앙화의 일부 요소를 희생한다- https://hackernoon.com/ten-terrible-attempts-to-make-the-inter-planetary-file-system-human-friendly-e4e95df0c6fa 참조
꾸밈 주소(Vanity address)
메타넷 노드의 주소로 사용되는 공개 키는 사람이 읽을 수 있는 객체가 아니다. 이는 인간 사용자에게 검색, 참조 및 입력 활동에서 오류가 발생하기 쉽고 느려지게 할 수 있다. 그러나, 사용자가 직접 해석할 수 있는 일반 텍스트 접두사를 포함하는 사람이 인식할 수 있는 공개 키 주소-꾸밈 주소 Pvanity-를 생성할 수 있다. 꾸밈 주소는 종래 기술에 알려져 있다.
이러한 주소를 생성하는 점에서의 어려움은 원하는 접두사의 문자 길이에 의존한다. 이는 사람이 인식할 수 있는 꾸밈 주소가 중앙의 문제가 아닌 소유자가 생성하고자 하는 노력에만 의존하는 노드 주소로 사용될 수 있음을 의미한다. 주어진 접두사에 대해, 접미사에 남아있는 문자로 인해 많은 고유한 꾸밈 주소가 존재하므로, 많은 노드 주소가 고유성을 유지하면서 공통 접두사를 공유할 수 있다.
바람직한 접두사가 있는 꾸밈 주소의 예는 다음과 같다.
Figure pct00044
: bobsblogHtKNngkdXEeobR76b53LETtpyT
접두사: bobsblog
접미사: HtKNngkdXEeobR76b53LETtpyT
위의 꾸밈 주소는 'bobsblog'라는 이름에서 노드 인덱스 IDbobsblog로의 맵을 확인하고 주소로 메타넷 노드의 검색 가능성을 지원하는 데 사용할 수 있다. 여기서 접두사는 고유하지 않지만 전체 주소 자체는 고유한 개체임을 유의한다.
IDnode를 함께 형성하는 선택한 주소 Pvanity와 TxID의 조합은 도메인 이름의 중앙 발급자가 없으며(TxID는 탈중앙화된 작업 증명에 의해 생성됨) 이름이 블록체인 자체에 의해 복구될 수 있음을 의미하므로 또한 유리하다. 유리하게는, 인터넷 DNS 내에 더 이상 오류 지점이 존재하지 않는다.
메타넷 도메인은 이미 허가 시스템(공개 키)을 제공하므로 소유권을 증명하기 위해 인증서를 발급할 필요가 없다. 이 목적을 위한 블록체인의 사용은 이미 예를 들어 namecoin (https://namecoin.org/)에서 연구되었다. 그러나, 본 발명에 따르면, 모든 것이 하나의 블록체인 내에서 이루어지므로 이 기능을 위해 별도의 블록체인을 사용할 필요가 없다.
이는 종래 기술과 비교하여 발명에 의해 요구되는 자원(하드웨어, 처리 자원 및 에너지)의 양을 상당히 감소시킨다. 또한 시스템 구성요소의 장치 및 배열 측면에서 완전히 상이한 아키텍처를 제공한다.
이 명명 시스템의 이점은 사용자가 해시 다이제스트가 아닌 기억에 남는 단어(예를 들어 회사 이름)로 메타넷에서 최상위 도메인을 식별할 수 있다는 것이다. 이는 또한 해시 다이제스트보다 키워드를 검색하는 것이 더 빠르기 때문에 도메인에 대한 검색을 더욱 빠르게 한다. 또한 입력 오류를 줄여, 블록체인에 저장된 데이터에 대한 개선된 검색 도구를 제공한다.
도메인 이름에서 노드 인덱스로의 맵이 있는 경우 인터넷의 통합 자원 식별자(Uniform Resource Locator; URL)와 유사한 자원 식별자를 구축할 수 있다. 이를 메타넷 URL(MURL)이라고 부르기로 하며, 다음과 같은 형식을 취한다.
Figure pct00045
.
URL의 각 구성요소-프로토콜, 도메인 이름, 경로 및 파일-는 MURL의 구조에 매핑되어, 객체를 사용자에게 더 직관적으로 만들고 기존 인터넷 구조와 통합할 수 있게 한다.
이는 각 노드에 도메인 트리 내 수준에서 고유한 공개 키(주소)와 연관된 이름이 있다고 가정한다. 이 이름은 항상 주어진 노드에 대한 MURL의 맨 오른쪽 구성요소이다. 트리에서 동일한 수준에 있는 두 노드의 이름이 동일한 경우 동일한 공개 키를 가지므로 최신 버전을 사용한다.
다음 표는 메타넷 프로토콜과 인터넷 프로토콜 간의 유사점을 제공한다.
Figure pct00046
표: 인터넷과 메타넷 프로토콜 간의 유사점 요약
메타넷 검색
각 노드가 고유한 인덱스를 갖고 그에 속하는 이름을 가질 수 있도록 메타넷 그래프 구조의 예시적인 실시예를 정의하였다. 이는 MURL을 사용하여 콘텐츠를 찾을 수 있게 해준다. 또한 빠른 검색 기능을 사용하기 위하여, 노드에 속하는 추가 키워드를 허용한다.
노드의 고정 속성은 인덱스와 부모 노드의 인덱스이고, 선택적 속성은 이름과 키워드이다.
노드 속성
{
인덱스:
Figure pct00047
;
부모 인덱스:
Figure pct00048
(고아이면 NULL)
이름: 'bobsblog';
kwd1: 'travel';
kwd2: 'barbados';
Figure pct00049
}
일 예에서, 메타넷을 검색하는 실용적인 방법은 먼저 블록 탐색기를 사용하여 블록체인을 탐색하고 메타넷 플래그로 모든 트랜잭션을 식별하고, 유효한 메타넷 노드인지 확인한 다음, 맞으면 데이터베이스 또는 다른 저장 자원에 해당 인덱스와 키워드를 기록하는 것일 수 있다. 그런 다음 이 데이터베이스는 원하는 키워드로 노드를 효율적으로 검색하는 데 사용할 수 있다. 원하는 키워드가 있는 노드(들)의 인덱스가 발견되면 블록 탐색기에서 그 콘텐츠를 리트리브하여 볼 수 있다.
예로서, 도 14의 P1 분기를 고려하며, 여기에서 공개 키 P0, P1 및 P1,1에 대응하는 노드는 각각 홈 페이지, 주제 페이지 및 하위 주제 페이지를 나타낸다. 이러한 노드에는 'bobsblog', 'summer' 및 'caribbean'이라는 이름이 부여되며 그 속성은 아래에 표시된다.
홈 페이지 노드 P0
MURL: mnp://bobsblog
{
인덱스:
Figure pct00050
;
부모 인덱스:
Figure pct00051
이름: 'bobsblog';
kwd1: 'travel';
kwd2: 'barbados';
Figure pct00052
}
주제 페이지 노드 P1
MURL: mnp://bobsblog/summer
{
인덱스:
Figure pct00053
;
부모 인덱스:
Figure pct00054
이름: 'summer';
kwd1: 'travel';
kwd2: 'barbados';
Figure pct00055
}
하위 주제 페이지 노드 P1,1
MURL: mnp://bobsblog/summer/caribbean
{
인덱스:
Figure pct00056
;
부모 인덱스:
Figure pct00057
이름: 'caribbean';
kwd1: 'travel';
kwd2: 'barbados';
Figure pct00058
}
이 예에서, 리프 노드 P1,1,1, P1,1,2 및 P1,1,3에는 각각 'beaches', 'nightlife' 및 'food'라는 이름이 부여되며 별도의 블로그 게시물을 저장하는 데 사용된다. 트리의 각 노드와 관련된 MURL 검색 경로를 포함하여, 전체 도메인 구조가 다음 도면에 표시된다.
메타넷은 또한 노드 트랜잭션에 의해 저장된 콘텐츠의 해시를 추가 속성으로 저장하여 콘텐츠 주소 지정 네트워크(content addressable network; CAN)를 통합할 수 있음을 유의한다. 이는 메타넷 노드가 콘텐츠 해시로 인덱싱되고 검색될 수도 있음을 의미한다.
위에서 설명한 명명 및 주소 지정 방법은 다음을 포함하여 종래 기술에 비해 많은 기술적 이점을 제공한다.
1. 공개 키 주소-시스템은 블록체인과 동일한 공개-개인 키 쌍을 사용하여 노드 주소를 할당한다. 이는 암호화폐 자금 관리와 콘텐츠 데이터 허가 모두에 동일한 키 세트가 사용되는 것을 의미한다. 이는 효율적이고 안전한 해결책을 제공한다.
2. 탈중앙화된 도메인-작업 증명으로만 생성할 수 있는 TxIDnode를 포함하는 것을 통해 도메인 이름의 발급이 완전히 탈중앙화된다. 도메인 이름은 또한 원하는 도메인 공개 키의 공정한 배포를 가능하게 하는 사람이 인식할 수 있는 공개 키 Pvanity (꾸밈 주소)를 통합할 수 있다. 다시 말하지만, 이 해결책은 향상된 효율성과 보안을 제공한다.
3. 그래프 구조-명명 및 주소 지정 아키텍처는 메타넷 노드를 포함하는 블록체인 데이터의 하위 집합으로부터 구성할 수 있는 그래프를 지정한다. 이 설계는 순서가 지정된 구조를 사용하여 인터넷의 복잡성을 블록체인에 매핑하여 보안을 유지하면서 기능과 확장성을 완전히 복제한다.
브라우저 지갑 애플리케이션
메타넷 프로토콜에서 모든 데이터는 블록체인 자체에 직접 존재한다는 것을 상기한다. 이 섹션에서는 블록체인에 저장된 메타넷 데이터에 효율적으로 접근, 표시 및 상호 작용할 수 있는, 편의상으로만 "브라우저 지갑"으로 본원에서 지칭할, 예시적인 컴퓨터 애플리케이션의 실시예를 제시한다.
이 섹션의 나머지 부분에서 더 자세한 설명을 제공하기 전에, 브라우저 지갑이 분산된 피어 인터넷에 접속하는 방법의 핵심 구성요소 및 기능에 대한 설명으로 시작한다.
개요
구성요소
브라우저 지갑은 최종 사용자가 블록체인의 메타넷 인프라와 상호 작용할 수 있도록 의도된 애플리케이션이다. 이 애플리케이션은 트리에 포함된 특정 콘텐츠에 대한 메타넷 그래프의 탐사적 검색을 허용하여야 한다. 또한, 브라우저 지갑은 콘텐츠 리트리브, 해독, 재결합 및 캐싱(선택적)을 처리할 것이다.
브라우저 지갑 애플리케이션은 기본 (또는 외부) 지갑을 지원하여 이러한 요소를 암호화폐 지불 메커니즘과 결합할 것이다. 브라우저 지갑은 단일 컴퓨터 애플리케이션으로 결합된 다음과 같은 핵심 요소를 포함할 것이다.
블록체인 검색 엔진-IDnode, 노드 이름, 키워드, 블록 높이 및 TxID를 포함한 다양한 인덱스로 메타넷 노드를 질의하는 제3자 검색 엔진 지원.
표시 창-전체 사본 블록체인 피어가 브라우저에 반환한 콘텐츠를 압축 해제하는 소프트웨어. 이는 해독, 재결합, 캐싱 및 접근 토큰의 상환을 커버한다.
암호화폐 지갑-블록체인 통화에 대한 전용 키 관리. 애플리케이션에 기본이거나 외부 지갑(소프트웨어 또는 하드웨어)과 통신 및 동기화하도록 승인될 수 있다. 표준 블록체인 트랜잭션 뿐만 아니라 새로운 메타넷 노드 트랜잭션을 작성할 수 있다. 접근 키 및 접근 토큰의 체인내(on-chain) 구매를 중재할 수 있다.
암호화폐 공개 키와 메타넷 노드 주소 모두에 대해 계층적이고 결정성인 키 관리가 활용된다.
접근 키/토큰 지갑-구매한 접근 키 또는 토큰에 대한 전용 키 관리. 암호화폐 지갑을 사용하여 구매한 키 또는 토큰을 받을 수 있지만 그에 대한 허가는 없다. 나중에 만료될 수 있도록 사용자에게 감추어질 수 있다. 이는 신뢰할 수 있는 실행 환경을 사용하여 달성할 수 있다. 블록체인과 동기화하고 현재 블록 높이를 질의하여 시간 제한 접근(timed-access)을 보호할 수 있다.
기능
메타넷 브라우저 지갑 사양은 애플리케이션의 다음 기능을 보장한다.
1. 계층적 키 관리-자금을 제어하고 메타넷 트리(그래프)를 관리하는 데 사용되는 키는 동일한 계층적 결정성 키 인프라를 활용하여, 사용자가 메타넷 콘텐츠에 대한 키 레코드를 유지해야 하는 부담을 줄인다.
2. 외부 암호화폐 지갑 가리키기-외부(애플리케이션에 기본이 아닌) 지갑을 승인하고 동기화하는 기능은 실패 지점으로 브라우저 지갑을 제거하여 추가적인 보안을 허용한다.
애플리케이션은 블록체인 트랜잭션을 작성하고 키를 보관하는 외부 지갑의 서명을 요구할 수 있으며, 이 책임을 별도의 소프트웨어 또는 하드웨어에 위임한다.
3. 메타넷 콘텐츠 검색-브라우저 지갑은 글로벌 데이터베이스에서 메타넷 노드 트랜잭션 데이터의 크롤링(crawling), 인덱싱, 서비스 및 순위 지정을 포함할 수 있는 기능을 갖는 제3자 검색 엔진을 지원하고 질의할 수 있다. 메타넷 프로토콜 플래그를 포함하는 OP_RETURN 트랜잭션의 데이터베이스가 구성될 수 있다. BitDB 2.0-https://bitdb.network/ 참조.
검색 엔진은 브라우저 지갑에 데이터를 찾을 수 있게 하는 노드 인덱스를 제공할 수 있다.
4. 블록체인에 데이터 읽기 및 쓰기-검색 엔진 및 풀 노드(full-node)를 사용하여 브라우저에 콘텐츠를 제공하는 것 외에도, 암호화폐 지갑 지원을 통해 콘텐츠를 브라우저 지갑에서 직접 메타넷에 쓸 수 있다.
5. 데이터 압축 해제 및 해독-브라우저 지갑은 해독 키를 처리하고 현장에서 메타넷 콘텐츠의 압축 해제를 수행할 수 있다.
6. 노드 ID(ID node ) 캐싱-더욱 효율적인 조회 및 질의를 위해 고유한 노드 ID를 로컬로 캐싱할 수 있다.
7. 웹 서버 우회-노드 인덱스가 주어지면, 브라우저 지갑은 피어-투-피어(P2P) 블록체인 네트워크의 임의의 전체 사본 구성원(full-copy member)에게 노드에 위치한 콘텐츠를 질의할 수 있다. 메타넷은 체인 내에(on-chain) 있으므로, 모든 전체 사본 피어는 노드 및 그 콘텐츠의 로컬 사본을 가지고 있어야 한다.
이는 사용자의 브라우저 지갑이 단일 피어에게만 질의하면 되는 것을 의미하며, 중간 웹 서버 없이 직접 수행될 수 있다.
도 15는 브라우저 지갑의 개요 및 그 핵심 기능이 애플리케이션의 상이한 구성요소에 분할되는 방법을 도시한다.
블록체인 검색 엔진
검색 엔진-기존 기술
종래 기술에 알려진 검색 엔진(Search engine; SE)은 강력한 웹 크롤러에 의존하여 사용자 질의에 따라 웹 콘텐츠를 찾고 인덱싱하고 순위를 지정한다. (동일한 기본 원칙이 메타넷을 크롤링하는 제3자 블록체인 SE로 확장될 수 있다).
SE는 질의의 키워드 검색을 통해 관련 HTML 메타 태그 및 콘텐츠를 식별한다. 크롤링 결과는 임의의 삽입된 이미지/비디오/미디어 파일이 분석되고 분류되는 위치에서 이어서 인덱싱된다. 그런 다음 사용자의 위치, 언어 및 디바이스를 고려하여 인덱스에서 가장 관련성이 높은 결과가 프로그래밍 방식으로 순위가 지정된다.
일반적인 SE는 다음과 같은 기능을 가져야 한다.
1. 크롤링-인터넷 데이터를 식별하고 도메인 이름, 링크된 페이지 및 관련 키워드와 같은 관련 메타데이터를 통해 크롤링한다. 새로운 인터넷 콘텐츠는 기존 콘텐츠를 통해 발견되며 또한 임의의 관련 정보에 대해서 크롤링된다.
2. 인덱싱-콘텐츠 데이터가 분석되고 분류된다. 이 정보는 데이터베이스에 저장된다.
3. 서비스 및 순위 지정-콘텐츠 인덱스는 사용자의 질의와 관련된 순서대로 순위가 지정된다.
블록 탐색기
인터넷 검색 엔진(SE)과 가장 가까운 블록체인 유사물은 블록체인 탐색기이며, 때로는 '블록 탐색기' 또는 '블록체인 브라우저'로 지칭된다. 블록체인 탐색기는 높은 수준에서 사용자 친화적인 블록체인 질의를 가능하게 하고 웹 브라우저와 유사하게 작동하지만 인터넷이 아닌 블록체인에 연결되는 웹 애플리케이션이다. https://en.bitcoin.it/wiki/Block_chain_browser 참조.
대부분의 경우, 이러한 탐색기는 블록(블록 헤더의 해시로 인덱싱됨), 트랜잭션(TxID로 인덱싱됨), 주소 및 사용되지 않은 트랜잭션 출력(UTXO)을 입력으로 가져와 검색할 수 있도록 한다. 많은 탐색기는 또한 원시 트랜잭션 및 블록 데이터를 리트리브하기 위한 자체 애플리케이션 프로그래밍 인터페이스(API)를 제공한다. https://blockexplorer.com/api-ref 참조.
블록 탐색기는 기능이 다양하지만, 일반적으로 트랜잭션을 분류하고 그 기본 정보-예컨대 거래된 통화 가치, 코인 및 주소의 확인 및 이력-를 사용자가 이해하기 쉬운 형태로 표시하는 데 유용하다. Bitcoin.com https://explorer.bitcoin.com/bch 및 Blockchain.com https://www.blockchain.com/explorer 와 같은 많은 탐색기는 또한 트랜잭션에 대한 개별 입력 및 잠금 스크립트를 보도록 허용하지만, 이러한 사이트와 Blockchair https://blockchair.com/과 같은 더 고급의 사이트가 이 정보를 제공하도록 선택하는 방법은 서로 일치하지 않는다.
최근 블록체인 데이터를 기반으로 웹 애플리케이션을 실행하는 데 사용되는 기본 블록체인 탐색기의 확장이 많이 이루어졌다. Memo.cash https://memo.cash/protocol 및 Matter https://www.mttr.app/home과 같은 이러한 애플리케이션은 특정 프로토콜 식별자를 포함하는 블록체인 트랜잭션을 분류하고 조직화하며, 특정 트랜잭션 내에서 인코딩된 데이터를 표시하는 블록 탐색기와 같이 작동한다.
그러나, 본 발명의 실시예에 의해 해결되는 블록체인 탐색기를 사용하는 데에는 두 가지 중요한 문제가 있다.
1. 보편성-현재 트랜잭션에 저장된 콘텐츠 데이터를 검색하기 위한 업계 표준은 없다. 콘텐츠 데이터는 기본 블록체인을 생성하고 보호하는 데 사용되는 프로토콜과 관련이 없는 모든 데이터를 의미한다.
2. 키워드 검색-트랜잭션에 저장된 콘텐츠 데이터는 사람이 읽을 수 있는 키워드로 리트리브할 수 있어야 한다. 검색 입력으로 키워드를 사용하는 대신 블록 높이, TxID 및 주소와 같은 트랜잭션의 프로토콜 기반 속성을 질의하는 데 사용하기 때문에, 이는 일반적으로 현재 블록 탐색기의 기능이 아니다. (그러나 예를 들어 Blockchair와 같은 일부는 트랜잭션 스크립트에 직접 포함된 단어를 검색할 수 있다).
중요한 것은, 위에서 논의한 바와 같이, 본 발명의 강력한 명명 및 주소 지정 구조는 이 분야에 알려진 것보다 더 정교한 블록체인 탐색기의 구성을 용이하게 하고 가능하게 한다는 것이다.
제안된 메타넷 검색 엔진
브라우저 지갑 애플리케이션은 노드 ID(IDnode) 발견을 위해 제3자 검색 엔진과 통신한다. 이러한 제3자는 기존 인터넷 검색 엔진의 기능을 복제하는 강력하고 다양한 서비스를 제공할 수 있는 것으로 예상된다.
메타넷 검색 엔진 제3자는 메타넷 프로토콜 플래그로 식별할 수 있는 블록체인으로 채굴된 모든 메타넷 트랜잭션의 데이터베이스를 유지한다. 이 데이터베이스는 IDnode, 노드 이름, 키워드, TxID 및 블록 높이를 포함하는 범위 인덱스로 모든 메타넷 노드를 분류할 수 있다.
블록체인과 지속적으로 동기화하고 트랜잭션 데이터를 표준 데이터베이스 형식으로 유지하는 Bit DB https://bitdb.network/와 같은 서비스가 이미 존재한다. 브라우저 지갑은 메타넷 트랜잭션을 크롤링, 인덱싱, 서비스 및 순위 지정하는 책임을 이러한 제3자에게 넘기고 메타넷 그래프에 저장된 콘텐츠를 찾을 때 해당 서비스에 연결한다.
메타넷 데이터 전용 데이터베이스를 사용하면 효율성을 절약할 수 있다. Bit DB와 달리 이는 모든 트랜잭션과 연관된 데이터를 저장하지 않고, 메타넷 플래그를 포함하는 데이터만 저장한다. MongoDB와 같은 비관계형 데이터베이스와 같은 특정 데이터베이스는 메타넷의 그래프 구조를 저장하는 데 더 효율적일 수 있다. 이는 질의를 더 빠르게 하고, 저장 공간을 줄이고, 메타넷 도메인 내에서 관련 콘텐츠를 더 효율적으로 연관시킬 수 있게 한다.
도 16은 사용자가 메타넷 인프라 내에서 콘텐츠를 검색할 때 브라우저 지갑이 제3자 검색 엔진과 상호 작용하는 방식을 도시한다. 중요한 것은, 인터넷과 달리, 라우팅이 필요하지 않기 때문에 발명은 효율성, 속도, 처리 및 필요한 자원과 관련하여 중요한 이점을 제공한다는 점을 유의하여야 한다.
과정은 다음과 같다
1. 최종 사용자는 브라우저 지갑 검색 바(bar)에 키워드를 입력한다.
2. 브라우저 지갑은 키워드 질의를 제3자 SE에 전송한다.
3. SE는 자신의 데이터베이스에 대해 키워드를 확인하고 관련 콘텐츠를 포함하는 임의의 메타넷 노드에 대해 IDnode를 반환한다. 제3자는 각 노드의 다른 인덱스를 사용자에게 반환할 수 있을 뿐만 아니라, 관련 콘텐츠에 대한 제안을 제공할 수도 있다.
4. 브라우저 지갑은 노드 ID 및 이와 연관된 도메인 이름을 사용하여 MURL을 구성한다.
5. 브라우저 지갑은 블록체인의 전체 사본이 있는 임의의 네트워크 피어로부터 지정된 노드에 속한 콘텐츠를 요청한다.
6. 네트워크 피어는 브라우저 지갑에 요청된 콘텐츠를 제공한다. 피어가 블록체인의 사본을 가지고 있으므로, 콘텐츠의 사본 또한 가지고 있으며 하나의 요청만이 이루어지고, 다른 네트워크 피어로 전달되지 않는다.
제3자 SE는 메타넷 노드의 속성의 레코드를 인덱싱하고 유지할 책임만을 갖는 반면, 노드에 저장된 원시 콘텐츠 데이터는 대신 블록체인의 전체 사본으로 네트워크 피어(예를 들어, 전체 사본 피어, 채굴자, 아카이브)에 의해 저장된다는 점을 강조한다.
콘텐츠 표시-메타넷 브라우저
브라우저 지갑 애플리케이션은 임의의 일반적인 웹 브라우저가 제공하여야 하는 동일한 프론트엔드(front-end) 기능을 에뮬레이션한다. 이러한 기능은 다음을 포함하지만 이에 제한되지는 않는다.
1. 검색-콘텐츠를 찾기 위해 검색 엔진(SE)에 대한 접근을 제공.
2. 리트리브-알려진 프로토콜, 예를 들어 하이퍼텍스트 전송 프로토콜(HTTP)을 사용하여 콘텐츠 전송을 용이하게 하기 위하여 서버와 통신.
3. 해석-원시 코드(예를 들어, 자바스크립트로 된)를 파싱(parsing) 및 실행.
4. 렌더링-파싱된 콘텐츠를 최종 사용자가 볼 수 있도록 효율적으로 표시.
5. 사용자 인터페이스(UI)-사용자 입력을 위한 작업 버튼 및 메커니즘을 포함하여 사용자가 콘텐츠와 상호 작용할 수 있는 직관적인 인터페이스를 제공.
6. 저장-콘텐츠에 대한 반복적인 접근을 개선하기 위하여 인터넷 콘텐츠, 쿠키 등을 캐싱하기 위한 로컬 임시 저장 성능.
특정 실시예에서, 웹 브라우저의 역할을 담당하는 브라우저 지갑 애플리케이션의 소프트웨어 구성요소는 해당 속성을 사용하여 (SE를 사용하여) 검색 가능하고 및 (피어로부터) 리트리브할 수 있는 블록체인에 포함된 메타넷 콘텐츠에 대해 위의 기능을 수행할 수 있다.
재결합, 압축 해제 및 해독
발명의 특정 실시예에 따르면, 브라우저 지갑 애플리케이션의 웹 브라우저 소프트웨어 구성요소는 주어진 메타넷 콘텐츠에 대해 수행되어야 하는 모든 동작을 처리할 수 있다. 일반적으로 수행해야 하는 이러한 작업은 많이 있지만, 메타넷 프로토콜과 인프라를 사용하는 애플리케이션에서 최소한 다음 작업을 실행한다고 가정한다.
재결합-메타넷 콘텐츠를 분할하여 여러 별개의 노드 트랜잭션에 삽입해야 하는 경우, 애플리케이션은 모든 관련 노드에서 콘텐츠를 요청하고 원본 콘텐츠를 재구성할 것이다. 분할된 콘텐츠의 순서와 구조는 각 노드의 속성에 추가 플래그를 사용하여 인코딩할 수 있다.
압축 해제-콘텐츠 데이터가 압축된 형태로 블록체인에 저장되는 경우, 사용된 표준 압축 체계를 브라우저 지갑에 표시하기 위하여 플래그를 포함하여야 한다. 애플리케이션은 이 플래그에 따라 콘텐츠의 압축을 해제할 것이다.
해독-콘텐츠가 암호화된 경우 암호화 체계를 나타내는 플래그를 사용하여야 한다. 애플리케이션은 해독 키 지갑(아래에서 논의)에서 키를 찾고 사용된 암호화 체계에 따라 사용할 콘텐츠 데이터를 해독할 것이다.
콘텐츠 데이터에 대해 이러한 작업을 수행할 때, 플래그를 사용하여 주어진 작업을 수행해야 함을 브라우저 지갑에 나타낼 수 있다. 이는 적절한 <operation_flag>가 작업이 적용되는 노드 속성의 일부로 포함될 수 있는 임의의 다른 작업으로 일반화된다.
캐싱(Caching)
로컬 파일 및 쿠키의 캐싱은 일반적인 웹 브라우저의 공통적이고 중요한 기능이다. 브라우저 지갑 애플리케이션은 또한 IDnode 및 관심 콘텐츠와 관련된 다른 노드 속성의 레코드를 선택적으로 유지하기 위해 유사한 방식으로 로컬 저장소를 사용한다. 이를 통해 자주 방문하는 메타넷 노드에서 콘텐츠를 더 효율적으로 조회하고 리트리브할 수 있다.
메타넷은 변경 가능하며(mutable) 제공자에 따라 웹 브라우징 소프트웨어에 의해 변경 또는 검열될 수 있다는 인터넷 데이터 캐싱에 내재된 문제를 해결한다. 메타넷 데이터를 캐싱할 때 사용자는 블록체인에 변경 불가능한 레코드로 원래 포함되었을 때와 동일한 상태인지 항상 쉽게 검증할 수 있다.
암호화폐 지갑
계층적 결정성 키 관리
결정성 키 Dk는 단일 "시드(seed)" 키에서 초기화된 개인 키이다(Andreas M. Antonopoulos, "비트코인 마스터하기" 제5장 O'Reilly 제2판, 2017, pp. 93-98 참조). 시드는 마스터 키 역할을 하는 무작위로 생성된 숫자이다. 해시 함수를 사용하여 시드를 인덱스 번호 또는 "체인 코드"(HD 지갑-BIP-32/BIP-44 참조)와 같은 다른 데이터와 결합하여 결정성 키를 도출할 수 있다. 이들 키는 서로 관련되어 있으며 시드 키로 완전히 복구 가능하다. 시드는 또한 상이한 지갑 구현 사이에서 지갑의 쉬운 가져오기/내보내기를 허용하여, 사용자가 메타넷 브라우저 지갑과 함께 외부 지갑을 사용하고자 하는 경우 추가적인 자유도를 제공한다.
계층적 결정성(hierarchical deterministic; HD) 지갑은 결정성 키의 잘 알려진 도출 방법이다. HD 지갑에서, 부모 키는 자식 키의 시퀀스를 생성하고, 차례로 손자 키의 시퀀스를 도출하는 등이다. 이 트리형 구조는 여러 키를 관리하는 강력한 메커니즘이다.
바람직한 실시예에서, HD 지갑은 도 16에 예시된 메타넷 아키텍처에 통합될 수 있다. HD 지갑 사용의 이점은 다음을 포함한다.
1. 구조-상이한 목적을 위해 상이한 하위 키 분기를 사용하여 추가적인 조직적 의미를 표현할 수 있다. 예를 들어, 사용자는 상이한 유형의 데이터에 상이한 분기(및 대응하는 하위 키)를 지정할 수 있다.
2. 보안-사용자는 대응하는 개인 키 없이 공개 키의 시퀀스를 생성할 수 있어, HD 지갑이 수신 전용 성능으로 기능하게 하고 안전하지 않은 서버에서 사용하기에 적합하게 한다. 또한, 저장해야 할 비밀이 적으므로 노출 위험이 적다.
3. 복구-키가 분실/손상된 경우 시드 키에서 복구할 수 있다.
기본(내부) 및 외부 지갑 지원
유리하게는, 발명의 실시예는 전통적인 웹 브라우저의 기능을 하나 이상의 암호화폐 지갑과 직접 병합할 수 있다. 이는 근본적으로 메타넷이 "인터넷" 콘텐츠에 대한 지불과 최종 사용자에게 전달하는 방식을 결합하는 방법이다.
이를 달성하기 위하여, 브라우저 지갑의 실시예는 암호화폐 지갑으로 작동하는 전용 내장 소프트웨어 구성요소를 가질 수 있다. 이 지갑은 기본 애플리케이션 자체이며 암호화폐 개인 키를 관리하고 브라우저 지갑 자체 내에서 메타넷 콘텐츠에 대한 지불로 트랜잭션을 승인하는 데 사용할 수 있다.
이는 애플리케이션의 브라우저 구성요소가 메타넷 콘텐츠를 보기 위해 해독 키, 접근 토큰 등을 구입함으로써 요구되는 지불을 승인하도록 지갑 구성요소에 촉구(prompt)할 수 있다는 것을 의미한다. 애플리케이션은 지불을 처리하기 위해 외부 제3자를 호출할 필요가 없으므로, 관심 있는 메타넷 콘텐츠가 애플리케이션에 의해 소비되고 현장에서 지불된다.
외부 지갑
사용자가 암호화폐 개인 키를 외부 지갑(소프트웨어 또는 하드웨어)에서 대신 관리 또는 유지하거나 심지어 여러 지갑을 사용하기를 원하는 경우 애플리케이션의 실시예에 의해 동일한 이점과 기능을 얻을 수 있다. 이는 애플리케이션의 기본 지갑 대신 또는 이와 함께 수행될 수 있다.
이러한 실시예에서, 애플리케이션은 외부 지갑(들)과 링크 또는 페어링(pairing)을 설정하고, 동기화하지만, 브라우저 지갑 자체에 개인 키를 저장하지 않는다. 대신, 브라우저 구성요소가 콘텐츠에 대한 지불이 이루어지도록 촉구할 때, 애플리케이션은 선택한 외부 지갑에서 디지털 서명에 의한 승인을 요청한다. 이 승인은 사용자에 의해 이루어지며 브라우저 지갑은 트랜잭션을 브로드캐스트하고 지불한 콘텐츠를 볼 수 있다.
메타넷 트랜잭션을 읽고 쓰기
메타넷의 본질적인 장점은 동일한 데이터 구조-블록체인-를 사용하여 지불 및 콘텐츠 데이터를 모두 기록한다는 것이다. 이는 소프트웨어 지갑을 사용하여 순전히 암호화폐 교환을 기반으로 하는 트랜잭션을 생성하는 것 외에도 메타넷 인프라에 콘텐츠 데이터를 작성할 수 있음을 의미한다.
애플리케이션에 내장된 기본 지갑은 일반적인 단순 지불 검증(simplified payment verification; SPV) 클라이언트보다 더 복잡한 트랜잭션을 블록체인에 작성할 수 있다. https://bitcoin.org/en/glossary/simplified-payment-verification 참조. 지갑은 사용자가 자신의 컴퓨터에서 블록체인에 포함할 콘텐츠 데이터를 선택하여 애플리케이션에서 직접 메타넷 노드 트랜잭션을 블록체인에 작성하도록 선택할 수 있게 한다.
브라우저 지갑 애플리케이션은 사용자 인터페이스(UI)를 가지므로 지갑 구성요소가 브라우저 구성요소 또는 사용자 컴퓨터에서 미리 구성된 콘텐츠 데이터를 포함하는 트랜잭션을 생성하고 브로드캐스트할 수 있게 한다. 이 성능은 특수 제작(purpose-built) 지갑이 자체적으로 처리하기 위하여 달성하기에는 훨씬 더 어려울 것이다.
접근 키/토큰 지갑
위로부터 메타넷 프로토콜에 내장된 것은 ECC 키 쌍 또는 AES 대칭 키를 사용하여 콘텐츠를 암호화하는 기능과 대응하는 해독 키 또는 토큰을 구매하는 기능임을 상기한다. 이를 접근 키 또는 접근 토큰으로 지칭한다.
이러한 키/토큰은 사용자에게 콘텐츠(단일 사용 또는 다중 인스턴스 사용)를 보거나 편집할 수 있는 허가를 부여하고 사용자 암호화폐 지갑을 제어하는 키와 구별되는 역할을 수행한다(그러나 원하는 경우 동일한 키를 두 가지 목적으로 사용할 수 있음). 이러한 이유로, 애플리케이션의 기본 암호화폐 지갑과는 별도로, 접근 키 및 토큰을 저장하고 관리하는 데 사용하는 새 지갑을 도입하는 것이 유리하다.
또한 일정 시간이 지나면 접근 키/토큰을 소각할 수 있도록 허용함으로써 메타넷 콘텐츠에 대한 시간 제한 접근 개념을 도입할 수도 있다. 이는 접근 키/토큰이 신뢰 실행 환경(Trusted Execution Environment; TEE)에 저장되고 사용자가 직접 접근할 수 없도록 요구함으로써 달성할 수 있다.
접근 키/토큰이 "소각"될 수 있다는 사실은 또한 암호화폐 개인 키가 소각될 위험이 없도록 보장하기 위해 암호화폐 지갑에 저장하지 않도록 하는 동기 부여 요소이다.
암호화폐 지갑과 유사한 방식으로, 해독 키 및 접근 토큰을 저장하고 결정성으로 관리하여 효율적인 처리 및 배포를 용이하게 할 수 있다. 해독 키(예를 들어 ECC 개인 키)는 마스터 키에 후속 추가를 통해 생성 및 복구할 수 있으며, 접근 토큰은 일부 초기 토큰에 의해 시드된 해시 체인을 사용하여 재구성될 수 있다.
암호화폐 지갑은 다른 사용자와 거래하고 새로운 메타넷 노드를 생성하는 데 사용되는 키 쌍에 대한 결정성 키 생성을 처리하는 반면, 키/토큰 지갑(들)은 암호화폐 지갑으로 구매한 키와 토큰을 처리한다는 점을 여기에서 구별하는 것이 중요하다.
블록 높이 허가
블록 높이 허가를 가능하게 하기 위해 비트코인 스크립트 언어에 타임 록(timelock)을 포함할 수 있다. 명령 코드 OP_CHECKLOCKTIMEVERIFY (CLTV)는 트랜잭션 출력(UTXO)이 지출에 허용되는 블록 높이를 설정한다.
블록 높이 허가의 이점은 두 가지이다.
1. 버전 제어-메타넷 프로토콜에서는, 최신 버전의 노드가 가장 큰 블록 높이의 노드에서 식별될 수 있다. 브라우저 지갑은 블록 높이별로 파일의 최신 버전만을 표시하도록 설정할 수 있어, 작업 증명 버전 제어를 할 수 있다.
2. 시간 제한 접근-브라우저 지갑 애플리케이션은 사용자가 원자적으로 구입한 해독 키를 주기적으로 소각할 수 있다. 이를 통해 시청자는 지불한 기간 동안에만 콘텐츠 데이터에 접근할 수 있음을 보장한다. 해독 키를 신뢰 실행 환경(TEE)에 저장하면 복제를 방지할 수 있다. 또한, 원자 스왑은 결정성 키 Dk(콘텐츠 데이터의 해독용) 구매를 수반한다. 이 결정성 키는 공개적으로 볼 수 있지만, Dk와 안전하게 격리된 개인 키의 조합에 서명하기 위하여 TEE를 사용할 수 있다.
브라우저 지갑은 임의의 외부 시계 또는 제3자 시간 신탁에 의존하지 않고, 블록 높이를 자체 시간 프록시로 사용하기 위해 블록체인의 현재 상태와 동기화되도록 배열될 수 있다.
웹 서버 우회
발명은 브라우저(클라이언트) 및 웹 서버가 도메인 네임 시스템(DNS) 서버 및 전형적인 네트워크 라우팅 절차를 우회하는 분산 피어 인터넷을 통해 정보를 통신하고 교환할 수 있는 새로운 메커니즘을 허용한다. http://www.theshulers.com/whitepapers/internet_whitepaper/ 참조. 발명은 브라우저 지갑 애플리케이션이 콘텐츠를 제공받을 수 있는 블록체인의 전체 사본을 유지하는 피어를 포함하는 새로운 네트워크 아키텍처를 제공한다.
로컬 전체 사본 피어(Local full-copy peer)
예를 들어 우편 번호, 마을, 도시와 같은 각 지리적 영역의 로컬 피어 시스템을 고려한다. 이 로컬 네트워크 내에서 적어도 하나의 피어가 블록체인의 전체 사본을 유지한다고 가정하며, 이를 로컬 전체 사본 피어(Local Full-Copy Peer; LFCP)로 지칭할 것이다. 우리의 목적을 위하여, LFCP는 메타넷 플래그를 포함하는 블록체인 트랜잭션을 저장하기만 하면 되지만, 이를 제한하지는 않는다.
모든 사용자는 기본적으로 LFCP에 'get' 요청을 보낸다. 피어가 전체 블록체인의 완전한 최신 사본을 유지하므로, 질의된 모든 노드 ID를 LFCP에서 사용할 수 있기 때문에 모든 요청을 처리할 수 있다. SE가 메타넷 콘텐츠를 저장하고 일반적인 SE의 주요 기능을 수행할 수 있을 만큼 강력하고 큰 경우 메타넷 검색 엔진도 LFCP 역할을 할 수 있음을 유의한다.
가장 간단한 경우, 모든 LFCP는 전체 블록체인(작성 당시 약 200GB)을 저장할 수 있어야 하므로 동일한 저장 및 디스크 공간 오버헤드를 가질 것이다. 각 LFCP의 차이점은 메타넷 사용자의 로컬 요청의 수요에 응답할 수 있도록 성능을 확장하여야 한다는 점이다. 따라서 세계의 각 메타넷 사용자가 기본적으로 가장 가까운 LFCP에 질의하는 경우, 각 LCFP는 로컬 수요를 충족하기 위해 운영 성능을 확장하는 것을 목표로 하여야 한다. 도시와 같이 인구가 밀집된 지역에는 많은 클러스터 서버로 구성된 LFCP 작업이 필요한 반면, 작은 마을과 같은 인구가 드문 지역에는 더 작은 LCFP 작업이 필요하다.
디스크 공간 요구 사항은 보편적인 반면, 각 LFCP의 CPU 요구 사항은 로컬 네트워크 수요에 맞게 조정된다는 점을 유의하는 것이 중요하다. 이는 프리넷(Freenet)과 같은 적응형 네트워크의 예이다. https://blockstack.org/papers/ 참조.
이러한 시스템의 한 가지 이점은 사용자가 주어진 IDnode와 연관된 콘텐츠를 리트리브할 때 LFCP에 대한 단일 (로컬) 연결만을 하면 된다는 점이다. LFCP가 필요한 콘텐츠를 직접 제공할 수 있도록 보장되므로 다른 피어에게 요청을 전달할 필요가 없다.
메타넷은 인터넷에 비해 IFPS와 같은 다른 피어-투-피어(P2P) 파일 공유 서비스와 유사한 탈중앙화 및 중복 제거와 같은 많은 이점을 제공한다. 그러나, 메타넷은 불변성을 보장하고, 결정적으로 주어진 콘텐츠에 대한 요청으로 네트워크를 범람시킬(flood) 필요성을 제거함으로써 이러한 기존 P2P 모델을 개선한다.
메타넷 인프라는 또한 이러한 피어의 네트워크를 채용함으로써 어느 하나의 LFCP의 손상에도 강건하다. 이는 LFCP가 비활성화되면 최종 사용자는 단순히 다음으로 가장 가까운 LFCP를 기본적으로 사용한다는 것을 의미한다. 이는 LFCP가 서로 통신하여 주어진 시간에 요청 측면에서 성능 미만 또는 초과인 근처 피어를 나타내면 더 효율적으로 될 수 있다. 이는 사용자가 가장 적절한 피어에게 요청을 보내고 근처 LFCP 간의 요청 분배에서 동적 평형을 설정하도록 할 수 있다.
글로벌 전체 사본 피어(Global full-copy peer)
이제 범용 디스크 공간 요구 사항이 소규모 피어에 비해 너무 커지는 시나리오를 고려하며, 이는 블록체인의 메타넷 부분이 채택과 함께 확장되고 증가함에 따라 발생할 수 있다.
이 경우 더 작은 LFCP는 인기 시스템을 기반으로 메타넷 노드 트랜잭션을 저장하기 위해 디스크 공간 용량을 사용하여야 한다(요청량 및 특성에 따라 콘텐츠 순위를 매기는 기존 기술이 있다). 이는 LFCP가 이제 CPU(요청 처리 능력용)와 저장소 할당(콘텐츠 제공 능력용)을 모두 콘텐츠의 양과 특성 모두에서 로컬 지리적 요구에 맞도록 조정하는 것을 의미한다.
LFCP가 이제 모든 메타넷 트랜잭션 콘텐츠를 저장할 수 없다는 사실을 해결하기 위해 글로벌 전체 사본 피어(Global Full-Copy Peer; GFCP) 개념을 사용할 수 있다. GFCP는 다음의 특성을 가진 전체 사본 피어이다.
1. GFCP는 항상 블록체인의 전체 사본을 유지하기 위해 디스크 공간 용량을 늘린다.
2. GFCP는 LFCP보다 훨씬 많은 요청을 처리할 수 있는 상당한 CPU 자원을 갖는다. 글로벌 전체 사본 피어는 많은 LFCP가 손상될 경우 갑작스러운 수요 증가를 처리할 수 있어야 한다.
GFCP에는 두 가지 주요 기능이 있다. 첫째, LFCP의 오버플로 요청시 메타넷 콘텐츠의 사용자 요청에 대한 안전장치 역할을 한다. 둘째, GFCP는 역사적으로 채굴된 모든 메타넷 콘텐츠를 저장하는 아카이브(archive) 피어 역할을 하여, 많은 LFCP가 해당 로컬 저장소 제공에서 일부 콘텐츠를 생략하더라도 모든 메타넷 노드 콘텐츠에 접근할 수 있도록 보장한다.
글로벌 데이터 은행
GFCP의 개념은 강력한 것이며 메타넷의 전체 아키텍처가 기존 문제에 대한 해결책을 제공하는 방법, 모든 것을 포괄하는 글로벌 데이터 은행을 만드는 것을 보여준다.
지금까지는, 중앙 기관에 의해 유지되어야 하였기 때문에 보편적이고 전세계적으로 접근할 수 있는 데이터 은행을 안전하게 구축하는 것이 불가능하였다. 이 중앙 기관은 시스템에 장애 지점과 신뢰 지점을 모두 도입한다. 결정적으로, 한 조직이 모든 인터넷 데이터를 저장하고 유지하는 데 의존하는 경우, 정보를 손상시키지 않고, 정확하고 합법적으로 수행하고 있다는 사실을 신뢰하여야 한다.
메타넷 인프라를 통해 우리는 글로벌 데이터 센터의 개념에서 신뢰와 중심성의 문제 모두를 효과적으로 제거하였다. 이제, 이러한 GFCP는 저장될 정보를 검증 및 인증하는 것이 아니라 저장에 필요한 디스크 공간을 제공하는 데에만 의존하기 때문에 생성될 수 있다.
메타넷을 사용하면, 저장된 내용을 검증하는 프로세스가 채굴자에 의해 수행되므로 블록체인 정보를 손상시킬 수 없기 때문에 보편적인 글로벌 데이터 은행을 신뢰할 수 있다. GFCP는 신뢰할 필요가 없으며 저장소만 제공하면 된다.
모든 GFCP가 동일한 정보를 저장할 수 있다는 사실, 즉 블록체인 자체에 대해 항상 검증 및 증명이 가능하다는 사실은 이것이 많은 이러한 GFCP에 복제될 수 있음을 의미한다.
이는 또한 많은 글로벌 데이터 은행이 병렬로 존재하고 동일한 정보를 증명 가능하게 저장할 수 있도록 함으로써 단일 실패 지점을 갖는 문제를 해결하였음을 의미한다.
도 17은 2개의 LFCP와 1개의 GFCP로 구성된 시스템을 도시하며 각 피어가 개별 피어의 손상에 대해 강건한 네트워크에서 다른 피어를 지원할 수 있는 방법을 예시한다.
위에서 설명된 브라우저 지갑 애플리케이션의 실시예에서 구현될 수 있는 발명의 양상은 다음을 포함하지만 이에 제한되지 않는 종래 기술에 비해 수많은 구별되는 특징 및 이점을 제공한다.
1. 결정성 키-암호화폐와 메타넷 주소 모두에 대한 계층적 결정성 키 관리가 애플리케이션의 동일한 지갑 구성요소에서 수행된다. 이는 저장소 요구 사항을 줄이고 키 복구를 가능하게 하는 여러 기능으로 키를 조직화할 수 있게 한다.
2. 지불 메커니즘-애플리케이션은 소비자가 일반적으로 인증하고 신뢰를 제공하는 다른 애플리케이션이나 제3자 지불 서비스를 가리킬 필요 없이 판매자에게 직접 지불할 수 있게 한다. 이는 동일한 블록체인 플랫폼을 통한 디지털 콘텐츠의 구매 및 전달의 발생을 허용한다. 애플리케이션은 낮은 가치 교환 또는 여러 당사자가 관련된 더 복잡한 트랜잭션을 포함하여 비트코인 지불의 이점을 물려받는다.
3. 웹 서버 우회-애플리케이션은 일반적으로 많은 양의 트래픽, 요청 및 라우팅을 처리하는 기존 웹 서버의 우회를 용이하게 한다. 이는 애플리케이션이 단일 LFCP로부터만 콘텐츠를 요청하면 되기 때문이며, 다른 LFCP로 요청을 전달할 필요 없이 사용자에게 제공하는 것을 보장한다. 이는 전체 트래픽 양과 각 요청의 완료 시간을 줄인다.
4. 시간 지정 접근-애플리케이션은 블록체인과 동기화하고 이를 사용하여 현재 상태에 기반하여 접근 허가를 적용함으로써 콘텐츠에 대한 시간 지정 접근을 용이하게 한다. 이는 원래 소유자의 권리를 보호하면서 시간이 지남에 따라 사용자의 특권을 모니터링하는 제3자 서비스의 필요를 제거한다.
사용례-탈중앙화된 앱 스토어(스?? 스토어(Swapp store))
메타넷 아키텍처에 대해 여기에 제시된 제1 사용례(예시 목적으로만)는 애플리케이션(앱)에 대한 탈중앙화된 지불 및 배포이다.
앱 개발자 앨리스와 소비자 밥이 서로 거래하고자 하는 시나리오를 고려한다. 이 트랜잭션은 돈으로 밥에게 애플리케이션 데이터에 대한 접근을 허락하는 비밀 키와 교환하는 원자 스왑의 형태를 취할 것이다. 암호화된 애플리케이션 데이터는 메타넷 노드 트랜잭션의 일부로 이미 공개되어 있다.
원자적으로 스왑된 애플리케이션은 스??(Swapp)으로 알려져 있다. 제3자 플랫폼(스?? 스토어)은 메타넷에 존재하는 애플리케이션을 분류하고 광고하는 데 사용할 수 있지만, 밥과 같은 사용자에 대해 접근 키를 지불하고 전송하는 데에는 임의의 제3자가 관여할 필요가 없으며 판매자와 소비자 간에 직접 이루어질 수 있다.
다음 섹션에서는 앨리스가 앱을 만들고 밥이 사용할 때까지 스?藍? 사고 파는 데 사용할 수 있는 프로세스를 자세히 설명한다. 프로세스에 걸쳐, 앨리스와 밥은 각각의 브라우저 지갑을 사용하여 메타넷과 상호 작용할 것이다.
게시
1. 앨리스가 애플리케이션을 작성한다. 이 애플리케이션을 구성하는 데이터는 <App>으로 표기된 콘텐츠이다. 그녀는 또한 비밀 키 Sk를 사용하여 <e(App)>로 암호화한다.
2. 앨리스는 제1 메타넷 도메인(트리)을 설정하기 위하여 노드 트랜잭션 ID AliceApp을 생성한다. 그녀는 노드 주소로 사용할 1AliceAppHtKNngkdXEeobR76b53LETtpy (PAliceApp)를 생성한다.
3. 그런 다음 앨리스는 제1 노드의 자식을 생성하여 애플리케이션의 메타넷 라이브러리에 대응하는 트리를 만든다. 앨리스의 트리 도메인은 도 18에 도시된다.
이 트리의 리프 노드 중 하나는 인덱스가 IDApp 인 애플리케이션 <App>에 대응하는 노드이다. 이 노드에서, 앨리스는 암호화된 애플리케이션 데이터 <e(App)>를 노드의 입력 스크립트(scriptSig)에 삽입한다. 앱 데이터는 비밀 키 sk를 사용하는 코블리츠 방법을 사용하여 암호화된다.
이 노드 트랜잭션은 다음과 같다.
Figure pct00059
4. 앨리스는 IDAliceApp, PAliceApp 및 도메인 이름 'Alice App'을 공개적으로 브로드캐스트한다. 이는 소셜 미디어, 인터넷 웹 사이트를 통해 또는 제3자 메타넷 웹 사이트를 사용하여 이루어질 수 있다.
구매
1. 밥은 퍼즐 게임을 다운로드하고자 하며 자신의 브라우저 지갑에서 보는 메타넷 웹 사이트(스?? 스토어)에 앨리스의 앱이 등록되어 있는 것을 본다.
2. 그런 다음 밥은 웹 사이트의 정보를 사용하여 앨리스와 통신하고, 원자 스왑을 설정한다. 스왑은 밥이 비트코인으로 합의된 가격을 앨리스에게 지불하고 앨리스가 비밀 키 sk를 노출하거나 둘 중 아무 사건도 발생하지 않도록 설계된다.
3. 원자 스왑이 완료되고 밥의 브라우저 지갑은 접근 키/토큰 지갑에 비밀 키 sk를 저장한다.
사용(Deployment)
밥은 이제 앨리스가 이전에 게시한 애플리케이션 데이터를 해독할 수 있게 하는 키 sk를 갖게 되었다. 앱을 다운로드하고 사용하기 위해 밥은 다음을 수행한다.
1. 밥은 메타넷 검색 엔진(SE)을 사용하여 암호화된 앱 데이터 <e(App)>과 연관된 MURL을 찾는다. 그는 브라우저 지갑의 검색 바에 'Alice App'과 'App'이라는 키워드를 입력으로 사용한다. 제3자 SE는 질의를 해결하고 다음 MURL을 반환한다.
mnp://aliceapp/games/puzzle/app
이 식별자(locator)는 입력 스크립트에 암호화된 앱 데이터를 포함하는 고유한 메타넷 노드 IDApp에 대응한다.
2. 밥의 브라우저 지갑은 이 MURL을 수신하고 가장 가까운 적절한 LFCP로 요청을 보낸다. 이 피어는 밥에게 요청된 데이터 <e(App)>를 제공한다.
3. 브라우저 지갑은 IDApp의 속성에 따라 데이터를 처리한다. 이는 비밀 키 sk를 사용하여 애플리케이션 데이터를 해독하고 <App>을 처리하는 것을 포함한다.
4. 밥은 브라우저에서 컴퓨터로 애플리케이션 <App>을 다운로드한다. 이제 밥은 접근을 재구매하지 않고도 로컬로 애플리케이션을 사용할 수 있다.
도 19는 위의 예시적인 사용례에 요약된 전체 프로세스를 보여준다. 순서도는 앨리스(왼쪽에서 시작)와 밥(오른쪽에서 시작)의 두 개의 작업 분기를 도시한다. 앨리스에 대응하는 분기는 초기 게시 단계를 보여주고 밥의 것은 원자 스왑을 통한 구매 설정 단계를 도시한다.
밥의 분기에서, 그는 원자 스왑 설정 단계로 다음 트랜잭션 TxIDBob을 브로드캐스트한다.
Figure pct00060
이 트랜잭션에서, 출력은 앨리스가 지출하기 위해 밥에게 비밀 해독 키 sk를 노출해야 하는 개인 키 퍼즐로 잠긴다.
이 도면에서 앨리스와 밥의 분기는 앨리스가 원자 스왑 트랜잭션을 성공적으로 완료한 지점에서 수렴한다. 이는 앨리스가 트랜잭션 TxIDAlice를 브로드캐스트할 때 달성된다.
Figure pct00061
이 트랜잭션이 브로드캐스트되자마자 앨리스와 밥의 동작 분기는 다시 한 번 갈라진다. 앨리스는 x 비트코인의 지불을 받고 밥은 비밀 해독 키 sk를 받고 메타넷에서 앨리스의 애플리케이션을 리트리브하고 해독할 수 있다.
이제 도 20으로 돌아가면, 본 개시의 적어도 하나의 실시예를 실행하는 데 사용될 수 있는 컴퓨팅 디바이스(2600)의 예시적이고 단순화된 블록도가 제공된다. 다양한 실시예에서, 컴퓨팅 디바이스(2600)는 위에서 예시되고 설명된 임의의 시스템을 구현하는 데 사용될 수 있다. 예를 들어, 컴퓨팅 디바이스(2600)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터 또는 임의의 전자 컴퓨팅 디바이스로 사용하도록 구성될 수 있다. 도 20에 도시된 바와 같이, 컴퓨팅 디바이스(2600)는 주 메모리(2608) 및 영구 저장소(2610)를 포함하는 저장 서브시스템(2606)과 통신하도록 구성될 수 있는 메모리 제어기 및 하나 이상의 캐시 메모리 수준을 갖는 하나 이상의 프로세서(집합적으로 2602로 라벨링됨)를 포함할 수 있다. 주 메모리(2608)는 도시된 바와 같이 동적 임의 접근 메모리(DRAM)(2618) 및 읽기 전용 메모리(ROM)(2620)를 포함할 수 있다. 저장 서브시스템(2606) 및 캐시 메모리(2602)는 본 개시에서 설명된 바와 같이 트랜잭션 및 블록과 연관된 세부 사항과 같은 정보의 저장을 위해 사용될 수 있다. 프로세서(들)(2602)는 본 개시에서 설명된 바와 같은 임의의 실시예의 단계 또는 기능을 제공하기 위해 이용될 수 있다.
프로세서(들)(2602)는 또한 하나 이상의 사용자 인터페이스 입력 디바이스(2612), 하나 이상의 사용자 인터페이스 출력 디바이스(2614) 및 네트워크 인터페이스 서브시스템(2616)과 통신할 수 있다.
버스 서브시스템(2604)은 컴퓨팅 디바이스(2600)의 다양한 구성요소 및 서브시스템이 의도된 대로 서로 통신할 수 있도록 하는 메커니즘을 제공할 수 있다. 버스 서브시스템(2604)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 실시예는 다중 버스를 이용할 수 있다.
네트워크 인터페이스 서브시스템(2616)은 다른 컴퓨팅 디바이스 및 네트워크에 대한 인터페이스를 제공할 수 있다. 네트워크 인터페이스 서브시스템(2616)은 컴퓨팅 디바이스(2600)의 다른 시스템으로부터 데이터를 수신하고 데이터를 전송하기 위한 인터페이스 역할을 할 수 있다. 예를 들어, 네트워크 인터페이스 서브시스템(2616)은 데이터 기술자가 디바이스를 네트워크에 연결하여 데이터 기술자가 데이터 센터와 같은 원격 위치에 있는 동안 디바이스로 데이터를 전송하고 디바이스에서 데이터를 수신할 수 있도록 할 수 있다.
사용자 인터페이스 입력 디바이스(2612)는 키보드; 통합 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스; 스캐너; 바코드 스캐너; 디스플레이에 통합된 터치스크린; 음성 인식 시스템, 마이크와 같은 오디오 입력 디바이스; 및 다른 유형의 입력 디바이스와 같은 하나 이상의 사용자 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)에 정보를 입력하기 위한 모든 가능한 유형의 디바이스 및 메커니즘을 포함하도록 의도된다.
하나 이상의 사용자 인터페이스 출력 디바이스(2614)는 디스플레이 서브시스템, 프린터, 또는 오디오 출력 디바이스 등과 같은 비시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이와 같은 평면 패널 디바이스, 또는 프로젝션 또는 다른 디스플레이 디바이스일 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)로부터 정보를 출력하기 위한 모든 가능한 유형의 디바이스 및 메커니즘을 포함하도록 의도된다. 하나 이상의 사용자 인터페이스 출력 디바이스(2614)는, 예를 들어, 그러한 상호 작용이 적절할 수 있는 경우 설명된 프로세스 및 그의 변형을 수행하는 애플리케이션과의 사용자 상호 작용을 용이하게 하는 사용자 인터페이스를 표시하는 데 사용될 수 있다.
저장 서브시스템(2606)은 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하기 위한 컴퓨터 판독 가능 저장 매체를 제공할 수 있다. 하나 이상의 프로세서에 의해 실행될 때, 애플리케이션(프로그램, 코드 모듈, 명령)은 본 개시의 하나 이상의 실시예의 기능을 제공할 수 있고, 저장 서브시스템(2606)에 저장될 수 있다. 이러한 애플리케이션 모듈 또는 명령은 하나 이상의 프로세서(2602)에 의해 실행될 수 있다. 저장 서브시스템(2606)은 본 개시에 따라 사용되는 데이터를 저장하기 위한 저장소를 추가로 제공할 수 있다. 예를 들어, 주 메모리(2608) 및 캐시 메모리(2602)는 프로그램 및 데이터를 위한 휘발성 저장소를 제공할 수 있다. 영구 저장소(2610)는 프로그램 및 데이터를 위한 영구(비 휘발성) 저장소를 제공할 수 있으며, 플래시 메모리, 하나 이상의 솔리드 스테이트 드라이브, 하나 이상의 자기 하드 디스크 드라이브, 연관된 이동식 매체가 있는 하나 이상의 플로피 디스크 드라이브, 연관된 이동식 매체가 있는 하나 이상의 광학 드라이브(예를 들어, CD-ROM 또는 DVD 또는 블루레이) 및 다른 유사한 저장 매체를 포함할 수 있다. 이러한 프로그램 및 데이터는 본 개시에 설명된 바와 같은 트랜잭션 및 블록과 연관된 데이터뿐만 아니라 본 개시에 설명된 바와 같은 하나 이상의 실시예의 단계를 수행하기 위한 프로그램을 포함할 수 있다.
컴퓨팅 디바이스(2600)는 휴대용 컴퓨터 디바이스, 태블릿 컴퓨터, 워크 스테이션, 또는 아래에서 설명되는 임의의 다른 디바이스를 포함하는 다양한 유형일 수 있다. 추가적으로, 컴퓨팅 디바이스(2600)는 하나 이상의 포트(예를 들어, USB, 헤드폰 잭, 라이트닝 커넥터 등)를 통해 컴퓨팅 디바이스(2600)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(2600)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성된 복수의 포트를 포함할 수 있다. 따라서, 이 디바이스는 광학 신호를 처리를 위해 디바이스를 컴퓨팅 디바이스(2600)에 연결하는 포트를 통해 전송될 수 있는 전기 신호로 변환하도록 구성될 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 20에 도시된 컴퓨팅 디바이스(2600)에 대한 설명은 디바이스의 바람직한 실시예를 설명하기 위한 특정 예로서만 의도된다. 도 20에 도시된 시스템보다 더 많거나 더 적은 구성요소를 갖는 많은 다른 구성이 가능하다.
위에서 언급된 실시예는 발명을 제한하기보다는 예시하며, 당업자는 첨부된 청구 범위에 의해 정의된 발명의 범위를 벗어나지 않고 많은 대안적인 실시예를 설계할 수 있다는 점에 유의하여야 한다. 청구항에서, 괄호 안에 있는 참조 기호는 청구항을 제한하는 것으로 해석되어서는 안된다. "포함하는" 및 "포함한다" 등의 단어는 청구 범위 또는 명세서 전체에 나열된 것 이외의 요소 또는 단계의 존재를 배제하지 않는다. 본 명세서에서 "포함하다"는 "포함하거나 구성된다"를 의미하고, "포함하는"은 "포함하거나 구성되는"을 의미한다. 요소의 단수 참조는 그러한 요소의 복수 참조를 배제하지 않으며 그 반대의 경우도 마찬가지이다. 발명은 몇몇 별개의 요소를 포함하는 하드웨어에 의해, 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 장치 청구항에서, 이러한 수단 중 몇몇은 하나의 동일한 하드웨어 항목에 의해 구현될 수 있다. 특정 조치가 서로 다른 종속 항에 언급되어 있다는 단순한 사실은 이러한 조치의 조합이 이점으로 사용될 수 없음을 의미하지 않는다.

Claims (16)

  1. 블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 방법에 있어서,
    블록체인의 적어도 하나의 제1 블록체인 트랜잭션을 생성하는 것-상기 제1 데이터가 적어도 하나의 상기 제1 블록체인 트랜잭션에 저장되고 제1 접근 데이터가 없으면 제1 참여자가 접근할 수 없음; 및
    상기 블록체인의 제2 블록체인 트랜잭션을 생성하는 것-상기 제2 블록체인 트랜잭션은 상기 제1 참여자가 상기 제1 접근 데이터를 사용할 수 있게 하는 수단을 포함함-을 포함하는 방법.
  2. 제1항에 있어서, 적어도 하나의 상기 제1 블록체인 트랜잭션은
    이전 블록체인 트랜잭션의 각 출력인 적어도 하나의 각 입력을 가지고, 상기 출력은 암호화 시스템의 각 개인 키를 통해 상환 가능(redeemable)하고, 상기 제1 데이터는 상기 암호화 시스템을 통해 암호화되는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 제1 참여자에 의한 상기 제1 데이터에 대한 접근은 상기 제1 참여자가 적어도 하나의 상기 제1 블록체인 트랜잭션과 관련된 적어도 하나의 제3 블록체인 트랜잭션에 추가 데이터를 저장할 수 있도록 하는 방법.
  4. 임의의 전술한 청구항 중 어느 한 항에 있어서, 상기 제2 블록체인 트랜잭션은 암호화폐의 양을 나타내는 제2 데이터를 포함하는 방법.
  5. 임의의 전술한 청구항 중 어느 한 항에 있어서, 상기 제2 블록체인 트랜잭션은 적어도 하나의 토큰을 나타내는 제2 데이터를 포함하는 방법.
  6. 제5항에 있어서, 적어도 하나의 상기 토큰은 일방 함수의 반복 적용을 통해 생성된 복수의 토큰 중 적어도 하나인 방법.
  7. 제4항 내지 제6항 중 어느 한 항에 있어서,
    상기 제2 블록체인 트랜잭션의 적어도 하나의 출력의 미상환(non-redemption)의 경우 상기 제2 데이터의 적어도 일부를 환불하기 위한 적어도 하나의 제4 블록체인 트랜잭션을 생성하는 것을 더 포함하는 방법.
  8. 제7항에 있어서, 적어도 하나의 상기 제4 블록체인 트랜잭션은 소정 기간 이후에만 상환 가능한 적어도 하나의 출력을 갖는 방법.
  9. 제7항 또는 제8항에 있어서, 적어도 하나의 상기 제4 블록체인 트랜잭션은 소정 수의 블록 이후에만 상환 가능한 적어도 하나의 출력을 갖는 방법.
  10. 임의의 전술한 청구항 중 어느 한 항에 있어서, 적어도 하나의 상기 제1 블록체인 트랜잭션은 상기 제1 참여자가 상기 제1 접근 데이터를 사용할 수 있게 하는 데이터를 포함하는 스크립트를 통해 상환 가능한 적어도 하나의 출력을 갖는 방법.
  11. 제10항에 있어서, 상기 스크립트는 일방 함수의 입력이 결정될 수 있게 하는 데이터를 포함하는 방법.
  12. 제11항에 있어서, 적어도 하나의 상기 일방 함수는 해시 함수인 방법.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서, 상기 스크립트는 상기 제1 참여자에 의하여 공개-개인 키 쌍의 개인 키가 결정될 수 있게 하는 데이터를 포함하는 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 제1 참여자가 상기 제1 접근 데이터를 사용할 수 있게 하는 데이터가 결정될 수 있도록 상기 제1 참여자와 제2 참여자 사이에서 제1 비밀을 안전하게 공유하는 것을 더 포함하는 방법.
  15. 프로세서; 및
    상기 프로세서에 의한 실행의 결과로, 시스템이 제1항 내지 제14항 중 어느 한 항에 청구된 컴퓨터 구현 방법의 임의의 실시예를 수행하도록 하는, 실행 가능한 명령을 포함하는 메모리를 포함하는 컴퓨터 구현 시스템.
  16. 컴퓨터 시스템의 프로세서에 의해 실행된 결과, 상기 컴퓨터 시스템이 제1항 내지 제14항 중 어느 한 항에 청구된 방법의 실시예를 적어도 수행하도록 하는, 실행 가능한 명령을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020217019737A 2018-11-27 2019-11-14 블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 컴퓨터 구현 시스템 및 방법 KR20210096178A (ko)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
GBGB1819297.1A GB201819297D0 (en) 2018-11-27 2018-11-27 Computer implemented system and method
GB1819297.1 2018-11-27
GB1819290.6 2018-11-27
GBGB1819284.9A GB201819284D0 (en) 2018-11-27 2018-11-27 Computer implemented system and method
GB1819291.4 2018-11-27
GB1819299.7 2018-11-27
GBGB1819286.4A GB201819286D0 (en) 2018-11-27 2018-11-27 Computer implemented system and method
GB1819286.4 2018-11-27
GBGB1819293.0A GB201819293D0 (en) 2018-11-27 2018-11-27 Computer implemented system and method
GBGB1819290.6A GB201819290D0 (en) 2018-11-27 2018-11-27 Computer implemented system and method
GBGB1819291.4A GB201819291D0 (en) 2018-11-27 2018-11-27 Computer implemented system and method
GB1819284.9 2018-11-27
GB1819293.0 2018-11-27
GBGB1819299.7A GB201819299D0 (en) 2018-11-27 2018-11-27 Computer implemented system and method
PCT/IB2019/059809 WO2020109913A1 (en) 2018-11-27 2019-11-14 Computer implemented system and method for enabling access to data stored on a blockchain

Publications (1)

Publication Number Publication Date
KR20210096178A true KR20210096178A (ko) 2021-08-04

Family

ID=68621343

Family Applications (8)

Application Number Title Priority Date Filing Date
KR1020217019738A KR20210096179A (ko) 2018-11-27 2019-11-14 블록체인 상에 데이터를 저장하는 컴퓨터 구현 시스템 및 방법
KR1020217019737A KR20210096178A (ko) 2018-11-27 2019-11-14 블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 컴퓨터 구현 시스템 및 방법
KR1020217019375A KR20210092817A (ko) 2018-11-27 2019-11-14 블록체인 네트워크를 통한 효율적이고 안전한 데이터 처리, 접근 및 전송을 위한 시스템 및 방법
KR1020217019723A KR20210096176A (ko) 2018-11-27 2019-11-14 피어-투-피어 네트워크를 통한 데이터 저장, 리트리브 및 통신을 위한 컴퓨터 구현 시스템 및 방법
KR1020217019551A KR20210092825A (ko) 2018-11-27 2019-11-14 블록체인 상에 데이터를 저장하는 컴퓨터 구현 시스템 및 방법
KR1020217019374A KR20210094606A (ko) 2018-11-27 2019-11-14 블록체인 네트워크를 통한 효율적이고 안전한 데이터 처리, 접근 및 전송을 위한 시스템 및 방법
KR1020217019724A KR20210095915A (ko) 2018-11-27 2019-11-14 블록체인 네트워크를 통한 효율적이고 안전한 데이터 처리, 접근 및 전송을 위한 시스템 및 방법
KR1020217018806A KR20210092802A (ko) 2018-11-27 2019-11-27 블록체인 네트워크를 통한 데이터의 효율적이고 안전한 처리, 접근 및 전송을 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217019738A KR20210096179A (ko) 2018-11-27 2019-11-14 블록체인 상에 데이터를 저장하는 컴퓨터 구현 시스템 및 방법

Family Applications After (6)

Application Number Title Priority Date Filing Date
KR1020217019375A KR20210092817A (ko) 2018-11-27 2019-11-14 블록체인 네트워크를 통한 효율적이고 안전한 데이터 처리, 접근 및 전송을 위한 시스템 및 방법
KR1020217019723A KR20210096176A (ko) 2018-11-27 2019-11-14 피어-투-피어 네트워크를 통한 데이터 저장, 리트리브 및 통신을 위한 컴퓨터 구현 시스템 및 방법
KR1020217019551A KR20210092825A (ko) 2018-11-27 2019-11-14 블록체인 상에 데이터를 저장하는 컴퓨터 구현 시스템 및 방법
KR1020217019374A KR20210094606A (ko) 2018-11-27 2019-11-14 블록체인 네트워크를 통한 효율적이고 안전한 데이터 처리, 접근 및 전송을 위한 시스템 및 방법
KR1020217019724A KR20210095915A (ko) 2018-11-27 2019-11-14 블록체인 네트워크를 통한 효율적이고 안전한 데이터 처리, 접근 및 전송을 위한 시스템 및 방법
KR1020217018806A KR20210092802A (ko) 2018-11-27 2019-11-27 블록체인 네트워크를 통한 데이터의 효율적이고 안전한 처리, 접근 및 전송을 위한 시스템 및 방법

Country Status (8)

Country Link
US (8) US20220294608A1 (ko)
EP (8) EP3888296A1 (ko)
JP (8) JP2022507784A (ko)
KR (8) KR20210096179A (ko)
CN (8) CN113169877A (ko)
SG (8) SG11202104679XA (ko)
TW (6) TW202030669A (ko)
WO (8) WO2020109908A1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11887112B2 (en) * 2019-01-03 2024-01-30 American Express Travel Related Services Company, Inc Hybrid identity as a service for decentralized browser based wallets
GB201913144D0 (en) 2019-09-12 2019-10-30 Nchain Holdings Ltd Sharing data via transactions of a blockchain
US11507883B2 (en) * 2019-12-03 2022-11-22 Sap Se Fairness and output authenticity for secure distributed machine learning
US11522670B2 (en) * 2019-12-04 2022-12-06 MaataData, Inc. Pyramid construct with trusted score validation
US11954678B2 (en) 2019-12-06 2024-04-09 Mastercard International Incorporated Method and system for communication between blockchains on heterogeneous blockchain networks
US11816662B2 (en) * 2019-12-06 2023-11-14 Mastercard International Incorporated Method and system for enabling communication between blockchains on heterogeneous blockchain networks
GB2592211A (en) * 2020-02-19 2021-08-25 Nchain Holdings Ltd Adapting connections of a layered network
EP4107903A4 (en) * 2020-02-21 2023-08-23 SDSE Networks, Inc. SECURE COMMUNICATIONS PROCESS AND SYSTEM
US20210295279A1 (en) * 2020-03-20 2021-09-23 Mastercard International Incorporated Method and system to manage dispute resolution via digital asset network
GB2595927A (en) * 2020-06-12 2021-12-15 Nchain Holdings Ltd File verification system and method
CN111884926B (zh) * 2020-06-18 2021-09-17 北京邮电大学 一种基于区块链的域间路由安全扩展方法及系统
CN111835500B (zh) * 2020-07-08 2022-07-26 浙江工商大学 基于同态加密与区块链的可搜索加密数据安全共享方法
US11741083B2 (en) * 2020-07-24 2023-08-29 International Business Machines Corporation Cross-shard private atomic commit
CN112637330B (zh) * 2020-12-22 2022-05-10 山东大学 区块链大文件副本选址方法、系统、设备及存储介质
TWI755210B (zh) * 2020-12-22 2022-02-11 天宿智能科技股份有限公司 基於區塊鏈的允許確認身分之匿名揭露暨多對多承認之系統及其方法
WO2022141057A1 (zh) * 2020-12-29 2022-07-07 合肥达朴汇联科技有限公司 区块链匿名用户审计方法、电子设备及存储介质
CN112613060B (zh) * 2021-01-05 2023-11-17 福建中科星泰数据科技有限公司 基于联盟区块链的多节点存储系统及方法
GB202101589D0 (en) * 2021-02-05 2021-03-24 Nchain Holdings Ltd Blockchain tree structure
CN113014563B (zh) * 2021-02-10 2022-03-25 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及系统
GB202104312D0 (en) * 2021-03-26 2021-05-12 Nchain Licensing Ag Computer-implemented method & system
CN113569262B (zh) * 2021-07-30 2022-05-10 立信(重庆)数据科技股份有限公司 基于区块链的密文存储方法及系统
GB2610375A (en) * 2021-08-18 2023-03-08 Nchain Licensing Ag Coordinating peer-to-peer data transfer using blockchain
CN113778759B (zh) * 2021-11-05 2022-03-25 北京泰策科技有限公司 一种数据分发过程中的失败检测及恢复方法
GB2613584A (en) * 2021-12-07 2023-06-14 Nchain Licensing Ag Data structure for orphan transactions
US20230291575A1 (en) * 2022-03-11 2023-09-14 Paypal, Inc. Pki-based authentication of blockchain addresses
GB2620401A (en) 2022-07-05 2024-01-10 Elas Holdings PTY LTD Computer implemented systems and methods
DE102022117713A1 (de) 2022-07-15 2024-01-18 AnyTangle UG (haftungsbeschränkt) System und Verfahren zur Langzeitarchivierung elektronischer Daten
KR20240062455A (ko) * 2022-11-01 2024-05-09 삼성전자주식회사 사용자 간의 nft 거래 방법을 제공하는 전자 장치 및 그 제어 방법
CN116401640B (zh) * 2023-06-07 2023-09-22 国网福建省电力有限公司 一种基于区块链的电力数据不一致的网络对齐系统及方法

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065359B2 (en) * 2004-09-16 2011-11-22 Nokia Corporation Integrated method and apparatus to manage mobile devices and services
US7487143B2 (en) * 2005-11-17 2009-02-03 International Business Machines Corporation Method for nested categorization using factorization
JP2007336464A (ja) * 2006-06-19 2007-12-27 Sony Corp 情報処理システム、暗号化装置および方法、復号化装置および方法、情報処理装置および方法、並びにプログラム
US7760873B2 (en) * 2006-06-30 2010-07-20 Intel Corporation Method and a system for a quick verification rabin signature scheme
US9858569B2 (en) * 2014-03-21 2018-01-02 Ramanan Navaratnam Systems and methods in support of authentication of an item
US10497037B2 (en) * 2014-03-31 2019-12-03 Monticello Enterprises LLC System and method for managing cryptocurrency payments via the payment request API
US10839020B2 (en) 2014-04-14 2020-11-17 Netspective Communications Llc Multi-source user generated electronic data integration in a blockchain-based transactional system
US9830593B2 (en) * 2014-04-26 2017-11-28 Ss8 Networks, Inc. Cryptographic currency user directory data and enhanced peer-verification ledger synthesis through multi-modal cryptographic key-address mapping
CN106664292A (zh) * 2014-05-09 2017-05-10 凡尔塔斯姆有限公司 可选地具有估值过滤器的用于低信任和零信任价值转移的设备、系统和方法
US10340038B2 (en) * 2014-05-13 2019-07-02 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain, systems and methods
US9336523B2 (en) * 2014-07-28 2016-05-10 International Business Machines Corporation Managing a secure transaction
CN105469510B (zh) * 2014-10-12 2018-01-09 吴思进 可预告延时支付或找回的加密货币钱包
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
US11200564B2 (en) * 2015-03-31 2021-12-14 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US11062303B2 (en) * 2015-06-08 2021-07-13 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
US9298806B1 (en) * 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
WO2017008084A1 (en) * 2015-07-09 2017-01-12 Sensoriant, Inc. Method and system for creating adaptive user interfaces using user provided and controlled data
US20190188700A1 (en) * 2017-12-15 2019-06-20 Fmr Llc Social Data Tracking Datastructures, Apparatuses, Methods and Systems
KR101637854B1 (ko) * 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
JP6608256B2 (ja) 2015-11-26 2019-11-20 株式会社bitFlyer Blockchain 電子データの存在証明プログラムおよび存在証明サーバ
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US10103885B2 (en) * 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
SG11201805472RA (en) 2016-02-23 2018-07-30 Nchain Holdings Ltd Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
SG10202011641RA (en) * 2016-02-23 2021-01-28 Nchain Holdings Ltd Tokenisation method and system for implementing exchanges on a blockchain
CN113595726A (zh) * 2016-02-23 2021-11-02 区块链控股有限公司 用于控制和分发数字内容的区块链实现的方法
GB2548802A (en) * 2016-03-22 2017-10-04 Bitcred Ltd Methods for creating and verifying an electronic user identity
US11436593B2 (en) * 2016-03-31 2022-09-06 Bitflyer Blockchain, Inc. Transaction processing device, transaction processing method, and program for same
CN106097030A (zh) * 2016-04-29 2016-11-09 北京太云科技有限公司 一种基于区块链的资产的数据处理方法、装置及系统
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
US10046228B2 (en) * 2016-05-02 2018-08-14 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
KR101780636B1 (ko) * 2016-05-16 2017-09-21 주식회사 코인플러그 인증 정보의 발급 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버
US10122661B2 (en) * 2016-06-10 2018-11-06 Salesforce.Com, Inc. Messaging systems and methods that employ a blockchain to ensure integrity of message delivery
GB201613176D0 (en) * 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
US11531974B2 (en) * 2016-08-17 2022-12-20 International Business Machines Corporation Tracking transactions through a blockchain
US10460118B2 (en) * 2016-08-30 2019-10-29 Workday, Inc. Secure storage audit verification system
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
US10749684B2 (en) * 2016-09-30 2020-08-18 Entrust, Inc. Methods and apparatus for providing blockchain participant identity binding
CN106533661B (zh) * 2016-10-25 2019-07-19 北京大学 基于组合公钥的密码学货币地址在线生成方法
US20180165588A1 (en) * 2016-12-09 2018-06-14 Cognitive Scale, Inc. Providing Healthcare-Related, Blockchain-Associated Cognitive Insights Using Blockchains
JP6296630B1 (ja) * 2016-12-09 2018-03-20 株式会社大和総研 分散型台帳システムおよびプログラム
CN106682457A (zh) * 2016-12-16 2017-05-17 北京握奇智能科技有限公司 一种基于区块链技术的图片版权保护方法和系统
US11831748B1 (en) * 2017-01-17 2023-11-28 Justin Fisher Method and system for utilizing the infrastructure of a blockchain to enhance the degree of security and veracity of another blockchain
US9998286B1 (en) * 2017-02-17 2018-06-12 Accenture Global Solutions Limited Hardware blockchain consensus operating procedure enforcement
JP6961960B2 (ja) * 2017-03-13 2021-11-05 ソニーグループ株式会社 情報処理装置および情報処理方法
US10102526B1 (en) * 2017-03-31 2018-10-16 Vijay K. Madisetti Method and system for blockchain-based combined identity, ownership, integrity and custody management
GB201705858D0 (en) * 2017-04-11 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
US10129269B1 (en) * 2017-05-15 2018-11-13 Forcepoint, LLC Managing blockchain access to user profile information
WO2018209543A1 (zh) * 2017-05-16 2018-11-22 北京大学深圳研究生院 一种多层级区块链系统之间索引与链拓扑结构的维护方法
US10397328B2 (en) * 2017-05-17 2019-08-27 Nec Corporation Method and system for providing a robust blockchain with an integrated proof of storage
JP2020521257A (ja) * 2017-05-18 2020-07-16 コデックス エルエルシーCodex Llc ブロックチェーンを使用した分散型デジタルコンテンツ配信システムおよびプロセス
US10581621B2 (en) * 2017-05-18 2020-03-03 International Business Machines Corporation Enhanced chaincode analytics provenance in a blockchain
US10839379B2 (en) * 2017-07-20 2020-11-17 Chicago Mercantile Exchange Inc. Blockchain including linked digital assets
CN107273556A (zh) * 2017-08-23 2017-10-20 上海点融信息科技有限责任公司 区块链数据索引方法和设备
WO2019067585A1 (en) * 2017-09-29 2019-04-04 Apple Inc. SECURE SERVICE PROVIDER TRANSACTION DETAILS
CN107730225B (zh) * 2017-10-24 2021-07-06 广东工业大学 一种大数据交易方法、系统、设备及计算机存储介质
US11055419B2 (en) * 2017-12-01 2021-07-06 Alan Health and Science Decentralized data authentication system for creation of integrated lifetime health records
FR3076422B1 (fr) * 2017-12-29 2020-09-25 Commissariat Energie Atomique Methode d'echange de cles authentifie par chaine de blocs
US10320569B1 (en) * 2018-04-05 2019-06-11 HOTYB, Inc. Systems and methods for authenticating a digitally signed assertion using verified evaluators
CN110602050B (zh) * 2018-04-28 2022-01-07 腾讯科技(深圳)有限公司 区块链访问的鉴权方法和装置、存储介质、电子装置
CN108616539B (zh) * 2018-05-03 2019-08-20 东莞市翔实信息科技有限公司 一种区块链交易记录访问的方法及系统
CN108683509B (zh) * 2018-05-15 2021-12-28 北京创世智链信息技术研究院 一种基于区块链的安全交易方法、装置及系统
GB201809225D0 (en) * 2018-06-05 2018-07-25 Data Signals Ltd Method and apparatus for access control
US11924323B2 (en) * 2018-07-02 2024-03-05 International Business Machines Corporation On-chain governance of blockchain
US10826682B2 (en) * 2018-07-03 2020-11-03 Servicenow, Inc. Multi-instance architecture supporting trusted blockchain-based network
US11056981B2 (en) * 2018-07-07 2021-07-06 Intelesol, Llc Method and apparatus for signal extraction with sample and hold and release
US20200026834A1 (en) * 2018-07-23 2020-01-23 One Kosmos Inc. Blockchain identity safe and authentication system
US20200044860A1 (en) * 2018-07-31 2020-02-06 International Business Machines Corporation System and method for quantum resistant digital signature
US20230245247A1 (en) * 2018-08-28 2023-08-03 Meta Platforms, Inc. Online Platform for Digital Content via Blockchain
JP6786119B2 (ja) * 2018-09-21 2020-11-18 株式会社アクセル 取引装置、取引方法及び取引プログラム
US11062042B1 (en) * 2018-09-26 2021-07-13 Splunk Inc. Authenticating data associated with a data intake and query system using a distributed ledger system
US11924360B2 (en) * 2018-10-08 2024-03-05 Green Market Square Limited Blockchain timestamp agreement
US20230281606A1 (en) * 2022-03-01 2023-09-07 Artema Labs, Inc Partitioned Address Spaces in Blockchain Wallets

Also Published As

Publication number Publication date
WO2020109907A1 (en) 2020-06-04
EP3888298A1 (en) 2021-10-06
SG11202104292YA (en) 2021-06-29
JP2022509105A (ja) 2022-01-20
US20220027903A1 (en) 2022-01-27
WO2020109909A1 (en) 2020-06-04
SG11202104680TA (en) 2021-06-29
JP2022509957A (ja) 2022-01-25
SG11202104290WA (en) 2021-06-29
CN113169880A (zh) 2021-07-23
US20220027905A1 (en) 2022-01-27
WO2020109912A1 (en) 2020-06-04
KR20210092802A (ko) 2021-07-26
JP2022507797A (ja) 2022-01-18
US20210399898A1 (en) 2021-12-23
KR20210092817A (ko) 2021-07-26
JP2022508138A (ja) 2022-01-19
CN113169876A (zh) 2021-07-23
WO2020109913A1 (en) 2020-06-04
WO2020109910A1 (en) 2020-06-04
SG11202104679XA (en) 2021-06-29
KR20210094606A (ko) 2021-07-29
US20220294652A1 (en) 2022-09-15
TW202029694A (zh) 2020-08-01
EP3888293A1 (en) 2021-10-06
TWI829816B (zh) 2024-01-21
EP3888295A1 (en) 2021-10-06
WO2020110025A1 (en) 2020-06-04
TW202034654A (zh) 2020-09-16
TWI810410B (zh) 2023-08-01
WO2020109911A1 (en) 2020-06-04
US20220294608A1 (en) 2022-09-15
TW202029717A (zh) 2020-08-01
CN113169878A (zh) 2021-07-23
JP2022509788A (ja) 2022-01-24
SG11202104291PA (en) 2021-06-29
CN113169874A (zh) 2021-07-23
KR20210092825A (ko) 2021-07-26
US20220027491A1 (en) 2022-01-27
US20220029817A1 (en) 2022-01-27
KR20210096176A (ko) 2021-08-04
CN113169875A (zh) 2021-07-23
EP3888299A1 (en) 2021-10-06
EP3888294A1 (en) 2021-10-06
KR20210096179A (ko) 2021-08-04
JP7487196B2 (ja) 2024-05-20
JP2022507796A (ja) 2022-01-18
TWI810411B (zh) 2023-08-01
JP7467456B2 (ja) 2024-04-15
SG11202104677YA (en) 2021-06-29
CN113169879A (zh) 2021-07-23
EP3888297A1 (en) 2021-10-06
KR20210095915A (ko) 2021-08-03
JP2022509104A (ja) 2022-01-20
CN113169877A (zh) 2021-07-23
CN113169881A (zh) 2021-07-23
EP3888296A1 (en) 2021-10-06
TWI810409B (zh) 2023-08-01
SG11202105750SA (en) 2021-06-29
TW202037115A (zh) 2020-10-01
US20220027492A1 (en) 2022-01-27
SG11202104620SA (en) 2021-06-29
JP2022507784A (ja) 2022-01-18
TW202030668A (zh) 2020-08-16
TW202031013A (zh) 2020-08-16
EP3888300A1 (en) 2021-10-06
TW202030669A (zh) 2020-08-16
WO2020109908A1 (en) 2020-06-04

Similar Documents

Publication Publication Date Title
JP7467456B2 (ja) ブロックチェーンネットワークを介するデータの効率的且つセキュアな処理、アクセス、及び送信のためのシステム及び方法
TWI837227B (zh) 用於透過點對點網路儲存、提取及傳遞資料之電腦實施系統及方法