SNS initial token swap

What will be the tokennomics from the SNS tokens?

Thank you for the proposal (I overlooked that this topic was already started)!

My questions is related to above quoted text - how will you guarantee that someone won’t create 1k principals and then use them to get too large of a share?

You can say that it’s not realistic from administration perspective, but I think that several project will be worth hiring people for that and setting up some automations.

IMO possible solution would be to allow only principals which passed People Party, but from my understanding (recently raised question about that in different thread) this is delayed.

Thanks again, I believe that SNS will be a game-changer and a gateway to true Web3!

3 Likes

Hi @Jacobs.ic

the suggested design for SNS rewards is described in this forum post. In a nutshell: we suggest leveraging the concepts and code base of the NNS reward scheme but make configurable.

There is also a dedicated community conversation on this topic.

5 Likes

Thanks Bjoernek for your awnser. I appreciate your taking time for acurate answers

3 Likes

Hi @ArjaanBuijk, thanks for the question!
I think you could deploy SNS canisters locally or on an application subnet to try out different things. For example, I think you could locally set up an NNS and SNS and simulate the proposal to start the swap (this has the advantage that you don’t use cycles, although you might also want to test cycles). Or you could manually deploy the SNS canisters on an application subnet if you want to play around with them and also see the cycle behaviour.

Hi @plsak, this is indeed a problem that we do not fully solve.
As you say, once we have good means for proof of humanity / personhood, for example by people parties, we could attach such a restriction. But they are not ready yet so we think it is worth to nevertheless already release the SNS without this and potentially add such improvements in later iterations.

One idea to nevertheless mitigate this problem a bit is to give some tokens to principals that are already “known”. For example, when a dapp has been live for a while, there might be some principals that have very active profiles and a lot of community members might even know the person behind the principal / profile. When a dapp is decentralised, it could choose to give some initial neurons to such “known” dapp users and less tokens to the initial token swap. This does of course not prevent the problem as a) multiple dapp profiles might belong to the same person and b) the dapp users could purchase additional tokens in the initial swap, but it might make an attack harder and thus provide more confidence for decentralisation.
Does that make sense?

Thanks! I am also looking forward to seeing SNSs be used by a vide variety of dapps!

1 Like

Hi @lara and thanks for the response!

I agree that it’s better to release SNS rather sooner but as thinking about possible workaround (until People Parties are live) got this idea (although I’m not sure if is technically feasible):

  • limit participation in the SNS swap/auction only to principals, which have at least one voting neuron older than (let’s say) three months
    • or apply the limit only for 80%(?) of tokens - to allow minor/20%(?) participation also for new investors
    • there might be also some limitation on minimal voting power or neuron being in CF, but that might be already too restrictive
    • indeed the limitation could be completely different, my main point is to link the participating principals with their voting neurons and use this as prevention
      • and any such settings could be part of initial swap parameters - handing over responsibility for it to the dapp devs

I believe that this would:

  1. prevent speculators and favor long term IC investors
  2. effectively disable possibility to cheat with large number of principals
    • although several investors might have large number of voting neurons, they most likely keep them under limited number of Internet Identify accounts/principals (although I’m not 100% sure that single II account means single principal :frowning: - looks like that for me) - and with age (or rather creation date - as age averages down when increasing stake) limitation there would be no option how to generate large number of valid new ones

Hopefully this idea will be useful at least a bit, looking forward SNS a lot (I’m quite small investor, but still, some of the projects look great)!

2 Likes

初始代币兑换或卖的分配和最高限额是否可以考虑NNS投票权重这个因素?这样可以一定程度防止机器人恶意拍卖也可以激励ICP长期投资。[quote=“lara, post:1, topic:13591, full:true”]
TL;DR:我们为新的“初始令牌交换”罐提供高级设计。我们解释了为什么这是将互联网计算机上的现有dapp转换为由SNS DAO控制的分散式dapp过程的重要组成部分。

背景 SNS

与[网络神经系统(NNS)](https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a)是控制互联网计算机区块链(IC)的开放代币化治理系统(IC)类似,服务神经系统(SNS)是算法DAO,允许开发人员为其dapp创建分散的、基于令牌的治理系统。请参阅[本文](https://medium.com/dfinity/how-dapp-developers-placing-their-faith-in-total-decentralization-will-inherit-the-world-79419a3e36c9),以了解有关SNS如何授权dapps充分利用IC潜力的更多背景。

SNS由一组罐子组成,包括治理罐和分类账罐。分类账罐包含SNS令牌,这是每个SNS的唯一令牌。它存储哪些帐户拥有多少个SNS令牌以及委托人之间的交易历史记录。治理罐存储了关于如何发展SNS管理的dapp的建议,以及定义谁是治理参与者的神经元的建议。神经元包含赌注的SNS令牌,每个人都可以通过在神经元中押注SNS令牌成为开放治理过程的参与者。

目标

要分散dapp,开发人员可以将dapp的控制权移交给社区。当然有很多方法可以做到这一点。互联网计算机SNS的目的是以非常简单的方式允许这一点:开发人员可以将他们的dapp的控制权移交给互联网计算机,然后互联网计算机将根据开发人员的规范,为他们启动带有治理系统和令牌分类账的SNS。启动SNS的一个关键部分是新创建的代币是如何分配的,以及如何将它们押注到神经元中,以便SNS的治理确保适当的分散化。

在这篇文章中,我们提供了一种实现这一点的简单方法:我们介绍了初始令牌交换的概念,参与者可以将ICP令牌交换为SNS令牌,为dapp提供资金。然后,我们解释了如何在SNS的推出中利用这种初始代币交换。

与其他 SNS 项目的上下文

虽然最初的SNS设计包括代币拍卖,但最新的SNS时间表(见[本论坛帖子](https://forum.dfinity.org/t/sns-service-nervous-system-timeline-pilot-projects/11963))不包括碳里程碑的初始代币分配。这个想法是,我们稍后会添加这个作为附加功能。

然而,对于项目来说,他们的SNS的启动必须将其投票权分配给许多不同的神经元持有者。由于碳里程碑的目标是SNS已准备好使用,我们建议优先考虑实现开放初始令牌分配的工作,并将其纳入碳里程碑。

初始代币交换的拟议设计

为了确保代币可以在SNS发布期间分发给独立方,我们建议使用初始代币交换,该交换由新引入的交换罐实现。

我们首先解释了交换罐的拟议设计,然后解释了如何将该交换罐集成到SNS发射的流程中以实现分散。

####交换罐设计

每个SNS将有一个单独的交换罐,该罐仅在SNS启动期间存在。

*交换罐一开始就设置了一定数量的SNS代币,以公开分发。

*在互换期间,参与者可以将ICP发送到交换罐,为dapp的资金做出贡献。
*在掉期结束时,收集的ICP被“交换”为SNS令牌:掉期参与者获得SNS令牌,SNS获得收集的ICP。每个用户将收到他们那部分SNS代币池,按其占ICP贡献总数的百分比进行比例。例如,如果掉期罐最初持有1000个SNS代币,并在掉期期间收集了500个ICP代币,那么汇率将是2:1,每个掉期参与者将为他们贡献的每个ICP代币获得2个SNS代币。
因此,汇率与基于自动做市商(AMM)的分散式交易所(DEX)类似,其中假设是两个代币池具有同等价值。
*掉期实现a)设定SNS令牌的市场价格,b)每个掉期参与者以该价格获得SNS代币。

为了确保这个过程的重点是分发dapp治理,而不是投机,所有代币都将在神经元中分发,溶解延迟为三个月。这应该会给SNS社区留出足够的时间,在第一批代币成为液体之前启动代币市场。

接下来,让我们详细了解一下初始交换罐的细节,特别是可以为每个初始交换设置哪些参数,以及它们如何影响交换。

  • ICP代币的最大数量:掉期收取的最大ICP作为资金。如果达到这个金额,掉期就结束了。与下一个参数一起,这决定了最低和最高SNS代币价格。

  • 最低ICP代币数量:掉期需要收集的ICP最低数量才能被视为成功。与第一个参数一起,这决定了最低和最高SNS代币价格。

  • 交换截止日期:掉期结束的截止日期。如上所述,如果收集了最大数量的ICP代币,掉期可能会在截止日期前结束。

  • 掉期参与者的最低人数:交换参与者的最低人数,以被视为成功的掉期参与者。

  • 每个参与者的最低和最高ICP金额:每个交换参与者可以贡献的最低和最高ICP金额。最低限额实现每个参与者都有最低投资,而最大限度保证任何本金都不能获得过多的初始代币分配份额。

总之,有两个参数,即ICP代币的最大数量和掉期截止日期,决定了掉期何时结束,以及两个参数,即ICP代币的最低数量和掉期参与者的最低数量,决定了交换是否成功。最后,每个参与者的最低和最高ICP数量决定了什么是有效的参与。

如果掉期成功,则为每个掉期参与者创建神经元,其中包含由上述汇率确定的赌注SNS代币数量。如果掉期结束但不成功,例如,由于收集的ICP不足,所有收集的ICP代币都将转移回掉期参与者。

SNS 发布

现在,让我们研究一下如何启动SNS,这就是如何使用这个初始令牌交换将dapp的控件从集中状态过渡到分散状态。拟议的设计旨在实现以下目标:

*向SNS社区移交dapp的开发人员应该在启动的SNS中获得一些投票权

*启动的SNS的初始投票权份额,即初始神经元,应由独立政党拥有,互换应分散
*推出的SNS应该有一些初始资金,SNS社区可以使用这些资金来支付贡献者、支付周期费用和使用奖励
*在掉期结束之前,没有人可以转移SNS代币
*随时可以升级dapp以对其进行改进并解决错误

为了实现这些目标,我们建议SNS的发布经过以下阶段。

1。初始化SNS:当开发人员初始化他们想要将dapp控制权移交给SNS时,他们会选择分配给开发人员、初始令牌交换和财务的部分令牌,该帐户将由SNS治理罐拥有,SNS社区可以根据自己的需求使用。也许他们还可以指定分配给其他预定义方的部分令牌,例如将一些令牌“空投送”给已知的dapp用户。开发人员还可以定义交换的条件,例如至少应该收集多少个ICP代币(详见上文)。
由于SNS尚未分散,交换罐由NNS控制。
在SNS发布期间,只有两个带有流动代币的分类账账户,即治理罐拥有的国库和掉期罐拥有的预分配代币。为了确保没有人可以转移代币,并分发代币或过早启动代币市场,开发人员或“空投参与者”的所有初始代币都被锁定在神经元中。此外,为了确保这些初始神经元不能在交换之前或期间修改SNS,也不能转移财务令牌,SNS部署在功能有限的预发生模式下。

2。**Dapp控制权移交:**在SNS初始化和交换开始之间,开发人员将dapp的控制权移交给SNS。由于已经有初始神经元(来自第1步),dapp现在可以通过SNS提案升级。最初的神经元不能做其他事情,例如更改SNS参数,因为SNS治理罐仍处于预发生模式。由于开发人员在SNS初始化之前就已经在控制dapp,与SNS初始化之前的状态相比,他们实际上没有任何额外的特权。
3。开始掉期:掉期由NNS提案发起。这意味着在发布期间,最初控制dapp的开发人员将他们的dapp的控制权移交给NNS,然后为它们初始化交换。在对NNS开始交换提案进行投票时,NNS神经元应考虑交换参数是否有意义,最重要的是,dapp的控制是否已经移交给SNS(即步骤2已成功完成)。因此,NNS提案也是一种保障措施,人群的智慧可以在诱骗用户投资之前检测到潜在的恶意SNS。
如果NNS提案获得通过,则交换由NNS启动。如果NNS提案被拒绝,SNS启动将被中止,dapp的控制权将移交给开发人员。
4。初始交换:当交换开始时,交换罐保存初始化时指定的SNS令牌数量(见步骤1)。最终用户可以通过将ICP令牌转移到交换罐来参与初始令牌交换。

5。SNS起源:当掉期结束时,首先确定掉期是否成功,例如,收集了足够的ICP。
如果掉期成功,汇率如上所述确定,所有代币将提供给押注三个月的神经元的掉期参与者。一旦所有神经元都创建,SNS将处于分散控制之下,治理罐将被设置为功能齐全。
如果掉期不成功,权力下放尝试就会失败。因此,在SNS发布之前,所有内容都将恢复到状态,包括将dapp的控制权交还给开发人员,并将所有收集的ICP退还给交换参与者。

未来方向

一开始,我们提出了在SNS发射中需要解决的挑战。我们认为最初的互换罐是应对这些挑战的第一个工具。稍后,可以提供其他或替代工具,从而生成一个工具包来启动SNS,SNS发射台。

这种可能延期的一个例子是社区基金,我们将在未来几天分享第一个设计提案。

安全

我们认为这是一个安全关键功能。例如,涉及不同的代币(SNS代币和ICP代币),必须确保交换参与者获得SNS神经元,当且仅当他们正确地将ICP存入交换中。

我们已经与DFINITY的安全团队一起审查了设计,并计划在实施完成后在他们的帮助下进行彻底的安全审查。

考虑的替代方案

*我们可以在没有初始令牌分发的情况下启动第一个版本的SNS。如上所述,想要启动SNS的项目需要此功能。因此,我们认为将这一功能作为碳里程碑的一部分很重要。
*我们本可以选择使用拍卖而不是交换来分发初始代币。这种拍卖必须a)确定SNS代币的市场价格,b)每个人都必须支付相同的价格(否则一些参与者将获得不公平的优势)。许多现有的拍卖机制不能满足这两种要求,因此不清楚这种拍卖的细节会是什么样子。建议的初始互换提供了所有必需的属性,而不会引入额外的复杂性。除了更简单的设计外,最终用户可能更容易理解交换的另一个原因是,它与许多用户熟悉的分散式交易所中使用的令牌交换非常相似。

Procedure Motion 提案和更新的 SNS 时间表

如上所述,我们建议将此功能添加到碳里程碑中。

关于引入此功能,我们建议进行以下操作:

1。本周和下周:讨论这个论坛帖子关于拟议设计
2。6月9日星期四:社区对话
3。下周:就上述设计进行投票的动议提案(可能更新,并听取1和2的反馈)
[/报价]

For the record, the motion proposal was adopted on 2022-06-19.

2 Likes

Thanks plsak, assigning some kind of reputation to a principal on the basis of past history of interactions (with the NNS or other activity) and using those reputation attributes to gate access to new functionality is certainly an idea we’d like to explore in general on the IC.

One of the key features of an SNS initial token swap is we’d like broad participation and not lock access to only insiders, this would include users of the dapp (who may not be NNS neuron holders) and also brand new users to the IC ecosystem to be able to participate. Hopefully in turn these users also become participants of the NNS.

By locking the SNS tokens issued in neurons and distributing all tokens at the same price, we think this will dampen down some of the motivations for short term speculative behaviour.

1 Like