640?wx_fmt=png&wxfrom=5&wx_lazy=1

作者 | 卿苏德

区块链(BlockChain),是区块(Block)和链(Chain)的直译,其数据结构如图 1 所示,即每个区块保存规定时间段内的数据记录,并通过密码学的方式,构建一条安全可信的链条,形成一个不可篡改、全员共有的分布式账本。

比特币的区块分为区块头和区块体两部分。区块头的大小为 80 字节,包括 4 字节的版本号、32 字节(256 位)的上一区块哈希值、32 字节的 Merkle 根节点、4 字节的时间戳、4 字节的难度值和 4 字节的随机数。区块体包含 10 分钟内选定的交易记录,第一笔交易(coinbase 交易)是用于奖励矿工比特币的特殊交易,由矿工自己添加进区块。

640?wx_fmt=png

图 1  区块链的数据结构示意图

基本概念

区块链是很多现有技术交叉融合在一起的集成创新。因此,要了解区块链,首先要了解区块链到底集成了哪些技术。

P2P 网络

如图 2 所示,P2P(Peer-to-Peer)网络是一种端到端的网络。P2P 网络分为结构化(例如基于 Chord 的 P2P 网络)和非结构化的 P2P 网络(例如 Gnutella)。比特币的区块链采用的是非结构化 P2P 网络,整个网络没有中心化的硬件或管理机构,任一节点既是服务端,也是客户端。任何节点只要安装相应的客户端软件,就能接入 P2P 网络(例如 BT 软件),参与区块链的记录和验证,不超过 1/3 节点的损坏、退出甚至被植入恶意代码,都不会影响整个系统的运作。

640?wx_fmt=png

图 2  传统中心化系统和 P2P 网络的拓扑对比图

加密算法和数字签名

加密技术分为对称、非对称和哈希(Hash)加密。对称加密是指用同样的密钥来进行加密和解密,非对称加密是指用一个密钥对来进行加密和解密,哈希加密主要是通过对数据进行哈希运算,用