免责声明:本文不构成任何投资建议。
小编:记得关注哦
文章来源:碳链价值
原标题:区块链是否应该追求效率:区块链系统的分层思考
作词:李华
当层次划分之后,很多问题就可以迎刃而解。
本文源于一次讨论,文章内容也是讨论内容的整理。讨论源于一个常见问题:区块链应该追求效率吗?
这个问题很常见,但很难回答。这个困难是基于两个相互矛盾的常识:
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.从分布式系统开始
一个。分析分布式账本的特性,然后思考这些特性可能产生哪些应用场景,然后根据应用场景设计应用程序或为应用程序服务的区块链系统。
b.分析分布式系统能够提供哪些资源,然后思考这些资源可能产生哪些应用场景,然后根据应用场景来设计应用程序或者为应用程序服务的区块链系统。
2、从现有需求出发
一个。分布式账本的特性可以满足哪些现有需求?您是否需要设计一个区块链应用来满足这样的需求?如果没有支持此类应用的区块链系统,是否有必要设计一个为应用服务的区块链系统?
b.使用分布式账本驱动的分布式资源可以满足哪些现有需求?您是否需要设计一个区块链应用来满足这样的需求?如果没有支持此类应用的区块链系统,是否有必要设计一个为应用服务的区块链系统?
05
写在最后
区块链系统可以问自己的问题
基于对区块链系统的分析,为了理解和明确一个区块链项目(特指区块链系统项目,不包括区块链应用项目),可能会提出一些问题:
1、出发点是用区块链解决具体问题,还是提供一个基本通用的区块链系统,或者为区块链系统提供某种解决方案?
2-1.如果使用区块链,是使用分布式账本还是分布式资源?为什么需要利用区块链?
2-2.如果使用区块链,为什么现有的区块链系统不能满足需求?此类问题的解决方案是否重要到需要设计专门的区块链系统?
3-1.如果提供区块链,是分布式账本还是分布式资源?
3-2.如果提供分布式账本,这个账本的应用场景有哪些?需要这个账本的应用程序能支持这个区块链系统的运行吗?
3-3.如果提供分布式资源,这个资源的应用场景是什么?需要这个资源的应用程序能否支持这个区块链系统的运行?能否支撑资源的质量和数量?
4-1.如果为区块链系统提供解决方案,它解决什么类型的问题?
4-2.如果为区块链系统提供一个解决方案,该解决方案是否可以在不同的区块链系统中通用?这个解决方案需要什么样的资源支持,能否获得这种支持?
声明:本文为作者驻扎“火星”作品,不代表火星财经官方立场。转载请注明出处、作者及本文链接
提示:投资有风险,入市需谨慎。此信息无意作为投资和财务建议。