Paper 2024/1498 Original: eprint.iacr.org/2024/1498 ↗

Practical Implementation of Pairing-Based zkSNARK in Bitcoin Script

Federico Barbacovi
Enrique Larraia
Paul Germouty
Wei Zhang
Abstract

Groth16 is a pairing-based zero-knowledge proof scheme that has a constant proof size and an efficient verification algorithm. Bitcoin Script is a stack-based low-level programming language that is used to lock and unlock bitcoins. In this paper, we present a practical implementation of the Groth16 verifier in Bitcoin Script deployable on the mainnet of a Bitcoin blockchain called BSV. Our result paves the way for a framework of verifiable computation on Bitcoin: a Groth16 proof is generated for the correctness of an off-chain computation and is verified in Bitcoin Script on-chain. This approach not only offers privacy but also scalability. Moreover, this approach enables smart contract capability on Bitcoin which was previously thought rather limited if not non-existent.

Metadata
Available format(s)
PDF
Category
Implementation
Publication info
Preprint.
History
2024-09-24: last updated
2024-09-24: published
Short URL
https://ia.cr/2024/1498
License
https://creativecommons.org/licenses/by-nc-nd/4.0/

BibTeX

@misc{cryptoeprint:2024/1498,
      author = {Federico Barbacovi and Enrique Larraia and Paul Germouty and Wei Zhang},
      title = {Practical Implementation of Pairing-Based zkSNARK in Bitcoin Script},
      howpublished = {Cryptology {ePrint} Archive, Paper 2024/1498},
      year = {2024},
      url = {https://eprint.iacr.org/2024/1498}
}
Note: In order to protect the privacy of readers, this archive does not use cookies or embedded third party content.