isn't git effectively a blockchain? Its got blocks, they are chained (or tree'd) (to some degree), it doesn't need verifiers or mining since it can have users signing their inputs, and that is the only thing to be cared about.
isn't git effectively a blockchain? Its got blocks, they are chained (or tree'd) (to some degree), it doesn't need verifiers or mining since it can have users signing their inputs, and that is the only thing to be cared about.
Git does not have a consensus mechanism. You have your copy of the repository, and someone else has their copy. If you want to push your changes to a remote, if there were divergent changes you need to first pull the remote, merge the changes and resolve conflicts, and then push. The remote can change their version of the repo anytime they want in any way they want. Also, when you try to push a change, it is up to the remote to accept it or not, they can deny it for whatever reason.
The point of a blockchain is that 1. There is a distributed consensus about the state of the blockchain (the one accepted by 51%+ of nodes) and 2. No one can alter information relating to your wallet without your keys. Git lacks either of these properties and these properties cannot be introduced without a centralized system like Github/Gitlab. Thus, Git is just a decentralized protocol, not a blockchain.
I'd agree if blockchains didn't also fork based on disagreements of the next block.
> No one can alter information relating to your wallet without your keys
Git has signing of commits etc. So the equivalent (no one can alter your presentation of the view of the code) can be enforced.
- - -
To focus on 1 specific concept of consensus, would be to also claim the very common idea of private blockchains is poorly named.
> isn't git effectively a blockchain?
IMO no, this is one of those cases where a word means a lot more than just its component parts, much like how "television" means a lot more than just "anything where you do far-seeing."
The practical/effective distinction between what is promoted as "blockchain" and older stuff--like "a distributed database with cryptographic features"--involves:
1. Unrestricted global public membership, new nodes can be created by anyone at any time.
2. A global data structure that cannot have more than short-term conflicts or branches. (Hence a pruned "chain" instead of "tree".)
3. A cascade of other features all designed to stop someone from taking advantage of #1 and #2 to take over with an infinite army of sockpuppet nodes. (Proof of work, proof of stake, etc.)
In contrast, with git:
1. The default membership is "just me." Groups are ad-hoc as you find other people who you do (or don't) agree to work with and choose what to push/pull to one another.
2. Separate branches are extremely normal and can live indefinitely, and it's also normal to shift data from a conflicting branch or entirely rewrite subtrees.
3. There is no "majority rule" or "tiebreaker" logic, and thus no extra machinery to try to stop it.
The verification and mining are the things that make blockchains unique (allow for adversarial nodes, censorship resistance) but you're not wrong that blockchains have a lot in common with git
it's pretty much the exact same principle, the chain of hashed commit contents being part of the input to the next commit in the branch have the same property
That's ONE of the linchpins of cryptocurrency, yes. Git has that part.
Someone else mentioned consensus which is orthogonal. Git does not have that part.