Member-only story
Adding Public Keys … Part 1: The Schnorr Way
The Schnorr signature method supports the merging of public keys to produce a single signature for a transaction [Schnorr aggregate]. Unfortunately, it is not secure and suffers from the cancellation problem [here], but which can be overcome with the MuSig method or the BN Method [here]. In this article, I will illustrate how the Schnorr signature method works. The MuSig method is outlined by Greg Maxwell et al in this paper [1][here]:
In Part 2, I will outline the MuSig method using Rust, but in this article I will focus on a simple demonstration of the Schnorr signature method using Rust. If you want a quick outline of MuSig, click here.
Schnorr with Multiple Signers
In areas such as Bitcoin, we can have multiple signers to a transaction. This would require multiple signatures to prove each of the signers. The advantage with the Schnorr signature method is that we can simply add each of the public keys, and signatures together to produce a valid single signature. So let’s take an example of a message that both Bob and Alice sign.
