Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I share your detest of the "blockchain", but there are some real world non-currency usage.

Consider a decentralized timestamping service for example. That's useful if you want to anonymously disclose a critical bug, but want the ability to prove you had knowledge beforehand (and thereby proving you were the one who disclosed it).



Timestamp proofs are interesting but a little hard to find a solid use for in that context. Most people are very happy trusting a post on a mailing list, or even the standard at this point for security researchers is a hash of your disclosure on twitter or IRC. It almost never needs to be cryptographic proof, only social.

They also have a significant issue in that they are non-exclusive. Imagine I timestamp the following messages.

    for i in {1..999999}:
     print "on the 21st of Feb 2022 the Bitcoin price will be exactly $i"
By revealing only a single proof of the possible million, I can prove once and for all that I have complete foresight, and you can't ever prove that I didn't make that prediction. Lots of these things have not entirely obvious issues like that. posting a million hashes on Twitter might raise some eyebrows, posting a million lines on IRC will get me K-lined. I have actually timestamped all of those messages though.


It's not foolproof of course, and it might be overkill for many, but consider this example:

You've found one of the most catastrophic bugs in Bitcoin ever, and you know that the developers are extremely skeptical of anything. The community is also divided and full of toxic people who will try to discredit anything you do.

Now, will you be satisfied with just posting a hash on IRC or on the mailing list? Are you sure people won't distrust you from posting on "the wrong IRC channel"?

I would assume you'll want as solid a proof as you can construct. Therefore you'll timestamp your message on the blockchain in addition to posting on social media somewhere.

And exactly this is what awemany did when he discovered CVE-2018–17144, one of the most catastrophic bugs in Bitcoin ever:

https://medium.com/@awemany/600-microseconds-b70f87b0b2a6


How about this? Write your bug report. Sign the bug report with your private key. Anonymously publish the bug report, the signature and the public key. Later when required, prove that you wrote the bug report by using your private key to sign a new message or a challenge message sent by any challenger.


This could work, as long as you trust the ones you file your bug report to. This isn't always the case for white hat hackers who interact with big corporations for example. You also don't always want to disclose the actual vulnerability beforehand to everyone either, to give them time to fix them.

If these things don't hold then you still need to find a trusted way to publish your hash or encrypted message so you can get your timestamp.


The idea is to replace social proof (that the timestamps are correct wherever it is published) with cryptographic proof, but I commented below on some of the pitfalls of doing so.


I provided a cryptographic proof that does not require blockchain.


No, yours relies on social proof (the post being public somewhere) as the timestamp. Nothing about what you described is different from just posting a hash of the prediction beforehand.


Do you even need a blockchain for that? Can't you just encrypt a message detailing your discovery, and publish the result? Then at a later date, you can prove it was you by decrypting the message.


And how would you prove your encrypted message existed beforehand, and that you didn't just backdate the message after the discovery has been made public?

For that you need to publish your encrypted message that's somehow connected with a timestamp. If you can you might be able to get it included in a journal or a newspaper (which is what Robert Hook did in 1660), or use a trusted third party that verifies your timestamp.

Embedding a hash of your message in the blockchain is another way, which is arguably easier, more secure and trustless.


As others have said, you could just tweet it (or a hash of it). Or post a video on youtube, or email it to a mailing list, or whatever. There's countless ways to publish information with a timestamp that's very difficult to fake.


Those are "easily" manipulated if the issue is important enough to someone powerful enough. Sure, you could carpet-bomb and publish your hash on many different platforms under jurisdictions with competing interests, but at this point you've just invented a poor man's blockchains.

Blockchains are the systematization and democratization of that strategy. And those points are what technology is all about.

__

Sure, to write our next shared article we can just have our Word files and call-up each other and exchange paragraphs over WhatsApp. Yet for some reason some people nerd out on unintuitive over-engineered CRDTs. That can't be useful to anyone, can it?


> Those are "easily" manipulated if the issue is important enough to someone powerful enough

Perhaps in theory, but in practice it's not really true, especially with regard to the nature of information that is worthwhile to censor; the kind of situation where the powers-that-be would hack twitter to manipulate the timestamp of a hash string are very far-fetched.


"Very difficult" is context dependent. It might be difficult for you and me to backdate a tweet, but easy for a Twitter employee or a hacker with a 0-day exploit.

You also introduce the risk of your message getting deleted, for whatever reason.

And these ways may also break your anonymity or leak your exploit if you're not careful.

A blockchain backed timestamp is simply better.


Society has plenty of trust functions. If you can’t rely on them, it’s not unreasonable to think that your blockchain evidence won’t help you either.

Suppose you post your finding generally, then I see it, and post it to the blockchain timestamped as my own. Then you say, “hey, I was first”. The blockchain is bad here because it’s incomplete.

If we mandate that only the blockchain can determine truth, then, if I really want to own that claim, I can hit you with a wrench until I have the private key, and now I am the owner of truth.

Trustless societies suck. We should be trying to increase social trust.


Who would "mine" on that chain, or the equivalent? How could something like that defend against 51% attacks?


You would embed the hash in another cryptocurrency, like in Bitcoin.

Here's a simple walkthrough of how to do it in the Bitcoin Cash blockchain for instance:

https://whycryptocurrencies.com/timestamping_service.html


So it's an extension of the currency usage, not a blockchain application on its own.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: