IOHK官方发表:卡尔达诺权益池如何防止恶性攻击?

IOHK教育总监Lars Brünjes:在IOHK首席科学家Aggelos Kiayias教授上周的帖子的基础上,我想用这篇文章讨论我们在设计卡尔达诺奖励机制时做出的另一个选择。该机制旨在激励权益持有者 “做正确的事”并以确保其顺利,以高效和安全运营的方式参与协议。

上一篇:卡尔达诺中的权益池 - IOHK最新方案

正如上周所解释的,为了确保公平和权力下放,奖励机制遵循三个原则:

  • 在权益池达到饱和之前,总奖励应与权益池的大小成比例。
  • 权益池内的奖励应与权益池成员的赌注成比例。
  • 权益池管理者应该因他们的努力获得更高的回报。

如果权益池管理员忽略了他的“职责”并且没有创建他应该创建的块,则权益池奖励将相应减少。(防止“跑神”不干活~)

以Alice和Bob为例,他们运行相同大小的池。他们都被选为时隙领袖。Alice尽职尽责地在她领导的100个时隙中创建了所有100个时隙,而Bob错过了20个时隙,只创建了80个时隙。在这种情况下,Alice的权益池将获得全额奖励,而Bob的权益池将获得更少的奖励。(很公平嘛~)

我们面临的挑战

在这篇文章中,我想集中讨论对卡尔达诺原则的另一个潜在挑战,并解释我们如何决定克服它。在上周的帖子中提到了这个挑战: 我们如何防止一个人创建数十个甚至数百个权益池?

请注意,对于非常大的权益持有者而言,将他们的权益分成几个池来获得公平的回报是完全合法的。

举例

让我们假设我们的目标是100个权益池,因此上限为1%。让我们进一步假设Alice拥有3.6%的权益。如果Alice没有分割她的权益,她将只获得总奖励的1%。但是,如果Alice分割她的权益,将0.9%放入四个不同的游泳池,那么每个游泳池的奖励将不受限制。

如果允许一个小而狡猾的权益持有者创建大量的池(可能在假定的身份下),则会出现挑战。如果他设法吸引人们加入这些权益池(例如,通过谎报他的成本并向权益池成员承诺高回报),他可能最终控制多数股权,而该系统的个人利益很少。怎么会发生这种情况?

让我们假设有大约100个合法、诚实的池。如果我们没有防范它,恶意玩家可以相对便宜地创建100、200甚至500个虚假名称的池,并声称低运营成本和低利润率。然后,许多诚实的权益持有者会试图停止委托100个诚实池中的一个,而是将他们的权益委托给其中一个可能超过诚实的池的恶意池。因此,这些恶意池的管理者将被选为大多数区块的时隙领导者,从而获得对区块链的控制权,从而开始各种恶作剧和犯罪活动,例如双花攻击!当然,他必须支付数百个节点的运行费用。(简单来说,就是有人恶意地注册和宣传不良的权益池,吸引人们将自己的权益委托给他,当其所控制的不良的权益池数量超过了良性的权益池,这样这个恶意的人就拥有了大多数控制权)

这将是灾难性的,因为像卡尔达诺这样的股权证明系统的安全性依赖于这样一种观点,即对系统有很大影响力的人应该持有很多权益,因此有充分理由帮助系统顺利运行。

我们的解决方案

这种类型的攻击,即攻击者拥有许多身份,被称为Sybil攻击,以1973年由Flora Rheta Schreiber创作的关于一名患有多重人格障碍的女性的小说Sybil命名。

防范思路

一个想法是使池注册成本非常昂贵。为了防止攻击,这些费用需要非常高,并且会阻碍诚实的人创建合法的池。这种障碍对于权力下放是不利的;我们希望鼓励我们社区的成员建立自己的权益池,而不是阻碍他们进入!由于每个注册证书必须存储在区块链上并且将消耗必须支付的资源,因此必须支付适当的费用。(即以提高创建权益池的成本来提高作恶的成本,但是也会对正常投资者创建正常的权益池造成阻碍)

我们的博弈论分析使我们找到了一个不同的解决方案,不会阻止小体量的权益持有者建立自己的权益池,不会让他们负担过高的费用和高财务风险。注册池时,池管理员可以决定将他的一些个人权益作为保证,保证更多会略微增加他的权益池的潜在回报。

这意味着那些管理者已投入大量保证资金的权益池将更具吸引力。因此,如果攻击者想要创建数十个权益池,他将不得不将他的个人权益分成许多部分,这也将使他的所有权益池的吸引力降低,从而导致人们更倾向于委托由诚实的人管理的权益池。

换句话说,创建大量权益池的攻击者将不得不将自己的实力“摊得太开太薄”。他不能让他所有的权益池都具有吸引力,因为他必须将他的权益分成太多部分。诚实的游泳池运营商会将他们所有的个人权益集中到他们的一个权益池中,从而有更好的机会吸引会员。

池管理员的保证金对池奖励的影响程度可以通过可配置参数进行微调。作为一群没有想象力的数学家,我们称这个参数为’a0’。将a0设置为零意味着:池奖励不依赖于管理者的保证金多少。而为a0选择一个高价值将为池管理者带来强大的优势。

我们在这里有一个经典的权衡,一方面是一个公平自由的竞争场(a0 = 0),另一方面是为了安全和抵御Sybil攻击保护(a0很大)。

为了演示a0的效果,让我们看一下图1中的三个图。

在图表中,我们的目标是10个池,因此奖励上限为10%。池的大小绘制在水平轴上,垂直轴显示池奖励。每个图表描绘了三个假设的池,其中管理者已经分别向其池保证了0%,5%和8%的保证金(保证的金额在图中称为s)。

第一个图使用a0 = 0,因此保证的权益多少对池奖励没有影响,并且三个池的行为方式相同:奖励随着池大小的增加而不断攀升,直到池控制10%的权益时它们被限制。

在第二个图中,我们看到a0 = 0.1的影响。三个池仍然相似,特别是对于小尺寸,但它们的上限略有不同。拥有更多保证金的权益池在增长时会获得稍高的奖励。

最后,第三个图显示了a0 = 0.5的影响。它与第二个图类似,但三个池之间的差异更明显。我们仍然需要为a0选择一个“好”值。这种选择将取决于预期的管理池的成本,总奖励以及 - 最重要的 - 所需的安全级别等数量。

我们希望保持尽可能小的a0(降低所有人参与权益池创建的门槛),同时仍然保证对Sybil攻击的高防护性。

在任何情况下,重要的是要记住a0的引入并不妨碍小体量的参与者创建并很好地运营一个池,因为有一个好主意的人总能联系到社区,说服其他人并邀请他们一起工作。最后,建立一个稳固可靠的权益池并与社区密切合作将比拥有大量权益更重要。

我们也开始考虑用 声誉系统 取代奖励对权益池领导者的权益的依赖性。这样,通过长时间可靠、高效地运行池,可以让体量不高但是口碑较好的人们更有吸引力。这将不会在第一个版本中实现,但是在未来的进度表中。

资料来源于IOHK官方博客,本人进行翻译与注释,Mihori校对。

3 Likes

tenor