10 ms·
Service lets you "certify" a document using the Bitcoin blockchain
- tlo 13y agoArticle about this topic: http://erratasec.blogspot.de/2013/05/bitcoin-is-public-ledger.html http://erratasec.blogspot.de/2013/05/bitcoin-is-public-ledge...
- jd007 13y agoThis is definitely a cool idea, but there could be potential issues if it is to be relied upon for long periods of time. If at any point in the future the hash algorithm used (SHA256 right now it seems) is found to be vulnerable then it could invalidate all past certifications. You don't really even need a full collision attack, a chosen prefix collision attack is enough to completely destroy the system's validity. MD5 is already vulnerable to chosen prefix attacks, maybe in 5 or 10 years SHA256 will be too... Perhaps using a combination of different hash algorithms that we know are secure today to certify a file together would be a potential solution to the problem. It's not perfect, but at least this way all the algorithms used need to be compromised for the certification to break.
- xerophtye 13y agoan application of each once? Btw my crypto is weak, but do answer this. if i apply a hash algorithm on something, it outputs a relatively small number of bytes. Correct me if i am wrong but the strength of the hash lies in the fact that the input space is vastly huge so its difficult to create an input-output mapping for reversing the hash. Now if we use one hash over another, aren't we restricting the input space of the 2nd hash? Wouldn't that make it easier to crack the 2nd hash for this particular usage? And if my above statements are correct then the strength of sch a mechanism only lies in the strength of the first algorithm
- skriticos2 13y agoCollisions are a problem if you want to corrupt data, not if you specifically want a human validate it in a single document. E.g.: I claim that I authored the string "foo bar" with hash "1f2ec52b7743687..". Now you find a collision and go to court arguing: >> Your honor, but "3HSSHog*8FF9 z!!!!ady94765&$^#" also has the same hash! I think the court will still assume that "foo bar" is the correct original, not the garbled collision data you produce. And you still can't deny that the original produces the correct hash.
- beagle3 13y agoThat's not why it would be a problem. The problem is that I can author "foo bar" and "moo bar" constructed to hash the same, and then assert retroactively which one I meant. While collisions are likely to have random binary garbage in them, it may not matter - I am on phone now, but IIRC I have two PDFs on my desktop that have the same MD5, one of which viewed is an airbus pamphlet, the other being a Boeing one. (created by Dan Kaminski, IIRC)
- adamryman 13y agoCan we see them?
- beagle3 13y agoI guess they are on a backup or misremembered - but examples are really easy to find on the net if you want them: http://th.informatik.uni-mannheim.de/people/lucks/HashCollisions/ http://th.informatik.uni-mannheim.de/people/lucks/HashCollis... http://www.win.tue.nl/hashclash/ChosenPrefixCollisions/ http://www.win.tue.nl/hashclash/ChosenPrefixCollisions/ has a multicollision: 12 PDF files with different content and the same MD5 hash.
- eddywebs 13y agonice concept ! apparently sha-1 is vulnerable to collisions (http://eprint.iacr.org/2008/469.pdf http://eprint.iacr.org/2008/469.pdf) how are they handled ?
- jmcqk6 13y agoNow this is fricken awesome. I can imagine all sorts of instances where this is applicable. What about as a replacement for a notary public in some cases? Very nice work, and a genius idea.
- iand 13y agoI was thinking along similar lines today, but geared more towards proof of title.
- lucisferre 13y agoCan anyone eli5 exactly what this accomplishes. What sort of scenario would this work for. I'm assuming some sort of legal purposes.
- chopin 13y agoSomething like this: Your provider stores when you had which IP address. This is used for instance in file sharing processes. At least in Germany it has turned out that this information is unreliable. So you want to log your IP addresses and you want to have a proof of the logs integrity. You could use this service for the purpose. However, I don't like that I need to upload something. I'd prefer generating and sending the hash and get it signed.
- gnerd 13y agoIt's like taking a fingerprint of a file and then storing it in a public and distributed database (so it is out of any single parties control). Basically you can prove something existed at a certain time (since if I take a fingerprint of that thing in the future, it will match the record in the distributed database). If the thing changes, so does the fingerprint. It could be used as a form of "poor mans copyright", where people would send a book manuscript, or whatever, to themselves through registered post and keep the envelope intact so they could use it, if need be, in a court. There could be other uses, you could verify that picture was taken when you said it was etc.
- fjhqjv 13y agoI wrote a haiku to run through a hash function and send to strangers. Every time this document is run through a particular function, it returns: > d15396b27a2b176e6315c9fbbec09e2c2e042e595755902e5ff5eccec1ca634b If I changed a single character of the document, the function would return an entirely different string. This means it's very, very difficult to come up with another document that returns the same string when run through this same function. If I sent my string to a bunch of strangers, they wouldn't know what my haiku is. To find it out, they would have to run through every possible document ever written (and that ever could be written) to hope to return the string. But if someone decided to say they wrote my haiku, I could prove I wrote it first by showing that the document returns the unique string that I sent off to strangers. What this service provides is a way of making it easy for strangers to store and date these strings for me, because they're doing it anyway when they're using Bitcoins.
- gnerd 13y agoThe idea is cool but it might be too early for people to use the blockchain like this as right now BitCoin can support 7 transactions per second. Once that hard limit is lifted, and things like this can scale and support demand, applications like this could be very interesting. One thing though, it says the BTC involved in the transaction is unspendable, isn't that a bad thing? I imagine an idea like this that didn't render any amount of BTC unspendable would be ideal. https://en.bitcoin.it/wiki/Scalability#Current_bottlenecks https://en.bitcoin.it/wiki/Scalability#Current_bottlenecks
- SilasX 13y agoWow, didn't realize that! That's bad news, since the current daily transaction rate (~100k) is within an order of magnitude of the daily limit (~600k = 7 x 3600 x 24). Fortunately, the doubling time is, from eyeballing the chart below, about 6 months, so that allows ~1-2 years for a fix. https://blockchain.info/charts/n-transactions?timespan=30days&showDataPoints=false&daysAverageString=1&show_header=true&scale=1&address= https://blockchain.info/charts/n-transactions?timespan=30day...
- gnerd 13y agoWell I was expecting there would be a significant jump in transaction volume as news spreads, prices rise, more services were offered in BTC and more countries get local exchanges. You also seem to miss that its not the total number of transactions per day you need to worry about, its the transactions per second. There are surely periods of frenzy in the day where we cannot support 7 transactions per second as more economic activity takes place, even if the total transactions for the day is well under 600000. Its not like the transactions are neatly distributed on a flat line throughout the day. There must also be some consideration that each time this is done, the BTC in the transaction is rendered unspendable and so it is taken out of the market. So I guess its not good if something like this could scale on top of BitCoin.
- nwh 13y ago> BitCoin can support 7 transactions per second It doesn't really matter, it's not like they're at all close to that limit. The limit is there to create a market with transaction fees, so it's not just going to be "removed" any time soon.
- Mizza 13y agoCool! I worked on something similar before: https://github.com/Miserlou/CitizenMediaNotary https://github.com/Miserlou/CitizenMediaNotary I've also got an idea related to this which involves a global array of satellites in order to add a geo component to this kind of verification..
- EGreg 13y agoThis would help to certify that a contract was signed at a particular time by both sides, and then included in the blockchain. It would also help certify that a particular person created a document, once again because it was signed by their personal key and included in the blockchain. It basically functions as a certain timestamp.
- machrider 13y agoThis idea is generally called "trusted timestamping": http://en.wikipedia.org/wiki/Trusted_timestamping http://en.wikipedia.org/wiki/Trusted_timestamping One example would be to take a photo of a rental car showing damage at the time you rented it and be able to prove it was taken at that time. Then the rental company cannot later claim you caused the damage. This is a pretty clever use of the blockchain as a publicly-visible and authenticated timestamp. This way, the site's owners do not have to establish themselves as a legal authority on timekeeping in order for this to be a trusted service.
- diminish 13y agoI was developing a similar online notary. My idea is to timestamp open code, docs etc create a prior case database against patent trolls and goliaths.
- AsymetricCom 13y agoNow I just have to trust their hashing algorithm..
- emhs 13y agoHashing is performed locally, probably via crypto.js, so you can verify it, I'd wager.
- nl 13y agoAre there any documented cases where that would help? It seems to me that the real problem is convincing a jury that a prior piece of work is related to a patented piece of work.
- diminish 13y agoyes you might be right, NIST standardized timestamping methods are themselves full of patents. And I believe Jury would accept only those + a certified authority which would want to be testify in front of Jury.
- orenmazor 13y agobrilliant.
- Crito 13y agoIt would be nice if you included some UI for just pasting in a bunch of hashes myself.
- spiritplumber 13y agoTwo thoughts. 1) Will this have legal weight? I know that the whole "prove paternity of an invention by sending a certified letter containing the design through the mail, and not opening it until you need it" thing doesn't very much work, if it goes to court you tend to be told "OK, what you say is true in the physical universe, but you did not go through our blessed channels, so nyah nyah nyah". 2) Anything that makes bitcoins more legitimate / part of the world's infrastructure decreases the chance of bitcoin going away as a system. I think the idea for the bitcoin community is to make the system as a whole "too big to fail" before governments decide that they want to get rid of it.
- nwh 13y ago> Will this have legal weight? I doubt it. If I have to fax something for it to be a legal document, such an antiquated system will ignore any advances made around it.
- spiritplumber 13y agoMaybe it's because progress is faster, but I see a growing divergence between the physical world and the legal world. I've seen some post-Occupy hearings in which police brutality that had been proven beyond a doubt by video from multiple camera angles was deemed to "not count". http://opinionator.blogs.nytimes.com/2010/01/11/the-true-answer-and-the-right-answer/ http://opinionator.blogs.nytimes.com/2010/01/11/the-true-ans...
- bjt 13y agoThe law doesn't pretend that signatures and fax machines are magic. Contracts written on bar napkins can be enforced. Any time you introduce evidence, you have to establish its credibility. The first time a signing system like this is used it's likely to take the court some time to understand, but there's no legal doctrine forbidding it. Source: I am a (not practicing anymore) lawyer.
- deleted 13y ago[deleted]
- taway2012 13y agoCouple questions. 1) AFAIK, bitcoin has "comments" within transactions. Why not embed the checksum as a comment in a transaction between wallets you control? 2) In the approach described here, no coins are being sent with the transaction (right?). Are blockchain participants really accepting NOP transactions involving 0 BTC transfers. Maybe I missed something. 3) As others pointed out, requiring the whole file to be uploaded is a non-starter for anybody savvy enough to be using this service. Users should be able to directly specify the checksum.
- jcoder 13y ago> 3)... "Your document will not be uploaded. The cryptographic digest is calculated client-side."
- rhu86 13y agoThis would be better if the site was served over HTTPS. At the moment anyone could MITM the Javascript to steal the file's contents.
- randartie 13y ago1) It might be just doing that actually. 2) 500000 satoshis, as it says on http://www.proofofexistence.com/developers http://www.proofofexistence.com/developers 3) If you are tech savvy, the api lets you send a checksum through a curl to their endpoint. http://www.proofofexistence.com/developers http://www.proofofexistence.com/developers
- Buge 13y ago2) Those 500000 satoshis are sent to the proofofexistence people and they keep them. In the actual proof transaction only 1 satoshi is sent to each of the proof addresses.
- clarkmoody 13y ago1) Comments are enabled as a service by blockchain.info. For details on how the Genesis Block (and comment by Satoshi) was formed, look at the Bitcoin Wiki[1] 2) Coins are being sent. The Developer page says you must send at least 0.00000001 BTC. Edit: actually 500000 Satoshi. 3) Agree. So does the service. See the Developer Page[2] [1] https://en.bitcoin.it/wiki/Genesis_block https://en.bitcoin.it/wiki/Genesis_block [2] http://www.proofofexistence.com/developers http://www.proofofexistence.com/developers
- martin_ 13y agoA couple of great developers from HackTX a couple of weeks back created something similar during the hackathon there in just 24 hours. https://www.hackerleague.org/hackathons/hacktx/hacks/proveme https://www.hackerleague.org/hackathons/hacktx/hacks/proveme with a demo copy @ http://162.242.216.46/ http://162.242.216.46/
- wyager 13y agoI'm one of the two developers. I got the proof server working again so you can play with it. Try proving data and typing in "testing" (lowercase). It will tell you when we put it in the blockchain. This file should also work: http://s3.amazonaws.com/rapgenius/filepicker%2FvCleswcKTpuRXKptjOPo_kitten.jpg http://s3.amazonaws.com/rapgenius/filepicker%2FvCleswcKTpuRX... It's a little patchy, but it does work! Payments are fake, and don't do anything! So don't pay! I don't know how much our Bitcoin wallet has left in it. I'll try to remember what we've uploaded so you can try it out. Bitcoin/crypto code here: https://github.com/wyager/hacktx-proveme https://github.com/wyager/hacktx-proveme
- richardlblair 13y agoSo, if I could automate this, could I use this to prove in court that logs were created, and not tampered with? Just trying to think of practical uses of this cool project, and it's the first thing that came to mind.
- delinka 13y agoYes. Or that a contract was not created before a certain date. Or, as another poster suggested, that a photo of a damaged rental car was taken before you took possession of the car.
- tghw 13y agoOr that a contract was not created before a certain date. I think you have that one backwards. You can demonstrate a contract did exist at a certain date. There is no proof of non-existence before that date.
- GhotiFish 13y agoyou're right, it can be used to prove that a contract with both signatures existed before a date, not after. So if Alice makes an agreement with Bob, Alice can't turn around and say that the contract was only ratified after Alice failed to meet certain obligations. Then again, digital signatures come with a timestamp, Alice could lie about that timestamp, but it would be obvious to Bob that she did. Fun to think about.
- flashmob 13y agoHow about miner's fee, is that added to the transaction? In the About, they say that they make 2 undependable dust transactions. Would there be any incentive for miners to confirm these transactions and store them in the blockchain? If there's no incentive to confirm the transactions, then the miners might find a way to filter these out of the blockchain. See also dust transactions: http://bitcoin.stackexchange.com/questions/10986/what-is-meant-by-bitcoin-dust http://bitcoin.stackexchange.com/questions/10986/what-is-mea... http://bitcoinfees.com/ http://bitcoinfees.com/
- twakefield 13y agoI wonder if these concepts could be used to change the way land records are maintained and eliminate the need for title insurance [1] in the U.S. I am no expert but the current system doesn't seemed to have changed much in the past century or so. This results in a lucrative business (title insurance) that effectively insures against book keeping mistakes. [1] http://en.wikipedia.org/wiki/Title_insurance http://en.wikipedia.org/wiki/Title_insurance
- dminor 13y agoIf some claim to title is omitted from the public record, how exactly would this guard against it?
- nadaviv 13y agoI also developed a similar project: https://www.btproof.com/ https://www.btproof.com/ https://news.ycombinator.com/item?id=5790382 https://news.ycombinator.com/item?id=5790382 Recent changes to Bitcoin made the method I'm using to timestamp the data on the blockchain somewhat problematic [1], but I'll be working on an update once I release another Bitcoin-related project I'm currently working on (hopefully in the coming days). [1] https://github.com/shesek/btproof/issues/1 https://github.com/shesek/btproof/issues/1
- deepinsand 13y agoCouldn't I also publish the checksum on Twitter? Although it's not decentralized, it's probably equally trusted in the eyes of the legal system.
- xerophtye 13y agoBut that's kinda centralizing it. What if twitter shuts down? What if twitter's DB is compromised? With bitcoins, it kinda makes all this impossible (cryptographically) and making it super decentralized
- resonator 13y agoYes you could, however, this isn't only about the trustworthiness of your claim. More importantly it's about the trustworthiness of the longevity of the data. Twitter can remove a single post or turn off their servers and your prove is gone. That's not so easy for a BitCoin transaction. Once it's added to the blockchain it's there for as long as anyone is running a bitcoin node.
- yonilevy 13y agoI believe you could implement it in such a way that the coins involved are spendable, relying on "Pay to script hash": https://en.bitcoin.it/wiki/BIP_0016 https://en.bitcoin.it/wiki/BIP_0016
- wyager 13y agoMy friend and I did this as well for a hackathon (HackTX) a few days ago! 162.242.216.46 Try proving data and typing in "testing" (lowercase). It will tell you when we put it in the blockchain. This file should also work: http://s3.amazonaws.com/rapgenius/filepicker%2FvCleswcKTpuRXKptjOPo_kitten.jpg http://s3.amazonaws.com/rapgenius/filepicker%2FvCleswcKTpuRX... Here is our bitcoin/crypto stuff. https://github.com/wyager/hacktx-proveme https://github.com/wyager/hacktx-proveme It's not up to my usual quality because we did it in 24 hours with a sleep break! Please don't judge me on this :p
- superuser2 13y agoWould this have any legal standing? Legally valid but insecure will trump secure but inadmissable in nearly. situation where having a certified timestamp is useful.
- rlpb 13y ago"Your document will not be uploaded. The cryptographic digest is calculated client-side." That's great, but I have to trust you there. For a document that really matters, I don't think I would. How about a box that allows me to specify my own SHA256 instead?
- runn1ng 13y agowell... you can save actual files to namecoin blockchain if you try a little. my script that does exactly that (not updated, maybe won't work now) https://github.com/runn1ng/namecoin-files https://github.com/runn1ng/namecoin-files