区块链实现的方法和系统
1.本技术是申请日为2017年7月21日,申请号为201780042620.3,发明名称为“区块链实现的方法和系统”的pct国家阶段申请的分案申请。
技术领域
2.本发明主要涉及分布式分类账技术(distributed ledger technologies(dlts)),特别涉及使用区块链控制资源的使用。本发明的各方面还涉及物联网(iot)。本发明可适用于控制iot设备。
3.在本文中,为了方便和易于参考,我们使用术语“区块链”,因为它是目前在这个领域中最广为人知的术语。本文使用的此术语包括所有形式的电子的基于计算机的分布式分类账,包括基于共识的区块链,替代链,侧链和交易链技术,私人或公共分类账,经许可和未经许可的分类账,共享分类账及其变型。
背景技术:4.区块链是一种电子分类账,它是一种基于计算机的,去中心化的、分布式系统,由区块组成,而这些区块又由交易组成。每笔交易包括至少一个输入和至少一个输出。每个区块包含前一个区块的散列,使得区块链接在一起,从而创建一个永久的、不可更改的记录,该记录自区块链诞生之始就已写入区块链的所有交易。交易包含嵌入其输入和输出中的被称为脚本(script)的小程序,这些小程序指定如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
5.为了将交易写入区块链,必须:i)通过接收交易的第一节点对其进行“验证”——如果交易有效,则所述节点将交易传输给网络中的其它节点;ii)将交易添加到矿工建立的新的区块;和iii)挖掘交易,即,将交易添加到过去交易的公共分类账中。
6.虽然已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账(bitcoin ledger)。虽然出于方便和说明的目的,本文中提到了比特币,但应该指出的是,本发明不限于比特币区块链的应用,其他替代性的区块链实施方式也落入到本发明的范围内。
7.区块链技术最有名的是其在加密数字货币上的应用。然而,近年来,数字企业家们已经开始探索使用比特币所基于的加密安全系统和能够存储在区块链上的数据来实现新的系统。
8.当前感兴趣和研究的一个领域是使用区块链来实施“智能合约”。这些计算机程序旨在自动执行合约或协议条款。与用自然语言编写的传统合约不同的是,智能合约是机器可执行程序,其包括可以处理输入以产生结果,然后可以根据这些结果执行动作的规则。另一个与区块链相关的领域是使用“代币”(或“彩色币”)通过区块链来表示和转移现实世界的实体。由于代币没有可辨别的含义或价值,所以潜在敏感或秘密的项目可以使用代币来进行。因此代币用作标识符,允许标识真实世界项目。
9.本发明还涉及区块链实现的用于控制对资源的访问的机制。该资源可以是实体资
源,例如“物联网(iot)”设备。物联网在维基百科描述为“嵌入了电子器件、软件、传感器的物理设备、车辆、建筑物和其他项目的网络以及使这些物体能够收集和交换数据的网络连接......物联网允许在现有网络设施之间感知和远程控制物体”。在其它实施例中,所述资源可以是非实体资源,例如网络或软件,一些加密数字货币或任何其它形式的资产。
技术实现要素:10.本发明在所附权利要求中限定。
11.本发明提供了一种计算机实现的方法和相应的系统。本发明可提供区块链实现的控制方法。该方法可用于使能、影响、管理或控制对资源的使用和/或访问。所述资源可以是因特网使能的资源,可以是iot(物联网)资源,可以是实体资源例如设备或装置或过程,也可以是基于计算机的资源,例如网络或软件。
12.所述方法包括以下步骤:生成指示资源使用条件的区块链交易(txa)。区块链交易可包括需要多个(数字)签名以完成区块链交易的多签名脚本;和/或将多个签名的第一子集提供给区块链交易以生成部分签名的签名脚本以部分地完成区块链交易;和/或响应于满足资源使用的条件,向区块链交易提供多个签名的第二子集以完全完成区块链交易(txa)。
13.通过这种方法,提供了以下优点:对资源的使用/访问可以安全地执行和不可变地记录。为了便于阅读,下文我们会只是简单地提及资源的“使用”,而不重复术语“和/或访问”。
14.资源使用的条件可以是使用离散量的资源,并且可以响应于所使用的资源的离散量来提供多个签名的第二子集。可以在智能合约中指定或定义资源使用的条件。智能合约可以存储在区块链之外,但是可以例如使用交易内提供的元数据从区块链引用智能合约。
15.这提供了可以递增地使用或消耗资源的优点。
16.如果不满足使用/访问资源的条件:可以禁止或更改或限制对资源的访问或使用;和/或可以将警报或通知发送到目的地。
17.可以生成多个交易。这些交易可以是部分签名的交易,可以是多签名交易。将多个签名的第二子集提供给交易txa以完成交易txa的最后步骤可以包括:从多个交易中选择交易(txa)。多个交易中的每一个可用于花费先前交易(tx1)的相同输出。(“先前”意味着包括输出的交易在区块链上的多个交易之前)。因此,在确定已满足条件时,可以从多个部分签名的交易中选择并完成交易(txa)。交易的选择和/或完成可以包括提供代理的加密密钥,并且可以由代理执行。代理可以是适当编程的自动化资源。代理可以将所选择的交易(txa)提交给区块链网络。通过在区块链上花费交易输出(tx1输出),对区块链上的交易进行验证可以使得资产例如部分加密数字货币从一方转移到另一方。
18.多个交易中的每一个可以指示与资源的使用相关的不同条件。因此,多个交易可以实现与资源的使用相关的多个条件(或场景)。本发明通过选择要完成和提交的交易,控制如何花费交易的输出(tx1)以及如何传输与输出相关联的加密数字货币。
19.条件是否满足可以由代理使用输入或信号来评估所述条件以确定。该输入或信号
可以由代理生成,或者可以从另一个源接收。输入或信号可以是,例如,物理或电子状态、时间点或任何其他输入的检测。
20.生成指示资源使用条件的区块链交易可包括生成与资源的离散量的每个整数倍相对应的区块链交易,并且可以提供多个签名的第二子集以使用每个增加的整数倍的资源。
21.这提供了提供一系列可能的使用选择的优点,从而增加了该方法的多功能性,例如,网络使用的哪些部分或网络使用的数量,或者使用停车位、设备等资源的时长。
22.可以对整数倍的最大限制进行预限定。
23.这提供了允许暗示和执行由于过度使用资源而导致的后果的优点。
24.脱块动作可以响应于超过最大限制的超过数而生成。术语“脱块”可以解释为“不通过区块链”。
25.这提供了由于过度使用要执行的资源而提供后果的优点。
26.多个签名的第一子集可包括代理的签名。代理可以是基于计算的资源。
27.这提供了增加该方法的安全性的优点。
28.多个签名的第一子集可包括资源的发行者或所有者或控制者的签名。
29.多个签名的第二子集可包括代理的签名。
30.多个签名的第二子集可包括资源的用户的签名。
31.这提供了防止发行者或用户滥用该方法的优点。
32.使用资源的条件可以是已经使用了零量的资源。
33.这提供了定义退款条件的优点。
34.区块链交易可以具有非零锁定时间。
35.这提供了防止用户滥用该方法的优点。
36.本发明还可以提供一种系统,该系统包括基于计算机的资源,该资源用于执行根据本文描述的方法的任何实施例的方法。所提及的任何关于本发明的一个方面或实施例的特征也可以应用于任何其他方面或实施例。提及的关于该方法的任何特征可以应用于本发明的系统,反之亦然。本发明的实施例可以基本上以如下方式设置。
37.参考本文所述的实施例,本发明的这些和其他方面将变得清晰并得以阐明。
附图说明
38.现在将参考附图并仅通过示例描述本发明的实施例,其中:
39.图1a是根据该实施例的系统的示意图;
40.图1b是说明客户如何设置一系列区块链交易以使用该系统支付停车费的流程图;
41.图2是alice在初始阶段支付停车费用的交易;
42.图3是由代理生成的交易并在代理签名之前发送给bob进行签名,在代理签名之前停车位已经使用了10分钟。
43.图4a和4b示意性地示出了关于停车位的使用的不同场景;和
44.图5是由代理生成的交易,该交易由代理签名并在未使用额外时间时将该交易发送给alice。
具体实施方式
概况
45.本发明提供了一种允许使用和/或访问受控资源,或管理对资源的访问/使用的新技术,通过使用多个区块链交易来实现,这些区块链交易实现了与使用或访问相关的不同使用/访问场景。例如,与在指定时间段内使用资源有关的交易,以及与在不同时间段内使用资源有关的另一交易。
46.用户(即访问或使用资源的人)对区块链进行有意的“双重花费”尝试。如本领域中已知的,当用户得以花费相同部分的加密数字货币(例如,比特币)两次时,会发生“双重花费”。显然,在传统背景下双重花费是不受欢迎的,因为至少有一方因未收到他们期望或合法欠款的资金而处于不利地位。比特币协议通过其验证机制防止双重花费。因此,本发明采用一种传统上不合需要的方法,并且出于授权的目的将其用于获得利益。
47.根据本发明,资源用户向资源控制器提供资产。此资产可以是加密数字货币的一部分,为方便起见,我们将其称为比特币(其他加密数字货币也可以使用)。比特币的金额由一组通常在智能合约中定义的条件规则决定。智能合约是区块链实现的机器可执行文档,可以在链外存储并通过区块链交易(tx)引用。所述条件规则可以包括各种规则、标准和参数等。这些规则、标准和参数等,管理或定义对资源的授权的、合法的使用/访问。在优选实施例中,这些条件规则由独立方(即资源用户或控制器之外的一方)评估。
48.因此,有利地,资源控制器确定将满足条件,而不必知道满足条件的细节,因为这些条件将由独立方确定和实施。独立方可以是自动代理,可以称为预言机(oracle)。预言机基于所执行的评估来确定条件的满足。这可以是在允许使用/释放/访问资源时,或在预定时间,或在检测到触发事件等时。该评估使预言机能够选择一个建议的区块链交易以进行完成。这是通过向所选交易提供预言机的加密签名来实现的。因此,有一个外部预言机,评估智能合约提供的条件,并基于与使用/访问相关的参数——例如资源使用了多长时间——来确定多个呈现的交易(tx)中的哪一个完成,然后,会自动使其他建议的交易无效。
49.如果预言机或代理确定不满足条件,则预言机和/或资源控制器可以采取响应步骤,例如,可以拒绝对资源的使用/访问,可以应用或配置锁定机制,或者可以向接收者发送通信(例如警报),和/或可以向区块链网络提交退款交易。解释性使用示例
50.我们根据使用停车位的示例来描述系统,其中在停车位上停车时需要交费。相关停车位所有者(拥有可用和期望的停车位的现有停车位操作员或小型企业或个人)将iot设备104附接到停车位。但是,本发明不限于与停车计时器一起使用,其他类型的受控互联网资源也可以在本发明中使用。
51.物联网设备104能够检测停放车辆的存在(这已经是普遍的做法)。该设备可以是区块链iot设备106,或者106的一部分。可编程“区块链iot设备(bid)”是支持因特网的设备,其还能够监视区块链网络,与区块链网络交互,和发布到区块链网络。
52.车辆驾驶员下载与停车场bid 106兼容的智能手机应用程序(或“智能车”应用程序——即设计为在汽车计算机上运行的应用程序)。该应用程序允许驾驶员使用加密数字货币或代币化加密数字货币通过区块链支付停车位费用。
53.停车服务可以使用智能合约来表示,这是机器可读和可执行的文档。合约中的条
款和条件使用交易(txs)中的元数据来引用,这些交易指向合约文件在dht上的位置。在其他实施例中,合约可以存储在其它任何形式的数据库或存储装置中。合约中规定的条款和条件可以包括以下内容:
·
车辆id(例如车牌)
·
停车的开始时间
·
终止时间
·
停车位标识符(例如,精确gps位置,或住宅地址,或地址+序号(也可以绘制在实际停车位或停车位的物理位置上))
·
费率(例如,可以用聪/分钟(satoshis/minute),或$/分钟等表示)
·
其他复杂条件,例如:o前2小时(或其他时段)免费o部分时段的费用(例如“每小时或一小时中的一段时间0.01btc”)
54.在一些实施例中,bid 106能够通过若干方法之一识别车辆,例如bid 106可包括对准车辆牌照的大致区域的内置相机;在另一示例中,bid 106检测由车辆发出的唯一信号id,在另一示例中,专用车载标签rfid附接到车辆。在一些实施例中,(例如,出于隐私目的)bid 106不能识别车辆,而是停车场服务员能够通过目视检查车牌,与在支付交易中登记的车牌比对,来验证是否停放了正确的车辆。
55.该应用程序可以允许执行一系列功能,例如:
·
驾驶员可以预订停车位,预订一段时间o预订可以需要(或不需要)预付比特币
·
如果付费时间终止,驾驶员可以将应用程序设置为自动支付并重新开始另一个时间段(可调)。
·
该应用程序可能允许定期停车(例如,为工作日预订)
56.如图1a所示,系统100包括停车位102,互联网使能(物联网或“iot”)的设备104,区块链物联网设备(bid)106,区块链服务器108。区块链服务器108可运行来提供对支持区块链的点对点网络的访问,以及代理110,其运行来监视区块链并与iot设备104和bid 106通信。
57.现在,我们参考图1b中的流程图使用系统100来描述停车位的使用。alice有智能手机应用程序,通过询问区块链来指示可用停车位的位置。在步骤s100中,alice找到一个方便的停车位并将她的车停放。该应用程序显示该停车位的条款和条件,例如,位于伦敦或洛杉矶等密集的市中心位置的住宅车道。
58.在步骤s102中,alice接受条款和条件,并且在选择某些选项之后,使用应用程序用比特币支付所需时间内的停车位费用。她不能完全确定她会及时回来,所以她也选择应用程序提供的自动付款选项,即每次到时间时将停车时间延长10分钟,最多延长3次(虽然她认为此项额外费用有些贵,但她愿意支付这笔费用,因为可以避免超时产生罚款和损害信誉)。
59.当然,alice知道智能手机应用程序提供如下功能:在即将到时间时只需远程延长时间,但因为她将参加会议,所有她无法确定她是否会有这个机会。之后,alice在终止时间之前返回。虽然智能手机应用程序允许她取消她不再需要的延长时间,她知道她并不需要
进行取消操作,因为bid 106操作员设置了她只需离开且bid 106会检测到她还没有使用延长时间所以(根据合约)为她自动取消延时。
60.因此,我们假设alice用5btc租用停车位1小时,额外时间费用为1btc/10分钟。
61.赊购bob 5btc的第一笔交易是支付第一小时的p2pkh,这是一笔标准的比特币交易。
62.我们将t
extra
定义为alice的汽车在标准时间段之后(即在已经支付的第一个小时之后)停放在停车位上的时间。
63.t
extra
是10的倍数,取值为0,10,20,30。在时间t=60,70,80和90分钟时,bid 106检查车辆是否仍然停在停车位上。如果不是,则bid 106向alice,bob(停车位所有者)以及第三方(或“代理”)发送消息。消息包含值t
extra
。例如,如果alice在65分时返回停车位,则t
extra
=10,并且bob应该向alice收取1btc。但是,alice不信任bob,她更愿意使用独立服务来让与资金,并且该让与应当以代理服务器的签名为条件。代理接受请求,例如t
extra
=10?,对请求进行评估,并生成输出。代理从iot设备104接收该信息。
64.alice和bob同意规则脚本并将其发送到代理服务器(o1)。该脚本可以为如下所示:示:
65.如果o1有利地解析了脚本,即满足使用停车位的条件之一,则o1签名并广播txa或txb或txc(但不是全部)。
66.在步骤s104中,代理生成新的公钥。在步骤s106中,代理从alice和bob获得公钥。然后,在步骤s108,代理生成2/3多签名地址。
67.alice生成新交易tx1,其在步骤s110中将3btc发送到多重地址,签署tx1并在比特币网络上广播它。该交易如图2所示。
68.代理验证tx1并在步骤s112中生成花费tx1的utxo的三个交易。这三个交易可以表示为txa,txb和txc。代理还在步骤s112中生成第四交易txr。txa如图3所示。txb和txc类似,但用于不同数量的比特币,如下所述。
69.从图3中可以看出,txa向bob发送1btc,向alice发送2btc,对应于t
extra
=10。txb向bob发送2btc,向alice发送1btc,对应于t
extra
=20。txc向bob发送3btc,对应于t
extra
=30。
70.txa,txb和txc中的每一个都需要2个签名,即bob签名和代理签名。在步骤s114中,
代理将txa,txb和txc发送给bob。然后bob在步骤s116中签名txa,txb和txc中的每一个并将它们作为不完整的区块链交易返回给代理。
71.txr是退款交易,将3btc发回alice;它具有对应于未来某个时刻的非零锁定时间。txr需要两个签名,即alice的签名和代理的签名。也就是说,如果alice在tx1中支付的时间内有一段时间没有使用停车位,则会自动退款。在步骤s112中,在txr生成时代理对txr进行签名。txr如图5所示。
72.现在我们考虑这个示例:alice在tx1支付的一小时之后停放在停车位的时间最多为10分钟,即t
extra
=10,参考图4a进行说明。
73.在步骤s200中,iot设备104检测到alice的汽车已经停在该车位超过tx1中支付的1小时,超过了10分钟。然后,在步骤s202中,bid 106将该汽车已经停放在该车位超过10分钟的信息发送给代理,即t
extra
=10。也就是说,上述脚本中的一个条件已经由代理人评估为真。
74.然后,在步骤s204中,代理为txa签名以完成交易。然后,在步骤s206中,可以将txa广播到区块链。完成txa向bob支付1btc,向alice支付2btc。txb和txc可以相似地完成。
75.现在我们考虑这个示例:alice按时离开停车位,t
extra
=0,参考图4b进行描述。在步骤s300中,iot设备104检测到alice已经将她的汽车从停车位移开,没有超出预订时间。在步骤s302中,iot设备104向代理发送alice已经准时离开该车位的消息。在步骤s304中,iot设备104将txr发送给给它签名的alice,以完成交易txr。交易txr的完成意味着3btc退回给alice。txr具有非零锁定时间,这意味着在锁定时间终止之前,它可能无法被挖掘并添加到区块链中。这意味着,如果alice提供签名,则txr将在未来的某个时间点广播而不是立即广播。
76.应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(comprises)”意指“包括(includes)或由......组成(consists of)”,“包括(comprises)”意指“包括(including)或由......组成(consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法不能结合获得有益效果。
技术特征:1.一种计算机实施的装置,其用于控制对资源的使用和/或访问,所述装置包括:生成模块,其用于生成多个部分签名的多签名区块链交易,每个区块链交易被布置为花费先前交易(tx1)的相同输出并且指示使用或访问所述资源的不同条件,所述区块链交易包括需要多个签名来完成所述区块链交易的多签名脚本;提供模块,其用于向所述区块链交易中的每个区块链交易提供所述多个签名的第一子集,以生成部分签名的签名脚本,来部分完成所述区块链交易;选择模块,其用于响应于满足资源的使用/访问的条件,从所述多个部分签名的多签名区块链交易选择交易(txa)并向所选择的区块链交易(txa)提供所述多个签名的第二子集,以完全完成所选择的区块链交易(txa)。2.根据权利要求1所述的计算机实施的装置,其中,在智能合约中指定或定义使用/访问所述资源的条件。3.根据权利要求1或2所述的计算机实施的装置,其中,与使用资源有关的条件是使用离散量的资源,并且响应于使用的资源的离散量来提供所述多个签名的第二子集。4.根据权利要求3所述的计算机实施的装置,其中,所述生成模块还用于生成与资源的离散量的每个整数倍相对应的区块链交易,并且提供所述多个签名的第二子集以使用每个增加的整数倍的资源。5.根据权利要求4所述的计算机实施的装置,其中,对所述整数倍的最大限制已经预定义。6.根据权利要求5所述的计算机实施的装置,其中,响应于超过所述最大限制的超过数,生成脱块动作。7.根据权利要求1所述的计算机实施的装置,其中,所述多个签名的第一子集包括代理的签名。8.根据权利要求1所述的计算机实施的装置,其中,所述多个签名的第一子集包括所述资源的发行者的签名。9.根据权利要求8所述的计算机实施的装置,其中,所述多个签名的第二子集包括代理的签名。10.根据权利要求7所述的计算机实施的装置,其中,所述多个签名的第二子集包括所述资源的用户的签名。11.根据权利要求1所述的计算机实施的装置,其中,使用或访问所述资源的条件是已经使用了零量的所述资源。12.根据权利要求1所述的计算机实施的装置,其中,所述区块链交易具有非零锁定时间。13.根据权利要求1所述的计算机实施的装置,还包括:提交模块,其用于将所述完全完成的交易提交到所述区块链以花费与先前交易(tx1)相关联的输出。14.根据权利要求1所述的计算机实施的装置,其中,所述资源是物理资源、因特网使能的资源或物联网(iot)设备。15.一种计算设备,包括:处理器;以及
存储器,其用于存储所述处理器可执行的指令,其中,所述处理器用于执行存储在所述存储器中的指令,以执行一种用于控制对资源的使用和/或访问的区块链实施的方法,所述方法包括以下步骤:生成多个部分签名的多签名区块链交易,每个区块链交易被布置为花费先前交易(tx1)的相同输出并且指示使用或访问所述资源的不同条件,所述区块链交易包括需要多个签名来完成所述区块链交易的多签名脚本;向所述区块链交易中的每个区块链交易提供所述多个签名的第一子集,以生成部分签名的签名脚本,来部分完成所述区块链交易;响应于满足资源的使用/访问的条件,从所述多个部分签名的多签名区块链交易选择交易(txa)并向所选择的区块链交易(txa)提供所述多个签名的第二子集,以完全完成所选择的区块链交易(txa)。16.一种计算机可读存储介质,具有存储在其上的计算机程序,所述计算机程序在由计算机执行使所述计算机执行一种用于控制对资源的使用和/或访问的区块链实施的方法,所述方法包括以下步骤:生成多个部分签名的多签名区块链交易,每个区块链交易被布置为花费先前交易(tx1)的相同输出并且指示使用或访问所述资源的不同条件,所述区块链交易包括需要多个签名来完成所述区块链交易的多签名脚本;向所述区块链交易中的每个区块链交易提供所述多个签名的第一子集,以生成部分签名的签名脚本,来部分完成所述区块链交易;响应于满足资源的使用/访问的条件,从所述多个部分签名的多签名区块链交易选择交易(txa)并向所选择的区块链交易(txa)提供所述多个签名的第二子集,以完全完成所选择的区块链交易(txa)。
技术总结本发明提供了一种用于控制或影响资源的使用和/或访问的新颖且有利的解决方案。该资源可以是设备,例如IoT(物联网)设备或过程。本发明通过分布式分类帐(区块链)实现。这可以是比特币区块链或某些替代区块链平台/协议。在说明性实施例中,受控资源是停车计时器。本发明可以提供一种方法,包括以下步骤:生成指示资源使用条件的区块链交易(Tx),区块链交易包括需要多个签名以完成区块链交易的多签名脚本;将多个签名的第一子集提供给区块链交易以生成部分签名的签名脚本以部分地完成区块链交易;并且响应于满足资源使用的条件,向区块链交易提供多个签名的第二子集以完全完成区块链交易。使用资源的条件可以是使用离散量的资源,并且响应于所使用的资源的离散量来提供多个签名的第二子集。多个签名的第二子集。多个签名的第二子集。
技术研发人员:史蒂芬
受保护的技术使用者:区块链控股有限公司
技术研发日:2017.07.21
技术公布日:2022/7/5