美文网首页区块链大学区块链
卡尔达诺权益池如何防止恶性攻击(+米猴莉前言)?

卡尔达诺权益池如何防止恶性攻击(+米猴莉前言)?

作者: Mihori米猴莉 | 来源:发表于2018-10-31 05:37 被阅读48次

资料来源于IOHK官方博客,卡尔达诺中国社群志愿者张焱进行翻译与注释,Mihori校对。

原文连结:Preventing Sybil attacks

前言:


在进入IOHK的文章之前,米猴莉需要与大家分享一下在上篇文章发布后所收到的个的几个回馈与问题。

第一个是大家最关心的收益报酬率问题。

由于大家需知道总收益奖励只来自于两个地方,及是每ㄧ年的通货膨胀以及交易费用。到雪莱上线为止所有收到的交易费用都是烧掉的,上次Seb大神有发过推特大约烧了十几万了。

所以我们知道以下公式:

每年总奖励 = 通膨 + 交易费用

而ADA的未出矿量为140亿,所以:

通膨 = 140亿 x通膨率(%)

而每笔交易费用的公式为:

0.155381 ADA + 0.000043946 ADA/byte × 传输数据大小(byte)

其中0.155381 和 0.000043946 这两个常数是会依照ADA价格去做出调整的,所以请不用担心等ADA到了100美金时是否每次都要付出至少15美金的交易费用。

所以由以上两个公式我们可以得出:

总奖励 = (140亿 x通膨率(%)) + (0.155381 ADA + 0.000043946 ADA/byte × 传输数据大小(Byte))

再套用上次所给出的公式:

[(总奖励 x 权益池规模比例) – 营运成本 ] x (1 -利润比率) x 成员权益池中的比例 = 成员奖励收益

我们得到:

[((140亿 x通膨率(%)) + (0.155381 ADA + 0.000043946 ADA/byte × 传输数据大小(byte)))x 权益池规模比例) – 营运成本 ] x (1 -利润比率) x 成员权益池中的比例 = 成员奖励收益

是否就能很轻易地算出委托权益池的预期收益呢?

如果你到这里还在抓头,我再更深入讲解下每个参数:

140亿:未出矿量

通膨率(%):这是个政策决定,目前不确定,但预估在1 – 5% 之内

0.155381, 0.000043946:这两个有关交易费用的常数,如之前所说,短期内是固定的,但会随着ADA价格调整,而在初期ADA并没有多少交易传输量(不是只交易所的交易量,而是ADA点对点的传输),目前约一两分钟有一笔交易吧。

传输数据大小:每笔交易传输的数据,传越多ADA数据越大,一般典型在200 bytes左右

权益池规模比例:你所委托的权益池,占所有”正在权益挖矿”中的比例,一般来说,还是可以选择不权益挖矿的,所以”正在权益挖矿”的权益不等于所有的”ADA总权益”。

营运成本以及利润比例:这两个是由权益池营运者自行判断的,营运成本在初期没什么交易量时,用云端服务就可架设服务器,所以约为200 - 2000美金。而利润比例则是权益池营运者想赚的钱,赚越多越少人来你的池,估计在10% - 20%左右。

成员权益池中的比例:也就是你所委托的权益占权益池中的比例。

如果你到这里还在抓头,那或许到时乖乖在钱包里按几下,委托后,一年之后看钱包里的ADA多了多少再来算比较快。 :)

再来是什么时候可以权益挖矿?如何才能委托权益或单独挖矿?

权益挖矿是随着去中心化的雪莱版本上线后才会开启,目前预计的时程为2019年的第一季度(如无意外,你也知道人生总是充满意外)。委托权益也只会是在钱包中,按几下按键就能委托,也能任意改变委托池的选择,无需锁仓。而任何叫你传ADA送ADA存ADA的权益吃都是诈骗集团,而单独挖矿理论上也有选项,只要保持钱包上线即可。

好了,废话不多说,让我们进入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中的三个图。

图1:权益池管理者交付的权益押金将如何影响奖励收益

图1:权益池管理者交付的权益押金将如何影响奖励收益

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

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

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

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

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

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

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

Mihori-简书@2018

相关文章

网友评论

    本文标题:卡尔达诺权益池如何防止恶性攻击(+米猴莉前言)?

    本文链接:https://www.haomeiwen.com/subject/sslotqtx.html