区块链是什么?
区块链本质上是一个去中心化的分布式账本数据库。其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次比特币网络交易有效确认的信息。
这是区块链的定义,因此要逐步了解区块链,我们需要一步步了解如下东西。
个人认为,区块链不是一项新技术,而是多种网络技术组合来解决一个新问题,而这个新问题的核心是共识算法。
区块链的最主要技术进步是,实践证明了在同步通信的情况下,参与节点不受限的拜占庭问题近似可解。谈到区块链现在呈现鲜明的两派,毁誉参半。这是因为早期比特币参与者,所谓的币圈大佬良莠不齐,诈骗者居多造成的,首先在这里有必要澄清一些过度传销引起的误解。
- 区块链是一项颠覆性技术。是一种革命。这是错误的,区块链是一种效率和信任的交换,并不是革命,也不一定适用于所有问题。
区块链完全是一种分布式数据库。区块链采用了分布式数据库的特征,但是为了达成强数据一致性和不可篡改,牺牲了很多分布式数据库的优点,当然也带来了一些分布式数据库没有的特性。
- 技术有其应用前景,在不成熟之前就接受大众投资是非常不明智的行为。
背景
2009年, Satoshi Nakamoto建立了第一个区块链系统,比特币,这是一种点对点电子现金系统,主要为了支持资金交易。
此后,区块链系统随着数字货币的爆发迅速发展,功能各种各样。此后,随着ETH的发展,smart contract给区块链的发展带来了极大的技术变革,它帮助应用开发者缩短了开发时间。这是区块链发展史上目前两个非常重要的节点。
现在在不同领域,存在各种各样的区块链系统正在开发,或者正在运行,或者正在探索应用前景。区块链的p2p通信方式,密码学加密/签名并不是重点,已经有了很多解释,我们着重讲一下区块链里的共识算法。
挖矿/共识算法
挖矿是一种创造区块的过程,这种区块是可以被验证并添加进分布式数据库的数据块。在一些区块链系统中,比如比特币和ETH,矿工可以通过挖矿从系统获得奖励。在所以区块链系统中,挖矿都是一个最核心的概念,试图参与挖矿过程的节点被称为矿工。
理论上,每个可接入区块链的节点都有成为矿工的权利,但是它们不一定有机会成为矿工。
挖矿是一种周期性的竞争行为,根据共识算法不同,对于每个挖矿周期,从矿工中选择“优胜者”的方式也有所不同,通常我们称这些“优胜者”为当前周期“出块者”。这种共识算法通常被理解成为“多数人共识”,而如何在网络中定义“人”这一过程,在不同共识算法中有所不同。
加密/签名
依靠密码学的加密和签名技术是区块链中身份唯一性的保证。这里我说的”身份唯一性“,并不是在指代一个人只有一个账户,而是区块链中账户本身是唯一的,只能被自己的”钥匙“打开。
这就是非对称加密,在非对称加密中,有一堆秘钥,这两者都可以用来加密数据,而必须用另一方才能解密。公钥是公开的一个秘钥,私钥是不公开的一个秘钥。
P2P(peer to peer 对等网络)
P2P是一种点对点数据传输技术,依靠用户群交换信息,与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。
P2P网络的分布特性通过在多节点上复制数据,也增加了防故障的健壮性,并且在纯P2P网络中,节点不需要依靠一个中心索引服务器来发现数据。在后一种情况下,系统也不会出现单点崩溃。
区块链依靠P2P在各个节点之间传输数据,依靠私钥签名确保数据唯一,依靠公私钥体系构建账户体系,依靠共识算法添加数据并提供网络维护者的激励,依靠Merkle树构建储存数据库。依靠时间戳确保历史区块产生时间。这是区块链的主要技术构成