【区块链】-概念理解

在区块链中有很多概念,让人听起来就很头大,比如:

挖矿、哈希、难度、椭圆曲线加密、对等网络(p2p网络)

如果想彻底了解这些名词的实现细节,那么必然要花费大量的时间,为此我们需要换一种思路,我们不了解这些名词的细节,而是把这些名词当成一个整体,只了解这些名词在整个区块链中充当的角色和所起的作用,试想一下,当你使用电动牙刷的时候,你其实并不需要了解电动牙刷的实现细节。

区块链和交易

1
区块链本质上是一个在全球范围内共享的数据库.

这句话有两个限定词:共享和数据库;

既然是在全球范围内共享,这就意味着全球范围内的任何一个加入到这个网络的人都可以访问这个数据库。

既然是数据库,那么就意味着里面存的有数据,这些数据就称为交易数据,你可以把它想象成一个表,有很多行,每一行都是如下的格式

1
from,to,amount

从一个账户转账到另一个账户,金额是多少。

但凡是转账都有一个很重要的特性,此特性就是 要么转账成功,要么转账失败,不会出现第三种情况,试想一下你转账的时候有出现过 想要转账100元,但是因为金额不够,只转账了50元的情况吗?

现在我们把共享和数据库结合在一起,很自然的出现一个问题,既然谁都可以访问这个数据库,那么应该怎样限定谁可以修改这个数据库呢?

区块链通过使用加密的方式来限定 只有拥有某个密钥的人才能对部分数据进行修改,既只有拥有密钥的人才能进行转账。

区块

区块链是由一个一个的区块组成的,如果说区块链是数据库,那么区块就是一张张的数据表。

区块是以时间顺序一个一个链起来的方式来组成区块链的,就好比一列动车,一个一个的车厢就是一个一个的区块,整个链起来就是一列动车。

以太坊的区块现在正以大概每17秒的速度链接到区块链上,那么这些区块是从哪儿来的呢?答案是挖矿。

矿工通过不停的计算,算出合法的区块,然后将交易数据打包到区块内部,最后链接到区块链上。

挖矿

世界上本没有以太币,挖矿的人多了就有了以太币

在区块链诞生的时刻,世界上是没有以太币的,在第一个区块产生的时刻,世界上便有了5个以太币。

以太币是以太链给矿工的挖矿的奖励,每成功挖出一个合法的区块,以太链会奖励给矿工5个以太币,目前以太币的总量可以通过Ethereum Market Capitalization and Supply Statistics查看,当前总量为97,560,529.56个。

当前以太坊的价格大约为900美元一个,每挖出一个区块都可以产生4500美元的经济效益,当然前提是挖出的区块必须合法,那么怎么样的区块才算是合法的区块呢?

工作量证明(Proof of Work)和难度

工作量证明就是用来验证产生的区块是否合法的重要手段,要理解工作量证明首先要了解哈希。

一个硬币有两个面,正面和反面;如果给你一个硬币让你猜正反面,那么你有50%的概率猜中,要么正面要么反面。

给你两个硬币让你猜,那么就有以下四种情况

1
2
3
4
+,-
+,+
-,+
-,-

你有25%的机会猜中,只能是上述四种情况中的一种。

如果给你3个硬币,那么就会有如下8中情况

1
2
3
4
5
6
7
8
-,+,-
-,+,+
-,-,+
-,-,-
+,+,-
+,+,+
+,-,+
+,-,-

你猜中的概率降低到了12.5%。

我们对上述+-编码,-用0表示,+用1表示,那么上述编码变为

1
2
3
4
5
6
7
8
010
011
001
000
110
111
101
100

用十进制表示为

1
2
3
4
5
6
7
8
2
3
1
0
6
7
5
4

刚才我们猜中的概率为12.5%,为了提高猜中的概率,我们定一个规则,猜出来的结果小于4就算猜中,因为只有8个可能的值,小于4就算我们猜中了,所以我们猜中的概率提升到了50%,且4这个值称为难度。

每当我们猜中一次,就表示我们生成的区块是合法的,比如猜中的结果为3,那么我们就生成了一个名为3的区块。

显而易见,为了生成一个合法的区块,我们平均要进行两次运算,因为我们猜中的概率为50%,当所有四个区块都被猜出来之后,就再也没有可以猜的数据了,也就意味着,这个区块链的长度为4.

以上就是工作量证明的工作原理,和实际的唯一区别在于,我们示例中使用的硬币的数量为3个,而实际中的硬币数量为128个,难度当前是17179869185,其是一个动态调整的值以保证出块的速度。

nonce

账户随机数,其值等于改账户的交易次数。