以 BTC 二層 Rootstock 為例,解讀銘文應用新場景合併採礦

PANews
2024-05-16 14:22:34
收藏
本文將以 BTC 二層的 Rootstock (@rootstock_io)為例來探討合併挖礦的工作原理。

作者:Gametaverse

來源:PANews

眾所周知,銘文技術目前主要是用來發行資產,但是最近我在研究BTC生態的時候,發現合併挖礦其實使用的也是銘文,本文將以BTC二層的 Rootstock (@rootstock_io)為例來探討合併挖礦的工作原理。

RSK的合併挖礦原理

Rootstock 也是一條兼容EVM的側鏈,基於SHA256 的 POW 共識,生態角色有三個,1) Miner,和BTC共用礦工來創建區塊。2) Powpeg,負責和BTC鏈資產的雙向錨定。3) Node Operator,運營全節點,廣播交易,驗證區塊。因為和BTC共識一樣,所以採用了合併挖礦。

在剛聽到合併挖礦的時候,我的第一印象是,既然使用同樣的挖礦算法,那麼礦工(礦機)會比較挖礦收益,誰的收益高就挖誰,但仔細研究之後才發現這個想法是錯的。合併挖礦的真實流程其實和製作銘文非常類似:如果說銘文NFT是把一個圖片或者文字銘刻到BTC鏈上空間的話,那麼合併挖礦其實是把RSK這個區塊鏈的區塊頭相關信息銘刻到BTC鏈上空間。

合併挖礦的工作流程如下:

  1. 準備階段:
  2. 礦工創建比特幣區塊:首先,礦工準備一個新的比特幣區塊,包括交易、前一個區塊的哈希等標準組件。
  3. 創建RSK區塊模板:同時,礦工也會從RSK網絡獲取一個RSK區塊模板。這個模板包含待處理的RSK交易和其他必要的區塊信息。
  4. 組合區塊:
  5. 礦工將RSK區塊模板轉化為一個小的數據片段,稱為"RSK標籤"(或稱為合併挖礦標記)。然後,礦工將這個標籤插入到比特幣區塊的coinbase交易中。coinbase交易是每個區塊中的第一筆交易,通常用於獎勵礦工。
  6. 這樣,比特幣區塊現在含有了關於RSK區塊的信息,但這並不影響比特幣區塊的正常功能。
  7. 挖礦:
  8. 礦工開始像往常一樣為比特幣區塊進行工作量證明(PoW)挖礦。因為比特幣區塊現在包含了RSK的信息,礦工實際上是同時為兩個鏈進行挖礦。
  9. 驗證和提交:
  10. 提交比特幣區塊:當礦工找到有效的工作量證明,成功挖掘出一個新的比特幣區塊後,他們會像往常一樣將其提交給比特幣網絡。
  11. 提交RSK區塊:礦工同樣需要提取出coinbase交易中的RSK標籤,並使用它來構建一個完整的RSK區塊。然後,這個RSK區塊被提交到RSK網絡。
  12. RSK網絡的驗證:
  13. RSK網絡接收到新的區塊後,首先檢查它是否包含了有效的比特幣區塊的引用(通過RSK標籤)。
  14. 然後,RSK網絡驗證比特幣區塊的工作量證明。這是可能的,因為RSK網絡可以檢查比特幣區塊的哈希值是否滿足比特幣網絡的難度要求。
  15. 如果一切有效,RSK區塊被接受並添加到RSK區塊鏈上。這意味著在不增加額外計算的前提下,通過比特幣的PoW挖礦過程同時保障了RSK網絡的安全性。

從上面的討論我們可以看到,合併挖礦和Ordinal NFT稍有不同的地方在於

  1. 合併挖礦銘刻的是RSK標籤(包含有RSK區塊的相關數據),而Ordinal NFT一般銘刻的是圖片或者文字。
  2. 合併挖礦儲存數據的地方在一個區塊的Coinbase交易的腳本區,而Ordinal NFT儲存數據的地方在Segwit腳本空間。

合併挖礦如何處理區塊的異步性

也許有人會產生一些疑問,既然是合併挖礦,BTC鏈是10分鐘一個塊,RSK是30秒一個快,那麼假設在過去一分鐘RSK出了兩個block,那這兩個block要如何構建?畢竟BTC miner是10分鐘才能構造一個block。

這其實涉及到合併挖礦中不同鏈區塊時間間隔差異的處理。RSK的區塊時間大約是30秒,而比特幣的平均區塊時間是大約10分鐘。這確實意味著在比特幣挖出一個區塊的時間裡,RSK可以產生多個區塊。

在合併挖礦中,是這樣處理的:

  1. RSK區塊的產生:雖然RSK的區塊平均每30秒就能產生一個,但並不是所有這些區塊都直接與比特幣區塊"綁定"。RSK使用一種稱為"裝箱"(commitment)的機制,在比特幣區塊中記錄RSK區塊的信息。

  2. 區塊"裝箱":在比特幣區塊的coinbase交易中,礦工可以包含一個特殊的RSK區塊信息(這通常被稱為"裝箱"或"提交")。然而,由於比特幣的區塊時間遠長於RSK,這個信息通常代表了多個RSK區塊的狀態。簡而言之,一個比特幣區塊可能承載一個或多個RSK區塊的信息,但這主要關乎於在特定時間點的最新RSK狀態或區塊的合併提交。

  3. 解決時間差異:因此,雖然多個RSK區塊可能在一個比特幣區塊時間內被產生,但合併挖礦過程主要是關於在比特幣區塊中記錄RSK網絡的最新狀態。每當比特幣區塊被挖掘出來並且包含RSK的信息時,這個信息會反映在RSK網絡上,允許RSK區塊得到確認。

  4. RSK網絡的確認和安全性:每當一個比特幣區塊被成功挖出並且包含對RSK區塊的引用時,相應的RSK區塊就會被網絡確認。這不僅為RSK區塊提供了額外的安全性,還允許RSK利用比特幣網絡的強大挖礦能力。

礦工與全節點的分離

在比特幣網絡中,礦工確實通常也運行全節點。這是因為為了有效地挖礦,他們需要訪問完整的區塊鏈數據來驗證交易和防止無效的區塊產生。因此,在比特幣生態系統中,礦工和全節點運營商的角色經常重疊,儘管理論上,運行一個全節點並不一定要參與挖礦。

在RSK網絡中,情況稍有不同:

1. 礦工(Miners):

在RSK中,礦工同樣對網絡的安全性至關重要。RSK允許比特幣礦工通過合併挖礦同時為RSK網絡提供安全性,這意味著他們可以在挖掘比特幣的同時挖掘RSK,而不需要額外的計算資源。這些礦工驗證並打包RSK的交易,並通過工作量證明機制對RSK區塊鏈進行維護。

2. 全節點運營商(Node Operators):

雖然RSK礦工在網絡中扮演重要角色,但全節點運營商也非常重要。全節點運營商在RSK網絡中運行完整節點,這意味著他們保持網絡的一個完整的、更新的區塊鏈副本。他們幫助網絡達成共識,傳播交易和區塊。不過,與比特幣不同,在RSK中運行全節點並不直接等同於挖礦。你可以運行一個全節點以支持網絡,而不參與合併挖礦。

因此,雖然在RSK中礦工和全節點運營商可以是不同的參與者,但也有可能是相同的。區別在於,儘管所有礦工幾乎必須運行全節點以參與挖礦過程,但並非所有運行RSK全節點的人都參與挖礦。這樣分開主要是因為合併挖礦允許比特幣礦工在不犧牲自己挖礦效率的情況下增加對RSK網絡的安全性,而全節點運營商則是為了維護網絡的健康和透明度而存在的。

最後,BTC合併挖礦的礦工會收到RBTC充當gas的獎勵。Rootstock鏈治理代幣是RIF,充當gas fee 的是1:1錨定的RBTC。這個雙向錨定由 15個 Powpeg(數量會變動)管理,存款的時候:將比特幣發送到 RSK 的存款多簽地址,等待足夠多的區塊確認即可。在足夠多的確認之後,側鏈上的一個 Solidity 合約會發現這筆交易,並給側鏈上一個你的公鑰(你所存入的 UTXO 的公鑰)所控制的賬戶增加餘額。取款的流程也由一個智能合約來控制,它會跟聯盟溝通,聯盟會簽名由合約告知的主鏈取款交易。

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
ChainCatcher 與創新者共建Web3世界