CN112437922A - 分布式数据记录 - Google Patents
分布式数据记录 Download PDFInfo
- Publication number
- CN112437922A CN112437922A CN201980006566.6A CN201980006566A CN112437922A CN 112437922 A CN112437922 A CN 112437922A CN 201980006566 A CN201980006566 A CN 201980006566A CN 112437922 A CN112437922 A CN 112437922A
- Authority
- CN
- China
- Prior art keywords
- transaction
- digital
- record
- digital record
- public key
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- 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/3247—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 digital signatures
-
- 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/1805—Append-only file systems, e.g. using logs or journals to store data
-
- 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/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
实施例创建并验证表示资产的数字记录。实施例获得与数字记录的创建者对应的第一公钥和第一私钥,并生成用于数字记录的一个或多个参数,其中参数中的第一参数与数字记录的交易相关。实施例生成用于数字记录的一个或多个规则,其中规则中的第一规则与第一参数对应并约束交易。使用第一私钥,实施例计算第一公钥、参数和规则的全体的第一数字签名,并创建包括第一公钥、参数、规则和第一数字签名的第一数字记录。
Description
技术领域
一个实施例一般而言涉及数据记录,并且具体地涉及分布式数据记录和电子账本。
背景技术
传统上,为了跟踪电子记录或合同,集中式数据库跟踪所有资产、所有者、交易等。数字资产或数据记录,诸如电子消费品、代币(token)、积分、货币、产权(title)、活动票据、凭据、优惠券等通常需要以点对点的方式进行转让,从而使人们能够使用不受一方控制的可信平台直接协商所有权的资产转让。包括去集中化的和公共的账本的区块链提供了一种解决方案,但由于许多节点必须存储完整的交易历史,因此面临特定挑战,诸如高的计算成本和有限的存储空间。因此,需要大量存储空间的项目最终需要集中化,从而使公共的区块链完全不使用。
发明内容
实施例创建并验证表示资产的数字记录。实施例获得与数字记录的创建者对应的第一公钥以及第一私钥,并生成用于数字记录的一个或多个参数,其中这些参数中的第一参数与数字记录的交易相关。实施例生成用于数字记录的一个或多个规则,其中这些规则中的第一规则与第一参数对应并对交易进行约束。通过使用第一私钥,实施例计算第一公钥、参数和规则的全体的第一数字签名,并创建包括第一公钥、参数、规则和第一数字签名的第一数字记录。
附图说明
图1是可以实现本发明的实施例的元件的概览图。
图2是根据本发明的实施例的计算机服务器/***的框图。
图3A是根据一个实施例的当创建新的电子记录/数字证书时,图2的分布式数据记录模块的功能的流程图。
图3B是根据一个实施例的当与电子记录执行交易时,图2的分布式数据记录模块的功能的流程图。
图4是根据一个实施例的在核实(verify)电子记录时,图2的分布式数据记录模块的功能的流程图。
图5是根据一个实施例的当使用交易规则核实电子记录时,图2的分布式数据记录模块的功能的流程图。
图6是根据一个实施例的当由第三方验证器(validator)来验证记录时,图2的分布式数据记录模块的功能的流程图。
图7是根据一个实施例的当创建受制于具有附加安全性的第三方验证器的新记录时,图2的分布式数据记录模块的功能的流程图。
图8是根据一个实施例的当将参数拆分到多个子记录中时,图2的分布式数据记录模块的功能的流程图。
图9是根据一个实施例的当将拆分交易记录在验证器储存库(repository)中时,图2的分布式数据记录模块的功能的流程图。
具体实施方式
实施例涉及由独立文件而不是中央数据库组成的账本数据库。实施例提供了一种数据记录或证书的***,其中信息不保存在集中式数据库实例中,而是分别维护在单独的设备上,并且每个用户负责管理其自己的记录。用户是他们所拥有的各个记录的保管人,并且可以能够以可以被所有参与者信任的方式对他们的记录执行数据更新。
在实施例中,数据记录由数据的各个所有者/用户中的每个所有者/用户在其相应的设备中维护。对应于数据记录的每个所有者并且被用于存储该数据记录的设备可以包括例如计算机设备、智能电话、通用串行总线(“USB”)存储棒、电子邮件或在线存储、或者甚至打印到纸上或保存为二维快速响应(“QR”)码图像的数据记录。如下面详细公开的,实施例中的每个数据记录本身包含足够的信息以传递由传统集中式数据库实例所提供的相同特征当中的一些,诸如:(1)确保记录的来源(origin)是真实的;(2)强制执行哪些更新被允许和不被允许;(3)证明记录的当前状态(即,每个记录参数的当前值,包括记录的当前所有者);(4)维护交易的历史,以证明当前状态是如何变成这样的;以及(5)提供安全性,使得未经授权的用户不能进行记录更改。
在实施例中,每个资产各自跟踪自身,而不是使用昂贵的记录存储***(诸如在每个节点处被重复的公共数据库(即,已知的区块链***))。在实施例中,数据记录自由地在世界流通,管理它们自己的所有权和状态,而不是数据库节点管理所有记录信息和交易历史(诸如使用区块链的情况)。
例如,在实施例中,如果Alice向Bob发送数字“钱币”(即,经数字签名的计算机文件),那么该钱币(或文件)在其自身内保持该钱币自己的签名历史,从而证明其真实来源和所有权。无论所讨论的数字资产是否是钱币、代币、产权、票据、凭据、优惠券等的总和,每个个别资产本身都携带其自己的经数字签名的历史,以使该数字资产/记录自己为自己发言而无需将交易细节记录在主数据库中。资产的下落对公众可能是完全未知的。对于谁当前拥有什么资产,可以不存在公共的知识。相反,可能由其所有者保留的文件才是用来跟踪资产的东西。但是,在实施例中,加密使其极其难以“作弊”。通过实施例,用户是他们自己的账本的保管人,但是他们不能对它进行篡改,或者以不被允许的方式修改它的值。
实施例是使用数字签名来实现的,诸如椭圆曲线数字签名算法(“ECDSA”),其中记录创建和交易由秘密私钥签名,并由相关的公钥进行核实。记录被创建并且通过其创建者的私钥被签名,从而留下可以被用于核实该签名的签名串。下一个交易或记录更新将再次被签名,从而产生如下的记录签名,即,该记录签名包括先前的签名作为经签名的内容的一部分。每次记录被更新时,它将再次产生包含所有先前的签名的记录签名,从而在签名之上创建签名链,使得如果历史的任何一部分被篡改,那么在核实期间签名将不匹配期望值。此外,记录还包括描述哪些更新被允许、哪些更新被禁止或哪些更新被需要的元数据。这些用元数据编写的规则也受签名保护(即,如果规则文本被更改,那么签名将不会通过核实)。实施例是新颖的,部分因为记录的核实既需要签名的核实又需要对任何预定义的交易规则的符合性的核实。仅当两个核实均通过时,记录才为真。
图1是可以实现本发明的实施例的元件的概览图。实施例涉及可以通过网络110在连续或间歇的基础上彼此通信的各个设备101-108。每个设备101-108是任何类型的设备,包括用于执行指令(或硬件实现方式)的处理器/控制器、用于存储文件的存储设备以及用于与其它设备通信的通信设备。设备101-108可以包括台式或膝上型计算机、服务器、智能电话、平板电脑、手表等。网络110可以是任何类型的通信机制,诸如互联网或局域网或不同网络的组合。在下面公开的使用第三方验证器的实施例中,图1的设备之一用作验证器。
图2是根据本发明的实施例的计算机服务器/***10的框图。虽然被示出为单个***,但是***10的功能可以被实现为分布式***。此外,本文公开的功能可以在可以通过网络耦合在一起的单独的服务器或设备上实现。此外,可以不包括***10的一个或多个部件。多个***10可以为图1的所有元件提供功能。
***10包括用于传送信息的总线12或其它通信机制,以及耦合到总线12以处理信息的处理器22。处理器22可以是任何类型的通用或专用处理器。***10还包括用于存储信息和将由处理器22执行的指令的存储器14。存储器14可以包括随机存取存储器(“RAM”)、只读存储器(“ROM”)、诸如磁盘或光盘的静态存储器或任何其它类型的计算机可读介质的任意组合。***10还包括通信设备20,诸如网络接口卡,以提供对网络的访问。因此,用户可以直接或通过网络远程地或任何其它方法与***10接口。
计算机可读介质可以是处理器22可以访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质以及通信介质。通信介质可以包括计算机可读指令、数据结构、程序模块或调制数据信号(诸如载波或其它传输机制)中的其它数据,并且包括任何信息传递介质。
处理器22还经由总线12耦合到显示器24,诸如液晶显示器(“LCD”)。键盘26和光标控制设备28(诸如计算机鼠标)还耦合到总线12,以使用户能够与***10接口。
在一个实施例中,存储器14存储软件模块,这些软件模块当由处理器22执行时提供功能。这些模块包括操作***15,该操作***15为***10提供操作***功能。这些模块还包括分布式数据记录模块16,该数据记录模块16为相应设备提供分布式数据记录功能,以及本文公开的所有其它功能。***10可以是更大***的一部分。因此,***10可以包括一个或多个附加功能模块18以包括附加功能,诸如基于交易的***、数字钱包或利用数字资产的任何其它类型的应用。文件存储设备或数据库17耦合到总线12,以为模块16和18以及数据记录文件和任何其它必要的数据(诸如数字签名)提供集中式存储。在一个实施例中,数据库17是关系数据库管理***(“RDBMS”),其可以使用结构化查询语言(“SQL”)来管理所存储的数据。
在一个实施例中,特别是当在单个设备处存在大量分布式文件时,数据库17被实现为内存中(in-memory)数据库(“IMDB”)。IMDB是一种数据库管理***,其主要依赖于用于计算机数据存储的主内存。它与采用盘存储机制的数据库管理***形成对比。主内存数据库比盘优化的数据库快,因为内存访问比盘访问快,内部的优化算法更简单并且执行更少的CPU指令。访问内存中的数据减少查询数据时的搜寻时间,这提供了比盘更快且更可预测的性能。
在一个实施例中,当被实现为IMDB时,数据库17是基于分布式数据网格来实现的。分布式数据网格是一种***,其中一组计算机服务器一起在一个或多个集群中一起工作,以管理分布式或集群环境中的信息和相关操作,诸如计算。分布式数据网格可以被用于管理跨服务器共享的应用对象和数据。分布式数据网格提供低响应时间、高吞吐量、可预测的可伸缩性、连续可用性和信息可靠性。在特定示例中,分布式数据网格(诸如,例如来自Oracle公司的“Oracle Coherence”数据网格)在内存中存储信息以实现更高的性能,并采用冗余来保持该信息的副本跨多个服务器同步,从而确保***的弹性并在服务器发生故障时确保数据的持续可用性。
在一个实施例中,***10是包括用于企业组织的应用或分布式应用的集合的计算/数据处理***,并且还可以实现物流、制造和库存管理功能。应用和计算***10可以被配置为与基于云的联网***、软件即服务(“SaaS”)体系架构或其它类型的计算解决方案一起操作或被实现为基于云的联网***、软件即服务体系架构或其它类型的计算解决方案。
如所公开的,实施例提供了分布式资产/记录,其中每个分布式资产自己为自身发言并且还携带元数据,该元数据控制什么类型的交易是被允许的。这与依赖共享账本的区块链***形成对比,共享账本用作所有资产(而不是仅一个资产)的完整账本并被每个用户存储。在实施例中,数字资产用作分布式数据记录,并且第三方验证器被用于进行验证。
分布式数字数据记录
数字记录、数字资产或“证书文件”证明某人拥有某物。在本发明的实施例的上下文中,证书文件表示资产,诸如票据、钱币、数据、凭据、数字艺术、电子设备、有形物体或者甚至服务。证书文件包含与秘密私钥相关联的所有者地址,该私密私钥能够对该地址进行签名。资产被表示为数字签名链。交易通过以下方式被记录:其所有者以数字方式对先前的交易的散列和下一个状态的参数进行签名,并追加公钥,从而创建可核实的链。在基于区块链的账本中,该签名链被记录在区块链服务器上。作为对照,在实施例中,在用户设备上,每个证书将该签名链携带在自身中。
作为示例,Alice可以发起一组100个真实性证书,这些证书将提供给她制作的100个定制吉他的购买者。Bob可以发起200,000个“BobCoins”的池。Carol可以发起用于集会的食品和饮料票据的池。这些资产将作为证书文件而被点对点地交易。通过使用钱包应用和QR码,可以获取、使用、赠与或出售这些物品,并且可以将它们的证书转移到新地址,甚至可以在其它地址之间进行划分或合并,从而为后续的证书文件给出来源。每个后续的证书文件包含其自己的谱系(pedigree)的可核实的签名历史。
因此,如果Dave拥有通过分布式数据记录文件跟踪的资产,那么Dave可以将该文件存储在他想要的任何位置。当Dave决定转移或赎回(redeem)该记录时,他的钱包应用将提供对新记录文件的参数进行授权的数字签名。通过实施例,一旦Dave进行该交易,他的旧记录文件就必须变得无效。相对少量的在线数字信息将完成这一点,使得Dave不再能够再次重用该旧记录文件,因为整个世界都必须知道旧文件不再被接受。否则,Dave可能能够进行双花(double-spend)。
第三方验证器储存库
在实施例中,数字记录/资产/证书是独立的数字文件。但是,在一些实施例中,它们的完整性证明可能需要相对少量的数字信息是在线的并且以每个当前有效证书的加密校验和的形式通过网络(例如,验证器服务器)可用。如果储存库中存在证书的校验和摘要(checksum digest),那么该证书是有效的。实施例通过确保在经签名的交易被发布时随着***新的子证书的校验和摘要而从储存库中删除父证书的校验和摘要来防止双花。
实施例不提供分布式共识算法。对于私有或联合账本,验证器(或校验和摘要储存库)可以是私有分布式数据库。对于去集中化账本,该储存库应在去集中化算法(诸如区块链智能合约、散列图或其它算法)之上操作。无论如何,操作验证储存库的实体不能颁发伪造证书,因为它无法控制资产、地址或密钥。储存库不是完美的权威(mint authority),因为它仅管理晦涩的校验和散列值。它的唯一目的是阻止双花,并且它只需很少的存储空间来实现这一点(无论数字资产的字节数有多大)。隐私性是无与伦比的,因为储存库中的校验和散列摘要的列表不能提供任何有用的信息。
创建和核实电子数据记录/资产
图3A是根据一个实施例的当创建新的电子记录/数字证书时,图2的分布式数据记录模块16的功能的流程图。在一个实施例中,图3A(以及下面的图3B和图4-9)的流程图的功能由存储在存储器或其它计算机可读或有形介质中的软件实现,并由处理器执行。在其它实施例中,这些功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)等),或硬件和软件的任何组合来执行。
在302处,获得记录创建者的私钥/公钥对(例如,椭圆曲线数字签名密钥对)。在304处,写入包括至少一个参数的新的电子记录,如下面将更详细描述的。在306处,使用记录创建者的私钥和整个记录信息作为消息文本(包括创建者的公钥),计算数字签名,这将产生签名散列值。在308处,将数字签名值追加到记录。
作为图3A的功能的示例,数字记录如下:
{
"message":"Hello world!",
"creator":
"38FBF6P8VT33IV8TDT6APUD1G4UHVTRUN6OYAJPQA4QUTFX7Q6QH49ZDF53FRAUHOR137MY1QSKIVRWYHTLSSQ2NZR9B8",
"signature":
"7O6PRLXXB4ZFPPHK9X258SMV4OY2UKQVDR87ZNL9F7PNH06L0O5EZ8WHTZ6UVGZZ1IDPPJ97JV1HGK31MIPJQK7RZU0IQY3T0CV"
}
为了可读性,上面的数字记录示例以及本文的所有其它示例均采用JavaScript对象表示法(“JSON”)格式。但是,记录可以采用任何格式,包括具有以特殊字符分隔的字段的数据记录(诸如逗号分隔或制表符分隔的文件)或以标签分隔的字段的数据记录(例如,可扩展标记语言(“XML”))或以固定宽度分隔的字段的数据记录或按照行号的字段的数据记录。记录可以是人类可读的文本,或者可以是非人类可读的文本,诸如二进制或压缩格式。记录不必被表示为计算机文件,因为它们可以是读取访问存储器(“RAM”)中的信息或者是作为较大数据集(诸如数据库的内容)的片段而被存储的信息。因为在本文公开的示例中使用了JSON,因此应注意按定义JSON不是排序的。JSON记录可以具有以不同顺序但仍然被认为相等的参数。由于实施例采用了数字签名和校验和散列,因此对于所有客户端,记录在处理的所有部分中必须始终相同。这意味着,如果使用JSON格式(或任何未排序的格式),那么每个参与者都必须以相同的顺序和格式(缩进、换行符等)来处理参数,以便确保签名、校验和和验证是确定性的,从而始终获得相同的结果。
上面的数字记录具有参数“message”(消息),其值为“Hello word!”。该记录示出了“creator”(创建者)的公钥,以及使用创建者的秘密私钥计算出的数字签名。
在下面的第二示例中,记录包含更多参数。在创建时,创建者已经将记录的所有权分配给另一个密钥对,并且然后对其进行签名:
数字签名是使用私钥以及记录的全部内容作为要签名的消息而计算的。交易参数“to”是要被数字签名的消息的一部分。签名:“signature”:“7O6PRLXXB4ZFPPHK9X258SMV4OY2UKQVDR87ZNL9F7PNH06L0O5EZ8WHTZ6UVGZZ1IDPPJ97JV1HGK31MIPJQK7RZU0IQY3T0CV”然后被追加到记录。该记录然后被保存,或被发送到其预期目的地。
图3B是根据一个实施例的当执行与电子记录的交易时,图2的分布式数据记录模块16的功能的流程图。
在310处,获得相关记录(即,从存储空间中检索)。在312处,将新交易(诸如所有权的转移和/或对一个或多个参数的值的改变)追加到记录。在314处,使用记录上的所有信息(包括所有先前的交易和签名,并且包括关于当前交易的细节)作为输入消息来对修改后的记录进行数字签名。至少,被签名的信息(即,到签名算法中的输入消息)必须至少包括最近期的先前的签名(因为它已经证明之前发生的一切)以及关于当前交易的细节,诸如修改后的参数值或记录所有权的更改。但是,在一些实施例中,所有先前的交易和签名,甚至记录的参数值可以进一步被包含作为被签名的消息的一部分。当前记录所有者的私钥被用于计算数字签名。在316处,数字签名值作为当前交易的一部分被追加到记录。
作为图3B的功能的示例,假设接收到的记录已经包含一个经签名的交易。在追加带有数字签名的第二交易和第三交易之后,该记录看起来如下:
在上面的示例中,该记录已经具有一个交易,即,所有权的转移。第二交易被添加到记录中,以更新“title”参数,然后第三交易对所有权进行另一个更改。
通过重复上述步骤,可以一次又一次地执行后续交易,并且该记录将随着经签名的交易一个接一个地被记录而增加。最近期的签名的值是包括所有先前的签名作为输入的一部分的计算的结果。如果有人要修改文件中的任何内容的任何地方,那么最后的数字签名将变得不可核实或无效。
在以上示例中,记录具有所有权的多次转移。在这种情况下,记录的当前所有者是控制与最新一次转移的“to”字段中的公钥相关联的私钥的任何人。在这个示例中,当前控制记录的是公钥/私钥对。
一些实施例允许多个所有者同时拥有记录。在这种情况下,可以通过多个地址或公钥(如果不使用派生的地址)来识别记录的所有者。例如,所有者可以由用逗号分隔的地址串数组来表示。在这种情况下,记录可以要求所有者中的任何所有者或一些所有者或全部所有者对交易进行签名。为了完成涉及多个所有者的交易,一个所有者将对交易进行签名,从而产生数字签名并将其追加到记录,然后将所得到的记录传递给接下来的(一个或多个)所有者以对同一交易进行签名并也追加其签名。在所有必要的所有者都对交易进行签名之后,该交易将被视为完成。在这样的实施例中,核实交易将分别需要验证由多个所有者签名的多个交易中的每一个。
图4是根据一个实施例的当核实电子记录时,图2的分布式数据记录模块16的功能的流程图。
在402处,获得要验证的电子记录。在404处,选择要验证的第一(或下一个)交易。如果记录包含多个交易,那么该处理可以从任何交易开始,因为不需要特定的顺序。在406处,从记录的经签名的交易中提取签名散列值和公钥串。这两个值将用作函数中的输入,以核实签名是否有效。为了核实签名,实施例必须获得与在签名时曾使用的输入消息相同的输入消息。为此,签名串将被移除,因为它在签名时尚不存在,并且在此时正被核实的交易之后发生的所有交易都将被移除。404和406的功能可以以任何顺序完成。
在410处,由于已经获得三个重要的信息,因此调用/执行签名核实算法以核实数字签名是否有效。如所讨论的,这三个信息是:(1)已签名的原始消息的副本,它是在签名时的记录状态;(2)与用于对签名者的输入消息进行签名的秘密私钥(对)对应的公钥;以及(3)被记录在该交易上的签名散列值。通过这三个元素,可以执行函数,该函数将确认签名是否实际上是使用与公钥对应的秘密私钥产生的。因此,实施例避免了需要知道记录的创建者或任何后续交易的创建者的私钥。在一个实施例中,所使用的函数是椭圆曲线数字签名算法,但是可以使用其它算法。假定签名算法对所有参与者是已知的。例如,如果记录是使用椭圆曲线数字签名算法被签名的并正被核实,那么假定该曲线对于核实该文件的程序是已知的(由于在文件中不指定曲线)。
在412处,如果在410处函数使用完全相同的消息确认签名确实是用与公钥对应的私钥产生的,那么功能进行到414。如果核实失败,那么在418处,该功能在返回失败之后结束(即,该记录不是有效的)。
在414处,如果还有要验证的附加的交易,那么功能在404处继续。否则,在416处,返回记录有效(即,验证成功),并且然后该功能结束。
作为图4的功能的示例,假设具有两个交易(两者都是从一个记录所有者到另一个记录所有者的转移)的以下样本记录:
为了核实上面的记录,图4的功能通过检查一个经签名的交易而开始。它可以是任一个(不需要特定的顺序),但是在这个示例中,功能从第一交易开始。
1)第一交易上的公钥是:
"38FBF6P8VT33IV8TDT6APUD1G4UHVTRUN6OYAJPQA4QUTFX7Q6QH49ZDF53FRAUHOR137MY1QSKIVRWYHTLSSQ2NZR9B8"
2)第一交易上的签名散列值为:
"7O6PRLXXB4ZFPPHK9X258SMV4OY2UKQVDR87ZNL9F7PNH06L0O5EZ8WHTZ6UVGZZ1IDPPJ97JV1HGK31MIPJQK7RZU0IQY3T0CV"
3)曾在第一交易中被签名的原始消息输入是:
这三个信息被用于验证签名是否确实是通过使用秘密私钥而产生的。如果它通过测试,那么对于所有其它交易执行相同的操作。但是,交易是使用不包括所有后续交易但包括所有先前交易的输入消息来核实的。因此,在测试第二交易时,关于第一交易的细节将成为被签名的输入消息的一部分。
在一个示例中,提取出的用于验证第二交易的输入消息的副本看起来如下所示(无签名):
使用地址
在实施例中,地址是从公钥或者密钥对的公共部分派生的散列值。例如,当记录的所有权被转移到“address”(地址)时,在一些实施例中,接收方的公钥可以保密,直到将来签名被做出。这种可选的安全措施可能是需要的,因为,取决于所使用的数字签名算法,最好在使用前将公钥保密。为了提高客户端应用的可读性,记录也可以包含创建者地址和当前所有者地址的顶层参数,使得客户端应用不必从交易历史中提取该信息。
在使用这种安全措施的实施例中,该功能类似于图3A、图3B和图4的功能,不同之处在于,控制记录的密钥对是通过公钥的散列而不是公钥本身来识别的。
交易规则
在实施例中,电子记录可以包括元数据以强制被允许的、禁止的或要求的参数值改变。例如,数值参数可能需要始终满足一个或多个数学比较,诸如等于、和/或小于、和/或大于、和/或不同于一个或多个预定义值、或另一个参数或函数的值。文本参数可能需要满足一个或多个格式或值比较,诸如必须满足格式掩码或正则表达式,或者必须匹配来自另一个字段的值或来自允许的值的预定义列表的值。日期参数可能需要具有等于、或大于、或小于或不同于特定日期或日期范围或另一个日期参数的值的值。
规则可能需要更新参数值。记录可以包括如下的元数据,即,元数据强制响应于某些事件而更新一个或多个参数。例如,每当交易导致记录所有权发生更改时,记录可能需要称为“transfer_counter”(转移计数器)的数值参数以预定义因子1递增,这可以被用于强制限制所允许的最大转移次数。
用于创建具有参数约束的记录的功能与如图3A中所示的创建“基本”记录的功能相同,不同之处在于,记录本身包括附加的元数据,该附加的元数据解释一个或多个参数是否必须具有满足任何条件的值。
具有参数约束的示例记录如下:
在以上记录中,每个参数都指定了一些规则。参数“Speed”(速度)和“Ability”(能力)是只读的,并且不能被修改。参数“Status”(状况)可以被修改,但必须匹配文本值的预定义列表。参数“Transfers”(转移)是只读的,并且不能被用户故意修改,但是每次交易更改所有者时它都需要递增因子1,并且它还具有最大值10。因此,在记录被转移10次之后,该记录就不能再被转移给新的所有者,否则在验证期间将不满足条件。
由参数值实现的这些规则被记载在记录中,并且其文本由记录创建者签名。因此,其它用户不能修改规则定义,因为这会使创建者的签名无效。规则受到创建者签名的保护。
为了对包括参数约束的记录进行验证,该功能类似于不带参数的情况,但有一个附加任务:在验证交易时,必须对具有预定义交易规则的每个记录参数进行比较,以检查该交易是否满足所有的规则要求,并且如果任何交易产生不满足由记录创建者定义的规则的参数值,那么将返回无效。
核实功能可以以任何顺序执行,诸如(1)首先针对所有交易核实所有签名,然后针对所有交易核实所有规则;(2)首先针对所有交易核实所有规则,然后核实所有签名;(3)一次一个交易地针对每个交易核实规则符合性和签名;或(4)一次一个交易地针对每个交易核实签名和规则符合性。只要所有签名和所有规则都被核实,那么顺序就无关紧要。
图5是根据一个实施例的当使用交易规则核实电子记录时,图2的分布式数据记录模块16的功能的流程图。
图5的功能包括与图4相同的功能,并增加了以下内容。在502处,检查元数据是否有任何(或下一个)规则要检查。例如,它可以是具有最大允许值的参数。在504处,将规则要求与交易值改变进行比较。例如,如果规则指定允许的最大交易值为10并且交易具有更新为11的值。在506处,如果违反规则,那么在418处该记录无效。否则,在508处,功能在502处继续。
第三方验证器
在实施例中,当电子记录被更新时,经常需要记录的先前版本变得过时并且不再有效。例如,如果记录更改所有权,那么具有先前所有者的旧版本应变得无效。记录的***可能需要按时间顺序(chronologically)是有状态的(stateful),以避免竞争状况或“双花”。这可以通过采用第三方验证器来解决。记录创建、交易和核实可以被传输到第三方服务,该第三方服务可以识别记录是过时的还是当前的。在线验证器可以通过维护当前有效记录的列表来确认记录是当前的还是过时的。它的储存库(其可能是文件、目录、数据库或数据结构)不需要维护每个记录的完整副本,因为它只需要每个当前有效的记录的校验和即可。校验和可以是很短的串。如果验证器储存库中存在记录的校验和,那么任何尺寸的记录都可以被确认为是有效的。
为了创建受制于第三方验证器的新记录,实现用于创建图3A的新的经签名的记录的功能。然后,在记录包括数字签名之后(即,在308之后),将记录用作输入消息从而使用诸如md5、keccak或SHA之类的散列算法来计算该记录的校验和散列。然后将校验和***到在线储存库或数据库中,这可能需要凭证和创建权限。验证器储存库中的校验和将指示该记录是合法的。
图6是根据一个实施例的当由第三方验证器验证记录时,图2的分布式数据记录模块16的功能的流程图。图6的功能在第三方(其包括第三方验证器校验和)在602处接收到更新后的记录之后被实现。
在604处,需要检查接收更新的旧记录是否实际上有效。这通过检查储存库中是否存在旧记录的校验和来完成。为此,将最新交易从记录中移除以获得记录的(即,在该交易之前的)旧版本。
在606处,计算记录的旧版本的校验和散列。在608处,如果储存库中存在旧记录的校验和,那么旧记录是有效的。如果在608处为否,那么旧记录是无效的并且验证失败。例如,旧记录可能由于另一个先发布的交易而已经过时。
如果在608处为是,那么在610处使用图4和图5的功能来核实新的更新后的记录,这意味着检查交易签名是否确实是用记录的当前所有者的私钥签名的,以及检查是否有任何潜在的规则违反。由于旧记录的校验和已经被核实,因此没有必要再次核实所有交易历史。仅需要核实新的(一个或多个)交易。
在612处,如果新的(更新后的)记录是有效的,那么进行到614。但是,如果新的交易签名是无效的或规则已经被违反,那么核实失败。
如果已经核实旧记录和新记录,那么可以安全地在614处移除旧文件的校验和,并在616处***新文件的校验和。取决于所使用的数据储存库的类型,可以将614和616整合为单个“更新”,而不是“移除和***”。如果使用移除/***方法,那么所使用的数据库管理***可以提供确保原子性更改的功能,这意味着删除和***同时成功或同时失败。
使用图6的功能,请求者可以通过执行两个简单步骤来使用第三方验证器核实记录是否有效:(1)计算记录的校验和散列;以及(2)请求第三方验证器确认该校验和有效(存在)还是无效(未找到)。
在一个实施例中,特别是当在线验证器储存库被完全信任时,诸如在私有***中,或者信誉良好的去集中化算法(例如,信誉良好的去集中化***上的开源智能合约),签名链可以从记录中省略。由于每个交易都在储存库更新之前由在线验证器进行验证,因此签名链可以是隐式的。换句话说,如果在线储存库中存在校验和摘要,那么所有先前的交易都必须是被遵守的(honorable),否则在储存库中将找不到校验和。该实施例消除了让记录维护其完整交易历史的需要。采用该模型的***将必须从一开始就被设计和开发为对不包含交易历史作为记录的一部分的记录进行创建和更新。这防止了记录文件的尺寸增长过大。如果期望,它还提供了最终的隐私性,因为记录的先前所有者将是未知的。但是,只有在完全信任储存库(在线验证器)的情况(并非总是如此)下,这才是有益的。此外,在一些用例中,出于其它原因,可能仍需要交易历史,诸如对记录传递经过了预期的所有权进行验证。
在一些实施例中,所描述的记录的***可以用特定软件、用单个在线验证器、以及已知的创建者密钥、以及已知的签名算法和已知的校验和算法来操作。但是,在其它实施例中,使用许多不同的软件(诸如不同的智能电话钱包)、许多记录创建者、许多所使用的算法以及许多验证器服务来创建、交易和核实通用记录的***。因此,在实施例中,电子记录可以包括以下附加参数以促进通用框架:
(A)用于创建者的超文本传输协议(“HTTP”)统一资源定位符(“URL”)的参数,允许用户和客户端应用核实创建者的地址。例如,如果公司ACME.COM创建记录,那么他们可能在ACME.COM域上发布页面,以允许用户和应用获取其官方地址或公钥。钱包应用可以向用户通知被检查的记录是使用如下的密钥进行签名的,即,该密钥的公开部分是由ACME.COM提供的。
(B)用于验证器服务的HTTP URL的参数(即,告诉客户端应用去哪里核实记录)。
(C)用于所使用的签名算法的参数。例如,如果使用椭圆曲线,那么该参数指示使用的曲线是什么,使得其它应用能够核实文件。
一些实施例提供安全选项来保证创建者密钥只能被使用一次。如果创建者的秘密私钥遭到破坏,或者当用户希望确定创建者将不能使用同一密钥创建附加的记录从而限制供应时,这是可取的。为实现这一点,第三方在线验证器可以将创建者的公钥(或地址,如果使用地址的话)添加到先前使用的密钥(或地址)列表中。在完成任何新记录的创建之前,第三方验证器可以检查创建者的密钥是否先前曾被用于创建过去的记录。
图7是根据一个实施例的当创建受制于具有附加安全性的第三方验证器的新记录时,图2的分布式数据记录模块16的功能的流程图。图7的功能是上述公开的用于创建受制于第三方验证器的新记录的功能的附加。
在702处接收到***新记录的请求之后,在704处,核实新创建的记录被正确地签名(即,针对创建者的公钥来核实签名),并且在706处,通过针对跟踪先前使用的密钥或地址的列表、目录或数据库来查询创建者的密钥,来核实该密钥之前未被使用过。704和706可以以任何顺序执行。
在708处,将创建者的密钥(或地址)***到跟踪先前使用的密钥或地址的列表、目录或数据库中。在710处,创建新记录的校验和。在712处,将该校验和***到有效记录的列表、目录或数据库中。
记录拆分
在实施例中,记录可以具有可划分的数值参数。例如,表示账户的记录可以具有积分、货币、股份的余额或任何可划分的数字,它们可以以(一个或多个)部分被分配给(一个或多个)其它所有者。
例如,Alice可以控制具有“Points”(积分)参数且值为“10”的记录。Alice可以执行交易,向Bob(他的地址)分配3个“积分”并向Carol(她的地址)分配2个“积分”。该交易将产生记录,该记录使Bob的秘密私钥能够控制3个“积分”而Carol的私钥控制2个“积分”并且Alice的私钥保留对5个“积分”的控制。从那时起,他们不必维护该记录的单个副本。他们每个人可以取得其自己的副本并做自己想要的操作,而无需其它两个人对此知悉。
记录拆分交易类似于下面公开的交易,不同之处在于交易细节将包括关于各部分的分配的细节,诸如以下内容:
在上面的示例中,创建者(5XA5AH...)创建了具有10个“Kudos”的记录,“Kudos”是可以被划分并将其各部分分配给不同所有者的数值参数。创建者记录了将记录的所有权转移到Alice(CIDK3...)的交易。
在第二交易中,Alice拆分了Kudos参数,从而给予Bob(SDJF8...)3个“Kudos”。从这时开始,如果该记录接收到由Alice签名的用7个或更少的Kudos做些事情的交易,那么该交易将是有效的。如果该记录接收到由Bob签名的用3个或更少的kudos做些事情的交易,那么该记录也将是有效的。因此,Alice和Bob二者都可以在不同的路径上继续该记录,这最终将导致彼此不同但仍然有效的多个文件。
当双花不是所关心的并且当记录的***不需要第三方验证器时,以上公开的拆分功能是有用的。在其它实施例中,执行阻止双花的拆分,并通过第三方储存库进行验证。在这些实施例中,拆分应该导致彼此不同的多个子记录恰好足以导致不同的校验和散列值。例如,如果记录A被拆分为两部分,那么它应导致两个新记录B和C,其中A、B和C为储存库产生不同的校验和值。在将拆分记录在储存库中之后,记录A的校验和将被移除,并且将在储存库中找到记录B和C的校验和。也可以将记录拆分为多于两个部分。
图8是根据一个实施例的当将参数拆分为多个子记录时,图2的分布式数据记录模块16的功能的流程图。作为图8的功能的示例,假设记录参数包含初始供给10,初始供给将是被减数。如果所有者Alice向Bob给予3个单位,并且向Carol给予2个单位,并且她自己保留5个单位,那么该供给已被拆分而没有任何剩余,如下所示:
10(被减数=原始记录)
-3(减数1,对于Bob=子记录1)
-2(减数2,对于Carol=子记录2)
-5(减数3,Alice保留=子记录3)
=0(差)
对于图8的功能,将从原始量中减去的每个部分被称为减数。每个减数将产生唯一的子记录。原始记录(起始点)将被重用为每个子记录的起始副本。
在802处获得原始记录之后,在804处,对于每个减数(从原始量中减去的一部分),将原始记录的副本作为起始点。在806处,交易被追加到子记录,从而将减数分配给公钥或派生地址的控制。例如,如果Alice给予Bob 3个单位,那么交易会被追加到子记录,从而说明3个单位被分配给了Bob的公钥(或地址)。
在808处,使用控制该记录的秘密私钥对来自806的交易进行数字签名。在810处,数字签名被追加到交易,从而完成该子记录。
在812处,确定在该交易中是否有更多的减数。或者换句话说,是否有仍需要被记录为子记录的原始量的更多部分被拆分。如果在812处为否,那么功能在804处继续。如果在812处为是,那么功能通过返回一批多个唯一子记录而结束。
在实施例中,当交易将记录拆分为多个子记录时,将它们记录到验证器储存库中意味着将移除一个旧的校验和散列,并且将添加许多新的校验和散列。图9是根据一个实施例的当在验证器储存库中记录拆分交易时,图2的分布式数据记录模块16的功能的流程图。
在902处,接收到一批记录。在904处,选择该批次中的下一个记录。在906处,最后一个交易从所选择的子记录被移除。这样做是为了识别(在拆分交易之前的)原始文档,使得原始文档可以被检查以确定是否可以良好地从该原始文档开始。
在908处,原始记录的校验和散列被计算并保存以供以后使用。在910处,使用图4或图5的功能来核实子记录。如果签名核实失败或者如果交易规则被违反,那么子记录将是无效的。在912处,如果子记录无效,那么记录失败。否则,在914处,新子记录的校验和散列被计算并保存以供以后使用。旧的原始记录的校验和已经被保存了,但是新记录的校验和也是需要的。
在916处,如果该批次中有更多的子记录,那么功能在904处继续。否则,在918处,该批次中的所有子记录应该是同一原始记录的唯一延续。实施例需要确保所有子记录具有相同的确切起源,或者换句话说,原始记录部分在所有子记录中都是相同的。有多种方法可以做到这一点。一种是比较它们的文本,而不进行最后的交易,以确保它们都具有相同的相同原始部分。在图9的实施例中使用的另一种方式是获取在步骤3中产生的所有校验和,并确保它们全部匹配。对于每个子记录,我们在908处对其原始记录进行校验和。如果它们全部产生相同的校验和,那么它们都具有相同的作为起始点的确切原始记录,并且该处理可以继续。如果至少有一个子记录在该子记录中具有不匹配的“原始记录”,那么该处理必须失败。
在920处,确定在908处产生的(对于所有子记录现在已知都相同的)校验和是否作为有效记录而存在于储存库中。如果在920处为否,那么该处理失败。如果原始记录在储存库中没有校验和,那么该记录无效。如果在920处为是,那么在922处,从储存库中移除原始记录的校验和。在924处,将每个子记录的校验和***到储存库中。
908、910、912和914可以以不同的顺序。例如,可以在核实文件之后确定校验和。918和920可以采用任何顺序。922和924应该是原子的,以“全有或全无的方式”。所有***和删除必须成功,否则所有操作都必须回滚到初始状态。
在实施例中,所有子记录必须是唯一的。例如,如果Alice向Bob分配2个单位,并且再向Bob分配2个单位并且再向Bob分配2个单位,那么这3个减数将产生3个相同的记录,并具有相同的校验和。应该考虑确保每个子记录都具有足够的信息,诸如每个交易的唯一部分ID号,以便确保所有子记录通过至少一个字符而是唯一的,使得它们在储存库中产生唯一校验和。
此外,在实施例中,可以包括用于让拆分交易逐一被记录的选项,使得原始文档保持交易的记账(tally)。例如,如果Alice将数量的一部分给予Bob,并且然后将另一部分给予Carol,并且然后将另一部分给予Dave,那么Alice可能在记录中具有如下的剩余物,该剩余物包含所有3个不同拆分交易的痕迹,作为记账。如果Alice需要向Bob证明她已向他的地址支付,那么这是有用的。证据可以是她的当前有效的文件显示了向Bob的地址支付的交易。这使记录成为该记录本身中的支付历史的不断运行的账本。
作为示例,记录可以被拆分为一批3个子记录。在这个示例中,创建者(5XA5A…)创建具有10个“Kudos”供给的记录,并将其分配给Alice(CIDK3…)。然后,Alice拆分这10个Kudos,将3个Kudos分配给Bob(SDJF8...),将2个Kudos分配给Carol(S98DF...),并且剩余的5个Kudos她分配给她自己。该批3个子记录以JSON格式被表示为3个嵌套的JSON文档的数组,如下所示:
如所公开的,实施例创建由独立文件组成的账本数据库。例如,Alice的银行账户是她个人笔记本电脑上的文件。Bob的银行账户是他智能电话上的文件。他们是其自己账本历史的保管人,但是,现代加密技术使他们作弊变得不可行。这种模型几乎使存储空间不受限制,因为大量数据被卸载到客户自己的设备上。实施例中的进行控制的数据库不需要存储所有内容,而仅存储每个独立文件的小尺寸的校验和。因此,几字节的数据库存储空间可以表示并验证卸载到消费者自己设备上的千兆字节的应用数据。
实施例使得能够实现以下示例用例:
1.音乐会、体育赛事或渡轮等的票据。可以通过向扫描仪出示“签名的”QR码图像来准许票据所有者进入。票据不能被使用两次。票据不能伪造。在没有私钥的情况下,票据盗窃是没有用的。
2.用于在公共集会处购买食品、饮料和活动的票据,作为纸质链票(例如,写着“准许进入一个”的红色优惠券)的数字替代方式。防止人们使用不合法票据而造成的损失。消除了兑换现金的需要,因为人们可以使用***、PayPal等将票据信用额度加载到他们的电话应用中。
3.抽奖券。同上。人们购买抽奖券,他们获得无法伪造的数字证书,只有真正的所有者才能将其兑现。
4.在***、度假地或游轮处的客人信用额度。客人可以将信用额度存入其电话中,而不必将信用额度存入到塑料卡中。
5.供应链的完整性。制药公司可以将药物运送到零售商或医院,并通过使用显示所有计划转移(例如,卡车、仓库等)的签名链的证书来证明药物是真实的。在售出/消费之后,该证书不再可以被用来表示具有复制的序列号的另一个药瓶。
6.视频游戏消费品,诸如游戏地图的所有权,或体育视频游戏中的著名运动员卡。
7.数字证券交易:去集中化自治公司以分布式数据记录的形式发行其股票。可以使用私钥签名的各方可以进行投票和转让。数字财产,诸如数据库中的数据,或代币供给、在线组织的控制,或开源项目,都是不受美国证券交易委员会监管的可划分财产的示例。
8.随收藏品或纪念品发出的真实性证明和所有权产权。
9.投票***。每个投票者都会收到唯一的证书作为数字选票,然后将签名的最终投票发送到投票站。在家投票。
10.应当由密钥持有者而非个人签名的任何合同文件。
与在传统数据库或区块链中存储数据相比,实施例具有以下优点:
1.完整的隐私性。不存在可以被司法调查来分析记录或交易历史的当前状态的数据库实例或节点,因为该信息被保存在分离的全世界范围的独立记录文件中,可能存储在用户的个人设备中,而不是存储在数据库实例中。不能对数据集运行报告查询,并且这种限制在一些面向隐私性的用例中是期望的特征。
2.便携性。社区可以在现场即席创作记录的***,而无需开发或资助后端数据库解决方案。他们只需要其智能电话或计算机以发布记录并与它们进行交易。无需数据库成本即可构建交易***使得能够进行免费的开源工作。例如,社区可以开发开源视频游戏,并且玩家无需开发或资助用于交易物品的后端***就可以交换游戏中的消费品。
3.可扩展性。由于信息未存储在数据库节点中,因此存储分配不是挑战。
4.可用性。在传统的数据库模型中,当数据库不可用或不可达时,交易不能发生。作为对照,在实施例中,交易发生在用户自己的设备上,并且所得到的更新后的记录(具有新的交易历史和状态)可以被直接发送给另一个用户。
5.可核实性。通过实施例,当某方声称拥有对记录的控制并列出该记录以供私下或公开出售或使用时,其它方可以快速核实该记录的完整性和合法性。例如,如果某方在网站上发布了他们正在出售记录,诸如票据或视频游戏消费品或产权,那么潜在的购买者将能够核实列出的要出售的记录是否真实,以及核实卖方确实控制它,换句话说,它不是假货。记录所有者可以安全地允许对记录的公开检查,并且仍然维持对记录的完全控制,因为交易必须利用秘密私钥进行数字签名。公开暴露记录不会使其面临被盗的风险。这是很大的优势,因为很多时候人们在互联网上列出要出售的数字商品(诸如电子游戏消费品或活动票据),它们是假货或骗局。
6.受保证的价值。不能从***中封禁用户(或从技术上讲,用户的密钥对和地址),因为没有实例跟踪此类实体。此外,管理员不能更改记录以增加或减少其价值,因为没有这样的实例会暴露于或受制于管理员的管辖。在一些需要最终信任的用例中,这些限制可能是期望的保护。可选地,也很容易保证记录的有限供给,使得所有参与者(服务提供商和消费者)可以确定将实施有限的供给限制(或者换句话说,将永远不会发布新的附加供给项目)。这种保证是可能的和可选的,并且对于防止腐败或将假冒产品注入到供应链中是有用的。只要用户不丢失记录或控制其记录的私钥,就可以保证价值。
本文具体图示和/或描述了几个实施例。但是,将认识到的是,在不背离本发明的精神和预期范围的情况下,以上教导涵盖所公开实施例的修改和变型并且这些修改和变型在所附权利要求的范围内。
Claims (16)
1.一种创建和验证表示资产的数字记录的方法,所述方法包括:
获得与所述数字记录的创建者对应的第一公钥以及第一私钥;
生成用于所述数字记录的一个或多个参数,其中所述参数中的第一参数与所述数字记录的交易相关;
生成用于所述数字记录的一个或多个规则,其中所述规则中的第一规则与第一参数对应并约束所述交易;
使用第一私钥,计算第一公钥、所述参数和所述规则的全体的第一数字签名;
创建包括第一公钥、所述参数、所述规则和第一数字签名的第一数字记录;
创建第一数字记录的校验和散列;以及
将所述校验和散列发送到在线储存库,其中所述在线储存库被配置为使用所述校验和散列来核实第一私钥在之前没有被用于创建任何先前的数字记录。
2.如权利要求1所述的方法,还包括:
响应于将所述资产的所有权从所述创建者转移到第二所有者的第一交易,将第一交易追加到第一数字记录,其中第一交易包括第一公钥和与第二所有者对应的第二公钥;
使用第一私钥,计算第一数字记录和第一交易的全体的第二数字签名;
创建包括第一数字记录、第一交易和第二数字签名的第二数字记录;以及
将第二数字记录发送到第二所有者。
3.如权利要求1所述的方法,其中,第一参数包括交易的数量,并且第一规则包括交易的最大数量。
4.如权利要求1所述的方法,还包括:
响应于将所述资产的所有权从所述创建者转移到第二所有者的第一交易,将第一交易追加到第一数字记录,其中第一交易包括第一公钥和从与第二所有者对应的第二公钥导出的第二散列值;
使用第一私钥,计算第一数字记录和第一交易的全体的第二数字签名;
创建包括第一数字记录、第一交易和第二数字签名的第二数字记录;以及
将第二数字记录发送到第二所有者。
5.如权利要求1所述的方法,还包括所述参数中的第二参数,第二参数能够被划分为多个部分,使得所述资产的所有权能够被分配给多个不同的所有者。
6.如权利要求2所述的方法,还包括:
在第二所有者处,对第一交易进行验证,包括:
从第二数字记录中提取第二数字签名和第二公钥;
从第二数字记录中移除第二数字签名和在第一交易之后发生的任何附加交易,以生成原始交易消息;
使用第二数字签名、第二公钥和所述原始交易消息作为核实功能的输入,以确认第二数字签名是使用第一私钥生成的。
7.如权利要求1所述的方法,其中,所述在线储存库被配置为:使用所述校验和散列,通过确定所述校验和散列被所述在线储存库存储,来核实响应于第一数字记录的至少一个交易生成的接收到的第二数字记录是有效的。
8.一种其上存储有指令的计算机可读介质,所述指令在由处理器执行时,使所述处理器创建并验证表示资产的数字记录,所述创建和验证包括:
获得与所述数字记录的创建者对应的第一公钥以及第一私钥;
生成用于所述数字记录的一个或多个参数,其中所述参数中的第一参数与所述数字记录的交易相关;
生成用于所述数字记录的一个或多个规则,其中所述规则中的第一规则与第一参数对应并约束所述交易;
使用第一私钥,计算第一公钥、所述参数和所述规则的全体的第一数字签名;
创建包括第一公钥、所述参数、所述规则和第一数字签名的第一数字记录;
创建第一数字记录的校验和散列;以及
将所述校验和散列发送到在线储存库,其中所述在线储存库被配置为使用所述校验和散列来核实第一私钥在之前没有被用于创建任何先前的数字记录。
9.如权利要求8所述的计算机可读介质,所述创建和验证还包括:
响应于将所述资产的所有权从所述创建者转移到第二所有者的第一交易,将第一交易追加到第一数字记录,其中第一交易包括第一公钥和与第二所有者对应的第二公钥;
使用第一私钥,计算第一数字记录和第一交易的全体的第二数字签名;
创建包括第一数字记录、第一交易和第二数字签名的第二数字记录;以及
将第二数字记录发送到第二所有者。
10.如权利要求8所述的计算机可读介质,其中,第一参数包括交易的数量,并且第一规则包括交易的最大数量。
11.如权利要求8所述的计算机可读介质,所述创建和验证还包括:
响应于将所述资产的所有权从所述创建者转移到第二所有者的第一交易,将第一交易追加到第一数字记录,其中第一交易包括第一公钥和从与第二所有者对应的第二公钥导出的第二散列值;
使用第一私钥,计算第一数字记录和第一交易的全体的第二数字签名;
创建包括第一数字记录、第一交易和第二数字签名的第二数字记录;以及
将第二数字记录发送到第二所有者。
12.如权利要求8所述的计算机可读介质,所述创建和验证还包括所述参数中的第二参数,第二参数能够被划分为多个部分,使得所述资产的所有权能够被分配给多个不同的所有者。
13.如权利要求9所述的计算机可读介质,所述创建和验证还包括:
在第二所有者处,对第一交易进行验证,包括:
从第二数字记录中提取第二数字签名和第二公钥;
从第二数字记录中移除第二数字签名和在第一交易之后发生的任何附加交易,以生成原始交易消息;
使用第二数字签名、第二公钥和所述原始交易消息作为核实功能的输入,以确认第二数字签名是使用第一私钥生成的。
14.如权利要求8所述的计算机可读介质,其中所述在线储存库被配置为:使用所述校验和散列,通过确定所述校验和散列被所述在线储存库存储,来核实响应于第一数字记录的至少一个交易生成的接收到的第二数字记录是有效的。
15.一种数字记录创建和验证***,所述***包括:
与所述数字记录的创建者对应的第一公钥和第一私钥,其中所述数字记录表示资产;
存储设备,存储用于所述数字记录的一个或多个参数,并且存储用于所述数字记录的一个或多个规则,其中所述参数中的第一参数与所述数字记录的交易相关,其中所述规则中的第一规则与第一参数对应并约束所述交易;
处理器,适于执行指令,以使用第一私钥来计算第一公钥、所述参数和所述规则的全体的第一数字签名;创建包括第一公钥、所述参数、所述规则和第一数字签名的第一数字记录;创建第一数字记录的校验和散列;以及将所述校验和散列发送到在线储存库;
其中,所述在线储存库被配置为使用所述校验和散列来核实第一私钥在之前没有被用于创建任何先前的数字记录。
16.如权利要求15所述的***,所述处理器还适于:
响应于将所述资产的所有权从所述创建者转移到第二所有者的第一交易,将第一交易追加到第一数字记录,其中第一交易包括第一公钥和与第二所有者对应的第二公钥;
使用第一私钥,计算第一数字记录和第一交易的全体的第二数字签名;
创建包括第一数字记录、第一交易和第二数字签名的第二数字记录;以及
将第二数字记录发送到第二所有者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/448,299 | 2019-06-21 | ||
US16/448,299 US11271751B2 (en) | 2019-06-21 | 2019-06-21 | Distributed data records |
PCT/US2019/044837 WO2020256754A1 (en) | 2019-06-21 | 2019-08-02 | Distributed data records |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112437922A true CN112437922A (zh) | 2021-03-02 |
Family
ID=67660821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980006566.6A Pending CN112437922A (zh) | 2019-06-21 | 2019-08-02 | 分布式数据记录 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11271751B2 (zh) |
EP (1) | EP3987427A1 (zh) |
JP (1) | JP7504794B2 (zh) |
CN (1) | CN112437922A (zh) |
WO (1) | WO2020256754A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3014385A1 (en) * | 2017-08-16 | 2019-02-16 | Royal Bank Of Canada | Platform for generating authenticated data objects |
US11556665B2 (en) | 2019-12-08 | 2023-01-17 | Western Digital Technologies, Inc. | Unlocking a data storage device |
US11366933B2 (en) | 2019-12-08 | 2022-06-21 | Western Digital Technologies, Inc. | Multi-device unlocking of a data storage device |
US11469885B2 (en) | 2020-01-09 | 2022-10-11 | Western Digital Technologies, Inc. | Remote grant of access to locked data storage device |
US11334677B2 (en) | 2020-01-09 | 2022-05-17 | Western Digital Technologies, Inc. | Multi-role unlocking of a data storage device |
US11606206B2 (en) | 2020-01-09 | 2023-03-14 | Western Digital Technologies, Inc. | Recovery key for unlocking a data storage device |
US11088832B2 (en) * | 2020-01-09 | 2021-08-10 | Western Digital Technologies, Inc. | Secure logging of data storage device events |
US11831752B2 (en) | 2020-01-09 | 2023-11-28 | Western Digital Technologies, Inc. | Initializing a data storage device with a manager device |
US11265152B2 (en) | 2020-01-09 | 2022-03-01 | Western Digital Technologies, Inc. | Enrolment of pre-authorized device |
US12015540B2 (en) * | 2021-09-07 | 2024-06-18 | Red Hat, Inc. | Distributed data grid routing for clusters managed using container orchestration services |
US11924362B2 (en) * | 2022-07-29 | 2024-03-05 | Intuit Inc. | Anonymous uncensorable cryptographic chains |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4663292B2 (ja) | 2004-11-01 | 2011-04-06 | 株式会社日立製作所 | 電子文書保存管理システム、電子文書保存管理方法、および電子文書保存管理プログラム |
US8140861B2 (en) * | 2006-12-28 | 2012-03-20 | International Business Machines Corporation | Method and system for content-based encrypted access to a database |
US20080243688A1 (en) | 2007-03-28 | 2008-10-02 | Hart Peter E | Method and Apparatus for Recording Transactions with a Portable Logging Device |
JP4521462B2 (ja) | 2008-12-26 | 2010-08-11 | 株式会社東芝 | 情報ライフサイクル管理システム、情報管理サーバ装置、情報媒体制御装置及びプログラム |
CN107683488B (zh) * | 2015-04-05 | 2023-09-05 | 数字资产(瑞士)股份有限公司 | 数字资产中介电子结算平台 |
JP6756817B2 (ja) * | 2015-04-06 | 2020-09-16 | ビットマーク, インコーポレイテッドBitmark, Inc. | 非集中型のタイトル記録および認証のためのシステムならびに方法 |
US10402792B2 (en) | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
US11494761B2 (en) * | 2015-11-06 | 2022-11-08 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US10693658B2 (en) | 2016-02-12 | 2020-06-23 | Visa International Service Association | Methods and systems for using digital signatures to create trusted digital asset transfers |
EA201792267A3 (ru) * | 2017-02-20 | 2018-08-31 | Товарыство З Обмеженою Видповидальнистю "Симкорд" | Способ управления имущественными правами на активы и система для его осуществления |
US11188977B2 (en) * | 2017-03-08 | 2021-11-30 | Stichting Ip-Oversight | Method for creating commodity assets from unrefined commodity reserves utilizing blockchain and distributed ledger technology |
US10541820B2 (en) * | 2017-08-17 | 2020-01-21 | Global Bonsai LLC | Distributed digital ledger |
US11481786B2 (en) * | 2017-10-03 | 2022-10-25 | Sony Group Corporation | Genuine instance of digital goods |
US20190333033A1 (en) * | 2018-04-29 | 2019-10-31 | Keir Finlow-Bates | System and method for creating, storing and transferring unforgeable digital assets in a database |
EP3574461A4 (en) | 2018-12-29 | 2020-01-22 | Alibaba Group Holding Limited | SYSTEM AND METHOD FOR DETECTING A PLAYBACK |
-
2019
- 2019-06-21 US US16/448,299 patent/US11271751B2/en active Active
- 2019-08-02 JP JP2020540614A patent/JP7504794B2/ja active Active
- 2019-08-02 US US16/530,224 patent/US10771257B1/en active Active
- 2019-08-02 WO PCT/US2019/044837 patent/WO2020256754A1/en active Application Filing
- 2019-08-02 CN CN201980006566.6A patent/CN112437922A/zh active Pending
- 2019-08-02 EP EP19755742.4A patent/EP3987427A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2020256754A1 (en) | 2020-12-24 |
US10771257B1 (en) | 2020-09-08 |
JP7504794B2 (ja) | 2024-06-24 |
US11271751B2 (en) | 2022-03-08 |
EP3987427A1 (en) | 2022-04-27 |
US20200403786A1 (en) | 2020-12-24 |
JP2022550223A (ja) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10771257B1 (en) | Distributed data records | |
CN110458699B (zh) | 基于分布式帐簿的、实现金融包容性和可持续性的供应链应用的身份和起源 | |
US11568437B2 (en) | Systems, methods, and apparatuses for implementing commerce rewards across tenants for commerce cloud customers utilizing blockchain | |
US20220171877A1 (en) | Systems and methods for providing identity verification services | |
CN111989663B (zh) | 基于区块链的智能合约池 | |
CN111868725B (zh) | 基于区块链处理进口海关清关数据 | |
US20200104836A1 (en) | Hybrid digital ledger control with address encoding | |
CN111936995A (zh) | 海关清关数据的分布式存储 | |
CN111989707A (zh) | 管理基于区块链的海关清关服务的用户权限 | |
Soner et al. | Exploring blockchain and smart contract technology for reliable and secure land registration and record management | |
US20220311611A1 (en) | Reputation profile propagation on blockchain networks | |
US20230281583A1 (en) | Systems and Methods for the Facilitation of Blockchains | |
US11769146B1 (en) | Blockchain transactional identity verification | |
CN114930330A (zh) | 基于区块链的海关清关服务平台的用户管理 | |
CN118101216A (zh) | 在区块链网络上通信、存储和处理数据的基于区块链的***和方法 | |
CN111936994A (zh) | 用于海关清关的基于区块链的文档注册 | |
US20230043223A1 (en) | Methods for Securely Adding Data to a Blockchain Using Dynamic Time Quanta and Version Authentication | |
EP4189913A1 (en) | Blockchain tokens | |
Khedekar et al. | Protection to Personal Data Using Decentralizing Privacy of Blockchain. | |
Shamsi et al. | A secure and efficient approach for issuing KYC token as COVID-19 health certificate based on stellar blockchain network | |
US20220393892A1 (en) | Composite Cryptographic Systems with Variable Configuration Parameters and Memory Bound Functions | |
US20230306412A1 (en) | Docket credential insertion in non-fungible tokens | |
US20230308276A1 (en) | Creating non-fungible token shards | |
US20220067028A1 (en) | Trustless operations for blockchain networks | |
US20230289779A1 (en) | System and method for automatically validating users to access blockchain based applications |
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 |