用于区块链的加密货币的通用令牌化系统的制作方法

文档序号:16050751发布日期:2018-11-24 11:15阅读:343来源:国知局

本发明总体上涉及一种用于控制和/或转移资产,或转移资产所有权的解决方案。特别地,涉及一种创建、转移所有权和赎回代表资产的令牌的方法。本发明特别应用于如比特币区块链的点对点分布式分类账上,创建与交易相关的令牌。该令牌可代表合约权利、智能合约或其它形式的资产。

背景技术

商业交易可能涉及产权转移。这些权利可包括不动产或个人财产(包括有形财产和无形财产二者)。此外,当事人之间的合约还可包括约束双方的合约权利。在数字经济中,可能期望交易以及时的方式且在很远的距离内进行。这种期望以及实际限制表示传统的财产转移形式——例如代表合约、可转让票据等文件的硬拷贝的实际交付或有形财产本身——是不可取的。最近,区块链已被用于数字资产的转移。

区块链是一种电子分类账,该电子分类账作为一种由块组成的基于计算机的分散式、分布式、点对点系统而生效,而这些块又由交易组成。每个交易(tx)都是在区块链系统中,对参与者之间的数字资产的控制转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个块均包含先前块的散列,使得这些块被链接在一起以创建所有交易的永久的、不可更改的记录,这些记录自其创建以来已被写入区块链中。交易包含嵌入其输入和输出中的称为脚本的小程序,这些脚本指定如何以及何人可以访问交易的输出。在比特币平台上,这些脚本使用基于堆栈的脚本语言编写。

为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每个交易都有效,并且从网络拒绝无效交易。安装在节点上的软件客户端通过执行其锁定和解锁脚本,对未用过的交易(utxo)执行这种验证工作。如果锁定和解锁脚本的执行评估为true,则交易有效并且将交易写入区块链。因此,为了将交易写入区块链,必须i)通过接收交易的第一节点验证-如果交易验证通过,则节点将其中继到网络中的其它节点;ii)加入到由矿工建造的新块;和iii)开采,即加入到过去交易的公共分类账。

尽管区块链技术最广为人知的是用于加密货币的实施方案,但数字企业家已经开始探索比特币所基于的加密安全系统以及可存储在区块链上以实现新系统的数据二者的使用。如果区块链可用于不限于加密货币领域的自动化任务和过程,那将是非常有利的。这样的解决方案将能够利用区块链的益处(例如永久性、防篡改的事件记录、分布式处理等),同时在其应用中更通用。

目前研究的一个领域是使用区块链来实施“智能合约”。这些是设计成自动执行机器可读的合约或协议的条款的计算机程序。与用自然语言编写的传统合约不同,智能合约是机器可执行程序,其包括可处理输入以产生结果的规则,然后可根据那些结果执行动作。

与区块链利益相关的另一个领域是使用“令牌”(或“彩色硬币”)以通过区块链来表示和转移现实世界的或虚拟的实体。潜在敏感或秘密的项目可由令牌表示,该令牌没有可辨别的含义或价值。因此,令牌充当了允许从区块链中引用资产的标识符。

对本说明书中包括的文档、行为、材料、设备、物品等的任何讨论不应被视为承认任何或所有这些事项形成现有技术基础的一部分或是与本发明相关领域的公知常识,由于他们存在于本发明的每个权利要求的优先权日之前。

在本文档中,我们使用术语“区块链”来包括所有形式的电子的、基于计算机的、点对点的分布式分类账。这些包括但不限于基于共识的区块链和交易链技术、许可和未许可的分类账、共享的分类账及其变体。区块链技术最广为人知的应用是比特币分类账,尽管已经提出并开发了其它区块链的应用方案。虽然本文中出于方便和说明的目的引用了比特币,但应注意,本发明不限于通过比特币区块链来使用,其他替代性的区块链应用方案和协议也落入本发明的范围内。

在整个说明书中,词语“包括(comprise)”或诸如“包括(comprises)”或“包括(comprising)”的变体将被理解为暗示包括所叙述的元件、整体或步骤,或元件、整体或步骤的组,但不排除任何其它元件、整体或步骤,或元件、整体或步骤的组。



技术实现要素:

本发明提供了如所附权利要求中所限定的发明。

本发明可提供用于通过区块链来安全控制和/或转移资产或权利的解决方案。附加地或可替代地,本发明可实现对资产或权利的所有权的控制和/或转移。这可以是数字或虚拟资产,例如智能合约或现实世界/实物资产。本发明可使用令牌化技术来促进这种控制或转移。结合使用密钥,本发明能够以安全的方式实施转移,密钥,同时不需要对底层区块链协议进行任何改变。

本发明尤其提供:通过使用散列技术增强了对用于电子转移的存储器使用,改进的安全性和数据完整性的优化,通过消除对可信第三方的需要改进了安全性,以及增强了数据的匿名性。该优点列表不是限制性的或详尽的。

本发明可能需要各种不同且独立的基于计算机的资源的交互和相互通信,例如一个或多个用户设备和分布式计算机系统(区块链),其包括被配置为执行区块链相关软件和协议的计算节点。

本发明可提供一种方法,包括以下步骤:

生成区块链交易(tx),其具有与数字资产(b1)相关的输出(txo)和兑换脚本(rs1)的散列(h1),赎回脚本(rs1)的散列(h1)包括:

包括令牌的元数据,所述令牌是令牌化实体的表示或引用;和

至少一个(优选两个或更多个)公共密钥。

数字资产(b1)可为例如比特币的一定数量的加密货币。可在交易输出txo的锁定脚本内提供赎回脚本。可在赎回脚本中为元数据提供位置,该位置在区块链协议中被指定为密钥的位置。

该方法还可包括将交易tx提交给区块链的步骤。实际上,加密货币(b1)因此可与令牌相关地锁定在区块链上。该数量的加密货币(b1)只能在提供解锁脚本时花费(赎回),该解锁脚本满足用于输出txo的锁定脚本的要求。特别是,必须提供赎回脚本,当进行散列处理时,该赎回脚本与txo的锁定脚本提供的散列匹配。由于输出txo的锁定脚本包括赎回脚本的散列,其继而包括令牌(在元数据中),加密货币(b1)与令牌相关。在呈现正确的解锁(赎回)脚本时,加密货币(b1)的所有权可被转移到赎回方或用户,即它被花费。

术语“花费”、“转移”、“赎回”或“转移所有权/控制权”在本文中可互换使用。此外,术语“用户”在本文中可用于指代人类用户或基于机器的资源。

公钥可与相应的私钥相关联,以形成密钥对。可能需要相应的私钥以解锁交易输出(txo),从而实现数字资产和/或其所有权的转移。令牌化实体可存储在区块链之上或之外。它可为数字资产,例如(智能)合约或某种其它形式/类型的资产或实体。可在赎回脚本中提供令牌,如此它看起来是区块链协议,或由区块链协议解释为密钥。因此,底层区块链协议可能与赎回脚本中提供的令牌和/或其它元数据的存在无关。然而,元数据可由参与本发明过程的用户解释并作为令牌使用。

因此,本发明可包括能够通过区块链以加密强制和安全的方式向用户发行数字令牌的实施例或方面。可提供相应的系统,该系统被安排用于实现上述任何实施例的方法,并且包括区块链网络和相关节点。

现在提供本发明的其他或替代措辞、特征或实施例。与本发明的一个或多个方面或实施例描述的特征,可与一个或多个其它方面或实施例相关地使用。

本发明可提供由发行方(i)创建第一令牌(t1)的计算机实现方法。第一令牌(t1)可与第一数量的加密的、可电子转移的数字资产(b1)相关联。

作为上述方法的补充或替代,该方法可包括以下步骤中的一个或多个:通过通信网络,接收来自第一用户(a)的对第一令牌(t1)的请求;确定第一用户公钥(p1a),其中第一用户公钥(p1a)与第一用户私钥(v1a)形成密码对;分配第一数量的加密的、可电子转移的数字资产(b1)以与第一令牌(t1)相关联;确定第一赎回脚本(rs1)的第一散列(h1),其中第一赎回脚本(rs1)基于:至少第一元数据(md1),其包括与第一令牌(t1)相关的信息;第一用户公钥(p1a);和与发行方(i)相关的第一发行方公钥(p1i),其中第一发行方公钥(p1i)与第一发行方私钥(v1i)形成密码对;通过通信网络,向点对点分布式分类账发送第一数据输出(o1),所述第一数据输出包括:第一数量的所述数字资产(b1)交易到第一用户(a)的指示;和第一散列(h1),其中第一散列(h1)与第一数量的所述数字资产(b1)相关联,以提供与第一用户(a)和发行方(i)相关的第一令牌(t1)。

确定第一赎回脚本(rs1)的第一散列(h1),其中第一赎回脚本(rs1)基于包括与第一令牌(t1)相关的信息的至少第一元数据(md1),与发行方(i)相关的第一用户公钥(p1a)和第一发行方公钥(p1i),并且通过通信网络,发送包括第一散列(h1)的第一数据输出(o1),提供多个有益效果。首先,因为关于令牌的信息被安全地嵌入诸如区块链的公共区块链中,提供数据传输的安全性,同时避免对可信第三方的需要,因为交易各方可依赖于相关交易的细节以公开可验证的方式被锁定。此外,保留交易的匿名性,由于第一赎回脚本进行了散列处理,在不引起赎回脚本的相应散列值的改变的情况下,改变元数据的值将是不切实际且困难的。还提供以下优点:第一元数据可嵌入在赎回脚本中可用于公钥的一个或多个位置中,从而使得不适合处理元数据的节点能够简单地将赎回脚本发送到其它节点,而不是阻止其进程。这继而改进相关交易的计算效率。提供的进一步的优点是元数据可包含指向合约的条款和条件的指针,从而使该信息能够存储在块外存储库中。这使得可减少处理和所用的存储器资源的数量,因为可在不需要传输其整个交易历史的情况下处理交易,同时还能够在之后可靠地验证相关交易的细节。提供的进一步优点是控制数据可合并到元数据中,例如在代表场地券或旅行券或代金券的令牌的情况下,用于屏障的访问代码。还提供的另一个优点是可划分令牌,启用两个或更多个交易输出,每个交易输出可与令牌化或非令牌化的数字资产相关。

第一数据输出(o1)可有助于记录脚本散列交易中的付费。

在该方法中,接收来自第一用户(a)的对令牌(t)的请求的步骤可包括接收要约或对合约的接受。接收来自第一用户(a)对令牌(t)的请求的步骤可进一步包括接收合约的至少一个或多个条款和条件。

该方法可进一步包括向第一用户(a)发送合约的至少一个或多个条款和条件。

第一元数据(md1)中的信息可包括合约的至少一个或多个条款和条件的散列。第一元数据(md1)中的信息包括以下中的一个或多个信息:一种合约;合约的一个或多个条款和条件;指向合约的条款和条件的指针;以及有关如何处理交易的信息。

该方法可进一步包括将第一赎回脚本(rs1)存储在数据存储中。

在该方法中,第一赎回脚本(rs1)可采用以下格式:

<numsigsmd1...p1ap1i...numkeysop_checkmultisig>

其中

numsigs是赎回第一令牌(t1)所需的签名数量;

numkeys是脚本中公钥槽的总数,包括元数据和公钥;

op_checkmultisig是一种按顺序将签名与公钥槽进行比较的操作。

该方法可进一步包括:确定第一用户(a)是否具有发行方(i)的账户(aca)以帮助与第一令牌(t1)相关的交易,其中如果第一用户(a)不具有账户,该方法进一步包括:通过通信网络,发送为第一用户(a)开立账户(aca)的请求,其中该账户(aca)与包括第一用户(a)的第一用户私钥(v1a)和第一用户公钥(p1a)的密码对相关联。

在该方法中,分配第一数量的所述数字资产(b1)以与第一令牌(t1)相关联的步骤可包括:确定第一令牌(t1)的第一令牌价值(tv1);确定第一令牌(t1)的钉住汇率(pr1);和基于钉住汇率(pr1)和第一令牌价值(tv1)确定第一数量的所述数字资产(b1)。

在一个备选方案中,分配第一数量的所述数字资产(b1)以与第一令牌(t1)相关联的步骤可包括:确定第一令牌(t1)的所述数字资产(mt1)的最小阈值;确定处于或高于所述数字资产(mt1)的最小阈值的第一数量的所述数字资产(b1)。

一种根据上述创建第一令牌(t1)的方法赎回与第一数量的所述数字资产(b1)相关的第一令牌(t1)的计算机实现方法,该方法包括发行方:通过通信网络,接收来自第一用户(a)的请求以赎回第一令牌(t1);确定与第一令牌(t1)相关的第一赎回脚本(rs1);接收第一用户私钥(v1a);用第一用户私钥(v1a)和第一发行方私钥(v1i)签署第一赎回脚本(rs1)以解锁与第一令牌(t1)相关的第一数量的所述数字资产(b1);通过通信网络,向点对点分布式分类账发送第二数据输出(o2),所述第二数据输出包括第一数量的所述数字资产(b1)交易到发行方(i)的指示。

在赎回第一令牌(t1)的方法中,第一令牌(t1)可具有第一部分(r1)和第二部分(r2)的令牌价值,其中来自第一用户(a)的赎回第一令牌(t1)的请求包括赎回第一部分(r1)的价值的请求,该方法进一步包括:确定第一用户公钥(p1a);和分配第二数量的所述数字资产(b2)以与第二令牌(t2)相关联,其中第二令牌具有基于第二部分(r2)的第二令牌价值(tv2)。该方法进一步包括确定第二赎回脚本(rs2)的第二散列(h2),其中第二赎回脚本(rs2)基于:至少第二元数据(md2),至少部分与第一令牌(t1)相关的第一元数据(md1);第一用户公钥(p1a);和与发行方(i)相关的第一发行方公钥(p1i)。在该方法中,输出到公共分类账的第二数据输出(o2)还可包括:至少第二数量的所述数字资产(b2)交易到第一用户(a)的指示;和第二散列(h2),其中所述第二散列(h2)与第二数量的所述数字资产(b2)相关联,以提供与第一用户(a)和发行方(i)相关的第二令牌(t2)。

一种由发行方(i)创建第三令牌(t3)的计算机实现方法,其中根据上述创建第一令牌(t1)的方法,第三令牌与来自第一令牌(t1)的值的转移相关联,该方法包括:

通过通信网络,接收来自第一用户(a)和/或第二用户(b)的请求,以创建第三令牌(t3);确定与第一令牌(t1)相关的第一赎回脚本(rs1);接收第一用户私钥(v1a);和用第一用户私钥(v1a)和第一发行方私钥(v1i)签署第一赎回脚本(rs1),以解锁与第一令牌(t1)相关的第一数量的所述数字资产(b1)。该方法进一步包括确定第二用户公钥(p1b),其中第二用户公钥(p1b)与第二用户私钥(v1b)形成密码对;和分配第三数量的所述数字资产(b3)以与第三令牌(t3)相关联。该方法进一步包括确定第三赎回脚本(rs3)的第三散列(h3),其中第三赎回脚本(rs3)基于:至少第三元数据(md3),至少部分与第一令牌(t1)相关的第一元数据(md1);第二用户公钥(p1b);和第一发行方公钥(p1i)。该方法进一步包括通过通信网络,向点对点分布式分类账发送第三数据输出(o3),该第三数据输出包括:至少第三数量的所述数字资产(b3)交易到第二用户(b)的指示;和第三散列(h3),其中第三散列(h3)与第三数量的所述数字资产(b3)相关联,以提供与第二用户(b)和发行方(i)相关的第三令牌(t3)。

在创建第三令牌(t3)的方法中,第一令牌(t1)可具有第一部分(r1)和第二部分(r2)的令牌价值,其中创建第三令牌(t3)的请求包括基于第一部分(r1)创建具有第三令牌价值(tv3)的第三令牌(t3)的请求,该方法进一步包括:确定第一用户公钥(p1a);和分配第二数量的所述数字资产(b2)以与第二令牌(t2)相关联,其中第二令牌具有基于第二部分(r2)的第二令牌价值(tv2)。该方法进一步包括确定第二赎回脚本(rs2)的第二散列(h2),其中第二赎回脚本(rs2)基于;至少第二元数据(md2),至少部分与第一令牌(t1)相关的第一元数据(md1);第一用户公钥(p1a);与发行方(i)相关的第一发行方公钥(p1i)。在该方法中,输出到点对点分布式分类账的第三数据输出(o3)可进一步包括:至少第二数量的所述数字资产(b2)交易到第一用户(a)的指示;和第二散列(h2),其中第二散列(h1)与第二数量的所述数字资产(b2)相关联,以提供与第一用户(a)和发行方(i)相关的第二令牌(t2)。

在创建第三令牌(t3)的方法中,分配第二数量的所述数字资产(b2)的步骤可包括:确定第二令牌(t2)的钉住汇率(pr2);和基于钉住汇率(pr2)和第二令牌价值(tv2)确定第二数量的所述数字资产(b2)。

在创建第三令牌(t3)的方法中,分配第二数量的所述数字资产(b2)的步骤可包括:确定第二令牌(t2)的所述数字资产(mt2)的最小阈值;和确定第二数量的所述数字资产(b2),其处于或高于第二令牌(t2)的所述数字资产(mt2)的最小阈值。

在创建第三令牌(t3)的方法中,第二数量的所述数字资产(b2)和/或第三数量的所述数字资产(b3)至少部分包括第一数量的所述数字资产(b1)。

创建第三令牌(t3)的方法可进一步包括:将第四数量的所述数字资产(b4)确定为交易费,其中输出到点对点分布式分类账的第一数据输出(o1)、第二数据输出(o2)和第三数据输出(o3)进一步包括,第四数量的所述数字资产(b4)作为交易费的交易的指示。

在上述方法中,点对点分布式分类帐可包括比特币区块链。

一种赎回与如上定义的第一数量的所述数字资产(b1)相关的第一令牌(t1)的计算机实现方法,该方法包括发行方:通过通信网络,接收来自第一用户(a)的请求以赎回第一令牌(t1);确定与第一令牌(t1)相关的第一赎回脚本(rs1);通过通信网络,发送第一赎回脚本(rs1)以由第一用户(a)签署;通过通信网络,接收由第一用户用第一用户私钥(v1a)签署的第一赎回脚本(rs1a);用第一发行方私钥(v1i)签署由第一用户(rs1a)签署的第一赎回脚本,以解锁与第一令牌(t1)相关的第一数量的所述数字资产(b1);通过通信网络,向点对点分布式分类账发送第二数据输出(o2),所述第二数据输出包括第一数量的所述数字资产(b1)交易到发行方(i)的指示。

一种由发行方(i)创建第三令牌(t3)的计算机实现方法,其中根据上述创建第一令牌(t1)的方法,第三令牌与来自第一令牌(t1)的值的转移相关联,该方法包括:

通过通信网络,接收来自第一用户(a)和/或第二用户(b)创建第三令牌(t3)的请求;确定与第一令牌(t1)相关的第一赎回脚本(rs1);通过通信网络,发送第一赎回脚本(rs1)以由第一用户(a)签署;通过通信网络,接收由第一用户用第一用户私钥(v1a)签署的第一赎回脚本(rs1a);用第一发行方私钥(v1i)签署由第一用户(rs1a)签署的第一赎回脚本,以解锁与第一令牌(t1)相关的第一数量的所述数字资产(b1);

确定第二用户公钥(p1b),其中第二用户公钥(p1b)与第二用户私钥(v1b)形成密码对;分配第三数量的所述数字资产(b3)以与第三令牌(t3)相关联;确定第三赎回脚本(rs3)的第三散列(h3),其中第三赎回脚本(rs3)基于:至少第三元数据(md3),至少部分与第一令牌(t1)相关的第一元数据(md1);第二用户公钥(p1b);和第一发行方公钥(p1i);通过通信网络,向点对点分布式分类账发送第三数据输出(o3),所述第三数据输出包括:至少第三数量的所述数字资产(b3)交易到第二用户(b)的指示;和第三散列(h3),其中第三散列(h3)与第三数量的所述数字资产(b3)相关联,以提供与第二用户(b)和发行方(i)相关的第三令牌(t3)。

本发明可进一步提供一种令牌化方法。它可使用例如区块链的分布式点对点网络来实现。因此,本发明可利用区块链技术的所有已知优势。本发明可为通过区块链平台安全转移数据项目提供一种改进的解决方案。它可被描述为用于在例如区块链上高效安全地转移令牌的解决方案。

该方法可提供代表合约的解决方案,该合约提供至少一个资产和/或服务。合约可为可转移合约。

本发明不限于由合约转移的资产和/或服务的性质、类型、数量等。该方法可提供用于令牌化任何类型的可转移合约的编码方案。

该方法可包括生成区块链交易的步骤。交易可包括三个参数或数据项。该数据可指示:

i)在合约下可用的份额数量(此处可称为“numshares”);

ii)从发送者转移到至少一个接收方的一定数量的转移单元(这里可称为“shareval”);和

iii)计算该一定数量的转移单元的价值的因子(这在本文中可称为“钉住汇率”)。

本发明的一个优点是它可用于将合约封装或表示为区块链上的令牌。这仅可使用上述三个参数来实现。实际上,可最少的使用这三个数据项来指定合约。由于本发明提供可用于任何类型的可转移合约的解决方案,因此可设计和应用通用算法。

这三个数据项可作为交易内的元数据提供。有利地,仅需要少量的元数据(以字节为单位)来表示任何类型的合约。因此,本发明提供用于在诸如区块链的点对点分布式系统上转移令牌的高效且有效并强大的机制。

该数据可进一步包括资产可用性的指示,即根据合约提供的商品和/或服务。附加地或替代地,它可包括根据合约提供的资产或服务的类型和/或数量的指示。

该交易在实践中还可包括第四参数或数据项,其标识正在转移的特定资产,例如与交易有关的房屋或竞赛马。

该方法可进一步包括将交易发送到至少一个接收者(或与至少一个接收者相关的地址)的步骤。

交易可包括合约;和/或用于访问合约或访问包含合约的文件的信息。这为通过区块链转移合约或转移与包含合约的文件的位置相应的信息提供了便利。

该交易可包括合约的散列。优点是为验证合约的真实性提供了一种手段的。

该交易可包括至少一个加密签名。这提供了识别交易来源的优点。

该交易可包括至少一个锁定脚本和至少一个公钥。这提供防止合约被交易的预期接收者以外的其他人赎回的优点。

转移单元可与加密货币有关,其可与比特币相关的或无关。转移单元可是比特币的金额,区块链可为比特币区块链。这提供了可在现有基础设施上实现该方法的优点。

因此,本发明提供了一种在区块链上安全转移合约的简单且有效的方案。

一种计算机程序,包括机器可读指令,以使处理设备实施上述任何一种方法。

一种设备,包括执行上述任一方法的处理设备。

附图说明

参考以下附图描述本发明的各示例:

图1是用于创建和赎回令牌的示例系统的示意图;

图2(a)是示出第一用户和发行方之间的第一种类型的交易示例的图,该第一种类型的交易包括创建令牌;

图2(b)是示出第一用户和赎回发行方之间的第二种类型的交易示例的图,第二种类型的交易赎回令牌。

图2(c)是示出第一用户和第二用户之间且由发行方促进的第三种类型的交易示例的图,第三种类型的交易导致令牌的价值从第一用户转移到第二用户;和

图3(a)是示出第一用户和发行方之间的第四种类型的交易示例的图,第四种类型的交易赎回令牌的一部分价值;

图3(b)是示出第一用户和第二用户之间且由发行方促进的第五种类型的交易示例的图,第五种类型的交易导致令牌的一部分价值从第一用户转移到第二用户;

图4是用于创建令牌的计算机实现方法的流程图。

图5是用户注册注册的计算机实现方法的流程图。

图6是创建令牌的计算机实现方法的另一个示例的流程图。

图7是赎回令牌的计算机实现方法的流程图。

图8是图7所示的计算机实现方法中的附加步骤的流程图。

图9是由发行方促进的从第一用户向第二用户转移价值的计算机实现方法的流程图;

图10是图9所示的计算机实现方法中的附加步骤的流程图。

图11是赎回令牌的计算机实现方法的变型的流程图,其中赎回脚本被发送到第一用户以进行签署;

图12是由发行方促进的从第一用户向第二用户转移价值的计算机实现方法的变型的流程图,其中将赎回脚本发送到第一用户以进行签署;和

图13示出示意性示例处理设备。

具体实施方式

系统概述

现在将描述用于创建、赎回和转移令牌的方法和系统。图1示出系统1,其包括发行方(i)3、第一用户(a)5和第二用户(b)7。发行方(i)3创建令牌,发行方(i)3可为例如银行、另一个金融机构、铸币厂、公司等。发行方(i)3与第一处理设备13相关,用于实施方法100、200、300,发行方(i)3与通信网络8通信。尽管第一处理设备13显示为单个节点,但是应当了解本文描述的方法100、200、300可由与发行方(i)3相关的多于一个的处理设备13或节点实施,一个或多个步骤可在不同的节点分发和执行。发行方(i)还可具有关联的数据存储11。

第一用户(a)5与第二处理设备15相关,并通过通信网络8,与发行方(i)3的第一处理设备13通信。第一用户(a)5可请求发行方(i)3创建令牌,与发行方(i)3兑换令牌,或请求将令牌的部分或全部价值转移给第二用户(b)7。

第二用户(b)7与第三处理设备17相关,并通过通信网络8,与第一处理设备13通信。在一些示例中,第二处理设备15和第三处理设备17可为由对应的第一和第二用户5、7使用的计算机、移动通信设备或其它电子设备。在其它示例中,第二处理设备15和第三处理设备17可为第一和第二用户经由终端或其它接口可访问的虚拟机。

还示出用于记录交易的点对点分布式分类帐9。点对点分布式分类帐9可与一个或多个处理设备19相关以接收和记录交易。点对点分布式分类帐的示例包括区块链,其是基于比特币协议的交易的分布式数据库。因此,与分类帐相关的处理设备19可为由“矿工”使用的处理设备。

涉及令牌的交易的概述

在非限制性示例中,存在涉及令牌的三种通常类型的交易,如图2所示。在该示例中,发行方(i)是金融机构,其还管理第一用户(a)5和第二用户(b)7的电子钱包。

如图2(a)中所示,第一种类型的交易涉及第一令牌(t1)的创建,其中第一用户(a)转移法定货币(例如,$1,000aud)给发行方(i)3。在法定货币的交换中,发行方(i)“令牌化”第一数量的加密货币(b1),使其具有令牌价值,并且发行方(i)将该第一数量的加密货币(b1)转移给第一用户(a)5。第一令牌(t1)可代表合约,例如合约规定发行方(i)同意以特定的法定货币量(例如$1,000aud)赎回第一令牌(t1)的持有人。因此,第一令牌(t1)可类似于可转让票据。“加密货币”是指加密的、可电子转移的数字资产,例如但不限于比特币。

如图2(b)中所示,第二种类型的交易涉及与发行方(i)3从第一用户(a)5赎回第一令牌(t1)。在该交易中,第一数量的加密货币(b1)从第一用户(a)5转移到发行方(i)3。作为回报,发行方(i)3以法定货币的形式将赎回的值发送给第一用户(a)5。转移到发行方(i)3的第一数量的加密货币(b1)可在其它后续交易中花费。发行方(i)3可选择其持有的第一数量的加密货币(b)是否保持“令牌化的”或被转换为“非令牌化的”加密货币。

如图2(c)中所示,第三种类型的交易涉及第一用户(a)5将第一令牌(t1)的价值转移给第二用户(b)7。在该示例中,表示第一令牌(t1)的第一数量的加密货币(b1)从第一用户(a)5转移到第二用户(b)7。发行方(i)3参与该交易,因为发行方(i)需要签署赎回脚本(下面讨论)以授权交易。该交易的结果是第二用户(b)7具有第一数量的加密货币(b1),第一数量的加密货币(b1)具有令牌价值,该令牌价值可通过与发行方(i)3兑换而被“花费”(以与上面讨论的类似方式)或可转移给另一个用户。

在一些情形下,第一用户(a)5仅可花费第一令牌(t1)的价值的一部分。参考图3(a)和3(b),这将描述为第四和第五种类型的交易,图3(a)和3(b)是上面讨论的第二和第三种类型的交易的变型。在这些示例中,第一令牌(t1)具有由第一部分(r1)加上第二部分(r2)组成的总令牌价值,并且第一用户(a)5希望“花费”第一部分(r1)并将第二部分(r2)作为找零退回。

在第四种类型的交易中,如图3(a)中所示,第一用户(a)5具有代表来自先前交易的第一令牌(t1)的第一数量的加密货币(b1)。然后,第一用户(a)通过将一定数量的加密货币作为具有第一部分(r1)的价值的令牌进行转移来赎回令牌(t1)的第一部分(r1),并且作为回报,第一用户(a)接收具有代表第一部分(r1)的价值的法定货币。由于仅赎回了第一部分(r1),剩余的第二部分(r2)与第一用户(a)5保持在一起。这被表示为第二数量的加密货币(b2)并作为具有表示第二部分(r2)的价值的令牌。在一个示例中,第二数量的加密货币(b2)是第一数量的加密货币(b1)减去转移到发行方(i)3的数量。

在第五种类型的交易中,如图3(b)中所示,第一用户还具有表示来自先前交易的第一令牌(t1)的第一数量的加密货币(b1)。然后,第一用户(a)通过将第三数量的加密货币(b3)作为具有第一部分(r1)的价值的令牌转移给第二用户(b)7来转移令牌(t1)的第一部分(r1)。由于仅转移第一部分(r1),剩余的第二部分(r2)与第一用户(a)5保持在一起。这被显示为第二数量的加密货币(b2)作为具有表示第二部分(r2)的价值的令牌。在一个示例中,第二数量的加密货币(b2)和第三数量的加密货币(b3)从第一数量的加密货币(b1)派生而来。

现在将描述上述类型的交易的详细示例。

第一种类型的交易——发行方为第一用户(a)创建第一令牌(t1)

本文描述的方法的非限制性的应用示例包括存入法定货币量(例如,$1000aud)到发行方(i)(例如金融机构)的第一用户(a)5,发行方(i)继而为第一用户(a)5创建代表存入的法定货币的价值的第一令牌(t1)。取决于特定条款和条件,第一用户(a)5可在未来的日期兑换与存入的法定货币相关的价值的第一令牌(t1)。条款和条件还可允许第一用户(a)5具有转移给第二用户(b)的令牌的至少一部分价值。这些条款和条件可为特定于令牌的,或可为用户5、7和发行方(i)3之间的一般条款和条件。

创建令牌的方法概述

现在将参考图2(a)和4描述由在发行方(i)3的第一处理设备13创建第一令牌(t1)的方法100的示例。方法100包括通过通信网络8接收110来自第一用户(a)5的对第一令牌(t1)的请求。该方法进一步包括确定120第一用户公钥(p1a),其与第一用户私钥(v1a)形成密码对。

方法100包括分配130第一数量的加密货币(b1),以与第一令牌(t1)相关。方法100进一步包括确定140第一赎回脚本(rs1)的第一散列(h1),其中第一赎回脚本(rs1)基于:至少第一元数据(md1),其包括与第一令牌(t1)相关的信息;第一用户公钥(p1a);和与发行方(i)相关的第一发行方公钥(p1i),其中第一发行方公钥(p1i)与第一发行方私钥(v1i)形成密码对。

方法100还包括通过通信网络8,发送150第一数据输出(o1)到点对点分布式分类账9。第一数据输出(o1)包括:将第一数量的加密货币(b1)给到第一用户(a)5的交易的指示;和第一散列(h1),其中第一散列(h1)与第一数量的加密货币(b1)相关,以提供与第一用户(a)5和发行方(i)相关的第一令牌(t1)。

因此,方法100允许创建令牌,由此该令牌的记录被发送到点对点分布式分类帐9。在点对点分布式分类帐9上记录该交易的优点在于它可允许诸如第一用户(a)5的接收者验证令牌(t1)的存在。此外,由于包括与第一令牌(t1)相关的信息的至少第一元数据(md1)进行了散列处理,这允许根据与令牌相关的信息对交易(在公共记录上)进行验证。在一个示例中,与第一令牌(t1)相关的信息可为合约的条款和条件。因此,在将进行了散列处理的第一赎回脚本中包括条款和条件,好处在于可使第一用户(a)5(或任何其它用户)感到舒适,因为任何变化将改变第一散列(h1),所以条款和条件不能被改变。由于在创建第一令牌(t1)时,将第一散列(h1)发送并记录在点对点分布式分类账9上,因此在以后会提供相同的第一散列(h1)的时间点,更改条款和条件是不可能的(或困难的)。

现在将描述发行方(i)3为第一用户(a)5创建令牌的详细示例,包括初始注册过程400。

注册方法400

现在将参考图5描述注册方法400。方法100可包括确定312第一用户(a)5是否具有发行方(i)的账户。特别地,这可包括确定第一用户(a)5是否具有适合于促进与第一令牌(t1)相关的交易的账户。

如果第一用户(a)5不具有帐户,则该方法可进一步包括通过通信网络8,发送314为第一用户(a)开立帐户的请求。开立账户的请求可包括向第一用户(a)5发送用于发行方(i)的账户的条款和条件的一般细节,以及向第一用户(a)5发送接受条款和条件的请求。这还可包括发送对第一用户(a)5的细节的请求。

另外,发送开立账户的请求还可包括发送用于生成密码对的请求,该密码对包括第一用户(a)5的第一用户私钥(v1a)和第一用户公钥(p1a)。在一些示例中,这可包括向与发行方(i)相关的另一节点发送请求以生成第一用户私钥(v1a)和第一用户公钥(p1a),由此另一节点继而生成第一用户私钥(v1a)和第一用户公钥(p1a)并发送到第一用户(a)5。在其它示例中,这可包括向第一用户(a)5发送在与第一用户(a)5相关的第二处理设备15处生成第一用户私钥(v1a)和第一用户公钥(p1a)的请求。应当了解,与第一用户(a)5相关的这些密钥可由其它方法生成,或在其它工具处生成,只要第一用户私钥(v1a)是安全的,并且仅在第一用户(a)5的授权下使用。

第一用户(a)5可接收714开立账户的请求,继而向发行方(i)3发送716开立账户的信息。

注册方法400还也可包括创建316与第一用户(a)5的账户相关的电子钱包,并且将与该电子钱包和账户相关的信息存储在数据存储11中。

在一些示例中,第一用户私钥(v1a)可存储在电子钱包中,从而理想地,第一用户私钥(v1a)仅可在第一用户(a)5的授权下访问。例如,电子钱包可具有与第一用户(a)5相关的多个私钥,由此当第一用户(a)5成功且安全地用发行方(i)3登录时(例如在虚拟机环境或终端中),第一私钥可用。然后,第一用户(a)5可选择性地授权发行方(3)以从数据存储11中获取和使用这些私钥进行交易。在一些示例中,用户私钥不是存储在电子钱包中,但能够由发行方(i)3用来自相应用户的授权来重新创建。在又一个示例中,用户私钥可为拆分密钥,其中电子钱包具有一部分而用户具有剩余部分,由此它们可组合以重新创建私钥。

在其它示例中,第一用户私钥(v1a)可与发行方(i)、第一处理设备13和数据存储11保持分离。例如,第一用户(a)5可将第一用户私钥(v1a)的硬拷贝保存在个人电子设备、计算机或存储设备的保险的或安全的部分中。

应当了解,方法400中的步骤可在方法100期间执行,例如在接收110来自第一用户(a)5的请求第一令牌(t1)的步骤之后。在其它示例中,可预先实施该方法或注册400。

创建令牌100的详细方法

现在将参考图2(a)、4和6(分别示出由发行方(i)3和第一用户(a)5实施的方法100和500)详细描述创建第一令牌(t1)的方法100。。在该示例中,将在第一用户(a)5通过发行方(i)3存入现金以换取代表存入现金的令牌的背景下讨论创建令牌。然而,应当了解,这是非限制性示例,可在其它交易的背景中创建令牌。例如,令牌可代表任何其它合约、可转让票据、有形资产等,也可表示包括用于设置障碍而设的访问代码的可转移资产,例如在代表场地券或旅行券或代金券的令牌的情况下。

同意用于令牌的条款和条件

在注册方法400之后或之前,第一用户(a)5可发送510对第一令牌(t1)的请求。在一个示例中,第一用户(a)5通过存入法定货币(例如$1000aud)来进行该请求,并请求将该金额用于令牌(t1)。

在一个示例中,由第一用户(a)5发送的请求可包括合约的要约。该要约可包括合约的一个或多个条款和条件。例如,第一用户(a)5可在请求中包括与存入的$1000aud的相关的令牌应当具有与加密货币固定的钉住汇率钉住汇率。例如,要求钉住汇率为1000satosshi/cent(aud)。应当了解,在要约中可包括其它条款和条件,例如账户保管费、交易费,如何赎回令牌等。

如图6中所示,通过通信网络8,发行方(i)的第一处理设备13接收110来自第一用户(a)5对第一令牌(t1)的请求,在某些情况下,至少条款和条件中的一些。然后,发行方(i)可确定112是否接受该请求,提出包括修改请求的条款和条件的的还价,或拒绝该请求。然后,方法100包括通过通信网络8,发送114步骤112中确定的结果。

然后,第一用户(a)5可通过通信网络8,接收520步骤112中确定的结果,该结果包括接受、还价或拒绝请求。

在一个备选示例中,发送510到发行方(i)的请求可简单地包括对第一令牌(t1)的请求。在这种情况下,发行方(i)可向第一用户(a)5发送包括条款和条件的要约。第一用户(a)5继而可确定是否接受要约、提出还价或拒绝要约,然后将确定的结果发送到发行方(i)。

应当了解,步骤510、520和110、112、114可被修改为包括在发行方(i)和第一用户(a)5之间发送和接收的多轮要约和还价,直到它们达成一致为止。

在一些备选方案中,可标准化条款和条件,由此用户通过实施方法100、500中的步骤来接受条款和条件。在一个示例中,发行方(i)可具有包括第一用户(a)5在内的其客户提供令牌的标准化要约。这些令牌的要约可公开列出,例如在公共交易所或发行方的网站上。发行方(i)也可私下向第一用户(a)5提供有效要约,例如通过电子邮件,通过应用程序,或通过登录安全网站。

与令牌相关的条款和条件可存储在数据存储11中,发送给第三方存储或用作种子文件。

确定第一用户公钥120

方法100包括确定120第一用户公钥(p1a)。在一个示例中,第一用户公钥(p1a)可通过通信网络8由第一用户(a)5发送530给发行方(i)。在另一示例中,第一用户公钥(p1a)可关联存储在数据存储11中(例如,可在第一用户(a)5注册期间接收和存储)。因此,确定120第一用户公钥(p1a)的步骤包括从数据存储11中获取密钥。在又一示例中,可通过通信网络8,从第三方接收第一用户公钥(p1a)。第三方可包括,例如,充当公共目录的可信第三方,例如发证机构。

分配与令牌130相关的第一数量的加密货币

方法100包括分配130与第一令牌(t1)相关的第一数量的加密货币(b1)。为了将涉及第一令牌(t1)的交易的记录记录在点对点分布式分类账(在该示例中是区块链)中,该令牌必须与一定数量的加密货币相关联。继而,该数量的加密货币被记录在点对点分布式分类账上,作为从发行方(i)3到第一用户(a)5的交易。换句话说,区块链交易tx被提交给区块链网络以包含在分类账中。tx包括输出,该输出可用于将该数量的加密货币(或其所有权/控制权)从一方(例如发行方)转移到另一方(例如第一用户)。

与第一令牌(t1)相关的第一数量的加密货币(b1)的分配可基于令牌价值的比率。例如,可为第一令牌(t1)指定钉住汇率(pr1)。因此,分配130第一数量的加密货币(b1)的步骤可包括基于钉住汇率(pr1)和第一令牌价值(tv1)确定第一数量的加密货币(b1)。作为说明性示例,钉住汇率(pr1)可为1000satoshis/centaud,第一令牌价值(tv1)是$1000aud。因此,第一数量的加密货币(b1)可为10,000,000。

为令牌分配的加密货币的数量可能受以下某些考虑因素的影响。首先,在理想情况下,分配的该数量的加密货币具有小于令牌的价值(“令牌价值”)的市场价值(为此,这表示假设加密货币具有价值,加密货币的市场价值在其自身,无需参考令牌价值)。这是合乎需要的,使得没有动机将该数量的加密货币用于潜在价值而不是作为令牌。这可能类似于现金硬币,硬币的面值高于铸造硬币的金属的价值是可取的,因此没有欲望熔化硬币而得到金属的价值。在一些示例中,令牌价值是该数量的加密货币的潜在价值的几倍。然而,应当了解,某些令牌可能没有固定的或容易确定的令牌价值。例如,令牌可代表执行工作的合约,由此该价值可每天改变。在其它示例中,合约可能仅具有在兑换当天可确定的价值。

另一个考虑是,相对于令牌价值或交易的价值,分配的加密货币的数量不应太大,因为在点对点分布式分类账上记录该数量的加密货币的交易可能是有代价的,如收取交易费。在一些示例中,交易费基于交易中的加密货币的数量,因此可能希望将令牌的加密货币的数量保持在最小水平。

另一方面,分配用于与令牌相关的加密货币的数量不能无限小。首先,加密货币可具有最小面值金额,且例如,比特币具有最小量的一个satoshi(其中1比特币(btc)=10,000,000satoshi)。其次,加密货币的交易可被限制到最小否则不会被记录(或交易的成本将接近或超过执行交易的成本)。在一些示例中,该最小量是“尘埃”极限。因此,在一些示例中,为令牌分配一定数量的加密货币必须高于加密货币的最小阈值(mt1)。因此,方法100可包括确定适合于第一令牌(t1)的加密货币的最小阈值(mt1)以及确定处于或高于加密货币的最小阈值(mt1)的第一数量的加密货币(b1)。在一个示例中,“比特币”中,加密货币的最小阈值(mt1)是546satoshis。

为令牌分配该数量的加密货币时的另一个考虑是用于后续令牌的该数量的加密货币的可分性。例如,第一令牌(t1)可具有$1000aud的令牌价值(tv1),第一用户(a)5可能希望将$800aud的令牌价值转移给第二用户(b)7并保持剩余的$200aud令牌。这样的交易会涉及使用第一令牌(t1)的交易,其导致代表$200aud的第二令牌(t2)作为找零与第一用户(a)5保持在一起,并且创建要转移给第二用户(b)7的代表$800aud的第三令牌(t3)。因此,这种转移的结果是两个令牌,第二令牌(t2)和第三令牌(t3),其中这些令牌中的每一个也必须被分配一定数量的加密货币。如果第一数量的加密货币(b1)是最小的,例如在“尘埃”极限,则将需要获得更多数量的加密货币,以便创建的每个新令牌也都与足够数量的加密货币相关联以满足最低阀值。因此,为第一令牌(t1)分配足够数量的加密货币(b1)可能是有利的,使得该数量足以被分割以用于预期数量的后续令牌。

在一个示例中,条款和条件可指定加密货币的数量或令牌的最小价值或面额。例如,条款和条件可将令牌价值的最小面额设置为$10aud。因此,为第一令牌(t1)分配$1000aud的令牌价值(tv1)的第一数量的加密货币(b1)可包括确定第一数量,该数量将确保如果整个令牌价值(tv1)被分割为最小面额,存在足够的加密货币。在该示例中,令牌价值(tv1)可被分割为100个后续令牌(由$1000/$10计算)。因此,合适的第一数量的加密货币(b1)可为“尘埃”极限的100倍。

确定第一赎回脚本(rs1)的第一散列(h1)140

该方法进一步包括确定140第一赎回脚本(rs1)的第一散列(h1)。在一个示例中,赎回脚本的散列可用于为脚本散列交易的付费提供到付费脚本散列(p2sh-pay-to-script-hash)的地址。一个示例包括比特币协议中使用在p2sh脚本中的散列函数。这可包括sha256和ripemd160的组合。

第一赎回脚本(rs1)是可用于解锁第一令牌(t1)的脚本,如稍后所讨论的,第一令牌(t1)包括第一数量的加密货币(b1)的交易。当解锁第一令牌(t1)时,必须满足第一赎回脚本(rs1)的某些条件以解锁交易。特别是,需要第一用户(a)5和发行方(i)的签名。现在将描述第一赎回脚本(rs1)的示例。

第一赎回脚本(rs1)

第一赎回脚本(rs1)基于:至少第一元数据(md1),其包括与第一令牌、第一用户公钥(p1a)和第一发行方公钥(p1i)相关的信息。

(i)p2sh中的赎回脚本总述

作为背景,在付费脚本散列方法中,赎回脚本可采用以下形式:

<numsigspubk1pubk2...pubk15numkeysop_checkmultisig>

其中

numsigs-是满足兑换脚本以解锁交易所需的有效签名的数量“m”

pubk1,pubk2...pubk15-是与解锁交易的签名相应的公钥(达到最大15个公钥)

numkeys-是公钥的数量“n”(必须为15或更小)

为了解锁上述赎回脚本,需要对应于公钥的至少数量“m”个签名。在一些示例中,公钥的顺序是重要的,并且用于签署的“n”个中的数量“m”的签名必须按顺序完成。例如,假设“m”是2并且公钥的数量“n”是15。假设有两个签名可供使用,例如sig1(对应于pubk1),sig15(对应于pubk15),赎回脚本必须首先由sig1签署,然后是sig15。

(ii)使用p2sh的第一赎回脚本(rs1)

回到本示例,利用p2sh的第一赎回脚本(rs1)可包括赎回脚本中的至少第一元数据(md1)。特别地,至少第一元数据(md1)可嵌入在赎回脚本中可用于公钥的15个位置中的一个或多个中。

因此,在一个示例中,第一赎回脚本(rs1)可采取以下形式:

<numsigsmetadata1metadata2...pubk1pubk2...numkeysop_checkmultisig>其中

numsigs-是满足赎回脚本以解锁交易所需的有效签名的数量“m”

metadata1和metadata2包括代替公钥位置的元数据

pubk1和pubk2-是实际的公钥。在一个示例中,pubk1可是第一用户公钥(p1a),pubk2可是发行方公钥(p1i)

numkeys-是元数据和公钥所占位置的总数(必须为15或更少)。

这样做的优点是元数据将被包括在第一赎回脚本(rs1)中,继而将对该脚本进行散列处理,并且其记录将被包括在点对点分布式分类帐9中。因此,如果不是不可能的话,改变元数据的值而不引起第一赎回脚本散列(rs1)的相应散列的改变会是困难的。

以下示例可说明实际的优点。第一用户(a)5和发行方(i)3可能希望签订具有特定条款和条件的合约。合约可包括创建令牌的发行方(i),其中特定的条款和条件包括在赎回脚本中嵌入的元数据中。然后将赎回脚本的散列记录在点对点分布式分类帐9上,该记录变为难以或不可能改变的交易记录。假设发行方(i)试图欺骗第一用户(a)5,例如试图修改条款并声称经修改的条款在最初约定的合约中。第一用户(a)5可通过将经修改的条款放在赎回脚本的元数据中并对其进行散列,然后显示这与在点对点分布式分类账上记录的赎回脚本不匹配来对此进行争辩。因此,将与令牌相关的信息包括在至少第一元数据中,可对确保令牌的完整性有用。

应当了解,赎回脚本中的元数据本身可包括其它信息的散列。例如,如果条款和条件很长,则可使用条款和条件的散列来提供较短的元数据。

第一赎回脚本(rs1)可存储在数据存储11中,作为记录并用于赎回第一令牌(t1)。在一些备选示例中,可将第一赎回脚本发送给第一用户(a)5或第三方。

元数据

在本示例中,第一赎回脚本(rs1)采用以下形式:

<2metadata1metadata2p1ap1i4op_checkmultisig>

因此,至少第一元数据(md1)包括占据赎回脚本中的两个位置的metadata1和metadata2。两个公钥依次跟随其后,即第一用户公钥(p1a)和第一发行方公钥(p1i)。numsigs为2,表示需要两个签名来解锁交易。

元数据可以多种方式包括关于令牌的信息。如所讨论的,在一个示例中,条款和条件可包括在元数据中。在另一示例中,条款和条件的散列可包括在元数据中。在又一示例中,元数据可包括指向包含合约的条款和条件的文件的指针。在进一步的实施例中,包括以上中的一个或多个的组合可包括在元数据中。

(i)具有指向条款和条件的指针的元数据

第一元数据(md1)的具体示例在下表1中示出。

表1

该示例包括与令牌和交易相关的最少量信息。该示例包括提供指向合约的指针,在合约的大小排除了元数据中包括的这样的细节的情况下,该指针可能是有用的。此外,由于元数据可公开,或通过不安全的网络传输,因此出于隐私原因,可能希望掩藏或隐藏令牌的特定细节。

metadata1的前4个字节表示合约的类型。例如,合约类型可能是“法定货币”。接下来的16个字节保存实际电子合约文件的位置的ip地址,允许ipv6地址。注意,在一些实施例中,该值可指向torrent文件的种子,使得合约文件可在云上分发而不是集中。跟随着的12个字节包含特定于合约类型的数据。

metadata2的前20个字节是在应用于文件的sha256上使用ripemd-160的实际合约文件的散列。由于实际合约文件是可获取的,这允许根据合约验证交易。注意到,根据特定实施例的要求,合约文件本身可为完全公开的(未加密的和人类可读的)或可加密以保护隐私。根据合约的类型,可使用metadata2的剩余的12个字节的内容。

(ii)具有令牌的关键参数的元数据

第一元数据的另一具体示例如表2所示,如下:

表2

在该示例中,在元数据中包含令牌的一些关键参数。通过关键参数,这可包括与令牌本身相关的信息或可辅助处理交易的信息。特别是,分配给子字段上表1中的“contracttypedata1”的子字段用于表示:法定面额、钉住汇率和交易类型。

重要的是,在元数据中包括关键参数可有助于更高的处理效率,因为在某些情况下,发行方(i)3可在交易中处理令牌,而无需为了处理交易所需的关键信息而获取合约文件。

除了上述信息外,还可包括与令牌或令牌之前的令牌的历史有关的其它信息。例如,如果第一用户(a)5希望赎回第一令牌(t1)的一部分并且发行方(i)创建第二令牌(t2)以表示剩余部分的价值,则发行方可将信息嵌入元数据中以将第二令牌(t2)与第一令牌(t1)相关联。对于诸如银行的发行方(i)来说,这可帮助发行方(i)负责并跟踪令牌而无需追踪交易历史中的花费,,这种追踪可为密集通信任务。

在表2中,元数据包含2字节字段以指示法定货币(fiatdenomination)以及称为peggingrate的1字节字段。钉住汇率由发行方(i)设定。可为相同的法定货币设置几种不同的比率,然而,对于每种不同的比率,将需要不同的令牌(用于不同的合约)。比率的选择可由发行方(i)自行决定,然而对于如上所讨论的令牌的该数量的加密货币的分配,可对钉住汇率采取类似的考虑。

在一个示例中,peggingrate是8比特编码值,如下:

最左边的比特将用作标记:

1=以satoshis/cent表示的比率('cent'是指法定货币的百分之一,这是最低法定数量)

0=以cent/satoshis表示的比率

最右边的七比特以二进制中的十的幂表示比率,例如:usd10000010表示100satoshis/cent的比率(标记开启)

php00000000表示1centavo/satoshi的比率(标记关闭)

idr00000001表示10rupiah/satoshi的比率(标记关闭)

在一个示例中,transactiontype是1字节字段,指示交易是否是“发行”(其中令牌是从加密货币创建的),支付(其中至少部分令牌价值从一个用户转移到另一个用户);或赎回(令牌转移到发行方(i)并转换回常规加密货币)。

在一些示例中,metadata1和metadata2中的“padding”可包括每个交易的随机生成的值。结果是metadata1和metadata2中的每一个都会在交易之间变化。一个优点是,这可降低不道德的人试图确定私钥的风险和动机,而该私钥会与metadata1或metadata2中的一个或两个作为密码对匹配(目的是使用这样的私钥来签署赎回脚本)。这对于标准化的令牌可能是重要的,其中metadata1或metadata2的剩余大部分是相同的。

公钥

第一用户公钥(p1a)和发行方公钥(p1i)分别与相应的第一用户私钥(v1a)和发行方私钥(v1i)配对。应当了解,公钥可能广为人知,而在其它示例中,可能希望根据需要传送公钥。在任何情况下,赎回脚本只需要公钥,因为只有在签署和解锁赎回脚本时(例如赎回令牌时)才需要相应的私钥。

如上所述,在一些备选方案中,第一和第二用户5、7可通过虚拟机环境或终端访问他们的电子钱包。电子钱包可由发行方(i)3(或与发行方(i)3相关的服务器)托管,其中相应用户的私钥存储在数据存储11中但只能在该用户的授权下发行方(i)3才能访问(或重新创建)。在这种情况下,第一和第二用户5、7可授权将他们的私钥提供给发行方(i)3以解锁赎回脚本。这可包括授权将用户的私钥发送到发行方(i)3的第一处理设备13,其中第一处理设备13可用用户的私钥(例如p1a、p1b)和第一发行方公钥(p1i)解锁赎回脚本。

将第一数据输出(q1)发送到点对点分布式分类账150

方法100进一步包括通过通信网络8,发送150第一数据输出(o1)到点对点分布式分类账9。该第一数据输出(o1)可包括将第一数量的加密货币(b1)交易到第一用户(a)5的指示。也就是说,记录与第一令牌(t1)相关的基础数量的加密货币(b1)已被转移到第一用户(a)5。第一数据输出(o1)还包括上面讨论的第一散列(h1)。第一散列(h1)与第一数量的加密货币(b1)相关,以提供与第一用户(a)5和发行方(i)相关的第一令牌(t1)的记录。

重要的是,第一散列(h1)在点对点分布式分类账9上,点对点分布式分类账可用于证明或验证令牌(t1)、发行方(i)和第一用户(a)5之间的关系,和/或令牌的条款和条件的存在。

该方法还可包括将第一赎回脚本(rs1)存储160在数据存储11中以供以后使用。

现在将参考图2(a)描述创建第一令牌(t1)的交易的具体示例。

第一用户(a)5向发行方(i)存入$1000aud,以获得同等价值的令牌

在该示例中,第一用户(a)5希望向发行方(i)存入$1000aud,作为回报发行方(i)通过将$1000aud的令牌价值(tv1)与10,000,000的第一数量的加密货币(b1)相关联,用$1000aud的令牌价值(tv1)来创建第一令牌(t1)。

为了创建令牌,发行方(i)需要具有加密货币。这可源自先前交易,或源自对第一用户(a)5对第一令牌(t1)的请求的响应。这在图2(a)的左侧显示为“第一数量的(非令牌化的)加密货币”。

下表3以交易-id/satoshis数量/锁定脚本的形式显示的始发交易输出。该始发交易输出表示发行方(i)从先前交易获得加密货币,其中至少一些加密货币将用于与第一令牌相关联。

表3

第一行“id-201”是用于标识该交易的交易标识符。下一行是该交易中satoshis的数量,为50,000,000。第三行是该交易的锁定脚本(输出脚本)。该输出中的赎回脚本<pubk-issuerhash>显示该输出已用第一发行方公钥(p1i)锁定。也就是说,可使用发行方的相应的第一发行方私钥(v1i)来解锁该交易。

如上讨论,方法100包括分配适合于第一令牌(t1)的第一数量的加密货币(b1)。然而,发行方(i)手边的加密货币的数量可能不完全匹配加密货币(b1)的第一数量。在本示例中,所需的第一数量的加密货币(b1)是10,000,000,其远小于来自交易id-201的50,000,000。

因此,创建第一令牌(t1)的交易将包括对于令牌所不需要的过量的加密货币,将加密货币的找零提供回发行方(i)。

此外,令牌100的创建可为需要向矿工支付交易费的交易。这参考下表4说明,表4显示用于创建令牌的交易。

表4

第一行“id-210”是用于标识该交易的交易标识符。第二行指示“版本号”,其说明所使用的比特币协议的版本。第三行指示用于该交易的输入数量,指示单个输入。

表4中的第四到第七行涉及那些“输入”,即先前交易,即为当前交易id-210提供资金的id-201。第四行是先前交易的交易标识符,第五行“idx-00”是先前交易id-201的输出索引(在这种情况下是对先前交易id-201的第一输出的引用,应被使用)。第六行是“scriptsig”,它是先前交易id-201的解锁脚本。如上所述,先前交易用第一发行方公钥(p1i)锁定,该公钥由pubk-issuer表示。因此,可使用表示为sig-issuer的发行方相应的第一发行方私钥(v1i)来解锁先前交易。第七行是与输入相关的序列号。

在比特币交易中,每个都包含称为“序列号”的4字节字段,其不再被比特币核心使用。根据发行方的实施,一种选项是利用该字段将交易输入分配到输出。序列号可表示一串1比特标记,其中每个标记的位置从最右边的比特开始表示输入已将其部分资金贡献给已标记的输出。在该示例中,序列号“000000000000000000000000000000011”指示输入将被支付到输出1和2中,这将在下面描述。

表4中的第8行指示该交易的输出数量,即两个。第9到11行指示第一输出,第12到14行指示第二输出。

第一输出反映与第一令牌(t1)相关的第一数量的加密货币(b1)。第9行是第一数量的加密货币(b1)的输出值,即10,000,000satoshis。第10行指示输出脚本长度。第11行是输出脚本,即锁定第一数量的加密货币(b1)的锁定脚本。这包括第一赎回脚本(rs1)的第一散列(h1),并表示为:

op_hash160<redeemscripthash>op_equal

“op_hash160”是一种类型的散列函数,其中输入用sha-256进行两次散列处理-,随后用ripemd-160。该赎回脚本散列是第一赎回脚本(rs1)的散列,其形式为上述形式,该示例为:

2metadata1metadata2p1ap1i4op_checkmultisig

这包括如上所述的第一用户公钥(p1a)和第一发行方公钥(p1i)。metadata1和metadata2可包括如上所述的元数据,包括这是“发行”交易的指示。op_equal提供用于验证输出的boolean结果。

第二输出反映交易中发行方的找零。考虑到先前交易id-201,由于输入包括50,000,000satoshis,发行方(i)可期望接收剩余的satoshis。第12行是第二输出的输出值,即39,999,000。第13行是输出脚本长度,第14行是第二输出的输出脚本。由于第二输出是回到发行方(i)的找零,发行方应当可自由地花费第二输出。因此,输出脚本(即锁定脚本)仅包括由<pubk-issuerhash>表示的第一发行方公钥(p1i)。

通常,交易的输出值必须等于或小于输入。在上面的示例中,输入为50,000,000,输出为49,999,000(基于第一输出的10,000,000和第二输出的39,999,000)。因此,赤字为1,000satoshis。在该示例中,1,000satoshis是交易费(例如矿工的费用)。

第二种类型的交易——第一用户(a)请求发行方(i)赎回令牌

赎回令牌的概述

在该示例中,发行方(i)是为用户5、7提供电子钱包的服务提供商,其中用户的私钥安全保存在与发行方(i)3相关的数据存储11中。因此,在该示例中,用户5、7(或他们各自的处理设备15、17)不签署赎回脚本。反而,发行方(i)3在用户5、7的授权下签署赎回脚本。这可在图7中所示的方法200和600中示出,其中第一用户(a)5发送610赎回第一令牌的请求到发行方(i)3。无论是隐含地还是明确地,赎回第一令牌的这个请求还包括第一用户(a)5的授权,授权发行方(i)3使用第一用户私钥(p1a)来赎回第一令牌。

方法200包括通过通信网络8,接收210来自第一用户(a)5的赎回第一令牌(t1)的请求610。方法200包括确定220与第一令牌(t1)相关的第一赎回脚本(rs1)。

该方法也包括发行方(i)3接收235第一用户私钥(v1a)。在一个示例中,这包括从数据存储11中获取第一用户私钥(v1a)。可以理解,包含在由发行方(i)管理的电子钱包中的用户私钥应当安全保存。在另一个备选方案中,发行方(i)3可从另一个实体或节点接收第一用户私钥(v1a)。

然后,发行方可用用户私钥(p1a)和第一发行方私钥(v1i)签署245第一赎回脚本。这可能是有利的,因为作为第一用户(a)5的服务提供商的发行方(i)3可在第一处理设备13处安全地执行这些步骤并且无需通过通信网络8发送签署或未签署的第一赎回脚本(rs1)。

方法200还包括通过通信网络8,向点对点分布式分类账9发送260第二数据输出(o2),该第二数据输出包括对将第一数量的加密货币(b1)发到发行方(i)的交易的指示。

因此,方法200将与第一令牌(t1)相关的第一数量的加密货币(b1)返回到发行方(i)。在一个示例中,由于第一赎回脚本(rs1)用第一用户(a)5和发行方(i)二者的私钥签署,该交易中的第一数量的加密货币(b1)的接收者(为发行方(i)3)可随后在其它交易中花费第一数量的加密货币(b1)——无论作为单独的加密货币或与其它相关令牌共同使用。

现在将描述用于赎回第一令牌(t1)的交易的具体示例。

第一用户(a)5从发行方(i)以$1000aud赎回第一令牌(t1)

在该示例中,第一用户(a)5希望用如图2(b)所示的令牌价值请求发行方(i)赎回第一令牌(t1)。这导致从第一用户(a)5到发行方(i)的第一数量的加密货币(b1)的交易,下面称为交易id-510。作为回报,发行方(i)向第一用户(a)提供$1000aud的法定货币。

在该示例中,通过解锁第一数量的加密货币(b1)并将它们转移到发行方(i)3来赎回第一令牌。将第一数量的加密货币(b1)转移回到发行方(i)允许发行方(i)3随后在未来的交易中花费第一数量的加密货币(b1)。发行方(i)3也可通过一个或多个移除元数据的交易(可包括将第一数量的加密货币(b1)转移回到发行方(i)3的赎回交易)“去令牌化(detokenize)”第一数量的加密货币(b1)。发行方(i)可进一步花费这种加密货币而不需要来自第一用户(a)5或其它用户的授权(例如签名)。

在描述赎回第一令牌的交易id-510之前,我们将简要描述作为当前赎回交易id-510的输入的始发交易输出(来自交易id-210和id-610)。通常,这两个输入包括与第一令牌(t1)相关的第一数量的加密货币(b1),以及至少部分用于支付交易费(例如矿工费用)的另一数量的加密货币。

从前面的示例中,第一用户(a)5在交易id-210中接收第一数量的加密货币(b1)。在交易id-210中,去到第一用户(a)5的输出可概括为:

表5

表5中的第二行指示与第一令牌(t1)相关的第一数量的加密货币(b1),其数量为10,000,000satoshis。第三行表示输出脚本,其等同于上述表4中的第11行。从前面的示例中,创建第一令牌(t1)的交易id-210具有两个输出,但只有与第一数量的加密货币(b1)对应的第一输出与赎回交易id-510相关。如表4所示,交易id-210中的第二输出为回到发行方(i)的找零。

发行方(i)还需要支付赎回交易id-510的交易费(例如矿工费),该支付部分来自先前交易id-610接收到的一定数量的加密货币。该数量的加密货币可概括为:

表6

表6的第二行指示来自先前交易的加密货币的数量,为9,999,000。表6的第三行是来自该先前交易的输出脚本。由于来自该交易id-610的加密货币与令牌(或与令牌相关的用户)无关,赎回脚本散列只是显示为pubk-issuer的第一发行方公钥(p1i)的散列。也就是说,为了花费来自交易id-610的输出,这仅需要用第一发行方私钥(v1i)签署。

现在将参考下表7讨论用于赎回第一令牌(t1)的交易id-510。

表7

表7的第三行指示存在两个输入,第14行指示该交易id-510中有两个输出。

第一输入显示在第4到8行,它是待赎回的第一数量的加密货币(b1)的输入,它来自先前交易id-210。第五行为标记为“idx-00”的先前交易输出索引,是指交易id-210的第一输出,是第一数量的加密货币(b1)。第7行显示的scripsig允许花费第一数量的加密货币(b1)。这显示第一赎回脚本(rs1)需要四个签名中的两个,且特别是用第一用户私钥(v1a)和第一发行方私钥(v1i)进行签署。

第二输入显示在第9到13行,这来自用于资助当前交易id-510的先前交易id-610。第12行的scriptsig要求用第一发行方私钥(v1i)签署包含第一发行方公钥(p1i)的先前输出脚本。

第一输出显示在第15到17行,其输出为10,000,000satoshis。这对应于来自第一令牌(t1)的第一数量的加密货币(b1)。输出脚本在第17行,且相应的赎回脚本为:

1metadata1metadata2pubk-issuer3op_checkmultisig

该赎回脚本包括来自第一令牌的元数据以及显示为pubk-issuer的发行方公钥(p1i)。该赎回脚本需要三个签名中的一个来花费10,000,000satoshis。实际上,第一发行方私钥(v1i)可用于签署,并在后续交易中花费加密货币。值得注意的是,第一用户公钥(p1a)不在该赎回脚本中。这是因为该数量的加密货币已经被发行方(i)赎回,因此可被认为由第一用户(a)5花费。因此,发行方(i)应当自由地花费该数量的加密货币而无需授权(例如通过第一用户(a)5的签名的隐式授权)。

然后,发行方3可使用发行方公钥(p1i)进行进一步的交易,以从输出脚本(在第17行)赎回该赎回脚本,由此进一步的交易产生没有元数据的输出脚本。

尽管上面提到的第一输出保留来自赎回脚本中的第一令牌(t1)的元数据,应当了解,在一些备选方案中,由于第一令牌(t1)已被赎回且因此“去令牌化”,该元数据不需要包括在第一输出中。也就是说,第一数量的加密货币(b1)可在赎回交易期间通过移除相应的第一和/或第二元数据(md1/md2)与第一令牌(t1)解除关联。此外,应当了解,输出脚本可为由发行方(i)指定的其它形式。

第二输出显示在第18到20行,其输出为9,998,000satoshis。这与对应于具有9,999,000satoshis的交易id-610的输入形成对比。1,000satoshis的差异反映该交易的矿工费用。

第四种类型的交易——第一用户(a)从发行方(i)赎回第一部分

赎回第一令牌(t1)的一部分价值

在以上示例中,第一用户(a)5赎回第一令牌(t1)的整个价值。然而,在一些示例中,第一用户(a)5可能想要仅赎回第一令牌(t1)的一部分价值。

参考图3(a)和8,第一令牌(t1)具有可包括第一部分(r1)和第二部分(r2)的总和的令牌价值。因此,第一用户(a)5可通过通信网络8,发送610赎回第一令牌(t1)的第一部分(r1)的价值的请求。继而,发行方(i)3通过通信网络8,接收210来自第一用户(a)5的赎回第一令牌(t1)的请求。然后,发行方可执行如上所述的用于赎回第一令牌(t1)的步骤220、230、240和250。

然而,由于第一用户(a)5已经请求赎回总令牌价值(t1)的第一部分(r1)的价值,剩余的第二部分(r2)的价值将需要分配给第二令牌(t1)返回给第一用户(a)5。现在将参考图8描述第二令牌。

第一用户(a)5可通过通信网络8,发送645第一用户公钥(p1a)到发行方(i)3以创建第二令牌(t2)。继而,方法200包括发行方(i)确定255来自第一用户(a)5的第一用户公钥(p1a)。应当了解,发行方(i)可能已经具有来自先前交易(或电子钱包中)的第一用户公钥(p1a),在这种情况下,可能不需要由第一用户(a)5再次发送第一用户公钥(p1a)。反而,可从数据存储11和/或第三方接收第一用户公钥(p1a)。

在又一备选方案中,第一用户(a)5可能希望将不同的密码对用于第二令牌(t2)。因此,发送645和确定255第一用户公钥的步骤可包括与第一令牌(t1)相关的第一用户公钥不同的第一用户公钥。

然后,方法200包括分配265第二数量的加密货币(b2)以与第二令牌(t2)相关,其中第二令牌具有基于第二部分(r2)的第二令牌价值(tv2)。分配265第二数量的加密货币(b2)的步骤可包括与分配上述第一数量的加密货币(b1)类似的考虑。

在一些示例中,第二令牌(t2)的钉住汇率(pr2)与第一令牌(t1)的钉住汇率(pr1)相同,这对于第一用户(a)5可能是合乎需要的,由于第一(t1)和第二(t2)令牌的条款和条件保持相同,例外的是令牌价值的量子。

在其它示例中,第二数量的加密货币(b2)可能需要处于或高于加密货币(mt2)的最小阈值,该最小阈值与第一令牌(t1)的加密货币(mt1)的最小阈值不同。因此,分配265第二数量的加密货币(b2)可包括确定第二令牌(t2)的加密货币(mt2)的最小阈值,并确定处于或高于第二令牌(t2)的加密货币(mt2)的最小阈值的第二数量的加密货币(b2)。

方法200进一步包括确定275第二赎回脚本(rs2)的第二散列(h2),其中第二赎回脚本(rs2)基于:至少第二元数据,其至少部分基于与第一令牌(t1)相关的第一元数据(md2);第一用户公钥(p1a);以及与发行方(i)相关的第一发行方公钥(p1i)。

至少第二元数据(md2)可包括例如与第一令牌(t1)的一个或多个条款和条件的关联。因此,第二令牌(t2)可具有与第一令牌(t1)相同或类似的特征,尽管具有不同的令牌价值。在一些特定示例中,第二令牌(t2)的至少第二元数据(md2)与第一令牌的至少第一元数据(md1)相同。在这样的示例中,第二令牌(t2)的第二赎回脚本(rs2)与第一令牌(t1)的第一赎回脚本(rs1)相同。因此,与第二令牌(t2)相关的第二散列(h2)也与与第一令牌(t1)相关的第一散列(h1)相同。这可能是有利的,因为通过将第二令牌(t2)的第二散列(h2)与第一令牌(t1)的第一散列(h1)进行比较可容易地验证第二令牌(t2)的第二散列(h2)。这也可减少与存储第二散列(h2)(或后续散列)相关的存储空间,因为它们将是相同的。

如上所述,在一些备选方案中,第二令牌(t2)的第一用户公钥(p1a)可与与第一令牌(t1)相关的第一用户公钥不同,并且类似地,与第二令牌(t2)的与发行方(i)相关的第一发行方公钥(p1i)也可以是不同的。例如,出于安全原因,发行方(i)和/或第一用户(a)5可能希望使用不同的密码对。

在该示例中,通过通信网络8,向点对点分布式分类账发送260第二数据输出(o2)的步骤可进一步包括,将第二数量的加密货币(b2)交易到第一用户(a)5的指示和第二散列(h2),其中第二散列(h2)与第二数量的加密货币(b2)相关,以提供与第一用户(a)5和发行方(i)相关的第二令牌(t2)。因此,向第一用户(a)5提供第二令牌(t2),该第二令牌(t2)基于第二部分(r2)的价值,并且在一些示例中,该第二令牌(t2)携带与第一令牌(t1)类似的特征。

在图3(a)中示出赎回第一部分的示例,其中第一用户(a)5与发行方(i)兑换第一令牌(t1),其包括兑换第一令牌(t1)的第一部分(r1)的价值的请求,其中第一部分相当于$500aud法定货币。作为回报,发行方(i)3提供$500aud法定货币和第二数量的加密货币(b2)以向第一用户(a)5提供第二令牌(t2)。第二数量的加密货币(b2)与第二令牌相关,第二令牌可代表$500aud的第二部分(r2)的价值。

第三种类型的交易——第一用户(a)将价值转移到第二用户(b)

从第一用户(a)5到第二用户(b)的价值转移的概述

本发明还包括由发行方(i)3创建一个或多个附加令牌的方法300,如图9中所示。第一用户(a)5希望将第一令牌(t1)的价值或价值的一部分转移给第二用户(b)的,由于诸如上述原因,创建了这些附加令牌。这可通过创建与第二用户(b)7和发行方(i)3相关的第三令牌(t3)来实现。

这可能是有利的,允许第一用户(a)5实际上将与第一令牌(t1)相关的相同或类似权限转移给第二用户(b)。尽管以第三令牌(t3)的形式创建了新令牌,第三令牌(t3)可具有与第一令牌(t1)类似的特征。例如,令牌可具有相同或类似的关联元数据。这可能是有用的,例如,如果第一用户(a)5和发行方(i)3之间适用的相同或类似的条款和条件应该在第二用户(b)7和发行方(i)3之间也适用。

在一些情况下,第一用户(a)5可能希望将第一令牌(t1)的价值的至少一部分转移给第二用户(b),如图2(c)中所示。在一个示例中,这通过从第一用户(a)5到第二用户(b)7的与第一令牌(t1)相关的第一数量的加密货币(b1)的交易来实现。在第一令牌(t1)的全部价值被转移给第二用户(b)8的交易中,可能涉及用第一数量的加密货币b1创建第三令牌(t3),转移第三令牌(t3)到第二用户(b)7。有效地,第三令牌(t3)是将第一令牌(t1)以及与第一令牌(t1)相关的权限到第二用户(b)7的转移。

在该示例中,从第一用户(a)5到第二用户(b)的价值转移涉及发行方(i)3作为中介以促进转移。这与从第一用户(a)5到第二用户(b)7的第一数量的加密货币(b1)的直接交易不同。由于许多原因,使发行方(i)参与这种价值转移可能是有利的。首先,在价值转移中涉及发行方(i)降低了第一数量的加密货币(b1)被转移给第一用户(a)5,并被第一用户(a)5作为普通加密货币花费,而不是将第一数量的加密货币(b1)作为令牌而使用的风险。通过要求发行方(i)签署赎回脚本来防止这种情况。其次,在价值转移中涉及发行方(i)可允许发行方(i)3跟踪与特定用户相关的令牌和特定权限和/或责任。这可能对会计、财务报告和/或监管目的有用。

现在将参考图2(c)和9详细描述转移价值的示例,其中方法300、700、800分别由发行方(i)3、第一用户(a)5和第二用户(b)7执行。第一用户(a)5可通过通信网络8,发送710创建第三令牌(t3)的请求,其中第三令牌(t3)与第一令牌(t1)相关联。结合或替代地,第二用户(b)7可通过通信网络8,发送810创建第三令牌(t3)的请求。这些请求是由第一用户(a)5和/或第二用户(b)7中的一个或两者发送,可取决于第一令牌(t1)的条款和条件。

然后,发行方(i)通过通信网络8,接收310创建第三令牌(t3)的请求。应当了解,来自第一用户(a)5和第二用户(b)的请求可经由通信网络8中的另一方发送。另外,该请求可是零散的,请求的一部分来自第一用户(a)5,请求的另一部分来自第二用户(b)7。

然后,方法300包括确定320与第一令牌(t1)相关的第一赎回脚本(rs1)。

方法300还包括接收335第一用户私钥(v1a)。在一个示例中,这包括从数据存储11中获取第一用户私钥(v1a)。该方法进一步包括发行方(i)3用用户私钥(p1a)和第一发行方私钥(p1i)签署345第一赎回脚本。步骤335和345类似于上述用于赎回第一令牌(t1)的方法200中的步骤235和245,类似的考虑也可应用。

为了创建第三令牌(t3),需要第二用户公钥(p1b)。该第二用户公钥(p1b)是具有第二用户私钥(v1b)的密码对。发行方(i)3可以多种方式确定360第二用户公钥(p1b)。首先,发行方(i)3可为第二用户(b)7的服务提供者,第二用户公钥(p1b)可存储在发行方(i)的数据存储11中。或者,第二用户公钥(p1b)可能已经在先前交易期间由发行方(i)接收,因此,在某些情况下,第二用户公钥(p1b)可从发行方(i)的数据存储11中获取。在一些其它备选方案中,可由通信网络8中的第三方接收第二用户公钥(p1b)。在又一备选方案中,通过通信网络8,第二用户(b)7可发送820第二用户公钥(p1b)到发行方(i)3。

方法300进一步包括分配370第三数量的加密货币(b3)以与第三令牌(t3)相关联。在将第一令牌(t1)的总价值转移到第二用户(b)的一些示例中,从第一数量的加密货币(b1)中分配与其相同的第三数量的加密货币(b3),也是合适的。在其它备选方案中(例如将在下面进一步详细讨论的第五种类型的交易),仅将第一令牌(t1)的总价值的一部分传送到第二用户(b),并且相应的部分可能分配给第三数量的加密货币(b3)。在更进一步的示例中,第三数量的加密货币(b3)可从与第一数量的加密货币(b1)无关的其它加密货币分配。应当了解,分配370第三数量的加密货币(b3)的考虑可与在方法100中分配130第一数量的加密货币(b1)以及在方法200中分配265第二数量的加密货币(b2)的考虑相同或类似。

该方法进一步包括确定380第三赎回脚本(rs3)的第三散列(h3),其中第三赎回脚本(rs3)基于:至少第三元数据(md3),其至少部分基于与第一令牌相关的第一元数据(md1);第二用户公钥(p1b);和第一发行方公钥(p1i)。这可包括与在方法100中确定140第一赎回脚本(rs1)的第一散列(h1)或在方法200中确定275第二赎回脚本(rs2)的第二散列(h2)类似或相同的考虑。

方法300进一步包括通过通信网络,向点对点分布式分类账发送390第三数据输出(o3),该步骤包括:至少第三数量的加密货币(b3)交易到第二用户(b)的指示;和第三散列(h3),其中第三散列(h3)与第三数量的加密货币(b3)相关联,以提供与第二用户(b)7和发行方(i)相关联的第三令牌(t3)。这类似于上述步骤150和260,并且可应用类似的变化和替代。

第五种类型的交易——第一用户(a)将第一部分转移给第二用户(b)

在另一示例中,仅第一令牌(t1)的总价值的第一部分(r1)被转移到第二用户(b)7,在这种情况下,总价值剩余的第二部分(r2)可包括在第二令牌(t2)中,该第二令牌(t2)被退回给第一用户(a)5。这可类似于上述方法200中的退款价值的第二部分(r2)。因此,创建第三令牌(t3)的请求可明确地或隐含地包括基于第一部分(r1),创建具有第三令牌价值(tv3)的第三令牌(t3)的请求。

将参考图3(b)和10描述以第二令牌(t2)的形式退款给第一用户(a)5。为了创建第二令牌(t2),方法300包括确定355第一用户公钥(p1a)。这可通过如上所述的多种方法实现,可包括通过通信网络8,接收第一用户(a)5发送745的第一用户公钥(p1a)。

该方法进一步包括分配365第二数量的加密货币(b2)以与第二令牌(t2)相关联,其中第二令牌具有基于第二部分(r2)的第二令牌价值(tv2)。方法300还包括确定375第二赎回脚本(rs2)的第二散列(h2),其基于:第二元数据(md2),其至少部分基于与第一令牌(t1)相关的第一元数据(md1);第一用户公钥(p1a);和与发行方(i)3相关的第一发行方公钥(p1i)。因此,将第三数据输出(o3)发送390到点对点分布式分类账的步骤进一步包括:将至少第二数量的加密货币(b2)交易到第一用户(a)5的的交易的指示;和第二散列(h2),其中第二散列(h2)与第二数量的加密货币(b2)相关联,以提供与第一用户(a)5和发行方(i)3相关的第二令牌(t2)。

将价值从第一用户(a)5转移到第二用户(b)的示例

现在将描述交易id-110的具体示例。参考图3(b),第一用户(a)5具有总价值为$10.00aud的令牌。第一用户(a)5希望将$7.30aud的第一部分(r1)转移到第二用户(b)作为第三令牌(t3)并且具有剩余的$2.70aud的第二部分(r2),第二部分(r2)以第二令牌(t2)的形式作为找零返回给第一用户(a)5。

在该示例中,第一令牌(t1)包括两个令牌块,每个块表示$5.00aud的价值。这可代表具有标准化价值的令牌(例如,在$5.00块中)或代表从不同交易中获得该两个块的第一用户(a)5。这些块中的每一块都包含50,000satoshis,当钉住汇率为100satoshis/cent时,相当于$5.00aud。这在下表8中作为交易id-101和id-102示出,它们是创建第一令牌(t1)的交易。

表8

id-101和id-102的第3行表示各个交易的输出脚本,其类似于上述表4中的第11行。

发行方(i)也需要为该交易支付交易费(矿工费)。该交易费可部分的从先前交易id-103所接收到的一定数量的加密货币中支付,如表8中所示。这显示了10,000,000satoshis的先前交易,先前交易的10,000,000satoshis中的部分将用于为该交易提供资金。参考表6,这类似于上面描述的先前交易id-610。

现在将参考下表9讨论将价值转移到第二用户(b)的交易id-110。

表9

表9的第三行指示存在三个输入,第19行指示存在三个输出。输入中的两个代表第一令牌(t1),第三输入用于支付交易费。第一输出表示向第二用户(b)7转移价值,第二输出表示返回令牌的找零给第一用户(a)5,第三输出为返回加密货币的找零到发行方(i)。

基于先前交易id-101的第一输入显示在第4到第8行,第一输入是50,000,000satoshis的第一块的输入,是第一数量的加密货币(b1)的一半,且代表价值$5.00aud。第7行显示scriptsig以允许花费该数量的加密货币。这显示第一赎回脚本(rs1)需要四个签名中的两个,且特别是用第一用户私钥(v1a)和第一发行方私钥(v1i)签署。第8行指示序列号,其中第一输入被标记为第一输出。

基于先前交易id-102的第二输入显示在第9到13行,第二输入是50,000,000satoshis的第二块的输入,是第一数量的加密货币(b1)的另一半,且代表$5.00aud价值。第12行显示类似于上面第7行的scriptsig。第12行指示序列号,其中第二输入被标记为第一输出和第二输出二者的输出。这是因为50,000,000satoshis的第二块将被分割,其中23,000satoshis到第一输出,且27,000satoshis到第二输出。

第14至18行示出第三输入,其基于用于为当前交易id-110提供资金的先前交易id-103。第17行的scriptsig要求用第一发行方私钥(v1i)签署包含第一发行方公钥(p1i)的先前输出脚本。

在第20到22行示出第一输出,其输出为73,000satoshis,这是第三令牌(t3)的第三数量的加密货币(b3)。在该示例中,用于第三令牌(t3)的钉住汇率是100satoshis/cent(与第一令牌(t1)的钉住汇率相同),因此第三数量的加密货币(b3)具有基于7.30aud的第一部分(r1)的$7.30aud的第三令牌价值(tv3)。

输出脚本在第22行,在该示例中,对应的赎回脚本为:

2metadata1metadata2p1bp1i4op_checkmultisig

这包括如上所述的第二用户公钥(p1b)和第一发行方公钥(p1i)。重要的是,由于第三令牌(t3)用于第二用户(b)7进行赎回,第二用户公钥(p1b)被使用。metadata1和metadata2可包括如上所述的元数据,包括这是用户之间的“支付”或“转移”交易的指示。因此,第一输出提供第三令牌(t3),第三令牌可由第二用户(b)7从发行方(i)3赎回$7.30aud的价值。

第二输出在第23到24行显示,并且具有27,000satoshis的输出,这是第二令牌(t2)返回第一用户(a)5的第二数量的加密货币(b2)。在该示例中,相同的钉住汇率为100satoshis/cent,且因此第二数量的加密货币(b2)具有$2.70aud的第二令牌价值(tv3),这是基于$2.70aud的剩余的第二部分(r2)。输出脚本在第25行,且该示例的相应的赎回脚本为:

2metadata1metadata2p1ap1i4op_checkmultisig

这包括第一用户公钥(p1a)和第一发行方公钥(p1i)。重要的是,使用第一用户公钥(p1a),因为第二令牌(t2)用于第一用户(a)5去赎回。元数据还可包括这是用户之间的“支付”或“转移”交易的一部分的指示。

第三输出显示在第26到28行,且反映用于交易的发行方的找零。在本交易中,交易费为1,000satoshis,因此,发行方(i)可预期从10,000,000satoshis的第三输入获得找零。第26行是第三输出的输出值,即9,999,000。由于第三输出是返回发行方(i)的找零,发行方应当可自由地花费第三输出。因此,第28行的输出脚本仅包括由<pubk-issuerhash>表示的第一发行方公钥(p1i)。

上面的示例显示单个交易可能具有“令牌化”和“非令牌化”的加密货币的混合。在一个示例中,验证输入令牌价值等于输出令牌价值可能是重要的。因此,发行方(i)可验证第一令牌(t1)的第一令牌价值(tv1)等于第二令牌价值(tv2)和第三令牌价值(tv3)的总和。

在上面的示例中,交易费由发行方(i)支付,发行方可通过其它方式转嫁这些费用。应当了解,在一些备选方案中,交易费可由第一用户和/或第二用户直接支付。例如,可能要求第一用户贡献加密货币以用于支付交易费。在另一个示例中,第一、第二或第三数量的加密货币的一部分可在每个交易中用于支付交易费。在又一备选方案中,每个交易可包括额外的输出,其为矿工创建额外的令牌,促进与发行方(i)3赎回的交易。

变形——用户用相应的私钥签署赎回脚本

在以上示例中,发行方(i)是第一用户(a)5和第二用户(b)7的服务提供者并且管理相应的电子钱包。因此,发行方(i)3可在用户的授权下访问相应的用户私钥。这包括从数据存储11中获取用户私钥。

在一些备选示例中,可能希望用户自己保存私钥。这种分离可允许用户更好地控制他们的私钥。这也可能更安全,因为有权访问发行方(i)3的数据存储11中的所有信息的人---包括第一发行方私钥(v1i),将不能解锁赎回脚本,因为他们不会有相应的用户私钥。

因此,该方法的一种变型可包括将赎回脚本发送给用户5、7以便用他们相应的私钥进行签名。在这样的示例中,发行方(i)3不需要拥有用户的私钥。

现在将参考图11描述赎回第一令牌(t1)的方法200'、600'的这种变化。

第一用户(a)5可通过通信网络8,发送610赎回第一令牌(t1)的请求。继而,通过通信网络8,发行方(i)3接收210来自第一用户(a)5的赎回第一令牌(t1)的请求。然后,方法200包括确定220与第一令牌(t1)相关的第一赎回脚本(rs1)。在一个示例中,这可包括从数据存储11中获取第一赎回脚本(rs1)。在另一示例中,这可包括用来自一个或多个源的数据重新创建第一赎回脚本(rs1)。例如,这可包括从数据存储11中获取至少第一元数据(md1)和第一发行方公钥(p1i),以及通过通信网络8接收第一用户公钥(p1a)。然后可组合该数据以重新创建第一赎回脚本(rs1)。

然后,方法200'包括通过通信网络8,发送230第一赎回脚本(rs1)以供第一用户(a)5签署。继而,第一用户(a)5接收620第一赎回脚本(rs1)。应当了解,在一些备选示例中,可在其它时间执行将第一赎回脚本(rs1)发送到第一用户(a)5的步骤。例如,在发行方(i)3创建第一令牌(t1)期间或之后,可将第一赎回脚本(rs1)发送给第一用户(a)5。在另一个备选方案中,第一用户(a)5可从数据存储中获取第一赎回脚本(rs1)。在其它备选方案中,第一用户(a)5可独立地确定与第一令牌(t1)相关的第一赎回脚本(rs1)。例如,第一用户(a)5可从一个或多个源获取第一元数据(md1)、第一发行方公钥(p1i)和第一用户公钥(p1a)以确定第一赎回脚本(rs1)。

然后,第一用户(a)5用第一用户私钥(v1a)签署630第一赎回脚本(rs1),以提供由第一用户签署的第一赎回脚本(rs1a)。然后,通过通信网络8,由第一用户签署的第一赎回脚本(rs1a)从第一用户(a)5发送640到发行方(i)3。

继而,方法200'包括通过通信网络8,接收240由第一用户签署的第一赎回脚本(rs1a)。方法200进一步包括用第一发行方私钥(v1i)签署250由第一用户签署的第一赎回脚本(rs1a),以解锁与第一令牌(t1)相关的第一数量的加密货币(b1)。

方法200'进一步包括通过通信网络8,向点对点分布式分类账发送260第二数据输出(o2)的步骤,该步骤包括第一数量的加密货币(b1)的交易到发行方(i)的指示。在一个示例中,第一数量的加密货币(b1)被转移回发行方(i),并且第一数量的加密货币(b1)可能不再与第一令牌(t1)相关,因为第一令牌(t1)已被赎回。在一些情况下,可移除与第一数量的加密货币(b1)相关的元数据以“去令牌化”加密货币。可在同一交易或随后的交易中使用这样操作,这可是发行方(i)3的一个选择。

值得注意的是,上述方法200'要求第一用户(a)5和发行方(i)共同签署第一赎回脚本(rs1)。这可能有利于防止或降低第一用户(a)5意外地或疏失地花费第一数量的加密货币(b1),而超出预期的令牌目的的风险。例如,如果第一用户(a)5试图将第一数量的加密货币(b1)花费于另一用户(而非发行方(i)),则这样的交易将不会进行,因为需要第一发行方私钥(v1i)来解锁第一数量的加密货币(b1)。另一方面,需要第一用户(a)5签署第一赎回脚本(rs1),为赎回第一数量的加密货币(b1)提供了一定程度上的安全性,因为第一用户(a)5可能控制第一用户私钥(v1a)并有选择地将其用于授权交易。

此外,使发行方(i)最后签署赎回脚本可提高安全性,因为它可避免通过可能不安全的通信网络发送完全签署的赎回脚本。例如,当赎回第一令牌(t1)时,公钥的顺序可指示第一用户(a)5签署第一赎回脚本(rs1),之后将其发送到发行方(i)以用于最终签名。由于发行方(i)提供解锁的最终签名,这降低了有人拦截发行方(i)与第一用户(a)5之间的通信而可欺骗性地访问令牌(t1)和/或第一数量的加密货币(b1)的风险。

当将第一令牌(t1)的价值从第一用户(a)5转移给第二用户(7)时,也可使用类似的步骤,如图12中所示的方法300'、700'、800'所示。方法300'、700'、800'包括与上面参考图9描述的方法300、700、800中所描述的那些类似的步骤,但是具有以下例外。不是由发行方(i)3接收335第一用户私钥(v1a)并用其签署第一赎回脚本(rs1),而是由第一用户(a)5完成。因此,方法300'包括通过通信网络8,发行方(i)3发送330用于由第一用户(a)5签署的第一赎回脚本(rs1)。

第一用户(a)5接收720第一赎回脚本,并用第一用户私钥(v1a)签署730第一赎回脚本。这提供了由第一用户签署的第一赎回脚本(rs1a),然后通过通信网络8将其发送740到发行方(i)3。

然后,方法300'包括通过通信网络8,接收340由第一用户签署的第一赎回脚本(rs1a)。接下来,通过用第一发行方私钥(v1i)签署350由第一用户签署的第一赎回脚本(rs1a),以解锁与第一令牌(t1)相关的第一数量的加密货币(b1)。

方法300'可进一步包括步骤360、370、380和390,以用与上述方法300类似的方式完成第三令牌(t3)的创建。

令牌和编码过程

如果合约所规定的权利授予合约的持有人或所有者,则合约可转让。不可转让的合约的一个示例是参与者被命名的合约-也就是说,其中权利被赋予特定的具名实体而不是合约的持有者。本文仅讨论可转让的合约。

令牌表示特定的合约,该合约详细说明或定义了由合约赋予的权利。实际的合约可为以分布方式存储的文件。例如,它可存储在云中。在优选实施例中,令牌是以比特币交易的形式所代表的合约。

可分割的令牌是交易输出的价值可被细分为跨多个令牌分配的较小量(即,跨多个交易分配)的令牌。原型是令牌化的法定货币。可分割的合约被定义为那些指定非零钉住汇率(peggingrate)的合约。对于可分割的合约,在交易输出中转移的令牌化价值通过peggingrate与基础比特币(btc)价值绑定。也就是说,合约规定了持有人在peggingrate方面的权利。对于不可分割的令牌,没有peggingrate,且合约规定了持有人在固定价值(例如不记名债券“该合约可兑换正好$1000”或代金券“该合约可兑换一次理发”)。对于不可分割的合约,基础交易btc价值与合约价值无关。

短语“基础btc价值”是指附加到交易输出的比特币金额(btc)。在比特币协议中,每个交易输出必须具有非零btc金额才被认为是有效的。实际上,btc金额必须大于设定的最小值(称为“尘埃”),在撰写时,目前设定为546satoshis。1比特币定义为相当于1亿satoshis。由于比特币交易在此仅用作促进所有权交换的手段,实际的基础btc金额是任意的:真正的价值在于合约规范。从理论上讲,每个令牌都可被尘埃携带。

在本发明的协议中,特别是对于可分割的令牌,基础btc价值确实具有含义:它通过peggingrate与合约价值有关系。peggingrate本身是任意的,选择的peggingrate会使基础btc价值保持较小。使用peggingrate而不是简单地用尘埃基础化每个令牌交易的原因是,因为本发明的协议促进可分割性:当令牌被分割成几个较小量的交易输出时,不必调整原始合约。更精确地说,每个细分令牌的合约价值仅根据peggingrate和基础btc价值的细分价值计算。

有限令牌是总发行值是固定的(或“限定”)令牌,由非零数量的份额限定,其由被称为份额数量(numshares)的数量定义。因此,根据有限合约不可再发行任何份额。例如,竞赛马的部分所有权合约仅限于竞赛马的100%(例如100份额每份额1%,或10份额每份额10%,等等)。无限合约表示发行方能够承保进一步的份额发行,例如将所需数量的法定货币加入他们的储备账户。必须在所有合约中明确说明numshares。有限合约必须具有numshares>0;无限合约是通过设置numshares=0来表示的。

典型的示例是货币储备(类似于黄金储备),如此储备银行账户中持有的总价值与现有期票(即未赎回的令牌)中的总价值相匹配。这一概念不仅限于货币储备,还包括库存。例如,持牌印刷t恤令牌的发行方可从库存10,000件t恤开始,并可发行一个可分割的令牌来代表那些10,000件t恤(其中,例如,每份额=1件t恤)。可细分原始令牌,并且根据由peggingrate定义的交易输出的基础btc价值,每个细分的令牌由多件t恤赎回。然而,如果需求增加,发行方可能决定发行更多份额(即增加流通的份额数量(比如说)另外10,000)。在这种情况下,发行方有责任在其储备账户(即库存仓库)中再存入10,000件t恤,以便承保进一步的发行。因此,任何时候库存中的t恤总数(其中库存充当“储备账户”)=未赎回份额的总数。

peggingrates仅适用于可分割的合约,其中份额的价值(由名称为份额价值(shareval)的量表示)与基础btc金额挂钩。例如,合约可指定发行方承诺以每基础1btc$10,000的比率赎回令牌。这将表示(例如)具有令牌化基础输出值15,400satoshis的交易将可兑换$1.54。peggingrate的值为0表示合约是不可分割的(即只能整体转移,如不记名债券)。当peggingrate设置为0时(表示不可分割的令牌),基础btc价值与合约价值无关,且可被设置为任何金额。通常在这种情况下,希望保持基础btc金额尽可能小(即设置为尘埃)以使操作成本最小化。

numshares是根据(有限)合约可用的总(固定)份额数。对于有限合约,numshares必须是大于零的整数。对于无限合约,numshares不是固定的,因为可在任何时候发行更多的份额(只要它们被承保),通过将值设置为0来表示。

份额被定义为转移单元,shareval是该单元的价值。例如,对于法定货币,转移单元可设置为1cent。或者,例如,转移单元可设置为50cents,在这种情况下,转移只能以多个50cents的“批次”执行。shareval也可表示为百分比:例如,如果饲养员希望以10个相等的份额出售竞赛马,那么shareval=10%。shareval必须>0且必须在合约上定义。

发行总额(totalissuance)代表已发行份额的总价值。该价值仅与有限合约有关,至于无限合约,发行是不固定的且可发行更多份额。

如果份额以百分比表示,那么根据定义,totalissuance=100%。

对于有限合约,numshares、shareval和totalissuance以下列方式相关:

numsharesxshareval=totalissuance。

totalissuance的值为0表示它是无限合约。无限合约的一个示例是法定货币(因此totalissuance设定为0);有限合约的示例为:(i)限量版纪念币(1000铸造,其中1份额=1个硬币):totalissuance=1000x1=1000个硬币;以及(ii)在售票场地的座位,其中totalissuance=可用座位的总数。

流通定义为未花费的令牌的总价值(即由utxo中的交易确定--未花销的交易输出)。所有未花费的交易的完整集均保存在所有比特币节点可用的列表中。例如,如果发行方最初发行$10,000作为法定货币类型令牌,随着时间的推移,$5500价值的令牌被赎回,那么流通=$4500(即未赎回令牌的价值)。此价值应与关联的储备帐户中的余额保持一致。

应当注意,在一些(非典型的)情况下,流通可能会低于储备账户余额,但从绝不会出现相反的情况。例如,考虑一个饲养员发行10份额的竞赛马(根据定义,totalissuance=100%)。买方可通过将令牌发送回饲养员来兑换他们的令牌,如果她将其去令牌化,在流通中只会有9份额=90%的马,尽管当然全部100%的马都在储备中(=马厩)。在这种情况下,超额储备(即未计算的10%所有权)隐含属于发行方。

尽管这种情况是良性的并且落入本发明的范围内,可执行一份协议,其中规定100%的份额必须被明确地解释(即,在这种解释下,不允许饲养员使令牌去令牌化)。

示例1-木柴(按重量计)。在该示例中,合约写着:“持有人有权以每基础600satoshi20kg的比率获得木柴。”元数据定义为代表以下关键参数:numshares=0;shareval=20kg;和peggingrate=600satoshis/份额。这些参数定义了无限且可分割的合约,其中合约中的份额具有20kg的木柴价值,其中交易内的600satoshis的每个倍数对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

示例2-袋装木柴。在该示例中,合约写着:“持有人有权获得一袋20kg的木柴。“元数据定义为代表以下关键参数:numshares=0;shareval=1袋;和peggingrate=0。这些参数定义了无限且不可分割的合约,其中合约中的份额具有一袋20kg的木柴的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

示例3-$1000票据。在该示例中,合约写着:“持有人确实有权获得正好$1000”。元数据定义为表示以下关键参数:numshares=0;shareval=$1000;peggingrate=0。这些参数定义了无限且不可分割的合约,其中合约中的份额具有$1000的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

例4-纪念币#1。在该示例中,合约写着:“持有人有权获得限量版(1000个硬币)2000年奥运银币(每个客户最多一个)”。元数据定义为表示以下关键参数:numshares=1000;shareval=1个硬币;peggingrate=0。这些参数定义了限于1000份额的不可分割的合约,其中合约中的份额具有1个硬币的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance是1000个硬币。

示例5-纪念币#2。在该示例中,合约写着:“持有人有权以每基础600satoshis1个硬币的比率获得限量版(10,000个硬币)2000年奥运会铜币”。元数据定义为表示以下关键参数:numshares=10,000;shareval=1个硬币;peggingrate=600satoshis/份额。这些参数定义了限于10,000份额的可分割的合约,其中合约中的份额具有1硬币的价值,其中交易内的600satoshis的每个倍数对应于合约中的一个份额。在该实施例中,totalissuance是10,000个硬币。

示例6-法定货币#1。在该示例中,合约写着:“持有人有权以每基础比特币$10,000的比率获得加元。转移单元为50分”。元数据定义为表示以下关键参数:numshares=0;shareval=50分;peggingrate=5000satoshis/份额。这些参数定义了无限且可分割的合约,其中合约中的份额具有50加拿大分的值,其中交易内的5000satoshis的每个倍数对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

示例7-法定货币#2。在该示例中,合约写着:“持有人有权以$10,000每基础比特币的比率获得澳元aud。转移单元是1分”。元数据定义为表示以下关键参数:numshares=0;shareval=1分;peggingrate=100satoshis/份额。这些参数定义了无限且可分割的合约,其中合约中的份额具有1澳大利亚分的值,其中交易内的100satoshis的每个倍数对应于合约中的一个份额。在该示例中,totalissuance不是固定的。附带说一下,可以看出在该示例中实际可转移的最低aud是6分。任何更少的将导致基础btc价值低于有效交易所需的当前最小值。

示例8-共享房屋。在该示例中,合约写着:“持有人有权以每基础600satoshis10%的比率获得财产(地址)的部分所有权”。元数据定义为表示以下关键参数:numshares=10;shareval=10%;peggingrate=600satoshis/份额。这些参数定义了限于10份额的可分割的合约,其中合约中的份额具有10%的价值,其中交易内的600satoshis的每个倍数对应于合约中的一个份额。在该示例中,totalissuance是房屋的100%所有权。

示例9-竞赛马。在该示例中,合约写着:“持有人有权以每基础600satoshis的1%比率获得'naka'sdelight'的部分所有权”。元数据定义为表示以下关键参数:numshares=100;shareval=1%;peggingrate=600satoshis/份额。这些参数定义了限于100份额的可分割的合约,其中合约中的份额具有1%的价值,其中交易内的600satoshis的每个倍数对应于合约中的一个份额。在该示例中,totalissuance是马的100%所有权。

示例10-已分配的座位票。在该示例中,合约写着:“持有人有权在2016年2月14日在中央音乐厅举行的'死蜥蜴'音乐会上获得座位b54”。元数据定义为表示以下关键参数:numshares=1;shareval=1张票;peggingrate=0。这些参数定义了限于一个份额的不可分割的合约,其中合约中的份额具有1张票的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance是1张票。该票可包括进入活动场地的障碍通道的代码,从而提供票据已被兑换的反馈。

示例11-名人约会的凭证。在该示例中,合约写着:“持有人有权在2016年3月31日与乔治克鲁迪在悉尼市中心的斯芬菲酒店享受一次性的颁奖晚宴,包括乘坐出租车回家”。元数据定义为表示以下关键参数:numshares=1;shareval=1个约会;peggingrate=0。这些参数定义了限于一个份额的不可分割的合约,其中合约中的份额具有1个约会的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance是1个约会。

示例12-用于理发的代金券。在该示例中,合约写着:“持有人有权享受一次理发和吹制,除公共假期外的任何工作日都有效”。元数据定义为表示以下关键参数:numshares=0;shareval=1个代金券;peggingrate=0。这些参数定义了无限且不可分割的合约,其中合约中的份额具有1个代金券的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

示例13-t恤。在该示例中,合约写着:“持有者有权以每1000satoshis1件t恤的比率获得2016年世界巡回赛的'死蜥蜴'纪念品t恤”。元数据定义为表示以下关键参数:numshares=0;shareval=1件t恤;peggingrate=1000。这些参数定义了无限且可分割的合约,其中合约中的份额具有1件t恤的价值,其中交易内的每1000satoshis的每个倍数对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

示例14-未分配的座位票。在该示例中,合约写着:“持有人有权以每基础1000satoshis1张门票的比率参加2016年4月29日在sadie酒吧举行的jazzjivers音乐会。只有137个座位可用“。元数据定义为表示以下关键参数:numshares=137;shareval=1张票;peggingrate=1000。这些参数定义了限于137份额的可分割的合约,其中合约中的份额具有1张票的价值,其中交易内的1000satoshis的每个倍数对应于合约中的一个份额。在该实施例中,totalissuance是137张票。

示例15-音乐文件。在该示例中,合约写着:“持有者有权获得thedeadlizard的专辑'chameleonrising'的一份副本。”元数据定义为表示以下关键参数:numshares=0;shareval=1张专辑;peggingrate=0。这些参数定义了无限且不可分割的合约,其中合约中的份额具有对应于或包含专辑的1个文件的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

示例16-目录上的家具。在该示例中,合约写着:“持有人有权获得这件令人惊叹的,独特的保存完好的乔治王时代的写字台”。元数据定义为表示以下关键参数:numshares=1;shareval=1件商品;peggingrate=0。这些参数定义了限于一个份额的不可分割的合约,其中合约中的份额具有1件商品的价值,其中交易内的任何金额的基础比特币对应于合约中的一个份额。在该示例中,totalissuance是1件商品。

示例17-成批次的高尔夫球。在该示例中,合约写着:“持有人有权以每基础600satoshis12球的比率获得优质的tiggerwodes'a'级高尔夫球。”元数据定义为表示以下关键参数:numshares=0;shareval=12个高尔夫球;peggingrate=600。这些参数定义了无限且可分割的合约,其中合约中的份额具有12个高尔夫球的价值,其中交易中的600satoshis的每个倍数对应于合约中的一个份额。在该示例中,totalissuance不是固定的。

处理设备

如上所述,发行方(i)3、第一用户(a)5和第二用户(b)7可与第一处理设备13、第二处理设备15和第三处理设备17相关联。点对点分布式分类帐9还可与多个处理设备19相关联。

这种处理设备可为例如计算机、平板电脑、移动通信设备、计算机服务器等电子设备的一部分。除了处理设备之外,电子设备还可包括数据存储11和用户接口。

图13示出处理设备13、15、17、19的示例。处理设备13、15、17、19包括经由总线1530彼此通信的处理器1510、存储器1520和接口设备1540。存储器1520存储用于实现上述方法100、200、300、400、500、600、700、800的指令和数据,处理器1510执行来自存储器1520的指令以实现这些方法。接口设备1540可包括通信模块,其促进与通信网络5的通信,并且在一些示例中,也促进与用户接口和诸如数据存储11的外围设备通信。应当注意,尽管处理设备1501可为独立的网络元件,处理设备也可为另一网络元件的部分。此外,由处理设备执行的一些功能可分布在多个网络元件之间。例如,在与发行方(i)3相关的安全局域网中,发行方3可具有多个处理设备23来实施方法100、200、300、400。

本发明描述的用户、发行方、商家、提供者或其它实体执行特定动作(包括签名,发行,确定,计算,发送,接收,创建等),这些措辞是为了清楚的说明。应当理解,这些动作由这些实体操作的计算设备实施。

签署可包括执行加密功能。加密函数具有明文输入和密钥输入,例如私钥。处理器可执行该函数以计算可用作签名的数字或字符串。然后将签名与明文一起提供以提供签署的文本。如果消息文本或密钥更改单一比特,则签名将完全更改。虽然计算签名需要很少的计算能力,重新创建具有给定签名的消息实际上是不可能的。这样,如果私钥可用,则只能更改明文并附带有效签名。此外,其它实体可使用公共可用的公钥容易地验证签名。

在大多数情况下,加密和解密包括执行加密功能的处理器,以分别计算表示加密消息或明文消息的输出串。

密钥、令牌、元数据、交易、要约、合约、签名、脚本、元数据、邀请等是指存储在数据存储器中的数字、文本或字符串表示的数据,例如“字符串”或“int”或其它类型的程序代码中的变量或文本文件。

点对点分类账的一个示例是比特币区块链。用比特币货币转移资金或支付费用包括,在比特币区块链上创建交易,资金或费用为交易的输出。比特币交易的示例包括输入交易散列、交易金额、一个或多个目的地、一个或多个收款人的公钥,通过使用该输入交易作为输入消息创建的签名以及计算签名的付款人的私钥。可通过检查输入交易散列存在于比特币区块链的副本中并且使用公钥的签名是正确的来验证该交易。为了确保在其它地方尚未使用相同的输入交易散列,该交易被广播到计算节点(“矿工”)网络。仅当输入交易散列尚未连接且签名有效时,矿工才接受并记录该交易在区块链上。如果输入交易散列已链接到不同的交易,则矿工拒绝该交易。

为令牌分配加密货币包括用分配的加密货币和在交易中的元数据字段中表示的令牌创建交易。

当两个项目相关时,这表示这些项目之间存在逻辑连接。例如,在数据库中,两个项目的标识符可存储在相同的记录中,以使两个项目彼此相关联。在交易中,两个项目的标识符可包括在交易字符串中,以使两个项目彼此相关联。

使用比特币协议、赎回脚本和/或解锁令牌包括使用私钥计算脚本和/或交易的签名字符串。脚本可能需要从不同私钥或其它条件派生的多于一个签名。然后将该交易的输出提供给矿工。

授权另一个实体可包括使用私钥计算交易的签名字符串,并将该签名字符串提供给该实体,以允许该实体使用该签名来验证该交易。

用户在另一个实体中拥有帐户可包括存储关于用户的信息的实体,例如电子邮件地址、名称和潜在的公钥。例如,实体可维护例如sql、orientdb、mongodb或其它数据库。在一些示例中,实体还可存储一个或多个用户的私钥。

本领域技术人员将了解,在不脱离本发明的广泛的一般范围的情况下,可对上述实施例进行多种变化和/或修改。因此,本发明的实施例在所有方面都被认为是说明性的而非限定性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1