购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

附录
区块链的核心技术

1. 点对点传输

区块链是一个点对点传输的网络系统。与传统的中心化网络架构相比,区块链网络中已经没有了中央服务器,每个节点都可以请求服务,也都可以提供服务,节点间的连接不再通过中央服务器而是直接互联(见图1-4)。

图1-4 点对点网络

2. 分布式数据存储

区块链本质上是一个点对点、分布式数据存储的网络数据库系统。在传统记账模式中,交易信息由第三方机构记录和存储。在区块链技术构建的分布式网络中,数据以加密形式储存在网络中的所有节点上,每个节点共同参与确认和维护交易信息。

3. 共识机制

共识机制是链上不同群体所寻求的达成某种共识和维护共识的方式。共识机制是一种区块链治理体系,是综合博弈论、金融学、经济学等多学科设计出来的一套可以确保区块链网络中各节点能够积极维护区块链系统的体系,最早由中本聪提出,并随着技术的发展逐渐演变成保证区块链系统稳定运行的核心机制。

目前的共识机制按照去中心化程度和应用场景可以分为适用于公有链系统的完全去中心化共识机制,如工作量证明机制(Proof of Work,POW)和权益证明机制(Proof of Stake,POS),以及适用于联盟链和私有链的部分去中心化共识机制,如委托权益证明机制(Delegated Proof of Stake,DPOS)、瑞波共识(Ripple Consensus)等。共识机制是沿着从完全去中心化到部分去中心化的趋势逐步演进优化的——从POW到POS再到DPOS和其他各种部分的去中心化共识机制

(1)完全去中心化共识机制。

在基于POW机制 构建的区块链网络中,节点通过测算随机数值来竞争区块链的记账权和获取代币。夺得记账权后,该节点把记录交易信息公布到网络中,保证网络中各个节点有相同的账本。但是,测算随机数值的过程是采用穷举法,需要大量的计算,所以在POW机制中“矿工”节点的计算能力越强,则越有可能率先计算出结果获得代币,相应地,“矿工”的收益也就越大。

POW机制的优点是完全去中心化,在设计上保证了基于此所建立的区块链的安全。完全去中心化体现在每个节点都有记账的动力,并且每条交易信息都会被系统中每个节点记录。在争夺代币和记账权这一竞争过程中,代币价格越高,参与竞争的节点也就越多,总的计算能力就越强。而计算能力越强,获取代币的难度也越大。这种看起来自相矛盾的机制使得基于POW机制的区块链网络发展为一个越来越稳健的系统,使得黑客的攻击难度和成本越来越高。

但是,每个节点进行算力竞争,需要耗费大量的电力和时间,而且这些计算其实毫无用处。算力的逐渐集中也形成了安全威胁。只拥有小规模算力的节点已经很难在竞争中胜出并获得代币奖励。因此,一些节点通过组织集中算力来提高竞争力。当攻击者有超过51%的算力时,大概率会抢得记账权,就有能力修改真实的交易信息。

POS是在POW机制消耗大量资源的情况下产生的一个新的共识机制。该机制是参与者可以通过持有代币来获得记账权。持有代币越多的一方获得下一个区块记账权的概率就越大。但这也会导致富者恒富,资源越来越集中也带来了新的安全隐患。

(2)部分去中心化共识机制。

DPOS机制 是POS机制的进化版本。DPOS类似于公司的董事会制度。在该共识机制下,每一位持币人根据自己手中持有的加密货币投票选举出一定数量的代表来负责生产区块。投票的权重是用投票人所持有加密货币的数量占总量的百分比来衡量的。被选举出的代表负责生产下一个区块,同时也可以获得加密货币的奖励。当代表不能很好地履行生产、管理区块的职责时就会被替换。奖惩机制的存在有助于区块链的稳定发展。但是,由于DPOS机制下是由选出的代表来负责生产区块,所以会存在一定的中心化控制,一定程度上降低了去中心化的程度,呈现出部分去中心化的特征。

(3)共识机制的比较。

三种共识机制的比较如表1-1所示。

表1-1 共识机制的比较

4. 加密算法

区块链中的加密算法主要包括哈希算法与非对称加密算法。哈希算法可以将任意长度的字符串通过哈希加密公式,映射为较短的字符串(见图1-5)。该映射逆函数难以寻找,因此可以在很大程度上提升区块链系统的安全性。

图1-5 哈希加密算法示例

非对称加密算法在互联网中有着非常广泛的应用场景,更是加密货币的基础。非对称加密和解密过程如图1-6所示 ,具体而言包括4个步骤:

(1)用户A用自己的私钥(PRIVATE KEY_A)对需要发送的信息进行签名。

(2)用户A使用用户B提供的公钥(PUBLIC KEY_B)对上一步已经加密的信息和自己的签名信息进行二次加密。

当用户B收到用户A的加密信息以后,可通过如下过程解密获取信息:

(3)用户B使用自己的私钥(PRIVATE KEY_B)解密用户A用B的公钥(PUBLIC KEY_B)加密的信息。

(4)用户B用用户A提供的公钥(PUBLIC KEY_A)解密用户A用自己的私钥(PRIVATE KEY_A)加密的签名信息。

图1-6 非对称加密示例 ZcbSdK+TNY99UaMMAd5loi8U5/TBiI3Ydt1oIGhTTR05UlEqUNgfitptRq6sLI6q

点击中间区域
呼出菜单
上一章
目录
下一章
×