一文读懂LAT的解锁原理

导语:

本文为社区撰写,想了解对LAT解锁原理的小伙伴们可以看看

撰文|Arthur

据PlatON官方区块链浏览器PlatScan显示,8月5日,PlatON代币LAT迎来主网上线后的第二轮解锁,代币解锁时间对应的区块高度是8245250。

经白计划团队观察发现,8月5日凌晨2点左右,PlatON的区块高度在8232500左右,相距区块高度8245250相差约13000个块左右。按照出块时间1秒左右估算,大约在上午6时左右解锁。

按照白计划团队查证到的PlatON投资者锁仓合约显示,LAT的解锁时间显示为8月5日5时19分左右。

以上是两个解锁前对预计时间的判定,即便如此,实际时间和预计时间仍可能会有比较大的偏差,因为共识出块过程中可能因通信延迟等技术原因,产生时间预估的偏移。

8月5日上午,解锁结束后,经过再次计算,代币解锁最终时间在6时左右,白计划团队的第一次估算,可能因为估算时间与解锁时间的时间间隔较小,所以比较准确。

为了方便理解LAT的解锁时间,在本文中,我们来拆解一下LAT的解锁逻辑和时间确认问题。

区块链代币解锁逻辑

代币分批解锁是区块链项目与投资者(一级市场)如约遵守的流程。其主要目标是控制代币流通量,带来较稳定的二级市场。

大多数区块链项目的代币都是主网上线后分批解锁的,主网上线后,项目方一般会使用智能合约来规划执行代币的解锁计划。

以PlatON为例,其建立了一个代币分配地址和一个代币锁仓合约。当达到预期区块高度的时候,代币锁仓合约执行解锁,经由代币分配地址转移到相对应的投资者地址中。

通过简单的查询,我们大概查到了几种解锁时间的分配,其对应了不同时期、轮次的(一级)投资者。

640-6

上图对应的第二次解锁时间为8月5日,随后每3个月一次解锁,再进行两次。

640

上图对应的解锁时间约为3年后。并且,标注的两次解锁时间相差一个月。

640-1

上图对应的时间约为2年后,为一次性解锁。

640-2

上图对应的第二次解锁时间约为主网上线后的第6个月,随后3个月一次解锁,进行2次。

不同时期参与的投资者都会面临解锁时间预估的问题,接下来,我们具体分析区块链的时间逻辑以及PlatON的出块和执行。

区块链上的执行一般以区块高度为准

区块链的共识层负责确认总帐本以达到状态一致性,其总帐本是由验证节点验证确认的区块组合而成,如果把总帐本当作一个整体来看,其标尺是区块高度。

当我们需要执行一个事务的时候,一般理解会是“何时何地执行什么事”,而在区块链上,因为分布式系统并没有一个中心的时间源,原因在于验证节点可能遍布世界各地,横跨多个时区,且在不同节点通信过程中,还会出现通信延迟,所以,如果以某地时间确认其事务执行时间,在事务执行的时候,必然会陷入混乱的时间源影响里。

既然区块链的状态和区块高度是具备一致性的,那意味着以区块高度去执行事务更为准确。可以将事务执行定义到一个区块高度,并通过平均出块时间的计算,计算出大概执行时间。

例如8月5日即将进行的以太坊伦敦升级,其升级时间也是以区块高度定义的。此前,其开发者预估的时间为8月4日,而因为文章开头我们提及到的出块时间问题,让伦敦升级时间推迟到了8月5日。

(PS:有时候我们看到公链主网上线时间是以时间执行的,因为这个执行时间并不是链上的操作,而是团队部署时间。)

另外,执行时间的安排并不能实现非常精确。

例如我们在PlatON上查到了诸多个锁仓合约,而因为链上没有绝对的时间,只有块高和时间点的对应关系,在发布锁仓计划时,也只能根据估算的平均出块时间来指定未来的某个区块高度进行解锁释放。

相应计算公式如下:预估释放时间=(目标释放区块高度-创建锁仓计划区块高度)*平均出块时间

因为平均时间的变化,8月5日的预估解锁时间和实际解锁时间相差约40分钟。这些差别都产生在每个块的出块过程里。

以日期(2021-07-30 14:48)为例,当时结算周期实际的的平均出块时间为1066毫秒, 每个区块的间隔时间增加了66毫秒,意味着在预估释放时间内,区块到达不了目标释放区块高度,因此会出现实际释放时间晚于预估释放时间的情况。

PlatON的经济周期是如何设计的?

前文说到,区块高度是标尺。而区块的间隔时间过小(PlatON平均出块时间1S),在公链的模型中需要设计出一些结算和调整周期。

在PlatON上,该部分的设计分为共识周期、结算周期(Epoch)和增发周期。

640-3

共识周期

每个共识周期固定生产430个区块,其中第410个区块为选举区块,用来选出下一个共识周期的43个验证节点。

结算周期

PlatON中,考虑到系统处理性能,将锁仓处理、质押锁定、Staking奖励发放、增发、节点排名等逻辑都周期性集中处理,这个周期就称为结算周期。结算周期的最后一个区块称为结算区块,统一处理各种周期性的处理逻辑。结算周期为共识周期的倍数,固定为10750个区块,投资者也可以通过预估结算周期时间来做解锁的参考,例如下图展示的锁仓合约是通过结算周期计算的。

屏幕快照 2021-08-05 下午14.15.22 下午

增发周期

PlatON设计为每年固定增发,这个年度周期在PlatON中不是自然时间周期,而是区块高度周期,基于一年365.25天为标准,根据一段时间范围内的平均出块时间(时间范围取当前区块往前一年),计算出当前增发周期区块数。为使得增发逻辑总是在结算区块中处理,设计时将增发周期设计为结算周期的倍数,因此增发区块也是结算区块。由于平均出块时间的不确定性,增发周期内的结算周期数会动态调整。

LAT与周期相关的代币分配和流通变化

LAT初始发行按一定比例分配给创始团队、PlatON基金会、学术基金、生态基金、和私募发行方,通过将分配的账户及余额参数信息写入到创世区块配置中来实现,并引入相应的锁定机制。

初始发行的锁定通过锁仓合约进行控制,按照设定好的锁定期进行锁仓和解锁,锁仓的金额不可提前解锁。为提高系统处理性能,锁定期必须是结算周期(10750blocks)的倍数,因此每一个锁定期解锁点(解锁区块高度)都是结算周期的结算区块(结算周期的最后一个区块)。

640-4

PlatON采用每年(一个增发周期)一次性增发。按照年度预期出块数为增发周期进行LAT增发。与上一年底的LAT总发行量相比,每年固定增发2.5%,其中增发的2%转入到由智能合约控制的奖励池,并由PPoS共识算法的运行逐轮释放奖励给验证节点。余下的0.5%转入到一个信托基金,由PlatON基金会作为信托人用来奖励未来的PlatON基础协议开发者。

640-5

目前,通过白计划对PlatON合约地址的查询,8月5日解锁的代币已解锁,但因为代币解锁前,部分锁仓代币在参与PlatON的节点质押,解锁后的部分代币仍保留在节点质押中,处于已解锁待(投资者手动取消质押)释放的状态。

3 个赞

有一点没说清楚,我来补充一下。

我在前期整理的一些机构地址里发现了“欠释放”的描述,以及数量。

对比了这些地址的委托或质押的状态和释放数量后发现,这个数字和“欠释放”的数字一致。

1628146715

也就是说“欠释放”的状态并不是合约没有执行,而是已经释放完毕。只是该数量的币正处于委托或质押状态,用户操作赎回即可自由使用。

1 个赞

能否深入讲讲每一次释放的lat币的数量呢?

估计1年内释放完机构的三轮合计20亿lat吧

学习了 :+1: :+1: :+1: