member
Activity: 61
Merit: 10
What is time stamping and why is it useful?
Time stamping is the process of creating a proof that something (in particular, a digital file) existed at some point in time. This can be very useful in a lot of situations. For instance, to prove authorship of some manuscript, song or other digital work: If you create a time stamp before you publish the work and then someone tries to "steal" it, you can use the time stamp to prove that you had the piece before everyone else. Or, if you rent a flat (could also be a car or something else, it does not really matter), you can take pictures of any damage present and time-stamp it. This allows you to prove later on that you were not the originator of the damage, since it was already present on the date when you moved in.
How is this related to Crowncoin?
Crowncoin creates digital money. Ownership of a particular balance is proved using asymmetric cryptography. In other words, if you own some crowncoins and want to send them to Alice, you write a message saying:
I want to transfer X crowncoins out of my balance Y to Alice.
and sign it with your private key.
Then you broadcast the message to the Crowncoin network, and every participating node can process the transfer if your signature matches the owner of "balance Y". However, a major difficulty in systems like this is double-spending: In addition to your message above, you could also create a message that spends the very same balance to Bob (or even back to yourself!). In this situation, the network needs a way to determine which of the two transactions is the "correct" one. A simple rule to resolve this conflict is to "use the earlier transaction". However, for this to work, one needs a way to determine an absolute order of events on which the network agrees upon.
This is the point where Crowncoin's time-stamping scheme comes in: Roughly speaking, all transactions are grouped into blocks. The blocks themselves form a hash chain, which implies that earlier blocks can not be manipulated without invalidating the whole chain. A particular process, called mining, is then employed to reach consensus about the correct chain. This leads to an absolute order of blocks, which is almost impossible to change afterwards. Since each block contains a real-world time, these blocks can also be interpreted as time stamps of the data contained in them (as well as all previous blocks of the chain).
Crowncoin time stamps
While Crowncoin is, of course, designed to be money, the system can be "hacked" to include time stamps of actual data.. Instead of crafting particular transactions that look like sending money but instead contain data, you can just include your data per design into a crown's value! Since Crowncoin has a blockchain similar to Bitcoin's, the same time-stamp process secures the data afterwards.
However, one can still argue that Bitcoin is the most secure blockchain in existence, and that Bitcoin has a better chance of surviving throughout the coming years than Crowncoin has. (While we believe that both systems will survive and be of great use, we also think that this argument is justified.)
Fortunately, Crowncoin is merge-mined with the Bitcoin blockchain: This means that Bitcoin miners can also mine Crowncoin, without any additional cost. Currently about just a few of all Bitcoin miners makes use of this possibility. The way in which merge-mining works ensures that Crowncoin blocks are, in some sense, regularly included into the Bitcoin blockchain. In other words, even if you use Crowncoin to time-stamp your data, a hash chain will eventually exist that links your data back to Bitcoin itself!
At this point, finally, CrownStamp comes in: It allows you to explicitly highlight and extract this link. This makes your time stamp independent of the Crowncoin blockchain, so that your proof can be verified just against the Bitcoin alone.
Crowncoin is with Namecoin the only "altcoin" having merged-mining and namestamping function implemented. We can call Crowncoin merged-mined sidechain for Bitcoin.
Big thanks to @domob who implemented merged-mining, time-stamping and name-stamping features into the Crowncoin core. Thanks!
In Crown we trust!