CN115769206A - 密码化数据录入区块链数据结构 - Google Patents
密码化数据录入区块链数据结构 Download PDFInfo
- Publication number
- CN115769206A CN115769206A CN202180033346.XA CN202180033346A CN115769206A CN 115769206 A CN115769206 A CN 115769206A CN 202180033346 A CN202180033346 A CN 202180033346A CN 115769206 A CN115769206 A CN 115769206A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- data
- local
- user
- data structure
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种使用区块链结构安全存储和传输数据的方法。区块链结构在本地节点上运行,并与仲裁服务器和云基础设施通过SSH传输。本地应用协调附加区块的顺序,其中每个区块都是使用对应的文件名来表示区块顺序的平面文件。通过授权客户端解密时,明文数据仅在本地存储器中可用时,执行数据录入和取出。数据仅以加密方式写入磁盘。
Description
相关申请交叉引用
本申请要求2020年3月4日提交的美国临时专利申请号62/985,129的优先权,其通过引用整体并入本文。
技术领域
本公开涉及确定在分布式网络中存储数据所涉及的密码化数据结构。
背景技术
常规数据库包括许多缺陷。例如,许多数据库都存在安全问题。数据以未加密的方式存储或传输,从而成为可能被恶意行为者破坏的目标。每天都有公司数据库被破坏,记录被窃取。第二个问题是由损坏引起的——由于外部因素(例如雷击,停电,人为错误,不合时宜等)导致数据库数据完全丢失。
加密货币区块链数据存储包括基于已知区块链系统的固有不可篡改性和整体数据结构修改数据的困难。具体来说,存储的数据与金融系统而非真正的数据存储系统相关联。加密货币系统中的存储数据与币相关联,如果想要更改存储的数据,就必须操作一个基本上无组织的区块链。加密货币最终是一种低效的数据存储系统。
已知的数据加密方案往往具有成为攻击者目标的固有漏洞。
附图说明
图1是已知区块链数据结构的框图。加密货币网络在分布式网络架构(现有技术)上运行。
图2是示出智能合约的已知数据结构(现有技术)的框图。
图3是包含在自定义代币的数据结构内的多种密码化地址和实体的框图。
图4是示出客户端前端和对区块链的可访问性之间的关系的框图。
图5是示出将数据附加到区块链的方法的流程图。
图6是对等网络中的仲裁服务器(arbiter server)的框图。
图7是示出从区块链取出合法数据的方法的流程图。
图8是数据录入(entry)界面和相关联的区块链的屏幕截图。
图9是从区块链绘制的区块链查看器应用的屏幕截图。
图10是示例性计算系统的框图。
具体实施方式
典型的区块链是密码化数据结构,其中分布式网络促成不可篡改的数据帐本。区块链系统通常与经由密码化密钥对确定的用户群相关联,该加密密钥对包括公钥(用于指用户,充当地址)和私钥(用于对用户采取的动作进行签名,通过单向函数与公钥相关)。新数据被提交到网络,网络内的节点将该数据附加到区块链的末尾。与传统数据库相比,区块链系统具有许多优势。也就是说,由于结构只会继续增长而不会丢失数据。由于网络是分布式的,节点之间的同步意味着损坏的节点可以使用对等方存储的数据进行修复,因此不会因损坏而丢失数据。由于数据是分布式的并且多半是不可篡改的,因此区块链也比数据库更难攻击。
区块链数据结构可能是与加密货币相关联的最著名的数据结构。从根本上说,区块链是一个分布式链表。许多系统都建立在加密货币网络之上,但这些系统本质上是基于某些底层货币的存在及其使用。因此,区块链的加密货币应用并不是有效管理单个实体数据录入系统的最有效结构。
本文描述了一种系统,其中给定实体的用户是分布式网络上的每个节点。每个节点不必是一个完整的节点(例如,存储完整的区块链)来参与。当节点不活动一段时间后登录后,同步时,这些节点首先获取链中的最新区块,然后朝创世区块往回工作。区块中的数据存储在包含信息的最简单表达的小型平面文件(flat file)中。存储的数据被加密成密文。查看明文数据是在存储器中执行的,以减少恶意用户的攻击窗口。就本文而言,“明文”是“密文”的补集(complement),是指未加密或预加密的数据(在多个加密循环的情况下)。明文是生成密文的函数的一个或多个输入。
区块链是不可篡改的;也就是说,一旦被附加,区块的数据很难(即使不是不可能)更改。但是,数据录入通常包括对数据的修改或编辑。在需要更改给定区块中的数据的情况下,系统会使用包含相关数据的区块作为创世区块生成一个新的分支区块链结构。随着该数据被编辑,新的区块被附加到分支区块链中。加密货币系统无法处理分支区块链,因为它们涉及需要自由移动的货币资产,而存储数据是一种不同的结构,不需要一样的灵活性。虽然本系统包括加密货币区块链的结构变化,但保留了一些基本架构。
图1是已知的基于加密货币的区块链数据结构的框图。加密货币网络在分布式网络架构上运行。理解加密货币的关键是网络在其上运行的数据结构。例如,比特币和以太坊网络使用称为区块链的数据结构。
区块链包括曾经在网络上发生的所有交易(transaction)的历史。分布式网络中的每个完整节点都拥有区块链的完整副本。要完全参与网络,给定节点上的区块链历史必须与至少大多数其他节点的历史一致。这种一致性规则具有使区块链不可篡改的重要作用。为了有效攻击比特币或以太坊(当前版本)等区块链,必须控制整个网络51%以上的处理能力。在网络由数千个节点组成的情况下,归并(assembling)必要的51%是极其困难的。
当给定节点打算生成交易时,交易在整个节点传播,直到它到达可以将该交易和在同时时间段期间生成的其他交易归并成区块的节点或节点组。在交易出现在区块中之前,它不会被发布或公开。通常,只有在添加了必要数量的额外区块后,才会被认为交易被确认。
在这种提交时,比特币区块的大小被限制为4MB,并且大约每5到15分钟被生成一次。这说明了比特币网络的一个重要限制,即它每秒只能处理大约7次交易。相对地,以太坊根据处理给定区块调用中的合约的量来限制区块大小,并且每5到20秒附加一次。虽然加密货币网络在技术上实时开始处理交易,并且包含给定交易的区块的存在验证了该交易的真实性,但在该区块发布到区块链之前,该交易未被验证。
验证时间的间隔引入了在“谁有钱”的给定时刻在比特币网络内的问题。在区块生成之间的10到15分钟跨度内,已提交的交易可能不会实际处理。当用户花他们没有的钱或双重花钱时,就会发生这种情况。这并不是说网络在区块之间没有验证机制。例如,当给定用户尝试向另一个用户付款时,系统可以容易地查询较旧的区块,以检查给定用户至少在最新发布的区块时的余额。如果给定用户有足够的资金,则信任交易是勉强安全的。
然而,如果给定的用户试图双重花他们所有的钱,那么这些交易中只有一个将在下一个区块中发布。另一个将被拒绝(被拒绝的交易,以及处理的交易受竞争条件约束,不一定依赖于生成时间)。在讨论微不足道的钱(例如,支付咖啡费用)时,这并不是一个大问题。但是,在处理快速发生的更大量的购买(例如,公司股票)时,金额可能会变得更大,10-15分钟的清算(clearance)时间并不理想。
迄今为止,比特币已被讨论为用于交易比特币的网络。然而,比特币交易还有额外用途,因为它们可以嵌入额外数据。如上所述,比特币可用于购买和记录给定时间点数据的存在。通过在给定交易的输出域中包含哈希(hash)数据来执行记录数据。通过这种方式,任何文档或记录数据的存在证明都可以嵌入到区块链的不可篡改的历史中。
利用比特币区块链来转移非币资产所有权的系统需要与区块链分离并且仅依赖于区块链的不可篡改性的软件。单独的软件本身不一定是安全的或不可篡改的。因此,额外的区块链软件是依赖于区块链的不可篡改性来确保安全性的系统中的一个固有弱点。以太坊将购买和出售非币资产的能力更进一步。
以太坊智能合约实际上是在区块链上运行的事件驱动软件。该软件是开源的,并且受制于与区块链本身相关的输入。当然,人们仍然可以编写包含漏洞的代码,但平台提供了更高的安全性,减少了链上的薄弱环节。
图2是示出智能合约的已知数据结构的框图。智能合约和去中心化应用(“dApp”)执行在以太坊虚拟机(“EVM”)上。EVM在可用的网络节点上被实例化。智能合约和dApp是执行的应用;因此,这样做的处理能力必须来自某处的硬件。节点必须自愿让他们的处理器执行这些操作,前提是使用以太币(称为以太币,以“燃料(gas)”衡量)支付工作费用。燃料是EVM中工作单元的名称。燃料的价格可能会有所不同,通常是因为以太币的价格不同,并且在智能合约/dApp中被规定。
可以由以太坊平台上的交易或合约执行的每个操作都花费一定数量的燃料,需要更多计算资源的操作比需要更少计算资源的操作花费更多的燃料。例如,一条乘法指令可能需要5个燃料,而一条加法指令可能需要3个燃料。相对地,更复杂的指令,例如Keccak256密码化哈希,每哈希256位数据需要30个初始燃料和6个额外燃料。
燃料的目的是以合理稳定的速率为执行智能合约时的网络处理能力付费。有成本可以确保正在执行的工作/处理对某人有用且有价值。因此,以太坊策略不同于比特币交易费用,后者仅取决于交易的千字节大小。由于以太坊的燃料成本源于计算,即使是一小段代码也可能导致执行大量处理。燃料的使用进一步激励编码人员生成高效的智能合约/算法。否则执行成本可能会失控。不受限制,指数函数可能会使给定用户破产。
虽然以太坊虚拟机(EVM)中的操作具有燃料成本,但燃料具有以以太币(ether)计量的“燃料价格”。交易为每个单位的燃料规定了一个给定的以太币价格。通过交易固定价格使市场能够决定以太币价格与计算操作成本(以燃料计量)之间的关系。一次交易支付的总费用是使用的燃料乘以燃料价格。
如果给定交易提供的燃料价格非常低,则该交易将在网络上具有低优先级。在一些情况下,网络矿工可能会对每个人愿意执行/处理的燃料价格设置一个阈值。如果给定的交易低于所有矿工的阈值,则该过程将永远不会执行。如果交易不包含足够的附上的以太币(例如,因为交易导致燃料成本超过附上的以太币的大量计算工作),所使用的燃料仍然提供给矿工。当燃料用完时,矿工将停止处理交易,恢复所做的更改,并将“失败的交易”附加到区块链中。由于矿工没有直接评估智能合约的效率,因此可能会发生交易失败。矿工只会执行附上了适合的燃料价格的代码。代码是执行完成还是由于计算复杂度过大而停止运行对矿工来说无关紧要。
如果交易附上了高燃料价格,则该交易将被赋予优先权。矿工将按照经济价值的顺序处理交易。以太坊区块链上的优先级与比特币区块链类似。如果用户在给定交易中附上了比必要的比太币更多的以太币,则在交易被执行/被处理后,多余的金额将退还给该用户。矿工只对所执行的工作收费。关于燃料成本和价格的一个有用的类比是,燃料价格类似于矿工的小时工资,而燃料成本就像执行工作的时间表。
存在于以太坊区块链上的一种智能合约是ERC-20代币(以太坊征求意见提案20(Ethereum Requestfor Comment-20))。ERC-20是可取代的实用代币的技术规范。ERC-20定义了以太坊代币在更大的以太坊生态系统中遵循的通用规则列表,允许开发人员准确预测代币之间的交互。这些规则包括代币如何在地址之间转移以及如何访问每个代币内的数据。ERC-20提供了用于在基础加密货币之上构建代币的装置的框架。在本文的一些实施例中,增强建立在ERC-20框架之上,尽管使用ERC-20技术规范本身并不是必需的并且适用于以太坊被用作基础加密货币的情况。
迄今为止,讨论一直集中在比特币和以太坊周围。如在本技术中所适用的,这些是基础加密货币。现在和将来存在其他基础加密货币。本技术不限于具体在比特币或以太坊区块链上的应用。
实用代币的概念在当今的区块链空间中被理解。实用代币代表对网络的访问,而给予实用代币购买(a give utility token purchase)代表从该网络购买商品或服务的能力——例如,游戏厅代币允许用户玩游戏厅游戏机。实用代币为用户提供对产品或服务的相同类型的访问。另一方面,自定义代币代表资产(例如公司股份,房地产资产,艺术品等)的全部或部分所有权。拥有公司,房地产,或知识产权的股份都可以用自定义代币代表。通过使用区块链及其相关的公共账本,自定义代币提供了相对于传统纸质股票具有显着的透明度的优势。现在,所有人都可以经由区块链访问可能影响投资者的自定义代币结构,分布,或更改。
图3示出了实现分支区块链的区块链数据结构。主区块链20从第一区块22开始并且包括第二区块24,第三区块26和第四区块28。主区块链20可以被称为第一区块链或主区块链。区块的数量仅用于说明。在实际用例中,随着时间的推移,主区块链20将包括很多很多的区块。每个区块是数据存储。在一些实施例中,当每个区块被附加到像加密货币区块链这样的链式数据结构时,没有相关联的加密货币。也就是说,正在向区块链提交新数据并因此向区块链提交新区块的节点执行处理操作以使新区块与先前或最末区块(last block)相一致。
区块不是被挖出的,而是在每次用户交易数据时被创建。在一个示例中,用户可保存一个两页的word文档,这可变成一个区块,然后是一个单页文档并将其保存为另一个区块。区块立即创建并像区块链一样被哈希。此过程与创建数据的方式相同。例如,用户可能会打开一个空白的word文档,键入并保存,然后该文档就变成了一个区块。
每个区块优选地包含一些有效载荷(payload)数据以及区块ID,最末哈希,新哈希,用户哈希,时间/日期,和数据录入用户的用户名。数据在存储在区块链20,30中时是加密的密文。使用与生成区块的用户或监督生成用户的区块的用户相关联的相应密钥对额外地对区块进行哈希。
有效载荷或数据可以具有任何合适的大小。该区块可以存储单个位或整个文档。数据范围包括表单上的域和/或整个数据表单。在一些实施例中,链中的区块是存储在磁盘中的每个文件(例如,平面文件)。在比特币区块链通常存储为不断修改的单个平面文件的情况下,本系统的实施例为新区块生成额外的平面文件。区块链的链表方面由文件命名方案支持,其中文件名是动态创建的,以包含对在前区块的引用。区块的有效载荷或数据存储在平面文件中。
区块链20是不可篡改的。如果在一个节点上进行更改,强制的同步会导致该节点与区块保持不变的其他节点相一致。数据库中的数据经常因为许多合法(legitimate)原因而被更改。在一些实施例中,新数据或对旧数据的编辑被附加到未来区块32中的区块链20的顶部。在一些实施例中,合法数据编辑被附加到来自包含要编辑的数据的区块的分支区块链30。分支区块链30可被称为第二,第三,或第N区块链,或称为子链。分支区块链30具有在主区块链20上的创世区块。在一些实施例中,在主区块链20上的给定区块不是分支区块链30的创世区块的情况时,从而没有对相关数据的编辑存储在给定的区块中。该区块的分支区块链的存在表明对该数据的修改。
在图中描绘的第二区块26包括用户想要编辑的数据。对数据的编辑是在区块二-起始34中被代表,而不是在未来区块32空间中在主区块链20上生成新区块。区块二-起始34是分支区块链30中的第二个区块,它使用主区块链20的第二区块26作为新的创世区块。随着与第二区块26相关的数据被进一步编辑,这些编辑导致在未来编辑中将区块添加到分支区块链30到区块二数据空间36。
当读取与第二区块26相关联的数据时,系统只需要检查相关的分支区块链30(如果它存在的话),而不需要检查整个主区块链20以获取对该数据的任何引用。主区块链20用于代表所有数据实例,而分支区块链30代表给定数据实例的变更日志和当前状态。
在一些实施例中,区块中的数据被加密。根据用户的节点客户端副本存储解密给定区块中数据的密钥。在这些实施例中,并非节点客户端的所有实例都能够读取/写入所有区块。例如,在一些实施例中,客户端A可以读/写客户端A区块,客户端B可以读/写客户端B区块,但是客户端A不能读/写客户端B区块,反之亦然。
图4是示出客户端前端和对区块链的可访问性之间的关系的框图。给定用户操作数据操纵系统38的节点。数据操纵系统38包括引用存储在磁盘,云服务器,区块链网络对等节点的硬盘,或其他合适的存储介质或存储位置上的区块链20,30的用户前端UI 40。区块链20,30内的数据在本地系统存储器中被加密和解密,以供在前端UI 40中使用。本文中的“存储器”指的是随机存取存储器(“RAM”)或其他易失性存储结构。存储器区别于“磁盘”或“硬盘”存储,后者指的是非易失性存储。
前端UI 40的使用模糊了区块链20,30的存在,并且前端UI 40的用户不一定知道区块链的存在。区块链20,30是一种安全存储用户数据的数据结构。区块链20,30存在于数据操纵系统38的后端并且用户不直接与区块链交互。人类用户将无法弄清楚区块文件,因为每个区块文件包含了加密和哈希数据。因此,当前端UI 40用于访问可解密数据时,恶意行为者必须可以访问前端UI 40或本地系统存储器。
前端UI 40可针对给定用户或组织的目的进行自定义。无论用户/组织需要什么数据,前端UI 40都会相应地构建。在使用前端UI 40时,用户经由前端UI 40中呈现的任何域或输入界面输入新数据42。当被输入的新数据42仍在本地系统存储器中时,数据操纵系统38将该数据44转换为区块链20上的新区块46。新区块46被附加到区块链20的末端。新数据42在被用户输入之后在存储器中被实时加密。然后将加密数据被存储在新区块46中。在一些实施例中,区块被写入节点,服务器并同时被发送到云/备份驱动器。发送到服务器和备份驱动器的区块是使用允许端到端加密隧道的SSH传输完成的。
在用户寻找先前输入的数据46的情况下,数据操纵系统38触发从区块链20,30取出数据的过程,数据被解密并在前端UI 38上呈现给用户。通过使用每个区块的未加密用户ID部分取出数据。基于用户ID,系统确定将具有可解密数据的区块。基于前端UI 40的操作,数据取出过程对用户是透明的。数据的来源没有明确地向用户披露。从区块链20,30取出数据,并在存储器50中解密。一旦在存储器50中解密,明文数据在前端UI 40上被呈现给用户。
在用户对先前输入的数据48进行更改的情况下,这些更改在存储器52中进行,被加密并放入新区块46或基于被实现的实施例和/或正在被修改的数据类型的分支区块链30上的编辑区块54。在没有分支区块链30的一些实施例中,被编辑的数据进到新区块46并被附加到主区块链20。
通过使未加密的数据避开硬盘来维护数据安全。与传输未加密数据或存储未加密数据的系统相比,攻击者消耗数据的窗口要窄得多。
图5是示出将数据附加到区块链的方法的流程图。用户经由前端UI将数据附加到区块链。合法的附加只能通过前端UI由已输入登录凭证的登录用户发起。在一些实施例中,密码化密钥对执行了附加到区块链的能力。访问前端UI中的密钥对的程序代码在未登录的情况下无法执行。因此,在步骤502中,系统查明当前用户的凭证。可以通过多种方式检查凭证,包括多因素身份认证(MFA)。非穷举的因素列表可包括锁定的地理位置(例如,使用前端UI的设备的位置),锁定的第二设备,外部生存时间代码(external time-to-live codes),生物特征密钥,和登录凭证。
在步骤504中,本地节点通过登录信息与第一服务器建立安全隧道(例如,SSH和/或SCP加密隧道格式)。在一些实施例中,第一服务器可以被称为仲裁服务器。仲裁服务器被配置为在多个节点同时尝试附加到区块链时协调区块排序。在步骤506,本地节点通过前端UI接收输入数据并将数据作为变量存储在本地系统存储器中。通过访问存储器来在前端UI上显示新数据。明文形式的新数据不存储在本地节点的本地磁盘驱动器上。输入数据是附加到主区块链还是分支区块链随着数据取出过程而变化(下面将进一步详细讨论)。
基于本地节点的附加请求,在步骤508中,仲裁服务器生成新的区块文件或文件夹并将文件或文件夹名称与本地节点同步。仲裁服务器维护区块链上区块的线性排序。当仲裁服务器生成新区块文件时,仲裁服务器已将本地节点的请求建立到区块链上的给定位置。在这个阶段,新的区块文件或文件夹不包含任何有效载荷数据。在另一个实施例中,本地节点首先创建新的区块文件/文件夹,并从仲裁服务器获得命名组件,该命名组件建立引用到最末区块的链表。在新区块的生成过程中,最末区块可基于其他节点提交的区块而更改。新区块的名称在整个生成过程中动态进行修改,以更新到最末区块的引用。
无论附加到区块链的哪个部分,该过程都不会更改。不管新区块去哪里,在某个链上仍然有一个新区块。新区块的命名约定表示区块在区块链中的顺序。区块的名称是动态生成的,以适应同时尝试附加数据的多个节点。在一些实施例中,区块文件/文件夹命名约定包括将“_x”添加到名称的末尾,其中x是最末区块+“.bl”(例如,文件类型标示)。文件类型标示“.bl”是任意选择,可以使用任何文件扩展名。系统被配置为基于系统设计来辨别特定的文件类型标示。新区块使用最末区块编号命名。
在步骤510中,本地节点将最末区块与仲裁服务器同步,以通过比较最新哈希来确保节点具有最新副本。在步骤512,确定数据(identifying data)被插入到用于新区块的文件/文件夹中。确定数据包括:最末区块的哈希被插入到新区块文件中,登录用户的用户ID,新区块哈希,和时间/日期戳。确定数据可以在新区块文件的标题部分中或通过使用分隔符来表示。同步器可以在必要时重新排序区块(例如,由于同时提交)并确保最末的哈希完整性。使用最末区块整数计数器在附加过程期间更新文件名(在一些实施例中,更新还包括最末哈希)。该文件也被锁定为000的权限,以确保它不能被外部来源改变。在一些实施例中,本地节点基于每个接收到的区块的时间戳在本地对区块进行重新排序。
在一些实施例中,除了ID,最末哈希和哈希之外,区块的所有部分在区块中被加密。在新的区块系统中,日志信息也将被包含在区块本身中。区块包括ID(最末区块号(lastblock#)),先前区块的最末哈希,新哈希,时间/日期戳,创建该区块的登录用户名,组从属关系和所有要加密的新数据。
同步是由单独的软件工具(每个节点)发起的后台过程并且是自动的。不需要用户输入。当计算机重新启动/打开并在后台静默运行时,同步会在启动时加载,同步必要的缺失或新区块。同步使在没有互联网可用的期间创建的新区块能够被上传到服务器,云,从而可供其他节点使用。如果需要,按文件名中的区块编号重命名/重新排序会自动完成,并按时间/日期戳整理。在时间戳被加密的情况下,区块被解密以评估时间戳,然后使用新的区块排序编号重新加密和重命名。
在步骤514中,本地节点将明文新数据加密(在存储器中)并写入新区块文件/文件夹的有效载荷中的密文中。系统不加密标识数据,例如最末/新哈希,用户标识。在一些实施例中,时间/日期类似地未被加密。在一些实施例中,可以在加密之前将新数据写入新区块文件/文件夹的本地副本,反之亦然。以这种方式,新数据的明文不会在本地系统存储器之外存在超过加密明文所需的时间。
使用用户相关联的密钥执行加密。在一些实施例中,用户相关联的密钥是私钥或用户相关联的密码化密钥对。在一些实施例中,用于加密新数据的密钥是表示权限级别的单独无关密钥(a separate unrelated key)(例如,给定用户子类中的所有用户共享密钥)。根据访问数据所需的权限级别,处于用户层次结构的多个级别的用户可能具有多个密钥。适合的加密方法的示例包括SHA3-512位和AES-128或256位级加密。在一些实施例中,系统使用随机强口令和在三重嵌套阵列中查找的硬件密钥。在一些实施例中,在全部权限级别上使用相同的单一密钥,并且给定用户的“密钥”是指与区块编号的关联,系统将在该区块编号上实施单一密钥以为该用户解密。在那些实施例中,用户的密钥是协议权限的问题,而不是密码化关系。
在步骤516中,在本地节点和仲裁服务器之间再次同步最末区块以判定本地节点仍然具有最新版本。在步骤518,将新区块保存到本地节点上的磁盘。在步骤520,本地节点通过安全通信隧道将保存的新区块上传到仲裁服务器。不断检查完整性以确保最末区块确实是最末区块(例如,如果在保存过程中最末区块从60更改为61,则节点会将区块写入62,上传它,然后上传编号为62的新的最末区块文件)。同步器的存在是为了防止同时尝试写入两个相同编号的区块。
在步骤522中,新区块与其他节点和第二服务器同步。在一些实施例中,第二服务器可以被称为云服务器。在步骤524,向参与设备发出成功或失败消息。
区块在所有节点上近乎实时地被传输到服务器和云驱动器,该区块存在于服务器和备份驱动器上。节点将区块下载回来,然后将加密数据读入一个数组(在存储器中)。然后在数组中解密数据。最末区块被附加两次——一次是在区块数据被写入之前(在步骤512中),一次是在区块数据被写入之后(步骤516),以确保给定区块确实是最末区块。如果新的最末区块还没有在服务器/备份驱动器上,仲裁服务器会生成一个错误,并且有一小段等待时间,然后再试一次。同步器确保不存在重复的区块,如果任何两个节点恰好同时写入同一个区块(精确到毫秒),则执行重新排序-如果是这样,则使用时间/日期戳来确保顺序(再次,精确到毫秒)。最早的时间优先。
图6是对等网络58中的仲裁服务器56的框图。对等网络56包括多个分布式节点或对等节点60。对等节点60与存储在仲裁服务器58和云服务器62上的区块链20的副本同步。对于在对等网络58上操作的本地节点,对等节点60不必每个都必须存储区块链20的全部或最新版本。
在对等节点60与网络通信时,对等节点60的同步以常规间隔发生;然而,已经离线一段时间的给定节点60不一定具有最新版本的区块链20。在节点在一段时间不活动后重新加入网络的情况下,同步导致节点接收所有缺失的区块。在一些实施例中,对等节点60在对区块链数据执行周期性同步过程的同时在彼此之间直接通信并且从彼此之间获得更新的同步数据。
同步是在传统的基于加密货币的区块链中进行的共识的模拟过程。通过同步,区块链20,30的不可篡改性被强加。
图7是示出从区块链取出合法数据的方法的流程图。前端UI的用户没有明确意识到区块链的存在。基于前端UI的配置,可以通过多种方式对区块链上的数据进行数据请求。但是,最终,前端UI使用搜索功能进行操作。使用的搜索查询可以是用户生成的,也可以是基于配置和每个给定用例生成的界面。
与附加数据类似,用户必须登录到前端UI以便以明文形式取出数据。任何有权访问区块链的人都可以查看其中的数据,但数据以密文形式存储,对于那些没有通过前端UI(间接)访问的关联密钥的人来说是无法理解的。因此,在步骤702,本地节点以与图5的步骤502相同的方式验证用户凭证。
用户具有不同级别的权限。在一些实施例中,用户只能请求他们附加到区块链的数据。在一些实施例中,用户只能在他们的用户类别(或较低层的用户类别)内进行数据请求。用户级别可以是横向的——也就是说,即使是一个分支中的最高级别用户也不可有权访问横向(但较低)用户级别的用户附加的数据(例如,禁止CEO访问HR输入的关于机密的人事投诉的数据)。
在步骤704中,系统定义搜索查询。如果前端UI正欲填充特定的域,则搜索查询可由前端UI定义。具体而言,当在相关域中输入数据时,可以将独特代码附加到该数据,该数据直接对应于搜索查询。因此,搜索查询将仅由包括独特代码的数据来满足。查询的搜索结果将只有一个结果,并且UI元素会取出正确的数据。在一些实施例中,搜索查询不太特定,并且给定用户可正在使用其他技术在区块链中搜索想要的数据。
在步骤706中,本地节点加载可由该用户解密的区块链的部分并将明文存储在本地存储器中。加载到节点本地存储器中的区块可以是存储在本地磁盘上的本地副本,也可以是来自仲裁服务器或云服务器的本地副本。区块链中可以被给定用户解密的部分是基于记录在每个区块中的未加密用户ID来表示的。
在步骤708中,本地节点解密存储在存储器中的区块。解密使用本地节点持有并由活动用户授权的适合的密钥。区块链的解密可以并行发生,因为每个区块都有分别的文件。加密不是区块链广度的(例如,区块链的每个字符),而是以每个区块为基础执行。
在步骤710中,将搜索查询应用于解密区块的明文。在区块链变得太大而用户无法完全存储在存储器中的情况下,则可以在每个区块被解密时对其应用搜索查询。与搜索查询一起操作的搜索引擎低于阈值置信度或给定区块的明文上的相关性分数的情况下,搜索节点从存储器中丢弃区块。与所述技术相对地,数据库通常对其整体进行加密或解密,而不是如本文所述的逐个条目的基础上。区块级别的加密/加密更是更离散的,并且能够实现更高效的数据处理。此外,数据库中的每个数据元素往往具有更大的数据大小,因此在算法上和各数据元素上都更加繁冗复杂。
阈值置信度基于所应用的搜索算法。在搜索引擎使用精确匹配(例如,寻找特定指针代码)的情况下,在精确匹配以下的明文区块可被丢弃。搜索引擎可以利用关键字搜索或知识图谱,其中结果被给予置信度或相关性评级,该置信度或相关性评级与给定结果与初始关键字搜索的关联程度或给定结果基于知识图谱的相关程度有关联。无论使用哪种搜索引擎样式,都会对每个区块中的结果应用阈值过滤器。如果给定区块不包含任何高于阈值置信度或相关性分数的明文内容,则几乎没有理由将该数据保留在有限的存储器空间中。因此,低置信度/相关度分数的明文数据被丢弃。
当一个区块被丢弃时,新区块可以被读入存储器,被解密和被搜索(搜索的结果被丢弃或在适用时保留在存储器中)。“丢弃”是指清除易失性存储器中的相关空间。当解密的区块被丢弃时,原始区块仍以加密形式存储在非易失性存储中。但是,明文版本不在了。在步骤712,通过前端UI呈现搜索结果。
图8是数据录入界面和相关区块链的屏幕截图。在一些实施例中,区块链数据结构在很大程度上对普通用户是不可见的。即域代表的数据与区块链数据结构中的加密数据的连接不需要通过用户界面显示给用户来实现用户界面的功能。例如,图中描绘的是信用卡应用的数据录入界面800。当用户将数据输入到信用卡申请表804的域802中时,该数据被转换为加密区块806。在一些实施例中,为每个域802生成新区块,并且每次用户浏览离开该域(例如,点击另一个域)时生成新区块。
响应于域802中的更改而生成新区块。域802中的更改可以经由用户界面应用来检测。具体来说,输入界面确定已基于存储器中更改的数据进行了更改(例如,击键检测或作为更改存储器中数据的过程的一部分)。或者,可以基于对存储器中的当前数据进行加密并与非易失性存储中的加密区块中的数据进行比较来检测变化。如果存在差异,则数据已被更改并且节点生成新区块。
在一些实施例中,不是为每个域802生成单个区块,而是将单个区块用于整个表单804。除了用户输入的数据之外,查看器应用可以自动包括指针数据,该指针数据用于表示用户输入的数据与哪些域相连接。
在图的右侧,区块链数据结构的一部分被描绘为808。所示的区块806随着用户在应用的用户界面上完成信用卡申请表格而更新。值得注意的是,区块链数据结构的描绘的左侧上的用户ID栏810表示大量用户同时添加到区块链。每个都在执行独立的数据录入任务。
图9是从区块链绘制的区块链查看器应用900的屏幕截图。屏幕截图中描绘的是区块链查看器应用900的实施例的查看页面。所描绘的饼图和表格示出来自区块链数据结构的结构化数据的示例,其表示信用卡账户在全国范围内和在时间序列上的分布。
该示例专门调用大量客户账户的信用卡数据并将数据显示在单个位置。访问页面时会自动取出所描绘的数据。数据的每种代表形式都是从区块链数据结构的相关部分提取的源数据的图形转换。如果应用的给定用户具有解密区块链相关部分所需的权限,这些部分将被抽取到存储器中,解密,然后应用于查看器应用作为功能的输入,该功能以特定方式显示记录数据。
从区块链数据结构调用的数据是一组相对较小的平面文件,因此调用该数据很快。数据的功能和代表方式绑定在查看器应用本身中。与许多数据库软件应用不同,其中存储的数据包括繁冗复杂的数据处理代码(例如,应如何键入数据,如何呈现数据等),平面文件中的数据处理由查看器应用本身来执行。将处理从数据本身转到查看器应用使每个数据元素更加轻量化,并减少了调用和呈现数据的整体处理时间/负载。
图10是示出可以代表运行上述任何方法/算法的系统的处理设备1000的示例的高层级框图。系统可以包括两个或更多个处理设备,如图10所代表的,它们可以经由一个网络或多个网络相互耦接。网络可以被称为通信网络。
在所示实施例中,处理设备1000包括一个或多个处理器810,数字存储1011,通信设备1012,和一个或多个输入/输出(I/O)设备1013,全部通过互连1014相互耦接。互连1014可以是或包括一个或多个导电迹线,总线,点对点连接,控制器,扫描仪,适配器和/或其他常规连接设备。每个处理器1010可以是或包括例如一个或多个通用可编程微处理器或微处理器核,微控制器,专用集成电路(ASIC),可编程门阵列等,或此类设备的组合。处理器1010控制处理设备1000的整体操作。数字存储1011可以是或包括一个或多个物理存储设备,其可以是以下形式:随机存取存储器(RAM),只读存储器(ROM)(其可以是可擦除和可编程的),闪存,微型硬盘驱动器,或其他合适类型的存储设备,或此类设备的组合。数字存储1011可以存储数据和配置处理器1010以根据上述技术执行操作的指令。通信设备1012可以是或包括例如以太网适配器,电缆调制解调器,Wi-Fi适配器,蜂窝收发器,蓝牙收发器等,或它们的组合。取决于处理设备1000的具体性质和用途,I/O设备1013可以包括例如显示器(其可以是触摸屏显示器),音频扬声器,键盘,鼠标或其他指点设备,麦克风,相机等设备。
除非与物理可能性相反,预期(i)上述方法/步骤可以任何次序和/或任何组合执行,并且(ii)相应实施例的组件可以任何组合方式。
上述技术可以通过由软件和/或固件编程/配置的可编程电路来实现,或者完全通过专用电路来实现,或者通过这些形式的组合来实现。这种专用电路(如果有的话)可以是例如一个或多个专用集成电路(ASIC),可编程逻辑器件(PLD),现场可编程门阵列(FPGA)等的形式。
实现本文所述的技术的软件或固件可以被存储在机器可读存储介质上并且可以由一个或多个通用或专用可编程微处理器执行。本文使用的术语“机器可读介质”包括可以以机器可访问的形式存储信息的任何机制(机器可以是,例如,计算机,网络设备,蜂窝电话,个人数字助理(PDA),制造工具,具有一个或多个处理器的任何设备等)。例如,机器可访问介质包括可记录/不可记录介质(例如,只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备等),等等。
与处理设备1000相关联的物理和功能组件(例如,设备,引擎,模块,和数据储存库等)可以被实现为电路,固件,软件,其他可执行指令,或它们的任何组合。例如,功能组件可以以专用电路的形式,以一个或多个被适合地编程的处理器,单板芯片,现场可编程门阵列,由可执行指令配置的通用计算设备,由可执行指令配置的虚拟机,由可执行指令配置的云计算环境,或它们的任何组合的形式实现。例如,所描述的功能组件可以被实现为有形存储的存储器上的指令,该有形存储的存储器能够由处理器或其他集成电路芯片(例如,软件,软件库,应用接口等)执行。有形存储的存储器可以是计算机可读数据存储器。有形存储的存储器可以是易失性或非易失性存储器。在一些实施例中,易失性存储器在它不是暂时性信号的意义上可以被认为是“非暂时性的”。图中所述的存储空间和存储器也可以用有形存储的存储器来实现,包括易失性或非易失性存储器。
注意,除非在上面另外说明或除非任何这样的实施例在功能和/或结构上会相互排斥,任何和所有上述实施例都可以相互组合。
尽管已经参照特定示例性实施例描述了本发明,但是应当认识到,本发明不限于所描述的实施例,而是可以在所附权利要求的精神和范围内通过修改和变更来实践。因此,说明书和附图应被视为说明性意义而非限制性意义。
Claims (21)
1.一种数据存储方法,包括:
经由本地区块链节点上的输入界面接收新数据;
将所述新数据以明文形式存储在本地存储器中,同时显示在用户界面上;
将所述新数据作为加密密文写入本地非易失性存储,作为区块链数据结构的本地副本上的新区块;以及
将所述新区块传输到对等网络,以将其附加到整个所述对等网络中的相应区块链数据结构。
2.如权利要求1所述的方法,其中所述本地区块链节点上的每个区块包括平面文件,该平面文件包括标示所述本地区块链节点中的区块顺序的命名约定,所述方法还包括:
通过所述对等网络在所述本地区块链节点处接收第二新区块;以及
基于所述命名约定在所述本地区块链节点上对所述第二新区块进行排序。
3.如权利要求2所述的方法,其中所述本地区块链节点上的每个区块还包括时间戳,所述方法还包括:
响应于所述新区块和所述第二新区块具有由所述命名约定标示的匹配的区块顺序,由所述本地区块链节点使用所述时间戳按创建顺序对所述新区块和所述第二新区块进行排岐;以及
基于所述命名约定重命名所述新区块或所述第二新区块,该命名约定象征哪个区块是在另一个区块之后创建的。
4.如权利要求1所述的方法,其中所述本地区块链节点上的每个区块包括平面文件,该平面文件包括标示所述本地区块链节点中的区块顺序的命名约定,所述方法还包括:
离线一段时间后,由所述本地区块链节点连接到所述对等网络;以及
响应于所述连接,由所述本地区块链节点从最新的区块开始将所述区块链数据结构的副本与所述对等网络同步。
5.如权利要求4所述的方法,其中所述写入和传输步骤在完成所述同步之前执行。
6.如权利要求1所述的方法,还包括:
在所述本地区块链节点上执行区块链查看应用,所述区块链查看应用被配置为验证第一用户的一组用户登录凭证,所述第一用户具有第一用户密钥;
确定可由所述第一用户密钥解密的所述区块链数据结构的子集;
将所述区块链数据结构的所述子集加载到所述本地区块链节点上的本地存储器中;以及
将本地存储器中的所述区块链的所述子集解密为明文。
7.如权利要求6所述的方法,还包括:
由所述区块链查看应用确定所述本地区块链节点的物理位置,从而可以通过所述第一用户密钥解密的所述区块链数据结构的所述子集取决于所述本地区块链节点的所述物理位置是否落入预定地理围栏内。
8.如权利要求6所述的方法,还包括:
经由区块链查看应用的图形用户界面接收来自所述第一用户的搜索查询;
将所述搜索查询应用于所述明文;以及
由区块链查看应用将存储器中的搜索结果显示给所述第一用户。
9.如权利要求6所述的方法,还包括:
经由所述区块链查看应用显示包括数据域指针的图形用户界面;以及
从所述本地存储器中的所述区块链数据结构的解密子集中填入数据域指针。
10.一种安全数据取出方法,包括:
在本地区块链节点上维护区块链数据结构的副本,其中所述区块链数据结构包括按顺序相互链接的一组加密数据区块;
在本地区块链节点上执行区块链查看应用,所述区块链查看应用被配置为验证第一用户的一组用户登录凭证,所述第一用户具有第一用户密钥;
确定可由所述第一用户密钥解密的所述区块链数据结构的子集;
将所述区块链的所述子集加载到所述本地区块链节点上的本地存储器中;以及
将本地存储器中的所述区块链的所述子集解密为明文。
11.如权利要求10所述的方法,还包括:
由所述区块链查看应用确定所述本地区块链节点的物理位置,其中可由所述第一用户密钥解密的所述区块链数据结构的所述子集取决于所述本地区块链节点的所述物理位置是否落入预定地理围栏内。
12.如权利要求10所述的方法,还包括:
经由区块链查看应用的图形用户界面接收来自所述第一用户的搜索查询;
将所述搜索查询应用于所述明文;以及
由区块链查看应用将存储器中的搜索结果显示给所述第一用户。
13.如权利要求10所述的方法,还包括:
经由所述区块链查看应用显示包括数据域指针的图形用户界面;以及
从本地存储器中的所述区块链数据结构的解密子集中填入所述数据域指针。
14.一种数据存储系统,包括:
在本地区块链节点上实现的处理器;
包括区块链数据结构的副本的非易失性数据存储,其中所述区块链数据结构的数据元素被加密;以及
包含指令的存储器,当该指令被执行时使所述处理器:
在所述本地区块链节点上接收新数据;
将所述新数据以明文形式存储在所述存储器中,同时显示在用户界面上;
将所述新数据作为加密密文将所述非易失性数据存储作为新区块写入所述区块链数据结构的所述副本;以及
将所述新区块传输到对等网络,以将其附加到整个所述对等网络中的相应区块链数据结构。
15.如权利要求14所述的系统,其中所述区块链数据结构上的每个区块包括平面文件,该平面文件包括标示所述本地区块链节点中的区块顺序的命名约定,所述方法还包括:
通过所述对等网络在所述本地区块链节点处接收第二新区块;以及
基于所述命名约定对所述非易失性数据存储中的所述第二新区块进行排序。
16.如权利要求15所述的系统,其中所述本地区块链节点上的每个区块还包括时间戳,所述存储器还包括指令,当该指令被执行时使所述处理器:
响应于所述新区块和所述第二新区块具有由所述命名约定标示的匹配的区块顺序,由所述本地区块链节点使用所述时间戳按创建顺序对所述新区块和所述第二新区块进行排岐;以及
基于所述命名约定重命名所述新区块或所述第二新区块,该命名约定象征哪个区块是在另一个区块之后创建的。
17.如权利要求14所述的系统,其中所述本地区块链节点上的每个区块包括平面文件,该平面文件包括标示所述本地区块链节点中的区块顺序的命名约定,所述存储器还包括指令,当该指令被执行时使所述处理器:
离线一段时间后,由所述本地区块链节点连接到所述对等网络;以及
响应于所述连接,由所述本地区块链节点从最新的区块开始将所述区块链数据结构的副本与所述对等网络同步。
18.如权利要求14所述的系统,所述存储器还包括指令,当该指令被执行时使所述处理器:
在所述本地区块链节点上执行区块链查看应用,所述区块链查看应用被配置为验证第一用户的一组用户登录凭证,所述第一用户具有第一用户密钥;
确定可由所述第一用户密钥解密的所述区块链数据结构的子集;
将所述区块链数据结构的所述子集加载到所述本地区块链节点的所述存储器中;以及
将所述存储器中的所述区块链数据结构的所述子集解密为明文。
19.如权利要求18所述的系统,还包括:
位置传感器,其被配置为经由GPS或IP追踪确定所述本地区块链节点的物理位置,从而由所述第一用户密钥可解密的所述区块链数据结构的所述子集取决于所述本地区块链节点的所述物理位置是否落入预定地理围栏内。
20.如权利要求18所述的系统,所述存储器还包括指令,当该指令被执行时使所述处理器:
经由区块链查看应用的图形用户界面接收来自所述第一用户的搜索查询;
将所述搜索查询应用于所述明文;以及
由区块链查看应用将所述存储器中的搜索结果显示给所述第一用户。
21.如权利要求18所述的系统,所述存储器还包括指令,当该指令被执行时使所述处理器:
经由所述区块链查看应用显示包括数据域指针的图形用户界面;以及
从所述存储器中的所述区块链数据结构的解密子集填入所述数据域指针。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062985129P | 2020-03-04 | 2020-03-04 | |
US62/985,129 | 2020-03-04 | ||
PCT/US2021/020947 WO2021178719A1 (en) | 2020-03-04 | 2021-03-04 | Cryptographic data entry blockchain data structure |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115769206A true CN115769206A (zh) | 2023-03-07 |
Family
ID=77555882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180033346.XA Pending CN115769206A (zh) | 2020-03-04 | 2021-03-04 | 密码化数据录入区块链数据结构 |
Country Status (11)
Country | Link |
---|---|
US (2) | US11314885B2 (zh) |
EP (1) | EP4115315A4 (zh) |
JP (1) | JP2023517049A (zh) |
KR (1) | KR20230034931A (zh) |
CN (1) | CN115769206A (zh) |
AU (1) | AU2021230365A1 (zh) |
BR (1) | BR112022017833A2 (zh) |
CA (1) | CA3170757A1 (zh) |
IL (1) | IL296201A (zh) |
MX (1) | MX2022011023A (zh) |
WO (1) | WO2021178719A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4115315A4 (en) * | 2020-03-04 | 2024-02-28 | Rubidex, LLC | CRYPTOGRAPHIC DATA INPUT BLOCKCHAIN DATA STRUCTURE |
WO2022204495A2 (en) | 2021-03-25 | 2022-09-29 | Rubidex, LLC | Cryptographic data entry and transmission of sensor data |
US12050510B2 (en) * | 2021-09-24 | 2024-07-30 | Micro Focus Llc | Lifecycle hardware, firmware, and software tracking using blockchain |
CN114520747B (zh) * | 2022-04-21 | 2022-08-30 | 山东省计算中心(国家超级计算济南中心) | 一种以数据为中心的数据安全共享系统和方法 |
US11954074B2 (en) * | 2022-04-28 | 2024-04-09 | Micro Focus Llc | Method and apparatus for efficient file/folder synchronization |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170085555A1 (en) * | 2015-07-14 | 2017-03-23 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
US10303887B2 (en) * | 2015-09-14 | 2019-05-28 | T0.Com, Inc. | Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree |
US10861014B2 (en) * | 2015-10-28 | 2020-12-08 | Qomplx, Inc. | Data monetization and exchange platform |
US11595361B2 (en) * | 2015-10-28 | 2023-02-28 | Qomplx, Inc. | Geolocation-aware, cyber-enabled inventory and asset management system with automated state prediction capability |
US10652219B2 (en) * | 2015-10-28 | 2020-05-12 | Qomplx, Inc. | System and methods for dynamic geospatially-referenced cyber-physical infrastructure inventory and asset management |
US11805106B2 (en) * | 2015-10-28 | 2023-10-31 | Qomplx, Inc. | System and method for trigger-based scanning of cyber-physical assets |
US10291627B2 (en) * | 2016-10-17 | 2019-05-14 | Arm Ltd. | Blockchain mining using trusted nodes |
US20190012595A1 (en) * | 2017-07-07 | 2019-01-10 | Pointr Data, Inc. | Neural network consensus using blockchain |
US10296248B2 (en) * | 2017-09-01 | 2019-05-21 | Accenture Global Solutions Limited | Turn-control rewritable blockchain |
US10469248B2 (en) * | 2017-10-17 | 2019-11-05 | Amrican Express Travel Related Services Company, Inc. | API request and response balancing and control on blockchain |
WO2019090342A1 (en) * | 2017-11-06 | 2019-05-09 | Velo Holdings Limited | Blockchain system |
US11468046B2 (en) * | 2018-01-17 | 2022-10-11 | Geeq Corporation | Blockchain methods, nodes, systems and products |
CN108509523B (zh) * | 2018-03-13 | 2021-06-25 | 深圳前海微众银行股份有限公司 | 区块链数据的结构化处理方法、设备及可读存储介质 |
CN108629027B (zh) * | 2018-05-09 | 2023-08-01 | 深圳壹账通智能科技有限公司 | 基于区块链的用户数据库重建方法、装置、设备及介质 |
US10846268B2 (en) * | 2018-06-08 | 2020-11-24 | Saphyre, Inc. and Gabino M. Roche Jr. | Technologies for file sharing |
US11165756B2 (en) * | 2018-06-11 | 2021-11-02 | Fujitsu Limited | Delayed-access encryption for blockchain field |
US20200026834A1 (en) | 2018-07-23 | 2020-01-23 | One Kosmos Inc. | Blockchain identity safe and authentication system |
CN110727731B (zh) | 2019-09-05 | 2021-12-21 | 创新先进技术有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN110598456B (zh) | 2019-09-24 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、电子设备以及存储介质 |
EP4115315A4 (en) * | 2020-03-04 | 2024-02-28 | Rubidex, LLC | CRYPTOGRAPHIC DATA INPUT BLOCKCHAIN DATA STRUCTURE |
-
2021
- 2021-03-04 EP EP21763607.5A patent/EP4115315A4/en active Pending
- 2021-03-04 US US17/192,776 patent/US11314885B2/en active Active
- 2021-03-04 CA CA3170757A patent/CA3170757A1/en active Pending
- 2021-03-04 MX MX2022011023A patent/MX2022011023A/es unknown
- 2021-03-04 CN CN202180033346.XA patent/CN115769206A/zh active Pending
- 2021-03-04 IL IL296201A patent/IL296201A/en unknown
- 2021-03-04 BR BR112022017833A patent/BR112022017833A2/pt not_active Application Discontinuation
- 2021-03-04 AU AU2021230365A patent/AU2021230365A1/en active Pending
- 2021-03-04 KR KR1020227034342A patent/KR20230034931A/ko unknown
- 2021-03-04 WO PCT/US2021/020947 patent/WO2021178719A1/en active Application Filing
- 2021-03-04 JP JP2022553613A patent/JP2023517049A/ja active Pending
-
2022
- 2022-04-25 US US17/728,744 patent/US20230039531A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021178719A1 (en) | 2021-09-10 |
BR112022017833A2 (pt) | 2022-11-01 |
CA3170757A1 (en) | 2021-09-10 |
US20210279358A1 (en) | 2021-09-09 |
EP4115315A1 (en) | 2023-01-11 |
KR20230034931A (ko) | 2023-03-10 |
AU2021230365A1 (en) | 2022-10-20 |
JP2023517049A (ja) | 2023-04-21 |
IL296201A (en) | 2022-11-01 |
US20230039531A1 (en) | 2023-02-09 |
US11314885B2 (en) | 2022-04-26 |
MX2022011023A (es) | 2023-03-21 |
EP4115315A4 (en) | 2024-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11720711B2 (en) | System and method for interaction object management in a blockchain environment | |
US20200374126A1 (en) | Method for storing an object on a plurality of storage nodes | |
US20200257775A1 (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) | 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム | |
EP3070630B1 (en) | Data system and method | |
US10410018B2 (en) | Cryptographic assurances of data integrity for data crossing trust boundaries | |
US20190207751A1 (en) | Blockchain enterprise data management | |
JP2023065633A (ja) | ブロックチェーンベースの暗号通貨のためのトークンを検証する、コンピュータにより実行される方法及びシステム | |
CN114365133A (zh) | 利用秘密共享和对读取的共识在元数据驱动的区块链上实现被遗忘的权利的系统或方法 | |
US11314885B2 (en) | Cryptographic data entry blockchain data structure | |
US20190207750A1 (en) | Blockchain enterprise data management | |
KR20200011435A (ko) | 파라미터화 가능 스마트 계약 | |
CN114651248A (zh) | 用于经许可的区块链的随机节点选择 | |
JP2023513846A (ja) | プラットフォームサービスの検証 | |
TW202139127A (zh) | 用於與區塊鏈相關聯之服務平台之運算服務 | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
JP2023530594A (ja) | 分散型データベースにおける許可されたイベント処理 | |
US20220399988A1 (en) | Linking blockchain operations | |
CN117136527A (zh) | 用于区块链实现的数据应用程序中的签名验证的改进方法和系统 | |
US20240171414A1 (en) | Blockchain-based electronic document vault | |
US12020241B1 (en) | Systems and methods for multi-entity blockchain-based event break prevention | |
US20220067028A1 (en) | Trustless operations for blockchain networks | |
US20220116204A1 (en) | Probabilistic shared secret validation | |
CN118235154A (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 |