EOS 代币模型和资源使用


节选译自 EOS 白皮书

所有区块链都是资源受限型,需要系统来防止滥用。通过 EOS.IO 软件,应用可以消费三大类资源:

  • 带宽和日志存储(磁盘)(Bandwidth and Log Storage (Disk))
  • 计算和计算Backlog(CPU)(Computation and Computational Backlog (CPU))
  • 状态存储(RAM)(State Storage (RAM))

带宽和计算有两个组成部分,即时使用(instantaneous usage)和长期使用( long-term usage)。一个区块链维护所有消息的日志,并且该日志最终由所有全节点存储和下载。通过该消息日志,可以重建(reconstruct)所有应用的状态。

计算债务(computational debt)是必须执行的计算(calculations),这种计算从消息日志重新生成状态(regenerate state from the message log)。如果计算债务增长幅度过大(grows too large),则需要对区块链状态进行快照,并丢弃该区块链的历史(discard the blockchain's history)。如果计算债务增长太快,可能需要6个月才能重放(replay)1年的交易。因此,重要的是计算债务得到周密管理。

区块链状态存储是可从应用逻辑进行访问的信息。它包括订单和帐户余额等信息。如果状态从未被应用读取,则其应不被存储。例如,博客文章内容和评论没有被应用逻辑读取,因此它们应不被存储在区块链状态中。同时,一个帖子/评论,投票数和其他属性的存在,被存储为区块链状态的一部分。

区块生产者发布其可用容量,用于带宽,计算和状态。EOS.IO 软件允许每个帐户消耗可用容量的一定百分比,与其 3 天 staking 合约中的持币量成正比。例如,如果基于 EOS.IO 软件的某个区块链启动,如果一个帐户持有该区块链可分配总币量的 1% ,则该帐户就有可能利用(utilize)相应状态存储容量的 1% 。

使用 EOS.IO 软件,带宽和计算容量基于部分准备金基础进行分配(are allocated on a fractional reserve basis ),因为它们是短暂的(transient)(未使用容量无法为将来的使用而保存起来)。EOS.IO 使用的算法类似 Steem 用于限速带宽使用(rate-limit bandwidth usage)的算法。

客观和主观测量(Objective and Subjective Measurements)

如前所述,插装式计算使用(instrumenting computational usage)对性能和优化有重要影响;因此,所有资源使用方面的限制最终都是主观的,根据区块生产者各自的算法和估计来执行。

也就是说,以客观进行衡量的有些事情是微小的(there are certain things that are trivial to measure objectively)。传递的消息量和存储在内部数据库中的数据大小,可以客观地进行测量。EOS.IO 软件使区块生产者能够对这些客观测量采用相同算法,但对主观测量可能选择采用更严谨(stricter)的主观算法。

接收方支付(Receiver Pays)

传统上,这是关于支付业务运营成本的生意——支付办公空间,算力及其他业务运营成本。客户从商家购买具体产品,从产品销售中获得的收入用于覆盖运营成本。同样,没有网站让访问者有义务为访问其网站而支付小额费用,以覆盖主机费用。因此,去中心化应用不应强迫其客户为其区块链的使用行为,而直接支付给该区块链。

EOS.IO 软件不要求其用户为其使用行为而直接支付给相应区块链,因此不会限制或阻止企业为其产品确定自身的获利策略。

授权能力(Delegating Capacity)

如果一条区块链使用 EOS.IO 软件启动,一些代币持有者可能不需要立即消耗全部或部分可用带宽,这样的持有者,可以选择向其他人提供或出租未消耗带宽;运行 EOS.IO 软件的区块生产者将承认这种容量委托(recognize this delegation of capacity),并相应地分配带宽。

将交易成本与代币价值分开(Separating Transaction costs from Token Value)

EOS.IO 软件的主要优点之一是,应用可用的带宽量完全独立于任何币价格。如果应用所有者拥有相关币量,则应用可以在固定的状态和带宽使用之内,无限期运行(within a fixed state and bandwidth usage)。开发者和用户不受任何币市场价格波动的影响,因此不依赖于价格流入(price feed)。EOS.IO 软件使区块生产者能够自然地增加每个币可用的带宽,计算和存储,而不依赖于其币值(The EOS.IO software enables block producers to naturally increase bandwidth, computation, and storage available per token independent of the token's value)。

一旦区块生产者生产区块,EOS.IO 软件就会给他们币奖励。币值将影响区块生产者所能担负得起的购买量,包括带宽,存储和计算量; 这种模式自然地利用币值上升来提升网络性能。

状态存储成本

虽然带宽和计算可以被授权(can be delegated),但应用状态的存储需要应用开发者持币,直到该状态被删除。如果该状态永远不被删除,那么该币就被从流通中有效移除(即无法流通)。

每个用户帐户需要一定量的存储量; 因此,每个帐户必须拥有一个最小余额。随着网络存储容量的增加,这种所需余额最小值将会下调。

区块奖励

区块生产者每生产一个区块,EOS.IO 软件就会奖励新代币( awards new tokens)给该生产者。创造的币量由所有区块生产者发布的所需薪酬的中位数( the median of the desired pay)决定。EOS.IO 软件可能会配置执行一个生产者奖励上限,使币供应量年总增长率不超过5%。

社区效益应用(Community Benefit Applications)

除了投票选择(electing)区块生产者,根据 EOS.IO 软件,用户还可以投票选择(electing) 3 个社区效益应用,也称智能合约。这 3 个应用将获得的币量多至,每年币供应量的配置百分比减去已经支付给区块生产者的币量(These 3 applications will receive tokens of up to a configured percent of the token supply per annum minus the tokens that have been paid to block producers)。这些智能合约的获币量等比例于每个应用从持币者处收到的投票数。被投票选中过的应用或智能合约可由持币者所新选出的应用或智能合约替代。

原文:https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md#atomic-transactions-with-multiple-accounts
译者:白花花 @ 币未来 biweilai.com