在区块链网络上进行时间释放加密的计算机实现的系统和方法技术方案

技术编号:23293927 阅读:72 留言:0更新日期:2020-02-08 22:57
描述了一种计算机实现的方法,用于在区块链网络上生成公共加密密钥并允许在指定时间段之后访问相应的私有加密密钥。所述方法包括在所述区块链网络上的代理和客户之间构建数字时间锁合约,所述代理具有在所述区块链网络上的代理地址和相关联的代理签名,所述客户具有在所述区块链网络上的客户地址及相关联的客户签名。所述数字时间锁合约规定所述代理持有与所述区块链网络上的公共加密密钥相对应的所述私有加密密钥,然后在指定的时间窗口内释放所述加密私钥到所述区块链网络。所述代理提供第一加密资产,用于持有并随后在所述指定的时间窗口内释放所述加密私钥到所述区块链网络,当所述加密私钥在所述指定的时间窗口内释放到所述区块链网络时,所述第一加密资产可转移到所述区块链网络上的代理地址。所述客户向所述代理提供第二加密资产,用于持有并随后在所述指定的时间窗口内释放所述加密私钥到所述区块链网络,当所述加密私钥在所述指定的时间窗口内释放到所述区块链网络时,所述第二加密资产可转移到所述区块链网络上的代理地址。如果在所述时间窗口打开之前释放所述加密私钥,则所述第二加密资产可转移到所述区块链网络上的客户地址。如果在所述时间窗口关闭之前没有释放所述加密私钥,则所述第二加密资产可转移到所述区块链网络上的客户地址。所述数字时间锁合约可以广播到所述区块链网络,以挖掘到所述区块链上。

System and method of computer implementation of time release encryption on blockchain network

【技术实现步骤摘要】
【国外来华专利技术】在区块链网络上进行时间释放加密的计算机实现的系统和方法
本说明书主要涉及用于时间释放加密的数字时间锁合约。本专利技术特别适合于,但不限于,与比特币区块链一起使用。
技术介绍
在本文中,使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式账本,包括但不限于区块链和交易链技术、许可及未许可的账本、共享账本及其变型。虽然也已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币账本。虽然出于方便和说明的目的,本文中涉及的是比特币,但应当指出的是,本专利技术不限于与比特币区块链一起使用,其他的区块链实施方式和协议也落入本专利技术的范围内。区块链是基于共识的电子账本,该账本被实现为由区块组成的基于计算机的去中心化、分布式系统,而区块由交易和其他信息组成。就比特币而言,每个交易是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块包含前一区块的散列,如此,这些区块被链接在一起,以创建一个永久的、不可更改的所有交易的记录,这些交易自区块链诞生之始写入区块链。交易包含小程序,这些小程序称为脚本,嵌入至所述交易的输入和输出中,这些小程序指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。为了将交易写入区块链,必须对该交易进行“验证”。一些网络节点充当矿工,执行工作以确保每个交易有效,无效交易则被网络拒绝。例如,安装在所述节点上的软件客户在引用未花费的交易输出(UnspentTransactionOutputs,简称UTXO)的交易上执行验证工作。可通过执行其锁定和解锁脚本来执行验证。如果锁定和解锁脚本的执行评估为真(TRUE),并且如果满足某些特定条件,则该交易有效,可将该交易写入区块链。因此,为了将交易写入区块链,该交易必须:i)由接收交易的节点进行验证——如果交易经验证通过,则该节点将该交易中继到网络中的其他节点;ii)添加到矿工建造的新区块中;iii)被挖掘,即添加到过去交易的公共账本中。当向区块链添加充分数量的区块以使交易实际上不可逆转时,交易被视为已确认。尽管区块链技术以使用加密货币实现方式而闻名,但数字企业家已经开始探索使用比特币所基于的加密安全系统、以及可存储在区块链上的数据来实现新系统。如果区块链能够用于不限于加密货币领域的自动化任务和过程,那么将是非常有利的。这类解决方案将能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在所述解决方案的应用中更具通用性。研究的领域之一是使用区块链来实现“智能合约”。这些智能合约是旨在自动执行机器可读合约或协议条款的计算机程序。与用自然语言编写的传统合约不同,智能合约是一种机器可执行程序,包括可处理输入以产生结果的规则,智能合约可根据这些结果执行操作。与区块链相关的另一领域是使用“代币”(或“彩色币”)通过区块链来表示和转移现实世界的实体。潜在的敏感或秘密物品可以由没有明显意义或价值的代币来表示。因此,代币充当标识符,允许从区块链引用现实世界的物品。如前所述,本说明书主要涉及用于时间释放加密的数字时间锁合约。时间释放加密的基本目的是,消息可以在当前时间进行加密,但在未来某个特定时间之前,任何人都不能解密。这实际上是一种“将消息发送到未来”或把信息放入“时间囊”的方式。这种功能有许多可能的应用,包括:·密封式拍卖(SealedBidAuctions)·密钥托管方案·无收据投票·机密数据的定时释放·政治敏感信息的“死人开关”(“DeadMan’sSwitch”)瑞文斯特(Rivest)、沙米尔(Shamir)和瓦格纳(Wagner)在1996年的第一篇详细论文[Rivest1996]中概述了实现时间释放加密系统的两种通用方法。所述两种方法是:1.“时间锁谜题”的使用——信息的加密需要费时的计算工作才能解密。2.使用可信代理,所述代理承诺在未来特定时间之前不会泄露秘密信息。其中第一种方法不需要第三方参与,但是存在两个严重且不可避免的弊端:首先,由于计算硬件的性能差异和未知的未来技术创新,不可能高精度地预测解决特定谜题所需的时间。其次,执行解密的一方必须在整个时间锁期间执行连续且昂贵的计算工作。第二种方法可能在释放的时机上既准确又精确,并且不需要任何一方执行昂贵的计算。但是,它确实依赖于第三方代理,该代理必须可信以在正确的时间释放正确的密钥。代理的可信度至关重要——除非能够有效激励代理正确执行操作。与区块链网络上的时间锁加密相关的背景信息总结如下。“以太坊闹钟”(“EthereumAlarmClock”)规定,用户在提供保证金后,可以在预定的时间段内执行交易。例如,参见URL网址:docs.ethereum-alarm-clock.com/en/latest/claiming.html#claim-deposit;和https://github.com/pipermerriam/ethereum-alarm-clock/commits/master/docs/claiming.rst。这允许在以后的某个时间和特定的时间窗口内安排事件。此外,如果未在特定的时间窗口内执行,则执行者可以赢回保证金,也可以将其没收。服务还包括付款,该付款支付给在所述预定时间执行交易的帐户。《μ链:没有硬叉如何忘记》(“μchain:HowtoForgetwithoutHardForks”)(网址:https://eprint.iacr.org/2017/106.pdf)公开了时间锁加密的示例。在公开的用例中,用户对机密文件进行加密。解密者可以通过向智能合约发送交易来请求访问解密密钥,该智能合约触发功能来检查是否已超过了截止期限t。如果时间合适,则解密者获取密钥。建议系统可以提供更高级的功能,例如只有在特定时间窗口内请求时才提供解密密钥。《比特币的安全多方计算》(网址:https://eprint.iacr.org/2013/784.pdf)公开了一种使用比特币货币的多方抽奖协议。这篇文章表明,比特币系统提供了一种有吸引力的方式来构建定时承诺的版本,其中承诺者必须在一定的时间框架内泄露其秘密或支付罚款。如果游戏因参与者行为不诚实而提前终止,则没收参与者提供的保证金。US2016086175公开了一种用于访问资产的区块链系统。房间具有私有/公共密钥对,以及希望在一定时间内租用房间的用户向其存入存款的地址;此类数据包括在交易中。时间合适时,锁会打开,允许用户进入房间。用户向房间提供者支付费用,以获得房间的使用权,如果在所需时间内房间不可用,则退还该费用。
技术实现思路
本说明书描述了一种能够通过无许可的公共区块链来保护时间释放加密服务的系统和方法。所述服务生成公钥,然后在所述服务的客户指定的未来时间释放相应的私钥。这项服务的安全性和可靠性源自新型智能合约系统,所述系统在一个示例中实现为比特币脚本,激励在正确的时间释放所述私钥,并惩本文档来自技高网
...

【技术保护点】
1.一种计算机实现的方法,用于在区块链网络上生成公共加密密钥并允许在指定时间段之后访问相应的私有加密密钥,所述方法包括以下之一或两者:/n在所述区块链网络上的代理和客户之间构建数字时间锁合约,所述代理具有在所述区块链网络上的代理地址和相关联的代理签名,所述客户具有在所述区块链网络上的客户地址及相关联的客户签名,所述数字时间锁合约规定:/n(i)所述代理持有与所述区块链网络上的公共加密密钥相对应的所述私有加密密钥,然后在指定的时间窗口内释放所述加密私钥到所述区块链网络;/n(ii)所述代理提供第一加密资产,用于持有并随后在所述指定的时间窗口内释放所述加密私钥到所述区块链网络,当所述加密私钥在所述指定的时间窗口内释放到所述区块链网络时,所述第一加密资产可转移到所述区块链网络上的代理地址;/n(iii)所述客户向所述代理提供第二加密资产,用于持有并随后在所述指定的时间窗口内释放所述加密私钥到所述区块链网络,当所述加密私钥在所述指定的时间窗口内释放到所述区块链网络时,所述第二加密资产可转移到所述区块链网络上的代理地址;/n(iv)如果在所述时间窗口打开之前释放所述加密私钥,则所述第二加密资产可转移到所述区块链网络上的客户地址;/n(v)如果在所述时间窗口关闭之前没有释放所述加密私钥,则所述第二加密资产可转移到所述区块链网络上的客户地址;和/n将所述数字时间锁合约广播到所述区块链网络,以挖掘到所述区块链上。/n...

【技术特征摘要】
【国外来华专利技术】20170619 GB 1709760.11.一种计算机实现的方法,用于在区块链网络上生成公共加密密钥并允许在指定时间段之后访问相应的私有加密密钥,所述方法包括以下之一或两者:
在所述区块链网络上的代理和客户之间构建数字时间锁合约,所述代理具有在所述区块链网络上的代理地址和相关联的代理签名,所述客户具有在所述区块链网络上的客户地址及相关联的客户签名,所述数字时间锁合约规定:
(i)所述代理持有与所述区块链网络上的公共加密密钥相对应的所述私有加密密钥,然后在指定的时间窗口内释放所述加密私钥到所述区块链网络;
(ii)所述代理提供第一加密资产,用于持有并随后在所述指定的时间窗口内释放所述加密私钥到所述区块链网络,当所述加密私钥在所述指定的时间窗口内释放到所述区块链网络时,所述第一加密资产可转移到所述区块链网络上的代理地址;
(iii)所述客户向所述代理提供第二加密资产,用于持有并随后在所述指定的时间窗口内释放所述加密私钥到所述区块链网络,当所述加密私钥在所述指定的时间窗口内释放到所述区块链网络时,所述第二加密资产可转移到所述区块链网络上的代理地址;
(iv)如果在所述时间窗口打开之前释放所述加密私钥,则所述第二加密资产可转移到所述区块链网络上的客户地址;
(v)如果在所述时间窗口关闭之前没有释放所述加密私钥,则所述第二加密资产可转移到所述区块链网络上的客户地址;和
将所述数字时间锁合约广播到所述区块链网络,以挖掘到所述区块链上。


2.根据权利要求1所述的计算机实现的方法,
其中,在步骤(iv)中,所述客户或任何其他人可以使用所述私钥来获取所述代理的第一加密资产。


3.根据权利要求1或2所述的计算机实现的方法,
其中,在步骤(v)中,所述第一加密资产也可转移到所述区块链网络上的客户地址。


4.根据前述权利要求中任一项所述的计算机实现的方法,
其中,所述计算机实现的方法由所述客户发送表示希望建立所述数字时间锁合约的请求来发起。


5.根据权利要求4所述的计算机实现的方法,
其中,所述客户指定所述第二加密资产和所述时间窗口。


6.根据前述权利要求中任一项所述的计算机实现的方法,
其中,所述代理构建所述加密公钥和加密私钥对。


7.根据前述权利要求中任一项所述的计算机实现的方法,
其中,所述代理构建所述数字时间锁合约。


8.根据前述权利要求中任一项所述的计算机实现的方法,
其中,所述数字时间锁合约在被挖掘到所述区块链中之后激活,并且所述加密公钥可公开用于加密数据,所述数据在释放所述加密私钥之前无法解密。


9.根据前述权利要求中任一项所述的计算...

【专利技术属性】
技术研发人员:托马斯·特雷维坦
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:安提瓜和巴布达;AG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1