很多人将区块链视为一个巨大的分布式记账体系
所有人都参与记账查账
没有人有能力篡改
这种定义很有道理
但实际上区块链可能还要超过记账的认证功能
区块链也是一种观念
用技术设计取代权威控制和情感信任
由此来建立一种网络结构
所有人都可以参与成为无数的节点之一
进行认证,确权,交易,追溯,调整
这些一系列的动作
公开透明,成本低,速度快,分布广
从账本演变的角度来看,
区块链是一个分布式共享的账本系统。
这个账本有以下三个特点:
1. 可以无限增加的巨型账本
——每个区块可以视作这个账本的一页,每增加一个区块,
账本就多了一页,这一页中可能会包含一条或多条记录信息;
2. 加密且有顺序的账本
——账目信息会被打包成一个区块并加密,
同时盖上时间戳,一个个区块按时间戳顺序链接形成一个总账本;
3. 去中心化的账本
——由网内用户共同维护的,它是去中心化的。
哈希算法
哈希算法是区块链中保证交易信息不被篡改的
单向密码机制。哈希算法接收一段明文后,
以一种不可逆的方式将其转化为一段长度较短、
位数固定的散列数据。
它有两个特点:
1. 加密过程不可逆,意味着我们无法通过输出的
散列数据倒推原本的明文是什么;
2. 输入的明文与输出的散列数据一一对应,
任何一个输入信息的变化,都必将导致最终
输出的散列数据的变化。
在区块链中,通常使用SHA–256(安全散列算法)
进行区块加密,这种算法的输入长度为
256位,输出的是一串长度为32字节的随机散列数据。
区块链通过哈希算法对一个交易区块
中的交易信息进行加密,并把信息压缩成由一串数字
和字母组成的散列字符串。区块链的哈希值能够唯一
而准确地标识一个区块,区块链中任意节点通过简单的
哈希计算都可以获得这个区块的哈希值,计算出的哈希值
没有变化也就意味着区块中的信息没有被篡改。
公钥和私钥
在区块链的话题中,我们还经常听到这样的词汇——
公钥和私钥。这就是俗称的不对称加密方式,
是对以前的对称加密方式(使用用户名与密码)的提高。
我们用电子邮件加密的模型来简单介绍一下:
公钥就是给大家用的,你可以通过电子邮件
发布,可以通过网站让别人下载,公钥其实是
用来加密/验章的。私钥就是自己的,必须非常小心保存,
最好加上密码,私钥用来解密/签章,私钥由个人拥有。
在比特币的系统中,私钥本质上是32个字节组成的数组,
公钥和地址的生成都依赖私钥,有了私钥就能生成公钥
和地址,就能够花费对应地址上面的比特币。
私钥花费比特币的方式就是对这个私钥所对应的
未花费的交易进行签名。