Search on TFTC
Issue #834: GLV Endomorphism, efficiency, and patents

Issue #834: GLV Endomorphism, efficiency, and patents

Sep 29, 2020
Marty's Ƀent

Issue #834: GLV Endomorphism, efficiency, and patents

Here is something that was not on my radar, other than this tweet from Pieter Wuille, until Jameson Lopp tweeted out these performance test results yesterday evening; GLV Endomorphism exists, its patent has expired, and it can now be leveraged via libsecp256k1 in Bitcoin Core.

"What the hell does all of that mean, Uncle Marty?"

The way I understand it, GLV Endomorphism allows Bitcoin full nodes to verify signatures in a different way that is much more efficient. Aiding in a quicker initial block download when launching Bitcoin Core for the first time and reducing the CPU usage of nodes as they accept and add new blocks to their records. As you can see from Jameson's tweet above, enabling GLV Endomorphism within Bitcoin Core has a material effect on the time it takes to download the full state of the Bitcoin blockchain from the Genesis block. Speeding up this process by 28% is nothing to scoff at. This is one of those under-appreciated improvements to Bitcoin that gets your Uncle Marty all hot and bothered.

Enabling more individuals to participate in the validation of the Bitcoin blockchain is what you want to see as a user and as someone who wants Bitcoin to be as distributed as possible. Reducing the amount of CPU space needed to receive and verify blocks on an ongoing basis widens the net of potential full node operators. This is an incredible thing to see. What is particularly interesting about the addition of GLV Endomorphism is the fact that Bitcoin Core contributors have been preparing for the expiration of the patent for some time now. Hal Finney (RIP) was actually the first person to point out that this signature verification scheme would be more efficient in February 2011! Since then, Bitcoin Core has been maintaining and testing an implementation of GLV Endomorphism within the libsecp256k1 library so that bitcoiners would be able to utilize it as soon as the patent expired. This happened over the weekend and bitcoiners are already reaping the benefits.

This development makes me extremely happy, but also has me questioning how many other pieces of patented code are out there that aren't able to be utilized by bitcoiners and are preventing the project from being as efficient, fast, and robust as possible. Schnorr signatures are another example of a piece of beneficial code that is only (potentially) being added to Bitcoin more than a decade after it launched. What are the other patents out there that are holding back Bitcoin? Seriously, if you freaks know please respond to this email or tweet at me. I'd like to get a list going if possible.

Imagine where we would be if software patents didn't exist. Especially for code that performs cryptographic functions, which to your (admittedly dumb) Uncle Marty is akin to patenting math. Where would we be today if these patents didn't exist?

Hopefully we can begin to claw back this monopolistic practice for the betterment of humanity.

Final thought...

I need to decrease my screen time and increase my number of pages read.


Current Block Height

Current Mempool Size

Current Difficulty