1.2 区块链的核心技术
1.分布式结构
区块链设计最精妙的地方是,它并不赞同把数据记录并存储在中心化的一台或几台计算机上,而是让每一个参与的节点来完成这些工作,也就是具有分布式结构(图1-2)。这也意味着,在区块链网络中分布着众多的节点,节点与节点之间可以自由连接进行数据、资产、信息的交换,而无须通过第三方中心机构。在大部分区块链项目中,采用的是P2P ( Peer-to-Peer,点对点)的网络模式,即各个节点之间保持相同的地位,发挥一样的作用,任意点与点之间可进行通信。
图1-2 中心化结构与分布式结构图
a)中心化结构 b)分布式结构
2.区块和链
为了使得账本不可篡改,交易信息的相关数据被存放在区块中。当新的交易数据形成后,这些数据和上一个区块的相关数据被打包进下一个区块中,每个区块的块头包含指向前一个区块的信息,前后形成链式结构,通过区块头的哈希校验,使得每个区块受下一个区块的保护从而防止篡改。
“区块+链”的形式保存了从第一个区块开始的所有历史数据,连接的形式是后一个区块拥有前一个区块的哈希值,区块链上任何一条记录都可通过链式结构追溯本源(图1-3)。
图1-3 区块链结构示意图
3.共识机制
区块链上的共识机制主要解决如下两个问题:如何在去中心化的网络中使得各个节点的信息保持一致,以及当多个计算机(节点)都想参与记账的时候,应该选择谁来记账的问题。解决方案包括工作量证明机制Proof of Work (PoW),权益证明机制Proof of Stake(PoS)、股份授权证明机制Delegated Proof of Stake(DPoS)以及拜占庭容错(PBFT)(表1-1)。
表1-1 四种共识机制的对比
4.数字加密
数字货币的所有权是通过数字密钥、比特币地址和数字签名来确定的。为了解决信息的安全性问题,一般使用非对称加密算法来保证个人数字资产不被盗取。非对称加密使用一对密钥,一个用来加密,一个用来解密,而且公钥是公开的,密钥是自己保存的,在通信前不需要先同步密钥,避免了在同步私钥过程中被黑客盗取信息的风险。公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密(图1-4)。
图1-4 数字加密的过程
私钥是随机选出的数字,然后通过非对称加密(椭圆曲线函数)产生一个公钥,最后公钥再通过哈希函数转化成比特币地址。比特币地址是由数字与字母构成,可以与任何人分享。