区块链网站|NFTS Filecoin(FIL) FIL搜索网土星奖励分配

FIL搜索网土星奖励分配

广告位

FIL检索网络土星Saturn奖励分配

激励分配设计

在讨论在节点运营商之间分配奖励的选项之前,我们尝试满足一些原则:

简单比复杂好我们只会在复杂性达到目标的时候增加复杂性,所以我们会努力构建最简单的过程来达到我们的目标。

有限奖励既然我们还在测试阶段,就要限制每天的奖励,以避免在发生DDoS攻击等异常行为时超支。

鼓励可靠和高效的服务这是我们在设计激励措施时关心的两个主要属性。首先,我们希望运营商能够提供大量下载时间快的搜索服务。检索量以每天服务的总TB来衡量,下载时间以首字节时间(TTFB)来衡量。其次,我们希望运营商可靠而体面地失败(这对于L1比L2更重要)。

鼓励诚实应鼓励操作员报告自己的错误,并如实记录自己的日志。

对自由市场的偏好我们试图利用自由市场机制和供求关系来避免为内容交付定价。因为我们不知道运行土星的实际成本,我们需要允许一些价格发现。新服务的定价是一个难题。当我们有价格不确定性的时候,让市场决定市场是一个很好的设计。

奖励池

奖励池是为节点运营商保留的一组Filecoin。想法是,每天我们都会用掉这个奖励池的一部分,分配给当天提交给网络的资源。

有了奖励池,我们可以实现两件事:

我们保证有限的奖励,有限的回报,因为我们花的钱不能超过我们在池子里的钱。

我们允许卖家找到价格。特别是,我们每天都会给出一定的预算,我们要求节点运营商决定他们愿意为预算贡献多少资源。当网络达到平衡时,我们将能够计算节点运营商以什么价格评估他们的资源,以及我们需要向未来的客户收取多少费用。

定义奖励池时,首先要考虑的是它应该是预定义的还是可变的。在预定义的池中,在给定时间间隔内要支付的总奖励金额在开始时被定义,并且不会改变,不管网络状态如何。一个常见的例子是比特币的铸造模型,在这种模型中,要支付的奖励总额在协议中定义,并且完全可以预测。

另一方面,在非预定义的池中(即,可改变的),要分配的奖励的总量可能由于网络增长和/或客户参与而改变。Saturn的一个例子是内容发布者加入并为使用服务提前付费的情况。在这种情况下,他们将为不断增长的奖励池提供资金,新客户的增加将导致总奖励池的增加。可变池似乎很适合土星,有两个主要原因:

因为土星有望成为内容交付市场,建立可持续的奖励流让客户为网络提供资金是最直接的方式。

由于奖励将取决于引入网络的资金,所以鼓励所有参与者“出售”土星并为其使用做出贡献。

但是,可变池的缺点是不可预测性,这可能会阻止节点运营商进行大量的前期投资。另一种选择是有一个混合池,其中包含一个预先确定的基本组成部分和一个可变组成部分。基本部分将由固定的初始Filecoin池资助,而可变部分将由加入网络的新客户资助。这样,基本池提供了更多的可预测性,而可变池鼓励增长和采用。这是为土星选择的设计。我们有协议实验室投资的初始金额FIL,旨在启动网络,并在初期提供稳定金额的奖励。然后,客户进来,他们的FIL将被添加到池中,从而继续为运营提供资金。

与这一考虑相关的是集中支付分配的定义。对于流入奖金池的给定新资金,我们需要定义如何分配每天的总资金来支付奖金。比特币等区块链使用指数衰减模型,其中挖掘回报随时间呈指数下降。这种模式有利于早期采用者,并使网络在开始时实现更快的增长。另一种选择是在整个客户协议中平均分配总资金,这是最简单的方法。另一种方法是将报酬分配与网络的增长(例如网络提供的总带宽)联系起来。这种设计的好处是可以保持激励与增长一致,因为运营商希望共同发展网络以获得更大的回报。它还减少了较大奖励对早期采用者的影响,并使奖励随着时间的推移或多或少保持不变。这个问题已在模拟部分进一步讨论,并且是模拟期间测试的设计选项之一。

第三个考虑是我们是否应该有一个池或分裂它。拆分是指我们将特定数量的Filecoin分配给特定的节点组(L1和L2s)或特定的激励措施(例如速度和可靠性)。

拥有多个资金池使我们能够在不改变奖励分配公式的情况下调整激励措施。例如,如果我们想激励网络降低平均TTFB,我们可以增加分配给快速检索的池,因此将为该特定行为分配更多奖励。多个池还允许客户根据他们想要的服务类型支付不同的费用。例如,客户可以向“速度”池投入更多资金,以鼓励更快的交付。

多个资金池可以发挥作用的另一个领域是基于地区的定价。如果我们发现不同地区的成本差异很大,我们希望刺激特定地区的增长,那么每个地区都有一个奖励池是实现这一目标的干净方式。

谨记简单胜于复杂的原则,拥有一个池似乎是最好的开始方式。这并不意味着在未来的版本中不能重新考虑这个想法。然而,对于第一个版本,潜在的好处无法弥补增加的复杂性。

惩罚

正如第一部分所讨论的,惩罚可以成为激励诚实的强大动力。然而,为了使激励有效,惩罚需要足够大,以使发现的风险无利可图。换句话说,考虑到检测概率,提交虚假/篡改日志的预期回报应该低于诚实的预期回报。这是我们在模拟中测试不同奖励机制时将建模的指标之一(更多详细信息请见下一节)。

独立于惩罚的金额和所需的调整,我们可以想到四种主要的惩罚机制,并且每种机制的惩罚范围都在增加:

从奖励计算中删除标记的日志。在这个机制中,我们只是忽略了标记的日志,所以节点操作者的报酬会因为忽略了虚假的日志而略有减少。

惩罚标记节点的总奖励。这里,一般惩罚适用于预期支付给节点运营商的总报酬。这是一种个体激励,直接针对节点的期望报酬。此外,该设置允许我们惩罚只能在节点级别检测到的行为(例如,请求服务的数量高得离谱)。

L1节点根据群体中标记实体的数量进行惩罚。该机制旨在防止L1节点与其集群之间的共谋。通过根据集群的行为惩罚L1节点,我们鼓励L1节点可靠地报告其集群的性能。

根据网络中有多少标记的活动来惩罚整个网络。通过把诚实作为网络的集体目标,这是一个更广泛的机制。因此,应防止节点间的合谋,建立网络“作弊”问责制度。还会阻止节点攻击自己视为竞争对手的其他节点,从而获得更大的回报。

请注意,这些机制不是排他的,我们可以同时使用不同的机制。比如我们可以删除标记的日志,删除虚假日志后对操作者的总奖励给予额外的惩罚。

处罚的范围和每次处罚的确切数额将是模拟考试的重要内容。

关于惩罚的另一个重要考虑是,它们是否应该只减少未来的收益,或者我们是否应该要求节点提供抵押品并对抵押品进行惩罚。拥有抵押品的好处是,节点运营商需要做出更高的承诺,并利用自己的损失来避免。另一方面,抵押物的缺点是增加了节点运营商的进入门槛。

考虑到该系统的第一次迭代旨在启动网络并了解人们将如何使用(和滥用)土星,低进入壁垒似乎更重要。因此,我们建议在开始时不要有任何抵押品,并重新评估其对未来迭代的需求。

服务评分功能

服务评分函数是将服务指标(如带宽、节点类型或TTFB)映射为实数的函数,定义了给予特定节点运营商的奖励比例。秒,秒,秒,秒,秒,秒。

更具体地说,如果我们有一个节点(要分配的奖励数量和该节点的服务指数由定义,服务评分函数是这样的函数:nI=1,2,nI=1,2,rI,m,m,m,m,m,m,m,m

对我的奖励是我,我,r,I=小号(米我),r=小号(米我)

n I=1小号(mi I)=1 I=1小号(mi I)=1

在详细说明评分功能之前,我们需要定义服务指标。在Saturn中,服务可以通过三个主要指标来衡量:

带宽——在给定的时间间隔内,从Saturn传输到最终用户的字节数。这是我们要评分的主要指标,因为它对网络的“使用”进行了编码,是节点运营商成本的主要驱动因素。

首字节时间(TTFB)和总下载时间——我们希望在Saturn中看到的行为之一是快速的内容交付,因此内容交付速度是一个重要的激励向量。我们衡量它的一种方法是通过TTFB和最终用户记录的总下载时间。请注意,由于我们没有从最终用户那里收集日志,我们需要使用调度程序执行的请求样本来估计平均TTFB和下载速度。此外,加入的客户(即内容发布商)将能够收集这两个指标,因此我们也可以使用他们的日志来估计平均TTFB和下载速度。

正常运行时间——可靠性是我们希望在土星上看到的另一种行为。L1节点应该在线,并在出现故障时警告网络并适度地失败。这里的另一点是,在奖励正常运行时间的同时,我们也在某种程度上奖励可用的服务。前两个指标侧重于最终用户体验到的实际服务,而正常运行时间考虑了节点为网络执行服务的可用性。

还有一种行为。这里不讨论3354地理覆盖。通过提供更大的奖励,使用多个资金池来激励某些领域会更容易。一旦我们对用户和节点运营商的位置有了更清晰的了解,这将在未来的版本中得到解决。

带宽评分功能

在对带宽打分时,带宽越高,奖励份额越大。因此,评分函数不仅需要满足上面定义的标准,还需要严格单调递增。我们可以使用带宽分数的正方幂来实现这一点。更具体地说,如果我们有:

n个节点运算符(I=1,2,n=1,2,)

Bi:当前时代节点运营商I提供的总带宽。

本期支付给节点运营者I的报酬由以下评分函数定义:s

(bi):=bkinj=1bkj

其中是任何正实数。奖励在奖励分配上的灵活性。下图描绘了给予单个节点运营商的报酬与其贡献的带宽比率之间的比率。每条线代表不同的一个。kRk \\u k

使用超线性评分函数(),奖励增长速度快于贡献的带宽份额。这促使运营商改善服务,因为他们通过增加服务的带宽获得越来越多的回报。另一方面,对于次线性函数(,奖励份额的增长速度比提供的带宽份额要慢。这将刺激更高的奖励分配,因为通过提供更多的带宽来获得更大份额的奖励变得越来越困难。k1 \\u 1k1 \\u 1

的最优值是多少?因此,这将是我们在模拟分析过程中要调整的参数。凯

下载次数评分功能

对于TTFB和下载速度,我们不能直接用我们的函数来换带宽。有两个原因:

下载时间越短越好,也就是说评分函数需要单调递减。

节点可能对网络的下载时间产生积极和消极的影响。换句话说,如果许多节点大量加入网络,它们将降低整个网络的性能。另一方面,对于带宽,节点只能增加更多的带宽,所以在这个具体指标上不会对网络产生负面影响。

这里另一个重要的考虑是,一个非常慢的单个请求通常对网络没有什么价值。只能说,在大量节点运营商快时,土星提供的是快服务。考虑到这一点,我们对鼓励单个节点无限减少下载时间不感兴趣,而是希望整个网络优于每个下载时间指标的一个特定阈值。

编码这种激励的一种方式是使用来自给定节点运营商的请求的百分比,其中TTFB和总下载时间都低于一些预定义的阈值。有了这个新指标,我们可以使用为带宽定义的完全相同的函数。同时,我们避免对在少数请求上达到极快速度的节点操作者进行奖励,而是根据他们的请求有多少优于阈值进行奖励。

为什么我们使用百分比而不是请求?如果我们选择请求的数量,我们将在这个激励中间接考虑网络使用情况。速度始终低于阈值的两个节点操作者,只根据服务的请求数,会得到不同的回报。

正常运行时间评分功能

我们目前有一个名为health_check_failures的表,用于存储来自节点的“停机”事件的数据。调度程序每分钟都会向每个节点发送一次运行状况检查,并存储结果。运行状况检查失败的节点将被记录在health_check_failures表中。

我们可以根据这些信息估计停机时间。建议是计算每个给定时间内运行状况检查失败的百分比。让di表示节点I的健康检查的失败百分比.我们定义UI=1di=1作为节点I的正常运行时间估计值.

例如,假设我们每小时付款。我们每小时进行60次健康检查(一分钟一次)。如果节点20次未能通过健康检查,则:

dk=2060=13uk=1dk=23=2060=13=1=23

值得注意的是,这种方法只提供了正常运行时间的估计。它还以一种激进的方式惩罚节点停机,因为它假设如果一个节点没有通过健康检查,它必须停止整整一分钟。此外,它将错过运行状况检查之间的停机时间。

组合评分函数

既然我们已经描述了哪些函数可以用来对每个服务进行评分,我们需要定义如何将服务组合成一个单一的评分函数。

假设我们有两个要合并的服务指标,它们各自的评分函数分别是和。在这种情况下,我们可以定义以下两种方式将两个独立的评分函数组合成一个新的评分函数:小号1(A Me)=A Mi Me nj=1A Mi J1 ()==1小号2(b Me)=bn Me NJ=1B NJ2 ()==1。

线性组合:s (ai,bi)=qs1 (ai) (1q) S2 (bi)(,)=1 () (1) 2(),其中\\(q \\ in [0,1]\\)

直接乘法:s (ai,bi)=amibni NJ=1amjbnj(,)==1。

线性组合的优点是很容易给每个服务指标分配相对值(通过改变Q参数)。这类似于拥有两个奖金池,因为服务指示器A接收固定数量的奖金qR,而服务指示器B接收其余的。也很容易解释,这是一个巨大的优势。

另一方面,直接倍增有助于在所有服务中实现更均衡的性能。因为分数是相乘的,如果其中一个分数很小,对总奖励的影响会比线性组合更大。

目前还不清楚最好的方法,这是我们将通过模拟测试的另一个功能。但是,除非有强有力的论据支持直接乘法方法,否则线性组合方法的可解释性和灵活性使其成为更好的选择。

惩罚后的调整

让我们从一个例子开始这一部分。假设一个新的操作者加入了Saturn,并开始试图通过向自己的节点发出大量错误请求来玩弄系统。前两天过后,欺诈检测系统会标记操作员并对其进行处罚。这意味着,原本分配给这个欺诈节点运营者的奖励将不予支付。

现在,让我们考虑这个例子中剩余的操作符会发生什么。即使是伪造的,他们仍然在为网络“贡献”带宽。在计算全网的奖励时,会考虑欺诈运营商记录的流量,所以奖励的一部分会“分配”给运营商。这意味着,在欺诈运营商添加一个日志期间,分配给其余运营商的总奖励将低于该运营商从未加入网络的情况。如果记录的虚假流量占网络总流量的很大一部分,问题可能会进一步加剧。

因此,我们得出了一个可能的攻击向量,欺诈节点可以通过简单的添加和添加虚假流量的日志来降低剩余运营商的奖励。这个经营者不会为自己获得任何报酬,却能降低给予其他经营者的价值,令人担忧。因此,为了避免这种情况,当节点运营商被标记,显示奇怪的高带宽服务时,我们需要调整其他运营商的奖励,以避免大幅降低自己的奖励。

要实现这个目标,我们别无选择。在计算给定时间段的奖励份额时,我们会得到所有节点运营商的汇总绩效指标。标记操作员后,我们可以做三件事来汇总数据以调整奖励:

完全排除标记运算符的行。

好处:适用于没有前期数据的经营者,减少因处罚而未分配的奖励金额。

缺点:当诚信节点被标记后,运营商会得到奖励。

用操作者的历史平均值替换标记操作者的线。

好处:当诚信节点被标记后,对经营者的奖励减少。

缺点:对没有前期数据的运营者不起作用。

用该时间段的网络平均值替换标记操作员的线。

好处:适合没有前期数据的运营者,在标记诚信节点时减少对运营者的奖励。

缺点:标记小节点,运营者获得的奖励会少。

第二个选项被自动排除,因为它不能用于具有不良服务历史的节点。这给我们留下了选择1或3。方案1更适合资本分配,因为它会导致更高份额的报酬被分配给未标记的经营者。另一方面,方案3避免了网络在标记诚实节点时获得奖励的不平衡激励。然而,由于运营商无法控制欺诈检测系统,我们认为选项1设计的简单性和它导致更高的资本分配的事实取代了标记诚实节点时可能出现的问题。

L2s支出

在第一部分,我们描述了L1和L2节点将如何在土星上相互作用。就硬件要求和服务期望而言,运行L1节点比运行L2节点要求更高。他们直接向最终用户提供请求,并处理发送给Saturn的所有请求。另一方面,L2节点围绕单个L1节点形成一个集群,作为其缓存的扩展。它们是对硬件要求不高的家用机器,可以随意离线。

将L2集团视为其L1节点的缓存扩展是一个很好的类比。在某种程度上,L2为L1节点的性能做出了贡献。群体越大,性能越好,L1节点传递内容的能力就越强。因此,L1与团队分享他们获得的一些奖励是很有意义的。特别是,我们可以使用前面的评分函数在L1节点之间分配奖励。然后根据每个L2对L1提供的服务的贡献,分配的奖励会有一部分转嫁给蜂群。

考虑到这一点,要回答的问题是我们如何衡量L2节点对L1节点提供的服务的贡献?当向L1节点提交请求时,有两种可能——L1节点缓存了内容,或者没有缓存。如果内容被缓存,集群对服务没有贡献。然而,如果内容没有被缓存,L1节点将从它的群请求数据。缓存中有内容的L2节点将开始将内容发送到L1节点,因此从请求中获得的部分回报应该与发送内容的L2运营商共享。

因此,我们可以使用L1节点提供的带宽份额,该份额使用缓存在L2和L1节点之间分配回报。如果R是给定周期内分配的总回报,C是L1使用cache的带宽比,那么支付给L2节点的总回报将是R=(1c) r=(1),对于 [0,1] [0,1]。请注意,我们不会给L2 100%缓存未命中请求产生的奖励,因为即使在这些请求中,L1也起着非常重要的作用。因此,L2s只接收参数中编码的部分奖金。

一旦我们有了它,我们可以在L2节点之间使用相同的评分函数。这里需要注意的是,L2不需要正常运行时间,所以我们可以降低它的正常运行时间阈值,或者完全删除评分功能。RRR

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/fil/61630.html

作者: 简称

上一篇
下一篇

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部