一文读懂如何竞拍波卡平行链
原文链接: https://wiki.polkadot.network/docs/en/learn-auction
翻译: PolkaWorld
Polkadot 的平行链插槽将根据无需许可的蜡烛拍卖进行出售,我们在这个蜡烛拍卖的基础上做了一些改进,以确保区块链的安全。
蜡烛拍卖机制
蜡烛拍卖是公开拍卖的一种变体,在公开拍卖中,竞买人提交的出价越来越高,拍卖结束时,出价最高的人被认为是赢家。
蜡烛拍卖最初是在 16 世纪用于出售船只,并从决定拍卖开放期的 “一寸蜡烛” 中得名。当火焰熄灭,蜡烛熄灭时,拍卖会突然终止,此刻的竞价者将获胜。
当蜡烛拍卖在网上使用时,他们需要一个随机数来决定终止时间。
平行链插槽拍卖与普通蜡烛拍卖略有不同,因为它不使用随机数来决定其开盘阶段的持续时间。相反,它有一个已知的开放阶段,在正常结束时,追溯性地确定在过去的某个时候结束。因此,在开盘阶段,投标将继续被接受,但由于追溯性确定的结束时间可能早于投标提交时间,因此 后面的投标有更高的失败概率 。
Acala & Laminar 亮哥解读:”在正常结束时,追溯性地确定在过去的某个时候结束“ 的意思就是说在最终结束的时候,再随机算一个过去的区块,这个过去的区块是真正拍卖截止的时间,但这个是在完整流程走完后才算的,所以没人会提前知道拍卖什么时候结束。
为什么使用蜡烛拍卖?
区块链系统的开放性和透明性会打开传统拍卖形式中不存在的 攻击拍卖 。在互联网或区块链上进行时,普通的开放式拍卖尤其容易受到拍卖攻击。
拍卖攻击发生在拍卖结束时,竞拍者不愿提前出价,希望能以低于实际价值的价格出价。
例如,Alice 可能在拍卖会上以 30 美元的价格估价一件物品。她提交了 10 美元的初始出价,希望能以更低的价格购买这些物品。Alice 的策略是逐步提高出价,直到超过 30 美元的真实价值。另一位出价人 Eve 对同一物品的估价为 11 美元。Eve 的策略是观看拍卖,并在最后一秒出价 11 美元。在拍卖结束前,Alice 将没有时间回应这一出价,并将失去该物品。这种拍卖机制是次优的,因为它没有发现物品的真实价格,而且物品也没有交给最看重它的人。
在区块链上,这个问题可能更糟,因为它可能会给区块的生产者一个机会,通过添加它自己,或忽略其他出价,在最后一个结束区块时攻击任何拍卖。也有可能是恶意竞拍者或区块生产者试图通过攻击拍卖来伤害诚实的竞拍者。
正因为如此,Vickrey auction 是第二价格拍卖的一种变体,在第二价格拍卖中,出价是隐藏的,只有在后期才被揭示出来,它已经成为一种备受推崇的机制。例如,它被实现为在 ENS( https://ens.domains/ )上拍卖人类可读名称的机制。蜡烛拍卖是另一种不需要两步提交和披露方案(Vickrey auctions 的主要组成部分)的解决方案,因此允许智能合约参与。
蜡烛拍卖让每个人都能知道竞拍的状态,但不知道拍卖何时结束,这有助于确保 竞拍者更愿意尽早出价 。否则,他们可能会发现自己处于这样一种情况:拍卖甚至在他们出价之前就已经确定“结束”。
它在波卡中的使用
Polkadot 将使用一个基于 VRF 的随机信标 ,该信标也在协议的其他地方使用。VRF 将提供随机性的基础,这将追溯确定拍卖的“结束时间”。
当一个帐户出价时,他们可以在一个插槽中出价任何可用的期间或范围。然而,如果一个 parachain(具有相同的 STF)出价,那么该 parachain 必须在一个连续的周期或范围内出价,直到它们已经占据了一个区间。他们将无法竞标一个重叠的插槽(同一时间没有多个平行链),如果两者之间存在差距,他们也将无法竞标未来的插槽。如果一个 parachain 在已经结束其插槽持续时间之后重新启动,它将需要从一个新的 genesis(可能是所有旧状态的快照)重新启动,并且需要从外部帐户出价。
插槽持续时间上限为 2 年,每个阶段分为 6 个月。Parachains 可以在插槽持续时间内的任何连续范围内租用一个插槽。随着时间的推移,Parachains 可能会租赁多个插槽,这意味着它们可以通过租赁一个连续的插槽将其租约延长到超过 2 年的插槽期限。
如何竞价?
每个平行链插槽最长持续时间为 2 年。每 6 个月的时间间隔被划分为自己的租赁期。多个连续周期(period )就是一个范围(range )。
在一系列平行链插槽租赁开始前的六个月,将有几次拍卖会举行。
投标人将提交一个配置的投标文件,具体说明他们愿意锁定的 DOT 金额和范围。插槽范围可以是周期 1-4 的任何连续范围。
单个投标人的投标人配置可能如下所示:
赢家选择算法将选择可能不重叠的出价,以最大限度地增加在整个 2 年租赁期的平行链插槽持有的 DOT 数。这意味着,在任何给定的插槽租赁期内,出价最高的人可能不会总是获胜(请参阅下面的示例)。
在每个块上确定一个随机数,它基于 Polkadot 使用的 VRF。此外,每个拍卖都有一个从 0 开始并增加到 1 的阈值。VRF 产生的随机数在阈值旁边被检查,以确定该块是否是拍卖的结束。此外,VRF 将从上一个 epoch 中选择一个块来获取出价状态(以减轻来自恶意验证人的某些类型的攻击)。
案例
不存在竞争的场景
有一个平行链插槽可用。
Alice 出价 20 DOT,选择范围是 1-2。
Bob 出价 30 DOT,选择的范围 3-4。
拍卖结束。
Alice 绑定了 20 DOT,将在第一年使用平行链的插槽。
Bob 绑定了 30 DOT,将在第二年使用平行链的插槽。
竞争场景
有一个平行链插槽可用。
Charlie 出价 75 DOT,选择的范围是 1-4。
Dave 出价 100 DOT,选择的范围 3-4。
Emily 出价 40 DOT,选择的范围 1-2。
让我们根据算法计算出每个投标人的估价。我们通过将绑定的金额乘以投标指定范围内的期限来实现这一点。
Charlie:75*4 = 300,选择范围 1-4。
Dave:100*2 = 200,选择范围 3-4。
Emily:40*2 = 80,选择范围 1-2。
尽管根据 DOT 金额,Dave 的出价最高,但当我们进行计算时,我们会发现,由于他只竞拍了 2个周期,他需要与出价更低的 Emily 分享这个插槽。Dave 和 Emily 的出价加起来只有 280 的估价。
Charlie 对整个范围的估价为 300,因此 Charlie 得到 Parachin 插槽的完整范围。
常见问题解答
为什么大家不直接竞拍最大的期限?
在这个插槽内,DOT 在拍卖中的出价将被锁定。这意味着存在可能使用这些 DOT 做其他事情的 机会成本 。对于有利于 Polkadot 的 parachains,应该使 parachains 和 Polkadot 中继链之间的利益保持一致。
这种机制如何确保平行链的多样性?
将平行链插槽划分为六个月的时间间隔的方法,部分也是源于希望存在更多的平行链多样性,并防止特别大和资金充足的平行链 囤积插槽 位。通过将每个周期定为 6 个月,但整个插槽的持续时间为 2 年,该机制可以应对资金充足的平行链,以确保它们在租约结束时获得一个插槽,同时逐渐允许其他平行链进入生态系统,占据其他还没有被使用的 6 个月的周期。例如,如果一个大型的,资金充足的 parachain 已经获得了一个范围为 1-4 的插槽,那么他们将非常有兴趣获得下一个 2-5 范围的插槽。在这个机制下,平行链可以获得周期 5(因为它只需要周期 5),并允许第二个平行链插槽使用范围 2-4。
为什么区块链上的随机性很难?
对于区块链系统来说,随机性是个问题。在一个透明和开放的网络上产生一个不可信任的随机数,在这个网络中,其他各方必须能够验证,这为参与者试图改变或操纵随机性打开了可能性。已经提出了一些解决方案,包括像 RANDAO 这样的 hash-onions 和可验证随机函数(VRFs)。后者是波卡用来作为其随机性的基础。
资源
- Parachain Allocation :W3F 研究页面上关于的 parachain 分配更深入的机制说明 https://research.web3.foundation/en/latest/polkadot/Parachain-Allocation.html。
- paritytech/polkadot#239 :平行链插槽的代码 https://github.com/paritytech/polkadot/pull/239