一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有要约和接受的区块链交易的系统和方法与流程

2022-04-13 19:32:44 来源:中国专利 TAG:

具有要约和接受的区块链交易的系统和方法
1.相关申请
2.本专利要求2019年5月16日提交的、申请号为62/848,927的美国临时专利申请的优先权和权益。本部分中引用的所有文件均通过引用并入本文。
技术领域
3.本公开总体涉及区块链,更具体地涉及创建一系列已验证的区块链交易,这些交易可以通过验证区块链比特币交易中预期接收者的身份来充当要约和接受。


背景技术:

4.区块链技术(有时简称为区块链)是一种相对较新的技术,已被用于实现数字货币。它在2008年由中本聪(satoshi nakamoto)撰写的题为“比特币:一种点对点电子现金系统”(bitcoin:a peer-to-peer electronic cash system)的论文中有所描述,该论文的全部内容通过引用并入本文。区块链是一种存储交易列表的数据结构,可以被认为是记录源标识符和目的地标识符之间交易的分布式电子账本。交易被捆绑到区块中,所有区块(第一个区块除外)都引用前一个区块或链接到链中的前一个区块。计算机节点维护区块链,并对每个新区块以及相应区块中包含的交易进行密码验证。这个验证过程很难通过计算解决,但是认证涉及到解决一个简单的问题,有时被称为“工作量证明”。
5.整个区块链的完整性(例如,先前记录的交易没有改变的置信度)被保留,这意味着每个区块都引用了前一个区块的加密哈希值。因此,当一个区块引用前一个区块时,很难更改或篡改其中包含的数据(例如,交易)。这是因为即使对数据进行一个很小的更改也会影响整个区块的哈希值。每增加一个区块,就增加了篡改前一个区块内容的难度。因此,即使区块链的内容对所有人可见,也几乎不可能改变。
6.用于区块链交易的标识符是通过密码生成方法创建的,比如公钥密码生成方法。例如,用户可以基于密钥生成目的地标识符。私钥和目的地标识符之间的关系稍后可用于提供“证据”,证明用户与已创建交易的输出相关联。换句话说,用户现在可以创建另一个交易来“消费”前一个交易的内容。此外,由于只有用户知道目的地标识符和相应私钥之间的关系,因此即使用户可以生成许多不同的目的地标识符(仅通过私钥链接),用户也具有匿名性。因此,用户与区块链中包含的多项交易的整体相关性可以对其他用户保密。虽然交易细节可以在分布式账本上公开,但这些交易的底层参与者可以被保密,因为标识符与只有相应参与者知道的密钥相关联。
7.包括比特币在内的公共区块链面临的挑战之一是,由于比特币交易是匿名的,因此用户很难验证相应的个人或机构身份。匿名的结果是将比特币从一方转移到另一方的比特币交易不一定包含要约和接受。例如,转让方(即转让人)可以在接收方(即受让人)不知情或不同意的情况下将比特币转移到接收方(即受让人)的比特币地址。在比特币的数字领域缺乏知情或同意是对需要要约和接受的合同法指导原则的诅咒。
8.由于比特币交易固有的缺乏透明度,商业协会可能对使用比特币犹豫不决,因为
他们无法轻松地验证此类身份到一个舒适的程度。尽管并非在所有情况下都是可取的,但此类验证在遵守法规(例如,了解您的客户(kyc)和反洗钱(aml)义务)方面是有用的。这种义务可以包括,例如,报告或记录与交易参与有关的信息。一些商业协会可能对使用比特币犹豫不决,因为他们无法轻松地验证此类身份到一个舒适的程度。这是因为传统比特币交易中接收者的身份没有嵌入到交易中,从而增加了恶意入侵者将预期接收者的地址与其自己的地址交换的重大风险。比特币交易是匿名的,例如使用比特币地址来指定接收者。结果,难以验证交易中指定的接收者的身份。至少是因为这样的身份没有嵌入在交易本身中,所以存在恶意中间人将预期收件人的地址与他自己的地址进行交换的重大风险。因此,在进行交易时存在不可忽视的欺诈可能性。由于这种潜在的欺诈行为,将比特币从一方转移到另一方的简单比特币交易不一定包含要约和接受。例如,转让方(即转让人)可以在接收方(即受让人)不知情或不同意的情况下将比特币转移到接收方(即受让人)的比特币地址。在比特币的数字领域缺乏知情或同意是对需要要约和接受的合同法指导原则的诅咒。也就是说,根据普通法,合同可能需要要约和接受。要约可以是根据特定条款签订具有约束力的协议的意愿。接受可以是明确和无条件地同意受这些条款约束的表示。未经接受,要约不得成为具有法律效力的合同。
9.因此,需要一种系统和相关方法,该系统和相关方法用于在区块链交易(例如比特币区块链交易)中创建已验证转移,使得交易作为要约和接受进行操作。


技术实现要素:

10.本发明提供了一种用于执行一系列区块链交易的系统和相关的计算机实现方法,该交易验证预期接收者的身份并充当要约和接受。在解决欺诈和盗窃问题至关重要或必不可少的情况下,可验证身份可以提高效率。在一些实施例中,在区块链交易中验证预期接收者的身份可包括对照公共信任的数字证书检查受让人的地址,该数字证书可认证与特定加密公钥相关联的特定识别信息。仅拥有预期接收者持有的相应私钥就足以验证受让人的数字身份。
11.本发明由独立权利要求限定。从属权利要求定义了优选的实施例。
12.根据第一方面,提供了一种通过验证受让人的特定身份信息来执行一系列作为要约和接受操作的区块链交易的系统,其特点在于,该系统可操作以:
13.(a)通过第一计算设备形成区块链,该区块链具有一个或多个节点,每个节点包含区块链地址,
14.(b)由第一服务器通过提供与第一实体相关联的认证证书在区块链上建立信任根,其中,该认证证书包括字段,该字段包括与区块链地址相对应的公钥,该区块链地址在区块链上存在未使用交易输出(utxo),
15.(c)从第一服务器向第一实体颁发认证证书,
16.(d)由第二服务器创建发行交易,该发行交易使用区块链上的未使用交易输出(utxo),该未使用交易输出(utxo)对应于与第一实体关联的认证证书,
17.(e)由第一计算设备创建要约交易,该要约交易包含可由第一实体的身份凭证的公钥使用的交易输出,以及
18.(f)由第二计算设备创建接受交易,该接受交易包括作为输入的转移输出。
19.本发明的优点在于,系统和相关计算机实现的方法提供了可用于在区块链上实现智能合约的合约元素。
20.可选地,在该系统中,要约人可以创建包含输出的要约交易,该输出在使用时作为指定的受要约人的接受,该接受需通过相应身份凭证输出的私钥来进行签名。
21.可选地,在该系统中,通过要求受要约人为单个已验证合同交易提供并签署身份凭证输入,要约人和受要约人可共同创建一种包含要约和接受的集成合约交易。
22.根据第二方面,提供了一种使用系统执行一系列作为要约和接受操作的区块链比特币交易的方法,其中该系统可操作以建立和确认交易对手(即受让人)的身份信息。其特点在于,该方法包括:
23.a)通过第一计算设备形成具有一个或多个节点的区块链,每个节点包含区块链地址,其中一个或多个节点中的第一节点具有与交易相关联的第一区块链地址,
24.b)由认证服务器建立认证证书以在与第一实体关联的区块链上建立根输出,其中,该认证证书包括根证书,该根证书指定与区块链地址相对应的公钥,该区块链地址在区块链上存在未使用交易输出(utxo),
25.c)从认证服务器向与第一计算设备相关联的第一实体颁发认证证书,
26.d)由发行服务器创建发行交易,该发行交易使用未使用交易输出(utxo),该未使用交易输出(utxo)对应于与第一实体关联的认证证书,
27.e)由与第一计算设备相关联的第一实体创建要约交易,该要约交易包括可由第一实体的身份凭证的公钥使用的交易输出,
28.f)由与第二实体相关联的第二计算设备创建接受交易,该接受交易包括作为输入的转移输出。
29.可选地,该方法可包括如果要约人在区块链比特币交易中创建的转移输出在指定时间段内未被受要约人接受,则该转移输出会被要约人收回。通过这种方式,要约人可以提供有时限的要约。
30.可选地,该方法可以包括受要约人在p2pkh区块链比特币交易中将一个或多个输出重新分配给受要约人或重新分配回要约人的接受,以减少歧义。
31.可选地,该方法可以包括要约人和受要约人签署单个合同的交易。
32.在一些实施例中,可以包括以下特征中的一个或多个。
33.a.区块链可以是比特币区块链。
34.b.区块链地址可以是比特币地址。
35.c.认证证书可以是x.509证书。
36.e.地址字段可以是x.509证书的扩展字段。
37.f.服务器可与证书服务关联。
38.g.个人或机构身份可与区块链相关联。
39.h.身份功能可与比特币分开维护。
40.在一些实施例中,要约人(例如,让与人)可以创建具有至少两个输入的“合同”交易:(1)与待转移的比特币对应的“要约”输入,以及(2)使用受要约人的“身份凭证”输出的“接受”输入。根据这样的实施例,在“合约”交易中,可以将“转移”输出分配给指定的比特币地址。即,预期接收方(例如,受让人/受要约人)的比特币地址。要约人可以通过对“合约”交
易进行数字签名来提出要约。
41.在一些实施例中,预期接收方(例如,受让人/受要约人)可以通过对上述“合约”交易进行数字签名来表示他或她的接受。数字签名既可以作为接受操作,也可以确立预期接收方(例如,受让人/受要约人)的身份。
42.在一些实施例中,上述“合约”交易可以将合约交易的“转移”输出分配给指定的比特币地址(例如,受让人的比特币地址)。
43.在一些实施例中,要约人可以通过对“合约”交易进行数字签名来提出要约。
44.在一些实施例中,为了在区块链比特币交易中验证受要约人的身份,要约人可以规定只有特定的身份凭证才能签署有效的接受交易。以这种方式,要约人可根据公开可信的数字证书检查受要约人的比特币地址来验证交易中受要约人的身份信息。数字证书以各种方式证明受要约人的比特币地址。例如,数字证书可以在扩展中包括受要约人的比特币地址或受要约人的相应加密公钥。或者,证书的加密公钥可以对应于派生比特币地址的相同公钥。通过这种方式,区块链上的输出可以链接到特定的数字证书,因此也可以链接到ca验证的个人或机构身份。在某些情况下,只有数字证书的私钥的持有者,假定是证书的主体,才能持有在区块链上使用输出所需的相应私钥。
45.在一些实施例中,将身份表示为区块链上必须未使用(即utxo)才有效的特定输出可能是有益的。此外或替代地,在区块链上抽象地表示身份作为共享密钥可能是有益的,即使例如ca撤销相应的数字证书,也可以使用该共享密钥。
46.在本发明的一个实施例中,提供了一种计算机程序以及非暂时性计算机可读记录介质,该计算机程序包括程序代码装置,当所述计算机程序在计算机上执行时,该程序代码装置用于使计算机执行本文公开的计算机实现方法的步骤,非暂时性计算机可读记录介质在其中存储计算机程序产品,当由处理器执行时,其执行本发明公开的方法。
47.正如相关领域的技术人员所理解的,一种用于创建一系列经过认证的区块链交易的系统,该系统用于认证预期接收人的身份并在区块链交易中充当要约和接受。例如,其可以包含计算机系统、方法或计算机程序产品。因此,各种实施例可以是完全采用硬件实施例、完全采用软件实施例或结合软件和硬件方面的实施例。此外,一些实施例可以采用存储在计算机可读存储介质上的计算机程序产品的形式,该计算机可读存储介质具有包含在该存储介质中的计算机可读指令(例如,软件)。各种实施例可以采取网络、移动、可穿戴计算机及计算机软件的形式。可以使用任何合适的计算机可读存储介质,包括例如硬盘、光盘、dvd、光存储设备和/或磁存储设备。
48.根据一个方面,受要约人的接受应当是明确的。在一些实施例中,受让人表达接受的一种方式可以是自己分配一个接受给他自己。替代地或另外地,这可以通过在交易中包括特定类型和值的输出来实现。
49.应当理解,本发明的优选实施例还可以是从属权利要求或上述实施例与各自独立权利要求的任意组合。例如,通过使用标称值为零的输出和相应输入,可以以相对明确的方式实现身份凭证、承诺输出和其他“信号”输出。在这样的实现方式中,使用零值“代币”的是可能的,因为比特币的共识规则允许交易具有标称值为零的零值输出和零值输入,前提是,(1)每个输入的标称金额不小于零(即不为负),以及(2)名义产出金额的总和不大于名义投入金额的总和。
50.参考下文描述的实施例,本发明的这些和其他方面将变得显而易见并被阐明。
51.附图的简要说明
52.通过以下对附图的描述,可以更充分地理解前述特征。附图有助于解释和理解所公开的技术。由于说明和描述每个可能的实施例通常是不切实际或不可能的,因此提供的附图描绘了一个或多个示例性实施例。因此,附图并非旨在限制本发明的范围。图中相同的数字表示相同的元件。
53.图1是表示包括认证服务器的比特币系统操作方式的高级架构的图示。
54.图2是区块链的框图。
55.图3是认证证书的框图。
56.图3a是包括二维码的系统的图。
57.图4是使用系统执行一系列作为要约和接受操作的区块链比特币交易的过程的顶级流程图,其中该系统可操作以建立和确认交易对手(即受让人)的身份信息。
58.图5是相对于图4的更详细的流程图,图4是使用系统执行一系列作为要约和接受操作的区块链比特币交易的过程的顶级流程图,其中该系统可操作以建立和确认交易对手(即受让人)的身份信息。
59.图6是计算设备的框图。
具体实施方式
60.在下文中,将参照附图详细描述本发明的示例性实施例。然而,本发明可以以许多不同的形式体现,并且不应被解释为限于本文所述的实施例。相反,提供这些实施例是为了彻底和完整地公开本发明,并且将向本领域技术人员充分传达本发明的保护范围。在整个附图中,相同或相似的附图标记用于表示相同或相似的元件。
61.在此讨论的方法和系统的示例不局限应用于下文描述或附图中示出的构造细节和部件布置。本领域技术人员应理解,所述方法和系统能够在其他实施例中实施并且能够以各种方式实践或执行。此处提供的具体实施例仅用于说明目的,并不旨在进行限制。此外,本文使用的措辞和术语仅用于描述,不应视为限制。对本文中以单数形式提及的系统和方法的示例、实施例、组件、元件或动作的任何引用也可以包含包括复数的实施例,而对本文中任何实施例、组件、元件或动作的任何复数形式的引用也可以包含仅包括单数的实施例。单数或复数形式的引用并不旨在限制本发明的系统或方法、及其组件、动作或元件。本文中“包括(including)”、“包括(comprising)”、“具有”、“包含(containing)”、“涉及”及其变体的使用旨在涵盖其后列出的项及其等效项以及附加项。对“或”的引用可解释为包含性的,因此使用“或”描述的任何术语可表示所描述的单个、多个和所有术语中的任何一个。
62.本领域技术人员应认识到,当描述区块链时,术语“区块”通常用于指区块链中的区块,术语“节点”通常用于指闪电网络中的节点。然而,在本发明中,术语“区块”和“节点”可互换使用以指代区块链中的区块、闪电网络中的节点或两者。术语“区块”和“节点”也可解释为表示本发明的上下文中合适的任何区块或节点。
63.下面参考方法、装置(例如,系统)和计算机程序产品的框图和流程图来描述各种实施例。应当理解,方框图和流程图的每个块以及方框图和流程图插图中的块的组合可以分别由执行计算机程序指令的计算机实现。这些计算机程序指令可以加载到通用计算机、
专用计算机或其他可编程数据处理设备上以产生机器,使得在计算机或其他可编程数据处理设备上执行的指令创建用于实现流程图单个块或多个块中指定的功能的方法。
64.这些计算机程序指令也可以存储在计算机可读存储器中,该存储器可以指导计算机或其他可编程数据处理设备以特定方式运行,使得存储在计算机可读存储器中的指令产生被配置用于实现流程图单个块或多个块中指定的功能的制品。计算机程序指令还可以被加载到计算机或其他可编程数据处理设备上,以使得在计算机或其他可编程设备上执行一系列操作步骤,以生成计算机实现的过程,使得在计算机或其他可编程设备上执行的指令提供实现流程图单个块或多个块中指定的功能的步骤。计算机程序指令还可以存储在载体介质或可读形式的设备上,例如存储在固态存储器、磁存储器(如磁盘或磁带)、光学或磁光可读存储器(如光盘或数字多功能磁盘等)中,所述处理设备利用所述程序或其一部分来配置它以进行操作。计算机程序可以从包含在通信介质中的远程源提供,如电子信号、射频载波或光载波。这种载体介质也被设想为本发明的方面。
65.因此,方框图和流程图的块支持用于执行指定功能的机制的组合、用于执行指定功能的步骤的组合以及用于执行指定功能的程序指令。还应当理解的是,框图和流程图中的每个块,以及方框图和流程图中块的组合,可以由执行指定功能或步骤的专用硬件计算机系统,或专用硬件和其他执行适当计算机指令的硬件的组合来实现。
66.提供一种系统和方法,该系统和方法用于通过使用建立和确认身份的一系列的区块链比特币交易来验证转移,其中这一系列区块链比特币交易作为要约和相应的接受进行操作。实施例提供了一种系统,该系统用于通过作为交易中的要约和相应接受操作的一系列区块链比特币交易来建立和确认交易对手(即,受让人)的身份信息。认证中心(ca)最初在区块链上建立“根”输出,该“根”输出与ca的x.509根证书共享私钥。此后,ca通过花费其“根”输出来创建“发行”交易。此“发行”交易的“身份”输出可由ca颁发给用户的数字证书中指定的公钥使用。用户可以使用其相应的私钥签署交易以在区块链上声明其个人身份,交易对手可以要求该用户签名以完成经验证的转移。经验证的转移可包括根证书,该根证书与未使用交易输出(utxo)的比特币地址共享公钥和私钥,并向与该用户的比特币地址共享私钥的用户颁发数字证书,并向与该用户证书共享私钥的比特币地址赋值。用户可以通过将已转移的比特币重新分配到她自己的地址来接受转移。
67.参考图1计算系统100包括在网络106上通信的计算设备102和104。计算设备102和104可以是能够执行软件指令的任何类型的计算设备,包括但不限于诸如台式计算机、笔记本电脑、移动电话、服务器、物联网(iot)传感器、嵌入式设备等。网络106可以是允许计算设备彼此通信的任何类型的网络,包括但不限于wan、lan、因特网等。
68.系统100还可包括可与用户注册和认证服务相关联的一个或多个服务器108。用户注册和认证服务可以是颁发和/或提供数字证书的服务,这些证书用于提供地址、身份、交易、签名等的安全认证(例如,对应于公钥基础设施(pki)的认证中心(ca))。用户注册和认证服务还可以使用非对称加密(例如,使用公钥/私钥对公钥加密)提供认证,以建立数据或交易的来源或实体与数据或交易的关联(例如,通过见证或授权数字签名或交易)。
69.系统100还可以包括与实体112相关联的服务器110。实体112可以是公司、个人或具有可由服务器108认证的身份的任何其他法律实体。例如,ca可以验证实体的名称、邮件地址、互联网域名和比特币地址。可选地,也例如,ca可以通过要求实体证明与区块链标识
符对应的私钥的所有权(例如,通过提供使用与比特币地址对应的私钥构造的数字签名),来建立区块链标识符(例如,比特币地址)的所有权。
70.系统100显示为相对最小的系统,该系统具有两个计算设备102和104、与用户注册和认证服务相关联的服务器108以及与通过网络106进行通信的实体112相关联的服务器110。然而,附加设备还可以通过网络106进行通信,并与系统100交互或作为系统100的一部分。为了便于说明,这些设备未示出。
71.还参考图2,区块链200可与系统100相关联。区块链200可以全部或部分地由计算设备102和104以及服务器110存储。未示出的其他设备也可以存储整个区块链200或区块链200的一部分。在实施例中,区块链200可以是比特币区块链、闪电网络等(注意,尽管闪电网络不一定是区块链,但本发明中描述的系统和技术可以在闪电网络上运行或与闪电网络一起运行),区块链200可以是允许任何实体或个人参与的公共区块链,例如比特币区块链或以太坊区块链。在其他实施例中,区块链200可以是具有封闭用户组和私人交易的私有区块链,或者可以是由组或财团管理的混合区块链。
72.不管区块链200的类型如何,各种实体都可以与区块链中的交易相关联。例如,区块链200可以包括将资金从一个实体转移到另一个实体的区块链比特币交易。可选地,交易可以与一个或多个源地址(与授权交易输入的实体相关联)和/或目的地地址(与潜在地能够对交易的输出行使权利的实体相关联)相关联。出于金融(和其他)交易的安全性考虑,如果交易各方可以对交易他方的身份的真实性进行验证,则可能是有益的。例如,如果接收者是一家银行,则验证接收者地址是否与正确的银行相关将有利于让与人。
73.区块链200可以由诸如设备102和104之类的计算设备创建、维护和扩展。区块链200可以包括一系列区块(在本发明中也称为节点),如原始区块202。术语“区块链”可以指整个区块链200结构,也可以指结构内最长的不间断链。(例如,区块204)。区块链200还可以包括从主区块链分支的节点(例如区块206)。
74.每个区块可以包含与该区块相关联并用于接受和发送区块链交易的地址210,以及数据交易的哈希树212。在实施例中,区块可以与特定实体相关联。因此,区块的地址210也可以与特定实体相关联。例如,如果资金被转移到地址210,则这些资金可供与块214相关联的实体使用。
75.闪电网络是建立在底层区块链(如比特币)之上的第二层协议。通过抵押,成对的用户真诚协商签订协议。这些协议称为通道,可以记录在区块链200中(例如,作为“融资”交易)。每一对用户通过使用正在进行的谈判和部分签署但未记录的合同(即“链外”)来更新通道,以调整通道抵押品的分配并延迟区块链上的结算。为了转移资金,发送方更新与另一方的未记录合同,而另一方又更新其与另一方的合同,依此类推,直到流程到达接收者。结果可能是一系列合同更新。
76.各方必须真诚地进行谈判(包括否认过去被撤销或更新的合同),否则可能会失去闪电网络中的抵押品。如果谈判破裂且没有争议或违约,可根据最新合同更新中商定的分配返还抵押品。
77.通过将记录延迟到区块链,闪电网络允许更高的交易量和近乎即时的确认:
78.区块链本身的速度和容量限制并不直接限制闪电交易。自动和近乎即时的谈判和合同更新可能不需要立即记录在区块链中,也就是说,它们可以发生在链外。然而,在某些
情况下,区块链限制了纠纷解决和处理的速度和数量。假设纠纷和解决比日常交易少得多,闪电网络可以实现非常高的交易可扩展性。
79.标准的区块链比特币交易通常不被接受为最终的或不可撤销的(例如,“确认”),直到它被包含在区块链中——即,直到它被包含在一个区块中,并且在它之后链接了一些额外的块。在交易进入区块之前,它还不是区块链的一部分,可能仍然容易受到双重支付的影响。区块链的工作量证明不保护未经确认的交易。
80.在闪电网络中,尽管延迟了对区块链的结算,但它以信任最小化的方式延迟。闪电支付完成后,其会立即收到闪电网络交易自带的信任最小化保护,即,如果交易对手违反未记录的合同,那么她的抵押品将会被没收。因此,闪电支付虽然发生在链外且技术上未经确认,但实际上是最终的支付,也是几乎即时的支付。
81.在闪电网络中,比特币可能会在每个单独的通道内来回振荡。在闪电交易中,单个比特币可能不会在单个交易中从初始发送方一直移动到最终接收方。相反,闪电网络可能会形成巨大的振荡比特币网络,每个比特币只能在单个通道内来回移动。
82.就像交流变压器一样,闪电网络中的节点可以维护不同值的通道,和其他“大功率”节点创建大通道,同时直接与其他用户维护任意小通道。在这样做时,这些节点可以充当变压器,将非常高容量的流量转换为非常适合日常消费者交易的可管理的小流量。类似地,这些节点可以聚集沿类似方向移动的小流量,以便在更高容量的通道上进行捆绑传输。在末端节点具有有限的网络连接或计算资源的情况下,此类高容量节点还可以处理一些路由和通道监测任务。例如,低容量节点可以将可能安全的路线确定外包给可信的、经过身份验证的高容量节点或连接良好的节点。
83.此外,因为闪电通道必须有资金,所以节点可能有大量可用资金,并可能维护更多(和更高价值)的通道。随着高度连接的集线器出现在闪电网络中,它们仍将被信任最小化。通道受闪电网络规则保护,节点可以单方面关闭通道。
84.虽然在闪电网络上的身份基本上是静态和公开的,但交易可能只有交易对手知道——例如交易中的中间节点可以获得一些部分信息,而公共区块链上可以获得一些摘要信息。可选地,闪电网络上的节点身份可与公钥相关联。
85.因此,在闪电网络中,身份和声誉可能对交易很重要。例如,在寻找合同和交易对手时,声誉很重要。声誉使各方能够更有效地评估潜在交易对手是否会遵守有关可用性、连接性和费用的陈述。声誉可基于客观可观察的网络指标,例如正常运行时间、通道数量和容量,以及违规和非相互结算的数量。此类信息可由使用证书认证的可信实体来传播。
86.公共身份允许对收款人和商家进行身份验证。例如,在进行购买时,经验证的身份(例如,使用与实体和公钥关联的认证证书)允许用户验证付款是否将支付给预期的商家,并验证发票和收据。经过验证和认证的身份尤其重要,因为它可以有效地防止中间人攻击,而在匿名数字环境中,如果没有预先存在的信任,则很难防止中间人攻击。
87.公钥基础设施(pki)可以提供有效且包含在内的信任点,其可以在不损害区块链的信任最小化性质的情况下满足信誉和身份这两个需求。
88.例如,在闪电网络上,节点可以由其自身的公钥和网络标识符(例如,ip地址或其他端点标识符)表示。该公钥可以对应于公共信任的x.509数字证书中的公钥(或另一个字段中的相应信息,例如,主题属性或x.509扩展)。例如,再次参考图1,提供认证证书的服务
器108可以提供那些认证证书(例如,作为x.509证书)。该数字证书反过来可用于证实节点的身份(例如,通过公司或域名),该身份由认证中心(ca)或注册机构(ra)验证或确认。例如,通过已验证的闪电节点,用户可以确保付款确实流向了预期的商家。
89.在一些实施例中,为在第2层区块链协议(例如,闪电网络)交易中进行认证而颁发的证书(例如,x.509证书)可以包括发票字段,该字段包含与潜在交易相关的数据(例如,目的地、金额、时间、目的地或授权方的签名,或一个或多个参与者的地理位置)。例如,如果商户在商品或服务销售交易中请求客户付款,则x.509证书可以包括发票字段(例如,作为主题属性或在x.509扩展中),该发票字段包括与潜在交易相关的信息(例如,标准闪电网络发票)。
90.参考图3,服务器108可以颁发能够验证与实体相关联的某些身份信息的认证证书300。可选地,认证证书300可以符合x.509格式,并且可以是x.509证书。可选地,认证证书300还可以由第三方授权或验证,例如,可以使用认证中心(ca)的私钥(例如,与可信或以其他方式授权的数字证书相对应的私钥)对该证书数据的某些部分或全部进行签名。在实施例中,地址210和/或公钥301可以包括、用作或用于导出经验证的属性302,并且可选地可以包含在签名或者以其他方式验证的认证证书300的一部分中,例如通过认证中心(ca)(例如在颁发证书300期间由ca的私钥签名)。认证中心用来签署认证证书300的私钥可以由可信源提供,例如可以与公共认证服务相关联的服务器108。
91.认证证书300可以包括各种字段,包括例如包含、用作或用于验证属性302的字段。例如,认证证书300可以包括公钥,从该公钥可以导出已验证比特币地址或区块链标识符。可选地,证书中的一个或多个字段可以包含一个或多个已验证区块链地址(例如,比特币地址)。这些地址可以是在区块链块214中找到的相同地址210。认证证书300还可以包括实体标识的信息,例如序列号、发行者名称、有效性、公钥、唯一id和包括但不限于作为认证证书300的一部分显示的字段中包含的信息的其他信息。可选地,部分或全部此类信息可包括、用作或用于导出一个或多个已验证的属性(例如,公钥可包括实体的经验证属性,其中该实体验证对相应私钥的拥有)。因此,认证证书300可以将地址210和/或公钥301与可信实体相关联并对其进行认证。
92.认证证书300中包含的已验证属性302不限于区块链地址或公钥。例如,已验证属性可以是ip地址、另一类型的网络地址、与区块链200内的交易相关联的另一唯一标识符、在区块链200内的交易中转移的金额,或可与区块链交易和/或区块链交易中涉及的实体关联的任何其他数据。在实施例中,已验证属性可以是地址引用。例如,已验证属性302可以通过x.509证书的公钥间接引用地址。因此,认证证书300可以用来证实在认证证书300中列出的实体确实是参与已验证属性302相关联的区块链交易的实体。
93.尽管已验证属性302在x.509证书中显示为单独的字段,但其可以存储在x.509证书中的任何位置。此外,在实施例中,已验证属性302可以与x.509证书分开地但相关联地存储。
94.参照图3a,认证证书300可以被编码在二维码350中。例如,二维码可以对der或pem格式的证书进行编码。二维码350随后可由诸如352的计算设备扫描,该计算设备可包括硬件或软件钱包。计算设备可以验证认证证书,以便在交易中确定交易对手的身份(例如,区块链比特币交易中的受让人的身份)。计算设备可以在验证认证证书之后通知用户,例如,
通过显示包含在认证证书中的身份信息以及证书有效的指示。二维码中的认证证书可以向钱包提供与二维码相关联的实体的验证身份,或向钱包提供认证证书,或向钱包提供一个或多个潜在或现有的加密货币或区块链地址,或向钱包提供一项或多项潜在或现有的加密货币或区块链交易(例如,引用或包含比特币地址的链上区块链比特币交易),例如,通过包含加密货币或区块链地址或与此类地址对应的公钥。
95.可选地,钱包可以基于认证证书验证信息的真实性。此外,可选地,钱包也可以验证二维码中的证书,例如通过请求服务器108认证包含在二维码中的认证证书。然后,钱包可以与地址进行交易,确信他们正在与已验证实体进行交易。
96.例如,二维码350可以对认证证书和发票进行编码。在某些情况下,发票可以包含在认证证书中。另外,或者可替代地,二维码350可以对包含加密货币地址或标识符之外的信息的证书进行编码。例如,二维码可包含认证证书,该证书包括url、账户标识符、用户标识符或滚动变化的标识符或周期性变化的标识符(例如,支付宝
tm
,line
tm
,或微信支付
tm
的支付url或帐号)。
97.因此,例如,当实体扫描二维码时,实体可以验证认证证书以及证书或二维码中包含的信息,以确保二维码(和二维码内的信息)与正确的来源相关联。
98.可选地,二维码可以对检索认证证书的在线位置(例如,url)或界面(例如,可通过internet访问的api)进行编码。然后,硬件设备或软件程序(例如,硬件比特币钱包)可以检索认证证书(例如,通过从指定的url下载)并验证证书。例如,用户可以使用移动设备上的比特币钱包来扫描二维码编码或以其他方式引用url,来从url检索认证证书并验证检索到的认证证书,包括例如验证身份信息和包含在证书中或从证书导出的比特币地址。
99.可选地,二维码除了可以从中检索证书的位置之外,还可以包括或编码信息。例如,二维码可以包括目标区块链或加密货币地址,以及可以从中检索认证证书的url。可选地,该证书可用于建立与加密货币或区块链地址对应的身份,并确保该加密货币或区块链地址与二维码中编码或包含的地址相匹配。可选地,检索到的证书可用于检查二维码中包含的、二维码附加的或以其他方式与二维码中包含的信息相关的数字签名(例如,通过检查二维码中包含的数据是否已由对应于证书的私钥有效签名)。
100.本发明提供了一种使用系统执行一系列作为要约和接受操作的区块链比特币交易的方法,其中该系统可操作以建立和确认交易对手(即受让人)的身份信息。更一般地说,这一系列区块链比特币交易可以作为要约和相应的接受。参照图4对该方法做出了顶层描述,参照图5对该方法在更详细的层次进行了描述。
101.参照图4,流程图描述了在顶层描述的方法400,该方法用于使用系统来执行一系列作为要约和接受操作的区块链比特币交易,其中该系统可用于建立和确认交易对手(即受让人)的身份信息,其特点在于,该方法包括:
102.在步骤402中,认证中心(ca)在区块链上建立“根”输出。这个“根”输出可以与ca的x.509根证书共享一个私钥。“根”输出指定了一个与区块链上的比特币地址相对应的公钥,该比特币地址在区块链上存在未使用交易输出(utxo)。
103.在步骤404中,颁发机构向第一实体颁发数字证书(例如,受要约人)。数字证书可以是x.509数字证书。数字证书可以通过各种方式证明(即证实)区块链上存在未使用交易输出(utxo)的比特币地址。例如,数字证书可以在其主题或扩展中包括比特币地址或相应
的加密公钥。或者,数字证书的加密公钥可以对应于导出比特币地址的相同公钥。
104.在步骤406中,颁发机构创建“发行”区块链比特币交易,该交易在步骤402中指定的比特币地址上使用(utxo)。在一实施例中,该区块链比特币交易可包括两个输出。第一输出对应于身份凭证输出,该身份凭证输出可由与由颁发机构颁发给第一实体的数字证书相对应的公钥来使用。第二个“新根”输出代替当前(例如,现在使用的)根输出。
105.在步骤408中,第二实体(即“要约人”)创建“要约”交易。“要约”交易包括单个输出,该输出是可由第一方(即“受要约人”)的身份凭证的公钥使用的“转移”输出。可选地,在一些实施例中,声明“转移”输出可能需要与新生成的比特币地址相对应的第二签名。在一些实施例中,第二签名还可以指定有限持续时间的锁定时间,在该锁定时间之后要约人可以撤销无人认领的“转移”输出。
106.在步骤410中,第一实体(例如,受要约人)创建“接受”交易,该“接受”交易包括作为输入的“转移”输出,它是在步骤408的“要约”交易中创建的。要创建此“接受”交易,受要约人必须使用与他或她身份凭证相对应的私钥对声称的转移输出进行签名,从而建立他或她的数字身份。受要约人可以通过使用“要约”交易的“转移”输出来接受要约人的“已验证转移”,例如在步骤408创建的那个。在一些实施例中,受要约人的“接受”交易可以是p2pkh区块链比特币交易,这可以通过包括重新分配给他自己(即受要约人)或重新分配回要约人的一个或多个输出来减少歧义。
107.参照图5,一流程图将图的方法400描述为更为详细的过程500,该过程500用于在作为比特币区块链上的要约和接受的交易中验证受让人的某些身份信息。值得注意的是,过程400和500可由希望获得交易其他方身份保证的实体使用。
108.在步骤502中,服务器108上的认证中心形成区块链。区块链具有一个或多个节点,每个节点具有区块链地址,其中一个或多个节点中的第一节点具有与交易相关联的第一区块链地址。区块链可以存储在计算设备102或104上。
109.创建发布交易(步骤504-524)
110.在步骤504中,服务器108上的颁发机构生成第一私钥,该私钥可以是secp256k1椭圆曲线私钥。第一私钥是单个32字节的无符号256位整数,本质上是一个随机生成的“秘密”数字,只有生成它的人知道。有效私钥的范围由比特币使用的“secp256k1ecdsa标准”管理。与私钥相对应的公钥不需要保密。
111.在步骤506中,服务器108上的认证中心应第一实体的请求并使用第一私钥生成根证书,指定公钥。根证书包括包含公钥的字段,该公钥对应于在步骤502形成的区块链上的区块链地址,该区块链地址在区块链上存在未使用交易输出(utxo)。
112.在步骤508中,计算设备102上的第一实体使用在步骤506中生成的第一私钥来生成第一比特币地址。生成的第一比特币地址与认证中心(ca)的“根”比特币地址相同。步骤508包括子步骤510、512。
113.在子步骤510中,计算设备102上的第一实体使用在步骤504中生成的第一私钥创建钱包导入格式(wif)字符串。
114.在子步骤512中,第一实体使用来自子步骤510的wif字符串将第一私钥导入区块链比特币交易系统。比特币交易系统是客户使用金融自动机当场存入现金,并从比特币交易所购买比特币或将自己的比特币出售给比特币交易所的系统。通过安装在各地的金融自
动机,可以轻松方便地进行比特币现金交易,从而激活比特币的使用。
115.在步骤514中,服务器108上的颁发机构生成区块链比特币交易,其输出可由ca的根证书的公钥使用。这就是ca的“根”输出。
116.在步骤516中,服务器108上的颁发机构生成第二私钥。第二个私钥是单个32字节的无符号256位整数,本质上是一个随机生成的“秘密”数字,只有生成它的人知道。有效私钥的范围由比特币使用的“secp256k1ecdsa标准”管理。
117.在步骤518中,服务器108上的颁发机构使用在步骤512生成的第二私钥生成第二比特币地址。这是第一用户的“身份凭证”的比特币地址。
118.在步骤520中,服务器108上的认证中心为第一用户生成证书签名请求(csr)。在一个实施例中,当一方请求数字证书作为注册过程的一部分时,ca执行完整的身份调查和认证过程。但是,一旦此注册过程完成,并且无论何时第一方提交csr,ca都会自动颁发数字证书作为响应。
119.在步骤522中,服务器108上的颁发机构根据在步骤516生成的第一用户的csr向第一用户颁发叶证书。
120.在步骤524中,颁发机构在服务器108上创建“发行交易”。使用ca根地址的第一私钥,颁发机构创建并签署区块链比特币交易,该区块链比特币交易包括作为输入的ca的根输出。“发行交易”还包括一输出,该输出可通过第一用户身份凭证的比特币地址来使用。在一些实施例中,“发行交易”可以是具有“身份凭证”输出的标准区块链比特币交易,该“身份凭证”输出由支付到公钥哈希(p2pkh)比特币地址(即,常规比特币地址)来使用。在其他实施例中,使用“发行”交易的“身份凭证”输出可能需要二选一的多重签名赎回脚本(即,它可以是“多重签名”钱包)。在这种情况下,例如,用户的身份凭证只有在用户的身份凭证输出未使用时才有效。可选地,通过使用(例如,消费)身份凭证,发行人(例如ca)可以将身份凭证撤销,或者用户可以使其失效。可选地,用户接受ca提供的身份要约也可以是p2pkh比特币交易,可包括一个或多个零值输出,例如,自我分配或分配回颁发ca。
121.创建要约交易(步骤526

530)
122.在步骤526中,第一实体在计算设备102上创建“要约”交易,该“要约”交易具有可由第一方身份凭证输出的公钥使用的“转移”输出。步骤522包括子步骤524、526。在一些实施例中,“转移”输出可能需要来自受要约人的两个签名。例如,两个必需的签名可以对应于(1)新生成的接收地址,以及(2)受要约人的“身份凭证”。
123.在子步骤528中,第一实体在计算设备102上生成第三私钥。第三私钥是单个32字节的无符号256位整数,本质上是一个随机生成的“秘密”数字,只有生成它的人知道。有效私钥的范围由比特币使用的“secp256k1ecdsa标准”管理。
124.在子步骤530中,第一实体在计算设备102上创建并签署区块链比特币交易,该交易具有可由第一用户的“身份凭证”的比特币地址使用的输出(例如,“转移”输出)。在一些实施例中,可以创建“集成”合约交易来代替第一实体签署区块链比特币交易。该“集成”合约交易可包括与第一用户的“身份凭证”输出相对应的输入,因此需要第一用户对交易进行签名。在一些实施例中,第一用户的私钥可用于签署“集成”合约交易。在一些实施例中,完全签署的“合同”交易的发布或提交可以作为要约和接受两者来操作。下文将更全面地讨论“集成”合约交易。
125.创建已验证的接受交易
126.在步骤532中,第二实体在计算设备104上创建已验证的接受交易。
127.集成合约
128.在一些实施例中,如上文子步骤530所述,可以创建“集成”合同交易来代替第一实体签署区块链比特币交易。在创建“集成”合约的情况下,该“集成”合约交易可包括与第一个用户的“身份凭证”输出相对应的输入,因此需要第一用户对交易进行签名。在一些实施例中,第一用户的私钥可用于签署“集成”合约交易。在受要约人通过签署“身份凭证”输入到“集成的“合同”交易来表达他或她的接受的实施例中,签署可以如下进行:
129.a.要约人可以构建早期的“合同”交易并使用特定类型的签名来签署他的输入。在一实施例中,要约人可以指定sighash_single标志,相对于交易的输出,该标志仅提交给特定的“转移”输出。例如,返回的余数。
130.b.受要约人可以表示接受,并通过使用特殊类型的签名在“合同”交易的“身身份凭证”输入上签名,从而完成“合同”交易。例如,受要约人可通过使用sighash_single标志签名来接受“已验证转移”,对于交易的输出,该标志仅承诺给受要约人希望接受的“转移”输出。
131.减少受要约人接受中的歧义
132.在上述实施例中,受要约人的接受可以表示为一种交易,该交易包含将“转移”输出重新分配给受要约人的输出。可以想象的是,受要约人可以出于某种未知的原因创建这种接受交易,而不打算实际表示接受,特别是任何隐含的条款。将报价和接受整合到单个交易中可以大大减少这种潜在的歧义。在一实施例中,解决此类歧义可能需要使用交易类型或操作码,该交易类型或操作码既可以明确表示接受要约,也可以通过引用(例如,通过散列)纳入明确的要约条款,特别是任何未经区块链共识规则保护或自动执行的条款。例如,在一实施例中,可以使用有限持续时间的锁定时间。锁定时间到期后,消费路径可能会失效。通过在一定时间后自动撤销要约,这种机制可以允许要约人提供有时间限制的要约。这还可以减少歧义,该歧义是由(例如)通过允许在指定时间段后使用新的、额外的消费路径来撤销交易而导致的,这是一种可能导致竞争条件的技术。
133.计算系统600包括处理器602(其可以与处理器110相同或相似)、随机存取存储器(ram)604和存储设备606,其可以是硬盘驱动器、cd、dvd、闪存驱动器或任何其他类型的非易失性存储器。软件指令可以存储在ram804和/或存储设备606中。处理器602可以耦合到存储设备606和/或ram704,使得处理器602可以读取软件指令。当处理器602读取软件指令时,软件指令可以使处理器602执行如上所述的用于计算磁性目标的位置的操作。尽管未示出,处理器602和/或系统600可包括其他输入和输出,例如用于接收来自感测元件的信号的输入、gpio、电源输入或其他接口,例如usb、sata、hdmi等。
134.上述系统和技术可用于验证任何区块链交易中涉及的实体。例如,公共信任的x.509数字证书将允许用户(以及软件和硬件钱包)验证特定的区块链地址实际上是由预期的接收者而不是中间人控制的。软件或硬件钱包也可以使用x.509数字证书来验证接收者的身份。
135.上述系统、设备和方法是为了理解和说明而示出的示例系统、设备和方法。这些系统、设备和方法的变化在本发明的范围内。同样,等效的系统、设备和方法也在本发明的范
围内。图中所示和本发明中所述的流程图不一定需要任何特定的步骤顺序。此外,可以根据需要添加、移除、重新排列和重新排序各种步骤,以产生相同或类似的结果,并保持在本发明的范围内。
136.本专利中描述了各种实施例。然而,本专利的范围不应限于所描述的实施例,而应仅由所附权利要求的精神和范围来限制。本专利中引用的所有参考文献均通过引用整体并入。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献