使用低熵密码授权区块链交易的计算机实现的系统和方法技术方案

技术编号:25093091 阅读:27 留言:0更新日期:2020-07-31 23:38
可以提供一种涉及请求者和节点群组的由区块链实现的安全方法,该方法包括基于请求者选择的密码和该节点群组发送的第一数量(从节点群组导出的私钥份额和在椭圆曲线上使用双线性映射的数字签名方案的生成器函数)来生成请求者的密码密钥。可以生成请求者区块链交易的密码签名,其中该签名与请求者的密码密钥相对应。该签名可以密码和基于节点群组发送的第二数量(也来自组私钥份额)。该方法可以进一步包括使用请求者的密码密钥来证实区块链交易的密码签名。附加地或可替代地,该方法可以采用涉及节点群组的共识机制,以允许请求者使用密码来授权交易。该方法可以在逻辑上划分为一系列阶段,包括初始化阶段、筹资阶段和支付授权阶段(其中涉及预耗用交易和耗用交易)。

【技术实现步骤摘要】
【国外来华专利技术】使用低熵密码授权区块链交易的计算机实现的系统和方法
本专利技术主要涉及分布式系统,且更具体地,涉及改善在区块链上维护的通过加密方式强制执行的资产(包括诸如比特币之类的加密货币)的安全性、可靠性和可用性的方法和系统。
技术介绍
在本文献中,我们使用术语“区块链”来包括所有形式的电子、基于计算机的分布式账本。它们包括但不限于区块链和交易链技术、许可和非许可的账本、共享账本及其变体。虽然也提出并开发了其他区块链实施方式,但是区块链技术最广为人知的应用是比特币账本。虽然本文中出于方便和说明的目的可以引用比特币,但是应当注意,本专利技术不限于与比特币区块链一起使用,并且替代性的区块链实施方式和协议也落入本专利技术的范围内。本文使用术语“比特币”指代源自比特币协议的任何和所有协议。区块链是一种基于共识的电子账本,它被实现为基于计算机的分散式、分布式系统,该系统由区块组成,而区块相应地由交易和其他信息组成。对于比特币而言,每个交易是一个数据结构,该数据结构对区块链系统中的参与者之间的数字资产的控制转移进行编码,并包括至少一个输入和至少一个输出。每个区块包含前一个区块的散列,以使得这些区块变为链接在一起,以创建自区块链开始以来就已经写入区块链的所有交易的永久、不可更改的记录。交易包含嵌入其输入和输出中称为脚本的小程序,其指定如何以及通过谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言来编写的。为了将交易写入区块链,必须对其进行“验证”。某些网络节点充当矿工并进行工作以确保每个交易都有效,而无效交易从网络中被拒绝。例如,安装在节点上的软件客户端对引用未耗用的交易输出(UTXO)的交易进行该验证工作。可通过执行其锁定和解锁脚本来进行验证。如果锁定和解锁脚本的执行评估为TRUE,并且如果满足某些其他条件,则交易有效并且可以被写入区块链。因此,为了将交易写入区块链,该交易必须i)由接收交易的节点来验证-如果交易被验证,则节点将其中继到网络中的其他节点;ii)被加入由矿工建造的新区块;iii)被挖掘,即加入过去交易的公共账本。当向区块链添加足够数量的区块以使交易实际上不可逆时,认为交易被确认。私钥通常用于控制对在区块链上维护的加密保护的资产的访问,例如耗用在区块链上维护的加密货币。更具体而言,通常为用户提供公共地址和私钥,以发送和接收属于用户的其他加密资产的加密硬币或令牌。私钥是一个秘密数字,它允许使用、撤回或以其他方式转移或阻碍属于用户的加密硬币或其他加密资产。在比特币中,私钥通常是256位数字。公共地址是存放和接收用户的加密资产的地方。公钥是通过数学算法根据私钥创建的。但是,实际上不可能通过根据公钥生成私钥来反转该过程。通常,数字钱包用于存储用户的私钥。当用户为了耗用、撤回、转移或阻碍属于用户的加密资产而发起交易时,数字钱包通过使用私钥处理交易来创建数字签名。这样维持了安全系统,因为为任何给定交易生成有效签名的唯一方法就是使用私钥,使得用于交易的签名对与私钥相对应的公共地址进行验证。签名和公共地址用于证实交易来自用户(用户是与公共地址相对应的私钥的持有者),并确保交易中对安全性至关重要的元素(例如发送的金额、接收者地址)一经广播就无法改变。如果这些交易元素被更改,则基于用户签名和公共地址的交易的证实将会失败。如果用户丢失他/她的私钥,则用户将无法再耗用、撤回、转移或阻碍与私钥相关联的用户的加密资产。因此,必须将私钥保存在安全位置。数字钱包可通过多种方式存储用户的私钥。在一个示例中,可将私钥打印在纸质形式的文档或电子文档上,以便在需要使用用户的私钥进行交易签名时可以将其取回。例如,可通过QR码的形式来打印私钥,当需要使用用户的私钥进行交易签名时可以扫描QR码。也可以使用冷存储(coldstorage)或硬件钱包来存储私钥,它们通常使用安全地存储用户的私钥的智能卡或USB装置,并使用用户的私钥来离线签名交易。在另一个示例中,可以使用热钱包来存储私钥,热钱包通常存储私钥,并使用以某种方式连接到互联网的线上系统来签名交易。当私钥丢失时,恢复加密资产是加密货币中一个尚未解决的著名问题。人们普遍认为,缺乏可以实现这一目标的分散机制是广泛采用加密货币的最大障碍之一。例如,据估计,由于硬盘驱动器崩溃或私钥丢失,实际上已经有超过2700个比特币丢失。一旦私钥丢失,价值数十亿美元的比特币可能就被锁定在无法使用的钱包中。实际上,丢失私钥在表面上看起来可能类似于丢失网上银行密码。但是,二者至少有两个重要的区别。首先,银行系统的交易是可追溯和可逆的,被盗用的资金有可能通过修改欺诈性交易追回。而这对于诸如比特币之类的加密货币显然是不可能的,因为其交易是不可逆的,并且没有中央机构在发生欺诈时进行仲裁。第二,用户向银行证明其身份后,银行密码可以恢复或补发。与之相比,某些加密货币钱包可以使用密码恢复服务,例如https://walletrecoveryservices.com/。但是,这些密码恢复服务的成功率通常较低(通常约为30%,并取决于用户提供的信息),并且此类密码恢复服务收取的费用通常很高(即在成功恢复密码的情况下,该费用最高可达钱包价值的20%)。丢失私钥时用于恢复加密资产的另一种提议的解决方案称为“脑钱包”(Brainwallet),凭借脑钱包,可通过对用户直接创建的足够长的密码或口令进行散列来生成私钥。这一解决方案试图解决密钥存储问题,因为密码不需要存储在钱包本身当中,但可以保存在“用户的大脑”中。在线平台(例如https://brainwallet.io/、https://paper.dash.org/等)可以很容易地生成确定性的加密货币私钥,只要提供密码/口令和一些盐值,即作为散列单向函数的附加输入使用的随机数据。请注意,脑钱包密码/口令必须安全且同时易于记忆。在这种情况下,安全性基于攻击者破解密码/口令所需的时间,而可记忆性则依赖于必须记住的信息量。显然,这两个方面是负相关的,并且取决于所选密码的熵。脑钱包的一个问题是,试图破解用于生成私钥的密码/口令和盐值的动机很高,因为这将使攻击者能够完全访问锁定在钱包本身中的加密资产。攻击者可以使用蛮力破解算法,尝试许多不同的密码/口令和盐值,并检查生成的私钥是否存在并与加密资产相关联。以目前的技术,芯片每秒可以执行约236次尝试。此外,现实世界的攻击表明,即使使用复杂的密码和新的更快的算法,脑钱包也不安全。具体来说,现实世界的攻击设法在每个线程上每秒能够找到16250个密码,破解18000多个脑钱包地址。此外,最近有数百万个现实世界中泄露的密码被黑客获取,黑客可以使用此类密码重建用户的习惯并设计更快的算法来破解用于生成脑钱包私钥的密码/口令和盐值。在源自相同的密码的脑钱包地址作为交易脚本的一部分存储在区块链上时,可能会出现进一步的漏洞。多个地址来源于同一种子时,猜测密码变得更加容易。可以使用密钥延伸(KeyStretching)技术以使破解脑钱包地址更加困难。此类密钥延伸技术多次使用难以优化的散列函数(例如SHA256,SHA1)从简单的密码中本文档来自技高网...

【技术保护点】
1.一种由区块链实现的安全方法,涉及请求者和节点群组,所述方法包括:/n基于i)所述请求者选择的密码和ii)所述节点群组发送的多个第一数量,生成请求者的密码密钥,其中所述多个第一数量基于所述节点群组的私钥份额以及在椭圆曲线上使用双线性映射的数字签名方案的生成器函数;/n为所述请求者的区块链交易生成密码签名,所述密码签名对应于所述请求者的密码密钥、基于所述数字签名方案的椭圆曲线上的双线性映射,其中,所述密码签名基于:i)所述请求者选择的密码ii)所述节点群组发送的多个第二数量,其中所述多个第二数量基于所述节点群组的所述私钥份额;和/n使用所述请求者的密码密钥证实所述区块链交易的密码签名。/n

【技术特征摘要】
【国外来华专利技术】20171215 GB 1721049.31.一种由区块链实现的安全方法,涉及请求者和节点群组,所述方法包括:
基于i)所述请求者选择的密码和ii)所述节点群组发送的多个第一数量,生成请求者的密码密钥,其中所述多个第一数量基于所述节点群组的私钥份额以及在椭圆曲线上使用双线性映射的数字签名方案的生成器函数;
为所述请求者的区块链交易生成密码签名,所述密码签名对应于所述请求者的密码密钥、基于所述数字签名方案的椭圆曲线上的双线性映射,其中,所述密码签名基于:i)所述请求者选择的密码ii)所述节点群组发送的多个第二数量,其中所述多个第二数量基于所述节点群组的所述私钥份额;和
使用所述请求者的密码密钥证实所述区块链交易的密码签名。


2.根据权利要求1所述的由区块链实现的安全方法,还包括:
建立节点群组,所述节点群组中的节点通过至少一个通信网络可操作地彼此耦接,其中所述群组中的每个节点向所述群组转移数字资产;和/或
从所述请求者接收(优选地,由属于所述节点群组的至少一个节点接收)筹资交易,其中,所述筹资交易指定所述请求者的一个或多个数字资产,其中可以使用所述请求者选择的所述密码来转移所有或一些所述数字资产;和/或
接收(优选地,由属于所述节点群组的至少一个节点接收)耗用交易,所述耗用交易转移所述筹资交易中指定的、所述请求者的一个或多个数字资产中的某部分,其中所述耗用交易包括与所述请求者的密码密钥对应的密码签名;和/或
使用所述请求者的密码密钥证实(优选地,由属于所述节点群组的至少一个节点证实)包含在所述耗用交易中的密码签名。


3.根据权利要求2所述的由区块链实现的安全方法,还包括:
从所述请求者接收(优选地,由属于所述节点群组的至少一个节点接收)初始化交易,其中,所述初始化交易表明想要设置与所述请求者相关联的密码;和/或
响应于所述初始化交易,生成(优选地,由属于所述节点群组的至少一个节点生成)第一数量;和/或
向所述请求者发送(优选地,由属于所述节点群组的至少一个节点发送)第一消息,其中,所述第一消息包括所述第一数量。


4.根据权利要求2所述的由区块链实现的安全方法,还包括:
从所述请求者接收(优选地,由属于所述节点群组的至少一个节点接收)预耗用交易,其中,所述预耗用交易转移交易保证金并且包括所述耗用交易的至少一部分的散列,其中,所述耗用交易的至少一部分的散列基于所述数字签名方案的散列函数;和/或
响应于所述预耗用交易,生成(优选地,由属于所述节点群组的至少一个节点生成)第二数量;和/或
向所述请求者发送(优选地,由属于所述节点群组的至少一个节点发送)第二消息,其中所述第二消息包括所述第二数量。


5.根据权利要求1所述的由区块链实现的安全方法,还包括:
广播所述请求者的筹资交易,以将其传送给所述节点群组,其中所述筹资交易指定所述请求者中的一个或多个数字资产,其中可以使用所述请求者选择的所述密码转移所有或一些所述数字资产;和/或
广播所述请求者的耗用交易,以将其传送给所述节点群组,其中所述耗用交易转移所述筹资交易中指定的、所述请求者的一个或多个数字资产的某部分,并且其中所述耗用交易包括所述密码签名。


6.根据权利要求5所述的由区块链实现的安全方法,还包括:
广播所述请求者的初始化交易,以将其传送给所述节点群组,其中,所述初始化交易表明想要设置与所述请求者相关联的密码,其中,响应于所述初始化交易,所述节点群组生成并发送所述多个第一数量;和/或
响应于所述初始化交易,至少部分地基于所述请求者选择的密码和所述节点群组发送的多个第一数量来生成所述密码密钥。


7.根据权利要求5所述的由区块链实现的安全方法,还包括:
广播所述请求者的预耗用交易,以将其传送给所述节点群组,其中,所述预耗用交易转移交易保证金并且包括所述耗用交易的至少一部分的散列,其中,所述耗用交易的至少一部分的散列基于所述数字签名方案的散列函数,其中,响应于所述预耗用交易,所述节点群组生成并发送所述多个第二数量。


8.根据权利要求5所述的由区块链实现的安全方法,还包括:
建立节点群组,所述节点群组中的节点通过至少一个通信网络可操作地彼此耦接,其中所述群组中的每个节点向所述群组转移数字资产,并且其中所述群组中的每个节点存储对应的私钥份额;和/或
由请求者系统广播所述请求者的初始化交易,以将其传送给所述群组,其中所述初始化交易表明想要设置与所述请求者相关联的密码;
响应于所述初始化交易,所述群组的节点生成多个第一数量,其中给定节点生成的所述第一数量至少部分地基于该节点的私钥份额和所述数字签名方案的生成器函数;
所述群组的节点向所述请求者发送相应的第一消息,其中,所述第一消息包括所述多个第一数量;
所述请求者系统基于所述请求者选择的密码和所述多个第一数量生成所述密码密钥;
所述请求者系统广播所述请求者的筹资交易,以将其传送给所述群组,其中所述筹...

【专利技术属性】
技术研发人员:西尔维娅·巴托鲁奇约翰·弗莱彻
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:安提瓜和巴布达;AG

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

1