本发明主要涉及分布式分类账技术(包括区块链相关技术),具体涉及区块链在控制对资源(例如设备、系统、服务或电子/数字资源)的访问中的用途。本发明特别适用于提供和/或禁止访问互联网使能(internet-enabled)的设备。本发明也适用于需要临时访问资源的情况,例如,在租赁的情况下。本发明的各方面还涉及物联网(iot)。本发明可适用于控制iot设备。
背景技术:
在本文中,为了方便和易于参考,我们使用术语“区块链”,因为它是目前在这个领域中最广为人知的术语。本文使用的此术语包括所有形式的电子的、基于计算机的分布式分类账,包括基于共识的区块链、替代链、侧链和交易链技术、许可和未许可的分类账、共享分类账及其变体。
区块链是一种电子分类账,它是一种基于计算机的,去中心化的、分布式系统,由区块组成,而这些区块又由交易组成。每笔交易包括至少一个输入和至少一个输出。每个区块包含前一个区块的散列,使得区块链接在一起,从而创建一个永久的、不可更改的记录,该记录自区块链诞生之始就已写入区块链的所有交易。交易包含嵌入其输入和输出中的被称为脚本(script)的小程序,这些小程序指定如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须:i)通过接收交易的第一节点对其进行“验证”——如果交易有效,则所述节点将交易传输给网络中的其它节点;ii)将交易添加到矿工建立的新的区块;和iii)挖掘,即,将交易添加到过去交易的公共分类账中。
虽然已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账(bitcoinledger)。虽然出于方便和说明的目的,本文中提到了比特币,但应该指出的是,本发明不限于比特币区块链的应用,其他区块链实施方式和协议也落入到本发明的范围内。
区块链技术最有名的是其在加密数字货币上的应用。然而,近年来,数字企业家们已经开始探索使用比特币所基于的加密安全系统和能够存储在区块链上的数据来实现新的系统。
当前感兴趣和研究的一个领域是使用区块链来实施“智能合约”。这些计算机程序旨在自动执行合约或协议条款。与用自然语言编写的传统合约不同的是,智能合约是机器可执行程序,其包括可以处理输入以产生结果,然后可以根据这些结果执行动作的规则。
另一个与区块链相关的领域是使用“代币”(或“彩色硬币”)通过区块链来表示和转移现实世界的实体。由于代币没有可辨别的含义或价值,所以潜在敏感或机密的项目可以使用代币来表示。因此代币用作标识符,允许参考真实世界项目。
本发明还涉及区块链实现的机制的使用,用于控制对资源的访问。该资源可以是“物联网(iot)”设备。物联网在维基百科中描述为“网络,在该网络中,物理设备,车辆,建筑物和其他项目嵌入了电子器件、软件、传感器和使这些物体能够收集和交换数据的网络连接,......物联网允许在现有网络设施之间感知和远程控制对象”。
技术实现要素:
本发明在所附权利要求中限定。
本发明可提供一种方法和/或系统,可以是控制方法/系统,可以是计算机实现的方法/系统,可以是区块链实现的方法/系统,可用于利用区块链交易,可以用于使用区块链协议。本发明可用于方便控制对资源的访问或使用。因此,本发明可用于提供对资源的临时控制。其可用于授予和/或拒绝访问/使用资源。
所述资源可以是互联网使能的资源,可以是物联网(iot)资源,可以是一个设备或多个设备,可以是车辆、建筑物或机器。互联网使能的资源可以由资源提供者提供、拥有和管理。
本发明可以提供验证或认证方法/系统。本发明可以涉及使用至少一个密码密钥,可以是公钥/私钥对。可以使用共享机密(secret)来生成加密密钥。
本发明可用于锁定/解锁、启用或禁用,操作或关闭或以其他方式操纵资源的状态或功能。本发明可用于控制用户对资源的临时访问/使用。本发明可用于实现租赁或租用过程。可以在合约中实现、定义和/或描述该过程的至少一部分。其可以是计算机可执行的智能合约。
本发明可包括控制对互联网使能的资源的访问和/或使用的方法,包括生成第一区块链交易(txb)的步骤。该步骤可以由资源控制器执行。txb可以以不完整的形式生成,其包括输出,该输出包括赎回脚本,该赎回脚本包括表示与资源用户相关联的公钥的代币。(资源用户可能先前已将公钥提供给控制器)。控制器可以将不完整的交易txb发送给资源用户以进行修改和/或完成。
资源用户可以在从控制器接收后,修改或完成第一交易(txb)。
第一交易(txb)可以包括:
i)代表与访问和/或使用互联网使能的资源有关的智能合约的代币;
和/或
ii)至少一个输出,用于将来自互联网使能的资源的用户的价值(value)传送到资源的控制器和/或第三方。
其还可以包括向互联网使能的资源传送与资源用户相关的公钥的步骤。公钥可以是加密密钥,可以构成公钥/私钥对的一部分。
其还可以包括向资源传送已使用私钥加密的消息或某种其他形式的数据的步骤。这可以是加密密钥。其可以构成公钥/私钥对的一部分。
其还可以包括基于使用所述公钥成功地对消息进行解密而允许或阻止访问和/或使用互联网使能的资源的步骤。
第三方可以是托管代理。智能合约可包括与使用和/或访问资源的协议有关的细节或条件。价值的转移可以是一种资金(例如一定数量的货币)支付。货币可以是加密数字货币,例如比特币。
第一区块链交易可以包括具有赎回脚本的输出,该赎回脚本包括表示与资源用户相关的公钥的代币。
该方法还可包括从代币访问或获取公钥并将其存储在存储器中的步骤。该步骤可以由互联网使能的资源执行。密钥可以存储在iot设备中的、在iot设备上的或连接到iot设备的存储器中。
资源用户可以从资源接收第一交易。第一交易可以以部分完成的形式被接收。第一交易可以从资源控制器接收。资源用户可以通过插入一个或多个输入和/或一个或多个输出来修改第一交易。
第一交易可以由资源控制器生成并发送到或以某种方式传递给资源用户以进行修改。资源用户可以通过向第一交易添加至少一个输出来修改第一区块链交易。
资源用户可以修改第一交易,使第一交易包括:
·从区块链上的另一个(先前的)交易中花费一部分加密数字货币的输入;
和/或
·将一部分加密数字货币转移给第三方的输出,优选地,其中所述输出还传递代币化合约(即代表合约的代币);和/或
·将一部分加密数字货币传输到资源控制器的输出;和/或
·将一部分加密数字货币作为找零传回资源用户的输出。
该方法可以包括将第一交易提交给区块链网络的步骤。
加密的消息可以由资源用户发送到互联网使能的资源。它可以由用户使用手持或便携式计算设备发送,例如智能手机。为此,可以在用户(客户端)设备上安装应用程序(app)。
该方法还可包括向区块链网络提交第二交易的步骤,所述第二交易包括:
输出,其将代币发送到资源,其中代币表示或包括与资源用户相关的公钥,或者所述公钥的散列。该方法还可以包括基于由第二交易的代币表示的公钥从存储器中移除用户公钥的先前存储版本的步骤。这可以通过搜索由代币提供的密钥的存储版本来实现。该方法还可以包括通过创建第三交易来使第二交易的代币进行去代币化(detokenizingthetoken)的步骤,该第三交易包括花费第二交易的输出的输入。
向区块链网络提交第一、第二和/或第三交易可以是自动化的。提交的时间可能取决于相应的交易中提供的指令或设置。这可以是cltv指令或机制,或在功能上基本等同的其他机制。
第一区块链交易可以包括用于将存款支付(depositpayment)转移到资源控制器的输出。附加地或替代地,第一区块链交易可以包括用于将支付转移到托管代理的输出。
该方法还可以包括将公钥或对其位置的引用存储在存储资源中的步骤。存储资源可以是分布式散列表,或者与资源相关或可由资源访问的存储器。
该方法还可包括通过以下步骤防止进一步访问和/或使用互联网使能的资源的步骤:从存储资源中移除公钥;和/或使用区块链交易的赎回脚本来花费另一个区块链交易的代币化输出(tokenisedoutput)。
本发明可以提供一种用于控制对互联网使能的资源的访问和/或使用的方法。该方法可以包括在提供有对应于已经存储在存储器中的公钥的私钥时,允许访问和/或使用互联网使能的资源的步骤。公钥可以存储在存储器中,该存储器位于资源中、在其上或连接到资源。附加地或替代地,它可以存储在远离或不同于互联网使能的资源的位置。
附加地或替代地,该方法可以包括通过从存储器中移除公钥来防止访问和/或使用互联网使能的资源的步骤。
附加地或替代地,防止访问和/或使用的步骤可以包括使用第二区块链交易的赎回脚本来花费第一区块链交易的代币化输出。
本发明还提供了一种计算机实现的系统,其用于执行上述方法的任何实施例。
本发明可包括使用指令、标志、代码或操作码或一部分计算机代码(为方便起见我们将其称为“时间锁定机制”)来向区块链网络广播交易和/或指定可以花费交易输出的日期和/或时间的步骤。这可以使用例如比特币checklocktimeverify(cltv)操作或功能,或类似或等同的机制来实现。附加地或替代地,可以使用适当设置的计算代理来实现时间锁定机制。交易可以是第一、第二和/或第三交易。时间锁定机制可用于将交易传播到区块链网络或在特定时间花费输出,例如,何时授予、拒绝、更改或撤销对资源的访问或控制。时间锁定机制可以由资源用户指定,或由资源提供者或第三方指定。
根据本发明的系统可以包括:
互联网使能的资源;这可以是物联网设备或装置;和/或
区块链;和/或
互联网使能的设备,其与用户相关联并且用于存储与用户相关联的加密密钥。该(客户端)设备可以是便携式或手持式计算设备。
客户端设备可以是智能手机或平板电脑或笔记本电脑。客户端设备可用于生成公共和/或私人密码密钥。它可以使用机密值(secretvalue)来做到这一点。这可以是共享机密(secret)。客户端设备可以用于执行软件,诸如“应用程序”。应用程序可以用于与资源交互、与资源通信。可以设置以安全的方式存储加密密钥。可以设置使用密钥来加密消息。可以设置将加密的消息传送给资源,可以通过无线通信信道和/或协议来实现。应用程序可以用于与服务器上提供的另一软件资源通信。服务器可以由资源提供者操作或为资源提供者操作。服务器可以主导网站。网站可以使用户能够表达对控制、访问和/或使用互联网使能的资源的兴趣。服务器端软件可用于生成智能合约。智能合约可以包括与使用/访问互联网使能的资源有关的条款和/或条件。
互联网使能的资源可以用于生成区块链交易并将该交易提供给区块链网络。
描述的与本发明的一个方面或实施例相关的任何特征可以同样适用于本发明的任何其他方面或实施例。描述的与方法相关的任何特征也可以应用于系统,反之亦然。
本发明可以提供基本上如以下描述的涉及租赁场景的说明性实施例的方法和/或系统。
附图说明
参考本文所述的实施例,本发明的这些和其他方面将变得清晰并得以阐明。现在将仅通过示例并参考附图来描述本发明的实施例,其中:
图1a示出了根据本发明的说明性实施例的系统。
图1b提供了一个流程图,示出了使用根据该实施例的系统来租用汽车所涉及的步骤。
图2示出了多个区块链交易及其各自的输入/输出,可用于实现本发明的实施例。
图3a和3b示出了第一区块链交易,其用于使得能够访问互联网使能的汽车。
图4示出了第二区块链交易,用于删除对汽车的访问。
图5示出了用于控制对汽车的访问的第三区块链交易。
图6示出了第四区块链交易,其用于去代币化(detokenize)在该示例的汽车租赁过程中使用的加密数字货币量。
具体实施方式
本发明提供了一种用于提供、终止和控制对资源的临时访问的机制。有利地,它使用区块链协议允许访问互联网的用户与资源交互。所述资源可以是任何类型的资源,但在本示例中,资源是互联网使能的租用汽车。该方法结合区块链协议,即常规(例如比特币)交易、智能合约和“彩色币”(代币化)交易来探索交易可用性和可能性的各个方面。
我们仅出于说明的目的提供了将本发明用于车辆租赁服务的示例。汽车租赁服务包括与特定时段租赁车辆相关的广泛服务,时段可从几个小时到几个月不等。这些服务通常经网站通过在线预订和智能手机应用程序提供。由于智能手机技术快速应用和互联网快速接入,客户偏好的变化是导致行业增长的关键因素之一。然而,应该注意的是,这个汽车租赁过程的例子并不是限制性的。本发明在需要控制对某种类型资源的临时访问的其他情景和应用中同样有益。本文描述的潜藏基础设施可以用于需要永久记录的各种交易,并且两方或多方希望实现任何类型的与访问相关的协议,例如,住宅物业租赁合约。
本发明提供了一种改进的访问解决方案,非常方便用户与之交互。该解决方案不需要用户(例如租用者)亲自前往预定位置以践行或停止访问。例如,在传统的租赁情况下,租赁者需要到租赁办公室来取汽车或财产钥匙,或签订合约等。本发明避免了这个问题,因为它使计算设备例如智能手机能够起访问机制的作用,例如汽车/房屋钥匙。此外,本发明的软件应用程序的结合提供了搜索的能力,并且它允许用户注册他们的具体信息。
本发明的一个重要方面是可以利用用于将区块链交易传播到区块链网络和/或允许输出在指定时间变得可花费的机制。例如,可以在交易中使用比特币checklocktimeverify(cltv)机制。关于本发明,这可以是有利的,因为所述机制可以用于自动执行合约。例如,所述机制可用于控制何时可以授予、更改或拒绝对资源的访问或使用。
同样重要的是要注意该资源使用物联网(iot)设备来执行一系列可能的功能,例如与资源相关的功能。用户的加密密钥(pubkey)被传送到资源以便在其上或其中存储,以便准许访问。随后将密钥从资源的内存中删除,以禁止进一步访问。iot设备是可编程的“区块链iot设备(bid)”,即它是互联网使能的设备,其也能够监视区块链网络、与区块链网络交互并进行到区块链网络的发布。本发明还包括通信协议。在优选实施例中,这使得能够经由软件应用程序(app)与资源进行通信。
图1a示出了系统100,用于实现根据本发明的说明性实施例的系统100。然而,本领域技术人员将理解,可以对系统100进行更改而仍然落入本发明的范围内。
系统100包括:
·服务器102,其提供客户使用的用于租用汽车的网站
·汽车110,包括iot设备104,iot设备104包括区块链iot设备(bid)106
·智能手机或其他计算设备,例如平板电脑、笔记本电脑等108,用于使用近场通信或蓝牙tm或任何其他合适的协议,优选地,无线传输协议经由iot设备104向汽车110发送消息。
在该示例中,“区块链iot设备(bid)”是用于执行预定指令的计算代理,所述预定指令安全地存储在bid之外(off-bid)并且被通过加密密钥访问。“在bid之外(off-bid)”是指指令不在bid本身内提供,而是存储在别处并在需要时访问。选择和设置这些指令以执行所选任务或多个任务。执行指令时,指令可以控制和影响iot设备的行为。bid可以驻留在iot设备本身,这意味着bid安装在iot设备中或iot设备上提供的存储器中。然而,在其他实施例中,bid可以驻留在设备外并且具有连接到设备的互联网连接。
物联网设备有自身的加密密钥(以及ip地址),因此可以安全地与其他设备或dht等进行通信和交互。物联网设备的“操作系统”是一个简单的通用系统,具有一些嵌入式功能(至少用于,但不限于用于):
·加密计算
·从外部源(例如dht)获取指令
·执行简单的操作,例如切换开关(即在物理iot设备上)
因此,iot设备或其相关的bid都不包含其自身的内置指令,也不“知道”它做什么或如何做。bid仅包含用于从其他地方安全地获取指令的机制。bid只能执行一组简单的操作(以下仅为说明而非限制):
·访问自己的主私钥和公钥对;它也有自身的(可导出的)btc地址;
·能够将数据发送到ip地址或从ip地址接收数据;
·机密共享协议计算——在优选实施例中,这些可以嵌入在机器代码中;
·查找并解释区块链事件;
·操作和控制其所连接的物理设备(通过标准api,基本上只是一组开关(switches))。
可以使用安全机制对bid的传入和传出通信进行加密,该机制允许使用共享机密(sharedsecrets)创建密钥。这允许:
(i)防止“黑客行为”,提高安全性
(ii)简单的通用软件升级协议
(iii)可移植性(deviceagnosticism)
我们现在使用系统100并参考如图2所示的(比特币)交易链来描述汽车租赁过程的各个阶段。租赁过程使用三个“阶段”来描述:
1.阶段1:参与各方之间订立租赁协议
2.阶段2:授予对资源的访问权限,即客户使用资源
3.阶段3:删除对资源的访问,因为合约因某些原因而终止,例如根据合约条款,合约在特定时间到期,或已发生终止事件,例如归还了所租车辆。
阶段1:合约订立
参见图1b和图2。在此示例中,资源提供者是汽车租赁公司,资源是其上具有互联网使能的计算机的车辆。客户(在此示例中也可称为“用户”或“租用者”)通过提供商的网站输入其订单的详细信息,以表明其希望与租赁公司签订租赁协议。客户向租赁公司提供他/她的公钥。公钥具有相应的私钥,它们一起形成本领域已知的加密密钥对。参见图1b的步骤s100。
为此,汽车租赁公司生成了新合约。这是机器可执行的“智能合约”(以下简称为“合约”)。智能合约在本领域中是已知的。在图1b的步骤s102中,汽车租赁公司通过将新合约发布到公开可用的分布式散列表(dht)中来共享合约。合约包含租车条款,例如提车和还车时间,样本车辆的详细信息等。将合约(的位置告知客户(或发送一份副本给客户)以便客户可以查看条款和条件并决定他/她是否希望继续。在这个例子中,我们假设汽车租赁的成本是10比特币(btc)。
有利地,在dht上注册合约还允许第三方访问文件并在发生争议时查看条款。然而,在一些实施例中,可以使用安全机制来限制对授权个人或组织对合约的访问——例如,可能需要密码或一些其他形式的认证。
由租车公司生成所提议的交易txb
所述公司还生成区块链交易(txb),该交易发送给客户(但不发送给区块链网络)。参见图3a的所提议的交易txb。为了实施租赁协议,租用者需要完成租赁公司准备的交易txb。所提议的交易包括代币(或“彩色币”)。这里,术语“代币”和“彩色币”可互换使用。如本领域中已知的,可以使用代币通过包括一些元数据经由“常规”区块链交易来传送数据。这是通过包括提供一些内在价值的输出(例如一些比特币)并在输出的锁定脚本的元数据中包括代币来实现的。在此情况下,输出0的脚本包含元数据,该元数据包括客户公钥的散列。可以使用属于租赁汽车的区块链地址来使用代币化的币。因此,当协议实施时,汽车将能够通过代币访问客户的公钥。这在图1b的步骤102中示出。
因此,所提议的txb用于确认租赁公司与租用者签订租赁协议的意图,并且还为汽车提供了获知租用者公钥的方式。所提议的txb还允许租用者查看包含其公钥的散列和发送给汽车的输出(输出1)的交易。
当所提议的交易txb被发送到租用者时,所提议的交易txb具有单个输入(i0)和单个输出(o0)。输入花费先前交易的输出(如图2中的虚线框所示),并使用汽车租赁公司的数字签名进行签名。
所提议的区块链交易txb的第一输入(i0)包括sighash标志“sighash_none|sighash_anyonecanpay”,其使输入和输出能够被添加到txb。sighash_none的使用保护了输入,因为任何人都不能对它进行更改。但是,租用者能够改变输出。
此输出o0的锁定脚本包含租用者公钥的散列值。锁定脚本包含以下内容:
op_hash160<hash160(redeemscript)>op_equal
为了解锁txb的输出o0,需要以下赎回脚本:
op_1<metadatahash(renter’spublickey)><car’spublickey>op_2
op_checkmultisig
脚本中的元数据包括“彩色币”,当完成设置过程时,该币将允许汽车访问租用者的公钥。
汽车租赁公司生成交易txb’
当汽车租赁公司将合约文件提交给dht时,还生成新的文档,其中包含租用者公钥的散列并将其共享给dht。txb’是区块链交易,txb’包括附加于txb’的具有彩色币的输出。参见图5,彩色币用于将租用者公钥的位置通知给托管代理。如下所述,这对于租赁过程的终止阶段是必需的。
txb’的赎回脚本如下:
op_1<metadataofhash(renter’spublickey)><escrow’spublickey>op_2
op_checkmultisig。
因此,托管的公钥需要解锁txb’并获得对租用者公钥的访问权。
客户完成txb
如果客户希望继续租车,他/她会花费她从先前交易(txa)中所获得的比特币(或其他数字货币)。参见图1b的步骤104和图2。我们假设先前输出的币值是15btc,并且车辆租赁的成本是10btc。
然后,租用者通过添加由租用者签名的输入(i1)来完成所提议的txb。输入1从txa花费15btc(参见图1b的步骤104)。租赁者还向交易txb添加了三个输出,其中:
(i)向多重签名地址支付一个代币化的币,其固有值为9btc——输出1;
(ii)向公司支付1btc作为定金——输出2;和
(iii)向租赁者自己归还5btc——输出3。
txb的完整版本如图3b所示。请注意,如果txa的输出值与汽车租赁的成本相同,则不需要将找零归还给客户。
由于合约已在dht中注册,因此可以使用脚本中的元数据内的彩色币来表示关联的uri和散列数。这允许交易与合约相关联,并允许在安全要求允许的情况下引用和访问合约。
txb的输出1的赎回脚本是:
op_2<metadatacontract><renter’spublickey><company’spublickey><escrow’spublickey>op_4op_checkmultisig
txb的输出o0和输出o1的两个不同的赎回脚本在图3b中示出,图3b提供了交易txb的注释示例。
“租用者的公钥”是借用汽车的客户的公钥。“汽车的公钥”是正在被借用的汽车的公钥。“公司的公钥”是公司为方便汽车租赁的公钥。“托管的公钥”是托管代理的公钥。
代表合约的代币是2/3多重签名(2of3multisig)地址,包括租用者的签名、公司的签名和托管代理的签名。多签名交易需要多个签名才能转移资金。在目前的情况下,2/3多重签名机制很有用,因为它使租用者能够与租赁公司和名为潜在签署人的第三方仲裁员(托管代理)一起为交易提供资金。如果交易顺利进行,则客户和租赁公司都签署交易,并将资金转移给租赁公司。如果出现问题,他们可以签署交易以退款给客户。如果他们不能达成一致,托管代理将仲裁并向其认为应得的一方提供第二个签名。
当客户完成txb时,将其提交到区块链网络。这表明客户已同意合约中的条款,并希望继续进行汽车租赁。cltv机制可用于指定交易广播的时间和/或何时可以使用输出。
阶段2:启用访问
在图1b的步骤106中,iot设备104使用来自txb的输出0的彩色币从dht访问租用者的公钥。公钥的位置可以通过消息提供给汽车。该消息可以包含指示公钥在dht中的位置的散列。然后,iot设备104可以将公钥添加到其与被授权访问汽车的个人相对应的公钥数据库中。所以现在汽车“知道”客户的公钥。根据所涉及的实施方式,密钥可以存储在iot设备中或iot设备上的存储器中,或者在设备外部存储在单独的位置,然后在需要时由设备访问。参见图1b的步骤106。
然而,应当注意,在本发明的其他实施例中,租用者的公钥可以以任何其他合适的方式传送到iot设备,并且不一定通过该示例中描述的方式。
客户拥有智能手机108,其包含私钥,该私钥对应于先前提供给汽车租赁公司的公钥。智能手机可以用于执行已经从汽车租赁公司的服务器下载并安装的应用程序(app)。该应用程序可以提供使客户能够与汽车租赁公司和/或汽车交互的功能。智能手机108将消息(“解锁门”)传送到iot设备104。该消息使用私钥加密,并且只能用相应的公钥来解密。参见图1b的步骤s108。
汽车104从智能手机接收加密的消息,并尝试使用在步骤106中存储的公钥对其进行解密。如果消息不能被解密以提供预定值或代码,则验证失败并且汽车保持锁定。或者,如果可以使用先前存储的公钥成功解密消息,则认为验证已成功并且车辆已解锁。通过这种方式,基于加密密钥的使用,可以允许或拒绝对资源的访问。
在使用过程中,智能手机应用程序可用于向汽车发送各种类型的消息,例如“锁定”、“解锁”、“打开灯”等。这些消息中的每一个都使用客户的私钥进行了加密,在使用存储的公钥成功解密之后,才执行指定的任务。
阶段3:禁用访问
在最后阶段,租用期即将结束。租用期结束的原因可以是因为合约中规定的时间段已截止,或者因为客户不再需要车辆或其他原因。因此,现在应当取消租用者对汽车的临时访问权。当车辆被归还(或公司以某种方式终止租赁期)时,托管代理生成新的区块链交易(txc),其中包括使用公司的签名和租用者的签名。参见图1b的步骤s112。txc的目的是“释放”彩色币,以便将9btc资金支付给汽车租赁公司。交易(txc)如图4所示。
txc包括两个输入,如图2所示。第一输入(i0)从txb花费了输出o1。第二输入(i1)是来自txb’的输出,如图5所示。如上所述,汽车租赁公司生成txb’。
在将txc传播到区块链网络时,汽车租赁公司在步骤s114中向iot设备104发送消息。该消息表明租用过程已完成。该消息包含租用者的公钥和赎回脚本的散列值。
然后,在步骤s116中,iot设备104从汽车的存储器(或其存储的任何其他地方)移除租用者的公钥,这意味着汽车不再能够解密来自智能电话108的消息。
然后,bid106在步骤s118中生成新的区块链交易txd,以将由txc生成的彩色币去代币化或转换为“常规”比特币值。
通过创建新交易txd来执行去代币化(detokenisation),该交易具有包含代币的输入和不包含代币的输出。为了执行去代币化,将所需的签名呈现给锁定脚本,以及包含代币的赎回脚本,可以表示为:
hash160<hashofredeemscriptcontainingtoken>equal(用于输出txc的锁定脚本)
<signature><redeemscriptcontainingtoken>(通过txd呈现给txc的锁定脚本)
hash160<hashofsignature>checksig(txd的输出:注意,不包含代币)
由此,代币已被txd删除。
本发明的益处包括(但不限于):
·其设计本质上是安全的——区块链(例如比特币)协议不需要可信方;
·作为基于区块链协议的实施例,它利用ecdsa来证明所有权,这在区块链交易中起着关键作用。
·本发明可以利用checklocktimeverify(cltv)选项/设置在授予对资源的访问权时广播交易。
·分布式,因此避免了大的单点故障,不易受到攻击;
·易于管理和维护,使得比特币网络易于使用;
·便宜;比特币协议通常只需要很少的交易费用;
·区块链是全球性的和公开的,任何可以访问互联网的人都可以随时使用;
·透明,一旦数据写入区块链,任何人都可以看到它;
·记录是不篡改的;一旦数据被写入区块链,任何人都不能更改;以及
·保持隐私和匿名,没有任何信息可用于识别个人或团体。
应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(comprises)”意指“包括(includes)或由......组成(consistsof)”,“包括(comprising)”意指“包括(including)或由......组成(consistingof)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。