CN109074462A - 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统 - Google Patents

使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统 Download PDF

Info

Publication number
CN109074462A
CN109074462A CN201780024133.4A CN201780024133A CN109074462A CN 109074462 A CN109074462 A CN 109074462A CN 201780024133 A CN201780024133 A CN 201780024133A CN 109074462 A CN109074462 A CN 109074462A
Authority
CN
China
Prior art keywords
user
public key
computer software
key
relevant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780024133.4A
Other languages
English (en)
Other versions
CN109074462B (zh
Inventor
史蒂芬·萨凡纳
克雷格·史蒂文·赖特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1608454.3A external-priority patent/GB201608454D0/en
Priority claimed from GBGB1608463.4A external-priority patent/GB201608463D0/en
Priority claimed from GBGB1608456.8A external-priority patent/GB201608456D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Priority to CN202310733070.7A priority Critical patent/CN116776318A/zh
Publication of CN109074462A publication Critical patent/CN109074462A/zh
Application granted granted Critical
Publication of CN109074462B publication Critical patent/CN109074462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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 Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Power Engineering (AREA)
  • Library & Information Science (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种使用分布式散列表(13)和点对点分布式分类账(14)验证计算机软件的所有权的计算机实现方法(600)和系统(1),该计算机软件用于安装。这可为比特币区块链或替代性区块链实施方案。该方法包括:确定(610)与第二用户(24)相关的第二用户公钥,第二用户公钥来自存储在点对点分布式分类账(14)上的交易记录。确定(620)与第二用户相关的第二公钥,第二公钥来自存储在分布式散列表(13)上的条目。该方法还包括比较(630)第二用户公钥与第二公钥,以及基于对第二用户公钥与第二公钥的比较来验证(640)计算机软件的所有权。

Description

使用分布式散列表和点对点分布式分类账验证数字资产所有 权的方法和系统
技术领域
本发明涉及一种用于保证数字资产的授权控制的安全、控制和验证方法。本发明特别适用于验证计算机软件的项目的所有权/授权控制。该验证过程可包括使用分布式散列表和点对点分布式分类账(区块链)。
背景技术
在本文中,使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式分类账(distributed ledger)。这些包括基于共识的区块链和交易链技术、许可的和未许可的分类账、共享分类账及其变形。尽管已经提出并开发了其他区块链实施方案,区块链技术最广为人知的应用是比特币分类账(Bitcoin ledger),。虽然本文中出于方便和说明的目的可能引用比特币,但应当指出的是,本发明并不限于比特币区块链的使用,其他替代性的区块链实现方案和协议也落入本发明的范围内。术语“用户”在本文中可指人或基于处理器的资源。
区块链是一种点对点电子分类账,其是一种基于计算机的去中心化、分布式系统,由区块构成,而这些区块又由交易构成。每笔交易都是数据结构,对区块链系统参与者之间的数字资产的控制权的转移进行编码,并且该数据结构包括至少一个输入和至少一个输出。每个区块都包含前一个区块的散列,这些区块被链接在一起,以创建一个永久的、不可更改的记录,该记录自区块链创建以来写入了该区块链的所有交易。交易包含嵌入其输入和输出中的称为脚本的小程序,这些脚本指定了如何以及由何人才能访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易都有效,无效交易被网络拒绝。安装在节点上的软件客户端通过执行其锁定和解锁脚本,对未花费的交易(UTXO)执行此验证工作。如果锁定和解锁脚本的执行评估为真(TRUE),则交易有效,交易被写入区块链。因此,为了将交易写入区块链,必须i)由接收交易的第一节点对其进行验证——如果交易通过了验证,则该节点将其中继到网络中的其他节点;ii)添加到由矿工建造的新区块中;以及iii)挖掘,即添加到过去交易的公共分类账中。
尽管区块链技术因加密货币的实施方案而广为人知,但数字企业家已经开始探索使用比特币所基于的加密安全系统和可存储在区块链上的数据来实现新的系统。如果区块链可用于不局限于加密货币领域的自动化任务和流程,那将是非常有利的。这样的解决方案将能够利用区块链的好处(例如,永久的、防篡改的事件记录、分布式处理等),同时在其应用中更通用。
目前研究的一个领域是使用区块链来实现“智能合约”。这些是旨在自动执行诸如合约或协议等机器可读文档的条款的计算机程序。与用自然语言书写的传统合约不同,智能合约是一种机器可执行程序,其包括可处理输入以产生结果的规则,然后可根据这些结果来引起将要执行的动作。
与区块链相关的另一个利益相关领域是通过区块链,使用“代币”(或“彩色硬币”)来代表和转移现实世界的实体。潜在的敏感或秘密的项目可由没有可辨别含义或价值的代币来表示。因此,代币充当了一个标识符,允许在区块链中引用现实世界的项目。
由于区块链提供的防篡改记录,区块链非常适合于控制、事件的可见性和安全交易/交换很重要的应用。一个这样的合适的应用领域是诸如软件等数字资产的交换或转移。保护计算机软件的完整性和共享计算机软件的常规方法涉及对计算机软件的可执行文件的数字签名。例如,使用加密密钥对——例如公钥和私钥——对可执行文件或其他相关代码进行签名。公钥通常从诸如认证机构等可信的中央机构获得。
计算机软件通常伴随有包含契约责任的许可证。许可证可能包含管理软件使用或再分发的条款。如果计算机软件或相关许可证被非法转移给其他用户,则可能会出现问题。
计算机软件或程序通常需要安装,之后再执行其中包含的指令。安装为计算机软件或程序的执行做好准备。计算机软件或程序通常附有执行安装的安装程序。在安装执行一次之后,不需要再次执行安装,而计算机软件或程序可反复执行。
验证软件的所有权、授权、和合法控制是必要的。这是为了确保例如软件不被转移至错误的所有者或违反授权。因此,希望提供一种便于或能够验证受控数字资产或诸如软件等资源的所有权和/或转移的解决方案。继而,这又将有助于确保软件和电子转移过程的完整性。
对本说明书中已包含的文档、行为、材料、设备、物品等的任何讨论不应被视为承认任何或所有这些事项构成现有技术基础的一部分,或者是本发明相关领域的公知常识,由于它存在于本发明的每个权利要求的优先权日之前。
在整个说明书中,单词“包括(comprise)”或其变形(comprises或comprising)将被理解为暗示包含所述元件、整体或步骤,或元件、整体或步骤的组,但不排除任何其他元件、整体或步骤,或元件、整体或步骤的组。
发明内容
本发明提供如所附权利要求中限定的方法和相应的系统。本发明可提供计算机实现的控制和验证方法/系统。该控制和验证方法/系统可使得或帮助在基于计算机的网络上,在用户之间转移受控资产。资产可能是数字资产。在本文中,术语“用户”可以用于指基于计算机的资源。受控资产可为软件的一部分或软件的项目。本发明可提供一种验证诸如计算机软件的一部分等受控资产的计算机实现方法。该计算机实现方法可以是验证软件的所有权或授权的方法。软件可被验证以在基于计算机的资源上进行安装。
该方法可包括使用分布式散列表和点对点分布式分类账(区块链)。该方法可包括:确定与第二用户(U2)相关的第二用户公钥(PU2),第二用户公钥(PU2)来自存储在点对点分布式账目上的交易记录;确定与第二用户(U2)相关的第二公钥(P2),第二公钥(P2)来自存储在分布式散列表上的条目;比较第二用户公钥(PU2)与第二公钥(P2);以及基于对第二用户公钥(PU2)与第二公钥(P2)的比较,验证计算机软件的所有权。
应当指出的是,第二用户公钥(PU2)和第二公钥(P2)可分别存储在并获取于单独的技术源,即区块链和DHT。因此,本发明可包括使用不同且独特的存储资源,并在存储资源之间进行相互通信和数据转移。通过从DHT和区块链中搜索、处理和获取数据,本发明能够实现增强的控制、安全和验证效果,从而产生了对数字资产(例如软件)的安装、转移和授权更为安全的方法。
在该方法中,比较第二用户公钥(PU2)与第二公钥(P2)可包括确定第二用户公钥(PU2)与第二公钥(P2)是否匹配。术语“匹配”可包括第二用户公钥(PU2)与第二公钥(P2)之间的对应关系、相等性或关联性。
在该方法中,计算机软件可包括标头和主体。标头可包括计算机软件的主体的散列值。标头还可包括与计算机软件或许可证相关的数据的散列值(H2)。计算机软件的主体可包括计算机软件的可执行文件。
在该方法中,在确定第二用户公钥(PU2)之前,该方法可包括对计算机软件的可执行文件进行加密。对计算机软件的可执行文件进行加密可包括:确定生成器值(GV);基于第二用户公钥(PU2)和生成器值(GV)来确定第二用户第二公钥(P2U2),其中第二用户第二公钥(P2U2)与第二用户第二私钥(V2U2)形成加密对;基于第一用户公钥(PU1)和生成器值(GV)来确定第一用户第二公钥(P2U1),其中第一用户第二公钥(P2U1)与第一用户第二私钥(V2U1)形成加密对;基于第二用户第二公钥(P2U2)和第一用户第二私钥(V2U1)来确定共同秘密(CS);以及使用共同秘密(CS),对计算机软件进行加密,以生成计算机软件的加密可执行文件。
在该方法中,计算机软件的加密可执行文件可通过以下方式解密:基于第一用户第二公钥(P2U1)和第二用户第二私钥(V2U2),确定共同秘密(CS);以及使用共同秘密(CS)来对计算机软件的可执行文件进行解密,以生成计算机软件的解密可执行文件。
该方法还可包括:将计算机软件的解密可执行文件安装在与第二用户(U2)相关的处理设备上。
该方法还可包括:确定来自第二用户(U2)的激活密钥(AK);以及基于激活密钥(AK),执行计算机软件的解密可执行文件的指令。
一种计算机软件程序,包括机器可读指令,以使处理设备实施上述方法。
一种使用分布式散列表和点对点分布式分类账验证计算机软件的所有权的计算机系统,所述计算机软件用于安装,该系统包括与节点的点对点网络上的节点相关的处理设备,该处理设备用于:确定与第二用户(U2)相关的第二用户公钥(PU2),第二用户公钥(PU2)来自存储在点对点分布式分类账上的交易记录;确定与第二用户(U2)相关的第二公钥(P2),第二公钥(P2)来自存储在分布式散列表上的条目;比较第二用户公钥(PU2)与第二公钥(P2);以及基于对第二用户公钥(PU2)与第二公钥(P2)的比较,验证计算机软件的所有权。
附图说明
图1示出了散列表的示例。
将参考以下内容来描述本发明的示例:
图2示出了使用分布式散列表,确定用于保护计算机软件的元数据(M)的示例系统的示意图,该计算机软件用于安装;
图3示出了使用分布式散列表,确定用于保护计算机软件的元数据(M)的计算机实现方法的流程图;
图4示出了Merkle树的示例;
图5示出了引用计算机软件和与计算机软件相关的许可证的Merkle树的示例;
图6示出了使用分布式散列表来确定指示计算机软件的位置的标识符的计算机实现方法的流程图;
图7示出了使用分布式散列表和点对点分布式分类账验证计算机软件的所有权的计算机实现方法的流程图,该计算机软件用于安装;
图8示出了确定共同秘密的计算机实现方法的流程图;
图9示出了对计算机软件的可执行文件进行加密的计算机实现方法的流程图;
图10示出了示例处理设备的示意图。
具体实施方式
本发明大体涉及利用分布式散列表和诸如比特币区块链等点对点(P2P)分布式分类账验证计算机软件的方法和系统,该计算机软件用于安装。
虽然下面描述的实施方式可能具体涉及在比特币区块链(本文中称为区块链)上发生的交易,但是应当理解的是,本发明可以使用其他P2P分布式分类账来实现。由于区块链具有高的标准化水平和大量相关的公共文档,因此为了简单起见,下面仅使用区块链来描述本发明的各方面。
分布式散列表
在典型的客户端/服务器模型中,中央服务器可掌管大部分资源。这意味着在中央服务器发生攻击或故障的情况下,存储在中央服务器上的大多数资源可能会受到损害。相反,在分布式模型中,资源在参与节点之间共享(“分布”)。以这种方式,所有参与节点的容量都得到利用,一台服务器的故障不会对大部分资源造成损害。
图1示出了散列表的示例。散列表由关键字-值对组成。每个关键字-值对的关键字都通过散列函数映射到索引。索引定义了关键字-值对的存储值的位置。
分布式散列表(Distributed Hash Table,简称“DHT”)是将分布式模型应用于散列表的示例。类似于散列表,DHT包括关键字-值对,并且提供了一种在仅给出关键字的情况下,定位(“查找”)关键字-值对中的值的有效方法。然而,与散列表相比,关键字-值对分布和存储在许多参与节点。以这种方式,各参与节点共同分担了存储和维护关键字-值对的责任。
与散列表相同,DHT中的每个关键字-值对都映射到索引。通过对关键字执行散列函数来确定每个关键字-值对的索引。例如,加密安全散列算法SHA-1可用于确定索引。
通过对密钥空间进行划分,为每个参与节点分配至少一个索引。对于分配给参与节点的每个索引,该参与节点存储关键字-值对中的值。
优点在于可有效地检索关键字-值对中的值。为了检索与关键字相关的值,节点可执行“查找”以(通过索引)确定负责节点。然后可访问负责节点以确定该值。
比特币和区块链
如本领域所公知的,区块链是交易类型分类账的数据库,基于比特币协议,其存储容量分布在参与在系统中的各网络节点上。每笔比特币交易都在网络广播,交易被确认后汇总成区块。然后,通过将区块存储在多个参与节点上,将区块包括在区块链中。
加密货币的P2P分布式分类账的完整副本包含用加密货币进行的每一笔交易。因此,提供了不断增长的交易数据记录列表。由于进入区块链的每一笔交易都是加密执行的,因此,区块链被加强了防范篡改和修改的能力,甚至是参与节点的操作员的篡改和修改。
由于区块链的透明性,因此每笔交易的历史记录都是公开的。区块链的另一个优点是交易和交易记录是相同的。以这种方式,在实际交易中捕获与交易有关的信息。此记录是永久的、不可变的,因此不需要第三方将交易记录保存在单独的数据库中。
付费脚本散列和多重签名
虽然下面的实施例可特别指使用比特币协议的付费脚本散列(P2SH)方法的交易,但是应当理解,本发明也可使用比特币协议的另一种方法来实现,例如付费公钥散列(pay-to-public-key-hash)方法。
区块链上的每笔交易记录均包括脚本,该脚本包括指示交易和多个公钥的信息。这些公钥可与加密货币的发送者和接收者相关。脚本可被视为记录在区块链上的记录每笔交易的指令列表,其描述了用户如何获得对交易记录中指定的加密货币的访问权。
作为背景技术,在比特币协议的标准P2SH方法中,输出脚本或赎回脚本可采用以下形式:
<NumSigs PubK1PubK2…PubK15NumKeys OP_CHECKMULTISIG>
其中NumSigs是满足赎回脚本来解锁交易所需的有效签名的数量“m”;PubK1,PubK2...PubK15是公钥,对应于解锁交易的签名(最多15个公钥),NumKeys是公钥的数量“n”。
在比特币协议中,可使用椭圆曲线数字签名算法(Elliptic Curve DigitalSignature Algorithm)来生成基于用户私钥的签名。然后,签名用于赎回与输出脚本或赎回脚本相关的加密货币。当用户赎回输出脚本或赎回脚本时,用户提供其签名和公钥。然后,输出脚本或赎回脚本根据公钥来验证签名。
为了赎回上述赎回脚本,至少需要与公钥对应的数量“m”的签名。在一些示例中,公钥的顺序是重要的,用于签名的“n”个中的数量“m”个签名必须按顺序进行。例如,考虑“m”为2,“n”为15的情况。如果有两个签名可供使用,Sig1(对应于PubK1)和Sig 15(对应于PubK15),则赎回脚本必须首先由Sig1签名,然后由Sig15签名。
系统概述
现在将描述确定用于保护计算机软件的元数据(M)以及验证计算机软件的所有权的方法、设备和系统,,该计算机软件用于安装。
图2示出了系统1,其包括第一节点3,其通过通信网络5与第二节点7进行通信。第一节点3具有相关的第一处理设备21,第二节点5具有相关的第二处理设备27。第一和第二节点3、7的示例包括电子设备,例如计算机、平板计算机、移动通信设备、计算机服务器等。
记录和存储关键字-值对的DHT 13也在图2中示出。DHT 13可与一个或多个处理设备19相关联,以接收、记录和存储关键字-值对中的值。处理设备19可由DHT 13的“参与节点”使用。如上所述,DHT 13提供了定位关键字-值对中的值的有效方法。
图2还示出了P2P分布式分类账14以记录交易。P2P分布式分类账14可与一个或多个处理设备20相关联以接收和记录交易。如上所述,P2P分布式分类账14的一个示例是比特币区块链。因此,在区块链的环境中,与P2P分布式分类账14相关的处理设备20可为被称为“矿工”的处理设备。
第一节点3与第一用户23相关联,第二节点7与第二用户24相关联。在一个示例中,第一节点3可代表计算机软件的供应商。在另一示例中,第一节点3可代表代理或服务提供商。在又一示例中,第一节点3可表示计算机软件的用户。
第二节点7可以表示计算机系统的用户。在另一示例中,第二节点7可以表示代理,服务提供商或计算机软件的供应商。
在一个示例中,第一节点3实施如图3、图6、图7、图8和图9所示的方法100、300、400、500、600、700、800。在另一示例中,第二节点7实施方法100、300、400、500、600、700、800。
虽然下面的示例性实施方式可能涉及第一节点3执行这些方法或者第二节点7执行这些方法,但是应当理解的是,本发明也可以调整或修改为由其他节点执行。
如图3所示的方法100保护计算机软件,该方法100包括步骤110,确定与计算机软件相关的数据(D1)。数据(D1)还可包括与计算机软件相关的许可证。方法100还包括步骤120,基于计算机软件来确定第一散列值(H1)。在一个示例中,第一散列值(H1)可与计算机软件的可执行文件有关。
方法100还包括步骤130,基于数据(D1)和计算机软件来确定第二散列值(H2)。在一个示例中,第二散列值(H2)可代表计算机软件的细节和与计算机软件相关的许可证。在另一示例中,第二散列值(H2)可包括附加信息。
方法100还包括步骤140,通过通信网络5,将数据(D1)、第一散列值(H1)和第二散列值(H2)发送到分布式散列表13上的条目,其中第二散列值(H2)被分配给关键字-值对中的关键字,而数据(D1)和第一散列值(H1)被分配给关键字-值对中的值。关键字-值对中的值还可包括指示计算机软件或许可证的位置的标识符。
方法100还包括步骤150,确定基于第二散列值(H2)的元数据(M),以包括在点对点分布式分类账14上。在一个示例中,元数据(M)可包括在第一赎回脚本(RS1)中,以包括在点对点分布式分类账14上。
如图7所示的方法600验证计算机软件的所有权,并且在上述方法之后执行。这被示出为图7中的可选步骤100。方法600包括:步骤610,确定与第二用户(U2)相关的第二用户公钥(PU2),该第二用户公钥(PU2)来自存储在点对点分布式分类账14上的交易记录的。第二用户公钥(PU2)可包括在交易记录的输出脚本中。在另一示例中,第二用户公钥(PU2)可包括在点对点分布式分类账14上的元数据(M)中,如上所述。
方法600还包括:步骤620,确定与第二用户(U2)相关的第二公钥(P2),该第二公钥(P2)来自存储在分布式散列表13上的条目。第二公钥(P2)可与第二用户公钥(PU2)相同。分布式散列表13上的条目可包括关键字-值对。
方法600还包括:步骤630,比较第二用户公钥(PU2)与第二公钥(P2)。方法600还包括:步骤640,基于对第二用户公钥(PU2)和第二公钥(P2)的比较,验证计算机软件的所有权。在一个示例中,验证所有权可表明第二用户公钥(PU2)与第二公钥(P2)匹配。
现在将对方法100、600的详细示例进行描述。
确定与计算机软件相关的数据110
如上所述,方法100包括步骤110,确定与计算机软件相关的数据(D1)。确定数据(D1)的步骤110可包括从用户、节点或数据存储接收数据(D1)。确定数据(D1)的步骤110还可包括在第一节点3处生成数据(D1)。
在一个示例中,第一节点3可通过用户接口15接收来自第一用户23的数据(D1)。在另一示例中,第一节点3可接收来自第二用户24的数据(D1)。在又一示例中,第一节点3可接收来自数据存储17的数据(D1)。
数据(D1)与计算机软件相关联,其中数据(D1)可识别计算机软件、附加信息、计算机软件的许可证或指示计算机软件的位置。例如,数据(D1)可包括识别计算机软件的字符串或数据结构。字符串或数据结构可包括关于计算机软件的识别关键字和/或附加信息的集合。附加信息的示例可为计算机软件的版本的如数字等标识符。例如,如果计算机软件名为BobSoftware,版本是3.0,则字符串或数据结构(D1)可包括“BobSoftware/3.0”。
在另一示例中,数据(D1)可包括与计算机软件相关的许可证的标识符。这可为软件许可证标识号(ID)或软件许可证密钥。在另一示例中,许可证的标识符可包括许可证内容的加密散列。
数据(D1)还可包括指示计算机软件的存储位置的标识符。在一个示例中,标识符可包括互联网上的对象的统一资源定位地址(URL)。在另一示例中,可提供到诸如散列表或分布式散列表之类的存储库中的计算机软件的存储位置的链接。
在又一个示例中,数据(D1)可包括识别计算机软件的供应商的信息。这可包括个人详细信息,如姓名、地址、联系方式或与供应商相关的公钥。
基于计算机软件确定第一散列值(H1)120
也如上所述,方法100还包括步骤120,确定计算机软件的第一散列值(H1)。确定第一散列值(H1)的步骤120可包括接收来自用户的第一散列值(H1)或访问来自数据存储的第一散列值(H1)。确定第一散列值(H1)的步骤120还可包括在第一节点3处计算散列值。
在一个示例中,第一节点3可经由用户接口15,接收来自第一用户23的第一散列值(H1)。在另一示例中,第一节点3可接收来自第二用户24的第一散列值(H1)。在又一示例中,第一节点3可访问来自本地数据存储17或远程数据存储的第一散列值(H1)。
在一个示例中,第一散列值(H1)是计算机软件的可执行文件。计算机软件的可执行文件可从诸如互联网之类的通信网络5获取。在另一示例中,可执行文件可由第一用户23或第二用户24提供。在又一示例中,可从数据存储17中获取可执行文件。在又一个示例中,可从诸如散列表或DHT之类的存储库中获取可执行文件。
可使用SHA-256算法来确定软件的可执行文件的散列,以创建信息的256位表示。应当理解,也可使用其他散列算法,包括安全散列算法(SHA-Secure Hash Algorithm)系列中的其他算法。一些特定示例包括SHA-3子集中的实例,包括SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256。其他散列算法可包括RACE完整性基元评估消息摘要(RIPEMD-RACE Integrity Primitives Evaluation Message Digest)系列中的那些。一个特定示例可包括RIPEMD-160。其他散列函数可包括基于Zémor-Tillich散列函数和基于背包的散列函数的系列。
基于数据(D1)和计算机软件确定第二散列值(H2)130
方法100还包括步骤130,基于数据(D1)和计算机软件来确定第二散列值(H2)。
在一个示例中,可基于数据(D1)和计算机软件的可执行文件(或可执行文件的散列,即第一散列值(H1))的级联的散列,来确定第二散列值(H2)。在另一示例中,可基于数据(D1)、计算机软件的可执行文件(或可执行文件的散列)和附加信息的级联的散列,来确定第二散列值(H2)。
附加信息可包括第一用户23的公钥(PU1)或第二用户24的公钥(PU2)。在另一示例中,附加信息可包括与第一用户23或第二用户24相关的实体的标识符。例如,实体可为第一用户23或第二用户24的雇主。在另一示例中,实体可为第一用户23或第二用户24的服务提供商。
附加信息还可包括与第一节点3、第二节点7、第一用户23或第二用户24相关的设备的设备标识符。设备的示例是如图2所示的第一处理设备21。设备标识符可包括以下各项中的至少一个:媒体访问控制(MAC)地址、主板序列号或设备标识号。设备标识符还可为MAC地址、主板序列号或设备标识号中的至少两个的级联。在另一示例中,设备标识符可包括与MAC地址、主板序列号或设备标识号或上述级联相关的散列值。
在又一个示例中,附加信息可包括与计算机软件相关的许可证的到期日期。
与计算机软件相关的许可证
在另一示例中,可基于数据(D1)、计算机软件的可执行文件(或可执行文件的散列)、附加信息或与计算机软件有关的合约(例如,许可证)的级联,来确定第二散列值(H2)。
许可证的表示可为指定许可证内容的文件或文档。例如,纯ASCII文本、PDF文档或Word文档。第二散列值(H2)可包括原始形式的许可证,或者例如,它可提供到许可证在可公开访问的诸如互联网等通信网络中的位置的链接。在另一示例中,可提供连接到诸如散列表或DHT等存储库中的许可证的位置的链接。在又一个示例中,可提供连接到诸如数据存储17等基于计算机的资源中的许可证的位置的链接。
在一个示例中,许可证可包括与计算机软件相关的第一散列值(H1)。
与计算机软件相关的许可证可进一步包括如上所述的附加信息。在一个示例中,许可证可与第一用户23或第二用户24相关联。许可证可包括第一用户23的公钥(PU1)或第二用户24的公钥(PU2)。在另一示例中,许可证可包括与第一用户23或第二用户24相关的实体的标识符。
与计算机软件相关的许可证还可包括与第一节点3、第二节点7、第一用户23或第二用户24相关的设备的设备标识符。设备的示例是如图2所示的第一处理设备21。设备标识符可包括以下各项中的至少一个:MAC地址、主板序列号或设备标识号。设备标识符还可为MAC地址、主板序列号或设备标识号中的至少两个的级联。在另一示例中,设备标识符可包括与MAC地址、主板序列号或设备标识号或上述级联相关的散列值。
第一用户23可为计算机软件的供应商,第二用户24可为计算机软件的接收者(“终端用户”)。在另一示例中,第二用户23可为计算机软件的供应商,第二用户24可为计算机软件的终端用户。
在一个示例中,与计算机软件相关的许可证仅可授权一个终端用户(“单用户许可证”)。在另一示例中,与计算机软件相关的许可证可授权终端用户的一个设备(“单设备许可证”)。在另一示例中,与计算机软件相关的许可证可授权终端用户的多于一个的设备(“多设备许可证”)。
在另一示例中,可能存在多于一个的终端用户(“多用户许可证”)。在另一示例中,与计算机软件相关的许可证可授权每个终端用户的一个设备。在另一示例中,与计算机软件相关的许可证可授权每个终端用户的多于一个的设备。
在许可证与第一用户23或第二用户24相关联的情况下,许可证可包括与第一用户23相关的第一用户公钥(PU1)和与第二用户24相关的第二用户公钥(PU2)。
默克尔(Merkle)树
在另一示例中,许可证可为Merkle树的顶部散列值。Merkle树的一个示例如图4所示。在Merkle树中,每个节点处的散列值都是它们各自的“子节点”的散列。例如,散列值Hash-A 305是两个“子”节点309和311处的散列值的散列。可以看出,Merkle树的顶部散列值Hash-AB 303包括Merkle树中的所有散列值。也就是说,它捕获树底部的四个“叶子”的散列值,A1 317、A2 319、B1 321和B2 323。
在本发明的示例中,Merkle树的每个“叶子”都可代表许可证信息的一个方面。一个示例性许可证在图5中示出。在散列值Hash-D 409中捕获数据417(D1),在散列值Hash-S411(H1)中捕获软件的可执行文件419,在散列值Hash-P 413中捕获用户23和/或24的公钥421,在散列值Hash-E 415中捕获到期日期423。可以看出,节点405和407分别捕获与用于数据(D1)417和软件419以及公钥421和有效期限423的叶子相关的散列值。
应当理解,上面未另外描述的其他信息可包括散列值(H2)所基于的附加信息。
将数据(D1)、第一散列值(H1)和第二散列值(H2)发送到分布式散列表140
方法100还包括步骤140,通过通信网络5,将数据(D1)、第一散列值(H1)和第二散列值(H2)发送到分布式散列表13上的条目。
在一个示例中,第二散列值(H2)可为关键字-值对中的关键字,而数据(D1)和第一散列值(H1)可为关键字-值对中的值。
在另一示例中,如上所述的附加信息也可为关键字-值对中的值的一部分。这包括但不限于:第一用户23或第二用户24的公钥、与第一节点3、第二节点7、第一用户23或第二用户24相关的设备的设备标识符、指示计算机软件或许可证的位置的标识符、或与许可证相关的其他附加信息。
如上所述,DHT 13由关键字-值对组成,其中每个关键字-值对都被分配给索引。在一个示例中,第二散列值(H2)可用于生成索引。可对第二散列值(H2)执行散列函数或加密散列函数。例如,可使用加密函数SHA-1:
索引=SHA-1(H2)
对于第二散列值(H2)为DHT 13中的关键字-值对中的关键字,并且数据(D1)和第一散列值(H1)为关键字-值对中的值的情况,关键字和值被发送到DHT 13中的任何参与节点。
在一个示例中,诸如输入(关键字,值)(put(key,value))之类的消息可被发送到DHT 13的参与节点,其中关键字(key)是第二散列值(H2),值(value)是数据(D1)和第一散列值(H1)。可向所有参与节点发送消息,直到该消息由通过密钥空间划分所指示的,被分配给索引的参与节点所接收。然后,分配给消息中指示的索引的参与节点可将关键字-值对存储在DHT 13上,并承担维护与关键字-值对相关的条目的责任。
优点在于,可从DHT 13中获取任何给定关键字的值。在一个示例中,第一用户23或第二用户24可能希望获取该值。经由第一节点3、第二节点7或未另外示出的另一节点,第一用户23或第二用户24可向DHT 13中的任何参与节点提供诸如获取(值)(get(key))之类的请求消息。然后,该请求消息可被发送到所有参与节点,直到该请求消息由通过密钥空间划分所指示的,被分配给索引的参与节点所接收。
确定元数据(M)150
方法100还包括步骤150,确定元数据(M),该元数据(M)包括第二散列值(H2)。确定元数据(M)的步骤150可包括接收来自用户、节点或数据存储的元数据(M)。例如,元数据(M)可被包括在P2P分布式分类账14上的交易的P2SH多重签名第一赎回脚本(RS1)中的公钥可用的15个位置中的一个或多个。
P2P分布式分类账14上的交易的第一赎回脚本(RS1)可表示代币化交易(“发行代币”)的发行或创建,代币化交易代表包括在元数据(M)中的内容。在一个示例中,代币可由代理(A)发行。在比特币协议的P2SH方法中,元数据可以包括在如下所述的赎回脚本中。
元数据
元数据(M)可嵌入在P2SH多重签名赎回脚本(RS1)中的公钥可用的15个位置中的一个或多个。例如,赎回脚本(RS1)可采取以下形式:
<NumSigs Metadata1 Metadata2… PubK1 PubK2… NumKeys OP_CHECKMULTISIG>
其中Metadata1和Metadata2均包含在赎回脚本中取代公钥位置的元数据,PubK1和PubK2是公钥。
元数据(M)可包括第二散列值(H2)。元数据(M)还可包括描述与计算机软件或许可证相关的条件的描述或关键字。例如,许可证的日期、与许可证相关的用户的姓名、出生日期、地址、联系方式或其他信息。在另一示例中,可包括与一定数量的加密货币相关的信息。
元数据(M)可以多种方式来包括信息。在一个示例中,可包括信息的内容。在另一示例中,可包括信息的加密散列。可使用SHA-256算法来确定信息的散列,以创建信息的256位表示。应当理解,也可使用其他散列算法,包括安全散列算法(SHA)系列中的其他算法。一些特定示例包括SHA-3子集中的实例,包括SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256。其他散列算法可包括RACE完整性原语评估消息摘要(RIPEMD)系列中的那些。一个特定示例可包括RIPEMD-160。其他散列函数可包括基于Zémor-Tillich散列函数和基于背包的散列函数的系列。
在本发明的其他实施例中,包括以上各项中的一项或多项的结合可包括在元数据(M)中。由于元数据(M)可通过诸如区块链之类的P2P分布式分类账14公开,或者通过不安全的网络传输,因此出于隐私原因,可能希望隐藏元数据(M)的具体细节。
因此,在本发明的实施例中使用的多重签名P2SH比特币交易具有优点,因为它能够传输和永久记录与计算机软件和许可证相关的信息。通过在交易的诸如赎回脚本的输出脚本中包含元数据,来实现此记录。
第一赎回脚本
如上所述,赎回脚本是比特币协议的标准P2SH方法中的输出脚本的示例,描述了用户如何获得对交易记录中指定的加密货币的访问。
在本发明中,用于发行代币的第一赎回脚本(RS1)可基于元数据(M)。第一赎回脚本(RS1)还可包括与代理私钥(VA)形成密码对的代理公钥(PA)。以这种方式,代理私钥(VA)需要“解锁”或花费与交易相关的加密货币。
在一个示例中,用于发行代币的第一赎回脚本(RS1)可包括元数据(M)。第一赎回脚本(RS1)还可包括代理公钥(PA)。在此示例中,第一赎回脚本(RS1)可为以下形式:
<OP_1PA Metadata1Metadata2OP_3OP_CHECKMULTISIG>
其中OP_1表示满足第一赎回脚本(RS1)以解锁交易所需的签名数量(“NumSigs”),OP_3表示赎回脚本中的公钥数量(“NumKeys”)。
在该示例中,第一赎回脚本(RS1)可包括元数据的两个指定字段,Metadata1和Metadata2。Metadata1和Metadata2的具体示例在下面的表1中示出。
表1
该示例包括提供指向Metadata1中的许可证的指针,在许可证的大小排除了在元数据(M)中包括这样的细节的情况下,该指针可能是有用的。此外,由于元数据(M)可被公开,或者通过不安全的网络传输,因此出于隐私原因,可能希望隐藏代币的具体细节。
Metadata1的前4个字节指示许可证的类型。例如,许可证类型可表示诸如BobSoftware之类的计算机软件的名称。在另一示例中,许可证类型可表示许可证的授权类型,诸如如上所述的“单用户”或“多设备”。接下来的16个字节保存实际电子许可证文件的位置的IP地址,允许IPv6地址。注意,在一些实施例中,该值可指向种子(torrent)文件的种子,使得许可证文件可分布在云上而不是集中。后面12个字节包含特定于许可证类型的数据。
Metadata2的前20个字节是实际许可证文件的散列,在应用于许可证文件的实际内容的SHA256上使用RIPEMD-160。由于实际许可证文件可为可获取的,因此允许根据合约来验证交易。注意,许可证文件本身可以是完全公开的(未加密的,且人类可读的),或者可加密以保护隐私,这取决于具体实施例的要求。可根据许可证的类型,来使用Metadata2的剩余12个字节的内容。
从上面提供的第一赎回脚本(RS1)的示例可以看出,发行代币必须由代理(A)签署才能花费。表2中提供了发行代币的交易的示例,为简洁起见,未示出矿工的费用。
表2
表2的第4到8行表示交易的输入,其是将要包括在发行代币(即“代币化的”)中的第一数量的加密货币(C1)。在此示例中,第一数量的加密货币(C1)是将第一数量的加密货币转移给了代理(A)的先前交易(ID-110)的结果,因此先前交易(ID-110)输出脚本(赎回脚本ID-110)包括代理公钥(PA)。因此,要解锁此先前输出,必须使用第一用户的私钥(VA)对脚本(赎回脚本ID-110)进行签名。最后,表2的第8行表明第一数量的加密货币(C1)将是该交易(ID-600)的第一输出。
表2的第9到13行代表交易(ID-600)的第一(也是唯一的)输出,在这种情况下,它代表正在创建并转移回代理的发行代币。第10行示出了输出值,是第一数量的加密货币(C1)。第11行示出了输出脚本,其中包括如比特币协议的P2SH方法中所使用的“<赎回脚本散列>”。在该示例中,赎回脚本是如上所述的形式的第一赎回脚本(RS1)。
然后,使用第一数据输出(O1),在P2P分布式分类账14上,记录表2中所示的交易(ID-600)的输出。特别地,第一数据输出(O1)可包括在交易中转移的第一数量的加密货币(C1)的指示。第一数据输出(O1)还可包括第一赎回脚本(RS1)的散列。
在第一加密货币数量(C1)的进一步的交易中,例如将代币转移给第一用户23或第二用户24,解锁第一数量的加密货币(C1)的脚本(例如,进一步的交易的输入脚本签名ScriptSig)可采取以下形式:
OP_0Sig-VA Sig-VUl<OP_l PA PU1 Metadatal Metadata2 OP_4 OP_CHECKMULTISIG>
其中Sig-VU1表明第一用户23的签名。注意,上述脚本假定只需要来自代理(A)或第一用户23中的一个签名来解锁第一数量的加密货币(C1)。
可通过第二赎回脚本(RS2)将发行代币转移给另一用户。
变形
第二赎回脚本
与计算机软件和许可证相关的代币可从代理(A)转移给另一用户,例如第一用户23或第二户24。在一个示例中,代币的转移可表示授权用户访问计算机软件或许可证。转移可通过第二赎回脚本(RS2)来实现。
在一个示例中,代理(A)希望将发行代币转移给第一用户23。第一用户23可表示例如计算机软件的供应商。
在该示例中,第二赎回脚本(RS2)可基于元数据(M)、与代理(A)相关的代理公钥(PA)和与第一用户23相关的第一用户公钥(PU1)。
第二赎回脚本(RS2)可以是以下形式:
<OP_1PA PU1 Metadata1 Metadata2 OP_4 OP_CHECKMULTISIG>
在该示例中,第二赎回脚本(RS2)包括与第一赎回脚本(RS1)相同的两个元数据字段。第二赎回脚本(RS2)还包括与代理相关的代理公钥(PA)和与第一用户相关的第一用户公钥(PU1)。
从上面提供的第二赎回脚本(RS2)的示例可以看出,被转移的代币必须由代理(A)或第一用户23签署才能花费。表3中提供了发行代币的此转移的交易的示例,其中为了简洁起见,未示出矿工的费用。
表3
与表2类似,表3的第4至8行表示交易(ID-610)的输入。在该示例中,输入是发行代币,即表2中所示的交易(ID-600)的输出。可看出,第7行中的赎回脚本对应于发行代币的赎回脚本,即第一赎回脚本(RS1)。因此,为了解锁交易(ID-600)的输出,必须用代理公钥(PA)对第一赎回脚本(RS1)进行签名。
表3的第9到13行表示交易(ID-610)的输出,在这种情况下,它代表正被转移到代理(A)或第一用户23(U1)的发行代币。第10行示出了输出值,是第一数量的加密货币(C1)。第11行示出了输出脚本,其中包括如比特币协议的P2SH方法中所使用的“<输出脚本散列>”。在该示例中,赎回脚本是如上所述的形式的第二赎回脚本(RS2)。
然后,使用第二数据输出(O2),在P2P分布式分类账14上,记录交易(ID-610)的输出。第二数据输出(O2)可包括来自第一数据输出(O1)的第一数量的加密货币(C1)将在交易中被转移的指示。第二数据输出(O2)还可包括第二赎回脚本(RS2)的散列。
指示计算机软件或许可证的位置的标识符
如上所述,数据(D1)或许可证可包括分别指示计算机软件或许可证的位置的标识符。
在一个示例中,标识符可以独立于数据(D1)或许可证而确定,并且保持与数据(D1)或许可证分开。如上面的方法100中所述,还可将标识符与数据(D1)和第一散列值(H1)一起分配给关键字-值对中的值。以这种方式,如上所述,标识符可包括在消息输入(关键字,值)(put(key,value))的值(value)字段中,并发送到DHT 13中的参与节点。
在一个示例中,指示位置的标识符可包括互联网上的对象的URL。在另一示例中,指示位置的标识符可包括诸如散列表或DHT 13之类的存储库的地址。在又一示例中,指示位置的标识符可包括基于计算机的存储库的地址,该存储库例如是基于计算机的资源上提供的服务器、数据库或存储设施,例如与第一节点3的第一处理设备21相关的数据存储17。
图6示出了用于确定计算机软件或许可证的位置的方法500。方法500包括步骤510,确定来自第一赎回脚本(RS1)的元数据(M)。如上所述,元数据(M)可嵌入在第一赎回脚本(RS1)中的公钥可用的15个位置中的一个或多个。
在比特币协议的P2SH方法中,当交易的输出在后续交易中被花费时,赎回脚本在后续交易中变得可见。如上所述并参考表2,发行代币的交易(ID-600)被返还给代理(A)。以这种方式,代理(A)可花费该发行代币以暴露第一赎回脚本(RS1)。因此,基于第二散列值(H2)的元数据(M)在P2P分布式分类账14上可见。以这种方式,在步骤520中,能够从第一赎回脚本(RS1)中的元数据(M)获取第二散列值(H2)。在一个示例中,能够使用请求消息获取(关键字)(get(key)),从DHT 13中获取与关键字-值对中的关键字相关的值。
方法500还包括步骤530,通过通信网络5,将第二散列值(H2)发送到与DHT 13的参与节点相关的处理器。如上所述,第二散列值(H2)可为关键字-值对中的关键字。还如上所述,可通过向DHT 13的任何参与节点提供包含关键字的消息来获取给定关键字的值。因此,在标识符包括在关键字-值对中的值字段中的示例中,方法500能够从参与节点的处理器处,确定指示计算机软件或许可证的位置的标识符(步骤540)。
确定与第二用户(U2)相关的第二用户公钥(PU2)610
如上所述,方法600包括:步骤610,确定与第二用户(U2)相关的第二用户公钥(PU2),该第二用户公钥(PU2)来自存储在P2P分布式分类账14上的交易记录。确定来自交易记录的第二用户公钥(PU2)可包括:接收来自用户、节点或数据存储的交易记录,并查询用于第二用户公钥(PU2)的交易记录。确定来自交易记录的第二用户公钥(PU2)还可包括:访问用户、节点或数据存储处的交易记录,并查询用于第二用户公钥(PU2)的交易记录。
在一个示例中,与第二用户24相关的第二节点7可接收来自第一节点3或与第一节点3相关的数据存储17的交易记录。在另一示例中,第二节点7可接收来自第一用户23或第二用户24的交易记录。
在又一示例中,第二节点7可访问第二节点7处或与第二节点7相关的数据存储处的交易记录。在另一示例中,使用比如www.blockchain.info等公开可用的设施,交易记录可由第二节点7访问。
存储在P2P分布式分类账14上的交易记录可以包括标识交易或与交易相关的用户的信息。表4中示出了交易记录中包含的信息的示例。
表4
每个交易输出包括转移的一定数量的加密货币的信息和输出脚本,该输出脚本定义了花费加密货币所需满足的条件。输出脚本通常包括与加密货币的接收者相关的公钥。
在一个示例中,在输出脚本中,与加密货币的接收者相关的公钥可为第二用户公钥(PU2)。由此,确定与第二用户(U2)相关的第二用户公钥(PU2),第二用户公钥(PU2)来自存储在P2P分布式分类账14上的交易记录上的输出脚本。
如上所述,在比特币协议的P2SH方法中,输出脚本是赎回脚本。赎回脚本可包括与加密货币的发送者和接收者相关的若干公钥。在一个示例中,确定与第二用户(U2)相关的第二用户公钥(PU2),第二用户公钥(PU2)来自交易记录的赎回脚本。
在另一示例中,第二用户公钥(PU2)可存储在赎回脚本的元数据(M)中。如上所述,在P2SH方法中,当交易的输出在后续交易中花费时,赎回脚本在P2P分布式分类账14上变得可见。由此,能够获取来自赎回脚本的元数据(M)的第二用户公钥(PU2)。
确定与第二用户(U2)相关的第二公钥(P2)620
方法600还包括:步骤620,确定与第二用户(U2)相关的第二公钥(P2),第二公钥(P2)来自存储在DHT 13上的条目。确定第二公钥(P2)可包括:检索与存储在DHT 13上的条目相关的关键字-值对中的值。确定第二公钥(P2)还可包括:从另一节点接收关键字-值对中的值。
在一个示例中,可以通过向DHT 13上的参与节点发送请求消息来获取与DHT 13上的条目相关的关键字-值对中的值。如上所述,请求消息可包括获取(关键字)(get(key)),其中key是与DHT 13上的条目相关的关键字-值对中的关键字。
在另一示例中,关键字-值对中的关键字是第二散列值(H2)。
在另一示例中,第二节点7可接收存储在DHT 13上的值,该值来自第一节点3或未另外示出的另一节点。第一节点3或其他节点可向DHT 13上的参与节点提供请求消息get(key)。然后,第一节点3或其他节点可接收与DHT 13上的条目相关的关键字-值对中的值。然后,通过通信网络5,关键字-值对中的值可从第一节点3或其他节点发送至第二节点7。
比较第二用户公钥(PU2)与第二公钥(P2)630
该方法还包括:步骤630,进行第二用户公钥(PU2)与第二公钥(P2)。该比较可包括:确定第二用户公钥(PU2)与第二公钥(P2)是否匹配。
在一个示例中,匹配可指示第二用户公钥(PU2)与第二公钥(P2)是等效的。
在另一示例中,匹配可指示第二用户公钥(PU2)与第二公钥(P2)属于相同的加密货币钱包。
在又一示例中,加密货币钱包可为确定性的钱包,匹配可指示第二用户公钥(PU2)与第二公钥(P2)是从共同种子导出的。共同种子可为一系列字符。
基于比较来验证计算机软件的所有权640
方法600还包括:步骤640,基于对第二用户公钥(PU2)与第二公钥(P2)的比较,验证计算机软件的所有权。
在一个示例中,如果该比较确定第二用户公钥(PU2)与第二公钥(P2)匹配,则验证计算机软件的所有权。验证可涉及允许用户或使用户能够使用软件或与软件交互,或者,如果已经建立了匹配,则执行与软件相关的一些动作。
变形
计算机软件
计算机软件可包括标头和主体。在一个示例中,标头可包括与计算机软件相关的信息。在另一示例中,标头可包括计算机软件的主体的散列值。在又一示例中,标头可包括如上所述的第二散列值(H2)。
计算机软件的主体可包括计算机软件的可执行文件。
对计算机软件的可执行文件进行加密
在上述方法600中,在确定第二用户公钥(PU2)之前,方法600可包括对计算机软件的可执行文件进行加密。
在一个示例中,使用与第一用户23或第二用户24相关的公钥来对计算机软件的可执行文件进行加密。在另一示例中,使用与第一节点3或第二节点7相关的公钥来对计算机软件的可执行文件进行加密。在又一示例中,使用与第三方或未另外示出的节点相关的公钥来对计算机软件的可执行文件进行加密。
在另一示例中,可以使用与下面提供的共同秘密共享方法,对计算机软件的可执行文件进行加密。
确定共同秘密(CS)
如图8所示,通过分别执行方法300、400的步骤,在节点3、7处,由与该节点相关的用户23、24可确定用于加密的共同秘密。由此,可以独立地确定共同秘密,而无需通过通讯网络5沟通与用户23、24相关的私钥。
如图8所示,由第一用户23执行的方法300包括:基于至少第一用户私钥(VU1)和生成器值(GV)来确定300第一用户第二私钥(V2U1)。第一用户私钥(VU1)与第一用户公钥(PU1)形成加密对。
生成器值可基于在第一用户23与第二用户24之间共享的消息,可包括通过通信网络5共享该消息。方法300还包括:步骤370,至少基于第二用户公钥(PU2)和生成器值(GV)来确定第二用户第二公钥(P2U2)。方法300还包括:步骤380,在第一用户23处,基于第二用户第二公钥(P2U2)和第一用户第二私钥(V2U1)来确定共同秘密(CS)。
重要的是,通过方法400,可以由与第二节点7相关的第二用户24来确定相同的共同秘密(CS)。方法400包括:步骤430,基于第一用户公钥(PU1)和生成器值(GV)来确定第一用户第二公钥(P2U1)。方法400还包括:步骤470,基于第二用户私钥(VU2)和生成器值(GV)来确定第二用户第二私钥(V2U2)。第二用户私钥(VU2)与第二用户公钥(PU2)形成加密对。
方法400还包括步骤480,在第二用户24处,基于第一用户第二公钥(P2U1)和第二用户第二私钥(V2U2)来确定共同秘密(CS)。方法300、400可以重复进行以产生第一用户另外的公钥或第二用户另外的公钥。
对计算机软件的可执行文件进行加密
共同秘密(CS)可用作生成用于加密的对称密钥的基础。在一个示例中,共同秘密(CS)可以呈椭圆曲线点(xs,ys)的形式。这可转换为标准密钥格式,使用由节点3、7所达成一致的标准操作。例如,xs值可以是256位整数,可以用作用于AES256(高级加密标准)加密的密钥。xs值也可以使用RIPEMD160转换为160位的整数。参照图9,现将描述由第一用户23进行加密的安全通信方法700、800。
在下面提供的示例性实施例中,与第一节点3相关的第一用户23执行对计算机软件的可执行文件进行加密的方法700。应当理解的是,方法700同样可以应用于第二节点7处的第二用户24。
步骤710,基于在上面方法300、400中确定的共同秘密(CS),第一用户23确定对称密钥。这可包括将共同秘密(CS)转换为如上所述的标准密钥格式。类似地,步骤810,第二用户24也可基于共同秘密(CS)来确定对称密钥。
步骤720,第一用户23可使用对称密钥,来对计算机软件的可执行文件进行加密,以形成计算机软件的加密可执行文件。步骤730,然后,将计算机软件的加密可执行文件包括到计算机软件的主体中。
步骤740,通过通信网络5,将包括计算机软件的加密可执行文件的计算机软件发送至存储位置。在一个示例中,存储位置可为诸如散列表或DHT13之类的存储库。在另一位置中,存储位置可位于因特网上。在又一示例中,存储位置可为基于计算机的存储库,例如服务器、数据库或诸如与第一节点3的第一处理设备21相关的数据存储17等基于计算机资源的存储设备。
继而,第二用户24确定计算机软件的加密可执行文件。确定计算机软件的加密可执行文件可包括,从如上所述的存储位置下载计算机软件。在一个示例中,第二用户24从DHT 13上的条目下载计算机软件的加密可执行文件。
步骤830,使用对称密钥,第二用户24可将计算机软件的加密可执行文件解密为计算机软件的可执行文件。
安装计算机软件
计算机软件的可执行文件可包括指令,该指令使得与第二用户24相关的第二处理设备27安装计算机软件。在一个示例中,在第二用户24解密830计算机软件的加密可执行文件之后,将计算机软件安装在第二处理设备27上。
在另一示例中,在第二用户24解密830计算机软件的加密可执行文件之后,确定来自第二用户24的激活密钥(AK)。在一个示例中,与第二处理设备27相关的用户接口可向第二用户24提示输入激活密钥(AK)。第二用户24可通过与第二处理设备27相关的输入设备——比如键盘设备、触摸屏或触摸板设备、鼠标设备或麦克风设备——提供激活密钥(AK)。
可以从种子激活密钥确定性地导出激活密钥(AK)。在一个示例中,第一用户23可在第一节点3处确定种子激活密钥。然后,第一用户23可基于消息来确定生成器值(GV)。然后可基于种子激活密钥和生成器值(GV)来确定激活密钥(AK)。
处理设备
如上所述,第一节点3和第二节点7可为电子设备,例如计算机、平板计算机、移动通信设备、计算机服务器等。电子设备可包括处理设备21、27、数据存储17和用户接口15。
图10示出了处理设备21、27的示例。处理设备21、27可在第一节点3、第二节点7或未另外示出的其他节点处使用。处理设备21、27包括经由总线1530彼此通信的处理器1510、存储器1520和接口设备1540。存储器1520存储计算机软件程序,该计算机软件程序包括用于实现上述方法100、300、400、600、700和800的机器可读指令和数据,处理器1510执行来自存储器1520的指令,以实现方法100、300、400、600、700和800。接口设备1540可包括通信模块,该通信模块帮助与通信网络5进行通信、以及在一些示例中,帮助与用户接口15和诸如数据存储17的外围设备进行通信。应当指出的是,尽管处理设备1510可为独立的网络元件,但处理设备1510也可为另一网络元件的一部分。此外,由处理设备1510执行的一些功能可分布在多个网络元件之间。例如,在与第一节点3相关的安全局域网中,第一节点3可具有多个处理设备21来实施方法100、300、400、600、700和800。
在本公开描述用户、雇主、雇员、发行人、商家、提供商或其他实体执行特定动作(包括签名、发行、确定、计算、发送、接收、创建等),使用这种措辞是为了表述清楚。应该理解,这些动作由这些实体使用的计算设备执行。
本领域技术人员将理解,在不脱离本发明大体的范围的情况下,可对上述实施例作出多种变化和/或修改。因此,本发明的实施例在所有方面都被认为是说明性的而非限制性的。

Claims (13)

1.一种使用分布式散列表和点对点分布式分类账验证计算机软件的所有权的计算机实现方法,所述计算机软件用于安装,所述方法包括:
确定与第二用户(U2)相关的第二用户公钥(PU2),所述第二用户公钥(PU2)来自存储在所述点对点分布式分类账上的交易记录;
确定与所述第二用户(U2)相关的第二公钥(P2),所述第二公钥(P2)来自存储在所述分布式散列表上的条目;
比较所述第二用户公钥(PU2)与所述第二公钥(P2);以及
基于对所述第二用户公钥(PU2)与所述第二公钥(P2)的比较,验证所述计算机软件的所有权。
2.根据权利要求1所述的方法,其中,比较所述第二用户公钥(PU2)与所述第二公钥(P2)包括:确定所述第二用户公钥(PU2)与所述第二公钥(P2)是否匹配。
3.根据权利要求1或2所述的方法,其中,所述计算机软件包括标头和主体。
4.根据权利要求3所述的方法,其中,所述标头包括所述计算机软件的主体的散列值。
5.根据权利要求3或4所述的方法,其中,所述标头进一步包括与所述计算机软件或许可证相关的数据的散列值(H2)。
6.根据权利要求3、4或5所述的方法,其中,所述计算机软件的主体包括所述计算机软件的可执行文件。
7.根据权利要求6所述的方法,其中,在确定所述第二用户公钥(PU2)之前,所述方法包括:对所述计算机软件的可执行文件进行加密。
8.根据权利要求7所述的方法,其中,对所述计算机软件的可执行文件进行加密包括:
确定生成器值(GV);
基于所述第二用户公钥(PU2)和所述生成器值(GV),确定第二用户第二公钥(P2U2),其中,所述第二用户第二公钥(P2U2)与第二用户第二私钥(V2U2)形成加密对;
基于第一用户公钥(PU1)和所述生成器值(GV),确定第一用户第二公钥(P2U1),其中,所述第一用户第二公钥(P2U1)与第一用户第二私钥形成加密对(V2U1);
基于所述第二用户第二公钥(P2U2)和所述第一用户第二私钥(V2U1),确定共同秘密(CS);以及
使用所述共同秘密(CS),对所述计算机软件的可执行文件进行加密,生成所述计算机软件的加密可执行文件。
9.根据权利要求8所述的方法,其中,通过下列步骤对所述计算机软件的加密可执行文件进行解密:
基于所述第一用户第二公钥(P2U1)和所述第二用户第二私钥(V2U2),确定所述共同秘密(CS);以及
使用所述共同秘密(CS),对所述计算机软件的可执行文件进行解密,生成所述计算机软件的解密可执行文件。
10.根据权利要求9所述的方法,进一步包括:
在与所述第二用户(U2)相关的处理设备上,安装所述计算机软件的解密可执行文件。
11.根据权利要求10所述的方法,所述方法进一步包括:
确定来自所述第二用户(U2)的激活密钥(AK);以及
基于所述激活密钥(AK),执行所述计算机软件的解密可执行文件的指令。
12.一种计算机软件程序,包括机器可读指令,以使处理设备实施上述权利要求中任一项所述的方法。
13.一种使用分布式散列表和点对点分布式分类账验证计算机软件的所有权的计算机系统,所述计算机软件用于安装,所述系统包括与节点的点对点网络上的节点相关的处理设备,所述处理设备用于:
确定与第二用户(U2)相关的第二用户公钥(PU2),所述第二用户公钥(PU2)来自存储在所述点对点分布式分类账上的交易记录;
确定与所述第二用户(U2)相关的第二公钥(P2),所述第二公钥(P2)来自存储在所述分布式散列表上的条目;
比较所述第二用户公钥(PU2)与所述第二公钥(P2);以及
基于对所述第二用户公钥(PU2)与所述第二公钥(P2)的比较,验证所述计算机软件的所有权。
CN201780024133.4A 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统 Active CN109074462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310733070.7A CN116776318A (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GB1608454.3 2016-05-13
GB1608456.8 2016-05-13
GBGB1608454.3A GB201608454D0 (en) 2016-05-13 2016-05-13 A method and system for verifying ownership of a computer software using a distributed hash table and a peer-to-peer distributed ledger
GBGB1608463.4A GB201608463D0 (en) 2016-05-13 2016-05-13 A method and system for veryfying integrity of a computer software using a distributed hash table and a peer-to-peer distributed ledger
GB1608463.4 2016-05-13
GBGB1608456.8A GB201608456D0 (en) 2016-05-13 2016-05-13 A method and system for verifying ownership of a computer software using a distributed hash table and a peer-to-peer distributed ledger
PCT/IB2017/052801 WO2017195161A1 (en) 2016-05-13 2017-05-12 A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310733070.7A Division CN116776318A (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统

Publications (2)

Publication Number Publication Date
CN109074462A true CN109074462A (zh) 2018-12-21
CN109074462B CN109074462B (zh) 2023-07-07

Family

ID=58737700

Family Applications (5)

Application Number Title Priority Date Filing Date
CN201780024156.5A Active CN109074434B (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统
CN202310733070.7A Pending CN116776318A (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统
CN202310819908.4A Pending CN116842483A (zh) 2016-05-13 2017-05-12 验证数字资产完整性的方法和系统
CN201780024133.4A Active CN109074462B (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统
CN201780024137.2A Active CN109074433B (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN201780024156.5A Active CN109074434B (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统
CN202310733070.7A Pending CN116776318A (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产所有权的方法和系统
CN202310819908.4A Pending CN116842483A (zh) 2016-05-13 2017-05-12 验证数字资产完整性的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780024137.2A Active CN109074433B (zh) 2016-05-13 2017-05-12 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统

Country Status (18)

Country Link
US (7) US10579779B2 (zh)
EP (3) EP3295349B1 (zh)
JP (3) JP6514831B1 (zh)
KR (3) KR101974060B1 (zh)
CN (5) CN109074434B (zh)
AU (3) AU2017263291B2 (zh)
BR (3) BR112018072969A2 (zh)
CA (3) CA3022803A1 (zh)
ES (3) ES2701980T3 (zh)
GB (3) GB2559908A (zh)
HK (3) HK1245430B (zh)
IL (3) IL262807B (zh)
MX (3) MX2018013618A (zh)
PH (3) PH12018502385A1 (zh)
SG (3) SG11201809585WA (zh)
SI (3) SI3295350T1 (zh)
WO (3) WO2017195164A1 (zh)
ZA (1) ZA201807299B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109995523A (zh) * 2019-03-13 2019-07-09 网易(杭州)网络有限公司 激活码管理方法及装置、激活码生成方法及装置
CN110875821A (zh) * 2018-08-29 2020-03-10 埃森哲环球解决方案有限公司 密码学区块链互操作

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636471B2 (en) * 2017-12-15 2023-04-25 Fmr Llc Social data tracking datastructures, apparatuses, methods and systems
ES2701980T3 (es) * 2016-05-13 2019-02-26 Nchain Holdings Ltd Método y sistema para verificar la propiedad de un activo digital mediante el uso de una tabla de hash distribuidas y un libro mayor distribuido entre pares
US10169614B2 (en) * 2016-11-17 2019-01-01 International Business Machines Corporation Container update system
JP6340120B1 (ja) * 2017-06-16 2018-06-06 アイビーシー株式会社 デバイスプロビジョニングシステム
EP3428577A1 (en) 2017-07-12 2019-01-16 Veoneer Sweden AB A driver assistance system and method
US11362834B2 (en) * 2017-07-24 2022-06-14 Comcast Cable Communications, Llc Systems and methods for managing digital rights
EP3445017B1 (en) * 2017-08-16 2019-10-09 Veoneer Sweden AB A method relating to a motor vehicle driver assistance system
GB2568453A (en) * 2017-09-14 2019-05-22 Blockpass Idn Ltd Systems and methods for user identity
US11868509B2 (en) * 2017-11-17 2024-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for detecting digital content tampering
CN108573741A (zh) * 2017-12-25 2018-09-25 北京金山云网络技术有限公司 业务数据记录方法、装置、设备和存储介质
US10715323B2 (en) 2017-12-29 2020-07-14 Ebay Inc. Traceable key block-chain ledger
US10896418B2 (en) * 2017-12-29 2021-01-19 Ebay Inc. Secure management of data files using a blockchain
US10841372B1 (en) * 2018-01-11 2020-11-17 Hoot Live, Inc. Systems and methods for performing useful commissioned work using distributed networks
CA3089009A1 (en) 2018-01-19 2019-07-25 Nasdaq, Inc. Systems and methods of digital content certification and verification using cryptography and blockchain
CA2993064A1 (en) * 2018-01-26 2019-07-26 Erik Dean Lindquist Methods and systems for enabling interoperability of independent hash-based authentication technologies
US11438139B2 (en) * 2018-02-07 2022-09-06 Raouf Boutaba Blockchain based secure naming and update verification
US20210099284A1 (en) * 2018-02-08 2021-04-01 2Bc Innovations, Llc Modifying blockchain-encoded records of rived longevity-contingent instruments
US20210004906A1 (en) * 2018-02-08 2021-01-07 2Bc Innovations, Llc Modifying a portfolio of blockchain-encoded rived longevity-contingent instruments
US20210035217A1 (en) * 2018-02-08 2021-02-04 2Bc Innovations, Llc Updating blockchain-encoded records of rived longevity-contingent instruments
US20210097610A1 (en) * 2018-02-08 2021-04-01 2Bc Innovations, Llc Utilizing blockchain-encoded records for rived longevity-contingent instruments
US20190251627A1 (en) * 2018-02-11 2019-08-15 Loopring Project Ltd Methods and systems for digital asset transaction
US11582042B2 (en) * 2018-03-16 2023-02-14 General Electric Company Industrial data verification using secure, distributed ledger
US10846375B2 (en) * 2018-04-11 2020-11-24 Microsoft Technology Licensing, Llc Software license distribution and validation using a distributed immutable data store
WO2019200460A1 (en) * 2018-04-20 2019-10-24 Interbit Ltd. Method and system for storing a binary large object
EP3565211B1 (en) * 2018-05-03 2021-04-07 Nokia Technologies Oy Method network element, system and computer readable medium, for onboarding a device
WO2019213752A1 (en) * 2018-05-11 2019-11-14 Echoai Corp. A method and system for managing digital assets in a blockchain
JP7372938B2 (ja) * 2018-05-14 2023-11-01 エヌチェーン ライセンシング アーゲー ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
US11615070B2 (en) 2018-05-25 2023-03-28 Intertrust Technologies Corporation Digital content integrity verification systems and methods
DE102018208591A1 (de) 2018-05-30 2019-12-05 Robert Bosch Gmbh Verfahren und Vorrichtung zum Prüfen eines Sachverhaltes in einem dezentralen Transaktionssystem
US11777744B2 (en) 2018-06-25 2023-10-03 Auth9, Inc. Method, computer program product and apparatus for creating, registering, and verifying digitally sealed assets
EP3821353A4 (en) * 2018-07-09 2022-03-16 Prescient Innovations Inc. MULTIMEDIA CONTENT ALLOCATION SYSTEMS AND METHODS
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
WO2020033558A1 (en) * 2018-08-07 2020-02-13 Walmart Apollo, Llc System and method for a distributed ledger for information technology asset management
WO2020033556A1 (en) * 2018-08-07 2020-02-13 Walmart Apollo, Llc System and method for a distributed ledger for industrial asset management
DE102018213304A1 (de) 2018-08-08 2020-02-13 Robert Bosch Gmbh Verfahren und Vorrichtung zum Prüfen eines Sachverhaltes in einem dezentralen Transaktionssystem
US11335109B2 (en) 2018-08-28 2022-05-17 Marlabs Incorporated Computing device for document authentication and a method to operate the same
US11128472B2 (en) * 2018-09-04 2021-09-21 Red Hat, Inc. Signature verification using blockchain
WO2020076679A1 (en) * 2018-10-09 2020-04-16 Northwestern University Distributed digital currency mining to perform network tasks
US11301452B2 (en) 2018-10-09 2022-04-12 Ebay, Inc. Storing and verification of derivative work data on blockchain with original work data
TW202016743A (zh) * 2018-10-25 2020-05-01 財團法人資訊工業策進會 用於物聯網系統之資料處理裝置及資料處理方法
DE102018129354A1 (de) * 2018-11-21 2020-05-28 Phoenix Contact Gmbh & Co. Kg Verfahren zum Bearbeiten von Anwendungsprogrammen auf einem verteilten Automatisierungssystem
EP3660770A1 (en) 2018-11-30 2020-06-03 Mastercard International Incorporated Methods and systems for secure product tracking data storage and verification
US11178151B2 (en) * 2018-12-19 2021-11-16 International Business Machines Corporation Decentralized database identity management system
JP6640320B1 (ja) * 2018-12-28 2020-02-05 玲於奈 日置 トークン管理システムおよびトークン管理方法
ES2879908T3 (es) * 2018-12-29 2021-11-23 Advanced New Technologies Co Ltd Colaborción abierta distribuida basada en cadena de bloques de aplicaciones de mapa
WO2020145507A1 (ko) * 2019-01-08 2020-07-16 주식회사 에치에프알 블록체인을 이용한 로밍 서비스 제공방법 및 그를 위한 장치
US20200242711A1 (en) * 2019-01-27 2020-07-30 Auth9, Inc. Method, computer program product and apparatus for transferring ownership of digital assets
EP3619665B1 (en) 2019-04-03 2021-07-07 Advanced New Technologies Co., Ltd. Processing and storing blockchain data under a trusted execution environment
US11228446B2 (en) 2019-05-10 2022-01-18 Advanced New Technologies Co., Ltd. Blockchain-based reconciliation method and apparatus and electronic device
CN110213263B (zh) * 2019-05-30 2021-10-22 全链通有限公司 基于联盟区块链的身份验证方法、设备及存储介质
US11501295B2 (en) * 2019-07-24 2022-11-15 Advanced New Technologies Co., Ltd. Object distribution processing
KR102273160B1 (ko) 2019-08-01 2021-07-05 주식회사 블룸테크놀로지 Bft 확정 합의 방식의 dag-awtc 원장 시스템
WO2021030288A1 (en) * 2019-08-09 2021-02-18 Ruon Limited User media platform server system
GB2587190B (en) * 2019-09-12 2021-12-01 Nchain Holdings Ltd Storing a program on a blockchain
KR102101726B1 (ko) * 2019-10-11 2020-05-29 (주)소프트제국 블록체인 기반의 브라우저의 웹스토리지를 이용한 간편인증 방법 및 시스템
CN114424190A (zh) * 2019-10-22 2022-04-29 彩滋公司 基于制造约束的定制产品的基于角色和属性跟踪协作设计的系统和方法
KR102274656B1 (ko) * 2019-11-22 2021-07-09 주식회사 티맥스엔터프라이즈 블록체인 네트워크에서 데이터를 관리하기 위한 기법
JP7162634B2 (ja) 2019-12-12 2022-10-28 株式会社bitFlyer Blockchain 証明書データをデジタルに利用可能にするための装置、方法及びそのためのプログラム
US11526585B2 (en) 2020-02-06 2022-12-13 Dell Products L.P. Vendor software activation using distributed ledger
US11556618B2 (en) * 2020-02-18 2023-01-17 At&T Intellectual Property I, L.P. Split ledger software license platform
US11922278B1 (en) * 2020-02-26 2024-03-05 American Express Travel Related Services Company, Inc. Distributed ledger based feature set tracking
WO2021188765A1 (en) * 2020-03-20 2021-09-23 Mastercard International Incorporated Method and system for auditing smart contracts
CN111526197B (zh) * 2020-04-24 2023-05-09 远光软件股份有限公司 一种云端数据安全共享方法
CN113626040B (zh) * 2020-05-06 2023-12-22 伊姆西Ip控股有限责任公司 用于安装应用的方法、电子设备和计算机程序产品
US20230104585A1 (en) 2020-05-20 2023-04-06 New H3C Technologies Co., Ltd. Method and Apparatus for Monitoring Software License Information, and Server and Storage Medium
US11431492B2 (en) * 2020-06-25 2022-08-30 At&T Intellectual Property I, L.P. Mutable encrypted system
US11368310B2 (en) 2020-07-11 2022-06-21 Bank Of America Corporation Data transfer between computing nodes of a distributed computing system
JP2022025599A (ja) * 2020-07-29 2022-02-10 キヤノン株式会社 情報処理装置、アプリケーションの起動方法及びプログラム
US10965461B1 (en) * 2020-08-31 2021-03-30 Syniverse Technologies, Llc Method of verifying telecommunications messaging traffic based on decentralized identifiers
CN112347456B (zh) * 2020-10-28 2023-09-01 达闼机器人股份有限公司 程序验证方法和装置、平台和用户终端及在线服务系统
EP4240245A1 (en) 2020-11-09 2023-09-13 Riddle & Code GmbH Method for suspending protection of an object achieved by a protection device
CN115280717B (zh) * 2021-01-11 2024-06-07 微福斯有限责任公司 区块链审计系统和方法
US20230060306A1 (en) * 2021-08-31 2023-03-02 Disney Enterprises, Inc. Acquisition and Use of Multi-Platform Portable Non-Fungible Token Credits
FR3136565A1 (fr) * 2022-06-08 2023-12-15 La Preuve Numerique Procédé d’enregistrement renforcé d’un fichier numérique

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419804A (zh) * 2010-11-19 2012-04-18 微软公司 具有冗余安全性的可靠的软件产品验证和激活
US20120272336A1 (en) * 2011-04-22 2012-10-25 Cohen Gabriel A Transcoding Content Based On Verification of Ownership of the Content
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的系统和方法
US20140165158A1 (en) * 2012-12-06 2014-06-12 Xtreme Labs Inc. System and Method for Enterprise Security Through P2P Connection
US20150120569A1 (en) * 2013-10-31 2015-04-30 Bitgo, Inc. Virtual currency address security

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715403A (en) 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5944821A (en) 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
JPH1031587A (ja) * 1996-07-15 1998-02-03 Hitachi Ltd データ端末装置およびコンピュータプログラム
GB2345775A (en) 1998-10-21 2000-07-19 Ordertrust Llc Analyzing transaction information
WO2003058451A1 (en) 2002-01-04 2003-07-17 Internet Security Systems, Inc. System and method for the managed security control of processes on a computer system
JP4176533B2 (ja) * 2003-03-31 2008-11-05 株式会社エヌ・ティ・ティ・ドコモ 端末装置及びプログラム
CN100504818C (zh) * 2003-07-07 2009-06-24 巨视股份有限公司 调控对非易失性存储区访问的方法和判定访问的自动方法
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US8775562B2 (en) * 2006-12-05 2014-07-08 International Business Machines Corporation Mapping file fragments to file information and tagging in a segmented file sharing system
US20090280906A1 (en) * 2008-04-30 2009-11-12 Bally Gaming, Inc. Server client network throttling method for download content
US20150242958A1 (en) 2010-12-08 2015-08-27 David Andrew D'Zmura Counter-party license transaction (C.P.L.T.)
US9754130B2 (en) * 2011-05-02 2017-09-05 Architecture Technology Corporation Peer integrity checking system
US8806192B2 (en) * 2011-05-04 2014-08-12 Microsoft Corporation Protected authorization for untrusted clients
JP5708365B2 (ja) * 2011-08-22 2015-04-30 大日本印刷株式会社 コンテンツデータ閲覧制御方法、コンテンツデータ管理閲覧プログラム
CN102404347A (zh) * 2011-12-28 2012-04-04 南京邮电大学 一种基于公钥基础设施的移动互联网接入认证方法
US9223939B2 (en) 2012-10-11 2015-12-29 Activision Publishing, Inc. Key generation method
WO2014201059A1 (en) 2013-06-10 2014-12-18 Certimix, Llc Secure storing and offline transfering of digitally transferable assets
EP2996378B1 (en) 2013-06-19 2019-01-30 Huawei Technologies Co., Ltd. Communication quality measurement method
WO2015024129A1 (en) * 2013-08-21 2015-02-26 Trent Lorne Mcconaghy Method to securely establish, affirm, and transfer ownership of artworks
US10121215B2 (en) 2014-07-29 2018-11-06 GeoFrenzy, Inc. Systems and methods for managing real estate titles and permissions
KR101754308B1 (ko) * 2013-10-04 2017-07-07 한국전자통신연구원 모바일 민감 데이터 관리 방법 및 이를 수행하는 위탁 서버
US9595034B2 (en) 2013-10-25 2017-03-14 Stellenbosch University System and method for monitoring third party access to a restricted item
US9832217B2 (en) 2014-03-13 2017-11-28 International Business Machines Corporation Computer implemented techniques for detecting, investigating and remediating security violations to IT infrastructure
WO2015142765A1 (en) 2014-03-17 2015-09-24 Coinbase, Inc Bitcoin host computer system
KR102089513B1 (ko) 2014-03-19 2020-03-16 한국전자통신연구원 모바일 저장장치에 기반한 소프트웨어 검증 시스템 및 그 방법
US9858569B2 (en) 2014-03-21 2018-01-02 Ramanan Navaratnam Systems and methods in support of authentication of an item
US9912690B2 (en) * 2014-04-08 2018-03-06 Capital One Financial Corporation System and method for malware detection using hashing techniques
US9940444B1 (en) 2014-04-21 2018-04-10 Virtual Marketing Incorporated Software wrapper and installer using timestamp validation and system identification validation
US10356094B2 (en) 2014-06-30 2019-07-16 Vescel, Llc Uniqueness and auditing of a data resource through an immutable record of transactions in a hash history
CN104123488A (zh) * 2014-08-14 2014-10-29 北京网秦天下科技有限公司 应用程序的验证方法和装置
US20160048688A1 (en) 2014-08-14 2016-02-18 Google Inc. Restricting System Calls using Protected Storage
WO2016053760A1 (en) * 2014-09-30 2016-04-07 Raistone, Inc. Systems and methods for transferring digital assets using a de-centralized exchange
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
CN104392354B (zh) * 2014-11-05 2017-10-03 中国科学院合肥物质科学研究院 一种公钥地址与用户账号的关联和检索方法及其系统
US20160162897A1 (en) 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
EP3032783A1 (en) * 2014-12-11 2016-06-15 Hewlett-Packard Development Company, L.P. Fragmented packet processing resource determination
WO2016105265A1 (en) 2014-12-22 2016-06-30 Cryex Group Ab Methods, apparatus and systems for enabling settlement of transactions of cryptographic assets
US20160218882A1 (en) 2015-01-23 2016-07-28 Canon Kabushiki Kaisha Methods and systems for installing software
CN104580253B (zh) * 2015-01-30 2017-08-08 网易(杭州)网络有限公司 一种处理用户数据的方法及装置
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
RU2718689C2 (ru) * 2015-02-13 2020-04-13 Виза Интернэшнл Сервис Ассосиэйшн Управление конфиденциальной связью
US20160283920A1 (en) 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
WO2016160850A1 (en) 2015-03-30 2016-10-06 Iperial, Inc. System and method for authenticating digital content
JP6756817B2 (ja) * 2015-04-06 2020-09-16 ビットマーク, インコーポレイテッドBitmark, Inc. 非集中型のタイトル記録および認証のためのシステムならびに方法
CN104735164B (zh) * 2015-04-10 2018-05-18 网易(杭州)网络有限公司 一种保存文件信息的方法和装置
US20160321676A1 (en) 2015-05-01 2016-11-03 Monegraph, Inc. Sharing content within social network services
US11074224B2 (en) * 2015-05-11 2021-07-27 Apple Inc. Partitioned data replication
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US9832024B2 (en) * 2015-11-13 2017-11-28 Visa International Service Association Methods and systems for PKI-based authentication
US9992028B2 (en) 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
KR101772553B1 (ko) 2015-12-29 2017-08-30 주식회사 코인플러그 파일에 대한 공증 및 검증을 수행하는 방법 및 서버
US9679276B1 (en) 2016-01-26 2017-06-13 Stampery, Inc. Systems and methods for using a block chain to certify the existence, integrity, and/or ownership of a file or communication
US20170236123A1 (en) 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
CA3013185A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
CN107145768B (zh) * 2016-03-01 2021-02-12 华为技术有限公司 版权管理方法和系统
US10063529B2 (en) 2016-03-28 2018-08-28 Accenture Global Solutions Limited Secure 3D model sharing using distributed ledger
GB2549085B (en) * 2016-03-30 2020-11-18 British Telecomm Blockchain state reliability determination
US10937069B2 (en) * 2016-04-13 2021-03-02 Paypal, Inc. Public ledger authentication system
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
US10022613B2 (en) 2016-05-02 2018-07-17 Bao Tran Smart device
US20170324711A1 (en) * 2016-05-03 2017-11-09 The Real Mccoy, Llc Inc. Method for establishing, securing and transferring computer readable information using peer-to-peer public and private key cryptography
ES2701980T3 (es) 2016-05-13 2019-02-26 Nchain Holdings Ltd Método y sistema para verificar la propiedad de un activo digital mediante el uso de una tabla de hash distribuidas y un libro mayor distribuido entre pares

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419804A (zh) * 2010-11-19 2012-04-18 微软公司 具有冗余安全性的可靠的软件产品验证和激活
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的系统和方法
US20120272336A1 (en) * 2011-04-22 2012-10-25 Cohen Gabriel A Transcoding Content Based On Verification of Ownership of the Content
US20140165158A1 (en) * 2012-12-06 2014-06-12 Xtreme Labs Inc. System and Method for Enterprise Security Through P2P Connection
US20150120569A1 (en) * 2013-10-31 2015-04-30 Bitgo, Inc. Virtual currency address security

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110875821A (zh) * 2018-08-29 2020-03-10 埃森哲环球解决方案有限公司 密码学区块链互操作
CN110875821B (zh) * 2018-08-29 2023-03-24 埃森哲环球解决方案有限公司 密码学区块链互操作
CN109995523A (zh) * 2019-03-13 2019-07-09 网易(杭州)网络有限公司 激活码管理方法及装置、激活码生成方法及装置
CN109995523B (zh) * 2019-03-13 2021-07-09 网易(杭州)网络有限公司 激活码管理方法及装置、激活码生成方法及装置

Also Published As

Publication number Publication date
MX2018013618A (es) 2019-04-25
US20190303543A1 (en) 2019-10-03
GB2558485A (en) 2018-07-11
CA3022803A1 (en) 2017-11-16
CA3022899A1 (en) 2017-11-16
KR101974075B1 (ko) 2019-04-30
JP6556370B2 (ja) 2019-08-07
ES2691254T3 (es) 2018-11-26
US20200257775A1 (en) 2020-08-13
US20190340362A1 (en) 2019-11-07
US11934494B2 (en) 2024-03-19
WO2017195161A1 (en) 2017-11-16
MX2018013620A (es) 2019-04-25
JP6514831B1 (ja) 2019-05-15
AU2017261921B2 (en) 2022-03-10
CN109074434A (zh) 2018-12-21
AU2017261921A1 (en) 2018-11-22
BR112018072929A2 (pt) 2019-02-19
US11294991B2 (en) 2022-04-05
JP6514830B2 (ja) 2019-05-15
CA3022809A1 (en) 2017-11-16
HK1245429B (zh) 2019-06-14
GB201806704D0 (en) 2018-06-06
EP3295362A1 (en) 2018-03-21
KR20190002688A (ko) 2019-01-08
EP3295349B1 (en) 2018-07-11
GB2564208A (en) 2019-01-09
KR102051288B1 (ko) 2019-12-03
EP3295362B1 (en) 2018-07-11
SI3295349T1 (sl) 2018-11-30
PH12018502386A1 (en) 2019-03-25
SG11201809584XA (en) 2018-11-29
KR101974060B1 (ko) 2019-04-30
AU2017263291A1 (en) 2018-11-22
US11366882B2 (en) 2022-06-21
EP3295349A1 (en) 2018-03-21
IL262806B (en) 2022-02-01
KR20180137022A (ko) 2018-12-26
CN116842483A (zh) 2023-10-03
HK1245428B (zh) 2019-06-14
AU2017263290B2 (en) 2021-10-21
EP3295350B1 (en) 2018-07-11
AU2017263290A1 (en) 2018-11-22
US10579779B2 (en) 2020-03-03
CN109074433A (zh) 2018-12-21
CN109074433B (zh) 2023-07-21
KR20180137024A (ko) 2018-12-26
CN109074434B (zh) 2023-07-07
PH12018502384A1 (en) 2019-04-08
PH12018502385A1 (en) 2019-04-08
WO2017195164A1 (en) 2017-11-16
JP2019511759A (ja) 2019-04-25
SI3295362T1 (sl) 2018-11-30
BR112018072969A2 (pt) 2019-02-19
CN116776318A (zh) 2023-09-19
ES2701980T3 (es) 2019-02-26
US20190163883A1 (en) 2019-05-30
AU2017263291B2 (en) 2022-02-10
US20220366020A1 (en) 2022-11-17
BR112018072965A2 (pt) 2019-02-19
IL262807B (en) 2022-08-01
IL262806A (en) 2018-12-31
GB201806705D0 (en) 2018-06-06
HK1245430B (zh) 2019-06-14
GB201806707D0 (en) 2018-06-06
CN109074462B (zh) 2023-07-07
EP3295350A1 (en) 2018-03-21
ES2701981T3 (es) 2019-02-26
MX2018013617A (es) 2019-04-25
JP2019514087A (ja) 2019-05-30
IL262809B (en) 2021-06-30
JP2019511761A (ja) 2019-04-25
SI3295350T1 (sl) 2018-11-30
US11210372B2 (en) 2021-12-28
IL262807A (en) 2018-12-31
GB2559908A (en) 2018-08-22
WO2017195160A1 (en) 2017-11-16
SG11201809585WA (en) 2018-11-29
SG11201809582PA (en) 2018-11-29
US20220366019A1 (en) 2022-11-17
IL262809A (en) 2018-12-31
ZA201807299B (en) 2022-08-31
US20230014794A1 (en) 2023-01-19

Similar Documents

Publication Publication Date Title
US11934494B2 (en) Method and system for verifying integrity of a digital asset using a distributed hash table and a peer to-peer distributed ledger
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
JP2024001326A (ja) 契約の実行を制御する方法及びシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant