CN113169874A - 用于实现对存储在区块链上的数据的访问的计算机实现的系统和方法 - Google Patents

用于实现对存储在区块链上的数据的访问的计算机实现的系统和方法 Download PDF

Info

Publication number
CN113169874A
CN113169874A CN201980078214.1A CN201980078214A CN113169874A CN 113169874 A CN113169874 A CN 113169874A CN 201980078214 A CN201980078214 A CN 201980078214A CN 113169874 A CN113169874 A CN 113169874A
Authority
CN
China
Prior art keywords
data
blockchain
transaction
content
node
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.)
Pending
Application number
CN201980078214.1A
Other languages
English (en)
Inventor
C·S·赖特
O·沃恩
J·O·戴维斯
C·C·塔尔坦
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 GBGB1819284.9A external-priority patent/GB201819284D0/en
Priority claimed from GBGB1819286.4A external-priority patent/GB201819286D0/en
Priority claimed from GBGB1819293.0A external-priority patent/GB201819293D0/en
Priority claimed from GBGB1819291.4A external-priority patent/GB201819291D0/en
Priority claimed from GBGB1819299.7A external-priority patent/GB201819299D0/en
Priority claimed from GBGB1819290.6A external-priority patent/GB201819290D0/en
Priority claimed from GBGB1819297.1A external-priority patent/GB201819297D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of CN113169874A publication Critical patent/CN113169874A/zh
Pending legal-status Critical Current

Links

Images

Classifications

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

Landscapes

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

Abstract

公开了一种使得能够访问存储在区块链上的数据的方法。该方法包括:生成区块链的至少一个第一区块链交易,其中,第一数据存储在至少一个第一区块链交易中,并且在没有第一访问数据的情况下,其对于第一参与者而言是不可访问的。该方法还包括:生成区块链的第二区块链交易,其中,该第二区块链交易包含用于使第一访问数据对于第一参与者而言是可用的手段。

Description

用于实现对存储在区块链上的数据的访问的计算机实现的系 统和方法
技术领域
本发明大体上涉及对跨电子网络,尤其是对等网络(诸如区块链网络等)的改进的数据通信和交换的加密技术。它涉及数据存储、访问、检索和处理,尤其涉及区块链上此类与数据相关的活动。本发明特别适合于但不限于在以类似于由网站和网页提供的方式、但是将区块链用作基础机制或平台而不是网络服务器来处理数据时使用。因此,本发明提供了用于数据处理和传送的安全、高效、以密码方式实施的替代基础设施。
背景技术
在本文档中,我们使用术语“区块链”来包括所有形式的电子的基于计算机的分布式账本(ledger)。这些包括基于共识的区块链和交易链技术、许可的和未被许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本发明的范围内。术语“用户”在本文中可以指人或基于处理器的资源。如本文所使用的,“比特币”包括从比特币协议衍生的协议的所有版本和变型。
区块链是一种点对点的电子账本,其被实现为基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构对区块链系统中参与者之间的数字资产控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块包含前一个区块的哈希值,使得区块被链接在一起来创建所有交易的永久、不可更改的记录,这些交易自其开始就已经被写入区块链。交易包含嵌入到其输入和输出中的被称为脚本的小程序,这些小程序指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定脚本和解锁脚本来对未花费的交易(unspent transaction,UTXO)执行该验证工作。如果锁定脚本和解锁脚本的执行评估为真(TRUE),则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点验证该交易–如果交易经过验证,则该节点将其中继到网络中的其他节点;ii)将该交易添加到由矿工建造的新区块中;以及iii)该交易被挖掘,即,被添加到过去交易的公共账本中。
尽管区块链技术因使用加密货币实现方式而被广泛了解,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据这两者以实现新系统。如果区块链可以用于不限于加密货币领域的任务和过程,那将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件的永久性、防篡改记录、分布式处理等),同时在其应用中具有更多用途。
一个这样的关注领域是使用区块链来存储、共享、访问和控制用户之间的数据。如今,这经由因特网来实现,其中,服务器托管网站和页面,用户通常通过搜索引擎访问这些网站和页面,以访问所需的数据。
但是,一些观察者已经开始设想使用区块链来解决因特网的某些缺点,例如,由中心化的各方控制大量数据和内容。例如,参见“Life After Google:The Fall of Big Dataand the Rise of the Blockchain Economy(谷歌之后的生活:大数据的衰落和区块链经济的崛起)”,George Gilder,Gateway Editions,2018年7月,ISBN-10:9781621575764和ISBN-13:978-1621575764。
发明内容
因此,期望提供一种布置,该布置使得能够利用区块链的分布式、不可变和永久性的性质在区块链上存储、处理、检索、搜索和/或共享这样的数据。现在已经设计出这种改进的方案。
本公开的实施例至少提供了用于实现区块链方案以及用于在其上或从其存储、处理、搜索和/或检索数据的替代的高效和安全的技术。实施例还至少提供了用于在计算节点之间存储、处理、检索、传送、搜索和/或共享数据的替代的区块链实现的技术基础设施。因为本发明使得能够以新的方式使用区块链网络并将其用于提供改进的技术结果,所以本发明提供了一种改进的区块链实现的网络。
实施例还提供了用于在技术上不同且改进的计算平台上安全控制对数字资源的访问的方案,该计算平台包括区块链和区块链协议。
本发明在所附权利要求书中被限定。
根据本发明,可以提供一种计算机实现的方法。该方法可以是使得能够访问存储在区块链上的数据的方法,该方法包括:
生成区块链的至少一个第一区块链交易,其中,所述第一数据存储在至少一个所述第一区块链交易中,并且在没有第一访问数据的情况下,其对于第一参与者而言是不可访问的;以及
生成所述区块链的第二区块链交易,其中,所述第二区块链交易包含用于使第一访问数据对于第一参与者而言是可用的手段。
这提供了以下优势:通过确保如果满足第二交易的解锁脚本的条款则第一数据变为可访问的,增强了处理的安全性,从而实现了其中要么可用执行两个交易要么两个交易均不执行的布置。
至少一个所述第一区块链交易可以具有至少一个相应的输入,该至少一个相应的输入是先前的区块链交易的相应的输出,其中,所述输出借助于密码系统的相应的私钥是可兑换的,并且所述第一数据可以借助于所述密码系统被加密。
这提供了以下优势:减小了交易的代码库,从而减少了所需的存储空间的大小。
所述第一参与者对所述第一数据的访问可以使所述第一参与者能够将另外的数据存储在与至少一个所述第一区块链交易有关的至少一个第三区块链交易中。
这提供了以下优势:使得能够将存储空间有效用于区块链上的数据。
第二区块链交易可以包括表示加密货币的量的第二数据。
第二区块链交易可以包括表示至少一个令牌的第二数据。
这提供了以下优势:使得能够将条件(例如,定时访问或到期)应用于令牌,从而增加了该方法的灵活性。
至少一个所述令牌可以是借助于单向函数的重复应用而生成的多个令牌中的至少一个。
例如,令牌可以从初始令牌以及单向函数(例如,哈希函数)的形式的生成算法的重复应用而生成,使得能够从初始令牌生成后续令牌。这提供了以下优势:需要较少的数据存储空间。
该方法还可以包括:在不兑换第二区块链交易的至少一个输出的情况下,生成至少一个第四区块链交易,其用于退还所述第二数据的至少部分。
这提供了以下优势:防止在不兑换第一区块链交易的情况下第二数据变得无法恢复。
至少一个所述第四区块链交易可以具有至少一个输出,该输出仅在预定时段之后才是可兑换的。
至少一个所述第四区块链交易可以具有至少一个输出,该输出仅在预定数量的区块之后才是可兑换的。
至少一个所述第一区块链交易可以具有至少一个输出,该输出借助于脚本是可兑换的,该脚本包含使所述第一访问数据对于所述第一参与者而言是可用的数据。
该脚本可以包含使得能够确定单向功能的输入的数据。
至少一个所述单向函数可以是哈希函数。
该脚本可以包含使得第一参与者能够确定公钥-私钥对中的私钥的数据。
该方法还可以包括:在所述第一参与者和第二参与者之间安全地共享第一秘密,以使得能够确定使所述第一访问数据对于所述第一参与者而言是可用的数据。
例如,共享的秘密可用于掩盖临时密钥或哈希原像。
本发明还提供一种系统,该系统包括:
处理器;以及
包括可执行指令的存储器,该可执行指令由于被处理器执行而使得系统执行本文所述的计算机实现的方法的任何实施例。
本发明还提供了其上存储有可执行指令的非瞬时性计算机可读存储介质,该可执行指令由于被计算机系统的处理器执行而使得计算机系统至少执行本文所述的计算机实现的方法的实施例。
附图说明
本发明的这些和其他方面将从本文描述的实施例变得显而易见并参考这些实施例而阐明。现在将仅通过示例的方式并参考附图来描述本发明的实施例,附图中:
图1示出了体现本发明的区块链交易,在该区块链交易中,数据被存储在多个输出中;
图2示出了体现本发明的区块链交易,在该区块链交易中,数据被存储在输入中。
图3示出了体现本发明的一系列区块链交易,在这些区块链交易中,数据被存储在多个区块链交易的输出上;
图4示出了体现本发明的区块链交易,该区块链交易传送加密货币支付以允许借助于原子交换来访问数据;
图5示出了体现本发明的区块链交易,用于兑换图4的交易的支付;
图6示出了在体现本发明的区块链交易中由参与者所保存的秘密值,该区块链交易发布令牌以允许借助于原子交换来访问数据;
图7和图8示出了体现本发明的区块链交易,用于发布令牌以允许借助于原子交换来访问数据;
图9和图10示出了体现本发明的区块链交易,用于兑换借助于图7和图8的交易发布的令牌;
图11和图12示出了用于访问由图9和图10的交易交换的秘密的区块链交易;
图13提供了根据本发明实施例的元网图结构的图示。
图14示出了根据本发明实施例的用于包括MURL搜索路径的域“bobsblog”的元网图树的图示。
图15示出了根据本发明的一个示例的浏览器钱包以及如何在应用的不同组件之间分割其核心功能的说明性实施例的示意图。
图16提供了示出如何在本发明实施例的基础设施内执行搜索内容的图。
图17示出了根据本发明实施例的本地全副本对等方和全局全副本对等方之间的说明性交互。
图18示出了元网树(或图),以供参考下面描述的说明性用例使用。
图19示出了流程图,该流程图说明了下面提供的说明性用例所体现的过程。
图20是示出其中可以实现各种实施例的计算环境的示意图。
具体实施方式
术语“比特币”在本文中仅出于方便目的而使用,并且旨在包括所有加密货币/区块链协议,包括但不限于:衍生自比特币协议的所有变型以及其他区块链的任何替代协议。在本文档的其余部分中,确定本发明实施例的操作的协议将被称为“元网协议”。
根据本发明的实施例,术语“内容”和“数据”在本文中可以互换使用,以指代存储在区块链交易中的数据。在本文中,“共享”可以包括向节点或用户提供、发送、传达、传输数据的部分或提供对数据的部分的访问。术语“处理”可以解释为表示与交易或其相关联数据有关的任何活动,包括生成、传输、验证、访问、搜索、共享提交到区块链网络和/或标识。
概述
如上所述,已经认识到需要一种改进的和/或替代的基础设施,以在计算节点之间以及由计算节点存储、写入、访问和查看数据。使用区块链技术固有的优势(例如,不可变记录、以密码方式实施的控制和访问、内置支付机制、公开检查账本的能力、分布式架构等)将是有利的。但是,从许多技术角度来看,构建“区块链实现的互联网”具有挑战性。
这些挑战可能包括但不限于:如何定位网络中数据的特定部分;如何保护和控制对数据的访问,以使只有授权方才能获得访问权限;如何以点对点方式将数据从一方传送到另一方;如何安排数据,使得其可以在逻辑上关联但仍存储在网络内的不同位置中,以及随后如何将其从不同位置进行组合以提供总体和增强的结果;如何以分层方式提供和/或存储数据;如何允许具有不同计算平台的用户和各方访问所需的数据;如何跨(潜在地全球)计算网络存储、提供和共享数据,而不依赖或不需要大型存储服务器和集中式数据控制器,以及如何提高网络上此类数据相关活动的效率。
本发明以这样的方式提供了这种改进的方案:该方式在某些方面类似于因特网,但是使用与现有技术中已知的完全不同的硬件组件和软件组件的平台,以完全不同的方式实现其结果。根据本发明的实施例,存储互联网/网络数据并将其提供给最终用户的服务器被驻留在区块链网络上的区块链交易所替换。为了实现这一点,必须设计出若干创新。这些将在以下各部分中进行描述。
将数据插入到区块链“元网”中参照图1,示出了体现本发明的区块链交易,在该区块链交易中,要存储在区块链上的第一数据存储在交易的一个或多个第一输出中,并且表示第一数据的属性的第二数据存储在交易的一个或多个第二输出中。第一数据的一个或多个第一部分<内容1>存储在交易的可花费输出中。表示第一数据的相应的属性的数据<属性1>和<属性2>以及指示正在根据元网协议存储数据的标志存储在交易的第二不可花费输出中。术语“不可花费”用于指示交易的至少一个第一和/或第二输出可以包括脚本操作码(OPRETURN),该脚本操作码用于将输出标记为对于随后用作后续交易的输入是无效的。
将数据的内容和属性部分分别地存储在交易的单独输出中是有利的。
图2示出了体现本发明的区块链交易,在该区块链交易中,要存储在区块链上的第一数据<内容1>存储在交易的输入中。元网标志以及属性数据<属性1>和<属性2>以类似于图1所示的布置的方式存储在交易的不可花费输出中。
数据插入
数据插入方法
希望能够将以下数据插入到区块链中
a)元网标志
b)属性
c)内容
内容是要存储在区块链上的数据,元网标志是4字节的前缀,其充当与元网协议有关的任何数据的标识符,而属性包含有关内容的索引、许可和编码信息。这可以包括但不限于数据类型、加密和/或压缩方案。这样的属性通常也称为元数据。为了避免与交易元数据混淆,将避免在本文档中使用该术语。
以下技术可以用于将该数据嵌入到比特币脚本中:
1.OP_RETURN-在这种方法中,所有数据(属性和内容)在可证明的不可花费交易输出的锁定脚本中都放置在OP_RETURN之后。
使用该运算符的输出脚本示例如下:
UTXO0:OP_RETURN<Metanet Flag><attributes><content>
2.带有OP_DROP的OP_RETURN-在这种情况下,OP_RETURN包含属性,而内容在可花费交易脚本(锁定或解锁)中存储在OP_DROP之前。内容可以在交易输入和输出中被分割成多个数据包。但是,将数据插入到交易输出中是有利的,因为仅输出脚本可以在比特币协议中被签署。如果将数据插入到交易输入中,则OP_MOD可以代替矿工验证用作对数据的校验和,以确保其有效性。例如,可以执行32位OP_MOD运算并检查其是否等于预先计算的值。
在这种情况下,属性可以包含有关如何重组内容数据包的信息。另外,将重组的数据包H(内容1+内容2)的哈希提供为属性使得能够验证推荐的重组方案已被使用。
图1中示出了实现第二数据插入方法的交易。为简单起见,该交易仅包括插入其输出中的内容,该输出由其单个输入签署。使用图2所示的该方法来使用OP_DROP语句也可以将内容插入到另外的输入中。
如果内容很大,则将其在多个交易上进行分割可能是有利的。这样的布置在图3中示出。图3示出了体现本发明的成对的区块链交易,在该成对的区块链交易中,要存储在区块链上的第一数据<内容>被分割成两个组块<内容组块1>和<内容组块2>,这两个组块随后可以重组为<内容>=<内容组块1>||<内容组块2>,其中,运算符“||”将两个组块的内容数据串连。该串连运算符可以被任何所需的按位或类似的分段的二进制运算符代替。然后这两个组块<内容组块1>和<内容组块2>存储在单独的区块链交易的相应的可花费输出中,而与内容数据的属性有关的数据存储在区块链交易的相应的不可花费输出中。再次,属性可以包含有关重组方案的信息。例如,内容可以是原始数据、可执行程序或HTML网页。另外,内容1可以包括指向内容2在区块链上的位置的指针,其以与网页内的嵌入式HTML链接相同的方式起作用。
应当注意,两个交易将采用同一公钥P(和ECDSA签名)作为输入,使得尽管<内容组块1>和<内容组块2>存储在分别具有TxID1和TxID2的不同交易中,但是它们可以通过同一公钥P相关。
利用矿工验证的作用
此处,矿工执行的交易验证过程用于在存储此数据时获得优势。这是因为交易输出中的所有数据将由公钥P的所有者在至少一个交易输入中签署(如果存在SIGHASH|ALL标志),并且该签名将在所有矿工执行的交易验证过程中被检查。
这样确保
·数据完整性-若数据损毁,则CHECKSIG操作将失败。
·数据真实性-P的所有者已可证明地见证并签署数据。
这对于在多个交易上被分割的内容尤其有利,因为P的输入签名提供了数据的分割分量之间的可证明链接,如上文参考图3中所示的布置所描述的。
拉宾(Rabin)签名
确保数据真实性的另一个方式是使用Rabin签名,其可用于签署数据本身而非整个消息。这可以是有利的,因为签署者无需签署出现数据的每个单独的交易,且签名可在多个交易中重复使用。
Rabin签名可以在脚本中容易地验证。通过将Rabin签名验证插入在OP_DROP命令之前,可以将这些并入在上文的情况(2)中,即
<content1><Rabin Sig(content1)>FUNC_CHECKRABSIG OP_DROP<H(P1)>[CheckSigP1]
应注意,这无法在上文的情况(1)中进行,因为不论如何,包含OP_RETURN的脚本皆失败,因此无法实现验证。
使用Rabin签名的具体示例
介绍
数字签名是比特币协议的基本部分。其确保区块链上记录的任何比特币交易均已由被发送比特币的合法持有者授权。在标准比特币P2PKH交易中,使用椭圆曲线数字签名算法(ECDSA)签署交易消息。然而,ECDSA签名通常应用于整个交易。
存在比特币区块链的一些用例,其中,来自网络外部的参与者可能想要为任意数据类型提供签名,然后网络参与者可使用该数据类型。通过使用Rabin数字签名,可对任何数据段进行签署-即使其来源于比特币区块链外部,然后被放置在一或多个交易中。
现在将示出可如何通过利用Rabin密码系统的代数结构直接以比特币脚本签署及验证数据。
Rabin数字签名
Rabin数字签名算法
背景数学
定义–整数mod p
整数模p被定义为如下集合
Figure BDA0003086500330000101
费马小定理
令p为质数。然后对于任何整数a,适用以下条件
ap-1≡1modp
欧拉准则
令p为质数。当且仅当满足下式时,r是二次余数modp
Figure BDA0003086500330000102
模平方根(p=3mod 4)
令p为质数,使得p≡3mod 4。那么对于任何满足欧拉准则的整数r,如果a为整数,则使得
a2≡rmodp
然后,a存在形式为下式的解
Figure BDA0003086500330000103
中国剩余定理
给定成对的互质正整数n1,n2,…,nk和任意整数a1,a2,…,ak,联立同馀(simultaneous congruences)的系统
x≡a1 mod n1
x≡a2 mod n2
Figure BDA0003086500330000114
x≡ak mod nk
具有唯一的解模数N=n1n2...nk。作为中国剩余定理的特例,可以示出:
当且仅当
x≡r mod n1·n2时,
x≡r mod n1且x≡r mod n2
Rabin数字签名算法
Rabin数字签名算法可以如下描述:
对于任何消息m,令H为具有k个输出位的抗冲突哈希算法。
为了生成密钥,选择质数p和q,每个质数的位长近似为k/2,使得p≡3mod 4,q≡3mod 4并计算乘积n=p·q。私钥为(p,q),公钥为n=p·q。
为了签署消息m,签署者选择填充U,使得H(m||U)满足
Figure BDA0003086500330000111
Figure BDA0003086500330000112
签名S使用以下公式计算
Figure BDA0003086500330000113
消息m的签名是对(S,U)。验证可以通过对于给定的m、U和S,检查下式来简单地进行
H(m||U)≡S2 mod n (等式1)。
当且仅当在范围0,...,n-1内存在整数λ,使得
H(m||U)+λ·n=S2 (等式2)时,这为真。
因子λ可以安全地包括在签名中,以提供组合(S,λ,U)。
Rabin签名方案的有利特征如下:
a)签名生成在计算上是昂贵的,而签名的验证在计算上是容易的。
b)签名的安全性仅依赖于整数分解的难度。因此,Rabin签名在本质上是不可伪造的(与RSA不同)。
c)哈希函数值H(m||U)必须具有与公钥n相似的大小。
脚本中的验证简单明了,因为它只需要对给定签名进行平方,执行模归约,然后检查结果是否等于H(m||U)。
Rabin签名证明
令p、q为互质数,且n=p·q。通过中国剩余定理,可以示出:
当且仅当
S2≡H(m||U)mod p
S2≡H(m||U)mod q时,
S2≡H(m||U)mod n
使用以下等式
Figure BDA0003086500330000121
Figure BDA0003086500330000131
可以示出:
S2≡H(m||U)mod q
所以
Figure BDA0003086500330000132
其中,已经假设H(m||U)满足欧拉准则。通过类似的计算,还可以示出:
S2≡H(m||U)mod p。
比特币中的Rabin签名
脚本中的签名验证
需要少量算术和堆栈操纵操作码来验证Rabin签名。考虑以下形式的兑换脚本
OP_DUP OP_HASH160<H160(n)>OP_EQUALVERIFY OP_MUL OP_SWAP OP-2OP_ROLLOP_CAT FUNC_HASH3072OP_ADD OP_SWAP OP_DUP OP_MUL OP_EQUAL
其中,n是签名者的公钥。当且仅当具备如下的输入时,这将评估为真
<S><U><m><λ><n>
其中,m是任意消息,(S,λ,U)是有效的Rabin签名。可替代地,如果使用上面的等式1检查了Rabin签名,则兑换脚本由下式给出:
OP_DUP OP_HASH160<H160(n)>OP_DUP OP_TOALTSTACK OP_SWAP<roll index>OP_ROLL OP_CAT FUNC_HASH3072OP_SWAP OP_MOD OP_SWAP OP_DUP OP_MUL OP_FROMALTSTACK OP_MOD OP_EQUAL
在这种情况下,当且仅当具备如下的输入时,这将评估为真
S><U><m><n>
在这两个兑换脚本中,均使用了3072位哈希投影函数“FUNC_HASH3072”。对于给定的消息/填充串连,使用如下脚本生成FUNC_HASH3072哈希投影:
OP_SHA256{OP_2OP_SPLIT OP_SWAP OP_SHA256 OP_SWAP}(x11)
OP_SHA256 OP_SWAP OP_SHA256{OP_CAT}(x11)
数据压缩
因特网数据由JavaScript和常见的文件类型(例如,文本文件(SML、HTML等)、视频文件(MPEG、M-JPEG等)、图像文件(GIF、JPEG等)和音频文件(AU、WAV等)组成,例如,如在以下链接中更详细地描述的:https://www.doc.ic.ac.uk/~nd/surprise_97/journal/ vol1/mmp/#text。使用上述数据插入技术,这些不同的数据类型也可以嵌入在区块链上。
在将较大文件大小嵌入于区块链上之前,可使用若干现有的编码方案中的一个对其进行压缩。诸如游程长度及霍夫曼(Huffman)编码等无损数据压缩算法可用于若干应用,包括ZIP文件、可执行程序、文本文档及源代码。
取决于具体的输入数据,存在许多不同的算法。苹果无损及自适应变换声编码可用于压缩音频文件,PNG及TIFF用于压缩图形文件,而电影文件可使用许多无损视频编译码器中的一个进行压缩。可使用属性内的标志来指示数据内容的任何压缩。例如,属性中用于LZW无损编码方案的标志将为<LZW>。
加密和支付的解密
数据加密
内容的所有者可选择在将内容嵌入在区块链上之前保护内容。这确保了在未获取到必要许可的情况下无法查看内容。
存在许多公认的用于加密数据(明文或其他数据类型)的技术。这些技术可归类为非对称加密或对称加密。
椭圆曲线密码术(ECC)是非对称的,因为其依赖于公钥-私钥对。其为最安全的密码系统之一,并且通常用于诸如比特币等加密货币中。对于ECC密码术,Koblitz算法可用于加密数据。
在对称方案中,单个密钥用于既加密又解密数据。高级加密标准(AES)算法被视为由这样的秘密作为种子产生的最安全的对称算法之一,例如如以下文献中更详细地描述的:C.Paar及J.Pelzl,“Understanding Cryptography(理解密码术)”中的第4章,Springer-Verlag Berlin Heidelberg,第2版,2010年,第87至118页。
当加密存储于区块链上的数据时,使用与基础区块链相同的密码系统存在优势。在比特币中,这为非对称密码术中的ECC密钥对的secp256k1惯例,及对称密码术中的SHA-256哈希函数。这些优势为:
-加密的安全级别与其上存储有数据的基础系统相同。
-存储加密数据所需的软件架构将具有较小的代码库。
-钱包中的密钥管理可用于交易和加密/解密两者。
-由于相同的密钥可用于加密和以加密货币的支付,因此效率更高,因此所需的密钥更少。这也减少了存储空间。
-交换/购买解密数据的能力可能需要更少的通信信道。
-由于用于加密和交易的密钥是相同的数据结构,因此提高了安全性,因此减轻了对于特定密钥类型的针对性攻击。
-可以使用基础加密货币购买密钥。
为了说明的目的,描述可以如何使用Koblitz算法以使用ECC来加密数据。
Koblitz算法
给定ECC密钥对P1=S1·G,Koblitz算法允许任何人使用公钥P1来加密消息,使得仅已知对应私钥S1的人可解密消息。
假设期望使用Koblitz方法加密明文消息′helloworld′。这是逐字符进行的。如下加密及解密第一字符′h′。
1.字符′h′映射到secp256k1曲线上的点。这可以通过使用ASCII惯例将明文字符映射到8位数字来实现。然后通过将基点G乘以该数字来计算曲线上的点。在本示例中,′h′映射到ASCII中的104,椭圆曲线点由Pm=104·G给出。
2.然后使用公钥P1对点Pm进行加密。这通过选择随机临时密钥k0并计算点对Cm={k0·G,Q}(其中,Q:=Pm+k0·P1)来实现,然后可以广播该点对。
3.私钥S1的所有者可以通过计算Pm=Q-S1·k0·G来解密原始点。然后,他们可以通过试错法或借助于查找表来恢复原始ASCII数字,以确立哪个数字x对应于Pm=x·G。
使用区块链来购买许可
将数据存储在区块链上具有支付机制构建在系统中的明显优势。支付可用于购买
-解密数据以便查看/使用
-在特定地址处插入数据的许可
在这两种情况下,买方均使用加密货币(例如,比特币)来购买授予其进行某事的许可的秘密。该秘密可以是哈希原像或私钥。
进行这种购买的高效且安全的方式是使用原子交换。这将安全通信信道保持为最小,并确保向卖方支付且向买方揭露秘密,或确保没有任何事件发生。
除了以加密货币支付外,使用访问令牌购买许可也很方便。这是买方拥有的其可使用以便进行购买的秘密值(通常为哈希原像)。买方可事先大量购买这样的访问令牌,然后在其实际上希望使用许可时进行激活。
现在将参考图4和图5描述如何执行原子交换。
使用哈希谜题或私钥谜题的原子交换
假设爱丽丝是秘密的所有者。该秘密可以是已知哈希摘要的哈希原像,或已知公钥的私钥。假设鲍勃希望使用比特币来从爱丽丝购买该秘密。描述称为原子交换的机制,该机制使此交易能够发生。在爱丽丝获得支付的比特币且向鲍勃揭露秘密、或者没有任何事件发生的意义上,这是原子的。
该方法如下:
爱丽丝拥有公钥/私钥对PA=SA·G的私钥SA,鲍勃拥有公钥/私钥对PB=SB·G的私钥SB
爱丽丝拥有作为已知哈希摘要H(X)的原像X或已知公钥P1=S1·G的私钥S1的秘密。
他们同意爱丽丝以比特币价格将该秘密卖给鲍勃。
在此之前,鲍勃必须设置交易以在区块外将临时密钥k0发送给爱丽丝,使得爱丽丝可以计算数字签名的分量r0
现参考图4,
1.鲍勃将通过以下兑换脚本R(示意性地编写)锁定的比特币转移到爱丽丝:
对于哈希原像:
R=[Hash PuzzleH(X)][CheckSigPA]
这迫使原像X在兑换脚本的输入中暴露。
对于私钥:
R=[Private Key PuzzleP1,r0][CheckSig PA]
这迫使私钥S1能够从兑换脚本的输入中计算出来。在这种情况下,鲍勃和爱丽丝必须就用于构造r0的临时密钥k0达成一致,其中,(r0,Ry)=k0·G。
2.由于爱丽丝知道她的秘密(X或S1),因此她可以借助于图5所示的交易花费其在比特币区块链上的资金。这使鲍勃可以确定她的秘密。
作为可选的安全特征,爱丽丝和鲍勃可使用他们的公钥PA,PB来确立仅他们两方已知的共享秘密S。这可以以国际专利公开号WO 2017/145016中概述的方式实现。在这种情况下,S可以被添加至哈希谜题中的原像X,以便不在区块链上公开揭露X。类似地,在私钥谜题中,S可用作临时密钥k0以确保仅爱丽丝或鲍勃能够计算私钥。
如果爱丽丝决定不花费其资金,则可在程序中引入时间锁定的退款以防止鲍勃的资金被爱丽丝锁定。
使用令牌购买
假设存在如上文所描述的相同情况,但并非在使用时以加密货币支付爱丽丝的秘密,而是鲍勃希望兑换提前购买的访问令牌,以交换秘密。
爱丽丝和鲍勃必须遵循的程序类似于先前章节中描述的情况,但是使用了类似的原子交换的序列。该过程存在两个阶段;令牌发布和令牌兑换。
阶段1:令牌发布
令牌发布阶段实际上是鲍勃单次购买令牌。例如,考虑如下场景:爱丽丝具有10个不同的秘密X1,X2,...,X10,并且鲍勃希望单次购买各自授予其对相应的秘密的访问权限的10个令牌T1,T2,...,T10
首先,鲍勃从仅其已知的秘密种子值生成10个令牌的集合。这些令牌是通过种子的顺序的哈希创建以形成哈希链,其中,每个令牌被计算为:
Ti=H10-i(Y)对于i∈{1,2,...,10}。
爱丽丝和鲍勃现在各自具有10个秘密值,这些秘密值可在哈希谜题中揭露以用于例如兑换令牌。然而,为了发布这些令牌,他们也必须分别生成秘密初始化值IAlice和IBob。这些值如下给出:
Figure BDA0003086500330000181
IBob=H10(Y)。
应注意的是,爱丽丝的初始化值(initialiser)简单地为无特定含义的随机整数,但是鲍勃的初始化值应为其第一令牌的哈希T1=H9(Y)。以此方式将令牌链扩展至初始化值允许令牌发布也限定稍后待用于相继兑换的令牌。图6中示出了由每一个参与者保存的全部秘密值。
现在爱丽丝和鲍勃可以同意以10个加密货币单位的价格购买10个令牌。这些令牌的购买可以通过多种方式进行,此处使用原子交换进行说明。原子交换通过爱丽丝及鲍勃分别广播图7和图8中所示的交易而开始,在这两个交易中输出均需要两个哈希谜题的解和有效签名。
一旦区块链中出现两个交易,爱丽丝及鲍勃就可以共享其共享初始化值IAlice和IBob,并完成令牌发布的原子交换。
由于该原子交换,爱丽丝接收购买10个令牌的支付并且两个初始化值秘密被揭露。应注意的是,此处仅鲍勃的秘密IBob=H10(Y)是有意义的,因为其将限定待求解的第一哈希谜题[哈希谜题(T1)],其解为初始化值H10(Y)的原像H9(Y)。
阶段2:令牌兑换
在未来的某一时刻,鲍勃想要兑换其第一令牌T1=H9(Y)并接收其第一秘密X1,但是前面已经提到其已通过购买有效令牌支付了该秘密。兑换令牌的过程将采用另一个原子交换的形式,其中,锁定哈希谜题的解为令牌Ti及对应的秘密Xi
为了兑换其令牌,鲍勃应广播图9中所示的交易,该交易的输出用两个哈希谜题锁定。当爱丽丝看到此交易时,她广播如图10中所示的她自己的类似交易,该交易的输出用相同的两个哈希谜题锁定。两个参与者现在可以交换其秘密T1和X1,并解锁这些交易的输出。两方现在可通过提供也曝露两秘密的正确的解锁脚本来兑换标称费用x。图11及图12中示出具有这些解锁脚本的交易。
用于兑换令牌的该原子交换的完成向鲍勃揭露爱丽丝的第一秘密X1,向爱丽丝揭露鲍勃的第一令牌T1,并且鉴于金额x适当大以鼓励两方花费锁定的输出,具有加密货币资金的净零交换。至关重要地,这也确立了鲍勃可使用的下一个令牌必须是哈希谜题[哈希谜题H(T2)]的解T2,其中,刚刚已向爱丽丝揭露了目标哈希H(T2)=T1。可以递归地重复该过程,直到鲍勃已使用其最后的令牌T10=Y为止。
命名和寻址
节点和边缘结构
上面已经解释了可以如何通过在交易内提供数据而将数据插入到区块链中。现在呈现用于以逻辑方式结构化这些交易的协议,该逻辑方式允许对节点寻址、许可及内容版本控制。该分布式对等元网的结构类似于现有的因特网。
应注意的是,这为不修改基础区块链的协议或共识规则的“tier-2”协议。
此处描述的结构的目标为:
(i)将不同交易中的相关内容相关联,以实现对数据的搜索、标识和访问
(ii)允许使用人类可读的关键字搜索来标识内容,以提高搜索速度、准确性和效率
(iii)在区块链中构建和模拟类似于服务器的结构
我们的方法是将与元网相关联的数据结构化为定向图。该图的节点及边缘对应于:
节点-与元网协议相关联的交易。节点存储内容。(术语“内容”和“数据”在本文档内可互换使用)。
节点通过包括由就在<Metanet Flag>之前的OP RETURN而创建。每个节点被分配有公钥Rnode。公钥与交易ID的组合唯一地指定节点的索引IDnode:=H(Rnode||TxIDnode)。
所使用的哈希函数应符合本发明将与例如比特币的SHA-256或RIPEMD-160一起使用的基础区块链协议。
边缘-子节点与父节点的关联。
边缘在签名SigPparent出现在元网交易的输入中时被创建,因此仅父代可以给予创建边缘的许可。所有节点可以具有至多一个父代,并且父节点可以具有任意数量的子代。在图论的语言中,每个节点的入度(indegree)至多为1,每个节点的出度(outdegree)是任意的。
应注意,边缘为元网协议的态样(aspect)且其自身并不是与基础区块链相关联的交易。
由具有以下形式的交易给出有效元网节点(具有父代):
Figure BDA0003086500330000201
该交易包含指定以下的节点及其父代的索引所需的所有信息:
IDnode=H(Rnode||TxIDnode),
IDparent=H(Pparent||TxIDparent)。
此外,由于需要父节点的签名,因此仅父代可创建到子代的边缘。如果<TxIDparent>字段并不存在或其并不指向有效的元网交易,则节点是孤儿。该节点没有可以到达它的更高级别的节点。
附加属性可以被添加到每个节点。这些属性可包括标志、名称及关键字。稍后在本文档中讨论这些属性。
如所示出的,节点(交易)的索引可以划分为
a)公钥Rnode,我们将其解释为节点的地址
b)交易ID TxIDnode,我们将其解释为节点的版本
这种结构化产生了两个有利的特征:
1.版本控制-如果存在具有相同公钥的两个节点,则我们将具有交易ID的节点解译为该节点的最新版本,该交易ID具有最大工作量证明。如果节点在不同的区块中,则这可以通过区块高度来进行检查。对于相同区块中的交易,这通过拓朴交易排序规则(TTOR)来确定。
2.许可-仅当公钥Rnode的所有者在创建子节点时签署交易输入时,才可创建节点的子代。因此,Rnode不仅表示节点的地址,而且还表示创建子节点的许可。这有意地类似于标准比特币交易-公钥不仅是地址,而且是与该地址相关联的许可。
应注意,由于父节点的签名出现在UXTO解锁脚本中,因此在网络接受交易时通过标准矿工验证过程进行验证。这意味着创建子节点的许可由比特币网络自身验证。
值得注意的是,标准因特网协议(IP)地址仅在某一时间点时在网络内是唯一的。另一方面,元网中的节点的索引在所有时间都是唯一的,并且不存在单独的网络的概念,这允许数据永久性地锚定至单个对象IDnode
节点和边缘结构允许将元网可视化为图形,如图13所示。
元网中的域、命名和定位内容
元网图的层次结构允许出现丰富的类似域的结构。我们将孤儿节点解译为顶级域(TLD),将孤儿节点的子代解译为子域,将孙代解译为子子域等,并且将无子节点解译为端点(end-point)。参见图13。
域名被解译为IDnode。元网中的每个顶级域可被视为树,其中,根为孤儿节点,叶为无子节点。元网自身为形成图的树的全局集合。
元网协议不规定任何节点包含内容数据,但叶(无子)节点表示数据树上的定向路径的端部,因此将通常用于存储内容数据。然而,内容可存储在树中的任何节点处。节点中作为属性包括的协议特定的标志可用于指定数据树中的节点的作用(磁盘空间、文件夹、文件或许可改变)。
前面已经提到因特网使用域名系统(DNS)来将人类可读的名称关联到因特网协议(IP)地址。DNS在某种意义上是去中心化的,尽管在实践中其由少量的关键参与者(例如,政府和大公司)控制。取决于你的DNS提供商,同一名称可将你带至不同的地址。在将人类可读的短名称映像到计算机生成的数字时,该问题是固有的。
我们假定存在将人类可读的顶级域名映射到根节点的去中心化索引IDroot的等效分布式系统。换句话说,存在将人类可读的名称映像到元网根节点索引的1-1函数κ,例如:
κ(′bobsblog′)=IDbobsblog(=H(Pbobsblog||TxIDbobsblog))
向左侧的输入是人类可读的词,而右侧的输出为哈希摘要,其将通常为256位数据结构。应注意,Pbobsblog和TxIDbobsblog通常也不是人类可读的。在标准IP协议中,这将为从WWW.bobsblog.com到网络内对应的域的IP地址的映射。
映射κ应被解译为用于确保在复制DNS发布的域名的人类可读性时元网与因特网的向后兼容性的措施,但提供元网的结构的命名及寻址方案并不明确地取决于该映射。
映射函数的可能的现有形式包括由星际文件系统(IPFS)或OpenNIC服务(https://www.openic.org)采用的DNSLink系统。该映射可作为DNS的一部分存储在现有的TXT记录中。这类似于IPFS中的DNSLink,请参见https://docs.ipfs.io/guides/concepts/dnslink/。然而,大体而言,这些牺牲了一些去中心化的元素以便提供作为1-1的映射,请参见https://hackernoon.com/ten-terrible-attempts-to-make-the-inter-planetary- file-system-human-frendly-e495df0c6fa虚荣地址
用作元网节点的地址的公钥不是人类可读的对象。这可能使人类用户的搜索、引用及输入活动易于出错且很慢。然而,可以创建人类可识别的公钥地址-虚荣地址Pvanity-其包括可由用户直接解译的明文前缀。虚荣地址在现有技术中是已知的。
创建这种地址的难度取决于所需前缀的字符长度。这意味着人类可识别的虚荣地址可用作节点地址,该节点地址仅依赖于所有者的创建工作量而非中心发布。对于给定前缀,由于后缀中剩余的字符,存在许多不同的虚荣地址,因此许多节点地址可共享公共前缀,同时仍保持唯一性。
具有所需前缀的虚荣地址的示例为:
Pbobsblog:bobsblogHtKNngkdXEeobR76b53LETtpyT
前缀:bobsblog
后缀:HtKNngkdXEeobR76b53LETtpyT
上面的虚名地址可用于感测检查从名称‘bobsblog’到节点索引IDbobsblog的映射并辅助元网节点通过地址的可搜索性。应注意,前缀在此处并不是唯一的,但整个地址自身是唯一的实体。
选择的地址Pvanity与TxID一起形成IDnode的组合也是有益的,因为这意味着不存在域名的中心发布者(TxIDs由去中心化的工作量证明生成),并且名称是可从区块链本身恢复的。有利地,不会再有存在于因特网DNS内的故障点。
由于元网域已经提供了许可系统(公钥),因此不需要发布凭证以证明所有权。已经例如在域名币(https://namecoir.org/)中探索将区块链用于该目的。然而,根据本发明,不需要将单独的区块链用于该功能,因为在一个区块链内能实现所有事情。
相比于现有技术,这显著地减小了本发明所需要的资源(硬件、处理资源及能量)的量。就装置和系统组件的布置而言,其也提供了完全不同的架构。
该命名系统的优势在于,用户能够通过可记住词语(例如,公司名称)而不是哈希摘要标识元网中的顶级域。这也使搜索域更快,因为搜索关键字而不是哈希摘更快。这也减小了输入错误,因此提供了对于区块链存储的数据的改进的搜索工具。
鉴于具有从域名到节点索引的映射,我们可建立类似于因特网的统一资源定位符(URL)的资源定位符。我们将此称为元网URL(MURL),且呈如下形式
MURL=′mnp:′+′//domain name′+′/path′+′/file′。
URL的每个的分量-协议、域名、路径及文件-已被映射到MURL的结构,从而使对象更具用户直观性,并且使其能够与因特网的现有结构集成。
这假设每个节点具有与其公钥(地址)相关联的名称,该公钥在域树内的层级处是唯一的。该名称始终为给定节点的MURL的最右侧分量。如果树中的同一层级处的两个节点具有相同的名称,则其将具有相同的公钥,因此采用最新版本。
下表给出了元网协议与因特网协议之间的类比:
Figure BDA0003086500330000241
表:因特网协议和元网协议之间的类比概要
搜索元网
我们已经限定了示例性实施例的元网图结构,使得每个节点具有唯一的索引并且可以具有归属于其的名称。这允许使用MURL定位内容。为了也实现快速搜索功能,我们允许将附加的关键字归属于节点。
节点的固定属性为索引及父节点的索引,可选属性为名称和关键字。
节点属性
Figure BDA0003086500330000242
Figure BDA0003086500330000251
在一个示例中,用于搜索元网的实用方法可为首先使用区块探测器在区块链中搜查(trawl),并通过元网标志标识所有交易,检查其是否为有效元网节点,并且若如此,则在数据库或其他存储资源中记录其索引和关键字。然后可以使用该数据库通过所需关键字有效地搜索节点。一旦通过所需关键字找到节点的索引,则其内容可以从区块探测器提取并且被查看。
举例来说,考虑图14的分支P1,其中,对应于公钥P0、P1和P1,1的节点分别表示主页、主题页及子主题页。这些节点被给定的名称为‘bobsblog’、‘summer’和‘caribbean’,其属性如下所示:
主页节点P0
MURL:mnp://bobsblog
Figure BDA0003086500330000252
主题页节点P1
MURL:mnp://bobsblog/summer
Figure BDA0003086500330000253
Figure BDA0003086500330000261
子主题页节点P1,1
MURL:mnp:// bobsblog/summer/caribbean
Figure BDA0003086500330000262
在该示例中,叶节点P1,1,1、P1,1,2和P1,1,3分别被给定的名称为‘beaches’,‘nightlife’和‘food’,并用于存储单独的博客文章。完整的域结构在页后的图(diagramoverleaf)上示出,包括与树中每个节点有关的MURL搜索路径。
我们应注意,元网也可以通过将由节点交易存储的内容的哈希存储为附加的属性而并入内容可寻址的网络(CAN)。这意味着元网节点也可以被索引并且通过内容哈希被搜索。
上文所描述的命名及寻址方法提供了优于现有技术的众多技术优势,包括:
1.公钥地址-系统使用与区块链相同的公钥-私钥对来分配节点地址。这意味着相同的密钥集合用于加密货币资金的管理及内容数据的许可两者。这提供了有效且安全的方案。
2.去中心化的域-域名的发布通过包括仅可由工作量证明生成的TxIDnode而完全去中心化。域名也可以并入实现所需域公钥的公平分布的人类可识别的公钥Pvanity(虚荣地址)。再次,该方案提供了增强的效率及安全性。
3.图结构-命名及寻址架构指定可以从包括元网节点的区块链数据的子集构造的图。该设计使用有序结构将因特网的复杂性映射到区块链,使得区块链完全复制其功能性及可扩展性,同时保持安全性。
浏览器钱包应用
前面已经描述了,在元网协议中,所有数据均直接存在于区块链本身上。在本部分中,我们提供说明性计算机应用的实施例,其可以有效地访问、显示存储在区块链上的元网数据并与存储在区块链上的元网数据交互,本文中为方便起见仅称为“浏览器钱包”。
我们将首先讨论浏览器钱包如何与分布式对等因特网接口的核心组件及功能性,之后在该部分的剩余部分中提供较详细的描述。
概述
组件
浏览器钱包是旨在允许最终用户与区块链上的元网基础设施交互的应用。该应用应允许探索式搜索元网图以找到嵌入于树中的特定内容。另外,浏览器钱包将处理内容的检索、解密、重组及高速缓存(可选的)。
浏览器钱包应用将通过支持本地(或外部)钱包而将这些元素与加密货币支付机制组合。浏览器钱包将包括被组合为单个计算机应用的以下核心元素。
区块链搜索引擎-支持第三方搜索引擎通过各种索引(包括IDnode、节点名称、关键字、区块高度和TxID)来查询元网节点。
显示窗口-解包(unpack)由全副本的区块链对等方返回到浏览器的内容的软件。这涵盖了访问令牌的解密、重组、高速缓存和兑换。
加密货币钱包-区块链的货币的专用密钥管理。可以是应用本地的或被授权以与外部钱包(软件或硬件)通信及同步。能够写入标准区块链交易以及新的元网节点交易。可调解访问密钥及访问令牌的链上购买。
分层的确定性密钥管理可同时用于加密货币公钥和元网节点地址。
访问密钥/令牌钱包-用于购买的访问密钥或令牌的专用密钥管理。可以使用加密货币钱包接收购买的密钥或令牌,但不具有对密钥或令牌的许可。密钥或令牌可对用户隐藏以允许稍后到期。这可以通过使用受信任的执行环境来实现。可通过与区块链同步并查询当前区块高度来保证定时访问。
功能性
元网浏览器钱包的规范确保应用的以下功能。
1.分层密钥管理-用于控制资金及管理元网树(图)的密钥利用相同的分层确定性密钥基础设施,从而减小用户维护其元网内容的密钥记录的负担。
2.指向外部加密货币钱包-授权及与外部(非应用本地)钱包同步的能力通过移除作为故障点的浏览器钱包而允许附加的安全性。
该应用可以写入区块链交易,并需要容纳密钥的外部钱包的签名,从而将这种责任委托给单独的软件或硬件。
3.元网内容的搜索-浏览器钱包可以支持和查询第三方搜索引擎,该引擎的功能可以包括爬网、编索引、服务及评级全局数据库中的元网节点交易数据。可以构造包含元网协议标志的OP_RETURN交易的数据库。参见BitDB2.0-https://bitdb.network/。
搜索引擎可以为浏览器钱包提供节点索引,这允许找到数据。
4.读写数据到区块链-除了使用搜索引擎和全节点为浏览器提供内容外,对加密货币钱包的支持还允许将内容直接从浏览器钱包写入元网。
5.数据的解压缩和解密-浏览器钱包处理解密密钥,并且可以原位对元网内容执行解压缩。
6.高速缓存节点身份(IDnode)-可以在本地高速缓存唯一的节点身份,以便更高效地进行查找和查询。
7.旁路网络服务器-在给定节点索引的情况下,浏览器钱包可查询点对点(P2P)区块链网络的任何全副本成员以获取位于节点处的内容。因为元网存在于链上,所以任何全副本对等方必须具有节点及其内容的本地副本。
这意味着用户的浏览器钱包只需要查询单个对等方,这可以直接完成而无需中间网络服务器。
图15示出了浏览器钱包的示意图,以及如何在应用的不同组件之间分割其核心功能。
区块链搜索引擎
搜索引擎–现有技术
现有技术中已知的搜索引擎(SE)依赖于强大的网络爬虫(crawlers)以根据用户查询来对网络内容进行定位、编索引及评级。(相同的基本原理可以扩展至对元网进行爬网的第三方区块链SE)。
SE通过查询中的关键字搜索标识相关的HTML元标签及内容。随后对爬网结果进行索引,其中,分析及编录任何嵌入的图像/视频/媒体文件。然后在考虑用户的位置、语言及装置的情况下,以编程方式对索引中最相关的结果进行评级。
典型的SE应具有以下功能性:
1.爬网-标识因特网数据并通过诸如域名、链接页面及相关关键字等相关元数据进行爬网。通过现有的内容发现新的因特网内容并且也针对任何相关信息进行爬网。
2.编索引-分析并编录内容数据。该信息存储在数据库中。
3.服务和评级-以与用户查询的相关性的顺序评级内容索引。
区块探测器
最接近因特网搜索引擎(SE)的区块链类似物是区块链探测器,其有时被称作‘区块探测器’或‘区块链浏览器’。区块链探测器是使能够在高层级上对区块链进行用户友好查询的网络应用,并且类似于网络浏览器起作用,但连接到区块链而非因特网。参见https://en.bitcoin.it/wiki/Block_chain_browser
在大多数情况下,这些探测器允许将区块(由区块标头的哈希进行索引)、交易(由TxID进行索引)、地址及未花费交易输出(UTXO)作为输入并对其进行搜索。许多探测器也提供其自身的应用编程接口(API)以用于检索原始交易及区块数据。参见https:// blockexplorer.com/api-ref
区块探测器虽然能力不同,但大体上对于以用户易于摘录的形式编录交易并显示其基本信息—例如,交易的货币值、币的确认和历史以及地址—是有用的。许多探测器(例如,Bitcoin.com https://explorer.bitcoin.com/bch和Blockchain.com https:// www.blockchain.com/explorer)也允许查看交易的单个输入及锁定脚本,尽管这些探测器与更高级的站点(例如,Blockchair https://blockchair.com/)选择如何提供该信息之间存在不一致。
近来,用于基于区块链数据运行网络应用的基本区块链探测器存在许多扩展。这些应用(例如,Memo.cash https://memo.cash/protocol和Matter https:// www.mttr.app/home)如区块探测器般对包含特定协议标识符的区块链交易进行编录及组织,以及显示那些特定交易内编码的数据。
然而,使用区块链探测器存在两个重要问题,本发明的实施例解决了这些问题:
1.通用性-当前不存在用于浏览存储在交易中的内容数据的行业标准。内容数据是指不涉及用于创建及保证基础区块链的协议的任何数据。
2.关键字搜索-存储在交易中的内容数据需要可由人类可读的关键字检索。这通常不是当前的区块探测器的功能,因为当前的区块探测器用于查询交易的基于协议的性质(例如,区块高度、TxID及地址),而非将关键字作为搜索输入。(然而,如果词语直接包括在交易的脚本中,则例如Blockchair等一些探测器可搜索这些词语)。
重要的是,如上所述,本发明的强大命名及寻址结构促进且实现了构造与本领域中所已知的相比更复杂的区块链探测器。
提出的元网搜索引擎
浏览器钱包应用与第三方搜索引擎通信以发现节点身份(IDnode)。应设想到,该第三方可提供复制现有的因特网搜索引擎的能力的强大且多功能服务。
元网搜索引擎第三方维护挖掘至区块链中的可由元网协议标志标识的所有元网交易的数据库。该数据库可以通过包括IDnode、节点名称、关键词、TxID及区块高度的范围索引编录所有元网节点。
已经存在诸如Bit DB https://bitdb.network/等服务,其连续地与区块链同步且以标准数据库格式维护交易数据。浏览器钱包将对元网交易进行爬网、编索引、服务及评级的责任转给该第三方,并在定位存储在元网图上的内容时连接至其服务。
通过具有仅专用于元网数据的数据库,可节约效率。不同于Bit DB,该数据库将不存储与所有交易相关联的数据,而仅存储包含元网标志的那些数据。诸如如MongoDB的非关系数据库等某些数据库在存储元网的图结构时可能更有效。这将允许更快查询、更低存储空间,及更有效地关联元网域内的相关内容。
图16示出了当用户搜索元网基础设施内的内容时,浏览器钱包如何与第三方搜索引擎进行交互。重要的是,应注意,与因特网对比,无需路由,因此本发明在效率、速度、处理及所需资源方面提供重要优势。
过程如下:
1.最终用户在浏览器钱包搜索栏中输入关键字。
2.浏览器钱包将关键字查询发送给第三方SE。
3.SE针对其数据库检查关键字并返回包含相关内容的任何元网节点的IDnode。第三方也可向用户返回每个节点上的其他索引,以及提供对相关内容的建议。
4.浏览器钱包使用节点标识和与其关联的域名来构造MURL。
5.浏览器钱包从具有区块链全副本的任何网络对等方请求属于指定节点的内容。
6.网络对等方将请求的内容提供给浏览器钱包。因为对等方具有区块链的副本,所以其必定也具有内容的副本,因此仅作出一个请求,且从不将请求转发给其他网络对等方。
要强调的是,第三方SE仅负责对元网节点的属性记录进行索引并对其进行维护,而存储于节点上的原始内容数据则由具有区块链的全副本的网络对等方(例如,全副本对等方、矿工、档案馆)存储。
内容显示–元网浏览器
浏览器钱包应用模拟任何典型的网络浏览器都应提供的相同的前端能力。这些功能包括但不限于:
1.搜索-提供对搜索引擎(SE)的访问权以定位内容。
2.检索-与服务器通信以促进使用已知协议(例如,超文本传输协议(HTTP))传送内容。
3.解译-解析原始代码(例如,以JavaScript)并执行。
4.渲染-高效显示已解析的内容,供最终用户查看。
5.用户界面(UI)-为用户提供与内容进行交互的直观界面,包括动作按钮和用于用户输入的机制。
6.存储-用于高速缓存因特网内容、cookies等的本地临时存储容量,以改善对内容的重复访问。
在某些实施例中,负责充当网络浏览器的浏览器钱包应用的软件组件能够对嵌入在区块链中的元网内容执行上述功能,该元网内容是使用其属性可搜索的(使用SE)并且可检索的(从对等方)。
重组、解压缩和解密
根据本发明的某些实施例,浏览器钱包应用的网络浏览器软件组件能够处理需要对给定元网内容执行的所有操作。大体而言,存在需要执行的许多这样的操作,但我们假定至少以下操作由应用使用元网协议及基础设施执行。
重组-在元网内容需要被分割并插入到多个单独的节点交易中的情况下,应用将从所有相关节点请求内容并重构原始内容。可以使用每个节点的属性中的附加标志编码碎片化内容的排序及结构。
解压缩-在内容数据以压缩形式存储在区块链上的情况下,应包括向浏览器钱包指示已使用哪个标准压缩方案的标志。应用将根据该标志解压缩内容。
解密-在内容被加密的情况下,应使用标志来表示加密方案。应用将从其解密密钥钱包(如下文所讨论的)定位密钥,并根据使用的加密方案解密内容数据以供使用。
在对内容数据执行这些操作时,标志可用于向浏览器钱包表示需要执行给定操作。这适用于任何其他操作,为此合适的<operation_flag>可以被包括为该操作所应用的节点的属性的一部分。
高速缓存
本地文件及cookies的高速缓存是典型网络浏览器的共同且重要的功能。浏览器钱包应用也以类似的方式使用本地存储,以便可选地保存涉及关注内容的IDnode及其他节点属性的记录。这允许从频繁访问的元网节点更有效地查找并检索内容。
元网解决了高速缓存因特网数据的固有问题,该因特网数据是可变的且可由网络浏览软件根据提供商进行改变或删减。在高速缓存元网数据时,用户可始终容易地验证数据与最初作为不可变记录包括在区块链上时处于同一状态。
加密货币钱包
分层确定性密钥管理
确定性密钥Dk是从单个“种子”密钥初始化的私钥(请参见,AndreasM.Antonopoulos,“Mastering Bitcoin(精通比特币)中的第5章,O’Reilly第2版,2017年,第93-98页”)。种子是充当主密钥的随机生成的数字。哈希函数可用于将种子与其他数据(例如,索引号或“链码”)组合(请参见,HD钱包-BIP-32/BIP-44),以得出确定性密钥。这些密钥彼此相关,并且可以通过种子密钥完全恢复。如果用户希望将外部钱包与元网浏览器钱包结合使用,则该种子还允许在不同的钱包实现之间轻松导入/导出钱包,从而给予附加的自由度。
分层确定性(HD)钱包是公知的确定性密钥的衍生方法。在HD钱包中,父代密钥生成一系列子代密钥,这些子代密钥又会衍生一系列孙密钥,依此类推。这种树状结构是用于管理若干密钥的强大机制。
在优选实施例中,HD钱包可以被合并到图16中所示的元网架构中。使用HD钱包的优点包括:
1.结构可出于不同的目的使用子密钥的不同分支表达附加的组织含义。例如,用户可将不同分支(及其对应的子密钥)专用于不同类型的数据。
2.安全性用户可以在没有对应的私钥的情况下创建一系列公钥,从而使HD钱包具有仅接收能力的功能,并且适于在不安全服务器上使用。而且,由于需要存储较少的秘密,因此暴露风险较低。
3.恢复如果密钥丢失/损坏,则可以从种子密钥中将其恢复。
本地(内部)和外部钱包支持
有利地,本发明的实施例可直接合并常规的网络浏览器与一或多个加密货币钱包的功能性。从根本上而言,这是元网如何将对于“因特网”内容的支付与其向最终用户的交付组合。
为实现这一点,浏览器钱包的实施例可具有用作加密货币钱包的专用内置软件组件。该钱包是应用自身本地的且可用于管理加密货币私钥,并授权作为对于浏览器钱包自身内的元网内容支付的交易。
这意味着应用的浏览器组件可提示钱包组件授权所需的支付—通过购买解密密钥、访问令牌或其他方式—以查看元网内容。应用无需调用外部第三方来处理支付,因此关注的元网内容由应用消费并就地支付。
外部钱包
如果用户希望在外部钱包(软件或硬件)上管理或保存其加密货币私钥或甚至使用多个钱包,则可通过应用的实施例实现相同的优势及功能性。这可代替或结合应用的本地钱包执行。
在这样的实施例中,应用建立与外部钱包的链接或配对并与之同步,但并不在浏览器钱包自身中存储私钥。而是,当浏览器组件提示为内容进行支付时,应用从所选的外部钱包中请求通过数字签名进行授权。该授权由用户作出,并且浏览器钱包可广播交易并查看支付的内容。
读取及写入元网交易
元网的本质优势为其使用相同的数据结构—区块链—来记录支付及内容数据两者。这意味着除了创建仅基于加密货币的交换的交易之外,软件钱包还可用于将内容数据写入到元网基础设施。
内置到应用的本地钱包能够将交易写入到区块链,与典型的简化支付验证(SPV)客户端相比,这些交易更复杂—请参见https://bitcoin.org/en/glossary/simplified- payment-verification。钱包允许用户通过从其计算机选择待嵌入区块链中的内容数据而选择将元网节点交易直接从应用写入到区块链中。
由于浏览器钱包应用具有用户接口(UI),因此其允许钱包组件创建并广播包括内容数据的交易,该内容数据已预先在浏览器组件中或用户计算机上被构造。对于自行进行处理的专门设置的钱包而言,要实现此功能将非常困难。
访问密钥/令牌钱包
前面已经描述了,内置于元网协议中的是使用ECC密钥对或AES对称密钥对内容进行加密的能力,以及购买对应的解密密钥或令牌的能力。我们将这些密钥或令牌称为访问密钥或访问令牌。
这些密钥/令牌授予用户查看或编辑内容的许可(单次使用或多实例使用),并且与控制用户加密货币钱包的密钥起着不同的作用(尽管在需要时同一密钥可用于这两目的)。出于此原因,有利的是引入与应用的本地加密货币钱包分离的用于存储及管理访问密钥及令牌的新钱包。
也可以通过允许访问密钥/令牌在某一时间段之后被烧毁而引入对元网内容的定时访问的概念。这可以通过以下方式来实现:要求访问密钥/令牌存储在受信任的执行环境(TEE)中且用户不可直接访问访问密钥/令牌。
访问密钥/令牌可以被“烧毁”的事实也是不将其存储在加密货币钱包中以确保不存在加密货币私钥被烧毁的风险的动机因素。
以类似于加密货币钱包的方式,解密密钥及访问令牌可以确定性地被存储及管理以促进有效处理和部署。可以通过对主钥的后续添加而生成并恢复解密密钥(例如,ECC私钥),而可以使用由一些初始令牌播种的哈希链重构访问令牌。
此处重要的是,区分加密货币钱包处理密钥对的确定性密钥生成,该密钥对用于与其他用户进行交易并创建新的元网节点,而密钥/令牌钱包处理已由加密货币钱包购买的密钥及令牌。
区块高度许可
时间锁可以包括在比特币脚本语言中,以实现区块高度许可。op_code OP_CHECKLOCKTIMEVERIFY(CLTV)设置允许花费交易输出(UTXO)的区块高度。
区块高度许可的优点是双重的:
1.版本控制-在元网协议中,节点的最新版本可以从最大区块高度处的节点标识。浏览器钱包可设置成通过区块高度仅显示文件的最近版本,从而实现工作量证明版本控制。
2.定时访问-浏览器钱包应用可周期性地烧毁由用户在原子级上购买的解密密钥。这确保了查看者仅可在其已进行支付的时间段期间访问内容数据。可以通过将解密密钥存储在受信任的执行环境(TEE)中来防止解密密钥的克隆。此外,原子交换涉及确定性密钥Dk(用于解密内容数据)的购买。尽管该确定性密钥是公开可见的,但是TEE可用于签署Dk与安全隔区的(securely enclaved)私钥的组合。
浏览器钱包可以被布置成与区块链的当前状态同步,以便将区块高度用作其自身的时间代理,而不是依赖任何外部时钟或第三方时间预告。
旁路网络服务器
本发明允许浏览器(客户端)和网络服务器通过旁路域名系统(DNS)服务器和典型的网络路由程序的分布式对等互联网通信和交换信息的新机制。参见http:// www.theshulers.com/whitepapers/internet_whitepaper/。本发明提供了包括维护区块链的全副本的对等方的新网络架构,从该新网络架构可以向浏览器钱包应用提供内容。
本地全副本对等方
考虑在每个地理区域(例如,邮区、城镇、城市)中的本地对等方的系统。我们假定在该局域网内,至少一个对等方维护区块链的全副本,我们将该对等方称为本地全副本对等方(LFCP)。出于我们的目的,LFCP仅需要存储包括元网标志的区块链交易,但不将其限于此。
所有用户默认向LFCP发送‘获得’请求。由于对等方维护整个区块链的完整且最新副本,因此所有请求都可以得到满足,因为所查询的任何节点ID对于LFCP而言将是可用的。应注意,如果SE足够强大且足够大到能够存储元网内容并执行典型SE的主要功能,则元网搜索引擎也可以充当LFCP。
在最简单的情况下,每个LFCP将具有相同的存储及磁盘空间开销,因为其都将需要能够存储全部区块链(在写入时约200GB)。每个LFCP之间的区别为LFCP应扩展其能力以对来自元网用户的本地请求的要求作出响应。因此,如果默认世界上每个元网用户均查询其最接近的LFCP,则每个LCFP均应力求扩展其操作能力以满足其本地要求。如城市等人口密集区域将需要包括许多集群服务器的LFCP操作,而如小镇等人口稀少区域将需要较少的LCFP操作。
重要的是要注意,磁盘空间要求是通用的,而对于每个LFCP的CPU要求适应于局域网需求。这是适应性网络的示例,例如,Freenet—参见https://blockstack.org/papers/
这样的系统的一个优势为在检索与给定IDnode相关联的内容时,用户仅需要单次(本地)连接至其LFCP。LFCP无需将请求转发至其他对等方,因为其自身保证能够提供所需内容。
元网提供优于因特网的许多优势—例如,去中心化及去除重复—类似于如IFPS等其他点对点(P2P)文件共享服务。然而,元网通过确保不可变性,及至关重要地通过去除使网络充斥对于给定内容的请求的需要而改进这些现有的P2P模型。
元网基础设施也通过采用这些对等方的网络而对于任何一个LFCP的受损也是鲁棒的。这意味着,如果停用LFCP,则最终用户简单地默认使用其下一个最接近LFCP。如果LFCP彼此通信以在任何给定时间指示哪些附近的对等方就请求而言低于或高于容量,则这可以更有效。这可以允许用户将其请求发送到最适当的对等方并在附近的LFCP之间建立请求分配的动态平衡。
全局全副本对等方
现在考虑当通用磁盘空间要求变得对于较小的对等方而言过大时的场景,随着区块链的元网部分随采用而扩展和增长会发生该情况。
在这种情况下,较小的LFCP应基于流行度系统来使用其磁盘空间容量存储元网节点交易(存在用于通过请求量及本质评级内容的现有技术)。这意味着LFCP现在修整其CPU(用于请求处理能力)及其存储分配(用于内容服务能力)两者,以适应其在内容量及本质两方面上的本地地理需求。
为了解决LFCP现在不能存储所有元网交易内容的事实,可以利用全局全副本对等方(GFCP)的概念。GFCP为具有以下性质的全副本对等方:
1.GFCP增长其磁盘空间容量以便始终维护区块链的全副本。
2.GFCP具有相当大的CPU资源,使得与LFCP相比,其可以处理明显更多的请求。万一许多LFCP受损,则全局全副本对等方应能够应对需求的突然增加。
GFCP存在两个主要功能。首先,在请求从LFCP溢出时,充当对于元网内容的用户请求的故障保护。其次,GFCP充当存档对等方以存储历史上挖掘的所有元网内容,这确保了即使许多LFCP从其本地存储供给中省略了某些内容,仍可访问任何元网节点内容。
全局数据库(data bank)
GFCP的概念是强大的且说明了元网的总架构如何提供对现有问题的解决方案;创建涵盖所有的全局数据库。
在此之前,尚不可能安全地构造通用且可全局访问的数据库,因为需要由中心机构来维护数据库。该中央机构将故障点和信任点注入到系统中。至关重要地,如果依赖于一个组织来存储并维护所有因特网数据,则我们需要相信该组织正确且合法地操作,而不会损毁信息的事实。
通过元网基础设施,有效地从全局数据中心的概念中移除了信任及中心性这两个问题。现在,可创建这样的GFCP,因为仅依赖于其来提供存储所需的磁盘空间而不验证及认证待存储的信息。
通过元网,验证存储内容的过程由矿工进行,因此通用全局数据库可以是受信任的,因为其无法破坏区块链信息。GFCP无需是受信任的,仅需要提供存储。
所有GFCP可以存储针对区块链自身始终是可验证的且可证明的相同信息的事实意味着可以在许多这样的GFCP之间复制信息。
这意味着通过使许多全局数据库并行存在且可证明地存储相同信息也解决了具有单个故障点的问题。
图17示出了具有两个LFCP和一个GFCP的系统,且说明了每个对等方可以如何在对于各个对等方的损坏是鲁棒的网络中支持另一对等方。
可以在上述浏览器钱包应用的实施例中实现的本发明的各方面提供了许多优于现有技术的区别特征和优势,包括但不限于:
1.确定性密钥-在应用的同一钱包组件中执行用于加密货币及元网地址两者的分层确定性密钥管理。这允许通过减小其存储要求且实现密钥恢复的多个功能组织密钥。
2.支付机制-该应用允许消费者直接向商家支付,而无需指向将按照惯例认证并提供信任的另一个应用或第三方支付服务。这允许经由同一区块链平台进行数字内容的购买及交付。该应用继承比特币支付的优势,包括低值交换或涉及多方的更复杂的交易。
3.旁路网络服务器-该应用促进对将按照惯例处理大量流量、请求及路由的常规网络服务器的旁路。这是因为应用仅需要从单个LFCP请求内容,这保证了无需将请求转发至其他LFCP来服务用户。这减小了总流量以及每个请求的完成时间
4.定时的访问-该应用通过与区块链同步并基于其当前状态使用区块链来实施访问许可而促进对内容的定时访问。这移除了对随时间监测用户特权的第三方服务的需要,同时保护原始所有者的权利。
用例-去中心化应用商店(Swapp商店)
这里呈现的元网架构的第一用例(仅出于说明性目的)为对于应用(app)的去中心化支付及分布。
考虑如下场景:app开发者爱丽丝与消费者鲍勃希望彼此交易。该交易将采用原子交换的形式,其中,以金钱交换授予鲍勃对应用数据的访问权限的秘密密钥。加密的应用数据已作为元网节点交易的一部分公开。
原子级上交换的应用被称为Swapp。第三方平台(Swapp商店)可用于对存在于元网上的应用进行编录并通告,但访问密钥的支付及传送到用户(例如,鲍勃)不需要涉及任何第三方且可直接在商家与消费者之间进行。
以下部分详述了从爱丽丝创建app至鲍勃部署该app的可用于购买及出售Swapp的过程。在整个过程中,爱丽丝及鲍勃将使用其各自的浏览器钱包与元网交互。
发布
1.爱丽丝编写应用。构成该应用的数据是由<App>表示的内容。她还使用秘密密钥Sk将其加密为<e(App)>。
2.爱丽丝创建节点交易IDAliceApp来设置她的第一元网域(树)。她生成将用作节点地址的1AliceAppHtKNngkdXEeobR76b53LETtpy(PAliceApp)。
3.然后,爱丽丝创建第一节点的子代,以形成树,该树与她的应用的元网库相对应。爱丽丝的树域在图18中示出。
该树上的叶节点之一是对应于具有索引IDApp的她的应用程序<App>的节点。在该节点中,爱丽丝将加密的应用数据<e(App)>插入到节点的输入脚本(scriptSig)中。使用秘密密钥sk来使用Koblitz方法加密app数据。
该节点交易如下所示。
Figure BDA0003086500330000401
4.爱丽丝公开广播IDAliceApp、PAliceApp和域名‘AliceApp’。这可以经由社交媒体、因特网网站或通过使用第三方元网网站来实现。
购买
1.鲍勃想要下载益智游戏,并在其浏览器钱包上查看到的元网网站(Swapp商店)上看到列出的爱丽丝的app。
2.然后,鲍勃使用来自网站的信息与爱丽丝通信,并设置原子交换。交换被设计成使得鲍勃将以比特币向爱丽丝支付商定的价格,并且爱丽丝将揭露秘密密钥sk,或这些事件均不发生。
3.原子交换完成,鲍勃的浏览器钱包将秘密密钥sk存储在其访问密钥/令牌钱包中。
部署
鲍勃现在具有将允许其解密爱丽丝先前发布的应用数据的密钥sk。为了下载app并对其进行部署,鲍勃进行以下操作。
1.鲍勃使用元网搜索引擎(SE)找到与加密的app数据<e(App)>相关联的MURL。其在浏览器钱包中将关键字‘AliceApp’和‘App’用作搜索栏的输入。第三方SE解析查询并返回以下MURL:
mnp://aliceapp/games/puzzle/app
该定位符对应于唯一的元网节点IDApp,该节点在其输入脚本中包括加密的app数据。
2.鲍勃的浏览器钱包接收该MURL,然后向最近的适当LFCP发送请求。该对等方为鲍勃提供请求的数据<e(App)>。
3.浏览器钱包根据IDApp的属性处理数据。这包括使用秘密密钥sk解密应用数据并处理<App>。
4.鲍勃将应用<App>从他的浏览器下载到他的计算机。现在,鲍勃可以在本地部署应用,而不必重新购买访问权限。
图19示出了以上说明性用例中概述的整个过程。流程图示出了两个动作分支:爱丽丝的分支(在左侧开始)及鲍勃的分支(在右侧开始)。对应于爱丽丝的分支示出初始发布阶段且鲍勃分支示出经由原子交换设置购买的阶段。
在鲍勃的分支上,他广播了以下交易TxIDBob作为原子交换设置阶段:
Figure BDA0003086500330000411
在该交易中,输出通过私钥谜题锁定,该私钥谜题需要将秘密解密密钥sk揭露给鲍勃以便爱丽丝花费。
该图中爱丽丝和鲍勃的分支在爱丽丝成功地完成原子交换交易的点处汇聚。这在爱丽丝广播交易TxIDAlice时实现:
Figure BDA0003086500330000421
一旦该交易被广播,爱丽丝和鲍勃的动作分支就再次发散。爱丽丝接收x个比特币的支付,而鲍勃接收秘密解密密钥sk,并且能够从元网检索和解密爱丽丝的应用。
现在转向图20,提供了可用于实践本公开的至少一个实施例的计算装置2600的说明性简化框图。在各种实施例中,计算装置2600可以用于实现以上示出和描述的任何系统。例如,计算装置2600可以被配置为用作数据服务器、网络服务器、便携式计算装置、个人计算机或任何电子计算装置。如图20所示,计算装置2600可以包括具有一个或多个级别的高速缓冲存储器和存储器控制器的一个或多个处理器(统称为2602),该处理器可以被配置为与包括主存储器2608和永久存储装置2610的存储子系统2606通信。如图所示,主存储器2608可以包括动态随机访问存储器(DRAM)2618和只读存储器(ROM)2620。存储子系统2606和高速缓存存储器2602可以用于存储信息,例如与本公开中所描述的与交易和区块相关联的详细内容。(一个或多个)处理器2602可用于提供本公开中所描述的任何实施例的步骤或功能。
(一个或多个)处理器2602还可以与一个或多个用户接口输入装置2612、一个或多个用户接口输出装置2614以及网络接口子系统2616通信。
总线子系统2604可以提供用于使得计算装置2600的各个组件和子系统能够按预期彼此通信的机制。尽管总线子系统2604被示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。
网络接口子系统2616可以提供至其他计算装置和网络的接口。网络接口子系统2616可以用作从不同于计算装置2600的其他系统接收数据以及将数据传输到其他系统的接口。例如,网络接口子系统2616可以使数据技术人员能够将装置连接至网络,使得数据技术员可以在位于远程位置(例如,数据中心)的同时,将数据传输到该装置并从该装置接收数据。
用户接口输入装置2612可以包括一个或多个用户输入装置,例如,键盘;诸如集成鼠标、轨迹球、触摸板或图形输入板等定点装置;扫描仪;条形码扫描仪;合并到显示器中的触摸屏;诸如语音标识系统、麦克风等音频输入装置;以及其他类型的输入装置。通常,术语“输入装置”的使用旨在包括用于将信息输入到计算装置2600的所有可能类型的装置和机制。
一个或多个用户接口输出装置2614可以包括显示子系统、打印机或诸如音频输出装置等非可视显示器。显示子系统可以是阴极射线管(CRT)、诸如液晶显示器(LCD)、发光二极管(LED)显示器或投影仪的平板装置或其他显示装置。通常,术语“输出装置”的使用旨在包括用于从计算装置2600输出信息的所有可能类型的装置和机制。一个或多个用户接口输出装置2614可以用于例如呈现用户界面以有助于用户与执行所描述的过程及其中的变型的应用的交互,当这样的交互是适当的时。
存储子系统2606可以提供计算机可读存储介质,该计算机可读存储介质用于存储可以提供本公开的至少一个实施例的功能的基本编程和数据构造。当由一个或多个处理器执行时,应用程序(程序、代码模块、指令)可以提供本公开的一个或多个实施例的功能,并且可以被存储在存储子系统2606中。这些应用程序模块或指令可以由一个或多个处理器2602执行。另外,存储子系统2606可以提供用于存储根据本公开而使用的数据的存储库。例如,主存储器2608和高速缓存存储器2602可以为程序和数据提供易失性存储。永久存储装置2610可以为程序和数据提供永久性(非易失性)存储,并且可以包括闪存、一个或多个固态驱动器、一个或多个磁性硬盘驱动器、一个或多个具有相关的可移动介质的软盘驱动器、一个或多个具有相关的可移动介质的光驱(例如,CD-ROM或DVD或Blue-Ray)驱动器,以及其他类似的存储介质。这样的程序和数据可以包括用于执行如本公开中所描述的一个或多个实施例的步骤的程序以及与本公开中所描述的交易和区块相关联的数据。
计算装置2600可以是各种类型,包括便携式计算机装置、平板计算机、工作站或以下描述的任何其他装置。另外,计算装置2600可以包括可以通过一个或多个端口(例如,USB、耳机插孔、闪电连接器等)连接到计算装置2600的另一装置。可以连接到计算装置2600的装置可以包括被配置为接受光纤连接器的多个端口。因此,该装置可以被配置为将光信号转换为电信号,该电信号可以通过将装置连接至计算装置2600的端口传输以进行处理。由于计算机和网络不断变化的性质,图20中所描绘的计算装置2600的描述仅旨在作为特定示例用于说明该装置的优选实施例的目的。具有比图20中描绘的系统更多或更少的组件的许多其他配置是可能的。
应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例,而不脱离由所附权利要求书限定的本发明的范围。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。单词“包括(comprising,comprise)”等不排除任何权利要求或整个说明书中列出的元素或步骤之外的元素或步骤的存在。在本说明书中,“包括(comprise)”是指“包括(include)或由……组成(consist of)”,“包括(comprising)”是指“包括(including)或由……组成(consisting of)”。元素的单数形式并不排除此类元素的复数形式,反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个部件的装置权利要求中,这些部件中的几个可以由一个且相同的硬件来实施。在互不相同的从属权利要求中记载某些手段的事实并不表示不能有利地使用这些手段的组合。

Claims (16)

1.一种使得能够访问存储在区块链上的数据的方法,所述方法包括:
生成区块链的至少一个第一区块链交易,其中,所述第一数据存储在至少一个所述第一区块链交易中,并且在没有第一访问数据的情况下,所述第一数据对于第一参与者而言是不能够访问的;以及
生成所述区块链的第二区块链交易,其中,所述第二区块链交易包含用于使所述第一访问数据对于第一参与者而言是能够获得的手段。
2.根据权利要求1所述的方法,其中,至少一个所述第一区块链交易具有至少一个相应的输入,所述至少一个相应的输入是先前的区块链交易的相应的输出,其中,所述输出通过密码系统的相应的私钥是能够兑换的,并且所述第一数据通过所述密码系统被加密。
3.根据权利要求1或2所述的方法,其中,所述第一参与者对所述第一数据的访问使所述第一参与者能够将另外的数据存储在与至少一个所述第一区块链交易有关的至少一个第三区块链交易中。
4.根据前述权利要求中的任一项所述的方法,其中,所述第二区块链交易包括表示加密货币的量的第二数据。
5.根据前述权利要求中的任一项所述的方法,其中,所述第二区块链交易包括表示至少一个令牌的第二数据。
6.根据权利要求5所述的方法,其中,至少一个所述令牌是通过单向函数的重复应用而生成的多个令牌中的至少一个。
7.根据权利要求4至6中任一项所述的方法,还包括:生成至少一个第四区块链交易,其用于在不兑换所述第二区块链交易的至少一个输出的情况下,退还所述第二数据的至少部分。
8.根据权利要求7所述的方法,其中,至少一个所述第四区块链交易具有至少一个输出,所述至少一个输出仅在预定时段之后是能够兑换的。
9.根据权利要求7或8所述的方法,其中,至少一个所述第四区块链交易具有至少一个输出,所述至少一个输出仅在预定数量的区块之后是能够兑换的。
10.根据前述权利要求中的任一项所述的方法,其中,至少一个所述第一区块链交易具有至少一个输出,所述至少一个输出通过脚本是能够兑换的,所述脚本包含使所述第一访问数据对于所述第一参与者而言是能够获得的数据。
11.根据权利要求10所述的方法,其中,所述脚本包含使得能够确定单向功能的输入的数据。
12.根据权利要求11所述的方法,其中,至少一个所述单向函数是哈希函数。
13.根据权利要求10至12中的任一项所述的方法,其中,所述脚本包含使得所述第一参与者能够确定公钥-私钥对中的私钥的数据。
14.根据前述权利要求中的任一项所述的方法,还包括:在所述第一参与者和第二参与者之间安全地共享第一秘密,以使得能够确定使所述第一访问数据对于所述第一参与者而言是能够获得的数据。
15.一种计算机实现的系统,包括:
处理器;以及
包括可执行指令的存储器,所述可执行指令由于被所述处理器执行而使所述系统执行根据权利要求1至14中任一项所述的计算机实现的方法的任何实施方式。
16.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于被计算机系统的处理器执行而使所述计算机系统至少执行根据权利要求1至14中任一项所述的方法的实施方式。
CN201980078214.1A 2018-11-27 2019-11-14 用于实现对存储在区块链上的数据的访问的计算机实现的系统和方法 Pending CN113169874A (zh)

Applications Claiming Priority (15)

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

Publications (1)

Publication Number Publication Date
CN113169874A true CN113169874A (zh) 2021-07-23

Family

ID=68621343

Family Applications (8)

Application Number Title Priority Date Filing Date
CN201980078428.9A Pending CN113169881A (zh) 2018-11-27 2019-11-14 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法
CN201980078377.XA Pending CN113169878A (zh) 2018-11-27 2019-11-14 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法
CN201980078242.3A Pending CN113169877A (zh) 2018-11-27 2019-11-14 经由对等网络存储、检索和通信数据的计算机实现的系统和方法
CN201980078225.XA Pending CN113169875A (zh) 2018-11-27 2019-11-14 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法
CN201980078378.4A Pending CN113169879A (zh) 2018-11-27 2019-11-14 用于在区块链上存储数据的计算机实现的系统和方法
CN201980078427.4A Pending CN113169880A (zh) 2018-11-27 2019-11-14 用于在区块链上存储数据的计算机实现的系统和方法
CN201980078214.1A Pending CN113169874A (zh) 2018-11-27 2019-11-14 用于实现对存储在区块链上的数据的访问的计算机实现的系统和方法
CN201980078226.4A Pending CN113169876A (zh) 2018-11-27 2019-11-27 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法

Family Applications Before (6)

Application Number Title Priority Date Filing Date
CN201980078428.9A Pending CN113169881A (zh) 2018-11-27 2019-11-14 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法
CN201980078377.XA Pending CN113169878A (zh) 2018-11-27 2019-11-14 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法
CN201980078242.3A Pending CN113169877A (zh) 2018-11-27 2019-11-14 经由对等网络存储、检索和通信数据的计算机实现的系统和方法
CN201980078225.XA Pending CN113169875A (zh) 2018-11-27 2019-11-14 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法
CN201980078378.4A Pending CN113169879A (zh) 2018-11-27 2019-11-14 用于在区块链上存储数据的计算机实现的系统和方法
CN201980078427.4A Pending CN113169880A (zh) 2018-11-27 2019-11-14 用于在区块链上存储数据的计算机实现的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980078226.4A Pending CN113169876A (zh) 2018-11-27 2019-11-27 经由区块链网络高效且安全地处理、访问和传输数据的系统和方法

Country Status (8)

Country Link
US (8) US20210399898A1 (zh)
EP (8) EP3888300A1 (zh)
JP (8) JP2022507797A (zh)
KR (8) KR20210096178A (zh)
CN (8) CN113169881A (zh)
SG (8) SG11202104292YA (zh)
TW (6) TWI810410B (zh)
WO (8) WO2020109907A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113569262A (zh) * 2021-07-30 2021-10-29 立信(重庆)数据科技股份有限公司 基于区块链的密文存储方法及系统

Families Citing this family (27)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170177898A1 (en) * 2015-12-16 2017-06-22 International Business Machines Corporation Personal ledger blockchain
CN107615317A (zh) * 2015-03-31 2018-01-19 纳斯达克公司 区块链交易记录的系统和方法
CN108616539A (zh) * 2018-05-03 2018-10-02 东莞市翔实信息科技有限公司 一种区块链交易记录访问的方法及系统
CN108632268A (zh) * 2018-04-28 2018-10-09 腾讯科技(深圳)有限公司 区块链访问的鉴权方法和装置、存储介质、电子装置

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065359B2 (en) 2004-09-16 2011-11-22 Nokia Corporation Integrated method and apparatus to manage mobile devices and services
US7487143B2 (en) * 2005-11-17 2009-02-03 International Business Machines Corporation Method for nested categorization using factorization
JP2007336464A (ja) * 2006-06-19 2007-12-27 Sony Corp 情報処理システム、暗号化装置および方法、復号化装置および方法、情報処理装置および方法、並びにプログラム
US7760873B2 (en) * 2006-06-30 2010-07-20 Intel Corporation Method and a system for a quick verification rabin signature scheme
US9858569B2 (en) * 2014-03-21 2018-01-02 Ramanan Navaratnam Systems and methods in support of authentication of an item
US10497037B2 (en) * 2014-03-31 2019-12-03 Monticello Enterprises LLC System and method for managing cryptocurrency payments via the payment request API
US10839020B2 (en) 2014-04-14 2020-11-17 Netspective Communications Llc Multi-source user generated electronic data integration in a blockchain-based transactional system
US9830593B2 (en) * 2014-04-26 2017-11-28 Ss8 Networks, Inc. Cryptographic currency user directory data and enhanced peer-verification ledger synthesis through multi-modal cryptographic key-address mapping
EP3140979A4 (en) * 2014-05-09 2017-12-27 Veritaseum Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
WO2015175722A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
US9336523B2 (en) * 2014-07-28 2016-05-10 International Business Machines Corporation Managing a secure transaction
CN105469510B (zh) * 2014-10-12 2018-01-09 吴思进 可预告延时支付或找回的加密货币钱包
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US11062303B2 (en) * 2015-06-08 2021-07-13 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
US9298806B1 (en) * 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
EP3320424B1 (en) * 2015-07-09 2021-10-20 Sensoriant, Inc. Method and system for creating adaptive user interfaces using user provided and controlled data
US20190188700A1 (en) * 2017-12-15 2019-06-20 Fmr Llc Social Data Tracking Datastructures, Apparatuses, Methods and Systems
KR101637854B1 (ko) * 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
JP6608256B2 (ja) 2015-11-26 2019-11-20 株式会社bitFlyer Blockchain 電子データの存在証明プログラムおよび存在証明サーバ
US10103885B2 (en) * 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
US20170236123A1 (en) 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
CN108781161B (zh) * 2016-02-23 2021-08-20 区块链控股有限公司 用于控制和分发数字内容的区块链实现的方法
CN116957790A (zh) * 2016-02-23 2023-10-27 区块链控股有限公司 一种实现区块链上交换的通证化方法及系统
LT3268914T (lt) 2016-02-23 2018-11-12 nChain Holdings Limited Bendros paslapties, skirtos saugiems informacijos mainams, nustatymas ir hierarchiniai determinuoti kriptografiniai raktai
GB2548802A (en) * 2016-03-22 2017-10-04 Bitcred Ltd Methods for creating and verifying an electronic user identity
CN109314643B (zh) * 2016-03-31 2021-12-31 比特飞翔区块链株式会社 事务处理装置以及事务处理方法
CN106097030A (zh) * 2016-04-29 2016-11-09 北京太云科技有限公司 一种基于区块链的资产的数据处理方法、装置及系统
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
US20170324711A1 (en) * 2016-05-03 2017-11-09 The Real Mccoy, Llc Inc. Method for establishing, securing and transferring computer readable information using peer-to-peer public and private key cryptography
KR101780636B1 (ko) * 2016-05-16 2017-09-21 주식회사 코인플러그 인증 정보의 발급 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버
US10122661B2 (en) * 2016-06-10 2018-11-06 Salesforce.Com, Inc. Messaging systems and methods that employ a blockchain to ensure integrity of message delivery
GB201613176D0 (en) * 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
US11531974B2 (en) * 2016-08-17 2022-12-20 International Business Machines Corporation Tracking transactions through a blockchain
US10460118B2 (en) * 2016-08-30 2019-10-29 Workday, Inc. Secure storage audit verification system
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
US10749684B2 (en) * 2016-09-30 2020-08-18 Entrust, Inc. Methods and apparatus for providing blockchain participant identity binding
CN106533661B (zh) * 2016-10-25 2019-07-19 北京大学 基于组合公钥的密码学货币地址在线生成方法
JP6296630B1 (ja) * 2016-12-09 2018-03-20 株式会社大和総研 分散型台帳システムおよびプログラム
US20180165588A1 (en) 2016-12-09 2018-06-14 Cognitive Scale, Inc. Providing Healthcare-Related, Blockchain-Associated Cognitive Insights Using Blockchains
CN106682457A (zh) * 2016-12-16 2017-05-17 北京握奇智能科技有限公司 一种基于区块链技术的图片版权保护方法和系统
US11831748B1 (en) * 2017-01-17 2023-11-28 Justin Fisher Method and system for utilizing the infrastructure of a blockchain to enhance the degree of security and veracity of another blockchain
US9998286B1 (en) * 2017-02-17 2018-06-12 Accenture Global Solutions Limited Hardware blockchain consensus operating procedure enforcement
JP6961960B2 (ja) * 2017-03-13 2021-11-05 ソニーグループ株式会社 情報処理装置および情報処理方法
US10102526B1 (en) * 2017-03-31 2018-10-16 Vijay K. Madisetti Method and system for blockchain-based combined identity, ownership, integrity and custody management
GB201705858D0 (en) * 2017-04-11 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
US10129269B1 (en) * 2017-05-15 2018-11-13 Forcepoint, LLC Managing blockchain access to user profile information
CN108323232B (zh) * 2017-05-16 2020-01-24 北京大学深圳研究生院 一种多层级区块链系统之间索引与链拓扑结构的维护方法
US10397328B2 (en) * 2017-05-17 2019-08-27 Nec Corporation Method and system for providing a robust blockchain with an integrated proof of storage
US10581621B2 (en) * 2017-05-18 2020-03-03 International Business Machines Corporation Enhanced chaincode analytics provenance in a blockchain
EP3635667A4 (en) * 2017-05-18 2021-08-25 Codex LLC PROCESS AND SYSTEM FOR DECENTRALIZED DISTRIBUTION OF DIGITAL CONTENT USING BLOCK CHAINS
US10839379B2 (en) * 2017-07-20 2020-11-17 Chicago Mercantile Exchange Inc. Blockchain including linked digital assets
CN107273556A (zh) * 2017-08-23 2017-10-20 上海点融信息科技有限责任公司 区块链数据索引方法和设备
US11392945B2 (en) * 2017-09-29 2022-07-19 Apple Inc. Detailing secure service provider transactions
CN107730225B (zh) * 2017-10-24 2021-07-06 广东工业大学 一种大数据交易方法、系统、设备及计算机存储介质
US11055419B2 (en) * 2017-12-01 2021-07-06 Alan Health and Science Decentralized data authentication system for creation of integrated lifetime health records
FR3076422B1 (fr) * 2017-12-29 2020-09-25 Commissariat Energie Atomique Methode d'echange de cles authentifie par chaine de blocs
US10320569B1 (en) * 2018-04-05 2019-06-11 HOTYB, Inc. Systems and methods for authenticating a digitally signed assertion using verified evaluators
CN108683509B (zh) * 2018-05-15 2021-12-28 北京创世智链信息技术研究院 一种基于区块链的安全交易方法、装置及系统
GB201809225D0 (en) * 2018-06-05 2018-07-25 Data Signals Ltd Method and apparatus for access control
US11924323B2 (en) * 2018-07-02 2024-03-05 International Business Machines Corporation On-chain governance of blockchain
US10826682B2 (en) * 2018-07-03 2020-11-03 Servicenow, Inc. Multi-instance architecture supporting trusted blockchain-based network
US11056981B2 (en) * 2018-07-07 2021-07-06 Intelesol, Llc Method and apparatus for signal extraction with sample and hold and release
US20200026834A1 (en) * 2018-07-23 2020-01-23 One Kosmos Inc. Blockchain identity safe and authentication system
US20200044860A1 (en) * 2018-07-31 2020-02-06 International Business Machines Corporation System and method for quantum resistant digital signature
US20230245247A1 (en) * 2018-08-28 2023-08-03 Meta Platforms, Inc. Online Platform for Digital Content via Blockchain
JP6786119B2 (ja) * 2018-09-21 2020-11-18 株式会社アクセル 取引装置、取引方法及び取引プログラム
US11062042B1 (en) * 2018-09-26 2021-07-13 Splunk Inc. Authenticating data associated with a data intake and query system using a distributed ledger system
US11924360B2 (en) * 2018-10-08 2024-03-05 Green Market Square Limited Blockchain timestamp agreement
US20230281606A1 (en) * 2022-03-01 2023-09-07 Artema Labs, Inc Partitioned Address Spaces in Blockchain Wallets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107615317A (zh) * 2015-03-31 2018-01-19 纳斯达克公司 区块链交易记录的系统和方法
US20170177898A1 (en) * 2015-12-16 2017-06-22 International Business Machines Corporation Personal ledger blockchain
CN108632268A (zh) * 2018-04-28 2018-10-09 腾讯科技(深圳)有限公司 区块链访问的鉴权方法和装置、存储介质、电子装置
CN108616539A (zh) * 2018-05-03 2018-10-02 东莞市翔实信息科技有限公司 一种区块链交易记录访问的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ELEFTHERIOS KOKORIS-KOGIAS等: ""CALYPSO: Auditable Sharing of Private Data over Blockchains"", Retrieved from the Internet <URL:http://eprient.iacr.org/2018/209.pdf> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113569262A (zh) * 2021-07-30 2021-10-29 立信(重庆)数据科技股份有限公司 基于区块链的密文存储方法及系统
CN113569262B (zh) * 2021-07-30 2022-05-10 立信(重庆)数据科技股份有限公司 基于区块链的密文存储方法及系统

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI810411B (zh) 用以允許對儲存於區塊鏈上之資料的存取之電腦實施系統及方法
TWI837227B (zh) 用於透過點對點網路儲存、提取及傳遞資料之電腦實施系統及方法

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