会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 赌博 / 交易记录 / 用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统

用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统

阅读:718发布:2021-02-28

IPRDB可以提供用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统专利检索,专利查询,专利分析的服务。并且提供一种确定与一定加密货币数额相关联的通证(T)的有效性的计算机实现的方法。在一些实施例中,该方法包括:第二用户(B)通过通信网络接收包括将通证(T)从第一用户(A)转移给第二用户(B)的第一交易;查询点对点分布式账本以确定是否可以标识与通证(T)相关联的认证交易,其中,认证交易包括与通证(T)相关联的先前交易,并且其中,通证(T)已被授权;以及响应于标识出认证交易,确定通证(T)是有效的。在一些实施例中,该方法包括:第二用户:通过通信网络接收包括将通证从第一用户转移到第二用户的第一交易;查询所有权登记数据库以确定所有权登记数据库中是否记录包括所述通证的转移的第二交易;以及响应于所有权登记数据库中记录所述第二交易,确定该通证是有效的。,下面是用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统专利的具体信息内容。

1.一种确定与加密货币数额相关联的通证的有效性的计算机实现的方法,所述方法包括:通过通信网络接收包括将通证从第一用户转移到第二用户的第一交易;

查询点对点分布式账本,以确定是否可以标识与所述通证相关联的认证交易,其中,所述认证交易包括与所述通证相关联的先前交易,并且其中,所述通证已被授权;以及响应于标识认证交易,确定所述通证是有效的。

2.根据权利要求1所述的方法,其中,查询所述点对点分布式账本包括:响应于确定所述第一交易的通证尚未被认证,查询所述点对点分布式账本。

3.根据权利要求2所述的方法,其中,确定所述通证尚未被认证包括:确定与所述通证相关联并且被引用作为对所述第一交易的输入的兑换脚本尚未由授权签署人签署。

4.根据权利要求1至3中任一项所述的方法,其中,所述授权交易的通证由授权签署人签署。

5.根据权利要求3或权利要求4所述的方法,其中,所述授权签署人包括受信服务提供商和所述通证的发行方中的至少一个。

6.根据前述权利要求中任一项所述的方法,其中,查询所述点对点分布式账本包括:a)确定所述第一交易中指示的先前交易ID;

b)标识所述点对点分布式账本中记录的在先交易,其中,所述在先交易的交易ID对应于所确定的先前交易ID;

c)确定所述在先交易的兑换脚本是否已由授权签署人签署;

d)响应于确定所述在先交易的兑换脚本已经由授权签署人签署,将所述在先交易标识为授权交易;

e)响应于确定所述在先交易的兑换脚本尚未由授权签署人签署,将所述在先交易中指示的先前交易ID确定为先前交易ID;以及将记录在所述点对点分布式账本中的另一在先交易标识为所述在先交易,其中,所述另一在先交易的交易ID对应于所述先前交易ID;以及f)迭代地执行步骤c)至步骤e),直到没有标识出其他的在先交易为止。

7.根据前述权利要求中任一项所述的方法,还包括:响应于无法在所述点对点分布式账本中标识出认证交易,确定所述通证是无效的。

8.一种确定与加密货币数额相关联的通证的有效性的计算机实现的方法,所述方法包括:第二用户:通过通信网络接收包括将通证从第一用户转移给第二用户的第一交易;

查询所有权登记数据库,以确定包括所述通证的转移的第二交易是否记录在所述所有权登记数据库中;以及响应于确定所述第二交易记录在所述所有权登记数据库中,确定所述通证是有效的。

9.根据权利要求8所述的方法,其中,所述第二交易早于所述第一交易。

10.根据权利要求8或权利要求9所述的方法,其中,查询所述所有权登记数据库包括:响应于确定所述通证尚未受认证而查询所述所有权登记数据库。

11.根据权利要求8至10中任一项所述的方法,其中,所述所有权登记数据库包括与包括通证的转移的交易相关的一个或多个条目,每个条目与交易指示符相关联,并且其中,查询所述所有权登记数据库包括:从所述第一交易确定与所述通证相关联的交易指示符;以及将所述交易指示符与所述所有权登记数据库中的一个或多个交易指示符进行比较,以标识所述第二交易。

12.根据权利要求11所述的方法,其中,交易指示符是交易ID。

13.根据权利要求8至12中任一项所述的方法,其中,确定所述通证尚未受认证包括:确定与所述通证相关联并且被引用作为对所述交易的输入的第一兑换脚本尚未由授权签署人签署。

14.根据权利要求13所述的方法,其中,所述授权签署人包括受信服务提供商和所述通证的发行方中的至少一个。

15.根据权利要求8至14中任一项所述的方法,还包括:响应于确定所述第二交易未记录在所述所有权登记数据库中,确定所述通证是无效的。

16.根据权利要求8至15中任一项所述的方法,还包括:响应于确定所述第二交易未记录在所述所有权登记数据库中,查询点对点分布式账本以确定是否可以标识与所述通证相关联的认证交易,其中,所述认证交易包括与所述通证相关联的先前交易,其中,所述通证已被授权,以及响应于标识出认证交易,确定所述通证是有效的。

17.一种通过第一方维护用于记录由发行方发行的通证的转移的所有权登记数据库的计算机实现的方法,其中,每个通证与加密货币数额相关联,所述方法包括:关于包括由发行方发行的通证的转移的交易监控点对点分布式账本;以及响应于确定所述点对点分布式账本中记录包括由所述发行方发行的通证的转移的第一交易,将所述通证的转移记录在所述所有权登记数据库中。

18.根据权利要求17所述的方法,其中,监控所述点对点分布式账本还包括:确定记录在所述点对点分布式账本中的交易的先前交易ID;

将所确定的先前交易ID与一组交易ID进行比较,所述一组交易ID中的每个交易ID标识与由所述发行方发行的通证相关联的交易;以及响应于所确定的先前交易ID与所述一组交易ID中的一个交易ID匹配,将与所述先前交易ID相关联的交易确定为包括由所述发行方发行的通证的转移的所述第一交易的记录。

19.根据权利要求17所述的方法,其中,监控所述点对点分布式账本还包括:确定与所述发行方发行的通证相关联的交易的目标交易ID;

将所述目标交易ID与所述点对点分布式账本中记录的交易的先前交易ID进行比较;以及响应于所述目标交易ID与所述点对点分布式账本中记录的交易之一的先前交易ID匹配,将记录在所述点对点分布式账本中的交易确定为所述第一交易的记录。

20.根据权利要求17至19中任一项所述的方法,还包括:通过将所述发行方的签名添加到与将所述通证的转移记录找所述所有权登记数据库中相关联的条目来认证所述条目。

21.根据权利要求17至20中任一项所述的方法,其中,维护所述所有权登记数据库由所述发行方和批准的服务提供商中的至少一个来执行。

22.根据权利要求17至21中任一项所述的方法,其中,所述所有权登记数据库包括分布式散列表。

23.根据权利要求22所述的方法,其中,所述分布式散列表包括与所述发行方发行的通证相关联的合约。

24.一种用于确定与加密货币数额相关联的通证的有效性的通证验证系统,所述系统包括:存储器,其用于存储验证应用程序;以及处理器,其中,所述处理器用于执行所述验证应用程序以执行权利要求1至16中任一项所述的方法。

25.一种用于维护用于记录通证的转移的所有权登记数据库的所有权登记维护系统,每个通证与加密货币数额相关联,所述系统包括:存储器,其用于存储维护应用程序;以及处理器,其中,所述处理器用于执行所述维护应用程序,以执行根据权利要求17至23中任一项所述的方法。

26.一种计算机软件程序,所述计算机软件程序包括机器可读指令,当所述机器可读指令由处理器执行时使所述处理器执行权利要求1至23中任一项所述的方法。

说明书全文

用于验证用于基于区块链的加密货币的通证的计算机实现的

方法及系统

技术领域

[0001] 本发明总体上涉及分布式账本技术,诸如但不限于比特币区块链。所描述的实施例涉及用于验证基于区块链的加密货币的通证(token)的安全性增强的系统及方法。一些实施例涉及对与区块链交易(TX)相关联的通证进行验证,该区块链交易(TX)尚未被授权签署人进行电子反签。其他实施例涉及系统及计算机实现的控制方法,其被布置成实现并改进计算节点之间的区块链实现的通证的传送和通信。

背景技术

[0002] 在本文献中,我们使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可账本和未许可账本、共享账本以及上述项的变体。区块链最广为人知的应用是比特币账本,然而已经提出并开发了其他区块链实现方式。尽管出于方便和说明的目的可以在此引用比特币,但是应当注意的是,本发明并不限于结合比特币区块链使用,而是可替代的区块链实现方式以及协议落入本发明的范围内。
[0003] 区块链是一种点对点的电子账本,该点对点的电子账本被实现为基于计算机的去中心化的分布式系统,该基于计算机的分散式分布式系统由区块组成,而这些区块又由交易组成。每个交易(TX)是对区块链系统中的参与者之间的数字资产的控制的转移进行编码的数据结构,并且每个交易(TX)包括至少一个输入和至少一个输出。每个区块包含前一个区块的散列,从而区块变为链接在一起,以创建自区块链起始以来已写入区块链的所有交易的永久、不可更改的记录。交易包含嵌入到其输入和输出中的被称为脚本的小程序,所述小程序指定了可以如何访问交易的输出以及可以由谁访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
[0004] 为了将交易写入区块链,必须对交易进行“验证”。网络节点(矿工)执行工作以确保每笔交易是有效的,其中,使无效交易从网络中去除。安装在节点上的软件客户端通过执行其锁定脚本和解锁脚本对未花费的交易(UTXO)执行此验证工作。如果锁定脚本和解锁脚本的执行被评估为真(TRUE),则交易有效并且交易写入区块链。因此,为了将交易写入区块链,该交易必须:i)由接收交易的第一节点验证,如果交易被验证,则节点将该交易中继到网络中的其他节点;ii)添加到由矿工建造的新区块;iii)被开采,即添加到过去交易的公共账本。
[0005] 尽管区块链技术以加密货币实现方式的应用而广为人知,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可存储在区块链上的数据二者以实现新系统。如果区块链可以用于不限于加密货币领域的自动化任务和过程,则将是非常有利的。这样的解决方案将能够利用区块链的优点(例如事件的永久性、防篡改记录、分布式处理等),同时能够在其应用中更加通用。目前研究的一个领域是使用区块链来实现“智能合约”。这些智能合约是设计成自动执行机器可读合约或协议的条款的计算机程序。与将用自然语言编写的传统合约不同,智能合约是一种机器可执行程序,该机器可执行程序包括可以处理输入以产生结果的规则,其然后可以取决于这些结果使得执行动作。例如,在商业交易方面,这些可以涉及财产权和/或资产的转移。这样的资产可以包括不动产、个人财产(包括有形财产和无形财产)、数字资产(例如,诸如软件)或者任何其他类型的财产。在数字经济方面,经常期望以及时的方式且穿过广阔距离执行交换和转移。这种期望连同实际的技术限制一起意味着传统的资产转移形式(诸如,代表合约、可转让票据(negotiable instrument)等的文档的硬拷贝的实际交付)或者有形资产自身不是可期望的。因此,智能合约可以提供转移的增强的控制、效率以及速度。
[0006] 区块链相关兴趣的另一领域是使用“通证”(或“彩色币”)以通过区块链来表示和转移现实世界的实体。潜在的敏感或秘密项目可以由通证表示,该通证没有可辨别的含义或价值。因此,通证用作允许从区块链引用真实世界项目的标识符。通证化的使用在区块链上的数字实体的通信、转移以及验证方面提供了增强的安全性和控制。
[0007] 对本说明书中所包括的文献、法案、材料、设备、物品等的任何讨论并非因为其在本申请的每个权利要求的优先权日之前就已经存在而视为承认:任何这些内容或所有这些内容构成现有技术基础的一部分,或者任何这些内容或所有这些内容是与本公开内容有关的领域的公知常识。
[0008] 在整个说明书中,词语“包括(comprise)”或其变体(诸如“包括(comprises)”或“包括(comprising)”)将被理解为暗含包括所陈述的要素、整体或者步骤,或者要素、整体或者步骤的组合,但不排除任何其他要素、整体或者步骤,或者要素、整体或者步骤的任何其他组合。

发明内容

[0009] 如所附权利要求中所限定的那样,提供本发明的实施例。
[0010] 因为本发明可以使得能够确定和/或标识区块链交易,该区块链交易包括通证或者与通证有关并且已经由授权签署人进行数字签署,所以本发明可以描述成一种验证或认证方法及相应的系统。这可以是通证发行方或者另一方。由于验证技术,因此安全性得到了增强。
[0011] 一些实施例涉及一种用于确定与加密货币数额相关联的通证的有效性的计算机实现的方法。该方法可以包括:第二用户:通过通信网络接收第一交易,该第一交易包括将通证从第一用户转移到第二用户;查询点对点分布式账本(区块链)以确定是否可以标识与通证相关联的认证交易,其中,认证交易包括与通证相关联的先前交易,并且其中,通证已被授权;以及响应于标识认证交易,确定通证是有效的。
[0012] 在一些实施例中,查询点对点分布式账本包括:响应于确定第一交易的通证尚未被认证而查询点对点分布式账本。
[0013] 在一些实施例中,确定通证尚未被认证包括:确定与通证相关联并被引用作为对第一交易的输入的兑换脚本尚未由授权签署人(加密地)签署。授权交易的通证可以由授权签署人签署。例如,授权签署人可以包括受信服务提供商和通证的发行方中的至少一个。
[0014] 在一些实施例中,查询点对点分布式账本包括:a)确定在所述第一交易中指示的先前交易ID;b)标识在所述点对点分布式账本中记录的在先交易,其中,所述在先交易的交易ID对应于所确定的所述先前交易ID;c)确定所述在先交易的兑换脚本是否已由授权签署人签署;d)响应于确定所述在先交易的兑换脚本已经由授权签署人签署,将所述在先交易标识为授权交易;e)响应于确定所述在先交易的兑换脚本尚未由授权签署人签署,将所述在先交易中指示的先前交易ID确定为先前交易ID;以及将记录在所述点对点分布式账本中的另一在先交易标识为所述在先交易,其中,所述另一在先交易的交易ID对应于所述先前交易ID;以及f)迭代地执行步骤c)至步骤e)直到没有标识其他在先交易为止。
[0015] 因此,本发明可以包括:执行上述步骤中的一个或多个步骤以:从初始或“触发”交易开始检查区块链上的各个区块内的不同交易,遵循交易的逻辑路径或层级,直到通证的有效性被建立或通证的有效性被至少充分证明或验证失败为止。
[0016] 在一些实施例中,该方法还包括:响应于在所述点对点分布式账本中无法标识认证交易,确定所述通证是无效的。
[0017] 一些实施例涉及一种用于确定与加密货币数额相关联的通证的有效性的计算机实现的方法,该方法包括:第二用户:通过通信网络接收包括将通证从第一用户转移到第二用户的第一交易;查询所有权登记数据库以确定所有权登记数据库中是否记录包括所述通证的转移的第二交易;以及响应于确定所有权登记数据库中记录所述第二交易,确定该通证是有效的。例如,第二交易可以早于第一交易。
[0018] 在一些实施例中,查询所述所有权登记数据库包括:响应于确定所述通证尚未被认证而查询所述所有权登记数据库。
[0019] 在一些实施例中,所述所有权登记数据库包括与包括通证的转移的交易相关的一个或多个条目,每个条目与交易指示符相关联,并且其中,查询所述所有权登记数据库包括:确定与来自所述第一交易的所述通证相关联的交易指示符;以及将所述交易指示符与所述所有权登记数据库中的一个或多个交易指示符进行比较,以标识所述第二交易。例如,交易指示符可以包括交易ID。
[0020] 在一些实施例中,确定通证尚未被认证包括:确定与通证相关联并被引用作为对交易的输入的第一兑换脚本尚未由授权签署人签署。授权签署人可以包括受信服务提供商和通证的发行方中的至少一个。
[0021] 在一些实施例中,该方法还包括:响应于确定所述第二交易未被记录在所述所有权登记数据库中,确定所述通证是无效的。
[0022] 在一些实施例中,该方法还包括:响应于确定所述第二交易未被记录在所述所有权登记数据库中,查询点对点分布式账本以确定是否可以被标识与所述通证相关联的认证交易,其中,所述认证交易包括与所述通证相关联的先前交易,其中,所述通证已被授权,以及响应于标识出认证交易,确定所述通证是有效的。
[0023] 一些实施例涉及一种通过第一方维护用于记录由发行方发行的通证的转移的所有权登记数据库的计算机实现的方法,其中,每个通证与加密货币数额相关联,所述方法包括:关于包括由发行方发行的通证的转移的交易监控点对点分布式账本;以及响应于确定所述点对点分布式账本中记录包括由所述发行方发行的通证的转移的第一交易,将所述通证的转移记录在所述所有权登记数据库中。
[0024] 在一些实施例中,监控所述点对点分布式账本还包括:确定记录在所述点对点分布式账本中的交易的先前交易ID;将所确定的先前交易ID与一组交易ID进行比较,所述一组交易ID中的每个交易标识与由所述发行方发行的通证相关联的交易;以及响应于所确定的先前交易ID与所述一组交易ID中的一个交易ID匹配,将与所述先前交易ID相关联的交易确定为包括由所述发行方发行的通证的转移的所述第一交易的记录。
[0025] 在一些实施例中,监控所述点对点分布式账本还包括:确定与所述发行方发行的通证相关联的交易的目标交易ID;将所述目标交易ID与所述点对点分布式账本中记录的交易的先前交易ID进行比较;以及响应于所述目标交易ID与所述点对点分布式账本中记录的交易之一的先前交易ID匹配,将记录在所述点对点分布式账本中的交易确定为所述第一交易的记录。
[0026] 在一些实施例中,该方法还包括:通过将所述发行方的签名添加到与将所述通证的转移记录在所述所有权登记数据库中相关联的条目来认证所述条目。
[0027] 在一些实施例中,维护所述所有权登记数据库由所述发行方和批准的服务提供商中的至少一个来执行。
[0028] 在一些实施例中,所有权登记数据库包括分布式散列表。例如,分布式散列表可以包括与所述发行方发行的通证相关联的合约。
[0029] 一些实施例涉及一种用于确定与加密货币数额相关联的通证的有效性的通证验证系统,该系统包括:存储器,用于存储验证应用程序;以及处理器,其中,该处理器用于执行验证应用程序以执行所描述的方法中的任意方法。
[0030] 一些实施例涉及一种用于维护用于记录通证的转移的所有权登记数据库的所有权登记维护系统,每个通证与加密货币数额相关联,所述系统包括:存储器,用于存储维护应用程序;以及处理器,其中,所述处理器用于执行所述维护应用程序,以执行所描述的方法中的任意方法。
[0031] 一些实施例涉及一种计算机软件程序,该计算机软件程序包括机器可读指令,当所述计算机可读指令由处理器执行时,使处理器执行所描述的方法中的任意方法。

附图说明

[0032] 将参考下述附图对本公开内容的示例进行描述,在附图中:
[0033] 图1是根据一些实施例的用于创建和/或转移通证的示例系统的示意图;
[0034] 图2是示出第一用户和发行方之间的第一类型的交易的示例的示意图,所述第一类型的交易包括创建通证;
[0035] 图3是根据一些实施例的用于创建通证的计算机实现的方法的过程流程图;
[0036] 图4是示出第一用户和第二用户之间的第二类型的交易的示例的示意图,所述第二类型的交易包括转移通证;
[0037] 图5是根据一些实施例的用于维护用于记录通证的转移的所有权登记数据库的计算机实现的方法的过程流程图;
[0038] 图6是根据一些实施例的用于验证通证的计算机实现的方法的过程流程图;
[0039] 图7是根据一些实施例的用于验证通证的计算机实现的方法的过程流程图;以及[0040] 图8示出根据一些实施例的图1中的系统中的处理设备的示意性示例。

具体实施方式

[0041] 所描述的实施例涉及用于结合基于区块链的加密货币(例如,比特币)的实现方式的对通证进行验证的系统及计算机实现的方法。一些实施例涉及对与尚未被授权签署人进行反签的交易相关联的通证进行验证。其他实施例涉及用于对用于记录通证的转移的所有权登记数据库进行维护的系统及计算机实现的方法。通证可以是与某种类型的或者物理的实体或资产、电子实体或资产、数字实体或资产或者抽象实体或资产相关联的表示或者标识符。
[0042] 一些实施例涉及用于确定与加密货币数额(B1)相关联的通证(T)的有效性的系统及计算机实现的方法,其中,通证(T)例如通过包括(作用于)通证(T)的转移的区块链交易Tx来从第一用户(A)转移到第二用户(B)。在一些实施例中,通证(T)尚未由例如授权签署人(诸如,通证(T)的发行方或者受信服务提供商)进行认证。
[0043] 在一些实施例中,可以查询点对点分布式账本(区块链)以确定是否可以标识与通证(T)相关联的认证交易。点对点分布式账本可以是比特币区块链或者可以不是比特币区块链。例如,这样的认证交易可以包括与通证(T)相关联的在先交易,其中,该通证(T)已经被授权。响应于授权交易被标识,可以确定通证(T)是有效的。借助于“在先”交易,我们表示先前已经写入区块链的交易,即,较早日期已经写入区块链的交易。应当记得的是,区块(以及因此交易)按照时间顺序写入区块链。先前交易可以描述成进一步回到区块链中的交易,即,更接近原始的、创始区块的交易。
[0044] 在一些实施例中,可以查询所有权登记存储器资源(例如,数据库),以确定包括通证(T)的转移的第二交易是否登记或记录在所有权登记存储器中,其中,第二交易早于第一交易。响应于第二交易(T2)确定为已经记录在所有权登记存储器中,可以将通证(T)确定为有效的。
[0045] 在一些实施例中,一方(P)(诸如,通证(T)的发行方(I))可以负责通过将包括通证的转移的任何交易记录在所有权登记存储器中来维护所有权登记存储器。
[0046] 现在参考图1,示出系统1,该系统1包括:与发行方(I)3相关联的第一处理设备13、与第一用户(A)5相关联的第二处理设备15,以及与第二用户(B)7相关联的第三处理设备17。第一处理设备13、第二处理设备15以及第三处理设备17可以通过通信网络8彼此通信。
第一处理设备13还可以包括相关联的数据存储器11,或者还可以直接与相关联的数据存储器11通信或者通过通信网络8与相关联的数据存储器11通信。
[0047] 尽管第一处理设备13示出为单个节点,但是应当理解的是,第一处理设备13可以包括与发行方(I)3相关联的一个或多个节点,并且描述为由第一处理设备13执行的任何方法的一个或多个步骤可以在第一处理设备13的节点中的不同节点和/或多个节点处分布和执行。
[0048] 在一些实施例中,第二处理设备15和第三处理设备17可以是由相应的第一用户5和第二用户7使用的计算机、移动通信设备或其他电子设备。在其他示例中,第二处理设备15和第三处理设备17可以是分别由第一用户和第二用户经由终端或其他接口可访问的虚拟机。
[0049] 发行方(I)3创建通证,并且可以是例如银行、另一金融机构、铸币厂、公司等。然而,在其他示例中,发行方可以不是金融机构,并且本发明不限于面向金融的应用。第一用户(A)5可以从发行方(I)3请求创建通证,可以请求与发行方(I)3兑换通证的部分价值或全部价值,和/或请求将通证的部分价值或全部价值转移给第二用户(B)7。类似地,第二用户(B)7可以从发行方(I)3请求创建通证,可以请求与发行方(I)3兑换通证的部分价值或全部价值,或者请求将通证的部分价值或全部价值转移给第一用户(A)5。
[0050] 系统1还包括一个或多个处理设备19,所述一个或多个处理设备19用于对用于记录交易的点对点分布式账本(区块链)9进行管理。具体地,一个或多个处理设备19可以用于例如穿过通信网络8分别从第一处理设备13、第二处理设备15和第三处理设备17接收交易,并且对所述交易进行记录。点对点分布式账本9的示例包括区块链,该区块链是基于比特币协议的分布式交易(TX)网络。因此,在一些实施例中,一个或多个处理设备19可以与“矿工”相关联。因此,本发明包括一个或多个处理设备19,所述一个或多个处理设备19与区块链实现的分布式网络通信。网络和各种设备相互通信以实施本发明。
[0051] 在一些实施例中,系统1还包括一个或多个处理设备21,所述一个或多个处理设备21用于对用于记录与通证的转移相关联的交易的所有权登记数据库23进行管理。一个或多个处理设备21可以穿过通信网络8与第一处理设备13、第二处理设备15和/或第三处理设备
17,和/或一个或多个处理设备19通信。具体地,一个或多个处理设备19可以用于接收和记录与包括通证(T)的转移的交易有关的数据。
[0052] 涉及通证的交易的概述
[0053] 存在三种涉及通证的一般类型的交易,即,分别地,由发行方(I)3创建通证,由第一用户(A)5或第二用户(B)7与发行方(I)兑换通证的部分价值或全部价值,或者由第一用户(A)5或第二用户(B)7将通证的部分价值或全部价值转移给第二用户(B)7或者第一用户(A)5。
[0054] 参考图2,创建第一通证(T1)通常涉及:第一用户(A)将法定货币(例如,$1,000 AUD)转移到发行方(I)3并且在关于法定货币的交换中、发行方(I)“通证化”第一加密货币数额(B1),使得第一加密货币数额(B1)具有通证值,以及将所述第一加密货币数额(B1)转移给第一用户(A)5。第一通证(T1)可以代表合约,例如其中发行方(I)同意向第一通证(T1)的持有者兑换指定的法定货币金额(例如$1,000 AUD)的合约。因此,第一通证(T1)可以类似于可转让票据。取决于特定条款和条件,第一用户(A)5可以在未来日期将第一通证(T1)兑换成与存入的法定货币相关联的价值。条款和条件还可以使得第一用户(A)5能够使得通证的价值的至少一部分转移给第二用户(B)。这样的条款和条件可以是特定于通证的,或者可以是用户5、用户7与发行方(I)3之间的一般条款和条件。
[0055] 创建通证的方法的概述
[0056] 下面将参考图2和图3详细地描述创建通证的方法300。具体地,方法300包括:在310,分配第一加密货币数额(B1)以用于与第一通证(T1)的关联。该方法还包括:在312,确定第一兑换脚本(RS1)的第一散列(H1),其中,第一兑换脚本(RS1)基于:至少第一元数据(MD1),所述第一元数据(MD1)包括与第一通证(T1)相关联的信息;第一用户公钥(P1A);以及与发行方(I)相关联的第一发行方公钥(P1I),其中,第一发行方公钥(P1I)与第一发行方私钥(V1I)形成密码对。方法300还包括:在314,通过通信网络8向区块链9发送第一数据输出(O1)。第一数据输出(O1)包括:对第一用户(A)5的第一加密货币数额(B1)的交易的指示;
以及第一散列(H1),其中,第一散列(H1)与第一加密货币数额(B1)相关联,以提供与第一用户(A)5和发行方(I)相关联的第一通证(T1))。
[0057] 因此,方法300允许创建通证,由此通证的记录发送到区块链9。在区块链9上记录该交易的一个优点是可以允许接收者(例如,第一用户(A)5)验证通证(T1)的存在性。此外,由于包括与第一通证(T1)相关联的信息的至少第一元数据(MD1)受散列化,因此这允许针对与通证相关联的信息来验证(在公共记录上的)交易。在一个示例中,与第一通证(T1)相关联的信息可以是合约的条款和条件。因此,将条款和条件包括在待散列化的的第一兑换脚本中可以有利地向第一用户(A)5(或者任意其他用户)提供舒适性——由于任何变化将改变第一散列(H1),因此所述条款和条件不能改变。由于在创建第一通证(T1)时第一散列(H1)已经被发送并记录在区块链9上,因此在将提供相同的第一散列(H1)的稍后时间,改变条款和条件将是不可能的(或者很难)。
[0058] 创建通证的细节
[0059] 参考图3,示出根据一些实施例的创建第一通证(T1)的方法300。在该示例中,将在第一用户(A)5向发行方(I)3存入现金以换取代表所存入的现金的通证的背景下讨论创建通证。然而,应该理解的是,这是非限制性示例,并且可以在其他交易的背景下创建通证。例如,通证可以代表任何其他合约、可转让票据、有形财产等。
[0060] 同意关于通证的条款和条件
[0061] 在302,第一用户(A)5通过从第二处理设备15向与发行方(I)3相关联的第一处理设备13发送对第一通证(T1)的请求来发起创建第一通证(T1)。在一个示例中,第一用户(A)5利用用于让法定货币(例如,$1000 AUD)处于通证(T1)中的请求通过存入该金额来进行该请求。该请求可以包括对于合约的要约,该对于合约的要约可以包括合约的一个或多个条款和条件。例如,第一用户(A)5可以在请求中包括与$1000 AUD的存款相关联的通证应该具有对加密货币的固定钉住率。例如,要求钉住率为1000聪/分(AUD)。应当理解的是,要约中可以包括其他条款和条件,诸如,账户保管费、交易费、可以兑换通证的方式等。
[0062] 在304,发行方(I)的第一处理设备13通过通信网络8接收来自第一用户(A)5的对第一通证(T1)的请求,并且在一些情况下接收至少一些条款和条件。在一些实施例中,在306,发行方(I)确定是否接受该请求,提出包括请求的条款和条件的修改的反要约,或者拒绝该请求。在一些实施例中,方法300可以包括:发行方(I)通过通信网络8将步骤304中的确定结果发送给第一用户(A)5。
[0063] 在一些实施例中,发送给发行方(I)的请求可以简单地包括对第一通证(T1)的请求。在这种情况下,发行方(I)可以向第一用户(A)5发送包括条款和条件的要约。第一用户(A)5可以进而确定是接受要约,提出反要约,还是拒绝要约,然后将要约发送给发行方(I)。应当理解的是,可以在发行方(I)和第一用户(A)5之间发送和接收多轮要约和反要约,直到发行方(I)和第一用户(A)5达成一致为止。在一些实施例中,可以使条款和条件标准化,由此用户通过执行方法300中的步骤来接受条款和条件。在一个示例中,发行方(I)可以具有针对其客户(包括第一用户(A)5)的关于通证的标准化要约。可以诸如在公共交易所或者发行方的网站上公开列出这样的关于通证的要约。发行方(I)还可以诸如通过电子邮件、通过应用程序或者通过登录安全网站来私有地向第一用户(A)5提供持续要约。与通证相关联的合约条款和条件可以存储在数据存储器11中、发送给第三方以进行存储,或者成为种子(torrented)。在一些实施例中,术语和条件可以存储在分布式散列表(DHT)上。
[0064] 确定第一用户公钥
[0065] 方法300包括:在308,确定与第一用户(A)5相关联的密码对的第一用户公钥(P1A),该密码对包括第一用户私钥(V1A)和第一用户公钥(P1A)。在一个示例中,第一用户公钥(P1A)可以通过通信网络8从第一用户(A)5发送至发行方(I)。在另一示例中,第一用户公钥(P1A)可以关联存储在数据存储器11中(例如,其可以在第一用户(A)5的登记期间被接收和存储)。因此,确定(308)第一用户公钥(P1A)的步骤可包括:从数据存储器11检索密钥。在又一示例中,可以通过通信网络8从第三方接收第一用户公钥(P1A)。第三方可以包括例如充当公共目录的受信第三方,诸如证书授权方。
[0066] 分配第一加密货币数额以用于与通证的关联
[0067] 方法300包括:在310,分配第一加密货币数额(B1)以用于与第一通证(T1)的关联。为了对涉及待记录在点对点分布式账本(其在该示例中是区块链)上的第一通证(T1)的交易进行记录,所述通证必须与加密货币数额相关联。反过来,这样的加密货币数额作为从发行方(I)3到第一用户(A)5的交易记录在区块链上。
[0068] 用于与第一通证(T1)的关联的第一加密货币数额(B1)的分配可以基于通证值的率。例如,可以为第一通证(T1)指定钉住率(PR1)。因此,在310分配第一加密货币数额(B1)可以包括:基于钉住率(PR1)和第一通证值(TV1)确定第一加密货币数额(B1)。作为说明性示例,钉住率(PR1)可以是1000聪/分AUD,并且第一通证值(TV1)是$1000 AUD。因此,第一加密货币数额(B1)可以是10,000,000。
[0069] 待为通证分配的加密货币数额可能受以下考虑因素中的某些因素的影响。首先,所分配的加密货币数额理想地具有低于通证的价值(“通证值”)的市场价值(为此,这表示加密货币自身的市场价值,假定其具有并不参考通证值的价值)。这是可期望的,从而没有动机将加密货币数额用于标的价值,而不是作为通证。这可以类似于现金币,其中,期望具有高于铸造币的金属的币的面值,从而不期望为了金属的价值而熔化币。在一些示例中,通证值是所述加密货币数额的标的值的倍数。然而,应当理解的是,某些通证可以没有固定的通证值或可容易确定的通证值。例如,通证可以代表执行工作的合约,由此该值可以每天变化。在其他示例中,合约可以仅具有在其被兑换的当天可确定的值。
[0070] 另一考虑因素是,相对于通证值或交易的值,所分配的加密货币数额不应太大,因为在点对点分布式账本上记录所述加密货币数额的交易可能需是有代价的,如产生交易费用。在一些示例中,交易费用基于交易中的所述加密货币数额,因此可能希望将关于通证的加密货币数额保持在最小等级。
[0071] 另一方面,对于与通证的关联所分配的加密货币数额不能无限小。首先,加密货币可以具有最小面额金额,并且例如,比特币具有一个聪的最小量(其中,1比特币(BTC)=10,000,000 satoshi)。其次,加密货币的交易可能受限于最小大小或者其将不被记录(或者交易的成本将接近执行交易的成本或者超过执行交易的成本)。在一些示例中,该最小金额是“微额”限制。因此,在一些示例中,为通证分配加密货币数额必须高于加密货币的最小阈值(MT1)。因此,方法100可以包括:确定适合于第一通证(T1)的加密货币的最小阈值(MT1),并确定处于加密货币的最小阈值(MT1)或高于加密货币的最小阈值(MT1)的第一加密货币数额(B1)。在一个示例中,“比特币”中的加密货币的最小阈值(MT1)是546聪。
[0072] 当为通证分配加密货币数额时的另一考虑因素是关于后续通证的加密货币数额的可分性。例如,第一通证(T1)可以具有$1000 AUD的通证值(TV1)并且第一用户(A)5可能希望将通证值中的$800 AUD转移给第二用户(B)7并且保留剩余的$200 AUD通证。这样的交易将涉及与第一通证(T1)的交易,其产生留予第一用户(A)5的代表$200 AUD的第二通证(T2)作为变化量,并且创建待转移到第二用户(B)7的代表$800 AUD的第三通证(T3)。因此,这种转移的结果是两个通证:第二通证(T2)和第三通证(T3),其中,这些通证中的每一个也必须被分配加密货币数额。如果第一加密货币数额(B1)是最小的,例如处于“微额”限制,则还将需要加密货币的更多金额受抵押,以便所创建的每个新通证也与足够加密货币数额相关联,从而满足最小阈值。因此,为第一通证(T1)分配足够加密货币数额(B1)可能是有利的,从而使得该金额足以划分开以用于预期数量的后续通证。
[0073] 在一个示例中,条款和条件可以指定所述加密货币数额或者通证的最小值或面额。例如,条款和条件可以将通证值的最小面额设置为$10 AUD。因此,为具有$1000 AUD的通证值(TV1)的第一通证(T1)分配第一加密货币数额(B1)可以包括:确定下述第一数额,该第一数额在整个通证值(TV1)划分为最小面额的情况下将确保存在足够的加密货币。在该示例中,通证值(TV1)可以划分为100个后续通证(通过$1000/$10计算)。因此,合适的第一加密货币数额(B1)可以是“微额”限制的100倍。
[0074] 确定第一兑换脚本(RS1)的第一散列(H1)
[0075] 方法300还包括:在312,确定第一兑换脚本(RS1)的第一散列(H1)。在一个示例中,兑换脚本的散列可以用于为支付到脚本散列交易的提供支付到脚本散列(P2SH)地址。一个示例包括比特币协议中P2SH脚本中使用的散列函数。这可以包括SHA 256后接RIPEMD160的组合。
[0076] 第一兑换脚本(RS1)是可以用于解锁第一通证(T1)的脚本,如稍后所讨论的那样,该脚本包括第一加密货币数额(B1)的交易。当解锁第一通证(T1)时,必须满足第一兑换脚本(RS1)的特定条件以解锁交易。具体地,需要第一用户(A)5和发行方(I)的签名。现在将描述第一兑换脚本(RS1)的示例。
[0077] 第一兑换脚本(RS1)
[0078] 第一兑换脚本(RS1)基于至少第一元数据(MD1),第一元数据(MD1)包括与第一通证、第一用户公钥(P1A)和第一发行方公钥(P1I)相关联的信息。
[0079] (i)通用的P2SH中的兑换脚本
[0080] 作为背景,在支付到脚本散列(P2SH)方法中,兑换脚本可以采用以下形式:
[0081]
[0082] 其中,
[0083] NumSigs-是满足兑换脚本以解锁交易所需的有效签名的数量“m”。
[0084] PubK1、PubK2...PubK15-是与解锁交易的签名对应的公钥(上至最大15个公钥)。
[0085] NumKeys-是公钥的数量“n”(其必须为15或更小)。
[0086] 为了解锁上述兑换脚本,至少需要与公钥对应的数量“m”的签名。在一些示例中,公钥的顺序是重要的,并且用于签署的数量“n”中“m”个签名必须按顺序完成。例如,假设“m”是2并且公钥的数量“n”是15。假设两个签名可供使用,例如Sig1(对应于PubK1)和Sig 15(对应于PubK15),则兑换脚本必须首先由Sig1签署,然后由Sig15签署。
[0087] (ii)使用P2SH的第一兑换脚本(RS1)
[0088] 回到本示例,利用P2SH的第一兑换脚本(RS1)可以包括兑换脚本中的至少第一元数据(MD1)。具体地,至少第一元数据(MD1)可以嵌入在兑换脚本中可用于公钥的15个位置中的一个或多个位置中。
[0089] 因此,在一个示例中,第一兑换脚本(RS1)可以采取以下形式:
[0090] [0091] 其中,
[0092] NumSigs-是满足兑换脚本以解锁交易所需的有效签名的数量“m”。
[0093] Metadata1和Metadata2-包括取代公钥的元数据。
[0094] PubK1和PubK2-是实际的公钥。在一个示例中,PubK1可以是第一用户公钥(P1A),并且PubK2可以是发行方公钥(P1I)。
[0095] NumKeys-是元数据和公钥所占位置的总数(其必须为15或更少)。
[0096] 这样做的好处是:元数据将包括于第一兑换脚本(RS1)中,而第一兑换脚本(RS1)进而将受散列化并且该第一兑换脚本(RS1)的记录将包括于区块链9中。因此,在不产生第一兑换脚本散列(RS1)的相应散列的改变的情况下改变元数据的值将是困难的(但并非不可能)。
[0097] 可以通过以下示例说明实际的优点。第一用户(A)5和发行方(I)3可能希望订立具有特定条款和条件的合约。合约可以包括发行方(I)创建通证,由此特定的条款和条件包括于兑换脚本中嵌入的元数据中。然后,兑换脚本的散列记录在区块链9上,其变为难以改变的交易记录或不可能改变的交易记录。假设发行方(I)试图欺骗第一用户(A)5,并且例如,试图修改条款并声称修改后的条款曾在最初约定的合约中。第一用户(A)5可以能够通过以下操作来对此进行争论:将修改后的条款放置在兑换脚本的元数据中并对其进行散列化,然后显示这与区块链上记录的兑换脚本不匹配。因此,将与通证相关联的信息包括在至少第一元数据中对于确保通证的完整性可能是有用的。
[0098] 应当理解,兑换脚本中的元数据本身可以包括其他信息的散列。例如,如果条款和条件很长,则可以使用条款和条件的散列来提供更短的元数据。
[0099] 第一兑换脚本(RS1)可以作为记录存储在数据存储器11中并用于兑换第一通证(T1)。在一些可替代示例中,可以将第一兑换脚本发送给第一用户(A)5或第三方。
[0100] 元数据
[0101] 在本示例中,第一兑换脚本(RS1)采取以下形式:
[0102] <2Metadata1 Metadata2 P1A P1I 4 OP_CHECKMULTISIG>
[0103] 因此,至少第一元数据(MD1)包括占据兑换脚本中的两个位置的Metadata1和Metadata2二者。这后接下按顺序的两个公钥:第一用户公钥(P1A)和第一发行方公钥(P1I)。NumSigs为2,其表示解锁交易需要两个签名。
[0104] 元数据可以按照多种方式包括关于通证的信息。如所讨论的那样,在一个示例中,条款和条件可以包括于元数据中。在另一示例中,条款和条件的散列可以包括于元数据中。在又一示例中,元数据可以包括指向包含合约的条款和条件的文件的指针。在其他实施例中,包括以上项中的一个或多个的组合可以包括于元数据中。
[0105] (i)具有指向条款和条件的指针的元数据
[0106] 在下面的表1中示出第一元数据(MD1)的具体示例。
[0107]
[0108]
[0109] 表1
[0110] 此示例包括与通证和交易相关的最小信息量。该示例包括:提供指向(智能)合约的指针,这在合约的大小排除将这些细节包括在元数据中的情况下可以是有用的。此外,由于可能使得元数据公开,或者元数据可能通过不安全的网络传输,因此出于隐私原因,可能期望隐蔽或隐藏通证的特定细节。
[0111] metadata1的前4个字节指示合约的类型。例如,合约类型可以是“法定货币”。接下来的16个字节保存实际电子合约文件的位置的IP地址,进行对IPv6地址的允许。注意,在一些实施例中,该值可以指向种子文件的种子,使得合约文件可以分布在云上而不是被集中化。后面12个字节包含特定于合约类型的数据。
[0112] metadata2的前20个字节是使用应用于文件的SHA256上的RIPEMD-160的实际合约文件的散列。由于实际合约文件是可检索的,因此这允许针对合约验证交易。应当注意的是,合约文件本身可以是完全公开的(未加密的和人类可读的),或者可以取决于特定实施例的要求而关于隐私受加密。可以取决于合约的类型使用元数据2的剩余12个字节的内容。
[0113] (ii)具有通证的关键参数的元数据
[0114] 在下面的表2中示出第一元数据(MD1)的另一具体示例。
[0115]
[0116] 表2
[0117] 在此示例中,通证的一些关键参数包括于元数据中。借助于关键参数,元数据可以包括与通证自身相关的信息或可以包括可以协助处理交易的信息。具体地,分配给上面表1中的子字段“ContractTypeData1”的字节已用于指示:法定面额、钉住率和交易类型。
[0118] 在元数据中包括关键参数可以协助更高的处理效率,因为在某些情况下,发行方(I)3可能处理交易中的通证,而不关于处理交易所需的密钥信息检索合约文件。
[0119] 除了上述信息之外,还可以包括与通证的历史或者在该通证之前的通证有关的其他信息。例如,如果第一用户(A)5希望兑换第一通证(T1)的一部分并且发行方(I)创建第二通证(T2)以表示剩余部分的价值,则发行方可以将信息嵌入元数据中以将第二通证(T2)与第一通证(T1)相关联。这可以协助发行方(I)考虑并保持跟踪通证,而没有通过交易的历史进行追踪(这对于诸如银行之类的发行方(I)而言是密集型任务)的代价。
[0120] 在表2中,元数据包含用于指示法定货币的2字节字段(法定面额)和称为钉住率的1字节字段。钉住率由发行方(I)设定。可以为相同的法定货币设置若干不同的率,但是,对于每种不同的率,将需要不同的通证(以及不同的合约)。率的选择可以由发行方(I)自由裁量,然而,发行方(I)可以针对如上文所述的那样的关于通证的加密货币数额的分配而对钉住率采取类似的考虑。
[0121] 在一个示例中,钉住率是8位编码值,如下所示:
[0122] 最左边的位将用作标志:
[0123] 1=表示为聪/cent的率('cent表示法定货币的百分之一,这是最小法定金额)[0124] 0=表示为cents/satoshi的率
[0125] 最右边的七位将率表示二进制的十次幂,例如:
[0126] USD 10000010表示100聪/cent的率(标志为on)
[0127] PHP 00000000表示1centavo/satoshi的率(标志为off)
[0128] IDR 00000001表示10rupiah/satoshi(标志为off)
[0129] 在一个示例中,TransactionType是1字节字段,用于指示交易是否是“发行”(其中,通证是根据加密货币创建的)、支付(其中,至少部分通证值从一个用户转移给另一用户)、或者兑换(其中,将通证转移给发行方(I)并转换回常规加密货币)。
[0130] 在一些示例中,Metadata1和Metadata2二者中的“填充(Padding)”可以包括针对每个交易的随机生成的值。结果是Metadata1和Metadata2中的每一个将在交易之间变化。优点是,这可以降低不道德的人试图确定将与Metadata1或Metadata2中的一个或二者匹配的私钥作为加密对(目的是使用该私钥来签署兑换脚本)的风险和动机。这对于标准化通证而言可能是重要的,其中,Metadata1或Metadata2的剩余大部分是相同的。
[0131] 公钥
[0132] 第一用户公钥(P1A)和发行方公钥(P1I)分别与对应的第一用户私钥(V1A)和发行方私钥(V1I)配对。应当理解的是,在一些实施例中,公钥可以对于公众是广泛地获知的,而在其他实施例中,可能期望根据需要传送公钥。
[0133] 在一些实施例中,发行方(I)是还管理第一用户(A)5和第二用户(B)7的电子钱包的金融机构,并且第一用户(A)5和第二用户(B)7可以通过虚拟机环境或终端访问其各自的电子钱包。电子钱包可以由发行方(I)3(或与发行方(I)3相关联的服务器)托管,并且相应用户的私钥存储在数据存储器11中但是只可以由发行方(I)3在来自该用户的授权的情况下进行访问(或重新创建)。在这些情况下,第一用户5和第二用户7可以授权将他们的私钥提供给发行方(I)3以解锁兑换脚本。这可以包括:授权将用户的私钥发送到发行方(I)3的第一处理设备13,其中,第一处理设备13可以通过用户的私钥(例如,P1A、P1B)和第一发行方公钥(P1I)来解锁兑换脚本。
[0134] 将第一数据输出(O1)发送至区块链150
[0135] 方法300还包括:在314,由发行方(I)3通过通信网络8将第一数据输出(O1)发送至区块链9。该第一数据输出(O1)可以包括将第一加密货币数额(B1)转移给第一用户(A)5的交易的指示,即,记录与第一通证(T1)相关联的标的加密货币数额(B1)已转移给第一用户(A)5。第一数据输出(O1)还包括上面讨论的第一散列(H1)。第一散列(H1)与第一加密货币数额(B1)相关联,以提供第一通证(T1)的与第一用户(A)5和发行方(I)相关联的记录。因此,第一散列(H1)记录在区块链9上并且可以用于证明或验证通证(T1)的存在性、发行方(I)和第一用户(A)5之间的关系、和/或通证的条款和条件。
[0136] 方法300还可以包括:将第一兑换脚本(RS1)存储(160)在数据存储器11中以供以后使用。
[0137] 现在将参考图2描述创建第一通证(T1)的交易的具体示例。
[0138] 第一用户(A)5在通证中针对等同价值向发行方(I)存入$1000 AUD
[0139] 在该示例中,第一用户(A)5希望向发行方(I)存入$1000 AUD,发行方(I)进而通过将具有$1000 AUD的通证值(TV1)的第一通证(T1)与10,000,000的第一加密货币数额(B1)相关联来创建具有$1000 AUD的通证值(TV1)的第一通证(T1)。
[0140] 为了创建通证,发行方(I)需要具有加密货币。加密货币可以源自先前交易,或者响应于来自第一用户(A)5的针对第一通证(T1)的请求而发源。这在图2的左侧显示为“第一数量的(未通证化的)加密货币”。
[0141] 下面的表3以交易ID/聪金额/锁定脚本的形式显示原始交易输出。该原始交易输出表示发行方(I)已经从先前交易获得的加密货币,并且其中,至少一些加密货币将用于与第一通证的关联。
[0142]
[0143] 表3
[0144] 第一行“ID-201”是用于标识该交易的交易标识符。下一行是此交易中聪的数量,其为50,000,000。第三行是此交易的锁定脚本(输出脚本)。此输出中的兑换脚本示出此输出已使用第一发行方公钥(P1I)受锁定。也就是说,可以使用发行方的对应的第一发行方私钥(V1I)来解锁该交易。
[0145] 如上所述,方法300包括:在310,分配适合于第一通证(T1)的第一加密货币数额(B1)。但是,发行方(I)手上具有的加密货币数额可能与第一加密货币数额(B1)并不精确匹配。在本示例中,所需的第一加密货币数额(B1)是10,000,000,其远小于来自交易ID-201中的50,000,000。因此,用于创建第一通证(T1)的交易可以包括:关于通证所不需要的额外金额的加密货币将加密货币的改变量提供给发行方(I)。此外,创建通证100可以是需要向矿工支付交易费用的交易。参考下面的表4说明这一点,表4显示用于创建通证的交易。
[0146]
[0147]
[0148] 表4
[0149] 第一行“ID-201”是用于标识该交易的交易标识符。第二行表示“版本号”,其说明所使用的比特币协议的版本。第三行指示此交易的输入数量,其指示单个输入。
[0150] 表4中的第4行至第7行涉及“输入”的那些项-即,先前交易ID-210,其为当前交易ID-201提供资金。第4行是先前交易ID-201的交易标识符。第5行“IDX-00”是先前交易ID-201的输出的索引(在这种情况下,其是应该使用来自先前交易ID-201的第一输出的引用)。
第6行是“ScriptSig”,其是用于先前交易ID-201的解锁脚本。如上所述的那样,PubK-Issuer表示的第一发行方公钥(P1I)锁定先前交易。因此,可以使用表示为Sig-Issuer的发行方的对应的第一发行方私钥(V1I)来解锁先前交易。第7行是与输入相关联的序列号。在比特币交易中,每个比特币交易都包含比特币核心不再使用的称为“序列号”的4字节字段。
取决于发行方的实现方式,选项是利用该字段以将交易输入分配给输出。序列号可以表示1位标志的串,由此,从最右边的位开始的每个标志的位置指示输入已将其部分资金贡献给带标志的输出。在该示例中,序列号“000000000000000000000000000000011”指示输入待支付到输出1和输出2中,这将在下面进行描述。
[0151] 表4中的第8行指示此交易的输出数量,即,两个。第9行到第11行表示第一输出,第12行到第14行表示第二输出。
[0152] 第一输出反映与第一通证(T1)关联的第一加密货币数额(B1)。第9行是第一加密货币数额(B1)的输出值,即,10,000,000聪。第10行指示输出脚本长度。第11行是输出脚本-即,锁定第一加密货币数额(B1)的锁定脚本。该输出脚本包括第一兑换脚本(RS1)的第一散列(H1),并且表示为:
[0153] OP_HASH160OP_EQUAL
[0154] “OP_HASH160”是一类型的散列函数,其中,输入受散列化两次-先使用SHA-256,随后使用RIPEMD-160。兑换脚本散列是第一兑换脚本(RS1)的散列,其形式为上述形式,对于此示例而言,为:
[0155] 2metadata1 metadata2 P1A P1I 4 OP_CHECKMULTISIG
[0156] 该兑换脚本散列包括如上所述的第一用户公钥(P1A)和第一发行方公钥(P1I)。metadata1和metadata2可以包括如上所述的元数据,该元数据包括这是“发行”交易的指示。OP_EQUAL提供用于验证输出的布尔结果。
[0157] 第二输出反映发行方对交易做出的改变。由于输入为作为先前交易ID-201,其包括50,000,000聪,因此发行方(I)可能期望接收剩余的聪。第12行是关于第二输出的输出值,即,39,999,000。第13行是输出脚本长度,第14行是用于第二输出的输出脚本。由于第二个输出是返回至发行方(I)的改变,因此发行方应该自由地花费第二输出。因此,输出脚本(即,锁定脚本)仅包括由表示的第一发行方公钥(P1I)。
[0158] 通常,交易的输出值必须等于或小于输入。在上面的示例中,输入为50,000,000并且输出为49,999,000(基于10,000,000的第一输出和39,999,000的第二输出)。因此,存在1,000聪的赤字。在该示例中,1,000聪是交易费用(例如,矿工的费用)。
[0159] 第一用户(A)与发行方(I)兑换通证的部分价值或全部价值的概述
[0160] 通常,与发行方(I)3兑换通证。在实施例中,在发行方(I)是为用户5、用户7提供电子钱包的服务提供商的情况下,用户的私钥在与发行方(I)3相关联的数据存储器11中保持安全。因此,在这样的实施例中,用户5、用户7(或者其各自的处理设备15、处理设备17)不签署兑换脚本。相反,发行方(I)3在来自用户5、用户7的授权的情况下签署兑换脚本。例如,第一用户(A)5可以发送将对兑换通证的请求给发行方(I)3,并且隐含地或明确地,该对兑换通证的请求还包括第一用户(A)5进行的关于发行方(I)3使用第一用户私钥(P1A)以兑换通证的授权。
[0161] 用于兑换第一通证(T1)的方法可以包括:由发行方(I)3通过通信网络8接收来自第一用户(A)5的请求以兑换第一通证(T1);确定与第一通证(T1)相关联的第一兑换脚本(RS1);以及例如从数据存储器11或从另一实体或节点获得第一用户私钥(V1A)。然后,发行方可以用用户私钥(P1A)和第一发行方私钥(P1I)签署第一兑换脚本(RS1)。这可能是有利的,因为作为第一用户(A)5的服务提供商的发行方(I)3可以在第一处理设备13处安全地执行这些步骤并且不通过通信网络8发送签署的或者未签署的第一兑换脚本(RS1)。
[0162] 该方法还可以包括:通过通信网络8向发行方(I)发送对区块链9的第二数据输出(O2),该第二数据输出包括第一加密货币数额(B1)的交易的指示。因此,该方法将与第一通证(T1)相关联的第一加密货币数额(B1)返回给发行方(I)。在一个示例中,由于第一兑换脚本(RS1)是用第一用户(A)5和发行方(I)二者的私钥签署的,因此在该交易中第一加密货币数额(B1)的接收者——发行方(I)3——然后可以将第一加密货币数额花费于其他交易——无论是单独作为加密货币还是随其他相关联的通证。
[0163] 第一用户(A)将通证的部分价值或全部价值转移给第二用户(B)
[0164] 在一些实施例中,为了允许第一用户(A)5希望将第一通证(T1)的价值或一部分价值转移给第二用户(B),可以创建一个或多个附加通证。例如,可以创建与第二用户(B)7和发行方(I)3相关联的第三通证(T3)。这可以有利地允许第一用户(A)5实际上将与第一通证(T1)相关联的相同权限或类似权限转移给第二用户(B)。尽管创建第三通证(T3)的形式的新通证,但是第三通证(T3)可以具有与第一通证(T1)类似的特性。例如,这些通证可以具有相同或相似的关联元数据。例如,如果第一用户(A)5和发行方(I)3之间适用的相同或类似的条款和条件也应该适用于第二用户(B)7和发行方(I)3之间,则这可能是有用的。
[0165] 在一个示例中,第一用户(A)5可能希望将第一通证(T1)的全部价值转移给第二用户(B)。这些情况可能涉及创建与第一加密货币数额B1相关联的、待转移给第二用户(B)7的第三通证(T3)。有效地,第三通证(T3)是第一通证(T1)和与第一通证(T1)相关联的权限向第二用户(B)7的转移。
[0166] 在另一示例中,仅第一通证(T1)的总价值的第一部分(R1)转移给第二用户(B)7,并且在这些情况下,总价值的剩余第二部分(R2)可以包括于退还回第一用户(A)5的第二通证(T2)中。因此,对创建第三通证(T3)的请求可以明确地或隐含地包括对基于第一部分(R1)创建具有第三通证值(TV3)的第三通证(T3)的请求。
[0167] 在没有发行方(I)或其他第三方中介的参与的情况下,由第一用户(A)将通证转移至第二用户(B)。
[0168] 在上面章节中描述的示例中,通证的价值从第一用户(A)5到第二用户(B)的转移涉及发行方(I)3作为用于促进所述转移的中介。这与从第一用户(A)5到第二用户(B)7的第一加密货币数额(B1)的直接交易不同。
[0169] 然而,在一些情况下,可能希望在没有发行方(I)3或其他第三方中介的参与的情况下由第一用户(A)5将通证的价值转移到第二用户(B)7。例如,在下述情况下可能出现这种状况:如果第二用户(B)7没有服务提供商,或者如果第二用户(B)7的服务提供商不在与第一用户(A)5的服务提供商相同的信任网内,或者发行方(I)3负责铸造通证。在这样的实施例中,第二用户(B)7可能希望采取预防措施以确保被转移的通证的合法性或有效性。
[0170] 通常,如果第二用户(B)7具有与第一用户(A)5的服务提供商(SPA)相同的信任网络内的服务提供商(SPB),则服务提供商(SPB)充当关于花费通证或者兑换通证的交易的签署人,并且相应地,第二用户(B)7确保通证的真实性或有效性。但是,如果第二用户(B)7并不具有服务提供商(SPB)或者并不具有与第一用户(A)的服务提供商(SPA)相同的信任网络内的服务提供商(SPB)5,则发行方(I)或授权方将对于对交易进行认证或验证并非可用的。
[0171] 因此,第二用户(B)7可能希望确定正转移到第二用户(B)7的通证(T1)的合法性。在一些实施例中,包括可执行计算机代码的验证应用程序存储在处理设备17的存储器1520(图8)中,并且当所述验证应用程序由处理设备17的处理器1510(图8)执行时,使得处理设备17执行确定与加密货币数额相关联的通证(T)的有效性的方法600或方法700,如下面分别参考图6和图7更详细地讨论的那样。在一些实施例中,第二用户(B)7可以对可以通过虚拟机环境或者与处理设备17相关联的终端进行访问的电子钱包(未示出)进行管理,并且电子钱包可以包括附加功能,该附加功能允许第二用户(B)7使处理设备17执行验证应用程序。
[0172] 现在将参考图4对将通证(T1)从第一用户(A)转移至第二用户(B)的交易的具体示例进行描述。
[0173] 第一用户(A)将第一通证(T1)转移至第二用户(B)
[0174] 在该示例中,如图4所示,第一用户(A)5希望将通证(T)转移至第二用户(B)。这产生从第一用户(A)5到第二用户(B)7的加密货币数额的交易,该交易在下文称为交易ID-510。然后,将加密货币数额转移至第二用户(B)7允许第二用户(B)7花费加密货币数额(B1)作为用于将来交易的通证。第二用户(B)7还可以通过移除元数据的一个或多个交易(其可以包括将加密货币数额(B1)转移给第二用户(B)7的支付交易)来“去通证化”加密货币数额(B1)。第二用户(B)7可以进一步花费该加密货币,而不受限于需要来自第一用户(A)5或其他用户的授权(例如,签名)。
[0175] 在描述转移第一通证ID-510的交易之前,如下表7所示,我们将简要地对作为对当前支付交易ID-510的输入的原始交易输出(来自交易ID-500和交易ID-400)进行描述。通常,这两个输入包括:与通证(T)相关联的加密货币数额以及用于支付交易费用(例如,矿工的费用)的另一加密货币数额。
[0176] 例如,第一用户(A)5可能已经在交易ID-500中接收到加密货币数额。交易ID-500中去往第一用户(A)5的输出可以概括为:
[0177]ID-500
10,000,000
OP_HASH160,redeem script hash>OP_EQUAL
[0178] 表5
[0179] 表5中的第2行表示与通证(T)相关联的加密货币数额,其数量为10,000,000聪。第3行表示输出脚本,其与上述表4中的第11行等同。
[0180] 第一用户(A)5还可能需要针对支付交易ID-510支付交易费用(例如,矿工的费用),该交易费用通过部分地从自先前交易ID-400接收到的加密货币数额得以支付。此加密货币数额可以概括为:
[0181]
[0182] 表6
[0183] 表6的第2行指示来自先前交易的加密货币的金额,其为1,000。表6的第3行是所述先前交易的输出脚本。由于来自此交易ID-400的加密货币与通证(或与通证相关联的用户)并非相关联,因此兑换脚本散列只是散列。
[0184] 第一用户公钥(P1A),其示出为PubK-Alice。也就是说,要花费来自交易ID-400的输出,这只需要使用第一用户私钥(V1A)进行签署。
[0185] 现在将参考下面的表7对转移第一通证(T1)的交易ID-510进行讨论。
[0186]
[0187] 表7
[0188] 第1行“ID-510”是用于标识此交易的交易标识符。第二行指示“版本号”,其说明所使用的比特币协议的版本。第三行指示此交易的输入数量,其指示两个输入。
[0189] 表7中的第4行至第8行涉及“第一输入”的那些项-即,先前交易ID-500,其为当前交易ID-510提供资金。第4行是先前交易ID-500的交易标识符。第5行“IDX-00”是先前交易ID-500的输出的索引(在这种情况下,其是应该使用来自先前交易ID-500的第一输出的引用)。第6行是“脚本长度”,其为脚本长度的指示。第7行是“ScriptSig”,其是先前交易ID-500的解锁脚本。如所指示的那样,先前交易ID-500受由PubK-Alice表示的第一用户(A)公钥(P1A)和由PubK-Issuer表示的第一发行方公钥(P1I)锁定。因此,可以使用Alice的被表示为Sig-Alice的相应的私钥(V1A)以及发行方的表示为Sig-Issuer的对应的第一发行方私钥(V1I)来解锁先前交易。第8行是与输入相关联的序列号。
[0190] 第一用户(A)还需要针对转移交易ID-510支付交易费用(例如,矿工的费用),该交易费用部分地从自先前交易ID-400接收到的加密货币数额得以支付。表7中的第11行至第15行与第二项输入的那些项有关——即支付矿工费用。第11行是先前交易ID-400的交易标识符。第12行是“IDX-01”,是先前的交易ID-400的输出的索引。第13行是“脚本长度”,其为脚本长度的指示。第14行是“ScriptSig”,其是用于先前交易ID-400的解锁脚本。由于来自此交易ID-400的加密货币I并非与通证(或与通证相关联的用户)相关联,因此兑换脚本散列只是第一用户公钥(P1A)的散列,第一用户公钥(P1A)显示为PubK-Alice。也就是说,要花费来自交易ID-400的输出,这只需要使用第一用户私钥(V1A)进行签署。第15行是与输入相关联的序列号。
[0191] 表7的第17行指示此交易的输出数量,即,一个。第18行到第21行表示反映与通证(T)相关联的加密货币数额的输出。第18行是加密货币数额的输出值,其在这种情况下是10,000,000聪。这对应于来自通证(T)的加密货币数额。第19行指示输出脚本长度。第20行是输出脚本-即锁定脚本,其将与加密货币数额相关联的通证(T)到第二用户(B)的转移进行锁定。所述输出脚本包括兑换脚本(RS)的散列(H),并且表示为:
[0192] OP_HASH160OP_EQUAL
[0193] “OP_HASH160”是一类型的散列函数,其中,输入受散列化两次-先使用SHA-256,随后使用RIPEMD-160。OP_EQUAL提供用于验证输出的布尔结果。兑换脚本散列是兑换脚本(RS)的散列,其形式为上述形式,对于此示例而言,为:
[0194] 1metadata1 metadata2 PubK-Bob 3 OP_CHECKMULTISIG
[0195] 该兑换脚本包括来自通证(T)的元数据以及显示为PubK-Issuer的发行方公钥(P1I)。metadata1和metadata2可以包括如上所述的元数据,该元数据包括这是“支付”交易的指示。这个兑换脚本需要三个签名中的一个签名来花费10,000,000聪。实际上,第二用户私钥(V1B)可用于签署加密货币并且花费该加密货币以用于后续交易。可注意的是,第一用户公钥(P1A)不在此兑换脚本中。这是因为通证(T)以及相应的相关联的加密货币数额已经转移到第二用户(B)7,因此通证(T)以及相应的相关加密货币数额可以认为由第一用户(A)5花费。因此,第二用户(B)7应该自由地花费通证(T),而不需要授权(例如通过第一用户(A)
5的签名的隐式授权)。
[0196] 在该示例中,为本交易ID-510提供资金的先前交易ID-500(即,未花费的交易输出(UTXO))已经由发行方I签署。因此,在一些实施例中,如果通证(T)已受认证,例如由授权签署人(例如,发行方(I))签署,则第二用户(B)7可以确定与和交易ID-510相关联的加密货币数额相关联的第一通证(T)是有效的。例如,如果与通证(T)相关联并且被引用作为对交易ID-510的输入的兑换脚本(RS)已经由授权的或者受信签署人签署,则可以认为通证(T)已经由授权签署人授权。
[0197] 然而,考虑下述情况:第一用户(A)5的服务提供商(SPA)并非处于与发行方(I)相同的信任网中,并且与交易ID-510相关联的通证(T)未由授权签署人签署。在这种情况下,表7的第7行所示的先前交易ID-500的兑换脚本将采用以下形式:
[0198] 1metadata1 metadata2 PubK-Alice 3 OP_CHECKMULTISIG
[0199] 在该实施例中,与通证(T)相关联并且被引用作为对交易ID-510的输入的兑换脚本(RS)尚未由授权签署人签署,因此,通过考虑作为单独向交易ID-510提供资金的输入所引用的兑换脚本(RS),第二用户(B)可能并未关于通证(T)的合法性而受确保。
[0200] 所有权登记存储器
[0201] 如参考图1所讨论的那样,在一些实施例中,系统1包括所有权登记存储器23,其可以受在一个或多个处理设备21上运行的控制/管理应用程序控制或影响。例如,包括可执行代码的管理应用程序可以存储在一个或多个处理设备21的存储器1520(图8)中,并且一个或多个处理设备21的处理器1510(图8)可以用于执行管理应用程序,以执行管理所有权登记存储器23的方法。所有权登记存储器23可以用于对与和通证的转移有关的交易有关的信息进行记录。
[0202] 在一些实施例中,所有权登记存储器23维护通证(T)的所有权改变的记录(即,所有权已经改变的事实),而没有明确地标识通证(T)的当前所有者。因此,在一些实施例中,所有权登记存储器23可以包括经证实或验证的未花费的交易输出(UTXO)的列表或子列表。例如,如果交易已经记录在所有权登记存储器23上,则所有权存储寄存器23可以包括下述项中的至少之一:交易标识符和交易的输出脚本,交易的输出脚本包括嵌入在兑换脚本散列的元数据内的当前所有者的指示,即,当前所有者的公钥。可以根据交易的输入部分的解锁脚本中所标识的先前所有者的公钥来确定先前所有者。
[0203] 然而,在其他实施例中,所有权登记存储器23还可以或替代地包括通证的当前所有者和/或先前所有者的标识符。例如,所有权登记存储器23可以包括直接客户端和/或间接客户端的“了解您的客户”(KYC)寄存器。在一些实施例中,KYC寄存器的维护可以是与通证相关联的合约中的规定,例如所有权的条件。在这样的实施例中,通证的有效性的条件可能要求收款人(例如第二用户(B)7)直接向一方(P)或发行方(I)登记。这可以通过诸如通过专用网页的离块机制得以实现,该机制具有适当的检查,例如要求签名以证明他们是所有者等。在一些实施例中,一方(P)或发行方(I)3可以将条件存储在内部数据库(例如数据存储器11或DHT(例如用于存储上述合约的条款和条件的DHT))中。在某些情况下,发行方(I)3可以要求了解当前所有者以执行特定义务,例如支付合约所附带的任何收入。例如,如果合该同涉及赛马的部分所有权,则发行方可能有必要标识对应该奖金份额应该支付到的一方。
[0204] 一个或多个处理设备21可以用于穿过通信网络8从第一处理设备13、第二处理设备15和/或第三处理设备17、和/或一个或多个处理设备19接收数据并将该数据存储在所有权登记存储器23中。类似地,一个或多个处理设备21可以用于从所有权登记存储器23检索数据,并且例如响应于对数据的请求和/或诸如按照预定或规则的间隔来自动地穿过通信网络8将所检索到的数据提供给第一处理设备13、第二处理设备15和/或第三处理设备17、和/或一个或多个处理设备19。
[0205] 在一些实施例中,将包括由发行方(I)3发行的通证(T)的转移的交易记录在所有权登记存储器23中由该通证(T)的发行方(I)3发起。例如,在已经为用户(例如,第一用户(A)5或第二用户(B)7)创建通证(T)的情况下,并且除了结合创建通证的方法300在314如上所述将第一数据输出(O1)发送到区块链9之外,发行方(I)3还使用一个或多个处理器13通过通信网络8将对将通证的转移记录到所有权登记存储器23的管理应用程序的请求发送至与所有权登记存储器23相关联的一个或多个处理器21。通证的发行方还可以负责针对与通证相关联的交易对所有权登记存储器23进行维护或更新,如下面更详细地讨论的那样。
[0206] 在一些实施例中,所有权登记存储器23可以包括分布式散列表(DHT)。在一些实施例中,分布式散列表(DHT)还可以用于存储与通证相关联的合约。在一些实施例中,用于存储与通证相关联的合约的分布式散列表(DHT)可以包括字段,该字段包括指向所有权登记数据库23的分布式散列表(DHT)中的相关条目的位置的一个或多个链接或指针。
[0207] 维护所有权登记
[0208] 通常,一方或多方(P)负责更新所有权存储寄存器23以维持或保持通证的任何转移并因此通证的所有权的改变的准确记录。在一些实施例中,通证(T)的每个发行方(I)3负责维护所有权存储寄存器23上的该通证的所有权的任何改变的准确记录,即,包括已发生的通证转移的任何交易的记录。
[0209] 现在将参考图5对维护所有权登记存储器23的方法500进行描述,该所有权登记存储器23用于记录由发行方(I)发行的通证的转移,其中,每个通证与加密货币数额相关联。在一些实施例中,包括可执行代码的所有权登记维护应用程序可以存储在一个或多个处理设备13的存储器1520(图8)中,并且一个或多个处理设备13的处理器1510(图8)可以是用于执行所有权登记管理应用程序,以执行维护用于记录通证的转移的所有权登记存储器的方法500。在其他实施例中,方法500可以由与连接至通信网络8的授权方(P)相关联的处理设备(未示出)执行。
[0210] 在执行方法500中,在502,维护应用程序用于关于包括由发行方(I)发行的通证的转移的交易监控区块链9。
[0211] 区块链9(例如,比特币区块链)记录交易,并且可以包括交易(TX)的细节,诸如先前交易标识符、输入脚本以及输出脚本。如上所述,可以根据交易的输入脚本的元数据来确定与交易相关联的通证。
[0212] 响应于确定包括由发行方(I)发行的通证(T)的转移的交易,维护应用程序用于将通证(T)的转移记录在所有权登记存储器23上。例如,在一些实施例中,如图5所示,维护应用程序用于将对记录通证(T)的转移记录在所有权登记存储器23中的请求发送给管理应用程序,该管理应用程序由与第二方(P2)相关联的、负责管理所有权登记存储器23的一个或多个处理设备21托管。
[0213] 在一些实施例中,该请求可以包括包含下述项的数据:包括通证(T)的转移的交易的指示符。例如,数据可以包括交易的交易标识符和/或第一数据输出(O1)。在一些实施例中,数据例如由发行方(I)3进行认证,在于:该数据使用发行方的签名(VI1)得以签署。可以从区块链9中记录的通证的交易细节检索数据。
[0214] 在一些实施例中,响应于在508由第二方(P2)从第一方(P1)(例如,通证的发行方(I)3)接收到对通证的转移进行记录的请求,在510,存储在与第二方(P2)相关联的一个或多个处理设备(未示出)的存储器(未示出)中的管理应用程序由一个或多个处理设备(未示出)的处理器(未示出)执行,以将数据输入到所有权登记存储器23中。在一些实施例中,针对第二方所接收到的每个请求或有效请求,新条目(P2)创建于所有权登记存储器23中。在一些实施例中,如果用于与请求相关联的通证(T)的条目已经存在,则管理应用程序可以用于更新条目,而不是创建用于该通证(T)的另一条目。
[0215] 使用所有权登记验证与交易关联的通证(T)
[0216] 现在将参考图6对使用所有权登记存储器23确定与加密货币数额相关联的通证(T)的有效性的方法600进行描述。在一些实施例中,包括可执行代码的验证应用程序可以存储在处理设备17的存储器1520(图8)中,并且处理设备17的处理器1510(图8)用于执行验证应用程序,以执行确定与第一加密货币数额(B1)相关联的第一通证(T1)的有效性的方法600。方法600可以由与第二用户(B)7相关联的处理设备17执行。
[0217] 在602,第一用户(A)可以发送包括将第一通证(T1)转移给第二用户(B)的第一交易。在执行方法600中,在604,验证应用程序用于通过通信网络8接收包括将通证(T)从第一用户(A)转移给第二用户(B)的第一交易。第一交易可以包括用于转移加密货币的一部分的区块链交易,例如结合上面的表7所讨论的交易。例如,交易可以包括交易id、一个或多个输入以及一个或多个输出。输入可以涉及先前交易,并且每个输入可以包括先前交易id和解锁脚本,解锁脚本包括与第一通证(T1)相关联的兑换脚本。输出中的至少一个输出可以涉及由当前的交易或第一交易实现的转移或支付,并且可以包括锁定脚本。
[0218] 在一些实施例中,在606,验证应用程序用于确定通证(T)是否已受认证。例如,这可以涉及:确定与通证(T)相关联并且被引用作为对第一交易的输入的兑换脚本是否已经由授权签署人(例如通证(T)的发行方或受信服务提供商)签署。
[0219] 在608,验证应用程序确定包括通证(T)的转移的第二交易或先前交易的指示符。第二交易可以是早于第一交易的先前交易。在一些实施例中,指示符可以是先前交易的交易标识符。例如,先前交易可以是标识为对当前交易的输入的交易,并且该标识符可以标识为当前的交易的多个输入参数之一。
[0220] 验证应用程序用于使用指示符查询所有权登记数据库23,以在610确定第二交易是否记录在所有权登记存储器23上。例如,如果第二交易已经记录在所有权登记存储器23上,则所有权存储寄存器23可以包括第二交易的指示符,例如交易标识符。因此,在一些实施例中,尽管不知道先前所有者或最终所有者是谁,但是可以确定通证的有效性的验证。因此,本发明的实施例提供一种新颖且有利的验证技术,其解决现有技术未解决的技术问题。
[0221] 然而,在其他实施例中,所有权登记存储器23还可以或替代地包括通证的当前所有者和/或先前所有者的标识符。在一些实施例中,验证应用程序可以用于仅在606如果验证应用程序首先确定通证(T)尚未被认证则查询所有权登记存储器23。
[0222] 响应于确定在所有权登记存储器中记录或登记第二交易,验证应用程序用于在612确定通证(T)是有效的。
[0223] 在一些实施例中,响应于确定未在所有权登记存储器中登记第二交易,验证应用程序用于在612确定通证(T)是无效的。然而,在其他实施例中,响应于确定未在所有权登记存储器中登记第二交易,验证应用程序用于在614执行如下所述的方法700的步骤710至步骤714。
[0224] 使用区块链验证与交易相关联的通证(T)
[0225] 现在将参考图7对使用区块链9确定与加密货币数额相关联的通证(T)的有效性的方法700进行描述。在一些实施例中,包括可执行代码的验证应用程序可以存储在处理设备17的存储器1520(图8)中,并且处理设备17的处理器1510(图8)用于执行验证应用程序,以执行确定与加密货币数额相关联的通证(T)的有效性的方法700。方法700可以由与第二用户(B)7相关联的处理设备17执行。
[0226] 在702,第一用户(A)可以将包括将通证(T)转移的第一交易发送给第二用户(B)。在执行方法700中,验证应用程序用于执行步骤704和步骤708,步骤704和步骤708对应于如上结合图6所描述的方法600的步骤604和步骤608。在一些实施例中,验证应用程序用于执行步骤706,步骤706对应于如上结合图6所描述的方法600的步骤606。
[0227] 验证应用程序用于使用先前交易的指示符来查询区块链9,以确定在710是否可以标识与通证(T)相关联的认证交易。认证交易包括与通证(T)相关联的先前交易,其中,该通证(T)已经被授权。例如,如果与通证(T)相关联的兑换脚本已经由授权签署人(例如通证(T)的发行方或受信服务提供商)签署,则可以认为通证是授权的或合法的。签署可以包括数字加密签名。
[0228] 在一些实施例中,验证应用程序可以用于仅在706如果验证应用程序首先确定第一交易的通证(T)尚未受认证则查询区块链9。例如,这可以涉及:确定与通证(T)相关联并且被引用作为对交易的输入的兑换脚本是否已经由授权签署人(例如通证(T)的发行方或受信服务提供商)签署。
[0229] 在一些实施例中,查询区块链9包括:将先前交易的指示符与区块链9中记录的交易的对应指示符进行比较,以标识具有与先前交易的指示符相同的指示符的在先交易。例如,先前交易的指示符可以包括第一交易中指示的先前交易ID。
[0230] 验证应用程序用于逐步通过(即迭代过)区块链9中的条目,以定位与通证相关联的授权交易。因此,例如,如果在区块链9中标识为与通证(T)相关联的最新近交易不是授权交易,则验证应用程序用于定位或标识与紧接最新近交易之前的、与所述通证相关联的交易,并且确定此交易是否是授权交易。如果与紧接最新近交易之前的、与通证相关联的交易不是授权交易,则验证应用程序用于定位或标识与该通证相关联的还更早的交易,并确定该交易是否是授权交易。
[0231] 在一些实施例中,验证应用程序用于确定最新近或更早的交易是授权交易包括:确定与通证相关联并且被引用作为对交易的输入的兑换脚本是否已经由授权签署人(例如通证(T)的发行方或受信服务提供商)签署。
[0232] 在一些实施例中,响应于确定区块链9中所记录的交易不是授权交易,验证应用程序用于根据该交易的条目确定更早的交易的指示符并使用该更早的交易的指示符来标识区块链9中用于该更早的交易的条目。指示符可以包括与交易相关联的先前交易ID。例如,在一些实施例中,验证应用程序用于通过根据最新近交易或更早的交易的输入脚本来确定先前交易标识符而对紧接最新近交易或较早的交易之前的交易进行定位或标识。迭代地执行该过程,直到不能标识更早的交易。因此,本发明提供一种有利的验证技术,包括动态构造相关区块链交易的逻辑层级。从初始交易开始并使用多个源构造层级,因为交易记录于区块链上的不同区块内。在这个意义上,本发明标识并关联来自多个源的相关数据并在验证过程中使用它。
[0233] 一旦验证应用程序标识授权交易,方法700就移至步骤712。然而,如果验证应用程序未标识授权交易,则方法700移至步骤714。
[0234] 响应于标识区块链9中的认证交易,验证应用程序用于在712确定通证(T)是有效的。例如,如果验证应用程序确定在先交易的兑换脚本已经由授权签署人签署,则验证应用程序将在先交易标识为授权交易。
[0235] 在一些实施例中,响应于在区块链9中无法确定认证交易,验证应用程序用于在714确定通证(T)是无效的。
[0236] 处理设备
[0237] 如上文结合图1所讨论的那样,发行方(I)3、第一用户(A)5和第二用户(B)7可以与第一处理设备13、第二处理设备15和第三处理设备17相关联。区块链9还可以与一个或多个处理设备19相关联。所有权登记数据库23还可以与一个或多个处理设备21相关联。这样的处理设备可以是电子设备(例如计算机、平板计算机、移动通信设备、计算机服务器等)的一部分。除了处理设备之外,电子设备还可以包括数据存储器11和用户接口(未示出)。
[0238] 图8示出处理设备13、处理设备15、处理设备17、处理设备19、处理设备21的示例。处理设备13、处理设备15、处理设备17、处理设备19、处理设备21包括处理器1510、存储器
1520以及接口设备1540,他们经由总线1530彼此通信。存储器1520存储用于实现本文描述的方法(包括方法300、方法500、方法600以及方法700)的指令和数据,并且处理器1510用于执行来自存储器1520的指令以执行所述方法。接口设备1540可以包括通信模块(未示出),该通信模块有助于与通信网络5的通信,并且在一些示例中,有助于与用户接口和诸如数据存储器11之类的外围设备的通信。应当注意的是,尽管处理设备1501可以包括独立的网络元件,但是处理设备13、处理设备15、处理设备17、处理设备19、处理设备21也可以是另一网络元件的一部分。此外,由处理设备13、处理设备15、处理设备17、处理设备19、处理设备21执行的一些功能可以分布在多个网络元件之间。例如,发行方3可以具有多个处理设备23以在与发行方(I)3相关联的安全局域网中执行方法300、方法500、方法600和/或方法700。
[0239] 在本公开描述用户、发行方、商家、提供商或其他实体执行特定动作(包括签署、发行、确定、计算、发送、接收、创建等)的情况下,使用该措辞是出于陈述的清楚的目的。应该理解的是,这些动作由这些实体所操作的计算设备执行。
[0240] 签署可以包括:执行加密函数。加密函数具有用于明文的输入和用于密钥(例如私钥)的输入。处理器可以执行该函数以计算可以用作签名的数字或串。然后,连同明文一起提供签名,以提供签署的文本。如果消息文本或密钥改变达单个位,则签名完全改变。尽管计算签名需要很少的计算能力,但是重新创建具有给定签名的消息实际上是不可能的。这样,如果私钥是可用的,则明文只能由有效签名改变并且伴随。此外,其他实体可以使用公共可用的公钥来容易地验证签名。
[0241] 在多数情况下,加密和解密包括处理器执行加密函数,以计算分别表示加密消息或明文消息的输出串。
[0242] 密钥、通证、元数据、交易、要约、合约、签名、脚本、元数据、邀请等是指表示为存储在数据存储器上的数字、文本或串,例如类型“string”或“int”或其他类型程序代码或文本文件中的变量。
[0243] 点对点账本的示例是比特币区块链。以比特币货币转移资金或支付费用包括:在比特币区块链上创建交易,其中,资金或费用从交易输出。比特币交易的示例包括输入交易散列、交易金额、一个或多个目的地、一个或多个收款人的公钥、以及通过使用付款人的私钥和作为输入消息的输入交易来计算签名而创建的签名。可以通过检查输入交易散列存在于比特币块链的拷贝中并且验证使用公钥检查签名是正确的来验证交易。为了确保在其他地方尚未使用相同的输入交易散列,该交易被广播到计算节点(“矿工”)的网络。仅如果输入交易散列尚未连接且签名有效,则矿工接受该交易并将该交易记录在区块链上。如果输入交易散列已链接到不同的交易,则矿工拒绝该交易。
[0244] 为通证分配加密货币包括:使用所分配的加密货币和交易中的元数据字段中表示的通证来创建交易。
[0245] 当关联两个项目时,这意味着这些项目之间存在逻辑连接。例如,在数据库中,用于两个项目的标识符可以存储在相同的记录中,以使两个项目彼此相关联。在交易中,两个项目的标识符可以包括于交易串中,以使两个项目彼此相关联。
[0246] 使用比特币协议,兑换脚本和/或解锁通证包括:使用私钥计算脚本和/或交易的签名串。该脚本可能需要从不同私钥或其他条件推导的多于一个的签名。然后,将该交易的输出提供给矿工。
[0247] 授权另一实体可以包括:使用私钥计算交易的签名串并将该签名串提供给该实体,以允许该实体使用该签名来验证该交易。
[0248] 用户具有与另一实体的账户可以包括该实体存储关于此用户的信息,诸如电子邮件地址、名称以及潜在地公钥。例如,实体可以维护数据库,诸如SQL、OrientDB、MongoDB等。在一些示例中,实体还可以存储用户的私钥中的一个或多个私钥。
[0249] 本领域技术人员将理解的是,在不脱离本公开的广泛的一般范围的情况下,可以对上述实施例进行多种变化和/或修改。因此,本发明的实施例在所有方面都被认为是说明性的而非限制性的。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用