How Can I Send You Your Birthday Present, and Know That You Won’t Open it until your Birthday?

How can we properly secure things? Well, we sure make the effort so large to crack them, that no-one could afford the effort to break it…

How Can I Send You Your Birthday Present, and Know That You Won’t Open it until your Birthday?

How can we properly secure things? Well, we sure make the effort so large to crack them, that no-one could afford the effort to break it. If is takes me a little bit of work to change the clock on a computer, it is probably worth it to me to do it, if there is a good reward. But if I require to purchase all the computing power in the world to change something, it is probably outwith my budget. In a blockchain world, work load becomes a key test of the security of systems.

So let’s say that I do not trust anything, and especially not you! I don’t even trust the clock on a computer or on a network (as someone may change it).

How would I send you your birthday present now, even though your birthday is three days off? I know that you will cheat and change the clock on your computer and reveal the present, so I need to stop that. And you are also sneaky enough to change the network time server clock. If I write a program to reveal an encryption key based on the time on the system, you are likely to open your present early.

I have a plan which will cost you a great deal of effort to break it.

Now I need an encrypted box with your present in in, and then I create a black box which has the encryption key in it. I now want to make sure it will take you three days before you open up the black box and reveal the key. We can now use the Bitcoin blockchain to determine the number of blocks that have passed, and will only reveal the key once it reaches a given value.

If I want you to have your birthday present in three days time, the black box will check if a number of blocks have been created. For three days, and assuming that a block is created every 10 minutes (which is typical on the Bitcoin network), then we would count 432 blocks (6x24x3). On a count value of 432, the encryption key would be revealed to you, and you can open your present. The following illustrates the process:

It would thus take you a great deal of computing power if you wanted to open the box earlier, and you would have to speed up the block creation and take over most of the Bitcoin network. As we need the electrical power supply of Ireland to run the mining process, it will cost you a great deal of money to do this. And so you’ll have to wait for your present.

Conclusions

The digital world we have created is almost completely untrustworthy, as things can be changed without much effort (work). In a blockchain world the amount of work required to change sometime can be determined, and if it requires too much work, it is unlikely to be worthwhile. In this example we have created a timed event, and which would cost too much effort to change the timings. If you are interested, there’s some great work related to homomorphic encryption which brings this example alive, but I’ll reveal that in another article.

If this article hasn’t shown you why blockchain will change our digital work, you perhaps need to read more, and understand the true transformation that consensus system create.

If you want to see some more traditional proof-of-work schemes for time-based encryption, view here: