Git的内部数据结构是一个数据对象树,其中每个对象只指向它的前一个对象。每个数据块都是散列的。当保存的哈希值与实际哈希值偏离时,修改中间块(比特错误或攻击)将被注意到。
这个概念与区块链有何不同? Git并没有被列为区块链的例子,但至少在摘要中,这两个数据结构的描述看起来很相似:数据块、单向反向链接、哈希等等)。
那么区别在哪里,Git不被称为区块链?
Git的内部数据结构是一个数据对象树,其中每个对象只指向它的前一个对象。每个数据块都是散列的。当保存的哈希值与实际哈希值偏离时,修改中间块(比特错误或攻击)将被注意到。
这个概念与区块链有何不同? Git并没有被列为区块链的例子,但至少在摘要中,这两个数据结构的描述看起来很相似:数据块、单向反向链接、哈希等等)。
那么区别在哪里,Git不被称为区块链?
当前回答
与加密货币区块链不同;Git没有p2p的无信任共识机制。
其他回答
区块链和git的目标是不同的,尽管它们都使用默克尔树作为数据结构。
区块链通常由遵循节点间通信和验证新块协议的点对点网络管理。一旦记录,任何给定区块中的数据都不能在不改变所有后续区块的情况下进行追溯修改,这需要网络大多数人的共识。
根据比特币白皮书:
A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone
而Git是一个分布式版本控制系统,用于跟踪软件开发过程中源代码的变化。它是为协调程序员之间的工作而设计的,但它也可以用于跟踪任何一组文件中的更改。它的目标包括速度、数据完整性和对分布式、非线性工作流的支持。
根据Linus Torvalds的说法:
在许多方面,您可以将git视为一个文件系统—它是 内容可寻址,它有版本控制的概念,但我真的 从文件系统的角度对问题进行了设计 人(嘿,我就是做玉米粒的),我实际上绝对有 对创建传统SCM系统毫无兴趣。
区块链不是任意区块的任意链。
区块链是指当两个或多个主链被转移时,有一种方法可以确定主链,并且不需要中央机构来确定主链。
像比特币这样的网络货币,使用分布式共识加密区块链(默克尔树)。常用的缩写是'区块链'
虽然git使用区块链(默克尔树),但它缺乏术语“区块链”所暗示的分布式共识加密组件。
没有理由不认为Git是区块链。Git专注于一组非常特殊(也非常重要)的资产:源代码。在这种情况下,共识是手动的,我们可以认为事务(提交)在合并到发布分支时被接受。 实际上,考虑到事务(提交)的数量,Git是迄今为止最成功的区块链。
摘自:https://arxiv.org/pdf/1803.00892.pdf ”……我们定义了“区块链”和“区块链网络”,然后讨论了两种非常不同的、众所周知的区块链网络:加密货币和Git存储库……”
请参见下一篇文章,解释为什么谷歌使用一个单一的monorepo作为单一的真相来源(基本上,作为区块链)。 https://research.google/pubs/pub45424/
与加密货币区块链不同;Git没有p2p的无信任共识机制。