CN116508290A - 计算机实现的系统和方法 - Google Patents
计算机实现的系统和方法 Download PDFInfo
- Publication number
- CN116508290A CN116508290A CN202180056073.0A CN202180056073A CN116508290A CN 116508290 A CN116508290 A CN 116508290A CN 202180056073 A CN202180056073 A CN 202180056073A CN 116508290 A CN116508290 A CN 116508290A
- Authority
- CN
- China
- Prior art keywords
- token
- transaction
- tokens
- output
- dynamic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及一种使用区块链实现的方法,所述方法用于操控一种具有设备的系统,所述方法包括:使用,处理和/或产生区块链交易(MTx),所述区块链交易具有:一个或者多个令牌相关的输出(T‑UTXO),所述输出的每个代表由令牌发行人发行的相应令牌(T)并且指定了a)所述运算,状态和数据中的至少一者,其决定了所述设备的配置;b)与相应令牌(T)关联的令牌相关的加密货币的数量。通过相应令牌的区块链交易的输出上的指令可以确定决定了所述设备的配置和/或状态的所述运算,状态和数据。通常,使用一个或多个区块链交易可以追踪和/或管理资产或者资源,在所述一个或者多个区块链交易中,令牌相关的输出起到确定资产状态的作用,所述令牌相关的输出代表令牌。
Description
技术领域
本公开涉及一种在交易方之间进行电子交易的方法和系统。例子至少在部分上使用分布式的账本(区块链)来促进令牌化资源的控制从一方到另外一方安全和有效的转移。本公开特别适用于,但是并不局限于,在计算机网络上令牌化资产分布的使用。改善了这些令牌化资产的验证,提高了安全性并且减少了被未授权方转移及利用的安全隐患。例子使得能够应用改善的数字钱包,其可以以新的并且技术上有优势的方式来交易数据。本发明进一步的例子通常在于一种使用区块链的令牌生成,令牌转移和/或令牌验证方法,该方法使用,处理和/或产生区块链交易(MTx),一种被设置并且被配置来使用或者处理该方法的数字钱包,一种计算机实施的方法包括如下步骤:产生,存储,处理和/或维持多个令牌相关的区块链交易输出(T-UTXOs)的基于计算机的资源(R),计算机网络包括多个节点,其中在计算机网络中包含的每个节点被配置来实施该方法,并且非暂时性计算机可读存储介质存储有在非可执行的指令,当所述可执行的指令被计算机系统的处理器执行时执行所述的方法。
背景技术
由中本聪的白皮书(https://bitcoin.org/bitcoin.pdf)在2008年引入的比特币区块链账本是最广为所知的区块链和至今还在使用中的相关网络/平台。因此,我们在此处使用的例子中将会提到比特币。但是,本公开的例子在这方面而言并不限于这此并且可选的区块链协议和实施方式落在本公开的范围内。
区块链交易是根据区块链协议形成的数据结构并且包括至少一个输入和至少一个输出。由输入所消化/接收的加密货币的控制是被交易的输出花费/转移到进一步交易的输入上,所述进一步交易被增加到区块链上,例如在随后挖掘的区块中。加密货币任何没有被转移到新的接收地址/物主/接收人的部分被作为“改变”发回给当前地址/物主/发送人。输入和输出在它们各自交易中进行排序和编号从而它们可以进行查阅。在输出的情况下,基于它们在交易输出中的位置它们形成零索引的数组(列表)。输出的索引号被认为是它的“Vout”索引。关于输入,在交易中的每个输入通过交易标识(TxID)和其将花费的输出的Vout是可辨认的。通过这种方式,每个输入引用了账本上前个交易中可辨认的输出,因此创建了链从而每个加密货币单元的不可改变的转移历史可以通过遍历区块了回到该单元的起始源进行验证。在区块链协议中,这可以是Coinbase交易,其中,加密货币由矿工创建,作为证明工作努力的奖励,或者是账本的真正第一个区块,其通常认为是创世纪区块。
虽然作为一种转移加密货币获得了公众关注,区块链技术的更广泛应用有点类似互联网给许多分布式的服务,通讯和数据共享技术提供基础支撑层。如同互联网成了超越仅仅提供网页的更多计算机实施的技术方案的骨干,区块链平台可以提供底层机制,使其不仅仅是加密货币的转移。例如,区块链交易可以用于转移除了数字货币的其他类型数据,从而在各行各业和应用上推动技术。这种额外数据通常称为“元数据”并且可以潜在地包括任何类型或者格式的数据,例如文本,媒体内容,图片,到链下位置或者资源的链接,可执行的节点,智能合约,这种数据的哈希等。
转移数据的能力,外加智能合约,元网络(Metanet),简化的支付验证(SPV)和更多的区块链实施的技术已经导致了区块链平台作为一种其他“层2”技术可以建造在其上的底层基础设施或者运载工具。这些包括了层2令牌化方案,其使用区块链作为电子令牌通讯的下层转移机制。令牌是一种数字化对象或者项目,其用来表示其他对象或者资源,物理的,数字的或者其他。区块链令牌化技术提供了许多技术优势,例如改善的安全性,效率,使用方便和提高的网络隐私。但是,已知的令牌化方法也面临许多技术挑战。这些包括,但是不限于,如下问题。首先,当前令牌方案需要某种类型的第三方基础设施来处理操作授权和令牌真实性的验证。这些基础设施在开发和运营上可以是昂贵的,不仅仅是财务上地并且也是指需要地计算资源和时间,并且因此可以是低效的。它们还可能需要使用受信任的第三方,这反过来又可能导致安全问题并增加攻击、利用和违规的可能性。此外,钱包集成可能是一个重大挑战,因为该过程通常复杂且耗时。其他挑战包括但不限于对令牌化解决方案可扩展性的担忧,对用户隐私的担忧并且因此可能被有针对性的利用,需要链下令牌化处理或转移,这意味着此类解决方案不能完全加密地执行并且在公共账上不可更改地验证,或者要求用户将数据插入脚本以处理令牌。此外,一些令牌化方案仅适用于处理某些类型的令牌,这意味着它们在更广泛的适用性方面受到限制,无法扩展或调整以用于更多样化、可能理想的实现。这些以及当前区块链实施的令牌化方案面临的其他挑战并非易事。人们寻求新的可适应和可扩展的电子令牌协议和应用程序,特别是当它们导致更有效的处理时。
发明内容
本公开的各方面和例子提供了通过与区块链协议和网络相关联的区块链(账本)创建、使用、处理和转移令牌化资产或资源的技术、协议和系统。例如,这可能是加密货币账本的一个版本,例如,比特币账本遵循在其相关网络和平台上运行的协议,但其他区块链协议和实施方式也可以使用并且属于在本公开的范围内。
通常,可以使用一个或多个区块链交易来跟踪和/或管理资产或资源,在所述一个或多个区块链交易中与令牌相关的输出(代表令牌)用于确定资产的状态。例如,状态可以指示所有权、对受保护资产的访问权限、数据、指令、状态、操作、配置和资产或资源的价值,例如令牌单元的数量中至少一者。令牌交易包括与相应令牌相关的一定数量的令牌相关的加密货币,并且在令牌交易期间(i)交易中处理的加密货币的认证可以由处理该交易的矿工确定性地验证和/或(ii)令牌的真实性可以由令牌的接收者进行验证,例如用户的钱包,数据库管理系统或控制系统中的设备。
此处描述的令牌是通过一组交易创建的,包括以下至少一项:首次交易,其可以是持有负责令牌的发行者和/或当局的数字身份和/或数字签名的根节点,其还可以包括来自例如政府或监管机构的其他签名;令牌定义交易,其定义要创建的令牌及其格式,其可以是铸造交易、数据库建立交易或在控制系统中的设备设立记录,所述令牌定义交易优选地引用首次交易,并且优选地定义“建立交易”;和令牌发行交易,其中令牌被转移给用户,其优选引用该令牌定义交易,例如建立交易和/或首次交易。首笔交易可以包括至少一个与发行商相关的输出(I-UTXO),其包含与令牌发行商(TI)关联的发行数据(IData)。
令牌交易与至少一个首次交易和令牌定义交易具有确定性关系,所述令牌定义交易创建令牌和/或建立其应用程序和配置。
一组交易可以包括至少两个首次交易、令牌定义交易和令牌发行交易。例如,该交易集可以是一组,其中单个交易包括首次交易、令牌定义事务和令牌发行事务中每一个的操作。作为另一个例子,铸造交易可以包括令牌定义交易和令牌发行交易的功能。但是,每个交易都可以单独存在,以便集合具有分布在不同时间点处的交易,并且后续地交易引用其他交易。
首笔交易、令牌定义交易和令牌发行交易或者其每一项可以称为“铸造”交易,因为它至少部分负责创建令牌。这是因为这些交易在链上建立了授权、令牌定义和随后从该授权派生的令牌发行中的至少一者。令牌的发行直接涉及令牌定义和/或授权。
授权可以随时通过参考令牌定义来发行进一步的令牌,其中进一步发行的令牌的授权可以从早期交易来确定,例如首次交易和/或令牌定义交易。
当令牌交易输出数据,并引用较早的令牌交易时,线性交易历史可以称为写链(writechain)的一部分,这是在两个或多个交易中使用令牌之间的关系。首次交易和/或令牌发行交易可以包括授权的数字签名的证书,该授权将监控该设备的运转。交易集,即首次交易、令牌定义交易和令牌发行交易中的至少一者,单独或组合,决定了写链的开始或“根”。这三种交易可以发生在写入链上的单独实例中,或者它们的操作可以组合在一个或两个交易中。
总体而言,资产状态及其历史的真实性可以通过验证令牌是否来自负责该资产和/或首次建立交易的发行人来确定,例如,其可以通过令牌与至少一个发行者相关的输出(I-UTXO)的关系进行验证,所述至少一个发行者相关的输出与令牌发行者和/或创建令牌的输出相关联,即令牌认证是通过与首次交易,令牌定义交易和令牌发行交易中至少一者的关系进行的。认证可以包括默克尔(Merkle)证据。
另外地或替代地,可以刷新现有令牌,即其直到刷新时的令牌交易历史可以忽略,这可以通过授权应用另一组签名或一组新签名来实现,并且实际上重复至少一组交易的步骤,例如首笔交易和/或令牌发行交易。
加密货币账本中的UTXO起源可以追溯到创建它的coinbase交易,这可以由矿工来执行,并且可以确定创建它的区块在区块链中的位置。令牌账本与加密货币账本并行运行,并且当令牌的接收者验证其真实性时,它可以通过参考自己的创建(即创建令牌的交易集)来这样做,以及独立于底层加密货币来这样做,从而带来更快、更高效的认证计算过程。这种效率之所以能够实现,是因为令牌具有线性交易历史,即从最新交易到发行交易的令牌交易历史不涉及分叉或循环。
此处的例子与创建用来控制资产或资源的令牌对应,所述资产或资源具有如下至少一项:静态值;动态值;写入数据以建立数据交易记录的授权,例如用于交易数据库(包括这些资产的细分)的信息和/或指令;以及设备或具有设备的系统的状态。资产的状态可以类似于机器的状态。状态可以是操作,和确定资产或资源配置的数据中的至少一者。该操作可以包括有限状态机。更改令牌的状态可以通过交易输出来确定,其中脚本确定解锁UTXO并将交易花费到新状态所需的签名。令牌、其应用以及支持设备和系统通过使用账本记录交易输出能够确定性地验证访问资产或资产的状态的权利。这不仅可以抑制腐败,而且单独实施令牌或者作为系统的一部分,提供了有效的流程和具有成本效益的资产管理手段。令牌账本或可以管理资产的平台使用交易组合,例如首次、定义和发行,以建立一系列交易所依赖的数字记录,从而创建一个写链,其可以描述为返回所述记录的线性历史。
后续的区块链交易可以包括来自父母交易的公钥的对应签名,和唯一标识中的至少一者,包括父母交易的签名公钥,创建与前一个交易的边缘连接和前一个交易的标识。后续交易可以至少部分定义写入链,所述后续交易通过边缘引用前一个交易。
根据本发明的一个方面,存在一种区块链实现的令牌生成、传输和/或验证方法,该方法包括:使用、处理和/或生成具有如下的区块链交易(MTx):i)一个或多个与令牌相关的输出(T-UTXO),每个输出代表由令牌发行者(TI)发行的相应令牌(T),并指定a)令牌单位(TU)的数量和b)与相应令牌(T)相关联的令牌相关的加密货币(TRC)的数量;以及ii)至少一个与发行人相关的输出(I-UTXO),其包含与令牌发行人(TI)关联的发行数据(IData)。
公开的例子包括系统,其中,通过使用发行或“铸造”交易生成的一个或多个令牌。或者,代币可以被视为“数字对象”,并且可以提供一些令牌化资源或其单位的区块链表示,例如资产的状态。铸造交易包括发行数据,这些数据证明发行人的身份和/或发行令牌的授权,并在后续使用中作为令牌转移和处理期间的验证手段。铸造交易还可以包含一个或多个输出(UTXOs),每个输出代表一个令牌。如上所述,铸造交易可以包括首笔交易、令牌定义交易和令牌发行交易中的一个或多个。这是因为对这三笔交易中的任何一个的引用可以使令牌的接收者确定其来源和令牌的真实性,即接收者可以通过确定令牌源自一组交易来验证令牌的来源,这可以是一个交易。这些交易至少部分定义了令牌的线性交易历史的起源。
依次,每个令牌代表一定数量的令牌化资产或某种类型的资源。在某些情况下,令牌化资产/资源可以表示为单位数量。令牌化资源可以采用任何形式。例如,它可以是数字或虚拟资产,抽象实体或物理实体。令牌预先确定的资源单位数量是在令牌铸造时指定的,并且在使用过程中,协议可以配置为要求:(i)令牌化资源单位的数量保持固定,即尽管它们通过区块链转移,但在某些方面是不可变或不变的;或(ii)令牌化资源单位的数量是可变的,即动态的。令牌可用于保存令牌值,该值对应于令牌中保存的聪(satoshi)值(或其他形式的加密货币单位)的函数,该函数跟踪输出中持有的令牌单位数量。当令牌的数量是固定的,令牌会在交易过程中转移,例如从爱丽丝转移到鲍勃。当令牌的数量是可变的时,在交易过程中会转移一定数量的资源单位,例如从爱丽丝的动态令牌转移到鲍勃的动态令牌。换句话说,当令牌的数量(聪金额)是固定的,相关价值在交易过程中被完全转移,例如从爱丽丝到鲍勃,即具有固定价值的令牌是不可分割的并且被完整地转移。当令牌的(聪金额)数量是可变的(动态)时,在交易过程中会转移一定数量的资源单位(聪),例如从爱丽丝的动态令牌转移到鲍勃的动态令牌。
为方便起见,术语“令牌价值”或“面额”可在此与“令牌化资源的数量”或“令牌单位”互换使用。根据披露,令牌由(i)UTXO的锁定脚本中持有的固定数量的加密货币单位(例如Satoshis或某种其他类型的加密货币)表示,该脚本具有线性历史记录,线性历史记录通过账本将该脚本链接到铸造交易中的令牌创建,或者(ii)在UTXO的锁定脚本中持有的可变数量的加密货币单位(例如Satoshis或某种其他类型的加密货币),令牌具有线性历史记录,线性历史记录通过账本将该令牌链接到铸造交易中的令牌创建。
当令牌要从一方转移到另一方时,锁定脚本的解决方案以及对持有令牌的UTXO的引用被用作新交易的输入,该新交易将持有令牌的UTXO花费到接收方指定的新锁定脚本中。如本领域所知,UTXO的支出需要将一定数量的加密货币的控制从一个地址转移到另一个地址,即从一个加密锁定/保护的挑战转移到另一个,并且因此令牌的转移是在花费加密货币的底层部分来执行的。在一些例子中,数据和/或其他数据的发行也与令牌和加密货币一起传输。
此处记载的令牌与铸造交易具有确定性的关系,从而可以确定其认证和/或线性交易历史。当交易有输出数据时,线性交易历史可以称为写链,它是在两个或多个相关交易中使用令牌之间的关系。两个或多个相关交易可以是顺序交易。写链可以确定令牌历史。当令牌输出用于确定数据库和/或控制系统时,多个写链可以共存,其中每个写链确定同一数据库上的不同操作和/或具有不同的令牌标识。
所有令牌都有关系历史,其可以追溯到创建它们的铸造交易(MTx),尽管不一定彼此之间。多个令牌创建多个写入链。令牌的操作可以根据其应用程序进行配置,以便其规则集或功能发生变化,例如静态令牌具有固定值,而写入令牌只能输出向数据库提供写入指令的指令,而其他令牌可以引用在另一个写入链中产生的交易,例如,可以将管理员令牌配置为输出指令,该指令覆盖由写入令牌输出的先前指令。数据库可能有多个写链,每个写链对同一个数据库执行不同的操作,或者携带不同的令牌标识。
在本发明的每个示例中,铸造交易提供了确定令牌功能操作的数据-其可以管理资产,记录交易中的信息,并随后能够确定地将写链上的交易编译为功能性的记录中的至少一者。此外,与账本(如加密货币账本)的交互可以抑制腐败,并以高效且具有成本效益的方式优化可扩展平台的使用。
在一个例子中,当令牌转移时,持有令牌的UTXO被用作交易的输入,并且必须将一定数量的加密货币令牌花费到与输入具有相同索引的输出中,这样令牌转移才有效。这种情况会发生在当令牌持有的令牌单位的数量是静态或动态时。通过这种方式,令牌的所有权被传递给新的UTXO的控制方。由于每笔交易中输入和输出(Vin和Vout)的匹配索引,这种方法的好处是在公共账本上易于追踪,从而在验证令牌的来源和/或真实性时提高了速度和效率。但是,在其他例子中,可以通过其他机制将包含令牌的交易的输入链接到交易的输出来执行令牌的转移,例如,将签名或标识符放置在持有令牌的新UTXO的锁定脚本中。
在另一个例子中,不传输令牌。在这种情况下,令牌持有的令牌单位数量是可变的,并且许多令牌单位被转移了,从而它是一个动态令牌。因此,动态令牌由所有者持有,它是令牌中持有的令牌单位的UTXO,该UTXO用作交易的输入,并且令牌中一定数量的加密货币的令牌单位必须花费到与输入相同的索引的输出中,这样令牌转移才有效。如果需要转移的令牌单位数量小于动态令牌中持有的令牌单位总数,则可以进行更改。通过这种方式,令牌的令牌单位的所有权被传递给新的UTXO的控制方。由于每笔交易中输入和输出(Vin和Vout)的匹配索引,这种方法还具有在公共账本上易于追踪的优点,从而在验证令牌单位的来源时提高了速度和效率。
但是,无论使用何种特定的链接技术,当该令牌具有完整的转移历史时,根据公开的例子中使用和设置的令牌可以被描述为具有线性交易历史。当静态令牌被转移时,铸造交易中应用的原始令牌价值没有变化。这意味着,当令牌配置为静态令牌时,总是完全转移到一个单一的、独立的和唯一的UTXO中,而不会以任何方式拆分、合并、复制或修改其令牌值。这意味着令牌的交易历史可以表示为一系列线性操作,其中每个操作都以在铸造交易中创建令牌的相同形式来传输令牌。
该令牌可用于保存动态令牌值,该值对应于加密货币单位的函数,例如satoshi值,保存在跟踪的令牌中,即对应于输出中持有的令牌单位的数量。当动态令牌中的令牌单位被转移时,最初应用于铸造交易的令牌值会发生变化。那些被转移的令牌单位将完全转移到一个单独且唯一的UTXO中。来自被返回的交易的任何更改也会被分配一个单独且唯一的UTXO。在交易历史中,来自每个输入输出“对”的令牌单位的移动可以表示为一系列线性动作,其中每个动作都以与在铸造交易中创建令牌相同的形式来传输令牌单位。此外,输入和输出之和之间的净余额为零。“零”净余额不考虑交易费用。
由于这些转移特征,在本公开的大多数例子中,管理令牌转移所需的开销非常低,并且可以以这种方式进行应用,该方式将转移管理过程向下推送到比特币网络的节点上以作为其在交易验证中的角色的一部分进行管理。在其他例子中,这些传输特征可以以利用底层协议进行传输的方式应用,而覆盖的令牌化协议可以由钱包提供商来处理。
在涉及静态和动态令牌的交易中,输入(Vin)和输出(Vout)之间的净余额为零,即输入的总和等于输出的总和。需要明确的是,费用和其他非令牌输入和输出通常不被视为交易的一部分,除非本文特别提及-正在交易或创建的令牌值具有净余额,其不包括间接费用。
每次转移令牌或令牌单元时,其作为令牌或令牌单元的身份和真实性都可以根据协议进行验证。由于令牌或令牌单元的交易历史是线性的,并且令牌(T)表示的令牌化资源单元(TU)在传输过程中不会更改,可以快速有效地执行此操作。对于静态令牌,其作为整体被转移,令牌(T)表示的令牌化资源单位(TU)不会溢出,因此使得回到铸造交易的可追溯性有效率。在动态令牌的情况下,其中可以转移令牌单位的子集,交易中令牌化资源单位(TU)的总数不会改变,从而净余额为零,因此使得回到铸造交易的可追溯性有效率。区块链记录可以被证明地进行遍历直到达到铸造交易,如图8所示。可以检查与铸造交易相关的发行数据和/或铸造记录,以确保转移的令牌或令牌单位数量是根据本公开的例子的真实的、授权的令牌或令牌单位。简化支付验证(SPV)、Metanet图等已知方法和技术可以与一个或多个例子结合使用,以进一步提高验证或转移的效率和速度,同时保持安全性。
根据本发明的另一方面,存在区块链实现的令牌生成,转移和/或验证方法。该方法包括使用、处理和/或生成区块链交易。该交易具有一个或多个与令牌相关的输出,每个输出代表令牌发行者发行的相应令牌,并指定了a)令牌单位和b)与相应令牌关联的令牌相关加密货币的数量。交易还可以具有至少一个与发行者相关的输出,该输出包含与令牌发行者关联的发行数据。令牌数值可以对应于加密货币数值的函数,例如令牌中持有的satoshi值。在创建令牌期间,可以通过一组交易确定真实性,包括至少一项:首次交易,其可以是根节点,该根节点持有负责令牌的发行人和/或授权的数字身份和/或数字签名,其还可以包括来自例如政府或监管机构的额外签名;令牌定义交易,其定义要创建的令牌及其格式,其可以是铸造交易、数据库建立交易或在控制系统中的设备设置记录,所述令牌定义交易优选引用首次交易,并且优选定义“建立事务”;和令牌发行交易,其中令牌被转移给用户,其优选引用令牌定义交易例如建立交易和/或首次交易。首次交易可以包括至少一个与发行人相关的输出(I-UTXO),所述至少一个与发行人相关的输出包含与令牌发行人(TI)关联的发行数据(IData)。
令牌的值,其可以由令牌单位表示,可以是令牌的“状态”,这样令牌可以具有“零聪”(zero-satoshi)状态,即零单位值,并且该值可以对应于令牌中持有的聪值的函数—即使该值为零。这可以在令牌交易的输出脚本中实现,该脚本充当信息的载体,并且所述信息可以携带聪值,即使该值为“零”。令牌交易输出上的脚本确定要采取的操作,例如,令牌值如何花费或处理,或转移到其他地方。
发行人可以创建子账本,根据该子账本,多个子发行人有权发行令牌,该令牌具有相同计价的令牌值,并且只要有一个共同的父母发行人,这些令牌就可以一起用于交易。可以通过重复一组交易来授权子发行人刷新令牌,这样接收者只需要验证令牌的线性交易历史回到最近的一组交易。
动态令牌持有可变数量的令牌单元,这可以被视为类似于例如对资产或资源访问的可变级别,或者甚至是将数据写入数据库的不同级别的权限。动态令牌还可以创建子令牌。验证从动态令牌派生的子令牌可以包括确定线性交易历史回到至少一个(i)输出或刷新动态令牌的最新交易集和(ii)从动态令牌创建子令牌的交易。当花费零聪令牌时,将引用正在花费的TX和VOUT,并提供脚本解决方案。这是比特币协议中的有效的表达,并且因此表示了由无界比特币协议定义的规则集下的有效支出事件。虽然在当时或撰写时存在非技术性的限制来抑制此功能,但当上述限制被取消时,可以实施这一方面。
该交易还可以包括:至少一个包含一定数量的加密货币的输入;和/或至少一个包含发行数据的输入。发行数据可以在包含该数量的加密货币的相同或不同的输入中提供。
发行数据可以包括或引用由令牌发行人控制和/或与令牌发行人相关联的数字签名。
所述一个或多个与令牌相关的输出中的至少一个可以包含唯一令牌标识符(tokenID),所述唯一令牌标识符与令牌相关的输出所表示的令牌相关联。
区块链交易还可以包括至少一个输入和/或输出,所述至少一个输入和/或输出包括令牌生成数据,所述令牌生成数据与一个或多个令牌相关的输出相关。
该方法还可以包括以下步骤:使用令牌转移交易将如下的控制权转移给接收者:静态令牌,所述静态令牌具有固定数量的令牌相关的加密货币(TRC),所述固定数量的令牌相关的加密货币由一个或多个令牌相关的输出中的一者表示;和/或动态令牌,其具有可变数量的令牌相关的加密货币(TRC),所述可变数量的令牌相关的加密货币由一个或多个令牌相关的输出中的一者表示;和/或从动态令牌派生的子令牌,其具有一定数量的与令牌相关的加密货币,所述一定数量的与令牌相关的加密货币由一个或多个令牌相关的输出中的一者表示。
在区块链实现的令牌传输和/或验证方法期间,使用和/或生成区块链交易(TokenTx)的步骤包括输入,所述输入包含令牌。所述令牌可以在区块链上的线性交易历史中链接到令牌发行的区块链交易。所述令牌发行的区块链交易包括或派生自至少一个与发行人相关的输出(I-UTXO),所述至少一个与发行人相关的输出与令牌发行人(TI)相关的发行数据(IData)关联,所述令牌发行人发行了令牌(T),其可以是建立和/或刷新令牌的交易集的一部分。令牌可以包含一定数量的令牌单位(TU),所述一定数量的令牌单位在令牌发行区块链交易(MTx)的令牌相关输出(T-UTXO)中指定。令牌还可以包括与令牌相关的加密货币(TRC)。令牌发行交易可以是一组交易的一部分,其可以包括首次交易,令牌定义交易和令牌发行交易中的至少两者。
该方法可以进一步包括以下步骤:使用至少一个进一步令牌转移交易将特定令牌(sT)的控制权转移给相同或另一个接收者。该方法还可以包括以下步骤:提供在输入的解锁脚本中的解决方案给令牌相关的输出(T-UTXO,sT-UTXO)的锁定脚本,所述输入在令牌转移交易(TTTx)或至少一个进一步令牌转移交易(TTTX1)中,所述令牌相关的输出表示该特定令牌或令牌(sT)。
该方法可以进一步包括以下步骤:使用至少一个进一步的令牌转移交易(TTTX1)将一定数量令牌相关的加密货币(TRC)的一部分的控制权转移给相同或另外接收者,所述一定数量令牌相关的加密货币与相应的动态令牌(dT)相关联。
该方法可以进一步包括以下步骤:提供在输入的解锁脚本中的解决方案给令牌相关输出(T-UTXO,dT-UTXO)的锁定脚本,所述输入在令牌转移事务(TTTx)或至少一个进一步令牌转移事务(TTTX1)中,所述令牌相关输出代表与相应动态令牌(dT)相关联的一定数量的令牌相关的加密货币(TRC)的一部分。
该方法可以进一步包括以下步骤:提供由一个或多个与令牌相关的输出(T-UTXO)表示的相应令牌或其部分中的至少一者的物理表示;优选地,其中,物理表示包括用于识别至少如下的手段:一个相应的静态令牌(sT);和/或一定数量的令牌相关的加密货币(TRC)的一部分,所述一定数量的令牌相关的加密货币与相应动态令牌(dT)相关。
该方法可以进一步包括通过如下至少一项来销毁令牌(sT,dT)的步骤:将其从基于计算机的存储资源例如令牌寄存器中移除;发布与销毁令牌有关的数据;以及花费包含令牌生成数据的未花费交易输出(UTXO),例如与一个或多个令牌相关的输出(T-UTXO)相关的铸造记录(MR)。
该方法还可以包括以下步骤:将区块链交易(MTx)提交到区块链网络。
根据本发明的另一方面,存在区块链实现的(i)转移令牌和/或其中的令牌单元,其中,所述令牌是令牌和/或子令牌中的至少一者和/或(ii)验证方法,该方法包括使用和/或生成区块链交易(TokenTx)的步骤,所述区块链交易包括来自令牌(T)或子令牌的输入。令牌和/或子令牌可以在区块链上的线性交易历史中链接到令牌发行区块链交易(MTx),该交易包括至少一个与发行数据(IData)相关的发行人相关的输出(I-UTXO),所述发行数据与发行令牌(T)的令牌发行人相关。令牌或子令牌可以包含如下的一定数量:所述令牌的令牌相关输出(T-UTXO)中指定的令牌单位(TU),所述令牌发行区块链交易(MTx);和/或与令牌相关的加密货币(TRC)。
该方法可以由安排用于实现2层区块链令牌化协议的计算资源使用和/或生成。参考OSI层定义,令牌交易中使用的基础加密货币的存在和验证由存储在区块链节点中的数据在“层1”确定。令牌认证的确定及其所代表的资产的定义可以在“层1”进行确定,因为所述确定基于存储的数据。基础加密货币(即UTXO)的管理,节点之间的通信以及用于处理和创建脚本的协议发生在“层2”。与令牌相关的加密货币(TRC)的数量可以固定,以便在将输入花费到输出(UTXO)时其保持不变。
该方法还可以包括通过如下将令牌(T)从发送方(S)转移到接收方(R)的步骤:将区块链交易(TokenTx)的输出(UTXO)花费到接收区块链交易(RTx)中的输入(I),其中,与所述输出(UTXO)相关联的索引或其它标识符对应于与所述输入相关联的索引或其他标识符。
所述输入可以来自具有可变数量的令牌(dT),其中,一定数量的令牌相关的加密货币(TRC)的一部分被转移,所述一定数量的令牌相关的加密货币与相应令牌(dT)相关联。
该方法还可以包括通过如下将与相应的动态令牌(dT)相关联的令牌相关加密货币(TRC)数量的一部分从发送方(S)转移到接收方(R)的步骤:将区块链交易(TokenTx)的部分(UTXO)花费到接收区块链交易(RTx)中的输入(I),其中,与所述输出相关联的索引或其它标识符(UTXO)对应于与所述输入相关联的索引或其他标识符。
交易中与令牌相关的加密货币(TRC)输入的数量的总和可以等于交易中TRC输出的数量的总和–所述输入的总和优选地等于所述输出。
该方法可以配置为在发送方(S)和接收方(R)之间的交易期间,发送方(S)具有具有初始数量的动态令牌(dT),并将该数量的第一部分花费到交易(SVin)并接收所述初始数量和所述第一部分之间的差值作为从该交易的输出(SVout),并且接收方(R)具有具有初始数量的动态令牌(dT),并将所述数量输入花费到交易(RVin)并从交易中接收输出(RVout),所述输出等于他的初始数量加上发送者花费的数量的第一部分(SVin)的总和。
根据本发明的另一方面,存在一种区块链实现的令牌刷新或更新方法,该方法包括:使用、处理和/或生成具有如下的区块链交易(MTx):一个或多个令牌相关的输出(T-UTXO),其每个输出表示由令牌发行人(TI)发行和/或允许的相应令牌(T)或子令牌,并指定a)与相应令牌(T)相关联的令牌单位(TU)的数量和b)与相应令牌(T)相关联的与令牌相关的加密货币(TRC)的数量。令牌可以代表一定数量的令牌化资产或某种类型的资源。令牌化资产/资源可以表示为令牌单位的数量。该方法还包括通过确定与建立令牌的一组交易的关系来认证令牌,所述组包括首次交易、令牌定义交易和令牌发行交易中的至少一者。所述令牌交易可以包括至少一个与发行人相关的输出(I-UTXO),其包含与令牌颁发者(TI)关联的发行数据(IData)。所述一组交易可以包含至少一个与发行人相关的输出。所述令牌和/或子令牌可以在区块链上的线性交易历史中链接到建立所述令牌的所述一组交易。发行数据(IData)可以包含或引用由令牌发行人(TI)控制和/或关联的数字签名。
确定令牌的真实性可以通过确定与发行人和/或授权的关系来实现,所述发行人和/或授权在线性交易历史(也即写链)开始时在一组交易中创建令牌。换句话说,可以确定令牌与其交易历史之间的关系。如果令牌已用于许多交易,通常为100或更多,或1000或更多,则线性交易历史需要更长的时间来验证。可以通过将令牌花费回发行人,销毁该令牌,并且在其位置上发行具有相同数值或权限的新令牌来返回令牌。
可选地,可以更新现有令牌,其中,该令牌被花费到由首次交易、令牌定义交易和令牌发行交易中至少一者的签名所签署的交易中,从而该令牌的真实性被刷新。更新包括重新铸造而不破坏令牌和/或其线性交易历史。因此,线性交易历史可以包括两个或多个的交易组,其可以包括首次交易、令牌定义交易和令牌发行交易中的至少一者。通过使用所述交易组中的第二个或后续个来处理令牌,令牌的接收者只需要通过引用一个或多个最近的首次、定义或发行交易来确定令牌的有效性。该组或其部分可以称为铸造交易,更新的令牌线性交易历史可以包括两个或多个铸造交易,即初始铸造交易和随后的重新铸造。因此,更新避免了需要至少如下之一:将其从基于计算机的存储资源(例如令牌寄存器)中删除,发布与令牌销毁相关的数据,花费未花费的交易输出(UTXO),其包括与一个或多个令牌相关的输出(T-UTXO)相关的令牌生成数据(MR)和/或发行等效令牌以换取令牌。
根据本发明的另一方面,存在一种区块链实现的令牌生成,传输和/或验证方法,该方法执行具有一个或多个令牌相关的输出(T-UTXO)的区块链交易(MTx),每个输出代表由令牌发行人(TI)发行和/或允许的相应令牌(T)或子令牌,其中,相应令牌或子令牌的线性交易历史包括两组或多组验证令牌的交易,其中,所述交易或每组交易包括如下至少一者:首次交易或根节点;用于定义要创建的令牌的令牌定义交易;和令牌发行交易,其中,所述令牌被转移给用户,所述首次交易可以包括至少一个与发行人相关的输出(I-UTXO),所述至少一个与发行人相关的输出包括与令牌发行者(TI)关联的发行数据(IData)。
这组交易可以至少具有以下一项:持有负责令牌的发行人和/或授权的数字身份和/或数字签名,其还可以包括来自例如政府或监管机构的其他签名;并用作铸造交易、数据库建立交易或在控制系统中的设备设置记录。
可用于验证令牌的第一个交易组可以由支持令牌的发行人和/或授权进行操作,而第二个组可以由代表发行人和/或授权行事的节点或钱包进行操作。
通过更新令牌,可以维护其线性交易历史,虽然只需要所述历史的一部分来验证令牌,例如最近的一组交易。更新令牌会保持其身份并保留所有特征,从而更新是向后兼容的,这对于用于建立交易数据库和/或控制系统的令牌的维护和持续运转是重要的。更新可以使用重新铸造操作,同时避免退回发行人。
令牌单元的接收者可以通过执行验证检查来验证令牌单元的真实性,例如具有一个或多个交易组的Merkle证据。随着交易历史变长,更新的令牌的接收者只需要验证,例如使用Merkle证据,返回到使用发行者和/或授权签名更新令牌的最新交易组。因此,可以通过将包含令牌的交易的输入链接到交易的输出或通过其他机制(例如,将签名或标识符放入持有令牌的新UTXO的锁定脚本中)来实现确定令牌转移期间的真实性。
总体而言,更新令牌可以保持相同的令牌存在,同时最大程度地减少处理简化验证过程所需的花费。花费最小化,因为刷新可以在单个交易中实现并且避免了创建熔融记录和/或与完整铸造交易相关的其他相关交易成本的需要,例如新令牌创建或重新铸造。在更新交易中,可以如此重新设置线性历史以至于刷新的令牌的认证只需跟随线性交易历史返回到最近的刷新交易。
根据本发明的另一方面,存在一种区块链实现的方法,该方法在交易期间从动态令牌创建子令牌,该方法包括将具有可变数量的令牌相关的加密货币的动态令牌(dT)接收到交易中,其中,令牌单位的值是其中持有的令牌相关加密货币的函数,并在新输出中创建子令牌。子令牌可以具有令牌单位的值,该值是从动态令牌派生的令牌相关的加密货币的函数,其中,子令牌可在进一步的交易中转移和/或可花费到动态令牌中。
子令牌可以在脚本中配置辅助功能以确定子令牌保护的资产或资源。子令牌可以具有至少如下一项:静态值;动态值;写入数据以建立数据交易记录的授权,例如用于交易数据库(包括这些资产的细分)的信息和/或指令;以及设备或具有设备的系统的状态。资产的状态可以类似于机器的状态。状态可以是至少一个操作,以及确定资产或资源配置的数据。
交易的动态令牌输入可以提供令牌单位的值,该值是与子令牌相关的加密货币的函数。子令牌的创建可以独立于铸造交易进行管理,所述铸造交易创建了动态令牌,所述子令牌从所述动态令牌派生。所述子令牌可以与所述动态令牌具有关系,所述子令牌从所述关系通过例如交易标识符进行派生。
可以转移子令牌。当子令牌的功能过期或被删除(例如花费)时,那么子令牌的功能将恢复为派生它的令牌的形式,例如,它恢复为动态令牌。
动态令牌和子令牌可以在区块链上的线性交易历史中链接到令牌发行的区块链交易(MTx),该交易包括至少一个与发行人相关的输出(I-UTXO),所述输出与发行数据(IData)相关,所述发行数据与发行令牌(T)的令牌发行人(TI)相关。令牌发行区块链交易(MTx)可以包含,或提供链接给,发行数据和/或发行人的授权证书。发行人可以,通过子账本,委任授权去发行令牌,其中,多个子发行人被授权发行具有相同计价令牌值的令牌。从公共父母发行人派生的令牌可以在交易中一起使用。
动态令牌和子令牌可以包括一定数量的如下项目:令牌发行区块链交易(MTx)的令牌相关的输出(T-UTXO)中指定的令牌单位(TU);和/或与令牌相关的加密货币(TRC)。
可以由动态令牌的数量派生的子令牌的数量被限制为动态令牌的最大值。子令牌可以以数字或物理形式进行转让,独立于创建它的动态令牌。
当花费到进一步的动态令牌中时,除了令牌单元的值之外,子令牌可以是二阶子令牌,所述二阶子令牌具有提供对资源和/或值的条件访问的辅助功能,所述令牌单元的值是其中提供的令牌相关的加密货币的函数。
当与另一个二阶子令牌一起使用时,所述辅助函数可以解锁对资源和/或值的进一步条件访问。所述子令牌可以具有如下之一:静态值;动态值;或零单位值,例如零聪(zero-satoshi)值。所述子令牌可以配置为一次性使用,也可以编程为具有设定的使用次数。
子令牌的创建可以包括:与令牌相关的输出,所述与令牌相关的输出表示由动态令牌发行的子令牌,并且可以指定a)与相应令牌相关联的令牌单位(TU)的数量和b)与相应令牌相关联的与令牌相关的加密货币(TRC)的数量;以及与各自创建的动态令牌相关联的创建者相关的数据。
该方法可以包括执行交易,所述交易涉及在用户的第一动态令牌和用户的第二个动态令牌之间转移一定数量的令牌单位(TU),以便删除线性历史链,所述线性历史链将用户与其第一个动态令牌和/或该第一个动态令牌中的值相关联。
所述传输可以包括第一个动态令牌的一定数量的令牌单位(TU),所述第一个动态令牌被输入(Vin)给交易并被分配给不同的输出(Vout)。因此,如果在令牌交易中使用了两个相同类型的动态令牌,则交换输入和输出会混淆哪一方持线性交易历史的后续扫描中的哪个令牌。换句话说,如果交易中的一方持有显著的资产,那么交换输入和输出意味着扫描历史会发现一交易方在任何特定时刻拥有显著的资产,但不是该交易方。因此,接收方无法回去查看另一交易方以前持有的资产。
该方法可以包括具有第一动态令牌(dT1)和第二动态令牌(dT2)的发送方,并在第一交易中执行将一定数量的第一动态令牌(dT1)转移到第二动态令牌(dT2),以及在第二交易中将一定数量的第二令牌(dT2)的一部分转移给接收方。
根据本发明的另一方面,存在一种数字钱包,其被安排和配置成使用或处理上述的方法。
根据本发明的另一方面,存在一种计算机实现的方法,该方法包括如下步骤:生成、存储、处理和/或维护多个与令牌相关的区块链交易输出(T-UTXO)的基于计算机的资源(R),其中,每个输出(T-UTXO):提供由令牌发行人(TI)发行的相应令牌(T)并指定a)与相应令牌(T)相关联的令牌单位(TU)的数量和b)与相应令牌(T)相关联的令牌相关加密货币(TRC)的数量;并且具有区块链交易(MTx)的线性交易历史,该交易包含至少一个与发行商相关的输出(I-UTXO),其包括与令牌发行人(TI)关联的发行数据(IData)。
根据本发明的另一方面,存在一种计算机实现的方法,该方法包括以下步骤:转移令牌或令牌单元和/或验证,该方法包括使用和/或生成区块链交易(TokenTx)的步骤,所述区块链交易包括来自令牌(T)的输入,该令牌(T)在区块链上的线性交易历史中链接到令牌发行区块链交易(MTx),该令牌发行区块链交易包括至少一个发行者相关的输出(I-UTXO),所述至少一个发行者相关的输出与发行所述令牌(T)的令牌发行人(TI)相关的发行数据(IData)关联;并且包括一定数量的:令牌发行区块链交易(MTx)的令牌相关的输出(T-UTXO)中指定的令牌单位(TU);和令牌相关的加密货币(TRC)。
基于计算机的资源(R)可以在链下生成,存储,处理和/或维护。此外,基于计算机的资源(R)可以从数字账本/区块链确定性地重新创建。所述或每个与令牌相关的区块链交易输出(T-UTXO)可以由安排用于实现2层区块链令牌化协议的计算组件生成和/或使用,并包括至少一个部分签名的锁定脚本。
该方法还可以包括以下步骤:在基于计算机的资源(R)处从发送设备(S)接收由多个与令牌相关的区块链交易输出(T-UTXO)之一提供的令牌(T);在基于计算机的资源(R)中存储至少一个令牌(T),所述至少一个令牌接收自发送设备;和/或向接收设备发送至少一个令牌(T),其中,所述令牌由输出(T-UTXO)提供,所述输出从令牌相关区块链交易输出(T-UTXO)的资源(R)中选择。
根据本发明的另一方面,存在一个数字钱包,其布置和配置用于使用、处理或执行本文所教导的静态、动态或子令牌的令牌交易。
根据本发明的另一方面,存在包含多个节点的计算机网络,其中,计算机网络中的每个节点包括:处理器;和存储器,所述存储器包括可执行指令,其由于处理器的执行,导致系统执行上述的方法。
根据本发明的另一方面,存在一种非暂时性的计算机可读存储介质,其上存储了可执行指令,该指令由于由计算机系统的处理器执行,导致计算机系统执行上述计算机实现的方法。
总体而言,本文描述和要求保护的所述或每个令牌提供了对资源的具有成本效益和安全的访问。许多例子涉及数字的和可替代的货币单位,并且本发明不限于此,因为它以安全的方式提供了对资产访问的类似控制。令牌根据访问要求以及要提供的访问和/或控制的级别以各种格式出现。
令牌可以通过提高所述资产或授予的权限的安全级别和/或可追溯性来改进访问资源的现有方法。本文中令牌的实现可以使用已知的区块链,例如BSV区块链和相关协议,例如Metanet协议,尽管这些是通过例子引用的,也可以使用其他区块链和协议。
本文描述和保护的令牌可以利用加密货币及其平台来提供“密钥”,这些密钥是,除其他外,更安全,有效地可转移的,有效地认证,并且在某些格式中提供附加和/或条件访问和功能。
根据本发明的另一方面,存在一种区块链实现的数据库生成、修改和/或验证的方法,该方法包括:使用、处理和/或生成区块链交易,区块链交易具有输出数据,该数据包括至少一个创建和/或修改数据库的指令,格式化或重新格式化数据库的指令,从数据库中添加或删除内容的指令。令牌用于创建具有输出的交易,这些输出可以被找回并用作数据库的指令。可以在令牌交易的输出脚本中定义输出。可以确定数据库内容的指令可以具有死胡同的输出,从而它们不会在账本上进一步处理-换句话说,所述令牌交易被称为“挂起”,从而与数据库的输出数据相关的令牌可以称为挂起令牌。此处的任何令牌都可以配置为可由数据库编译器识别并提供指令。
根据本发明的另一方面,存在一种区块链实现的数据库生成、修改和/或验证的方法,该方法包括:使用、处理和/或生成具有如下的区块链交易(MTx):一个或多个与令牌相关的输出(T-UTXO),每个输出表示由令牌发行者(TI)发行的相应令牌(T)并指定a)数据库格式,实体和参数中的至少一者和/或与所述数据库的创建和/或修改相关的数据,以及b)与相应令牌(T)相关的一定数量的令牌相关加密货币(TRC)。
由一个令牌的每个后续交易都可以称为子交易,前面的交易称为父母交易。父母交易和子交易至少部分定义了将数据输出或写入诸如加密货币账本的该账本的交易写链,例如,加密货币区块链。
写链中的第一个交易可以包含如下至少一个:根节点,其可以是初始交易;铸造交易,其可以是令牌发行交易;和数据库建立交易,其可以是令牌定义交易,每个交易都可以由写链中后续时间处提供。换句话说,虽然它们的操作可以驻留在单个交易中,或者基本上同时发生,但这些交易可以连续发生。写链中的所述或每个交易可以包含到所述根节点、铸造交易和数据库建立交易中至少一者的确定性的链接,或者包含信息,这些信息使得这种链接能够被确定,例如使用Merkle证据。
数据库建立记录可用于建立数据库。它可以位于写链中第一个交易的输出中,也可以在子交易中。额外地,或者可选地,铸造令牌的日志可以在铸造交易期间被编译。此日志记录了创建的令牌以及状态和任何其他详细信息,例如正在创建的数据库的格式或要与之关联的数据库。因此,当数据库管理系统从一个或多个写链构建交易数据库时,它可以使用日志将令牌与内容相关联。日志还可用于搜索和识别令牌账本上的令牌交易,并有选择地处理其交易输出。
需要注意的是,这里披露的令牌的每个可用于创建交易输出并且因此可以作为“悬挂”令牌,这些令牌通过它们与铸造交易的关系具有可确定的线性交易历史,例如静态、动态和子令牌。这可以通过令牌交易输出来实现,所述输出包括例如与所述令牌交易相关的存储在链上的指令或信息。
令牌交易的输出可以进一步包括至少一个与发行人相关的输出(I-UTXO),所述输出包括与令牌发行人(TI)关联的发行数据(IData)。所述交易(MTx)还可以包括:至少一个包含一定数量的加密货币的输入(C);和/或至少一个包含发行数据(IData)的输入,优选地,其中,发行数据以相同或不同的输入(C)提供,所述输入包含一定数量的加密货币。
该方法还可以包括使用令牌转移交易(TTTX)将具有一定数量的令牌相关加密货币(TRC)的令牌(T)的控制权转移给接收者的步骤。例如,在发行人的控制下铸造令牌后,可以通过与令牌进行交易来传递它以管理记录交易输出的信息。
与令牌相关的输出可以包含所述或每个令牌的铸造记录。铸造记录,数据库建立记录和授权密钥中的至少一者可以被配置为为所述区块链交易提供状态级别。使用交易输出对数据库的后续确定性编译可以参考一个或多个这些因素来确定令牌的优先级,例如主令牌可以优先于并覆盖较低级别的写入令牌的输出。状态级别可以从交易输出中的脚本和数据库管理系统持有的记录中的至少一者来确定,该记录可以由线性交易历史来确定提供给令牌的权限级别,例如,当该记录被创建时。
数据库建立记录可以包括如下至少一项:所有权信息;名字;类型;和数据库的属性。属性可以是关系数据库中的行和列的数目。属性可以是图形数据库的节点和边缘。
该数据库建立记录可以确定如下至少一种(但是不限于)的格式:分层数据库、网络数据库、关系数据库、面向对象数据库、图数据库、ER模型数据库、文档数据库和NoSQL数据库。
所述或每个令牌相关输出可以定义进一步的数据库建立记录,从而创建进一步的数据库和/或至少一个新的令牌相关输出(T-UTXO)。
所述或每个与令牌相关的输出可以定义与表和/或数据库的修改相关的信息,该信息包括如下至少一个(i)通过添加、删除或更新进行修改和(ii)修改行、列或记录中的至少一者。信息可以是指令形式的数据。指令可以是数据库编译器可以理解的数字代码的形式。
与令牌相关的输出可以确定管理令牌及其创建,所述管理令牌授权给以下至少之一:管理和写入由所述管理令牌创建的数据库内容或从所述管理令牌派生的写入令牌,因此使得管理令牌能够输出修改数据库的指令。关于管理和/或写入令牌,所述管理令牌可以在输出中创建新令牌,使令牌无效和/或修改令牌的授权。所述管理令牌可以创建写入令牌(wT)和/或另一个管理令牌,从管理令牌,所述写入令牌具有一定数量的与令牌相关的加密货币(TRC),所述一定数量的与令牌相关的加密货币由一个或多个令牌相关输出(dT-UTXO)之一表示,并且所述写入令牌对数据库内容具有仅写授权。所述管理令牌可以在创建令牌时生成铸造记录。
所述与令牌相关的输出可以包括:写令牌,所述写令牌具有一定数量的与令牌相关的加密货币(TRC),所述一定数量的与令牌相关的加密货币由一个或多个令牌相关输出(dT-UTXO)之一表示;以及修改数据库的指令,所述写令牌对数据库内容具有只写授权。
通常,令牌的授权级别可以从铸造交易和/或令牌创建顺序和/或数据库建立记录来确定,其可以从令牌身份或由数据库编译器从发行人那里取回所述信息得出。数据库编译器可以是数据库管理系统,所述数据库管理系统可以从写链历史中令牌交易中取回所需要的信息,其位于令牌账本上。需要明确的是,在创建令牌时,或者随后在状态被更高阶令牌更改时,可以确定修改数据库的指令输出的状态和能力。这信息保存在铸币交易和/或数据库建立记录中—数据库编译器和管理系统可以从账本中取回和/或直接从一个或多个令牌的发行者那里获取。交易数据库的内容可以加密。例如,可以使用密钥对来实现加密,所述密钥对将每个交易创建为ECC密钥。使用密钥生成和管理,数据库的所有者可以从单个主密钥对中恢复数据库中使用的任何密钥组合。还可以创建包含加密和未加密写链组合的交易数据库,甚至可以加密单个交易或交易中的参数。这完全可以由用户自行决定。可以禁止控制写链的用户查看来自另一个写链的加密数据,这样他们只能使用用于加密该数据的私钥访问另一个写链上的数据。可以使用阈值密钥来允许多个用户通过自由决定的条款跨多个链加密和查看数据。
数据库管理系统可以持有私钥或根私钥,所述私钥或根私钥与通过令牌交易在数据库中生成的数据的链相对应,所述私钥或根私钥将允许其解密信息。所述密钥可以是用于生成交易的密钥的不同密钥,允许数据源与数据库管理系统分开,从而创建安全外壳。
令牌相关的输出可以包括主令牌,所述主令牌具有如下至少之一:授权创建具有一定数量的令牌相关加密货币(TRC)的写入令牌(wT),所述一定数量的令牌相关加密货币由一个或多个令牌相关的输出(dT-UTXO)之一表示,所述写入令牌对数据库内容具有只写授权。主令牌可以有权创建管理令牌(aT),该管理令牌具有由一个或多个令牌相关输出之一表示的与令牌相关的加密货币(TRC),所述管理令牌对数据库具有管理和写入权限;通过输出包括修改数据库的指令的信息来管理和写入任何数据库内容(mT),所述指令可配置为如下至少之一:增加、修改或删除派生而来的任何令牌,例如管理令牌或写入令牌;以及修改或撤消由令牌,如管理员令牌或写入令牌,对数据库执行的任何操作。
所述或每个令牌可以具有可变数量的令牌相关加密货币(TRC),所述可变数量的令牌相关加密货币由一个或多个令牌相关的交易输出之一表示。具有可变数量的TRC的令牌可以利用TRC来确定其数值。因此,可以配置令牌从而令牌的TRC被阻止支付交易费用,除非费用以与TRC相同的基本令牌单位支付,例如聪代表。
接收令牌(例如作为付款)的节点可以启用在其coinbase交易中重新铸造令牌的权利。可选地,这可以通过与发行人签订合同来实现,该合同规定发行人将为节点重新铸造新令牌以换取收到的费用。
优选地,令牌具有静态值,所述令牌用于输出给交易数据库的指令。
区块链交易可以是定义根交易的铸造交易。在数据库建立记录和可以表示相应令牌(T)的交易输出之后,后续区块链交易可以从先前的交易中派生出来,其可以是父母交易,其中,所述后续区块链交易包括输出,所述输出包括数据库指令。
后续的区块链交易还可以包括以下至少一项:来自父母交易的公钥的相应签名;唯一标识,包括父母交易的签名公钥;创建与先前交易的边缘连接;以及先前交易的标识。后续交易,其通过边缘引用先前的交易,可以至少部分定义写链。
后续区块链交易可以包括与先前交易相关的数据,包括如下至少一项:交易的公钥,和唯一标识;输入,包括先前交易的签名公钥,创建与先前交易的边缘连接;先前交易的标识;以及包括数据库参数更新和/或数据库指令的输出。
前一个交易可以是父母交易。但是,前一个交易由子交易的目的和指令输出决定。例如,如果指令提供了有关资产的最新信息,则交易边缘将引用最近的交易,但是如果需要特定的更新或更正,则交易边缘是指特定指令需要更新的交易,也即边缘是指先前的交易。
数据库指令是指包含数据或信息的交易的输出,该数据或信息包括修改数据库的指令,所述指令可配置为如下至少一项:增加、修改或删除从中派生的任何令牌,例如管理员令牌或写入令牌;以及修改或撤消令牌,如管理员令牌或写入令牌,对数据库执行的任何操作。
边缘连接可以配置为如下至少一项:
引用先前的交易的动态交易边缘,其可以是父母交易,其中,创建了数据库实体,其中,通过查询此动态交易边缘取回的数据或内容是添加到数据库实体的最新数据;
引用交易的静态交易边缘,在所述交易中创建了数据库实体,以及更新所述交易的进一步交易,其中,通过查询静态交易边缘取回的数据或内容引用所述交易,在所述交易中创建了数据库实体,和/或更新所述交易的进一步交易,其中,通过查询静态交易边缘取回的数据或内容是数据库实体的引用的版本;
引用交易的动态交易边缘,在所述交易中创建了数据库实体,其中,通过查询动态参数边缘取回的内容是数据库实体的参数的最新版本;
静态参数边缘,其引用(i)交易,在所述交易中创建了数据库实体,并且添加的参数,以及(ii)更新所述实体的所述参数的进一步交易,其中,通过查询静态参数边缘取回的数据引用了所述交易,在所述交易中创建了数据库实体,和/或更新了所述交易的进一步交易,其中,通过查询静态交易边缘取回的数据或内容是数据库实体的引用版本。
换句话说,静态边始终返回相同的信息,而动态边接收最新的更新。
所述或每个边缘可以是参数化边缘,所述参数化边缘引用数据库外部的数据,其中,所述边缘包括包装器(wrapper)的规范。包装器可用于提供子程序,子程序可以来自软件库或计算机程序,其主要目的是调用第二个子程序或系统调用,并且只需很少或没有额外的计算。换句话说,包装器封装了另一个项目。
通过这种方式,可以在令牌化消息、HTML表、JSON页眉和页脚或任何其他包装器中取回一团数据,提供给用户能够创建节点的能力,这些节点在链接或查询时以本地格式提供完全完整的文档或网页。通过这种方式,相同的源数据可以以多种格式提供,以用于创建EDI交易或提供不同的数据流等目的。只需将具有多个边缘的“查询节点”简单地添加回到同一节点,每个具有不同的包装器类型。
所述或每个边缘可以是包含了查询的边缘,其中,返回的数据是多个查询的结果。因此,在查询边缘时,返回的数据是另一个查询的结果。例如,如果节点不断更新新数据(例如每小时温度),则可以对边缘进行编程以返回24个最新的更新,或过去7天内的最高和最低温度。通过在参数化边缘内设置包含了查询的边缘,可以将此数据包装在HTML中并作为丰富浏览体验的一部分。
与其父母交易相关的每个后续区块链交易都可以至少部分定义写链。写链上的每个后续区块链交易都可以包括依赖于它的交易输出并且确定更新和/或指令,所述更新和/或指令确定数据库的内容。
写链的根可以是数据库建立交易。写链的根也可以是创建新令牌的点。
交易输出可以包括包括修改数据库的指令的信息,其中,所述交易输出是终端输出,例如FALSE RETURN,但不限于FALSE RETURN脚本。一个或多个输出可以是FALSE返回脚本以外的其他内容。例如,可以将输出配置为写入数据和/或同时传输资产数值。
交易输出可以加密。交易输出可以由多个实体使用数字签名锁定,例如OP_CHECKMULTISIG脚本,或者在阈值签名方案中,或者在累加器多重签名方案中,或者在其他类型的方案中,所述其他类型的方案使用共享机密或其他允许多方参与的技术。
交易输出可以包括令牌,该令牌需要按照特定的公式或布局提交表单,其中,令牌的脚本正在执行表单分析并确保表单的所有必需条件(例如合同或协议)已正确输入并由相关方签署。该表单可以包括用于由令牌的接收者完成的模板部分和空白,其中,所述空白的完成在令牌的一个或多个后续交易输出中实现。换句话说,交易输出可以包括令牌,该令牌要求按照特定的公式或布局提交表单,其中,令牌的脚本正在对表单进行分析并且确保合同或协议的所有必需条件都已正确输入并由相关方签署。
表格可以是要填写和/或签署的协议,例如合同。输出可以包括通过对表单令牌的输出进行数字签名来完成空白,从而至少部分地对表单进行数字签名。空白可以使用以下至少一项来完成:提供标识和公钥;第三方的会签;以及Merkle(默克尔)证据,其是默克尔树的一部分,并进一步提供(i)默克尔证据说明该标识是默克尔树标识之一,以及(ii)可以解决默克尔根的脚本。表单正文的至少一部分可以是其字符串和/或内容的哈希,作为交易的输入,从而其可以通过脚本进行处理。额外地或可选地,可以在建立交易或设置记录中提供正文的模板。正文的模板可以作为数据库建立交易的一部分提供。至少部分地模板形式可以支持Ricardian(李嘉图)合约。李嘉图合约是将文件记录为法律合同的方法,并且为了将合同作为数值发行该方法将文件安全地链接到其他系统,例如会计。
数据库建立记录可以包括现有数据库形式的数据,其定义至少一种数据库格式、数据库内容、数据库实体和参数和/或与所述数据库的修改相关的信息。数据可以采用一组指令的形式,所述一组指令使的数据库管理系统能够编译数据库,无论是现有的还是其他的。在写链中的令牌发行区块链交易(MTx)可以提供扩展现有数据库的指令。需要明确的是,预先存在的数据库可以在数据库建立交易中被格式化和打包,以及令牌可以与预先存在的数据库相关联进行铸造。通过了解预先存在的数据库的参数,令牌可用于对所述数据库进行更新,修改等。这使得现有数据库能够无缝地转移到区块链上,而不会中断其维护,因为账本基础设施已经存在并且是可扩展的,而新创建的令牌可以立即开始创建交易输出,所述交易输具有可以维护数据库的指令形式的数据。
根据本发明的另一方面,存在一种从至少一个区块链实现的交易来确定和/或修改数据库的方法,该方法包括:从区块链的写链中的多个令牌交易中取回数据,所述写链包括令牌发行区块链交易(MTx),其中,所述数据包括:令牌相关输出(UTXO),其代表由令牌发行人(TI)发行的相应令牌(T)并且指定a)数据库格式,实体和参数中至少一者和/或与所述数据库的修改相关的信息,以及b)与相应令牌(T)相关的一定数量的令牌相关加密货币(TRC);以及使用写链中交易数据的时间顺序确定和/或修改数据库。取回的数据包括来自交易的数据输出。区块链可以是加密货币账本和/或令牌账本。令牌发行区块链交易可以包括与发行数据(IData)相关的至少一个发行人相关的输出(I-UTXO),所述发行数据与发行令牌(T)的令牌发行人(TI)相关。
令牌用于创建交易数据作为输出,其可以被取回并用作数据库的指令。可以确定数据库内容的指令可以具有死胡同的输出,从而它们不会在账本上进一步处理-换句话说,所述令牌交易被称为“挂起”,从而与输出数据库数据相关的令牌可以称为挂起令牌。该数据还可以包括数据库建立记录(令牌定义交易)、首次交易和令牌发行交易中的至少一者。
写链可以包括如下至少一项:与发行人相关的输出(I-UTXO),其包括与令牌发行人(TI)关联的发行数据(IData);至少一个输入,所述至少一个输入包含一定数量的加密货币(C);至少一个包括发行数据(IData)的输入,优选地,其中,发行数据在包含一定数量的加密货币(C)的相同或不同的输入中提供;所述或每个令牌的铸造记录;授权密钥,所述密钥配置为为所述区块链交易提供状态级别;以及数据库建立记录,其包括如下至少一项:所有权信息;名字;类型;和数据库的属性。
从所述写链取回的数据可以包括定义数据库表的令牌相关的输出。从写链取回的数据可以包括令牌交易输出,所述令牌交易输出定义与表和/或数据库修改相关的信息。作为示例,该信息可以包括指令,该指令通过增加、删除或修改行、列或记录中的至少一者来修改数据库。
从写链交易中取回的数据可以包括令牌交易输出,所述令牌交易输出定义如下至少之一:创建数据库格式和/或主令牌,其中,数据库格式和/或参数包括数据库名称、所有权和包装器中的至少一个;管理写入链,其包括管理令牌,其中,所述令牌的参数和/或输出定义访问权限和/或授权级别;修改在写链上从访问权限衍生的任何令牌的访问权限;创建进一步的写链,其包括进一步的令牌,所述令牌可分配给个人和/或进程;创建数据库的实体,其中,所述实体分配有名称和/或引用;对数据库实体的更新,其中,向数据库添加新参数和/或更新现有参数;终止输出,其指示来自所述令牌的任何进一步交易是空值并且无效的,从而指示了写链的结束。
数据库的实体和/或参数的创建,修改和终止中至少一者可以在令牌交易的输出中建立。所述输出包含向数据库编译器提供指令的数据。所述或每个输出可以是单独的FALSE RETURN输出。
所述与令牌相关的输出可以确定写令牌,也即创建写令牌,所述写令牌具有由一个或多个令牌相关输出(dT-UTXO)之一表示的一定数量的与令牌相关的加密货币(TRC),并且所述写令牌对数据库内容具有只写授权。
与令牌相关的输出可以确定管理令牌,也即创建写令牌,所述管理令牌授权给如下至少一者:管理和写入数据库内容,所述数据库内容由所述管理令牌或从所述管理令牌派生的写入令牌创建,从而使管理令牌输出能够修改数据库,包括,在管理和/或写入令牌方面,在输出中创建新令牌,使令牌无效和修改令牌的授权;并且在随后的区块链交易中从管理令牌创建写入令牌,所述写入令牌具有一定数量的与令牌相关的加密货币(TRC),所述一定数量的与令牌相关的加密货币(TRC)由一个或多个令牌相关的输出(dT-UTXO)之一表示,并且所述写入令牌对数据库内容具有仅写授权。
令牌相关的输出可以确定主令牌,也即创建主令牌,所述主令牌具有如下至少之一:授权创建具有一定数量的令牌相关加密货币(TRC)的写入令牌(wT),所述一定数量的令牌相关加密货币由一个或多个令牌相关的输出(dT-UTXO)之一表示,所述写入令牌对数据库内容具有只写授权;授权创建具有一定数量的令牌相关加密货币(TRC)的管理令牌(aT),该一定数量的令牌相关加密货币由一个或多个令牌相关的输出之一表示,所述管理令牌对数据库具有管理和写入授权;对任何数据库内容(mT)的管理和写入授权;授权添加、修改或删除由例如管理员令牌或写入令牌派生的任何令牌;以及授权修改或撤消令牌(如管理员令牌或写入令牌)对数据库执行的任何操作。
每个令牌创建实例可以伴随着铸造交易、数据库建立交易和设备设置记录中的至少一者。令牌是在交易输出上创建的。额外地或者可选地,可以从具有发行交易的边缘连接确定令牌创建的实例。写链中的初始交易可以是定义根交易的铸造交易。通过令牌在写链中进行的一系列交易追溯到铸造交易和/或数据库建立交易,可以确定令牌的来源。
主令牌可以由创世交易的输出派生,创世交易是所有由此派生的令牌的根交易。创世交易可以是在令牌账本上的根节点。管理令牌可以由(i)创世交易派生或由(ii)来自管理令牌的后续交易输出派生,该交易定义了所有由此派生的令牌的根交易。写令牌可以由(i)创世交易派生或由(ii)来自管理令牌的后续交易输出派生,该交易定义了所述写入令牌的根交易。
后续区块链交易可以包括与先前交易相关的数据,包括以下至少一项:交易的公钥和唯一标识;输入,其包括先前交易的签名公钥,创建与先前交易的边缘连接;先前交易的标识;以及包括数据库参数更新和/或数据库指令的输出。
每个后续令牌交易都可以被视为依赖于前一个交易的子交易,其可以是父母交易。写入链上的每个子交易与前一个令牌交易具有边缘连接。
所述或每个边缘可以是引用数据库外部数据的参数化边缘,其中,所述边缘包括包装器的规范;和/或所述或每个边缘可以是包含查询的边缘,其中,返回的数据是多个查询的结果。
从区块链实现的交易中确定数据库可以包括从以下至少一个中取回数据:源自创世交易的主写链,并且包括具有(i)数据库建立记录和(ii)输出,所述输出具有数据库格式,实体和参数中的至少一者和/或与所述数据库的修改相关的信息;源自管理令牌的管理写链,所述管理写链包括输出,所述输出具有(i)数据库建立记录和(ii)数据库格式,实体和参数中的至少一者和/或与所述数据库的修改相关的信息的输出;源自写入令牌的数据条目写链,并且包括输出,所述输出具有与所述数据库的修改相关的参数和/或信息中的至少一者。
从区块链实现的交易编译数据库可以包括数据,所述数据:通过验证确定采用至少M个签名使用操作代码签署一组N个公钥是否满足多重签名验证的标准,所述操作代码包括信号;从相应的交易中取回M个签名,所述签名对应于多个N个公钥组;对于每个M签名,从信号中提取对应公钥的位置上的信息。信号可以在数据的开头提供。数据可以在操作码(opcode),例如脚本,中实现。
数据可以采用OP_CHECKMULTISIG操作码的格式,需要来自以下数据元素的有序输入:<signal>;<签名A><签名B>...<签名M>;<N>;<公钥1><公钥2>...<公钥N>;<M>;OP_CHECKMULTSIG;和<信号>包含每个签名M在公钥N列表中的位置列表。
信号可以由固定长度整数的串联列表表示,其中,最大整数值大于M。在<信号>中的每个整数的格式可以是二进制的。
铸造交易和/或所述数据库建立记录可以包括形式,所述形式包括(i)模板组件和(ii)数据输入组件的形式,其中,数据输入在表单令牌的一个或多个交易输出中实现。数据输入组件可以表示空白,在所述空白中数据输入/提供给在表单。
所述数据输入组件可以通过从表单令牌取回交易输出来完成。所述输出可以进行数字签名。协议正文的至少一部分可以是其字符串和/或内容的哈希。模板组件可以作为交易的输入提供。模板组件可以是李嘉图合约的至少一部分。
数据库建立记录可以包括现有数据库形式的数据,其定义了数据库格式、实体和参数中的至少一者和/或与所述数据库的修改有关的信息。写链中的令牌发行区块链交易(MTx)可以扩展和/或修改现有数据库。令牌发行区块链交易可以包括至少一个发行人相关输出(I-UTXO),所述发行者相关输出与发行数据(IData)相关,所述发行数据与与发行令牌(T)的令牌发行人(TI)相关。
根据本发明的另一方面,存在一种执行阈值签名检查的方法,其中,执行所述动作的条件是至少M个私钥签名与一组N个公钥中持有的相应公钥相匹配,其中,M小于N个,并且,其中,该方法包括取回:信号,所述信号指示每个公钥的位置,对应于每个M私钥,在N个公钥组中;一组M私钥;和一组N个公钥,验证至少M个私钥与N个公钥组中的公钥匹配。该方法使用OP_CHECKMULTISIG操作代码。信号可以在操作代码的开头提供。
操作代码可以是OP_CHECKMULTISIG,需要来自以下数据元素的有序输入:<信号>;<签名A><签名B>...<签名M>;<N>;<公钥1><公钥2>...<公钥N>;<M>;OP_CHECKMULTSIG,并且<信号>包含每个签名M在公钥N列表中的位置列表。
信号可以由固定长度整数的串联列表表示,其中,最大整数值大于M。在<信号>中的每个整数的格式可以是二进制或十六进制。优选地,M<(N/整数比特长度)。
根据本发明的另一方面,存在一个数字钱包,并且其被安排和配置成使用、处理或执行阈值签名。根据本发明的另一方面,有一种计算机实现的执行阈值签名检查的方法,如本文所述,所述方法包括生成、存储、处理和/或维护多个与令牌相关的区块链交易输出(T-UTXO)的基于计算机的资源(R),其中每个输出(T-UTXO)。基于计算机的资源(R)可以在链下生成,存储,处理和/或维护。根据本发明的另一方面,存在包含多个节点的计算机网络,其中,计算机网络中的每个节点包括:处理器;和包括可执行指令的存储器,所述可执行的指令,由于处理器的执行,导致系统执行上述方法。根据本发明的另一方面,存在一种非暂时性的计算机可读存储介质,其存储了可执行指令,由于由计算机系统的处理器执行,该指令导致计算机系统执行上述计算机实现的方法。
总体而言,如描述和声称的那样,每个令牌应用程序和方法确定了对处理令牌交易以及区块链上的相关验证和/或交互所需计算的有效使用,所述效率可通过使用底层加密货币单元作为传输媒介来实现。
如上所述,可以使用一个或多个区块链交易来跟踪和/或管理资产或资源,其中,与令牌相关的输出(代表令牌)用于确定资产的状态。例如,状态可以指示如下至少一项:所有权、对受保护资产的访问权限、数据、指令、状态、操作、配置和资产或资源的价值,例如令牌单位的数量。
根据本发明的另一方面涉及控制设备的方法,或所述设备,其中,实体负责控制系统,其可以完全驻留在包含子组件的单个设备内或分布在全球,或介于两者之间的任何地方。通过一组令牌交易,实体可以使用数字签名建立其授权,定义令牌及其控制系统的操作范围,并发行令牌以管理和/或监视控制系统内设备的状态。实体负责发行令牌的交易组。管理令牌和/或设备的单个控制器可以被连接,并且,优选地,被嵌入控制系统的设备中。
总体而言,资产状态和其历史的真实性可以通过验证令牌是否来自负责资产和/或首次建立交易的发行人来确定,例如,其可以通过令牌与令牌发行人关联的发行人相关输出(I-UTXO)和/或创建令牌的输出中的至少一者的关系进行验证,也即令牌认证是通过与首次交易,令牌定义交易和令牌发行交易中的至少一者的关系进行的。认证可以包括默克尔证据。
一种操作系统的方法,该系统具有设备或在这样的系统内的可控设备,该方法被配置为处理区块链实现的令牌生成、传输和/或验证方法。该方法通过处理和/或生成区块链交易来操作。区块链交易包括一个或多个与令牌相关的输出,每个输出代表由令牌发行人发行的相应令牌并且指定一定数量的令牌单位,这些令牌单位表示对要控制的资产的使用权,与相应令牌(T)相关的令牌相关加密货币(TRC)。令牌交易还可以包括至少一个与发行人相关的输出,所述输出包括与令牌发行人关联的发行数据,或令牌派生自发行人的证据。
根据本发明的一个方面,存在一种区块链实现的方法,该方法操作具有设备的系统,该方法包括:使用、处理和/或生成区块链交易(MTx),该区块链交易具有:一个或多个令牌相关输出(T-UTXO),每个输出表示由令牌发行人(TI)发行的相应令牌(T)并且指定了a)确定设备配置的操作,状态和数据中的至少一者;b)与相应令牌(T)关联的一定数量的令牌相关加密货币(TRC)。
可以使用一个或多个区块链交易来跟踪和/或管理资产,其中,与令牌相关的输出(代表令牌)用于确定资产的状态。例如,状态可以指示所有权、对受担保资产的访问权限、数据、状态、操作、配置和资产的价值中的至少一者。
令牌交易可以输出数据,例如包含指令的脚本。线性交易历史可以称为写链,所述线性交易历史确定与创建令牌的交易组的关系。
确定设备配置和/或状态的操作、状态和数据中的至少一者可以从给相应令牌的区块链交易的输出的指令上确定。根据令牌的状态运行的设备可以直接从管理令牌交易的控制器和/或区块链账本上取回指令。指令的格式可以是底层加密货币协议形式的脚本,所述脚本确定如何访问由令牌保护的资产。该脚本可以是比特币脚本,并且,可选地,比特币SV脚本。
设备的操作和/或状态可以通过令牌的状态来确定,所述令牌根据有限状态机进行操作,所述状态机的状态在令牌交易(并且,优选地,令牌定义交易)中被定义。另外地或可选地,设备可以具有控制器,所述控制器被配置来确定设备的状态,其中,控制器具有有限状态机。有限状态机可以具有两个或多个可操作地状态,其中,所述状态之间的转换由令牌交易和/或控制器确定。
可以为要控制的系统中的设备提供至少一个令牌。设备的控制器可用于管理令牌的交易。令牌的管理包括接收和验证来自其他设备的输入,其中,可以包括从所述输入设备发送并由设备接收的数字签名。进一步,控制器可以根据前一个令牌交易的输出脚本确定令牌是否可以更改状态,该输出脚本可以锁定状态直到满足正确的条件,也即接收正确的数字签名以签署令牌的UTXO。控制器还可以管理来自令牌交易的输出脚本的创建,该输出脚本将令牌置于新状态并且设置输入要求,以便令牌更改为如同由令牌和/或设备的有限状态机所确定的下一个状态。
系统可以包括具有输入令牌的输入设备。输入设备和/或输入令牌可以被配置成创建令牌交易输出,所述令牌交易输出包括数据,所述数据对应于输入设备的事件、物理事件和特征变化中的至少一者。输入设备可以是传感器。这样,令牌交易输出可以表示输入设备的状态。输入设备可以是传感器。签名可以指示信号,信号可以表示事件、物理事件和信号中特征变化中的至少一者。令牌交易输出可以包括签名,所述签名指示输入设备的事件、物理事件和特征变化中至少一者。输入设备可以保存多个密钥对签名,并且每个密钥对可以对应于输入设备的状态或条件,例如开或关。
系统可以包括具有输出令牌的输出设备。输出设备可以是执行器。可以将输出设备和/或输出令牌配置为创建令牌交易输出,所述令牌交易输出确定了确定输出设备的配置的操作、状态和数据中的至少一者。为了更改输出设备的状态,可以从输入设备和/或由输入设备管理的输入令牌接收输出令牌交易的输入。可以从输入设备令牌交易的状态中取回输入。额外地或可选地,可以直接从输入设备,例如传感器,接收输入,所述输入设备可以发送信号和数字签名中至少一者,指示其感测或输入状态。令牌交易输入是签名,该签名指示输入设备中的事件、物理事件和特征变化中至少一者。
输出设备的令牌可能需要来自两个或多个输入设备令牌交易的输入和/或来自两个或多个信号的输入。在收到所需的输入签名和/或信号后,输出设备令牌交易从输入令牌或输入设备接收输入/签名,并且可以将输出投入到新状态中。新状态可以确定进一步更改状态所需的输入,也即需要哪些输入设备进行哪些签名才能进行更改。输出令牌交易可以由管理令牌的输出设备的控制器写入,并为令牌交易的输出编写脚本。
设备的控制器可以至少部分地用作数字钱包,该数字钱包被配置为管理令牌交易。该设备,无论是在输入设备还是输出设备中,都可以具有至少一个:控制系统,该控制系统被配置用于管理区块链令牌交易,该区块链令牌交易表示设备的状态;持有密钥对签名的存储器,该密钥对签名使用令牌及其表示的设备签署令牌的UTXO以更改所述设备的状态;用于生成密钥对的安全机制,所述密钥对用于对令牌的UTXO进行签名。安全机制可以包括程序不可重复功能(PUF)。
输入设备或输出设备可以是具有两个或多个设备的子系统。可以将设备配置为同时包含输入设备功能和输出设备功能。相应的令牌可以确定操作、状态和数据中的至少一者,所述操作、状态和数据中的至少一者确定了两个或多个设备的配置。两个或多个相应的令牌可以确定操作、状态和数据中的至少一者,所述操作、状态和数据中的至少一者确定了两个或多个设备的配置。任何规模的系统都可以根据本文公开的方法和设备进行配置,并且所述或每个设备的操作可以根据令牌的状态来确定,该状态根据有限状态机、相应的输入签名和令牌交易输出脚本是可更改的。
具有设备的系统可以使用本文所述的令牌进行操作。可以管理设备的令牌的操作,例如,嵌入到设备的控制器中。令牌交易输出的状态记录在链上,并且设备可以根据其有限状态机从令牌账本中额外地或可选地取回令牌的状态。
另外地或可选地,系统可以根据具有有限状态机的令牌的状态进行操作,其中,状态保存在数据库中。区块链交易还可以包括数据库格式、实体和参数中至少一者和/或与创建和/或修改数据库相关的数据,所述数据库捕获操作、状态和数据中的至少一者,所述操作、状态和数据中的至少一者决定了输出设备的配置。所述或每个与令牌相关的输出可以至少部分地定义关系和/或图形数据库的一部分。所述或每个与令牌相关的输出可以是用于修改表和/或数据库的指令,该指令确定如下至少之一(i)通过添加、删除或更新进行修改和(ii)修改行、列或记录中的至少一个。令牌交易和每个后续令牌交易可以至少部分地定义写链。写链让交易数据库能够被确定。
通常,系统、子系统或设备可以被配置成实现本文中的方法。系统、子系统或系统内的设备,特别是输出设备,可以响应以下至少一项来改变状态:来自输入设备(例如传感器)的信号;输入设备的令牌交易的输出的状态变化,其记录在令牌账本上;以及记录在数据库中的更新,所述数据库监视被控制的系统和相应令牌的状态,所述相应令牌的状态表示其中资产和/或设备的状态。
换句话说,收集每个令牌状态的交易数据库可以提供系统内每个令牌/设备的状态的记录,并且指示状态的变化和所述变化的触发器。数据库可以是交易数据库,并且用作表示系统内设备状态的令牌状态的存储库。数据库可以是配置为用于指令的存储库的交易数据库,设备可以参考该数据库来确定要执行的操作。
交易数据库可以从令牌交易和从令牌账本提取的它们的写链中确定性地形成。
根据另一方面,本发明驻留在设备中,可在控制系统中操作,所述设备具有:用于处理和/或生成区块链交易(MTx)的控制器,所述区块链交易具有一个或多个令牌相关输出(T-UTXO),每个输出表示由令牌发行人(TI)发行的相应令牌(T)并且指定a)确定设备配置的操作,状态和数据中的至少一者;b)与相应令牌(T)关联的一定数量的令牌相关加密货币(TRC)。区块链交易还可以包括至少一个与发行人相关的输出(I-UTXO),所述输出包括与令牌发行人(TI)相关联的发行数据(IData)。控制器可以处理对输出的指令,所述输出是相应令牌区块链交易的输出。所述指令可以是脚本。控制器可以具有状态机,所述状态机具有两个或多个可操作状态,其中,所述状态由控制器来确定,所述控制器处理来自令牌交易的输出。控制器可以具有状态机,所述状态机具有两个或多个可操作状态,其中,所述状态由控制器来确定,所述控制器处理来自令牌交易的输出。该设备可以是输入设备,所述输入设备用于管理输入令牌并创建令牌交易输出,所述令牌交易输出包括数据,所述数据与输入设备的事件、物理事件和特征变化相关中的至少一者。令牌交易输出可以包括签名,所述签名指示设备事件、物理事件和特征变化中的至少一者。
该设备可以是输出设备,所述输出设备配置为与输入设备(i)直接通信和/或(ii)被配置为从输入设备读取最新的令牌交易以确定输入设备的状态。输出设备可以配置为处理来自输入设备的响应以创建令牌交易,其中,输出确定输出设备的操作、状态和数据中至少一者。与输入设备联系的输出设备可以接收来自输入设备的响应,该响应可以是签名,该签名指示输入设备的事件、物理事件和特征变化中的至少一者。
该设备可以是:具有两个或多个设备的子系统;设备的相应令牌(T)可以确定操作、状态和数据中的至少一者,所述操作、状态和数据中的至少一者确定两个或多个设备的配置;和/或两个或多个相应的令牌可以确定操作、状态和数据中的至少一者,所述操作、状态和数据中的至少一者确定设备的配置。
根据另一方面,本发明驻留在系统中,所述系统具有配置用于管理一个或多个令牌相关输出(T-UTXO)的设备,每个输出表示由令牌发行人(TI)发行的相应令牌(T)并且指定:与相应令牌(T)相关联的一定数量的令牌相关加密货币(TRC);以及确定设备配置的操作、状态和数据中的至少一者。系统操作可以通过本文描述的方法和设备操作来定义。
每个系统和/或设备可以配置为管理加密货币区块链上的至少一个令牌,并且创建令牌交易,该令牌交易指示操作、状态和数据,所述操作、状态和数据确定至少一个设备的配置。
根据另一方面,本发明驻留在一种方法中,该方法监视具有设备的控制系统,其中,确定所述设备的配置的操作、状态和数据由加密货币区块链上的令牌交易进行确定,其中,按时间顺序排列的一系列交易确定令牌交易的写链,并且,其中,该方法取回和整理输出,所述输出来自数据库中写链上的令牌交易。
根据本发明的另一方面,存在一个数字钱包,其被安排和配置用于管理令牌的令牌交易,所述令牌确定设备的状态。
根据本发明的另一方面,存在一种计算机实现的方法,该方法执行令牌的令牌交易,该方法确定设备的状态,所述方法包括生成、存储、处理和/或维护多个与令牌相关的区块链交易输出(T-UTXO)的基于计算机的资源(R),其中,每个输出(T-UTXO)。基于计算机的资源(R)可以在链下生成,存储,处理和/或维护。
根据本发明的另一方面,存在包含多个节点的计算机网络,其中,计算机网络中的每个节点包括:处理器;和包括可执行指令的存储器,由于处理器的执行,所述可执行指令导致系统执行此处公开的方法,例如,令牌的令牌交易,该令牌交易确定设备的状态。
根据本发明的另一方面,存在一种非暂时性的计算机可读存储介质,其上存储了可执行指令,由于由计算机系统的处理器执行,该可执行指令导致计算机系统执行本文公开的上述计算机实现的方法,例如,令牌的令牌交易,该令牌交易确定设备的状态。
总体而言,如所描述和保护的那样,每个令牌应用程序和方法都确定了处理令牌交易和区块链上的相关验证和/或交互所需的计算的有效使用,所述效率可通过使用作为传输媒介的底层加密货币单元来实现。
附图说明
本公开的各个方面和例子仅以例子的方式并且参考附图进行描述,其中:
图1是显示了本公开的例子中步骤的流程图。
图2和图3显示了根据本公开的示意性例子,其中一些例子使用中间寄存器,以及另一些例子不使用。
图4显示了令牌转移交易(TTTx)的输入和输出,其中,令牌进出同一区块链交易中的同一VOUT索引并保留其确切的令牌;此外,对于给定的交换或交易发送到钱包中的令牌可能(事实上,很可能不会)与将发送给接收者的令牌不相同。
图5进一步显示了图4的TTTx,以及如何通过众多区块链交易转移具有不同令牌值的单个令牌,但保留其完全相同的令牌单位并且不被拆分/重组。这显示了根据本公开形成的令牌的可替代性。
图6和图7显示了本公开正在使用的例子。
图8显示了根据本公开的例子可以使用的验证过程的概述。
图9a显示了相关令牌的逻辑子账本,所述相关令牌由同一发行人发行并在区块链账本(例如比特币区块链)上实现。这样的逻辑子账本可以称为令牌账本,而图9b显示了令牌账本之间的关系,包括子账本、加密货币账本和数据库管理系统。
图10显示了一种安排,其中更改组件或服务在需要时为用户提供计价令牌的更改。这使得用户能够与具有不同令牌单位的其他人交换令牌。
图11显示了铸币交易的例子,其中,发行人授权的来源来自未另行与铸币交易绑定的UTXO中持有的公钥。通过检查铸造操作中的签名有效地使用了公钥来执行验证,所述公钥与引用的交易中发行人授权的身份绑定。
图12显示了一个铸造交易的例子,其中,发行人授权的来源来自对令牌或发行人证书的控制。通过将发行人证书的历史记录追溯到令牌账本建立交易来执行验证。
图13显示了一个涉及发送方和接收方创建区块链交易的过程,并且包括接收方使用第三方服务去验证令牌的步骤。
图14显示了一种类型的多方组区块链交易,第三方令牌处理方可以通过该类型将许多较小的交易所分组到一个大型交易中来混淆交易的各方。这是在所有花费的令牌上使用SIGHASH_SINGLE|SIGHASH_ANYONECANSPEND来实现的,其锁定了每个输入/输出对,但允许处理方自由地将它们堆叠成单个大交易,甚至将它们分解为多个单独的交易。
图15显示了通过寄存器支付的两个独立的区块链交易,并且显示了寄存器为用户保存资金,并且用户仅向寄存器提供签名。因为输出目标在令牌签名时未确定,使用SIGHASH_NONE|SIGHASH_ANYONECANPAY进行签名。然后,寄存器会获取其他寄存器用户预先签名的其他单独的令牌,并在群组交易中将它们花给资金接收者。
图16显示了一个过程,通过该过程,物理令牌可以被销毁并作为数字项目重新发行,所述物理令牌具有有关其序列号和数值的具体细节,所述数字项目将原始票据的序列号和数值带入令牌账本中。
图17显示了一个过程,通过该过程,具有唯一标识符(例如序列号和令牌值)的数字令牌可以锁定到由发行者控制的脚本中,然后发行者可以创建子令牌,其可以是数字令牌的物理或数字表示。这些子令牌可以可验证地链接到数字令牌,然后通过将它们存放回寄存器并从锁定脚本中删除数字令牌来销毁,所述寄存器由发行者控制或与发行者关联。
图18显示了使用区块链交易来熔化(也即销毁)根据本公开的例子形成的令牌。
图19显示了使用区块链交易来重新铸造(即重新发行)根据本公开的例子形成的令牌。
图20a至20d显示了区块链交易进一步例子来重新铸造(即重新发行)根据本公开的例子形成的令牌。
图21显示了建立交易,该交易将UTXO投入到发行人证书中,该证书包含发行人授权代表的身份和数字签名。
图22显示了建立交易,该交易生成一个根节点,该根节点包含发行人授权代表的签名和数字签名。
图23a和23b显示了实现如下所述投票过程的示意性使用案例的例子图示。
图24显示了子账本,该子账本根据一个或多个例子形成为令牌账本的子集。
图25显示了三个动态令牌的铸造交易,每个令牌的零点值为1000聪(satoshis)。
图26显示了发行人和客户之间300个令牌单位的交易,由聪表示,其中,零点值为1000聪。
图27显示了发行人和客户之间的交易,其中,来自客户的静态令牌的1000个令牌单位提供给了发行人以换取将1000个令牌单位提供到客户的动态令牌中。
图28显示了从用户到发行人的500个令牌单位的交换以换取不可替代的令牌。
图29显示了在两个动态令牌之间的交易期间由双方执行的操作。
图30显示了在交易中使用静态和动态令牌组合的交易。
图31显示了使用动态令牌生成一次性使用的令牌的令牌。
图32演示了交易,其中,使用动态令牌创建四个一次性使用的子令牌,同时保留令牌单元。
图33显示了交易,其中,钱包中持有的两个一次性使用的令牌与动态令牌一起使用以输出令牌单位的组合总数。
图34显示了交易,其中,两个一次性使用的令牌和保存在钱包中的动态令牌一起使用以输出令牌单位的组合总数。
图35显示了交易,其中,两个一次性使用的令牌和保存在钱包中的动态令牌一起使用,以一个动态令牌和一个一次性使用的子令牌的形式输出令牌单位的组合总数。
图36显示了在交易期间执行的操作,其中,在两个动态令牌之间的交易期间,双方将两个一次性使用的令牌添加到动态令牌中。
图37a显示了在交易期间执行的操作,其中,从动态令牌创建两个二阶子令牌,并且图37b显示了如何将二阶功能嵌套在令牌交易输出脚本中。
图38显示了在两个交易期间执行的操作,其中,二阶子令牌可以通过交易来传播。
图39显示了用于删除线性链历史的交易序列,该线性链历史将用户与其令牌绑定。
图40显示了交易,其中,创建了两个FALSE输出来调整交易中令牌的管理。
图41显示了交易链,其中,动态令牌用于创建一次性使用的子令牌,而在其他一次性使用的子令牌中的一个支付到动态令牌中之前,该子令牌又用于创建另外两个一次性使用的子令牌。
图42和43显示了用于终止令牌的FALSE输出。
图44a到56是显示了令牌交易的图表混合,其中,在由数据库管理系统编译时,数据库指令是输出以及可从这些交易输出派生的关系数据库的例子。
图57是建立天气数据库的JavaScript Object Notation(JSON,Java脚本对象注释)。
图58和59是用于记录资产状态的不同令牌交易输出结构的示意图。
具体实施方式
为了便于说明而不是限定,现在提供了一些可能的例子和使用案例的示例。如上所述,仅为了方便起见,我们将在此引用“比特币”作为我们的示例,因为它是最知名和广泛使用的区块链协议。本公开的例子可以在比特币协议、平台和账本上实现,尽管这以及对比特币的引用并不旨在限定,并且本公开的例子范围因此不受限制。
以下的描述与令牌(T)相关,并且特别地,它们的创建,使用,重新创建和销毁。可以创建具有不同属性的令牌,并且其不同类型包括:
创建的具有固定值的令牌,该固定值在交易期间保持静态,在该交易中它从一个用户转移到另一个用户,该令牌称为静态令牌(sT);
创建的具有初始值的令牌,该初始值在交易期间可更改,并且可以由用户保留,并且优选地在交易期间不转移,并且涉及交易中单位的转移,该令牌单位称为动态令牌(dT);在交易过程中从动态令牌(dT)派生的子令牌,子令牌可以以数字或物理形式驻留,子令牌可以在交易期间花费到任何兼容的动态令牌(dT)中,这些子令牌可配置为多种格式,包括:
可转让并配置为一次性使用,其称为一次性使用的子令牌(suT);
配置具有辅助功能,如下所述,并且当它们具有属性值或零单位令牌时,例如零聪令牌(zsT),被称为二阶子令牌(soT),所述二阶子令牌具有静态值,一次性使用的配置或动态值中的至少一者;和
写入令牌,其也与铸造交易具有确定性关系,该关系使其能够确定其认证和/或线性交易历史,所述写入令牌创建具有输出的交易,所述输出充当给交易数据库的指令,其中,一系列的写入令牌交易确定写链,所述写链驻留在区块链上,指令可以从所述写链中取回并用来确定交易数据库管理系统。
在本发明的每个例子中,铸造交易提供了数据,该数据确定令牌的功能操作-其可以至少如下至少之一:管理资产,记录交易中的信息,并随后能够确定地将写链上的交易编译进入到功能记录中。此外,与账本(如加密货币账本)的交互可以抑制腐败,并以高效且具有成本效益的方式优化可扩展平台的使用。
建立交易
本公开的一个或多个例子可能涉及使用建立交易(ETx)。建立事务可以是令牌定义事务,其定义将要创建并随后发行的令牌。建立交易可以在铸造交易之前或包括铸造交易。建立交易可以定义在控制系统中的数据库或设备设置记录。作为令牌定义交易的建立交易优选地引用首次交易。首次交易可以作为根节点,根节点持有负责令牌的发行人和/或授权的数字身份和/或数字签名,其还可以包括来自例如政府机构或监管机构的其他签名。首次,定义和发行交易可以统称为铸造交易。
在实践中,它是首次发行令牌的交易,其功能是铸造令牌。但是,影响令牌转移和/或验证的铸造或发行交易的输入具有来自定义交易和首次交易中的至少一个的输入。因此,每个令牌交易,包括和进行发行交易,也即铸造交易,在区块链上的线性交易历史中链接到与发行数据(IData)相关的至少一个发行人相关的输出(I-UTXO),也即与发行令牌(T)的令牌发行人(TI)相关的根节点。此外,每个令牌交易,包括和进行发行交易,包括资产,也即在定义交易中指定的一定数量的令牌单位(TU),以及令牌相关的加密货币(TRC)。
正在使用的ETx例子显示在图9a、9b和24中。ETx的功能是提供必要的授权数据和记录,发行人(TI)将从该授权数据和记录获得其授权,并且该授权数据和记录然后使发行人能够执行诸如铸造令牌(T)之类的操作。如图9a所示,单个ETx可用于为给定的令牌账本创建超过一个铸造交易(MTx)。建立交易与铸造交易的不同之处在于,建立交易是在令牌账本中标记第一个操作的单个事件,而MTx是在ETx之后并且代表了创建令牌(T)的行为,其将在令牌账本中进行交易。线性历史可以将令牌分类账中的每个令牌链接回特定的铸造交易并将每个铸造交易链接回建立交易中创建的授权,其为本公开提供了一些最重要的属性,包括低开销、简单的可追溯性以及独特但可替代的令牌。
图9b显示了图9a所示账本的替代表示,其中,加密货币账本和令牌账本并行排列,并且指示了令牌账本交易之间的关系。进一步指示的是数据库管理系统,该系统可以取回令牌交易并记录在加密货币账本上,该令牌交易由在令牌账本中创建的令牌进行。
对于令牌的任何应用可以取回和分析令牌交易,例如其所控制的资产的状态,并且本文描述了安全资产的非限制性示例,例如静态令牌、动态令牌、用于创建交易数据库的令牌和控制令牌,其确定了机器的操作状态。状态可以是操作和确定资产或资源配置的数据中至少一者。
数据库管理系统可以由支持令牌账本的授权或发行人进行操作,或者可以由代表它们的代理进行操作。因此,数据库管理系统可以访问令牌账本信息,所述令牌账本信息包括至少以下一项:在根节点中定义令牌账本的签名;令牌定义;发行交易和铸造或分铸造的令牌;每个令牌的身份;以及与每个令牌关联的密钥对签名。可以将令牌交易输出配置为编译到数据库中,并且下面提供了交易数据库的例子。
数据库管理系统可以访问和处理来自令牌账本和关联的一个或多个子账本的数据。虽然没有显示,但所述子账本以传统账本相同的方式实现,并且基于相同的令牌,除了子账本专用于附加功能,所述附加功能归因于令牌输出交易脚本,例如二阶函数,如下所述。附加功能(例如二阶功能)可以由不同的授权或发行人实现。如图所示,可以实现可选的单独数据库管理系统以从子令牌账本中取回数据。
如图9b所示,创建和铸造令牌的过程有一个根节点,该根节点用作首次交易并且包括授权/发行人的一个或多个数字签名并且代表授权。根节点交易记录在加密货币账本中,即“链上”。根节点可以包括要铸造的令牌的定义,或者定义交易可以在链上单独进行并且数字地引用根节点,同时也记录在链上。定义交易可以包括铸造交易和/或铸造交易可以单独进行。用于用于发行数字的铸造交易直接地或间接地引用了建立令牌和/或根节点的定义交易。
铸造交易在其输入处还具有一定数量的加密货币,以便每个后续令牌交易都可以进行认证。认证在两个级别进行。首先,通过令牌账本,其中,令牌的接收者可以通过确定其与创建令牌的交易组中该交易或每笔交易的关系来验证其真实性,即通过确定要接收的令牌由包括“铸造”交易的线性交易历史得到。如图9b所示,第一级认证通过令牌之间的关系(例如令牌X、令牌X.1和令牌Y)进行应用。其次,每个令牌交易包含一定数量的加密货币,并且因此UTXO的真实性由处理交易的矿工确定。通过这种关系,接收者可以确定令牌的加密货币UTXO的真实性,如令牌和加密货币账本之间的哈希行所示-但是,接收者或使用令牌的机器,例如数字钱包,优先考虑由令牌账本管理的资产的真实性,这通常比底层加密货币更重要和/或更大价值。
如下文更详细地描述,令牌交易输出代表资产,其可以是由令牌本身控制的资产、子令牌甚至附加的令牌功能,其可以有条件地提供。它可以通过引用回到其自己的创建(也即创建令牌的交易集)来做到这一点,并且独立于底层加密货币来做到这一点,从而导致产生更快,更有效的认证计算过程。这种效率之所以能够实现,是因为令牌具有线性交易历史,即从最新交易到发行交易的令牌交易历史不涉及分叉或循环。
无论根交易、建立交易和铸造交易是合并还是单独执行,它们为其衍生的后续令牌交易确定了线性交易历史的开始。
例子中的建立交易(ETx)包括至少一个输入,其脚本由所有相关的参与方签名并且包含至少一个输出,所述输出成为用于令牌账本的发行人证书。这显示在图21中。在此例子中,每个发行人证书都由一个UTXO表示,该UTXO保存在由发行人的授权代表控制的脚本中,其允许此后转移,铸造和转移底层加密货币令牌。每次发行人执行诸如铸造令牌之类的操作时,UTXO和/或交易标识(即交易)被用作识别边缘,其保存证书并用作执行该操作的交易的输入,并且证书被转移到新UTXO中,所述新UTXO是那个交易的输出。通过这种方式,证书可以无限次重复使用,并保留回到令牌账本建立交易的线性历史。
另一个例子包括建立事务(ETx),其使用输出脚本中携带的数据创建根节点。在本公开的上下文中,我们使用术语“节点”的方式来描述区块链交易的图形或树中的节点,而不是网络中的计算机。使用的根节点的例子如图11、18、19和22所示。在此例子中,根节点包含可用于建立发行人的身份的详细信息、其代表以及这些代表必须满足的要求以在令牌账本中生成有效的发行人交易。在此例子中,发行人操作(例如铸造令牌)由发行人或其授权代表执行,以令牌账本的用户可以检测和验证的方式将其数字签名应用于交易。
另一个例子使用本领域已知的Metanet协议(见https://wiki.bitcoinsv.io/index.php/Metanet_Protocol)建立根节点,并且使用根节点的Metanet子节点来标记与发行人相关的交易,例如铸造交易。
要求的性质可以由参与方商定,并在将建立交易发布到网络之前签署。在另一个例子中,诸如协议文本的数据可以作为ASCII或JSON格式的文本直接转录到根节点中,作为可接受格式(例如PDF)的嵌入文件,存储在根节点内引用的单独交易中,或者保留在文档中,该文档离线存储并由签名交易方使用存储在根节点中的文件哈希或者其他知识证据进行验证。也可以使用其他类型的数据和插入机制。
在一个或多个例子中,必须在签署协议之前创建的UTXO并将其提交给账本,所述UTXO用作建立交易的输入。此操作可以由参与方之一执行,或者由第三方执行,该第三方知晓建立交易的输入脚本的要求。
建立交易输入可以使用比特币脚本进行构造,以使参与者能够选择多种结果。
例子:简单合约
DEPTH 2 EQUAL IF
2<customer_pubkey><contractor_pubkey>2CHECKMULTISIGRETURN
<accepted>
ELSE
DUP<customer_pubkey>CHECKSIGIF
TRUERETURN<rejected_by_customer>
ELSE
<contractor_pubkey>CHECKSIGRETURN<rejected_by_contractor>
ENDIF
ENDIF
此脚本允许各方在接受协议之前就结果进行谈判,并且允许任何一方拒绝协议,从而结束谈判过程。结果的选择在链上是可证明的。
发行(铸造)交易
根据本公开的一个方面,一个或多个区块链实施的令牌(Ts)由发行源(“发行人”)通过区块链交易进行创建,为了方便起见,我们将该区块链交易称为“铸造交易”(MTx)或“发行交易”,因为其提交给区块链铸造了(即生成/发行/创建)新令牌,随后该新令牌可以在交易方之间在链上进行转移。图11和12显示了如何使用铸造交易来生成令牌。
一旦铸造,这些令牌就可以提供给用户。可以建立用于向外转移的令牌,我们可以将其称为将令牌投入“流通”,因为它们可以在交易方之间共享和交换,所述交易方拥有根据本公开配置或安排运行的钱包。可选地,可以建立由用户持有的令牌,而不是在交易方之间转移的令牌保存在钱包中,并且令牌单元是与在交易方之间交换的令牌相关联。
如图9a所示以及在下面更详细地讨论,一旦铸造交易将令牌、子令牌或令牌单位投入流通,它们就会在底层区块链上形成子账本,它们驻留在子账本中并按照传统的UTXO记录在区块链上,并从一笔交易转移到另一笔交易。但是,由于其共同的发行人和/或铸造交易,由UTXO携带的令牌或令牌单位在逻辑上相互链接或相互关联。应该注意的是,发行人可以使用多个铸造交易来生成特定类型的令牌。相反地,单个铸造交易可用于生成不同类型的令牌。在这里,我们将使用术语“令牌账本”来指代驻留在区块链上的一组(子账本)令牌并且通过其共同的铸造源在逻辑上相互链接或相互关联。
根据传统的区块链交易,铸造交易包括输入和输出,详见下文。通过这种方式,给定的区块链(例如比特币SV)可以为一个或多个令牌账本提供基础层。每个令牌账本都可以管理自己一组独特的令牌化资源(数字对象)。每个令牌账本都由建立交易或根节点生成并且可在链上可追溯到建立交易或根节点。这是有利的,因为它使组织能够利用现有区块链的属性(安全性等)。通过在底层公共区块链上创建这样的层,发行人能够以最小的复杂性或资源要求将令牌铸造到子账本上,然后观察已经执行了转移。但是,转让交易方的隐私以与法定现金交易相同的方式保存。
铸造交易MTx输入:
根据本公开的某些例子,铸造交易通过一个或多个交易输入消化一定数量的加密货币(C)和部分的发行数据(IData)。在一个或多个例子中,这些通过相同的输入接收到铸造交易中,而在其他例子中,它们通过单独的输入来提供。
但是,在某些例子中,唯一的输入可能是交易输入,所述交易输入提供创建令牌所需的加密货币单位。虽然可以在账本中发行令牌,但这需要使用特定的UTXO作为“证书”。但是,不能从所述UTXO得出聪。这样的令牌将必须花费到交易中并且在交易外花费,并且因此不携带任何铸造数据。因此,在一个例子中,铸造交易在输出中具有发行数据,但在输入中没有。通过这种方式,在铸造数据中建立了发行人的授权。
发行数据包括一个或多个数据的部分,所述一个或多个数据的部分证明令牌的发行人(TI)和/或与令牌的发行人(TI)相关,和/或发行它们的发行人的授权。可选的,这种发行数据可以称为“授权令牌”、“授权节点”或“证书”。为了方便起见,本文可以使用术语“证书”。证书的作用是维护和控制已发行令牌的流入以及随后流过令牌账本。
进入数量的加密货币(C),例如比特币或比特币聪,从区块链上的先前交易接收到铸造交易中。铸造交易使用它来生成底层的、支持的转移机制或工具,其在铸造后,能够将令牌或令牌单位的控制从发送者转移到接收者。如果要在给定的铸造交易中铸造超过一个令牌(T),则加密货币的数量将被分成子数量,其中,至少一部分分配给各自的令牌。通过这种方式,加密货币的数量可以被认为是类似于传统铸造技术领域的印刷媒体或铸币,其中,一部分原材料被提供给硬币冲压机以加工成更小的单独的部分(硬币),每个部分包括原始铸币材料的子部分并且因此包括与其自己相关的内在价值。
发行人可以通过铸造交易对令牌的使用施加任何期望的限制。例如,这可以通过使用智能合约来实现。例如,发行人可以确定铸造的令牌的类型并确定令牌是否是静态的,在这种情况下,令牌持有的令牌单位的数量是固定的,整个令牌在交易过程中转移,或者令牌是否是动态的并且创建为被持有,并且其中的令牌单位是可更改的,以便在交易期间转移令牌单位。此外,发行人可以确定,例如,动态令牌是否可以从子令牌解脱出来,从而创建一次性使用的子令牌和/或二阶子令牌,下面将更详细地描述。
有利的是,发行人的所有权和账本使用控制可以通过底层区块链网络及其协议进行管理和保存。令牌账本可以通过交易创建,该交易包括(智能)合约或指向记录在区块链上的合约的指针,并且其在铸造新令牌时被引用。与发行人有关的授权签署人可以对证书/发行数据/节点进行加密签名,以提供授权的可验证记录。
铸造交易(MTx)输出:
铸币交易还包括多个未花费的交易输出(UTXO)。
在例子中,至少有一个UTXO提供了证书,包含了证书或者与证书相关联。证书是将发行人发行令牌的授权注入系统的手段。这也是铸造后在后续使用中验证令牌的真实性的手段。证书可以包含特定的实现所需的任何类型、格式或数据内容。
在某些例子中,证书可以从具有相同VOUT/VIN索引的输入传递到输出。在一些例子中,证书存在于UTXO中,所述UTXO不是在发行交易中花费并且识别细节(例如交易ID,Vout索引,公钥或密钥),所述细节在铸造交易中复制并且用于创建数字签名以将铸造交易链接到令牌发行人(TI)。
在一些例子中,证书可以是公钥或其他知识证明,其通过区块链数据库外部的手段来可证明地与发行人相连接并且其用于生成数字签名以将铸造交易链接到发行人。
但是,在一个例子中,证书(IData)或铸造记录(MR)都不用于令牌或令牌单位转移本身,并且一旦铸造令牌,后续转移就不需要授权证书。因此,铸造信息在铸造和后续验证过程中使用,但不用于令牌或令牌单位转移目的。由于铸造信息不附属于转移交易或不由转移交易进行,因此用户需要通过追溯其历史回到铸造交易并从那里检查信息来验证特定代币的真实性。这提供了可以确保来源真实性和确保验证并且提高令牌的安全性的技术优势,因为如果铸造/发行者相关的信息在每次交易都随令牌一起携带,恶意的第三方可以利用这个来伪造令牌。虽然这需要用户的钱包去花费一些资源来执行检查,但线性交易历史和如SPV的技术将开销保持到最低限度。最小化开销的技术可以使验证者丢弃与令牌化资产无关的任何或所有vin/vout对。在某些方面,对这种支票的需求类似于商家在收到客户递给钞票时进行的那种检查。例如,如果商家选择不检查客户的50英镑纸币是否由英格兰银行真实发行而不是伪造品,他们会冒着收到伪造令牌的风险。因此,大多数商家会选择做一些努力来验证钞票的真伪,例如,检查钞票的序列号或将其举到灯光下寻找水印等。
此外,在一些例子中,相同或至少一个不同的UTXO提供了令牌生成数据,包含了令牌生成数据或与令牌生成数据相关联,我们可以将其在此称为“铸造记录”(MR)。在此类例子中,铸币记录可能包括数据,所述数据与由铸币交易发行的令牌相关。这可能包括铸造交易创建的所有令牌的列表和/或与这些新令牌相关的任何期望的数据,例如,它们所代表的令牌化资产的详细信息、与每个令牌相关的加密货币的数量、唯一标识符,例如(但不限于)序列号、任何相关艺术品或具体的使用限制。铸造记录可以作为列表或令牌币相关数据的指针、引用或表示形式进行提供,并且可以在铸造记录的输出的锁定脚本中提供。在一些例子中,它可以在令牌持有输出中的某个位置处作为元数据提供,例如在UTXO的锁定脚本中,可能在FALSE RETURN输出之后,例如OP_RETURN操作码。
令牌输出(T-UTXOs):
多个输出还包括至少一个(但通常是多个)与令牌相关的UTXO,为了方便起见,我们可以将其称为T-UTXO以将携带令牌的输出与包含证书和/或铸造记录的输出区分开来。根据本公开的例子,T-UTXO是一种代表令牌(因此是令牌化资源)的UTXO。我们可以将包含证书(IData)的输出称为I-UTXO。
就本公开的一个典型例子而言,其中,铸造交易产生多于一个新令牌,新铸造的硬币的基础加密货币值是加密货币(C)的传入数量的子部分。但是,在发行交易仅铸造一枚硬币的例子中,整个传入数量可以分配给新铸造的硬币。在所有情况下,无论是铸造一枚还是多枚硬币,任何剩余的零钱都将如上所述被返回。如上所述,除非特别说明,否则费用和其他非令牌输入和输出不被视为交易的一部分。费用可能是交易所需的开销,但与令牌化资产和/或信息无关。
由给定MTx铸造的所有令牌都代表在合同条件下允许发行机构发行的令牌类型和单位数量,所述合同条件建立了令牌账本。令牌具有两种类型的“值”或与之关联的资源单位/数量:
1.令牌所代表的令牌化资产/资源的单位数量(“令牌值”或“令牌单位(TU));这可以是任何类型的资产、实体、项目或资源。(为了便于参考,我们将简单地使用“资源”来包含所有这些术语)。例如,但不限于,资源可以是:
·实物资源,如汽车、房屋、赛马、电影票等;
·法定权利或义务,例如在特定时间段内使用某些资源(如汽车)、运行某些软件或下载某些内容(例如电影)的许可证;或履行合同条件的义务;专利权的份额;
·虚拟和/或数字资产,例如访问计算机网络或文件的权利,或加密货币,或数字选票或投票系统中的选择;和/或
·以金融或企业为导向的资产,如法定货币、商品、股票和股份等。
2.底层加密货币的非负部分,其必须作为区块链交易的基本机制进行转移;
区块链协议通过将一些Satoshis(或其他形式的加密货币单位)从一个交易中的输出转移到另一个交易中的输入来运行;因此,技术人员很容易理解,虽然在实践中是底层机制或工具使得所披露的区块链例子运转,但已知的加密货币转移技术并不是本公开的新颖性或创造性的方面;相反的,创新在于所披露的令牌化技术、系统和协议,其使用了那些已知的区块链机制。
通过使用比特币脚本将底层加密货币或其部分(例如Satoshis)转移进入新所有者的地址来花费令牌或令牌单位。对聪(或其他形式的加密货币单位)的控制代表对令牌的控制。应该指出的是:
·在同一笔交易中铸造的令牌可以具有不同的底层聪值。
·令牌可以配置为静态令牌,其中每个令牌的令牌价值(即资源单位的数量)在铸造后不会改变,无论其转移的次数如何。
·可选地,可以将令牌配置为动态令牌,其中每个令牌的令牌值(即资源单位的数量)在铸造后都是可更改的,无论动态令牌中的一部分令牌单位被转移的次数如何。
·静态令牌在铸造后不能拆分,因为它的值是固定的。因此,在一个例子中,与给定静态令牌相关的加密货币单位的底层数量在铸造后无法更改。但是,在其他例子中,只要铸造交易指定的令牌的原始令牌值不被更改,协议可能允许以某些方式更改加密货币单位的数量。例如,发明人可以发行具有X底层Satoshis的令牌,然后创建包含X+YSatoshis的输出。这将使用户能够在一定条件下提取Y来支付转移该令牌的交易费用,该条件是作为余额Satoshis的数量永远不会减少到X以下。通过这种方式,令牌值可以被增加,但需要被保留。
·可以配置静态令牌,使其聪值与其令牌值断开连接以便它可以从包含聪的输出传输进入到包含零聪的输出,该输出包含的脚本,该脚本可能可花费,也可能不可花费。这将通过将令牌放入寄存器来实现,该寄存器使寄存器操作员能够控制令牌。在此过程中,聪可能会消耗在交易费用中,从而允许处置底层聪值,只留下令牌的不可转让的权利。
·动态令牌可以在铸造后拆分,因为它的价值是可变的。就像静态令牌一样,它们被定义为令牌,该令牌在未花费的交易输出(UTXO)中的当前状态下存在,所述未花费的交易输出归因于其中令牌单位。为了转移或以其他方式使用令牌,必须将它们从UTXO集中的现有位置花费到新的接收脚本中。动态令牌具有许多令牌单位,这些令牌单位类似于银行账户中的余额,其中,余额在每次使用时都会更新。令牌的历史存储为一系列的输入输出对,这些输入输出对可以线性链接,也可以通过将钥匙串与一系列交易中混合的输出进行匹配来链接。混合的使用可以在受信任的第三方的协助下在账本中进行管理,该第三方可以是令牌发行人或协助用户管理其令牌的其他机构。
可以创建令牌以便输出脚本需要签名者的任何预期变化。这在用于接收令牌的灵活脚本的选项方面和增强的功能方面提供了显着的好处。比特币实施的例子包括但不限于:
例子1:简单的现金输出
<pubkey>CHECKSIG
这是比特币中最简单的脚本之一-针对公钥的单个签名检查可以转移令牌的所有权/控制权
例子2:联名账户
1<husband_pubkey><wife_pubkey>2CHECKMULTISIG
此脚本允许丈夫或妻子转让令牌的所有权/控制权
例子3:公司账户
<department_VP_pubkey>CHECKSIGVERIFY 1<engineer_1_pubkey>
<engineer_2_pubkey><engineer_3_pubkey>3CHECKMULTISIG
在传递给他们的部门副总裁进行会签以转移令牌的所有权/控制权之前,此脚本允许3名工程师中的1名进行签名。
令牌子账本:
参考图9a,本公开的例子提供了发行人在其令牌账本中建立二级、独立的令牌子账本的能力。这可以通过在主令牌账本中执行建立交易来执行,该交易使用主建立交易的发行人授权(取决于例子)来创建子账本来管理来自主令牌账本的特定组的令牌。转移到令牌子账本中的令牌可以被赋予相对主令牌账本中额外的属性或不同的属性,或者转移到令牌子账本中的令牌可以用作铸造不同类型的新令牌的参考或来源。这些附加或更改的属性在建立交易中定义的方式与定义主令牌账本的属性的方式相同。
如果未定义其他或者更改的属性,则令牌子账本将保留令牌账本相同的属性,在所述令牌账本中创建了所述令牌子账本。在令牌子账本中发行令牌时,这些令牌的使用仅限于该令牌子账本的范围。在令牌子账本中创建的令牌无法转移到主令牌账本中。但是,主令牌账本中的令牌可以用作令牌子账本账铸造交易的输入,并在令牌子账本中分解为较小的令牌子单元或子类型。
例如,考虑公司创建软件的方案。该公司可以构建一个令牌,该令牌表示安装特定软件的许可证。每次用户购买许可证时,持有许可证权限的令牌之一将用作新令牌子账本的输入。每次客户以创建记录的方式使用该软件时,该记录都会在他们自己的私人子账本中创建,该私人子账本存在于公司的主要令牌账本中。记录可以表示事件和操作,例如,其他应用程序内购买、软件更新的性能或文件和其他信息的创建。
例如,持有许可证权限的令牌可以是静态令牌。所述静态令牌可以被配置为过期或被取消(例如,在寄存器中)。此应用程序体现了具有“零值”输出的令牌例子,该令牌允许控制实体通过令牌提供访问权限,所述令牌不是创建为可转移的,例如,资源、认证、资格或奖项的访问代码。当零值输出可以花费时,可以把令牌配置为具有能够允许令牌撤回或撤销的功能。可以通过创建零值输出来撤回或撤销令牌,所述零值输出具有可求解的脚本,从而允许将输出作为有效交易的输入进行呈现。令牌也可以通过花费输出来提取,所述输出包含取消其有效性的信息,例如“FALSE”输出。
在此有效交易中,令牌可能会花费到错误的输出或其他脚本中,以反映所有权条件的变化或令牌寿命的终止。
在区块链上转移和验证令牌
如图1所示,在令牌铸造后,它可以从发送方转移或“花费”到接收方。第一笔交易将把来自铸币交易输出列表中的T-UTXO的令牌花费到进一步交易的输入中。从那里,令牌可以花给另一个接收者,依此类推,每次消费事件都会在区块链上生成一个不断发展的交易历史。使用动态令牌时,可以保留该令牌,并且交换的是该令牌中的令牌单元(除非将令牌作为一个整体进行交换)。
虽然方面和例子的变化对于技术人员来说是显而易见的,但根据本公开铸造的所有令牌具有至少以下特征之一:
·每个令牌都是作为未花费的交易(T-UTXO)生成的,该交易包含在根据本公开形成的铸造交易(MTx)中。
·每个T-UTXO包含符合底层区块链协议的指定数量的加密货币;在比特币协议中,这将是零或多个聪。这可以在本文中称为与令牌相关的加密货币(TRC)的数值,金额或部分,以将其与从先前交易中花费到铸币交易中的加密货币(C)区分开来,以便能够创建单独T-UTXOs。
·每个令牌代表令牌化资源;因此,它具有由该资源产生或关联的关联值。为了能够根据底层区块链协议在区块链上实现转移的目的,这可以在本文中称为令牌的“面值”、“面额”、“令牌单位”或其“令牌值”,以将其与携带令牌的底层加密货币的值或数量区分开来。
·铸造后使用:
o每个令牌在区块链交易中都表示为UTXO;这些交易和UTXO在格式或外观方面与传统的TX和UTXO没有偏差。本公开的例子不需要偏离或更改底层区块链协议。
o每个用户的令牌都使用根据发行者要求的或者由发行者要求指定的脚本进行存储。正如本领域技术人员将理解的那样,这可以使用已知的技术来实现,例如多重签名脚本,使用累加器脚本来捕获不同的授权和结构或简单的标准P2PKH脚本或其他方式。
o每个令牌或令牌单位都可以通过其在区块链上的历史以线性方式追溯回到创建它的铸造交易;这样能够验证授权和来源以防止伪造和其他未经授权的使用。
o通过将包含静态令牌的UTXO花费到后续区块链交易的输入中,每个静态令牌从发送者转移到接收者。每次通过区块链转移令牌时,都会在该交易图中执行线性转移,即令牌的历史不包含任何拆分或重新组合。
o每个动态令牌都有令牌单位,通过将包含动态令牌的UTXO花费到后续区块链交易中的输入中,该令牌单位可以从发送者转移到接收方。每次在区块链传输令牌单元时,都会在该令牌单元的交易图中执行线性转移。
o为了确保令牌及其中的令牌单元是真正的、授权的令牌/令牌单元以满足接收者预期的目的和来源,通过将其追溯回到发行它的铸造交易并将其与铸造记录和/或证书进行核对,可以轻松、快速和有效地验证令牌的交易历史。
当令牌要发送给接收者(其最初是发行者,并且随后是不同的所有者)时,发送者的数字钱包可以将UTXO花费到由接收者的数字钱包控制的锁定脚本。
在一个例子中,接收钱包已经按照本公开的协议和方法进行布置和配置。因此,接收钱包知道它正在期待根据本公开的令牌或其中的令牌单位的子组,并且必须在收到时或交易之前验证这种情况。接收钱包知道包含令牌的UTXO的VOUT索引,因此启动对令牌历史记录的验证检查,通过检查花费在该UTXO上的加密货币是来自输入,该令牌位于与UTXO的VOUT指数匹配的VIN索引处,并且这反过来又来自于UTXO,该UTXO的加密货币来自输入,所述输入位于与其VOUT索引匹配的VIN索引处,如此等等直到达到令牌MTx。
扫描过程持续直到到达到区块链交易,其中,持有令牌的VOUT没有相应的VIN。换句话说,线性交易历史终止。如果交易没有相应的VIN,则该交易是铸造交易或者令牌无效。从这里,扫描过程从相应/指定的输出中读取铸造记录并且验证令牌是真实的,并且是在带有发行方代表的签名的交易中铸造的。
因此,为了验证令牌的历史,钱包使用自铸造以来在区块链上使用的每笔交易的汇总Merkle证据。这显示在图8中。由于每个令牌都是在唯一的UTXO中创建的并且在没有拆分或组合的情况下进行交易,因此其历史是线性的并且可以在账本上快速检查。例如,由于Merkle证据数据的大小,假设在比特币区块链上1000亿Txs/天,具有1000个交易历史的令牌将携带大约1MB的历史。由于比特币账本是可公开检查的,钱包和第三方能够代表其他方和用户验证令牌。
应该注意的是,本公开并不排除使用传统的UTXO作为输入,也不排除在包括令牌转让的交易中创建传统的UTXO作为输出。因此,转移交易还可以包括一个或多个未根据本公开形成或使用的UTXO和/或输入,例如,由其他令牌协议创建的输入。
团体交易
在某些情况下,可能需要转移超过一个静态令牌,或者来自不同动态令牌的令牌单元要在交易中组合。额外地或者可选地,服务提供商(例如支付处理器)可以选择从多方获取交易并将其合并为单个交易以提高效率和资源管理。这也提供了令牌可以混合和混淆所有权的优势。这可以提供安全优势,因为恶意方无法识别特定令牌的所有者并且因此无法目标攻击。因此,交易可用于从多个用户获取令牌输入,并将不同的令牌发送到期待的接收器,而不是由支出方签名的接收器。类似地,对于动态令牌,交易中令牌单位的初始值对接收方是可见的,并且可以使用交易对信息进行混淆,如下文图39所述。
例如,如上所述,单个令牌具有令牌值。如果用户希望转移给定数量的令牌值,但没有铸造出具有足够令牌值的单个静态令牌,或者特定用户的钱包不控制该价值的单个令牌,则需要发送具有多个令牌值较小的令牌,以便它们加起来至少达到所需的整体令牌值。在这种情况下,发送方的钱包选择其控制的令牌并且(至少部分)在区块链交易(Tx)中签署多个令牌UTXO,这些令牌加起来至少达到所需的总价值。我们可以将此交易称为“组交易”(GTx),因为它将令牌输出分组或集群到一个区块链交易中。因此,可能需要生成混合令牌的区块链交易,并且转移到给定接收方的令牌可能与从发送方收到的令牌不同。这提供了增强隐私(因为令牌分发被混淆)和提高效率的优势。
如果需要,发送方可以对静态令牌进行加密签名,这些静态令牌的总值高于所需值。根据所需的实现,此类方案将导致将更改发送回发送方。在比特币区块链上实现的例子中,用户的签名使用SIGHASH_ANYONECANPAY和SIGHASH NONE。这有效地创建了签名,该签名可以应用于任何已签名的UTXO,该UTXO可以应用于任何交易中的任何输入。其他标志、指令或操作码(OPCODES)可根据可选区块链协议用于提供相同的技术结果。
在一些例子中,交易可以在支付渠道中处理。当用户的钱包收到新令牌时,它们可以被存储起来以便在以后继续付款。如果用户需要为某个整体令牌值进行转账,则可以从钱包中选择令牌并将其添加到组交易中。交易可能具有时间锁定机制(例如nLocktime),该时间锁定机制防止区块链网络在特定时间之前或找到后续区块之前将其挖掘。令牌将添加到支付渠道。当在节点的公共内存池中更新组交易时,钱包会评估交易的TXID,该TXID被包含以检查记录了哪个版本的组交易,并开始为支付渠道构建新交易。
“团队交易”GTx流程参考图14和图15进行了说明,其中,仅为了方便和易于理解,显示了代表法定货币纸币和硬币的静态代币。额外地或者可选地,驻留在动态令牌中的令牌化单元可以放入支付通道中。这可以用于锁定动态令牌。我们在图14和图15中的例子中使用法定货币,因为现金钞票和硬币很容易理解并且是熟悉的。图5还说明了静态令牌如何保留其令牌值,而不管它们被传输的次数如何。
重新盖章或销毁令牌
令牌可以以数字或物理方式存在,并且图16显示了一个过程,其中,3个具有自己独特值和标识的物理令牌在记录其详细信息和销毁的过程中被受控地销毁。使用记录的详细信息,可以在铸造交易中铸造等效的数字令牌,优选地由发行人执行,从而创建铸币记录。铸造记录与销毁(可以是物理的)分开发生,并提供可用于验证令牌真实性的新铸造记录。数字令牌可以具有相同的序列号和值。来自可控销毁的令牌的UTXO可用于创建新的数字令牌。通过这种方式,从物理到数字的过渡是无缝的,并且对线性交易历史没有影响,除了对数字令牌真实性的验证可以追溯回到最近的铸造记录,即实物令牌的记录将被创建,并且随后的MTx可以是数字令牌的最新进一步的铸造交易。
每个令牌币可以有唯一标识符,例如,序列号和令牌价值,可以将该唯一标识符锁定到由发行人控制的脚本中,然后发行人可以创建子令牌,其可以是数字令牌的物理或数字实施例。此唯一标识符可以在标识发行交易标识和vin/vout索引对之外。这些唯一标识符可以可验证地链接到数字令牌,然后通过将它们存放回发行人的控制来销毁。转移的格式可以是四种不同的类型或步骤之一,如图17所示。第1步涉及从数字到数字格式的简单数字交易。步骤2涉及处理数字令牌和来自交易的信息输出,例如,交易标识,交易输出和/或知识证据。此信息可用于打印或以其他方式创建物理令牌。步骤3未显示并涉及将物理令牌从一个人移交给另一个人。步骤4显示了将物理令牌转换为数字令牌的组合,以及使用数字令牌的后续交易,从而表明在格式之间交换令牌时可以保持令牌身份和值。
已在上面描述了图16为物理令牌,其中,所述令牌是数字令牌的物理表示。可选地,每个物理令牌可以是法定货币,例如,三张带有序列号的10英镑纸币。例如,诸如英格兰银行之类的机构可以获取实物货币票据,记录其序列号以及,在随后铸造具有相同序列号和相同货币值的如本文所述的数字令牌之前,销毁它们。
在图17的例子中,令牌标识和值保持不变。但是,通过组合值或细分值来合并令牌是可行的。例如,数字令牌1'和数字令牌2'可以合并为具有值“11”的单个令牌。在另一个例子中,数字令牌3可以分成相等的部分以成为数字令牌3a和3b,每个具有'50'的值。
令牌可以花费在交易中,然后在同一交易中更正格式。在这种情况下,代表令牌的聪在打破其线性历史记录后被重新用来使用相同的令牌。
在某些情况下,令牌发行者可能希望将令牌从流通中删除。图18、19和20a说明了使用交易来执行熔化和重新铸造操作。
在发行者通过将令牌保存在单个寄存器中来直接控制令牌的系统的例子中,通过将令牌从寄存器外花费到熔化交易中,发行人可以删除令牌,从令牌寄存器中删除了令牌和底层加密货币,如图18a所示。图18b更详细地显示了熔化交易的步骤,其中,熔化交易包括铸造记录和熔融记录,使得令牌销毁记录在账本上。需要注意的是,在熔融交易期间,令牌可以花费到FALSE输出中,否则会导致它们的破坏。
更新令牌
虽然令牌可以被销毁或熔化,并且它们的UTXO可以保留以在令牌化系统之外使用,但任何后续的重新铸造都可以用新令牌替换令牌。在这种情况下,以前的令牌的使用方式使得验证令牌的真实性需要验证最新的铸造记录,从而破坏线性历史。可选地,以前的令牌被更新为具有相同或新的身份和相等的总价值,即相同的值和序列号,除了发行人不参与。在这两种情况下,以前的令牌都以这样的方式使用使得验证令牌的真实性需要验证最新的铸造记录,从而破坏了线性历史。但是,通过更新以前的令牌,它们以这种方式花费使得对令牌真实性的验证被保留,并且中断了线性历史。
但是,在后一个例子中,令牌优选地是“更新”而不是重新铸造。当UTXO被重用或重新铸造时,该过程用于是复制现有令牌,其中,所述复制利用重新铸造操作更新或复制不需要返回给发行者。涉及发行人和/或机构的重新铸造操作可以被视为类似于重新启动或重新安装计算机控制设备(例如CNC机器)的操作系统,而对此类操作系统的更新涉及明显更少的中断或操作,从而产生更高效和更具成本效益的过程-那么,因此,发明人试图改进本文中的重新铸造技术。
如上所述,假设比特币区块链上每天有1000亿Txs,具有1000个交易历史的令牌将携带大约1MB的历史。当令牌单元的接收者验证令牌单元的真实性时,将使用Merkle证据检查其完整的交易历史。随着交易历史变长,验证检查的负担也越来越大。因此,通过涉及返还令牌、重新铸造令牌和重新发行令牌,重新铸造重置交易历史。如图所示,具体细节,例如令牌的序列号和值可以“重置”并重新发行。执行这些重新盖章或重新铸造操作的交易可由签发机构执行。
图20b、20c和20d显示了使用交易来执行更新操作,其功能是在更少的交易中重新铸造和复制令牌。为了防止用户欺诈性地用不正确的信息标记他们,任何重置其历史的令牌更新也必须包括“铸造记录”。
发行人可能不具有删除令牌的能力,并且发行人将铸造记录创建为可花费的UTXO。当令牌需要从流通中删除时,铸造记录可以花费在包含过期令牌的详细信息的新输出中。这样,当用户对令牌的线性历史进行验证检查时,他们可以看到令牌是否仍然是当前的。用户还可以验证交易(节点)边缘上的签名检查。在令牌更新期间,发行者的证书可以花费在新的输出中,或者根据特定令牌账本的规范,可以将发行机构的签名包含在用于复制令牌的更新交易中。
在另一个例子中,发行人可以发布有关从流通中移除具有某些属性的令牌的信息,并提供相同值的替代令牌给用户,所述用户将过时的令牌转移回发行人控制。这种方法允许令牌继续自然流通,允许人们将旧版本作为收藏品或简单地作为未触及的储蓄持有,而不会对令牌值造成风险。
在另一实施例中,令牌可以花费到交易中,然后“刷新”,重新发行或在同一交易内更新,如图20b所示。在这种情况下,代表正在重新铸造的令牌的相同聪将重新用于创建相同的令牌,具有类似于铸造记录的刷新引用,以便更新令牌。刷新引用由根节点、账本父母节点或签署交易的发行人证书中至少一者来启用,通过启用令牌的认证来验证线性交易返回到刷新引用,所述签名的功能类似于铸造交易。额外地或可选地,更新令牌的交易可以由发行人/机构的代理人执行,其可以委托给节点或矿工,所述节点或矿工持有首次交易、令牌定义交易和令牌发行交易的数字签名中至少一者,所述签名被创建为可花费的UTXO。
此方法保留相同的令牌存在,同时最大程度地减少处理它们所需的开销。开销最小化是因为刷新可以在单个交易中实现并且避免了创建熔融记录和/或与完整铸造交易相关的其他相关交易成本的需要,例如,新令牌创建或重新铸造。在刷新交易中,线性历史被重新设置,以便刷新令牌的认证只需遵循线性交易历史返回到最近的刷新交易。
令牌“熔化”操作、重新铸造操作或令牌“刷新”(更新)操作可以由如下执行(i)由发行人,(ii)由节点运营商,或(iii)由已获得发行人许可和授权的节点运营商。执行令牌熔化、重新铸造或刷新不仅可以重置线易历史,还可以处理被“锁定”或无法使用的令牌,所述被“锁定”或无法使用的令牌是由于交易格式不正确,或者甚至是由于通过持有令牌的一方失去对花费令牌所需的密钥的控制。
如果令牌的重新铸造或刷新(更新)由节点运营商处理,则每次节点在代表区块链的持续的工作证明的链中发现一个新区块时,该节点都会以一些比特币的形式获得奖励,这些比特币作为网络补贴分发,外加在区块中每笔交易中支付的交易费用。节点将这些令牌分配给称为“Coinbase”的交易中的一个或多个输出,其是区块的默克尔树中的第一笔交易。节点操作员可以根据需要自由地将这些聪分配给任意数量的输出。在建立Coinbase交易时,发行人将有可能与矿工合作以便在区块的Coinbase交易中直接发行令牌,包括本文所述的铸造记录或刷新记录。
在另一个例子中,发行人可能与比特币节点运营商具有合同,比特币节点运营商可以通过将令牌直接转移到融化交易中来将令牌从流通中移除,从而有效地将令牌和底层货币从用户的钱包转移并且回到发行人。图20c展示了coinbase铸造交易,其中,节点的奖励为10亿聪,coinbase记录为零聪,并且四个令牌与铸造交易一起输出,每个令牌的价值为100聪,使得节点留有999999500聪的区块奖励。
交易费用通常以记录交易的区块链的相同加密货币支付。但是,令牌用户可以使用令牌化资产支付交易处理费用,例如,代表法定货币的项目的令牌,其中,与发行人有合同关系的区块获胜矿工可以使用从coinbase奖励中提取的聪重新发行这些令牌。图20d显示了一个例子的实施方式,其中,用户转移三个价值为$6.20的令牌,并花费一个价值为$0.01的令牌(也即SN.AB04)到错误输出中。获胜的矿工可以在coinbase交易中创建重新铸造记录并通过交易费奖励自己0.01美元的令牌。
单次使用/子令牌
将更详细地描述动态令牌(dT)和可以从动态令牌派生的子令牌的特定方面,例如,一次性使用的令牌(suT)和二阶令牌(soT)。
如上所述,静态令牌(sT)以当前状态存在于未花费的交易输出(UTXO)中。为了转移或以其他方式使用令牌,必须将它们从UTXO集中的现有位置花费到新的接收脚本中。静态令牌类似于法定纸币,例如,1美元钞票,它是带有唯一序列号的可替代单位。当使用静态令牌时,无法拆分或组合它们,即使是小交易也需要大量使用令牌。这被视为使用此类静态令牌去扩展系统超出小众使用案例的障碍。因此,动态令牌(dT)给静态令牌提供了替代和补充的令牌。
动态令牌的存在方式与静态令牌相同,因为它们是在铸造操作中铸造的,在铸造操作中,定义了诸如ID/序列号和计价单位等属性。动态令牌可以用与静态令牌对应的面额定义。令牌可用于持有动态令牌值,该值对应于令牌中持有的聪值的函数,该函数跟踪输出中持有的令牌单位数。令牌的历史存储为一系列可以线性链接的输入输出对。
可选地,可以通过将钥匙串与一系列交易中混合的输出进行匹配来链接令牌的历史。密钥链是私有密钥的确定性的链,以确定性的方式由根密钥派生。密钥链用于通过跟踪和保护密码、帐号和其他机密信息来管理密码。App可用于管理和查看密钥链。它作为一个安全和加密的存储库。
当参与者同意交换其输出位置以混淆其身份时,这会受到影响,其中,该参与者在同时交换子单位或全部金额超过两个动态令牌的交易中。每个用户的钱包将在交易中使用SPV记录以及密钥链或身份令牌,其持有密钥的组合,该密钥的组合需解锁由钱包持有的每个UTXO。因为钱包知道它使用什么脚本来锁定令牌,它可以很容易地识别包含其动态令牌的输出,即使它在交易由另一方完成之前无法寻找它。
动态令牌
动态令牌可以以类似于静态令牌的方式铸造,因为为了持有一定数量的计价令牌它们必须由发行者创建。除非通过疏忽或故意行动,否则令牌不能由其用户创建或销毁。
在创建动态令牌期间,发行人执行具有铸造记录的铸造交易。令牌被定义为在交易中创建,其中,每个新令牌都在没有相应输入索引的输出中定义,并且第一个输出是应用了发行人正确签名的有效铸造记录。所有令牌化的基本单位必须在动态令牌铸造操作中创建,以便在动态令牌之间转移。
这些创建或铸造操作的输出可以创建为一次性使用的动态令牌,创建为在某些后续交易中与现有动态令牌一起使用。通过这种方式,一次性使用的动态令牌充当将聪值分配给其他动态令牌的机制,同时避免不必要地创建不打算进一步使用的动态令牌的盈余。
图25显示了一个铸造交易,其中,创建了三个动态令牌。每个令牌都创建有“零值”数量。在具有相同发行人和基本令牌值的令牌中,零值数量可能不同。零值必须记录为令牌铸造操作中的参数。在图25中,每个发行的动态令牌具有1000聪的零点值。理想情况下,动态令牌表示为具有零聪值的UTXO,以指示零令牌数量。虽然这在比特币协议中在技术上是可行的,但节点目前不支持此功能的实现,并且预计将在大约12个月内得到支持。
通过获得其“零点”值的聪并且将其从输出的聪值中减去,然后将结果乘以计价的令牌值,可以计算具有1000聪的零值的动态令牌的值。例如,如果面值为每聪1c的动态令牌包含5000聪,并且具有1000聪的零点值,则令牌的值计算如下:值=(5000-1000)x1c=4000x1c=$40.00。
动态令牌可以以任何值计价,但只能用于具有来自同一发行人的令牌的交易,该交易以相同值计价。
除了由底层区块链协议和共识网络施加的限制之外,交易中使用的动态令牌的数量没有限制。因此,只要交易正确地平衡每个动态令牌的聪值,单个动态令牌交易就可以不受限制地将值移给/移出多个动态令牌。换句话说,所有相关动态令牌单位的Vin总和和Vout之和必须相同。交易成本不被考虑在内,因为它们是令牌转移机制功能之外的。
图26显示了Vin和Vout之间的平衡,其中,交易将300个单位的动态令牌(具有3000聪)从发行者移动到客户的动态令牌(具有1000聪)。在交易中,从发行人的动态令牌中扣除300聪,并将300聪添加到客户的动态令牌UTXO中。Vin的总和是4000聪,并且Vout的总和是4000聪。这种转移可以被视为更大交易的子元素,其可以包括额外的令牌输入和输出以及未令牌化的比特币输入和输出。
发行人可以创建子账本,根据该子账本,多个子发行人被授权发行具有相同计价令牌值的动态令牌,并且只要有共同的父母发行人,这些动态令牌就可以一起用于交易。
也可以发行动态和静态令牌,这些令牌可以可替代地相互互换。例如,固定值为100个单位的静态令牌可以在交易中交换,该交易使用相同的令牌类型将100个单位应用于动态令牌。通过这种方式,动态令牌可用于管理小额转账,而静态令牌可用于携带更大量的令牌,而无需大量使用比特币聪来管理系统中所有令牌的全部值。
图27显示了用户在交易中使用1000个单位的静态令牌将1000个单位转移到发行人的控制之下,以换取给其动态令牌的令牌值增加1000个单位。在这种情况下,Vin的总和为14600聪,Vout的总和也是14600,因此交易是平衡的。
在使用动态令牌的交易过程中,各方必须为每个令牌分配新值,这些值代表正在使用的令牌的更新余额。动态令牌输出必须平衡到聪才能被视为有效。以这种方式使用动态令牌允许它们与其他类型的令牌混合,例如静态令牌、使用其他令牌协议创建的令牌和未令牌化的比特币。
图28显示了从用户到发行者的500个令牌单位的交换,以换取不可替代的令牌,例如,收藏卡或用于访问资源的访问代码。和以前一样,Vin中的聪总和与Vout中的聪总和平衡,即交易双方各22500聪。需要注意的是,除非特别提及,与令牌无关的输入和输出,例如与费用相关的输入和输出,不会在例子中考虑在内。
图29显示了Alice(购物者)和BobMart(零售店)之间的交易流程例子,其中,交易由双方签名并且双方都必须验证所提供的交易对手令牌是正确铸造的动态令牌。这个例子说明了可替代的交换令牌可以用来持有可交换为商品或服务的令牌单位。动态令牌可以与静态令牌一起使用以创建多令牌交易。BobMart是家大型超市,提供店内设施,如药店。
BobMart有一个忠诚度计划,该计划分发少量与购买相关的“忠诚度”令牌单位,并且使用动态令牌来持有和分发所述令牌单位给购物者。购物者通常会积累大量小而多样的金额,因此为所有交易创建和管理静态令牌到最小面额将是低效和不切实际的。在图29的例子中,Alice从BobMart购买了价值99美元的杂货并且在她的动态令牌中获得了99忠诚度积分。
在BobMart向Alice提供忠诚度积分的过程中,会发生许多操作,包括:
1.Alice准备并发送她的动态令牌UTXO详细信息和返回脚本,该返回脚本详细说明将比特币脚本用作输出,所述输出用于将Alice动态令牌给到Bobmart,其可以通过Bobmart可以访问的电子邮件进行。
2.BobMart有接收者钱包来提供忠诚度积分服务并使用令牌验证服务来验证Alice的令牌详细信息。令牌钱包验证可以由BobMart或第三方支持服务来执行,并用于确认Alice的令牌是正确的令牌类型,例如Bobmart忠诚度令牌。
3.BobMart的接收者钱包构建了交易,该交易使用Alice的和他们自己的动态令牌,该动态令牌将正确satoshi余额支付给相应的令牌。BobMart使用SIGHASH_ANYONECANPAY|SIGHASH_ALL签署自己的动态令牌。BobMart可以在交易中附加费用输入和支付零钱。然后,BobMart将部分签名的交易发送回Alice进行最终签名,并将交易发送回Alice的钱包。
4.收到BobMart建立的交易后,Alice(a)检查BobMart令牌的有效性,或使用第三方支持服务进行检查,然后(b)检查所呈现的交易并应用她的最终签名。
5.应用签名后,(a)Alice可以将交易传输到持有账本的网络,或者(b)Alice签名并将交易发送回BobMart,其会将交易传输到持有账本的网络。
6.铸造交易可以包括静态令牌、动态令牌或两者的组合。如果静态令牌的令牌值以与动态令牌相同的令牌类型计价,则它们可以结合使用而不会对令牌账本产生任何影响。静态令牌是可替代的,而动态令牌具有可替代的令牌单元。在实践中,当涉及大额购买时,例如假期或车辆购买,忠诚度计划可以使用静态令牌来交换大量忠诚度积分,而无需在动态令牌中捆绑大量比特币。当忠诚度令牌被花费时,大价值静态令牌可以与小面额动态令牌在相同的交易中花费以获得可替代的金额。
令牌验证可以由以下至少一项提供:令牌验证服务;扫描账本历史;以及共享/接收完整的交易历史以准备转账。
图30显示了Alice希望在BobMart商店中使用11100个忠诚度积分的交易。静态和动态令牌都不适合单独使用。因此,Alice使用10000点静态令牌和1000点静态令牌的组合并且将它们与来自动态令牌的100聪一起花费以达到Alice希望使用的确切数量。在交易中,BobMart的动态令牌是Vin1,并且Alice的动态令牌是Vin2。静态令牌占据了Vin3和Vin4,而Vin5是用于支付采矿费的未令牌化比特币。静态令牌(价值11000点)被支付到BobMart的持有钱包中并且可以回收或重新分配,而100点则从Alice的动态令牌转移到BobMart的动态令牌。
静态令牌可以用最小面额的令牌单位或点数铸造;但是,这将导致比特币的使用效率降低并且降低交易的效率,并最终降低账本的效率。
一次性使用的子令牌
为了优化本发明的令牌和系统的使用,公开了另外的令牌,即子令牌。静态令牌适用于大型或大块交易,并且动态令牌提供了一定程度的灵活性。在进一步的例子中,可以从动态令牌创建一次性子令牌(suT)形式的子令牌以创建一次性可替代令牌,该可替代令牌可以数字的或物理的方式转移到使用相同类型的令牌单元的动态令牌。一次性子令牌值可以设置为任何值,最高可达原始动态令牌中持有的令牌单位的最大数量。
一次性动态子令牌是通过拆分动态令牌中持有的聪来创建的。通过创建它的动态令牌,一次性子令牌具有可追溯回到铸造操作的历史。这可以通过它与创建它的动态令牌的关系来实现。通过从动态令牌(或多个令牌)支出到具有一个或多个额外输出的交易中来创建一次性子令牌。动态令牌必须用于交易中,该交易接收或“拾取”来自子令牌的输出,其可以通过脚本以最小的复杂性启用,这可以降低总体成本。接收一次性子令牌的动态令牌必须具有相同的基本值,即它们必须在一定数量的基础令牌单位和底层加密货币之间共享相同的相关性。
一次性子令牌持有UTXO。当花费所述UTXO时,必须全额花费,从而将所有加密货币单位(例如聪)转移到动态令牌中。
聪可以在同一笔交易中花费到新的一次性动态子令牌中,并且基本令牌协议(如BSV协议)将其视为两个独立的操作。第一个操作发生在输入端,动态令牌所有者在第一个操作中声明一次性子令牌。第二个操作发生在输出端,动态令牌所有者在第二个操作中创建新的一次性子令牌。
在一些例子中,铸造操作中的令牌类型描述可包括一个权限(例如通过数据标志的方式),用来将动态令牌拆分为一次性令牌,并且使用该令牌的钱包软件将知道如何创建和使用一次性令牌。
在一次性子令牌的一个例子中,它被“铸造”为子令牌,该子令牌通过引用它在交易中的输出来引用父母动态令牌。可以在缺少输入的情况下识别子令牌的铸造。此外,脚本可用于识别子令牌,例如,类型、它有权访问的资源、价值、铸造交易的证据、提供给第三方的权限。通过将动态令牌中包含的一些聪花费到新输出中来创建一次性子令牌。动态令牌持有者可以使用令牌发行人在铸造操作中授予他们的权利来执行此操作。在一些例子中,这可能是一个行政应用的权利,其被钱包所理解,但未经比特币共识网络验证,但在其他例子中,它可以是函数,该函数实现OP_TX式回溯签名检查。
图31显示了从动态令牌创建一次性子令牌的交易。Vin0是动态令牌中的500聪,输出在Vout0上接收200聪零钱的所述动态令牌和在Vout1上价值为300聪的一次性子令牌之间进行分割。一次性子令牌继承父母的令牌属性,使用其线性历史回到铸造操作来确定令牌类型和面额。
图32显示了一个交易,其中从具有1500聪的Vin0值的动态令牌创建四个等值的一次性子令牌,其在Vout0之间拆分,其中,300聪返回到Vout0中的动态令牌,而300聪在Vout1、Vout2、Vout3和Vout4上的每个一次性子令牌上输出。每个一次性令牌都继承父母令牌的令牌属性。
为了被使用,一次性子令牌必须在与另一个动态令牌的交易中使用。在实践中,用户可以积累多个一次性子令牌,每个子令牌可以持有不同的值,并选择在哪个交易中花费哪一个。
图33显示了一个交易,其中用户从他们的钱包中从四个一次性子令牌中选择两个一次性子令牌,并使用他们自己的动态令牌在交易中花费该一次性子令牌以增加其动态令牌中持有的聪的值。在此例子中,Vin0具有1500聪的初始值,具有值为300聪(Vin1)和40聪(Vin2)的两个一次性子令牌被添加到动态令牌中从而动态令牌的Vout0值为1840聪。
图34显示了一个交易,其中,用户从他们的钱包中从四个一次性子令牌中选择两个一次性子令牌,并将该一次性子令牌花费到他们钱包中两个动态令牌之一中-这笔支出发生在使用他们自己的动态令牌的交易中以增加该动态令牌中持有的聪的值。在此例子中,Vin0具有400聪的初始值,具有值为300聪(Vin1)和40聪(Vin2)的两个一次性子令牌被添加到动态令牌中使得动态令牌的Vout0值为740聪。钱包中有两个或多个动态令牌的用户可以选择在签署交易时使用哪个动态令牌。用户不仅可以选择使用哪个动态令牌来转移资金,用户还可以选择哪个动态令牌在交易期间接收资金。
图35显示了一个交易,其中用户从钱包中的四个一次性子令牌中选择两个一次性子令牌,并将该一次性子令牌花费到钱包中的两个动态令牌之一中。与图33和图34相比,使用自己的动态令牌进行交易时发生的支出不会增加该动态令牌中持有的聪的值。在此例子中,Vin0具有900聪的初始值,其派生自动态令牌,以及具有值为300聪(Vin1)和40聪(Vin2)的两个一次性子令牌。交易中总共输入了1240个聪,这些聪以新创建的一次性子令牌的形式输出在Vout0(30聪)和Vout1(1210聪)上的原始动态令牌中。Vout1上新的一次性子令牌的值可以使用定制数量的基本令牌单位来创建,所述定制数量的基本令牌单位与动态令牌的基本令牌单位直接相关的,并且具有用于特定目的(例如购买)的整数值。
图36显示了一次性子令牌可以与Vin2(1200聪)处的动态令牌相关联并且在交易中识别为一次性子令牌。在交易中,Vin3(220聪)和Vin4(90聪)处的两个一次性子令牌由Vin2处的动态令牌添加到交易的值输入中。此交易的目的是将Vin2处的动态令牌的值花费到接收动态令牌中,其在Vin1处有输入(300聪)。然后,接收动态令牌被分配聪(1440聪),这些聪被添加到在Vout1处的接收动态令牌的现有聪(1720聪)中。聪的余额作为支出动态令牌的找零返回,其在Vout2(70聪)处支付。200聪的未令牌化比特币在Vin0和Vout0之间被花费以支付交易成本。
例如,图36中的一次性令牌可以被花费在脚本中,该脚本使用铸造操作中勾勒的指定格式来列出哪些输出是一次性子令牌,以及聪是源自哪个动态令牌输入。
在一个例子中,这可以是以下格式:
<2>2DROP<pubkey>CHECKSIG
<2>表示此一次性令牌的父母动态令牌是在同一交易中的输入号2。这与铸造新输出的功能相同,除了子令牌从父母令牌继承其100%的基本令牌详细信息。
2DROP操作码用于删除数字2和由scriptSig输入的附加数据项。这是:
<signature><4>
2DROP删除2和4,留下<pubkey>和<signature>以让<signature>CHECKSIG进行评估。
使用此链接协议以及scriptPubKey和scriptSig的任何可能排列的例子是可能的。例如,可以改动Pay to Public密钥哈希来包括这个连接协议,这种改动是通过添加
<3>2DROP
到如下给出模板的前面:
<3>2DROP DUP HASH160<publicKeyHash>EQUALVERIFY CHECKSIG
这表示一次性令牌从输入3中的动态令牌接收其动态聪。用完后,所需的脚本签名为:
<signature><pubkey><5>
这表示输入5中的动态令牌已拾取令牌。
这些脚本通过例子提供,并包含在令牌交易的输出脚本中。在验证释放令牌的公钥(即花费UTXO)之前,可以在脚本中放置指令,以便脚本施加有条件的传输。在接收和/或查看脚本后,钱包或配置为处理令牌交易的设备可以执行必要的操作的至少之一以符合由脚本确定的要求/指令,签署UTXO并将脚本写在交易输出上。
二阶子令牌
一次性子令牌可以在没有任何额外信息或限制的情况下发行。
为了实现条件、限定、限制或与其他令牌的关系,可以在二级把子令牌添加到其他脚本。因此,在另一个例子中,可以从动态令牌创建子令牌并且子令牌用作“二阶”子令牌(soT)。如果一次性子令牌没有提供附加功能的附加脚本,则可以将其描述为“一阶”令牌。换句话说,由一阶的一次性子令牌控制的资产或资产的一部分与父母动态令牌相同。
二阶子令牌可以在一次性令牌的规则内发行,即它只能使用一次—但是,这个二阶子令牌类似于一次性子令牌,但具有额外的功能,该额外的功能可以实现条件、限定、限制或与其他令牌的关系。创建二阶子令牌时,由发行人的协议应用于一次性子令牌的规则同样会被保留。换句话说,管理一次性子令牌使用范围的协议由二阶子令牌继承或继承。
二阶子令牌有效地将聪包装在辅助令牌函数中,该聪有效地表示基本令牌的单位的数量。换句话说,二阶子令牌对所述令牌中持有的聪的使用施加限制或控制。通过比较的方式,(i)一次性子令牌包含聪,该聪是令牌值的函数,并且这些聪可以按照本文所述进行花费,而(i i)二阶子令牌还包含聪,该聪是令牌值的函数,并且这些聪可以如本文所述使用–但是,当令牌持有者根据预定条件使用二阶令牌时,应用于二阶令牌的进一步属性或条件可实现附加值(例如访问资源)解锁。例如,访问附加值或进一步资源的条件可以包括在特定商店花费一定数量的二阶令牌。动态令牌的状态可以确定其与创建子令牌相关的功能和/或权限级别。在一个例子中,可以创建具有功能的二阶子令牌并且使用任意数量的底层令牌面额。例如,可以将二阶功能应用于一次性子令牌以从动态令牌创建二阶子令牌。二阶子令牌在交易中使用时可以由动态令牌花费,或者至少底层令牌面额的数量的一部分可以被花费。二阶功能赋予二阶子令牌的持有者特殊权利,允许用于诸如在基础令牌层中作为小价值动态令牌持有的折扣券之类的东西,其代表静态或固定值的二阶子令牌,或者在零聪二阶子令牌的情况下,将其值保留为没有底层比特币值的静态令牌。要使用二阶静态子令牌,它可以简单地被重新合并其聪的动态令牌所花费,或者在零聪子令牌的情况下,花费令牌而无需将其重新花费出去到新脚本,或将其花费到FALSE脚本或FALSE RETURN脚本。
举例来说,图37a显示了交易,其中使用动态令牌创建两个二阶子令牌。动态令牌在Vin0处以1500聪的值开始,在Vout0处返回给自身1480聪的找零,并创建两个新的输出Vout1和Vout2,每个输出具有10聪的值并且与创建它们的动态令牌相关联。二阶子令牌对于基本令牌协议而言看起来像一次性令牌并且必须相应地使用以防止在一阶令牌系统中的令牌失效。但是,这些二阶子令牌是使用在其脚本中的其他数据创建的,这可以提供增加值。
举例来说,一次性子令牌或二阶子令牌可以在主要发行者的系统或第三方的系统下使用,并在主要令牌层中被识别为具有相同值。例如,如果这些子令牌在主要发行者的系统之外使用,它们将恢复为其原始令牌化值,并且仅被识别为所发行的一次性子令牌。因此,在发布二阶子令牌的系统内使用二阶子令牌是有益的,因为只有在该环境或系统中,脚本中的附加信息才能提供辅助值或者功能。
例如,可以将一次性子令牌配置为在24小时内提供对资产的无条件访问,例如,在1天的试用期内免费访问Netflix。负责令牌的发行人或机构(例如Netflix)或其管理令牌的代表决定,如果满足预定条件,则可以使用标准一次性子令牌来启用额外的资产访问,其中,所述额外的资产访问作为二阶子令牌实现,例如Netflix提供对其平台的免费试用期7天,条件是允许广告嵌入到可查看的媒体中。如果不满足条件,则令牌将恢复为其基本功能,即一次性子令牌。继续以Netflix为例,如果用户接受二阶子令牌,但未能通过停用广告来遵守条件,则二阶子令牌将恢复为具有不同访问权限的一次性子令牌。可以应用或实现二阶功能以应用任何令牌(包括子令牌)的条件使用。一次性子令牌是动态令牌的有限使用部分。
图38显示了涉及第一和第二动态令牌的两笔交易,其中,三例二阶子令牌是从第一动态令牌“微铸造”出来的。每个子令牌都可以作为物理子令牌颁发。可选地,在被花费到第二笔交易中之前,子令牌可以保存在购买者的数字钱包中。子令牌可以保留为“组”。在每种情况下,令牌都可以使用代码(例如QR码)来兑换代金券。
更详细地说,在第一个交易中,来自第一个动态令牌的Vin0(3011聪)用于创建所述三个子令牌-即(i)二阶静态子令牌,具有1聪的值,(ii)具有5聪的值的二阶一次性子令牌,以及(iii)具有5聪的值的二阶动态子令牌–其输出分别为Vout1,Vout2和Vout3。剩余的聪作为Vout0(3000聪)的第一个动态令牌的找零发行。为了提供上下文的例子,交易1中的第一个动态令牌由一个休闲中心管理,该中心具有具有数字安全条件访问的游泳池,例如出于安全目的。需要注意的是,此应用程序中的所有令牌和子令牌都可以用于提供和/或表示访问或获取资源的安全手段。第二种动态可以由同一休闲中心管理,或者可以由同一组内的休闲中心管理,例如英国的大卫劳埃德(RTM)休闲中心。
作为固定价格套餐报价的一部分,休闲中心使用动态令牌分别生成优惠的子令牌,举例来说,其为:(i)对一场游泳课程的固定访问权限,该课程时间可转让但仅限于在发行休闲中心游泳或使用相同类型的动态令牌的另一个休闲中心游泳,正如根据Vout1,(ii)用于销售游泳设备的自动售货机的积分,所述积分仅限于在所述休闲中心的单次销售,正如根据Vout2,以及(iii)对五个单独的游泳课程的访问权限,一次可以兑换一个直到没有剩余,正如根据Vout3。
每个子令牌可以单独管理,或者可以作为一个组进行管理。为了简化起见,它们在图38中显示为一个组进行管理,其中,每个二阶子令牌都用于在Vin1、Vin2和Vin3处的第二交易。由休闲中心管理的第二动态令牌在Vin0处输入4000聪,并且来自Vin1,Vin2和Vin3的基本令牌单位被纳入第二动态令牌。
子令牌的持有者不会赎回对一次游泳课程的固定访问权限,因此在Vin1处的相同聪被花费到一个新的二阶静态子令牌中以在Vout1输出等价物,这在令牌基础层中是可能的,因为二阶子令牌协议将其识别为相同的二阶动态令牌。这类似于客户将对一个游泳课程的固定访问权限保留到以后的日子。如果以数字方式持有,该子令牌将被链接到客户自己的动态令牌。
Vin2处的二阶一次性子令牌输入在第二个交易中被花费,其中,输出与FALSE脚本一起使用以正确终止所述令牌。来自所述令牌的聪被第二个动态令牌吸收。Vout2终止。这类似于客户使用子令牌从中心的自动售货机获取物品,其中,对自动售货机的“付款”被花费到属于中心的动态令牌中。
Vin3处的二阶动态子令牌首先被第二个动态令牌吸收。此后,只有1聪花费到第二个动态令牌,而其余4聪则在二阶动态子令牌的进一步迭代中输出。所述进一步迭代不是新的,也不是重新铸造的,使用基础令牌协议,该子令牌被分配新的状态和/或位置,其中它在Vout3处被分配一个新的UTXO。之所以能够做到这一点是因为所述二阶动态子令牌功能启用了可变的值,这识别出该子令牌提供了权限让其在具有值时继续。当值达到零时,令牌将不复存在。这类似于客户使用令牌访问一个(总共五个)游泳课程,花费1聪给第二动态令牌,并且其余四个游泳课程保留在二阶动态子令牌中。
如同所记载的以及在图38中所显示的,从二阶子令牌到第二个动态令牌花费了6个聪,该第二个动态令牌在Vin0处有4000聪并且在Vout0处有4006聪。在重新分配和处理为另一种格式之前,必须将每个二阶令牌合并到动态令牌中。换句话说,该图显示了当输入动态令牌时,它收集正在使用的一次性令牌,然后在输出中将它们重新定义为新的一次性令牌。箭头显示了动态令牌输入控制所有二阶令牌。二阶令牌来源于动态令牌,并且,因此在重新发行这些令牌之前钱包必须处理和吸收这些令牌。
交易费用由第一个动态令牌处理,该令牌在Vin4处贡献了3506聪,在Vout4处收到3500聪。在Vin4和Vout4之间的矿工消耗了6聪的数量。
所有这些操作在基础令牌层协议中都是有效的,但允许在已经令牌化的基础层上构建一套全面的二阶系统,或n阶系统。
在一个例子中,商家可以使用货币的“一次性子令牌”功能向购买者发行代表未来折扣的二阶子令牌,所述商家以发行到动态令牌的货币从购买者那里收取付款。商家可以使用动态令牌来实现这一点,其中,每个聪代表商家工作场所中使用的通用货币的1基本单位。当购买者访问商家并付款时,他们的钱包会收到少量令牌化货币(例如,10c),该货币已被令牌化以代表一个忠诚度令牌。该购买可以在任何商店中将此忠诚度令牌用作10c。可选地,如果购买者返回给同一商家并与该商家兑换10个二阶子令牌,那么商家将提供比1美元价值更大的东西,例如,一杯价值为4美元的咖啡。
二阶子令牌可以使唯一属性应用于任何预颁发的令牌,而不会影响基本令牌协议。这些子令牌可以在没有发行人许可的情况下应用并且也不需要创建单独的子账本。在一个例子中,学生可以获得二阶子令牌以通过在线测试。在通过一定数量的在线测试以进入下一个在线学费级别后,积累的二阶子令牌可以一起使用来获得所述学费。在另一例子中,连接到具有动态令牌的医疗保健系统的医疗设备可以监测患者的健康状况,例如,测量血压。随着每次测量,可以从动态令牌生成二阶子令牌并提供给患者,所述子令牌具有与患者相关联的辅助信息、结果和测试时间。根据需要,患者可以使用二阶子令牌来创建血压控制药物的处方,其中二阶子令牌利用测量的时间、测量和频率来确定(i)要开的药物或(ii)自动安排与医生的预约。在另一个例子中,每年必须为车辆获得的机动车测试证书与二阶子令牌一起颁发,该子令牌由执行测试的车库持有的动态令牌颁发。二阶子令牌是车辆通过测试的证明,这是使车主能够获得车辆保险所必需的。但是,如果车主从同一个车库获得一组三个二阶子令牌,那么这些令牌可以组合并交换为免费服务。在进一步的例子中,教育学院或测试机构可以持有动态令牌,该动态令牌向通过测试、考试或模块的学生或设备发行二阶子令牌,这些测试、考试或模块表示他们在技术上可以安全地实践或操作。拥有从大学或测试设施混合获得的十个二阶令牌提供了访问权限/许可以操作技术的或安全关键的操作。但是,如果所有测试或检查都在同一设施中进行,则只需要七个二阶子令牌即可获得等效的访问权限/许可。
在此的每个令牌例子中,建立令牌的过程从以下至少一个开始:首次交易,建立令牌背后的权限,通常在根节点中;令牌定义交易,用于定义要创建的令牌;和令牌发行交易,其中令牌被转移给用户。
在进一步的例子中,实体创建提供黄金访问权限的令牌,并且在此例子中,1000公斤黄金最初由单个动态令牌持有。该过程首先建立一个根节点,该根节点包括将发行的实体的数字身份,和/或批准令牌和令牌分配的机构的签名,其可以包括,例如,在其金库中持有黄金的银行的数字签名和批准黄金令牌化的政府机构,例如英国的金融服务管理局(FSA)。在这个例子中,持有黄金和发行令牌的银行有提供传统银行服务(如保险箱)的高街分行。
在首次交易中建立根节点之后,进一步的交易定义动态令牌和/或发行令牌供银行使用。可选地,令牌的定义和动态令牌的发行可以发生在单独的交易中-然而,每个都是相关的并构成写链的一部分,即与根节点的线性交易历史。
动态令牌定义为具有1000公斤黄金的访问权限,这与基础加密货币的数量成正比。例如,动态令牌可以访问面额为1克的1000公斤黄金,这样1000公斤黄金由1000000聪表示,并且动态令牌由底层加密货币的UTXO保护。
动态令牌的一阶值是1000000聪确定对1000公斤黄金的访问权限,并且子令牌可以从其衍生出来。每个子令牌还有一阶值,因为它的价值是以1g单位的倍数获得可替代数量的黄金。持有黄金并负责令牌的银行同意以银行场所内的保险箱访问权限的形式提供二阶功能,条件是对至少50克黄金的访问权限同时保存在子令牌或子令牌集合中。
当第一个用户购买10克黄金的访问权限时,银行使用其动态令牌来创建交易:交易的输入是1000000聪,由银行签名;交易的一个输出创建子令牌,该子令牌具有10克黄金和10聪的访问权限,其可以通过用户的签名访问;并且另一个输出将999990聪返回给银行持有的动态令牌。
当第二个用户购买对90克黄金的权限时,银行再次使用其动态令牌来创建交易。此示例如图37b所示,它显示了定义令牌交易输出的脚本可以保护对不同资产的访问,如下所述。图中每个级别都显示取决于下面的级别/顺序,尽管对资产的条件访问可以基于不同的依赖关系,例如多个条件,并且下面的示例提出了一个说明子令牌如何可以具有不同的访问级别的非限定性例子。
交易的输入是999990聪,由银行签名。交易的一个输出创建了子令牌,该子令牌具有对90克黄金和10聪的访问权限,该90克黄金和10聪可以通过用户的签名访问。银行还以对银行场所内保险箱的访问权限的形式给所述子令牌提供二阶功能。二阶功能是通过创建令牌交易输出来实现的,该输出定义了具有对保险箱条件访问权限的所述子令牌。脚本中实现了不同级别的功能。在基本级别,子令牌的脚本控制对90聪的访问权限,而与90聪关联的所述脚本被隔离在脚本的基本子部分中,并隐喻地“包装”在脚本输出中。在一阶级别,输出脚本包括脚本的一阶子部分,该一阶子部分确保了对90克黄金的访问权限,并且这也被二阶级别的脚本“包装”在脚本输出中,该二阶级别的脚本能够有条件地允许访问保险箱。另一个输出将999900聪返回给银行持有的动态令牌。
持有所述子令牌以确保访问90g的用户可以在所述银行出示其子令牌,并以常规方式在常规令牌交易中转移对至少1g黄金的访问权限,如本申请所述。额外地或者可选地,用户可以向控制对安全房间和保险箱的访问权限的安全系统出示他们的令牌,其中,安全系统读取令牌的输出脚本并读取二阶级别的脚本和用户以证明他们具有解锁二阶脚本的签名,并在确认后允许访问。
如果用户将80克黄金的访问权限转移回银行,那么该令牌转移交易的输出将删除二级脚本,以便他们无法再访问他们的保险箱。银行可以要求用户在交易前清空该保险箱。由二阶级别的脚本实现的功能可以限制为使用资源,该资源由管理动态令牌的实体控制。由二阶级别的脚本实现的功能可以是有时间限制的和/或一次性使用的。
二阶功能可以通过从动态令牌创建的子令牌的脚本来实现。来自交易输出的脚本施加条件,以便在不遵守所述条件时撤销附加功能。
在上下文中,每个令牌在其持有的加密货币中都有一个基本值,该价值由相应的UTXO保护,而“第一”阶令牌保护资产,如本文教导的非限制性令牌例子所表示,即在建立交易数据库中使用的静态,动态令牌或在控制系统中使用的令牌。二阶功能可以应用于任何一阶令牌以提供对另一个资产或资源的额外和/或有条件的访问权限。当二阶功能被撤销或过期时,令牌将回到其一阶状态。当一阶功能被撤销或过期时,令牌将回到其基值。
可以向令牌添加任意数量的函数,以便可以在第n阶令牌交易的输出脚本中为第n阶订单令牌提供附加功能和/或资产访问权限,该第n阶令牌交易创建了第(n+1)阶令牌。当第(n+1)阶功能被撤销或过期时,令牌将回到它的第n阶条件。该功能可以在脚本的层中实现,其中,基本级别控制对底层加密货币的UTXO的访问权限,而一级脚本控制对资产的访问权限。脚本的更多层提供对更多函数的有条件的访问权限。这些层可以嵌套,并且一个或多个功能以持有资产为条件。
具有多个级别的脚本(因此具有多个函数)的令牌可用于访问由令牌脚本启用的任何相应函数,尽管这是以每个可访问的高阶函数为条件的。换句话说,n阶函数依赖于(n-1)阶脚本的函数功能是否有效且可访问。使用图37b的“黄金”例子,对保险箱的访问权限取决于对90克黄金和90聪的访问权限。如果无法访问90克黄金,例如私钥暂时丢失,那么对保险箱的从属子令牌功能的访问权限也将丢失。
每个令牌级别和/或函数都在令牌交易输出的脚本中实现。如本文其他地方所述,相对于数据库管理系统(DBMS),脚本可以从令牌交易输出中取回并用于编译诸如数据库的记录。可以将DBMS配置为从该或每个子令牌第n阶级别取回令牌交易,如使用如图9b所示的单个兄弟令牌账本和单独的DBMS的例子所示。
附加功能可以应用于任何令牌和可控资产,并且不限于对黄金和/或保险箱的访问权限。
隐私+令牌
如上文涉及图29所述,发送方(Alice,爱丽丝)和/或接收方(Bob,鲍勃)通过扫描账本历史、使用令牌验证服务和/或从准备传输时共享的完整交易历史中确定有效性,可以验证账本上的令牌。
此验证检查爱丽丝的动态令牌是有效的并使用与验证静态令牌时相同的线性扫描技术。
但是,鲍勃没有收到爱丽丝的动态令牌。相反,各自的动态令牌由爱丽丝和鲍勃持有并且传输的是令牌单位。在交易中,爱丽丝将零钱(原始数额减去她花费给鲍勃令牌的数额)花费回给自己和鲍勃,同样将交易中的令牌单位花费到他们自己的动态令牌中,即回到他们自己(鲍勃收到他的原始数额加上从爱丽丝收到的数额)。用户参与交易不一定需要动态令牌的详细信息(例如序列号)。
在交易过程中,爱丽丝和鲍勃将可以看到交易发生之前对方的动态令牌持有的令牌单位的原始数量。
为了降低安全风险,动态令牌可以进出不同的Vin/Vout位置,即在由爱丽丝钱包管理的交易中进出不同的令牌,只要所使用的Vout的Vin也被相同类型的动态令牌所占用。如果爱丽丝有大量的令牌单位,例如,她的令牌中有10000000聪,那么这可能会给爱丽丝带来安全风险。安全风险是如此大以至于可能会暴露她的财富水平,例如,如果她的交易历史显示了她持有具有显著价值的动态令牌。通过交换输入和输出,鲍勃无法确定谁在早期交易中控制了资产,因此无法确定爱丽丝的财富水平,即爱丽丝可以控制哪些资产。
图39显示了一个例子,其中在铸造交易中创建了三个相同类型的令牌。这三个令牌都在后续交易中进行交易,并且每个令牌都从特定的Vin引用并被花费到不同的Vout,其中每个Vin-Vout对仍然带有直接的线性历史链接回到正确令牌类型的铸造交易。这种交易间支付技术可以通过删除线性历史链来增强交易过程中的用户隐私,所述线性历史链将用户与其令牌和/或该令牌中的值相关联。它可以为用户提供一种方式使其具有与静态令牌相同的验证的确定性。通过这种方式,可以混合大量动态令牌的输出以在进行交易时保护用户隐私。使用此技术需要最少两个动态令牌花费到交易中,并且必须始终具有与输入相同数量的动态令牌输出,并且该技术强制正确应用。
为了管理动态令牌,发行人可以对其使用实施限制和/或控制。这是通过在铸造操作中发布有关令牌使用的规则来完成的。这些指令描述了如何使用动态令牌,并可用于定义它是否可用于创建子令牌,它是否可取代某些其他类型的令牌(例如,一些特定的静态令牌相关联或以其他方式通过铸造或发行交易)或更多。用户钱包必须知道如何正确地解释和遵守规则。如果您不遵守使用规则,您的硬币可能会失效。硬币可以被修复,但这需要发行人的直接参与。要修复它们,使它们无效的用户必须能够将它们包含的聪传回发行人,或者发行人必须获得未令牌化的比特币,重新创建令牌并在重新铸造或刷新交易中将它们归还给用户。
例如,如果动态令牌使用不正确,无论是由于聪输出数量上的不平衡,还是将其花费到输出,该输出在其匹配输入索引处没有动态令牌,该令牌都将呈现为无效。如果发行人可以控制令牌,则可以将其花费到新的铸造行动中,该新的铸造行动销毁旧令牌并修复问题。但是,如果令牌不受发行人控制,则必须将其列入黑名单。当同一账本中令牌的其他用户请求列入黑名单的令牌的状态时,他们必须收到它是无效的响应。
为了让两个用户使用动态令牌执行交换,除了就像常规比特币交易一样的常规输出脚本,第一个用户需要额外的信息。也就是说,为了执行交易,在该交易中使用了两个动态令牌并且它们直接交换价值,各方必须各自知道另一方的动态令牌余额和UTXO以便他们可以签署交易。例如在图39中,如果动态令牌输出顺序被模糊处理了,这一点是尤其重要的。
在图29中解释了两个动态令牌一起使用的过程。
False脚本
为了便于输入和输出的自动排序,可以将用户的钱包配置为生成FALSE输出,该FALSE输出对应来自一次性令牌或一次性二阶令牌的输入。FALSE输出简化了账本上持有的交易和记录,因为它们创造了输入/输出对匹配的情况,因此每个令牌的历史都是可清楚地可识别的。当多个参与者各自向交易提交多个项目时,这尤其有用,这些项目需要输入/输出对匹配以维护令牌协议。
作为例子,图40显示了爱丽丝和鲍勃之间的交易,爱丽丝控制着Vin0处的动态令牌(1200聪),并且鲍勃控制着Vin4处的动态令牌(300聪)。爱丽丝还在Vin1(500聪)处和Vin2(220聪)处额外地输入了两个静态令牌,这首先归因于她的动态令牌将Vin0,Vin1和Vin2的总和取为1920聪。爱丽丝在鲍勃的动态令牌上花费1830聪并且该交易在Vout0处给爱丽丝90聪零钱。需要注意的是,Vout1和Vout2是具有零聪值的错误输出。鲍勃获得了1830聪的控制权,从而输出Vout4使他能够控制总共2130聪。Vin3和Vout3用于支付200聪网络费用。
拆分一次性令牌
在一个例子中,发行人可以授权一次性子令牌的持有者将所述一次性子令牌拆分为更多的一次性子令牌,以便进行支付而无需使用动态令牌。发行者可以进一步指定深度,在该深度可以将一次性子令牌从单个历史链中分离出来返回给有效的发行。
图41显示了由三个交易组成的链,通过该链创建一次性子令牌,然后在花费回到另一个动态令牌中之前进行拆分。
-在第一笔交易中,动态令牌(dT1)在Vin0处贡献了1500聪,并且在Vout0处花费了100聪返回给自身,同时创建了在Vout1处输出的1400聪的一次性子令牌(suT1)。
-在第二笔交易中,一次性子令牌(suT1)在Vin0处被拆分,以创建两个一次性子令牌输出–即Vout0处800聪的一次性子令牌(suT2)和Vout1处600聪的一次性子令牌(suT3)。
-在第三笔交易中,600聪的一次性子令牌(suT3)在Vin0处花费,并由另一个动态令牌(dT2)接收,该另一个动态令牌具有1000聪的初始值和在Vout1处1600聪的输出值。为了平衡交易,零聪的错误输出是在Vout0处的输出。
可以无限静态和动态令牌的系统,以及动态令牌可以拆分为子令牌的深度。可以创建或拆分动态令牌以使其面额与动态令牌持有的单个令牌单位值相匹配。换句话说,使用动态令牌并不妨碍发行人创建静态令牌一直到最小面额。在实践中,可以选择令牌(无论是静态还是动态)的划分程度以确保比特币的有效使用。
错误输出+令牌
在一些例子中,令牌和子令牌可以花费到FALSE输出中,该输出是简单包含操作码“OP_FALSE”的输出。这些输出有效地导致相应输入处的令牌不复存在。
在交易需要控制某些令牌输出的输出索引的情况下,“OP_FALSE”输出是创建零值的或不可花费输出的最有效方法。它们也是“熄灭”令牌的最有效方法,该令牌具有定义其历史的线性时间序列进程。这可能用于令牌删除交易,如图42和43所示。
在一些例子中,这些错误输出也可能用于脚本中,所述脚本将令牌传输到新输出以执行令牌更新。可以执行更新以清除令牌历史记录或为了重新颁发具有新属性的令牌。
此操作码为任何人提供了一种生成轻量输出的方式,这有助于终止大量的令牌。这可以用于终止令牌重新发行交易中的传入令牌,或者作为一种允许钱包专门从流通集中创建特定令牌的简单方式。此错误输出可用于结束任何种类(例如,静态/动态等)的令牌的生命周期,但不是必需的。如果令牌被花费到不可花费的输出中,那么它就会被有效地销毁,因此这模仿了将令牌输入花费到没有任何相应输出的交易中的行为。
一次性令牌的例子将强制执行规则,其中使用一次性令牌的动态令牌将被迫要么制作它们或者抓取它们,但不能同时做两者。
写入令牌、交易数据库和数据库管理系统
上述令牌,例如静态、动态和子令牌,以及用于通过区块链(账本)创建、使用、处理和转移令牌化资产或资源的相关技术、协议和系统,可配置为其他用途和应用。与之前支持对资源的受控访问权限的例子类似,区块链账本的固有完整性以及所述令牌的安全的和可追溯的性质额外地或可选地适合于资源的管理或监控。令牌通过其本身或与父母令牌的数字关系的授权使得资产或数据集能被监控。令牌及其交易可用于构建交易数据库(TXDB)。交易数据库可以收集代表资产的任何信息、数据或状态的交易输出,其可以包括静态值、动态值和写入数据的权限以建立数据的交易记录,例如信息和/或指令,例如用于交易数据库(包括这些资产的子部分)。资产的状态可以类似于计算机的状态。该机器可以是计算机和/或具有真实世界传感器和设备的物理机器以管理一组物理结果。例如,受监控的资产可以是有限状态机的操作。
与令牌相关的区块链交易包括令牌输出(UTXO),所述输出表示由令牌发行者(TI)发行的相应令牌(T、sT、dT),或从其派生。输出还指定了与相应令牌(T、sT、dT)关联的令牌单位(TU)和令牌相关加密货币(TRC)的数量。一个令牌中的令牌单元(TU)可以在交易中转移到另一个令牌,或者可以在交易中将令牌单元转移回自身。无论哪种方式,线性历史链都将交易和/或令牌联系在一起。
从铸造交易MTx创建的或从中衍生的令牌可以配置为代表具有与之关联的“价值”或资源单位/数量的不同令牌类型。如上所述,该值可以是以下值中的至少一个:
·“状态”指示器,其中令牌化资产/资源的单位数量(“令牌值”或“令牌单位(TU)”)由令牌表示。这可以是任何类型的资产、实体、项目或资源,包括但不限于:合法权利的表示;使用某些资源的诸如许可的义务;组件跟踪和库存;合同开发和管理;虚拟和/或数字资产,例如访问计算机网络或文件的权利,或加密货币,或数字选票或投票系统中的选择;和/或以金融公司为导向的资产,如法定货币、商品、股票和股份等。交易数据库可以是灵活、简单且可扩展的数据库架构,优选地使用加密货币区块链,例如比特币区块链,例如BSV区块链。
·必须作为区块链交易的核心机制进行转移的非负数量的加密货币。
虽然令牌的“状态”可以由令牌单位和加密货币表示,但令牌的状态可以仅从公钥确定,所述公钥与令牌持有的加密货币相关联。令牌的世系可以从公钥派生以便可以确定其状态。在交易数据库的组装和/或管理期间,每个令牌的详细信息是知道的,因此令牌的状态及其对数据库内容的影响可以通过令牌的铸造证书或发行证书来确定,其创建了所述令牌和/或数据库管理系统。
此处的令牌采用账本(例如区块链)上的令牌通过一个或多个令牌交易可用于(i)确定数据库条目和/或(ii)确定数据库的形成。该交易创建记录,该记录充当持有指令的存储介质,该指令用于生成,修改和/或验证区块链实现的数据库。该交易可以在确定数据库和/或数据库内容期间被使用或处理。使用基于账本(例如加密货币区块链账本)的令牌交易,以及交易之间的连接或边缘,可以确定数据库。交易之间的连接能够让数据库的创建顺序能够被跟踪。可以使用数据库管理系统确定数据库,该数据库管理系统配置为取回交易信息和从在区块链的交易之间取回连接。
交易可以包括最初建立或配置数据库的数据库建立记录。或者,如果交易是一系列线性连接的交易中的后续交易,那么通过写入链中的边缘连接到所述数据库建立交易。一系列线性连接的交易定义了写链。
额外地或可选地,可以在铸造交易期间编译铸造令牌的日志。此日志记录创建了什么令牌以及状态和任何其他详细信息,例如正在创建的数据库的格式或要与其关联的数据库。因此,当数据库管理系统构建交易数据库时,它使用日志将令牌与内容相关联。
例如,通过使用创建每个交易的密钥对,可以对数据库进行加密。密钥对可以使用椭圆曲线加密(ECC)密钥。令牌的创建可以使用密钥生成和管理技术来至少实现以下一项:使数据库所有者能够从单个主密钥对中恢复数据库中使用的任何密钥组合;创建包含加密和未加密写链组合的交易数据库;加密交易中的单个节点或参数;
控制令牌的访问权限,以便令牌的持有者可以选择性地查看和/或控制由另一个令牌创建的写入链,包括来自另一个写入链的加密数据,而无需用于加密该数据的私钥的访问权限;并且启用要使用的阈值密钥以允许多个用户跨具有任意条款的多个链去加密和查看数据。
控制令牌的访问权限可以通过使用软件代理来实现,例如数据库管理系统,它可以将完整的未加密数据库保存在内存中。DBMS可以向用户提供本机数据,并且还可以根据这些用户提供的访问权限令牌管理向谁显示哪些数据。通过这种方式,DBMS充当守门人或主管,其控制整个数据库并控制对全部或部分数据库的访问权限。
对阈值键的要求是在交易期间建立的。例如,农场主可以管理令牌,该令牌使他们能够记录其牛群中每头奶牛的多个参数。DBMS可以识别他们对令牌的所有权,以便农场主可以访问他们自己牛群的记录详细信息。但是,在交易期间,如果满足特定条件,则可以配置条件访问权限。条件访问权限可以要求第三方与连接的计算机的网络进行通信,以请求已知消息的共享签名。如果第三方可以通过满足阈值签名的条件向DBMS证明他们控制了密钥,那么他们就具有访问该令牌的记录的权限。为了继续该例子,农场主可以向组成合作组的相邻农场主提供有条件的访问权限。例如,农场主可能被五个相邻的农场包围,并且访问数据库中所述农场主的数据可以是有条件的,该条件是五个相邻农民中的三个验证访问数据库上令牌输出的请求的身份。
每笔交易都有一个或多个与令牌相关的输出(T-UTXO),每个输出代表由令牌发行者(TI)发行的相应令牌(T)。每笔交易包括a)数据库格式、实体和参数和/或与所述数据库的修改相关的信息中的至少一种,以及b)与相应令牌(T)相关的令牌相关加密货币(TRC)的数量。创建令牌的写入链中一系列交易中的第一个可以包括与令牌相关的输出,该输出包括创建的所述或每个令牌的铸造记录。
在写链上创建的令牌交易可以建立一组可以在数据库中引用的参数。例如,参数可以是表或任何其他数据库要素。交易ID可以是派生它的父母交易的哈希。对交易的任何更新都可以包括该交易哈希作为回到对创建令牌的铸造交易的引用。
交易可以包含后跟一组参数的标头。这些参数可以包括数据库管理系统可以识别并用于修改数据库的指令。可以引用、执行、遵循或实施这些指令。指令可以说是确定数据库内容。例如,参数集可能包括创建新表、向数据库添加新节点,修改参数,或者添加或删除信息的指令。
当参数集包括添加信息时,指令的格式可以包含至少一个键:值对。参数可以包括指令,该指令可以被引用、执行或以其他方式遵循以添加或修改交易数据库,例如,添加表或修改条目。例如,键可以是字符串值,例如“姓名”,“出生日期”,“照片”,并且该值可以是任何类型的数据,或者是创建边缘的节点:参数/txid:vout数据。
每个令牌都有与控制令牌的实体相关联的权限级别或“状态级别”。最高状态级别归因于从中派生所有其他级别的主令牌或管理员令牌。新令牌由实体创建,从而父母令牌和铸造记录持有创建交易的令牌的状态的记录。换句话说,交易是应用的令牌及其固有状态的记录。
在数据库编译期间,交易的状态级别可以由以下至少一项确定:令牌值或令牌单位;标识符;铸造记录;和公钥,其状态可以追溯回到控制铸造交易的实体,其可以与由数据库管理系统持有的寄存器进行交叉检查。
总体而言,交易的状态由派生它的父母令牌决定。需要注意的是,父母令牌通过其自己的写入链可以发出指令来修改交易的状态,即父母令牌的交易具有更大的状态并且可以更改数据库管理如何处理来自其父母令牌派生的令牌的交易。数据库管理系统通过检查在铸造令牌之前和/或之后确定的交易状态来确定数据库。
当建立时,数据库记录可以包括所有者的名称、标题、数据库类型(如图形的或关系的)以及属性的数量的详细信息。
建立后,可以从原始令牌创建更多令牌。在此后续创建过程中,至少有一个:创建新令牌的记录;与派生它的原始令牌的连接;已建立的新数据库,该数据库可以是原始数据库的一部分。新创建的令牌将具有自己的令牌相关输出(T-UTXO)和相关联的公钥。
令牌输出可以定义数据库的许多方面,例如:与表和/或数据库的修改有关的信息,该信息包括通过添加、删除或修改行、列或记录中的至少一者来修改的指令;和/或具有不同权限级别的令牌,其可以通过令牌值、附加信息参数和公钥中至少一者来指示,可以为其分配状态级别,该状态级别确定写链上交易的输出对数据库的确定内容的结果或影响。
建立数据库的第一笔交易可以称为铸造交易、根交易或创世交易,并且主令牌(mT)可以包含在此交易输出中。另外地或可选地,并且第一个交易可以输出管理令牌(aT)和/或写入令牌(wT)。后续的边缘连接节点还可以输出管理令牌(aT)和/或写入令牌(wT)。与令牌关联的权限可以从令牌的身份及其拥有来确定。有关令牌的信息记录在放置令牌的输出中,或记录在悬挂令牌铸造记录中。此信息将包含有关令牌类型和功能的信息。主令牌(mT)被配置具有以下至少一种:创建具有一定数量的令牌相关加密货币(TRC)的写入令牌(wT)的权限,所述一定数量的令牌相关加密货币由一个或多个令牌相关输出(dT-UTXO)之一表示,所述写入令牌对数据库内容具有只写授权;创建管理令牌(aT)的权限,该管理令牌具有由一个或多个令牌相关输出之一表示的一定数量的与令牌相关的加密货币(TRC),所述管理令牌对数据库具有管理和写入授权;管理自行创建的任何数据库内容或从中派生的任何令牌的权限;将数据库内容写入其已建立或随后建立的数据库的任何部分的权限;添加,修改或删除由此派生的任何令牌的权限,例如更改所述令牌的管理权限;以及修改或撤消从其派生的令牌对数据库执行的任何操作的权限。
权限可以通过在输出或在令牌铸造记录中记录权限级别的至少一者来确定。授权信息可以包含有关令牌类型和功能的信息。数据库管理系统可以识别授权信息,以便令牌及其关联的写入链可以确定另一个令牌所做的修改。
主令牌(mT)可以从首次交易中创建。首次交易或创建主令牌的交易也可以包括数据库建立记录。因此,从主令牌派生的每个后续创建的令牌进行的交易都与其父母交易有联系。通过这种连接,可以从每个令牌交易确定数据库建立记录,这提供了追溯到建立交易的线性历史作为来源证明。此外地或可选地,每个令牌交易都可以在其标识或参数中包含数据库建立记录。主令牌做的所有后续交易都具有来自父母交易的边缘连接,从而创建了主令牌的写链。
管理令牌,无论是在铸造交易中创建的,还是从后续交易中创建的,都可以作为所有令牌和从其派生的交易的主令牌。可以为管理令牌配置创建进一步管理令牌的权限。管理令牌可以授权给以下至少一个:管理和写入由所述管理令牌或从所述管理令牌派生的写入令牌创建的数据库内容,从而使管理令牌能够修改数据库,包括与管理和/或写入令牌相关的在输出中创建新令牌,无效令牌以及修改令牌的授权;并且在随后的区块链交易中从管理令牌创建写入令牌(wT),所述写入令牌具有由一个或多个令牌相关输出(dT-UTXO)之一表示的与一定数量与令牌相关的加密货币(TRC),并且所述写入令牌对数据库内容具有仅写授权。
总体而言,管理令牌提供对数据库的访问权限,例如,创建具有不同访问权限的额外管理令牌,或者只是对数据库本身进行更改。数据库的控制器使用这些令牌来管理流入数据库的数据流。要创建一个或多个额外管理令牌,在交易中将具有适当权限的管理令牌用作源输入,并将其花费到包含“铸造记录”的脚本中,该脚本详细说明了正在创建的新管理令牌。交易还必须包含适当的签名和数据,以便读取信息的数据库管理系统可以知道任何新创建的管理令牌都可以有效地对数据库进行更改。与静态令牌类似,管理令牌可以保留其聪值,因此必须使用单独的输入来提供例如BSV聪来支付交易费用。
虽然主令牌(mT)和管理令牌(aT)都可以创建确定数据库内容的交易输出,但所述内容可以通过写入令牌交易来实现。创建写入令牌时,管理令牌输出一定数量的与令牌相关的加密货币(TRC),所述一定数量的与令牌相关的加密货币由令牌相关输出表示。可以配置写入令牌具有对数据库内容的只写授权。
资产的授权和控制级别,以及该资产会发生什么,通常在使用首次交易和/或令牌定义交易创建令牌时确定。对于写入令牌,其中资产是交易数据库的输出数据,授权是在管理令牌创建写入令牌时确定的。管理令牌可以引用令牌定义交易或创建新的令牌定义交易,所述定义包括确定写入令牌范围的脚本。
如上所述,权限可以通过在输出中或令牌铸造记录中记录权限级别的至少一者来确定。例如,令牌的权限可以限制为:一组写入记录,例如,在数据库管理系统忽略来自该令牌的任何进一步交易之前,对数据库执行10次写入操作;或者基于阈值签名有效的条件修改数据库。可以在每个令牌或令牌类型上设置不同级别的权限和/或不同的限制。
对交易授权的识别可以从写入链和(例如主令牌或管理令牌)令牌确定,所述令牌创建了进行交易的令牌。进行交易的令牌将有目的地从派生它的父母令牌的创建者那里接收,因此控制实体本质上拥有权限。这种有目的的转移可以从与令牌的UTXO转移相关的密钥对进行确定。数据库管理系统可以通过父母令牌和子令牌之间的关系来确定授权。
每个令牌都可以具有可变数量的令牌相关加密货币(TRC),该可变数量的令牌相关加密货币由一个或多个令牌相关的输出之一表示。这使令牌能够为其交易费用提供资金。在主令牌或管理令牌的情况下,可以通过将UTXO花费到令牌的输入交易来增加与令牌相关的加密货币(TRC)总数,从而使其能够创建新令牌。
此处描述的任何令牌都可以使用有限的功能创建。受限函数可以限制它可以进行的交易数量,或规定特定的生命周期,该生命周期要求在1个或多个令牌交易的链中以预定格式提供信息。在达到限制(例如,已耗尽的设定交易数量或生命周期已完成)后,可以将令牌配置为过期,并将输出花费到零值中或错误返回输出中。令牌可以用加密货币余额铸造,例如聪余额,这足以支付所有必要的状态转换的费用,在零价结果处结束,移除了通过其他方法支付费用的需要。
总体而言,令牌交易定义了格式、实体和/或与所述数据库的修改相关的信息中的至少一种。每个交易可以持有任意数量的参数。参数可以包含用于标识实体和项目的“标记”。交易还可以被标记和/或提供版本级别或编号。交易标签可用于将元数据(如索引或约束信息)附加到指定的交易。
数据库内容可以由单个输出中的一组键值对定义。这些输出可以包含脚本中的数据,例如FALSE RETURN脚本,例如使用BSV协议的OP_RETURN脚本。键值对的内容可以是已知格式的数据,或者可以链接回另一个交易或输出。
例如,每个参数可以保存在单独的FALSE返回脚本输出中。FALSE RETURN脚本可以包含各种参数输出,这些输出为数据库管理系统提供指令,例如,脚本可以结构化为2个pushdata操作,其中第一个是参数的名称(varchar)并且第二个是数据本身。数据推送的第一部分包括2字节的指示符,指示参数是什么类型的数据,然后是数据本身。参数可以是任何类型的数据,包括:例如,数字(整数,无符号整数,浮点数等);字符数组(字符串,可变长字符,字符等,JSON格式的数据,YAML,HTML等);布尔值(真/假);链接(A:,B:,C:,D:.HTTP:,FTP:etc);文件(图像,文档,档案);时间戳;和ECDSA签名。
对参数和节点大小的唯一限制是创建节点时比特币网络上的限制。该参数也可以是链接,该链接指向使用比特币协议(如B://或C://)引用的其他链上数据。参数也可以是指向源(例如文件,图像)的链接,该源存储在区块链外部以最大程度地降低用户的成本,但是存储在链下的信息不是不可变的并且可能会随着时间的推移而丢失,这取决于它们是否仍然可用,这取决于加密货币网络之外的因素。
在铸造交易的后续交易中,后续区块链交易派生自前一交易,其中,所述后续区块链交易包括:交易的公钥和唯一标识;输入,包括前一个交易的签名公钥,创建与前一个交易的边缘连接;先前交易的身份证明;输出,所述输出包含数据库参数的更新和/或数据库指令。
边缘连接用于确定两个节点实体之间的关系。边缘只能在创建后续交易时形成,这是指创建过程中的早期交易。数据库及其内容的确定使用每个交易中指定的边缘连接来确定对数据库的每个操作。边缘可以链接到同一数据库中的其他交易或参数,或者链接到其他交易或数据库中的信息。
如上所述,可以在令牌交易中配置各种边缘。
静态边始终返回相同的信息,而动态边接收最新更新。边缘也可以是引用数据库外部数据的参数化边缘,其中边缘包括包装器的规范,或者边缘可以是包含查询的边缘,其中返回的数据是多个查询的结果。如果边缘包含包装器或二进制大对象(例如软件包),则可以在令牌化的消息、HTML表、JSON页眉和页脚或任何其他包装器中取回数据,使用户能够创建节点,这些节点在链接或查询时以本机格式提供完全完整的文档或网页。通过这种方式,相同的源数据可以以多种格式提供,为了创建EDI交易或提供不同的数据流等目的。只需将具有多个边缘的“查询节点”添加回同一节点,每个边缘可以具有不同的包装器类型。例如,取回华氏温度的边缘可以自动将其转换为摄氏度。
如果边缘是包含查询的,则查询的边缘返回的数据是另一个查询的结果。例如,如果数据库节点不断更新新数据(例如每小时温度),则可以对边缘进行编程以返回24个最新更新,或过去7天内的最高和最低温度。通过在参数化的边缘内设置包含查询的边缘,可以将此数据包装在HTML中并作为丰富浏览体验的一部分。
可以创建边缘将节点参数链接到网络上的任何交易,允许参数引用诸如以下内容:链上身份;智能合约;文件;其他TXDB;和其他TXDB中的节点。
总体而言,边缘充当数据库管理系统的指令,其中边缘确定要回顾和修改交易的哪个参数。静态边缘可以引用回到特定的交易输出参数,而动态边缘可以引用回到特定参数的最新版本。
数据库管理系统可以跟踪每个交易所做的修改,以及通过写入链中的边缘连接的交易,以便能够修改数据库内容或覆盖或删除其总体结构。每个令牌、它进行的交易和它生成的输出形成了各自的写链。确定了更新的交易输出和/或确定了数据库内容的指令,例如定义数据库的实体或参数的那些,可以是未连接并且可以说是从交易“挂起”。这些未连接的“挂起”输出可以是终端的,例如FALSE RETURN,例如OP_RETURN。
来自交易的输出可以由至少一个公钥锁定,然后其可以通过相应的数字签名解锁。输出可以附加地或可选地由OP_CHECKMULTISIG脚本锁定。通过这种方式,数据库的重要条目或条件可能需要通过私钥批准以下至少一个:超过一个其他令牌或至少N个公共令牌的M个,以及控制所述令牌的实体或机构。通过使用多个签名锁定输出,数据库管理系统可以允许令牌从其自己的写入链的输出来确定数据库内容,例如,它对读写内容到数据库具有有限的权限。但是,数据库所有者可以具有特殊需求,例如控制数据库内容的编辑权限。
例如,主令牌可以创建五个管理令牌,其中每个管理令牌可以创建和管理无限数量的写入令牌。在铸造管理令牌期间,主令牌可以限制由管理令牌执行的操作,例如删除从中派生的写入令牌和关联的写入链,这将需要来自管理令牌的输出指令。因此,删除写入令牌的交易输出必须由多个数字签名锁定,这在此示例中需要5个管理令牌中的3个在它们自己的单独交易中同时发生,数据库管理系统可以识别每个数字签名以影响写入令牌的删除。
这样,数据库背后的实体或机构保留对数据库内容的控制,因为写链上的指令可以被其父母令牌创建的写链上的指令所取代。需要明确的是,批准不是从令牌本身派生的,而是从创建该令牌的实体或机构派生的。通过在令牌铸造过程中和在父子关系中保留控制,数据库管理系统的数据库管理员能够根据数据库创建者(即创建创始主令牌或创世令牌的机构)的要求确定数据库内容。当数据库管理系统与写链交互时,控制权由创始机构保留。通过跟踪在一个或多个写入链上所做的修改,从创建令牌到建立数据库,数据库管理系统可以通过时间顺序按照所述或每个写入链中交易输出中的数据库组装指令以确定性的方式编译数据库。令牌交易是在“区块链”级别进行的,而数据库管理系统可以被描述为“第2层”代理,它被编程为从区块链取回令牌信息并将其编译到交易数据库中。
数据库管理系统可以通过从数据库建立交易获取信息来开始确定数据库内容,该交易概述了数据库的类型和格式。写入链中的后续交易包含构建数据库的指令。对于公共数据库,这些指令可以存储为开放的未加密数据项。但是,持有私人信息的数据库可能包含加密的数据和指令。在这些情况下,数据库管理系统需要了解构建有效数据库所需的加密密钥。在确定数据库期间,管理系统可以接受来自写链的信息,这些信息派生自写令牌、管理令牌和主令牌中的至少一者。例如,交易的写链是从具有表示令牌的线性历史的地址链创建的。写链是链接的令牌交易的不间断的链。
查询语言可用于从令牌交易信息确定数据库及其内容。查询可以从令牌交易开始并沿着边缘到达最终参数。如果边缘链接回到另一个节点,则查询可以从要返回的该节点添加参数。如果最后一个参数链接是返回到另一个节点的边缘,则该节点的全部内容将包含在返回中。如果该节点包含回到其他节点的边缘,则查询可以指定特定参数以在任何链接节点中查找数据,或返回链接节点的完整内容。
所有令牌都派生自数据库建立交易,该交易可以创建保存在加密货币UTXO中的主令牌,该主令牌用于创建在UTXO中持有的更多令牌。持有令牌的UTXO可用于扩展交易的写链,并且至少一个输入派生自持有来自父母交易输出的至少一个令牌,而数据库操作,例如添加信息指令,可以存储在FALSE RETURN中,例如OP_RETURN输出,或在包含数据的可花费的输出中。
任何交易的Vin0和Vout0都可以在写入链中连接,以便确定数据库的数据库管理系统可以跟踪输入和输出以及要对数据库执行的操作。优选地,包含令牌的交易(Vin)的输入是在Vin1处输入的,尽管它可以在相应的输出(Vout)上花费之前在任何输入处输入。数据库参数可以在令牌输入和链接的输出索引之后输出,即如果令牌在Vin(n)处输入,那么数据库参数可以在Vout(n+m)处输入,其中'n'和'm'是正整数,即由挂起令牌创建的输出应具有比悬挂令牌本身更高的输出索引。通常,悬挂令牌在交易中将其UTXO花费于自身,优选地进入和出去Vin/Vout索引0。但是,数据库管理系统(DBMS)可以具有预先确定的规则来管理交易的令牌输入相对于输出的位置,其中所述规则可以在scriptSig中提交的数据中进行确定,其指示DBMS在哪个输出上包含数据库指令。
如果不使用货币产出,它可以结束链。但是,需要注意的是,链可以继续,因为输出可以具有零加密货币值,例如零聪值并且仍然有效。可选地,可以使用不可花费的脚本(例如FALSERETURN)来结束链。
DBMS的操作员(如提供者)可以确定交易的格式。因此,可以将交易配置为在交易期间付款和/或转移资产的条件下可操作。换句话说,建立和使用服务的支付可以直接合并到创建和扩展数据库的链上操作中。可以付款以确定交易并更改提供的输出以接收任何多余的加密货币,例如聪或资产价值,例如收到的动态令牌或静态令牌。
虽然主令牌可以执行与从数据库建立交易建立的数据库相关的任何功能,包括管理和写入令牌的那些功能,但给出用于管理令牌和写入令牌的不同交易类型的例子。
管理令牌可以为一系列目的创建交易,包括:
-数据库建立。主令牌和管理令牌都可以接受一个或多个UTXO输入,并创建主管理输出或主写入输出。此交易还可以创建一个或多个设置费并更改输出。可以在此交易中提供数据库名称、所有权、目的、相关信息的链接,例如组织数据和合同数据,例如智能合约。添加管理链。此交易划分现有的管理写入链UTXO以创建至少一个新令牌,并将管理权限分配给所述或每个令牌。可以创建具有限制的这些新创建的管理令牌,该限制允许创建新写入链的令牌去查看并签署由新创建的令牌对数据库所做的更改。这可以通过在多重签名(multisig)输出中创建令牌来实现。
-结束管理链。此交易表明此令牌的写入链已完成。来自令牌的未花费的UTXO可以在正常的加密货币交易中花费。此写链上不能发生进一步的管理令牌,并且数据库管理系统将忽略任何进一步的令牌输出。
-使管理链无效。由于相关的机构,该令牌交易可以引用另一个管理令牌写链的标识,例如交易标识,并向数据库管理系统指示该写链上的所有操作或所有后续操作都将被忽略并且不构成数据库的一部分。
管理令牌由机构创建,该机构通常控制主令牌或管理令牌,该主令牌或管理令牌有权限发布具有指令的交易,例如,该指令指定在特定TXID之后单独写入/管理链的操作不代表数据库中的有效操作,并且DBMS应将它们从其用于构建数据库的记录中排除。这可以追溯地被应用。
-更改管理权限。在相关权限下,该令牌交易可以引用另一个管理令牌的标识,例如交易标识,并向数据库管理系统输出指令,该指令表示另一个管理令牌和/或写入链具有修改级别的特权或权限。该更改可以从该交易开始,也可以追溯地用于反转那个写入链所做的历史操作。
-添加写入链。此管理令牌交易在输出中创建新的写入令牌。由写入令牌制作的交易可以通过输出在数据库中创建新条目。可以限制写入令牌编辑从其自己的写入链上的交易派生的数据库内容,或者完全限制编辑节点。此写入链的UTXO也可以创建为多重签名输出,使创建它的管理令牌能够批准或拒绝对数据库的修改。
-更改写入链权限。此管理交易可以指示DBMS修改写入令牌的权限。例如,可以使来自所述写入链的交易能够链接到其他链上的节点或数据库其他段内的节点。
-创建分段。可以在现有数据库中创建数据库段。实际上,主令牌或管理令牌可以创建进一步的主令牌或进一步的管理令牌,该令牌在该段中具有完全权限,以及进一步的数据库建立交易。可以创建更多令牌并且可以将其使用限制为该数据库的那段。
-使令牌无效。此交易告诉数据库管理系统忽略特定交易,并且链接到该交易的任何边缘都将被标记以指示该交易无效。没有进一步的写链可以连接到该交易。
-使节点更新无效。此交易指示数据库管理系统忽略交易中的特定更新。此交易可用于更正错误。
写入令牌可以为一系列目的创建交易,包括:
-实体创建此交易在数据库中创建一个实体,例如事物、人物、地点、单位、对象或任何应以参数、属性、工作流和表格的形式进行捕获和存储地数据的项目。与实体关联的参数或属性在单独的输出中提供,例如,FALSE RETURN输出。
-交易更新。此交易可用于添加新参数、新属性或更新数据库中的参数或属性。当更新了参数时,确定了数据库的数据库管理系统将始终将最近的有效更新交易视为正确。但是,交易还可以创建链接到特定参数的具体版本的边缘以添加或修改数据库中已有的数据。
-结束交易。此交易标志着写入链的结束。如果写链无权声明自己的结束,则必须使用管理令牌对交易进行会签。来自此令牌或其后代的进一步交易将不会被视为该数据库的一部分。
区块链账本可用于记录单块数据的状态,但这里教导的令牌提供了一种能够形成数据库的机制,所述令牌具有建立交易的血统,使得每个数据库修改的授权能够被确定。每个令牌交易之间的关系创建了写链,使数据库管理系统能够从一个或多个写链中交易的关系来构建数据库。令牌可以具有不同级别的权限,这样一个写链上的交易可以修改另一个写链上的交易输出对该数据库的影响。通过跟踪来自一个或多个写入链的交易,可以以确定性的方式形成数据库。
从交易及其从区块链账本中提取的写链确定性地形成数据库(i)为新形成的数据库提供了完整性,并且(ii)能够导入现有数据库,并且在转换过程中无缝地管理现有数据库的数据输入和维护。例如,现有的数据库(例如电子表格的形式)可以在Google(RTM)文档上实现并在99人之间共享,他们可以同时查看或编辑电子表格。导入或转移所述电子表格可以通过铸造主令牌或管理令牌以及数据库建立交易来实现,所述数据库建立交易包括铸造时已有的电子表格。随后从主令牌创建99个写入令牌,每个令牌与主令牌和建立交易具有关系。每个写入令牌的后续交易都有输出,该输出充当在建立交易中修改数据库并在自己的写入链中定义新交易的指令。数据库管理系统可以在区块链账本上找到数据库建立交易以及99个写入链中每个写入链上的每个交易。通过跟随写链从数据库建立交易到99个写链的每个写链的末尾,可以确定数据库。该确定可以跟随交易的时间顺序。
费用
写链的形成可能会通过外部费用产生成本,包括(i)与区块链上的每笔交易相关的矿工费用和/或(ii)与数据库管理系统相关的费用。这些费用可以通过包含资金的辅助输入进行处理,并且可以在不影响数据库链的情况下将单独的更改输出添加到交易中。可选地,写入/管理令牌本身可以包含加密货币,例如用于支付交易费用的聪。如果没有外部费用,通过将令牌UTXO花费给自己,写链上的令牌可以从交易中输出与输入相同数量的聪。为了适应外部费用,令牌可以提供包含资金的辅助输入,其可用于将聪添加到交易以支付外部费用。
可选地,令牌本身可以包含用于支付外部费用的聪。如果对于支付的费用输入有多余的聪,则此找零值可以花费到输出。
另一种融资选择可以涉及提供DBMS的服务来构建交易,以便建立和使用服务的付款可以直接合并到创建和扩展数据库的链上操作中。找零输出是为了表明支付服务的一方可以将接收的任何多余的聪/动态令牌/静态令牌作为零钱并且在同一操作中将它们支付回自己的钱包中。数据库信息优选地只包含在不可花费的FALSE RETURN输出中,尽管可以使用任何类型的输出。由于挂起令牌的性质,包含数据库输出的输出不必具有空白输入,但是对于布置交易而言它可以是被采用的规则。
例子
数据库的建立、交易、写链和使用数据库管理系统的数据库的确定性形成可以应用于任何数据库应用程序,并且下面将使用,但不限于,各种例子进行描述。根据此处教导的启示,本领域技术人员将有可能将一个例子的教导和/或特征应用到另一个例子。
不同的应用程序可以从不同的令牌安排中受益,这取决于如下至少之一(i)控制令牌的实体,其可以是分布式的或者是集中设置的,(ii)被监控的参数数量,(iii)资源预算和(iv)所需交易的频率。提供用于形成交易的令牌以使得数据库能够被确定,这提供了可扩展性,仅受区块链和数据库管理系统的资源限制。不同的令牌排列可以包括n阶功能。
下面为不同的应用程序提供了示例安排,其中,资产受到监控并且与资产相关的数据在令牌交易中输出。
牛
第一个例子涉及对数据的“集中”管理,所述数据来自集中式放置的实体,所述集中式放置的实体具有多个本地资产。在此例子中,监视农场中的奶牛并将数据存储在交易数据库中,其中,为农场中的每个牛群提供了一个令牌,并且每头奶牛的数据在数据库内的定制表中进行管理。每头奶牛都被视为资产,并且在实践中每头奶牛都有独特的标签,该标签具有机器可读的代码,例如在记录数据以准备交易时可以读取的RFID。
在一个例子中,拥有一群牛的农场主希望使用令牌交易和数据库管理系统来监视每头奶牛,该数据库管理系统将根据所述令牌交易整理和确定数据库。图44a显示了使用令牌创建监视系统和数据库建立的启动,所述图表示铸造交易的输入和输出,其中创建了令牌。铸造交易还可以使用签名确定发行人的权限,如本发明的其他铸造令牌的例子所述。
如上所述,写入令牌可以创建确定数据库内容的交易输出。可以配置对数据库内容的只写授权来配置写入令牌。对于写入令牌,资产是交易数据库的输出数据,并且授权是在管理令牌创建写入令牌时确定的。管理令牌可以引用令牌定义交易或创建新的令牌定义交易,所述定义包括确定写入令牌范围的脚本。
图44b显示了如何将“授权管理令牌”(即管理令牌)输入(Vin0)到交易,并在Vout0处输出。类似的,未标记化的加密货币(例如聪)是分配给新创建的写入令牌的输入(Vin1)-写入令牌1,写入令牌2和写入令牌3,分别位于Vout2,Vout3和Vout4。未使用的未标记化加密货币在Vout1输出。图44c简略地显示了两个交易,其中第一个交易创建三个写入令牌:具有1个月的写入访问权限或权限的写入令牌1;写入令牌2仅对10条记录具有写入访问权限;写入令牌3具有无限的写入访问权限,并且其中第二个交易创建两个写入令牌:写入令牌4仅对1条记录具有写入访问权限或权限;写入令牌5具有24小时写入访问权限。数据库管理系统可以在从加密货币账本中取回令牌交易期间确定每个令牌的访问权限。在取回过程中,可以通过令牌数据(例如输出脚本)和/或参考用于创建令牌的令牌定义交易来确定令牌的访问权限级别。农场主将加密货币(例如比特币UTXO)作为第一个输入(Vin0)花费到交易中,而找零输出作为第一个输出(Vout0)被花费。进一步的输出是数据库建立记录、第一个管理令牌(显示为管理令牌1)和第二个管理令牌(显示为管理令牌2)。第一个管理令牌对数据库内容具有完全权限,并且能够创建更多令牌,该第一个管理令牌由所有者(也可以是发行人)持有,并用作主令牌。第二个令牌是传递给农场经理的管理令牌,农场经理将每天监控牛群并且使用该令牌进行交易,该交易记录牛群中每头奶牛的数据。该交易可以称为由此衍生的所有令牌的铸造交易。
管理令牌提供对数据库的授权和/或访问权限级别。数据库的控制器使用这些令牌来管理从进行令牌交易的账本中提取的数据,并且管理流入数据库输出的有效数据流。由于正确的权限级别,令牌可用于创建具有不同访问权限的其他管理令牌。
为了创建其他管理令牌,在交易中将具有适当权限的管理令牌用作源输入,并将其用于包含进一步“铸造记录”的脚本中,其详细说明了正在创建的新管理令牌或令牌。交易还必须包含适当的签名和数据,以便读取信息的数据库管理系统可以知道此新令牌可以有效地对数据库进行更改。在与静态令牌类似的场景中,管理令牌可以保留其聪值,因此必须使用单独的输入来提供BSV聪以支付交易费用。
当农场主购买新的牛群时,由不同的农场经理管理,他们需要自己的令牌。在图45中,农场主使用其主令牌(即管理令牌1)执行交易,在输出上创建铸造记录和第三个管理令牌。加密货币(例如比特币UTXO)作为第一个输入(Vin0)花费在交易中并且找零输出作为第一个输出(Vout0)被花费,并且管理令牌作为第二个输入/输出对(Vin1/Vout1)花费在交易中。第三个输出(Vout3)创建新创建的第三个管理令牌。在此操作中,可以在新的管理令牌中使用数据库管理系统中的数据缓冲区作为DBMS跟踪不同令牌的方法。
需要注意的是,令牌不会将信息写入数据库,而是通过交易输出创建监视的资源状态的不可变记录。发行人(在这种情况下是农场所有者)可以提供铸造交易的详细信息和令牌详细信息,以便数据库管理系统有效地搜索账本上的关联交易。数据库管理系统可以从令牌信息及其输出中确定数据库或确定数据库的更新。因此,数据库的完整历史作为写链中交易的一组输出仍然记录在链上,并且数据库管理系统通过编译所述输出来确定数据库。数据库管理系统可以提供以下至少一项:令牌的私钥和公钥;铸造交易详情;数据库建立记录;以及归因于令牌的权限级别–并且使用提供的信息,它可以搜索账本并确定每个令牌在写链中的交易和边缘,以及交易输出的指令。
管理令牌交易的例子如图46所示。更具体地说,在图46中,加密货币被花费并将UTXO输出分配回自身。令牌本身可以具有公钥和私钥对,充当允许令牌持有者与令牌进行交易的UTXO。与数据库操作相关的数据不会记录在管理令牌本身中,而是记录在交易输出中。交易输出优选地携带零聪并花费在FALSE返回输出中。这些FALSE RETURN输出可以包括对数据库管理系统的指令以执行任何可定义的数据库操作,包括但不限于在数据库中创建和删除表、在数据库中创建和删除记录以及修改数据库中记录中的字段。
负责第二个管理令牌的农场经理想要跟踪牛群中的每头奶牛。建立了包含信息第二个管理令牌,该信息包括新数据库的所有者、数据库名称和数据库类型在内的信息,在此例子中,数据库类型是关系型的,尽管它可以是任何类型的数据库,例如图形数据库。令牌还可以包含有关数据库管理系统的信息,这些信息可用于从写链上的关联交易确定数据库。
在图47中,农场经理使用用于关系数据库的管理令牌2来执行交易,该关系数据库为每个奶牛标记创建表,但为简单起见图中仅指示了两个表。每次为奶牛添加新记录时都可以扩展每个表。
图48显示了图47中FALSE RETURN输出中指定的表的格式。对于每个资产,即每个奶牛的记录,资产被指定并包括三个属性–也即时间,和键:值对,即记录类型和记录数据。在此示例中,表每单位时间仅使用时间序列数据更新一次,精确到1秒,并且在任何给定秒内只能进行1次更新。
图49显示了第一个管理令牌的交易,该管理令牌为每个资产添加“位置更新”,当由数据库管理系统确定时,其将可以如图50所示。
在对第一头奶牛进行称重后,进行第一个管理令牌的进一步交易,如图51所示,并且该交易的输出由数据库管理系统确定以创建在图52中所示的表,其中每头奶牛的位置已经从前一个交易中确定,并且'奶牛标记1'的表还包括另一个键:权重记录形式的值对。
图53和图54显示了交易和可由数据库管理系统分别确定的结果表,在第一个管理令牌的交易添加新的键:值对记录之后,所述记录是奶牛1接种流感疫苗。可以提供详细信息,例如农场经理添加到其数据库记录中的序列号,以便将该疫苗追溯到特定的动物。
农场经理后来意识到他们已经接种了“奶牛2”,但针对“奶牛1”记录了该疫苗接种。如果第二个管理令牌有权进行更正,则可以如图55所示进行交易,并且该表将更新为从奶牛1的表中删除一条记录,并将一个键:值对记录添加到奶牛2的表。但是,在这种情况下,农场主限制了管理令牌2的权限,从而其无法修改医疗记录。因此,创建交易的是农场主持有的具有完全权限的管理令牌1。数据库管理系统可以监视和提取来自相应令牌的每个写入链的信息并且相应地更新数据库。图56显示了已从令牌交易中确定的表并指示该记录已从奶牛标记1表中删除,并且相同的记录已添加到奶牛标记2表中。对于农场主来说,这种管理记录是记录所发生情况并确保完全可追溯性的宝贵手段。
天气
第二个例子涉及中央实体对数据的“分层”管理,该实体具有许多具有多个本地资产的分布式子实体。此示例对应于一个国家的天气监测,具有特定的国家、郡和单个气象站。数据源分布在较大的地理区域。
以英国作为代表国家,其中通过记录在令牌交易输出上的条件来监测天气状况,位于英格兰德文郡的中央气象局(Met Office)可以在铸造交易中在区块链上建立数据库。与所有铸造交易以及由此产生的令牌一样,创建或委托令牌的实体是主要的所有者或机构。
在一例子中,中央气象局在铸造交易中记录数据库记录,所述数据库记录用于建立数据库和一个或多个代表令牌的与令牌相关的输出。用于建立数据库的交易可以在一系列单独的交易中建立,包括建立权限的交易、建立数据库本身的交易以及建立或发行令牌的进一步交易。
在这个非限制性示例中,铸造交易生成主令牌和四个管理令牌-苏格兰,英格兰,威尔士和北爱尔兰各一个。铸造交易的输出为每个管理令牌提供了一定数量的与令牌相关的加密货币。数量可以为零。
每个管理令牌可以创建进一步的管理令牌,例如北爱尔兰的管理令牌可以为郡(例如德里或安特里姆)创建管理令牌,并且每个郡管理令牌可以为该郡中的每个城市或位置创建写入令牌,例如德里或贝尔法斯特。可以重复此过程,直到给英国的每个气象站提供了令牌为止。优选地,每个气象站的令牌是写入令牌。可以从管理令牌创建多个写入令牌。每个令牌都有自己的写链,并且每笔交易从创建该令牌的第一笔交易扩展写链。可以根据需要添加或删除更多令牌。在原始铸造交易和后续铸造交易中为中央气象局创建的所有令牌的密钥对是已知的。密钥对可以提供给数据库管理系统,用于从账本或区块链中提取交易以构建交易数据库。
铸造交易定义了数据库的内容,包括要监控的实体和参数,如图57所示,图57显示了定义天气令牌的Java脚本对象表示法(JSON),该天气令牌可用于生成国家天气数据的数据库。JSON已被使用,例如,另一种格式可用于创建脚本,例如pushdata脚本。当创建了每一行时,将设置行号和位置。
每个令牌创建后,其在区块链上的后续交易可以通过FALSE OUTPUTS向数据库提供一条或多条指令,例如OP_RETURN输出。例如,交易的输出可以包含如下指令的至少一项:添加新行;更新整行;更新行的一部分;删除一行;冻结/锁定一行;或解冻/解锁一行。
更详细地说:
在创建新行期间,每个行参数都可以在交易中作为单独的pushdata项进行添加,按照JSON概述它们的顺序:
OP_FALSE OP_RETURN N 120“N.Ireland”“Derry”“Derry”“27.4843°S,152.9837°E”,
其中“N”表示此行是新行,“120”是行号,并且以下各项是JSON中定义的位置数据。数据库管理系统确定行120已作为Derry,Derry添加到数据库中。
在更新完整行期间,令牌交易用于更新具有一组新的时间序列数据的行,其中每个行参数按JSON概述它们的顺序作为单独的pushdata项添加:
OP_FALSE OP_RETURN U 120 202010032120 19.6 60.0 13.0 90.0 20.0 0.0,
其中“U”表示这是时间序列更新,并且正在向第120行添加一组新的时间序列数据。数据时间戳为2020年10月3日晚上9:20。气温为19.6摄氏度,湿度为60%,来自东方的风以13.0公里/小时在吹,云量为20%,并且自上次时间序列更新以来,降雨量为零。
在行的部分或紧凑更新期间,令牌交易令牌用于更新行并且仅更新时序数据子集。参数前面是它们在JSON列表中的顺序:
OP_FALSE OP_RETURN C 120 0 202010040820 5 80.0 6 12.0,
其中“C”表示这是“紧凑”的更新操作。紧凑更新交易提供了指令,该指令允许在数据库中少量添加或修改时间序列数据,这在处理具有大量列的数据库时特别有用。在此示例中,项目0是时间戳,该时间戳为2020年10月4日上午8:20,项目5是云量,其为80%,项目6是降雨量,其告诉我们自上次更新以来已降了12毫米的雨。
令牌交易可以提供指令,使用pushdata脚本(例如JSON)删除一行或其一部分,:
OP_FALSE OP_RETURN R 120,
其中“R”表示这是移除动作,并且该行120将被移除。将时间序列数据添加到第120行的任何进一步指令将不会反映在数据库状态中,因为数据库管理系统会考虑写入链上的所有操作来确定数据库内容。
使用令牌交易冻结行可以使用pushdata脚本:
OP_FALSE OP_RETURN F 120,
它向数据库管理系统提供指示不要接受对此行的任何进一步更新。此操作可以由创建行的令牌的任何父母标记执行。
使用令牌交易解冻行可以使用pushdata脚本:
OP_FALSE OP_RETURN T 120,指示数据库管理系统开始接受此行的新更新。此操作可由在行上创建冻结的同一机构令牌执行。
在该例子中使用的JSON脚本不限于它所表示的下层函数。
创建令牌后,每个后续交易都通过边缘连接绑定到其早期交易之一,该早期交易可称为父母交易。可以根据最新指令创建存储在区块链上的不同边缘连接,以供数据库管理系统检索。边缘连接可以是动态的,其中通过查询此动态交易边缘取回的内容是添加到数据库实体的最新交易或参数,例如需要对最新数据条目进行更正,例如昨天的每日总降雨量。边缘连接也可以是静态的,其中内容是从特定交易中取回的,从而例如可以对写链中的任何交易或参数进行更正。
身份
第三个例子涉及“参数”管理,其中对许多不太可能改变的资产的既定参数进行大量单个资产的监控。此例子对应于可由政府或代表政府管理的身份数据库,例如护照数据库,或用于管理驾驶执照记录的数据库。交易的管理将需要授权控制,因此管理令牌的数量至少可以比持有护照的个人数量少一个数量级。
持有护照的个人可以持有写入令牌来定义自己的数据库内容。写入令牌可以配置为像静态令牌一样工作,其值不可更改,并且对用户显示为持有固定资产。但是,令牌的输出可以由管理交易数据库的机构查看和/或授权。例如,可以使用到期数据配置写入令牌,并且持有者可以通过向机构展示自己来更新令牌,并证明他们持有用于令牌UTXO的公钥,其中机构会用来自他们自己的令牌的交易对写入令牌进行会签,以便更新用户的写入令牌。管理这种资源的处理成本会变得不切实际并且容易被滥用。
令牌可用于建立数据库并监控代表身份证、驾驶执照或护照的个人详细信息的集合。类似于上述“中央”管理技术的系统可以使用表来实现,这些表是为要将其信息保存在数据库上的每个人创建的。图58显示了驾驶执照机构(DLA)管理令牌,该令牌生成了单个DLA写入令牌,该令牌在一系列交易中输出具有标识为“1”、“2”和“3”的司机关联的参数,如从左到右查看。为了便于显示,图中显示了一小部分参数选择,尽管参数详细信息可以包括,例如:名字;中间名;姓;出生日期;出生地;地址–第一行;地址–第二行;地址–城市;邮政编码/郊区;链接到当前照片;照片图像的哈希值;和护照号码。这里只列出了12个参数,并且虽然理论上数量是无限的,但护照上的参数数量可能在100到200之间。
未显示的可选配置将要求每个司机拥有自己的写入令牌。如果管理是根据地理区域分配的,那么这将类似于“分层”管理技术,如上文气象站令牌的例子中所述。这种配置将需要每个单独的许可证持有者或护照持有者都有令牌,以及几层的管理令牌。虽然这需要初始设置投资,但长期利益将导致资源的有效利用,并且身份令牌由每个人保留并永久更新。在英国,每年签发500万本新护照,并且因此可以使用基于参数的办法来管理交易供数据库管理系统检索。相比之下,一个人口约为1000万的国家将需要相同数量的令牌,并且管理需要额外的管理令牌。
相比之下,使用前面的例子,所有护照都可以使用每个参数一个令牌(估计在100到200个参数之间)进行管理,如图59所示,以及管理所需的其他管理令牌。这不仅可以大大减少所需的令牌数量,而且参数的分布将被混淆,以至于没有单个令牌可以写入单个人的个人资料。
集中式、分层和参数管理技术显示了令牌通过由交易数据库编译的令牌交易来管理数据的潜力,该数据库将写链上的交易编译到确定的和可用的数据库中。例如,个人可以持有用于多种身份功能的令牌,例如驾驶执照和护照。个人可以要求更改其详细信息,例如更新照片,更改地址或请求续约-通过交易来请求更改。但是,这些交易可能需要多个签名才能被数据库管理系统接受为“接受”并在数据库中永久化-多个签名的其他签名者是各自建立持有的令牌。可以根据安全级别定制实施更改所需的权限级别。
例如,个人持有护照令牌,该令牌由政府机构签发并提供给个人以使他们能够证明自己的身份或跨境。个人最初将申请护照令牌,并且其申请详细信息将在与其令牌铸造相关的数据库建立记录中提供。个人现在想要更新其护照并更新其照片,并且可以通过进行交易来实现,该交易的输出包括支付所需的费用,提出请求并将包含其照片的文件添加到交易输出中。要实现更改,个人必须从护照办公室,DLA及其当地银行经理处获得签名,他们必须亲自识别。护照办公室可以将请求与现有令牌状态进行交叉核对,并且例如将新照片图像的生物特征与提交的旧照片图像进行比较;通过进行交易,个人可以使用其DLA令牌来请求批准护照更新请求,该交易需要支付费用并添加链接使护照办公室能够访问个人的DLA令牌进行验证;并且个人可以亲自到他们的银行出示,提供代码,例如用于扫描的二维码以验证他们的身份,同时将个人详细信息与其银行账户交叉检查。
需要注意的是,这些例子中管理的资产是象征性的,并且本发明不限于奶牛、天气监测或护照。这些例子中的每一个都显示了本发明的不同方面,并且技术人员可以将JSON数据库建立的解释应用于其他应用程序,例如天气令牌。此外,支持令牌和此处教导的交易的每种加密货币都可以有其自身的代码和指令格式。
多重签名
本文中描述的任何令牌都可以有条件地转移,所述转移由控制输出的交易中的指令确定。例如,比特币交易可以通过支付到公钥哈希(P2PKH)功能将付款发送到公钥地址。
如本文所述,令牌可以以公共方式使用,其中多个个体与令牌相关联,并且令牌和/或其家族或衍生令牌(本文通常称为子令牌)可用于验证所呈现的私钥签名是否对应于列表中的多个公钥之一。
例如,瑞士经常允许其人民对其法律修正案进行投票。如本文所述,基于令牌的跟踪系统可用于(i)确定某人是否已投票,以及(ii)使选民能够确定其投票已被计算在内。
在简单的例子中,可以铸造主令牌以建立用于监视投票的交易数据库,然后创建并随后监视已铸造的写入令牌,其中每个有权投票的公民都被发行写入令牌。要投票,公民只需使用他们的私钥签署“是”或“否”选项,例如在投票站或在线。
投票后,必须根据每个公钥检查每个签名,例如私钥。此处的令牌及其配置可以适应任何投票系统。可以针对单张选票发行单独的令牌,以隔离选民的身份和他们的投票权以及他们投下的选票,例如,通过使用令牌访问他们投票的行为,第一个令牌可以代表一个人已经投票的证据,而第二个令牌与投票的人无关并且包括呈现投票选项的脚本,其中,投票行为将令牌花费到做出的选择中。
在比特币的原生脚本语言中,有两个操作码设计用于处理OP_CHECKMULTISIG和OP_CHECKMULTISIGVERIFY的多重签名脚本。OP_CHECKMULTISIG检查呈现的一组签名共同签署来自一组N的M个公钥,其中M<N。如果M个签名可以显示出是从列表中的公钥生成的,则该函数在堆栈上保留TRUE(1)。OP_CHECKMULTISIGVERIFY执行与OP_CHECKMULTISIG相同的功能并且随后执行OP_VERIFY功能,创建使交易失败或允许其继续的网关。如果函数成功,堆栈上不会留下任何内容并且交易脚本将移动到下一个操作码。
这些操作码中的每一个都需要在堆栈上排列一组数据点,包括整数值、椭圆曲线签名、公钥和要在堆栈上排列的当前未使用的值。下面的示例适用于OP_CHECKMULTISIG脚本,尽管它可以应用于OP_CHECKMULTISIGVERIFY脚本。在这两个脚本中,当前要排列的未使用值没有功能,并且需要在第一个签名之前将“垃圾”值(通常OP_0)放置在堆栈上。这种“垃圾”值要求通俗地称为“臭虫”,这并不是希望的并且是可以容忍的,因为它可以通过分配“0”值来解决。包括“垃圾”值,多重签名操作必须通过以下方式提交进行验证:
<junk_value>
<签名a><签名b>...<签名M><M>
<pubkey 1><pubkey 2>…<pubkeyN><N>
OP_CHECKMULTSIG
当前操作涉及OP_CHECKMULTISIG脚本通过获取<签名a>并将其与<pubkey 1>进行比较来执行验证。如果不匹配,它将签名与<pubkey 2>进行比较。这个过程重复,直到有一个匹配,例如签名a>匹配<公钥2>,验证者获取下一个要匹配的签名,即<签名b>并将其与<pubkey 3>进行比较,依此类推。这将强制以正确的顺序将签名提交到脚本。验证完所有签名后,该函数求解“true”并且该过程进入下一个操作码。
在脚本处理大量公钥和相对较少量签名的系统中,该过程效率低下,因为大量的签名会针对公钥和签名的无效组合进行检查。签名检查的计算成本很高并且占用了验证器CPU的许多周期,为处理大型多重签名交易带来了瓶颈。
发明人创造了一种改进OP_CHECKMULTISIG和OP_CHECKMULTISIGVERIFY方法,该方法展示了一种改进的过程。在改进的过程中,用户配置脚本,以向执行脚本的网络节点的处理器提供与签名匹配的公钥位置的指示。换句话说,比特币网络的用户为处理交易的节点提供了信号,该信号能够确定已提供签名的特定公钥子集,从而消除了OP_CHECKMULTISIG或OP_CHECKMULTISIGVERIFY验证过程中固有的低效率。通过这种方式,该信号把检查每个签名的那个公钥通信给该节点,从而抑制了检查整个密钥列表的低效率。
比特币协议保持不变,并且在处理操作码操作期间消耗“垃圾”值(其已被信号所取代,所述信号能够确定已提供签名的公钥子集)。任何无法识别信号的节点仍然可以以原始方式处理交易,而不会影响其有效性。
在一个例子中,信号可以由二进制字符串/字段组成,所述一个二进制字符串/字段是4个字节长(32个值),其中每个比特位代表列表中的一个签名。因此,对于每个签名,字符串中与要提交的公钥对应的比特位设置为真。更具体地说,该信号表示为二进制字符串,其中比特位10、19和25设置为“1”并且其余比特位全部设置为零。
<00000000 01000000 00100000 10000000>(信号)
<sig 10><sig 19><sig 25>3
<pubkey 1><pubkey 2>…<pubkey 32>32
OP_CHECKMULTISIG
验证脚本的节点最初将读取该信号中比特位的列表,并知道“pubkey 10”应对应于信号中列出的第一个签名,“pubkey 19”应对应于第二个签名,“pubkey 32”应对应于第三个签名。这样,验证脚本的节点可以只检查3个签名,而不是通常需要的25个签名。在这个例子中,实现了效率提高8倍,这将允许用户(i)更快地完成他们的交易,(ii)创造机会从理解该信号的节点那里去产生较低的处理费用来处理该交易,以及(iii)降低该交易的处理成本。
在另一个例子中,信号可以由固定长度整数的串联列表表示,其中最大整数值大于N(公钥的数量)。例如,在具有超过256个公钥的多重签名操作中,每个值必须至少使用2个字节。对于超过64536个密钥的列表,必须使用4字节整数。由于对可以处理的签名数没有限制,因此此技术可以通过将整数扩展到8个字节来扩展到非常大量的签名(超过43亿个)。
这些例子在签名数M小于N/(整数位长度)的情况下最有效,即对于具有256个公钥的脚本,当要验证的签名少于256/8(32)个时可实现最佳效率;并且对于具有512个公钥的脚本,整数长度为16位,因此值为512/16(32)。
在进一步的例子中,通过在信号字符串前面预置一个1字节的指示符,用户可以向节点发出信号指示其在使用这两种技术中那一种。为了使用这种技术,网络节点必须使用特定的软件,该软件可以在处理签名之前理解该信号并提取所包含的信息。通过允许他们处理具有大量公钥的交易并且不会通过检查密钥和签名的无效组合来浪费处理器周期,该软件的使用可以为节点运营商提供竞争优势。这样可以降低能耗并提高处理效率。
在线合同/表格
本文所述的令牌源于铸造交易。每个令牌都与铸造交易具有确定性关系,该铸造交易能够对其进行认证和/或确定线性交易历史。当交易输出数据时,线性交易历史可以称为写链,它是在两个或多个交易中使用令牌之间的关系。在本发明的每个例子中,铸造交易提供了确定令牌功能操作的数据-其可以,至少如下之一,管理资产,记录交易中的信息并随后能够确定地将写链上的交易编译到功能记录中。此外,与账本(如加密货币账本)的交互可以抑制腐败,并以高效且具有成本效益的方式优化可扩展平台的使用。
在另一个例子中,发行人可以铸造令牌,以便以数字方式执行具有规定格式的表单。该表单可以包括(i)模板组件,例如条款、同意声明或协议,以及(ii)用于接受详细信息或签名的数据输入组件。
通常,铸造交易会生成令牌,该令牌包含指定模板组件和数据输入组件的表单,后者配置为与用户特定的数据或内容相关联。数据输入组件类似于令牌接收者可以填写的表单的空白或可编辑部分。
表单令牌的接收者可以从交易历史(即写入链)中查看表单和/或模板组件的格式,以便他们知道自己正在完成和/或批准的内容。然后,表单令牌的接收者可以通过进行交易并输出交易中要输入表单的数据来完成表单,优选地作为虚假输出。输出可以是数字签名。模板组件的一部分(可以构成协议的正文)可以是其字符串和/或内容的哈希。换句话说,与其重复协议的全部内容,其内容的哈希可以构成模板组件的一部分。使用内容的哈希可以最小化令牌的大小,表单的完整的人可读的模板可通过嵌入在交易中的链接或直接从边缘链接的父母交易访问。表单的模板组件可以是李嘉图(Ricardian)合约的组件。
表单令牌(其是令牌化表单)的实施可以通过发行人创建赎回脚本来实现,该脚本要求用户以规定的格式提交完整有效的表单。此技术可用于创建文本输入要求,例如:
“我,<有效别名>使用公钥<pubkey>
同意遵守这些条款和条件:
-条款1
-条款2
-条款3
签署
<数字签名>”
在此例子中,“<”和“>”符号之间的术语是数据输入组件,而其余文本是模板组件。
此外,该例子可以通过脚本实现如下:
-第1部分:检查“我”
3OP_SPLIT OP_SWAP 492C20OP_EQUALVERIFY
其中,此代码从字符串中分离前3个字节,并根据对应于“I,”的十六进制字符串检查它们。
-第2部分:检查<有效别名>
检查别名可以由如下执行(i)对脚本进行会签的代理,或(ii)使用已知别名的默克尔树,其中用户将提供别名和默克尔(merkle)证据,该默克尔证据表明它包含在有效别名的默克尔树中,然后是可以解释和求解默克尔根的脚本,从而证明别名是树的成员。在某些情况下,后一种技术可以消除第三方代理参与验证过程的需要。
-第3部分:检查“使用公钥”
13OP_SPLIT OP_SWAP 7573696e67207075626c6963206b6579OP_EQUALVERIFY
其中,此代码从字符串拆分前19个(十六进制为13个)字节,并根据对应于“使用公钥”的十六进制字符串检查它们
-第4部分:检查公钥
21OP_SPLIT OP_SWAP OP_DUP OP_TOTALSTACK[检查功能]
此脚本将公钥从文本字符串分离出来,复制它并将副本推送到altstack上以便稍后根据数字签名进行检查。要检查公钥,可以使用几种类型的检查功能,包括:公钥检查,其可以由对脚本进行会签的代理执行;或者可以使用已知公钥的默克尔树执行检查,其中用户将提供公钥或其相应的别名和默克尔证明,其表明它包含在有效公钥的默克尔树中,然后是可以解释和求解默克尔根的脚本,从而证明公钥是树的成员。在某些情况下,后一种技术可以消除第三方代理参与验证过程的需要。
-第5部分:检查协议正文
此时,脚本必须检查协议的正文。
这可以使用以下脚本完成:
52OP_SPLIT OP_SWAP OP_SHA256698c281389c063c96be771e3e8d7e360221ce53d71af08d73390e3e546630d5bOP_EQUALVERIFY
此脚本从文本blob拆分82(十六进制52个)个字符,按如下方式剪切协议的主体:
“同意遵守这些条款和条件:
-条款1
-条款2
-条款3
签名”
包括所有空格和格式。由于它大于32个字节,为了提高效率,对字符串进行哈希处理并根据文档中的哈希进行检查。
以这种方式对字符串进行哈希处理,可以使用脚本检查具有许多条款和条件的表单(例如合同),该脚本将检查压缩到一个小的32字节字符串。
-第6部分:签名检查
最后,堆栈上唯一剩下的信息是数字签名。脚本的处理方式如下:
OP_FROMALTSTACK OP_CHECKSIG
最后一个元素从altstack中提取公钥并检查签名是使用相应的公钥生成的。这是用户已有效签署合同的最终确认。
控制系统/状态机
如本文所教导的,可以使用一个或多个区块链交易来跟踪和/或管理资产,其中与令牌相关的输出(表示令牌)用于确定资产的状态。例如,状态可以指示所有权、对受担保资产的访问权限、数据、状态、操作、配置和资产的价值中的至少一项。令牌交易包括与相应令牌相关的一定数量的令牌相关加密货币,并且在令牌交易期间,在交易中处理的加密货币的认证由处理交易的矿工确定性地验证。这里描述的令牌源于首次交易,其可以是铸造交易、数据库建立交易或控制系统中的设备设置记录。每个令牌都是链接的,例如由要控制的设备管理,从而每个令牌交易与创建令牌和/或建立其应用和配置的首次交易具有确定性关系。当交易输出数据时,线性交易历史可以称为写链,它是在两个或多个交易中使用令牌之间的关系。首次交易和/或设备设置记录可以包括将监控设备操作的机构的数字签名证书。总体而言,资产状态及其历史的真实性可以通过验证令牌是来自负责资产和/或首次建立交易的发行人来确定,其可以例如从与至少一个与发行者相关的输出(I-UTXO)的令牌关系来验证,该至少一个与发行者相关的输出与令牌的发行人和/或创建令牌的输出相关联。
上述例子对应于资产,该资产具有静态值、动态值和写入数据以建立数据交易记录的权限,例如用于交易数据库(包括这些资产的子部分)的信息和/或指令。资产的状态可以类似于机器的状态。该机器可以是计算机和/或具有真实世界传感器和设备的物理机器以管理一组物理结果。例如,状态由令牌确定其状态的资产可以配置为根据有限状态机来运行。由令牌控制的资产的操作框架,例如资产,例如电动机控制器,可以通过其令牌来进行管理并根据其令牌的状态进行操作。该框架可以确定操作的线性模式。可以使用令牌及其交易来管理资产,以根据有限状态机确定性地运行。资产的操作可以通过令牌交易来确定,其中令牌交易可以更改令牌的状态并且因此改变资产的状态。有限状态机的使用可以自动操作资产,例如包含设备的设备系统。
管理资产的已知控制和监控系统包括可编程逻辑控制器(PLC)和/或分布式控制系统,该可编程逻辑控制器可以单独操作或联网在一起。在已知系统中,需要一个或多个系统管理室或设施,并且通常需要专用通信网络,例如网络线路或3G或5G系统。大型控制系统可以包括分布在数千平方公里的100多个PLC。支撑基础结构不仅运行和管理复杂且成本高昂,而且可能不灵活且难以更改,因此升级必须向后兼容。
相比之下,本文介绍的令牌及其相关的令牌交易可以配置为利用现有的加密货币账本,如BSV区块链,来使用令牌和/或交易数据库及其相关的数据库管理系统实现改进的控制和监控系统。
令牌可以利用底层加密货币作为管理资产的基础,从而解决安全问题,并且运行一个简单的低成本和计算效率高的系统。例如,令牌适用于实现顺序控制和数据采集(SCADA)系统,并且分布式子系统或设备控制一个或多个令牌,这些令牌确定其管理的子系统或设备的状态。
资产状态的确定性管理在令牌交易的脚本中实现。该脚本可以确定如何管理设备的状态转换,并且每个设备都有预先确定的有限状态机,该设备运行在该预先确定的有限状态机中。设备运行的每个状态都将包含脚本以及相应的输出或状态更改,该脚本确定更改状态所需的输入。
管理每个资产的令牌(例如系统、子系统或设备)在类似于图9和图24所示的专用账本中运行。通过这种方式,可以在特定的子账本中监控令牌及其相关资产和/或数据的状态,即它所基于的加密货币账本的令牌账本。只有在令牌账本上发生的交易才能修改资产的状态,该令牌账本被授权和验证为派生自机构,该机构确定令牌账本和/或包含“设备设置记录”的首次交易。该机构了解其令牌账本上的所有令牌,从而可以相应地添加,修改或删除令牌。
令牌账本和相关权限可以维护系统的安全性,而加密货币区块链上的交易提供了令牌交易以及账本内管理的资产状态历史的无法去除的记录。令牌账本可以启用实时数据管理。
系统操作员可以为系统中的每个子系统或设备创建令牌。设备或子系统可以包含用于管理令牌及其交易的控制器。设备可以操作嵌入式系统,并包含持有私钥的安全模块,该设备使用该私钥在控制系统账本中更新其状态。设备可以包括控制元件,如电机、泵、阀门等,以及用于管理设备输出的传感器、发射器或变换器。有些设备可以控制多个令牌,有些令牌可以表示聚合形成一个子系统的多个设备。子系统可以包括多个其自己的控制和监视令牌,这些令牌一起送入到子系统令牌的状态中。
输入设备可以用于提供参数的状态,例如水平指示器、报警状态或复位条件。输入设备可以具有相应的令牌,并且输入设备的状态可以记录在令牌交易的输出中。每个输入设备都可以配置有用于对输出控制设备的交易进行签名的ECDSA密钥对。从输入设备输出的签名用作状态指示器和用作给其他设备(例如执行器)的输入,从而其状态可用作控制信号。每次输入设备的输入状态发生变化时,控制系统都可以将设备各自的令牌花费到新的状态中。对于模拟设备,这种状态可以在支付通道中被表示,从而减少链上记录的开销,同时将整体控制系统状态保持在可识别为加密货币的记录中,例如比特币(BSV)脚本。每个输入设备都可以监控自己的参数、状态和签名。根据被监控参数的状态,它可以瞬间确定应该输出哪个键。输入设备可以通过提供指示该状态的相关签名来响应传入的状态请求。输入设备可以检查消息和/或无需检查直接进行响应并且使用其当前有效的密钥对进行签名。输出设备可以用于修改机器的操作。输出设备可以具有相应的令牌并且输出设备的状态可以记录在令牌交易的输出中。输出设备令牌交易确定输出设备当前控制状态的即时表示形式。
输出令牌可以根据状态机进行使用,状态机持有有关输出设备当前状态的信息并确定其操作。状态机可以是确定性的有限状态机。确定输出设备状态的频率可以在响应如下至少一种时发生:响应从输入设备接收到的信号;响应内部传感器;并且周期性地例如每秒一次,其中输出设备准备其令牌交易的新迭代。令牌交易可能需要系统中输入设备的签名才能更改设备的状态。如果输入设备提供的签名能够将输出花费到新状态中,则输出设备状态将转变。
输入设备和/或其各自令牌发送的密钥对签名可以固定,也可以定期更新,例如可以实现钥匙串排列,其允许为每个状态更改事件创建新密钥。
需要注意的是,输入设备可以在有或没有令牌的情况下运行。当不需要令牌时,输入设备具有与相应输出设备通信的控制器,并响应状态请求(例如ping),并带有指示其状态的数字签名。输入设备的状态记录在输出设备的令牌交易的输入上,其会相应地更改状态。具有输入和输出设备的控制系统可以在诸如管理或写入令牌这样的悬挂令牌的交易输出上整理和记录输入和/或输出设备的状态,使得输入设备的状态历史保存在交易数据库中。可以为具有不同活动级别或更新频率的输入设备提供不同的悬挂令牌,例如,可以为每分钟至少更新一次、每小时至少更新一次和/或每天至少更新一次的输入设备提供挂起令牌。具有控制器和控制系统的设备的例子显示在图60中。设备100可以在尺寸上可扩展并跨不同位置实现此处记载的本发明的某一方面或方法。该设备还可以代表输入设备(例如传感器)或输出设备(例如执行器)。设备100包括总线102、至少一个处理器104、至少一个通信端口106、主存储器108和/或可移动存储介质110、只读存储器112和随机存取存储器114。设备100的组件可以配置为跨两(2)个或多个设备,或者这些组件可以驻留在单个设备10中。该装置还可以包括电池116。端口106可以通过输入装置118和输出连接120来补充。处理器104可以是任何这样的设备,例如(但不限于)Intel(R)、AMD(R)或ARM处理器。处理器可以专门专用于该设备。端口106可以是有线连接,例如RS-232连接,或蓝牙连接或任何这样的无线连接。该端口可以被配置成在诸如局域网(LAN)、广域网(WAN)或设备100所连接的任何网络上进行通信。只读存储器112可以存储处理器104的指令。
总线102可通信地将处理器104与其它存储器110、112、114、108和端口106以及输入和输出连接118、120进行耦合。总线可以是基于PCI/PCI-X或SCSI的系统总线,取决于例如所使用的存储设备。例如,可移动存储器110可以是任何类型的外部硬盘驱动器、软盘驱动器、闪存驱动器。其中的设备和组件作为示例提供并不限制本发明的范围。处理器104可以实现本文中描述的方法。处理器104可以被配置成从远程服务器或其它设备取回和/或接收信息。
设备100还可以包括嵌入式系统122并包含具有关联私钥的安全模块124。密钥存储126可以持有分配给系统的控制信号的密钥对。设备可以包括安全机制128,用于生成用于签署令牌的UTXO的密钥对,并且安全机制可以包括物理不可克隆功能(PUF)。设备的操作历史可以保存在备份存储128中。与设备账本相关联的令牌交易的本地副本130可以存储在设备上。单独的数据存储132可以保存设备身份、授权信息、有限状态机配置和输入设备的密钥对中的至少一者。
具有设备和相应令牌的可控系统示例如图61所示。在本例子中,罐TK101可以填充来自泵控制继电器PU100的流体并通过储罐输出控制阀HV102排空,而高位传感器HL101和低位传感器LL101指示油箱中的液位。该泵还配有复位开关HS100。设备HS100,PU100,HL101,LL101和HV102中的每个都有各自的令牌。这些信号、信号ID(所述标识是相应令牌的名称)、信号类型和描述显示在下面的表1中,并具有二进制电平信号输出的指示,所述二进制电平信号指示其正在监视的设备或参数的状态:
表1
高液位传感器HL101、低液位传感器LL101和复位开关HS100是输入设备,它们作为传感器向系统提供信息以控制输出设备,即泵控制继电器PU100和控制阀HV102。图61所示系统的操作还包括报警器和定时器,如下表2和表3所示:
表2
表3
/>
除了图61中所示的设备和系统的相应令牌外,还给每个警报提供了输入令牌,即罐低液位警报TK101LL和泵故障警报PU100AL,以及计时器,即阀门释放计时器TMR102和泵故障计时器TMR100。
例如,控制系统以1秒的节奏工作,并且其操作可以使用下面的伪代码进行描述。
TMR102
/>
图62显示了令牌交易,在该令牌交易中铸造了用于泵控制继电器PU100和控制阀HV100的令牌。在输入和交易输出处提供代表“控制账本证书”的数字签名,同时在输入处还提供一定数量的加密货币,例如比特币UTXO。与上述铸造交易和数据库建立交易类似,令牌运行的配置和参数以及指示令牌铸造权限的签名在设备设置记录中定义。在此示例中,设备设置记录可以包括密钥对分配和有限状态机中的至少一者以用于泵控制继电器PU100和控制阀HV100。
有限状态机的操作由令牌交易输出决定,它提供指令、数据和私钥标识PKID中的至少一者。例如,输出可以用脚本实现,例如比特币脚本。该脚本至少可以确定输入签名,所述输入签名需要用于签名或花费来自令牌交易的UTXO输出。脚本不仅可以确定令牌的状态以及与它所管理的资产关联的状态,而且脚本还可以包含其他信息,例如更改状态时的其他操作设备参数。输出设备根据其各自令牌的状态运行,并且每次更改时都可以在交易中更新其状态。
输入设备可以具有一组指示其状态的密钥对和/或信号,并且可以配置为创建带有签名的令牌交易和/或发送指示其状态的签名。输出设备可以向输入设备发送请求,该输出设备的令牌需要预先确定的输入签名才能更改状态,该输入设备将使用签名进行响应和/或确定输入设备令牌的状态。如果输入设备(例如传感器、警报或计时器)没有专用令牌,则可以为其配置控制器,该控制器通过发送与其状态、时间或警报状态相对应的数字签名来响应状态查询。输出设备的状态变化的线性交易历史,例如根据其有限状态机,可以记录在加密货币区块链上以作为设备状态变化的一部分,其由输出设备的令牌确定。设备的状态从第一个状态的更改需要令牌UTXO的特定输入签名和交易输出脚本,该交易输出脚本确定设备状态和更改为第二个状态所需的签名。
输出设备被配置为接收签名,确定它们是否对应于改变状态所需的信号,编译确定的令牌交易,并且根据到至少一个下一个状态所需的签名配置交易输出脚本。令牌可以有单独的脚本,该单独的脚本用于它们可以从当前状态移动到的每个潜在状态。每次设备状态更改时,其各自的令牌都会花费到新的输出中。
下面的表4列出了功能信号,该功能信号指示从输入设备预期的信号、相应的令牌以及激活令牌功能时将从令牌输出的密钥对(PKID)标识。
表4
每个输入设备都配置为监视其自己的数据点,并即时确定应使用哪个密钥来签署传入请求。输入设备可以检查消息或者可以使用其当前活动的密钥对简单地应用签名。
泵控制继电器PU100和控制阀HV100的用于输出装置的有限状态机分别如图63和图64所示。
继电器PU100以三种状态运行:
“关状态(OFF-STATE)”,其中泵的令牌存在于包含脚本“<LL101_ON>CHECKSIG”的UTXO中,并且为了要花费到打开状态中,泵的控制器必须从LL101_ON公钥接收给其UTXO的签名,仅在罐低位信号LL101设置为“1”时提供LL101,指示液位为低;
“开状态(ON-STATE)”,其中泵的令牌存在于包含脚本“DUP<HL101_ON>CHECKSIGSWAP<PU100AL_ON>CHECKSIGOR”的UTXO中,其中泵控制器(i)请求来自罐高位HL101设备和相应令牌的签名,如果收到HL101_ON签名,则其将令牌花费回到关闭状态脚本中,并且(ii)如果接收PU100AL_ON签名,请求泵故障报警PU101AL控制器的签名以将签名花费到报警状态中,其中各自输入设备和/或令牌的控制器仅在其控制状态处于发生转换的必要条件时才提供正确的签名;和
“故障状态(FAIL-STATE)”,其中在所述状态下,泵的令牌存在于包含脚本“<HS100_ON>CHECKSIG”的UTXO中,并且如果按下泵复位开关,则相应的控制器对输入进行签名,并且泵控制器将其令牌花费回到关状态脚本中。
阀门HV102以两种状态运行:
“关闭状态(CLOSED-STATE)”,其中阀门的令牌存在于包含脚本“<TMR102_ON>CHECKSIGVERIFYPU100AL_OFFCHECKSIG”的UTXO中从而要花费到开状态(OPEN-STATE)中,阀门的状态控制器必须从TMR102_ON公钥接收其当前UTXO的签名,其指示计时器的值为>0,以及来自PU100AL_OFF公钥的信号,其指示PU100未处于故障状态(FAIL-STATE)。
“打开状态(OPEN-STATE)”,其中泵的令牌存在于包含脚本“CHECKSIG<TMR102_OFF>SWAPPU100AL_OFFCHECKSIGOR”的UTXO中从而要花费到关闭状态(CLOSED-STATE)中,阀门的状态控制器必须从TMR102_OFF公钥接收其当前UTXO的签名,其指示计时器已降至零,或来自PU100AL_ON公钥的信号,其指示PU100处于故障状态(FAIL-STATE)。
资产的状态数(例如继电器PU100和阀门HV102中的设备)可以是两个或更多,但不限于此。通过设备令牌交易的输出脚本,可以确定设备的事件、物理事件和特征变化中的至少一者。对于输入设备,令牌交易输出包括指示输入设备的事件、物理事件和特征变化中至少一者的签名。输入设备可以以输出信号的形式指示和/或记录其状态,例如数字签名和/或其相应令牌的输出。对于输出设备,令牌交易输出包括指示设备状态的签名。输出设备以操作的形式影响其状态,例如机械操作和/或其相应令牌的输出。
该设备可以有控制系统,该系统可以管理表示设备状态的令牌交易并相应地操作。存储器可以持有密钥对签名用于对另一个令牌的UTXO进行签名,以使用该签名更改所述设备的状态。设备可以包括用于生成密钥对的安全机制,用于对令牌的UTXO进行签名。安全机制可以包括用于生成密钥对的物理不可克隆函数(PUF)。例如PUF的安全机制可以在控制系统中设备的本地,优选地嵌入在控制器中以便它只能被该设备看到。每次设备转换到新状态时都可以生成新的密钥对。
另外地或可选地,设备可以根据数据库中保存的状态指示器进行操作。数据库中的状态可以根据有限状态机确定。但是,令牌交易输出可以记录在数据库中,并且有限状态机根据设备设置记录和/或数据库建立交易运行,该数据库建立交易设置设备状态更改的条件。数据库可以捕获确定输出设备配置的操作、状态和数据中至少一者。数据库还可以记录提供输入签名的事件,该输入签名将令牌交易花费到另一种状态中。
节点和网络拓扑
在一些例子中,以下三个元素中的一个、部分或全部可以组合以形成网络,该网络被安排来实现本文公开的协议和方法:
1.信托持有
2.用户钱包
3.寄存器
信任支撑(Trustholds):
信任支撑是分布式的阈值签名生成器。它们是为用户提供阈值签名切片的计算机网络,可以组合这些阈值签名切片以创建椭圆曲线数字签名算法(ECDSA)签名。用户钱包可以访问网络,例如通过应用程序接口(API),并包括软件模块来管理签名重组。因此,信任支撑的功能包括减轻用户备份和管理密钥的责任。它们各自验证用户的身份并为其令牌提供签名。个人、商家、银行或其他实体等用户能够通过信任支撑对他们的交易进行加密签名。使用信任支撑的优点包括使用安全的分布式网络,以及降低失去对受控资源的访问权限的风险。
钱包:
钱包的主要功能可能包括:
1.跟踪在使用的公钥以接收来自发送方的令牌,并在必要时确保任何相关的信任支撑都了解它们。
2.向其他授权方(例如寄存器,系统或网络中的合作或参与实体)提供公钥,以便他们可以处理从钱包收到的令牌。
3.监控该钱包持有并根据公开形成的令牌指数,包括与令牌及其控制权所在的UTXO相关的各种类型和形式的数据。
4.必要时,在用户的信任支撑网络之间提供接口以请求和接收签名。
5.与其他用户通信以发送和接收令牌,以及发送其他数据,例如电子数据交换(EDI)。
6.参与协作交易(Tx)和签名流程,以创建和使用多重签名令牌或阈值签名控制的令牌。
7.在一些例子中,搜索和处理通过关联树或图形存储的数据,以便监控与计算机实现的传输或其他过程相关的数据(例如,发送/接收的令牌的详细信息,与一方或多方关联的任何别名以及其他数据,例如,EDI记录)。如图13所示。
根据令牌的使用方式,钱包用户可以按需请求信任支撑签名消息哈希。在其他情况下,用户可以要求信托支撑预先签署他们的令牌以进行支出。在使用“SIGHASH_ANYONECANPAY|SIGHASH_NONE”进行签名的令牌的例子中,这使得它们容易、简单和高效地转移。这些签名的令牌可以由钱包持有以交给收件人。接收者可以存储预签名的令牌并将其发送回接收方(例如银行),以便与池中持有的其他令牌进行交换或一组其他铸造令牌进行交换。
图7显示了使用钱包进行令牌转移的例子。参考图7:
步骤1:用户1收到令牌值转移请求并选择他们控制的一个或多个令牌UTXO到值等于或大于请求的金额。在该示例中,用户1可以接收关于接收者的身份的信息或接收方生成的一个或多个脚本的信息,或两者兼而有之。
步骤1a:如果用户1尚未收到接收脚本,则其钱包或他们订阅的货币处理服务将进行别名查找以发现要将资金发送到的接收脚本。如果用户没有确切的更改,则此过程可以包括协商以接收来自接收方的更改或与更改提供服务的API连接。
步骤2:一旦用户1有正确的更改,他们的钱包就会将步骤1中选择的每个令牌的签名请求发送到其信任支撑网络中的节点,这些节点创建用户1钱包所需的“签名切片”,以便为每个选定令牌的ScriptSig构建USER1sig。在此示例中,如果交易直接给到接收方,则可以使用SIGHASH_ALL签名进行签名,或者如果交易通过支付处理器花费到团体交易中,可以使用SIGHASH_SINGLE|SIGHASH_ANYONECANPAY。
步骤3:每个完全签名的令牌在其广播到区块链网络上的节点的同时传递给接收方,完成传输。
图10显示了上面步骤1a中提到的更改服务示例。参考图10:
步骤1:用户钱包连接到变更服务器API以定义交易需求和请求接收脚本。
步骤2:更改服务使用一个/多个接收脚本进行响应。
步骤3:用户将签名令牌发送到更改服务钱包。
步骤4:更改服务将更改发送回用户的钱包。
图13还显示了根据示例使用的钱包。参考图13:
步骤1:发送方的钱包连接到接收方的钱包别名查找/提供服务,以请求用于令牌传递的接收脚本。
步骤2:接收方钱包的别名服务以一个/多个接收脚本进行响应。
步骤3:发送者签名并将令牌发送到接收者钱包。
步骤4:接收方将令牌UTXO详细信息发送到验证服务。
步骤5:验证服务执行Merkle证据查找,将线性交易历史追溯回到令牌的铸造交易。
步骤6:验证服务使用由MTx提供的铸造机构验证令牌的真实性。
步骤7:如果需要,接收方向发送方的钱包发出别名请求让接收脚本从其自己的钱包发送令牌来提供零钱。这些在发送到比特币网络上的节点进行处理之前应用于转移交易。
另外地或可选地接收钱包可以执行令牌验证。
寄存器:
如图2、3、6和15所示,某些(但不是全部)示例可能会使用系统组件,为方便起见,我们将它称为“寄存器”。寄存器可以是计算机实现的资源,其包括钱包,该钱包安排用于处理根据本公开铸造和使用地令牌。寄存器可以是全自动的系统组件。寄存器的使用与否将取决于特定用例及其实施的要求。
图2显示了本公开说明性的例子,其中:
1.至少达到所需总令牌数额或值的令牌从发送方发送到寄存器,然后至少达到所需总金额的令牌从寄存器发送到接收方;如果转移的令牌超过所需的总金额,则会从寄存器或接收者向发送者提供零钱;通过寄存器执行交换可以记录交易,以及传入和传出账单的所有权/控制权的转让包含在寄存器中。
2.至少达到所需令牌金额的令牌直接发送给接收方,无需通过寄存器;如果发送的令牌超过所需的总金额,则接收方或其他方会向发送方提供零钱。
图3还显示了两个可能的例子。首先,发行实体创建并维护令牌寄存器。发行的每个令牌都写入寄存器,从而对于投入流通的每个令牌可以有记录,该记录包含(至少)唯一标识相应令牌的标识符/序列号以及与该令牌关联的令牌值。如果令牌由于某种原因退出流通,则可以使用熔化操作将其从寄存器中删除,如图18所示。通过寄存器或无需通过寄存器直接地从用户到用户,从寄存器接收令牌的用户可以将令牌转移给其他用户。
参考图6:
步骤1:用户1收到令牌值转移请求,并选择他们控制的一个或多个令牌UTXO到值等于或大于请求的金额。在该示例中,用户1可以接收关于接收者的身份或由接收方生成的一个或多个脚本的信息,或两者兼而有之。
步骤2:用户1将步骤1中选择的每个令牌的签名请求发送到其信任支撑网络中的节点,这些节点创建用户1钱包所需的“签名切片”,以使用SIGHASH_NONE|SIGHASH_ANYONECANPAY在每个选定令牌的ScriptSig中构建USER1sig。
步骤3:用户1的寄存器操作员将部分签名的一个或多个令牌接收到他们的寄存器中,并接收值转移的详细信息,其可以包括接收者地身份,接收脚本和转移金额。如果尚未提供脚本,寄存器操作员将执行别名查找以代表用户发现接收脚本。
步骤4:寄存器操作员选择适当的令牌来全额支付并从部分签名的令牌中支付任何零钱,所述部分签名的令牌是其收到的用于其他交易的,所述其他交易是在其寄存器中持有的。它通过使用SIGHASH_ANYONECANPAY|SIGHASH_SINGLE对每个进行签名来完成签名过程并将已签名的输出添加到组交易中。接收脚本可以不受限制地代表令牌生态系统中使用的任何类型的钱包。
图15还提供了使用寄存器的可能示例。在图15中,用户1对令牌1、2和3进行签名以便传输给用户2。用户1对持有在多重签名账户中的令牌进行签名,由寄存器共同签名,允许寄存器将它们向前转移到交易中给其他接收者。用户3还显示了对令牌4、5和6进行签名以转移到寄存器。寄存器使用其池中持有的其他预签名令牌来创建给组交易的输出,以在单个链上操作中完成对用户2和4的转移。
尽管本公开的例子可以在不使用寄存器的情况下实现,但这种安排具有技术优势,其中实现适合于使用寄存器。尽管中本聪白皮书的标题提到了“点对点电子现金系统”,但加密货币在采用和实施方面仍面临许多技术挑战。其中一个挑战是用于控制一方硬币的钱包通常使用种子进行备份和恢复。种子通常是一个更加用户友好的助记符,例如与一个地址或一系列地址相关联的短语或一组单词,其使钱包能够得到补充。但是,这需要钱包所有者记住或以某种方式记录种子。有许多已知的种子被丢失或遗忘的情况,导致了钱包内容无法恢复的丢失。此外,种子的使用可以防止或至少阻碍加密货币的某些托管应用。
除了“种子词”问题之外,钱包还面临着如何管理未花费的交易输出(UTXO)和任何所需更改的挑战。在比特币中,硬币作为UTXO被接收到钱包中。通常,钱包将组合超过一个未花费的硬币(通过>=1输入接收到的)以创建一个或多个输出。由于组合的UTXO硬币通常超过所需的付款金额,因此剩余的零钱将发送回付款人的数字钱包。这类似于使用法定现金,其中买家给出十美元以支付9.50美元的交易。可能是10美元以两张5美元的钞票、一张10美元的钞票,或一张5美元的钞票加上5批1美元的钞票的形式提供。无论如何,50美分的零钱被交还。
在数字现金范式中,这带来了技术挑战,包括:
1)钱包需要管理其UTXO集;此集可能会变得复杂,这进而可能会给用户和开发人员带来安全风险。
2)安全性可能会受到损害,因为通常更容易通过他们的交易历史识别硬币的所有权;如果硬币可以通过钱包追溯到来源,攻击可能会更成功。
因此,本公开的例子提供了通过区块链网络交换资产(例如加密货币、令牌、数据等)的机制,这至少解决了这些技术挑战,包括增强区块链实现的数字钱包的隐私和安全性。
动态令牌允许钱包通过允许将任何令牌数量花费到交易中来降低UTXO管理的复杂性,而无需找到必要面额的静态令牌来进行确切的找零。添加一个或多个动态令牌给交易可以让各方支付确切的零钱,而无需处理大量小额令牌。需要时,可以发行代表可替代单位的静态和动态令牌,从而持有1000个单位1聪的静态令牌将完全可替代持有1000聪,每个值1个单位的动态令牌。就像硬币和纸币一样,用户可以选择他们喜欢携带和使用的东西,以优化自己的用户体验。
单个用户可以拥有许多动态令牌,并且可以随时选择将他们控制的任何一次性动态令牌应用于其任何动态令牌。他们还可以将他们的动态令牌与其他动态令牌混合来影响硬币混合过程以增强隐私。
序列号
根据一个(但不是每个)例子,新铸造的令牌可以分配给唯一标识符或与唯一标识符相关联。这可以通过铸造交易来进行。这可以是任何类型的标识符,其可用于引用令牌并将其与发行人可能铸造的其他令牌区分开来。为方便起见,我们将它称为“序列号”。序列号可以嵌入到铸造交易中给定令牌的T-UTXO的输出脚本(scriptSig)中。然后,序列号可以在令牌进入网络内流通时与令牌一起携带,或者仅从铸造或发行交易中引用。
但是,在一个或多个其他例子中,序列号可能是用于创建令牌的TX的哈希值,例如TX与用于创建令牌的Vout索引相结合。但是,由于控制水平降低,这种情况不太有利。特定例子可能通过哈希函数处理交易标识符(TXID)以创建第一个输出的唯一标识符,并通过相同的哈希函数处理第一个输出的唯一标识符,以便为第二个输出生成第二个唯一标识符,依此类推。在此实现中,发行者无法在发行操作之前确定已发行令牌的序列号,并且标识符不会作为铸造记录的一部分记录到区块链上。
由于令牌或令牌单位可以在使用它们的任何交易中进出同一索引,因此可以通过令牌的交易图跟踪令牌或令牌单元的使用情况,轻松地将令牌或令牌单元追溯到创建事件。在一些示例中,可能需要用其序列号定期标明,标记或识别令牌或令牌单元以使验证和跟踪更加高效。
序列号可用于跟踪或链接令牌或令牌单位的来源到发行者,以及将用户数据库/登记册中的用户交易进行编索引。在一个或多个示例中,组交易可能会将所有完全签名的输出令牌花费到新脚本中,将其分配给新的所有者。这可以启用令牌的动态重新分配,直到时间锁定机制中指定的时间。也可以由钱包自行决定扣留传出的令牌。
例子使用案例
提供了进一步的例子,作为可以实施本公开例子中应用的小部分样本的说明。当然,可以设计许多其他应用和用途。
使用案例例子1:处方
假设患者因背痛去就医。医疗场所已经实施了一个根据本公开使用令牌的系统。医疗场所拥有一些比特币,并使用它来生成铸造交易,该交易如上所述发行一组令牌。这些令牌可用于展示药物处方。医疗场所中的每个医生都有数字钱包,该钱包控制私钥,该私钥可以签署药房令牌T-UTXO的解锁脚本,以便授权将令牌转移给患者。数字钱包被安排为实现此处公开的协议,因此可以如上所述接受、验证、转移和处理令牌。患者也安装了数字钱包,其可以根据协议接收、发送和处理诊所的令牌。
在检查了患者后,医生决定开一些药物,因此她使用她的钱包生成区块链交易,该交易具有包含锁定脚本的UTXO,该锁定脚本只能使用由患者钱包控制的密钥和由授权药房控制的密钥解锁。医生将包含患者和处方数据的令牌插入UTXO的脚本中。数据可以加密。然后,通过将UTXO花费到患者的钱包所拥有的地址,将令牌从医生的钱包转移到患者的钱包。
当顾客到达药房时,他出示了他从医生那里收到的令牌。令牌必须首先由患者自己的钱包签名,然后传递到药房的钱包以获得药剂师的授权。药剂师必须能够检查处方令牌是真实的且未伪造。因此,药剂师的钱包在区块链上跟踪令牌的交易历史,以识别铸造交易并检查发行数据以验证令牌。如果验证成功,则可以继续兑换令牌。如果没有,药剂师拒绝分发药物。
根据一个例子,为了创建赎回处方所需的第二个签名,药房钱包充当其自己的信任支撑并与药房网络进行通信,每个药房都使用其私有密钥对令牌进行签名。这使药房网络能够监控跨药房组的处方以识别欺诈活动。通过这种方式,提供了改进的监测和控制方案。在其他例子中,赎回可能需要患者的签名、药剂师的签名和医疗场所的签名。根据使用案例的要求,也可以有其他的变化。
上面的例子适用于单个处方,其中静态令牌表示单个处方项。如果患者患有需要重复处方的慢性病,医生医疗场所可以根据本公开实施利用静态的、动态的、一次性的和二阶令牌的系统—医疗场所拥有比特币并且可以生成发行一组静态和/或动态令牌的铸造交易,并且配置具有生成上述的一次性的和二阶令牌权限的动态令牌。
作为发行静态令牌以获取药物处方的替代方法,设想了例子场景。
1.医疗场所中的每个医生都有数字钱包,该钱包控制私钥,该私钥可以签署药房令牌T-UTXO的解锁脚本以授权将令牌单位转移到患者的动态令牌。患者以与以前类似于静态令牌的方式将令牌单位接收到其数字钱包中的动态令牌中。在检查患者后,医生可以决定在一段时间内开一些药物,例如用于在3个月内治疗伤口的绷带和软膏。医生转移足够的令牌单位以支付3个月的药物。作为静态令牌的替代,患者可以使用令牌单位从药剂师那里获取药物以换取令牌单位,直到令牌单位用完为止。
2.医疗场所中的每个医生都有数字钱包,该钱包控制私钥,该私钥可以签署药房令牌T-UTXO的解锁脚本,以便授权将一次性令牌从其动态令牌转移到患者的钱包。在检查患者后,医生可以决定在一段时间内开一些药物,例如在12个月内为干性皮肤开润肤剂。医生相应地创建12个一次性令牌,并将它们花在患者的钱包中,每个一次性令牌都可以从药剂师那里兑换足够1个月的润肤剂。
3.医疗场所中的每个医生都有数字钱包,该钱包控制私钥,该私钥可以签署药房令牌T-UTXO的解锁脚本,以便授权将二阶令牌从其动态令牌转移到患者的钱包。患有持续高血压的患者可以在一段时间内开具药物处方,例如在12个月内的他汀类药物。相应地,医生创建12个二阶令牌,并将它们花到患者的钱包。与一次性令牌相比,二阶令牌是使用脚本生成的,该脚本限制何时可以交换1个月的他汀类药物供应量。
使用案例例子2:游戏令牌
假设游戏引擎为游戏相关物品铸造动态令牌。由于物品在玩游戏过程中被使用,因此与该物品关联的动态令牌可以以聪的形式积累状态积分。在这样的示例中,可以创建一个令牌系统,该系统允许游戏创建者在游戏中存放一次性令牌,供用户获取并吸收到物品的动态令牌中,从而聪值的增加就可以起到“威力升级”的作用并且可以增强物品属性,例如“伤害”、“范围”、等。当一次性令牌聪被表示项目的动态令牌吸收时,可以确定性地跟踪新属性的添加,从而允许项目随着时间的推移发展出独特的特征。
持有表示特定资产的聪的物品的动态标记。这些资产可以被收购或积累,也可以被移除、处置、出售或交易。通过这种方式,可以将用户游戏的不同元素作为一组动态令牌进行跟踪。每个令牌都保存着用户游戏元素(例如角色、物品)的历史,并且每个物品的资产都是令牌中保存的聪的函数。若要删除属性,动态令牌会创建一次性动态令牌,该令牌引用添加了资产的交易,允许任何人查看其表示的内容。物品的资产可能会代表不同类型的物品的不同东西,因此携带特定有形资产的聪可能会以不同的方式增强特定物品类型或组。
因此,游戏内物品可以由游戏创建者作为可出售令牌发行,可以换取现金或其他游戏内货币,但交易物品的所有权和使用历史在其中进行跟踪。使用物品时,每次与环境的交互都可能造成损坏或增加体验到项目历史,最终导致物品的功能或使用情况随时间推移而改变。这些物品可以由其所有者定制,并在它们交换时保留其独特的资产。
进一步的可能性包括游戏内奖励系统的令牌化或为游戏内环境创建可用货币。静态和动态令牌都适用于游戏内支付和奖励。在一个特定的例子中,游戏控制器可以从他们的动态令牌中发行二阶令牌,所述二阶令牌以与一次性令牌相同的方式凭本身的权限可赎回。但是,所述二阶令牌可以使用附加脚本创建,这样当玩家收集了预定数量的二阶令牌时,在游戏中启用额外的访问权限,例如玩家能够升级、访问隐藏关卡或解锁物品以在游戏中使用。
此外,示例可能允许游戏开发人员协作,以允许玩家在多个游戏中使用物品或将其带入游戏续集,从而允许游戏物品在多年和平台迭代中积累状态。
使用案例例子3:物理令牌
图17显示了一个过程,具有唯一标识符(例如序列号和令牌值)的数字令牌可以通过该过程锁定到由发行者控制的脚本中,然后发行者可以创建数字令牌的物理表示。这些可以可验证地链接到数字令牌,然后通过将它们存放回由发行者控制或与发行者关联的寄存器中并从锁定脚本中删除数字令牌来销毁。参考图17:
步骤1:令牌被花费到锁定脚本中,该脚本需要可证明地与发行者链接的知识证明。
步骤2:创建代表正在使用的数字令牌的物理令牌,并该物理令牌包含包括令牌值、序列号地详细信息以及数字令牌当前在账本上持有的UTXO的详细信息。
步骤3:交易方之间可以交换实物令牌。通过检查数字令牌是锁定在物理令牌上显示的交易输出中,接收者验证令牌的来源。可以通过PC,设备销售点或使用智能手机或平板电脑应用程序完成检查。当物理令牌被存入时,它包含的信息用于构建移动数字令牌的交易,从而触发物理令牌被销毁的过程。
例如,运输公司可以铸造动态令牌,并从该动态令牌中打印一批十个一次性令牌以用作门票,每张票可兑换一次旅程。当票证中令牌单位的兑换价值被花费到运输公司的支付渠道中时,可以吸收到他们的动态令牌中或回收利用。通过这种方式,令牌单位被转移回运输公司。这样的例子适用于各种可能的用例和应用。这些之一在投票/选择过程中提供如下。
使用案例例子4:投票系统
例子4参照图23a和23b进行描述。在这个说明性用例中,可以安排某些例子以便令牌可在选择过程中用于实现选择功能(为了便于参考,我们称为“选票”)。这可以称为在技术领域中已知的“投票”制度,不应被解释或误解为纯粹的政治性质。术语“投票”在此用于指可以做出选择或挑选并记录的过程。但是,对于以下示例,我们将使用选举过程,因为由于熟悉这很容易理解。
例如,考虑一个场景,其中选举委员会根据本公开建立令牌账本以进行选举。一旦令牌账本建立起来,委员会就会铸造足够的令牌来覆盖每个选区的投票过程,从而允许额外的数量(例如,10%)。每个令牌代表一张选票。然后将每张选票复制为包含唯一代码的物理令牌,该代码可用于花费到数字令牌以作为投票操作的一部分。当选民到达投票站时,他们的身份采用与令牌化的选票脱离的方式通过正常手段进行处理。一旦他们的身份和投票权被独立地确定,实物选票纸令牌就会转移给选民。例如,这可以是一张带有条形码的纸,或者带有芯片或标签的塑料令牌或智能卡。可以从提供给投票站工作人员的令牌池中随机挑选实物令牌。通过这种方式,选民的身份不会以任何方式为人所知或附加到物理令牌上,但选民现在拥有代表他们在选举中投票权的令牌。
然后,选民在提供计算机界面(例如触摸屏显示器)的展位上展示自己,并向终端提供由其物理令牌提供的唯一代码。计算机检查该代码代表了未花费的选票并根据选民的当地规则向用户提供投票过程。这可以通过在屏幕上显示或者可以包括其他通信手段,例如,供盲人用户使用的音频手段。
进一步的例子可以向用户提供其投票的印刷记录以放入投票箱作为电子过程的备份,并且进一步的例子可以使用唯一的物理令牌作为印刷介质。一旦用户的投票结束,计算机界面将选票花费到团体交易中,该团体交易保留在时间锁定的支付渠道中,该支付渠道在该选票完成后关闭。如果用户保留了其唯一选票的记录,他们可以在交易完成后验证他们的投票是正确记录。
该过程显示在图23a和23b中,其包括以下步骤:
1.发行人创建根节点来建立记录选举的投票和结果的令牌账本
2.发行人使用来自根节点的权限生成足够的选票,以便使用铸造交易进行选举过程
3.花费每张选票所需的知识证明是作为带有安全装置的物理令牌进行制作,选民必须通过不可逆转的过程闯入该装置才能展示(例如,可撕的穿孔纸/刮板)
4.选票随机送至投票地点,在投票地点选票分发给那些出示充分身份证明参加选举过程的选民。
5.通过进行访问选票所需的不可逆转过程,选民来显示其选票的知识证明,并将信息呈现给安全的投票终端。终端检查知识证明代表有效的令牌,并向选民提供一组引导投票选项。
6.选民使用安全终端完成投票过程,并且完成后,通过操作表明他们已完成选择选项。终端生成新的UTXO,其用于转录选民的选择,并使用知识证明使用SIGHASH_SINGLE|SIGHASH_ANYONECANPAY签署数字选票。在投票过程结束时,签名的选票全部花在一笔交易中以完成投票过程。保留其选票访问权限的用户可以轻松检查其投票是正确记录。可选地,选票可以混淆输入。
使用案例例子5:状态机
在本公开的一个例子中,可以创建令牌,该令牌旨在通过具有线性处理框架的状态机。通过这种方式,可以创建令牌,并通过多次传输操作,每次都更改状态。一些令牌可能会在状态转换完成时被处理回到标准区块链UTXO中。通过这种方式,本公开可用于实现确定性有限接收者(DFAs)和自动化系统,这些系统可用于各种场景和许多不同的目的。
例如,考虑用户购买特定航班的机票的场景。第一种状态是机票预订,其包括诸如航班和日期等数据。在航班起飞之前,用户可以更改预订,这将涉及过渡到不同的预订状态。用户还可以在预订中添加其他服务,例如餐饮和特定的座位选择,每项服务都会修改机票的状态。当用户办理登机手续时,系统会为他们分配最终座位,并且机票状态将更改为登机牌。如果航班取消,机票的状态可能会更改回预订。一旦乘客到达目的地,该航班上所有乘客使用的机票所持有的基础加密货币都可以被处理回到比特币UTXO中,然后航空公司可以将其回收到新机票中。
使用案例例子6:数据消费计划
在一个例子中,互联网数据服务提供商铸造动态令牌,以颁发给其服务的用户,该用户将使用提供商获得互联网访问权限。动态令牌可以用于来自该提供商的数据设备的移动连接计划。设备用户购买了一个计划,该计划带有以聪/兆字节测量的信用额度,并且提供商向用户的动态令牌支付了1000聪,以表明他们的帐户可以使用1000兆字节的信用额度。
用户的手机服务在每天午夜关闭的支付渠道中进行跟踪。如果用户的信用额度用完或过期,他们可以购买额外的信用额度以应用于其动态令牌。每次用户使用数据(例如完成呼叫/消息/会话)时,通道都会更新到新状态。在全天中,通道状态跟踪用户的使用情况,并从其动态令牌中减少用户的信用。每次传输一兆字节的流量时,支付渠道都会将一个聪转移到一次性令牌中。
举个具体的例子,
o午夜时分,通道被清除,并且余额重置为零。
o午夜时分,用户的钱包包含459MB的信用额度。
o到上午10点,用户已经拨打了45秒的电话并消耗了3.4MB的数据。该频道将用户的余额更新为455MB。
o上午11:30用户下载153MB,从而余额为302MB。
o下午4点,用户发送图片并消耗5MB,累计总数为297MB。
o在午夜,用户的钱包会自动签署包含全部消费金额的一次性令牌,并刷新支付渠道。
o凌晨3点,电话公司自己的动态令牌将所有一次性令牌投入公司余额,以便在用户购买更多信用额度时分发。
使用案例例子7:消息令牌
在一个示例中,一次性令牌可以配置有数据(例如消息),当其中的令牌单位的值被吸收到另一个动态令牌中时,可以解锁该消息,并且读取该数据。
在一个示例中,一次性令牌是充当消息令牌(mT)的零聪令牌(zsT),其可以传递给交易中的每个参与者(例如,使用写入者令牌)。这些消息将是不可花费的输出并将持有数据。
在一个示例中,附加到零聪令牌的数据授予特定脚本中持有的任何其他令牌附加权限。
发行人始终在监视账本并可以看到令牌何时被销毁。这项服务将允许发行人向破坏性交易的参与者发送有针对性的消息,而无需知道他们的身份,并且将通过管理钱包令牌的钱包进行工作,该钱包将知道这些消息的协议。
一次性令牌提供消息传递功能,可以将其发送到钱包中任何令牌使用的任何脚本以传递有关已失效令牌的消息。
在另一个示例中,消息令牌可用于向人员发送消息。
在消息令牌的另一个示例中,它们能够让消息被发送给一组令牌输出,这些令牌输出被错误地使用从而导致发生了失效过程。如果子账本允许,那么这些令牌可以在重新发行之前被冻结或没收。
使用案例例子8:动态身份令牌(使用密钥片)
在一个示例中,动态令牌可以使用关联的标识进行铸造,并且可以称为标识令牌(iT)。可以为机器或人铸造身份令牌。标识令牌可以保存有关计算机或人员的信息,例如计算机的服务历史记录或人员名称的更改。
使用人作为更详细的例子,可以将身份令牌配置为持有有关该人的一组信息。例如,身份令牌可以保存与驾驶执照或护照相关的信息。标识令牌可以保存此类第三方文档中提供的全部或子集信息。
获得身份令牌后,某人可以将其身份进行检查、批准或更新中的至少一者—并且此记录、检查和/或修订的详细信息可以保存在身份令牌中。与身份令牌中持有的人员相关的详细信息可以全部和/或部分保存。
在一个示例中,在建立身份令牌后,任何检查、批准或更新的详细信息都可以拆分为多个元素。然后,这些元素将显示给分布式网络中的设备。例如,对地址的更新可以分为7个部分,每个部分的信息分布到不同的设备。这7个部分中的每一个都已由适当的机构签署为真并由网络中的设备持有。例如,这7件可以盖有时间戳并带有新护照号码,并且包括:护照号码;名字;姓;出生日期;门牌号;街道名称;和邮政编码。
使用同一个人的经过验证的新照片可以(例如定期地)更新动态身份令牌,其哈希值可以存储在链上。因此,当一个人出示自己进行身份识别时,例如在机场,他们出示他们的钱包,该钱包从一组分布式网络设备返回签名消息。
每个设备在阈值签名中对密钥片进行签名,并带有验证其对信息的了解的消息,这些设备由包含身份令牌的钱包进行联系。在一个例子中,当用户被要求验证他们的年龄是否超过18岁时,他们的钱包会直接或通过单独的显示器向检查其详细信息的人显示他们的照片,并且显示该人出生日期的设备网络可以证明这一点。这样,检查ID的人只能看到照片和经过证明的信息,因为验证证明信息的设备仅仅知道经过证明的信息——他们没有看到照片,而只是照片的一个哈希值。
身份令牌提供了简单、快速、低成本、可扩展的身份网络,该网络可以提供完全证明的信息,而无需向验证机构以外的任何人披露当事方的完整身份,然后在创建动态身份令牌时仅披露了一次。一个人可以有多个动态身份令牌,并且每个令牌都可以由单独的网络签名。
点对点电子令牌传输
在某些方面,本文披露的令牌的创建和使用可以被认为类似于使用法定货币纸币或由国家储备作为令牌发行的硬币。5英镑的钞票是由英格兰银行发行的期票,具有序列号,水印和/或其他识别特征(例如艺术品),其能够验证它们是由授权发行人发行的。一张5英镑的钞票是可替代的,可以在用户爱丽丝和鲍勃之间直接交换,而无需中介(即根据中本聪2008年白皮书标题的点对点现金转账),只需爱丽丝递给鲍勃一张5英镑的钞票或五枚1英镑的硬币。可选地,爱丽丝可以通过发卡银行或其他中介向鲍勃付款。假设爱丽丝希望通过她的银行向鲍勃支付5英镑。鲍勃随后从他的银行的自动取款机中提取的5英镑不太可能(尽管理论上可能)与爱丽丝支付到她银行的5英镑纸币相同。如果他亲自从银行出纳员那里提取5英镑,他可能会得到五个单独的1英镑硬币。无论哪种情况,鲍勃关注的是他将价值5英镑的英格兰银行令牌存入他的钱包。
虽然他们不太可能愿意这样做,但爱丽丝或鲍勃也可以销毁他们的5英镑纸币或5枚1英镑硬币,如果他们愿意的话。他们可能会烧掉他们的钞票或融化他们的硬币。可选地,英格兰银行可以从流通中撤回纸币或硬币,使其不能再在用户之间转移。同样地,根据本公开铸造的令牌可以由用户销毁或从发行人的持续使用中撤回/取消。
与本公开的令牌一样,一张纸币或硬币无论交易的次数如何,都会保持其令牌价值——一张5英镑的纸币总是值5英镑斯特林,无论是使用一次还是10,000次。
此外,纸币不能拆分或重组。如果一张5英镑的纸币被切成5张单独的纸/塑料,或者一枚1英镑的硬币被熔化成更小的金属片,它们将保留一些(可能非常小的)与转售纸和/或金属有关的内在价值,但(可能更大的)令牌价值会丢失。同样,如果根据本公开铸造的令牌以与协议不兼容的方式使用,则底层加密货币仍可能为所有者提供一些价值,但作为特定类型令牌的使用可能会变得无效。
然而,虽然纸币和硬币是在用户之间转移令牌化资源的一种简单、快速和私密的方式,但它们的效率低下,因为它们的打印介质是物理的。通过提供令牌的数字版本,本公开的一些用例可能会根据中本聪的原始白皮书提供点对点电子现金解决方案,该白皮书提供了现金的优势,但提供了一种加密安全和强制执行的替代方案,其减少了由未经授权方(例如造假者和欺诈者)的机会利用并消除了浪费,物理印刷介质的费用和低效率。
因此,在某些方面,本公开的例子提供了简单,高效且强大的区块链实施解决方案,这些解决方案与中本聪最初的突破性设计完全一致。然而,这种解决方案的好处远远超出了使用区块链技术来获取简单的数字现金或货币,就像互联网的好处远远超出了简单地提供电子消息或网页一样。这些例子为尚未在区块链上探索的解决方案提供了潜力。任何类型的资源都可以使用公开的例子进行令牌化,从而产生一种多功能且有利的区块链实现的数据转移机制。
在某些方面,迄今为止,当前区块链规则混淆了对本公开的认识和概念,这些规则将交易输出的大小限制在“灰尘”级别,并导致精力集中在交易和令牌级别的组合和拆分典范上。但是,本公开的例子能够探寻和利用区块链协议中现有功能的好处,例如比特币的SIGHASH标志和在替代协议中具有相同或相似功能的标志。传统的令牌化方法在转移过程中分解令牌并将它们重新组合成不同的令牌数量,与遵循传统的令牌化方法不同,这里披露的例子包括使用独特的、固定值的、计价的令牌,这些令牌可以快速有效地进行验证并能够创建超越已知方法能力的系统。因此,提供了改进的区块链网络和解决方案。
此外,一旦发行了此处披露的令牌,令牌发行人就不需要建立或维护额外的基础设施来进行令牌交换/转移/验证,从而提供对已知技术的高效和安全的改进。通过简单地指定在脚本中构建交易的方式来利用区块链网络的功能和优势。所有令牌转移都是在链上进行的,因此利用了区块链网络的加密执行、共识机制和安全性,以及不可变、可检查、带时间戳的事件记录在链上得到保护。用户无需将数据插入脚本,同时能够使用适合其个人要求的脚本来达到锁定令牌,而无需更改令牌的值。由于指定了代表令牌化资产可转移价值的下层加密货币单位,因此用户不需要将数据插入脚本。由于在脚本方面没有额外的开销,这再次在账本使用方面带来了效率优势。
关于数字钱包,本公开避免了或至少缓解了复杂钱包集成的问题,从而最大限度地减少了时间、精力、计算能力和成本等开发资源。钱包不需要与区块链网络接口,只需要获取区块头来验证其交易中的令牌的SPV证明以及他们收到的相关历史交易。钱包得到了简化,因为在某些例子中,它们不需要构建交易,它们可以简单地以通常的方式接收、签名和发送令牌。因此,本公开的示例提供了构建迄今为止未知的令牌化系统和工具的能力,这些系统和工具使用尽可能最简单的区块链交易输出来存储和传输令牌。
此外,本公开的例子并不要求发行人成为区块链上每笔转账交易的一方。这解决了现有解决方案在隐私和可扩展性方面面临的问题,因为它们的资源和成本要求可能会相对于用户数量而迅速增加。
因此,本公开为各种技术问题提供了技术解决方案,包括但不限于上述那些。
本公开的进一步说明性示例在以下列举的条款中提供。
1.一种区块链实现的方法,所述方法用于操作具有设备的系统,该方法包括:使用、处理和/或生成区块链交易(MTx),所述区块链交易具有:一个或多个令牌相关输出(T-UTXO),每个输出代表由令牌发行者(TI)发行的相应令牌(T)并指定a)确定设备配置的操作、状态和数据中的至少一者;b)与相应令牌(T)相关的令牌相关加密货币(TRC)的数量。
2.根据条款1的方法,其中区块链交易还包括至少一个与发行人相关的输出(I-UTXO),其中所述至少一个与发行人相关的输出包括与令牌发行人(TI)相关的发行数据(IData)。
3.根据任何前述条款的方法,其中所述确定设备配置的操作、状态和数据中的至少一者是由在相应令牌的区块链交易的输出上的指令确定的。
4.根据任何前述条款的方法,其中设备的操作由具有状态机的控制器确定,所述状态机具有两个或多个可操作状态,其中所述状态之间的转换由令牌交易确定。
5.根据任何前述条款的方法,其中系统包括输入设备,所述输入设备被配置为用于创建令牌交易输出,所述令牌交易输出包括数据,所述数据对应于所述输入设备的事件、物理事件和特征变化中至少一者。
6.根据条款5的方法,其中令牌交易输出包括签名,所述签名指示输入设备的事件、物理事件和特征变化中的至少一者。
7.根据任何前述条款的方法,其中系统包括输出设备,所述输出设备被配置为用于创建令牌交易输出,所述令牌交易输出确定了确定该输出设备的配置的操作、状态和数据中的至少一者。
8.根据条款7的方法,其中从输入设备令牌交易的状态中取回令牌交易输入。
9.根据条款8的方法,其中令牌交易输入是签名,所述签名指示输入设备的事件、物理事件和特征变化中至少一个。
10.根据条款7至9中任一项的方法,其中输出设备的令牌需要来自两个或多个输入设备的令牌交易的输入。
11.根据任何前述条款的方法,其中该设备具有如下至少一项:
控制系统,所述控制系统被配置为用于管理区块链令牌交易,所述区块链令牌交易表示设备的状态;
持有密钥对签名的存储器,所述密钥对签名用于签署令牌的UTXO,以使用该令牌及其所代表的设备更改所述设备的状态;
用于生成密钥对的安全机制,所述密钥对用于对令牌的UTXO进行签名。
12.根据前述任何条款的方法,其中至少一种:
所述设备是具有两个或多个设备的子系统;
相应的令牌(T)确定了确定两个或多个设备配置的操作,状态和数据中的至少一个;和/或
两个或多个相应的令牌确定了确定设备配置的操作、状态和数据中的至少一个。
13.根据任何前述条款的方法,其中区块链交易(MTx)还包括数据库格式、实体和参数中的至少一种和/或与创建和/或修改数据库相关的数据,所述数据库捕获确定输出设备配置的操作、状态和数据中的至少一者。
14.根据任何前述条款的方法,其中所述或每个令牌相关的输出至少部分定义了关系和/或图形数据库的一部分。
15.根据条款13或14的方法,其中所述或每个令牌相关的输出是用于修改表和/或数据库的指令,该指令确定如下至少之一(i)通过添加、删除或更新进行修改和(ii)修改行、列或记录中的至少一者。
16.根据任何上述条款的方法,其中令牌交易和每个后续令牌交易至少部分定义了写链。
17.根据条款16的方法,其中所述写链能够确定交易数据库。
18.可在控制系统中操作的装置,所述装置具有:
配置为处理和/或生成区块链交易(MTx)的控制器,所述区块链交易具有一个或多个与令牌相关的输出(T-UTXO),每个输出代表由令牌发行者(TI)发行的相应令牌(T)并指定
a)确定设备配置的操作、状态和数据中的至少一项;
b)与相应令牌(T)相关的令牌相关的加密货币(TRC)的数量。
19.根据条款18的设备,其中控制器处理在相应令牌的区块链交易的输出上的指令。
20.根据条款19的设备,其中控制器具有状态机,所述状态机具有两个或多个可操作状态,其中所述状态由控制器来确定,所述控制器处理来自令牌交易的输出。
21.根据条款18至20中的任何一种的设备,其中控制器具有状态机,所述状态机具有两个或多个可操作状态,其中所述状态由控制器来确定,所述控制器处理来自令牌交易的输出。
22.根据条款18至21中的任何一种的设备,其中所述设备是用于管理输入令牌并创建令牌交易输出的输入设备,所述令牌交易输出包括数据,所述数据与所述输入设备的事件、物理事件和特征变化中的至少一者相关。
23.根据条款22的设备,其中令牌交易输出包括签名,所述签名指示设备事件、物理事件和特征变化的至少一个。
24.根据条款18至23中的任何一种设备,其中输出设备:
与输入设备(i)直接通信和/或(ii)配置为从输入设备读取最新的令牌交易以确定输入设备的状态;和
被配置为处理来自输入设备的响应以创建令牌交易,在所述令牌交易中,所述输出确定所述输出设备的操作、状态和数据中的至少一个。
25.根据条款24的设备,其中来自输入设备的响应是签名,所述签名指示输入设备的事件、物理事件和特征变化中的至少一个。
26.根据条款18至25中的任何一种所述的设备,其特征在于:该设备是具有两个或多个设备的子系统;相应的令牌(T)确定了确定两个或多个设备配置的操作,状态和数据中的至少一个;和/或两个或多个相应的令牌确定了确定设备配置的操作、状态和数据中的至少一个。
27.一种系统,所述系统具有用于管理一个或多个令牌相关输出(T-UTXO)的设备,每个输出代表令牌发行者(TI)发行的相应令牌(T)并指定:与相应令牌(T)相关的令牌相关的加密货币(TRC)的数量;以及确定设备配置的操作、状态和数据中的至少一个。
28.一种监视控制系统的方法,所述控制系统具有设备,其中确定设备配置的所述操作、状态和数据由加密货币区块链上的令牌交易确定,其中按时间顺序排列的一系列交易确定令牌交易的写链,并且其中该方法取回并核对来自令牌交易的输出,所述令牌交易在数据库中的写链上。
应当注意的是,上述记载的例子展示了而不是限制了本公开,并且本领域技术人员将能够设计许多替代示例而不脱离所附权利要求所定义公开的范围。在权利要求中,括号内的任何附图标记均不得解释为限制权利要求。词语“包括了”和“包括”等并不排除存在除任何权利要求或整个说明书中列出的要素或步骤之外的要素或步骤。在本说明书中,“包括”是指“包括或组成”,“包括了”是指“包括了或组成了”。在本说明书中,词语“包括”,或诸如“包含”、“构成”或“包括了”的变体,将被理解为意味着包含所述元素、整数或步骤、或元素组、多个整数或多个步骤,但不排除任何其他元素、整数或步骤、或元素组、多个整数或多个步骤。元素的单数引用不排除此类元素的多个引用,反之亦然。本公开可以通过包含几个不同元件的硬件和适当编程的计算机来实现。在列举了若干装置/手段的设备权利要求中,这些装置/手段中的几个可以由硬件的一项或者同一项来体现。纯粹在相互不同的从属权利要求中列举某些措施这一现象本身并不表示不能利用这些措施的组合来获得好处。
在本文中,我们使用术语“区块链”来包括所有形式的电子、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可的和未经许可的账本、共享账本、公共的和私有的区块链及其变体。由于比特币账本是区块链技术最广为人知的应用,因此本文将在此使用以便于参考,尽管应该注意的是,术语“比特币”在本文中旨在指源自或基于比特币协议的任何版本或变体。此外,已经提出并开发了其他非比特币区块链的实现方式,从而本公开的范围包含替代的区块链实现和协议。
术语“用户”在此可以指人或基于处理器的资源。
本领域技术人员很容易理解,在本领域中从将硬币从一个地址/所有者发送到另一个地址/所有者方面而言通常是指加密货币的支出。但是,实际上没有真实的“硬币”被转移。相反,所有权的控制从一个脚本转移到另一个脚本。如本文所用,短语“加密货币的数量/数额/部分”,“加密货币的非负数量等”等旨在表示零个或超过零个单位的加密货币,例如关于比特币的>=0聪。
Claims (15)
1.一种使用区块链实现的方法,所述方法用于操控一种具有设备的系统,所述方法包括:
使用,处理和/或产生区块链交易(MTx),所述区块链交易具有:
一个或者多个令牌相关的输出(T-UTXO),所述输出的每个代表由令牌发行人发行的相应令牌(T)并且指定了
a)所述运算,状态和数据中的至少一者,其确定了所述设备的配置;
b)与相应令牌(T)关联的令牌相关的加密货币的数量。
2.根据权利要求1所述的方法,其中,所述区块链交易进一步包括至少一个发行人相关的输出(I-UTXO),所述发行人相关的输出包括与令牌发明人(T I)关联的发行数据(IData)。
3.根据权利要求1所述的方法,其中,所述确定了所述设备的配置和/或状态的所述运算,状态和数据中的至少一者由在相应令牌的区块链交易的输出上的指令来确定。
4.根据如上权利要求任一项所述的方法,其中,所述设备的所述运算由具有状态机的控制器确定,所述状态机具有两个或者多个可运算的状态,其中,状态之间的所述转变由令牌交易来确定。
5.根据如上权利要求任一项所述的方法,其中,所述系统包括被配置用来创建令牌交易输出的输入设备,所述令牌交易输出包括数据,所述数据对应所述输入设备的事件,物理事件和特征改变的至少一者。
6.根据权利要求5所述的方法,其中,所述令牌交易输出包括签名,所述签名指示所述输入设备的事件,物理事件和特征变化的至少一者。
7.根据如上权利要求任一项所述的方法,其中,所述系统包括被配置来创建令牌交易输出的输出设备,所述令牌交易输出确定所述运算,状态和数据中的至少一者,其确定了所述输出设备的配置。
8.根据权利要求7所述的方法,其中,所述令牌交易输入由输入设备令牌交易的状态获得。
9.根据如上权利要求任一项所述的方法,其中,所述设备具有至少一项:
控制系统,用于管理代表所述设备状态的区块链令牌交易;
持有键-对签字的内存,用于给令牌的所述UTXO签字以使用令牌和所述令牌代表的所述设备来改变所述设备的状态;
安全机制,用于产生在签字令牌的所述UTXO中使用的键-对。
10.根据如上权利要求任一项所述的方法,其中,至少一项:
所述设备时具有两个或者多个设备的子系统;
相应的令牌(T)确定了所述运算,状态和数据的至少一项,所述运算,状态和数据的所述至少一项确定了两个或多个设备的配置;和/或
两个或多个相应的令牌(T)确定了所述运算,状态和数据的至少一项,所述运算,状态和数据的所述至少一项确定所述设备的所述配置。
11.根据权利要求13或14所述的方法,其中,所述令牌相关的输出或者每个令牌相关的输出是用于改变所述表和/或数据库的指令,所述指令确定如下至少一项(i)通过增加,删除或者更新来修改和(ii)改动至少一行,一列或者记录的至少一项。
12.可在控制系统中操作的设备,所述设备具有:
控制器,用于处理和/或产生区块链交易(MTx),所述区块链交易具有一个或多个令牌相关的输出(T-UTXO),所述一个或多个令牌相关的输出的每个代表了由令牌发行人(T I)发行的相应令牌(T)并且指定了
a)确定了所述设备的配置的所述运算,状态和数据的至少一项;
b)与相应令牌(T)关联的令牌相关的加密货币(TRC)的数量。
13.根据权利要求12所述的设备,其中,所述控制器具有状态机,所述状态机具有两个或多个可操作的状态,其中,所述状态由所述控制器确定,所述控制器处理处理来自令牌交易的输出。
14.根据权利要求18到21所述的设备,其中,所述设备是输入设备,用于管理输入令牌和创建包括数据的令牌交易输出,所述数据与所述输入设备的事件,物理事件和特征变化的至少一者相关。
15.根据权利要求12到14所述的设备,其中,所述输出设备:
(i)与所述输入设备直接通讯和/或(ii)用于读取来自输入设备的最新令牌交易以确定所述输入设备的状态;和
用于处理来自输入设备的相应以创建令牌交易,在所述令牌交易中所述输出确定了所述输出设备的所述运算,状态和数据的至少一项。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2008790.4 | 2020-06-10 | ||
GB2019960.0 | 2020-12-17 | ||
GB2105595.9 | 2021-04-19 | ||
GBGB2108043.7A GB202108043D0 (en) | 2021-06-04 | 2021-06-04 | Computer-implemented system and method |
GB2108043.7 | 2021-06-04 | ||
PCT/EP2021/065333 WO2021250022A1 (en) | 2020-06-10 | 2021-06-08 | Computer implemented systems and methods |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116508290A true CN116508290A (zh) | 2023-07-28 |
Family
ID=76838831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180056073.0A Pending CN116508290A (zh) | 2020-06-10 | 2021-06-08 | 计算机实现的系统和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116508290A (zh) |
GB (1) | GB202108043D0 (zh) |
-
2021
- 2021-06-04 GB GBGB2108043.7A patent/GB202108043D0/en not_active Ceased
- 2021-06-08 CN CN202180056073.0A patent/CN116508290A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202108043D0 (en) | 2021-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230214792A1 (en) | Computer implemented systems and methods | |
Maesa et al. | Blockchain 3.0 applications survey | |
Namasudra et al. | The revolution of blockchain: State-of-the-art and research challenges | |
US10931457B2 (en) | Systems and methods for blockchain-based digital lottery ticket generation and distribution | |
Alam et al. | Blockchain-based initiatives: current state and challenges | |
Asharaf et al. | Decentralized computing using blockchain technologies and smart contracts: Emerging research and opportunities: Emerging research and opportunities | |
CN110135186B (zh) | 基于区块链技术的医疗数据交易与共享方法 | |
Andrew et al. | Blockchain for healthcare systems: Architecture, security challenges, trends and future directions | |
CN108701276A (zh) | 用于管理数字身份的系统和方法 | |
CN107660293A (zh) | 物权电子凭证(edt)的分布式管理方法及其系统 | |
CN112437922A (zh) | 分布式数据记录 | |
Sujatha et al. | Optimized digital transformation in government services with blockchain | |
WO2021250129A1 (en) | Computer implemented systems and methods for improved authentication of blockchain-based tokens | |
Romano et al. | Beyond bitcoin: recent trends and perspectives in distributed ledger technology | |
Dash et al. | Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications | |
Bosamia et al. | Comparisons of blockchain based consensus algorithms for security aspects | |
Atlas et al. | Applications with blockchain technique | |
George et al. | A blockchain based solution to know your customer (kyc) dilemma | |
Bhardwaj et al. | Applications of blockchain in various domains | |
Arredondo | Blockchain and certificate authority cryptography for an asynchronous on-line public notary system | |
JP7316921B2 (ja) | 電子資産管理方法、及び電子資産管理装置 | |
CN116508290A (zh) | 计算机实现的系统和方法 | |
Cilli et al. | " Safe Prescription": A Decentralized Blockchain Protocol to Manage Medical Prescriptions. | |
PL244966B1 (pl) | Sposób i układ zabezpieczania danych, zwłaszcza danych laboratoriów biotechnologicznych | |
Stancel | Economic Consequences of Cryptocurrencies and Associated Decentralized Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |