
Git is a blockchain - Swizec
https://twitter.com/Swizec/status/951158831760908288
======
westurner
Bitcoin is very much inspired by git; though in terms of immutability it's
more similar to mercurial and subversion (git push -f)

Git accepts whatever timestamp a node chooses to add to a commit. This can
cause interesting sorts in terms of chronological and topological sort orders.

Without an agreed-upon central git server there _is not_ a canonical graph.

You can use GPG signatures with Git, but you need to provide your own
keyserver and then there's still no way to enforce permissions (e.g. who can
ALTER, UPDATE, or DELETE which files).

Git is a directed acyclic graph (DAG). Not a chain. Blockchains are chains to
prevent double-spending (e.g. on a different fork).

Bitcoin was accepted by The Linux Foundation (Linus Torvalds wrote Git):
[https://lists.linuxfoundation.org/pipermail/bitcoin-
dev/](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/)

~~~
gitgud
It's always been a mix of inspiration in my mind:

\- Torrent P2P file sharing.

\- Git like data structure and protocol

\- Immutability from functional programming

\- Public key cryptography

------
benchaney
It's not. This in particular is completely lacking:

> decentralized consensus?

~~~
gizmo686
What do you mean? Almost all git projects have a general consensus on what the
code looks like. This concencensus is not immediate (eg. at any given point in
time, different nodes may have a different view of the repository), but over
time nodes tend to converge on a single "true" history. When this does not
happen, we have what is called a "fork", which also occurs in blockchain based
cryptocurrencies.

Put another way, every clone of the Linux repository agrees on what the kernel
looked like at some point in the past (and all prior points which are recorded
by git); however there is no central authority asserting this history.

~~~
benchaney
But the consensus is determined by people, not git. Or, to put it another way,
the lack of consensus algorithm in git is a feature, as it allows people to
come to an agreement (or not) independent of the VCS.

