区块链是一门软件技术, 从本质上来看就像是一个分布式的DataBase, 是一个去中心化, 分布式技术。
由于是分布式的, 所以区块链不会仅仅存在某一个人的服务器上面, 每个人都可以搭建服务器,然后加入到区块链这个网络中来。成为区块链网络中的一个Node, 所有的Node都是对等的,不存在优先级先后。因为是去中心化,分布式的。所以每个Node都会保存完整的DataBase信息,每个人都可以向区块链网络中的任何Node进行数据的write/read, 因为区块链网络的每个Node都会同步跟新,保持区块链网络的一致性。
example:
将一个区块链网络想象为一个记账本,里面的内容就是转账的记录。每个在区块链网络上的节点都对应着一个记账本,也就是说一个区块链网络有N个记账本,并且这N个账本的内容都是一样的,假设某两个用户进行交易, 账本1上A用户支出50给B用户,那么账本1中的用户A的账户-50,账本1中的用户B的账户+50,那么其他节点上的账本2…N都会更新这两个用户的账户资产变动。
Answer: No !
区块链是一门软件技术,而比特币是基于区块链技术产生的最早的应用。
比特币是从2008年中本聪一篇paper:Bitcoin: A Peer-to-Peer Electronic Cash System 中提出的一种不受政府银行控制的货币。论文中详细描述了如何创建一套去中心化的电子交易体系,且这种体系不需要创建在交易双方相互信任的基础之上。
Answer:No!
区块链是通过一些现有已经存在的技术:密码学,哈希算法,P2P等技术 ,以一种新的思想去resolve problem,它是一种将现有技术组合创造的解决问题的新思想,方法。
区块链为什么不能被篡改 ?
通过更新数据的难度和链式机制保证。
区块链就是由一个个区块连接而成的链。在账本的例子中,可以把每个块想象成账本中的一页,区块链就是一页页装订在一起构成的账本。
每个区块记录的信息由两部分组成:
区块头里面记录了一些特征值,包括生成时间、实际数据的哈希、上一个区块的哈希等。其中需要理解的一个概念是哈希,所谓"哈希"就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的哈希长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保证,只要原始内容不同,对应的哈希一定是不同的。
因此,通过哈希,可以保证两点:
接下来,就是链式结构精妙的地方了,由于链上的每个区块都保存了上一个区块的哈希值,这时,如果要篡改区块链上的信息,只修改一个区块的内容是不行的,因为修改了这个区块的数据后,该区块的哈希值会变,这样原来的下一个区块发现新计算的哈希值和原来保存的哈希值不一致,下一个区块就不承认该区块的内容了。如果要让下一个区块承认该区块修改后的内容,则需要依次修改链上后面的所有区块才行。
但是,修改区块内容就要计算哈希,由于哈希函数是一个单向函数, 所以哈希的计算是一个很耗时耗力的工作,基本不可能被一方独自完成。
因此,这种独自修改的困难加上链式结构带来的联动机制,保证了区块链的内容可信性,也就是说内容一旦写入就无法被篡改。
在账本的例子中,如果要修改其中一页的记录,则需要修改这一页以及该页后面所有页的记录才行,而修改记录本身需要的橡皮是一个 很难获取到的资源,而且每页修改都要重新获取橡皮,这就加剧的困难导致了记录很难修改。
比特币的交易过程
区块链如何保障写入数据的可信度 ?
通过密钥和写入确认来保证。
以比特币的交易的过程为例,当 A 要支付给 B 10个比特币,这就是一笔交易。要完成这笔交易,需要两步:
在申报交易的时候,转出比特币的一方,此笔交易中的 A 需要提供以下几个信息:
验证这笔交易是否属实,需要三步:
通过这几步,就能保证 A 确实是这笔钱的主人,同时 A 确实有这笔钱。这样就保证了这笔交易是真实的,可以被记录的。
在交易确认阶段,这笔交易会被记录在区块链上,通过上述区块链的特性保证交易不能被篡改。
Bitcoin 记账过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HwmZqFIG-1596001792422)(/Users/liyan/Library/Application Support/typora-user-images/image-20200729112435691.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gn4gIxQL-1596001792423)(/Users/liyan/Library/Application Support/typora-user-images/image-20200729112507718.png)]
以太坊 和 Hyperledger。
根据网络范围可以将区块链划分为:公有链、联盟链、私有链三类。
公有链
公有链就是完全对外开放,任何人都可以任意使用,没有权限的设定,也没有身份认证之类,不但可以任意参与使用,而且发生的所有数据都可以任意查看,完全公开透明。
比特币就是一种公有链网络系统。除了比特币,以太坊是最值得关注的公有链。以太坊(ethereum)区块链平台是 2013 年 12 月,Vitalik Buterin 提出的,除了可基于内置的以太币(ether)实现数字货币交易外,还提供了图灵完备的编程语言以编写智能合约(smart contract),从而首次将智能合约应用到了区块链 。以太坊的愿景是创建一个永不停止、无审查、自动维护的去中心化的世界计算机。
联盟链
允许授权的节点加入网络,可根据权限查看信息,往往被用于机构间的区块链,称为联盟链或行业链。
2015 年 12 月,Linux 基金会发起了 Hyperledger 开源区块 链项目,旨在发展跨行业的商业区块链平台。Hyperledger 提 供 了 Fabric 、 Sawtooth 、 Iroha 和Burrow 等多个区块链项目,其中最受关注的项目是Fabric。不同于比特币和以太坊,Hyperledge Fabric专门针对于企业级的区块链应用而设计,并引入了成员管理服务。
私有链
所有网络中的节点都掌握在一家机构手中,称为私有链。
目前好像没有专门的私有链项目,或者说把联盟链部署在一家就是私有链了吧。
reference:
入门Block Chain