Mer resultat från Athega Code Base 2012 [en]

Proof of work functions and making value

In some situations it is good to show that you have been diligent and working hard; Athega Codebase 2012 is no exception. You know the other guys have such great ideas and the scenery around us at Söderarm is amazing, its hard to do any real work at all.

So I figured lets show how to create value on our machines [whilst we are dreaming and looking out the windows] by investigating the ideas behind Bitcoin and the like.

Well, as you shall see, things did not go quite to plan!

Bitcoin and Bitgold are new experimental digital currencies, see, and proof of work is essential to their inner workings.

Here, value is based on work done in the computer solving very difficult problems.

Simply, solving difficult problems requires a lot of work. So a solved difficult problem has value, in exactly the same way mined silver has intrinsic value. And silver can be used to make coins! So by analogy one can make coins of the value in solving difficult problems; well in theory at least. But Bitcoin is just one current example of a working digital currency.

Cool, and worth looking into, could this be true, and could I build a model of this process? And what is a proof of work function?

Clearly, very difficult problems are of no use if you have to solve the difficult problem every time you want to use it as a currency; this would take forever; it would be like mining and minting a silver coin every time you wanted to use one!

No, what is required is that you can check that the coin contains silver! In other words, all that is required is that you are sure that the very difficult problem is solved, and this is where proof of work functions are needed! Instead of solving the whole problem, all that is need is to show to some chosen level of difficulty that the valuable difficult problem has actually been solved.

In short, solving ‘valuable very difficult problems’ (vvdp) is like mining silver in reality. Using coins (made of silver or vvdp) requires knowing the coins contain value; or for digital coins a proof of work function.

I endeavored to model this process by solving my own difficult problem and create value to sell. This would require mining using parallel computation techniques, and tried to calculate 100,000 decimal places of Pi using continued fractions and then sell it to the other lads in the room. Well to cut a long story short I managed to produce pages of digits. And nobody noticed the little error that crept in, so I wont bother to mention it. And still nobody showed interest in buying my currency. Well, that little error (I haven’t mentioned) would have reduced the value of my new currency. And since I hadn’t written the proof of work function yet, I don’t know why they didn’t trust my program, and buy it.

Surely they couldn’t see the little error in all those thousands of digits.

Well, I couldn’t even give it away! and after all that effort too.

Trying to turn this small setback to an advantage; you could say that produced the first fake digital value. Well nobody believed that either. So instead of sulking, I turned my hand to drawing a picture of the amazing scenery around us.

I told you I was looking out the window.

And here is my proof of work

And this time I did manage to produce something with enough value to give away.

For free, its true, but its a start :)

Hurray, success at last.

I had managed to understand how producing digital value works, and maybe learnt something of value along the way!

For more information about bitcoin-mining see, and know you understand the principles, create value on your machine, and sell what you produce! For real money.