Reusable Proof Of Work

Photo by Austin Chan

On august the 15th 2004 Hal Finney was ready and sent his idea to the cypherpunk community.

Lacking a sexier name, he called his invention Reusable Proof Of Work.

Inspired by Nick Szabo, he had invented a form of digital cash that is limited in supply and provably difficult to create — based on Adam Back’s Hashcash (you can explore his fascinating story here).

Let’s take a look at how it works.

Hashcash is the concept of forcing a computer to first provide some kind of work, in this case solving a cryptographic puzzle, before another resource can be used. For example, before you can send an email your computer first needs to solve a little puzzle (proving that it has worked), before that email will be sent. This ensures that it would get extremely costly for spammers to send out huge amounts of junk mail. While time consuming to produce, these types of solutions can be quickly verified.

The shortcoming with Adam Back’s hashcash concept was the usability of the resulting Proof-of-Work token though — it could only be used once and after that, all the work that was put into creating it was gone.

This is where Hal Finney started to design and to create an extraordinary solution to make these Proof-of-Works (POW) reusable and therefore durable — ergo Reusable Proof Of Work (RPOW).

The second essential cryptographic concept that his idea incorporates, apart from hashcash, is so called public key encryption. We’ve covered this in a former post, here is a quick explainer:

Public key cryptography, or asymmetric cryptography, is an encryption scheme that uses two mathematically related, but not identical, keys — a public key and a private key. Unlike symmetric key algorithms that rely on one key to both encrypt and decrypt, each key performs a unique function. The public key is used to encrypt and the private key is used to decrypt.

His idea essentially built a second layer on top of the existing hashcash concept. Once a POW has been created, your computer would connect to a server which would then go on to exchange that token for a RPOW. This token is created at equal value, therefore ensuring a conversation of the invested computational work (and ergo energy) — this also prevents inflation from happening.

Once created and exchanged, these fancy new RPOWs can now easily be traded from person to person. Everytime a transfer from one person to the other takes place, on a technical layer the used RPOW gets exchanged for a newly created RPOW. So while only used once technically, for the user it feels like you simply pass them on.

The original POW therefore starts a chain of RPOWs. (Blockchain, is that you?)

Photo by Kaley Dykstra

In order to prevent someone from exchanging their original POW more than once, there is a central RPOW server to keep track of all the POW that have been exchanged.

So to sum it up, this system is pretty much designed like hashcash, but unlike hashcash it is reusable. (And splittable as well).

This explanation shall suffice — if you want to do a deep dive into the theoretical world of RPOW though, be my guest.

Hmm, now you might say that a centralized server isn’t really fitting in the overall theme of stressing the importance of decentralization that we have seen all throughout the history we’ve covered so far. And you would be certainly right to think so.

Yet, there is a special security sauce to all of this.

You see, all the RPOW that are created are unforgeable and not even the owner of the servers that exchange one token for the other can violate the system’s rules. How is that possible?

Hal Finney’s work utilizes a special breed of high security servers that were produced by IBM, namely the processor cards IBM 4758. These high security servers have embedded systems that make it virtually almost impossible to hack into them or to even change the content on them. If you want to read the gritty-nitty details of this, just click here.

But wait, what in the world would we even use the Reusable Proofs Of Work for?

Good question and one that Hal Finney himself had the following applications in mind: Possible uses for RPOW include anti-spam tokens, “play money” for use in online games and fun bets, an aid to load balancing in Peer-to-Peer and file-exchange systems, and many more.

Keep in mind that this was not money and is not intended to be a stable store of value, but rather an easy-to-exchange representation of computer effort.

Just in case you were wondering, his proposed system was able to handle 8 exchanges per second. (Take that Bitcoin)