区块链的几个基本概念
区块链
(blockchain)本质上是一种特殊的分布式数据库。
首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。
其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
区块链是去中心化的,没有管理员,是彻底无中心的。
区块
区块链是由一个个区块
(block)组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。
每个区块包含两个部分
- 区块头(Head): 记录当前区块的特征值(当前时间、上一个区块的Hash、区块体的Hash)
- 区块体(body): 实际数据
两个重要推论:
推论1: 每个区块的哈希都是不一样的,可以通过哈希标识区块。
推论2:如果区块的内容变了,它的哈希一定会改变。
采矿
添加新区块需要一定的计算,只有通过极其大量的计算,才能得到当前区块的有效哈希,从而把新区块添加到区块链。
这个过程就叫做采矿(mining),因为计算有效哈希的难度,好比在全世界的沙子里面,找到一粒符合条件的沙子。
计算哈希的机器就叫做矿机,操作矿机的人就叫做矿工。
难度系数
区块头包含一个难度(difficulty),这个值决定了计算哈希的难度。
区块链协议规定,使用一个常量除以难度系数,可以得到目标值(target)。难度系数越大,目标值就越小。
区块链的适用场景
- 不存在所有成员都信任的管理当局
- 希尔的数据不要求实时使用
- 挖矿的收益能弥补本身成本
非对称加密
加密和解密需要两把钥匙:一把公钥和一把私钥。公钥是公开的,任何人都可以获取。私钥是保密的,只有拥有者才能使用。
他人使用你的公钥加密信息,然后发送给你,你用私钥解密,取出信息。反过来,你也可以用私钥加密信息,别人用你的公钥
解开,从而证明这个信息是你发的,且未被篡改,这就叫数字签名。
比特币特点
- 不会轻易被偷走
- 无法伪造
- 无法大批生成
区块链的作用
区块链就是一个数据库,记载了所有的交易,用作中央记账系统,分布在无数个节点之上。
数字货币的本质就是一条可信的数据库记录。
比特币协议规定,分支点之后最先达到6个区块的那个分支被认定为正式的区块链,其他分支都被放弃。由于区块
的生成速度由计算能力决定,所以到底哪一笔交易最后会被写入区块链,完全由它所在的分支能吸引多少计算能力决定。
隐藏的逻辑是,如果大多数人(计算能力)选择相信某一笔交易,那么它就应该是真的。