快速理解区块链

    区块链英语:blockchain或block chain)是借由密码学串接并保护内容的串连交易记录(又称区块)。每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易数据(通常用默克尔树算法计算的散列值表示),这样的设计使得区块内容具有难以篡改的特性。用区块链所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。

网站:https://anders.com/blockchain/blockchain.html模拟实现过程

 

比特币严格意义上是第一个去中心化的app

分布式资料库

一个人就是一个节点,全部都有相同的数据,除非全部攻击,否则就是还存在该数据,攻击的成本非常高

 

区块链:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
它只是一个技术手段,会把全部的交易过程记录下来,维护一份连续不断的交易记录档,数据是不可以更改的,并且可以知道很久很久之前的数据
区块链的每一笔资料都称为一个区块(Block),由多个区块组成的链,说白了就是一个分布式的数据库

特性:溯源,不可篡改

 

区块:
每一个区块包含不止一个交易,每一个区块都会包含上一个区块的哈希值,每一个区块存储block(区块编号),nonce,上一个区块的哈希值,这个区块的哈希值,Data(数据,包含交易数据等)


所有连接在一起的区块被称为链(Chain),每一个区块都会与另一个区块产生链接,每一个区块都会包含上一个区块的哈希值(pre就是上一个区块的哈希值)


nonce:

满足某个区块的难度的所申请的随机数,一直穷举直到哈希前面的4位为0,满足我们的难度要求,nonce也会发生相对应的改变,nonce简单的说就是满足某个难度的随机数(让哈希前几位为0)
当点击挖矿的时候(mine),就是一直校验前面所对应的哈希值前面四位是否为0,如果满足,则挖矿成功(nonce值满足条件的时候)

 


mine(挖矿):

就是计算nonce值的过程,如果要求挖矿难度是4的话,那么哈希前4位是0以上,不断不断的去找
哈希:在区块里面是由block,nonce,data所生成的


数字货币:比特币,以太坊,EOS等

矿机:

要有cpu,算力,负责产生区块的机器又称为矿机
机器的主人:矿工,计算整个nonce值的过程就是挖矿


难度值

哈希值前面0的个数,如果难度是10的话,那么要求前面的block,nonce,data生成的hash前面是由10个0的
nonce是随机变化的,穷举法,一直到hash是符合要求(前面10个位0,难度值10),才是挖矿成功

难度值:就是哈希前面0的个数

 

tx:就是交易,我们做出的交易


区块链如何去运作:
产生区块的过程会经过复杂的密码学运算,复杂的密码学运算可以杜绝记录篡改和修订
每个区块在成功产生之后是无法修改的,产生区块的过程又称为挖矿(minning)

 

矿工:负责挖矿的人

 

每一笔资料都可以通过连接找到,所有可靠的历史资料都具有溯源性

由于是分布式的数据库,所以具有去中心化的特性,去中心化意味着资料会分布到多个节点

共同维护整份资料库:
没人说自己的区块才是合法有效的区块,多人验证之后的区块才是合法有效的区块,超过50%的节点验证过的区块才是合法有效的区块


每个节点:
必须存储所有区块(但有新的设计可以让节点存储部分区块),每一个节点协助验证区块的有效性

任何一笔资料被篡改:
都将破坏节点的完整性,任何一笔资料被篡改的可能性微乎其微

去中心化的写作包含两种物件类型:交易个区块


只要你修改某一条区块上面的数据的话,就会破坏整个区块链的完整性,修改之后需要对他进行挖矿,符合满足的哈希值的才可以,如果前面的区块修改的haul,那么后面的区块也要相对应的修改才可以,如果修改的是第0个区块的话,那么所有的区块都需要进行挖矿一遍,整个区块的结构都会发生变化,所以区块链上面的数据不可以修改,如果要改的话,成本是非常高的


整个去中心化的系统有多个节点的话,如果大多数节点相同的话,那么少数服从多数,少数的节点(由一个一个的区块连接成)会被废弃掉,节点之间达成共识.

posted @ 2019-04-06 08:02  风不再来  阅读(666)  评论(0编辑  收藏  举报