3 ms·
As mentioned, the git commit log, not the entire repo, which is more organized like a merkel tree, though that is only really the storage. The commit log is a
by tscs37 9y ago
As mentioned, the git commit log, not the entire repo, which is more organized like a merkel tree, though that is only really the storage.
The commit log is a strict DAG, if you don't have any merges, it is a strict blockchain, otherwise it gets fuzzy but is close enough.
I never said it's equivalent but that is what a blockchain is; "A blockchain [...] is a continuously growing list of records [...] which are linked and secured using cryptography."[0]
This doesn't mention "Can't be a merkle tree" for one, but also doesn't mention "can't consist of branches which merge again" or "requires proof of work" or "must use signatures" (cryptography refers to the hashes normally but can refer to anything else too)
Git also acts like a blockchain, if you change the past (edit a past commit) you need to update all following commits for the new hash and their children hashes and anyone who has the repository must do a force pull, similarly to how Bitcoin rejects fork chains with less proof-of-work.
It might be worth mentioning that Bitcoin also uses MerkleTrees for storage as they are very good for quickly comparing sets.
A blockchain does not necessarily process financial transactions at all and I don't see why it must be a requirement.
[0]: https://en.wikipedia.org/wiki/Blockchain https://en.wikipedia.org/wiki/Blockchain
- jacquesm 9y ago"if you don't have any merges" -> so, not a blockchain. What you are saying is that you can use git in such a way that you get something resembling a blockchain but - again, and it is getting tiresome - that does no imply equivalence between git and the blockchain. I really don't understand why you keep arguing.
- tscs37 9y agoAs I mentioned, even with merges it still has the properties of a blockchain, just not the ones traditionally used by cryptocurrencies. You still have blocks (commits) pointing to other blocks (commits). Some blocks just points to multiple other blocks (think the uncle system in ethereum, which is just exactly that; temporary forks that are still included into the chain)
- pests 9y agoThere is two definitions in play here for the word blockchain. In the version you mean, how does the blockchain (git, or any other blockchain by your definition) respond when two valid blocks are canidates to be added to the end of the chain? Is only one block the winner? How is this property maintained as the blockchain grows? These are the questions and issues the blockchain others in this thread mean can deal with, while, for example, these questions don't exactly make sense for, for example, git.
- sirclueless 9y agoYes, only one block is the winner. It is whatever the maintainer of the git repository chooses as HEAD. This property is maintained by any number of out-of-band mechanisms such as Github pull requests and company-wide mandates never to "git push --force". Seriously though, it just seems like a question of semantics. Is a blockchain just a specific sort of Merkle tree -- thus making Bitcoin a blockchain plus a distributed consensus protocol? Or does calling something a blockchain necessarily imply some consensus protocol already.
- jacquesm 9y ago> Or does calling something a blockchain necessarily imply some consensus protocol already. It doesn't. But for all practical purposes at this point in time it might as well.
- pests 9y agoJust semantics. You can search right now and find programming 'blockchain tutorials', targeting the cryptocurrency community, that go on to describe only linked blocks chained together via some embedded hash of a subset of the previous blocks (meta)data. This is what others in various comments are calling a cryptograpically secured blockchain. Other tutorials will set up a mempool (pending transactions) or get peers communicating. I've never seen peer discovery or any discussion on chain value (ie height vs accumulated difficulty) for chain selection.
- tscs37 9y ago