Bitcoin Forum
December 15, 2024, 02:26:54 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Datecoin - a method to prove ownership of prior art via block chains  (Read 1651 times)
digibo (OP)
Newbie
*
Offline Offline

Activity: 23
Merit: 0


View Profile
June 30, 2011, 06:39:47 AM
 #1

Let's say I've written a blog post, and I've dated my hypothetical blog post to August 21, 2008. How can anyone be certain that I actually wrote it at that date and time?

If I store the raw message and the raw date in a plain old text file, no one may know for sure.

If I sign the message and the date with my private key, it's not any more certain, since I could have signed an identical counterfeit message just yesterday.

Now, if we had a block chain, which is essentially a peer to peer synchronized clock, I could prove that I supplied the signature of a given piece of text (signed with my private key) to the network at a given date and time (plus or minus ten minutes). The signature of the text would reside in the chain and the proof of work would ensure it happened at one (or more) points in the chain. The earliest point for a given text would be the date of origin.

Why would such a system be valuable? I think it's obvious, but just to spell it out:

Patents are a burden on the development of software (in my opinion) and patents are usually invalidated by showing prior art. However, prior art may also be useful in enforcing patents if you own both the patent and the prior art. (IANAL)

Another use might be in preventing fraud or enforcing contracts.

Essentially, this would be a distributed notary bearing witness to the date of digital document creation.

One downside of the genesis of such a block chain might be everyone scrambling (or patiently waiting) to submit any pre-existing idea as their own. I've not thought of a way to prevent this attack and it may make such a system infeasible due to false ownership of old documents popping up at any time. However, you may be able to tweak the incentives, similar to what Namecoin has done for early adopters.

Also, such a system may incentivize the physical (or digital) pillaging of private keys. I think this may be unlikely given only the signatures of texts would be stored in the block chain rather than the texts themselves, but you never know.

Also, what would stop people (or bots) from generating random texts and signing them in the chain as a sort of denial of service attack to strain the system?

What do you think?
Maged
Legendary
*
Offline Offline

Activity: 1204
Merit: 1015


View Profile
June 30, 2011, 07:22:30 AM
 #2

You might find this thread interesting, if you haven't read it already:
http://forum.bitcoin.org/index.php?topic=7219.0

ribuck
Donator
Hero Member
*
Offline Offline

Activity: 826
Merit: 1060


View Profile
June 30, 2011, 12:27:20 PM
 #3

Technically it's doable, but the need just isn't there.

There are already notary services to record prior art. But for most purposes (including trademark and patent disputes) the Wayback Machine works just fine.
bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
June 30, 2011, 01:00:32 PM
 #4

grondilu a while back made something like this. What is does is hash a file into a unique Bitcoin address. If you send a very tiny amount to that address it will become part of the blockchain but the money can't ever be spent again. This can be used to prove a file has existed at least since then because a file having the same hash is VERY VERY unlikely...


Code:
#!/bin/bash
#
# Timestamping program
# Returns a valid bitcoin address made from stdin
# To timestamp, just send tiny BTC to this address
#
# Requires bc, openssl, xxd
#

base58=({1..9} {A..H} {J..N} {P..Z} {a..k} {m..z})

EncodeBase58() {
    # 58 =0x3A
    bc <<<"ibase=16; n=${1^^}; while(n>0) { n%3A ; n/=3A }" |
    tac |
    while read n
    do echo -n ${base58[n]}
    done
}

checksum() {
    xxd -p -r <<<"$1" |
    openssl dgst -sha256 -binary |
    openssl dgst -sha256 -hex |
    cut -d\  -f2 |
    sed -r "s/^((..){4}).*/\1/"
}

Hash160() {
    openssl dgst -sha256 -binary |
    openssl dgst -rmd160 -hex |
    cut -d\  -f2
}

Hash160ToAddress() {
    printf %34s "$(EncodeBase58 "00$1$(checksum "00$1")")" |
    sed "s/ /1/g"
}

Hash160ToAddress $(Hash160)

*Next Draw Feb 1*  BitLotto: monthly raffle (0.25 BTC per ticket) Completely transparent and impossible to manipulate who wins. TOR
TOR2WEB
Donations to: 1JQdiQsjhV2uJ4Y8HFtdqteJsZhv835a8J are appreciated.
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!