区块链的概念这么火,竟然没有人能很好的解释基本概念。
到找了一个网站,用图示的方法解释了一些基本概念。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有多少。