本发明总体上涉及区块链交易,更具体地涉及生成和执行数据记录分发交易的方法和设备。
背景技术:
1、在本文件中,使用术语“区块链(b l ockchai n)”来包括所有形式的电子的、基于计算机的分布式账本。这些包括但不限于区块链和交易链技术、许可及未许可的账本、共享账本及其变型。
2、区块链是基于共识的电子账本,该账本被实现为由区块构成的基于计算机的分散式、分布式系统,而该区块又由交易构成。每个交易是对区块链系统中的参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块均包含前一区块的散列,使得这些区块被链接在一起,以构建对自区块链诞生之始就已被写入区块链的所有交易的永久性不可更改的记录。交易包含嵌入其输入和输出中的被称为脚本的小程序,这些小程序指定了如何以及由谁可以访问交易的输出。
3、区块链技术的一个明显优势是其匿名性和安全性。也就是说,帐本不包含关于参与交易的人的任何个人信息,帐本仅包含公共地址信息。然而,通过使用外部数据和分析可以成功地将特定交易和地址与个人相关联。
4、一些数字货币的缺点之一是会导致隐私受到损害的情况。例如,如果某人具有包含大量未花费交易输出utxo的钱包比如双周薪水支付,并且该未花费交易输出被用作向另一人支付少量金额的输入,则查看该交易的其他人和任何人将部分地基于在该交易中返还的零钱而获得有关进行支付的人的财富以及可能的薪水的信息。可能出现大的输入和/或大的变更交易损害用户的隐私的其他情况。
5、因此,期望提供改进的方法和设备,该改进的方法和设备通过改进的输入到输出的不可追踪性和不可链接性来提供提高的安全性和更鲁棒的加密术,同时仍然产生高效和有效的加密货币支付机制。
6、尽管区块链技术最广为人知的是使用加密货币实施方案,但是数字企业家已经开始探索使用加密安全系统以及可以存储在区块链上的数据这两者来实现新系统。如果区块链可以用于不局限于加密货币领域的自动化任务和处理,则将是非常有利的。这种解决方案将能够利用区块链的益处(例如对事件的永久性防篡改记录、分布式处理等),同时这种解决方案在区块链的应用中更加通用。因此,本技术可以参考记录的关于区块链“数据记录”。数据记录可以包括例如文档、处理能力或时间的测量、加密货币量、指示资产所有权的安全或其他令牌、或者可以由拥有加密材料的实体控制的其他此类事物,其中加密材料允许该实体使用或移动该数据记录。
7、区块链中记录的潜在可追踪性揭示了可能损害某些应用的实现缺陷。示例应用包括提交用于标记的考试或论文、提交匿名犯罪报告、提交匿名调查或人口调查反馈、或其他这样的应用,其中在提交之后数据不可改变的情况下,参与节点组需要安全地和秘密地将数据记录转移到一个或更多个其他节点。与加密货币一样,可以基于记录本身的特性来追踪其他类型的数据记录的移动,从而实现对返还到特定节点的提交进行追踪,这会损害节点用户的隐私或安全或者会破坏分发或提交过程的匿名性的完整性。此外,如果网络中的节点能够将一个节点识别为向另一节点转移文档的源,则它提高了那些观察者节点通过诸如欺骗和其他计算机安全攻击之类的攻击来损害网络安全性的能力。
8、区块链的公共特性在构造数据记录分发过程中无论是对于加密货币还是任何其他类型的数据记录提出了技术挑战,其更有效地确保了分发过程的安全性和完整性同时使对特定节点之间的数据记录的转移进行追踪的机会最小化。
技术实现思路
1、现在已经设计出这样一种改进的解决方案。
2、因此,根据本发明,提供了如所附权利要求中所限定的方法和设备。
3、有利地,本技术提供了用于基于区块链的数据记录分发的改进的方法、设备和系统,其提高了交易的隐私性和安全性。使用隐地址、记录分发、以及将记录解构为规定的数据记录特性的唯一组合,在将输入与输出断开链接的同时转移全部数据记录,以保护与输入或输出节点有关的信息不被公开并且以妨碍追踪活动。
4、本发明可以提供计算机实现的方法和对应的系统。该方法/系统可以被描述为区块链实现的方法/系统。本发明可以被描述为安全方法或加密方法/系统。本发明可以提供数字资产或数据记录比如一部分或一定量的加密货币的安全转移。附加地或替代性地,本发明可以提供控制机制以对诸如一部分或一定量的加密货币的数字资产的转移进行控制。
5、附加地或替代性地,本技术可以描述一种使用区块链在输入节点与输出节点之间转移总数据记录的计算机实现的方法。在输入节点处实现的方法可以包括:获得与输出节点相关联的公钥材料;基于总数据记录和由输入节点控制的可用数据记录来确定选自可用数据记录的一个或更多个输入以及多个输出,其中,一个或更多个输入的累计总和等于或大于总数据记录,每个输出均针对选自一系列规定的数据记录特性的相应的数据记录特性,并且多个输出的总和与总数据记录相匹配;为输出中的每个输出选择随机数并且基于公钥材料和随机数生成输出地址,将输出地址插入到对具有该输出的相应数据记录特性的数据记录进行待分配的记录分发交易中,根据随机数生成随机公钥,并且与输出节点共享随机公钥;以及对一个或更多个输入进行签署。
6、附加地或替代性地,本技术可以描述一种使用区块链在输入节点与输出节点之间转移总数据记录的计算机实现的方法。在输出节点处实现的方法可以包括向输入节点提供与输出节点相关联的公钥材料;从输入节点获得随机公钥;搜索区块链以寻找数据记录分发交易,数据记录分发交易具有多个输入地址和多个输出地址,每个输出地址均被分配具有一系列规定数据记录特性中的相应数据记录特性的数据记录;基于随机公钥和公钥材料来确定公钥-私钥对;将来自公钥-私钥对的公钥与数据记录分发交易中的输出地址之一进行匹配,并且基于该匹配将分配给该输出地址的数据记录添加到临时数据记录集;以及确定临时数据记录集是否小于总数据记录,如果是,则继续搜索、确定和匹配直到临时数据记录集与总数据记录相匹配为止。
7、附加地或替代性地,本技术可以描述一种使用区块链在输入节点与输出节点之间转移总值的计算机实现的方法。在输入节点处实现的方法可以包括:获得与输出节点相关联的公钥材料;基于总值和输入节点所拥有的可用未花费输出交易来确定选自未花费输出交易的一个或更多个输入以及多个输出,其中,一个或更多个输入的累积值等于或大于总值,每个输出均针对选自一系列规定面额的相应的面额,并且,多个输出的总和与总值相匹配。该方法还包括,为输出中的每个输出选择随机数,基于公钥材料和随机数生成输出地址,将输出地址插入到对该输出的相应面额进行待分配的硬币混合交易中,根据随机数生成随机公钥,以及与输出节点共享随机公钥。输入节点对一个或更多个输入进行签署。
8、在一些实施方案中,确定一个或更多个输入和多个输出部分地基于可用的硬币混合交易。可用的硬币混合交易各自涉及混合特定面额。确定一个或更多个输入和多个输出部分地基于将一个或更多个输入和多个输出中的每一者的值与特定面额中的相应的面额相匹配。
9、在一些实施方案中,为多个输出插入输出地址包括将所有输出地址作为输出插入到构造成将多个不同面额进行混合的单个硬币混合交易中。在一些其他实施方案中,为多个输出插入输出地址包括在第一硬币混合交易中插入至少一个输出地址,以及在第二硬币混合交易中插入至少另一输出地址,并且第一硬币混合交易用于将与在第二硬币混合交易中混合的面额不同的面额进行混合。
10、在一些实施方案中,规定面额系列基于最大硬币值和由最大硬币值的定义的系列,其中,n是正整数。在其他实施方案中可以使用其他系列。
11、在一些实施方案中,公钥材料包括两个公钥,即,bpubx和bpuby,并且输出i的输出地址由下式给出:
12、bpubi=h(ribpubx)g+bpuby
13、其中,g是椭圆曲线基点,h()是散列函数,ri是为输出i选择的随机数。随机公钥ri可被生成为ri=rig。
14、在一些实施方案中,共享随机公钥包括将随机公钥插入硬币混合交易中的非交易数据字段中;将随机公钥插入与硬币混合交易不同的单独交易中的非交易数据字段中;或者使用非区块链通信将随机公钥发送到输出节点。
15、附加地或替代性地,本技术可以描述一种在输出节点处实现的方法,该方法包括向输入节点提供与输出节点相关联的公钥材料;从输入节点获得随机公钥;以及搜索区块链以寻找硬币混合交易,该硬币混合交易具有多个输入地址和多个输出地址,每个输出地址均被分配与一系列规定面额中的面额相符的值。该方法还包括基于随机公钥和公钥材料来确定公钥-私钥对;将来自公钥-私钥对的公钥与硬币混合交易中的输出地址之一进行匹配,并且基于该匹配将分配给该输出地址的值添加到支付金额;以及确定所支付的金额是否小于总值,如果是,则继续搜索、确定和匹配直到所支付的金额与总值相匹配为止。
16、在一些实施方案中,公钥材料包括两个公钥,即,bpubx和bpuby,这两个公钥具有各自对应的私钥,即,bprivx和bprivy。确定第i个公钥-私钥对可以包括确定:
17、bprivi=h(bprivxri)+bprivy
18、其中,bprivi包括公钥-私钥对的私钥,h()是散列函数,并且ri是随机公钥,其中,第i个公钥-私钥对中的公钥被确定为bpubi=bprivig,其中,g是椭圆曲线基点。
19、在一些实施方案中,搜索区块链包括识别包含非交易代码的硬币混合交易,并且获得随机公钥包括从硬币混合交易的非交易数据字段中提取随机公钥。在一些其他实施方案中,获得随机公钥包括搜索区块链以寻找包含非交易代码的交易并且在交易被识别时从该交易中的非交易数据字段中提取随机公钥。
20、本文中所描述的其他实施方案包括具有存储器、处理器和可执行指令的计算设备,该可执行指令在被执行时使处理器执行本文中所描述的方法中的一个或更多个方法的操作。
1.一种使用区块链在输入节点与输出节点之间转移总数据记录的计算机实现的方法,所述方法在所述输出节点处实现,所述方法包括:
2.根据权利要求1所述的方法,其中,所述公钥材料包括两个公钥,即,bpubx和bpuby,所述两个公钥具有各自对应的私钥,即,bprivx和bprivy。
3.根据权利要求2所述的方法,其中,确定第i个公钥-私钥对包括确定:
4.根据权利要求3所述的方法,其中,所述随机公钥ri被生成为ri=rig。
5.根据权利要求1到4中的任一项所述的方法,其中,搜索所述区块链包括识别包含非交易代码的数据记录分发交易,并且,获得所述随机公钥包括从所述数据记录分发交易的非交易数据字段中提取随机公钥。
6.根据权利要求1到4中的任一项所述的方法,其中,获得随机公钥包括搜索所述区块链以寻找包含非交易代码的交易并且在交易被识别时从所述交易中的非交易数据字段中提取所述随机公钥。
7.根据权利要求1至6中的任一项所述的方法,其中,所述数据记录特性是在所述数据记录中指定的值,并且所述一系列规定的数据记录特性是基于最大值和由所述最大值倍定义的系列的一系列值,其中,n是正整数。
8.根据前述权利要求中的任一项所述的方法,其中,搜索所述区块链包括识别包含非交易代码的硬币混合交易,并且,获得所述随机公钥包括从所述硬币混合交易的非交易数据字段中提取随机公钥。
9.一种使用区块链在输入节点与输出节点之间转移总数据记录的计算设备,所述计算设备是所述输出节点,所述计算设备包括:
10.一种非暂时性处理器可读介质,存储处理器可执行指令用以使用区块链在输入节点与输出节点之间转移总数据记录,其中,所述处理器可执行指令在被所述输出节点中的处理器执行时使所述处理器执行根据权利要求1至8中的任一项所述的方法。