KR20210093896A - 탈중앙화 콘텐츠 패브릭 - Google Patents

탈중앙화 콘텐츠 패브릭 Download PDF

Info

Publication number
KR20210093896A
KR20210093896A KR1020217014799A KR20217014799A KR20210093896A KR 20210093896 A KR20210093896 A KR 20210093896A KR 1020217014799 A KR1020217014799 A KR 1020217014799A KR 20217014799 A KR20217014799 A KR 20217014799A KR 20210093896 A KR20210093896 A KR 20210093896A
Authority
KR
South Korea
Prior art keywords
content
fabric
content object
node
digital
Prior art date
Application number
KR1020217014799A
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
Application filed by 엘루비오, 아이엔씨. filed Critical 엘루비오, 아이엔씨.
Publication of KR20210093896A publication Critical patent/KR20210093896A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/4552Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • G06Q50/265Personal security, identity or safety
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/20Network management software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • H04L45/484Routing tree calculation using multiple routing trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • H04L67/327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Power Engineering (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Primary Health Care (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

탈중앙집중화 콘텐츠 패브릭의 양태를 구현하는 시스템, 장치, 디바이스, 컴퓨터 프로그램 프로덕트의 예가 개시된다. 일부 구현예에서, 하나 이상의 프로세서가 소프트웨어 스택을 실행시켜 인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에 위치하는 오버레이 네트워크의 복수의 패브릭 노드의 하나의 패브릭 노드를 정의할 수 있다. 정의된 패브릭 노드는, 클라이언트 디바이스로부터 디지털 콘텐츠에 대한 요청을 획득, 복수의 패브릭 노드 중 하나 이상으로부터, 오버레이 네트워크에서 디지털 콘텐츠의 적어도 일부분을 나타내는 콘텐츠 객체의 복수의 콘텐츠 객체 파트를 획득하며, 콘텐츠 객체 파트에 저장된 원시 데이터, 콘텐츠 객체 파트에 저장된 메타데이터, 및 콘텐츠 객체 파트에 저장된 빌드 명령을 이용해 소비재 미디어를 생성하고, 클라이언트 장치로 소비재 미디어를 제공하도록 구성된다. 일부 경우, 소비재 미디어는 블록체인에 저장된 디지털 계약을 이용해 더 생성된다.

Description

탈중앙화 콘텐츠 패브릭
참조에 의한 포함
본 출원의 일부로서 이 명세서가 PCT 신청서와 함께 제출된다. PCT 신청서에서 식별되는 본 출원이 우선권을 주장하는 각각의 출원이 그 전체가 모든 목적으로 본 명세서에서 참조로서 포함된다.
저작권 공지
본 특허 문서의 개시 내용의 일부는 저작권 보호의 대상이 되는 사항을 포함한다. 저작권자는 미국 특허 상표 국 파일 또는 기록에 나타나는 바와 같은 특서 문서 또는 특허 개시 내용의 임의의 자에 의한 복사 재생산에 어떠한 이의도 갖지 않지만, 그 밖의 다른 경우라면 저작권 보호 대상이 될 것이다.
기술 분야
본 특허 문서는 일반적으로 데이터 네트워크를 통한 디지털 콘텐츠 라우팅과 관련된다. 더 구체적으로, 이 특허 문서는 인터넷 프로토콜 레이어 위에 위치한 오버레이 네트워크를 제공하는 탈중앙집중형 콘텐츠 패브릭(decentralized content fabric)을 사용하여 디지털 콘텐츠를 입수, 관리 및 배포하는 기법을 개시한다.
인터넷을 통한 디지털 콘텐츠 소비는 폭발적으로 증가하고 있다. 많은 이들이 인터넷의 가치가 이제 데이터에서 사용자의 관심으로 옮겨 졌다고 주장한다. 일부 예측에서는 2021년 인터넷 트래픽의 80% 이상이 비디오가 될 것으로 추정된다. 이 중, 라이브 콘텐츠의 점유율은 2013년 추정 2%에서 2021년 13 %로 가장 빠르게 증가하고 있다. 그리고,(광고에 의해 주도되는) 수익 인센티브가 사용자 관심을 극대화하는 것과 직접적으로 일치하는 거대 소셜 미디어, 검색 및 소매판매 플랫폼의 주류 가용성과 사용으로 인해, 가치의 핵심이 데이터에서 사용자 관심으로 옮겨졌다.
그러나, 이러한 배경에서, 웹 데이터(대형 콘텐츠가 아닌)에 대해 개방적이고 확장 가능한 인터넷의 기본 기술은 크게 발전하지 않았다. 대신, 20년 동안 웹 데이터(문서)를 서비스하기 위해 개방형 패킷 기반 라우팅 인터넷에 추가로 등장한 "클라이언트-서버-에지-캐시(client-server-edge-cache)" 아키텍처는 디지털 콘텐츠를 지원하기 위해 확장되었다. 이 디자인의 부조화를 인식하는 것은 어렵지 않다: 결국, 디지털 콘텐츠는 일반적으로 웹 문서보다 훨씬 더 크고 인터넷 코어에서 엄청나게 더 많은 트래픽을 요구하며, 테라 바이트(terabyte), 페타 바이트(petabyte) 및 제타 바이트(zettabyte)의 스토리지를 소모한다. 단편적인 디지털 권한 관리(DRM: digital rights management)와 혼합된 디바이스 포맷이 폭발적으로 증가함에 따라 매우 많은 최종 패키지 포맷으로 버전변경(re-version)되고 에지 캐싱 요건과 조합되어, 에지 캐시를 인기 있는 콘텐츠로 "웜(warm)"으로 유지하기 위해 인터넷 코어를 통해 소스로부터 푸시되어야 할 바이트를 추가로 증가시키고 전체 공급 체인에 걸쳐 스토리지 요건을 증가시켰다. 마지막으로, "엣지에서의 푸시 앤 캐시" 모델은 대화형 라이브 소스의 지속적으로 변화하는 콘텐츠에 보조를 맞추기에는 너무 느리다.
경제적 측면에서, 기존의 스토리지 및 콘텐츠 전송 제공자, 주로 콘텐츠 전송 네트워크(CDN) 및 클라우드 벤더가 높은 수익을 가지며 일부는 비디오에 대한 소비자 수요로 과열된 이 확고한 레거시 아키텍처로부터 직접 높은 수익을 얻고 있다. 일부 추정에 따르면, 인터넷 트래픽의 71%가 2021년까지 CDN(가령, 클라우드 CDN)에 의해 전달될 것으로 예상된다. 자체 인프라를 구축한 오버더탑 인터넷 회사 또는 자체 대규모 네트워크를 업을 수 있는 인터넷 거물이 이러한 경제적 의존에서 성공적으로 벗어 났지만, 콘텐츠 소유자/제공자, 가령, 스튜디오, 방송사 및 새로운 독립 콘텐츠 제작자는 이 레거시 아키텍처를 현재 이용하기 위해 기존 인터넷 비즈니스 규모 인프라구조를 갖고 있지 않는다.
이 문제는 인터넷 라우팅이 운반되는 실제 콘텐츠에게 불투명하기 때문에 스트리밍 서비스의 일반적인 스트림으로부터의 패킷이 웹 사이트 도메인 서버와 사용자의 인터넷 서비스 제공자(ISP) 사이의 링크를 수백만 번 통과한다는 점에서 강조된다.
탈중앙화 콘텐츠 패브릭의 양태를 구현하는 시스템, 장치, 디바이스, 컴퓨터 프로그램 프로덕트의 예가 개시된다. 일부 구현예에서, 하나 이상의 프로세서가 소프트웨어 스택을 실행시켜 인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에 위치하는 오버레이 네트워크의 복수의 패브릭 노드의 하나의 패브릭 노드를 정의할 수 있다. 정의된 패브릭 노드는, 클라이언트 디바이스로부터 디지털 콘텐츠에 대한 요청을 획득, 복수의 패브릭 노드 중 하나 이상으로부터, 오버레이 네트워크에서 디지털 콘텐츠의 적어도 일부분을 나타내는 콘텐츠 객체의 복수의 콘텐츠 객체 파트를 획득하며, 콘텐츠 객체 파트에 저장된 원시 데이터, 콘텐츠 객체 파트에 저장된 메타데이터, 및 콘텐츠 객체 파트에 저장된 빌드 명령을 이용해 소비재 미디어를 생성하고, 클라이언트 장치로 소비재 미디어를 제공하도록 구성된다. 일부 경우, 소비재 미디어는 블록체인에 저장된 디지털 계약을 이용해 더 생성된다.
탈중앙화 콘텐츠 패브릭의 인프라구조, 기법 및 그 밖의 다른 양태를 구현하는 시스템, 장치, 방법 및 컴퓨터 프로그램 프로덕트의 예시가 본 명세서에 기재된다. 일부 구현예에서, 콘텐츠 패브릭은 낮은 레이턴시 및 일관된 높은 대역폭을 갖고, 네트워크, 가령, 인터넷을 통해 미디어 및 그 밖의 다른 디지털 콘텐츠를 입수, 관리 및 배포하도록 구성되며, 따라서 디지털 콘텐츠의 스트리밍 및 다운로딩이 종래의 콘텐츠 전달 시스템 및 기법과 비교해서 개선될 수 있다. 개시된 콘텐츠 패브릭의 일부 예를 사용하여, 미디어는 예를 들어, 고효율 및 저비용으로 전문적인 품질의 "인터넷 텔레비전(TV)"으로서 전 세계적으로 배포될 수 있다. 일부 구현예에서, 이러한 속성은 탈중앙화된(decentralized), 예를 들어 콘텐츠 패브릭의 "공유되지 않는" 인프라에 의해 가능해질 수 있다.
콘텐츠 패브릭의 일부 구현은 콘텐츠 라우팅 기법, 시청각 파이프라인(AV 파이프) 및 계약을 포함한다.
예를 들어 AV 파이프는 JIT 기법, 가령, JIT 트랜스코딩을 포함할 수 있다. AV 파이프는 최소한의 레이턴시를 갖고 완전-파이프라인 전송을 제공할 수 있다. 이러한 AV 파이프를 이용할 때, 예를 들어, 컴퓨팅 장치에서 소비자가 영화 또는 그 밖의 다른 비디오를 재생하기 위해 소비자의 장치 또는 웹 사이트에서 구현된 플레이어 애플리케이션 상의 재생을 클릭할 때, 콘텐츠 객체 파트를 찾기 위한 개시된 콘텐츠 라우팅 기법을 이용해, 영화의 콘텐츠 객체 파트가 오버레이 네트워크를 통해 인출되며, 이는 이하에서 더 상세히 기재된다. 일부 구현예에서, 콘텐츠 객체 파트는 콘텐츠 패브릭에서 저장, 네트워크 전송 및 캐싱의 기본 단위이다. 콘텐츠 객체 파트가 불러와질 때, 개시된 기법을 적용하면, 콘텐츠 객체 파트은 거의 실시간으로 트랜스코딩되어 종종 재생 데드라인, 가령, 2초만큼 앞설 수 있다. 개시된 기법 중 일부는 콘텐츠 객체 파트를 플레이어 애플리케이션에 서비스하기 위해 적용되어, 소비자는 인지할 수 있는 레이턴시를 최소한만 갖거나 레이턴시 없이 영화를 시청할 수 있다.
앞서 언급한 바와 같이, 일부 구현예에서, AV 파이프는 본 명세서에 개시된 콘텐츠 라우팅 기법과 함께 작동한다. 예를 들어, 라이브 스트리밍의 경우, 스트림의 콘텐츠 객체 파트를 인출할 시간이 거의 없다. 개시된 기법 중 일부가 수행되어, 클라이언트 요청, 가령, 소비자의 컴퓨팅 장치에서의 재생 커맨드를 이행하는 것과 관련된 콘텐츠 객체 파트가 실제 라이브스트림 바이트를 제외하고 제 위치에 있는 JIT 렌더링 파이프라인을 실현할 수 있다.
개시된 기법 중 일부는 본 명세서에서 계약이라고도 지칭되는 디지털 계약, 및 적용 가능한 블록체인 기법과 관련된다. 일부 구현예에서, 계약 및 계약과 연관된 콘텐츠 객체 파트의 다른 버전은 블록체인에 저장될 수 있다. 예를 들어, 콘텐츠 객체 파트에 대한 버전 증명은 해쉬 트리를 사용하여 생성될 수 있으며, 읽기 작업이 수행될 때 버전 증명이 검증될 수 있다. 일부 구현예에서, 버전 증명 자체는 블록체인 스마트 계약에 저장된 것의 일부이다. 그리고 업데이트 동작이 있을 때, 콘텐츠가 변경된 업데이트된 콘텐츠 객체 파트의 버전 증명이 블록체인 스마트 계약에 저장될 수 있다. 따라서 특정 콘텐츠의 입증 가능성은 이러한 콘텐츠에 대한 블록체인 기록에 의해 제공될 수 있다.
일부 구현예에서, 종종 소프트웨어 스택을 실행하는 호스트 컴퓨팅 장치로서 구현되는 패브릭 노드도 계약을 가진다. 이들 패브릭 노드는 콘텐츠 패브릭의 양태를 구현하는 시스템의 작업자로 여겨질 수 있다. 계약을 패브릭 노드에 할당함으로써, 신뢰되는 작업을 기록할 수 있다. 따라서 예를 들어 패브릭 노드가 암호화되지 않은 콘텐츠에 대해 JIT 트랜스코딩을 수행할 때 이러한 트랜스코딩 작업의 수행이 관련 패브릭 노드 계약에 대해 기록 될 수 있다.
개시된 기법 중 일부는 블록체인 스마트 계약을 사용하는 액세스 제어, 재-암호화를 위한 보안 모델과의 상호 대화, 및 블록체인 렛저에서 계약과 함께 콘텐츠 객체 파트의 버전/해쉬를 저장하는 기능을 제공한다. 추가 관련 기법은 소비자가 콘텐츠를 액세스하는 법과 암호화폐 지갑(crypto-wallet)을 사용하여 소비자의 데이터를 보호하는 법을 용이하게 한다. 이들 계약-관련 서비스는 일부 구현에 따라 콘텐츠 패브릭의 보안 및 블록체인 양태와 통합된다.
일부 구현예에서, 콘텐츠가 암호화되는 방식 및 액세스 제어가 통제되는 방식을 관리하기 위해 보안 모델이 확립된다. 예를 들어, 이러한 보안 모델은 무신뢰(trustless) 방식으로 수신자에게 콘텐츠를 서비스하기 위한 재-암호화 방법 및 동작뿐만 아니라 재-암호화 방법 및 동작을 제공할 수 있다.
개시된 구현예 중 일부는 주로 애플리케이션 소프트웨어로 구현되는 오버레이 네트워크를 제공하며, 이는 하드웨어 또는 저레벨 시스템 소프트웨어를 사용하여 구현된 동작을 갖는 종래의 네트워크와는 대조적이다. 용어 "오버레이(overlay)"는 본 명세서에 개시된 오버레이 네트워크의 예를 설명하기 위해 사용되는데, 그 이유는 양태 및 동작이 종종 종래의 인터넷 프로토콜(IP) 레이어 위에 위치하는 애플리케이션 레이어 또는 그 밖의 다른 유형의 레이어로 구현되기 때문이다. 따라서, 오버레이 네트워크가 애플리케이션 레이어에서 구현될 때, 개시된 기법 중 일부는 호스트에 의한 라우팅을 위한 종래의 기법과는 반대로, 콘텐츠에 의한 라우팅을 제공한다. 따라서 일부 구현예에서, 하드웨어, 가령, 호스트, 서버, 그 밖의 다른 유형의 컴퓨팅 장치가 콘텐츠에 의해 어드레싱될 때 관련성이 거의 없다. 즉, 애플리케이션 레이어에서 일반적으로 어떤 특정 컴퓨팅 장치가 콘텐츠를 저장하는지 또는 콘텐츠의 일부를 저장하는지는 중요하지 않다. 일부 구현예에서 콘텐츠 중심 라우팅은 오버레이 네트워크를 사용하는 개시된 콘텐츠 패브릭의 구현과 기존의 IP 기반 라우팅 사이에 근본적인 차이점을 제공한다. 예를 들어, 콘텐츠 데이터의 복제를 수반하는 종래의 호스트-중심 IP-기반 라우팅 스킴과 대조적으로, 개시된 콘텐츠 패브릭에 의해 사용되는 콘텐츠 표현은 탈-복제되고 원본 소스로부터 서비스될 수 있다.
일부 구현예에서, 변환 레이어(translation layer)가 애플리케이션 레이어와 종래의 IP 네트워크 구현 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 사이에 위치함으로써 변환 레이어가 중개자로서 역할 한다. 예를 들어, 변환 레이어는 애플리케이션 레이어에서 요청되는 콘텐츠를 저장하는 컴퓨팅 장치를 용이하게 결정할 수 있으며, IP를 통해 콘텐츠를 신뢰할만하게 전송하는 것을 촉진시킬 수 있다.
포함된 도면은 설명 목적을 가지며 개시된 시스템, 장치, 방법 및 컴퓨터 프로그램 프로덕트의 가능한 구조 및 동작의 예를 제공하기 위한 것에 불과하다. 이들 도면은 개시된 구현예의 사상 및 범위를 벗어나지 않고 해당 분야의 통상의 기술자에 의해 이뤄질 수 있는 형태 및 세부사항의 변경을 어떠한 식으로도 한정하지 않는다.
도면에서, 도 1-30은 일부 구현예에 따르는, 탈중앙화 콘텐츠 패브릭의 양태의 일부 시스템, 장치, 방법 및 컴퓨터 프로그램 프로덕트의 예를 도시한다.
도 1은 콘텐츠 패브릭 아키텍처의 일례를 도시한다.
도 2는 새 패브릭 노드가 콘텐츠 패브릭에 가입하기 위한 부트스트래핑 방법의 일례를 도시한다.
도 3은 도 2의 부트스트래핑 방법의 일례에서의 이벤트의 시퀀스의 예시를 도시한다.
도 4는 파티션을 패브릭 노드로 할당하기 위한 방법의 예시를 도시한다.
도 5는 콘텐츠 객체 파트를 패브릭 노드로 할당하기 위한 방법의 일례를 도시한다.
도 6은 콘텐츠 패브릭의 오버레이 네트워크를 재-파티셔닝하기 위한 방법의 일례를 도시한다.
도 7은 콘텐츠 객체 파트를 불러오기 위한 콘텐츠 라우팅 방법의 일례를 도시한다.
도 8은 제1 패브릭 노드가 콘텐츠 객체 파트를 갖지 않을 때 클라이언트가 콘텐츠 객체 파트에 대한 요청을 제1 패브릭 노드로 전송하는 것에 응답하여, 도메인 내 제1 패브릭 노드가 동일 도메인 내 제2 패브릭 노드로부터 콘텐츠 객체 파트를 획득하는 예시를 도시한다.
도 9는 지정된 파티션 레벨을 이용하는 콘텐츠 객체 파트의 위치를 도시하는 인터-도메인 라우팅 트리의 예시를 도시한다.
도 10은 제1 패브릭 노드가 콘텐츠 객체 파트를 갖지 않을 때, 클라이언트가 제1 패브릭 노드로 콘텐츠 객체 파트에 대한 요청을 전송하는 것에 응답하여, 제1 도메인 내 제1 패브릭 노드가 제1 도메인 외부의 제2 도메인 내 제2 패브릭 노드로부터 콘텐츠 객체 파트를 획득하는 예시를 도시한다.
도 11은 콘텐츠 객체 파트를 콘텐츠 패브릭으로 게시하기 위한 콘텐츠 라우팅 방법의 예를 도시한다.
도 12는 클라이언트당 베스트 수행 출구 노드 및 출구-기원 세그먼트를 예측하기 위한 연속적인 기계 학습(ML) 방법의 일례를 도시한다.
도 13은 타임프레임에서 훈련, 검증, 및 테스트를 위한 스플릿 스킴의 하나의 예시를 보여주며, 여기서, 검증을 위해 선택된 데이터 세트의 타임프레임이 훈련을 위한 타임프레임에 비해 하나의 예측 구간씩 앞으로 이동된다.
도 14는 콘텐츠 패브릭에서 콘텐츠 객체 구조의 예시를 도시한다.
도 15는 해쉬에 의해 콘텐츠 객체를 찾기 위한 방법의 일례를 도시한다.
도 16은 콘텐츠 객체 파트 및 메타데이터에 대하여 콘텐츠 프로그램을 실행하기 위한 방법의 일례를 도시한다.
도 17은 콘텐츠 객체 버저닝의 일례를 도시한다.
도 18은 콘텐츠 객체에서의 메타데이터의 검증을 위한 방법의 일례를 도시한다.
도 19는 전체 콘텐츠 객체 파트의 검증을 위한 방법의 일례를 도시한다.
도 20은 전체 콘텐츠 객체 파트의 서브-부분의 검증을 위한 방법의 일례를 도시한다.
도 21은 콘텐츠 패브릭 내 적시(JIT: just-in-time) 트랜스코딩, 패키징 및 전송을 위한 방법의 일례를 도시한다.
도 22는 비트코드로 구현되는, 선택된 콘텐츠 유형의 입수 후 콘텐츠 패브릭 내 IMF 패키지 콘텐츠의 일례를 도시한다.
도 23은 상호운영 마스터 포맷(IMF: interoperable master format) 패키지로부터 전달 가능한 소비자 스트리밍의 영어 버전에 대한 설명의 일례이며, 패키지는 다수의 언어 버전을 특정한다.
도 24는 출력 스트림을 생성할 때 비트코드에 의해 워터마크의 콘텐츠, 치수 및 배치를 특정하는 데 사용되는 IMF 소스 패키지로부터 생성되는 원본 콘텐츠 객체에 저장되는 메타데이터의 예시를 도시한다.
도 25는 콘텐츠 보안 및 블록체인 제어를 제공하는 콘텐츠 패브릭 동작의 흐름의 예시를 도시한다.
도 26은 콘텐츠 패브릭에서 보안 콘텐츠 생성을 구현하기 위한 방법의 일례를 도시한다.
도 27은 콘텐츠 패브릭에서 보안 콘텐츠 액세스를 구현하기 위한 방법의 일례를 도시한다.
도 28은 콘텐츠에 대한 투명하고, 입증 가능한 레코드 체인의 일례를 도시한다.
도 29 및 30은 콘텐츠 객체 검증 트리의 일례를 도시한다.
개시된 구현에 따른 시스템, 장치, 방법 및 컴퓨터 프로그램 제품의 예가 이 섹션에서 설명된다. 이러한 예는 문맥을 추가하고 개시된 구현의 이해를 돕기 위해 제공될 뿐이다. 따라서 이러한 특정 세부 사항의 일부 또는 전부 없이 구현이 실시될 수 있음이 해당 분야의 통상의 기술자에게 자명할 것이다. 또 다른 경우, 구현을 불필요하게 모호하게 하는 것을 회피하기 위해 특정 동작이 상세히 기재되지 않는다. 그 밖의 다른 적용예가 가능한데, 즉, 다음의 예시가 범위 또는 설정에서 결정적이거나 제한적인 것으로 간주되어서는 안 된다.
다음의 상세한 설명에서, 설명의 일부를 형성하고 특정 구현을 예시로서 도시한 첨부 도면을 참조한다. 이들 구현은 해당 업계 종사자가 개시된 구현을 실시할 수 있도록 충분히 상세하게 설명되어 있지만, 이러한 예는 한정이 아님이 이해되어야 한다, 즉, 그 밖의 다른 구현예가 사상 및 범위 내에서 사용되고 변경될 수 있다. 예를 들어, 본 명세서에 도시되고 기재된 방법의 동작들은 반드시 지시된 순서대로 수행되는 것은 아니다. 방법은 지시된 것보다 더 많거나 더 적은 동작을 포함할 수 있음이 또한 이해되어야 한다. 일부 구현예에서, 개별 동작으로서 기본 명세서에 기재된 동작들이 조합될 수 있다. 반대로, 본 명세서에 단일 동작으로 기재될 수 있는 것이 다수의 동작으로 구현될 수 있다.
탈중앙화 콘텐츠 패브릭의 인프라구조, 기법 및 그 밖의 다른 양태를 구현하는 시스템, 장치, 방법 및 컴퓨터 프로그램 프로덕트의 예시가 본 명세서에 기재된다. 일부 구현예에서, 콘텐츠 패브릭은 낮은 레이턴시 및 일관된 높은 대역폭을 갖고, 네트워크, 가령, 인터넷을 통해 미디어 및 그 밖의 다른 디지털 콘텐츠를 입수, 관리 및 배포하도록 구성되며, 따라서 디지털 콘텐츠의 스트리밍 및 다운로딩이 종래의 콘텐츠 전달 시스템 및 기법과 비교해서 개선될 수 있다. 개시된 콘텐츠 패브릭의 일부 예를 사용하여, 미디어는 예를 들어, 고효율 및 저비용으로 전문적인 품질의 "인터넷 텔레비전(TV)"으로서 전 세계적으로 배포될 수 있다. 일부 구현예에서, 이러한 속성은 탈중앙화된(decentralized), 예를 들어 다음 중 하나 이상을 제공하는 콘텐츠 패브릭의 "공유되지 않는" 인프라에 의해 가능해질 수 있다:
무신뢰 보안 모델, 개방형 패브릭-확장 프로토콜을 통한 자체-확장(self-scaling), 및 콘텐츠 소유자, 시청자, 후원자 및 인프라구조 공급자가 혜택을 입을 수 있게 하는 강력한 인센티브,
콘텐츠-중심 저장 및 배포 구조를 통한 종래의 클라우드, 종래의 전달 네트워크(CDN) 및 디지털 자산 관리 아키텍처와 비교되는 대역폭 및 저장 효율성,
거의 실시간으로 콘텐츠까지의 최상의 경로를 학습하고 적절한 서버를 빠르게 찾음으로써, 주문형(on demand) 및 실시간 콘텐츠에 대한 높은 속도 및 낮은 레이턴시
출력 버전을 서비스할 때 콘텐츠가 자신의 코드 및 적시(JIT: just-in-time) 애플리케이션을 운반할 수 있게 하는 프로그램 가능한 출력, 및
파생물을 포함하는 버전 히스토리가 투명하고 위조-방지되며 콘텐츠 원작자가 입증 가능한 보증 가능한 위조-방지 콘텐츠.
일부 구현예에서, 콘텐츠 패브릭은 다음 중 하나 이상을 포함한다:
탈중앙집중형, 낮은 레이턴시 및 효율적인 콘텐츠 라우팅 시스템,
메타데이터, 원시 데이터 및 코드의 효율적인 분산형 저장 모델 및 JIT 구성,
콘텐츠의 프록시 재-암호화 및 블록체인 상의 스마트 계약 크랜잭션을 통한 콘텐츠 패브릭에서의 콘텐츠 액세스의 인가로 달성되는 블록체인 제어되는 콘텐츠 액세스를 갖는 무신뢰 보안 모델,
블록체인 트랜잭션에 의해 지원되는 고속의 입증 가능한 콘텐츠 버전 히스토리로 구현되는 콘텐츠 무결성 검증 및 기원 추적 가능성, 및
서비스 레벨 목표를 충족하면서 공급과 수요의 균형을 맞추기 위한 가격 인센티브를 허용하는 계측 및 보상 시스템.
콘텐츠 패브릭의 일부 구현은 콘텐츠 라우팅 기법, 시청각 파이프라인(AV 파이프) 및 계약을 포함한다.
예를 들어 AV 파이프는 JIT 기법, 가령, JIT 트랜스코딩을 포함할 수 있다. AV 파이프는 최소한의 레이턴시를 갖고 완전-파이프라인 전송을 제공할 수 있다. 이러한 AV 파이프를 이용할 때, 예를 들어, 컴퓨팅 장치에서 소비자가 영화 또는 그 밖의 다른 비디오를 재생하기 위해 소비자의 장치 또는 웹 사이트에서 구현된 플레이어 애플리케이션 상의 재생을 클릭할 때, 콘텐츠 객체 파트를 찾기 위한 개시된 콘텐츠 라우팅 기법을 이용해, 영화의 콘텐츠 객체 파트가 오버레이 네트워크를 통해 인출되며, 이는 이하에서 더 상세히 기재된다. 일부 구현예에서, 콘텐츠 객체 파트는 콘텐츠 패브릭에서 저장, 네트워크 전송 및 캐싱의 기본 단위이다. 콘텐츠 객체 파트가 불러와질 때, 개시된 기법을 적용하면, 콘텐츠 객체 파트은 거의 실시간으로 트랜스코딩되어 종종 재생 데드라인, 가령, 2초만큼 앞설 수 있다. 개시된 기법 중 일부는 콘텐츠 객체 파트를 플레이어 애플리케이션에 서비스하기 위해 적용되어, 소비자는 인지할 수 있는 레이턴시를 최소한만 갖거나 레이턴시 없이 영화를 시청할 수 있다.
앞서 언급한 바와 같이, 일부 구현예에서, AV 파이프는 본 명세서에 개시된 콘텐츠 라우팅 기법과 함께 작동한다. 예를 들어, 라이브 스트리밍의 경우, 스트림의 콘텐츠 객체 파트를 인출할 시간이 거의 없다. 개시된 기법 중 일부가 수행되어, 클라이언트 요청, 가령, 소비자의 컴퓨팅 장치에서의 재생 커맨드를 이행하는 것과 관련된 콘텐츠 객체 파트가 실제 라이브스트림 바이트를 제외하고 제 위치에 있는 JIT 렌더링 파이프라인을 실현할 수 있다.
개시된 기법 중 일부는 본 명세서에서 계약이라고도 지칭되는 디지털 계약, 및 적용 가능한 블록체인 기법과 관련된다. 일부 구현예에서, 계약 및 계약과 연관된 콘텐츠 객체 파트의 다른 버전은 블록체인에 저장될 수 있다. 예를 들어, 콘텐츠 객체 파트에 대한 버전 증명은 해쉬 트리를 사용하여 생성될 수 있으며, 읽기 작업이 수행될 때 버전 증명이 검증될 수 있다. 일부 구현예에서, 버전 증명 자체는 블록체인 스마트 계약에 저장된 것의 일부이다. 그리고 업데이트 동작이 있을 때, 콘텐츠가 변경된 업데이트된 콘텐츠 객체 파트의 버전 증명이 블록체인 스마트 계약에 저장될 수 있다. 따라서 특정 콘텐츠의 입증 가능성은 이러한 콘텐츠에 대한 블록체인 기록에 의해 제공될 수 있다.
일부 구현예에서, 종종 소프트웨어 스택을 실행하는 호스트 컴퓨팅 장치로서 구현되는 패브릭 노드도 계약을 가진다. 이들 패브릭 노드는 콘텐츠 패브릭의 양태를 구현하는 시스템의 작업자로 여겨질 수 있다. 계약을 패브릭 노드에 할당함으로써, 신뢰되는 작업을 기록할 수 있다. 따라서 예를 들어 패브릭 노드가 암호화되지 않은 콘텐츠에 대해 JIT 트랜스코딩을 수행할 때 이러한 트랜스코딩 작업의 수행이 관련 패브릭 노드 계약에 대해 기록 될 수 있다.
개시된 기법 중 일부는 블록체인 스마트 계약을 사용하는 액세스 제어, 재-암호화를 위한 보안 모델과의 상호 대화, 및 블록체인 렛저에서 계약과 함께 콘텐츠 객체 파트의 버전/해쉬를 저장하는 기능을 제공한다. 추가 관련 기법은 소비자가 콘텐츠를 액세스하는 법과 암호화폐 지갑(crypto-wallet)을 사용하여 소비자의 데이터를 보호하는 법을 용이하게 한다. 이들 계약-관련 서비스는 일부 구현에 따라 콘텐츠 패브릭의 보안 및 블록체인 양태와 통합된다.
일부 구현예에서, 콘텐츠가 암호화되는 방식 및 액세스 제어가 통제되는 방식을 관리하기 위해 보안 모델이 확립된다. 예를 들어, 이러한 보안 모델은 무신뢰(trustless) 방식으로 수신자에게 콘텐츠를 서비스하기 위한 재-암호화 방법 및 동작뿐만 아니라 재-암호화 방법 및 동작을 제공할 수 있다.
개시된 구현예 중 일부는 주로 애플리케이션 소프트웨어로 구현되는 오버레이 네트워크를 제공하며, 이는 하드웨어 또는 저레벨 시스템 소프트웨어를 사용하여 구현된 동작을 갖는 종래의 네트워크와는 대조적이다. 용어 "오버레이(overlay)"는 본 명세서에 개시된 오버레이 네트워크의 예를 설명하기 위해 사용되는데, 그 이유는 양태 및 동작이 종종 종래의 인터넷 프로토콜(IP) 레이어 위에 위치하는 애플리케이션 레이어 또는 그 밖의 다른 유형의 레이어로 구현되기 때문이다. 따라서, 오버레이 네트워크가 애플리케이션 레이어에서 구현될 때, 개시된 기법 중 일부는 호스트에 의한 라우팅을 위한 종래의 기법과는 반대로, 콘텐츠에 의한 라우팅을 제공한다. 따라서 일부 구현예에서, 하드웨어, 가령, 호스트, 서버, 그 밖의 다른 유형의 컴퓨팅 장치가 콘텐츠에 의해 어드레싱될 때 관련성이 거의 없다. 즉, 애플리케이션 레이어에서 일반적으로 어떤 특정 컴퓨팅 장치가 콘텐츠를 저장하는지 또는 콘텐츠의 일부를 저장하는지는 중요하지 않다. 일부 구현예에서 콘텐츠 중심 라우팅은 오버레이 네트워크를 사용하는 개시된 콘텐츠 패브릭의 구현과 기존의 IP 기반 라우팅 사이에 근본적인 차이점을 제공한다. 예를 들어, 콘텐츠 데이터의 복제를 수반하는 종래의 호스트-중심 IP-기반 라우팅 스킴과 대조적으로, 개시된 콘텐츠 패브릭에 의해 사용되는 콘텐츠 표현은 탈-복제되고 원본 소스로부터 서비스될 수 있다.
일부 구현예에서, 변환 레이어(translation layer)가 애플리케이션 레이어와 종래의 IP 네트워크 구현 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 사이에 위치함으로써 변환 레이어가 중개자로서 역할 한다. 예를 들어, 변환 레이어는 애플리케이션 레이어에서 요청되는 콘텐츠를 저장하는 컴퓨팅 장치를 용이하게 결정할 수 있으며, IP를 통해 콘텐츠를 신뢰할만하게 전송하는 것을 촉진시킬 수 있다.
도 1은 콘텐츠 패브릭 아키텍처의 예를 도시한다. 도 1에서, 탈중앙화 콘텐츠 패브릭 시스템(100)이 미디어, 가령, 비디오가 생성되게 할 수 있는 AV 파이프를 제공한다. 도 1의 예에서, 오버레이 네트워크를 구현하기 위한 다음의 세 가지 주요한 논리 레이어가 있다: 데이터 레이어(104), 코드 레이어(108) 및 계약 레이어(112). 미디어가 시스템(100)을 통해 불러와질 때 레이어(104, 108 및 112)는 하나 이상의 소프트웨어 스택을 이용해 거의 실제적으로 함께 작동하여, 오버레이 네트워크를 통해 미디어를 소비재(116)로서 서비스할 수 있다. 소프트웨어 스택을 포함함으로써, 시스템(100)은 수직 차원과 수평 차원 모두를 가진다: 즉, 데이터 레이어(104)로부터 코드 레이어(108) 및 계약 레이어(112)를 통해 소비자의 컴퓨팅 장치에서 소비재 미디어(116)의 형태로 출력을 제공하는 플레이(120)까지 수평 방향을 따라 공급체인에서 콘텐츠가 불러와지고 구성되고, 패브릭 노드에서의 소프트웨어 스택은 수직 차원을 제공하며, 이는 본 명세서에서 더 상세히 설명된다.
도 1의 예에서, 데이터 레이어(104)는 콘텐츠, 가령, 대형 콘텐츠를 저장하고 관리한다. 데이터 레이어(104)는 오버레이 네트워크를 통해 전달될 수 있는 콘텐츠에 대한 기본 구조를 제공한다. 데이터 레이어(104)는 데이터 파일 또는 원시 데이터의 그 밖의 다른 블록으로서 저장된 콘텐츠 객체 파트의 상호연결된 네트워크를 포함한다. 이하에서 더 자세히 설명될 바와 같이, 각각의 콘텐츠 객체 파트는 암호화를 사용하여 유지되는 단방향 해쉬 연산의 결과인 해쉬 값으로 식별될 수 있다. 일부 구현예에서, 콘텐츠 객체 파트는 일단 확정되면 불변이며 콘텐츠 객체 파트에 저장된 모든 데이터에 걸쳐 계산되는 해쉬 값에 의해 식별된다. 암호화 해쉬 방법을 사용하면 해쉬를 다시 계산함으로써 콘텐츠 객체 파트의 데이터의 진위여부(authenticity)가 검증될 수 있다. 해쉬는 데이터 중복제거의 기준 역할도 한다.
도 1의 예에서, 데이터 레이어(104)에 대한 입력으로서 제공된 미디어는 종종 이진 오디오, 비디오 및/또는 이미지의 형태로 "원시" 데이터(124)의 조각으로 분할된다. 데이터 레이어(104)에 대한 또 다른 입력은 소비재 미디어(116)의 형태로 출력을 만드는 방법을 설명하는 메타데이터(128)이며, 텍스트, 키 값 등의 형태일 수 있다. 본 명세서에서는 빌드(build) 명령(132)이라고도 지칭되는 빌딩 명령(132)은 코드 레이어(108) 내에 위치하며 원시 데이터(124) 및 메타데이터(128)로부터 소비재 미디어(116)를 빌드하도록 구성된다. 빌드 명령(132)은 안전한 방식으로의 실행을 용이하게 하기 위한 일종의 코드, 가령, 비트코드이다. 시스템(100)에서 나타나는 또 다른 유형의 코드는 계약 레이어(112)에 위치하고 종종 블록체인을 사용하여 구현되는 계약(136)이며, 이는 이하에서 더 상세히 기재된다.
구현예에서, 가령, 도 1에 도시된 예에서, 본 명세서에서 더 상세히 기재되는 콘텐츠 객체가 원시 데이터(124) 및 메타데이터(128)의 형태로 콘텐츠 객체 파트를 포함한다. 콘텐츠 객체는 빌드 명령(132) 및 계약(136)에 의해 동적이며 트랜잭션으로 만들어 질 수 있다. 따라서, 영화 또는 그 밖의 다른 유형의 미디어가 콘텐츠 객체 파트로부터 조립될 때, 콘텐츠 객체 파트로부터 영화를 렌더링하기 위한 코드가 즉시 이용 가능해진다.
도 1에서, 패브릭 로직은 코드 레이어(108)에서 구현될 수 있다. 따라서, 콘텐츠 라우팅 동작은 다른 동적 동작 중에서 코드 레이어(108)에 의해 제공될 수 있다. 코드 레이어(108)는 AV 파이프를 통해 소비되도록 미디어를 변환하고 전달하도록 구성된다. 일부 구현예에서, 연속적인 기계 학습은 태그 콘텐츠에 통합되고 그렇지 않으면 최고 대역폭, 최저 레이턴시 경로를 결정함으로써 코드 레이어(108)의 동작을 촉진시킬 수 있다. 코드 레이어(108)에서, 콘텐츠가 분류될 수 있고 콘텐츠 객체가 식별될 수 있다. 코드 레이어(108)는 사용자 요청에 따라 소비재 미디어 JIT를 생성할 수 있다. 코드 레이어(108)는 동적 개인화된 출력을 위해 원시 데이터, 메타데이터 및 코드를 결합하도록 프로그래밍 가능한다.
도 1에서, 계약 레이어(112)는 일부 구현예에서 블록체인 렛저를 통한 콘텐츠 액세스를 제어한다. 계약 레이어(112)는 예를 들어 무신뢰 암호화를 사용하여 액세스된 콘텐츠를 재-암호화함으로써 콘텐츠를 보호하도록 구성 될 수 있다. 계약 레이어(112)는 또한 예를 들어 암호화폐 지갑을 사용하여 사용자 데이터를 보호한다. 일부 구현예에서, 계약 레이어(112)는 콘텐츠를 제3자에게 투명하고 안전하게 제공할 수 있다. 또한, 일부 구현예에서, 집계된 사용자 데이터는 본 명세서에서 더 상세히 설명되는 바와 같이 "제로 지식(zero knowledge)"으로 수집될 수 있다. 일부 예에서, 계약 레이어(112)는 콘텐츠의 버전을 암호화 방식으로 증명하도록 구성될 수 있다. 버전 및 액세스 히스토리가 렛저에 기록될 수 있다. 또한, 패브릭 노드에 의한 작업 기여도가 기록되고 보상될 수 있다.
일부 구현예에서, 블록체인-기반 버저닝 프로토콜이 미디어에 대해 제공되며, 이는 이하에서 더 상세히 설명된다. 블록체인의 이러한 커스텀화 및 적용은, 버저닝/히스토리가 블록체인이 보유하는 것의 일부가 될 수 있기 때문에, 콘텐츠 객체 파트의 버전 히스토리의 탈중앙화 저장을 촉진시킬 수 있다. 많은 콘텐츠 객체 파트가 상이한 버전을 갖도록 진화하기 때문에 이러한 버저닝 기법이 적용 가능하다. 새 버전은 일반적으로 하나 이상의 변경에 의해 정의되며 이러한 변경은 종종 참조로 이루어진다. 버저닝은 단일 콘텐츠 객체 파트에서 발생하고 복수의 콘텐츠 객체 파트들 간에 발생할 수 있다.
일부 구현예에서, 콘텐츠 객체의 데이터는 본 명세서에서 콘텐츠 객체 파트로 지칭되는 데이터 컨테이너에 저장된다. 콘텐츠 객체는 콘텐츠 패브릭에서 사용되는 것을 용이하게 하도록 참조 객체 구조를 가질 수 있다. 비디오 스트림, 파일, 패키지, 파일 세트 또는 데이터 객체, 가령, 소프트웨어 프로그램 또는 게임, 유전자 데이터, 구조 또는 기계 설계 객체 등이 개시된 기법 중 일부를 이용해 콘텐츠 객체 구조를 갖도록 만들어질 수 있다. 하나 또는 복수의 콘텐츠 객체 구조가 미디어 또는 임의의 소스 데이터를 주입하는 파트로서 생성될 수 있다.
콘텐츠 객체 파트의 배포를 용이하게 할뿐만 아니라 도메인 내부 및 일부 경우에 거의 실시간으로 도메인 외부에서 콘텐츠 객체 파트를 찾는 것을 용이하게하는 콘텐츠 라우팅 방법의 상이한 구현예가 본 명세서에 개시된다. 일부 예에서, 인트라-도메인 라우팅 프로토콜이 제공된다. 일부 구현예에서 인트라-도메인 라우팅은 분산 및 탈중앙화 해싱과 통합될 수 있다. 본 명세서에서 더 상세히 설명될 바와 같이, 일부 예에서, 경량 라우팅 테이블을 갖는 인터-도메인 라우팅 프로토콜이 제공된다.
일부 구현예에서, 머신 러닝(ML) 방법이 사용되어 콘텐츠 패브릭 내 패브릭 노드들 중에서 베스트 매칭 경로를 선택할 수 있다. ML은 소비자의 컴퓨팅 장치와 통신하기 위한 특정 패브릭 노드를 식별하는 데 사용될 수 있을 뿐만 아니라 콘텐츠 객체 파트를 얻기 위한 업스트림 패브릭 노드를 식별하는 데도 사용될 수 있다.
일부 구현은 상이한 디지털 미디어 공급 체인, 가령, 단일 "마스터" 포맷을 사용하는 오버-더-탑 스트리밍 배포, 낮은 레이턴시 실시간 콘텐츠 배포, 동적 및 JIT 작업, 가령, 워터마킹, 클리핑(clipping), 검증 및 자동 메타데이터 태깅, 및 콘텐츠 소유자, 시청자, 후원자 및 사용권자 간 확장 가능한 값 교환을 위한 디지털 자산 시장에 의한 개인화된 콘텐츠에 적용 가능할 수 있다.
일부 구현예에서, 콘텐츠 패브릭은 다음을 포함하는 성능과 효율성을 높이기 위해 참여에 인센티브를 부여한다: 소유권자 및 사용권자를 위해, 권한 관리를 위한 확장 가능하며, 투명한 기능, 시청자 리포팅 및 콘텐츠 상거래, 사용자를 위해, 콘텐츠에 대한 관심을 위한 데이터 제공 투명성, 그리고 인프라구조 제공자를 위해, 대역폭, 계산 및 저장에 기여하는 자동 보상(지불 및 비용 상쇄) .
일부 구현예에서, 개시된 콘텐츠 패브릭은 분산 데이터, 변조 방지 스토리지 및 확장 가능한 저비용 소액 거래에 대한 대규모 합의를 위한 블록체인 탈중앙화된 렛저; 대규모 ML 및 딥-러닝; 및 그래픽 처리 장치(GPU), 텐서 처리 장치(TPU) 및 그 밖의 다른 특수 컴퓨팅 플랫폼을 갖춘 확장 가능한 컴퓨팅 인프라를 포함한다.. 또한 블록체인 렛저 및 스마트 계약, 암호화 경제학, 가령, 게임 이론, 탈중앙화 렛저 및 고전적인 시장 경제를 조합한 것이 탈중앙화 시스템에서 공급, 수요, 및 수행에 인센티브를 부여할 대규모 가격책정 시스템을 만들 수 있다.
오버레이 네트워크의 일부 구현예에서, 소프트웨어 스택은 관련 동작을 제공하고, 각각의 패브릭 노드는 동일한 소프트웨어 스택을 실행한다. 이 스택을 실행하는 패브릭 노드는 본 명세서에서 "콘텐츠 노드"라고도 지칭된다. 일부 구현예에서, 콘텐츠 패브릭은 패브릭 노드가 서로 통신하여 탈중앙화된 프레임워크를 이용해 콘텐츠를 안전하게 저장하고 서비스할 수 있는데, 즉, 임의의 중앙집중형 개체, 가령, 데이터베이스, 테이블, 렛저 등을 통해 어떠한 상태도 공유될 필요가 없다.
일부 구현예에서, 콘텐츠 및 메타데이터는 한 번 저장될 수 있으며 소비재 미디어는 요청시 렌더링된다. 내부적으로, 콘텐츠 패브릭에 의해 디지털 콘텐츠가 콘텐츠 객체 파트, 가령, 원시 데이터 및 메타데이터 및 원시 데이터 및 메타데이터를 미디어 버전을 산출하기 위한 서비스 시간에서 적시에(JIT) 조작하는 코드를 포함할 수 있는 객체 구조, 즉, 콘텐츠 객체에 저장될 수 있다. 원시 데이터 및 메타데이터를 조작하는 코드, 가령, 빌드 명령은 미디어의 유연한 재-사용을 위해,(확장을 위해) 소프트웨어 스택을 업데이트하고, 보안 및 계측을 위한 밴드박싱 없이 코드의 업데이트를 가능하게 한다.
일부 구현예에서, 소프트웨어 스택 또는 소프트웨어 스택이 실행되는 패브릭 노드가 평문으로 콘텐츠를 액세스할 필요 없이 그리고 콘텐츠의 암호 키를 액세흐하징 낳고, 콘텐츠가 암호화되고 인가된 수신자를 위한 재-암호화된다는 점에서, 콘텐츠 패브릭은 "무신뢰(trustless)"이다.
일부 구현예에서, 생성, 업데이트(쓰기) 및 보기(읽기)를 포함하는 콘텐츠 패브릭의 콘텐츠 객체에 대한 액세스는 소프트웨어 스택 내에서 실행되는 임베디드 블록체인 렛저 상의 트랜잭션에 의해 중재된다. 콘텐츠 패브릭의 애플리케이션 인터페이스는 블록체인 플랫폼 가상 머신, 가령, 이더리움(Ethereum) 가상 머신 및 따라서 블록체인 스마트 계약을 지원한다. 콘텐츠 객체에 대한 각각의 작업은 해당 객체에 대한 스마트 계약에 대한 트랜잭션으로서 구현될 수 있으며, 차례로 작업을 요청한 개체/사용자의 어드레스, 콘텐츠 객체의 식별자 및 트랜잭션의 임의의 세부 정보를 기록할 수 있다.
일부 구현예에서, 콘텐츠 작업은 프로그래밍 가능하다. 예를 들어 콘텐츠 객체에 대한 기본 스마트 계약은, 고유 상거래, 권한 관리, 및 작업흐름 능력을 제공하는 임의의 콘텐츠 작업 전 및 후에, 임의의 트랜잭션을 호출하는 것을 가능하게 하는 커스텀 삽입 포인트(후크)--계정의 신용 또는 차변, 이벤트 로깅, 인가, 검증 체크 등--을 가질 수 있다.
일부 구현예에서 콘텐츠 버전은 입증 가능하고 위조 방지된다. 컨텐트 객체는 객체의 무결성을 빠르게 검증하기 위해 버전 증명, 가령, 객체의 해쉬의 머클(Merkle) 트리 계산을 가질 수 있다. 머클 증명의 루트 값은 해당 콘텐츠 객체에 대한 블록체인 트랜잭션에 기록되어 개체의 버전 히스토리("누가 무엇을 언제 변경했는지)의 위조 방지 기록을 가능하게 한다.
개시된 콘텐츠 패브릭의 일부 구현예에서, 콘텐츠 라우팅 시스템은 원래의 분산 해쉬 테이블(DHT) 구조 및 전역적인 연속 ML을 사용하여, 오버레이 네트워크를 통해 콘텐츠 객체 파트를 찾아서, 해당 콘텐츠 객체 파트의 클라이언트라고도 지칭되는 클라이언트 장치로의 낮은 레이턴시 높은 대역폭 전달을 보장할 수 있다. 기존의 피어-투-피어 네트워크와 달리, 일부 구현예는 시스템이 패브릭 노드 수와 콘텐츠 객체 수가 거대한 규모로 증가하더라도 낮은 레이턴시 높은 대역폭을 제공한다. 마찬가지로, 개시된 시스템의 일부 구현예는 이러한 높은 성능을 유지하기 위해 직접적인 이익이 증가하도록 인센티브를 부여 받는다.
DHT에서, 네트워크의 패브릭 노드는 전체 네트워크에 걸쳐있는 해쉬 맵 내 버킷으로 취급될 수 있다. DHT는 각각의 패브릭 노드의 ID에 의해 키입력될 수 있으며 값은 이 패브릭 노드와 연관되거나 이에 의해 저장된 임의의 자원, 가령, 파일 해쉬 또는 키워드이다. 이러한 방식으로, 패브릭 노드 ID는 패브릭 노드의 식별자로서 역할할 뿐 아니라, 네트워크에 값의 세트를 찾기 위한 방향 맵으로서도 역할 수 있다. 일부 상황에서, DHT 특성의 쟁점은 DHT가 애플리케이션 또는 사용자 요청에 대한 응답으로 원하는 값을 리턴할 수 있는 패브릭 노드 ID를 찾기 위해 자신의 네트워크를 검색하는 데 사용하는 특정 방법이다.
일부 구현예에서, 각각의 패브릭 노드는 32 바이트 노드 ID로 식별되며, 이는 또한 임베디드 블록체인 렛저(ledger) 상의 노드 어드레스이기도 하다. 일부 경우, 콘텐츠 객체 파트는 라우팅 방법을 이용해 a) 패브릭 노드의 수 및 콘텐츠 패브릭 내콘텐츠 객체의 수가 증가하더라도 일관되게 낮은 레이턴시를 갖는 패브릭 노드 상에서 콘텐츠 객체 파트의 위치를 찾고, b) 새로운 패브릭 노드 및 콘텐츠가 추가될 때 콘텐츠를 이동시킬 것을 필요로 하지 않는 파티셔닝 방법을 이용해 패브릭 노드를 통해 공유될 수 있다.
일부 구현예에서, 파티셔닝 방법은 1) 네트워크 내 파티션의 수를 정의하는 "레벨", 2) 각각의 패브릭 노드가 저장하는 파티션의 수를 정의하는 "노드당 파티션의 수"(np), 및 3) 파티션의 복사본의 수(cp)의 정적 구성을 포함하는 전역 구성 파라미터를 가진다. 경우에 따라, 각각의 파티션은 파티션 ID(가령, 파티션 ID의 모든 위치에 대해 4 비트 또는 1개의 16진법 수)로 식별되며 콘텐츠 객체 파트 해쉬는 32 바이트 ID로도 표현된다.
콘텐츠 객체 파트는 파티션에 이들의 파트 내 프리픽스를 파티션 ID에 매칭함으로써 저장되도록 할당될 수 있고, 이때, 이 프리픽스의 길이는 네트워크의 현재 파티션 레벨에 의해 제어된다. 마찬가지로, 패브릭 노드는 이들의 노드 ID의 프리픽스를 본 명세서에서 "numparts"라고도 지칭되는 구성된 노드당 파티션 수와 동일한 XOR 거리 계산 내에 있는(가령, 이하인) 모든 파티션 ID와 매칭시킴으로서, 파티션의 세트를 저장하고 서비스하도록 할당될 수 있다. 일부 예에서, XOR 거리의 계산을 위해, 노드 ID를 구성하는 32 바이트, 콘텐츠 오브젝트 부분 해쉬, 및 파티션 ID가 32 쌍의 16진법 캐릭터(각각의 16진법 캐릭터는 4 비트를 나타냄)로 표현된다. 콘텐츠 객체 파트가 네트워크로부터 검색될 때 라우팅 방법은 콘텐츠 객체 파트이 속한 파티션을 서비스할 수 있는 패브릭 노드를 찾고, 가장 선호하는 패브릭 노드를 사용하여 콘텐츠 객체 파트를 제공할 수 있다. 일부 구현에서, 더 많은 콘텐츠를 수용하기 위해 오버레이 네트워크의 패브릭 노드 수가 증가함에 따라, 네트워크는 기존 콘텐츠 객체 파트의 최소 "재편성(reshuffling)"으로 동적으로 재분할한다.
일부 구현예에서, 네트워크 내 파티션 수 = p, 패브릭 노드당 파티션 수 = np 및 복사본 수 = nc가 주어지면 네트워크는 바람직하게는(p/np) * nc개의 패브릭 노드를 가진다. 예를 들어, 16개의 파티션을 갖고, 패브릭 노드당 8개의 파티션과 각각의 파티션의 7개 복사본을 유지하는 네트워크의 경우 네트워크는(16/8) * 7 = 14 개의 패브릭 노드를 가진다. 이들 파티션이 새 콘텐츠로 채워지기 시작하고 네트워크 내 패브릭 노드 수가 증가함에 따라, 일부 구현예는 각각의 파티션 공간을 16개의 더 작은 파티션으로 분할하여, 파티션의 수를 16에서 256으로 증가시킬 수 있으며, 이때, 예를 들어, 각각의 기존 패브릭 노드는 이제 더 많아진 특정 파티션 공간의 일부분을 없애고 새로운 패브릭 노드가 새 파티션 공간을 차지할 수 있다. 파트 해쉬가 일반적으로 파티션 공간에 균등하게 분산되어 있다고 가정하면, 일부 구현예는 콘텐츠를 이동하거나 패브릭 노드/콘텐츠를 리넘버링할 필요 없이 각각의 파티션의 동일한 중복성을 유지하면서 새로운 파티션을 도입하고 네트워크를 확장할 수 있다.
일부 구현예에서, 각각의 다음 레벨은 파티션, 담긴 콘텐츠 객체 파트, 및 파티션을 저장하는 패브릭 노드를 식별하기 위해 다음 쌍의 16진법 캐릭터를 이용한다. 예를 들어 파티션 ID를 고려하면 다음과 같다:
0f 1a 66 aa 4d 5e 6f 7a ab bc cd de ef 76 e3 a8 44 98 b4 c5 11 00 34 dd 3d 47 a8 91 32 fa 01 12
레벨 1 - "0" 사용
레벨 2 - "0" 사용
레벨 3 - "1" 사용, 등
하나의 예를 들면, 0f 1a 66 aa...로 시작하는 해쉬를 갖는 콘텐츠 객체 파트를 고려할 수 있다. 이는 '레벨 3' 파티션 ID로 할당된다:
0f1,
및 다음으로 시작하는 해쉬를 갖는 노드 ID:
0f 1a 00 00....
XOR 거리가 0이기 때문에, 네트워크가 레벨 3에서 레벨 4로 성장할 때 상기 콘텐츠 객체 파트는 이 패브릭 노드 상에 머무를 수 있다:
XOR 거리(0f1, 0f1 ) = 0
XOR 거리(0f 1a, 0f 1a) = 0
레벨 5에서, 노드 ID와 파티션 ID 간 XOR 거리 계산은 "6"의 값을 산출한다:
\XOR 거리( 0f 1a 6, 0f 1a 0) = 6
네트워크의 numparts 구성이 7 이상(XOR 거리가 0 내지 6)이라고 가정하면, 파티션은 이 패브릭 노드 상에 머무를 수 있다.
마지막으로, 레벨 6에서, 파티션 ID 및 노드 ID는 XOR 거리 제약을 넘어서 분기되며 파티션은 이 패브릭 노드에서 벗어나 새로운 패브릭 노드에 의해 다음과 같이 가정된다:
XOR( 0f 1a 66, 0f 1a 00) >> 6
네트워크는 이 콘텐츠가 위치하는 위치가 변경되기 전에 3 자릿수만큼 성장했다.
일부 구현예에서, 적격 콘텐츠 노드는 예를 들어, 인트라-도메인 콘텐츠 라우팅을 위한 레이어 2 브로드캐스팅에 의해 도달 가능한 콘텐츠 노드의 도메인 내부에 원하는 객체 파트를 저장한다. 일부 구현예에서, 도메인 외부에 있는 패브릭 노드 상에서 콘텐츠 객체를 찾기 위해 인터-도메인 라우팅 방법이 수행될 수 있다. 개시되는 방식은 대규모의, 연속적인 ML과 통합되어, 클라이언트의 병목 대역폭 용량에서, 낮은 레이턴시 및 높은 대역폭으로 요청 클라이언트에게 서비스할 것으로 예측되는(도메인 내부와 도메인 외부 모두에서) 오버레이 네트워크 내 패브릭 노드 및 경로를 선택할 수 있다.
일부 구현예에서, 콘텐츠 패브릭은 콘텐츠 게시 및 검색을 위한 두 가지 기본요소인 GET 및 PUT를 애플리케이션(그리고 소비자)에게 제공한다. 각각의 기본요소는 콘텐츠 객체 파트 해쉬를 기본 인수로 사용한다. 그런 다음 콘텐츠 패브릭은 파티셔닝 방법에 기초하여 콘텐츠 객체 파트를 찾고 리턴하거나(GET) 적절한 패브릭 노드에게 콘텐츠 객체 파트를 게시(PUT)한다.
"개인" IP 네트워크, 가령, 소규모 사무실 LAN, 기업 WAN 및 공용 클라우드가 레이어 2 브로드캐스트를 통해 서로에게 도달하 ㄹ수 있는 호스트 컴퓨팅 장치를 포함한다. IPv6 멀티캐스트는 기본적으로 특별한 구성 없이 이들 사설 네트워크 내에서 이용 가능하다. 콘텐츠 패브릭은 이 기능을 활용하여 네트워크의 기본 기능을 사용하여 도메인 내의 어느 패브릭 노드가 콘텐츠 객체 파트를 갖는지를 학습할 수 있고 선택된, 가령, ML 점수로 선택된 패브릭 노드로붙터 직접 콘텐츠 객체 파트를 검색할 수 있다. 패브릭 노드는 패브릭 노드가 담당하는 파티션 ID로부터 어드레스가 직접 계산되는 IPv6 멀티 캐스트 그룹 집합에 가입하고, 담당하는 콘텐츠 객체 파트에 대한 요청에 직접 응답한다.
도 2는 새 패브릭 노드가 콘텐츠 패브릭에 가입하기 위한 부트스트래핑 방법의 일례를 도시한다. 도 3은 도 2의 부트스트래핑 방법의 일례에서의 이벤트의 시퀀스의 예시를 도시한다. 도 2의 방법의 일부 구현은 스테이지별로 나뉠 수 있는데, 즉, 라우팅 트리가 획득되는 스테이지(204), 패브릭 노드의 파티션이 계산되고 게시되며, 패브릭 노드를 로컬 멀티캐스트 그룹에 가입시키기 위한 가입 동작이 수행되는 스테이지(208), 및 콘텐츠 객체 파트가 다운로드될 수 있는 스테이지(212)로 나뉠 수 있다.
도 2 및 3의 예에서, 새로운 패브릭 노드(216)는 도 3의 블록(304)에 의해 예시된 바와 같이 스스로 노드 ID를 생성하고 인증이 수행될 수 있다. 그런 다음 패브릭 노드(216)는 도 2의(224)에서 요청 메시지를 콘텐츠 패브릭의 임의의 기존 패브릭 노드(220)로 전송한다. 요청에 응답하여,(228)에서, 기존 패브릭 노드(220)는 오버레이 네트워크의 초기 상태 이후로 존재해 왔으며 따라서 가장 풍부한 인터-도메인 파티션 지식을 갖는 패브릭 노드를 지칭하는 제네시스 패브릭 노드(genesis fabric node)의 리스트를 리턴한다. 도 2의(228)에서, 기존 패브릭 노드(220)는 또한 현재 네트워크 레벨, 노드당 현재 numparts, 각각의 파티션의 복사본의 수(numcopies), 및 IP 멀티캐스트 그룹 가입을 위한 템플릿을 포함할 수 있는 다수의 현재 네트워크 파라미터를 리턴한다. 새로운 패브릭 노드(216)에 의해 수신된 이들 네트워크 파라미터의 예가 도 3의 블록(308)에 도시된다.
도 2에서, 네트워크 파라미터의 수신에 응답하여, 새로운 패브릭 노드(216)는 네트워크 레이어(236)을 통해 하나 이상의 제네시스 노드(232)에 인터-도메인 라우팅 트리에 대한 요청(230)을 전송할 수 있다. 제네시스 노드의 예는 도 3의 노드 11C37A이다. 하나 또는 복수의 제네시스 노드(232)는 도 2의(240)에서 최신 버전의 인터-도메인 라우팅 트리로 응답할 수 있으며, 이는 가장 최신 버전을 위해 새로운 패브릭 노드(216)에서 병합될 수 있다. 제네시스 노드로부터 다운로드된 병합 된 라우팅 트리의 예가 도 3의 블록(312)에 도시되어 있다.
도 2에서, 이하에서 더 상세히 기재되겠지만, 새로운 패브릭 노드(216)가 노드(216)가 커버할 파티션 ID를 계산한다. 계산된 파티션 ID의 예가 도 3의 블록(316)에 도시되어 있다. 그런 다음, 새로운 패브릭 노드(216)가, 도 2의(244)에서, 새로운 패브릭 노드의 노드 ID, 공개 IP 어드레스, 파티션 ID 및 그 밖의 다른 임의의 연관된 세부사항을 새로운 패브릭 노드(216)의 세부사항으로 자신의 라우팅 트리를 업데이트(248)하는 제네시스 패브릭 노드(232)로 게시한다.
도 2에서,(244) 이후, 새로운 패브릭 노드(216)는 새로운 패브릭 노드(216)가 담당하는 파티션 ID로부터 직접 계산될 수 있는 어드레스를 갖는 IPv6 멀티캐스트 그룹에 가입(248)한다. 가입 동작의 예가 도 3의 블록(320)에 도시되어 있다. 새로운 패브릭 노드(216)가 자신의 라우팅 트리를 설정하면, 새로운 패브릭 노드(216)는 새로운 패브릭 노드가 담당하는 콘텐츠 객체 파트를 획득하기 위한 백그라운드 방법을 시작할 것이다. 예를 들어, 도 3의 블록(324)에서, 새로운 패브릭 노드(216)가 이제 '온라인'이고 새로운 패브릭 노드가 아직 획득하지 않은 콘텐츠 객체 파트에 대한 요청을 수신할 수 있기 때문에, 새로운 패브릭 노드(216)는, 본 명세서에서 더 상세히 기재될 GET 동작을 사용하여 GET 요청을 통해 요구되는 콘텐츠 객체 파트를 획득할 수 있다.
도 4는 파티션을 패브릭 노드로 할당하기 위한 방법의 예시를 도시한다.(404)에서, 예를 들어 32 바이트 ID 형태의 노드 ID가 패브릭 노드에 할당된다. 일부 구현예에서, 노드 ID 및 할당은 패브릭 노드에 의해 자체 생성될 수 있다. 방법은(404)에서(408)로 진행되며, 여기서 패브릭 노드는이 예에서 네트워크 레벨 및 numparts를 포함하는 네트워크 파라미터를 불러온다.(412)에서,(408) 이후, 패브릭 노드에 대한 주어진 노드 ID에 대한 파티션이 계산되고 계산된 파티션은 기본 파티션으로 지칭된다. 예를 들어, 노드 ID의 처음 n개의 16진법이 프리픽스로서 추출될 수 있다(이때, n = 레벨이다). 그런 다음 방법은 패브릭 노드가 담당하는 파티션 세트가 계산되는(416)으로 진행한다. 이 예에서, 파티션 세트는 세트 내 임의의 파티션의 ID와 패브릭 노드에 대한 기본 파티션 간 XOR 거리가 numparts 이하인 속성을 갖는 위에서 결정된 노드 ID에 대한 파티션 ID를 포함하여 numparts와 동일한 크기의 파티션 ID 세트이다.(420)에서, 결정적 알고리즘을 구현하는 방법이 수행되어 크기 numpart의 세트를 생성하며, 여기서 각각의 요소는 기본 파티션과 동일한 비트 크기를 가지며 도 4에 도시된 바와 같이 표현된다. 그리고,(420)에서, 도 4에 도시된 세트의 기본 파티션과 각각의 요소의 XOR이 파티션 세트의 나머지 요소를 찾기 위해 계산된다.
도 5는 콘텐츠 객체 파트를 패브릭 노드로 할당하기 위한 방법의 일례를 도시한다.(504) 및(508)에서, 콘텐츠 객체 파트 해쉬 형식의 입력 및 노드 ID, 예를 들어 32 바이트 ID 형식의 노드 ID가 제공된다.(512)에서, 도 4의(408)에서 전술한 바와 같이, 네트워크 레벨 및 numparts 형태의 그 밖의 다른 입력이 제공된다. 이 예에서,(512)에서 numcopies도 입력으로 제공된다.(512) 이후(516)에서, 콘텐츠 객체 파트에 대한 파티션이 계산된다. 또한 이 예에서, 프리픽스가 추출되며, 여기서 프리픽스는 콘텐츠 객체 파트 해쉬의 처음 n개의 16진수이며, 여기서 n은 네트워크 레벨이다.
도 5에서,(512) 후에,(520)에서, 도 4의(412)에서 기재된 바와 같이 노드 기본 파티션이 계산되어 프리픽스를 추출할 수 있다.(516 및 520)에 이어(524)에서,(516 및 520)에서 결정된 값들 간 XOR 거리가 계산된다.(528)에서, XOR 거리가 numparts 이하인지 여부가 결정된다. 그렇지 않은 경우, 방법은(532)로 진행되며, 여기서 콘텐츠 객체 파트가 고려중인 패브릭 노드에 속하지 않는 것이 결정된다.(528)로 돌아가서 XOR 거리가 numparts 미만인 경우, 방법은(536)으로 계속 진행하며, 여기서, 콘텐츠 객체 파트가 패브릭 노드에 속한다고 결론된다.
도 6은 콘텐츠 패브릭의 오버레이 네트워크를 재-파티셔닝하기 위한 방법의 일례를 도시한다. 일부 구현예에서, 도 6의 방법을 사용해, 특정 패브릭 노드에 할당된 파티션이 조정될 수 있다.(604)에서, 현재 네트워크 파라미터, 가령, 네트워크 레벨, numparts 및 numcopies가 불러와진다.(608)에서, 적어도 새로운 네트워크 레벨의 형태의 입력 파라미터 및 파티셔닝을 조정하기 위한 새로운 numparts가 제공되어(604)에서 불러와진 현재 파라미터를 대체할 수 있는 것이 바람직하다.(608)에 이어, 도 4의 동작(412, 416 및 420)이 수행된다.
도 6에서,(420) 이후(624)에서, 패브릭 노드 상에 저장된 각각의 콘텐츠 객체 파트에 대해,(628)에서, 예를 들어, 도 5의 동작(516, 520, 524 및 528)에서 앞서 기재된 바와 같은 기법을 이용해, 주어진 콘텐츠 객체 파트가 특정 노드에 속하는지 여부가 결정될 수 있다. 도 6의(628)의 가능한 결과가 도 5의(532 및 536)을 포함한다. 이 예에서,(532)에서, 콘텐츠 객체 파트가 패브릭 노드에 더는 속하지 않는다고 결정될 때, 특정 콘텐츠 객체 파트는 방출을 위해, 가령, 배경 클린업 방법 동안 또는 노드 상에서의 라이브 캐시 처리 동안의 차후 어드레싱을 위해 마킹(640)될 수 있다.
도 7은 콘텐츠 객체 파트를 불러오기 위한 콘텐츠 라우팅 방법의 예를 도시하며, 도 8은 제1 패브릭 노드가 콘텐츠 객체 파트를 갖지 않을 때, 클라이언트가 제1 패브릭 노드로 콘텐츠 객체 파트에 대한 요청을 전송하는 것에 응답하여, 제1 도메인 내 제1 패브릭 노드가 동일한 도메인 내 제2 패브릭 노드로부터 콘텐츠 객체 파트를 획득하는 예시를 도시한다. 도 7 및 8에서, 클라이언트(704)는 출구 노드(708)와 통신하며, 상기 출구 노드는 출구 노드(708)의 도메인, 가령, 도 8의 "도메인 B"으로 라벨링된 내 타깃 멀티캐스트 그룹 내 다른 패브릭 노드(712)와 통신한다.
도 7에서, 콘텐츠 라우팅의 다음의 두 개의 스테이지가 도시된다: 먼저, 인트라-도메인 라우팅(714), 그리고 나서 인터-도메인 라우팅(715). 두 가지 유형의 라우팅 모두 본 명세서에서 더 상세히 설명된다.(720)에서, 클라이언트(704)는 도 8의 박스(804)에 예시된 바와 같이 콘텐츠 객체 파트를 GET하기 위한 요청을 출구 노드(egress node)(708)로 전송한다. 이 요청에 응답하여, 출구 노드(708)는 요청된 콘텐츠 객체 파트에 대한 파티션을 계산하고, 도 7에서 도시된 바와 같이, 노드(708)의 파티션들 중 하나에서와 같이, 요청된 파트가 노드(708)에 대해 로컬인지 여부를 결정한다. 출구 노드(708)가 출구 노드(708)의 디스크 또는 그 밖의 다른 메모리에 저장된 요청된 콘텐츠 객체 파트를 발견(722)하는 경우, 출구 노드(708)는 발견된 파트를 클라이언트로 리턴(724)한다.
출구 노드(708)가 요청된 콘텐츠 객체 파트를 로컬에서 찾지 못하는 경우, 출구 노드(708)는 인트라-도메인 GET을 개시(730)하고, 이때, 출구 노드(708)는 계산된 파티션에 대한 네트워크 어드레스, 가령, 멀티캐스트 어드레스를 이용해 인트라-도메인 노드(712)로 GET 메시지를 전송하여, 콘텐츠 객체 파트의 파트 ID 및 일부 경우, 패브릭 노드의 ML-예측 성능 점수에 기초하여 선호되는 노드의 식별자를 전달한다. GET 메시지의 예는 도 8의 박스(808)에 예시되어 있다. 도 7에서, 인트라-도메인 노드(712) 중 하나 이상이 요청된 콘텐츠 객체 파트를 찾는 경우(732), 노드(712)는 요청된 파트를 출구 노드(708)로 리턴(734)하며, 상기 그런 다음 상기 출구 노드는 클라이언트(704)로 발견된 파트를 전달할 수 있다(740). 일부 구현예에서, 인트라-도메인 노드(712) 중 둘 이상이 요청된 콘텐츠 객체 파트를 가질 때, 각각의 노드(712)는 콘텐츠 객체 파트의 각각의 비-중첩 세그먼트를 리턴한다. 이는 요청에 응답하는 복수의 패브릭 노드로부터의 데이터의 중복 전송을 방지하는 데 바람직 할 수 있다. 응답 패브릭 노드는 멀티 캐스트 요청의 데이터로부터 도출된 위치에 따라 요청된 콘텐츠 객체 파트 내에서 겹치지 않는 세그먼트를 계산할 수 있다.
도 7에서, 인트라-도메인 노드(712)가 요청된 콘텐츠 객체 파트를 찾을 수 없을 때, 인터-도메인 라우팅(715)이 시작된다. 일부 구현에서, 출구 노드(708)는 인터-도메인 라우팅 트리의 출구 노드(708)의 복사본 내 파티션에 대한 가장 좁거나, 가장 정확한 매칭을 찾는다. 일부 구현예에서, 출구 노드(708)는 현재 알려진 패브릭 노드를 갖는 타깃 파티션에 대한 가장 구체적인 매칭을 찾고 도 7에서 식별된 이들 패브릭 노드의 베스트 점수로 베스트 매칭 노드(716)로서 요청을 전송한다.
예를 들어, 도 9는 지정 파티션 레벨을 이용해, 콘텐츠 객체 파트의 위치를 예시하는 인터-도메인 라우팅 트리 '0f 1a 66 aa 4d 5e 6f 7a ab bc cd de ef 76 e3 a8 44 98 b4 c5 11 00 34 dd 3d 47 a8 91 32 fa 01 12'의 예시를 보여준다. 이러한 라우팅 트리를 사용하여 도 7을 다시 참조하면, 베스트 매치 노드(716)의 IP 어드레스가 검색되고, 따라서 출구 노드(708)는 GET을 베스트 매치 노드(716)에 전송(744)하여 콘텐츠 객체 파트를 요청할 수 있다.
일부 구현예에서, 인터-도메인 라우팅은 평균으로 수렴하여 log(n)개의 단계보다 훨씬 적고 최대 log(n)개의 단계 내에서 콘텐츠 객체 파트를 포함하는 출구 노드(708)의 도메인의 외부 도메인을 찾을 수 있고( 여기서 n은 네트워크 내 도메인 수) 도메인이 발견되면 외부 도메인에서 인트라-도메인 검색이 수행되어 콘텐츠 객체 파트를 즉시 리턴할 수 있다. 일부 구현예에서, 인터-도메인 라우팅 프로토콜은 트리 내 각각의 레벨이 검색되는 파티션 ID 내 특정 "레벨"에 대응하는 이진 트리, 노드 ID의 리스트 및 파티션 ID를 가진다고 알려진 이들의 어드레스 세부사항으로 구조화된 도 9에 도시된 것과 같은, 라우팅 테이블을 사용한다.
도 10은 제1 패브릭 노드가 콘텐츠 객체 파트를 갖지 않을 때, 클라이언트가 제1 패브릭 노드로 콘텐츠 객체 파트에 대한 요청을 전송하는 것에 응답하여, 제1 도메인 내 제1 패브릭 노드가 제1 도메인 외부의 제2 도메인 내 제2 패브릭 노드로부터 콘텐츠 객체 파트를 획득하는 예시를 도시한다. 도 10은, 일부 양태에서 도 8과 유사하며, 유사한 도면 부호가 유사한 파트를 지칭한다. 도 10에서, 인터-도메인 라우팅 요청은 도시된 바와 같이, 도메인 B에서 도메인 A로 전송된다. 예를 들어, 인터-도메인 GET 요청(744)을 하는 출구 노드(708)의 예는 박스(1004)에 의해 예시된다. 도 7을 다시 참조하면, 베스트 매치 노드(716)가 요청된 콘텐츠 객체 파트를 가지고 있는 경우,(745)에서, 베스트 매치 노드(716)는 요청된 파트를 출구 노드(708)로 리턴한다. 베스트 매치 노드(716)가 요청된 콘텐츠 객체 파트를 가지고 있지 않는 경우,(746)에서, 베스트 매치 노드(716)는 요청된 파트를 갖는 도메인 A 내의 패브릭 노드를 찾기 위해 도메인 A 내에서 동작(730 및 734)를 수행 할 수 있다. 도 10을 다시 참조하면, 노드(716)에 의해 수행되는 동작(730 및 734)은 박스(1008)에 예시되어있다.
요청된 콘텐츠 객체 파트가 도 7의(747)에서 도메인 A에서 불러와지는 경우, 도메인 A 내 타깃 노드는(752)에서 출구 노드(708)를 통해 클라이언트(704)로 콘텐츠 객체 파트의 각각의 겹치지 않는 세그먼트를 다시 전송한다. 이 단계에서, 출구 노드(708)가 도 9의 자신의 인터-도메인 라우팅 트리를 지정 파티션에 대한 콘텐츠 객체 파트로 응답한 노드 ID로 업데이트하는 것이 바람직하다. 이러한 업데이트의 예는 도 10의 박스(1012)에 예시되어 있다.
또한, 도 10의 도메인 A 내 어떠한 패브릭 노드도 요청된 콘텐츠 객체 파트를 갖지 않는 경우, 추가 인터-도메인 라우팅이 도메인 B와 타 도메인, 가령, 도메인 C, D 등 사이에서 수행될 수 있다. 즉, 출구 노드(708)는 매칭되는 파티션을 가지는 거승로 알려진 다음 상위 레벨에서, 가령, 덜 특정적으로, 높은 점수를 받는 패브릭 노드에 요청을 보낼 수 있다.
일부 구현예에서, 새로운 콘텐츠 객체 파트를 오버레이 네트워크로 PUT하는 것은 콘텐츠 객체 파트를 GET하는 것과 유사한 방법을 사용한다. 예를 들어, 클라이언트가 패브릭 노드, 가령, 이하에서 기재된 입구 노드로 콘텐츠 객체 파트를 PUT하기 위한 요청을 할 때, 입구 노드는 입구 노드의 파티션 ID와 연관된 멀티캐스트 그룹 상의 콘텐츠 객체 파트를 멀티캐스트할 수 있고, 바람직하게는 충분히 패브릭 노드가 네트워크에 대한 복제 요건을 충족하도록 응답한다. 그렇지 않고 입구 노드가 인터-도메인 라우팅 트리를 검색하고, 충분한 개수의 매칭 타깃 패브릭 노드가 리턴될 대까지 인트라-도메인 라우팅을 적용하는 가장 특정적인 매칭되는 알려진 패브릭 노드를 다시 찾음으로써 콘텐츠 파트를 게시한다. 새 콘텐츠 객체 파트가 이들 패브릭 노드로 전송되고 라우팅 트리가 학습된 노드 ID 및 어드레스 세부 정보로 업데이트된다.
도 11은 콘텐츠 객체 파트를 콘텐츠 패브릭으로 게시하기 위한 콘텐츠 라우팅 방법의 예를 도시한다. 도 11에서, 게시에 참여하는 개체는 클라이언트(1104), 입구 노드(1108), 인트라-도메인 패브릭 노드(1112), 즉, 입구 노드(1108)의 도메인 내 노드, 및 앞서 도 9를 참조하여 기재된 바와 같이 인터-도메인 라우팅 트리 내 베스트 매치 노드를 지칭하는 베스트 매치 노드(116)를 포함한다. 도 11에서,(1120)에서 클라이언트(1104)는 콘텐츠 객체 파트의 PUT를 입구 노드(1108)로 발행한다. PUT에 응답하여, 입구 노드(1108)는 콘텐츠 객체 파트에 대한 파티션을 계산하고 콘텐츠 객체 파트가 입구 노드(1108)에 로컬하게 저장될 것인지 여부를 결정한다.(1124)에서, 입구 노드(1108)는 파티션에 대한 어드레스와 함께 PUT 메시지를 인트라-도메인 노드(1112)로 전송하고, 파트 ID 및 numparts를 전달함으로써 인트라-도메인 라우팅을 시작한다. 파트 ID는 콘텐츠 객체 파트를 식별한다.
도 11에서,(1126)에서, 하나 이상의 인트라-도메인 노드(1112)가 콘텐츠 객체 파트가 하나 이상의 노드(1112)에 로컬하게 저장될 수 있음을 확인할 수 있는 경우,(1128)에서, 노드(들)(1112)는 입구 노드(1108)와 다시 확인 메시지를 통신한다.(1130)에서, 확인 수가 numparts에 의해 지시된 원하는 복제본 수보다 크거나 같은 경우, 등록이 완료되고,이 경우 입구 노드(1108)는(1132)에서 클라이언트(1104)에게 콘텐츠 객체 파트이 성공적으로 게시되었음을 다시 확인할 수 있다.(1128)로 돌아가서, 노드(1112)로부터 수신된 확인의 수가 numparts보다 적은 경우, 방법은(1136)으로 계속되며, 여기서, 입구 노드(1108)는 입구 노드(1108)의 도메인 외부에 있는 타깃 노드로 PUT를 전송한다. 이 예에서, 타깃 노드는 인터-도메인 라우팅 트리를 사용하여 식별된 베스트 매치 노드(1116)이다.
도 11에서, 베스트 매치 노드(1116)는 전술 한 바와 같이(1138)에서 노드(1116)의 도메인에서 인트라-도메인 라우팅을 수행하고 반복할 수 있다. 즉, 노드(1116)는 그 도메인 내 패브릭 노드에서 PUT를 수행할 수 있다.(1140)에서 베스트 매치 노드(1116)의 도메인 내 노드로부터의 확인의 수와(1128)에서의 확인 수의 합이 numparts와 같거나 초과하지 않으면 추가 다른 도메인에 대한 인트라-도메인 라우팅이 수행될 수 있다.(1144)에서 PUT에 대한 응답으로 콘텐츠 객체 파트를 수락하고 저장하는 타깃 노드는 입구 노드(1108)로 다시 확인을 리턴하며(1144), 이 시점에서, 입구 노드(1108)는 파티션에 대해 응답한 타깃 노드의 노드 ID로 자신의 인터-도메인 라우팅 트리를 업데이트할 수 있다. 그런 다음,(1148)에서, 입구 노드(1108)는 콘텐츠 객체 파트가 성공적으로 게시되었음을 클라이언트(1104)에게 다시 확인한다.
일부 구현예에서, 연속적인 ML 시스템에 의해 개별 클라이언트가 고성능을 산출하는 패브릭 노드 및 경로를 학습할 수 있다.
일부 구현예에서, 콘텐츠 패브릭은 패브릭 노드가 풀 메시 네트워크에서 동일한 참여자인 오버레이 네트워크를 제공하고, 원시 데이터, 메타데이터 및 코드를 포함하는 콘텐츠 객체 파트가 전달된다. 따라서 오버레이 네트워크가 기본 인터넷 토폴로지 및 라우팅 인프라구조에 대한 직접적인 지식을 가질 필요다 없다. 클라이언트가 GET 콘텐츠에 대한 콘텐츠 패브릭의 요청을 할 때, 클라이언트는, 본 명세서에서 ML을 위한 입구 노드라고 지칭되는 패브릭 노드에 의해 직접 서비스된다. 그 출구 노드는 본 명세서에서 더 상세히 설명되는 바와 같이 콘텐츠 객체 파트를 갖거나 콘텐츠 객체 파트를 공급할 수 있는 패브릭 노드를 찾도록 검색될 수 있다. 공급 패브릭 노드는 본 명세서에서 ML에 대한 원점 노드라고 지칭된다.
일부 구현예에서, 전달 품질 측면에서, ML로 최적화하는 것이 바람직할 수 있다.
- 시작 레이턴시: 클라이언트가 서비스된 콘텐츠를 재생/경험하기 시작하기 위해 최소 레이턴시, 가령, 인간에 의해 순간이라고 지각될 수 있는 "200밀리초" 충족하는 최소 레이턴시를 갖고 파트를 수신하는 것이 바람직할 수 있다.
- 전달 대역폭: 인터넷 연결에서 "병목 대역폭"이 수신 속도의 병목이도록 클라이언트가 콘텐츠 패브릭으로부터 스트림 및 다운로드를 수신하는 것이 바람직할 수 있다.
- 코어 인터넷 대역폭의 최소 사용: 비용을 최소화하기 위해, 클라이언트 품질 타깃을 충족하는 경우 가능한 한 적은 코어 인터넷 대역폭을 사용하는 것이 바람직 할 수 있다. 따라서 가능한한 인터넷 코어를 가로 지르지 않도록 출구 및 원점 노드의 선택을 "로컬화"하는 것이 바람직할 수 있다.
오버레이 네트워크 모델이 주어지면, 일부 구현예에서, 두 개의 개별 차원이 독립적으로 최적화될 수 있으며 차례로 "학습"될 수 있다, 즉, "출구-원점 세그먼트"라고 지칭되는, 출구 노드의 선택, 및 출구에 대한 원점 노드의 선택. 또한 일부 구현은 각각의 개별 클라이언트에 대해 이들 기능을 최적화한다, 즉, 모든 클라이언트가 동일한 선택을 선호하는 것은 아니며 일부 구현은 적절한 피어(peer)로부터 "학습"하는 것을 제외하고는 클라이언트를 위한 좋은 선택을 사전에 알 수 없다.
일부 구현은 개별 클라이언트가 "유사" 클라이언트로부터 학습함으로써 개별 클라이언트는 베스트 출구 노드 및 베스트 출구-원점 세그먼트를 학습하는 협업 필터링 시스템을 구성한다. 특히, 일부 구현은 클라이언트가 출구 노드를 선택하기 위해 자신의 지역에 있는 클라이언트로부터 학습하고 출구-원점 세그먼트를 선택하기 위해 모든 클라이언트로부터 학습하는 협업 필터링 모델을 훈련한다.
따라서, 일부 구현예에서, 각각의 클라이언트 요청은 제한된 대역폭 및 용량을 갖는 원점 노드, 혼잡할 수 있는 기본 네트워크 링크로 구성된 오버레이 내 출구-원점 세그먼트, 제한된 대역폭 및 용량을 갖는 출구 노드, 및 시스템에 의해 제어될 수 없는 클라이언트-출구 세그먼트가 시스템에 의해 서비스된다.
클라이언트 요청이 이행됨에 따라, 일부 구현은 출구-원점 세그먼트에 기인하고 출구 노드에 기인할 수 있는 첫 번째 바이트에 대한 전달 대역폭 및 시간을 기록한다.
일부 구현은 모델을 훈련하기 위해 세그먼트 및 출구 노드의 점수를 사용한다. 일부 구현예에서는 학습된 모델을 사용하여 후속 요청을 라우팅할 최간의 세그먼트를 식별할 수 있다.
일부 구현예에서, 협업적 필터링 방법은 기본 기능과 예측 기능을 동시에 유도하고 모델의 두 개의 개별 애플리케이션에서 각각에 대한 비용 함수를 최소화한다: 하나는 전달 대역폭을 최대화하고 다른 하나는 첫 번째 바이트까지의 시간(또는 첫 번째 세그먼트까지의 시간)을 최소화한다. 일부 구현예에서는 각각 클라이언트에 대한 각각의 값(대역폭 및 첫 번째 바이트까지의 시간)에 대한 향후 점수를 예측하기 위해 출구-원점 세그먼트 측정 및 출구 노드 측정에 독립적으로 협업 필터링 방법을 적용하고, 모델은 새 클라이언트에 대한 예상 점수를 학습한다.
훈련은 콘텐츠 패브릭이 자원, 실패한 패브릭 노드 등의 변화에 빠르게 적응함을 보장하기 위해 거의 실시간으로 발생할 수 있다. 일부 구현예에서, 이 시스템을 지속적으로 훈련하기위한 계산 매트릭스는 클라이언트의 수 및 패브릭 노드들 간 경로의 수에 따라 확장될 수 있다. 최신 TPU 및 병렬 처리 시스템이 종종 "십억 x 십억" 차원 및 학습과 같은 매우 큰 규모의 행렬에서 빠른 행렬 곱셈을 수행하도록 구비된다.
도 12는 클라이언트당 베스트 수행 출구 노드 및 출구-기원 세그먼트를 예측하기 위한 연속적인 기계 학습(ML) 방법의 일례를 도시한다. 도 12에서, 참여 개체는 클라이언트(1204), 콘텐츠 패브릭의 하나 이상의 패브릭 노드 상에 구현된 ML 시스템(1208), 출구 노드(1212) 및 원점 노드(1216)를 포함한다. 도 12의 단계(1220)에서, ML 시스템(1208)은 클라이언트(1204)를 서비스하도록 콘텐츠 패브릭의 지리적 영역을 결정하기 위해 클라이언트(1204)의 위치를 파악하도록 구성된다. 이 예에서,(1224)에서 클라이언트(1204)는 시스템(1208)에서 config() 메소드를 호출한다.(1228)에서, ML 시스템(1208)은 config() 메소드를 수행하여 클라이언트(1204)의 위치를 파악하고, 대응하는 콘텐츠 패브릭 지리적 영역이 시스템(1208)으로부터 클라이언트(1204)로 리턴한다(1232).
도 12의 예에서, 클라이언트(1204)에 대한 결정된 지리적 영역에서 패브릭노드에 대한 현재 예측된 점수가 판독(1236)되고 사전 훈련에 기초한다. 예측은 클라이언트(1204)가 시스템(1208)에 새로운 것인 상황에서 일반 클라이언트에 대한 것일 수 있다. 다른 경우에, 클라이언트(1204)가 반복일 때, 예측은 클라이언트(1204)에 특정적일 수 있다. 현재 예측된 점수는 ML 시스템(1208)에 의해 사용되어 결정된 콘텐츠 패브릭 영역에서 클라이언트에 대한 최고 점수 출구 노드를 식별할 수 있다. 이 예에서, 최고 점수 출구 노드는 출구 노드(1212)이다. 따라서,(1240)에서, 클라이언트(1204)는 출구 노드(1212)로 콘텐츠 객체 파트의 GET을 발행한다. 출구 노드(1212)가 요청된 콘텐츠 객체 파트를 찾는 경우(1244), 출구 노드(1212)는 클라이언트(1204)로 발견된 부분을 다시 리턴한다(1212). 출구 노드(1212)가 메모리에서 요청된 콘텐츠 객체 파트를 찾을 수 없거나 그 밖의 다른 방식으로 출구 노드(1212)에 로컬하지 않는 경우(1252), 출구 노드(1212)는 최고 점수 출구-원점 세그먼트 중에서, 파티션 매치에 의해 요청된 콘텐츠 객체 파트를 포함하는 원점 노드를 찾고 본 명세서에 더 상세히 기재될 인트라-도메인 및 인터-도메인 프로토콜을 이용해 이들 원점 노드로 GET을 발행한다(1245). 이 예에서, 원점 노드(1216)는 출구 노드(1212)에 대한 높은 점수의 출구-원점 세그먼트를 완료하고, 파티션 매칭에 의해 원하는 포함 객체 부분을 포함한다. 따라서,(1256)에서, 출구 노드(1212)는 원점 노드(1216)로 GET을 발행하고, 원점 노드(1216)는 콘텐츠 객체 파트를 식별(1258)하고, 출구 노드(1212)는 원점 노드(1216)로부터 희망 콘텐츠 객체 파트를 수신한다. 그런 다음 콘텐츠 객체 파트는 출구 노드(1212)로부터 클라이언트(1204)로 다시 리턴(1260)된다.
도 12에서, 일부 구현예에서, 콘텐츠 객체 파트가 발견되어 클라이언트(1204)에 전달될 때 측정이 기록될 수 있다(1264). 이 예에서, 출구 노드(1212)가 원점 노드(1216)에서 콘텐츠 객체 파트를 발견할 때, 출구 노드(1212)는 도 12에 도시된 바와 같이 출구-원점 세그먼트, 콘텐츠 객체 파트를 수신하기 위한 TTFB(time to first byte), 및 대역폭 및 그 밖의 다른 파라미터를 상세화하는 측정치를 기록할 수 있다. 또한, 출구 노드(1212)가 요청된 콘텐츠 객체 파트를 갖는 경우, 그러한 측정이 기록될 수 있으며,이 경우 TTFB = 0이고 대역폭이 적용되지 않는다(N/A). 또한, 콘텐츠 객체 파트가 클라이언트(1204)로 리턴될 때, TTFB에 대한 클라이언트-출구 점수 및 지역당 대역폭은 ML 시스템(1208)에 의해 집계(1268)될 수 있다. 일부 구현예에서, 이러한 점수는 집계(1272)를 위해 출구 노드(1212)로부터 불러와 진다. 구현에서, 출구-원점 점수는 또한 도 12의(1276)에서 모든 지리적 영역에 대한 TTFB 및 대역폭에 대해 집계된다.
도 12의 예에서,(1280)에서 TTFB 및 대역폭 점수 예측은 이들 집계 측정을 사용하여 재훈련될 수 있다. 예를 들어, 도면부호(1284)에 의해 예시된 바와 같이, ML 시스템(1208)은 이 예에서 모든 지리적 영역에 대한 각각의 지리적 영역 및 출구-원점 노드 측정을 위한 출구 노드 측정을 이용해 협업 필터링 방법을 이용해 재훈련될 수 있다. 그 후,(1288)에서, 시스템(1208)에 의해 새로운 예측 점수가 계산되고 메모리에 저장될 수 있다. 예를 들어, 시스템(1208)은 새로운 예측 점수를 저장하기 위해 updatescores() 메소드(1292)를 호출할 수 있다. 예를 들어 각각의 지리적 영역에 대해, 출구 노드 점수가 저장될 수 있으며, 모든 지리적 영역에 대해, 출구-원점 세그먼트 점수가 저장될 수 있다.
일부 구현예에서, ML에 기초하여 최상의 출구 및 콘텐츠 라우트를 선택하는 것에 추가로, 인기 있는 콘텐츠가 패브릭 노드의 이용 가능한 용량에 기회적으로 캐시될 수 있다. 일부 구현예에서, 캐싱될 베스트 콘텐츠를 선택하기 위해, 가장 인기있는 콘텐츠를 예측하는 데 두 번째 연속 학습 모델이 사용될 수 있으며, 콘텐츠 패브릭 내 비트코드를 통해 출력 미디어의 여러 버전의 JIT 렌더링과 함께 사용될 수 있다.
인기 콘텐츠를 예측하는 것은 "시계열"문제로 간주될 수 있다. 시계열 예측의 경우, 일부 구현에 경사 부스팅 결정 트리(gradient boosting decision tree)가 적용된다. 일부 다른 구현에서, 순차 모델이 사용될 수 있다. 일부 구현에서, 경사 부스팅 결정 트리는 스크리닝 데이터 세트에 적용되며, 이때, 피처는 콘텐츠 요청 시간, 콘텐츠 요청 지속시간, 콘텐츠 제목, 재생 플랫폼 및 그 밖의 다른 콘텐츠 메타데이터를 포함한다.
일부 구현예에서, 시계열 데이터를 훈련, 검증 및 테스트로 분할하는 두 가지 방법이 있다: 병렬 분할(side-by-side split) 및 워크 포워드 분할(walk-forward split). 주류 ML 모델에 사용할 수 있는 병렬 분할에서, 데이터 세트는 적어도 두 개의 부분으로 분할되는데, 하나는 훈련을 위해 사용되고, 다른 하나는 테스트를 위해 사용된다(둘 모두의 타임프레임이 정렬된다). 이에 비해 워크 포워드 분할은 특히 시간과 강한 상관 관계가있는 데이터 세트를 목표로 한다.
도 13은 타임프레임에서 훈련, 검증, 및 테스트를 위한 스플릿 스킴의 하나의 예시를 보여주며, 여기서, 검증을 위해 선택된 데이터 세트의 타임프레임이 훈련을 위한 타임프레임에 비해 하나의 예측 구간씩 앞으로 이동된다. 워크 포워드 분할(1304) 및 병렬 분할(1308)이 도시된다. 도 13에 도시된 바와 같이, 훈련, 검증 및 테스트는 전체 데이터 세트에서 수행될 수 있지만, 상이한 타임프레임에 걸쳐 수행될 수 있다. 일부 구현예는 워크 포워드 분할 접근 방식을 사용하며 실험은 모델에서 최적 지속시간 및 시간 오프셋을 결정하도록 수행될 수 있다.
일부 구현예에서, 모델은 다수의 피처, 가려, 콘텐츠 카테고리, 스트리밍 유형, 요청 요일 및 요청 수명을 포함하며, 데이터 세트로부터 도출된 다수의 통계 피처, 가령, 인기의 시간 윈도, 전역 관심 통계치 및 이전 시간 주기로부터의 과거 요청 집계를 포함한다. 집계 방법의 경우, 일부 구현예는 평균, 중앙값, 최댓값, 최솟값, 경과 일수, 및 인접 시간 윈도 간 평균 값 차이를 이용한다.
일부 구현예에서, 콘텐츠 패브릭은 몇 가지 핵심적인 방식으로 종래의 분산 파일 시스템 및 클라우드 스토리지와 기본적으로 상이한 디지털 콘텐츠에 대한 전역적인(유형 및 크기에 무관한) 분산 저장 솔루션을 제공한다: 1) 콘텐츠 패브릭은 콘텐츠가 다양한 출력 버전에 대해 용도 변경될 때 스토리지 또는 네트워크 대역폭 전송의 복제를 피함, 2) 콘텐츠 패브릭이 전달되는 매체의 유연한 개인화를 제공(프로그램 가능성), 및 3) 콘텐츠 패브릭이 고유한 버전 및 콘텐츠의 유효성 및 이의 버전 히스토리를 입증할 능력을 포함함.
일부 구현예에서 콘텐츠 객체의 데이터는 콘텐츠 객체 파트라고 하는 데이터 컨테이너에 저장된다. 콘텐츠 객체 파트는 앞서 언급된 바와 같이 저장, 네트워크 전송 및 캐싱의 기본 단위이다. 콘텐츠 객체 파트는 일단 완성되면 변경될 수 없고 콘텐츠 객체 파트의 콘텐츠 모두에 걸쳐 계산되는 해쉬 값에 의해 식별된다. 암호화 해쉬 기능을 사용하여, 해쉬를 재계산함으로써 콘텐츠 객체 파트의 데이터의 진위 여부가 검증될 수 있다. 해쉬는 데이터 중복 제거의 기준 역할도 한다.
일부 구현예에서, 파일 데이터가 콘텐츠 패브릭으로 수집될 때, 파일 데이터는 바람직하게는 일관된 부분 크기를 갖도록 콘텐츠 객체 파트으로 자동 분할된다. 대용량 파일 데이터는 분할되어 여러 콘텐츠 객체 파트에 저장될 수 있다. 다수의 작은 파일이 단일 콘텐츠 객체 파트으로 집성될 수 있다. 사용자 제공 메타데이터는 도 1를 참조하여 전술한 바와 같이 콘텐츠 객체 파트에 저장될 수도 있다. 일부 구현예에서, 패브릭-내부 데이터 구조, 가령, 콘텐츠 객체 파트 또는 콘텐츠 검증 증명의 리스트가 콘텐츠 객체 파트에 저장될 수 있다. 일부 구현예에서, 콘텐츠 객체는 콘텐츠 객체 파트를 해쉬로 참조하고 자체적으로 콘텐츠 객체 파트로서 저장되는 작은 데이터 구조이다.
도 14는 콘텐츠 패브릭 내 콘텐츠 객체 구조의 예를 도시한다. 이 예에서, 콘텐츠 객체는 QREF 1404 및 QSTRUCT(1408) 형식의 구조적 부분을 포함한다. 콘텐츠 객체는 또한 메타데이터 QMD(1412) 및 QMD2(1416) 형식의 데이터 부분과 불투명한 데이터 파트(1420, 1424 및 1428) 형식의 불투명한 데이터를 포함한다. 예를 들어, 하나 이상의 불투명 데이터 부분(1420-1428)은 불투명 데이터 블롭(opaque data blob), 가령, 원시 데이터 및/또는 코드일 수 있다.
도 14에서, 콘텐츠 객체의 QREF(1404)는 콘텐츠 객체 해쉬이다. 예를 들어 QREF는 CBOR(Concise Binary Object Representation) 포맷으로 인코딩될 수 있다. CBOR은 JSON과 유사하고 스키마가 없지만 크기 면에서 더 효율적이고 처리 속도가 빠르기 때문에 일부 구현예에서 CBOR이 바람직할 수 있다. 표준 인코딩 포맷을 사용하면 메타데이터의 진위 여부의 검증을 촉진시킬 수 있다: 콘텐츠 객체 파트 해쉬가 콘텐츠 객체 파트의 이진 콘텐츠의 검증을 가능하게 하고, 개방 포맷이 이로부터 메타데이터의 추출을 가능하게 한다.
이 예에서, QREF(1404)는 QSTRUCT 해쉬(1404a), QMD 해쉬(1404b), QMD2 해쉬(1404c) 및 QTYPEHASH(1404d)로 라벨링되는 콘텐츠 유형 해쉬를 포함하는 서브-구성요소를 가진다. 이 예에서, QSTRUCT 해쉬(1404a)는 이 예에서도 CBOR-인코딩된 QSTRUCT(1408)의 해쉬이다. QSTRUCT(1408)은 불투명 데이터 파트(1420, 1424 및 1428)의 해쉬 및 연관된 증명을 포함한다. QREF(1404)에서 QMD 해쉬(1404b)는 암호화 키 공간 1에 저장된 CBOR-인코딩된 구조화된 데이터인 QMD(1412)의 해쉬이다. 동일한 토큰으로, QREF(1404)의 QMD2 해쉬(1404c)는 도 14에 도시된 바와 같이, CBOR-인코딩된 구조화된 데이터이며 암호화 키 공간 2에 저장된 QMD2(1416)의 해쉬이다. 불투명 데이터 파트(1420-1428)는 또한 도 14에 도시된 바와 같이 지정된 암호화 키 공간에 저장될 수 있다.
일부 구현예에서, 계층적 참조 구조를 사용하여 콘텐츠 객체는 작은 것에서 매우 큰 것까지 확장된다. 일부 구현예에서, 채용된 구조 중 어느 것도 이진 데이터 또는 메타데이터에 대해 크기 제한을 부과하지 않는다. 참조 구조는 콘텐츠의 효율적이고 빠른 버전 관리도 제공한다. 일부 구현예에서 새 버전의 콘텐츠를 만드는 것은 참조 구조를 복사하고 이전 버전의 데이터를 가리키며, 다음 새 버전에서 변경되는 구조 및 데이터를 생성하는 것을 포함한다. 예를 들어, 기존 콘텐츠 객체에 새 파일을 추가하면 새 데이터(세트), 메타데이터의 수정된 서브세트 및 업데이트된 내부 구조가 도출된다. 기존 파일 데이터(기존 콘텐츠 객체 파트로 표시) 및 변경되지 않은 메타데이터 서브세트가 일부 구현예에서 중복되지 않는다.
도 15는 해쉬에 의해 콘텐츠 객체를 찾기 위한 방법의 일례를 도시한다.(1504)에서, 클라이언트(1506)는 예를 들어 웹사이트에 링크된 대역외 콘텐츠 해쉬, QHASH를 획득한다.(1508)에서, 클라이언트(1506)는 출구 노드를 찾고 QHASH에 의해 식별된 콘텐츠를 읽을 것을 요청한다. 이러한 출구 노드의 예는 도 15의 노드 B이다.(1512)에서 노드 B는 QHASH를 파싱(parse)하고 이 예에서 콘텐츠 객체 해쉬 QREF를 추출한다.(1516)에서, 노드 B는 예를 들어 GET QREF 커맨드를 사용하여 콘텐츠 패브릭으로부터 QREF를 요청한다. 이 예에서, 도 15의 노드 A는 QREF가 있으므로 응답한다. 그런 다음, 노드 B는 도 14에 도시된 바와 같이 QREF의 콘텐츠를 읽고 QREF로부터 해쉬 QSTRUCT 및 QMD를 파싱할 수 있다. 도 15의(1520)에서, 노드 B는 GET QMD를 발행하고, 도 15에 도시된 바와 같이, 노드 C는 QMD가 노드 C에 저장되기 때문에 응답한다. 따라서 노드 B는 QMD의 콘텐츠를 읽을 수 있다.(1524)에서 노드 B는 QSTRUCT를 요청하고 노드 F에서 QSTRUCT를 찾는다.노드 B가 노드 F로부터 QSTRUCT를 검색하면,(1528)에서 노드 B는 QSTRUCT를 파싱하여 QPART 1과 QPART 2를 추출한다.(1532)에서, 도 15에 도시된 바와 같이, 노드 B는 노드 D로부터 QPART 1을 얻고(get) 노드 E로부터 QPART 2를 얻는다.(1536)에서, 노드 B는 QMD, QPART1 및 QPART2를 클라이언트(1506)로 리턴할 수 있다.
도 16은 콘텐츠 객체 파트 및 메타데이터에 대하여 콘텐츠 프로그램을 실행하기 위한 방법의 일례를 도시한다. 도 16에서, 클라이언트(1506)는 도 15를 참조하여 전술한 바와 같이 동작(1504 및 1508)을 수행한다. 노드 B는 전술한 바와 같이 동작(1512)을 수행한다. 도 16의(1616)에서, 노드 B는 GET QREF를 사용하여 콘텐츠 패브릭으로부터 QREF를 요청한다. 이 예에서는 노드 A에 QREF가 있으므로 노드 A가 응답한다. 그런 다음 노드 B는 QREF의 콘텐츠를 읽고 도 다른 콘텐츠 객체 해쉬를 참조하여 QTYPEHASH를 추출한다.(1620)에서 노드 B는 해쉬로 다른 콘텐츠 객체를 찾고 해당 콘텐츠 객체에서 코드 QCODEPART를 포함하는 부분을 추출한다.(1624)에서, 노드 B는 도 15의 동작(1512-1532)에서 전술한 바와 같이 콘텐츠 객체 파트 및 메타데이터를 계속 읽는다. 그런 다음, QCODEPART는(1624)에서 읽힌 콘텐츠 객체 파트 및 메타데이터에 대해 실행될 수 있다. 결과는(1628)에서 클라이언트(1506)로 리턴될 수 있다.
도 17은 콘텐츠 객체 버저닝의 일례를 도시한다. 도 17에서, 도 14의 콘텐츠 객체 구조의 제1 버전(1704)이 도시된다. 콘텐츠 객체 구조의 제2 버전(1708)도 도시된다. 이 예에서 블록체인(1712)도 도시된다. 블록체인에서,(1712)는 제1 시점(1716) 및 제2 시점(1720)에서 콘텐츠 객체 계약이다. 이 예에서, 제1 시점(1716)에서 계약은 QREF_v1, 즉 버전 1704를 식별한다. 이후 시점(1720)에서, 콘텐츠 객체 계약은 QREF_v1을 이전 버전으로 식별하고 QREF_v2, 즉, 두 번째 버전(1708)은 현재 버전으로 식별한다.
도 17의 예에서,(1722)에서, 파트 4로 라벨링된 새 파트를 추가함으로써 버전(1704)를 업데이트하기 위한 명령이 존재한다. 이 명령에 대한 응답으로,(1724)에서, QMD의 이전 버전인 QMD_v1이 만들어지고 QMD_v1이 수정되어 제2 버전(1708)에서 QMD_v2로 저장된다.(1726)에서, QSTRUCT의 제1 버전인 QSTRUCT_v1, 그리고 파트 4에 대한 참조가 추가되어 제2 버전(1708)에 표시된 QSTRUCT의 제2 버전인 QSTRUCT_v2를 생성한다.(1728)에서 QREF_v1의 복사본이 생성된다. QSTRUCT_v2 및 QMD_v2에 대한 참조가 저장되고 그런 다음 제2 버전(1708)에서 QREF_v2로 저장된다.(1730)에서, QREF_v2는 블록체인(1712)의 콘텐츠 객체 계약에 현재 버전으로 기록된다.
도 18은 콘텐츠 객체에서의 메타데이터의 검증을 위한 방법의 일례를 도시한다. 도 18에서,(1804)에서, QREF의 현재 버전은 블록체인 콘텐츠 객체 계약, 가령, 도 7의 계약(1720)을 이용해 제공된다. 도 18의(1808)에서, QREF 콘텐츠는 도 14의 해쉬 1404a-1404d의 형식으로 읽힌다. QREF의 정규 CBOR 인코딩의 체크섬은 도 18의(1812)에서 계산된다. 체크섬과 QREF가 비교된다(1816). QREF와 체크섬이 같지 않을 때 메타데이터의 검증이 실패한다.(1816)에서, QREF와 체크섬이 동일할 때, 검증이 확립된다.(1808)로 돌라와서, QREF의 콘텐츠를 읽은 후,(1820)에서, 도 14의 QMD 해쉬(1404b)가 읽힌다. 도 18에서 입력으로서 제공된 메타데이터(1822)가(1824)에서 처리되며, 여기서, 메타데이터의 표준 CBOR 인코딩의 체크섬이 계산된다. 이 체크섬은(1820)에서 읽힌 QMD 해쉬와 비교된다(1828). QMD 해쉬와(1824)의 체크섬이 동일할 때, 검증이 확립된다. QMD 해쉬와(1824)의 체크섬이 동일하지 않을 때, 검증이 실패한다.
도 19는 전체 콘텐츠 객체 파트의 검증을 위한 방법의 일례를 도시한다. 도 19에서, 도 18을 참조하여 앞서 기재된 전술한 바와 같은 동작(1804, 1808, 1812 및 1816)이 수행된다. 도 19에서,(1808) 이후, 도 14의 QREF(1404)의 QSTRUCT 해쉬(1404a)가 도 19의(1904)에서 읽힌다.(1904) 이후,(1908)에서 QSTRUCT 콘텐츠의 표준 CBOR 인코딩의 체크섬이 계산된다.(1908)에서의 이 연산은 또한 피연산자가 같지 않다는(1816)에서의 결정을 따른다. 그러 다음(1908)의 QSTRUCT 해쉬와 체크섬이 비교된다(1912). QSTRUCT 해쉬와 체크섬이 동일하지 않을 때, 검증이 실패한다. QSTRUCT 해쉬와 체크섬이 같은 경우, 검증이 확립된다. 또한, 도 19에서,(1916)에서 전체 콘텐츠 객체 파트이 입력으로서 제공된다.(1920)에서, 콘텐츠 객체 파트의 체크섬이 계산된다. 이 체크섬은(1928)에서 비교 동작에서 도 19의(1924)에서 도 14의 QSTRUCT(1408)로부터 읽힌 QPARTHASH와 비교된다. QPARTHASH와(1920)의 체크섬이 같지 않으면 검증이 실패한다. QPARTHASH와(1920)의 체크섬이 동일할 때 검증이 확립된다. 또한, 일부 구현에서, 동작(1924)은 개별 검증에 대한 도 14의 QSTRUCT(1408)에 포함된 모든 QPARTHASH에 대해 반복되는 것이 바람직하다.
도 20은 전체 콘텐츠 객체 파트의 서브-부분의 검증을 위한 방법의 일례를 도시한다. 도 20에서, 동작(1804, 1808, 1812, 1816, 1904, 1908 및 1912)은 도 18 및 19를 참조하여 위에서 설명된 방식으로 수행된다. 도 20에서, 입력으로 제공되는 전체 콘텐츠 객체 파트 보다, 콘텐츠 객체 파트의 이진 서브-부분이 입력으로서 제공된다(2004).(2008)에서, 콘텐츠 객체 파트의 서브-부분의 체크섬이 계산된다. 그런 다음(2012)에서(2008)에서 계산된 체크섬에 기초하고 증명에 기초하는 청크 머클 트리(chunk Merkle tree)의 루트(root)가 계산된다.(2016)에서 도 20의(1904) 후에, QPARTHASH는(1904)에서 획득된 QSTRUCT로부터 읽히고, 본 명세서에서 더 상세히 기재될 바와 같이 QSTRUCT에 기초하여 청크 머클 증명이 계산된다. 그런 다음, QPARTHASH이(2012)의 머클 루트 체크섬에 비교된다(2018). QPARTHASH와 머클 루트 체크섬이 동일하지 않을 때 검증이 실패한다. QPARTHASH와 머클 루트 체크섬이 동일한 경우 검증이 확립된다.
일부 구현예에서, 출력 변형을 생성할 때 동일한 콘텐츠의 재사용 및 결과적으로 배포 효율성 및 개인화에 대한 이점이 다수의 프런트 엔드 컴파일러가 다수의 소스 코드 언어에 대한 기계 코드의 컴파일(백엔드 컴파일)의 최적화를 이용할 수 있게 하는 JIT 컴파일 기능의 사용을 통해 콘텐츠 패브릭에서 촉진된다. 일부 구현예에서, 시스템은 소스 코드를 중간 표현 언어, 예를 들어 추상 구문 트리(AST)로 컴파일하고, 기계 코드에 대한 AST의 최적화된 컴파일 개발을 허용한다.
일부 구현예에서 이 방법은 소스 코드로부터 "프론트 엔드"컴파일을 분리하고 AST를 통해 소스에서 기계 코드로 "백 엔드" 컴파일을 분리하고, AST를 통해 소스 코드에서 기계 코드로의 JIT 컴파일을 지원하는 기능인 많은 바람직한 부작용을 도출한다. 또한 시스템은 크로스-플랫폼 컴파일(정적 및 동적)을 사용할 수 있다. 일부 구현예에서 콘텐츠 패브릭은 콘텐츠 객체를 수정하는 코드를 배포하기 위해 특별히 제작된 "샌드 박스"를 제공함으로써 이점을 얻는다. 샌드박스는 콘텐츠 패브릭의 일부가 될 수 있으며 웹 어셈블리 기계 코드(WASM: web assembly machine code)를 통해 애플리케이션 프로그래밍 인터페이스(API: application programming interface)를 사용하여 클라이언트로 확장될 수 있다.
일부 구현예에서, 비트코드는 임의의 지원 언어, 예를 들어 WASM용 C ++, Go 및 Javascript로 작성될 수 있지만, 다른 언어가 사용될 수 있다. 일부 구현은 콘텐츠 패브릭 메소드가 모듈을 호출 할 수 있도록 JIT를로드 한 콘텐츠 패브릭과 모듈 사이의 인터페이스를 정의하고 모듈은 콘텐츠 패브릭 메소드를 다시 호출 할 수 있다. 이 호출 컨텍스트는 콘텐츠 패브릭에서 콘텐츠 및 메타데이터를 읽고 쓰는 것을 용이하게 할 수 있으며, 코드 작업을 승인하고 시스템 리소스 사용을 측정하기위한 보안 샌드 박스를 용이하게 할 수 있다(가령, 보상 및 과금).
도 21은 콘텐츠 패브릭 내 적시(JIT: just-in-time) 트랜스코딩, 패키징 및 전송을 위한 방법의 일례를 도시한다. 도 21의 방법에 참여하는 개체는 패브릭 노드(2108), 희망 콘텐츠 객체 파트(2112)를 갖는 또 다른 패브릭 노드, 및 라이브 스트리밍 구현의 경우 원점 패브릭 노드(2116)를 포함한다. 도 21의(2120)에서, 클라이언트(2014)는 비디오 형식의 디지털 콘텐츠 재생을 요청한다.(2124)에서 클라이언트(2104)는 패브릭 노드(2108)로부터 비디오의 세그먼트를 요청한다. 패브릭 노드(2108)가 노드(2108)의 캐시에서 요청된 세그먼트를 발견하는 경우(2126), 세그먼트는 노드(2108)에서 클라이언트(2104)로 리턴된다(2128). 일부 경우에, 노드(2108)는 노드(2108)의 캐시에서 요청된 세그먼트를 찾을 수 없으므로, 노드(2108)는 대응하는 메자닌-마킹된 파트, 즉, 더 높은 비트 율 버전의 세그?Ⅴ육? 노드(2108)의 캐시에 저장되는지 여부를 결정할 수 있다(2130). 메자닌 버전이 발견되면 메자닌 버전이 트랜스코딩되어 클라이언트(2104)로 리턴될 수 있다(2132).
도 21에서, 일부 예에서, 요청된 세그먼트 및 세그먼트의 메자닌 버전이 노드(2108)의 캐시에 없는 경우, 노드(2108)는 본 명세서에서 상세히 기재된 라우팅 방법을 이용해, 파트(2112)를 갖는 노드로 메자닌 버전에 대한 GET을 전송할 수 있다(2136). 노드(2112)는(2140)에서 노드(2108)로 메자닌 버전을 리턴할 수 있다. 그런 다음 노드(2108)는(2142)에서 수신된 메자닌 버전을 개별 세그먼트 1, 2, 3, 4... N으로의 트랜스코딩을 시작할 수 있다. 세그먼트 1-N이 트랜스코딩될 때, 노드(2108)는 트랜스코딩된 세그먼트를 클라이언트(2104)로 전송하고, 여기서 세그먼트는 재생 전에 버퍼링(2144)되는 것이 바람직할 수 있다.
도 21에서, 라이브 전송의 셩우, 일부 구현에서,(2148)에서 원점 패브릭 노드(2116)로부터 세그먼트의 메자닌 버전을 생성하고 이들 메자닌 버전이 라이브 전송에서 이용 가능할 때 게시하는 것이 바람직하다. 이러한 방식으로 라이브 비디오가 미리 설정된 콘텐츠 객체 구조로 푸시(push)되므로 스트리밍 라이브 비디오에서 레이턴시가 최소화하거나 제거될 수 있다.
일부 구현예에서, 새로운 출력 변형은 메자닌 소스(언어 버전, 지역 버전, 수리, 새로운 재생 장치 형식 등)의 추가 복사본을 생성하지 않고도 도입될 수 있으며 콘텐츠 패브릭을 변경하거나 가져 오지 않고 업데이트 또는 확장될 수 있다. 일부 구현예에서, 콘텐츠 패브릭의 콘텐츠 객체 파트에 저장된 비트코드는 파이프 라인의 다른 부분을 변경할 필요 없이 버전 및 업데이트될 수 있다.
새로운 콘텐츠가 콘텐츠 패브릭, 가령, IMF(Interoperable Master Format) 패키지로 게시될 때, 입수 콘텐츠 유형 템플릿이 API의 사용자 또는 클라이언트에 의해 선택될 수 있다.이 콘텐츠 유형은 콘텐츠 패브릭으로 패키지 내 콘텐츠를 쓰기 위해 콘텐츠 패브릭이 호출하는 비트코드를 구현한다. 도 22는 비트코드로 구현된, 선택된 콘텐츠 유형의 입수 이후 콘텐츠 패브릭의 IMF 패키지 콘텐츠의 예를 도시한다. 이 예에서, IMF 콘텐츠 유형의 경우 오디오 및 비디오 트랙은 콘텐츠 객체 파트로서 써질 수 있으며 콘텐츠 재생 목록 및 제공 재생 목록(각각 CPL 및 OPL)의 관련 부분이 메타데이터 키, 값 튜플로 써진다. 일부 구현예에서, 출력 변형을 생성하는 핵심 로직은 JSON 객체를 사용하여 메타데이터 값으로 써지고, "제공"이라는 용어는 오디오 및 비디오 트랙을 위한 키 명칭, 예를 들어 출력 버전을 생성하기 위한 시작 시간 코드, 지속시간 및 파라미터의 그룹이다. 도 23은 IMF 패키지로부터 전달 가능한 소비자 스트리밍의 영어 버전에 대한 설명의 일례이며, 패키지는 다수의 언어 버전을 특정한다.
일부 구현예에서, 사용자가 콘텐츠 객체의 DASH 또는 HLS 버전을 타깃 언어 버전으로 스트리밍하도록 요청할 때, 비트코드 모듈은 적절한 메타데이터와 구성 비디오 및 오디오 콘텐츠 객체 파트를 가리키는 메타데이터를 읽고, 이러한 부분의 콘텐츠를 생성하고 매니페스트 파일을 생성한 다음 클라이언트와 스트림에 제공된다. 매니페스트와 세그먼트는 비트코드에 의해 즉석에서 빌드될 수 있다. 이 경우 비트코드는 오디오/비디오 처리 모듈을 구동하여 스케일링 및 비트 율 트랜스코딩을 수행하여 요청이 만들어질 때 클라이언트가 요청하는 세그먼트만 생성한다. 예를 들어, 도 21에서, 사용자 요청 시 비트코드를 이용해, 메자닌 마스터 패키지, 가령, IMF 포맷으로부터 생성된 DASH 및 HLS 매니페스트 파일과 세그먼트가있을 수 있다.
일부 구현예에서, 콘텐츠 패브릭의 비트코드 환경은 소비 가능한 미디어와 같은 출력을 개인화하거나 사용자 정의하기 위해 콘텐츠 패브릭의 콘텐츠 객체의 원시 데이터 및 메타데이터와 같은 부분에서 동작하는 코드를 수용 할 수 있다. 예를 들어, 일부 구현은 비트코드를 사용하고, 도 24를 참조하여 이하에서 기재된 바와 같이, 커스텀 워터파크를 적용하고, 커스텀 클립핑 기능을 제공하며, ML을 통해 자동 비디오 분류 및 메타데이터 태깅을 구현할 수 있다. 이 경우 비디오 분류 코드를 제공하는 ML 모델이 비트코드 샌드박스에 의해 로딩된 컨테이너 내에서 실행되어 지능형 콘텐츠 코딩 파이프 라인을 생성할 수 있는 다양한 가능성을 보여준다. 일부 구현예에서, 콘텐츠 패브릭은 이러한 작업이 매체 전달 파이프라인에 직접 포함되고, 나머지 파이프라인에 영향을 주지 않고 버저닝 및 업데이트되고, 재사용 가능한 메타데이터 및 콘텐츠를 사용할 수 있도록 한다.
도 24는 출력 스트림을 생성할 때 비트코드에 의해 워터마크의 콘텐츠, 치수 및 배치를 특정하는 데 사용되는 IMF 소스 패키지로부터 생성되는 원본 콘텐츠 객체에 저장되는 메타데이터의 예시를 도시한다. 이 예에서, 콘텐츠 객체는 메자닌 레벨 비디오가 있는 IMF 소스 패키지로부터 생성되었다.
일부 구현예에서, 콘텐츠 패브릭은 콘텐츠를 분류하는 메타데이터를 저장하고, 비트코드 샌드박스의 프로그래밍 가능성으로 이 메타데이터를 사용하여 맞춤형 또는 개인화된 미디어 출력을 생성하거나 패브릭 내 콘텐츠의 개인화된 JIT 검색 및 관심 매칭을 제공할 수 있는 능력을 가지고 있다. 일부 구현예에서는 딥 러닝 파이프라인을 사용하는 비디오 분류 기계를 통합할 수 있다.
일부 구현예에서, 비디오 태깅은 예를 들어 OpenCV, FFMPEG 또는 콘텐츠 패브릭 AV 파이프를 사용하여 비디오 프레임을 반복하기 위해 수행되고, 이어서 컨볼루션 신경망을 사용하여 프레임당 인코딩 절차를 적용하여 결과적으로 프레임 레벨 비디오 특징을 표현하는 프레임 당 n 차원 벡터가 수행된다. 그런 다음 프레임-레벨 피처가 집계되어 비디오-레벨 피처 벡터를 형성한 다음 비디오-레벨 분류기에 입력되어 비디오 레이블을 예측한다.
콘텐츠 패브릭 비디오 태깅 파이프라인의 일부 구현예에서, 일부 비디오는 초당 1 프레임 프레임으로 인코딩된다. 원시 프레임은 인셉션 네트워크로 공급되고, 마지막 은닉 레이어의 ReLu 활성화가 인출되어 프레임-레벨 피처를 형성할 수 있다. 이들 프레임-레벨 피처가 집성된다. 일부 구현예에서는 학습 가능한 비선형 단위인 컨텍스트 게이팅이 집계된 비디오 레벨 피처에 적용되고, 그 다음에는 비디오 분류기 - 신경망 전문가 시스템 - 가 최종 태깅을 수행하는 것이 뒤 따른다. 일부 구현은 '장소'를 인식하여 공간 표현을 집성한다.
비디오 태깅 아키텍처의 일부 구현예에서, 컨텍스트 게이팅이 수행되며, 이는 일반적으로 비디오의 관련 측면이 향상되고 주제를 벗어난 특징이 억제되도록 비선형 게이팅 유닛을 훈련시키는 것을 말한다. 일부 구현예가 '전문가' 도메인을 최적화하기 위해 다수의 단순한 '전문가' 네트워크를 훈련시킨 다음, 개별 전문가 네트워크의 파라미터와 게이팅 함수의 파라미터 모두를 효과적으로 학습하는 게이팅 분포와의 컨볼루션을 수행하는 전문가 방법의 원래 혼합에 기초하는, "신경망 전문가 혼합"이라는 방법을 사용한다. 이러한 접근 방식은 최종 예측을 위한 앙상블을 효과적으로 형성하고, 여기서 편향과 분산이 적절하게 균형을 이룰 수 있어, 개별 전문가 모델의 과적합 효과를 극복 할 수 있다.
점점 더 많은 콘텐츠가 인터넷을 통해 더 많은 권리 관리 변형으로 흐르고, 점점 더 복잡 해지는 기술 공급망에 더 많은 취약점 및 디지털 콘텐츠 인센티브 절도의 가치가 존재함에 따라 충분히 "신뢰할 수 있는" 시스템을 엔지니어링하는 패러다임은 성공적으로 유지하기 점점 더 어려워지고 있다.
[96] 일부 구현예에서, 콘텐츠 패브릭은 콘텐츠 패브릭 소프트웨어 스택에 내장된 네이티브 렛저를 통해 실행되는 블록체인 트랜잭션으로 콘텐츠 액세스 제어 - 콘텐츠를 생성, 업데이트 또는 액세스하는 작업 - 를 지원한다. 상기 시스템은 파티의 진실성(authentic)을 보장하고, 이의 합의가 콘텐츠에 대한 유효한(인증된) 트랜잭션만이 수행될 수 있음을 보장한다. 콘텐츠 패브릭은 블록체인 외부에서 확장 가능한 저장 및 배포를 유지하면서 콘텐츠의 수정 및 블록체인 액세스에 대한 제어를 본질적으로 결합 할 수 있다.
일부 구현예에서, 콘텐츠 패브릭은 콘텐츠 액세스 제어 및 승인이 당사자 간의 "프로그래밍 가능한" 트랜잭션을 위해 블록체인 원장을 이용할 수 있도록한다. 예를 들어, 블록체인 상의 각각의 트랜잭션은 각각의 콘텐츠 객체에 대한 액세스 조건을 나타내는 작은 코드 조각을 실행할 수 있다. 이 작은 코드를 스마트 계약이라고 한다. 일부 구현예에서 콘텐츠 패브릭은 이더리움 프로토콜과 호환되는 블록체인을 구현할 수 있으며 다른 프로토콜/블록체인이 사용될 수 있지만 애플리케이션을 위한 이더리움 가상 머신 인터페이스를 노출한다.
일부 구현예에서, '렛저'는 적어도 세 가지 작업을 담당한다: 1) 이들 버전 각각에 대해 각각의 콘텐츠 객체 및 최종 검증 '해쉬'(지상 검증)의 버전의 리스트에 대한 신뢰되는 참조만 포함하는 콘텐츠의 인증된 '디렉토리'를 제공, 2) 사용자가 콘텐츠 및 계약 조항 실행 및 상업적 조항 조화(지불 및 신용)을 읽고 쓸 수 있게 하는 '액세스 제어' 로직의 실행, 및 3) 콘텐츠 패브릭 내 콘텐츠에 대한 액세스 동작 기록('렛저' 동작).
일부 구현예에서, 블록체인은 주문된 트랜잭션 목록을 제공한다. 각각의 트랜잭션은 블록체인 참여자에 의해 수행되며 다음의 부작용을 가질 수 있다: 특정 계정 또는 예약의 상태 변경, 가치 이전, 또는 하나 이상의 블록체인 '이벤트'. 트랜잭션은 '트랜잭션 ID'에 의해 식별된다. 트랜잭션의 콘텐츠 및 '트랜잭션 영수증'은 블록체인 참여자에 의해 이용 가능한다. 일부 구현예에서는 렛저가 공개되기 때문에, 트랜잭션이 기록 중인 활동의 '증명'를 예를 들어 콘텐츠 패브릭에 업데이트 후 새 콘텐츠의 최종 '체크섬'으로서 저장할 수 있다. 트랜잭션이 작업의 세부 사항을 공개하지 않고 특정 작업에 대한 공개 검증을 제공할 수 있는 방식은 영 지식 증명(zero-knowledge proof)이라고 하는 암호화 클래스에 속한다.
일부 구현예에서 블록체인의 참여자는, 두 개의 카테고리, 즉, 계정 소유자 및 계약으로 나뉜다. 계정 소유자는 주로 블록체인에 대한 이들의 조치, 가령, 콘텐츠의 생성 또는 업데이트, 콘텐츠 액세스 또는 보고 등을 제어하는 사람이다. 사람 또는 자동화된 프로세스에 의해 운영되는 애플리케이션도 계정 소유자가 될 수 있다. 이들 애플리케이션은 자신이 구성한 작업을 수행하는 사람에 의해 신뢰되고, 이들은 액세스 권한이 부여된 블록체인 계정을 동작시키도록 신뢰된다. 반면에 계약은 일반적으로 자율적인 참여자이며 자신의 '코드'를 기반으로 운된다. 예를 들어, 이 계약에 의해 수락된 서명으로 서명된 특정 기록을 공급하는 각각의 사용자에게 2 크레딧을 지불하도록 써진 계약은, 서명이 매칭될 때 동일한 방식으로 작용하여 2 크레딧을 지불할 것이며, 다른 경우 지불이 거절된다. 계정 소유자는 일반적으로 블록체인 상의 '주소'로 식별되며 블록체인에 대한 자신의 트랜잭션에 서명하는 데 사용하는 공개/개인 키 쌍을 소유한다.
일부 구현예에서, 계약은 '주소'로 식별된다. 계약은 작성자가 성공적으로 배포한 경우 주소를 갖게 된다. 계약의 생성은 '보낸 사람' 주소가 계약 생성자인 '트랜잭션'에서 이루어지기 때문에 생성자는 일반적으로 알려져 있다.
일부 구현예에서, 콘텐츠 공간은 연관된 콘텐츠 객체에 대한 액세스를 제어하는 기본 정책을 설정하도록 구성 가능하다. 콘텐츠 공간은 스마트 계약으로 표현될 수 있으며 이러한 경우 콘텐츠 공간 계약이라고 지칭된다. 일부 구현예에서, 콘텐츠 패브릭은 단일 전역 콘텐츠 공간으로 작동한다. 일부 다른 구현에서, 특수 목적 사용을 위해 추가 콘텐츠 공간이 생성될 수 있다.
일부 구현예에서, 콘텐츠 노드는 공개/개인 키 쌍으로 표시되는 블록체인 계정을 가지고 있다. 동일한 토큰에 의해, 콘텐츠 패브릭의 사용자는 이의 공개/개인 키 쌍으로 표현되는 블록체인 계정을 가질 수 있다.
일부 구현예에서, 라이브러리는 라이브러리의 콘텐츠 객체가 작동하는 방식에 대한 정책을 설정하는 콘텐츠 저장소로 구현된다. 라이브러리는 콘텐츠 공간 내부에서 생성될 수 있으며, 본 명세서에서 라이브러리 스마트 계약으로 지칭되고 포함 콘텐츠 공간에 의해 결정되는 스마트 계약에 의해 표현될 수 있다. 라이브러리는 사용자를 소유자로 가질 수 있다.
일부 구현예에서, 콘텐츠는 디지털 자산의 표현이며 라이브러리에서 생성된다. 콘텐츠는 포함 라이브러리에 의해 결정되는 콘텐츠 스마트 계약이라고 하는 스마트 계약으로 표현될 수 있다. 일부 구현예에서, 각각의 콘텐츠 객체는 콘텐츠 스마트 계약의 인스턴스를 가진다.
사용자는 일부 구현예에서 다양한 역할을 가질 수 있다. 예를 들어, 라이브러리 소유자는 콘텐츠를 만들 수 있는 자, 생성된 콘텐츠를 소유하는 자, 콘텐츠에 액세스하거나 상용화하는 방법 등과 같이 라이브러리 내부의 콘텐츠 객체의 동작을 지시할 수 있다. 사용자의 또 다른 역할은 콘텐츠 소유자이다. 이 콘텐츠 객체 소유자는 콘텐츠에 대한 읽기 및 쓰기 액세스를 제어 할 수 있다. 콘텐츠 객체는 다수의 소유자를 가질 수 있으며, 이들 소유자는 다소 상이한 권한을 가질 수 있는데, 가령, 소비자 액세스를 위한 콘텐츠 객체의 게시에 대한 콘텐츠 객체의 수정 또는 업데이트 및 상업적 조건을 결정할 수 있다. 일부 구현예에서, 콘텐츠에 대한 제어 정도는 라이브러리에 의해 설정된다. 또 다른 역할은 소비자이며, 콘텐츠를 소유하지 않고 콘텐츠 객체의 계약 조건, 가령, 상업적 조건, 가령, 액세스, 또는 조회 요금에 기초하여 콘텐츠를 액세스할 수 있는 사용자를 지칭한다.
도 25는 콘텐츠 보안 및 블록체인 제어를 제공하는 콘텐츠 패브릭 동작의 흐름의 예시를 도시한다. 일부 구현예에서, 콘텐츠 패브릭에서의 콘텐츠 객체에 대한 작업은 먼저 적절한 계약 주소에서 적절한 블록체인 트랜잭션을 호출한 다음 유효한 트랜잭션 증명(작업이 승인되었음을 나타내는)을 사용하여 콘텐츠 패브릭에 대한 인증 된 API 호출할 수 있다. 특히, 콘텐츠 패브릭 API의 클라이언트(2404)는 예를 들어 개인 저장소에서 키를 검색하거나(2408)에서 새 키를 생성함으로써 자신의 공개/개인 키를 안전하게 획득한다.(2412)에서, 클라이언트(2404)는 개인 키로 서명된 블록체인 트랜잭션을 생성하고, 상기 트랜잭션은 콘텐츠 패브릭(2420)의 블록체인(2416)에 기록된다.(2412)에서, 특정 계약 및 관련 방법이 호출될 수 있다. 트랜잭션이 성공적으로 완료되면(인증 로직을 수행 할 수 있음),(2424)에서 클라이언트(2404)는 트랜잭션 ID를 포함하는 인증 토큰을 생성하고 이 토큰을 해당하는 콘텐츠 패브릭 API(2428)에 전달한다. 선택적으로.콘텐츠 패브릭 API(2428)는 클라이언트(2404)에게 계약 상의 종료 메소드를 호출하여(2432)에서 API 트랜잭션을 완료하도록 클라이언트(2404)에게 프롬프트할 수 있다.
일부 구현예에서, 콘텐츠 객체를 콘텐츠 패브릭에 게시하는 것은 콘텐츠 라이브러리가 생성되었고 그 라이브러리가 콘텐츠 공간 내에 존재함을 가정한다. 콘텐츠 라이브러리는 콘텐츠 공간 내에서 생성되므로 사용자에게 이를 수행 할수 있는 권한을 부여하는 콘텐츠 공간을 기반으로하는 경우가 많다. 예를 들어 전역 콘텐츠 공간에 의해 사용자는 유료로 라이브러리를 만들 수 있다. 일부 구현예에서, 콘텐츠 공간은 콘텐츠 패브릭의 발신자에 의해 생성되지만, 추가 콘텐츠 공간은 또한 특별한 용도로, 가령, 전용 사설 패브릭 노드를 갖는 콘텐츠 패브릭의 사설 또는 반-사설 서브세트에 대해 콘텐츠 패브릭에서 참여자에 의해 생성될 수 있다.
일부 구현예에서, 이들의 제네시스 역할 때문에, 콘텐츠 공간은 패브릭 노드에 의해 신뢰되고, 패브릭 노드는 그들의 유지자에 의해 콘텐츠 공간을 신뢰하도록 구성된다. 콘텐츠 공간 계약을 배포하고 새 공간을 인식하도록 패브릭 노드를 구성함으로써 새 콘텐츠 공간이 만들어진다.
일부 구현예에서, 라이브러리를 생성하기 위해, 사용자 또는 클라이언트 프로그램은 직접 또는 사용자 인터페이스를 통해 API 호출을 수행한다. API 구현은 콘텐츠 공간 계약 상에서 메소드 createlibrary()를 실행하며, 이 메소드 실행은 특정된 파라미터에 기초하여 특정 라이브러리에 대한 라이브러리 스마트 계약의 새로운 인스턴스를 생성할 것이다. 호출하는 사용자는 라이브러리 계약의 소유자가 되며 이에 따라 라이브러리 계약을 추가로 구성할 수 있을 것이다.
도 26은 콘텐츠 패브릭에서 보안 콘텐츠 생성을 구현하기 위한 방법의 일례를 도시한다. 일부 구현예에서, 콘텐츠 패브릭으로의 입수 및 기존 콘텐츠 객체의 업데이트를 위한 새로운 콘텐츠 객체의 생성은 도 1에 도시 된 다음 동작 중 하나 이상을 수행하는 것을 포함하며, 여기서, 클라이언트 "ALICE"(2504)는 블록체인(2508) 및 패브릭 노드(2512)와 상호 작용한다.(2516)에서, 라이브러리 계약 상의 메소드를 호출하여 가능한 콘텐츠 유형 및 라이브러리에 의해 제공되는 이들의 보안 그룹을 검색함으로써 준비가 시작된다.(2520)에서 대응하는 라이브러리 계약에서 createcontent() 메소드가 호출되어 콘텐츠 유형 및 선택된 보안 그룹을 전달한다. 이는 트랜잭션 ID 및 새 콘텐츠 ID를 리턴한다.(2524)에서 createcontent()가 콘텐츠 패브릭 상에서 호출되어 앞서 획득된 트랜잭션 ID와 콘텐츠 작성자가 서명한 콘텐츠 ID를 포함하는 인증 토큰을 전달한다. 이는 콘텐츠 패브릭으로부터 유효 쓰기 토큰을 리턴한다.(2528)에서, 다음의 콘텐츠 암호화 키 세트가 생성된다: 각각의 보안 그룹에 대한 AES 대칭 키 및 프록시 재-암호화 공개, 개인 키 쌍(AFGH). 또한(2528)에서 콘텐츠 암호화 키 세트는 다음의 세 개의 파티에 대해 암호화된다: 이들 각자의 공개 키를 이용한 소유자, 콘텐츠 패브릭의 키 관리 서비스, 및 임의의 소유자 위임인. 또한(2528)에서 setsecuritymetadata() 메소드가 호출되어 이들 세 개의 개체로 매핑된 이 데이터를 저장한다.
도 26에서,(2540)에서, 콘텐츠 객체 파트가 콘텐츠 패브릭으로 업로드되고, 먼저 AES 콘텐츠 키로 각각의 콘텐츠 객체 파트를 암호화한 다음 AFGH 키를 사용한다.(2544)에서, 이 해쉬에 의해 고유하게 식별되는 콘텐츠의 새 버전인 '콘텐츠 해쉬'를 전달하는 라이브러리 계약 상에서 commit() 메소드가 호출된다. 콘텐츠의 버전이 추가 수정없이 마무리되어야 하는 경우 각각의 콘텐츠 업데이트 API 호출은 잠재적인 '콘텐츠 해쉬'를 리턴한다.(2548)에서 finalize() 메소드가 콘텐츠 패브릭 상에서 호출되어 앞서 획득하고 소유자(생성자)에 의해 서명된 트랜잭션 ID를 포함하는 인증 토큰을 전달한다.(2552)에서 작업을 지원하는 패브릭 노드(2512)가 라이브러리 계약에 대해 confirm() 메소드를 호출하여 최종 콘텐츠 해쉬를 전달하고 패브릭 노드의 키로 트랜잭션에 서명하여 이 패브릭 노드가 작업을 지원했음을 증명한다.
일부 구현예에서, 콘텐츠 패브릭에서 콘텐츠를 업데이트하는 것은 상기 동작(2516-2540)을 건너 뛰고 대신 콘텐츠 계약에 대한 writeaccessrequest() 호출을 포함하여 업데이트를 인증한 다음, 인가 ID 에서 획득된 트랜잭션 ID를 사용하여 콘텐츠 패브릭에 대한 OpenWrite를 포함한다.
도 27은 콘텐츠 패브릭에서 보안 콘텐츠 액세스를 구현하기 위한 방법의 일례를 도시한다. 일부 구현예에서, 클라이언트에 의한 콘텐츠 패브릭으로부터의 출력, 가령, 소비자 매체로서 콘텐츠, 예를 들어 소비 가능한 미디어의 소비는 다음 동작 중 하나 이상을 수행하는 것을 포함한다. 도 27의 방법에 참여하는 개체는 클라이언트, "BOB"(2604), 블록체인(2608), 패브릭 노드(2612) 및 키 관리 서비스(KMS)(2616)를 포함한다.(2620)에서, 임시 키 세트가 생성된다.(2622)에서 프록시 재-암호화 공개/개인 키(AFGH)가 소비자의 공개 키로 암호화된다.(2624)에서 공개 키를 사용하여 콘텐츠 패브릭의 키 관리 서비스에 대해 임시 키 세트가 암호화된다.(2628)에서, 암호화된 임시 키 세트를 전달하는 콘텐츠 객체의 블록체인 계약 상에서 accessrequest() 메소드가 호출된다.(2632)에서 계약은 고유 키를 사용하여 계약의 상태에 임시 키 세트를 기록하고 소비자의 크레딧으로부터 AccessRequest에 요구되는 값을 에스크로(escrow)하고 트랜잭션 ID를 리턴한다.(2636)에서 BOB(2604)는 소비자가 서명한 앞서 획득된 트랜잭션 ID를 포함하는 인증 토큰을 전달하는 콘텐츠 패브릭에서 contentopen() 메소드를 호출한다.(2640)에서 패브릭 노드(2612)는 트랜잭션 ID를 포함하고 인증된 accessrequest()를 위해 소비자가 서명한 인증 토큰을 전달하는 KMS(2616)(위임인)을 호출한다.(2644)에서, KMS(2616)은 트랜잭션 ID(소비자의 서명 및 성공 상태)를 검증함으로써 요청을 검증한 후 다음을 생성한다: 임시 키 세트의 AFGH 키를 사용하는 프록시 재-암호화 키 - 패브릭에 재-암호화 키를 리턴함 - , 및 소비자의 공개 키로 암호화된 콘텐츠 AES 키의 암호화된 버전.
도 27에서,(2648)에서 KMS(2616)은 콘텐츠 계약에서 accessgranted()를 호출하여 앞서 획득된 재-암호화 키 및 소비자용으로 암호화된 콘텐츠 키를 기록한다. 계약은 에스크로에서 콘텐츠 소유자에게 "가치"를 공개한다.(2652)에서 패브릭 노드(2612)는 재-암호화 키를 사용하여 원래 AFGH 키 공간으로부터의 콘텐츠를 소비자의 임시 AFGH 키 공간으로 재암호화할 수 있다.(2656)에서 BOB(2604)는 패브릭 노드에 의해 전달된 재-암호화 콘텐츠 및 accessgranted() 계약 메소드에 의해 기록된 암호화된 키 블롭을 읽는다. 이제 BOB(2604)는 다음과 같이 콘텐츠를 해역할 수 있다: 개인 키를 사용하여 암호화된 키 블롭으로부터 AES 콘텐츠 해역 키를 추출, 이의 임시 AFGH 비밀 키를 이용해 해역, 그런 다음 앞서 획득된 AES 콘텐츠 해역 키를 이용해 결과를 해역. 선택적으로(2660)에서 BOB(2604)는 콘텐츠 계약의 accesscomplete() 메소드를 호출한다.
일부 구현예에서, 인가된 소비자를 위해 소유자에 의해 게시된 콘텐츠의 재-암호화는 평문 콘텐츠 또는 AES 콘텐츠 암호화 키에 대한 액세스 권한을 갖고 실행되는 소프트웨어 스택 또는 호스트 컴퓨팅 장치 없이 발생함으로써 콘텐츠의 "무신뢰" 재-암호화를 가능하게 한다. 이 기능은 공개/개인 키 암호화를 기반으로 한 프록시 재-암호화를 활용하여 하나의 사용자의 공개 키로 암호화된 데이터를 변환하여 다른 사용자의 개인 키로 해역할 수 있도록 한다. 재-암호화 변환은 암호화된 원래 사용자가 암호화하는 사용자의 개인 키와 대상 사용자의 공개 키를 기반으로하는 재-암호화 키를 생성 할 때 가능하다는 점에서 '허가'된다. 재-암호화 키 자체는 보호되며 본래 암호화된 데이터에 대한 유용한 정보를 노출하지 않는다. 또한, 이 재-암호화 키는 제3자(프록시)가 데이터가 암호화 해제되지 않고 데이터를 재-암호화하는 데 사용된다.
일부 구현예에서, 프록시 재-암호화는 보안(무신뢰) 콘텐츠 관리 시스템에 유용하고 강력한 서비스를 제공하여, 콘텐츠에 대한 의도하지 않거나 의도적인 무단 액세스를 방지한다, 특히 프록시 재-암호화는 임의의 중재 기술을 이용해 귀중한 개인 키를 노출하지 않고, 또는 악의적 최종-사용자가 시스템에서 다른 콘텐츠를 해역(그리고 절도)하는 데 사용될 수 있는 키를 공유할 수 있게 하지 않고, 보안되고, 암호화된 데이터가 다른 사용자와 쉽게 공유되게 할 수 있다.
종래의 콘텐츠 관리 시스템과는 달리, 개시된 콘텐츠 패브릭은 분산된 무 신뢰 환경에서 실행되도록 구현될 수 있다. 무신뢰 환경에서는 보안 가정이 다른데, 특히 콘텐츠 노드 자체에 콘텐츠 보안을 완전히 위임하는 것은 유효하지 않다.
일부 구현예에서, 보안 데이터는 콘텐츠 게시자에 의해 생성 및 저장되는 키 세트로 암호화된다. 기본적으로 각각의 콘텐츠 객체 파트에 대해 두 가지 고유 한 키 집합이 생성된다: 대칭 키와 프록시 재-암호화를위한 공개/개인 키 쌍. 예를 들어, 대칭 키 및 메소드는 AES-256일 수 있다. 콘텐츠 패브릭의 프록시 재-암호화는 페어링 기반 암호화로 구현되므로 페어링 친화적인 타원 곡선이 사용될 수 있다. 일부 구현예에서, 콘텐츠 패브릭은 곡선 BLS12-381을 사용한다.
일부 구현예에서, 각각의 형태의 암호화는 독립적으로 강력한 보안 보장을 제공하지만, 두 개의 개별 키 세트가 무신뢰 모델을 구현하는 데 사용된다. 대칭 콘텐츠 키는 콘텐츠 패브릭에서 안전하게 관리된다. 프록시 재-암호화를 위한 키는 개별, 독립적인 온라인 시스템, 가령, 키 관리 서비스에 의해 관리된다. 사용자에게 콘텐츠 객체에 대한 액세스 권한이 부여되면 대칭 키가 인가된 사용자에게 직접 전송된다. 이 키만으로는 데이터를 해역하기에 충분하지 않을 수 있다. 프록시 재-암호화를 수행하기 위해 인가된 사용자의 컴퓨팅 장치는 자체 BLS12-381 키 세트를 생성한다. 시스템은 본래 콘텐츠 소유자의 키와 최종 사용자의 콘텐츠 별 키를 기반으로 재-암호화 키를 생성한다. 그런 다음 이 키가 콘텐츠 패브릭의 하나 이상의 패브릭 노드로 전송된다. 그런 다음 이들 패브릭 노드는 제공된 재-암호화 키를 사용하여 암호화된 데이터를 대리하여 실시간으로 데이터를 최종 사용자의 대상 키로 변환한다. 그런 다음 최종 사용자는 먼저 개인 키로 해역하고, 그 후 다음 대칭 키로 해역한다. 이러한 형태의 2-티어 암호화는 최종 사용자가 제어하는 키가 콘텐츠 패브릭에 저장된 원본 소스 데이터를 직접 해역할 수 없음을 보장할 수 있다.
일부 구현예에서, 키 생성, 저장 및 관리는 콘텐츠 소유자 및 콘텐츠 소비자 모두를 대신하여 자동으로 투명하게 수행된다. 암호화 및 해역화는 콘텐츠 패브릭으로부터 데이터를 저장하고 검색하는 동안 거의 실시간으로 수행될 수 있다. 확장 가능한 라이브러리는 서버-측 처리를 위해 사용될 수 있으며 동일한 라이브러리는 웹 어셈블리(WASM)로 크로스 컴파일되어 최신 브라우저를 포함한 클라이언트 소프트웨어에서 실행된다.
일부 구현예에서, 콘텐츠 패브릭의 고유한 아키텍처 및 보안 모델은 콘텐츠의 무결성 검증과 콘텐츠 버전 변경의 추적 가능한 이력을 모두 제공 할 수 있는 블록체인 검증 가능(변조 방지) 콘텐츠 버전 관리 시스템을 생성할 수 있게 한다. 일부 구현예는 콘텐츠 버전 무결성의 고속 증명과 추적 가능성을 위한 블록체인으로의 콘텐츠 버전 히스토리의 레코딩을 이용한다.
일부 구현예에서, 콘텐츠 패브릭 보안 모델은 파티의 진위 여부 및 콘텐츠의 프라이버시를 제공한다. 콘텐츠의 무결성과 관련하여, 콘텐츠 패브릭의 콘텐츠 관리는 다음을 고려한다: 1) 콘텐츠가 많은 사용자에 의해 생성 및 업데이트될 수 있음, 2) 콘텐츠는 연장된 시간 동안 콘텐츠 패브릭에서 존재할 수 있음, 및 3) 콘텐츠는 많은 사용자에 의해 액세스될 수 있음.
일부 구현예에서 콘텐츠 패브릭은 콘텐츠 객체를 읽는 클라이언트가 짧은 시간 동안 객체의 구성 파트의 해쉬를 검증할 수 있게 하고, 따라서 클라이언트가 읽은 콘텐츠 객체의 무결성을 검증할 수 있게 하는 고속 증명 메소드, Chunk Merkle Proof를 사용한다.
고속 증명 메소드의 예는 다음과 같다:
각각의 콘텐츠 객체 파트는 더 작은 세그먼트 - 가령, 1, 2 또는 10-20 MB 크기로 분할된다.
각각의 세그먼트는 기본적으로 SHA-256(미래 표준, 가령, SHA-3을 포함하도록 구성 가능함)을 이용해 '해쉬'된다.
세그먼트 해쉬는 트리, 가령, 머클 트리(Merkle tree) 또는 패트리샤 트리(Patricia tree)로 구성된다.
이 트리는 다음과 같은 속성을 가진다:
머클의 루트는 콘텐츠 내 각각의 변경사항을 반영하는 해쉬이므로 주어진 머클 트리 루트는 콘텐츠의 특정 버전을 완전히 식별한다.
임의의 주어진 세그먼트에 대해, 일부 구현은 세그먼트를 소유한 사용자가 세그먼트가 정확하고 알려진 머클 트리의 루트로 확인되는 것을 확인할 수 있도록 하는 이른바, 머클 증명을 계산할 수 있다. 이 증명은 루트 해쉬를 포함하지 않는 트리의 인접한 분기의 해쉬 목록이 될 수 있다.
콘텐츠 객체 파트은 포맷, 가령, CBOR 포맷으로 특수 메타데이터 저장소에 리스트된다. 사용자는 데이터 블롭을 불러오고(a) 원하는 파트에 대한 머클 트리의 루트가 존재함, 그리고(b) 데이터 블롭의 해쉬가 이하에서 설명될 바와 같이 콘텐츠 버전 해쉬를 향해 올바르게 추가로 해결됨을 검증할 수 있다.
메타데이터 저장소가 유사하게 데이터 블롭에 저장되며 상기 # 2와 동일하게 검증될 수 있다.
콘텐츠 객체 "참조 저장소"는 콘텐츠 객체 파트 데이터 블롭 #2 및 메타데이터 #3의 해쉬를 포함하는 데이터 블롭일 수 있다.
이 구조를 사용하여, 콘텐츠 객체(예를 들어, 데이터 또는 메타데이터)의 임의의 부분을 소유한 사용자는 이 데이터가 정확하고 콘텐츠 객체 버전의 알려진 해쉬로 해결되었음을 검증할 수 있다.
일부 구현예에서, '콘텐츠 객체 버전'은 콘텐츠 객체의 생성 및 콘텐츠 객체의 업데이트 시 블록체인에 기록된다. 콘텐츠 객체 버전은 콘텐츠 쓰기 후 Commit 트랜잭션에 기록될 수 있다. 이 트랜잭션은 쓰기 작업을 수행한 계정의 주소를 인코딩하고 객체 증명과 함께 블록체인 계정을 명확하게 증명할 수 있으므로 콘텐츠 동작을 담당하는 행위자가 된다. 콘텐츠 패브릭의 기능 전반에 걸쳐 이 기능을 적용하면 도 28에 도시된 바와 같이 콘텐츠에 대한 투명하고 입증 가능한 기록의 체인이 가능하다. 도 29 및 30은 콘텐츠 객체 검증 트리의 예를 보여준다.
JSON 포맷의 콘텐츠 검증 트리의 또 다른 예는 다음과 같다:
Figure pct00001
Figure pct00002
Figure pct00003
Figure pct00004
Figure pct00005
Figure pct00006
Figure pct00007
Figure pct00008
예를 들어, 루트 해쉬 "6bfc296a266462eb34c1fbad68d40a7f9805f0d4d6c2b75b0a5664fd5e844da2" 및 10MB의 세그먼트 크기를 갖는 콘텐츠 객체 파트가 주어지면, 사용자가 10MB 세그먼트 중 임의의 것을 소유하는 경우, 해쉬 트리가 ''root_hash'까지 계산될 수 있다.
Figure pct00009
Figure pct00010
Figure pct00011
일부 구현예에서, 콘텐츠 패브릭은 개인화, 지능 및 고효율로 미디어의 관리 및 배포를 확장하고 수익을 창출한다. 다음은 여러 응용 분야를 설명한다. 다른 사용 사례도 가능한다.
일부 구현예에서, 콘텐츠 패브릭의 JIT 배포 기능은 패키징 포맷(DASH, HLS), 비트레이트, 스케일링 및 플랫폼(스마트 TV, 모바일, 데스크톱, 케이블/무선 셋톱)이 다른 소비자 스트리밍 변형이 단일 마스터, 즉 변형의 사전 생성(트랜스코딩, 패키징) 및 저장없이 메자닌 레벨 소스에서 생성되어 출시 시간, 복잡성 비용을 절약하고 저장 및 배포 대역폭의 상당한 사용을 제거한다.
일부 구현예에서, 실패한 콘텐츠 세그먼트(불량 또는 누락된 트랙, 실패한 컴플라이언스 또는 품질 관리의 그 밖의 다른 실수)는 마스터 소스의 복구된 부분만 교체하고 재-패키징을 피하고 새 버전을 재배포함으로써 정정될 수 있다.
일부 구현예에서, 특정 출력 변형에 대한 액세스가 패브릭 스마트 계약을 통해 인가되기 때문에, 특정 지역 변형 및 극장 대 가정/소매 배포 창 정책("사용 가능 조건")이 스마트 계약 정책으로 인코딩되어, 단일 소스가 전역 및 시변 가용성 계약을 서비스하고 날짜 및 시간별 가용성 조건을 제어 및 구현하기 위한 대규모 다중 부서 업스트림 작업을 감소시킬 수 있다.
일부 구현예에서, 콘텐츠 패브릭에서의 스마트 계약 제어 콘텐츠 액세스의 유연성 및 확장성 및 비트코드를 통한 프로그래밍 가능한 콘텐츠 변환에 의해 콘텐츠 소유자, 콘텐츠 라이센시, 콘텐츠 소비자 및 제3자 후원자/광고주 간에 강력한 새로운 금전화 기회가 가능하다. 다음은 몇 가지 범주를 강조한다:
일부 구현예에서, 사용자는 콘텐츠 AccessRequest 메소드에서 커스텀 사전- 및 사후-후크의 사용을 통해 크레딧을 벌어서, 콘텐츠 패브릭이 사용자에게 광고를 보는 것에 대해 크레딧을 부여할 수 있으며, 크레딧은 콘텐츠에 대해 지불되는 액세스를 위한 가입 요금에 적용될 수 있다. 마찬가지로 사용자는 광고없이 콘텐츠를 보기를 선택할 수 있다. 일부 구현예에서 콘텐츠 패브릭은 다음을 제공 할 수 있다:
광고주는 전체 광고가 스트리밍되었음을 확신할 수 있으며 광고를 시청한 사용자의 세부 정보를 제공 받을 수 있다(선택적으로 스마트 계약 방법에 전달된 데이터를 통해보고 됨).
수집된 데이터는 블록체인 트랜잭션을 통해 검증될 수 있고 스폰서 수신자가 추적될 수 있기 때문에 사용자는 수집에 기여한 데이터를 정확하게 제어하고 동의할 수 있다.
콘텐츠에 대한 광고 연결은 광고 콘텐츠를 사용자 선호도 또는 콘텐츠 태그(다음 요점 참조)와 일치시키는 것에 기반하여 경우에 따라 "스마트"할 수 있으며 비트코드를 이용해 임의의 동적 삽입, 오버레이 또는 콘텐츠내(장면 기반) 제품 배치와 함께 배치될 수 있다.
사용자는 광고 없이 콘텐츠를 시청하기로 선택할 수 있고, 반면에 스마트 계약의 시장 역학은 콘텐츠 소유자가 콘텐츠 구독에 대해 시장 부담 가격을 청구할 수 있게 한다.
일부 구현예에서, 태그 지정, 특히 콘텐츠 패브릭에서 ML을 통한 비디오의 자동화 된 비디오 분류 및 태그 지정, 및 출력 콘텐츠를 생성하는 비트코드 파이프라인을 구동하기 위한 데이터로서 이러한 태그를 "사용"하는 비트코드의 유연성을 이용해, 광고가 최종 사용자에 특정하게 만들어질 수 있으며 앞서 설명한 바와 같이 고도로 통합된 방식으로 콘텐츠에 적합화된다.
일부 구현예에서, 이러한 프로그래밍 기능과 스마트 계약을 결합하여, 콘텐츠 패브릭이 거대한 규모의 콘텐츠 시장을 지원할 수 있으며, 여기서, 후원자는 콘텐츠 태그에 입찰하며, 소유자는 후원자와 전역적으로(맞춤/기존 광고 관계 없이) 연결할 수 있고, 사용자는 콘텐츠를 선택할 수도 있고 지시된 선호를 통해 이들의 특정 관심의 광고를 선택할 수 있다. 광고 콘텐츠에 대한 사용자 액세스는 콘텐츠 전달에 대한 계약 트랜잭션로 인해 정확하게 알려질 수 있으며 콘텐츠 소유자와 광고주 간의 이러한 증명 및 정산은 스마트 계약을 통해 신속하게 처리될 수 있다. 일부 구현예에서 콘텐츠 패브릭은 스마트 계약을 외부 디지털 결제 서비스에 연결하므로 암호 화폐에 의존하거나 영향을 받는 요구 사항을 피하면서 고정 통화로 결제를 계속할 수 있다.
일부 구현예에서, 비트코드는 사용자가 뉴스 및 스포츠의 온라인 아카이브에서와 같이 선호되는 콘텐츠를 보고, 선택( "클립") 및 다운로드할 수 있도록 하는 데 사용될 수 있으며, 지원하는 스마트 계약은 선택된 콘텐츠, 가령, 태그, 또는 동의된 사용자 데이터에 대한 임의의 메타데이터를 피드백할 수 있다. 또한 스마트 계약의 콘텐츠 액세스 요금을 업데이트하여 콘텐츠 또는 콘텐츠의 일부 가격을 지능적으로 업데이트 할 수 있으므로 콘텐츠 소유자가 스마트하고 동적으로 제어하여 온라인 콘텐츠 플랫폼의 성능을 극대화 할 수 있다.
유사하게, 스마트 계약 트랜잭션을 통해 계정에 크레딧을 부여하고, 지연을 피하고, 중간 회계 및 성능에 대한효율적인 인센티브를 생성함으로써, 콘텐츠의 기여자, 가령, 제휴 스테이션, 파트너 또는 콘텐츠 사용권자가 특정 콘텐츠 성능에 직접 기초하여 지불될 수 있다.
일부 구현예에서, 콘텐츠 패브릭은 다음 기능을 통해 직접 성과 기반 지불의 가능성을 높일 수 있다: 콘텐츠 사용권자가 계약 조건을 신속하게 수락하고 스마트 계약에 기록된 상태를 디지털 방식으로 구현하고, 콘텐츠 유형으로부터 동적으로 렌더링된 템플릿 및 콘텐츠 소유자로부터의 자동 요청 승인에 따라 콘텐츠를 업로드할 수 있다. 승인은 콘텐츠 객체의 스마트 계약 상태를 자동으로 업데이트하고 사용권자의 계정에 크레딧을 제공 할 수 있다. 마찬가지로 콘텐츠 객체의 계약에 기록된 청중 성과 데이터를 사용하여 추가 로열티 지불을 계산하고 크레딧을 제공할 수 있다. 콘텐츠 소유자와 사용권자 모두 효율성, 규모 및 성과 인센티브의 혜택을 받는다.
일부 구현예에서, 최종 사용자는 효율적인 크라우드 소싱 노력으로 하향식 콘텐츠 품질 관리를 보완하는 백업 스마트 계약을 통해 신용 콘텐츠의 품질 문제를 검토 및 보고하도록 인센티브를 받을 수 있다.
일부 구현예에서, 비디오 분류를 위한 ML과 관련하여 설명된 바와 같이, 콘텐츠가 있는 콘텐츠 패브릭의 확장 가능한 메타데이터 저장소는 사용자가 콘텐츠 매칭 선호도를 검색하거나 심지어 기존 콘텐츠 샘플과 매칭 할 수 있는 거대한 규모의 검색 엔진을 생성할 수 있게 한다. 매칭될 "좋아요" 콘텐츠는 자체적으로 태그가 지정되고 "유사한 태그"가 있는 콘텐츠를 찾고 점수 부여한다.
일부 구현예에서, 콘텐츠 패브릭은 추적 가능하고 입증 가능한 콘텐츠에 기반한 새로운 미디어 네트워크, 플랫폼 및 채널을 구축하는 데 사용될 수 있다. 일부 구현예에서, 콘텐츠 패브릭이 제공하는 모든 콘텐츠의 버전과 출처를 인증함으로써 처음부터 이러한 악용을 방지할 수 있으며 새로운 등급의 입증 가능한 미디어 플랫폼에 대한 가능성을 열어둔다.
본 명세서의 특정 컴퓨팅 패러다임 및 소프트웨어 도구에 대한 언급에도 불구하고, 다양한 구현이 기반으로하는 컴퓨팅 장치 프로그램 명령은 다양한 프로그래밍 언어, 소프트웨어 도구 및 데이터 형식 중 임의의 것에 대응할 수 있으며 임의의 유형의 비 일시적 컴퓨터 판독 가능 저장 매체 또는 메모리 장치에 저장되며, 예를 들어 독립형 컴퓨팅 장치에서, 또는 다양한 기능이 다른 위치에서 실행되거나 사용될 수 있는 분산 컴퓨팅 모델에 따라 클라이언트/서버 모델, 피어-투-피어 모델을 포함한 다양한 컴퓨팅 모델에 따라 실행될 수 있다. 또한, 본 명세서의 특정 프로토콜에 대한 언급은 단지 예를 위한 것이다. 해당 분야의 통상의 기술자에게 알려진 적절한 대안이 사용될 수 있다.
본 명세서에 기재된 임의의 컴퓨팅 장치는 하나 이상의 프로세서, 메모리 장치, 입/출력 시스템 등을 포함하는 구성요소를 포함하며, 직접 또는 간접적으로 서로 전기적으로 결합되고 동작 가능한 연결을 위해 직접 또는 간접적으로 서로 통신한다. 이러한 컴퓨팅 장치는 클라이언트와 서버를 포함한다. 예를 들어, 컴퓨터 코드는 중앙 처리 장치, 가령, Intel 프로세서 등의 프로세서를 사용하여 실행될 수 있다. 데이터 및 코드는 컴퓨터 판독 가능 매체의 컴퓨팅 장치에 로컬하게 저장될 수 있으며, 그 예가 본 명세서에 더 상세히 기재된다. 일부 대안에서, 데이터 및 코드의 일부는 네트워크의 다른 컴퓨팅 장치에 저장될 수 있다. 컴퓨팅 장치는 프로세서 조합이 있는 프로세서 시스템을 갖도록 구현될 수 있다. 컴퓨팅 장치의 입력 시스템은 입력 장치, 가령, 하나 이상의 키보드, 마우스, 트랙볼, 스캐너, 카메라 및/또는 네트워크로의 인터페이스일 수 있다. 컴퓨팅 장치의 출력 시스템은 출력 장치, 가령, 하나 이상의 모니터, 프린터 및/또는 네트워크로의 인터페이스의 임의의 조합일 수 있다.
본 명세서에 기재된 임의의 모듈, 모델, 엔진 및 동작은 임의의 적절한 컴퓨터 언어, 비제한적 예를 들면, C, Go, Java 및 C ++을 이용해 프로세서에 의해 실행될 소프트웨어 코드로서 구현될 수 있다. 소프트웨어 코드는 저장 및/또는 전송을 위해 컴퓨터 판독 가능 매체에 일련의 명령 또는 커맨드로 저장될 수 있다. 적절한 컴퓨터 판독 가능 매체는 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 자기 매체, 가령, 하드-드라이브 또는 플로피 디스크, 광학 매체, 가령, 컴팩트 디스크(CD) 또는 디지털 다목적 디스크(DVD), 플래시 메모리 등을 포함한다. 컴퓨터 판독 가능 매체는 이러한 저장 또는 전송 장치의 임의의 조합일 수 있다. 소프트웨어/프로그램 코드로 인코딩된 컴퓨터 판독 가능 매체는 호환 컴퓨팅 장치, 가령, 앞서 기재된 클라이언트 또는 서버와 패키징될 수 있다. 그러한 컴퓨터 판독 가능 매체는 단일 컴퓨팅 장치 또는 전체 컴퓨터 시스템 상에 또는 그 안에 상주할 수 있으며, 시스템 또는 네트워크 내의 다른 컴퓨터 판독 가능 매체 사이에 있을 수 있다. 컴퓨팅 장치, 가령, 앞서 기재된 클라이언트는 본 명세서에서 언급된 결과 중 임의의 것을 사용자에게 제공하기 위한 모니터, 프린터 또는 다른 적절한 디스플레이를 포함할 수 있다.
본 출원의 주제가 그 특정 구현을 참조하여 특히 도시되고 설명되었지만, 개시된 구현의 형태 및 세부 사항의 변경이 본 발명의 범위 내에서 이루어질 수 있음을 해당 분야의 통상의 기술자에게 자명할 것이다. 이들 구현 중 일부의 예가 첨부 도면에 예시되어 있으며, 이에 대한 철저한 이해를 제공하기 위해 특정 세부 사항이 기재된다. 구현은 이러한 특정 세부 사항의 일부 또는 전부없이 실행될 수 있다는 점에 유의해야 한다. 또한 잘 알려진 기능은 명확성을 높이기 위해 자세히 설명하지 않았을 수 있다. 마지막으로, 다양한 구현을 참조하여 다양한 장점이 논의되었지만, 이러한 장점을 참조하여 범위가 제한되어서는 안된다는 것이 이해될 것이다. 오히려, 범위는 첨부 된 청구 범위를 참조하여 결정되어야 한다.

Claims (21)

  1. 컴퓨팅 장치로서,
    메모리 장치, 및
    상기 메모리 장치와 통신하는 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는 인터넷 프로토콜 레이터와 구별되는 애플리케이션 레이어로 구현된 오버레이 네트워크의 복수의 패브릭 노드 중 하나의 패브릭 노드를 제공하도록 소프트웨어 스택을 실행하도록 구성되며, 제공되는 패브릭 노드는
    클라이언트로부터 디지털 콘텐츠에 대한 요청을 획득하고,
    복수의 패브릭 노드 중 하나 이상의 패브릭 노드로부터, 오버레이 네트워크에서 디지털 콘텐츠의 적어도 일부분을 나타내는 콘텐츠 객체의 복수의 콘텐츠 객체 파트를 획득하며,
    콘텐츠 객체 파트에 저장된 원시 데이터,
    콘텐츠 객체 파트에 저장된 메타데이터, 및
    콘텐츠 객체 파트에 저장된 빌드 명령
    을 이용해 디지털 출력을 생성하고,
    디지털 출력을 클라이언트에게 제공하도록 구성되는, 컴퓨팅 장치.
  2. 하나 이상의 프로세서에 의해 실행될 프로그램 코드를 저장하는 비일시적 컴퓨터 판독형 매체로서, 상기 프로그램 코드는 명령을 포함하고, 상기 명령은
    인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에서 구현되는 오버레이 네트워크의 복수의 패브릭 노드 중 하나의 패브릭 노드를 제공하도록 구성되며, 제공되는 패브릭 노드는
    클라이언트로부터 디지털 콘텐츠에 대한 요청을 획득하고,
    복수의 패브릭 노드 중 하나 이상의 패브릭 노드로부터, 오버레이 네트워크에서 디지털 콘텐츠의 적어도 일부분을 나타내는 콘텐츠 객체의 복수의 콘텐츠 객체 파트를 획득하며,
    콘텐츠 객체 파트에 저장된 원시 데이터,
    콘텐츠 객체 파트에 저장된 메타데이터, 및
    콘텐츠 객체 파트에 저장된 빌드 명령
    을 이용해 디지털 출력을 생성하고,
    디지털 출력을 클라이언트에게 제공하도록 구성되는, 비일시적 컴퓨터 판독형 매체.
  3. 방법으로서,
    인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에서 구현되는 오버레이 네트워크의 복수의 패브릭 노드 중 하나의 패브릭 노드를 제공하는 단계,
    클라이언트로부터 디지털 콘텐츠에 대한 요청을 수신하는 단계,
    복수의 패브릭 노드 중 하나 이상의 패브릭 노드로부터, 오버레이 네트워크에서 디지털 콘텐츠의 적어도 일부분을 나타내는 콘텐츠 객체의 복수의 콘텐츠 객체 파트를 획득하는 단계,
    콘텐츠 객체 파트에 저장된 원시 데이터,
    콘텐츠 객체 파트에 저장된 메타데이터, 및
    콘텐츠 객체 파트에 저장된 빌드 명령
    을 이용해 디지털 출력을 생성하는 단계, 및
    디지털 출력을 클라이언트에게 제공하는 단계를 포함하는, 방법.
  4. 장치로서,
    인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에서 구현되는 오버레이 네트워크의 복수의 패브릭 노드 중 하나의 패브릭 노드를 제공하기 위한 수단,
    클라이언트로부터의 디지털 콘텐츠에 대한 요청을 처리하기 위한 수단,
    복수의 패브릭 노드 중 하나 이상의 패브릭 노드로부터, 오버레이 네트워크에서 디지털 콘텐츠의 적어도 일부분을 나타내는 콘텐츠 객체의 복수의 콘텐츠 객체 파트를 획득하기 위한 수단,
    콘텐츠 객체 파트에 저장된 원시 데이터,
    콘텐츠 객체 파트에 저장된 메타데이터, 및
    콘텐츠 객체 파트에 저장된 빌드 명령
    을 이용해 디지털 출력을 생성하기 위한 수단, 및
    디지털 출력을 클라이언트에게 제공하기 위한 수단
    을 포함하는, 장치.
  5. 탈중앙화 콘텐츠-중심 시스템으로서,
    하나 이상의 메모리 디바이스, 및
    하낭 l상의 메모리 디바이스와 통신하는 하나 이상의 프로세서 - 상기 하나 이상의 프로세서는 인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에서 구현되는 오버레이 네트워크를 제공하도록 소프트웨어 스택을 실행하도록 구성되며, 상기 오버레이 네트워크는
    하나 이상의 콘텐츠 객체 파트의 원시 데이터 및 메타데이터를 저장하는 데이터 레이어,
    하나 이상의 콘텐츠 객체 파트와 연관된 빌드 명령을 저장하는 코드 레이어 - 상기 빌드 명령은 상기 원시 데이터 및 메타데이터를 이용해 하나 이상의 콘텐츠 객체 파트에 기초하여 디지털 콘텐츠를 생성하도록 처리되도록 구성됨 - ,
    디지털 계약을 저장하는 계약 레이어 - 상기 디지털 계약은 디지털 콘텐츠를 더 생성하도록 상기 원시 데이터 및 메타데이터와 조합하여 사용되도록 구성됨 - , 및
    디지털 콘텐츠를 요청 클라이언트에게 제공하도록 구성된 통신 인터페이스를 포함하는, 탈중앙화 콘텐츠-중심 시스템.
  6. 하나 이상의 프로세서에 의해 실행될 소프트웨어 스택의 프로그램 코드를 저장하는 비일시적 컴퓨터 판독형 매체로서, 상기 프로그램 코드는 명령을 포함하고, 상기 명령은
    인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에서 구현되는 오버레이 네트워크를 제공하며 - 상기 오버레이 네트워크는
    하나 이상의 콘텐츠 객체 파트의 원시 데이터 및 메타데이터를 저장하는 데이터 레이어,
    하나 이상의 콘텐츠 객체 파트와 연관된 빌드 명령을 저장하는 코드 레이어 - 상기 빌드 명령은 상기 원시 데이터 및 메타데이터를 이용해 하나 이상의 콘텐츠 객체 파트에 기초하여 디지털 콘텐츠를 생성하도록 처리되도록 구성됨 - , 및
    디지털 계약을 저장하는 계약 레이어 - 상기 디지털 계약은 디지털 콘텐츠를 더 생성하도록 상기 원시 데이터 및 메타데이터와 조합하여 사용되도록 구성됨 - 을 포함함 - ,
    디지털 콘텐츠를 요청 클라이언트에게 제공하도록 구성되는, 비일시적 컴퓨터 판독형 매체.
  7. 제1항에 있어서, 제공되는 패브릭 노드는 메모리 디바이스에서 콘텐츠 객체 파트를 저장하도록 더 구성되는, 컴퓨팅 장치.
  8. 제1항 또는 제7항에 있어서, 제공된 패브릭 노드는 디지털 출력을 생성하기 위해 원시 데이터, 메타데이터 및 빌드 명령과 조합하여 처리되도록 구성된 실행형 디지털 계약을 제공하도록 더 구성되는, 컴퓨팅 장치.
  9. 제8항에 있어서, 상기 디지털 계약은 계약 객체 파트의 상이한 버전의 연관된 식별자와 함께 렛저(ledger)에 저장되는, 컴퓨팅 장치.
  10. 제8항 또는 제9항에 있어서, 제공된 패브릭 노드는
    해쉬 트리를 이용해 콘텐츠 객체 파트에 대한 버전 증명(version proof)을 생성하고
    상기 버전 증명을 검증하며,
    상기 버전 증명을 디지털 계약과 연관시켜 렛저에 저장하도록 더 구성되는, 컴퓨팅 장치.
  11. 제1항 및 제7항 내지 제10항 중 어느 한 항에 있어서, 원시 데이터, 메타데이터, 및 빌드 명령이 적시(JIT: just-in-time) 처리를 이용해 디지털 출력을 생성하도록 처리되도록 구성되는, 컴퓨팅 장치.
  12. 제11항에 있어서, 상기 디지털 계약은 JIT 처리를 기록하도록 구성되는, 컴퓨팅 장치.
  13. 제1항 및 제7항 내지 제12 중 어느 한 항에 있어서, 변환 레이어가 애플리케이션 레이어와 인터넷 프로토콜 레이어 사이에 위치하며, 상기 변환 레이어는 애플리케이션 레이어와 인터넷 프로토콜 레이어 간 통신을 제공하도록 구성되는, 컴퓨팅 장치.
  14. 제5항에 있어서, 각각의 콘텐츠 객체 파트는 콘텐츠 객체 파트의 콘텐츠 데이터에 단방향 해쉬 연산을 수행함으로써 생성된 각자의 해쉬에 의해 식별되는, 탈중앙화 콘텐츠-중심 시스템.
  15. 제5항 또는 제14항에 있어서, 계약 레이어는 렛저와 연관된 복수의 무신뢰 보안 연산 중 하나 이상을 제어하도록 구성되며, 상기 무신뢰 연산은 콘텐츠의 암호화, 콘텐츠의 프록시 재-암호화, 및 렛저에 기록된 하나 이상의 콘텐츠 트랜잭션과 연관된 콘텐츠 액세스 인가 중 하나 이상을 포함하는, 탈중앙화 콘텐츠-중심 시스템.
  16. 제15항에 있어서, 상기 렛저는 오버레이 네트워크의 블록체인이며, 상기 블록체인은 소프트웨어 스택으로 구현되는, 탈중앙화 콘텐츠-중심 시스템.
  17. 제5항 및 제14항 내지 제16항 중 어느 한 항에 있어서, 디지털 계약은 블록체인 스마트 계약인, 탈중앙화 콘텐츠-중심 시스템.
  18. 제5항 및 제14항 내지 제17항 중 어느 한 항에 있어서, 상기 디지털 계약은 하나 이상의 콘텐츠 객체 파트에 대한 연산을 각자의 트랜잭션으로서 기록하도록 더 구성되는, 탈중앙화 콘텐츠-중심 시스템.
  19. 제18항에 있어서, 상기 트랜잭션은 연산을 요청하는 개체의 어드레스, 하나 이상의 콘텐츠 객체 파트의 식별자, 및 트랜잭션 데이터 중 하나 이상을 식별하는, 탈중앙화 콘텐츠-중심 시스템.
  20. 제5항 및 제14항 내지 제19항 중 어느 한 항에 있어서, 상기 소프트웨어 스택은 오버레이 네트워크의 복수의 패브릭 노드를 제공하도록 복수의 프로세서의 각각의 프로세서에 의해 실행되며, 각각의 패브릭 노드는 타 패브릭 노드와 통신하여, 디지털 콘텐츠를 수신, 관리 및 출력하여 탈중앙집주와된 프레임워크를 제공하는, 탈중앙화 콘텐츠-중심 시스템.
  21. 장치로서,
    인터넷 프로토콜 레이어와 구별되는 애플리케이션 레이어에서 구현되는 오버레이 네트워크를 제공하기 위한 수단 - 상기 오버레이 네트워크를 제공하기 위한 수단은
    하나 이상의 콘텐츠 객체 파트의 원시 데이터 및 메타데이터를 저장하기 위한 수단,
    하나 이상의 콘텐츠 객체 파트와 연관된 빌드 명령을 저장하기 위한 수단 - 상기 빌드 명령은, 원시 데이터 및 메타데이터를 이용해, 하나 이상의 콘텐츠 객체 파트에 기초하여 디지털 콘텐츠를 생성하도록 처리되도록 구성됨 - , 및
    디지털 계약을 저장하기 위한 수단 - 상기 디지털 계약은 원시 데이터 및 메타데이터와 조합되어 사용되어 디지털 콘텐츠를 더 생성하도록 구성됨 - 을 포함함 - , 및
    디지털 콘텐츠를 요청 클라이언트에게 제공하기 위한 수단을 포함하는, 장치.
KR1020217014799A 2018-10-16 2019-10-16 탈중앙화 콘텐츠 패브릭 KR20210093896A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862746475P 2018-10-16 2018-10-16
US62/746,475 2018-10-16
PCT/US2019/056596 WO2020081727A1 (en) 2018-10-16 2019-10-16 Decentralized content fabric

Publications (1)

Publication Number Publication Date
KR20210093896A true KR20210093896A (ko) 2021-07-28

Family

ID=68468814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217014799A KR20210093896A (ko) 2018-10-16 2019-10-16 탈중앙화 콘텐츠 패브릭

Country Status (4)

Country Link
US (14) US11218409B2 (ko)
KR (1) KR20210093896A (ko)
SG (1) SG11202103850WA (ko)
WO (1) WO2020081727A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200313856A1 (en) 2019-03-29 2020-10-01 0Chain, LLC Systems and methods of blockchain platform for intermediaries and passwordless login
CN110290094B (zh) * 2018-03-19 2022-03-11 华为技术有限公司 一种数据访问权限的控制方法和装置
US11606291B2 (en) 2018-10-16 2023-03-14 Eluvio, Inc. Access control and ownership transfer of digital content using a decentralized content fabric and ledger
KR20210093896A (ko) 2018-10-16 2021-07-28 엘루비오, 아이엔씨. 탈중앙화 콘텐츠 패브릭
CN112470155A (zh) * 2018-10-22 2021-03-09 松下电器(美国)知识产权公司 控制方法、内容管理系统、程序及数据结构
US11113409B2 (en) * 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US10579994B1 (en) * 2018-11-06 2020-03-03 Capital One Services, Llc Method for routing to mesh network content utilizing blockchain technology
US11455380B2 (en) * 2018-11-20 2022-09-27 International Business Machines Corporation Chain-of-custody of digital content in a database system
US11711202B2 (en) 2019-05-29 2023-07-25 International Business Machines Corporation Committing data to blockchain based on approximate hash verification
US11516000B2 (en) * 2019-05-29 2022-11-29 International Business Machines Corporation Approximate hash verification of unused blockchain output
US11539527B2 (en) 2019-05-29 2022-12-27 International Business Machines Corporation Peer node recovery via approximate hash verification
US11570002B2 (en) 2019-05-29 2023-01-31 International Business Machines Corporation Reduced-step blockchain verification of media file
US10771524B1 (en) * 2019-07-31 2020-09-08 Theta Labs, Inc. Methods and systems for a decentralized data streaming and delivery network
KR20190096872A (ko) * 2019-07-31 2019-08-20 엘지전자 주식회사 연합학습(Federated learning)을 통한 필기체 인식방법 및 이를 위한 장치
US11294734B2 (en) 2019-08-01 2022-04-05 EMC IP Holding Company LLC Method and system optimizing the use of sub-data confidence fabrics
US11310272B2 (en) 2019-08-01 2022-04-19 EMC IP Holding Company LLC Method and system creating and using data confidence fabric processing paths
US11475073B2 (en) 2019-08-02 2022-10-18 EMC IP Holding Company LLC System and method for management of data from deployments
US11354652B2 (en) * 2019-08-14 2022-06-07 Visa International Service Association System, method, and computer program product for authenticating a user for a transaction
US11184334B2 (en) * 2019-09-05 2021-11-23 Microsoft Technology Licensing, Llc Control of the delegated use of DID-related data
US11645410B2 (en) * 2019-10-09 2023-05-09 Intertrust Technologies Corporation Content management systems and methods
WO2021072297A1 (en) * 2019-10-09 2021-04-15 Intertrust Technologies Corporation Trusted data management systems and methods
US11403283B2 (en) * 2019-10-15 2022-08-02 Sony Corporation Distributed ledger based generation of electronic documents
TWI726468B (zh) * 2019-10-30 2021-05-01 天宿智能科技股份有限公司 基於區塊鏈的資產權利管理系統及其方法
US11206441B2 (en) * 2019-11-13 2021-12-21 Disney Enterprises, Inc. Automated media production pipeline for generating personalized media content
US11788852B2 (en) 2019-11-28 2023-10-17 Toyota Motor North America, Inc. Sharing of transport user profile
US11388147B2 (en) * 2020-01-31 2022-07-12 EMC IP Holding Company LLC System and method for redirecting data access to local trust managers via an indirection logic service
US11777925B2 (en) * 2020-04-12 2023-10-03 Manomohan Pillai System, method, and program product using ephemeral identity for digital user identification
US11658816B2 (en) * 2020-04-15 2023-05-23 Philips North America Llc Document control system for blockchain
US11188902B1 (en) * 2020-05-20 2021-11-30 Louise Dorothy Saulog Sano Live time connection application method and devices
US11356424B2 (en) * 2020-06-22 2022-06-07 Paypal, Inc. Database synchronization system in high security zones using blockchain
CN114117507B (zh) * 2020-08-28 2024-01-30 中国电信股份有限公司 对象存储系统及其访问控制方法和设备、存储介质
CN111768184A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法及区块链节点
CN111768183B (zh) 2020-08-31 2024-04-19 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111770204B (zh) 2020-08-31 2021-10-22 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111770202B (zh) 2020-08-31 2021-10-29 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
US11615074B2 (en) * 2020-10-01 2023-03-28 Bank Of America Corporation System and methods for intelligent path selection of enhanced distributed processors
US11277330B1 (en) * 2020-10-21 2022-03-15 Ciena Corporation Multi-domain network path computation with minimal model and data sharing between domains
CN115280296A (zh) * 2021-01-06 2022-11-01 腾讯美国有限责任公司 用于媒体场景描述的方法和装置
US11797475B2 (en) 2021-01-14 2023-10-24 Tencent America LLC Method and apparatus for media scene description
US11470370B2 (en) * 2021-01-15 2022-10-11 M35Creations, Llc Crowdsourcing platform for on-demand media content creation and sharing
US20220261935A1 (en) * 2021-02-11 2022-08-18 Jonathan William Hoeflinger Method for Connecting, Communicating, Collaborating and Distributing Digital Energy Within Independent Devices, Applications and Interfaces Through a Decentralized Digital Community Architecture
US11212354B1 (en) 2021-03-19 2021-12-28 Teso LT, UAB Methods and systems for implementing a regionally contiguous proxy service
CN113312646B (zh) * 2021-06-22 2022-05-13 上海和数软件有限公司 一种基于区块链的数据加密方法
CN113392417B (zh) * 2021-06-30 2022-06-03 上海和数软件有限公司 一种用于数字资产兑换的数字签名方法
US12021076B2 (en) 2021-10-07 2024-06-25 Nxp B.V. Transistor switches with electrostatic discharge protection
US11611615B1 (en) 2021-12-07 2023-03-21 Theta Labs, Inc. Decentralized edge storage network with flexible file sharding
WO2023205772A1 (en) * 2022-04-21 2023-10-26 Edge Video B.V. Multimedia content management and packaging distributed ledger system and method of operation thereof

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280559B2 (en) 2002-08-16 2007-10-09 Mitsubishi Electric Research Laboratories, Inc. Distributed application layer protocol converter for communications network
US7613796B2 (en) 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
US7440428B2 (en) 2003-06-04 2008-10-21 Sony Computer Entertainment Inc. Method and system for persisting content in decentralized network
US20050015511A1 (en) 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
US9137072B2 (en) 2005-12-22 2015-09-15 Qualcomm Incorporated Methods and apparatus for communicating control information
US8515336B2 (en) 2006-01-06 2013-08-20 Qualcomm Incorporated Apparatus and methods of selective collection and selective presentation of content
CN101448467B (zh) 2006-05-19 2014-07-09 马科外科公司 用于控制触觉设备的方法和装置
US20090144557A1 (en) 2007-07-26 2009-06-04 Hyblue, Inc. Recoverable secure data store system and method
US8180862B2 (en) 2007-08-30 2012-05-15 International Business Machines Corporation Arrangements for auto-merging processing components
US8266448B2 (en) 2008-12-09 2012-09-11 Nvidia Corporation Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content
US8046432B2 (en) 2009-04-17 2011-10-25 Microsoft Corporation Network caching for multiple contemporaneous requests
US20120011360A1 (en) 2010-06-14 2012-01-12 Engels Daniel W Key management systems and methods for shared secret ciphers
KR20120140076A (ko) 2011-06-20 2012-12-28 한국전자통신연구원 대용량 스위치를 위한 고확장성의 멀티캐스팅 패킷 포워딩 장치 및 방법
US20140019753A1 (en) 2012-07-10 2014-01-16 John Houston Lowry Cloud key management
US9854280B2 (en) 2012-07-10 2017-12-26 Time Warner Cable Enterprises Llc Apparatus and methods for selective enforcement of secondary content viewing
KR101685515B1 (ko) 2013-01-16 2016-12-13 후아웨이 테크놀러지 컴퍼니 리미티드 다운로딩 및 스트리밍을 위한 저장 및 전송 콘텐츠
WO2015023537A2 (en) 2013-08-16 2015-02-19 Interdigital Patent Holdings, Inc. Methods and apparatus for hash routing in software defined networking
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
EP3032805B1 (en) 2014-12-12 2019-10-09 Tata Consultancy Services Limited Method and system for optimal caching of content in an information centric network (icn)
US11277390B2 (en) 2015-01-26 2022-03-15 Listat Ltd. Decentralized cybersecure privacy network for cloud communication, computing and global e-commerce
EP3073670B1 (en) 2015-03-27 2020-09-02 Black Gold Coin, Inc. A system and a method for personal identification and verification
US10027640B2 (en) 2015-09-22 2018-07-17 Qualcomm Incorporated Secure data re-encryption
US20180089651A9 (en) 2015-11-06 2018-03-29 Cable Television Laboratories, Inc Blockchaining systems and methods for frictionless media
US10298725B2 (en) 2015-11-11 2019-05-21 Adtran Inc. Synchronous digital signal encapsulation
US20170163727A1 (en) 2015-12-04 2017-06-08 University Of Surrey A network element system
US10372926B1 (en) 2015-12-21 2019-08-06 Amazon Technologies, Inc. Passive distribution of encryption keys for distributed data stores
US10127399B1 (en) 2015-12-29 2018-11-13 EMC IP Holding Company LLC Secrets as a service
EP3208714B1 (en) 2015-12-31 2019-08-21 Huawei Technologies Co., Ltd. Data reconstruction method, apparatus and system in distributed storage system
US10529042B2 (en) 2016-04-18 2020-01-07 Rs Ltd. System and method for managing transactions in dynamic digital documents
US9961139B2 (en) 2016-05-24 2018-05-01 International Business Machines Corporation Cooperative download among low-end devices under resource constrained environment
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10445698B2 (en) 2016-06-30 2019-10-15 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US20190386814A1 (en) 2016-11-07 2019-12-19 Sherjil Ahmed Systems and Methods for Implementing an Efficient, Scalable Homomorphic Transformation of Encrypted Data with Minimal Data Expansion and Improved Processing Efficiency
US10230690B2 (en) 2017-03-23 2019-03-12 International Business Machines Corporation Digital media content distribution blocking
EP3635667A4 (en) 2017-05-18 2021-08-25 Codex LLC PROCESS AND SYSTEM FOR DECENTRALIZED DISTRIBUTION OF DIGITAL CONTENT USING BLOCK CHAINS
US10721507B2 (en) 2017-06-06 2020-07-21 Linius (Aust) Pty Ltd. Systems and methods of content transaction consensus
US10860724B2 (en) 2017-06-13 2020-12-08 Microsoft Technology Licensing, Llc Active key rolling for sensitive data protection
US20180365201A1 (en) 2017-06-14 2018-12-20 Clause, Inc. System and method for compound data-driven contracts and documentation
US11823141B2 (en) 2017-06-16 2023-11-21 Visa International Service Association Blockchain network interaction controller
US9953168B1 (en) 2017-06-26 2018-04-24 Bracket Computing, Inc. Secure boot of virtualized computing instances
CN107728237B (zh) 2017-06-30 2020-08-18 友达光电股份有限公司 抗眩及抗反射元件
US10616324B1 (en) * 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US10601665B2 (en) * 2017-07-26 2020-03-24 International Business Machines Corporation Using blockchain smart contracts to manage dynamic data usage requirements
US10437503B2 (en) 2017-08-02 2019-10-08 Mastercard International Incorporated Systems and methods for redundant array data alignment
CN107666484B (zh) 2017-09-19 2019-06-21 上海交通大学 一种基于区块链的内容分发网络cdn共享方法及系统
US10528551B2 (en) 2017-09-29 2020-01-07 Oracle International Corporation System and method for providing a representational state transfer proxy service for a blockchain cloud service
US20190132350A1 (en) 2017-10-30 2019-05-02 Pricewaterhousecoopers Llp System and method for validation of distributed data storage systems
US20190311357A1 (en) 2018-04-04 2019-10-10 Vijay Madisetti Method and System for Exchange of Value or Tokens Between Blockchain Networks
US10754989B2 (en) 2018-03-27 2020-08-25 International Business Machines Corporation Runtime self-correction for blockchain ledgers
US10833864B2 (en) 2018-04-13 2020-11-10 International Business Machines Corporation Gaming concensus protocol for blockchain
WO2019204094A1 (en) 2018-04-19 2019-10-24 Walmart Apollo, Llc Systems and methods for decentralized content distribution
US11010403B2 (en) 2018-04-24 2021-05-18 Microsoft Technology Licensing, Llc Relational distributed ledger for smart contracts
US10924484B2 (en) 2018-04-26 2021-02-16 Radware, Ltd. Method for determining a cost to allow a blockchain-based admission to a protected entity
US10749676B2 (en) 2018-05-01 2020-08-18 Americorp Investments Llc Distributed consent protecting data across systems and services
CN108805569A (zh) 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
US10095888B1 (en) 2018-06-04 2018-10-09 Capital One Services, Llc Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system
US10289915B1 (en) 2018-06-05 2019-05-14 Eight Plus Ventures, LLC Manufacture of image inventories
US11244316B2 (en) 2018-06-07 2022-02-08 International Business Machines Corporation Biometric token for blockchain
US20190377461A1 (en) 2018-06-08 2019-12-12 Pumpi LLC Interactive file generation and execution
US11620642B2 (en) 2018-08-06 2023-04-04 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US10951395B2 (en) 2018-08-20 2021-03-16 Fujitsu Limited Data fetching in data exchange networks
US11818204B2 (en) 2018-08-29 2023-11-14 Credit Suisse Securities (Usa) Llc Systems and methods for calculating consensus data on a decentralized peer-to-peer network using distributed ledger
US10970717B2 (en) 2018-10-12 2021-04-06 Dish Network L.L.C. Distributed ledger for encrypted digital identity
KR20210093896A (ko) 2018-10-16 2021-07-28 엘루비오, 아이엔씨. 탈중앙화 콘텐츠 패브릭
US20200134052A1 (en) 2018-10-26 2020-04-30 EMC IP Holding Company LLC Decentralized distribution using an overlay network
US20200162266A1 (en) 2018-11-16 2020-05-21 Adobe Inc. Facilitating analytic services for provenance of digital documents
US11483347B2 (en) 2018-12-05 2022-10-25 Akamai Technologies, Inc. High performance distributed system of record with secure interoperability to external systems
US11422981B2 (en) 2019-04-09 2022-08-23 International Business Machines Corporation Information management and access control in a database
US11729175B2 (en) 2019-04-25 2023-08-15 Comcast Cable Communications, Llc Blockchain folding
US11487886B2 (en) 2019-05-03 2022-11-01 International Business Machines Corporation Database private document sharing
US11570002B2 (en) 2019-05-29 2023-01-31 International Business Machines Corporation Reduced-step blockchain verification of media file
US11381636B2 (en) 2019-06-28 2022-07-05 Intel Corporation Network function execution in information centric networks
US11544252B2 (en) 2019-12-17 2023-01-03 Akamai Technologies, Inc. High performance distributed system of record with extended transaction processing capability

Also Published As

Publication number Publication date
US20210112117A1 (en) 2021-04-15
US10805084B1 (en) 2020-10-13
US10880200B1 (en) 2020-12-29
US20210014150A1 (en) 2021-01-14
US20210044545A1 (en) 2021-02-11
US11431627B2 (en) 2022-08-30
US20210092060A1 (en) 2021-03-25
US11140077B2 (en) 2021-10-05
US11218409B2 (en) 2022-01-04
US10938791B1 (en) 2021-03-02
US11063865B2 (en) 2021-07-13
US10797994B1 (en) 2020-10-06
SG11202103850WA (en) 2021-05-28
US20210149696A1 (en) 2021-05-20
US20240179090A1 (en) 2024-05-30
WO2020081727A1 (en) 2020-04-23
US20210092059A1 (en) 2021-03-25
US11233734B2 (en) 2022-01-25
US11848862B2 (en) 2023-12-19
US20230064466A1 (en) 2023-03-02
US20210119918A1 (en) 2021-04-22
US20200344060A1 (en) 2020-10-29
US11063864B2 (en) 2021-07-13
US10917332B1 (en) 2021-02-09
US20200120023A1 (en) 2020-04-16

Similar Documents

Publication Publication Date Title
US11848862B2 (en) Decentralized content fabric
US11606291B2 (en) Access control and ownership transfer of digital content using a decentralized content fabric and ledger
US20200143014A1 (en) Decentralized digital content distribution system and process using block chains
Zhao et al. Bmcprotector: A blockchain and smart contract based application for music copyright protection
EP3635597B1 (en) Systems and methods of content transaction consensus
US20200090143A1 (en) System, Method, and Apparatus for Online Content Platform and Related Cryptocurrency
WO2022197976A1 (en) Access control and ownership transfer of digital content using a decentralized content fabric and ledger
US20040181688A1 (en) Systems and methods for the copy-protected distribution of electronic documents
US20220086187A1 (en) Decentralized digital content distribution system and process using block chains and encrypted peer-to-peer network
JP2009524125A (ja) ルール駆動パンidメタデータルーティングシステム及びネットワーク
KR102280584B1 (ko) 블록체인을 이용한 광고 서비스 기반 탈중앙 스토리지 장치 및 방법
Arunapriya Preventing the Video Leakages from The Traffic Streaming