主页 > imtoken官网下载1.0安卓 > 区块链应用程序(去中心化应用程序)是什么样的?

区块链应用程序(去中心化应用程序)是什么样的?

imtoken官网下载1.0安卓 2023-11-11 05:11:40

EOS的技术白皮书给出了应用所需的六个条件(如下图),EOS的软件设计也确实是对应这些条件设计的。 在本节中,我们将重点介绍 EOS 针对应用程序的三个特殊设计:用户免费、账户体系和存储。

区块链应用的六大条件:

支持数百万用户需要能够处理数千万日活跃用户的区块链技术。

有了免费,应用开发者就需要足够灵活,为用户提供免费服务; 用户无需付费即可使用该平台或从其服务中受益。

为了方便升级和漏洞修复,区块链平台必须提供软件和智能合约升级的支持。

低延迟和及时反馈是良好用户体验的基础。

串行性能,一些应用不能用并行算法实现,因为它们必须顺序执行命令。 区块链需要提供强大的串行性能支持。

并行性能,大型应用程序需要在多个 CPU 和计算机之间分配工作负载。

《EOSIO技术白皮书》翻译版:; 英文版:#accounts.区块链应用在多大程度上是去中心化的?

与互联网类似,对区块链有用的所有期望都取决于应用程序,通常称为去中心化应用程序 (DAPP)。 在讨论EOS对应用的特殊设计之前,我们先来讨论一下区块链应用或者所谓的去中心化应用的架构。 这是区块链应用的最前沿,大家还在探索中。

关于应用的前景,在《区块链革命》一书中,Don Tapscott 曾预测:“我们正在进入一个数字革命的新时代,人们可以在其中编程和共享分布式软件。就像区块链协议本身是distributed,分布式应用程序或 DAPP(去中心化应用程序)运行在多台计算机上,而不是在单个服务器上。”

经过20多年的发展,信息互联网的网站或者手机应用长什么样子,我们都已经很熟悉了。 那么,与区块链相关的去中心化应用到底是什么?

要了解区块链应用或去中心化应用,我们还是要从熟悉的事物入手。

现在公认的发展前景是,互联网将从信息互联网跨越到基于区块链的价值互联网。 信息互联网的应用是网站和移动应用程序。 在看应用的时候,很多人自然会想到区块链上会有原生的区块链应用或者去中心化的应用。

这样形成的结构如图1a):网站、手机APP对应信息互联网,所谓区块链应用/去中心化应用对应区块链。 早期的应用确实表现出这样的状态,比如区块浏览器,每个区块链自己的钱包等等。 每个区块链都是一个分布式账本和一个提供数据和功能的去中心化网络。 早期应用程序与这些区块链交互。

比特币代码文件是什么样子的_比特币是什么样子的图片?_莱特币和比特币代码

但我们很快发现,当普通用户想要使用区块链时,应用可能会变得类似于图 1 b):在网站和移动应用程序中有一个“区块链”,与区块链交互的数据和功能应用程序,”而普通用户实际上看到的是网站和移动应用程序。 我们甚至可以说,对于普通用户来说,可能根本就没有区块链应用或者去中心化应用,只有应用。

比特币代码文件是什么样子的_莱特币和比特币代码_比特币是什么样子的图片?

图 1:区块链应用

如果单看区块链的应用,情况可能如图2所示。

比特币代码文件是什么样子的_比特币是什么样子的图片?_莱特币和比特币代码

图 2:区块链应用的可能性

一些应用程序可能连接到多个区块链。 例如,常见的应用程序交易所和钱包连接到多个区块链。

基于Steem区块链的Steemit博客应用是为数不多的可供普通用户使用的应用之一。 在Steem区块链上,上述应用架构更加清晰地展现出来:

Steem 的主要开发者也是 EOS 的主要开发者 Daniel Larimer (BM)。 EOS 概括了 Steem 区块链并进行了许多改进。 例如对比Steem和EOS,我们可以看到EOS不再采用将内容存储在区块链上的不合理设计,而是继续扩展Steem中已有的账户和权限体系。

比特币系统已经完成了使用区块链进行价值表示和价值转移的概念证明,Steem区块链和Steemit博客平台的早期项目可能已经完成了区块链应用的概念证明。 现在,EOS 建立在许多以前的设计之上。

在 Decentralized Apps 中,开发人员 Siraj Rawal 讨论了去中心化应用程序是怎样的。 他认为区块链可能在过去集中的四个方面完成去中心化:

在我看来,区块链的核心功能是去中心化的价值表示和价值传递,分别对应上述分类中的财富和计算。 在尝试构建应用程序时,我们应该同时关注两者。 与其他主要区块链一样,EOS 两者都做得很好。 它还寻求大幅提高区块链本身的核心性能,即每秒交易数 (TPS)。

也许同样重要的是,EOS 提供了比任何其他区块链更多的功能和特性来开发可供普通用户使用的应用程序。 接下来我们讨论EOS为应用做的三件事:用户免费、账户和权限体系、存储体系。

用户免费

莱特币和比特币代码_比特币是什么样子的图片?_比特币代码文件是什么样子的

在讨论应用所需的条件时,EOS 白皮书写道:“用户无需付费即可使用平台或从平台的服务中受益。”

对用户免费是 EOS 与比特币和以太坊之间的一个显着区别。 在比特币和以太坊系统中,普通用户在进行转账交易等操作时,需要支付相应的交易手续费。 EOS 将承担此成本的压力转移给了应用程序提供商。

免费用户与EOS的代币经济设计密切相关。 使用区块链的应用程序通常需要三种资源,它们由维护去中心化网络的计算机提供,而对于 EOS,这三种资源由区块生产者 (BP) 提供。 这三个资源是:

这三种资源(带宽资源、计算资源和状态资源)对应于计算机网络的三种能力。 对于熟悉计算机的人来说,带宽资源和计算资源很容易理解,而状态资源则是区块链的专有名词。 前面讲过,区块链账本中存储的是状态,如交易账本、账户余额等,顾名思义简称为RAM,其性质大致相当于内存。

EOS也具体举例说明了哪些应该存储在状态中,哪些不应该存储在状态中。 例如,区块链应用程序的逻辑不需要读取博客文章内容和评论,因此不应将它们存储在区块链的状态中。 但是,博文或评论的存在、投票数等属性需要存在于区块链的状态中。

特别是,BM 之前设计和开发了 Steem,这是一种内容特定的区块链,其中博客文章和评论的文本存储在区块链的块(区块链分类账)中。 BM 在实践中可能会意识到,正确的做法应该是只在区块链账本中存储与交易相关的信息。

简单来说,区块链是用来交易的,区块链的状态就是交易账本。 那么比特币代码文件是什么样子的,与交易相关的信息应该存储在交易账本中,与交易无关的信息不应存储在交易账本中。

EOS区块链这三种资源的消耗机制如下:区块生产者(BP)公布可用带宽(bandwidth)、计算(computation)和状态(state)容量。

EOSIO系统允许每个账户消耗一定比例的可用资源比特币代码文件是什么样子的,这是由该账户在“三日抵押合约”中持有的代币数量决定的。

例如,假设有一个基于 EOS 的应用程序,如果一个账户持有总代币的 1%,那么这个账户可以使用 1% 的状态存储容量。

因此,如何让用户免费使用,EOS的设计关键在于以下两点。

首先,用户不直接向区块链支付,而是由应用程序处理。

在以太坊区块链网络中,我想将以太坊或其他基于 ERC20 的代币转让给他人。 作为交易的发起者,我需要直接为区块链网络设置一笔交易费用(gas)。 支付以允许以太坊网络处理交易。

EOS 的设计逻辑是基于这样的假设:“没有网站需要访问者支付少量费用来维护服务器。因此,去中心化的应用程序不应该强迫其客户支付区块链费用来使用区块链。” 直接成本。”

比特币代码文件是什么样子的_莱特币和比特币代码_比特币是什么样子的图片?

尽管 EOS 使用“Receiver Pays”作为讨论部分的副标题,但它的想法是应用程序本身决定采用哪种方法。 通常,应用为了方便用户使用,其基本逻辑应该是应用自己结算费用,最终用户可以免费使用区块链网络。

其次,将交易成本与代币价值分开。

在以太坊区块链网络中,我们以以太币支付交易费用。 随着以太币价格的涨跌,交易成本随代币价格波动。 EOS的设计逻辑是:“交易成本与代币价值分离”。

EOS区块链网络的做法是,一个应用所拥有的带宽、计算、状态等资源与其持有的证书数量相关,但由于不需要消耗,所以可视为与一定程度上的证书。 价值或价格无关紧要。

如果我们作为应用开发者,没有持有足够的证书,EOS区块链网络还提供了一种租赁机制,也就是“委托容量”:持有证书的人可能不需要立即消耗全部或部分可用带宽,并且他们可以选择将未使用的带宽委托或出租给其他人。

但是注意这句话:“带宽和计算可以授权给他人,但是应用状态的存储需要开发者持有通行证,直到状态被删除。如果程序的状态从未被删除,那么这部分通行证的证书将停止流通。”

根据EOSIO文档,这里的状态可以认为是指应用程序占用的区块链网络的RAM存储空间。 原文是:应用程序状态的存储将要求应用程序开发者持有令牌,直到该状态被删除。 如果状态永远不会被删除,那么代币就会有效地从流通中移除。

对比以太坊和EOS,我们可以看到,在以太坊上交易,个人用户需要支付交易手续费,而在EOS上交易,则需要应用提供商承担费用。 现在看来,主要成本与RAM有关。 与存储空间相关的账户和权限系统

EOS 与比特币和以太坊的一个很大区别是它允许用户创建一个长度不超过 12 个字符的用户名,它代表我们的帐户。

以太坊账户

比特币区块链完全没有账户的概念,比特币只有地址; 以太坊设计了账户,但远没有EOS完整的账户权限相关功能。 为了便于理解,我们先看一下从比特币到以太坊的“从地址到账户”,再看EOS的账户设计。

比特币没有账户,所有的比特币交易都是地址之间的交换。 我们持有的比特币是我们自己地址中比特币的总和。 在比特币系统中,没有账户和余额这样的东西。

以太坊引入了账户的概念:以太坊账户。 每个账户包括四项信息:随机数、账户余额、合约代码(如果有)、存储(通常为空)。

以太坊包括两种类型的账户:

比特币是什么样子的图片?_莱特币和比特币代码_比特币代码文件是什么样子的

对于比特币,它只有由外部私钥控制的地址。 以太坊外部账户是没有代码的,它可以创建并签署交易,即发送消息,合约账户收到消息后可以执行相应的代码并处理存储。 这里的“合约”代码相当于存在于以太坊执行环境中的“自治代理”。 它有自己的以太坊账户。 收到交易信息后,就相当于被刺了,然后自动执行一段代码。

与比特币一样,以太坊区块也存储交易,其中包括以下字段:接收方(接受账户)、发送方签名、发送方发送给接收方的以太币数量等。

EOS账户

EOS的账户体系要复杂得多,它更像是银行的账户体系或者我们在互联网应用(如谷歌、微信等)中的账户体系。

下面我们来看一下EOS账户体系的构成。

一个 EOS 账户系统可以向另一个账户发送动作,每个账户可以设置一个处理程序来自动处理发送给自己的动作。 动作和处理器的组合就是 EOS 的智能合约(见图 3)。

每个账户都有自己的内部数据库(私有数据库),只能被自己的动作处理器访问。

莱特币和比特币代码_比特币是什么样子的图片?_比特币代码文件是什么样子的

图 3:EOS 账户的交互:操作和处理器

EOS系统提供了一个标准的基于角色的权限管理体系,使得所有基于EOS的应用都可以采用这个账户体系和权限体系,而无需重新造轮子。

在BM之前开发的Steem区块链中,区块链引入了基于角色的权限体系。 他在 Steem 中硬编码了三个用户权限:owner、active 和 posting。

在讨论Steem时,EOS白皮书说:“发帖权限只能进行投票、发帖等社交行为,而活跃权限可以做除更改所有者之外的任何事情。所有者权限用作冷库,它是无所不能。无所谓。”

EOS 对此进行了进一步改进,并推广了这种基于角色的权限系统,“允许每个帐户持有人定义自己的权限层次结构和操作分组”。 这样做可以为应用程序开发人员提供更多自由。

有关帐户和权限的开发信息,请参阅 EOS 开发者文档。

比特币代码文件是什么样子的_比特币是什么样子的图片?_莱特币和比特币代码

EOS账户权限系统中有两个默认权限组:最高级别的默认权限组是owner,第二个默认权限组是active,可以做除了改变owner之外的任何事情。 其他权限组可以从active派生出来,这些权限组的用户可以自己定义。 例如,如果我开发一个博客应用程序,我可以自己定义一个发布权限组(见图 4)。

比特币代码文件是什么样子的_莱特币和比特币代码_比特币是什么样子的图片?

图 4:EOS 白皮书中的权限系统示例

存储系统

我们都知道只有交易相关的信息应该存储在区块链区块中,那么对于去中心化应用,其他数据应该存储在哪里呢?

有关 EOS 存储的白皮书,请参阅:%20Storage.pdf。 除其他外,它强调文件不应存储在区块链的块中。

大多数基础公链并没有解决这个外围问题,而是专注于区块链的核心任务——交易。 但是为了让EOS更好的用于开发应用,EOS在2017年9月发布了一份关于EOS存储的独立白皮书,阐述了其在存储方面的发展愿景。

在讨论了星际文件系统(IPFS)、分布式存储项目(Filecoin、Maidsafe、Siacoin、Storj),以及现有的中心化存储(如DropBox、GoogleDriver、苹果的iCloud)等后,提出使用自己的Token进行组合与IPFS构成EOS应用开发的存储。

借助基于IPFS的文件存储系统,2017年12月12日,EOS团队发表了一篇文章,给出了其提出的EOS应用开发架构(见图5)。 从图中可以看出,在其推荐的应用开发框架中,建议将EOS应用存储在基于IPFS的EOS存储中(即图中的IPFS File Storage)。 到目前为止,EOS只是在存储方面提供了一个想法,距离实际实现还有一定的距离。

总的来说,区块链将价值表示和价值传递这两个与价值相关的核心功能去中心化,区块链应用可以通过数据(通证)和计算(通证)的接口与区块链进行交互。 贸易)。 作为目前最流行的新型区块链系统,EOS的特点在于,除了这两个核心功能外,它还为应用开发提供了各种便利,这可能会促进更多应用的出现。

比特币代码文件是什么样子的_莱特币和比特币代码_比特币是什么样子的图片?

图 5:EOS 应用开发框架(2017 年 12 月)

区块链的第七和第八个定义如图6所示。

比特币代码文件是什么样子的_比特币是什么样子的图片?_莱特币和比特币代码

图 6:区块链的第七和第八定义