Plasm 锁仓空投机制详细介绍
加入 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(命令行)接口用于计算代币发放的数量。
第一次锁投的步骤
用户使用DApp或者直接发送 lock 交易;
锁投合约发送 已锁住(Locked)事件;
锁投合约运行完成;
StateTechnologies 通过生成工具计算创世的代币数量;
StakeTechnologies 根据计算出的代币发放数量,启动Plasm主网;
用户将Ethereum私钥导入Plasm钱包;
用户可以看到钱包中 PLM 的数量;
当锁定期到期后,用户可以取回被锁定的ETH。
结论
本文介绍了 Plasm Network 的代币发放规则。锁投(lockdrop)方法提供了一种新的有前景的代币发行方式,可以最大程度的降低投资者的风险。最后,通过多阶段的锁投,可以给来自不同社区的参与者们,提供更多的参与代币投放的时间和机会。
原文:https://medium.com/stake-technologies/plasm-lockdrop-introduction-54614592a13
翻译:Robert Yan
更多内容:
波卡生态项目 Plasm 测试网上线了!现招募第一批 50 个验证人!
扫码加 Bang 姐进入 Plasm 验证人节点群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!