查看原文
其他

Plasm 锁仓空投机制详细介绍

Plasm Network PolkaWorld 2020-09-18

加入 www.polkaworld.org 社区,共建 Web 3.0!

只要向我们的锁投(lockdrop)合约发送 ETH 交易请求,就能轻松获取代币。任何账户都可以通过硬件钱包或者软件钱包(比如Trezor,Metamask等)参与。而且,所有 ETH 持有者都能够参与。


锁投(Lockdrop,也称锁定投放)是一种代币(token)分发的方式。具体而言,它通过在一段时间内(例如3~6个月)锁定某种诸如ETH之类的有价值资产,来发行另一项价值待估的资产。



锁投示例

让我们从锁投过程的一个示例开始介绍。


1. 用户(Bob)在以太坊(Ethereum)上发送“锁定”交易。如果成功,将在以太坊上触发Locked事件,同时ETH被锁定。

发送“锁定”交易并创建锁定合同


2. 用户(Bob)使用以太坊上的私钥向 Plasmchain 发送“领取代币”交易。如果成功,可以从 Plasmchain 获取与锁定的ETH数量和时间相对应的PLM代币。

发送领取代币交易并取得PLM


3. 锁定期结束后,用户(Bob)可以从锁定合约中提取被锁定的ETH。

锁定期结束后返回ETH


锁投的基本过程如上面所示。我们将在下一部分中详细定义发放代币的规则,我们也将介绍第二次及以后的代币发放。



概述

Plasm Network 将分三个阶段进行多次锁投(lockdrop)。以下代币将作为每个阶段锁投的目标:


  • Ethereum

  • Ethereum + Bitcoin

  • Ethereum + Bitcoin + {EOS等,可能还包括 Polkadot}


第一次锁投将于Plasm主网启动前结束,发放总量为500,000,000的PLM。


它们将根据发放比例(IssueRate)分发给已锁定ETH的用户。IssueRate 约等于锁定代币的总量(Locked_token)乘以锁定代币时的美元利率,(DollarRate_token),再乘以1.0005为底的(天数 - 100)次幂,最后乘以天数。发放比例(IssueRate)计算公式如下:


具体的参数定义如下:


  • IssueRate (发放比例)将决定每位用户获取的代币的数量。

  • Locked_token (锁定的ETH数量)指被锁定的ETH代币的总量。

  • DollarRate_token (美元汇率)是锁投时 ETH 在交易所兑换美元的汇率。

  • Days (天数)指锁定代币的天数。锁定的天数将大于等于30天、小于等于1000天。


用户可以从以下四种类型中选择锁定时间。IssueRate 大致约等于锁定的代币数量乘以锁定周期对应的倍数(如下所示),再乘以代币美元汇率得到。


  • 30 天为 24倍

  • 100 天为 100倍

  • 300 天为 360倍

  • 1000 天为 1600倍


下图中 x轴为锁定周期,y轴为对应的倍数。红线是 IssueRate 公式的曲线,绿线是 4 类锁定周期(30, 100, 300, 1000)对应倍数。


https://www.desmos.com/calculator/0y5pegzvba


基于计算出的IssueRate,可以决定要分配的代币数量。决定代币分配的算法如下。


假设参与锁投的用户总数为 n,某用户 i 的发放比例(IssueRate) IssueRate_i。那么,用户 i 获得的PLM数量将如下所示:

我可以获得的代币数量


换句话说,用户获取PLM的数量取决于个人的发放比例在总的发放比例中的占比。此外,75,000,000 PLM(即总数的3/20)将用作开发成本


另外,根据以上公式,在第一轮锁投中,可以确定每单位的发放比例将获得的代币数量 为 α_1。它对于确定第二次及之后的锁投发放的 PLM 数量来说,是一个重要的值。

α_1是第一次锁投中每单位IssueRate发放的PLM数量


我们定义第二次和第三次每单位 IssueRate 的 PLM 数,将满足以下方程式:a_2,a_3

α_2,α_3是第二、三次锁投每单位IssueRate发行的PLM数量


根据以上定义,第二、三次锁投中,用户 i 可以领取代币的数量可以这样计算:

用户 i 在第 j 次锁投中获得的 PLM 数量


这样,用户可以简单地计算在第二次和后续锁投中获得与IssueRate成比例的代币数量。这将解决以下问题:如果第二次之后参与锁投的用户数量显着增加,则用户可获得的PLM数量相对于总体百分比将变得过小。


下图显示了代币分布量在多次锁投中如何变化的具体示例。在这里,我们假定 DollarRate 为常数。


锁投可以领取多少代币的示例


如上图所示,锁定 1 ETH 100 天的参与者,在第一、二、三次锁投中有可能获得7200、6000、4800的PLM代币。



第一次锁投 (Ethereum 以太坊)

第一次锁投将在主网启动前结束。这意味着我们将可以使用主网的创世区块来对代币发放进行记账。例如,Alice 将 2 个ETH锁定了 30 天,Bob将 1 个ETH锁定了 100 天,主网的创世区块在启动后会记录发放 48 个PLM给Alice、发放 100 个PLM给Bob。 



智能合约

受Edgeware的锁投的启发,我们设计了如下的智能合约: 

https://github.com/stakedtechnologies/ethereum-lockdrop.


锁投包含了两个独立的智能合约:

  • Lock(锁定代币的合约)


第一个合约很简单。它的目的只有一个:接收资金,并在锁定期达到时让资金可以被取回。在构造函数的参数是取回资金的账户地址和锁定期的时间戳。

  • Lockdrop(进行锁投的合约 )


第二个合约用于触发 ETH 的锁投操作。这个合约包含了 lock 方法用于锁定 ETH,并发送信息用于获得 PLM 代币。


function lock(uint256 _days) payable


这是一个 payable 方法。方法的参数是 ETH 的锁定天数。这个方法只能被外部账户(External Owned Accounts) 调用,以确保合约的调用者拥有账户的私钥。


当交易完成后,以下事件会被触发:


event Locked(uint256 indexed eth, uint256 indexed duration, address lock);


事件的记录包含锁定的资金数量、锁定天数以及锁定合约的地址。



生成创世区块

根据所有的已锁住(Locked)事件的记录,可以计算出发放给每位锁定ETH的用户的PLM代币数量。

其中 F 函数是在“概述”一节中定义的根据 ETH 数量和锁定时间来计算 PLM 代币数量的方法。 



创世生成工具

已锁住(Locked) 事件记录的收集和代币数量的计算可以自动完成。以下将介绍执行锁投操作的 JavaScript 模块。


这个JavaScript模块包含两个函数:


getLocks: (address, fromBlock, toBlock) =>


此函数在设定的区块的范围内,根据合约地址查找已锁住(Locked) 事件的记录。


getBalances: locks =>


此函数用于计算代币分发的数量。


这个工具可以在 ethereum-lockdrop 代码库的根目录下找到,它提供了 CLI(命令行)接口用于计算代币发放的数量。



第一次锁投的步骤

  1. 用户使用DApp或者直接发送 lock 交易;

  2. 锁投合约发送 已锁住(Locked)事件; 

  3. 锁投合约运行完成;

  4. StateTechnologies 通过生成工具计算创世的代币数量;

  5. StakeTechnologies 根据计算出的代币发放数量,启动Plasm主网;

  6. 用户将Ethereum私钥导入Plasm钱包;

  7. 用户可以看到钱包中 PLM 的数量;

  8. 当锁定期到期后,用户可以取回被锁定的ETH。



结论

本文介绍了 Plasm Network 的代币发放规则。锁投(lockdrop)方法提供了一种新的有前景的代币发行方式,可以最大程度的降低投资者的风险。最后,通过多阶段的锁投,可以给来自不同社区的参与者们,提供更多的参与代币投放的时间和机会。


原文:https://medium.com/stake-technologies/plasm-lockdrop-introduction-54614592a13

翻译:Robert Yan


更多内容:


波卡生态项目 Plasm 测试网上线了!现招募第一批 50 个验证人!

Gavin Wood:扎克伯格的 Libra 存在很大问题

Substrate和Cosmos-sdk在项目实战中的差异


扫码加 Bang 姐进入 Plasm 验证人节点群

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存