加入 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.
锁投包含了两个独立的智能合约 :
第一个合约很简单。它的目的只有一个:接收资金,并在锁定期达到时让资金可以被取回。在构造函数的参数是取回资金的账户地址和锁定期的时间戳。
第二个合约用于触发 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 个验证人!
Substrate 和 Cosmos-sdk 在项目实战中的差异
扫码加 Bang 姐进入 Plasm 验证人节点群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:波卡(Polkadot)第一中文社区,带你寻找 Web 3.0 时代新机遇!
评论0条