# 奖励机制

DIN协议中的激励机制鼓励贡献者提交数据，以提高模型的准确性，验证者验证数据的正确性，以及计算节点将数据集转换为向量。该激励机制结合了游戏化积分（在系统中称为“Wafer”）和基于预测市场的方法。

对于数据贡献者，参与者根据他们对模型性能的改善程度获得奖励，这一改善通过测试数据来衡量。

### 数据贡献奖励

如图1所示，该过程分为三个阶段。

<figure><img src="https://content.gitbook.com/content/r2PyvL89MTgmGKhg3h05/blobs/9JuSXuN2JDgB5rn6xbqR/image.png" alt="" width="375"><figcaption><p>Fig 1. Bounty-based Incentive Mechanism. h is used to denote a machine learning model and D for a dataset. The smart contract clipped the loss function L(h, D) to the range [0, 1].</p></figcaption></figure>

在承诺阶段，提供者存入赏金并定义损失函数L(h, D)。该函数用于测量模型在任何数据集D上的损失（通常是数据集中各点的平均损失）。最后，提供者以加密方式承诺一个测试数据集，其中小部分是最初公开的随机分数。

在参与阶段，参与者添加数据或以其他方式更新模型。每个参与者必须在更新时质押一定数量的网络代币。当满足结束条件（如最大时间限制或数据量）时，此阶段结束。如果新的提供者承诺新的测试数据，则可以开始新的周期。

在奖励阶段，提供者上传测试数据集，智能合约检查以确保其满足承诺条件。然后，智能合约为所有参与者确定奖励，如下文所述。

**奖励计算**

首先，假设赏金 B = 1，那么每个参与者的奖励就是他们的质押加上以下数值：

<figure><img src="https://content.gitbook.com/content/r2PyvL89MTgmGKhg3h05/blobs/tmWVS44qnUKc0vml0I7D/image.png" alt="" width="180"><figcaption></figcaption></figure>

这里提出的奖励函数基于自动市场制造商或基于评分规则的预测市场。可以想象如下：智能合约首先向第一个参与者支付 L(h0, D)。他们的数据将模型更新为 h1，因此他们向第二个参与者支付 L(h1, D)。这个过程持续进行，直到最后一个参与者向智能合约支付 L(ht, D)。模型 ht 的表现越好，参与者 t 需要支付给前面的参与者的数量就越少，因此他们被激励提供尽可能有用的数据（相对于预期的测试集）。（如果 ht 的表现比之前的模型差，t 会损失部分或全部的质押。）总的来说，智能合约支付的净金额为 L(h0, D)−L(ht, D)，这是所有贡献带来的总改进。根据对损失函数的假设，这个值最多为 1。

最后，我们必须将这一机制扩展到赏金 B。J.D. Abernethy 提出的方案要求所有参与者质押 B，这在实际操作中不可行。因此，采用每次迭代 B 次的方式来实现。每次迭代中，参与者质押一些代币并获得奖励。如果由于损失而无法再质押代币，参与者将退出。尽管这有些复杂，但可以认为，ht 表现越好，参与者 t 得到的奖励就越多，因此我们认为参与的激励与目标是高度一致的。

### 数据验证和计算的奖励&#x20;

即将发布...
