《图说区块链》笔记第三天--原理篇

上次写读书笔记的时候,其实是把这个小节自动忽略了,这部分内容个人觉得是除了代码以外更加偏向于技术层面的东西了。

区块链的几个核心概念:

1.区块头:

包含三组元数据:父区块哈希值的数据;挖矿难度、Nonce,时间戳;Merkle(默克尔)树根数据

2.哈希算法:

不被篡改的单向密码机制,哈希算法接收一段明文后,以一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。如SHA–256(安全散列算法)输入长度为256位,输出的是一串长度为32字节的随机散列数据通常用这种方法对区块加密。

3.公钥和私钥:

公钥和私钥是俗称的不对称加密方式,比如我和小伙伴们商定一个暗号天龙盖地虎,伙伴中每一个人都可以验证对方,新加入的小黑来找我领钱,我用公钥天龙盖地虎验证他的组织身份,我拿自己的私钥打开转账系统给小黑钱,小黑拿最后需要自己设置密码保管他自己的钱。在比特币的系统中,私钥本质上是32个字节组成的数组,公钥和地址的生成都依赖私钥,有了私钥就能生成公钥和地址,就能够花费对应地址上面的比特币。

4.时间戳:

时间戳伴随区块而生,如果篡改生成的哈希值就会变化,它对应的是每一次交易记录的认证,证明交易记录的真实性

5.Merkle树结构:

利用Merkle树的数据结构存放所有叶子节点的值,在此基础上再生成一个哈希值。区块中任意一个数据的变更都会导致Merkle树结构发生变化,在交易信息验证比对的过程中通常只需要验证生成的统一哈希值,Merkle树结构能够大大减少数据的计算量。

6.硬分叉和软分叉:

硬分叉是指区块格式或交易格式(共识)发生改变时,已经升级的节点可以验证未升级节点生产出的区块,但未升级的节点拒绝验证已经升级的节点生产出的区块然后两种节点延续各自验证的节点形成两条链。硬分叉没有向前兼容性,之前的版本将不可再用,需要强制升级; 在区块链层面会有分叉的两条链,一条旧链,一条分叉新链;需要在某个时间点全部同意分叉升级,不同意的将会进入旧链。比如以太系列中的ETC和ETH就是硬分叉的经典案例。

软分叉是指在升级和未升级的节点相互验证。它具有有较好的兼容性,之前版本的部分功能可用,可不升级;组成链的区块有新区块和旧区块之分但仍然是一条主链;可以继续使用原版本生成旧区块,与新区块并存。

原有链上进行修补漏洞提升性能等,比特币一直是比特币就是因为没有进行硬分叉。选择硬分叉还是软分叉对区块链本身,矿工和币价都会有很大的影响, 所以比特币一直没有实现硬分叉,如果比特币要是硬分叉可能会出现比特币暴跌的情况,因为币更好挖了。

区块链的工作原理:

A和B之间要发起一笔交易,A先发起请求要创建一个新的区块,这个区块就会被广播给网络里的所有用户,所有用户验证同意后该区块就被添加到主链上。

在全球共用的主链上交易记录不可修改,永久存在,公开透明,每个人都可以查找。

区块链技术实际上是一个分布式数据库(可以想一想上篇笔记的全家记账的情况),在这个数据库中记账不是由个人或者某个中心化的主体来控制的,而是由所有节点共同维护、共同记账的。所有的单一节点都无法篡改它。如果你想篡改一个记录,你需要同时控制整个网络超过51%的节点或计算能力才可以,因为区块链中的点无限多无刻都在增加新的节点,这基本上是不可能完成的事情,而且使用的人越多篡改的成本越高。像比特币全球数不胜数的矿机,你想控制的成本可想而知。

区块链的四大特点:

1.去中心化:区块链中不需要中心化的中介机构,任意节点停止工作都不会影响系统整体的运作。

2.去信任(免信任):区块链的数据库和整个系统的运作是公开透明的,系统的规则和时间范围内,节点之间无法欺骗彼此。  

3.集体维护: 系统中所有人共同参与维护工作。

4.可靠的数据库:系统中每一个节点都拥有最新的完整数据库拷贝,修改单个节点的数据库是无效的,因为系统会自动比较,认为最多次出现的相同数据记录为真。

本次笔记感觉比特币是一个武术大师,有很多绝招,这些绝招的完美组合决定了他的江湖地位。


《图说区块链》笔记第三天--原理篇_第1张图片

你可能感兴趣的:(《图说区块链》笔记第三天--原理篇)