我爱编程

区块链科普

2018-04-15  本文已影响12人  高腾gorden

区块链的概念这么火,竟然没有人能很好的解释基本概念。

到找了一个网站,用图示的方法解释了一些基本概念。blockchian demo

以下是涉及到的概念。

data  hash   block   nouce  mine

prev  distributed   peer   token  coinbase

理解如下:

1 hash和data的关系。

不同的data对应不同的hash,输入相同的data,会出现相同的hash,但是你无法从hash反推出data是什么。这是由数学算法决定的。

没有数据或者海量数据,hash依旧是那么多位数。

2 block。

区块。简易版的组成:block序号。nonce。data。hash。mine。

3 nonce。mine。

nonce与hash的关系。nonce是一组数字,不同的nonce对应不同的hash,而且是一一对应。也就是说,hash改变,nonce也必须改变。

当你在block里面改变你的data时,你的hash改变了,hash是自动改变的。但是同时,你的nonce并没有改变,于是它与hash不匹配。这个时候,你的这个block就会被判定无效(invalidate)。

这个时候,通过挖矿(mine),运行算法,来给当前的hash匹配到相应的nonce,使这个block生效。mine需要耗费计算资源。

nonce被翻译成碰撞数,也是生动。

4 blockchain

blockchain就是block的链条。他们通过prev,也就是记录前一个block的hash链接起来。因此,第一个block没有prvious hash。

在blockchain中,跟block一样,如果你改变任意一个节点的data,其hash值改变后,为了让它validate,你需要mine,以匹配到nonce。我试着mine了后,发现改变data后的hash变化后,mine后的hash还会继续改变,跟nonce都变化了,这样才validate了。这里并不明白为什么。

同时,由于其后一个block继承到了新的prev hash,整个block变得invalidate,需要mine。也就是说,被改变后的block连同其后的每一个block都需要mine,才能validate。

5 distributed 分布式

一条区块链会有n个peer,是其完全相同的复制品。我的理解是:每个人都有一个完整的、与其他人相同的记录在区块链的账本。当一个blockchain里的数据改变时,它需要使用mine的方式重新使得整个blockchain有效,但与此同时,系统会发现它与其他的blockchain是不一会的(比对最后一个block的hash等就可以了),这时会判定其他多数的blockchain是有效的,用少数服从多数原则判定账本,也就是说,这个blockchain的改变会视为无效。

6  token(代币)

token的英英解释是这样的:

 A token is a round flat piece of metal or plastic that is sometimes used instead of money。

翻译成代币也算是准确。

token就是记录在block中data里面的交易数据,包括金额,以及from 和to。

每个block里的token记录的都是所有的转账记录。(目前的理解)也就是说,当你进行了一笔交易时,这个交易记录会被广播到所有peer的block中的token记录里。

7 coinbase

可以理解为币池,就是流通的货币总量。就是这个blockchain里面的token总额或者叫做coin有多少。

上一篇下一篇

猜你喜欢

热点阅读