試圖在比特幣與以太坊之間建立橋樑的 tBTC 第一個版本出師未捷,瞭解其背後的根本原因並展望其前景。

原文標題:《科普 | tBTC:開局不利,未來可期?》
撰文:Alex Manuskin
翻譯 & 校對:閔敏 & 阿劍

tBTC 平臺起步於追逐密碼學貨幣社區夢寐以求的理想:讓比特幣進入以太坊的 DeFi 生態,在密碼學貨幣領域中彼此獨立的兩大網絡之間架起橋樑。然而,其第一個版本非常短命。

在本文中,我們會深入探索 tBTC ,闡明其背後的設計意圖,分析內部的運作原理,瞭解失敗的根本原因,最後預測其前景。

比特幣和以太坊的混搭

作爲密碼學貨幣領域的領頭羊,比特幣擁有最高的市值,最多的用戶以及最充足的流動性(目前爲 1700 億美元),但是它除了作爲價值貯藏物(「長期持有」)之外沒多大用途。

科普 | tBTC:開局不利,未來可期?比特幣的市值佔密碼學貨幣總市值的 2/3 (來源:Coinmarketcap)

另一方面,去中心化金融(DeFi)已經利用以太坊區塊鏈上的智能合約功能,實現了真正的飛躍。DeFi 協議越來越受歡迎。通過以太坊網絡上的智能合約,用戶現在可以通過完全去中心化的方式交換、交易並借貸各種代幣和 ETH 。

科普 | tBTC:開局不利,未來可期?將近 10 億美元的價值鎖定在 DeFi 應用中(來源:defipulse)

如果能在兩大獨立的網絡之間架起橋樑,就可以讓用戶利用其持有的比特幣在 DeFi 中獲得收益。雖然有一些解決方案試圖在比特幣網絡上構建 DeFi ,但是讓比特幣進入以太坊的 DeFi 領域似乎更容易一些。

讓比特幣進入以太坊的 DeFi 領域

迄今爲止,所有試圖打破 BTC 和 DeFi 之間壁壘的方案中,最引人矚目的一種是 BitGo 的 WBTC (Wrapped BTC)—— 基於以太坊的(ERC 20)代幣。一方面,由於 wBTC 是 ERC20 代幣,wBTC 持有者可以使用 DeFi 服務。另一方面,發行方承諾 wBTC 是由足額比特幣背書的,因此其價值錨定比特幣。也就是說,以太坊上每發行一個 wBTC ,都會鎖定一個比特幣爲其背書。這樣一來,在 DeFi 中使用類似 比特幣的代幣的目標就實現了。

wBTC 以及類似解決方案的問題在於,用於背書的比特幣是由中心化託管機構持有的。普通用戶無法直接用比特幣換出 wBTC ,wBTC 必須先由託管機構鑄造出來。

這既限制了 wBTC 代幣的發行數量,又迫使用戶必須信任 wBTC 託管機構會像承諾的那樣鎖定足額的比特幣。

科普 | tBTC:開局不利,未來可期?錨定比特幣的中心化代幣 wBTC 的鑄造流程

爲了緩解這些問題,tBTC 項目應運而生。

去中心化解決方案 tBTC

去中心化是 KEEP 開發的 tBTC 項目與 wBTC 的主要區別,因爲 tBTC 可以讓任意用戶通過一個簽署者網絡來利用比特幣(和一些以太幣)鑄造 tBTC 。不同於之前的解決方案,tBTC 不依賴於某個中心化託管機構持有被鎖定的比特幣。簽署者是隨機選擇的,每鑄造一個新的 tBTC 時,系統都會選擇一組不同的簽署者。這組簽署者提供以太幣作爲質押品,來確保他們不會攜款跑路。

所有比特幣存款都是由超額質押品背書的。每存入一個比特幣,簽署者必須提供價值 1.5 個比特幣的以太幣作爲質押品。在鎖定以太幣作爲質押品之後,簽署者會得到手續費作爲獎勵,手續費會在用戶贖回 BTC 時支付。

另一個有趣之處是,簽署者通過門限簽名協議創建一個唯一的地址。這就意味着,不可能出現某個簽署者攜款跑路的情況。一切操作都必須由所有被選中的簽署者合作執行。

同樣地,如果要違反協議,偷走被鎖定的比特幣,一定得所有簽署者合謀才能成功。

如果簽署者違反協議,任何人都可以提供簽署者作惡的證據。作爲回報,簽署者的質押品會被獎勵給舉報者。由於簽署者是超額質押,如果他們帶着比特幣跑路的話,他們將得不償失。

tBTC 的鑄造流程

  1. 如果存款者想要鑄造 tBTC ,他們會向 tBTC 平臺發送一個交易,支付用於設置存款合約的 gas 費
  2. 系統會隨機選擇一組簽署者來持有該比特幣
  3. 簽署者提供 150% 比特幣價值的以太幣作爲質押品
  4. 簽署者創建一個門限簽名地址併發布
  5. 存款者將比特幣發送至該地址,並等待比特幣區塊鏈的確認
  6. 一旦收到了足夠多的確認(6 個區塊),存款者就會證明付款已完成,合約就會爲存款者生成 tBTC

科普 | tBTC:開局不利,未來可期?錨定比特幣的去中心化代幣 tBTC 的鑄造流程

同樣地,任何 tBTC 持有者都可以使用 tBTC 從簽署者手中贖回比特幣。贖回流程與鑄造流程相反。

  1. 贖回者向合約支付 tBTC ,並提供自己的比特幣地址,也就是打款地址
  2. 簽署者創建了一個門限簽名,並生成了一筆支付交易,將比特幣發送給由贖回者提供的地址
  3. 資金髮回給贖回者之後,簽署者就會提供一個已向合約付款的證明,從而解鎖其以太幣質押品

科普 | tBTC:開局不利,未來可期?使用錨定比特幣的去中心化代幣贖回比特幣的流程

爲以太坊上的比特幣付款提供證明

tBTC 解決方案的關鍵在於能夠向以太坊合約證明比特幣付款已完成。要做到這點並不容易,因爲以太坊和比特幣是兩條不同的區塊鏈。存款智能合約需要知道是否可以爲該用戶生成 tBTC 。爲此,存款者必須提供已向簽署者付款的_證明_。爲了生成證明,智能合約需要執行簡化的比特幣驗證流程(類似比特幣的 SPV (簡化支付驗證)客戶端)。存款者提供付款的哈希值,以及付款已完成並在比特幣區塊鏈上獲得了 6 個驗證的證明。鑑於比特幣的工作量證明共識機制,這個證明是可靠的。簽署者在贖回比特幣的過程中需要提供相同的證明。只有這樣,簽署者才能贖回他們的質押品。

安全事件

官方 tBTC 去中心化應用(DApp)於 5 月 16 日上線。在 5 月 18 日(運行約 48 小時後),Keep Network 項目的 CEO 宣佈其團隊啓動了一次性切斷開關,暫時關閉了該平臺的比特幣存款功能。

根本問題

Keep 團隊在 5 月 20 日發佈的詳細覆盤中指出,根本問題出在贖回協議上。正如覆盤中所說,在贖回期間,贖回者會提供一個比特幣地址,簽署者應該將由他們託管的比特幣發送至這個地址。有效的比特幣地址有好幾個版本。每個版本在長度和前綴上都略有區別。

例子:

新格式:bc1qngsulfgcudt8ztwv9quef9k5sv0ld2px0jh8nw
舊格式:1PPhYgecwvAN7utN2EotgTfy2mmLqzF8m3

由於合約的贖回流程出了 bug ,簽署者無法證明他們正確地將比特幣發送到了舊格式的地址上。

這意味着什麼?

這對誠實的贖回者不會產生任何影響。贖回者可以提供任意比特幣地址並收到他們的比特幣。問題出在簽署者這邊。簽署者在試圖證明他們已經向贖回者付款時,如果贖回者使用的是舊格式的地址,即使簽署者是誠實的,合約也不會接受他們的證明。因此,簽署者會因爲沒有及時提供付款證明而被系統認爲是作惡者。在這種情況下,任何用戶都可以指控簽署者的 「惡行」,並獲得簽署者的部分質押品作爲獎勵。

一旦這一 bug 被利用,簽署者(協議的支柱)就會同時失去比特幣(被髮送給了贖回者)和以太幣(被獎勵給了指控者)。發現了這個 bug 的惡意贖回者會發起多個惡意贖回流程,不僅能取回比特幣,還能獲得簽署者的以太幣。

這種情況可以避免嗎?

編寫完美的代碼本身就很難,更何況是上傳一次就再也不能更改的智能合約的代碼。

Keep 團隊選擇不在智能合約上加入 「升級」 功能。這種做法肯定有其優勢,也會帶來很大的風險。也正是因此,他們不能簡單地用新的合約來代替舊的合約,解決將來的問題。Keep 團隊的覆盤提到了原本可以採取的預防措施,以及如何避免 tBTC 2.0 出現同樣問題的未來計劃。

根據我們在該協議正式上線之前的實驗經驗來看,我們認爲測試網 DApp 測試階段應該更久一些,在主網上線前應該有更廣泛的測試和用例。例如,我們在嘗試贖回時,無法完成該流程,卡在了下面這個界面上。

科普 | tBTC:開局不利,未來可期?我們在 tBTC DApp 的測試階段遇到了一些問題

砥礪前行

雖然初次上線就慘遭失敗,但是 tBTC 還有翻盤的機會。好在 99.87% 的 tBTC 都找了回來並歸還給了持有者(剩下的 tBTC 很可能就成了這次事件的紀念品),沒有造成什麼經濟損失。tBTC 團隊全程在溝通和信息披露方面做得非常好。

這次失敗是因爲合約出了 bug 。在系統被關停之前,沒有時間測試更加複雜的運作環節(價格信息輸入機制、簽署者分佈、清算等)。

更重要的是,在連接比特幣和以太坊的 DeFi 方面有很大的需求和潛力。我們終將在二者之間架起橋樑。如果 tBTC 做不到,還會有後來者。

來源鏈接:medium.com