CN111819817A - 针对基于双线性映射累加器的授权的区块链实现的方法和系统 - Google Patents
针对基于双线性映射累加器的授权的区块链实现的方法和系统 Download PDFInfo
- Publication number
- CN111819817A CN111819817A CN201980017279.5A CN201980017279A CN111819817A CN 111819817 A CN111819817 A CN 111819817A CN 201980017279 A CN201980017279 A CN 201980017279A CN 111819817 A CN111819817 A CN 111819817A
- Authority
- CN
- China
- Prior art keywords
- computer
- tree
- implemented method
- computer systems
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
本发明涉及诸如基于共识的区块链等分布式分类账技术。描述了用于锁定和解锁交易输入和输出的计算机实现的方法。使用区块链网络来实现本发明,该区块链网络可以是例如比特币区块链。可以使用累加树来证明实体的组形成其中具有成员身份的组。描述了用于生成累加树的多种方法,包括使用中央授权机构的方法和使用去中心化协议代替中央授权机构的方法。在各种实现方式中,各方能够在总体上不揭露其身份的情况下解锁基于组成员身份的交易输出。
Description
技术领域
本发明大体上涉及与经由区块链的数字资产的转移有关的授权,并且更具体地,涉及基于组成员身份的证明来授权数字资产的转移。本发明特别适合但不限于创建比特币脚本,该比特币脚本至少部分地基于组或子组中的成员身份来授权数字资产的转移。本发明提供了用于区块链实现的授权和基于许可的控制操作的密码方案。本发明提供的方案在保持安全性的同时在计算上是高效的。
背景技术
在本文档中,术语“区块链”是指多种类型的电子的基于计算机的分布式分类账(ledger)中的任一个。这些包括基于共识的区块链和交易链技术、许可的和未被许可的分类账、共享分类账及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币分类帐。尽管为了方便和说明的目的在本公开中可能提及比特币的示例,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本发明的范围内。例如,本发明可以在具有类似于比特币的关于在交易内可以编码什么约束的限制的其他区块链实现中有用。本文使用术语“比特币”来指代从比特币协议导出的任何变型或版本。
区块链是一种点对点的电子分类帐,其被实现为基于计算机的去中心化(decentralised)的分布式系统,该系统由区块组成,而区块又由交易和其他信息组成。例如,利用比特币,每个交易是一种数据结构,该数据结构对区块链系统中参与者之间的数字资产控制权的转移进行编码,并包括至少一个输入和至少一个输出。在一些实现方式中,“数字资产”指代与使用的权利相关联的二进制数据。数字资产的示例包括比特币、以太币、和莱特币。在一些实现方式中,转移对数字资产的控制可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来执行。每个区块都包含前一个区块的哈希值(hash),因此区块被链接在一起来创建所有交易的永久、不可变的记录,这些交易自其开始就已经写入区块链。交易包含嵌入到其输入和输出中的称为脚本的小程序,这些小程序指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
即,基于堆栈的脚本语言可以利用称为堆栈的数据结构。利用堆栈,可以将值推上堆栈或从堆栈弹出。对堆栈执行的各种操作可以使得将一个或多个值推上堆栈的顶部或从堆栈的顶部弹出一个或多个值。例如,OP_EQUAL操作会从堆栈中弹出顶部的两个条目(item),对其进行比较,然后将结果(例如,如果相等则为1,如果不相等则为0)推上堆栈。在本实施例中的一些采用的某些脚本语言中,可能至少有两个堆栈:主堆栈和备用堆栈。脚本语言的一些操作可以将条目从一个堆栈的顶部移动到另一堆栈的顶部。例如,OP_TOALTSTACK将值从主堆栈的顶部移动到备用堆栈的顶部。
为了将交易写入区块链,它必须是“被验证的”。网络节点(矿工)执行工作以确保每笔交易有效,而无效交易则被网络拒绝。节点可以具有不同于其他节点的有效性标准。由于区块链中的有效性是基于共识的(consensus-based),因此,如果大多数节点同意交易有效,则该交易被视为有效。安装在节点上的软件客户端通过执行未花费的交易输出(unspent transaction,UTXO)锁定和解锁脚本来对部分引用UTXO的交易执行该验证工作。如果锁定和解锁脚本的执行评估为真(TRUE),并且满足其他验证条件(如果适用的话),则节点将验证该交易。经验证的交易会传播到其他网络节点,接着矿工节点可以选择将该交易包括在区块链中。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点验证该交易–如果交易经过验证,则该节点将其中继到网络中的其他节点;ii)将该交易添加到矿工建造的新区块中;以及iii)该交易被挖掘,即,被添加到过去交易的公共分类帐中。当将足够数量的区块被添加到区块链以使交易实际上不可逆时,该交易被视为被确认。
尽管区块链技术因使用加密货币实现方式而被广泛了解,但数字企业家已经开始探索使用比特币所基于的密码安全系统以及可以存储在区块链上的数据这两者以实现新系统。如果区块链可以用于不限于加密货币领域的自动化任务和过程,那将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件的永久性防篡改记录、分布式处理等),同时在其应用中具有更多用途。
区块链交易输出包括锁定脚本和有关数字资产(例如,比特币)所有权的信息。锁定脚本(也可以称为留置权(encumbrance))通过指定为了花费输出而需要满足的条件来“锁定”数字资产。例如,锁定脚本可能要求在解锁脚本中提供某些数据以解锁关联的数字资产。锁定脚本在比特币中也称为“scriptPubKey”。要求一方提供数据以解锁数字资产的技术涉及将数据的哈希值嵌入锁定脚本内。但是,如果在创建锁定脚本时未确定数据(例如,未知和未固定的数据),则会出现问题。
发明内容
因此,期望在这些方面中的一个或多个中提供改进区块链技术的方法和系统。现在已经设计出这种改进的方案。因此,根据本发明,提供了如所附权利要求书限定的方法。
因此,期望提供一种计算机实现的方法,该计算机实现的方法包括:生成累加(accumulation)树的摘要(digest),该累加树的元素表示计算机系统的集合;生成针对至分布式数据结构中的插入的记录,该记录包含至少部分基于摘要的授权信息;以及使所述记录插入分布式数据结构中。
优选地,要求保护的计算机实现的方法可以是如下的实施例:所述记录包括锁定脚本,并且授权信息标识累加树的局部摘要的哈希值。
优选地,该计算机实现的方法可以是如下的实施例:所述记录包括解锁脚本,并且授权信息标识从由椭圆曲线上的点表示的局部摘要得出的数字(number)。
优选地,该计算机实现的方法可以是如下的实施例:所述记录包括解锁脚本,并且授权信息标识从由椭圆曲线上的点表示的全局摘要得出的数字。
优选地,该计算机实现的方法可以是如下的实施例:累加树的结构至少部分地基于与该计算机系统的集合相关联的组织结构来确定。
优选地,该计算机实现的方法可以是如下的实施例:树参数的集合在该计算机系统的集合之中被协商,该树参数的集合包括树深度和每个中间节点的子节点的数量,并且累加树是根据该树参数的集合构造的。
优选地,该计算机实现的方法可以是如下的实施例:该计算机系统的集合彼此共享信息,该信息允许每个计算机系统重构累加树的共同秘密和全局摘要。
优选地,该计算机实现的方法可以是如下的实施例:该计算机系统的集合的子集合与该子集合的其他成员共享该子集合的信息,以使该子集合的成员能够确定该子集合的局部摘要;以及在该计算机系统的集合中但不在该子集合中的计算机系统不被提供该信息,并且不能确定局部摘要。
优选地,该计算机实现的方法可以是如下的实施例:在该计算机系统的集合中但不在该子集合中的计算机系统被提供计算机系统的子集合的父节点的摘要的哈希值。
优选地,该计算机实现的方法还可以包括生成见证(witness),该见证与摘要相结合来证明该计算机系统的集合中的成员身份。
优选地,该计算机实现的方法可以是如下的实施例:该计算机系统的集合中的成员身份通过授权(authoritative)计算机系统来确定,并且该授权计算机系统在该计算机系统的集合之中建立与累加树关联的共享的参数的集合。
优选地,该计算机实现的方法可以是如下的实施例:该计算机系统的集合中的每个计算机系统与该集合的其他成员共享该计算机系统的凭证的哈希值,以使该集合的每个成员都能够确定累加树的全局摘要。
优选地,该计算机实现的方法可以是如下的实施例:分布式数据结构是区块链,并且所述记录是比特币交易记录。
还期望提供一种系统,包括:处理器;以及包括可执行指令的存储器,该可执行指令由于被处理器执行而使系统执行要求保护的方法中的任一个。
还期望提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,该可执行指令由于被计算机系统的一个或多个处理器执行而使计算机系统至少执行要求保护的方法中的任一个。
本发明可以描述为验证方法/系统,和/或描述为用于经由区块链控制数字资产的交换或转移的控制方法/系统。在一些实施例中,数字资产是令牌或加密货币的一部分。如下所述,本发明还可被描述为用于经由区块链网络或平台执行操作的新的、改进的和有利的方式的安全方法/系统。
附图说明
本发明的这些和其他方面将从本文描述的实施例变得显而易见并参考这些实施例而阐明。现在将仅通过示例的方式并参考附图来描述本发明的实施例,附图中:
图1示出了实施例中系统的示例,在该系统中,通过用户提供该用户是组的成员的证明来完成对特定用户的认证;
图2示出了实施例中针对九个元素的集合的累加树的示例;
图3示出了实施例中的累加树的示例,在该累加树中,每个元素具有针对i=1...9的关联元素ei;
图4示出了实施例中的过程的示例,由于该过程被参与者和组授权机构(groupauthority)执行,从而该过程允许参与者生成组成员身份的证明;
图5示出了实施例中利用摘要ψ’(r)的哈希值锁定的脚本的示例;
图6示出了实施例中用于属于公司(company)的参与者的集合的累加树的示例;
图7示出了实施例中作为用于去中心化协议的秘密共享和秘密重构的一部分而交换的信息的示例;
图8示出了实施例中作为用于去中心化协议的秘密共享和秘密重构的一部分而交换的信息的示例;
图9示出了实施例中用于去中心化协议的交易锁定脚本的示例,其中,来自一个或多个组的任何参与者可以通过提供父摘要的坐标(coordinate)来解锁关联的输出;
图10示出了实施例中用于重构全局摘要的去中心化协议的示例;以及
图11示出了可以在其中实现各种实施例的计算机系统。
具体实施方式
本文档描述了一种计算机系统,该计算机系统能够至少部分地基于证明组中成员身份的操作的一方来授权操作。在一些实施例中,系统将设置的成员身份要求嵌入到授权数据(例如,分布式区块链数据结构的锁定脚本)中。例如,可以应用本文描述和建议的技术来促进将组成员身份要求添加到诸如比特币交易之类的加密货币交易中。在各种实施例中,用户能够使用基于双线性映射累加器(accumulator)的方案来获得并证明其为组的成员身份,并授权区块链网络上的交易。在使用电子认证系统的匿名协议中,通常希望在授权过程期间公开尽可能少的信息。一种有效的电子认证方案是基于累加器的。此类密码原语允许创建计算有效且具有保护隐私的成员身份证明。
在各种实施例中,用户集合可以使用中心化(centralised)协议或去中心化协议来安全地计算其成员身份证明。在中心化协议中,希望获得组成员身份的用户可以与中央授权机构进行通信。在分布式协议中,用户之间相互协作以生成其成员身份证明。在这两种协议中,都创建了层次结构(即累加树)以有效地存储有关属于给定组的元素的信息,并以局部数量和全局数量对其进行压缩。在各种实施例中,代表计算机系统或与用户相关联的计算机系统上的帐户建立组成员身份。例如,用户可以通过成为管理员组的成员而被授权执行操作,但是可以通过显示与该用户关联的帐户已被授予管理员组中的成员身份来授权该操作。组成员身份证明的生成和产生由用户所操作的计算机系统或在用户的管辖下使用用户的帐户凭据进行。
随着互联网上电子认证服务和装置的普及,物理世界中对安全、增强隐私的方案的需求不断增长。例如,在诸如电子票、电子身份证、计算机授权和安全通信等应用中,隐私和安全非常重要。为了保护用户的隐私和安全,期望减少公开信息的数量。通常,用户应披露尽可能少的个人信息,以授权给定的交易或过程。例如,如果为了授权购买,用户必须证明自己已超过25岁,则他/她应仅透露有关其年龄的信息,而不是完整的出生日期、地址等。但是,当前可用的系统不允许用户对所透露的特定信息进行充分的控制,常常要求对用户的身份进行认证以证明甚至用户的单个特性。例如,在许多系统中,用户可能必须提供签名证书作为证明他们已超过25岁的一部分,该签名证书揭示用户的姓名、地址、年龄和联系信息。
本申请描述了各种实施例,这些实施例通过提供对信息发布的改进控制来解决该缺点。例如,描述了在不公开其他不相关信息的情况下允许公开特定的用户相关信息的方法。使用这些技术,最小化揭示的用户信息量的原理可以应用于验证诸如比特币区块链等区块链上的交易。例如,在比特币区块链上,交易被公开存储在区块链分类账中,并且披露作为交易锁定和解锁脚本的一部分的过量的信息可能损害其用户的隐私。可以应用本文描述的技术的各种实施例来限制当使用这样的脚本时揭示的信息的范围,使得安全性增加,隐私性改善,以及对用户来说匿名性更大。
基于累加器的密码方案的各种实施例可以用在匿名凭证系统和匿名电子现金协议中,以保护用户隐私。这样的系统通常依赖于三种类型的实体:证书发行者、验证者和证书接收者(用户)。通常,用户从发行者处获得他们拥有某些属性的签名/证明,并且用户可以显示证明以证明用户拥有某些属性而无需显示属性本身。如果用于解锁或签署加密货币交易,则上述技术会增加交易的匿名性和不可链接性,因为用户可以确定他们想要证明、显示或隐藏给定证书的哪些部分。
匿名组中的成员身份可能随着时间而改变。例如,在某些情况下,证书可能被吊销或新成员可能希望加入该组。在一些实施例中,滥用证书可能导致组成员身份的撤销和进入违规用户的黑名单。在一些实现方式中,组管理员或管理者公开标识已撤消的成员的列表或发布在指定日期后过期的证书。但是,在匿名证书的情况下,将新成员或已撤销的成员的列表公开可能损害用户的隐私。
在各种实施例中,通过使用零知识证明来解决上述问题,该零知识证明表明给定用户是某个组的一部分或在被撤消的成员列表中,而不必透露用户的身份。在各种实现方式中,可能引起与证明相关联的额外的计算成本。零知识证明的实施例可以基于如下描述的累加器来构造:Benaloh,J.,&De Mare,M.(1993,May).One-way accumulators:Adecentralized alternative to digital signatures(单向累加器:数字签名的一种去中心化替代方案).In Workshop on the Theory and Application of CryptographicTechniques(密码技术理论与应用研讨会)(第274-285页),Springer,Berlin,Heidelberg。累加器可以基于素数或累加器保持恒定大小的准累加哈希值。
如当前文档中所使用的,累加器被限定为单向隶属函数。累加器是对元素的集合S的承诺,并且允许将输入的大的集合哈希化(hash)为单个短值。当将新元素添加到集合中时,将为给定元素创建见证(w)或成员身份证明。见证以及累加器值可用于证明组的成员身份。
在各种实施例中,元素的集合可以随着时间发展。在一些实现方式中,每次对集合进行更新时,可以重新计算累加器。因此,本文档着重于静态累加器,其表示固定的元素集合。特别地,本文档描述了中心化协议和去中心化协议,其允许用户的集合使用累加器证明对特定组的成员身份。在实施例中,可以将组成员身份的证明并入比特币脚本中以授权转移数字资产。
椭圆曲线金融算法是许多区块链系统(例如,比特币)的重要组成部分。例如,比特币协议中的公钥是使用椭圆曲线乘法从私钥中计算出来的。整数模p上的椭圆曲线可以描述为由以下等式描述的点集:
y2≡x3+ax+b(mod p)
针对本文档的目的,比特币脚本内所需的椭圆曲线算术功能是“标量点乘法(point multiplication by scalar)”的功能。这是这样的运算:
标量乘法进而需要点加法(Point Addition)和点加倍(Point Doubling)的椭圆曲线组运算。
x3=m2-x1-x2 mod p
y3=m(x1-x3)-y1 mod p
通常,门限密码系统可以通过(t;n)-门限来表征,其中,n是系统中的各方的数量,且t+1是重构秘密所需的各方的最小数量。秘密共享方案是门限密码系统的示例,其中,秘密k在n方之间分配,以便至少t+1方能够协作以重构k。因此,在一些实施例中,单方或成组的各方知道任何t(或更少)条秘密k不能使证书被重构。
在一些实施例中,沙米尔(Shamir)的秘密共享(“SSS”)可以用于确定两个或更多方之间的共享秘密。SSS基于多项式插值,并且在不失一般性的情况下(“w.l.o.g.”),假定秘密为大小为p(p是质数)的有限域的元素。该方案可以包括也可以不包括经销商(dealer)、n个参与者U1,...,Un的集合和访问结构A(即,能够重构秘密的参与者的组)。在SSS中,任意随机秘密作为t次多项式f(x)中的f(0)被存储,且只有玩家i才能计算其关联的份额f(xi)。如果n个玩家中的t+1个合作,则他们可以利用其(密钥k的)份额k1,k2,...,kn使用拉格朗日多项式插值重构f(x)上的任何点,所述份额对应于f(x1),f(x2),...,f(xn)。
使用拉格朗日多项式插值,可以利用t+1个点重构t次函数f(x),如下所示:
p={(x1,f(x1)),(x2,f(x2)),...,(xt+1,f(xt+1))}
注意,bi,p(xi)=1且bi,p(xj)=0。
在存在经销商的实施例中,经销商选择秘密ao=k(假定是大小为p(p是质数)的有限域的元素),并随机选取t-1个正整数a1,...,at-1,其表示多项式f(x)=ao+a1x+a2x2+...的系数。然后,经销商计算属于多项式的n个点(xi,f(xi))并将其分发给参与者。
在不存在经销商的实施例中,在无经销商份额分发阶段:
1.每个玩家Ui被指定每个人都知道的xi。每个xi是唯一的。
2.每个玩家Ui生成t次随机多项式fi(x)。
3.每个玩家Ui将其在多项式fi(xj)mod n上的相应的点秘密地发送给其他每个玩家。在实施例中,通过利用接收者的公钥加密Ui,然后将Ui的加密版本发送给接收者来秘密地发送Ui。
4.每个玩家Ui对其接收到的所有f1(xi),f2(xi),...fp(xi)(所有mod n,其中,n是椭圆曲线上点G生成的组的阶数(order))进行求和以形成:
ki=f(xi)mod n
这是多项式f(x)mod n上的份额。
在各种实施例中,门限签名计算的附加元素是确定k×G,其中,k是秘密密钥,且G是椭圆曲线上的点。如果f(x)是t次多项式,则秘密k可以通过k=∑i∈πbi,πki进行插值,其中,π是份额ka,kb,...,kt,kt+1的大小为t+1的子集,且b是内插因子。π是t+1个玩家的组,这些玩家在不透露其份额ki的情况下合作计算k×G。k是t次多项式上的点x=0
·每个玩家Ui计算一部分bi,πki×G
·π中的玩家将自己的部分加在一起(通过拉格朗日插值重构秘密k),得到:
ba,πka×G+bb,πkb×G+…+bt+1,πkt+1×G=k×G
在本文档中,计算Q=kG的过程可以称为秘密份额加入。
在各种实施例中,可以使用双线性配对和双线性映射累加器。令G1、G2是具有生成器g1、g2的质数阶p的两个循环乘法组。我们假设存在同构φ:G2→G1,使得φ(g2)=g1。给定GM、阶数为p的循环乘法组,双线性配对可以被限定为e:G1×G2→GM,具有以下性质:
2.非简并性:(g1,g2)≠1。
在下面的示例中,我们将设置G1=G2=G和g1=g2=g,并且我们将考虑配对
e:G×G→GM·
在实施例中,基于双线性配对的双线性映射累加器可以在累加值中累加n个元素的集合E=(e1,..,en)∈G。累加值是G中的元素,并且它累加中的元素。元素(e′1,e′2,...,e′n)∈G是集合E=(e1,..,en)∈G的原始元素的密码哈希值,即,e′i=h(ei),其中h:h:是抗碰撞的哈希函数,其将乘法循环组G的元素作为输入,并产生中的整数作为输出。s表示保持秘密的陷门(trapdoor)信息。
在实施例中,累加树用于使用认证的数据结构和提供恒定时间更新和恒定大小证明的原语来存储数据。尽管可以使用其他类型的存储方案,但是累加树的使用可以具有减少通信和验证成本以及降低存储成本的优点。
在以下示例中,累加树用于验证查询中涉及的子集合的哈希值的正确性:该集合的公共树摘要(元素集合的简洁表示)保证哈希值,并且进而,哈希值会验证该集合。
累加树被表示为T(ε),其中,0<ε<1。T(ε)表示具有n个叶子的根树,其中存储着集合E的n个元素。树中级别(level)的数量限定为而每个节点的子节点的数量为O(nε)。叶子(或集合元素)处于由级别0标识的同一级别。
图2示出了实施例中针对9个元素的集合的累加树T(ε)200的示例。在所示的示例中,累加树具有9个元素和3个级别,并且每个内部节点具有三个子节点。在所示的示例中,累加树具有根节点r 202。根节点r 202具有三个子节点:第一中间节点d 204、第二中间节点e 206和第三中间节点f 208。三个中间节点中的每一个具有三个子节点,它们中的每一个都是累加树的叶节点。第一中间节点d 204具有第一子节点a 210、第二子节点b 212和第三子节点c 214。第二中间节点e 206具有第一子节点g 216、第二子节点h 218和第三子节点i 220。第三中间节点f 208具有第一子节点j 222、第二子节点k 224和第三子节点l226。
对于存储元素e∈[e1,..,e9]的累加树T(ε)200中的每个叶节点v,我们将累加值ψ(v)限定为等于元素本身的值:
ψ(v)=e
对于位于级别1<i<l(此处l=2)中的累加树T(ε)200中的每个非叶节点v,我们将累加限定如下:
对于属于集合E的给定元素x,成员身份证明π(x)包括有序的证明序列π(x)={πi,i=1,..,l},其中的每一个表示累加树的一层。证明的每个元素对应于由每个级别的元素的局部摘要αi和分支见证βi组成的对:
πi=(αi,βi),i=1,...,l
对于给定的层i(其中,1<i<1),我们有:
αi=ψ(vi-1)
其中,S(vi)对应于树T(ε)中的节点vi的同级(siblings)的集合。例如,对于图1中的累加树,同级的集合为S(v=d)={e,f}。
对于给定的层i,对应的证明元素包括两个分量:
·αi,其表示在将元素x链接到根节点r的节点路径P(x):x→r中找到的上一层(i-1层)中节点的双线性摘要。针对层1<i<l,对于层i-1中存在的所有元素,αi相同。
·βi,其表示“分支见证”,该见证认证从查询的节点到树的根的路径的丢失的节点。
整个累加树的全局双线性摘要为:
d=ψ(r)
其中,
ψ(r)=g(h(ψ(d))+s)(h(ψ(e))+s)(h(ψ(f))+s)
并且,r表示树的根。
在实施例中,用户将其证明π(x)提供给验证该证明的验证者。在公开了gs的实施例中,验证者执行以下操作:
1.验证者检查α1=x;
使用双线性映射性质,第二关系也可以表示为验证以下等式:
在实施例中,如果上述关系成立,则证明被验证者接受。
在各种实施例中,可以使用中心化协议或去中心化协议来构造证明。在各种示例中,基于双线性映射累加器的成员身份证明(或部分成员身份证明)被用于验证区块链网络上的交易。
本文档描述了使用双线性映射累加器的协议的中心化版本和去中心化版本。以下示例通过示例的方式说明了协议,这些示例具有存储在累加树中的许多元素以及椭圆曲线和素域(prime field)的参数。
在实施例中,累加树被用于构造证明并验证元素集合的成员身份。累加树可用于存储压缩的信息,并且累加树的摘要可用于锁定比特币UTXO,其可由任何能够证明知道树中或树的子部分中的元素的参与者赎回。
图3示出了实施例中累加树300的示例,在该累加树300中,对于i=1...9,每个元素具有关联的元素ei。在所示的示例中,累加树具有9个元素和3个级别,并且每个内部节点具有三个子节点。在所示的示例中,累加树具有根节点V2 302。根节点V2 302具有三个子节点:第一中间节点V1 304、第二中间节点306和第三中间节点308。这三个中间节点中的每一个具有三个子节点,它们中的每一个都是累加树的叶节点。第一中间节点V1 304具有第一子节点e1310、第二子节点e2312和第三子节点V3 314。第二中间节点306具有第一子节点e4316、第二子节点e5 318和第三子节点e6 320。第三中间节点308具有第一子节点e7 322、第二子节点e8 324和第三子节点e9 326。
在图3所示的示例中,累加树300包括九个元素[e1,..,e9]。在以下示例中,我们认为每个元素的值只有一个个体知道,并且因此树表示每一个都知道一个元素的值的九个个体。
在以下示例中,我们演示如何证明累加树300中存在第三子节点V0 314:x=e3。我们限定从x(第三子节点V0 314)到根(根节点V2 302)的路径P(x):P(x):v0→v1→v2,如图3所示。
在该示例中,出于解释的目的,我们没有使用比特币协议中限定的椭圆曲线,而是选择了不同的参数的集合来利用人类可读的数字执行我们的计算。本领域技术人员将理解,在其他实现方式中可以使用其他椭圆曲线参数。对于此示例,我们使用在素域(其中,p是质数)上限定的以下椭圆曲线:
y2=x3+ax2+b
其中
a=-7,b=10
并且
p=97
h:(x,y)→x+2ky(mod p)
如此,2k>p。当使用大质数时,上述编码为限定modulop的椭圆曲线上的每个点(x,y)提供中的唯一解。由于出于本示例的目的,我们选择了小质数(p=97),因此该哈希函数不是抗碰撞的,即,我们的椭圆曲线中两点具有相同哈希值的概率不可忽略。在其他实现方式中,可以使用较大的质数并且是优选的。我们选择k=7,从而2k=128>p=97。
元素 | e<sub>1</sub> | e<sub>2</sub> | e<sub>3</sub> | e<sub>4</sub> | e<sub>5</sub> | e<sub>6</sub> | e<sub>7</sub> | e<sub>8</sub> | e<sub>9</sub> |
值(e) | (81,10) | (3,4) | (9,26) | (73,15) | (95,4) | (31,22) | (54,76) | (19,25) | (5,10) |
哈希值(e′) | 3 | 30 | 39 | 53 | 25 | 34 | 82 | 18 | 24 |
在以下示例中,我们描述参与者如何计算表2中的值(椭圆曲线上的点)以证明元素x的成员身份以及累加树的全局摘要:
ψ(r)=(40,96)
证明分量 | 值(EC点) |
α<sub>1</sub> | (9,26) |
β<sub>1</sub> | (11,87) |
α<sub>2</sub> | (75,34) |
β<sub>2</sub> | (36,57) |
上表示出了当x=e3=(9,26)时,证明π(x)的分量的值。在实施中心化协议与去中心化协议时,提供给参与者以计算参与者的证明和累加树的摘要的信息集可能不同。因此,下面分别描述中心化协议和去中心化协议。
图4示出了实施例中过程400的示例,作为该过程400由参与者和组授权机构执行的结果,该过程400允许参与者生成组成员身份的证明。在下面描述的实施例中,描述了协议的中心化版本。在协议的中心化版本中,存在由个体或实体采用的授权机构,其负责选择双线性映射中的陷门信息(秘密s)并将必要的几条信息分发给“拥有”树中的元素(元素被表示为累加树的叶子)的参与者。在本文档中,实体、参与者、参与方或其他行动者可以被实现为包含存储在存储器中的可执行指令的计算机系统、计算机服务器、服务器集群、移动装置、手机或计算装置。可执行指令由于被装置上的处理器读取和执行,而实现本文描述的服务、功能或算法。
在实施例中,授权机构(Authority)确定402n个参与者的顺序(树中元素的顺序),U1,U2,..,Un,以及树的结构404(例如,级别l的数量、每个节点的子节点的数量等)。授权机构还确定协议中要使用的抗碰撞哈希函数h:以及椭圆曲线的参数,并且可以使信息公开可用。在各种实现方式中,可以通过在计算机网络上广播信息,或者通过经由诸如网站或基于网络的服务之类的网络服务公布信息,来使信息公开可用。
在实施例中,每个个体参与者生成406元素en,并且通常不与其他参与者共享该元素en。每个个体参与者使个体参与者的各自的元素哈希化408。通过使他们各自的元素[e1,..,e9]哈希化,参与者获得值[e1′,..,e9′](如上表所示),并将获得的哈希值发送410到授权机构。元素ei的值仅由将哈希值ei′发送给授权机构的一个参与者Ui知道。
在实施例中,在从参与者接收到412元素的哈希值之后,授权机构计算树中的、中间层(在该示例中为l=1)中的局部摘要414以及全局摘要416,并且至少部分基于参与者的各自元素在树中的位置,来将相关的信息传送到每个参与者。
在实施例中,授权机构在不知道元素的值的情况下计算摘要(通常,仅提供使用抗碰撞哈希函数产生的哈希值),并且参与者在不知道其他参与者的元素的值(他们自己的除外)也不知道树的完整结构的情况下确定摘要。
在实施例中,授权机构与拥有一个元素(在此示例中为e3)的参与者进行单独通信,发送420以下信息:
·参与者的同级的哈希值,即在此示例中为e′1和e′2
·参与者的父的同级的哈希值,即在此示例中为ψ′(e)和ψ′(f)
在实施例中,特定参与者能够使用从授权机构接收的信息来确定证明422,如下所示:
证明的第一元素是:
π1=(α1,β1)
其中,
α1=ψ(v0)=ψ(e3)
α1=(9,26)
并且
以上等式可以以更适合椭圆曲线算术的形式重写:
使用上表中列出的值,我们可以计算见证β1的值,如下所示:
β1=(11,87)
证明的第二元素通过以下等式给出:
π2=(α2,β2)
其中,
α2=ψ(v1)
元素α2可以使用上述双线性映射性质被重写为
使用上表中列出的值,参与者可以计算局部摘要α2的值,如下所示:
α2=(75,34)
证明的第二元素的另一个分量是:
β2=g(h(ψ(e))+s)(h(ψ(f))+s)
其中
并且
节点(v) | d | e | f |
ψ(v) | (75,34) | (53,3) | (37,62) |
ψ′(v) | 62 | 49 | 19 |
在实施例中,拥有e3的参与者仅需要接收其父的两个同级的摘要的哈希值,即ψ′(e)和ψ′(f),并且因此,参与者几乎不了解除去其自身路径之外的树的结构。因此,参与者可以利用压缩的信息产生摘要,从而证明参与者了解树中的一个元素。
使用椭圆曲线,算法β2可以以类似于β1的形式表示,如下所示:
β2=(36,57)
以上示例演示了实施例中如何计算证明元素的每个分量。
在实施例中,使用证明的第二元素的第一分量α2,参与者可以计算累加树的全局摘要,如下所示:
或者
ψ(r)=ψ(v2)
ψ(r)=(40,96)
在实施例中,比特币交易的交易脚本可以通过全局摘要ψ(r)的哈希值来锁定。交易可以由参与者(组成员)进行解锁,该参与者能够访问参与者自己的元素的值,因此能够计算树的全局摘要。
h:(x,y)→x+2ky(mod p)
其中,2k>p。注意,在图5中,我们指示k(如504处所示)=2k,并且模数(modulus)为p(如506处所示)。脚本500验证通过使ψ(r)的坐标x、y哈希化,我们确实获得了ψ’(r)(如508处所示)。为了能够使用上述哈希函数,应重新启用操作码OP_MUL和OP_MOD。
以下描述描述了以去中心化的方式执行累加树的构造的各种实施例。例如,参与者之间相互通信以便创建陷门信息并交换信息,以便能够单独计算其累加树的全局摘要。
下面描述了去中心化协议的实施例,其包括三个阶段:
·累加树构造;
·秘密共享和秘密重构;以及
·摘要计算。
累加树构造
在实施例中,我们描述了一种系统,在该系统中,n个参与者S={U1,U2,..,Un}希望构造他们的累加树T(ε)。在实施例中,每个参与者Ui拥有元素ei,该元素ei的值对于参与者来说是私有的。参与者最初同意参数0<ε<1,该参数将累加树中级别的数量确定为每个节点的子节点的数量为O(nε)。
图6示出了实施例中用于属于公司602的参与者的集合的累加树600的示例。在实施例中,至少部分地基于公司的结构以特定的结构来组织参与者的组。例如,如果参与者是具有如图6所示的内部结构的公司602的成员,则累加树的级别和子集的数量由参与者在公司结构中的位置来确定。
在图6所示的示例中,公司由累加树中的根节点604表示。该公司包含HR部门606、管理部门608和财务部门610。HR部门606在累加中由第一中间节点612表示。管理部门608由第二中间节点614表示。财务部门610由第三中间节点616表示。
在实施例中,每个部门具有多个实体(人员、雇员、计算机系统或装置),并且每个实体由作为对应的中间节点的孩子的叶节点表示。例如,第一中间节点612具有三个子节点618、620和622,这三个子节点618、620和622具有三个对应的凭证636、638和640。例如,第二中间节点614具有三个子节点624、626和628,这三个子节点624、626和628具有三个对应的凭据642、644和646。例如,第三中间节点616具有三个子节点630、632和634,这三个子节点630、632和634具有三个对应的凭据648、650和652。
在实施例中,如果该组没有以特定的层次结构进行组织,则参与者就子树中元素的数量p达成一致。在该示例中,在图6中,该参数被确定为p=3,并且每个节点都有两个同级节点(位于同一级别l)。参与者进行通信以查找信息并与p-1个其他用户交换信息。
例如,在图6中,参与者U1(位于618处)将与参与者U2(在620处)和U3(在622处)进行通信。在使用参与者的随机顺序的实施例中,参与者(从而他们的元素)被随机分配到树中的子组。
秘密共享和秘密重构
在实施例中,参与者彼此协作以使用上述秘密共享过程来同意共享的秘密s。秘密s被用作累加树的陷门信息,并且通常仅对集合S的成员可用。
图7示出了实施例中信息700的示例,该信息700作为用于去中心化协议的秘密共享和秘密重构的一部分而被交换。如图7所示,每个玩家Ui被指定xi,并且该信息被公开(参见图7的702)。每个玩家Ui 704生成t次随机多项式fi(x),并秘密地(利用相应的接收者的公钥加密)将每个其他玩家706在多项式上的相应的点(即,fi(xj)mod n)发送给Uj(参见图7,在704、706处)。
每个玩家Ui对所有接收到的f1(xi),f2(xi),...fp(xi)求和(所有mod n,其中,n是椭圆曲线上点g生成的组的阶数),并构造玩家在多项式上的份额ki=f(xi)mod n。
在参与者就其份额达成一致之后,参与者便能够协作以重构秘密s,该秘密用于计算累加树的摘要。为了重构秘密,每个玩家共享a)他们各自的份额ki和b)bi,π(他们的拉格朗日基础多项式)。
摘要计算
参与者共享信息,这些信息用于a)重构公共秘密s和b)计算其各自的个体证明和树的全局摘要。
确定摘要时,可能有多种实现方式,下面描述其中的两种。附加的实现方式是可能的。
情况1-参与者对计算累加树的全局摘要感兴趣。他们不希望使用任何中间累加值或局部摘要来签署交易。
在这种实现方式中,每个参与者与其他参与者共享参与者的值的哈希值e′i。与为树选择的层次结构无关,由于所有用户都知道陷门s连同集合S的所有元素的哈希值,因此,当累加树如下表示时,每个参与者都能够计算累加树的全局摘要:
在这种情况下,所有参与者都将能够计算局部摘要-在图6的示例中ψ(d),ψ(e),ψ(f)-因此,这些量不能用于锁定交易,即,任何参与者可以独立于参与者所属的子组进行签名。
在这种情况下,值的哈希值e′i可以与重构秘密所需的信息一起传送给所有参与者710以优化通信回合,如图7中708和710所示。
在各种实施例中,摘要的哈希值可以在锁定脚本中使用。例如,可以使用图5中所示的脚本。
情况2-参与者对计算全局摘要和局部摘要二者都感兴趣,并且在某些示例中,使用它们来锁定交易脚本。在该实现方式中,我们希望只有特定子组中的用户才能够计算其局部摘要。
例如,参考图6,我们希望仅用户U1,U2,U3能够计算ψ(d)。这样,交易脚本可以用ψ′(d)(局部摘要的哈希值)锁定,并且三个参与者中的任何一个都将能够通过提供哈希值的原像(pre-image)ψ(d)来解锁交易。
在该实施例中,仅被认为是同级的参与者(在图6的示例中为U1,U2,U3)将进行通信以交换其值的哈希值e′i,i=1,2,3。哈希值将仅在不同于上述情况1的给定子树的同级之间进行交换,从而允许该参与者的子组计算其共同父级的摘要,(U1,U2,U3)计算ψ(d)。其他参与者(U4,..,Ug)将收到压缩信息,即后者的哈希值。因此,在该示例中,协议将使用两个额外的通信回合,如图8所示。
图8示出了实施例中信息的示例,该信息作为用于去中心化协议的秘密共享和秘密重构的一部分而被交换。首先,在802和804处,秘密共享在所有参与者之间交换,然后在806和808处,局部摘要在同级之间被重构,然后在810和812处,局部摘要的哈希值被传送给参与者。
给定其他子树的局部摘要的哈希值,所有参与者都能够在不知道所有参与者的值的哈希值e′i的情况下计算累加树的全局摘要。在一种实现方式中,假设陷门s对所有参与者也都是已知的,则可以按以下方式计算全局摘要:
ψ(r)=g(h(ψ(d))+s)(h(ψ(e))+s)(h(ψ(f))+s)
在该第二种情况下,协议的参与者能够根据其在树中的相应位置来重构与累加树相关的不同信息。因此,存在一种层次结构,其中参与者至少部分地基于其在层次结构中的相应位置来承担不同的角色。
例如,参考图6,可以创建其输出通过ψ′(e)或ψ′(f)被锁定的交易,从而仅属于“管理”组或“财务”组的参与者可以签署交易,从而解锁关联的资金。在一种实现方式中,交易是诸如比特币交易之类的加密货币交易。
图9示出了实施例中用于去中心化协议的交易锁定脚本的示例,其中,来自一个或多个组的任何参与者可以通过提供父摘要的坐标来解锁关联的输出。锁定脚本900包含在方括号<>中。可以通过在解锁脚本中提供局部摘要ψ(e)的x、y坐标(在902处用xψ(e)、yψ(e)表示)或局部摘要ψ(f)的x、y坐标(xψ(f),yψ(f))来解锁资金。锁定脚本包含局部摘要的哈希值,即ψ′(e)912和ψ′(f)918。在图9中,我们示出了一种可能的赎回脚本,其中,参与者提供局部摘要ψ(e)的坐标(例如,参与者属于“管理”组)。
h:(x,y)→x+2ky(mod p)
其中,2k>p。注意,在图9中我们也指示=2k。该脚本通过使解锁脚本中提供的坐标x、y哈希化来验证结果对应于两个局部摘要之一的哈希值(ψ′(e)或ψ′(f))。脚本中的附加参数包括模数p 910、916和幂k 908、914。在实施例中,其余参数904、906和920是结果代码,且指示脚本是否成功。
为了能够使用上述哈希函数,应该支持OP_CODES OP_MUL和OP_MOD。
图10示出了实施例中用于重构全局摘要的去中心化协议1000的示例。图10以流程图的形式示出了对协议的去中心化版本的情况1和情况2执行的操作,该协议重构累加树的全局摘要。在各种实施例中,图10所示的操作可以由与各种参与者或组成员相关联的计算机系统执行。图10所示的协议可以被实现为存储在计算机系统的存储器上的指令,该指令在由计算机系统的处理器执行时执行所描述和示出的操作。
在实施例中,在框1002处,参与者对要使用的累加树的结构达成一致。在实施例中,参与者协商用于累加树的参数的集合,该集合包括累加树中的多个级别以及累加树中的每个中间节点的多个子节点。
参与者执行建立共享的秘密的许多操作。在框1004处,每个参与者Ui被指定xi,并且将该信息被公开。每个参与者Ui生成t次随机多项式fi(x)并秘密地(利用相应的接收者的公钥加密)将每个其他参与者706在多项式上的相应的点(在一些示例中为fi(xj)mod n)发送1006给Uj(其中,j≠i)。每个玩家Ui对所有接收到的f1(xi),f2(xi),...fp(xi)求和(所有mod n,其中,n是椭圆曲线上点g生成的组的阶数),并构造1008玩家在多项式上的份额ki=f(xi)mod n。
在参与者同意其份额之后,参与者便能够协作以重构秘密s,该秘密用于计算累加树的摘要。在标记为情况1的第一实现方式1010中,为了重构秘密,每个玩家共享1012a)他们各自的份额ki,b)bi,π(他们的拉格朗日基础多项式),以及c)其值的哈希值e’i。在标记为情况2的第二实现方式1014中,为了重构秘密,每个玩家共享1016a)他们各自的份额ki以及b)bi,π(他们的拉格朗日基础多项式)。在两种情况下,在框1018处,参与者都能够如上所述重构秘密s。
在每种情况下,参与者都按以下方式确定摘要。在情况1中,在框1020处,参与者能够确定全局摘要。在情况2中,哈希值将仅在给定子树的同级之间进行交换1022,从而允许参与者的该子组计算1024其共同父级的摘要ψ(a)。向其他参与者提供1026压缩信息,即上述的哈希值。在实施例中,协议的情况2将使用额外的通信回合,如图所示。首先,在所有参与者之间交换秘密份额,然后在同级之间重构局部摘要,并且然后将局部摘要的哈希值传送给参与者。如果需要,在一些实施例中,在框1028处,参与者可以确定全局摘要。
本文所述的各种实施例提供了用来有效地证明组的成员身份并授权在区块链网络上转移数字资产的方案。
在一些实现方式中,该协议基于双线性映射累加器,该累加器允许压缩有关大小恒定的对象中整个元素组或集合的信息,即累加树的摘要。有关组的信息按层次存储在累加树中的局部摘要(中间层)和全局摘要(树的根)中。
在一个实施例中,描述了中心化协议,在其中授权机构向用户提供关于累加树的压缩信息,以便用户可以计算其成员身份的证明和去中心化版本,在去中心化版本中,用户自己协作来构造局部摘要并交换信息以计算其个体成员身份的证明。在另一个实施例中,使用累加器描述协议的去中心化版本。在参与者之间的通信回合方面,去中心化方案也是有效的,因为构造累加树的局部和全局摘要所需的信息需要传送给(i)仅相关(和最少数量)的参与者,以及(ii)在可能的情况下,在同一通信回合中。
在各种实现方式中,存储在集合中的实际值不需要传送给其他成员或授权机构,而仅需要传送他们的哈希值。这意味着,如果组中的元素是公钥或其他类型的假名和匿名凭据,则其永远不会被公开披露。
参与者可以至少部分基于用例来使用(一个或多个)全局摘要或局部摘要来锁定交易脚本。这样,利用合理大小的脚本,属于给定组(或层次结构中的子组)的任何用户都可以通过交易来授权进行数字转移。
图11是计算装置1100的示意性简化框图,该计算装置1100可用于实践本公开的至少一个实施例。在各种实施例中,计算装置1100可以用于实现以上示出和描述的任何系统。例如,计算装置1100可以被配置为用作数据服务器、网络服务器、便携式计算装置、个人计算机或任何电子计算装置。如图11所示,计算装置1100可以包括一个或多个处理器1102,在实施例中,处理器1102被配置为经由总线子系统1104与多个外围子系统通信并且可操作地耦合到多个外围子系统。在一些实施例中,这些外围子系统包括存储子系统1106,该存储子系统1106包括存储器子系统1108和文件/磁盘存储子系统1110、一个或多个用户接口输入装置1112、一个或多个用户接口输出装置1114以及网络接口子系统1116。这样的存储子系统1106可以用于暂时或长期存储信息。
在一些实施例中,总线子系统1104可以提供用于使计算装置1100的各个组件和子系统能够按预期彼此通信的机制。尽管总线子系统1104被示意性地示出为单个总线,但是总线子系统的替代实施例利用多个总线。在一些实施例中,网络接口子系统1116提供到其他计算装置和网络的接口。在一些实施例中,网络接口子系统1116用作从计算装置1100接收数据以及将数据从计算装置1100发送到其他系统的接口。在一些实施例中,总线子系统1104被用于传送诸如细节、搜索项等数据,等等。
在一些实施例中,用户接口输入装置1112包括一个或多个用户输入装置,例如,键盘;诸如集成鼠标、轨迹球、触摸板或图形输入板的定点装置;扫描仪;条形码扫描仪;合并到显示器中的触摸屏;诸如语音识别系统、麦克风等音频输入装置;以及其他类型的输入装置。通常,术语“输入装置”的使用旨在包括用于将信息输入到计算装置1100的所有可能类型的装置和机制。在一些实施例中,一个或多个用户接口输出装置1114可以包括显示子系统、打印机或诸如音频输出装置等非可视显示器。在一些实施例中,显示子系统包括阴极射线管(CRT)、诸如液晶显示器(LCD)、发光二极管(LED)显示器或投影仪的平板装置或其他显示装置。通常,术语“输出装置”的使用旨在包括用于从计算装置1100输出信息的所有可能类型的装置和机制。一个或多个用户接口输出装置1114可以被用于例如呈现用户接口以有助于用户与执行所描述的过程及其中的变型的应用的交互,当这样的交互是适当的时。
在一些实施例中,存储子系统1106提供计算机可读存储介质,该计算机可读存储介质用于存储提供本公开的至少一个实施例的功能的基本编程和数据构造。在一些实施例中,应用程序(程序、代码模块、指令)当由一个或多个处理器执行时提供本公开的一个或多个实施例的功能,并且在实施例中被存储在存储子系统1106中。这些应用程序模块或指令可以由一个或多个处理器1102执行。另外,在各个实施例中,存储子系统1106提供用于存储根据本公开使用的数据的存储库。在一些实施例中,存储子系统1106包括存储器子系统1108和文件/磁盘存储子系统1110。
在实施例中,存储器子系统1108包括多个存储器,例如用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)1118和/或其中可以存储固定指令的只读存储器(ROM)1120。在一些实施例中,文件/磁盘存储子系统1110提供用于程序和数据文件的非临时性持久(非易失性)存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、压缩磁盘只读存储器(CD-ROM)驱动器、光盘驱动器、可移动介质盒或其他类似的存储介质。
在一些实施例中,计算装置1100包括至少一个本地时钟1124。在一些实施例中,本地时钟1124是计数器,其表示从特定开始日期发生的滴答声的数量,并且在一些实施例中,其一体得地位于计算装置1100内。在各种实施例中,本地时钟1124用于以特定时钟脉冲来使计算装置1100和其中包括的子系统的处理器中的数据传输同步,并且可以用于协调计算装置1100与数据中心中的其他系统之间的同步操作。在另一个实施例中,本地时钟是可编程间隔计时器。
计算装置1100可以是多种类型中的任何一种,包括便携式计算机装置、平板计算机、工作站或以下描述的任何其他装置。另外,在一些实施例中,计算装置1100可以包括可以通过一个或多个端口(例如,USB、耳机插孔、闪电连接器等)连接到计算装置1100的另一装置。在实施例中,这样的装置包括被配置为接受光纤连接器的端口。因此,在一些实施例中,该装置被配置为将光信号转换为电信号,该电信号可以通过将装置连接至计算装置1100的端口传输以进行处理。由于计算机和网络不断变化的性质,对图11中所描绘的计算装置1100的描述仅旨在作为具体示例以用于说明该装置的优选实施例的目的。具有比图11中描绘的系统更多或更少的组件的许多其他配置是可能的。
因此,说明书和附图应被认为是说明性的而不是限制性的。但是,显然的是,在不脱离权利要求书所阐述的本发明范围的情况下,可以对其做出各种修改和改变。同样,其他变型也在本公开的范围内。因此,尽管公开的技术易于进行各种修改和替代构造,但是其某些示出的实施例在附图中示出并且已经在上面进行了详细描述。然而,应当理解,无意将本发明限制为公开的一个或多个特定形式,相反,本发明旨在涵盖落入如在所附权利要求书中限定的本发明范围内的所有修改、替代构造和等同形式。
在描述公开的实施例的上下文中(特别是在所附权利要求的上下文中),除非另有说明或与上下文明显矛盾,否则术语“一个”和“一种”以及类似所指的使用应被解释为涵盖单数形式和复数形式两者。除非另有说明,否则术语“包含”、“具有”、“包括”和“含有”应被解释为开放式术语(即,意思是“包括但不限于”)。术语“连接”在未修改且指代物理连接时应被理解为部分或全部包含在内、附接或连接在一起,即使存在某些中间物。除非另外指出,否则在本公开中对数值范围的叙述仅旨在用作分别指代落入该范围内的每个单独值的速记方法,并且每个单独值都被并入说明书中,就如同其被分别列举一样。除非上下文另有说明或与之矛盾,否则术语“集合”(例如“条目的集合”)或“子集合”的使用应解释为包括一个或多个成员的非空集合。此外,除非上下文另有说明或与之矛盾,否则对应集合的术语“子集合”不一定表示对应集合的适当子集合,而是子集合和对应的集合可以相等。
除非另有明确指出或与上下文明显矛盾,否则诸如“A、B和C中的至少一个”或“至少一个A、B和C”形式的短语等组合语言通常使用上下文来理解以表示条目、术语等,可以是A或B或C,或者是A和B和C的集合的任何非空子集。例如,在具有三个成员的集合的说明性示例中,组合短语“A、B和C中的至少一个”和“至少一个A、B和C”是指以下任意集合中的至少一个:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,这种组合语言通常不意图暗示某些实施例要求存在至少一个A、至少一个B和至少一个C。
除非另有说明或与上下文明显矛盾,否则可以以任何合适的顺序执行所描述的过程的操作。可以在配置有可执行指令的一个或多个计算机系统的控制下执行所描述的过程(或其变型和/或组合),并且可以将其实现为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。在一些实施例中,代码可以例如以计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或多个处理器执行的多个指令。在一些实施例中,计算机可读存储介质是非暂时性的。
提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本发明的实施例,而不对本发明的范围构成限制,除非另有要求。说明书中的任何语言都不应解释为指示任何未要求保护的要素对于实施本发明必不可少。
描述了本公开的实施例,包括发明人已知的用于执行本发明的最佳模式。在阅读前述描述时,那些实施例的变型对于本领域普通技术人员将变得显而易见。发明人期望熟练的技术人员适当地采用这样的变型,并且发明人希望本公开的实施例可以以不同于具体描述的方式来实践。因此,本公开的范围包括适用法律所允许的所附权利要求中记载的主题的所有修改和等同物。而且,除非另外指出或与上下文明显矛盾,否则上述元素在其所有可能的变化中的任何组合都被本公开的范围涵盖。
引用的所有参考文献(包括出版物、专利申请和专利)均以引用的方式并入本文,其程度如同每个参考文献被单独地且具体地指示为通过引用并入并完整地阐述。
应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例而不脱离由所附权利要求限定的本发明的范围。在权利要求中,括号中的任何附图标记都不应解释为对权利要求的限制。单词“包括”和“包含”等不排除任何权利要求或整个说明书中列出的元素或步骤之外的元素或步骤的存在。在本说明书中,“包括(comprise)”是指“包括(include)或由……组成(consist of)”,“包括(comprising)”是指“包括(including)或由……组成(consisting of)”。元素的单数形式并不排除此类元素的复数形式,反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个装置的装置权利要求中,这些装置中的几个可以由一个且相同的硬件来实施。在互不相同的从属权利要求中记载某些措施的事实并不表示不能有利地使用这些措施的组合。
总结
本公开中描述和建议的技术通过有效地证明组的成员身份并授权在区块链网络上转移数字资产来改善计算领域,特别是区块链交易领域。另外,本公开中描述和建议的技术通过减少要求交易输出时公开的信息量来提高这种交易的安全性。在各种实现方式中,存储在集合中的实际值不需要传送给其他成员或授权机构,而仅需要传送他们的哈希值。这意味着,如果组的元素是公钥或其他类型的假名和匿名凭据,则其永远不会被公开披露。此外,本公开中描述和建议的技术必须植根于计算机技术中,以便克服在不存在控制组成员身份的中央授权机构的情况下确定组成员身份时特别出现的问题。在参与者之间的通信回合方面,去中心化方案也是有效的,因为构造累加树的局部摘要和全局摘要所需的信息需要传送给(i)仅相关的参与者,以及(ii)在可能的情况下,在同一通信回合中。
Claims (15)
1.一种计算机实现的方法,包括:
生成累加树的摘要,所述累加树的每个元素表示计算机系统的集合中的计算机系统;
生成针对至分布式数据结构中的插入的记录,所述记录包含至少部分基于所述摘要的授权信息;以及
使所述记录插入至所述分布式数据结构中。
2.根据权利要求1所述的计算机实现的方法,其中:
所述记录包括锁定脚本;以及
所述授权信息标识所述累加树的局部摘要的哈希值。
3.根据权利要求1或2中任一项所述的计算机实现的方法,其中:
所述记录包括解锁脚本;以及
所述授权信息标识从由椭圆曲线上的点表示的局部摘要得出的数字。
4.根据权利要求1至3中的任一项所述的计算机实现的方法,其中:
所述记录包括解锁脚本;以及
所述授权信息标识从由椭圆曲线上的点表示的全局摘要得出的数字。
5.根据权利要求1至4中任一项所述的计算机实现的方法,其中,所述累加树的结构至少部分地基于与所述计算机系统的集合相关联的组织结构来确定。
6.根据权利要求1至5中任一项所述的计算机实现的方法,其中:
在所述计算机系统集合之中协商树参数的集合,所述树参数的集合包括树深度和每个中间节点的子节点的数量;以及
所述累加树是根据所述树参数的集合构造的。
7.根据权利要求1至6中任一项所述的计算机实现的方法,其中,所述计算机系统的集合彼此共享信息,所述信息允许每个计算机系统重构所述累加树的共同秘密和全局摘要。
8.根据权利要求1至7中的任一项所述的计算机实现的方法,其中:
所述计算机系统的集合的子集合与所述子集合的其他成员共享所述子集合的信息,以使得所述子集合的成员能够确定所述子集合的局部摘要;以及
在所述计算机系统的集合中但不在所述子集合中的计算机系统不被提供所述信息并且不能确定局部摘要。
9.根据权利要求8所述的计算机实现的方法,其中,在所述计算机系统的集合中但不在所述子集合中的计算机系统被提供计算机系统的所述子集合的父节点的局部摘要的哈希值。
10.根据权利要求1至9中的任一项所述的计算机实现的方法,还包括生成见证,所述见证与摘要结合来证明计算机系统的集合中的成员身份。
11.根据权利要求1至10中任一项所述的计算机实现的方法,其中:
所述计算机系统的集合中的成员身份通过授权计算机系统来确定;以及
所述授权计算机系统在所述计算机系统的集合之中建立与所述累加树关联的共享的参数集合。
12.根据权利要求1至11中的任一项所述的计算机实现的方法,其中,所述计算机系统的集合中的每个计算机系统与所述集合的其他成员共享所述计算机系统的凭证的哈希值,以使得所述集合的每个成员能够确定所述累加树的全局摘要。
13.根据权利要求1至12中任一项所述的计算机实现的方法,其中:
所述分布式数据结构是区块链;以及
所述记录是比特币交易记录。
14.一种系统,包括:
处理器;以及
包括可执行指令的存储器,所述可执行指令由于处理器的执行而促使系统执行根据权利要求1至13中任一项所述的计算机实现的方法。
15.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于计算机系统的处理器的执行而促使计算机系统至少执行根据权利要求1至13中任一项所述的计算机实现的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1803706.9A GB201803706D0 (en) | 2018-03-08 | 2018-03-08 | Computer-implemented system and method |
GB1803706.9 | 2018-03-08 | ||
PCT/IB2019/051763 WO2019171269A1 (en) | 2018-03-08 | 2019-03-05 | Blockchain-Implemented Methods And Systems For Authorisation Based On Bilinear Map Accumulators |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111819817A true CN111819817A (zh) | 2020-10-23 |
Family
ID=61972680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980017279.5A Pending CN111819817A (zh) | 2018-03-08 | 2019-03-05 | 针对基于双线性映射累加器的授权的区块链实现的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11811942B2 (zh) |
EP (1) | EP3763077A1 (zh) |
JP (2) | JP7381480B2 (zh) |
CN (1) | CN111819817A (zh) |
GB (1) | GB201803706D0 (zh) |
WO (1) | WO2019171269A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116090016A (zh) * | 2023-04-10 | 2023-05-09 | 江苏省国信数字科技有限公司 | 区块链数据存储隐私保护方法、装置、设备及存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11405365B2 (en) | 2019-03-13 | 2022-08-02 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
US11374910B2 (en) * | 2019-03-13 | 2022-06-28 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
US11838400B2 (en) * | 2019-11-19 | 2023-12-05 | International Business Machines Corporation | Image encoding for blockchain |
US11637817B2 (en) | 2020-03-12 | 2023-04-25 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
CN112488712A (zh) * | 2020-06-24 | 2021-03-12 | 杨刘琴 | 基于区块链大数据的安全识别方法及安全识别系统 |
CN112818384B (zh) * | 2021-01-18 | 2023-07-04 | 网易(杭州)网络有限公司 | 基于区块链的资产处理方法、装置、设备及存储介质 |
EP4315734A1 (en) * | 2021-05-07 | 2024-02-07 | Dfinity Stiftung | Data authentication in distributed networks |
CN113591116B (zh) * | 2021-08-04 | 2023-09-05 | 天津大学 | 一种高效门限可验证多秘密分享方法 |
CN113792282B (zh) * | 2021-11-16 | 2022-03-18 | 深圳市名竹科技有限公司 | 身份数据验证方法、装置、计算机设备和存储介质 |
GB2615081A (en) * | 2022-01-26 | 2023-08-02 | Nchain Licensing Ag | Elliptic curve arithmetic in script |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010024931A1 (en) * | 2008-08-29 | 2010-03-04 | Brown University | Cryptographic accumulators for authenticated hash tables |
CN106503994A (zh) * | 2016-11-02 | 2017-03-15 | 西安电子科技大学 | 基于属性加密的区块链隐私数据访问控制方法 |
CN107181765A (zh) * | 2017-07-25 | 2017-09-19 | 光载无限(北京)科技有限公司 | 基于区块链技术的网络数字身份认证方法 |
CN107483198A (zh) * | 2017-09-25 | 2017-12-15 | 中国科学院信息工程研究所 | 一种可监管的区块链系统及方法 |
CN107682308A (zh) * | 2017-08-16 | 2018-02-09 | 北京航空航天大学 | 基于区块链潜信道技术的电子证据保存系统 |
CN107769925A (zh) * | 2017-09-15 | 2018-03-06 | 山东大学 | 基于区块链的公钥基础设施系统及其证书管理方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6620000A (en) * | 1999-08-06 | 2001-03-05 | Frank W Sudia | Blocked tree authorization and status systems |
US7958356B1 (en) | 2006-09-29 | 2011-06-07 | Netapp, Inc. | System and method for establishing a shared secret among nodes of a security appliance |
KR100828125B1 (ko) * | 2007-02-15 | 2008-05-08 | 재단법인서울대학교산학협력재단 | 논리 키 계층 구조에서 효율적인 트리구조 결정 방법 및트리구조의 성능 분석 방법 |
EP2363977B1 (en) | 2010-02-26 | 2012-10-24 | Research In Motion Limited | Methods and devices for computing a shared encryption key |
AU2011360651A1 (en) * | 2011-02-24 | 2013-05-02 | Kyoo Soo Rho | Method for providing multi-level membership management service |
JP2012216916A (ja) | 2011-03-31 | 2012-11-08 | Kddi Corp | 多重署名システム、検証システム、多重署名方法及び多重署名プログラム |
CA2792181C (en) * | 2011-10-18 | 2017-07-25 | Research In Motion Limited | Method of distributed layout negotiation in a user interface framework |
US9853819B2 (en) * | 2013-08-05 | 2017-12-26 | Guardtime Ip Holdings Ltd. | Blockchain-supported, node ID-augmented digital record signature method |
US20150213433A1 (en) | 2014-01-28 | 2015-07-30 | Apple Inc. | Secure provisioning of credentials on an electronic device using elliptic curve cryptography |
EP3326322B1 (en) * | 2015-07-17 | 2019-12-18 | Robert Bosch GmbH | Method and system for secure key generation over an insecure shared communication medium |
US20170091726A1 (en) * | 2015-09-07 | 2017-03-30 | NXT-ID, Inc. | Low bandwidth crypto currency transaction execution and synchronization method and system |
US20180331832A1 (en) * | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
GB2561729A (en) | 2016-02-23 | 2018-10-24 | Nchain Holdings Ltd | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
US10218511B2 (en) * | 2016-12-23 | 2019-02-26 | Amazon Technologies, Inc. | Signature delegation |
US10230525B2 (en) * | 2016-12-23 | 2019-03-12 | Amazon Technologies, Inc. | Public key rollup for merkle tree signature scheme |
US20180232648A1 (en) * | 2017-02-14 | 2018-08-16 | Cognitive Scale, Inc. | Navigating a Hierarchical Abstraction of Topics via an Augmented Gamma Belief Network Operation |
EP3593487B1 (en) * | 2017-03-10 | 2021-04-28 | Visa International Service Association | Compact recordation protocol |
-
2018
- 2018-03-08 GB GBGB1803706.9A patent/GB201803706D0/en not_active Ceased
-
2019
- 2019-03-05 WO PCT/IB2019/051763 patent/WO2019171269A1/en active Application Filing
- 2019-03-05 JP JP2020545597A patent/JP7381480B2/ja active Active
- 2019-03-05 US US16/979,145 patent/US11811942B2/en active Active
- 2019-03-05 EP EP19715558.3A patent/EP3763077A1/en active Pending
- 2019-03-05 CN CN201980017279.5A patent/CN111819817A/zh active Pending
-
2023
- 2023-09-20 US US18/370,735 patent/US20240022425A1/en active Pending
- 2023-11-02 JP JP2023188109A patent/JP2023181467A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010024931A1 (en) * | 2008-08-29 | 2010-03-04 | Brown University | Cryptographic accumulators for authenticated hash tables |
CN106503994A (zh) * | 2016-11-02 | 2017-03-15 | 西安电子科技大学 | 基于属性加密的区块链隐私数据访问控制方法 |
CN107181765A (zh) * | 2017-07-25 | 2017-09-19 | 光载无限(北京)科技有限公司 | 基于区块链技术的网络数字身份认证方法 |
CN107682308A (zh) * | 2017-08-16 | 2018-02-09 | 北京航空航天大学 | 基于区块链潜信道技术的电子证据保存系统 |
CN107769925A (zh) * | 2017-09-15 | 2018-03-06 | 山东大学 | 基于区块链的公钥基础设施系统及其证书管理方法 |
CN107483198A (zh) * | 2017-09-25 | 2017-12-15 | 中国科学院信息工程研究所 | 一种可监管的区块链系统及方法 |
Non-Patent Citations (1)
Title |
---|
ELI BEN-SASSON ET AL: "Zerocash:Decentralized anonymous payments from Bitcoin Contents", 《2014 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》, pages 459 - 473 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116090016A (zh) * | 2023-04-10 | 2023-05-09 | 江苏省国信数字科技有限公司 | 区块链数据存储隐私保护方法、装置、设备及存储介质 |
CN116090016B (zh) * | 2023-04-10 | 2023-07-11 | 江苏省国信数字科技有限公司 | 区块链数据存储隐私保护方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200412542A1 (en) | 2020-12-31 |
JP7381480B2 (ja) | 2023-11-15 |
JP2023181467A (ja) | 2023-12-21 |
JP2021517389A (ja) | 2021-07-15 |
US20240022425A1 (en) | 2024-01-18 |
WO2019171269A1 (en) | 2019-09-12 |
EP3763077A1 (en) | 2021-01-13 |
US11811942B2 (en) | 2023-11-07 |
GB201803706D0 (en) | 2018-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11811942B2 (en) | Blockchain-implemented methods and systems for authorisation based on bilinear map accumulators | |
CN110011781B (zh) | 用于交易金额加密且支持零知识证明的同态加密方法和介质 | |
US20080133926A1 (en) | Signature schemes using bilinear mappings | |
CN114730420A (zh) | 用于生成签名的系统和方法 | |
US20200213125A1 (en) | Computer-implemented system and method enabling secure storage of a large blockchain over a plurality of storage nodes | |
EP3725026A1 (en) | Computer-implemented systems and methods for performing computational tasks across a group operating in a trust-less or dealer-free manner | |
JP7231630B2 (ja) | ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法 | |
CN106487786B (zh) | 一种基于生物特征的云数据完整性验证方法及系统 | |
Sarier | Efficient biometric-based identity management on the Blockchain for smart industrial applications | |
KR20030062401A (ko) | 겹선형쌍을 이용한 개인식별정보 기반의 은닉서명 장치 및방법 | |
US20220086006A1 (en) | Computer-implemented system and method for asset mixing | |
KR20230093432A (ko) | 서비스 거부 공격들의 식별 | |
WO2021213959A1 (en) | (ec)dsa threshold signature with secret sharing | |
WO2023036528A1 (en) | Generating shared cryptographic keys | |
WO2023016729A1 (en) | Generating digital signature shares | |
Lin et al. | F2p-abs: A fast and secure attribute-based signature for mobile platforms | |
Hwang et al. | New efficient batch verification for an identity‐based signature scheme | |
CN117837123A (zh) | 生成数字签名 | |
CN117837127A (zh) | 生成数字签名 | |
Zhou et al. | Research on anonymous signatures and group signatures | |
Kim et al. | A Comprehensive Approach to User Delegation and Anonymity within Decentralized Identifiers for IoT | |
WO2023036534A1 (en) | Generating shared cryptographic keys | |
Hoang | Securing data access and exchanges in a heterogeneous ecosystem: An adaptive and context-sensitive approach | |
CN111819815A (zh) | 用于转移对数字资产的控制的计算机实现的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |