Scalable batch verification of ECDSA for blockchain using IVC

Li LIU , Puwen WEI , Shuchang LIU , Zirui WANG , Da HU , Zengjie KOU

Front. Comput. Sci. ›› 2026, Vol. 20 ›› Issue (4) : 2004803

PDF (3455KB)
Front. Comput. Sci. ›› 2026, Vol. 20 ›› Issue (4) : 2004803 DOI: 10.1007/s11704-025-41269-5
Information Security
RESEARCH ARTICLE

Scalable batch verification of ECDSA for blockchain using IVC

Author information +
History +
PDF (3455KB)

Abstract

With the rising volume of transactions on blockchains, signature verification becomes a critical bottleneck of efficiency, hindering scalability and performance. This paper presents a general approach to batch verification of arbitrary signatures on blockchain. By leveraging the memory-friendliness of incremental verifiable computation (IVC) and optimizing for blockchain environments, the proposed scheme can enhance scalability, reduce memory consumption, and ensure compatibility with common devices while supporting an arbitrary number of signature verifications. This approach allows for the concurrent generation of IVC proofs while receiving signatures from other nodes, making it particularly well-suited for low-latency blockchain applications. As a concrete instantiation of our approach, we introduce BEATS (Batch ECDSA Transaction verification Scheme), where the underlying SNARK is instantiated by Spartan with Bulletproof commitment. Our implementation, evaluated on a virtual machine with 8 cores and 16 GB RAM, shows significant performance gains compared to SpartanBP, which is the direct construction using Spartan with Bulletproof commitment to verify a batch of ECDSA. The comparison shows that BEATS speeds up the prover by 3–7 times and the verifier by 48–240 times when handling up to 211 ECDSA signatures, the maximum batch size supported by SpartanBP. For larger batches exceeding 210, our scheme outperforms the baseline approach, which verifies ECDSA signatures one by one without any proof system. Our verifier achieved a speedup of 21–174 times compared to the baseline as the batch size grows to 220. Furthermore, BEATS exhibits a remarkably low memory footprint, with peak memory usage remaining below 1 GB.

Graphical abstract

Keywords

batch verification / ECDSA / IVC / blockchain

Cite this article

Download citation ▾
Li LIU, Puwen WEI, Shuchang LIU, Zirui WANG, Da HU, Zengjie KOU. Scalable batch verification of ECDSA for blockchain using IVC. Front. Comput. Sci., 2026, 20(4): 2004803 DOI:10.1007/s11704-025-41269-5

登录浏览全文

4963

注册一个新账户 忘记密码

1 Introduction

A digital signature is a cryptographic mechanism that allows a signer to authenticate a message using his private key. Anyone can then verify the validity of the signature using the corresponding public key. This authentication functionality has led to the widespread adoption of digital signatures in various applications. The rise of blockchain technology has further increased the popularity of digital signatures. In a blockchain system, when a transfer occurs, it must be accompanied by a digital signature. The transaction can be recorded on the blockchain only if it is verified by a sufficient number of nodes (participants). As the number of transactions grows, the workload for verifying these signatures increases dramatically. This presents a significant challenge for blockchain scalability, as the time it takes to verify signatures can become a bottleneck, limiting the blockchain’s overall throughput and performance.

Batch verification of digital signatures offers a promising approach to address this problem. By verifying multiple signatures simultaneously, batch verification significantly reduces the overall verification time compared to individual verification. In particular, customized signatures tailored for batch verification can leverage homomorphic properties to significantly improve the verification process. For example, the aggregate BLS signature [1] can be constructed by adding up multiple individual BLS signatures simply, resulting in a nearly 50% reduction in verification time.

While customized signatures like BLS offer significant advantages for batch verification, adapting standard schemes like ECDSA for efficient batch verification remains an active area of research, due to ECDSA’s widespread adoption and strong security track record. However, existing batch verification techniques for standard signature schemes often face limitations. Harn [2] proposes schemes for batch verification of RSA signatures, but these schemes only support multiple signatures signed by the same private key. Karati et al. [35] present improvements for batch verification of ECDSA signature, but the batch size is bounded by a constant number t9, making it impractical for a large number of signatures. Although there are efficient methods for batch verification of variants of ECDSA [6,7], these non-standard ECDSA signatures either have security issues or are inefficient.

Recently, packing signatures inside SNARK, which is used in zkRollup [811], has been an emerging approach to prove the validity of a batch of transactions. The advantage of this approach lies in its ability to support arbitrary signature schemes without restrictions on the algebraic structure. Verifying a signature inside SNARK allows a prover to prove the validity of the signature by running the SNARK protocol and sending a succinct proof to the verifier. The verifier can check the validity of the signature by verifying the SNARK proof instead of running the signature verification algorithm.

However, many SNARKs that are highly efficient in verification often take substantial time and memory resources to generate proofs due to complex computation. For instance, consider the implementation of SNARKs on a virtual machine with 8 cores and 16 GB of RAM, where the actual available memory is about 12.78 GB. If we apply Spartan [12] with Bulletproof commitment [13], which has a fast prover for a batch of ECDSA signatures, the memory consumption grows linearly with the number of signatures. The resulting scheme can support at most about 211 signatures with peak memory usage exceeding 10 GB of RAM. On the other hand, if applying Marlin [14] with univariate polynomial KZG commitment [15], which has a short proof and a fast verifier, it can support only one ECDSA signature, with peak memory usage exceeding 9.76 GB of RAM. Consequently, generating proofs for a large number of signatures within a reasonable timeframe becomes a significant bottleneck for blockchain systems. This resource-intensive process hinders the participation of low-performance devices in batch verification, potentially limiting the scalability and accessibility of blockchain systems.

1.1 Our contributions

To address the aforementioned challenges, we provide a general construction for the batch verification of signatures in blockchain. Our approach takes advantage of the memory-friendliness of incremental verifiable computation (IVC) and the blockchain setting to enhance scalability and reduce memory consumption, making it compatible with common devices and supporting an arbitrary number of signature verifications. Combined with the state-of-the-art folding scheme [16], our construction can achieve a balance between prover/verifier time and proof size, optimizing proof generation efficiency while introducing minimal overhead for verification. Another notable advantage of our approach is that the prover can generate IVC proofs concurrently with receiving signatures from other nodes in a blockchain system. Unlike most existing batch verification schemes that start generating proofs only after collecting enough valid signatures, our approach leverages the incremental nature of IVC to efficiently utilize the waiting time for signatures. This allows for a reduction in the overall block validation time, making it particularly advantageous in low-latency blockchain environments where minimizing delays is crucial.

Our construction is general and can apply to any type of signature. For concrete construction, we present BEATS (Batch ECDSA Transaction verification Scheme) for batch verification of the ECDSA signature. In BEATS, we instantiate the SNARK after the IVC by Spartan [12] with Bulletproof [13] commitment, which is transparent without any trusted setup. We implement it on a virtual machine with 8 cores and 16 GB of RAM, and make a comparison with the original construction SNARK SpartanBP, which invokes the SNARK Spartan [12] with Bulletproof [13] commitment to verify a batch of ECDSA directly. The results of our comparison show that BEATS speeds up the prover by 3–17 times and the verifier by 48–240 times when the number of ECDSA signatures is up to 211. This batch size is the maximum that can be supported by SpartanBP with 16 GB of RAM. For batch sizes exceeding 210, our scheme becomes more efficient compared to the baseline approach, which verifies ECDSA signatures one by one without any proof system. Our verifier achieved a speedup of 21–174 times compared to the baseline when the batch size reaches 220. Notably, even when the baseline approach was optimized for parallelism, our single-threaded scheme outperformed it when the batch size surpassed 213. The performance gap continued to widen with larger batch sizes, and at 220 signatures, our verifier demonstrated a speedup of 3–30 times. Furthermore, the peak memory usage of BEATS grows slowly and stays almost constant at less than 1 GB, which ensures compatibility with most low and mid-range devices.

We also conduct a comparison with a non-transparent SNARK Marlin with KZG polynomial commitment [15], which has a short proof and a fast verifier. Due to the bilinear pairing, the R1CS in Marlin should be defined on a pairing-friendly elliptic curve instead of the curve of ECDSA. Therefore, the number of constraints will increase significantly and result in a slower prover and limited scalability. Due to memory limitations, Marlin could only support a single ECDSA signature in 16 GB of RAM. When there is only one ECDSA signature, BEATS speeds up the prover by 10 times, while the verifier time and the proof size are larger than Marlin by about 12 times. However, we improved the scalability significantly that supports an arbitrary number of signatures and the proof size is nearly constant when the batch size is less than 214. Since Marlin needs to generate proofs for multiple signatures separately, the verifier time and proof size of BEATS can be amortized efficiently.

Other applications. We present a construction that efficiently verifies a large batch of signatures within a proof system, trading increased prover time for significantly reduced verification complexity. This approach is particularly beneficial for zkRollup applications. Furthermore, our construction has promising applications in image authenticity verification, a critical concern in the era of AI-generated content. Standards like C2PA [17], supported by Adobe, Arm, Intel, Microsoft, and Truepic, advocate for embedding digital signatures within each photograph captured by cameras. When acquiring images from photography platforms, verifying these signatures is crucial to ensure their origin from authentic cameras and to mitigate the risk of AI-generated forgeries. Our scheme offers an efficient solution for verifying the authenticity of a large number of downloaded images.

2 Technique overview

Given a batch of signatures, verifying them inside a SNARK requires transforming the signature verification algorithm into an appropriate arithmetic circuit. In this work, we use the widely studied R1CS constraints system as the arithmetized form. Intuitively, pairing-based SNARK schemes like Marlin are well-suited for blockchain applications due to their succinctness. However, applying it to verify concrete signature schemes such as ECDSA presents challenges. Most of the ECDSA verifier’s operations occur on the base field of the elliptic curve secp256k1 while the R1CS in Marlin is defined on the scalar field of pairing-friendly elliptic curves, such as BLS12_381 whose scalar field size is smaller than that of secp256k1.

Consequently, it needs to simulate operations on a larger field using a smaller field. It will result in many non-native field operations and lead to a significant increase in the number of constraints. Even worse, the prover’s time and space complexity in Marlin is asymptotically O(NlogN), where N is the number of constraints. Since the prover must execute complex computations including Fast Fourier Transformation (FFT) for long high-degree polynomials, the prover cost will limit the number of signatures handled in a batch.

One of our ideas in this work is to use SNARK whose finite field matches that of ECDSA. That is, we represent the ECDSA verification algorithm in R1CS constraints over some elliptic curve whose scalar field is the same as the base field of secp256k1. One of the candidate elliptic curves is secq256k1 [18]. Since secq256k1 is not pairing-friendly, we use SpartanBP under the discrete logarithm hardness assumption without bilinear pairing. This approach is similar to the work [19]. The distinct advantages of SpartanBP are the fast prover and the succinct proof size. However, using it alone will not achieve the desired high throughput. If applying SpartanBP to each signature, t proofs would be generated for t signatures. Verifying t proofs may not always be more efficient than verifying t ECDSA signatures. Alternatively, if invoking the SpartanBP one time to prove a batch of ECDSA, it is hard to support large batch sizes of signatures due to the memory limits.

To compress proof length, reduce verification time, and increase throughput, we propose a folding-based technique for batch verification of signatures. This technique leverages the folding scheme from the IVC protocol Nova [16] to compress t ECDSA signatures into a constant size, independent of t. In our scheme, a batch of signatures is divided into blocks of equal size, and the folding scheme is applied between these blocks. However, the folding scheme in Nova is embedded in an IVC protocol, where the full computation is a chain connected by the inputs and outputs of each step rather than independent sub-computations. If simply applying the folding scheme and proving the folding process step by step, the verifier will only receive the last proof. While the validity of this proof indicates that there exist t valid instances that have been folded, they are not necessarily the t signatures claimed by the prover. In other words, the proven statements may not be consistent with the signatures recorded on the blockchain.

To address this issue, we introduce an additional commitment, which is a chain of collision-resistant hash functions, to bind the statements and construct the IVC chain. Specifically, we have the verifier compute the hash chain locally to ensure the consistency of the signature to be proven. Note that this commitment must also be proven in R1CS, and using hash functions like SHA-256 over an extended binary field will dramatically increase the number of constraints due to the bitwise operations involved. To improve the prover efficiency, we choose the SNARK-friendly hash function Poseidon to minimize the prover overhead. Details of the construction can be found in Section 5.2.

We run Nova with the SNARK SpartanBP on our modified IVC chain. In contrast to verifying each ECDSA signature inside SpartanBP directly and separately, we package multiple signatures via the folding scheme before executing the SNARK. The prover time for each signature is amortized. Finally, only one IVC proof is produced, independent of the number of signatures. The proof size is O(N+logN) where N is the number of R1CS constraints of one ECDSA verifier.

Remark (General Arithmetization) In this work, we use the R1CS arithmetized form consistent with the basic implementation of Nova. Note that some variants of Nova can support the Plonkish circuits [20] and even the more general CCS (customizable constraint system) [21], and our scheme also supports these arithmetization methods. To avoid abstract definitions and make it easier to understand, we use the original R1CS-based Nova that is sufficient to describe our construction intuitively. When considering Plonkish circuits, we can get a construction that replaces the Spartan with Plonk, which is a non-transparent SNARK with an updatable CRS.

3 Related work

In the last decade, researchers have designed a lot of distinctive proof systems. The trade-off between the prover and verifier time and proof length has always been a hard task. Known for its constant-size succinctness and efficient verification, SNARK schemes such as [14,22,23] are widely used in blockchain [911,24] but are often limited by the size of the circuit because the proof time is too slow. Other proof systems [12,2528] that do not contain complex computations focus on efficient provers that can generate proofs in optimal linear time about the circuit scale, but either the proof size or the verifier time is at least an order of magnitude higher than above SNARK schemes. A recent work [29] proposes an efficient multilinear polynomial commitment scheme, Basefold, which has a faster prover. They construct SNARK from Basefold and prove a single ECDSA signature takes only 122 ms and verifier time is 24 ms on a server with 256 GB of RAM. However, the proof size is up to 5.5 MB. [30] also proposes a SNARK with a fast prover and a proof size of about 1 MB for ECDSA. They are both much larger than our scheme. When considering a large batch of signatures, even if using the batching techniques in [31], the prover time and verifier time are linear about the number of signatures. Our verifier time is independent of this. Some IVC can be used in Ethereum’s zero-knowledge virtual machines (zkEVMs). But unlike our work, they view the entire block verification process as a virtual machine execution and apply IVC to the computation and memory operations, rather than designing for the specific algorithms. Some projects like [32] use Plonky2 [33] to prove the execution of zkEVM, including verifying ECDSA signatures. However, Plonky2 is not friendly to batch verification, it will be inefficient when proving multiple ECDSA signatures.

To reduce the time and memory requirements of SNARK while maintaining its succinctness and verification efficiency, a new approach involves delegating the complex proving algorithm to powerful devices. A resource-limited prover can simply rent a resource-rich server or distributed computing in a cluster of machines like [34]. However, this will leak the information of the prover to these machines, and it cannot be used for zero-knowledge proof. To protect privacy, [35,36] distributes the secret witness among n>1 parties and uses the MPC protocol to complete the proving algorithm. A drawback of delegating the proof generation to multiple servers is that at least a subset of the servers must be trusted. Garg et al. [37] propose a private delegation with a single server, which is based on the fully homomorphic commitment scheme (FHCom), a heavyweight cryptographic component. They give an analysis of asymptotic complexity without concrete implementation. The delegation scheme gains efficiency entirely due to the higher performance of the servers, each of which executes nearly the same amount of work as the original prover and does not reduce it. Liu et al. [8] construct a distributed Plonk by splitting one large circuit into many small circuits, reducing the computation of each server. The execution of MPC and distributed computations require communication between participants or participants and the delegator or the so-called master node, where network throughput is a critical factor that contributes to the prover time. In this work, we construct a protocol in which low-performance devices can engage locally without delegation.

Recently, several studies have utilized SNARK to construct aggregate signatures, multi-signatures, and threshold signatures [3840]. In these constructions, the prover only needs to provide SNARK proof for the existence of valid signatures for fixed public keys and public messages, without revealing the signatures to the verifier. Similarly, in some zkRollup designs, transactions are packaged at Layer 2, with metadata sent to Layer 1 along with a SNARK proof verifying the validity of these transactions. This metadata only includes the users’ public keys and the transaction details, omitting the signatures, which helps compress the blockchain size by saving storage space. In this context, signatures are treated as part of the SNARK witness, needing only to prove their existence, so the verifier lacks any information about the signatures. This differs from the batch verification approach considered in this paper, where signatures serve as common inputs for both the prover and verifier. While our scheme can also transfer the signatures to the witness of the IVC and eliminate the need for signature storage, retaining the original signatures of transactions is essential for practical blockchain applications when considering accountability and dispute resolution. For instance, when a user wants to retrieve a historical transaction, they only need to access the relevant transaction and its signature, rather than the entire block (or batch). Furthermore, transaction signatures are crucial for resolving disputed transactions in financial scenarios. Without the original signatures, dispute resolution, audits, and reviews would be significantly more complicated.

4 Preliminaries

4.1 Notation

We use λ as the security parameter and negl() as the negligible function. Let F be the finite field with |F|=2Θ(λ). The bold letter a denote the vector and ai denote the ith element of a. For vector aFm and bFm, ab=(a1b1,,ambm) is their Hadamard product. [n] represents the set {1,,n}, [a,b] represents integers in the range from a to b.

4.2 Building block

Definition 1 (Non-interactive Argument and SNARK). An argument for a language L is a protocol between the prover P and verifier V and consists of a tuple of PPT algorithms (G,K,P,V) with the following interface:

G(1λ)pp: On input security parameter λ, outputs public parameters pp.

K(pp,R)(pk,vk): On input public parameters pp and the relation R, outputs proving key pk and verifier key vk.

P(pk,u,w)π: On inputs pp, instance u and witness w, outputs the proof π.

V(vk,u,π){0,1}: On inputs pp, instance u and proof π, outputs 1 or 0 to indicate accept or reject, respectively.

(G,K,P,V) is a non-interactive argument if the communication between the prover P and verifier V only includes a proof π.

Let RL be a relation consists of all instance-witness pairs (u,w) with uL. A non-interactive argument (G,K,P,V) needs to satisfy the following properties:

Perfect completeness: For any PPT adversary A,

Pr[w,s.t.(u,w)RL,(pk,vk)K(pp,RL),πP(pk,u,w),V(vk,u,π)=1ppG(1λ),uA(pp,L),uL]=1.

Soundness: For any polynomial time adversaries P, for ϵ=negl(λ),

Pr[V(vk,u,π)=1,uLppG(1λ),(u,π)P(pp),(pk,vk)K(pp,RL)]ϵ.

We call the non-interactive argument with knowledge-soundness defined as below a non-interactive argument of knowledge (NARK).

Knowledge-soundness: For any PPT potentially malicious prover P, there exists a polynomial-time extractor E such that such that for all randomness ρ, for ϵ=negl(λ),

Pr[V(vk,u,π)=1,(u,w)RLppG(1λ),(u,π)P(pp;ρ),(pk,vk)K(pp,RL),wE(pp;ρ)]ϵ.

A NARK (G,K,P,V) is succinct if the length of the proof π is sublinear to the length of the witness w, and we call it succinct non-interactive argument of knowledge (SNARK).

Definition 2 (Incrementally Verifiable Computation (IVC)) An incrementally verifiable computation scheme consists of a triple of PPT algorithms (G,K,P,V) with the following interface:

G(1λ)pp: On input security parameter λ, outputs public parameters pp.

K(pp,F)(pk,vk): On input public parameters pp and a function F:{0,1}a×{0,1}b{0,1}a, outputs prover and verifier key (pk,vk).

P(pk,(i,z0,zi),auxi1,Πi1)Πi: On input pk, an index iN, the input z0{0,1}a with optional advice auxi1{0,1}b and a claimed output zi{0,1}a, an IVC proof Πi1, outputs the updated IVC proof Πi.

V(vk,(i,z0,zi),Πi){0,1}: On input vk, an index iN, the input z0{0,1}a and a claimed output zi{0,1}a, an IVC proof πi, outputs 1 or 0 to indicate accept or reject, respectively.

An IVC scheme (G,K,P,V) satisfies perfect completeness if for any PPT adversary A:

Pr[V(vk,(i+1,z0,zi+1),Πi+1)=1ppG(1λ),(F,i,z0,zi,auxi,Πi)A(pp),(pk,vk)K(pp,F),zi+1=F(zi,auxi),V(i,z0,zi,Πi)=1,Πi+1P(pk,(i+1,z0,zi+1),auxi,Πi)]=1.

An IVC scheme (G,K,P,V) satisfies knowledge-soundness if for any constant nN, and PPT potentially malicious prover P, there exists a polynomial-time extractor E such that for all randomness ρ, for ϵ=negl(λ),

Pr[znz,V(pp,z0,z,Π)=1ppG(1λ),(F,z0,z,Π)P(pp,ρ),(pk,vk)K(pp,F),(auxi)i=0n1E(pp;ρ),i[n]:ziF(zi1,auxi1)]ϵ.

Definition 3 (Commitment Scheme). A commitment scheme is a pair of PPT algorithms (Setup,Commit) with the following interface:

Setup(1λ)pp: On input security parameter λ, outputs public parameter pp.

Commit(pp,m)c: On input public parameter pp and the message mF, outputs a commitment c.

The Commitment scheme in this work needs to satisfy the following properties:

Binding: for any PPT adversary A and ϵ=negl(λ),

Pr[m0m1Commit(pp,m0)=Commit(pp,m1)ppSetup(1λ),(m0,m1)A(pp)]ϵ.

Additively homomorphic: Given two commitments c0,c1 respect to message m0,m1, it must hold that c0+c1= Commit(ck,m0+m1).

Another property of the commitment scheme is called hiding, which requires that the commitment itself does not reveal any information about the committed value. The commitment scheme usually commits to a message with randomness to satisfy the hiding property. For simplicity, the randomness in the commitment is omitted in this work. Note that we aim to generate proofs for public signatures without using secret inputs and the hiding property is not necessary for the commitment in our scheme. In particular, the concrete instantiation of our commitment does not need to take randomness as input.

Definition 4 (Hash Functions) A hash function on F is a pair of efficient algorithms (Setup,H)

Setup(1λ)pp: On input security parameter λ, outputs public parameters pp.

H(pp,m)h: On inputs public parameters pp and message m{0,1}, outputs a hash value hF.

Collision-resistant: A hash function is collision-resistant if for every efficient adversary A and ϵ=negl(λ),

Pr[H(pp,m0)=H(pp,m1)m0m1ppSetup(1λ)(m0,m1)A(pp)]ϵ.

Zero-testing: Let Commit be the commit algorithm of a commitment scheme that has the binding property, and P:FFd[X] be a deterministic function that maps a field element to a polynomial with degree d=O(λ). A hash function has the general zero testing property if for every PPT adversary A, for ϵ=negl(λ),

Pr[hH(pp,Commit(pp,p)),P(p)(h)=0ppSetup(1λ),pA(pp)]ϵ.

Definition 5 (Committed Relaxed R1CS). Let F denotes a finite field, consider the parameters m,N where m>. A committed relaxed R1CS instance is a tuple U=(E¯,s,W¯,x), where sF,xF, and E¯ and W¯ are commitments to EFm and WFm1. A committed relaxed R1CS instance U=(E¯,s,W¯,x) is satisfiable with respect to the structure s=(A,B,C) if there exist a relaxed witness W=(E,W) such that (U,W)Rs, where the committed relaxed R1CS relation Rs is defined by

Rs:={(U,W):E¯=Commit(ppE,E),W¯=Commit(ppW,W),Z=(W,x,s),AZBZ=s(CZ)+E}.

There are at most k=Ω(m) non-zero elements in each of the matrix A,B,CFm×m. When setting s=1,E¯=0¯, the committed relaxed R1CS instance is a standard R1CS instance, where the constraint equation is defined as AZBZ=CZ.

As explained in Definition 3, unlike Nova, the randomness of the commitment in this work is omitted.

Definition 6 (Folding Scheme). A folding scheme for committed relaxed R1CS consists of a tuple of algorithms (G,K,P,V):

G(1λ)pp: On input security parameter λ, outputs public parameters pp.

K(pp,s)pk: On inputs public parameters pp, a common structure s, outputs proving key pk.

P(pk,(U,W),(u,w))(T¯,(U,W)): On inputs proving key pk, two committed relaxed R1CS instance-witness pair (U,W),(u,w), outputs a folded committed relaxed R1CS instance-witness pair (U,W) with a folding proof T¯.

V(pp,U,u,T¯)U: On inputs public parameters pp, two committed relaxed R1CS instance U,u, and a folding proof T¯, outputs a folded committed relaxed R1CS instance U.

A folding scheme satisfies perfect completeness if for all PPT adversaries A,

Pr[U=U,(U,W)RsppG(1λ),((U,W),(u,w))A(pp),(U,W)Rs,(u,w)Rs,pkK(pp,s),(T¯,U,W),P(pk,(U,W),(u,w)),UV(pp,U,u,T¯)]=1.

A folding scheme satisfies knowledge soundness if for any PPT potentially malicious P and ϵ=negl(λ), there is a PPT extractor E such that

Pr[(U,W)Rs,(u,w)RsppG(1λ),(s,U,u)P(pp,ρ),(w,W)E(pp,ρ)]Pr[(U,W)RsppG(1λ),(s,U,u)P(pp,ρ),pkG(pp,s),(T¯,U,W)P(pk,ρ),UV(vk,U,u,T¯)]ϵ.

Let H denote the Hash function in Denifition 4, which satisfies the collision-resistant property and general zero testing property. A folding scheme (G,K,P,V) is non-interactive if the communication between P and V only includes a proof T¯, and the randomness r used to generate the outputs is computed as H(vk,U,u,T¯) by P and V locally.

Definition 7 (Digital Signature in Hash-and-Sign Paradigm) A digital signature scheme consists of a tuple of PPT algorithms (Setupsig,Gensig,Sign,Verify), which are defined as follows.

Gen(pp): On input public parameters, outputs a keypair (sk,pk).

Sign(sk,m)σ: On input a signing key sk and a message m, outputs the σ as signature of m.

Verify(pk,σ,m){0,1}: On input a signature σ with its message m and public key pk, outputs 1 or 0 to indicate whether the signature passes the verification or not.

Given a hash function hash with collision-resistant property, if the algorithm Sign and Verify are executed as the following process, the digital signature scheme is in the hash-and-sign paradigm.

Sign(sk,m)σ: On input a signing key sk and a message m, computes that

ehash(m),

σSign(sk,e).

Verify(pk,σ,m){0,1}: On input a signature σ with its message m and public key pk,

ehash(m),

{0,1}Verify(pk,e).

The algebraic group model (AGM). In the algebraic group model, AGM [41], an algebraic adversary should output a representation vector whenever it outputs a group element in terms of all the group elements that have been seen by the adversary so far. We use capital letter X to denote a group element, let (G1,,Gk) be all group elements known to the adversary, x is the corresponding representation vector of X such that X=i=1kxiGi.

Refined AGM for Nova. To cover the situations in Nova, a refined AGM was introduced in [42] that proposes three requirements:

(1) All group elements in the input of the algebraic adversary are common random strings.

(2) Adversarial algorithms are non-interactive and cannot obtain any additional information by querying.

(3) Pre-declared multiple encodings are allowed and the adversary should output all relevant representation vectors. In particular, when the adversary outputs a represent vector a of group element A, if a group element B is embedded in a by another encoding way, the algebraic adversary should output the representation vector b of B as well.

4.3 Overview of Nova

Consider an IVC statement as shown in Fig.1. For a function F:Fa×bFa, there exist auxiliary inputs (aux0,,auxn1) such that

F(F(F(z0,aux0),aux1),auxn1)=zn.

To prove this statement, the function F will be arithmetized as some committed relaxed R1CS constraints by the IVC prover and verifier before running the Nova IVC scheme [16] iteratively. For i[n], in the ith iteration, the prover claims that the i-th step is evaluated correctly, i.e., F(zi,auxi)=zi+1, and all the previous i1 steps are also evaluated correctly, i.e.,

F((F(F(z0,aux0),aux1),),auxi1)=zi.

As shown in Fig.2, in the ith iteration, a folding scheme is invoked to fold the current instance ui into a folded instance Ui that will be updated to Ui+1. In addition, a new instance ui+1 is introduced to represent the execution of the step function and the folding process. Precisely, the instance ui+1 is a standard R1CS instance arithmetizing the trace of an augment function F, which includes computing F(zi,auxi)=zi+1, generating Ui+1 and checking some consistency between two neighboring iterations by a hash function H. The satisfiability of ui+1 implies the computation from zi to zi+1 and the folding process for getting Ui+1 are correctly executed. The instance Ui+1 is a committed relaxed R1CS instance, and its satisfiability implies the satisfiability of the instance of Ui and ui, which further implies the correctness of the computation from z0 to zi by recursion. The hash function H can be seen as a binding commitment to zi, the consistency between the current input and last output is checked by it in the instance ui. Therefore, the correctness of the IVC statement can be delayed until the end to be checked.

Nova on cycle of elliptic curves. Let E1,E2 represent two elliptic curves that satisfy the “cyclic” property. More precisely, the base field Fp of E1 is exactly the scalar field of E2, and the base field Fq of E2 is exactly the scalar field of E1.

In the actual structure, due to the need for additive homomorphism in the folding scheme, the commitment scheme in the R1CS instance is realized by the Pedersen vector commitment, which is defined over elliptic curve groups. Note that operations on the elliptic curve’s base field dominate the folding scheme’s verification algorithm, while the R1CS constraints are specified on its scalar field. If one describes the verification algorithm of the folding scheme on the scalar field directly, it will lead to many operations on the non-native field that incur a lot of R1CS constraints. An innovative approach in the implementation of Nova [43] is using a cycle of elliptic curves, the correctness of the folding scheme on one curve can be checked on another curve. Precisely, the folding scheme is executed on both elliptic curves E1 and E2 while the step function F is represented only on one elliptic curve, without loss of generality, E1. The folding scheme verifier on E1 is represented as R1CS constraints over the scalar field Fp of the curve E2, while the folding scheme verifier on E2 is represented as R1CS constraints over the scalar field Fq of E1.

In the original Nova, operations on two curves are switched in a crossover manner, finally, the IVC protocol outputs a proof consisting of 4 instance-witness pairs. Nguyen et al. [44] found security problems with such an implementation and proposed the refined Nova, where the operations on the two elliptic curves are performed in alternating order, ultimately generating 3 instance-witness pairs as the IVC proof.

Compress with SNARK. If one wants to check the correctness of the computation of the first i iterations of the IVC scheme, one can easily run the IVC verifier on the IVC proof of the ith iteration, which results in a slower verification. In Nova, a SNARK protocol is introduced additionally at the end of the IVC, making it sufficient to check the validity of the succinct proofs of the SNARK. This compression process with SNARK is implemented by Spartan, which in fact can be replaced by any appropriate SNARK with a commitment scheme that satisfies the requirements of the folding scheme. Due to the concrete efficiency requirements in practice.

In addition to the efficiency benefits, compressing with SNARK at the end of the IVC chain also serves some security purposes. As mentioned in [44], there may exist a malleability attack in Nova IVC when the step function is non-deterministic. Adding a SNARK protocol with zero-knowledge property can prevent this attack by hiding auxiliary inputs from the adversary, as long as the zkSNARK is simulation extractable. Looking ahead, since the step function in our scheme is deterministic, we do not require the zero-knowledge property and the attack in [44] cannot apply to our scheme.

5 Batch verification of ECDSA in Nova

In this section, we present a general construction for batch verification of signatures based on the Nova IVC scheme. We optimize the instantiation and construct a transparent scheme BEATS for batch verification of ECDSA. Before introducing our construction, we show a simple attempt and its security problem in Section 5.1. We argue that a regular IVC scheme cannot support batch verification of signatures.

5.1 A simple attempt

As mentioned in Section 2, applying the folding scheme directly and proving the folding process cannot guarantee the consistency of the signatures claimed by the prover and those received by the verifier. To achieve consistency, a hash function can be added as in Fig.2 for checking the equality of instances between two neighboring steps, as shown in Fig.3. Symbol definitions of Fig.3 are the same as in Fig.2. “=1” in step i means zi will be set to 1 when running the hash function H to check the equivalence. The blue font indicates the state implied if the statements in the box above it are true. We treat the output of F as a variable, denoted by z. In addition to running the verification algorithm of the signature, the function F checks the correctness of the previous step. For each i[n], zi=1 if and only if Verify(pki,σi,mi)=1 and zi1=1.

After building the connection, we find that the construction is equivalent to the IVC chain in Fig.4. In the IVC construction, the prover should prove the computation of F(F(F(z0,y0),y1)yn1)=zn. Since the function F is a common parameter and z0=zn=1 is the public instance, the IVC statement will be accepted if the IVC proof passes the verification. Thus all n executions of the function F are correct, which implies that all n signatures are valid.

However, in the IVC context, each yi is the auxiliary input of F, which is not explicitly sent to the verifier. An important fact is that auxiliary inputs are non-deterministic and not unique. In applications such as blockchain transactions where the verifier must receive all signatures, each yi must be public and deterministic. The construction in Fig.3 only claims that the prover knows some valid signature triples (pk0,σ0,m0),,(pkn,σn,mn) if there are n steps in total. Still, these n signatures may not be consistent with the n signatures (pk0,σ0,m0),,(pkn,σn,mn) sent to the verifier in advance. So a malicious prover can send a batch of invalid signatures and instead generate proofs using some trivial valid signatures, such as (pk,σ,0) where the pk is the public key of the prover who naturally knows its private key pk, thereby tricking the verifier without attacking against the unforgeability of the signature scheme. In blockchain, this attack will lead to fake transactions, so we must ensure the consistency of the verified signatures between the prover and verifier.

5.2 Batch verification of signature in Nova

We first propose a general IVC-based construction for batch verification of arbitrary digital signatures. Suppose the prover has verified all signatures at the beginning of the protocol and sent the valid ones among them to the verifier. In Section 5.1 for simplicity, we use the function F to represent only one signature verification. In fact, multiple signatures can be contained in one step of the IVC, where the concrete efficiency depends on the number of signatures in each step.

Suppose that the verifier receives tN signatures in total. The t signatures will be divided into n=tb blocks, where b{1,,t} is the block size that describes the number of signatures in a block. Each step of the IVC handles one block so that n is the number of steps of IVC. For each i[n], we set the input to each F is a vector yi=[(pki,j,σi,j,mi,j)]j[b]. Let zi denote the output vector of F, which indicates the verification result of the signatures in yi. The description of F:FaFb where |yi|=a,|zi|=|1b|=b is public.

The main idea of our construction is depicted in Fig.5. Instead of taking F as a step function in IVC simply, we introduce an additional collision-resistant hash function H:{0,1}F. In the naïve construction in Section 5.1, since each input yi is the auxiliary input and zi as an intermediate value will not be sent to the verifier, the function F is treated as a non-deterministic function. It fails to work in the context of verifying deterministic signatures. We use hash function H as a commitment to these non-deterministic inputs and outputs, and the binding property relies on the collision resistance of the hash function. We initialize h0 to a public value, and then sequentially take yi and zi as input to H like the Merkle-Damgard structure until hn is output as the resulting commitment. In applications such as blockchain, it is not enough for the prover only to send the commitment to the signatures and then apply a probabilistic proof protocol. Since the verifier can access all these signatures, the verifier must also compute the commitment. Finally, all hash values are connected into an IVC chain as Fig.1, where the statement is that hi=H(hi1,yi1,F(yi1)) for all i[n].

We modify the scheme proposed in [16] to obtain the formal description of the IVC scheme. Compared to the original definition, we view HF as a composite function. In the i-th step of IVC, the prover computes and proves an augment function F shown in Fig.6. The modified IVC scheme is shown in Fig.7. NIFS shown in Fig.8 denotes the non-interactive folding scheme in Definition 6. Let trace denote the execution of the augment function F, which can be represented as a committed relaxed R1CS with structure sF. The instance-witness pair (u,w) describes the trace of F in each step of IVC. First, F executes the step function HF on hi1,yi1 to obtain the incremental computation result hi=H(hi1,yi1,F(yi1)). Second, F runs the verifier of NIFS to fold two committed relaxed R1CS instances Ui and ui into a new instance Ui+1. Then the IVC prover generates ui+1 to describe the trace of the ith invocation of the augment function F. The instance ui+1 claims the correctness of HF and folding process in the ith step.

We provide our full protocol (G,K,P,V) for batch signature verification in Fig.9. Similarly, we assume that the prover has sent the signature information y=[yi,j]i[n],j[b] to the verifier and claims that all these signatures are valid, i.e., i[n],j[b],F(yi,j)=zi,j=1, which implies that z=[zi,j]i[n],j[b]=1t. Firstly, the prover computes the hash chain with length n to obtain the commitment hn. Then the prover runs the IVC prover for the IVC chain in 5 to generate an IVC proof Π. Due to the large proof size, instead of running the IVC verifier, the SNARK prover SNARK.P will be invoked on the folded IVC proof. After receiving a proof from the prover, the verifier checks the commitment by comparing the hn from the prover and h that is computed locally on y and z, where z is set to 1t to enforce the prover can only prove valid signatures. Then the verifier runs the folding scheme verifier NIFS.V and the SNARK verifier SNARK.V on the folded IVC instance. If all conditions are met, the verifier accepts the statement, which implies all received signatures are valid.

5.3 Batch verification of ECDSA

Intuitively, we can apply the protocol in Fig.9 to the batch verification of ECDSA by setting the function F as the verification of ECDSA. Although this protocol is general for arbitrary signature schemes, the selection of parameters and realization of some functionalities may affect the efficiency in practical applications.

5.3.1 Optimizations on frontend implementation

The standard ECDSA signature [45] is shown in Fig.10. The process of compiling the verification algorithm to an arithmetic representation such as R1CS is often called the frontend of the protocol. The frontend efficiency plays an important role in the overall proving process, and it is measured by the size of the arithmetic representation, which in this work refers to the number of R1CS formed constraints.

Hash functions. Since the hash function H is a part of the step function in the IVC statement, it needs to be arithmetized as R1CS defined over a large field that the commitment scheme and SNARK protocol defined on. To reduce the number of constraints, we use the SNARK-friendly Hash function, Poseidon [46], to instantiate it. Similarly, the folding scheme verification algorithm as shown in Fig.2 will also be proven in R1CS, so we can also use Poseidon to generate the randomness in the NIFS as long as it satisfies the general zero testing property in Definition 4. Since the Poseidon is used as a random oracle in the original non-interactive folding scheme in Nova, it can be deduced that Poseidon has the general zero-testing property in the AGM According to Lemma 1.

Lemma 1 ([42]). The random oracle has the zero-testing property.

Notice that the hash function hash in ECDSA is instantiated by Keccak-256 in many blockchain applications. Applying the general protocol in Fig.9 on the function ECDSA.Verify requires to compile the Keccak-256 defined over the expansion of binary field F2 as constraints over a large field Fp, which will significantly increase the size of the R1CS.

In the SNARK scheme, the verifier must compute the local commitment to the public inputs, which include the signed messages in this work. Furthermore, as Keccak-256 can be evaluated very efficiently on the CPU, it is not necessary for the verifier to delegate this computation to the prover. Therefore, for a batch of signatures in the hash-and-sign paradigm, we replace the message mi,j in the input yi of FH with its digest ei,j=hash(mi,j), and the function F is changed to Verify which is the part of Verify in Fig.10 except for the step 2.

Elliptic curve. The standard ECDSA is defined on the elliptic curve secp256k1, denoted E1. Let Fp denote its base field and Fq denote its scalar field. When considering verifying the ECDSA inside a proof system, we usually represent the evaluation of the verification process as R1CS constraints over a finite field F. Due to the group-based folding scheme, we instantiate the homomorphic commitment on the elliptic curve group where the discrete logarithm problem is hard. Therefore the finite field F should be a scalar field of some elliptic curve E2. If the field F differs from the domain of the evaluation, all non-native operations must be simulated over F. In particular, simulating operations over larger fields on a smaller field additionally increases extensive constraints. Using the state-of-the-art frontend techniques in [47,48], we compute the number of constraints required to simulate each operation of E1 on the scalar field of E2, which is set to three cases of elliptic curves. The results are shown in Tab.1.

Therefore, to minimize the prover time, we avoid non-native operations as much as possible in our scheme BEATS. We compare the number of constraints of simulation for non-native operations over the native curves in Tab.1. The number of constraints of non-native group operations is larger than that of non-native field operations, so group operations are more expensive to simulate than common field operations. In the verification of Fig.10, there are not only field operations over Fq such as multiplication and inverse modulo q, but also group operations such as point addition and scalar multiplication. Since the group operations are implemented over the base field Fp of E1, we let Fp to be the scalar of E2 so that we only need to simulate a few of operations of Fq on Fp. On the other hand, the verification of the folding scheme is dominated by group operations and it will also be represented as R1CS constraints. Like Nova, we use a cycle of elliptic curves, E1 and E2, to make it efficient. We set the E2 as the primary curve and E1 as the secondary curve to execute the verification of the folding scheme alternately, the ECDSA verification is only represented on the primary curve. Fortunately, the elliptic curve secq256k1 [18] perfectly forms a cycle with secp256k1, so we instantiate the E2 by secq256k1 to complete the IVC scheme. Furthermore, the scalar field Fp is larger than Fq, so there are no additional constraints for simulating the multiplication and addition modulo q. Therefore, secq256k1 is optimal to instantiate E2.

5.3.2 Optimization on backend implementation

Corresponding to the frontend, the process of executing a protocol on a given arithmeticized representation is called the backend. At the end of the IVC scheme, we add a general SNARK to compress the proof size as shown in Fig.9. Using Spartan with Bulletproof commitment scheme as the SNARK is natural because it is not only designed for R1CS satisfiability but can be compatible with the additive homomorphic commitment based on the discrete logarithm problem. Moreover, it is transparent and has a prover with linear complexity about the size of a committed relaxed R1CS instance. Although the proof size of the SpartanBP is not a constant, the size of the final proof π in our scheme is independent of the number of signatures. The reason is that we apply the SpartanBP only once on a committed relaxed R1CS instance-witness pair (U,W) with a constant scale, instead of verifying a batch of ECDSA signatures inside SpartanBP directly. The proof size depends only on the fixed block size and the ECDSA verification itself, not on the total number of signatures.

Tab.2 compares our scheme with the approaches used SpartanBP and Marlin directly for batch verification of ECDSA. The batch size is t=nb where b is the number of signatures in each step of IVC, and n is the number of steps. Let O(k) MSM represent O(k)-sized multi-scalar multiplication, O(k) FFT represent O(k)-sized FFT costs O(klogk) field operations. N denotes the number of constraints of one ECDSA verification over the scalar field of secp256k1, N(>N) denotes the number of constraints of one ECDSA verification simulated on BLS12_381, and N(N) denotes N plus the number of constraints of a hash function H. Since the prover time is dominated by complex computations such as MSM and FFT, we count the times they must be executed in the protocol. We evaluate the proof size and verifier time by elements and operations of the cryptographic group or field. In the batch verification of ECDSA, the number of constraints of each instance is fixed, so N,N, and N are constants and the unique variable in this evaluation is the batch size t. The proof size of SpartanBP increases with t, the proof size of Marlin is always a constant, and the proof of our scheme is also a constant since the block size b is pre-determined.

6 Security

In this section, we analyze the security of our general construction of the non-interactive argument in Section 5.2. The completeness relies on the completeness of the IVC scheme and the SANRK schemes. The soundness is determined by the knowledge-soundness of the IVC and the soundness of the SANRK schemes.

The knowledge soundness of the original Nova IVC relies on the knowledge soundness of the non-interactive folding scheme (NIFS) in the standard model, where the non-interactive property is realized by instantiating the random oracle with a cryptographic hash function. However in the batch verification of signatures, if the parameter n is as large as O(λ), this proof strategy will not work. As mentioned in [42], the original Nova follows a general recursive proof strategy, where the IVC extractor E generates Ei from Ei+1 for i[n] and it holds that

time(Ei)>time(E~i)+time(Ai)>2time(Ei+1).

This proof strategy is applicable when considering a batch of no more than t signatures, where t=nb,n=O(logλ) for a fixed b. When the number of signatures is so large that n=O(λ), the running time of the extractor E will be 2O(λ), it cannot extract all IVC witness in the polynomial time. If the λ2128, the original knowledge soundness proof can only support n<128 steps and bounds the 128b signatures in total, limiting the scalability in the blockchain in practice. Although the throughput may be improved by choosing a bigger b, an oversized circuit in one step will cost a lot of memory and offset the benefit of IVC to compress the circuit size. Therefore, we use the knowledge soundness proof in AGM proposed by [42] on the Group-based Non-Interactive Folding Scheme shown in Fig.8. Another advantage of this proof strategy is eliminating the heuristic manner in the arithmetization of oracles.

Lemma 2 (Completeness of IVC). The construction in Fig.7 is an IVC scheme that satisfies completeness.

Proof Sketch For i0, given a valid IVC proof Πi= ((Ui,Wi),(ui,wi)). Suppose the IVC prover runs the protocol honestly as Fig.7 and outputs a new IVC proof Πi+1= ((Ui+1,Wi+1),(ui+1,wi+1)). Because Πi is valid, then (Ui,Wi)Rs and (ui,wi)Rs for a certain public relation Rs. Because the prover run the folding scheme to obtain (Ui+1,Wi+1), it is the folded result of (Ui,Wi) and (ui,wi) so that (Ui+1,Wi+1)Rs by the completeness of the folding scheme. Finally, the instance-witness pair (ui,wi) describes the correct execution of the ith augment function, it must hold that (ui,wi)Rs as long as the prover run the entire protocol honestly. The formal proof is provided in Appendix A.        □

Lemma 3 (Knowledge Soundness of IVC). If the hash function H has the general zero-testing property and the discrete logarithm assumption holds in the group G, then the IVC scheme in Fig.7 combined with the group-based folding scheme based on G and H (Fig.8) satisfies knowledge soundness in the refined AGM.

Proof We follow the proof strategy of [44]. For an IVC scheme with n=poly(λ) steps, the functions F,H, ppG(1λ), and (pk,vk)K(pp,F,H), consider a polynomial time algebraic adversary P on inputs pp=(ppE,ppW) and outputs h0,h,Π with set S of representation vectors following multi-encoding. We construct a extractor E on input (pp,h0,h), outputs (hi)i=1n1 and (yi,zi)i=0n1 such that hn=h and H(hi1,yi1,zi1)=hi where zi1=F(yi1). We construct E by sub-extractor Ei for all i[n1] in reverse order. In each step, given (hi,,hn),((yi,zi),,(yn1,zn1)), and an accepting IVC proof Πi, Ei outputs hi1, (yi1,zi1) and an IVC proof Πi1. After all n1 sub-extractors Ei are constructed, the IVC extractor E runs them to extract the final outputs ((y0,z0),,(yn1,zn1)). The constructions of Ei and E are described in Fig.11.

The correctness of the extracted witness from E relies on the correctness of the outputs of each Ei. By Lemma 4, each Πi1 are valid and hi1,yi1,zi1 extracted in the ith step satisfies that hi=H(hi1,yi1,zi1), where zi1=F(yi1).

Lemma 4 Consider the input and output

(hi,,hn),((yi,zi),,(yn1,zn1)),

such that hj+1=H(hj,yj,zj) and zj=F(yj) for all j=i,,n1. Let S be a set of representation vectors output by P, and assume that Πi=((Ui,Wi),(ui,wi)) is a valid IVC proof combined with the group-based folding scheme in Fig.8. If the hash function H has the general zero-testing property and the discrete logarithm assumption holds in the group G, then the PPT sub-extractor Ei outputs a valid IVC proof Πi1=((Ui1, Wi1),(ui1,wi1)) and (hi1,yi1,zi1) satisfy zi1=F(yi1) and hi=H(hi1,yi1,zi1).

The proof of Lemma 4 is the same as the Lemma 3 of [44] and is provided in Appendix B.            □

Theorem 1 (Completeness). The general construction for batch verification of valid signatures in Fig.9 is a non-interactive argument that satisfies completeness.

Proof Given a batch of signatures, suppose the prover verifies them and takes t=nb valid signatures y with their verification result z as inputs, and runs the protocol as in Fig.9, outputs a proof π. Because the t signatures are valid, for i[n], F(yi)=zi=1b, where b is the block size. Because the prover computes the hash chain and runs the IVC prover in Fig.7 honestly, hi=H(hi1,yi,1b) and Πi is a valid IVC proof for all i[n]. The last IVC proof Πn=((U,W),(u,w)) is valid implies that (U,W),(u,w)Rs, and checks 4 and 5 of the verifier will pass by the completeness of the IVC scheme. Then the prover obtains (U,W,T¯) by the folding scheme, so the (U,W)Rs under the completeness of the folding scheme. Furthermore, the completeness of the SNARK scheme guarantees that π is valid. All conditions of the verifier can be met.    □

Theorem 2 (Soundness). If the hash function H has the collision-resistant property, the IVC scheme in Fig.7 satisfies knowledge soundness for n=O(λ) steps, and SNARK is a SNARK of a valid IVC proof satisfies knowledge soundness, the general construction in Fig.9 is a non-interactive argument for batch verification of t=O(λ) valid signatures satisfies soundness.

Proof Let P be an adversary against the soundness of the general construction in Fig.9 for batch verification of t=O(λ) signatures. P takes public parameters pp=(ppfs,ppsnark) and outputs h0,y=(y0,,yn1) with a proof π=(hn,U,u,T¯,π) for the statement that all t=nb signatures described in y are valid, i,e, i[n],F(yi1)=1b. Suppose there exist at least one invalid signature, without loss of generality, the jth (0j<t) signature, the proof π from P pass the verification with probability ϵ(λ), we demonstrate that ϵ(λ) is negligible.

If P follows the protocol honestly, precisely, P runs the prover algorithm in the Fig.9 to prove that F(yi1)=zi1 for all i[n], where F(yj)=zj1b,j=jn and F(yi1)= zi1=1b for all ij. Because the proof is accepted, it must hold that hn=H(H(H(h0,y0,1b),y1,1b),yn,1b) by the condition 1-3 of the verifier. As the hash function is collision-resistant, it will contract to the Lemma 5. Thus all zi1 for i[n] are 1b with overwhelming probability. Similarly, if P honestly generate an accepted proof for F(yi1)=1b for all i[n] but yy that sent to the verifier before the protocol, it also cannot pass the verification without a negligible probability.

Lemma 5 [49] If H is collision-resistant, then the Merkle-Damgard construction of H is collision-resistant.

If P pass the verification by cheating, all conditions of the verifier will be met. By step 7 of the verifier, π passes the verification of the SNARK scheme for the instance U computed by running the verifier of the folding scheme. We first construct a SNARK extractor E~, which takes U and the accepted SNARK proof π, outputs a witness W such that (U,W)Rs with an overwhelming probability. This implies that instances U and u are satisfiable, we can run the folding extractor E^ to extract W and w such that (U,W),(u,w)Rs. Then we run the IVC extractor E that takes (h0,h) and the accepted IVC proof Π=((U,W),(u,w)), outputs y= (y0,,yn1) satisfies that H(hi1,yi1,F(yi1))=hi for all i[n]. Following the construction of the IVC extractor in Fig.11, we sequentially construct the sub-extractors Ei for all i[n]. If there exists any j[n] such that F(yj1)= zj11b, then it contradicts the collision-resistant property of the hash function H as above. Suppose the SNARK scheme has the knowledge error ϵsnark(λ), the IVC scheme has the knowledge error ϵivc(λ) for n=O(λ) rounds iterations, the non-interactive folding scheme has the knowledge error ϵnifs(λ) and the probability of the event that finding a collision for the Merkle-Damgard formed hash chain with length n is ϵhash(λ)negl(λ). Then, our scheme in Fig.9 has the soundness error

ϵ(λ)=ϵsnark(λ)+ϵnifs(λ)+ϵivc(λ)+ϵhash(λ)negl(λ).

Finally, because the extractor E~,E^, and E can extract the witness in polynomial time, and the hash function can achieve at least 100-bit security, the probability for any PPT P generating an accepted proof for a false statement is negligible.         □

7 Implementation

Following the general construction of Section 5.2 and employing the optimization strategies in Section 5.3, we implement our scheme for batch verification of ECDSA in Rust. The experiments were executed on a Virtual Machine with an Intel i7-11800H CPU with 2.30 GHz, 8 cores, and 16 GB of RAM.

The arithmetic circuit R1CS is compiled using the library bellpepper [50]. We implement the IVC with SNARK scheme following the code of Nova [43], where we choose secp256k1 and secq256k1 as the elliptic curve cycle. We set secq256k1 as the primary curve and secp256k1 as the secondary curve. The verification of ECDSA is only defined on the scalar field Fp of secq256k1. The number of R1CS constraints is about 4,000 per ECDSA verification. In experimental testing, we can adjust the block size b. In particular, the function F represents b ECDSA verification processes on the digest of the message. We have the verifier compute the digest e=hash(m) locally and add this computation time to the verifier time. We fix the message m as a 160-byte value as account information in transactions. We instantiate the hash function H in our scheme by Poseidon, which contains an initialization phase independent of the message and a computation phase that processes messages through the sponge structure. Since the initialization of Poseidon is fixed and reusable, it can be seen as the offline computation together with the setup of the proof system for the prover and verifier. We only focus on the online phase related to signatures.

7.1 BEATS

We instantiate the SNARK in our scheme via SpartanBP to obtain a transparent scheme BEATS. As shown in Fig.12, we test the prover time and verifier time with batch sizes t ranging from 1 to 220 ECDSA signatures. We set the block size b=1,2,8,32 in each IVC step, respectively.

We first compare our protocol with the scheme that verified ECDSA inside SpartanBP directly. Since BEATS in this paper uses the cycle of curves secp256k1/secq256k1, it is natural to compare it with Spartan using secp256k1 in the experiments. For the prover time, when the batch size is larger than 23, BEATS begins to show its advantages. If the batch size is less than 29, the prover time will be lower to set b=8, while setting the block size b larger, such as b=32, would make the prover faster if one intends to pack many more signatures. In BEATS, the parameter b determines the number of constraints proven by the final SNARK after IVC. Increasing b speeds up the prover for large batch sizes, while decreasing b speeds up the prover for small batch sizes. Additionally, smaller b results in faster verification and smaller proofs. When t=211, SpartanBP reaches its upper bound on the number of signatures, the prover time of SpartanBP is about 776 s, while the prover time for b=1,2,8 and 32 in BEATS is 248, 160, 62, and 45 s respectively. We speed up the prover by 3~17 times.

For the verifier time, it grows linearly with the number of signatures in SpartanBP, while in BEATS it is almost constant when t214. When t=211, SpartanBP reaches its upper bound with a verifier time of 21 s, while the mean of verifier time for different values of b=1,2,8 and 32 in BEATS is 87, 118, 180, and 440 ms respectively. We speed up the verifier by 48–240 times. The verifier time of BEATS starts to show an increasing trend only when t215; the reason is the verifier time is dominated by the SNARK verification process before that and the hash computation of the message is negligible. As the size increases, the hash computation is proportional to the number of messages, so the hash computation starts to dominate the verifier time when t215. The baseline with black triangle legend in Fig.12 indicates the verification time of ECDSA signatures without any proof system. Obliviously, BEATS will be more efficient when the batch size is larger than 210 compared to the baseline. When t=220, we speed up the verifier by 21–174 times. Furthermore, even if the baseline is optimized for parallelism as the gray triangle legend, BEATS still using a single thread becomes advantageous when the batch size exceeds 213. The gap when t213 grows with the batch size. When t=220, we speed up the verifier by 3~30 times.

Then we compare our scheme with Marlin. In Section 1.1, we mentioned that Marlin is based on bilinear pairing, but secp256k1/secq256k1 is not pairing-friendly as noted in Section 2. Thus it is difficult to implement the bilinear pairing mapping of Marlin on secp256k1 efficiently. To ensure fair comparisons, we use the optimal finite field for Marlin, given its reliance on non-native operations. Following the result of [48] that there are about 220 constraints for each ECDSA verification, we substitute the result into the benchmark test to obtain the experiment performance. Since the prover time of Marlin is quasi-linear and a large-scale MSM and FFT dominate the time and memory of the prover, the execution quickly reaches the upper bound. Marlin can prove only one ECDSA signature in the virtual machine of this experiment. When b=1, the prover takes 1.82 s in BEATS and takes 19.46 s in Marlin for one ECDSA signature. The single prover in BEATS is faster than Marlin by about 10 times. Marlin has fast verifier with 6.74 ms and an extremely short proof with 0.73 KB. In BEATS, the verifier takes 86.36 ms and the proof size is 9.22 KB. Consequently, the verifier time and the proof size of BEATS are larger than Marlin by about 12 times. However, these advantages of Marlin come at the cost of longer prover time and higher memory consumption, and it is non-transparent with a trusted setup. We improve the scalability significantly that supports an arbitrary number of signatures and the proof size is nearly constant when the batch size is less than 214. Since Marlin needs to generate proofs for a batch of signatures separately, the verifier time and proof size of BEATS can be amortized efficiently.

Tab.3 and Tab.4 describe the comparison of proof size between BEATS and SpartanBP and Marlin. The batch size t in Tab.3 represents the number of the ECDSA signatures in total and the block size b in Tab.4 represents the number of the ECDSA signatures handled in each step of IVC in BEATS, the proof size of BEATS is a constant independent of t for fixed b. Our proof size is larger than the SpartanBP, because the implementation is over the cycle of elliptic curves, there are two instance-witness pairs at the last of the IVC scheme, i.e., (U,W) in Fig.9 is replaced by (U(1),W(1)) and (U(2),W(2)). Finally, there are two SNARK proofs. When a short proof is desired, one can use only one curve to halve the proof size.

For scalability, the upper bound on the number of ECDSA signatures that can be proved at once is 211 in SpartanBP and only one in Marlin. BEATS can support arbitrary batch size theoretically, and we show only a portion of the practical intervals in Fig.12 within a practically acceptable time. Thanks to the chain-based IVC construction, our scheme is memory-friendly. The ith step in the chain claims that the previous i steps were executed correctly, which is a compression of the historical state. Each generated IVC proof can be viewed as an update to the current state and the past state can be released. The prover generates the IVC proof and takes a constant memory and a linear time about the number of steps of the IVC chain. On the other hand, we can replace chain-based construction with tree-based construction, which provides a faster prover but costs more memory. This construction is similar to the PCD-based SNARK in [51], but the batch verification for multiple signatures is a natural uniform format, so we do not require a compiler nor do we need to consider the wiring connections between each sub-computation. In this parallel implementation, the time for executing O(tN)-sized MSM of the prover in Tab.1 will be reduced to the time for O(lognbN)-sized MSM, where t=nb and b<<n. In addition, the width of the tree can be adjusted according to the optimal number of threads for the device.

8 Conclusion

We present a general approach to batch verification of arbitrary signatures on the blockchain, addressing scalability, memory efficiency, and compatibility with common devices while supporting an arbitrary number of verifications. As a concrete instantiation, we introduce BEATS for batch ECDSA verification, demonstrating significant performance improvements over existing methods. The comparison shows that BEATS speeds up the prover and the verifier of SpartanBP significantly for the large batch of ECDSA signatures. Furthermore, BEATS has high scalability that supports an arbitrary number of signatures, which is far superior to the existing SNARK such as Marlin. Finally, BEATS exhibits a remarkably low memory footprint, making it compatible with resource-limited devices.

A research direction in the future is how to realize proof acceleration on small finite fields. However, several challenges must be addressed. Firstly, while small finite fields may offer faster field operations, they often lead to increased soundness errors. This necessitates additional security mechanisms, potentially increasing scheme complexity and introducing overhead for the prover. Secondly, simulating non-native operations on smaller fields can result in larger circuit sizes. Since prover time in many proof systems scales linearly with the number of constraints, this circuit size growth can significantly impact prover performance. Finally, in the context of Nova IVC, the use of a cycle of elliptic curves is crucial for efficient proofs. Finding suitable curve pairs that both enhance proof efficiency and adhere to the cycle form presents a significant challenge.

References

[1]

Boneh D, Gentry C, Lynn B, Shacham H. Aggregate and verifiably encrypted signatures from bilinear maps. In: Proceedings of International Conference on the Theory and Applications of Cryptographic Techniques on Advances in Cryptology. 2003, 416−432

[2]

Harn L . Batch verifying multiple RSA digital signatures. Electronics Letters, 1998, 34( 12): 1219–1220

[3]

Karati S, Das A, Roychowdhury D, Bellur B, Bhattacharya D, Iyer A. Batch verification of ECDSA signatures. In: Proceedings of the 5th International Conference on Cryptology in Africa on Progress in Cryptology. 2012, 1−18

[4]

Karati S, Das A, Roychoudhury D. Randomized batch verification of standard ECDSA signatures. In: Proceedings of the 4th International Conference on Security, Privacy, and Applied Cryptography Engineering. 2014, 237−255

[5]

Karati S, Das A. Faster batch verification of standard ECDSA signatures using summation polynomials. In: Proceedings of the 12th International Conference on Applied Cryptography and Network Security. 2014, 438−456

[6]

Antipa A, Brown D, Gallant R, Lambert R, Struik R, Vanstone S. Accelerated verification of ECDSA signatures. In: Proceedings of the 12th International Workshop on Selected Areas in Cryptography. 2005, 307−318

[7]

Cheon J H, Yi J H. Fast batch verification of multiple signatures. In: Proceedings of the 10th International Conference on Practice and Theory in Public-Key Cryptography. 2007, 442−457

[8]

Liu T, Xie T, Zhang J, Song D, Zhang Y. Pianist: scalable zkRollups via fully distributed zero-knowledge proofs. In: Proceedings of 2024 IEEE Symposium on Security and Privacy (SP). 2024, 1777−1793

[9]

Polygon. See Polygon.technology/polygon-zkevm website, 2024

[10]

Scroll. See Scroll.io/ website, 2025

[11]

ZKsync. See Zksync.io/ website , 2024

[12]

Setty S. Spartan: efficient and general-purpose zkSNARKs without trusted setup. In: Proceedings of the 40th Annual International Cryptology Conference on Advances in Cryptology. 2020, 704−737

[13]

Bünz B, Bootle J, Boneh D, Poelstra A, Wuille P, Maxwell G. Bulletproofs: short proofs for confidential transactions and more. In: Proceedings of 2018 IEEE Symposium on Security and Privacy (SP). 2018, 315−334

[14]

Chiesa A, Hu Y, Maller M, Mishra P, Vesely N, Ward N. Marlin: preprocessing zkSNARKs with universal and updatable SRS. In: Proceedings of the 39th Annual International Conference on the Theory and Applications of Cryptographic Techniques on Advances in Cryptology. 2020, 738−768

[15]

Kate A, Zaverucha G M, Goldberg I. Constant-size commitments to polynomials and their applications. In: Proceedings of the 16th International Conference on the Theory and Application of Cryptology and Information Security on Advances in Cryptology. 2010, 177−194

[16]

Kothapalli A, Setty S, Tzialla I. Nova: recursive zero-knowledge arguments from folding schemes. In: Proceedings of the 42nd Annual International Cryptology Conference on Advances in Cryptology. 2022, 359−388

[17]

C2PA technical specification. See C2pa.org/specifications/specifications/1.1/specs/C2PA_Specification website, 2024

[18]

Curve with group order 2^255 − 19. See Moderncrypto.org/mail-archive/curves/2018/000992 website, 2018

[19]

Spartan-ECDSA. See Github.com/personaelabs/spartan-ecdsa website, 2024

[20]

Bünz B, Chen B. Protostar: generic efficient accumulation/folding for special-sound protocols. In: Proceedings of the 29th International Conference on the Theory and Application of Cryptology and Information Security. 2023, 77−110

[21]

Kothapalli A, Setty S. HyperNova: recursive arguments for customizable constraint systems. In: Proceedings of the 44th Annual International Cryptology Conference on Advances in Cryptology. 2024, 345−379

[22]

Groth J. On the size of pairing-based non-interactive arguments. In: Proceedings of the 35th Annual International Conference on the Theory and Applications of Cryptographic Techniques on Advances in Cryptology. 2016, 305−326

[23]

Gabizon A, Williamson Z J, Ciobotaru O. PLONK: permutations over lagrange-bases for oecumenical noninteractive arguments of knowledge. See Eprint.iacr.org/2019/953 website, 2019

[24]

Zcash. See Zcash.readthedocs.io/en/latest/ website, 2019

[25]

Zhang J, Xie T, Zhang Y, Song D. Transparent polynomial delegation and its applications to zero knowledge proof. In: Proceedings of 2020 IEEE Symposium on Security and Privacy (SP). 2020, 859−876

[26]

Golovnev A, Lee J, Setty S, Thaler J, Wahby R S. Brakedown: Linear-time and field-agnostic snarks for R1CS. In: Proceedings of Annual International Cryptology Conference. 2023, 193–226

[27]

Xie T, Zhang Y, Song D. Orion: zero knowledge proof with linear prover time. In: Proceedings of the 42nd Annual International Cryptology Conference on Advances in Cryptology. 2022, 299−328

[28]

Kales D, Zaverucha G. Efficient lifting for shorter zero-knowledge proofs and post-quantum signatures. See Eprint.iacr.org/2022/588 website, 2022

[29]

Zeilberger H, Chen B, Fisch B. BaseFold: efficient field-agnostic polynomial commitment schemes from foldable codes. In: Proceedings of the 44th Annual International Cryptology Conference on Advances in Cryptology. 2024, 138−169

[30]

Block A R, Fang Z, Katz J, Thaler J, Waldner H, Zhang Y. Field-agnostic SNARKs from expand-accumulate codes. In: Proceedings of the 44th Annual International Cryptology Conference on Advances in Cryptology. 2024, 276−307

[31]

Chen B, Bünz B, Boneh D, Zhang Z. HyperPlonk: plonk with linear-time prover and high-degree custom gates. In: Proceedings of the 42nd Annual International Conference on the Theory and Applications of Cryptographic Techniques on Advances in Cryptology. 2023, 499−530

[32]

0xPolygonZero/zk_evm. See Github.com/0xPolygonZero/zk_evm website, 2024

[33]

Plonky2. See Github.com/0xPolygonZero/plonky2/blob/main/plonky2/plonky2 website, 2022

[34]

Wu H, Zheng W, Chiesa A, Popa R A, Stoica I. DIZK: a distributed zero knowledge proof system. In: Proceedings of the 27th USENIX Conference on Security Symposium. 2018, 675−692

[35]

Chiesa A, Lehmkuhl R, Mishra P, Zhang Y. EOS: efficient private delegation of zkSNARK provers. In: Proceedings of the 32nd USENIX Conference on Security Symposium. 2023, 361

[36]

Sha J, Liu S . Delegable zk-SNARKs with proxies. Frontiers of Computer Science, 2024, 18( 5): 185812

[37]

Garg S, Goel A, Wang M. How to prove statements obliviously? In: Proceedings of the 44th Annual International Cryptology Conference on Advances in Cryptology. 2024, 449−487

[38]

Das S, Camacho P, Xiang Z, Nieto J, Bünz B, Ren L. Threshold signatures from inner product argument: succinct, weighted, and multi-threshold. In: Proceedings of 2023 ACM SIGSAC Conference on Computer and Communications Security. 2023, 356−370

[39]

Garg S, Jain A, Mukherjee P, Sinha R, Wang M, Zhang Y. hinTS: threshold signatures with silent setup. In: Proceedings of 2024 IEEE Symposium on Security and Privacy (SP). 2024, 3034−3052

[40]

Qiu T, Tang Q. Predicate aggregate signatures and applications. In: Proceedings of the 29th International Conference on the Theory and Application of Cryptology and Information Security on Advances in Cryptology. 2023, 279−312

[41]

Fuchsbauer G, Kiltz E, Loss J. The algebraic group model and its applications. In: Proceedings of the 38th Annual International Cryptology Conference on Advances in Cryptology. 2018, 33−62

[42]

Lee H, Seo J H. On the security of nova recursive proof system. See Eprint.iacr.org/2024/232 website, 2024

[43]

Nova. See Github.com/microsoft/Nova website, 2025

[44]

Nguyen W, Boneh D, Setty S. Revisiting the nova proof system on a cycle of curves. See Eprint.Iacr.Org/2023/969 website, 2023

[45]

National Institute of Standards, Technology. Digital signature standard (DSS). See Csrc.nist.gov/pubs/fips/186–5/final website, 2023

[46]

Grassi L, Khovratovich D, Rechberger C, Roy A, Schofnegger M. Poseidon: a new hash function for zero-knowledge proof systems. In: Proceedings of the 30th USENIX Conference on Security Symposium. 2021, 519−535

[47]

Kosba A, Papamanthou C, Shi E. xJsnark: a framework for efficient verifiable computation. In: Proceedings of 2018 IEEE Symposium on Security and Privacy (SP). 2018, 944−961

[48]

0xPARC. zk-ECDSA part 2: under the hood. See 0Xparc.org/blog/zk-ecdsa-2 website, 2024

[49]

Katz J, Lindell Y. Introduction to Modern Cryptography. 2nd ed. Chapman & Hall/CRC, 2014

[50]

bellpepper. See Github.com/lurk-lab/bellpepper website, 2024

[51]

Nguyen W, Datta T, Chen B, Tyagi N, Boneh D. Mangrove: a scalable framework for folding-based SNARKs. In: Proceedings of the 44th Annual International Cryptology Conference on Advances in Cryptology. 2024, 308−344

RIGHTS & PERMISSIONS

The Author(s) 2025. This article is published with open access at link.springer.com and journal.hep.com.cn

AI Summary AI Mindmap
PDF (3455KB)

Supplementary files

Highlights

648

Accesses

0

Citation

Detail

Sections
Recommended

AI思维导图

/