Bitcoin Forum
May 04, 2024, 03:29:58 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How to timestamp documents without burning money  (Read 4072 times)
oleganza (OP)
Full Member
***
Offline Offline

Activity: 200
Merit: 104


Software design and user experience.


View Profile WWW
June 05, 2013, 07:21:02 PM
 #1

Today I've timestamped a git commit ID of my project using brainwallet.org without any effort.

Here's how to do it:
http://blog.oleganza.com/post/52237596486/today-ive-timestamped-my-secret-source-code-with

TLDR:

My commit: e09d665d7ffd70d5d6b672305e744916c3c827e9

To verify the timestamp, do the following:

1. Go to brainwallet.org
2. Select “Secret Exponent” and paste there commit ID e09d665…
3. See the resulting address: 1AAX6PJEm2FLXT6RoRAUzNFmFHnueFGGs1.
4. Go to blockchain.info and find this address.
5. Select the very first transaction: 687c24d…
6. Check that transaction is included in block 239851. Timestamp is 2013-06-05 07:46:41.

I will release the source when it's ready to be tested, some time later this year. Meanwhile I make sure that no one will claim that I picked someone's idea if they happen to come up with the same idea as me later, but before I release my app.

Bitcoin analytics: blog.oleganza.com / 1TipsuQ7CSqfQsjA9KU5jarSB1AnrVLLo
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714793398
Hero Member
*
Offline Offline

Posts: 1714793398

View Profile Personal Message (Offline)

Ignore
1714793398
Reply with quote  #2

1714793398
Report to moderator
1714793398
Hero Member
*
Offline Offline

Posts: 1714793398

View Profile Personal Message (Offline)

Ignore
1714793398
Reply with quote  #2

1714793398
Report to moderator
1714793398
Hero Member
*
Offline Offline

Posts: 1714793398

View Profile Personal Message (Offline)

Ignore
1714793398
Reply with quote  #2

1714793398
Report to moderator
piotr_n
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
June 05, 2013, 08:27:27 PM
 #2

it's cool. cannot imagine using it for my real life, but it's cool :-)

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1006


View Profile
June 05, 2013, 08:43:57 PM
 #3

Why use the exponent and not just the hash as passphrase?

Anyways, the resulting address is not usable for anything besides transferiing something there once and transferring it off again immediately, then forgetting it. Since commit-hashes are public information, these are far too insecure to use the resulting private key for anything else than timestamping.

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
oleganza (OP)
Full Member
***
Offline Offline

Activity: 200
Merit: 104


Software design and user experience.


View Profile WWW
June 06, 2013, 06:02:11 AM
 #4

Why use the exponent and not just the hash as passphrase?

Anyways, the resulting address is not usable for anything besides transferiing something there once and transferring it off again immediately, then forgetting it. Since commit-hashes are public information, these are far too insecure to use the resulting private key for anything else than timestamping.

How is that a problem?

Bitcoin analytics: blog.oleganza.com / 1TipsuQ7CSqfQsjA9KU5jarSB1AnrVLLo
domob
Legendary
*
Offline Offline

Activity: 1135
Merit: 1161


View Profile WWW
June 06, 2013, 06:47:09 AM
 #5

Have you also thought about using namecoin for timestamping?  I believe that's better suited than bitcoin.  Bitcoin is for payments, and every "other" use is in my opinion unnecessary spam/bloat.  Namecoin on the other hand is precisely designed for storing arbitrary values.  Register a name, and every time you want to stamp something, name_update its value to your hash.  This costs a tiny amount of NMC in transaction fees, but not much.

Well, just my suggestion - this is what I will do in the future. Wink

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
drawingthesun
Legendary
*
Offline Offline

Activity: 1176
Merit: 1015


View Profile
June 06, 2013, 07:27:07 AM
 #6

Have you also thought about using namecoin for timestamping?  I believe that's better suited than bitcoin.  Bitcoin is for payments, and every "other" use is in my opinion unnecessary spam/bloat.  Namecoin on the other hand is precisely designed for storing arbitrary values.  Register a name, and every time you want to stamp something, name_update its value to your hash.  This costs a tiny amount of NMC in transaction fees, but not much.

Well, just my suggestion - this is what I will do in the future. Wink

Its true that Bitcoin is not designed for this purpose, however if I wanted to timestamp or hash a time sensitive piece of data I would always use Bitcoin. The main reason is that at the moment the Bitcoin blockchain is the most secure timestamp system on earth and the ability for a bad actor to take over the network and modify or invalidate the data is much more difficult.

Because so many people have an economic incentive to keep the Bitcoin network running correctly my timestamp is much more immortalized than if that timestamp or hash was in the namecoin chain. Its more likely that the namecoin chain will be attacked and destroyed vs Bitcoin.

jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1233


May Bitcoin be touched by his Noodly Appendage


View Profile
June 06, 2013, 10:49:31 AM
 #7

Have you also thought about using namecoin for timestamping?  I believe that's better suited than bitcoin.  Bitcoin is for payments, and every "other" use is in my opinion unnecessary spam/bloat.  Namecoin on the other hand is precisely designed for storing arbitrary values.  Register a name, and every time you want to stamp something, name_update its value to your hash.  This costs a tiny amount of NMC in transaction fees, but not much.

Well, just my suggestion - this is what I will do in the future. Wink

Its true that Bitcoin is not designed for this purpose, however if I wanted to timestamp or hash a time sensitive piece of data I would always use Bitcoin. The main reason is that at the moment the Bitcoin blockchain is the most secure timestamp system on earth and the ability for a bad actor to take over the network and modify or invalidate the data is much more difficult.

Because so many people have an economic incentive to keep the Bitcoin network running correctly my timestamp is much more immortalized than if that timestamp or hash was in the namecoin chain. Its more likely that the namecoin chain will be attacked and destroyed vs Bitcoin.
So you don't want to use Namecoin because not enough people use it?
Also, if Namecoin has some block checkpoints then it's truely secure (I don't know if it's the case)

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
b!z
Legendary
*
Offline Offline

Activity: 1582
Merit: 1010



View Profile
June 06, 2013, 11:14:52 AM
 #8

Have you also thought about using namecoin for timestamping?  I believe that's better suited than bitcoin.  Bitcoin is for payments, and every "other" use is in my opinion unnecessary spam/bloat.  Namecoin on the other hand is precisely designed for storing arbitrary values.  Register a name, and every time you want to stamp something, name_update its value to your hash.  This costs a tiny amount of NMC in transaction fees, but not much.

Well, just my suggestion - this is what I will do in the future. Wink

I agree. That's what Namecoin can be used for.
oleganza (OP)
Full Member
***
Offline Offline

Activity: 200
Merit: 104


Software design and user experience.


View Profile WWW
June 06, 2013, 01:07:15 PM
 #9

Have you also thought about using namecoin for timestamping?  I believe that's better suited than bitcoin.  Bitcoin is for payments, and every "other" use is in my opinion unnecessary spam/bloat.

In the long run there will be only one blockchain and individual opinions of people do not matter (like yours). Only economical incentives matter. Here are my arguments:

1. Miners will devote electricity and time to the most valuable line of work. If one chain is even 1% more profitable than another, all resources will be thrown there if possible. Today we have some guys with GPUs and cheap electricity, so they mine some litecoins during speculative game. But Bitcoin will continue growing while all altchains will remain hobbies or simply die.

2. Users will always trust the most powerful chain. Be it for timestamping monetary transactions or any other transactions.

3. Whoever building a specialized altchain will need to make it a currency in itself to make incentive for miners to mine it. Think about this to realize that if Satoshi wanted to build a thing to timestamp any document, it *would be used as a commodity anyway* (or not take off). So he simply designed and marketed it to be more friendly for early adopters: as a currency.

4. Opinions on the "right" or "wrong" use of blockchain are as irrelevant as opinions on who can pay for what with BTC. At best people will learn that some transaction was used in shop X or fancy protocol Y only *after* the fact. Before, everyone sees normal transaction as any others.

5. Given inability to judge (see #4), no one really cares what transactions are doing. Miners simply prioritise txs based on simple heuristics to maximise their profits (physic and monetary) and that's it.

TL;DR: Bitcoin will be the only blockchain, others will be useless. If you want to build some interesting stuff, do it on top of blockchain. To lower your costs, keep data outside the chain and only insert hash references into it.





Bitcoin analytics: blog.oleganza.com / 1TipsuQ7CSqfQsjA9KU5jarSB1AnrVLLo
prezbo
Sr. Member
****
Offline Offline

Activity: 430
Merit: 250


View Profile
June 06, 2013, 02:21:49 PM
Last edit: June 06, 2013, 03:22:06 PM by prezbo
 #10

There's also commitcoin. If anyone's interested in the implementation pm me (I don't really want it that public Smiley ). The principle is similar to yours but a tad more elegant - basically, the secret (commitment) can be self-revealing using two separate transactions.

The simplest idea in my opinion is still just to pay the transaction fee and send 0 btc to btcaddress(commitment).
jdbtracker
Hero Member
*****
Offline Offline

Activity: 727
Merit: 500


Minimum Effort/Maximum effect


View Profile
June 06, 2013, 03:25:40 PM
Last edit: June 06, 2013, 03:36:07 PM by jdbtracker
 #11

Yup Satoshi was awefully sneaky, What is more powerful than money in our world today?

this is a great idea OP, it serves as a global time-stamp for patents and legal documents, it is free and viewable by millions of people.

right now Bitcoin is the best network, but it is also a sound design, creating a double time stamp attack is insanely hard to do with several years of data built up, even just a few minutes would be hard. but you don't need that level of security, just do a pull request get the source code from github and ask for help on making the necessary modifications to the source code so that it is suitable for patent and legal applications. After all the security of the blockchain is secure the moment it is in the chain, all future patent trolls will have a hard time refuting the past.

and I agree legal documents suck, can you believe someone made me sign a contract and then did modifications to the contract later without letting me know, I didn't approve of those modifications, your idea is gold.

so I'll give you a few pointers on what you will need to do this right for global adoption.

the currency amount needs to be transferrable to other currencies, so you'll need to extend the limit from 21 million to 2.1 billion with a block reward every 5 seconds of 420 coins. I figure 5 seconds will be enough time to connect to thousands of nodes around the world and still give the chain the time stamp necessary to prevent someone from stealing your idea via a file download and time stamp. the 420 figure is just to prevent people from using the altcoin as currency instead of a legal document ledger while the currency builds up to it's total 2.1 billion to be distributed over the same time span of  140 years. there will be days when the ledger has blocks no bigger than 1kb but sometimes there will be legal files in excess of 10mb or more if someone time stamps a book into the public ledger. be aware even at a 1kb limit that is 17mb per day, so further modifications will be needed to prevent spammers from double submitting a carbon copy into the ledger and pruning of empty blocks to save space.


also you will have to start this system on your own and have your computer connected 24 hours a day to maintain the integrity of the original ledger until you feel safe to let the blockchain survive on it's own. The moment you disconnect with your copy of the ledger while it is still in it's infancy means that there will be ASICs capable of corrupting and distributing bunk copies of the ledger, depends on the adoption rate. Take satoshis example into account two years of non stop connection time.

If you think my efforts are worth something; I'll keep on keeping on.
I don't believe in IQ, only in Determination.
oleganza (OP)
Full Member
***
Offline Offline

Activity: 200
Merit: 104


Software design and user experience.


View Profile WWW
June 06, 2013, 07:10:03 PM
 #12

the currency amount needs to be transferrable to other currencies, so you'll need to extend the limit from 21 million to 2.1 billion with a block reward every 5 seconds of 420 coins. I figure 5 seconds will be enough time to connect to thousands of nodes around the world and still give the chain the time stamp necessary to prevent someone from stealing your idea via a file download and time stamp. the 420 figure is just to prevent people from using the altcoin as currency instead of a legal document ledger while the currency builds up to it's total 2.1 billion to be distributed over the same time span of  140 years. there will be days when the ledger has blocks no bigger than 1kb but sometimes there will be legal files in excess of 10mb or more if someone time stamps a book into the public ledger. be aware even at a 1kb limit that is 17mb per day, so further modifications will be needed to prevent spammers from double submitting a carbon copy into the ledger and pruning of empty blocks to save space.


also you will have to start this system on your own and have your computer connected 24 hours a day to maintain the integrity of the original ledger until you feel safe to let the blockchain survive on it's own. The moment you disconnect with your copy of the ledger while it is still in it's infancy means that there will be ASICs capable of corrupting and distributing bunk copies of the ledger, depends on the adoption rate. Take satoshis example into account two years of non stop connection time.

Your comment confused me. Let me clear up some of my ideas.

1. Any talk about differences in *amount of coins* is nonsense. "21M" is not a measure of "amount", it is a measure of "resolution" (divisibility). Total possible bitcoin supply is divisible to 2100 trillion units. And still anyone can divide it further for their purposes. Or the whole network can switch to a bigger format to fit in smaller subunits. Since 2100 trillion is so huge, it does not really make any difference if it is 210000 trillion or 99 trillion. In practice it does not matter to anyone. You can always rename 1.56 BTC into 156 mycoins and claim that you have 100 times more mycoins.

2. There will be only one blockchain. It is economically stupid to people to throw meaningful amount of electricity to altchain and not in main chain. See my previous comment above for more details. Anyone can start their altchain, but it will never be useful comparing to any protocol built on top of existing Bitcoin main chain.

3. I am neither advocating nor advocating against storing actual documents in the blockchain. Blockchain is expensive and we have tons of data. If your document is small enough, or you are willing to pay for storing all of it in blockchain — please go on. In many cases it would be cheaper to store megabytes of data somewhere externally and keep in blockchain only 256-bit references to this data.

4. About contracts. I see it this way: people sign contracts, store them somewhere, replicate among several computers. They may make them public, or keep it secretly with trusted partners, does not matter. They will put only SHA256 fingerprints into blockchain to prove to any dispute resolution organization that those contracts were created on particular dates and in particular order.


Bitcoin analytics: blog.oleganza.com / 1TipsuQ7CSqfQsjA9KU5jarSB1AnrVLLo
domob
Legendary
*
Offline Offline

Activity: 1135
Merit: 1161


View Profile WWW
June 06, 2013, 07:37:10 PM
 #13

Have you also thought about using namecoin for timestamping?  I believe that's better suited than bitcoin.  Bitcoin is for payments, and every "other" use is in my opinion unnecessary spam/bloat.

In the long run there will be only one blockchain and individual opinions of people do not matter (like yours). Only economical incentives matter. Here are my arguments:

1. Miners will devote electricity and time to the most valuable line of work. If one chain is even 1% more profitable than another, all resources will be thrown there if possible. Today we have some guys with GPUs and cheap electricity, so they mine some litecoins during speculative game. But Bitcoin will continue growing while all altchains will remain hobbies or simply die.

2. Users will always trust the most powerful chain. Be it for timestamping monetary transactions or any other transactions.

You know about merge-mining, right?  That allows one to mine bitcoins with one's electricity cost, and at the same time without (or possibly with negligible) overhead also get namecoins as bonus reward.  That's the reason why namecoin has a really high network hash rate; the current difficulty is about 1/5 of that of bitcoin.  Thus of course you are right that bitcoin offers a little more security - but I really can't think of any application where that would matter.  And I also believe that multiple chains can and will be sustained, especially with merged mining and with the additional useful features that namecoin provides which bitcoin can not.  Those two chains coexisting for a long time is in my opinion much more likely than for instance bitcoin and litecoin.

Regarding your "economic incentive":  The incentive is on the side of merge miners, because that increases the profitability by additional 5% or 10%, I think (but I don't have the exact numbers ready).  Thus this is in fact an argument in favour of bitcoin and namecoin both being mined.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
oleganza (OP)
Full Member
***
Offline Offline

Activity: 200
Merit: 104


Software design and user experience.


View Profile WWW
June 06, 2013, 09:35:52 PM
 #14


1. Miners will devote electricity and time to the most valuable line of work. If one chain is even 1% more profitable than another, all resources will be thrown there if possible. Today we have some guys with GPUs and cheap electricity, so they mine some litecoins during speculative game. But Bitcoin will continue growing while all altchains will remain hobbies or simply die.

2. Users will always trust the most powerful chain. Be it for timestamping monetary transactions or any other transactions.

You know about merge-mining, right?  That allows one to mine bitcoins with one's electricity cost, and at the same time without (or possibly with negligible) overhead also get namecoins as bonus reward. 

Merged mining is just a fancy name for "a protocol on top of main chain". I can equally start advertising my timestamps entered in main chain as "blocks" on "altchain" that is "merge-mined" with Bitcoin. Except that my chain would be much less costly, but produce the same functionality.

It's the same thing as money itself. Some people do not understand that market players tend to come up with the single, most liquid, most cheaply stored and transported money. Gold had silver only because gold was never easy to divide in small everyday units. No one needs "local" currency or "national" currency. IMF talks about myriads of national currencies as natural state of affairs while it's economically irrational for people to pay for currency conversion risks. Everyone on a global market wants single common unit of exchange, be it USD, gold, Bitcoins or whatever. Different moneys exist either for objective limiting reasons like gold's weight or for political reasons of controls and threats.

Same way economically everyone will mine only one chain. And 0.01% of hobbyist will do whatever they want to do, but they don't matter on global scale. So forget about altchains and build on top of main one.


Bitcoin analytics: blog.oleganza.com / 1TipsuQ7CSqfQsjA9KU5jarSB1AnrVLLo
jdbtracker
Hero Member
*****
Offline Offline

Activity: 727
Merit: 500


Minimum Effort/Maximum effect


View Profile
June 06, 2013, 10:02:26 PM
 #15

I figure the multiple coins can be made for reward purposes, a sort of complementary coins accepted for their benefit to society, accepted by those that believe in the coins cause.

the reason I chose 2.1 billion is exactly about the resolution. with all the alt-coins out there, I figured it would be necessary to be able to exchange between coins with worths of over 1 million per coin vs those with single digit coin worths.

but yeah the Bitcoin chain is secure for that, but i thought that if two chains were created, one that keeps the ledgers record and another with public and private documents that the ledger references, built in a distributed manner to have that data available for everyone to see. This would cause an evolutionary pressure for contracts to be built better with millions of examples to source from for any single individual or organization to asses.  For the public good you know plus an encryption system so private contracts can only be seen by authorized parties.

If you think my efforts are worth something; I'll keep on keeping on.
I don't believe in IQ, only in Determination.
domob
Legendary
*
Offline Offline

Activity: 1135
Merit: 1161


View Profile WWW
June 07, 2013, 05:48:29 AM
 #16


1. Miners will devote electricity and time to the most valuable line of work. If one chain is even 1% more profitable than another, all resources will be thrown there if possible. Today we have some guys with GPUs and cheap electricity, so they mine some litecoins during speculative game. But Bitcoin will continue growing while all altchains will remain hobbies or simply die.

2. Users will always trust the most powerful chain. Be it for timestamping monetary transactions or any other transactions.

You know about merge-mining, right?  That allows one to mine bitcoins with one's electricity cost, and at the same time without (or possibly with negligible) overhead also get namecoins as bonus reward. 

Merged mining is just a fancy name for "a protocol on top of main chain". I can equally start advertising my timestamps entered in main chain as "blocks" on "altchain" that is "merge-mined" with Bitcoin. Except that my chain would be much less costly, but produce the same functionality.

Of course, merge mining builds namecoin "on top" of bitcoin; and as you say, that is a good thing because it increases the security.  However I still believe that there is a point in namecoin as a separate blockchain (although if you like built "on top" of bitcoin by merge mining).  I do not know the technical details of how merge mining works on the protocol level, but I think it won't affect the bitcoin protocol but instead only the namecoin one?  If so, then indeed namecoins serve the purpose of providing additional features (including easy ability to timestamp as well as a decentralised DNS) without diverting the bitcoin blockchain from its main purpose, and also without bloating the bitcoin blockchain.  Even if one does not care about that, at least when the blocksize limit will be reached and free / low-fee transactions no longer feasible in bitcoin, it will even make economical sense to do non-payment transactions in an alt-chain which is secured by merge mining but not yet out of cheap block space.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!