文章目录
  1. 1. 相似点
    1. 1.1. 可追溯
    2. 1.2. 分布式存储
    3. 1.3. 支持离线访问
    4. 1.4. 不可篡改
  2. 2. 差异点
    1. 2.1. 合并方式
    2. 2.2. 一致性
  3. 3. 总结
  4. 4. 参考

最近这几天,沉寂已久的区块链突然火了起来,各种文章铺天盖地,起因是,10月24号习大大把区块链技术提升到国家高度,希望借此技术能够实现弯道超车。说起区块链,不得不提比特币,前几年比特币大火,也带火了区块链技术,笔者还曾长时间跟进一个区块链创新项目storj。当时也简单了解过背后的原理,其实,对于现在的码农来说,区块链技术并不神秘,我们每天在用的git就跟它比较相似。本文就来简单对比下这两种技术的异同。

相似点

可追溯

  • 区块链,顾名思义,是由区块组成的链式结构,每个区块都包含前一个区块的索引(除了第一块,即创世区块),所以从任一块出发,可以到追溯之前所有的交易。
  • git在每次提交代码时,会将本次修改内容打成一个快照(可以理解为区块),并跟上一次提交进行关联(除了第一次commit),这样也可以从任意提交记录出发,追溯之前的提交。

分布式存储

  • 区块链,每一个节点都记录了完整的数据。
  • 通过git clone后,本地不仅会保存完整的代码,还保存了每次提交的详细信息,可以追溯到每行代码的提交人。

支持离线访问

既然本地保存了完整的数据,当然可以离线访问。

不可篡改

无论是区块链还是git,每个块的唯一标示都是根据块内容算出来的,并且保存了上一个块的信息,如果修改,标示信息会不一致(当然这里可能会有hash碰撞,但是概率极低),所以是无法修改的。

差异点

合并方式

  • 区块链是基于集体共识(POW/POS)来合入一个区块,形成最长链,最长链即为主链。
  • git一般是由项目的管理者合入一个提交,管理者可能是一个人,或者几个人的小团队,但是权利掌握在少数人手里。

一致性

  • 区块链要求强一致性,冲突时根据链的长度决定,自动废弃多余分支
  • git不追求强一致性,人工解决冲突

总结

git和区块链在很多方面都很像,不知道谁借鉴的谁,不过从时间上看,git发起于2005年,区块链(比特币)发起于2008年,可能区块链借鉴了git的一些思想。但也不好说,可能世界就是这样奇妙,就像微积分的出现,当年莱布尼兹和牛顿几乎同时发明了这一伟大的工具,可能这就是英雄所见略同。

鉴于笔者对区块链了解不深,如有纰漏,还望批评指正。

参考

文章目录
  1. 1. 相似点
    1. 1.1. 可追溯
    2. 1.2. 分布式存储
    3. 1.3. 支持离线访问
    4. 1.4. 不可篡改
  2. 2. 差异点
    1. 2.1. 合并方式
    2. 2.2. 一致性
  3. 3. 总结
  4. 4. 参考