tBTC:如何解決跨鏈難題

買賣虛擬貨幣

我們最近對Thesis的tBTC進行了安全評估:這是一種信任度最低,可贖回,由比特幣支援的ERC20令牌。該專案使用Keep Network跨越比特幣和以太坊,旨在透過允許使用者使用比特幣支援的ERC20在以太坊上進行交易來實現新的跨鏈經濟。

我們很少會審查像tBTC這樣的專案。畢竟tBTC跨越了幾個系統:比特幣、以太坊和Keep Network。促進所有這些互操作性的智慧合約非常複雜,需要了解所有三種協議。促進所有這些互操作性的智慧合約非常複雜,需要了解所有三種協議。儘管我們之前對流動性和原子貸款的研究在本質上是相似的,但tBTC龐大的程式碼庫將其置於另一個層次。

在我們的審查過程中,,我們瞭解了很多有關跨鏈系統開發的知識。特別是,我們對比特幣交易的研究揭示了以太坊上比特幣交易驗證的一個特別有趣的侷限性。

什麼是SPV證明?

在比特幣的上下文中,SPV證明用於證明給定區塊內交易的存在。簡而言之,證明將Merkle證明與比特幣區塊的hashMerkleRoot配對,以表明該區塊記憶體在交易:

經常使用此類證明,因為它們在計算量相對較輕。在組成tBTC的智慧合約的背景下,此屬性尤其重要。因為它執行在EVM(以太坊虛擬機器)上,所以tBTC自然受到以太坊有限的計算資源的限制。

假設我們想證明比特幣上存在某種交易。對於此SPV證明,我們需要一些輸入:

1. 包含事務的塊的塊頭

2. 原始事務本身

3. 交易的索引(其在區塊中的位置)

4. 梅克爾證明(形成從交易到比特幣塊頭的“路徑”的節點列表)

使用這些輸入,可以證明交易存在於區塊中,而無需連線到比特幣節點。如果人們接受所提供的比特幣區塊頭來自最長的工作量證明鏈,那麼簡單付款驗證(SPV)可以在任何裝置上的任何地方進行。

跨鏈難題

在研究比特幣交易時,我們遇到了在以太坊上執行的SPV證明的基本限制:比特幣交易規模。

比特幣交易主要受到最大4 MB比特幣塊大小的限制。此外由於SPV證明可以排除見證人資料,因此我們可以將理論上最大的比特幣交易大小減少到1 MB。但是出於我們的目的,確切的上限實際上不是由比特幣塊大小決定的,因為它實際上受到以太坊區塊鏈的限制。

為什麼?與比特幣不同,以太坊的交易受到其執行消耗的計算資源量的限制。執行的每個操作都需要一定數量的天然氣,交易消耗的天然氣不能超過單個區塊中所包含的天然氣。這稱為氣體限制,在撰寫本文時,該限制約為1000萬氣體。

要了解這大致相當於比特幣交易規模,我們可以使用以太坊黃皮書中的定義Gtxdatanonzero,這是交易中每個位元組資料所需的氣體成本。Gtxdatanonzero是每位元組16個氣體。

這意味著作為SPV證明的一部分提供的比特幣交易的每個位元組最少消耗16個氣體。請注意,執行SPV證明需要支付額外費用,但出於粗略估算的目的,我將忽略這些費用。

那麼在不可能對以太坊進行SPV證明之前,比特幣交易能獲得多大的收入?答案是以太坊的限制氣體限制除以Gtxdatanonzero:

(10000000 gas)/(16 gas per byte)=625000位元組,約為1MB最大比特幣交易大小的63%。

這對tBTC意味著什麼?

在tBTC中,SPV證明最初有兩個目的:

存款證明:允許使用者證明他們正確地進行了BTC存款,觸發tBTC合約釋放相應的由比特幣支援的ERC20。

欺詐證明:允許使用者證明BTC存款是由存款的保管簽名組在未經授權的情況下使用的,從而觸發簽名者大幅削減並向存款所有者授予保證金。

欺詐證明

SPV欺詐證明使使用者可以防範惡意簽名者。如果簽名者組串通,則無需使用者的明確授權,他們就可以花費已存入的BTC。透過將這種未經授權的交易提供給tBTC的合同,使用者可以證明已經發生了支出,對惡意簽名者進行了處罰,並確保他們為存款損失承擔了合理的賠償。

但是使用上述的比特幣交易規模限制,簽署者可以透過將押金用於足夠大的交易來避免這種損失。

幸運的是,SPV欺詐證明是tBTC中實施的兩種欺詐證明機制之一。替代方法ECDSA欺詐證明為SPV欺詐證明提供了更強大的替代方法。結果SPV欺詐證據從tBTC的合約中刪除。

存款證明

每個使用者進入系統後,存款證明仍在tBTC中使用。為了在以太坊上釋出比特幣支援的ERC20,使用者必須提供SPV成功存款證明。儘管比特幣交易規模問題並未提供明確的濫用存款系統的方法,但使用者可能會透過有效的BTC交易為存款注資,只是發現其交易規模太大而無法在tBTC合約中進行驗證 。

不存在刪除此依賴關係的明確路徑;必須提供SPV證明才能驗證存款。幸運的是,比特幣交易規模的限制並不嚴重,無法阻止tBTC完全發揮作用;以單一輸入和輸出的簡單支出,完全在以太坊當前的區塊限制範圍之內。只要努力確保使用者充分了解此限制,在為存款提供資金時,比特幣交易規模就不會構成重大問題。

tBTC(和其他跨鏈專案)如何確保其系統正常工作?

需要理解這兩條鏈的原語。當使用以太坊時,瞭解EVM在複製其他鏈的原語方面的不足之處。跨鏈應用程式連線兩個世界,每個世界都有自己的時間系統、規則和微妙的陷阱。

效能基準測試將提供一些基準,可以根據該基準來測量系統。例如在我們討論了比特幣交易規模問題之後,論文進行了一些基本的基準測試,以針對其SPV證明提出更準確的限制。

單元測試永遠不夠。從本質上講,跨鏈dapp在系統的兩端都有活動部件。為了確保這些部分協同工作,開發人員需要超越簡單的單元測試。

整合測試將幫助揭示隔離的元件之間互動中的不一致之處,並在接近現實的條件下提供系統模型。

為最壞的情況做準備。高度複雜性帶來巨大責任。在釋出之前找出所有可能的問題是不現實的。

應急計劃:制定快速應對問題的計劃可以使嚴重問題的影響減弱。在釋出前制定應急計劃可能需要做一些工作,但這比沒有準備要好得多。

最後教育你的使用者。瞭解哪裡可能出錯是那一部分;下一步是確保您的使用者分享您的理解。

---------------------------------------------

原文作者:ALEXANDER WADE

譯者:鏈三豐

譯文出處:http://bitoken.world

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;