今天给大家聊到了git是区块链,以及相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。
git和区块链的区别
一、相似性
分布式
Git 确保每个代码仓库在本地保留完整git是区块链的项目库,而不仅仅是自己在工作git是区块链的这个分支和自己的提交历史。同时也保留了最近这次 pull 下来后的所有快照和索引信息。
区块链上,每个节点在本地保存完整数据库,而不仅仅是自己的交易信息。
可追溯性
Git commit 链上,每个 commit 对象都包含父级对象(上一次 commit 的对象,除了第一个 commit ),对之前的记录全部可追溯。
区块链上,每个区块都包含前一个区块的索引(除了创世区块),可以追溯之前所有有效交易。
不可篡改
Git 的 commit 链中,每个对象本身在存储前都计算校验和,然后以校验和来引用。一旦修改,校验和就会不对, 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。
Git 用以计算校验和的机制叫做 SHA-1 散列( hash,哈希)。 这是一个由 40 个十六进制字符( 0-9 和 a-f )组成字符串,基于 Git 中文件的内容或目录结构计算出来。SHA-1 哈希看起来是这样:
24b9da6552252987aa493b52f8696cd6d3b00373
区块链中,每个区块包含上个区块 ID,本区块 ID 两个 SHA-256 散列,这两个散列都是基于区块内容计算出来。一旦修改内容,则散列将变化,和其他节点的链不一致,最终不能加入到最长链中,因此无法真正篡改内容。
二、差异性
集体共识和中央节点意志: 1 - 区块链是基于集体共识( POW/POS)来 merge,形成最长链,最长链即为主链。
2 - 而 Git 体系里,通过仓库托管平台来进行多节点合作时,是平台项目的管理者掌握了 merge 的权力,体现的是中央节点的意志。
密码学
1 - 比特币区块链中,密码学主要用到了以下方式
在比特币区块链的整个体系中,大量使用了公开的加密算法,如 Merkle Tree 哈希数算法,椭圆曲线算法、哈希算法、对称加密算法及一些编码算法。各种算法在比特币区块链中的作用如下:
a)哈希算法
比特币系统中使用的两个哈希函数分别是:1.SHA-256,主要用于完成 PoW (工作量证明)计算; 2.RIPEMD160,主要用于生成比特币地址。
b)Merkle 哈希树
基于哈希值的二叉树或多叉树,在计算机领域,Merkle 树大多用来进行完整性验证处理,在分布式环境下,其进行完整性验证能大量减少数据传输和计算的复杂程度。
c)椭圆曲线算法
比特币中使用基于 secp256k1 椭圆曲线数学的公钥密码学算法进行签名与验证签名,一方面可以保证用户的账户不被冒名顶替,另一方面保证用户不能否认其所签名的交易。用私钥对交易信息签名,矿工用用户的公钥验证签名,验证通过,则交易信息记账,完成交易。
d)对称加密算法
比特币官方客户端使用 AES (对称分组密码算法)加密钱包文件,用户设置密码后,采用用户设置饿密码通过 AES 对钱包私钥进行加密,确保客户端私钥的安全。
e)Base58 编码
Base58 是比特币使用的一种独特的编码方式,主要用于产生比特币的钱包地址,其类似于古典密码学里的置换算法机制,目的是为里增加可读性,把二进制的哈希值变成了我们看到的地址“ 177rNLTxYAaXqTrrJPRsQNxvR9a1gF5P3K ”。
2 - Git:主要用了 SSH 秘钥来进行远程登录验证,用了 SHA-1 来进行代码内容校验和。
SSH 是 Secure Shell 的缩写,由 IETF 的网络工作小组( Network Working Group )所制定,是一种专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH 传输的过程如下: (1)远程主机收到用户的登录请求,把自己的公钥发给用户。 (2)用户使用这个公钥,将登录密码加密后,发送回来。 (3)远程主机用自己的私钥,解密登录密码,如果密码正确,允许用户登录。
git是什么?
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper。
功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
区块链技术是什么?未来可能用于哪些方面?
区块链(blockchain)技术是维护一个不断增长git是区块链的数据记录的分布式数据库git是区块链,这些数据
通过密码学的技术和之前被写入的所有数据关联,使得第三方甚至是节点的拥有者难以篡改。区块(block)包含有数据库中实际需要保存的数据,这些数据通过区块组织起来被写入数据库。链(chain)通常指的是利用Merkle tree等方式来校验当前所有区块是否被修改,这一点用过Git的码农们早就熟悉了,回想一下如何修改Git的历史记录吧。
目前已知的一些区块链技术应用大致有这三类:
公开区块链(public blockchain) 例子:比特币,Ethereum Frontier。公开区块链上的数据所有人都可以访问,所有人都可以发出交易等待被写入区块链。共识过程的参与者(对应比特币中的矿工)通过密码学技术以及内建的经济激励维护数据库的安全。公开区块链是完全的分布式。
协作区块链(federated blockchain) 例子:Hyperledger以及德勤等会计所尝试的审计系统。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其git是区块链他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。这样的区块链上的数据可以是公开的也可以是这些节点参与者内部。部分意义上的分布式。
私有区块链(private blockchain) 例子:Eris Industries。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。近期部分金融机构公布的内部使用的区块链技术大都语焉不详,不过很可能都在这个范围内。
关于git是区块链和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
标签: #git是区块链
评论列表