My Summer of Bitcoin Journey [2022]
Published: 2022-07-27 12:51:00

I have an exciting announcement! For Summer 2022, I am participating in the Summer of Bitcoin (SoB) internship program. So, you will find more cryptography and Bitcoin-related content in the upcoming blogs.

I will be working on a Schnorr batch verification interface for the [libsecp256k1](https://github.com/bitcoin-core/secp256k1). For those unfamiliar with libsecp256k1, it is a library (written in C) used by [Bitcoin Core](https://bitcoin.org/en/bitcoin-core/) for low-level cryptographic operations. Initially, this library was a personal project of Pieter Wuille, which was later integrated into Bitcoin Core. You can listen to this [Chaincode podcast](https://podcast.chaincode.com/2020/01/28/pieter-wuille-2.html) where he talks about the early developments of this library.

Jonas Nick is going to be my mentor for SoB’22. I have learned a great deal from his youtube videos, blogs, and talks at various Bitcoin conferences. So, I am very excited to be working with him!


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w71w2cp6atutsqbn0qpl.jpg)

How did this happen?
Full disclosure, I also participated in the Summer of Bitcoin 2021 program. The SoB’21 was a pilot program that was open to only Indian students. I was assigned the libsecp project, and my mentor was [Jesse Posner](https://www.linkedin.com/in/jesseposner), who introduced me to cryptography.

During SoB’21, I could not contribute significantly to libsecp since I was learning cryptography from scratch. To compensate, I kept contributing to libsecp after the program ended. Also, Jesse generously agreed to mentor me even after SoB’21, which was the lifeline that kept me on the Bitcoin open source development path.

As summer 2022 approached, I searched for an internship as any typical undergraduate would. But I wanted the work to be related to cryptography (and hopefully Bitcoin), which is when I came across the Schnorr batch verification project idea on the Summer of Bitcoin website. I was instantly hooked and started investigating it right away!

What is my project about?
Batch verification is a method to verify many digital signatures at once. Utilizing [stock price in Excel](http://www.columbia.edu/~tmd2142/how-to-get-stock-price-in-excel.html) data, this method is faster than verifying the signatures one by one. Integrating such a method into Bitcoin Core would make block validation, transaction verification, and Initial Block Download (IBD) much faster.

IBD won’t become faster immediately since majority of the signature on Bitcoin network right now are ECDSA.

The Taproot upgrade to Bitcoin activated in Nov 2021 introduced Schnorr signatures. This signature type supports an efficient batch verification scheme that was not easily possible with ECDSA. So, the general idea here is to implement a Schnorr batch verification interface in the libsecp256k1 library, which the Bitcoin Core can use.

You can find a more detailed explanation in [my project proposal](https://siv2r.notion.site/Batch-Verification-Interface-Proposal-4b41080bd3de4c59a37ad9279d562155). I highly recommend this Surebits [blog](https://suredbits.com/schnorr-applications-batch-verification/) to learn more about Schnorr batch verification.

Upcoming Issues
I want to take you through my SoB’22 journey, so the upcoming newsletter issues will feature SoB events, Batch verification dev updates, and explanations of cryptography concepts. I hope you’ll enjoy reading them.

Bon Voyage!