CN116827552B - 一种基于格的盲签名和分片区块链的交易方法 - Google Patents
一种基于格的盲签名和分片区块链的交易方法Info
- Publication number
- CN116827552B CN116827552B CN202310767621.1A CN202310767621A CN116827552B CN 116827552 B CN116827552 B CN 116827552B CN 202310767621 A CN202310767621 A CN 202310767621A CN 116827552 B CN116827552 B CN 116827552B
- Authority
- CN
- China
- Prior art keywords
- transaction
- merkel tree
- nodes
- signature
- blind
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/3247—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 involving digital signatures
- H04L9/3257—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 involving digital signatures using blind signatures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于格的盲签名和分片区块链的交易方法,包括:分片领导者根据交易的输入生成Merkle树,根据其他节点的公钥对Merkle树进行盲化,分片领导者节点执行解盲算法生成盲签名,其他节点对盲签名进行验证并采纳,领导者节点收集所有其他节点的盲签名做BFT共识结果验证,验证通过生成Merkle树的承诺签名;将各输入的信息以及Merkle树根承诺签名发送至相关交易的其他输入输出分片的领导者判断交易的输入是否可用,将正确的交易放入有效交易池;分片领导者将正确的交易打包成区块广播至其他节点,进行BFT共识,完成区块上链,并更新utxo池中的交易输入状态,完成交易。
Description
技术领域
本发明属于区块链技术领域,特别是涉及一种基于格的盲签名和分片区块链的交易方法。
背景技术
区块链发展迅速,其具有去中心化、分布式数据存储、共识机制、加密机制、点对点通信等技术,目前已经在许多领域中实现具体应用,比如医学,物联网,车联网等等领域中都取得了不错的成绩,但目前区块链所面临的挑战也是十分明显的,最严重的问题之一是交易吞吐量低,目前的大多数区块链系统都无法实现这一目标。
为了提高交易吞吐量,提出了分片区块链的设计思想,即将数据库分布式存储与区块链结合,将参与共识的不同节点划分到不同分片中,不同的节点负责生成和维护指定的区块链。
整个系统由多个分片组成,对应于多个平行区块链。对于一个分片中的节点来说,大部分的通信都是在分片内完成的。交易根据一定的规则被分配到分片区。
对于输入和输出由不同分片管理的交易,交易的承诺需要由这些相应的分片共同完成。这种类型的交易,即跨分片交易,在分片区块链中占了绝大多数的交易。分片的数量越多,跨片交易的比例就越大。例如,当分片数为3和16时,跨片交易的比例分别为96.3%和99.98%。
跨区交易的处理方法对分片区块链的效率和吞吐量有很大影响。目前,大多数现有的跨分片交易处理方案都是基于两阶段提交(2PC)协议,其中包含一个准备阶段和一个提交阶段。
在准备阶段,所有输入分片都需要生成一个可用性证书,以证明一个输入是否可用。一个输入是可用的意味着它没有被任何事务花费,也没有被锁定。为了产生这样的证书,一个分片可能会调用一个BFT算法来达成协议并产生足够的签名。如果一个输入是可用的,它应该在证书生成后被锁定,以防止另一个交易花费它,即双重花费。所有的可用性证书都应该被发送到与交易相关的每个输入和输出分片。
在提交阶段,收到所有相关证书的分片可以通过检查所有输入是否可用来验证该交易是否有效。如果至少有一个输入是不可用的,那么该交易是无效的,之前锁定的输入应该被解锁。如果所有的输入都是可用的,那么输入应该从相关输入分片的相应未用交易输出(UTXO)池中删除,而输出应该在输出分片中创建。
目前的跨分片处理方法存在一些问题,如效率低和容易受到攻击。此外,需要多次调用BFT算法来提交一个交易。由于BFT算法至少包含两轮所有分片成员之间的投票(在基于委员会的分片区块链中,通常分片内有一个委员会),多次调用BFT增加了通信复杂性。
随着量子计算机的快速发展,目前大多数密码系统中用于认证的数字签名方案对量子对抗者来说存在很大的漏洞。由于shor算法可以为整数分解提供指数级的速度,并通过量子傅里叶变换实现离散对数。Grover的算法可以为搜索问题提供四倍的速度,而在分片区块链中存在很多需要用到签名的场合,其中的分片交易的安全性以及用户的隐私性严重受到影响。
发明内容
为了解决背景技术中存在的问题,本发明提供一种基于格的盲签名和分片区块链的交易方法,以加强分片区块链交易的安全性和用户的隐私性,同时提高交易吞吐量;
为了实现上述目的,本发明所采用的技术方案如下:
S1:每个分片的领导者从utxo池中收集与其所属分片X相关的所有交易;并将收集的每个交易在分片X内的所有输入、每个输入的状态和交易的ID作为Merkel树的叶子节点创建分片X的Merkel树;
S2:将分片X的Merkel树向片内的其他节点进行广播,调用BFT共识机制,每个分片X的其他节点对Merkel树中所有交易输入的状态进行验证,验证通过后,生成Merkel树的承诺消息,并利用盲化算法和KeyGen算法生成分片X的其他节点的盲签名,分片X的其他节点将盲签名返回给分片X的领导者;
S3:分片X的领导者统计其他节点返回的盲签名生成Merkel树根节点的承诺签名,并将Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID广播给交易的其他输入和输出所在分片的领导者;
S4:交易的其他输入和输出所在分片的领导者分别对收到的Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID进行验证;验证通过,则将交易在分片X内的所有输入放入交易的其他输入或输出所在分片的可用证明池,其中每个交易在分片内的所有输入被默认为处于该分片的可用性证明池内;
S5:当分片的可用证明池中包含交易的所有输入时,根据交易的所有输入和交易的所有输出判断交易的正确性,当判断交易为正确交易时,则更新utxo池中正确交易所有输入的状态为被占用;再将正确交易加入该分片的有效交易池;
S6:当分片的有效交易池中交易达到一定数量或每间隔一段时间,将分片的有效交易池内的所有交易打包生成区块,该分片的领导者将区块广播给分片内的其他节点,调用BFT共识机制,分片内的其他节点对区块进行验证;验证通过后,生成区块的承诺消息,并利用盲化算法和KeyGen算法生成分片内的其他节点盲签名,分片内的其他节点将盲签名返回给分片的领导者;分片的领导者统计根据片内其他节点返回的盲签名判断区块是否正确,若正确则将该区块进行上链,并更新utxo池中区块内所有交易输入的状态为已使用,产生相应的交易输出,完成交易。
优选地,所述对Merkel树中所有交易输入的状态进行验证包括:根据每个交易输入的ID在本地交易历史记录中查询交易输入的状态是否与Merkel树中交易输入的状态一致,一致则验证通过。
优选地,所述利用盲化算法和KeyGen算法生成分片X的其他节点的盲签名包括:
分片X的其他节点利用KeyGen算法生成其公钥pka和私钥ska,并将其公钥pka和Merkel树的承诺消息xa上传给分片X的领导者节点;分片X的领导者节点从双峰高斯分布中随机选择一个盲化因子y,根据其他节点的公钥pka和Merkel树的承诺消息xa计算其他节点的盲消息μa,并将其他节点的盲消息μa发送给其他节点a;所述其他节点a的盲消息如下所述:
μa=(-1)tca,t∈{0,1}n
ca=H(xa+y*pka%2q,m)
其中,H表示哈希函数,q是格的基础参数本身是一个素数,μa表示其他节点a的盲消息,m表示Merkel树,n表示KeyGen算法基础矩阵的维度;a属于分片X除领导者节点外的其它所有节点的集合;
其他节点a选择一个随机向量γ,并根据其私钥ska和盲消息μa生成盲消息μa的签名za发送给分片X的领导者;所述盲消息μa的签名za包括:
za=γ+μa*ska
分片X的领导者根据盲化因子y和盲消息μa的签名za生成其他节点a的验证签名Qa,并将其他节点a的验证签名Qa发送给其他节点a,所述其他节点a的验证签名Qa包括:
Qa=<ea,ca>
ea=y+za
其他节点a对接收到的验证签名Qa进行验证,判断ca=H(pka*ea+q*ca%2q,m)是否成立,若成立则将验证签名Qa作为其他节点a的盲签名。
优选地,所述生成Merkel树根节点的承诺签名包括:
分片X的领导者统计片内其他节点的盲签名数量,判断Merkel树是否正确,当盲签名数量达到预设值时,判断Merkel树为正确,并生成Merkel树根节点的承诺签名,所述Merkel树根节点的承诺签名包括:Merkle树的根节点信息和分片领导者的承诺签名。
优选地,所述对收到的Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID进行验证包括:
首先对Merkel树根节点的承诺签名进行解析得到Merkel树的根节点信息;
根据Merkel树中交易对应的叶子节点到Merkel树根节点的路径计算Merkel树的根节点,判断计算出的Merkel树的根节点信息和解析后的Merkel树的根节点信息是否一致,同时判断叶子节点中的输入ID是否与交易在分片X内输入的ID一致,同时判断叶子节点中交易的所有输入状态是否为未被占用,若均是,则验证通过。
优选地,所述判断交易的正确性包括:当交易的所有输入金额之和与交易的所有输出金额之和是否一致,若一致则该交易为正确交易。
本发明至少具有以下有益效果
本发明通过将基于格的盲签名算法对领导者节点发送的消息进行验证签名,加强分片区块链系统交易的安全性和用户的隐私性,同时增强分片区块链系统的抗量子攻击能力,对用户的隐私信息保护更加稳定;而分片区块链弥补了当前区块链系统的突出缺点,即系统吞吐量低,安全性低,通过设计有效交易池对交易进行批处理,可以完成交易的分批处理,大大降低了分片区块链系统中的BFT共识的调用次数,同时降低分片之间通信的信息复杂度,以此整体提升了系统的吞吐量。
附图说明
图1为本发明的方法流程图;
图2为本发明的Merkel树构建示意图;
图3为本发明的交易结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
分片区块链:分片区块链具有以下三个特征。第一个是通信分片,参与节点被分为不同的分片,其中每个分片中的节点大部分时间仅需要内部通信。第二个是计算分片,即每个分片仅负责处理其相应的交易。第三个是存储分片,即不同分片的节点仅需要存储其相应分片的区块链历史数据。而且,分片区块链有几个重要组成部分:节点选择,节点分配,片内共识,跨片交易处理和分片重配置。其中,片内共识和跨片交易处理是每个分片区块链中必不可少的部分。
请参阅图1,本发明提供一种基于格的盲签名和分片区块链的交易方法,包括:
S1:每个分片的领导者从utxo池中收集与其所属分片X相关的所有交易;并将每个交易在分片X内的所有输入、每个输入的状态和交易的ID作为Merkel树的叶子节点创建分片X的Merkel树;其中,表示与分片X相关的第i个交易;表示交易在分片X内的第j个输入;其中,i=1,2,…,j=1,2,…;交易的每个输入均包含输入节点的ID信息和输入金额信息,交易的每个输出均包含输出节点的ID信息和输出金额信息;
在本实施例中,每个分片的领导者节点从未花费交易池utxo中收集与其所属分片X相关的所有交易,所述与分片X相关的交易表示为交易的任意输入节点或输出节点是分片X中的节点,在一个分片内可能包含交易的多个输入或输出;交易可以具有一个或多个输出节点,以及一个或多个输出节点;交易输入的状态可以表示为未被占用、被占用或被使用(被花费);
请参阅图2,所述创建分片X的Merkel树包括:
例如,叶子节点B1、B2、B3、B4;则将每个叶子节点分别进行哈希操作,得到hash(B1)、hash(B2)、hash(B3)和hash(B4);将相邻的hash(B1)和hash(B2)相加之后再进行哈希操作得到hash(hash(B1)+hash(B2));同理得到hash(hash(B3)+hash(B4));再将hash(hash(B1)+hash(B2))和hash(hash(B3)+hash(B4))相加之后再进行哈希操作得到Merkel树的根节点hash(hash(hash(B1)+hash(B2))+hash(hash(B3)+hash(B4)))从而构建Merkel树。
S2:将分片X的Merkel树向片内的其他节点进行广播,调用BFT共识机制,每个分片X的其他节点对Merkel树中所有交易输入的状态进行验证,验证通过后,生成Merkel树的承诺消息,并利用盲化算法和KeyGen算法生成分片X的其他节点的盲签名,分片X的其他节点将盲签名返回给分片X的领导者;
优选地,所述对Merkel树中所有交易输入的状态进行验证包括:根据每个交易输入的ID在本地交易历史记录中查询交易输入的状态是否与Merkel树中交易输入的状态一致,一致则验证通过。在本实施例中交易的输入状态有未被占用、被占用或被使用,因此对交易的输入状态验证主要指的是节点根据输入的ID查询在本地交易历史记录中验证交易输入的状态与Merkel树中交易输入的状态一致,一致则验证通过。例如Merkel树中某个叶子节点表示的输入ID为输入状态为未被占用,则节点在本地交易历史记录中查询的交易流水,判断输入是否确实未被占用,是则验证通过。
优选地,所述利用盲化算法和KeyGen算法生成分片X的其他节点的盲签名包括:
分片X的其他节点利用KeyGen算法生成其公钥pka和私钥ska,并将其公钥pka和Merkel树的承诺消息xa上传给分片X的领导者节点;分片X的领导者节点从双峰高斯分布中随机选择一个盲化因子y,根据其他节点a的公钥pka和Merkel树的承诺消息xa计算其他节点的盲消息μa,并将其他节点的盲消息μa发送给其他节点a;所述其他节点a的盲消息如下所述:
μa=(-1)tca,t∈{0,1}n
ca=H(xa+y*pka%2q,m)
其中,H表示哈希函数,q是格的基础参数本身是一个素数,μa表示其他节点a的盲消息,m表示Merkel树,n表示KeyGen算法基础矩阵的维度;a属于分片X除领导者节点外的其它所有节点的集合;
其他节点a选择一个随机向量γ,并根据其私钥ska和盲消息μa生成盲消息μa的签名za发送给分片X的领导者;所述盲消息μa的签名za包括:
za=γ+μa*ska
分片X的领导者根据盲化因子y和盲消息μa的签名za生成其他节点a的验证签名Qa,并将其他节点a的验证签名Qa发送给其他节点a,所述其他节点a的验证签名Qa包括:
Qa=<ea,ca>
ea=y+z1
其他节点a对接收到的验证签名Qa进行验证,判断ca=H(pka*ea+q*ca%2q,m)是否成立,若成立则将验证签名Qa作为其他节点a的盲签名。
在本实施例中,例如,分片X的领导者节点N1会将Merkel树m,发送至分片内的其他节点,分片内的其他节点收到Merkel树后对Merkel树中所有交易输入的状态进行验证;验证通过后,向领导者节点N1返回对Merkel树的承诺消息xa和其他节点a的公钥pka,其中节点的公钥由KeyGen算法生成,每个节点都具备公钥私钥,都由KeyGen算法生成。
S3:分片X的领导者统计片内其他节点返回的盲签名生成Merkel树根节点的承诺签名,并将Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID广播给交易的其他输入Iotherin和输出Iotherout所在分片的领导者;
优选地,所述生成Merkel树根节点的承诺签名包括:包括:分片X的领导者统计片内其他节点的盲签名数量,判断Merkel树是否正确,当盲签名数量达到预设值时,判断Merkel树为正确,并生成Merkel树根节点的承诺签名,所述Merkel树根节点的承诺签名包括:Merkle树的根节点信息和分片领导者的承诺签名。在本实施例中根据BFT算法对签名个数的要求,即需要收集签名数量大于等于2f+1,其中分片X内节点总数为3f+1。
优选地,如图2所示,假设叶子节点为B1、B2、B3和B4;叶子节点B1到Merkel树根节点的路径表示为:B1-B2-hash(hash(B3)+hash(B4));对于叶子节点B3到Merkel树根节点的路径表示为:B3-B4-hash(hash(B1)+hash(B2));
请参阅图3,在本实施例中,例如某未被消费交易具有两个输入和一个输出;输入为A和B,输出为C;其中A和B分别位于分片1和分片2;输出位于分片3;则对于分片1来说,分片1的领导者生成Merkel树根节点的承诺签名之后将Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径;分片1内交易输入A的ID;交易的ID广播给分片2和分片3;同理分片2的领导者,则将B对应的数据广播给分片1和分片3;
S4:交易的其他输入Iotherin和输出Iotherout所在分片的领导者分别对收到的Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID进行验证;验证通过,则将交易在分片X内的所有输入放入交易的其他输入Iotherin或输出Iotherout所在分片的可用证明池,其中每个交易在分片内的所有输入被默认为处于该分片的可用性证明池内;
优选地,所述对收到的Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID进行验证包括:
首先对Merkel树根节点的承诺签名进行解析得到Merkel树的根节点信息;
根据Merkel树中交易对应的叶子节点到Merkel树根节点的路径计算Merkel树的根节点,判断计算出的Merkel树的根节点信息和解析后的Merkel树的根节点信息是否一致,同时判断叶子节点中的输入ID是否与交易在分片X内输入的ID一致,同时判断叶子节点中交易的所有输入状态是否为未被占用,若均是,则验证通过。
优选地,所述对Merkel树根节点的承诺签名进行解析得到Merkel树的根节点信息包括:
请参阅图3,在本实施例中,对于分片1的领导者会收到分片2发送的待验证信息;对于分片2的领导者会收到会受到分片1发送的待验证信息;对于分片3会收到分片1和分片2发送的待验证信息;每个分片均会对其他分片发送的待验证信息进行验证;所述待验证信息包括:Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID。
另外对Merkel树根节点的承诺签名进行解析主要是从Merkel树根节点的承诺签名中取出所需的Merkel树根节点信息。
优选地,在本实施例中,其中每个交易在分片内的所有输入被默认为处于该分片的可用性证明池内,例如,图3中分片1内的输入A被默认为在分片1的可用性证明池内。
S5:当分片的可用证明池中包含交易的所有输入时,根据交易的所有输入和交易的所有输出判断交易的正确性,当判断交易为正确交易时,则更新utxo池中正确交易所有输入的状态为被占用;再将正确交易加入该分片的有效交易池;
优选地,所述判断交易的正确性包括:当交易的所有输入金额之和与交易的所有输出金额之和是否一致,若一致则该交易为正确交易。
S6:当分片的有效交易池中交易达到一定数量或每间隔一段时间,将分片的有效交易池内的所有交易打包生成区块,该分片的领导者将区块广播给分片内的其他节点,调用BFT共识机制,分片内的其他节点对区块进行验证;验证通过后,生成区块的承诺消息,并利用盲化算法和KeyGen算法生成分片内的其他节点盲签名,分片内的其他节点将盲签名返回给分片的领导者;分片的领导者统计根据片内其他节点返回的盲签名判断区块是否正确,若正确则将该区块进行上链,并更新utxo池中区块内所有交易输入的状态为已使用,产生相应的交易输出,完成交易。
在本实施例中,利用盲化算法和KeyGen算法生成分片内的其他节点盲签名包括:分片的其他节点利用KeyGen算法生成其公钥pkb和私钥skb,并将其公钥pkb和区块的承诺消息xb上传给分片的领导者节点;分片的领导者节点从双峰高斯分布中随机选择一个盲化因子y’,根据其他节点的公钥pkb和区块的承诺消息xb计算其他节点的盲消息μb,并将其他节点的盲消息μb发送给其他节点;所述其他节点的盲消息如下所述:
μb=(-1)tcb,t∈{0,1}n
cb=H(xb+y′*pkb%2q,m′)
其中,H表示哈希函数,q是格的基础参数本身是一个素数,μb表示其他节点a的盲消息,m′表示区块,n表示KeyGen算法基础矩阵的维度;b属于分片除领导者节点外的其它所有节点的集合;
其他节点b选择一个随机向量γ′,并根据节点的私钥skb和盲消息μb生成盲消息μb的签名zb发送给分片的领导者;所述盲消息μb的签名zb包括:
zb=γ′+μb*skb
分片X的领导者根据盲化因子y和盲消息μb的签名zb生成其他节点b的验证签名Qb,并将其他节点b的验证签名Qb发送给其他节点b,所述其他节点b的验证签名Qb包括:
Qb=<eb,cb>
eb=y′+zb
其他节点b对接收到的验证签名Qb进行验证,判断cb=H(pkb*eb+q*cb%2q,m′)是否成立,若成立则将验证签名Qb作为其他节点b的盲签名。
优选地,在本实施例中,对于分片1中的一个经验证后的区块假设其中有两笔有效交易,包含输入I1,I2,I3,I4,I5五个输入,O1和O2两个输出,他们在utxo池中的状态本身都为被占用,此时区块上链表示这些输入已经被使用,因此utxo池中会将I1,I2,I3,I4,I5五个输入的状态更新为已使用,避免同一个输入的重复使用,同时生成新的输出O1和O2作为后续交易的输入。
优选地,所述判断区块是否正确包括:例如分片1中的领导者对BFT共识算法收集到的其他节点的签名数量进行判断,步骤同S3中的BFT共识算法对签名个数判断过程,确认正确签名数量达到BFT共识算法的要求即认定区块的正确性。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种基于格的盲签名和分片区块链的交易方法,其特征在于,包括:
S1:每个分片的领导者从utxo池中收集与其所属分片X相关的所有交易;并将收集的每个交易在分片X内的所有输入、每个输入的状态和交易的ID作为Merkel树的叶子节点创建分片X的Merkel树;
S2:将分片X的Merkel树向片内的其他节点进行广播,调用BFT共识机制,每个分片X的其他节点对Merkel树中所有交易输入的状态进行验证,验证通过后,生成Merkel树的承诺消息,并利用盲化算法和KeyGen算法生成分片X的其他节点的盲签名,分片X的其他节点将盲签名返回给分片X的领导者;
S3:分片X的领导者统计其他节点返回的盲签名生成Merkel树根节点的承诺签名,并将Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID广播给交易的其他输入和输出所在分片的领导者;
S4:交易的其他输入和输出所在分片的领导者分别对收到的Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID进行验证;验证通过,则将交易在分片X内的所有输入放入交易的其他输入或输出所在分片的可用证明池,其中每个交易在分片内的所有输入被默认为处于该分片的可用性证明池内;
S5:当分片的可用证明池中包含交易的所有输入时,根据交易的所有输入和交易的所有输出判断交易的正确性,当判断交易为正确交易时,则更新utxo池中正确交易所有输入的状态为被占用;再将正确交易加入该分片的有效交易池;
S6:当分片的有效交易池中交易达到一定数量或每间隔一段时间,将分片的有效交易池内的所有交易打包生成区块,该分片的领导者将区块广播给分片内的其他节点,调用BFT共识机制,分片内的其他节点对区块进行验证;验证通过后,生成区块的承诺消息,并利用盲化算法和KeyGen算法生成分片内的其他节点盲签名,分片内的其他节点将盲签名返回给分片的领导者;分片的领导者统计根据片内其他节点返回的盲签名判断区块是否正确,若正确则将该区块进行上链,并更新utxo池中区块内所有交易输入的状态为已使用,产生相应的交易输出,完成交易。
2.根据权利要求1所述的一种基于格的盲签名和分片区块链的交易方法,其特征在于,所述对Merkel树中所有交易输入的状态进行验证包括:根据每个交易输入的ID在本地交易历史记录中查询交易输入的状态是否与Merkel树中交易输入的状态一致,一致则验证通过。
3.根据权利要求1所述的一种基于格的盲签名和分片区块链的交易方法,其特征在于,所述利用盲化算法和KeyGen算法生成分片X的其他节点的盲签名包括:
分片X的其他节点利用KeyGen算法生成其公钥pka和私钥ska,并将其公钥pka和Merkel树的承诺消息xa上传给分片X的领导者节点;分片X的领导者节点从双峰高斯分布中随机选择一个盲化因子y,根据其他节点的公钥pka和Merkel树的承诺消息xa计算其他节点的盲消息μa,并将其他节点的盲消息μa发送给其他节点a;所述其他节点a的盲消息如下所述:
μa=(-1)tca,t∈{0,1}n
ca=H(xa+y*pka%2q,m)
其中,H表示哈希函数,q是格的基础参数本身是一个素数,μa表示其他节点a的盲消息,m表示Merkel树,n表示KeyGen算法基础矩阵的维度;a属于分片X除领导者节点外的其它所有节点的集合;
其他节点a选择一个随机向量γ,并根据其私钥ska和盲消息μa生成盲消息μa的签名za发送给分片X的领导者;所述盲消息μa的签名za包括:
za=γ+μa*ska
分片X的领导者根据盲化因子y和盲消息μa的签名za生成其他节点a的验证签名Qa,并将其他节点a的验证签名Qa发送给其他节点a,所述其他节点a的验证签名Qa包括:
Qa=<ea,ca>
ea=y+za
其他节点a对接收到的验证签名Qa进行验证,判断ca=H(pka*ea+q*ca%2q,m)是否成立,若成立则将验证签名Qa作为其他节点a的盲签名。
4.根据权利要求1所述的一种基于格的盲签名和分片区块链的交易方法,其特征在于,所述生成Merkel树根节点的承诺签名包括:
分片X的领导者统计片内其他节点的盲签名数量,判断Merkel树是否正确,当盲签名数量达到预设值时,判断Merkel树为正确,并生成Merkel树根节点的承诺签名,所述Merkel树根节点的承诺签名包括:Merkle树的根节点信息和分片领导者的承诺签名。
5.根据权利要求1所述的一种基于格的盲签名和分片区块链的交易方法,其特征在于,所述对收到的Merkel树根节点的承诺签名、Merkel树中交易对应的叶子节点到Merkel树根节点的路径、交易在分片X内所有输入的ID和交易的ID进行验证包括:
首先对Merkel树根节点的承诺签名进行解析得到Merkel树的根节点信息;
根据Merkel树中交易对应的叶子节点到Merkel树根节点的路径计算Merkel树的根节点,判断计算出的Merkel树的根节点信息和解析后的Merkel树的根节点信息是否一致,同时判断叶子节点中的输入ID是否与交易在分片X内输入的ID一致,同时判断叶子节点中交易的所有输入状态是否为未被占用,若均是,则验证通过。
6.根据权利要求1所述的一种基于格的盲签名和分片区块链的交易方法,其特征在于,所述判断交易的正确性包括:当交易的所有输入金额之和与交易的所有输出金额之和是否一致,若一致则该交易为正确交易。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310767621.1A CN116827552B (zh) | 2023-06-27 | 2023-06-27 | 一种基于格的盲签名和分片区块链的交易方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310767621.1A CN116827552B (zh) | 2023-06-27 | 2023-06-27 | 一种基于格的盲签名和分片区块链的交易方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116827552A CN116827552A (zh) | 2023-09-29 |
| CN116827552B true CN116827552B (zh) | 2026-04-21 |
Family
ID=88142435
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310767621.1A Active CN116827552B (zh) | 2023-06-27 | 2023-06-27 | 一种基于格的盲签名和分片区块链的交易方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116827552B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113196270A (zh) * | 2018-10-19 | 2021-07-30 | 数字资产(瑞士)股份有限公司 | 隐私保护验证和提交架构 |
| CN114866259A (zh) * | 2022-07-01 | 2022-08-05 | 北京大学 | 一种基于秘密分享的区块链受控可追溯身份隐私方法 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20210128454A (ko) * | 2019-02-15 | 2021-10-26 | 엔체인 홀딩스 리미티드 | 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법 |
| WO2021220278A1 (en) * | 2020-04-27 | 2021-11-04 | B.G. Negev Technologies And Applications Ltd., At Ben-Gurion University | System and method for fast, post-quantum blockchain concensus generation and smart contracts execution |
| CN114077637B (zh) * | 2020-08-12 | 2022-12-27 | 北京航空航天大学 | 分片区块链实现方法 |
-
2023
- 2023-06-27 CN CN202310767621.1A patent/CN116827552B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113196270A (zh) * | 2018-10-19 | 2021-07-30 | 数字资产(瑞士)股份有限公司 | 隐私保护验证和提交架构 |
| CN114866259A (zh) * | 2022-07-01 | 2022-08-05 | 北京大学 | 一种基于秘密分享的区块链受控可追溯身份隐私方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116827552A (zh) | 2023-09-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112041872B (zh) | 在分区区块链网络中维护区块链的区块 | |
| US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
| Zheng et al. | Efficient query integrity for outsourced dynamic databases | |
| US8572385B2 (en) | System and method for optimal verification of operations on dynamic sets | |
| US20250232294A1 (en) | Methods and systems for distributed blockchain functionalities | |
| US20250202715A1 (en) | Unity protocol consensus | |
| CN112636905A (zh) | 基于多角色的可扩展共识机制的系统及方法 | |
| US11362836B2 (en) | Consensus protocol for permissioned ledgers | |
| CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
| CN110945831A (zh) | 抗Sybil攻击身份的生成 | |
| CN113626875B (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
| Kleinrock et al. | Proof-of-reputation blockchain with nakamoto fallback | |
| Md Shafin et al. | Breaking the blockchain trilemma: A comprehensive consensus mechanism for ensuring security, scalability, and decentralization | |
| Liu et al. | Fail-safe watchtowers and short-lived assertions for payment channels | |
| CN119835081B (zh) | 一种基于区块链的云数据审计方法、系统及设备 | |
| JP2025518097A (ja) | デジタル資産を凍結するための方法およびシステム | |
| Chow et al. | On sustainable ring-based anonymous systems | |
| Abbessi et al. | Random cluster parallel PBFT global consensus for consistent blockchain distributed ledger | |
| Taherpour et al. | HybridChain: Fast, accurate, and secure transaction processing with distributed learning | |
| CN115378598B (zh) | 基于一次性可链接环签名的多链可扩展秘密选举方法 | |
| CN116827552B (zh) | 一种基于格的盲签名和分片区块链的交易方法 | |
| US20240428240A1 (en) | Methods and systems for distributed blockchain functionalities | |
| JP2025521739A (ja) | オーナーシップの証明 | |
| CN117318913A (zh) | 基于全局信任的区块链轻量级共识方法及系统 | |
| CN118216121A (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 | ||
| GR01 | Patent grant |