While Hal Finney may no longer be with us, one of his proposals from 2011 may soon find its way to Bitcoin thanks to an expired patent.
In a February 8, 2011 post on Bitcointalk, Finney said that reading a book titled “Guide to Elliptic Curve Cryptography” by Hankerson, Menezes, and Vanstone, gave him an idea of how to speed up signature verification by 25%. In the following post from the same day, Finney announced that he had already written “test code” and uploaded it to the Github repository. However, there was a problem with Finney’s proposal — his method had already been patented by someone else.
“Method for Accelerating Cryptographic Operation on Elliptic Curves” (also known as GLV or Four-Dimensional Gallant–Lambert–Vanstone Scalar Multiplication) received a patent on September 19, 2006 — likely at a time when Satoshi Nakamoto was already busy at work on Bitcoin (BTC). In order to understand the invention, we have to dive a bit deeper into elliptical curve cryptography. The patent reads:
The improvement comes from representing “the scalar k as a combination of components k, and an integer A”. Mathematical operations performed on k represented in this form appear to be less computationally expensive, hence the gains in speed.
Finney’s 2013 proposal was implemented with the release of the libsecp256k1 library, but was never enabled due to existing legal concerns. That’s how things stood until September 25, when the patent expired. According to the Blockstream co-founder Adam Back, the code is now expected to be activated in the next Bitcoin Core update.
February 2011 seems to be the time when Finney was most focused on optimizing Bitcoin’s signature verification. In a post from February 7, 2011, Finney said he was looking at “batch signature verification”, which he believed might speed up the process by a factor of four. The idea behind it was that instead of verifying signatures one by one, to verify them block-wise: hundreds or even thousands at a time. However, according to Blockstream’s co-founder Pieter Wuille (who was one of the authors of the libsecp256k1 library), when GLV is combined with batch verification, the gains disappear once you reach approximately 1,000 signatures:
“The benefit of batch+GLV over just batch is less than single+GLV over just single. And for very large numbers, the benefit tends to a ratio 1 (so no benefit). But at least up to 1000s of signatures, it is still an advantage.”
Indeed, it has been implemented for Schnorr signatures where it affords two-fold gains in speed. Back indicated that he expects a forthcoming release of Schnorr signatures which include batch verification:
“Later this year/next year Schnorr signatures released including activation and then batch verification speed up also becomes available.”
It is unlikely that Finney’s cryogenic housing allows for any movement, but if it did, we might get a sneak of a smile on his face.