图解什么是区块链
区块链这么火,都开始影响到我的生活了,不想了解也不行了的样子,今天来看看到底什么是区块链。
本文结构:
- 什么是区块链?
- 区块链是如何工作的呢?
1. 什么是区块链?
和它的名字一样,
区块链是由一组块组成的链,
块是包含信息的信息块,组成的链也就包含了信息。
区块链技术最早是在1991年由一群研究人员研发,用来给数字化文档打时间戳,使得这些文档不能被篡改。从那之后就基本上没有再发挥其他作用,直到2009年,中本聪采用区块链技术创造了数字加密货币-比特币。
一条区块链,就是一个对所有人完全公开的分布式账本,它有一个很有趣的属性:一旦某些数据被记录到一条区块链中后,那么数据就很难再被改变。
2. 区块链是如何工作的呢?
来看一下一个区块(block)的组成:
每一个区块包含了一些数据,这个区块的哈希值,以及前一个区块的哈希值。
1. 数据
区块中所保存的数据与区块链的类型有关,例如,比特币区块链中的区块保存了相关的交易信息,包括卖家,买家,以及交易比特币的数量。
2. 这个区块的哈希值
每个区块包含了一个哈希值,哈希值用来标识一个区块和它所包含的所有内容,并且它是独一无二的,就像指纹一样。一旦某个区块被创建,它的哈希值就相对应的被计算出来了。如果改变区块中的某些内容会使得哈希值改变,如果一个区块的指纹改变了,那它就再也不是之前的区块了。
3. 前一个区块的哈希值
区块中包含的第三个元素是前一个区块的哈希值,这个元素使得区块之间可以形成链接,并且能够使得区块链十分的安全。
假设我们有一条区块链包含3个区块
每个区块包含了一个自己的哈希值以及前一个区块的哈希值
3号区块指向2号区块,2号区块又指向1号区块
1号区块有点特殊,它不能指向前一个区块,因为它是第一个
我们把1号区块叫做创世区块。
现在假设我们篡改了第二个区块
这将导致第二个区块的哈希值改变
接下来这就会导致3号区块以及3号区块连接的所有的后续区块变得非法
因为现在它们存储的前一个区块号的都变得非法
所以单独改变一个块,将连带性地致使后面的所有内容都变成无效。
4. 工作证明
但要防止篡改,只有哈希是不够的
因为现在的计算机运算速度已经足够强大,并且能够每秒计算成千上万的哈希值
这样你完全可以篡改一个区块并且重新计算其他的区块的哈希值,使得你的区块再次变得合法。
所以为了减少这种风险,区块链还采用了一种技术,叫做工作证明
这是一种减缓新区块创建过程的机制
在比特币区块链中,大概需要花费10分钟来完成所要求的工作证明,并且添加一个新的区块到区块链中
这个机制使得区块链的篡改更加困难
因为一旦篡改了一个区块,就需要重新计算所有后续的区块的工作量证明。
所以区块链技术的安全性主要来自于哈希值以及工作量证明机制。
5. 分布式
区块链还有一种机制来保护自身的安全性,那就是分布式
相对于用一个中心化的实体来管理区块链网络,区块链采用的是一种 peer-to-peer网络,并且所有人都可以加入
当有人加入这个网络时,他就会得到整个区块链的复制
这个人就可以以此来验证是否所有的区块还是合法未篡改的,也就是不同的节点也可以借此互相验证。
当某人创建了一个新的区块时,
这个新的区块会被发送给网络上的所有人。
每个人再验证这个区块以确保这个区块没有被篡改过
如果所有的东西都被检验正确之后,那么每个人才能把这块新的区块加到自己的区块链上
我们可以称之为,网络上的所有人达成了“共识”。
区块链网络中的所有节点都达成共识
他们认同网络中哪些区块是合法的,哪些是不合法的
那些被篡改过的区块将会被网络上的其他用户拒绝
所以,要成功篡改一个区块链,你需要篡改区块链上的所有区块
重新完成每个区块的工作量证明,并且控制区块链网络中超过50%的用户
只有这样,你篡改的区块才会被所有人承认
可以说,这基本上是不可能做得到的!
智能合约
区块链技术本身也在不断地发展
例如后来的一个技术改进,叫做智能合约
智能合约是一些存放在区块链上的简单的程序
它能基于合约内所记载的条件自动执行,只要条件成立,依照合约自动完成交易
例如在特定条件下可以实现自动化比特币交易。