“不可能的三角”问题
在当下的区块链设计中,存在一个所谓的“不可能的三角”。
这三个角分别是 规模性 (Scalability)、去中心化 (Decentralization)和 安全性 (Security)。
目前的区块链技术只能同时满足其中两项,下面分情况讨论。
满足安全性、去中心化,则无法满足规模性。我们以比特币为例,比特币平均10分钟打包一次,平均而言,每秒的交易处理量为7笔。相比之下,VISA信用卡服务则可以每秒处理4000笔。制约比特币规模扩展的原因是它追求全网数据完全拷贝和全网共识同步。完全拷贝代表每个节点都要有硬盘空间存储所有数据。参与的计算机节点越多,则越是能达到共识的“去中心化”,同时多份的完整拷贝也保障了数据的“安全”。但是每一份拷贝都要占据硬盘空间。如果每秒交易量规模提升,则代表存储空间成正比增长。目前比特币区块数据占据了200GB的空间,普通家庭计算机尚能承受,如果储存规模进一步增大,则只有买得起昂贵硬盘的少数玩家才能参与。网络中参与的节点越少,数据的安全性越低,也让共识的完全去中心化特性变成寡头共识。在满足安全和去中心化的前提下,规模性提升困难。
满足去中心化、规模性,则无法满足安全性。当网络中节点数量越来越多,区块链数据占硬盘体积越来越大时候,需要一种解决方案来可靠横向扩展网络。以太坊即将提出的区块分片存储方案就试图解决规模性问题。该方案的设想是通过将区块链数据分割成不同的部分,分布式地存储在网络中,让每个节点仅存储部分区块链数据。各个节点仅持有一部分的数据(类似于一张地图,分割开来,每人持有部分地图),在查询自己未持有的数据的时候可以向其他节点请求查询。这个方案巧妙地缓解了单一节点的存储压力,提高规模性,同时保留多人参与的架构,维持去中心化的特色。以太坊的区块分片存储方案实际上是一种的“多链”结构,子链各维护各自的交易区块数据,子链之间共享同一份世界状态。在这个方案中,总链的算力将被分散,验证节点也会分散,数据传输过程可能会有通信不畅的问题。单链算力下降导致潜在的51%共识攻击的可能性提升。这就是满足了去中心化和规模性之后,降低了安全性的方案。
满足规模性、安全性则无法满足去中心化。区块链网络最显著的特点是没有中央服务器,是完全由协议控制的、去中心化的运营模式。但去中心化意味着要做一件事,必须所有人达成共识才能行动(所谓去中心化)。这个在现有的计算力、带宽条件下牢牢约束住了网络规模。PoW共识模式的效率很低,它需要通过浪费能源来证明共识的可靠性。如果去除PoW,采用 PoS(权益证明)或 PoA(权威证明)的方式,仅挑选少数核心参与者形成共识(例如EOS的超级节点概念),这就可以大大加快每次共识形成的速度,提高规模性也满足安全性。但是这对“去中心化”的理念是一种倒退。例如现在的联盟链,仅允许身份验证过的节点进行记账,加入该联盟需要注册和身份认证,形成了实际上的多中心。这种网络的安全性很高,同时区块的形成速度也很快,可以提高吞吐量规模,但对完全区块链的去中心化的理想场景而言,是一种现实的妥协。
下一章:ETHASH 挖矿算法
把最好的东西留到最后品尝,本书将以太坊的PoW(Proof of work)挖矿算法核心ETHASH算法作为最好的礼物留到最后讲解。掌握了ETHASH算法我们就有能力进行新的、独立的公链开发。这个知识也是最难消化的, ...