tBTC 平台起步於追逐密碼學貨幣社群夢寐以求的理想:讓比特幣進入以太坊的DeFi 生態,在密碼學貨幣領域中彼此獨立的兩大網路之間架起橋樑。然而,其第一個版本非常短命。本文源自於加密貨幣錢包商 Zengo 的 Medium 文章《tBTC: A bumpy start, but a bright future?》,由專欄作者 以太坊愛好者 編譯、撰寫及整理。
在本文中,我們會深入探索 tBTC ,闡明其背後的設計意圖,分析內部的運作原理,了解失敗的根本原因,最後預測其前景。
比特幣和以太坊的混搭
作為密碼學貨幣領域的領頭羊,比特幣擁有最高的市值,最多的用戶以及最充足的流動性(目前為1700 億美元),但是它除了作為價值儲存物(長期持有)之外沒多大用途。
另一方面,去中心化金融(DeFi)已經利用以太坊區塊鏈上的智能合約功能,實現了真正的飛躍。DeFi 協議越來越受歡迎。通過以太坊網路上的智能合約,用戶現在可以通過完全去中心化的方式交換、交易並借貸各種代幣和 ETH 。
延伸閱讀:DeFi 市值復甦再度闖關 10 億美元!Messari CEO:ETH 漲勢有望超越 18 年高峰
如果能在兩大獨立的網路之間架起橋樑,就可以讓用戶利用其持有的比特幣在 DeFi 中獲得收益。雖然有一些解決方案試圖在比特幣網路上構建 DeFi ,但是讓比特幣進入以太坊的 DeFi 領域似乎更容易一些。
讓比特幣進入以太坊的 DeFi 領域
迄今為止,所有試圖打破 BTC 和 DeFi 之間壁壘的方案中,最引人矚目的一種是 BitGo 的WBTC(Wrapped BTC)—— 基於以太坊的(ERC 20)代幣。
一方面,由於 wBTC 是 ERC20 代幣,wBTC 持有者可以使用 DeFi 服務。另一方面,發行方承諾wBTC 是由足額比特幣背書的,因此其價值錨定比特幣。也就是說,以太坊上每發行一個wBTC ,都會鎖定一個比特幣為其背書。這樣一來,在DeFi 中使用類似比特幣的代幣的目標就實現了。
wBTC 以及類似解決方案的問題在於,用於背書的比特幣是由中心化託管機構持有的。普通用戶無法直接用比特幣換出 wBTC ,wBTC 必須先由託管機構鑄造出來。
這既限制了 wBTC 代幣的發行數量,又迫使用戶必須信任 wBTC 託管機構會像承諾的那樣鎖定足額的比特幣。
延伸閱讀:WBTC成Dai抵押資產後,鎖倉市值飆漲16倍 ! MakerDAO 帶起新Coinbase效應?
為了緩解這些問題,tBTC 項目應運而生。
去中心化解決方案 tBTC
去中心化是 KEEP 開發的 tBTC 項目與 wBTC 的主要區別,因為 tBTC 可以讓任意用戶通過一個簽署者網路來利用比特幣(和一些以太幣)鑄造 tBTC 。不同於之前的解決方案,tBTC 不依賴於某個中心化託管機構持有被鎖定的比特幣。簽署者是隨機選擇的,每鑄造一個新的 tBTC 時,系統都會選擇一組不同的簽署者。這組簽署者提供以太幣作為質押品,來確保他們不會攜款跑路。
所有比特幣存款都是由超額質押品背書的。每存入一個比特幣,簽署者必須提供價值 1.5 個比特幣的以太幣作為質押品。在鎖定以太幣作為質押品之後,簽署者會得到手續費作為獎勵,手續費會在用戶贖回 BTC 時支付。
另一個有趣之處是,簽署者通過門限簽名協議創建一個唯一的地址。這就意味著,不可能出現某個簽署者攜款跑路的情況。一切操作都必須由所有被選中的簽署者合作執行。
同樣地,如果要違反協議,偷走被鎖定的比特幣,一定得所有簽署者合謀才能成功。
如果簽署者違反協議,任何人都可以提供簽署者作惡的證據。作為回報,簽署者的質押品會被獎勵給舉報者。由於簽署者是超額質押,如果他們帶著比特幣跑路的話,他們將得不償失。
tBTC 的鑄造流程
- 如果存款者想要鑄造 tBTC ,他們會向 tBTC 平台發送一個交易,支付用於設置存款合約的 gas 費用
- 系統會隨機選擇一組簽署者來持有該比特幣
- 簽署者提供150% 比特幣價值的以太幣作為質押品
- 簽署者創建一個門限簽名地址並發布
- 存款者將比特幣發送至該地址,並等待比特幣區塊鏈的確認
- 一旦收到了足夠多的確認(6 個區塊),存款者就會證明付款已完成,合約就會為存款者生成tBTC
同樣地,任何 tBTC 持有者都可以使用 tBTC 從簽署者手中贖回比特幣。贖回流程與鑄造流程相反。
- 贖回者向合約支付 tBTC ,並提供自己的比特幣地址,也就是打款地址
- 簽署者創建了一個門限簽名,並生成了一筆支付交易,將比特幣發送給由贖回者提供的地址
- 資金發回給贖回者之後,簽署者就會提供一個已向合約付款的證明,從而解鎖其以太幣質押品
為以太坊上的比特幣付款提供證明
tBTC 解決方案的關鍵在於能夠向以太坊合約證明比特幣付款已完成。
要做到這點並不容易,因為以太坊和比特幣是兩條不同的區塊鏈。存款智能合約需要知道是否可以為該用戶生成 tBTC 。為此,存款者必須提供已向簽署者付款的證明 。為了生成證明,智能合約需要執行簡化的比特幣驗證流程(類似比特幣的SPV(簡化支付驗證)客戶端)。
存款者提供付款的哈希值,以及付款已完成並在比特幣區塊鏈上獲得了6個驗證的證明。鑑於比特幣的工作量證明共識機制,這個證明是可靠的。簽署者在贖回比特幣的過程中需要提供相同的證明。只有這樣,簽署者才能贖回他們的質押品。
安全事件
官方 tBTC 去中心化應用(DApp)於 5 月 16 日上線。在5 月18 日(運行約48 小時後),Keep Network 項目的CEO 宣布其團隊啟動了一次性切斷開關,暫時關閉了該平台的比特幣存款功能。
根本問題
Keep 團隊在5 月20 日發布的詳細复盤中指出,根本問題出在贖回協議上。
正如復盤中所說,在贖回期間,贖回者會提供一個比特幣地址,簽署者應該將由他們託管的比特幣發送至這個地址。有效的比特幣地址有好幾個版本。每個版本在長度和前綴上都略有區別。
例子:
新格式:bc1 qngsulfgcudt8ztwv9quef9k5sv0ld2px0jh8nw
舊格式:1 PPhYgecwvAN7utN2EotgTfy2mmLqzF8m3
由於合約的贖回流程出了bug ,簽署者無法證明他們正確地將比特幣發送到了舊格式的地址上。
這意味著什麼?
這對誠實的贖回者不會產生任何影響。贖回者可以提供任意比特幣地址並收到他們的比特幣。問題出在簽署者這邊。簽署者在試圖證明他們已經向贖回者付款時,如果贖回者使用的是舊格式的地址,即使簽署者是誠實的,合約也不會接受他們的證明。因此,簽署者會因為沒有及時提供付款證明而被系統認為是作惡者。在這種情況下,任何用戶都可以指控簽署者的「惡行」,並獲得簽署者的部分質押品作為獎勵。
一旦這一 bug 被利用,簽署者(協議的支柱)就會同時失去比特幣(被發送給了贖回者)和以太幣(被獎勵給了指控者)。發現了這個 bug 的惡意贖回者會發起多個惡意贖回流程,不僅能取回比特幣,還能獲得簽署者的以太幣。
這種情況可以避免嗎?
編寫完美的代碼本身就很難,更何況是上傳一次就再也不能更改的智能合約的代碼。
Keep 團隊選擇不在智能合約上加入「升級」功能。這種做法肯定有其優勢,也會帶來很大的風險。也正是因此,他們不能簡單地用新的合約來代替舊的合約,解決將來的問題。Keep 團隊的複盤提到了原本可以採取的預防措施,以及如何避免 tBTC 2.0 出現同樣問題的未來計劃。
根據我們在該協議正式上線之前的實驗經驗來看,我們認為測試網 DApp 測試階段應該更久一些,在主網上線前應該有更廣泛的測試和用例。例如,我們在嘗試贖回時,無法完成該流程,卡在了下面這個介面上。
砥礪前行
雖然初次上線就慘遭失敗,但是tBTC 還有翻盤的機會。好在 99.87% 的 tBTC 都找了回來並歸還給了持有者(剩下的 tBTC 很可能就成了這次事件的紀念品),沒有造成什麼經濟損失。tBTC 團隊全程在溝通和資訊披露方面做得非常好。
這次失敗是因為合約出了bug 。在系統被關停之前,沒有時間測試更加複雜的運作環節(價格訊息輸入機制、簽署者分佈、清算等)。
更重要的是,在連接比特幣和以太坊的 DeFi 方面有很大的需求和潛力。我們終將在二者之間架起橋樑。如果 tBTC 做不到,還會有後來者。
📍相關報導📍
DeFi 新手科普 | 去中心化穩定幣 Dai 的十大應用場景
Binance|幣安研究院年度報告:DeFi 的現狀及展望(附完整報告)
PeckShield 資安報告:4月共發生安全事件 15 起,DeFi 安全敲響產業警鐘
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
LINE 與 Messenger 不定期為大家服務