7 ms·
> Actually, Git is technically a blockchain. No. You can say that git reduces to a Merkle tree. And blockchains use Merkle trees. But you can't say that git
by CiPHPerCoder 7y ago
> Actually, Git is technically a blockchain.
No.
You can say that git reduces to a Merkle tree. And blockchains use Merkle trees.
But you can't say that git is a blockchain.
https://gist.github.com/joepie91/e49d2bdc9dfec4adc9da8a8434fd029b https://gist.github.com/joepie91/e49d2bdc9dfec4adc9da8a8434f...
https://paragonie.com/blog/2017/07/chronicle-will-make-you-question-need-for-blockchain-technology https://paragonie.com/blog/2017/07/chronicle-will-make-you-q...
- bob1029 7y agoI would argue the Merkle tree (or any other recursive signature algorithm) is the most important quality of a blockchain. To say that git is technically a blockchain is not entirely inaccurate IMO. I think you are looking for the other qualities that typically apply to a blockchain such as the implicit need to "mine" its resources. Git simply produces these resources incidentally. I think this is the only major difference.
- CiPHPerCoder 7y ago> I would argue the Merkle tree (or any other recursive signature algorithm) A Merkle tree is not a recursive signature algorithm, because a hash function is not a signature algorithm. https://paragonie.com/blog/2015/08/you-wouldnt-base64-a-password-cryptography-decoded https://paragonie.com/blog/2015/08/you-wouldnt-base64-a-pass... (Yes, you can build signature algorithms out of hash functions, but definitions matter.)
- meowface 7y agoIt's still missing important pieces. They both fall under the superset of "hash chain" / Merkle tree, but cryptocurrency blockchains are designed to deal with the possibility of bad actors. Git can't ensure trust, unless you PGP sign commits. Git + PGP + some computationally expensive mechanism to broadcast verified PGP key attributions + a consensus algorithm might be a little bit like a blockchain, but I can't think of a good use case for that. Git repos generally aren't intended to be pushed to by the whole world.
- hannasanarion 7y agoA blockchain doesn't ensure trust either. The blockchain "trusts" whoever has the most powerful hash cracking array.
- meowface 7y agoI should've said "attempt to ensure trust".
- deleted 7y ago[deleted]
- CiPHPerCoder 7y agoIncidentally, this is a problem I've worked on previously. https://github.com/paragonie/libgossamer/tree/master/docs https://github.com/paragonie/libgossamer/tree/master/docs
- andrewflnr 7y agoThe most important part of a block chain is its consensus mechanism. The merkle tree is relatively trivial.
- jnwatson 7y agoThere's significant difference in opinion of what part of the Bitcoin protocol is the "blockchain". Usually, people talk about the persistent stuff being the blockchain. In that case, bits sitting in storage don't implement a protocol, therefore don't have a consensus mechanism. In other words, the blockchain is just the data structure, the consensus sits outside of that as a distributed protocol. Of course, parts of that data structure enable the protocol to work, which is the most interesting property of the blockchain, but that's just blocks, merkle trees, and chained signatures.
- andrewflnr 7y agoIf you're focusing on the construction of the term "blockchain", you're already lost. The name is a red herring. It's very clear that the innovative aspect of the technology, the part that enabled all the interesting applications, is the protocol layered on top of the merkle tree. That's the part that needed a new name, and deserved a better one than it got.
- hestefisk 7y agoIf Git is a blockchain, the. ZFS is a blockchain too.
- ms4720 7y agoDon't tell Oracle
- ascar 7y agoI know Git and Blockchains are said to be examples for (usage of) Merkle trees, but I fail to see how they're actually (using) a merkle tree. Using the hash of a parent node as input to a nodes hash alongside the nodes data creates a link, but it doesn't create a merkle tree. In a Merkle tree the parent node is the hash of the hashes of its child nodes and only leafes have data. These are entirely different definitions and also serve completely different purposes (linking to a parent node vs efficient lookup of membership of some data in a larger dataset). Could someone clear up my confusion and explain to me where Git/Blockchain use a Merkle tree in their fundamental functionality? Or is the term Merkle tree simply misreferenced a lot?
- nebulous1 7y agoin bitcoin the transactions are the leaves
- ascar 7y agoCould you please elaborate how that ends up as a Merkle tree? In a merkle tree the leaves are not linked and they have a tree structure of parent hashes on top. Git and Blockchain nodes are linked and the fundamental architecture doesn't need a tree structure of hashes on top. While this tree structure on top might be useful, it would be an optimization, but not part of the fundamental architecture. Again, what am I missing?
- nebulous1 7y agoThis might be complicated by the fact that "merkle trees" and git/blockchain invert the parent/child relationship. The root of the git/blockchain trees changes every time a commit/block is added, and the child nodes are called "parent commits" in git. Also the shape isn't going to have a wide base or be balanced like a binary search tree or similar. When you say that "git and blockchain nodes are linked", I think you might be not abstracting the concepts from the form the data usually takes. For instance in git you might be thinking of a commit as a single package with all its source changes, headers, parent details and hash, but it terms of it being a merkle tree the leaf node would be non-hash parts (source code, non-hash headers etc) and the "tree on top" would be the hashes. This tree structure of hashes are absolutely part of the fundamental architecture of git/blockchain.