一、定义与原理
1. 定义
Wikipedia上给出的定义中,将区块链类比为一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的、不可篡改的数据记录。
2. 基本原理
首先假设存在一个分布式的数据记录账本,这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表,这也是其名字“区块链”的来源。链表由一个个“区块”串联组成(如下图所示),后继区块记录前导区块的哈希值(pre hash)。新的数据要加入,必须放到一个新的区块中。
3. 工作过程(以比特币为例)
a. 比特币客户端发起一项交易
b. 网络中的节点收到后,开始计算,试图找到一个nonce串(随机串),使得候选区块的哈希结果满足一定条件(比如小于某个值)。
c. 找到这个nonce串后,就会广播出去,其他节点收到后,验证此串的合法性,如果发现确实符合约定条件了,就承认这个区块是一个合法的新区块,并添加到自己维护的区块链上。当大部分节点都将区块添加到自己维护的区块链结构上时,该区块被网络接受,区块中所包括的交易也就得到确认。
上面计算查找nonce串的过程称为工作量证明 (Proof of Work,PoW)。目前,要让哈希结果满足一定条件,并无已知的快速启发式算法,只能进行尝试性的暴力计算。尝试的次数越多(工作量越大),算出来的概率越大。
二、技术的深化与分类
1. 区块链的演化
2. 区块链与分布式记账
跟传统的记账技术相比,基于区块链的分布式账本应该包括如下特点:
a. 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
b. 去中心化,或者说多中心化,无需集中控制而能达成共识,实现上尽量采用分布式;
c. 通过密码学的机制来确保交易无法被抵赖和破坏,并尽量保护用户信息和记录的隐私性。
分类根据参与者的不同,可以分为公开(public)链、联盟(consortium)链和私有(private)链。
三、关键问题和挑战
1. 抗抵赖与隐私保护
2. 分布式共识
3. 交易性能
4. 扩展性
5. 安全防护
6. 数据库和存储系统
7. 集成和运营
四、趋势与展望
五、认识上的误区
1. 区块链不等于比特币
2. 区块链不等于数据库
3. 区块链并非一门万能的颠覆性技术