声明:本文不构成任何投资建议。
边肖:记得要集中注意力。
来源:碳链价值
原标题:区块链应不应该追求效率:对区块链体系的分层思考
李华写的
层次划分了,很多问题就可以解决了。
本文源于一次讨论,文章内容也是对讨论内容的整理。讨论源于一个共同的问题:区块链应该追求效率吗?
普通问题很难回答。困难是基于两个相互矛盾的常识:
1.分布式系统的效率无法提高:受限于分布式系统的CAP定理,分布式系统很难追求高效率。
2.人们希望区块链系统能够支持需要高效率的应用。
一方面,无法提高效率;另一方面,要提高效率。区块链应该追求效率吗?这提出了一个更基本的问题:什么是区块链技术?如果你能清楚地回答这个问题,你也许就能回答区块链是否应该追求效率。
区块链技术是区块链系统开发中涉及的所有技术的总称,还是仅指解决区块链系统中某些特定问题的技术?当我们继续回答这个问题时,我们发现如果将一个区块链系统“分解”成不同的层,问题就会变得清晰而有针对性,并给出相应的答案。
一个区块链系统可以分为四层,从下到上依次为:分布式系统层、区块链层、应用平台层和应用层。我们通常所说的区块链/公链就是这样一个包括分布式系统层、区块链层和应用平台层的三层集合。
为什么我们可以这样划分区块链体系的等级?因为两者在功能和实现上都是可以相互分离的。功能上,每一级都有不同的事情要做;在实现上,每一级都采用不同的方法。
层次划分了,很多问题就可以解决了。这些问题引发的各种困惑或矛盾,其实是混淆了不同层次需要做的不同事情。
那么,这样一个四层结构,每一层具体做什么,它为整个区块链系统提供什么呢?每一层应该如何实现?去中心化在实现的过程中可以牺牲吗?本文将以问答的形式进行分析。
注:本文开放,观点仅供讨论。也欢迎大家一起探讨。
01
“分布式系统”层
第一个问题:什么是分布式系统层?做什么?
分布式系统层是区块链系统的最低基础设施,所有其他体系结构都应该建立在它的基础上。分布式系统层做的工作非常简单,提供一个可用于上层的分布式系统。
构建分布式系统所需的分布式技术是比较成熟的技术,分布式系统层可以直接使用这些技术。
分布式系统层不需要追求效率,因为它只需要为上层提供一个底层的分布式系统;由于它的分布式结构,不能有效地提高效率。
第二个问题:分布式系统层提供什么?
区块链系统基于分布式系统。正是分布式系统赋予了区块链自身的优势,使得区块链成为一个充满可能性的发展方向。但是最终,分布式系统提供了两样东西:
1分布式特征
2.分布式资源
具体如下:
1.分布式系统可以为应用程序提供分布式特征/功能,例如去中心化。
2.分布式系统可以使分布式资源可用:他们拥有的可以连接到网络的每个个体和各种设备和数据都是分布式资源;机构数据、物联网设备等。也是分布式资源。
3.分布式系统可以为应用程序提供更便宜的可用资源。
注:本文中的分布式资源指的是什么?
分布式资源是指投入分布式系统的可交易资源,如计算能力、存储空间、物联网数据、分布式服务等。
在区块链系统中,分布式资源需要使用“挖矿”提供的分布式账本进行核算,从而实现交易,然后被使用。
区块链“挖矿”需要使用分布式系统提供的CPU、存储等资源。这些资源服务于分类帐,在本文中它们不是分布式资源。
02
“区块链”层
第一个问题:什么是区块链层?做什么?
分布式系统层和应用程序平台层之间是区块链层。区块链层通过设计和选择不同的账本结构、共识机制、激励机制等,为分布式系统提供动力。使应用平台层可以利用分布式系统层的特性和资源。
区块链层也不应该负责追求效率。它更多的是提供一套机制,使分布式系统可用或可操作。这里最好不要破坏它的分布式特征。
这里损坏后,上层设计无法恢复;并且在稍后阶段修改该层是相当困难的。
第二个问题:区块链层提供了什么?
区块链层为应用平台层提供了能够满足特定需求的分布式账本系统或分布式资源系统。
1.分布式账本系统是目前区块链最重要的应用方向。我们通常所说的区块链应用就是这种账本系统的一种使用,具有去信任、去中心化、价值转移等特点。
2.分布式资源系统是指在分布式系统层提供资源。这种资源必须结合分布式账本系统使用,因为只有通过账本实现可交易的资源,才有可能构建一个资源提供和使用的生态。
第三个问题:设计区块链层需要考虑哪些问题?
在设计区块链层之前,首先要搞清楚这个区块链系统的应用场景或者愿景,根据需要选择不同的机制和技术。
这是一个全新的需要探索的领域,也是一个困难的领域。它不仅需要经济学、社会学、计算机科学等知识。还要应用这些知识。比如技术要能支撑和保障机制。
设计区块链层可以从以下三个角度考虑:
1.为应用程序提供了哪种分布式分类帐;什么样的资源被吸收到应用程序的分布式系统中(视觉设计)。
2.如何吸引更多的计算能力和存储来保证分布式账本的安全性;如何吸引更多更好的资源加入分布式系统,构建资源生态(机制设计)。
3.如何实现分布式账本;如何提供分布式资源(技术设计)。
第四个问题:“区块链”是什么意思?
在不同的上下文中,区块链可能会提到以下三个不同的主题。
1.是指分布式系统层和应用平台层之间的区块链层,它驱动分布式系统,向应用平台层提供分布式图书或分布式资源。
2.它是指一个双层系统,包括分布式系统层和区块链层。它是一个面向应用平台层的区块链底层系统,满足应用平台层的要求。
3.它是一个三层体系,包括分布式系统层、区块链层和应用平台层。它是一个面向应用的系统,满足应用需求,可能具有一些分布式特性,也可能具有一些集中式特性。这种三层系统通常也称为公共链/区块链系统。公有链的研究和开发也包括所有三个层次的设计和实现。
03
应用平台层
第一个问题:什么是应用平台层?做什么?
应用程序平台层位于区块链层之上,应用层之下,所有的应用程序都构建于其上。应用平台层为应用服务。
通过提供一系列解决方案,使得底层两层提供的分布式账本和分布式资源能够被应用使用,满足应用在使用中的特定需求。
如果区块链体系要追求效率,效率问题就应该在这个层面上解决。
此外,应用平台层要满足应用在安全、隐私等方面的要求。根据
应用平台层还需要根据区块链系统的应用场景或愿景,做出更特殊的设计,以更好地服务于特定需求。
第二个问题:应用平台层提供什么?
应用平台层提供的,也就是我们要求区块链系统提供的。本质上,它是对分布式图书和分布式资源的封装,但从封装的外观来看,它是我们希望这个区块链系统实现的功能。
例如,专用帐簿、世界计算机、分布式存储系统、允许应用分布式存储数据的世界计算机.
第三个问题:目前应用平台层的发展方向是什么?
目前,区块链领域的大量工作都是在应用平台层进行的。主要有以下几个方向:
1.提高效率。采用的方法有分层、切片等。
2.简化开发。采用的方法包括模块化设计、完整的SDK工具包等。
3.提供隐私,包括账本和资源的隐私。采用的方法包括安全多方计算、零知识证明等。
4.在底层连接不同的区块链系统,以便应用程序可以使用多个系统。采用的方法包括交叉链、原子交换等。
5.实现特殊视野下的特殊制度设计。
附:关于放权的几点思考
在区块链的世界里,人们不喜欢集权,也把分权作为评价一个区块链体系的指标;另一方面,一些区块链应用场景需要效率。因此,许多项目坚持认为,他们在不牺牲分权的情况下实现了效率的大幅提高。
但是,如果我们明白分布式系统效率低下,那么只有集中化才能带来效率(现在很多区块链系统的效率已经因为集中化而大大提高了)。与此同时,我们理解,在某些情况下,当情况中的所有要素不需要下放时,我们也许能够再次考虑区块链的权力下放。
而如果能重新看待这个问题,项目可能会认真思考在哪里保持去中心化,在哪里用中心化来提高效率,而不是陷入某种困境,甚至在不该中心化的地方采用中心化的方法。
这也是将区块链系统分层并讨论不同级别的功能的原因。层级可以帮助我们知道哪里可以做集中处理,哪里不可以。
说白了,如果一个区块链系统在某个特性上不得不去中心化,但又要求在那个特性上有高效率的支撑,又不能拆解成可以去中心化的不同组件,那么区块链系统就不能成立;如果一个区块链系统在必须去中心化的特性上使用了中心化的方法,即使去中心化被用在其他地方,它也是一个伪区块链系统。
04
应用级别
第一个问题:应用层是什么?
应用层是构建在应用平台层上并使用区块链系统的所有应用程序。它不仅仅指DApp。
第二个问题:什么样的应用需要使用区块链?
什么样的应用需要使用区块链对应区块链能提供什么,包括两类:
1.需要使用分布式分类帐的应用程序。
2.需要使用分布式资源的应用,或者使用分布式资源可以大大降低成本的应用。
不同应用场景或不同愿景的需求决定了整个区块链系统的设计和实现。
1.需求决定了什么资源连接到最底层的分布式系统,进而影响其对数据结构和数据处理方法的选择。
2.需求决定了区块链层需要提供什么样的分布式账本和共识,进而决定了其账本、机制、技术等的选择。
3.需求决定了应用平台层需要满足哪些需求,比如效率、去中心化、安全、隐私等。进而影响其具体的平衡策略和技术路线。
第三个问题:我们如何挖掘使用区块链的应用程序,甚至是服务于应用程序的区块链系统?
也许我们可以从两个不同的方向去思考。
1.从分布式系统开始
A.分析分布式账本的特点,然后思考这些特点可能会产生什么样的应用场景,然后根据应用场景设计一个应用或者设计为应用服务的区块链系统。
B.分析分布式系统能提供什么资源,然后思考这些资源可能产生什么应用场景,然后根据应用场景设计应用或者设计为应用服务的区块链系统。
2.从现有需求出发
A.分布式图书的特点可以满足哪些现有需求?您需要设计一个区块链应用程序来满足这样的需求吗?如果没有支持此类应用的区块链系统,是否有必要设计一个为应用服务的区块链系统?
B.利用分布式账本支持的分布式资源可以满足哪些现有需求?您需要设计一个区块链应用程序来满足这样的需求吗?如果没有支持此类应用的区块链系统,是否有必要设计一个为应用服务的区块链系统?
05
写在最后
区块链系统可以提出自己的问题
通过对区块链系统的分析,可以提出一些问题来理解和梳理一个区块链项目(具体指区块链系统项目,不包括区块链应用项目):
1.出发点是用区块链解决具体问题,还是提供一个基本的通用区块链系统,还是为区块链系统提供某种解决方案?
2-1.如果使用区块链,是分布式账本还是分布式资源?你为什么要利用区块链?
2-2.如果使用区块链,为什么现有的区块链系统不能满足需求?这类问题的解决是否重要到足以设计一个特殊的区块链系统?
3-1.如果提供区块链,是否提供分布式分类帐或分布式资源?
3-2.如果提供分布式账本,账本的应用场景是什么?需要该账簿的应用程序能否支持该区块链系统的运行?
3-3.如果提供分布式资源,资源的应用场景是什么?需要此资源的应用程序能否支持此区块链系统的运行?能否支撑资源的质和量?
4-1.如果是为区块链系统提供某种解决方案,那它解决的是什么样的问题?
4-2.如果是为区块链系统提供某种解决方案,该解决方案能否在不同的区块链系统中通用?这个解决方案需要什么样的资源支持,能否获得?
声明:本文为火星作者作品,不代表火星财经官方立场。本文转载请注明出处、作者、链接。
提示:投资有风险,入市需谨慎。这些信息不作为投资和财务建议。