Table of Contents
Fetching ...

FeatherWallet: A Lightweight Mobile Cryptocurrency Wallet Using zk-SNARKs

Martin Perešíni, Ivan Homoliak, Samuel Olekšák, Samuel Slávka

TL;DR

FeatherWallet tackles the challenge of secure, memory-efficient mobile wallet synchronization by offloading header-chain verification to a dedicated server that generates zk-SNARK proofs, which are then verified by a smart contract on a primary blockchain. This arrangement reduces the data and computational burden on mobile clients while supporting multiple PoW blockchains through a checkpointed header-chain verification scheme. The authors implement a PoC using Circom/snarkjs with the Groth16 backend and a React Native client, demonstrating significant storage savings (about 20x) and favorable gas dynamics when batching proofs, though proof generation remains memory-intensive for large header batches. The approach highlights a practical path toward trust-minimized, scalable mobile wallets, with potential extension to other consensus mechanisms and further optimizations in proof generation and data freshness.

Abstract

Traditionally, mobile wallets rely on a trusted server that provides them with a current view of the blockchain, and thus, these wallets do not need to validate the header chain or transaction inclusion themselves. If a mobile wallet were to validate a header chain and inclusion of its transactions, it would require significant storage and performance overhead, which is challenging and expensive to ensure on resource-limited devices, such as smartphones. Moreover, such an overhead would be multiplied by the number of cryptocurrencies the user holds in a wallet. Therefore, we introduce a novel approach, called FeatherWallet, to mobile wallet synchronization designed to eliminate trust in a server while providing efficient utilization of resources. Our approach addresses the challenges associated with storage and bandwidth requirements by off-chaining validation of header chains using SNARK-based proofs of chain extension, which are verified by a smart contract. This offers us a means of storing checkpoints in header chains of multiple blockchains. The key feature of our approach is the ability of mobile clients to update their partial local header chains using checkpoints derived from the proof verification results stored in the smart contract. In the evaluation, we created zk-SNARK proofs for the 2, 4, 8, 16, 32, and 64 headers within our trustless off-chain service. For 64-header proofs, the off-chain service producing proofs requires at least 40 GB of RAM, while the minimal gas consumption is achieved for 12 proofs bundled in a single transaction. We achieved a 20-fold reduction in storage overhead for a mobile client in contrast to traditional SPV clients. Although we have developed a proof-of-concept for PoW blockchains, the whole approach can be extended in principle to other consensus mechanisms, e.g., PoS.

FeatherWallet: A Lightweight Mobile Cryptocurrency Wallet Using zk-SNARKs

TL;DR

FeatherWallet tackles the challenge of secure, memory-efficient mobile wallet synchronization by offloading header-chain verification to a dedicated server that generates zk-SNARK proofs, which are then verified by a smart contract on a primary blockchain. This arrangement reduces the data and computational burden on mobile clients while supporting multiple PoW blockchains through a checkpointed header-chain verification scheme. The authors implement a PoC using Circom/snarkjs with the Groth16 backend and a React Native client, demonstrating significant storage savings (about 20x) and favorable gas dynamics when batching proofs, though proof generation remains memory-intensive for large header batches. The approach highlights a practical path toward trust-minimized, scalable mobile wallets, with potential extension to other consensus mechanisms and further optimizations in proof generation and data freshness.

Abstract

Traditionally, mobile wallets rely on a trusted server that provides them with a current view of the blockchain, and thus, these wallets do not need to validate the header chain or transaction inclusion themselves. If a mobile wallet were to validate a header chain and inclusion of its transactions, it would require significant storage and performance overhead, which is challenging and expensive to ensure on resource-limited devices, such as smartphones. Moreover, such an overhead would be multiplied by the number of cryptocurrencies the user holds in a wallet. Therefore, we introduce a novel approach, called FeatherWallet, to mobile wallet synchronization designed to eliminate trust in a server while providing efficient utilization of resources. Our approach addresses the challenges associated with storage and bandwidth requirements by off-chaining validation of header chains using SNARK-based proofs of chain extension, which are verified by a smart contract. This offers us a means of storing checkpoints in header chains of multiple blockchains. The key feature of our approach is the ability of mobile clients to update their partial local header chains using checkpoints derived from the proof verification results stored in the smart contract. In the evaluation, we created zk-SNARK proofs for the 2, 4, 8, 16, 32, and 64 headers within our trustless off-chain service. For 64-header proofs, the off-chain service producing proofs requires at least 40 GB of RAM, while the minimal gas consumption is achieved for 12 proofs bundled in a single transaction. We achieved a 20-fold reduction in storage overhead for a mobile client in contrast to traditional SPV clients. Although we have developed a proof-of-concept for PoW blockchains, the whole approach can be extended in principle to other consensus mechanisms, e.g., PoS.

Paper Structure

This paper contains 15 sections, 7 figures, 2 tables.

Figures (7)

  • Figure 1: Individual steps of zero-knowledge proof generation and verification.
  • Figure 2: Overview of the components of our approach and how they interact.
  • Figure 3: Header chain verification scheme for zk-SNARK prover and verifier.
  • Figure 4: Price of submission for various number of proofs in transaction.
  • Figure 5: Gas costs for monthly upkeep.
  • ...and 2 more figures