楠木軒

一文讀懂Polkadot的平行鏈拍賣設計

由 宿秀榮 發佈於 經典

在 Polkadot 上成為一個平行鏈的前提是獲得一個平行鏈卡槽(parachain slots)。獲得卡槽的前提是首先要質押代幣。我們定義了兩種不同類型的平行鏈卡槽,一種叫社區測試型卡槽(community beta slots)、另一種叫商用卡槽(commercial slots)。我們希望保留 20% 的槽位給前者,社區測試型平行鏈會主要由 Web3 基金會來部署或支持,它們是相對公平、無預挖的。餘下 80% 的卡槽是公開的、為了商業目的的,這 80% 的卡槽會通過拍賣方式來開放。

拍賣平行鏈卡槽(Auctioning Parachain Slots)

我們排除了“標書式拍賣”的方案,因為其中一些報價是用智能合約來提交的。使用智能合約報價也是出於我們對促成一個公平的、透明化的拍賣流程的考慮。我們排除了封閉的拍賣形式、我們也不想應用“可能被狙擊的拍賣流程”。最後我們決定採用了蠟燭式拍賣法,並使用了可回溯的收盤機制。

在固定窗口內開始拍賣後,投標人可以發佈 1-4 個租賃期的投標,每個租賃期為 6 個月。投標會成為交易的區塊。投標人可以提交多個投標。投標人正在提交的投標租賃期應該相連,或與其他投標人的投標租賃期相鄰。

對於 4 個租賃期,可能還會被分成 10 小段範圍。我們將 10 段時間範圍中的每個獲勝者存儲在指定的數據結構中。我們需要確保新投標與同一出價者在另一個間隔內的中標價格沒有差距。如果在當前某個投標人是某段租賃期的標王,例如租期 1-2,那麼他就不能對 4 投標,除非有人在租期 1-2 以更高的價格來拍賣壓過他。

如果沒有中標,那麼這個數據塊就會被忽略。在這個租賃期就會更新新的中標人,然後計算新的中標價格。新的獲勝者是通過選擇投標的組合來計算的,全部投標的租賃期數量乘以每段租期競價的乘積,最高的,就是贏家。一旦競價添加到該區塊後,其競價的金額將被暫時扣留。

當代表結拍的一系列區塊生成完畢後,隨機數機制將會決定之前某個區塊最終是不是代表結拍的區塊 (closing block),並將結拍的數據塊發送給競標的勝者,以及包含在區塊裏的所投中的租賃期。競標失敗的拍賣者的投標錢款 (DOTs) 會在結拍後原路退回。

設競拍者 1-3,三人分別為 B1,B2,B3

例如,有一羣拍賣者希望競拍一些卡槽。競拍者 1 提交了(1-4, 75 DOT), 表示想競拍第一期到第四期(每 6 個月象徵一期租賃期)每期叫價 75DOT,總出價 300DOTs,競拍者 2 提交(3-4,90DOT)(表示只競拍一個卡槽的第三期和第四期,就是這個卡槽的後一年使用權),競拍者 3 提交(1-2,30DOT)(表示只競拍一個卡槽的第一期和第二期,也就是這個卡槽的前一年使用權),因為 B2 和 B3 兩人的加權總共叫價為 240DOT(902+302), 平均下來每個租賃期的競價為 60DOT (240DOT/4=60DOT),相比下,B1 的平均每個租賃期的競價為 75DOT 遠高於 B2、B3 兩人 , 因此 B1 投中所有租賃期(1-4)。

分析

如果競拍者有着自己已設定好的定價且定價公開,我們可以採用英國式拍賣;如果僅僅客觀存在一個估值金額但是沒有公開,那麼可以使用維克裏拍賣(Vickrey Auction)。這兩種拍賣都具有弱勢主導的策略,投標人能做到的最好的是真實地評估其估值。

跟英式拍賣比較起來,我們的拍賣形式會有兩個很大的不同:

(1)一是蠟燭式拍賣會有一個大致的收盤時間範圍,

(2)以及允許每個競拍者的定價可以是公開的、也可以選擇不公開。

我們將在之後解釋一個促成公平、有競價主導權的、能實現收益最大化的一個最終機制。