【投研】《Babylon 如何實現 BTC “去信任化質押”?—— BTC 一層質押步驟解析》

- 上週 @babylon_chain 社區測試活動 bbn-test-3 已經結束,不知道大家都參與了沒有?

- Babylon 這個項目最大的亮點就是讓 BTC 實現了“去信任化質押”。簡單說就是,BTC 資產可以不脫離自己錢包的控制就參與質押活動,並獲得收益。

- 之前參與測試的時候,發現 Babylon 的質押流程總共需要進行 5 個步驟。而所謂的“去信任化質押”就通過這 5 個步驟實現,接下來我們一起看一看這 5 個步驟到底是怎麼運作的。

【致謝】在拆解整個質押過程時,我向 長尼瑪 老溼請教了 BTC UTXO 交易構建和不同簽名方式的實現機制,牆裂感謝。但是,我們都看不到 Babylon 實現質押的具體源碼,所以拆解的實現機制可能有誤,歡迎隨時打臉批判。

1️⃣ 創建質押交易(BTC 網絡)

- 第一個步驟是在 BTC 網絡創建一筆質押交易,這筆交易需要實現兩種功能:1)利用了 BTC 的 time-lock 腳本,將參與質押的 BTC 鎖定起來不允許使用;2)懲罰交易,這是爲了預防用戶後續作惡時(比如利用自己質押 BTC 來攻擊 POS 鏈)可以進行處罰(Slashing),這筆質押的 BTC 將被銷燬。

- 這裏的處罰是使用了 EOTS 簽名(Extractable one-time signatures,可提取的一次簽名方案),當用戶作惡時允許從惡意行爲產生的簽名中自動提取私鑰。Babylon 會將質押交易的“輸出” 花費到一個銷燬地址上,將其變成不可花費的交易輸出。

2️⃣ 創建質押合約和解除質押交易(BTC 網絡)

- 這一步主要實現了兩個操作。第一個是創建了一個質押的合約,即創建一種限制條款(covenants)來將上面第 1 步的操作以合約的形式確定下來;另外一個操作是創建了一個解除質押交易(unbonding transaction),這個操作的核心目的是爲了在鎖定期結束後,用戶才能使用他們的私鑰來贖回這些資產,重新使用這些 BTC。

3️⃣ 創建解除質押合約(BTC 網絡)

- 這一步是爲了創建解除 BTC 質押的限制條款(covenants)。即構建一個解除質押的合約,最終實現 BTC 贖回的操作。

- 上面3次簽名,最終都在同一筆 BTC 交易中實現(如下圖所示)。這裏其實是通過多個簽名實現了一個交易內的多個分支,可以理解爲一個交易就實現 質押、處罰、贖回 三項操作。

- 此外,我們發現在這筆交易中,我們的 BTC 仍然發送給了一個陌生的錢包。我當時對此非常好奇,Babylon 不是號稱資金不脫離錢包控制嗎?怎麼還把 BTC 打到了一個陌生錢包呢?後來經過諮詢才明白,因爲私鑰原來是 BTC UTXO 的唯一條件,但是當增加了類似 time-lock 等之類的條件以後,那麼最終就必須創建一個新錢包才能實現多條件解鎖。而我們原付款錢包的私鑰是解鎖新錢包 UTXO 的必要條件之一,所以最終要贖回這筆 UTXO,也還是需要使用我們付款錢包的私鑰的。

4️⃣ 綁定領獎賬號(Babylon 網絡)

- 到了最後兩步,整個質押的流程基本就已經完成了。第 4 步主要是在 Babylon 網絡上將你的錢包地址和前 3 步完成的 BTC 質押事件進行綁定,讓你的 Babylon 錢包擁有獲取質押獎勵的資格。

5️⃣ 綁定領獎賬號(BTC 網絡)

- 最後一步依然在 BTC 網絡完成,目的是將你的 BTC 錢包與 Babylon 在 POS 鏈上的質押行爲相綁定(這一步疑問比較大,只是看字面意思進行的解讀,實際上我不理解這一步操作的必要性)。

好了,到這一步咱們的這次質押操作就完成了,最終確認交易還需要再 7 個 BTC 區塊之後。

#BTC #Babylon #staking #restaking