3 ms·
> Git lets you rewrite history Not quite true. Git makes it possible to hard fork it’s internal commit tree, and easily move the HEAD marker to your new fork.
by avianlyric 5y ago
> Git lets you rewrite history
Not quite true. Git makes it possible to hard fork it’s internal commit tree, and easily move the HEAD marker to your new fork. But it’s obvious to everyone observing the tree that the modification has happened.
Same applies to all normal blockchains. Only difference is that blockchain clients will ignore that fork if the correct proof work hasn’t been provided, but you could add that to a git commit if you really wanted too.
The git commit tree is cryptographically signed, every commit is identified by its cryptographic hash, and that has is taken from the content of the commit, which includes the hash of the parent commits. So you can cryptographically prove that a specific git tree is properly linked together, and the each individual commit hasn’t been tampered with.
The ability to detect tampered commits, and observe forks is all you really need for a blockchain. Everything else is just deciding how you determine which branch is the “real” branch. But you don’t need proof of work for that, it could be enforced by courts or governments the old fashioned way.
As for your PR stuff. You can fix that by publishing an agreed set of valid commit types, which limits the types of modifications that are allowable. Then when validating a tree, you ignore commits that don’t meet that specification (just like more traditional blockchains do).
Ultimately the only novel thing blockchains bring to the table is proof of work algorithms etc which allow for supposedly decentralised trust.
But decentralised trust doesn’t really exist when dealing with physical assets. At the end of the day ownership is determined by your ability to physically defend your assets, or ability to convince the state to defend them on your behalf. So if the state says you don’t own your house (and the courts agree), then the content of your decentralised blockchain is irrelevant because it won’t stop the police from forcibly evicting you.
- didibus 5y agoI did assume that people meant a decentralized distributed ledger when saying blockchain. In that regard, git is lacking replication, consensus and validation, all of which are key to a decentralized distributed ledger. Git has some of the properties you'd want, but not all, could you implement more things on top of git to create a blockchain, possibly yes, but that doesn't make git a blockchain. I like the wikipedia qualification for this: > Logically, a blockchain can be seen as consisting of several layers:[21] > infrastructure (hardware) networking (node discovery, information propagation and verification) > consensus (proof of work, proof of stake) > data (blocks, transactions) > application (smart contracts/dApps, if applicable)
- avianlyric 5y agoGit is a distributed version control system, by design and definition it's decentralized. Lacks replication? What do you think the git clone and fetch commands do? Validation is easily turned on, you can tell git to traverse the tree it pulls and make sure it's cryptographic integrity is upheld, that just a config flag. Consensus is that "hard" one, but even that has already been solved on community-by-community basis. For the Linux kernel the community consensus is that Linus git repo is truth, but that can easily be changed if the community wanted to. Certainly you need a few extra bits and bobs to build a proper cryptocurrency on top of git. But all the basics are there, and for many applications a git repository would be a perfect substitute for blockchain.