Hacker News new | past | comments | ask | show | jobs | submit login

Back in 2008 I invented an algorithm for tree structures where the definition of the hash of any node, was "the hash of hashes of all its immediate children". I had invented a way to do 'tree node comparisons' where any time two tree nodes on a tree had the same 'hash' i knew the content (recursively deep into the tree) of those nodes was identical. I never went forward on that algorithm, because i knew it meant each time a tree node was modified, the hash of all it's parents (i.e. path to root), had to be recalculate. But I had explained it to several developers who were all amazed by it. It now realize I had invented blockchain. I am pretty sure i'm not the first one to realize hashing actual hashes (in a recursive or chained way) is a powerful concept. I may add this to my current project SubNode (sbnode.com), and I could pivot that app into a blockchain technology!



I think Merkle got there first, in about 1979 or so.

https://en.m.wikipedia.org/wiki/Merkle_tree


It's a nice strike against software patents though, probably every programmer interested in data structures goes through a whole series of these independent inventions.

To award a patent to someone just because they thought of it first is ridiculous.


I'm no lawyer, but they really need to outlaw patents on 'general purpose' technologies. Adam Carolla famously got sued for owning a podcast company, when someone claimed to have a patent on the entire concept of "downloadable audio". I think there should be a one year jail term for anyone who files a suit about something that ends up being determined "general purpose" technology. Would end the nonsense overnight.


Very interesting, thanks. I had never heard of Merkle Tree. Since a linked list is merely a special case of a 'tree structure' (i.e. one where there is always only one child), we can consider Merkle to be the true 'inventor' of blockchain. However, really the concept is so simple and obvious that I wouldn't be surprised if Babbage/Lovelace era folks had written papers on it.

I'm sure there's at least one arse who'll tell me the DIFFERENCE between a tree and a linked list. lol. Gotta love social media.


A linked list is a special case of a tree structure, but a blockchain is not a special case of a Merkle tree. If you considered the special case of a Merkle tree that was just a list it would be both useless, and not a blockchain.

Edit: Its worth pointing out that the main innovation of the 2008 paper by Nakamoto introducing the concept of blockchain's wasn't just storing things in a linked list based on hashes. It was the Sybil tolerant distributed consensus algorithm. Most people include that in the definition of a blockchain.


He'd also be the true inventor of Git then. It's a widely useful data structure.


Merkel WAS a genuine innovation, and it DOES collapse into plain blockchain if all 'nodes' on a given tree have one child, because in this case the directed graph (tree) is a linked list. If the key innovation in both structures were not the same then your snarkyness would have been appropriate.


The point is that there is more to blockchain technology than just Merkle trees, I think. Just focussing on the underlying datastructure is like saying filesystems are just B trees or something.


Yes. I think that there a bunch of interesting ideas in blockchain technology, not all of which are necessarily new, but they are often new to the blog writer and/or audience. So introductory articles often focus on those basic concepts, which leads to this confusion


The Wikipedia article on blockchain has this sentence: "From the technical point of view a blockchain is a hashchain inside another hashchain", and that sums it up. The actual blockchain algorithm itself is as simple as that. Period. Full stop.

Of course, most actual APPLICATIONS of blockchain also ADD ON a lot of other concepts, like distributed ledger, distributed consensus, etc. Trust me, i'm not the guy in this conversation confusing algorithms with applications.




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

Search: