波卡平行链插槽拍卖机制详解
概述
对于要添加到波卡的平行链,它必须位于可用的平行链插槽之一。平行链插槽的数量在波卡上不是无限的,因为只有有限的数量可用。通过链上治理,每隔几个月就会解锁有限数量的插槽。如果一条平行链想要在每个中继链区块中保证区块包含,它必须获得一个平行链插槽。按需平行链(以前称为平行线程)的开发正在进行中。
平行链插槽将根据未经许可的蜡烛拍卖进行租赁,并进行一些与提高区块链操作安全性相关的更改。
拍卖时间表
拍卖时间表和正在进行的行动的详细信息可在平行链信息网站上找到。
平行链信息网站,详情请参见:https://parachains.info/auctions/polkadot
蜡烛拍卖机制
蜡烛拍卖是公开拍卖的一种变体,竞标者提交的出价越来越高。拍卖结束时出价最高的人被视为获胜者。
蜡烛拍卖最初用于16世纪的船舶销售。该名称源自确定拍卖长度的系统。“一寸蜡烛”是指蜡烛燃烧一寸所需要的时间。当蜡烛的火焰熄灭时,拍卖结束,此时的最高出价者成为赢家。
当在线使用蜡烛拍卖时,它们需要一个随机数来决定终止时间。平行链插槽拍卖与普通蜡烛拍卖略有不同,因为它们不会随机终止拍卖。相反,它们会运行整个固定的持续时间,并且会追溯随机选择获胜者。
波卡上的蜡烛拍卖分为两部分:
开盘期在拍卖开始后立即生效。这段时间持续1天18小时,作为平行链候选人的缓冲时间来设置他们的初始出价,并可能开始执行他们关于如何赢得插槽拍卖的策略。在开盘阶段,将继续接受出价,但不会对拍卖结果产生任何影响。
结束期在开放期之后再延长五天,拍卖将根据蜡烛拍卖机制结束。
拍卖的结束时间可以在结束期间内的任何时间发生。这个时间是由可验证随机函数(VRF)自动随机选择的。赢得拍卖的概率等于包含中标的区块数除以结束期间的区块总数。随机结束是通过在整个结束期间传播来管理的,其中在结束期间内的每个区块拍摄快照以捕获该给定区块的获胜者。在此期间结束时,将随机选择其中一张快照来确定拍卖的获胜者。
波卡上的平行链拍卖从开始持续整整一周:开始期1天18小时, 结束期(蜡烛拍卖阶段)5天,确定拍卖获胜者6小时。
随机性
以下示例将展示Kusama第九次拍卖的蜡烛拍卖的随机性机制。请记住,蜡烛阶段具有统一的终止配置文件,并且在任何给定区块结束的概率相同,并且无法在拍卖之前或拍卖期间预测终止区块。
第九次拍卖开始于block 9362014。
拍卖的完整持续时间等于block 9362014+72000
这里,block 72000是“结束期”,分为20个区块的3600个样本(sample)。形象地说,蜡烛被点燃,蜡烛阶段持续72,000个区块。
结束期间的获胜样本具有index 1078.
1078号样本(sample)获胜:
1078号样本(sample)指的是区块为block 9362014 + 21560的赢家,等于block 9383574。
父块是Logs 中的新BABE会话,它更新了用于选择样本索引的随机性。 因此,本次拍卖的获胜者并不是整个拍卖期间的最高出价。
理论基础
区块链系统的公开和透明特性打开了传统拍卖格式中不存在的攻击途径。当通过互联网或区块链实施时,普通的公开拍卖尤其容易受到拍卖狙击。
拍卖狙击发生在拍卖结束时,竞标者犹豫是否提前出价,希望支付的价格低于他们对物品的实际价值。
例如,Alice可能在拍卖会上将一件物品估价为30美元。她提交了10美元的初始出价,希望以更低的价格购买这些物品。爱丽丝的策略是逐渐提高出价,直到超过她的真实价值30美元。另一位投标人Eve对同一物品的估价为11美元。Eve的策略是观看拍卖并在最后一秒提交11美元的出价。
在拍卖结束前,Alice将没有时间响应此出价,因此将失去该物品。拍卖机制是次优的,因为它还没有发现物品的真实价格,而且物品还没有到达最看重它的参与者手中。
在区块链上,这个问题可能更糟,因为它可能让区块的生产者有机会在最后一个结束区块中通过自己添加拍卖而忽略其他出价来狙击任何拍卖。也有可能是恶意竞标者或区块生产者试图通过狙击拍卖来伤害诚实的竞标者。
出于这个原因,维克瑞拍卖(Vickrey auctions)是一种密封出价拍卖,其中出价是隐藏的,只有在后期阶段才会显示,它已经成为一种备受推崇的机制。
例如,该机制用于在ENS上拍卖人类可读的名称。蜡烛拍卖是另一种不需要两步提交和显示方案(维克瑞拍卖的主要组成部分)的解决方案,它允许智能合约参与。
蜡烛拍卖让每个人都知道出价的状态,但他们不会透露拍卖何时正式结束。这有助于确保投标人愿意尽早进行真正的投标。否则,他们可能会发现自己处于这样一种情况,即在有机会出价之前就确定拍卖已经结束。
维克瑞拍卖,详情请参见:
https://en.wikipedia.org/wiki/Vickrey_auction
网络实施
波卡将使用基于可验证随机函数(VRF)的随机信标。VRF将提供随机性的基础,这将追溯确定拍卖的结束时间。
插槽持续时间上限为2年,分为3个月的周期。平行链可以在插槽持续时间的任意组合内租用一个插槽。随着时间的推移,平行链可能会租用多个插槽,这意味着它们可以通过租用一个连续的插槽来延长对网络的租约,超过最长期限。
出价
平行链或平行链团队通过指定他们想要租赁的插槽范围和他们愿意保留的通证数量在拍卖中出价。投标人可以是普通账户,也可以使用众贷功能从社区获取通证。
想要更深入地比较这两种获得平行链插槽的方法,请查看Crowdloan Campaigns vs Parachain Auctions,详情请参见:https://wiki.polkadot.network/docs/learn-crowdloans#crowdloan-campaigns-vs-parachain-auctions
Parachain slots at genesis
--3 months– v vSlot A | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |…Slot B | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |…Slot C |__________| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |…Slot D |__________| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |…Slot E |__________|___________| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |… ^ ^ ———————————————max lease—————————————–
范围1 - 4的每个期间代表3个月的持续时间,共计2年。
投标人将提交一份投标配置,指定他们愿意抵押的通证数量和期限。槽位范围可以是周期1 - n中的任何一个,其中n是一个槽位可用的周期数。(波卡的n= 8)
如果你将通证与平行链插槽绑定,你就不能用这些通证Staking。这样,你通过放弃获得Staking奖励的机会来支付平行链插槽。
单个投标人的投标人配置可能类似于以下伪代码示例:
从这个例子中要理解的重要概念是,竞标者可以在不同的价格(bond_amount)下提交不同的配置。然而,只有其中一个出价才有资格排除其他出价而获胜。
获胜者选择算法将选择可能不重叠的出价,以最大化在整个平行链插槽租赁期间持有的通证数量。这意味着对于任何给定的插槽租赁期,最高出价者并不总是能赢(参见下面的例子)。
每个区块都会根据波卡使用的VRF产生一个随机数。此外,每个拍卖都会有一个从0开始逐渐增加到1的阈值。VRF产生的随机数会与阈值进行比较,以确定该区块是否是所谓结束期内拍卖的结束。此外,VRF还会从最后一个Epoch中选择一个区块来访问出价的状态,这有助于缓解来自恶意验证者的某些类型的攻击。
案例
(假如)有一个平行链插槽可用。
Charlie出价75范围为1-8。
Dave的出价100范围是5-8。
Emily出价40范围为1-4。
让我们根据算法计算每个竞标者的估值。我们通过将绑定的金额乘以出价指定范围内的期数来实现这一点。
Charlie - 75 * 8 = 600 对于范围1-8
Dave - 100 * 4 = 400 对于范围5-8
Emily - 40 * 4 = 160 对于范围1-4
尽管Dave根据每个时期的代币数量出价最高,但当我们进行计算时,我们看到由于他只出价4个范围,因此他需要与出价低得多的Emily分享位置。Dave和Emily的出价加在一起仅等于560。Charlie对整个范围的估值是600。因此,Charlie获得了完整的平行链槽。
平行链租赁延期
在插槽租约到期之前,平行链必须竞标并赢得另一场拍卖以确保租约的连续性。为了避免任何连接中断并最大限度地降低失去后续拍卖的风险,平行链团队需要提前计划在当前租期结束之前竞标租约延期。在上一节中进行了解释,每次拍卖让您竞标8个LP(租赁期),这为平行链的租赁延期提供了两种方案。
具有重叠槽位的租期扩展
获取一个插槽,其中第一个租用期在当前插槽的最后一个租用期之前。
注册一个新的paraId
用新的paraId赢得一个插槽拍卖
平行链团队可以访问两个插槽:
即将结束租期的一个
刚刚开始租期的一个
两个插槽至少有一个LP(租赁期)是共同的。当旧插槽过渡到它们的最后一个LP(租赁期)时,平行链可以交换插槽。这可以通过链上治理来完成。该交换的调用(swap call)在registrar pallet中可用。
通过XCM进行插槽交换需要两个活跃的平行链向中继链发送一个XCM消息来批准交换。一个拥有两个重叠插槽的平行链团队可以在新的插槽上启动一个空壳平行链,并将其与旧的插槽上的实际平行链进行交换,从而确保租赁的连续性。
非重叠插槽的租期延长
获取一个插槽,其中第一个LP(租赁期)的开始时间紧接着当前插槽的最后一个LP(租赁期)的结束时间。在这种情况下,平行链可以直接用它们当前的paraId进行竞标,它将自动延长,无需进行交换。
这种方法的优点是不会有多余的LP(租赁期)分布在同一个团队拥有的不同插槽上,但它的缺点是失去了在何时赢得一个新插槽的灵活性:如果团队没有赢得准确的插槽,那么它将遭受一些停机时间,直到它赢得一个新插槽。
相关资源
平行链插槽拍卖如何运作。详情请参见:https://support.polkadot.network/support/solutions/articles/65000182287-how-does-a-parachain-slots-auction-work-
平行链分配-关于平行链分配的 W3F 研究页面,该页面更深入地研究了该机制,详情请参见:
https://research.web3.foundation/en/latest/polkadot/overview/3-parachain-allocation.html
研究更新:蜡烛拍卖案例- W3F 关于蜡烛拍卖的细分和研究更新,详情请参见:
https://polkadot.network/blog/research-update-the-case-for-candle-auctions
抢先交易、智能合约和蜡烛拍卖 W3F 研究团队讨论如何通过蜡烛拍卖来弥补当前区块链拍卖的不足,详情请参见:
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3846363