一、发展背景

加密安全技术在20世纪80年代至21世纪初,得到了广泛发展,其中的哈希加密、椭圆曲线密码学、HashCash工作量证明机制,以及P2P网络,为区块链的产生和兴起奠定了技术基础。本篇会通过与传统数据库的对比、区块链使用的底层技术、去中心化的误区等相关层面了解区块链技术。

二、区块链的底层技术

区块链是主要运用了四个基础技术,分别是哈希运算(SHA256)、数字签名、P2P网络和工作量证明(PoW)。接下来逐一进行说明。

1、哈希加密算法

哈希加密算法,SHA256,是由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA-2分支。其特点是:将任何一串数据输入到SHA256将得到一个256位的Hash值(散列值)。相同的数据输入将得到相同的结果。输入数据只要稍有变化(比如一个1变成了0)则将得到一个千差万别的结果,且结果无法事先预知。

2、数字签名

数字签名,是基于椭圆曲线加密技术的公私钥来实现。其使用的是非对称加密技术,例如常见的ssh key认证就是公私钥技术的一种。椭圆曲线数字签名算法最典型的应用就是https里的ECDSA。这里概念比较多,需要注意下,数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等。区块链使用的是其中的椭圆曲线数字签名算法,比如ssh key认证一般使用dsa或rsa。

3、P2P网络

根据比特币协议,区块链采用一种无结构的P2P网络。P2P网络分为有结构和无结构两种:有结构的P2P网络,例如Chord,利用一致性哈希表(DHT)构建每个节点的路由表。无结构的P2P网络代表是努特拉(Gnutella),节点之间的路由靠广播的方式,也就是说,一个节点想查找一个文件,他就问他的邻居有没有这个文件,他的邻居再问各自的邻居有没有,如此迭代。这样容易形成广播风暴,因此,一般设置一个网络TTL,来限制广播传播的范围。

这里的p2p实际上就是我们传统n年前使用的bt下载或磁力链下载使用的技术。所以国内的迅雷公告在区块链技术上有天然的优势。

4、工作量证明机制(PoW)

工作量是信任产生的基础。在区块链中,通过解决一个数学难题来证明自己的工作量。这个数据难题就是,对一个数字串进行两次SHA256运算,如果得到的数,小于一个指定的值,就算是成功。否则,要通过不断的尝试试错(学术上叫暴力破解),来求解这个数。工作量证明机制(PoW)并不是无尝,在比特币里的挖矿其实就是POW证明的一种,通过奖励相应的币值来进奖励。同时POW也完善了中心节点的个数,后面再说。

二、传统数据库与区块链数

先看下图:

blockchain-crud
blockchain-crud

传统数据库一般来说都是中心式的,通过CURD(C代表创建,U代表更新,R代表读取,D代表删除)进行增删改查操作。

区块链接的分布式数据库依托P2P网络提供的分布式端对端网络的特点,我将之归结为CROSS原则,相当于是放弃了UD操作,也就是放弃更新和删除,换来“无法篡改”和“不可抵赖”两个重要特点。其中,R代表可追溯,依托区块彼此相连的链式结构,用户可以追溯至最初交易来查看整个交易过程。O代表开放,任何一个人都可以通过接入P2P网络来记账;第一个S代表安全,基于密码学的安全通信,以及工作量证明机制,无人可以篡改数据库中的数据;第二个S代表稳定。系统中任何节点的退出,都不会影响整个系统的稳定性,不会遇到中心化节点经常遇到的“单点故障”问题。

注意,这里有个误区,去中心化并不代表无中心化,而是有多个中心。且该中心节点无需特指,是自愿的成为中心节点。节点分全节点和轻节点。全节点包含所有比特币区块链的区块数据;轻节点仅包括与自己相关的数据。

三、区块链的发展

区块链的发展应该从横向和纵向两个维度进行看待。

横向来看,分为1.0时代、2.0时代和3.0时代。1.0时代是记录价值信息,例如记录比特币的历史交易信息,记录山寨币的虚拟资产信息。从智能合约以后,称之为区块链2.0时代。3.0时代是基于智能合约做的商业项。比如资产登记(NEO、btm、GXS)、内容版权(YOYOW、唯链)、物联网(IOTA、ATM),还有去中心化交易所等,是将区块链应用在金融行业之外的各行业。区块链3.0是在2.0的基础上,着重解决性能瓶颈,构建区块链应用的基础设施,并推出针对各个领域的商业解决方案。现在公认的第三代只有iota和cardano。

从证明机制来看,由最初的工作量证明机制,改为其他证明机制,例如,PoS股权证明机制,PBFT拜占庭容错机制等。

从入网许可来看,前的区块链是共有链,允许所有人接入。现在发展成联盟链和私有链,只有加入联盟的,才能链入区块链,或者直接在一个公司内部,部署区块链,叫做私有链。最后,还有一种是混合链,即可以公有接入,也能够支持企业私有化。有没有点熟悉的感觉,之前提到的云不也是有类似的分法吗?