I recently learned that Bitcoin's main component: the `Proof of Work', had it's beginnings in a cool idea of Adam Back called hashcash for preventing spam.
One nice thing about hashcash is that it gives a simple way to explain the PoW concept through puzzles:
The idea is to attach a mathematical puzzle to each email someone wants to send such that:
-The puzzle will be different for each email
-Each puzzle will take a modern computer about a second to solve.
- The recipient will only accept an email if a legitimate answer to the puzzle is included.
- Checking if an answer is legitimate will only take a computer a microsecond.
Why is this useful?
The idea is that for a legitimate user spending a second of computer time is fine for each mail
he\she desires to send.
But for someone wanting to send a spam message to millions of addresses, looking for the one-in-a-million'th person who will aid him in exchange for part of his fortune that the dictator of some African country is currently confiscating, spending a second for each mail will be a big problem.
So this is a mechanism to prove that the person sending you a mail cares enough about specifically you getting it to let his computer work on sending it for a whole second! Talk about sacrifice!
How do these puzzles look like?
What you need to construct the puzzles is something called a psuedurandom function.
What this means is this is some function h such that when you give it an input z,
the output h(z) is a sequence of bits that is completely unpredictable for all practical purposes.
Now, say I want to send an email to firstname.lastname@here.com on the date 1.1.15.
We will think of this address and date as some string of symbols x.
So
x= "1.1.15firstname.lastname@here.com".
Now if the person I am sending to is using hashcash, for the mail to be accepted I have to attach a y
such that the hash of x and y starts with 20 zeros.
That is, h(x,y) is a string beginning with 20 zeros.
Since h is pseudorandom, the only way to solve this is to try *alot* of y's, 2^20 on average,
until we find a good one.
.The functions we use as h currently in the world are called SHA-1 and SHA-2.
Personal reflections, random thoughts, mostly but not exclusively and unintentionally related to Buddhism and the spiritual path. More specifically, a lot of what is written here is influenced by my practice of Vipassana meditation as taught by S.N. Goenka.
Subscribe to:
Post Comments (Atom)
Blog Archive
-
▼
2015
(28)
-
▼
January
(8)
- A fresh new morning it was.. supposedly.. but seei...
- The only way to cope with life being disappointing...
- The illusion, and the secret
- The line between natural and unnatural
- Putting for a moment aside what your Mom told you...
- Who am I?
- The difference between math and computer programming
- Bitcoin was born as a spam filter
-
▼
January
(8)
No comments:
Post a Comment