当把层级划分出来后,诸多问题就能迎刃而解。
讨论参与者:Genaro CTO 吴为龙,李画
撰文:李画
这篇文章源于一次讨论,文章内容也是对讨论内容的整理。讨论源于一个普通的问题:区块链该不该追求效率?
问题普通却很难回答,难是基于两个相矛盾的常识:
1.分布式系统的效率无法提高:受限于分布式系统CAP定理,分布式系统很难追求高效率。
2.人们希望区块链系统能够支持需要高效率的应用。
一边是无法提高效率,一边是必须提高效率,区块链该不该追求效率?这引发了一个更基础的问题:什么是区块链技术?如果能回答清楚这个问题,也许就能回答区块链该不该追求效率。
区块链技术是开发一个区块链系统所包含的全部技术的统称,还是只指解决区块链系统中某些特定范围内问题的技术?当我们接着去回答这个问题时发现,如果把一个区块链系统「分解」成不同的层,问题就能变得清晰和有所指,也就能给出相应的答案。
一个区块链系统可以划分为四层,从下至上依次是:分布式系统层,区块链层,应用平台层,应用层。我们通常所说的区块链/公链是包含分布式系统层,区块链层,应用平台层的这样一个三层的集合。
为什么可以这么去划分区块链系统的层级?因为不管是从功能上还是从实现上,它们都可以被单独地切分出来。功能上,每一个层级要做的事情不一样;实现上,每一个层级采用的方法也不一样。
当把层级划分出来后,诸多问题就能迎刃而解。因这些问题而起的种种困惑或矛盾,其实是把需要在不同层级做的不同的事情混为一谈了。
那么,这样的一个四层结构,每一层具体在做什么,为整个区块链系统提供什么?每一层又该如何去实现,实现的过程中可否牺牲去中心化?本文将以问答的形式展开分析。
注:本文是开放式的,观点仅为探讨,也欢迎大家一起探讨。
01
「分布式系统」层
第一个问题:分布式系统层是什么?要做什么?
分布式系统层是区块链系统最底层的基础设施,所有其他的架构都要建筑在它之上。分布式系统层所做的工作非常简单,为上层提供一个可以被使用的分布式系统。
构建分布式系统所需要的分布式技术是一种已经相对成熟的技术,分布式系统层可以直接使用这些技术。
分布式系统层不用追求效率,因为它只需要为上层提供一个底层的分布式系统;它也因其分布式的结构而无法有效的提升效率。
第二个问题:分布式系统层提供什么?