Git的内部数据结构是一个数据对象树,其中每个对象只指向它的前一个对象。每个数据块都是散列的。当保存的哈希值与实际哈希值偏离时,修改中间块(比特错误或攻击)将被注意到。

这个概念与区块链有何不同? Git并没有被列为区块链的例子,但至少在摘要中,这两个数据结构的描述看起来很相似:数据块、单向反向链接、哈希等等)。

那么区别在哪里,Git不被称为区块链?


当前回答

没有理由不认为Git是区块链。Git专注于一组非常特殊(也非常重要)的资产:源代码。在这种情况下,共识是手动的,我们可以认为事务(提交)在合并到发布分支时被接受。 实际上,考虑到事务(提交)的数量,Git是迄今为止最成功的区块链。

摘自:https://arxiv.org/pdf/1803.00892.pdf ”……我们定义了“区块链”和“区块链网络”,然后讨论了两种非常不同的、众所周知的区块链网络:加密货币和Git存储库……”

请参见下一篇文章,解释为什么谷歌使用一个单一的monorepo作为单一的真相来源(基本上,作为区块链)。 https://research.google/pubs/pub45424/

其他回答

理解任何技术的一个好方法是问,“它能解决什么问题”?Git的用例非常简单,因为它的预期用途是版本控制/源代码控制。

Git是什么?

“Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到超大型项目的所有内容。”参见https://www.git-scm.com/

所以很明显,要解决的用例问题是“分布式版本控制”。仅此而已,不多不少。对此有许多现成的证据。

版本控制——也称为源代码控制或修订控制——是跟踪和管理对代码和其他文件所做更改的重要软件开发实践。它与源代码管理密切相关。

什么是区块链?

“区块链是一种点对点去中心化分布式账本技术,它使任何数字资产的记录透明且不可更改,并且不涉及任何第三方中介。这是一项新兴的革命性技术,因其能够以可扩展的方式降低风险和欺诈而吸引了大量公众的关注。

没有重复区块链的技术细节已经概述在前面的答案(即。挖矿,分布式网络),简单地说,区块链是一个完全不同于Git解决的问题的解决方案。

区块链不是任意区块的任意链。

区块链是指当两个或多个主链被转移时,有一种方法可以确定主链,并且不需要中央机构来确定主链。

与加密货币区块链不同;Git没有p2p的无信任共识机制。

像比特币这样的网络货币,使用分布式共识加密区块链(默克尔树)。常用的缩写是'区块链'

虽然git使用区块链(默克尔树),但它缺乏术语“区块链”所暗示的分布式共识加密组件。

没有理由不认为Git是区块链。Git专注于一组非常特殊(也非常重要)的资产:源代码。在这种情况下,共识是手动的,我们可以认为事务(提交)在合并到发布分支时被接受。 实际上,考虑到事务(提交)的数量,Git是迄今为止最成功的区块链。

摘自:https://arxiv.org/pdf/1803.00892.pdf ”……我们定义了“区块链”和“区块链网络”,然后讨论了两种非常不同的、众所周知的区块链网络:加密货币和Git存储库……”

请参见下一篇文章,解释为什么谷歌使用一个单一的monorepo作为单一的真相来源(基本上,作为区块链)。 https://research.google/pubs/pub45424/