合併挖礦

新手Nov 22, 2023
本文詳細概述了合併挖礦的歷史、技術和應用等,闡釋了如何利用合併挖礦來增強區塊鏈安全性,從而讓讀者深入了解其在區塊鏈生態繫統中的關鍵作用。這是一份綜合指南,適合那些專註於利用合併挖礦來保證區塊鏈安全的人。
合併挖礦

工作量證明(PoW)是中本聰共識(Nakamoto Consensus)的基本組成部分。它有兩大功能:一是用於選擇區塊生産者的女巫抵抗機製,一是提供了恢覆區塊鏈的基線和不斷增加的成本。這就是爲什麽説 PoW 保證了比特幣區塊鏈的安全。

合併挖礦是一種將保護一個區塊鏈所付出的努力衕時重覆用於保護另一個區塊鏈的技術。就像 PoW 爲中本共識提供動力一樣,合併挖礦也可爲不衕區塊鏈的共識提供動力。合併挖礦鏈的共識協議也可以是中本共識,也可以是它的變體,例如GHOSTDECOR。應用合併挖礦技術的行爲通常被稱爲“合併挖礦”。合併在兩個區塊鏈上挖礦的唯一要求是它們要使用相衕的塊頭哈希函數(和難度檢查)來穫得 PoW。

合併挖礦的工作方式很簡單。首先,我們假設有一個主區塊鏈(假設是比特幣)和一個輔助區塊鏈S。設hB和hS分別是比特幣和S的兩個新區塊頭。令 H 爲任意加密哈希函數。要開始挖礦,合併後的礦工必鬚構建 hB 模闆,使其明確引用 H(hS)。採礦過程變化很小。在挖礦時,礦工試圖找到導緻 hB 工作量證明的隨機數,該隨機數滿足比特幣網絡照常確定的難度(即 SHA256D(hB) < targetB)。然而,如果礦工找到一個比特幣區塊頭,其工作量證明與合併挖礦鏈的難度相匹配(SHA256D(hB) < targetS),那麽 hB、hS 以及一些附加區塊頭鏈接信息將成爲合併挖礦區塊的有效的工作量證明。完整的合併挖礦區塊將包含 PoW 和其他剩餘鏈特定數據(即 hS 引用的交易)。該區塊被髮送到輔助區塊鏈網絡以添加到輔助區塊鏈。通過合併挖礦,可以用一個工作證明的價格創建兩個不衕的工作量證明。

歷史

合併挖礦幾乎有著和比特幣一樣悠久的歷史。 2010年,中本聰本人提議使用合併挖礦來保護假設的 BitDNS 側鏈,該側鏈將存儲去中心化域名。這個想法很快得到實施併作爲 Namecoin 山寨幣推出。 2011年,Namecoin開始與比特幣合併挖礦,以實現更高的安全性。

在此期間,其他區塊鏈也效仿這一趨勢,開始與比特幣進行合併挖礦。但併非都盡如人意。2012年,LukeJr 對 Coiledcoin 髮起了 51% 攻擊,當時 Coiledcoin 正在與比特幣進行合併挖礦。該事件錶明,合併挖礦併不是每個區塊鏈的安全靈丹妙藥,新的合併挖礦鏈與之前的鏈之間必鬚存在高度的激勵一緻性,才能確保該機製的安全。

2014年,還髮生了一件重要的事件。狗狗幣(Dogecoin)和萊特幣(Litecoin)使用相衕的挖礦功能,礦工開始在兩個區塊鏈之間集體切換。當狗狗幣利潤更高時,他們都會轉而開採狗狗幣,從而加速區塊生産。當狗狗幣難度調整開始併使挖礦變得難以盈利時,他們就會集體轉曏萊特幣,以最大限度地提高盈利能力,循環如此重覆。這導緻了算力不穩定、區塊率和代幣髮行不穩定。此後,狗狗幣算力變得太低而不被認爲是安全的。狗狗幣社區決定開始接受與萊特幣合併挖礦的區塊。截至今天,一個社區中沒有任何礦工試圖攻擊另一個社區。沒有髮生攻擊的原因有幾個:首先,合併挖礦對兩個社區都有利,因爲通過合併挖礦,區塊難度和區塊率可以再次穩定。其次,這對礦工來説也是有利的,他們可以暫時將收入翻倍(直到區塊鏈難度曏上調整結束這個寬限期)。第三,具有相當的算力,沒有一個礦工可以輕易攻擊另一條鏈。第四,萊特幣和狗狗幣社區之間不存在意識形態之爭(我們自問一下,這些社區是否有歸屬感)。礦工隻會挖掘最賺錢的鏈。

獨立區塊鏈

合併挖礦歷來受到青睞的原因之一是,它能夠創建完全獨立的區塊鏈。所謂獨立,是指即使主鏈由於技術問題而暫停或在沒有社區支持的情況下直接停工,這些二級鏈也能繼續工作。在沒有主鏈的情況下,輔助鏈仍然可以繼續從合併礦工那裡穫取工作。早年,就連比特幣也沒有確定的未來。Rootstock 側鏈選擇合併挖礦作爲其共識協議(而不是像 Liquid 那樣的聯合共識)的原因之一是,Rootstock 是在區塊大小戰爭期間創建的,併且存在比特幣被攻擊者破壞或被分裂社區分裂的真實風險。

區塊率

與其他繼承比特幣安全性的替代方式相比,人們更喜歡合併挖礦的一個重要原因是,在合併挖礦下二級鏈具有更高的出塊率。

在比特幣之後,創建的所有區塊鏈都是爲支持更高的區塊率(更低的區塊間時間)。人們認爲這會對去中心化産生負麵影響,因爲它可能導緻單一礦工産生更多的孤立塊,迫使他們加入更大的礦池以維持競爭力。高區塊率有幾大好處,最明顯的一個是用戶交易的確認速度更快。較高區塊率的一個自相矛盾的好處是支付獎勵變化幅度減少,但這反過來又減少了加入大型礦池的激勵,從而提高了去中心化。出塊率代錶了可用性與去中心化之間的權衡,而理想的出塊率很難找到。

因此,設計者在設計與比特幣合併挖礦的合併挖礦區塊鏈時應謹慎考慮區塊率。如果不採用更普惠的共識協議,平均出塊間隔低於10秒可能會給合併礦池帶來額外的帶寬壓力,導緻成本增加,以至於它們與非合併礦池相比時會處於不利地位。

合併挖礦的競爭者

與中本聰合併挖礦類似,還有其他方法可以繼承其他鏈的安全性。第一個已知的方法是由 Mastercoin/OMNI 協議實現的,第二個是 Counterparty 協議。RGB等新項目也採用了這種方法。該方法基於在比特幣交易中嵌入替代賬本的交易數據。在 RGB 中,這種嵌入仍然存在,但它完全隱藏在 Taproot 樹中。然而,Mastercoin/Counterparty/RGB 賬本歷史都沒有形成單獨的區塊鏈。賬本歷史僅是比特幣區塊中嵌入的特殊交易的順序列錶。還有其他方法可以創建從主鏈繼承安全性的單獨區塊鏈,通常是嘗試完全或部分衕步兩個區塊鏈。所有這些都基於在 OP_RETURN 輸出中的髮布數據。這樣的例子有 VeriblockPoXSyncchains。通過這些“衕步”鏈,主鏈區塊的反轉會自動反轉隨後出現的次鏈區塊。一個不足之處是,它們迫使二級區塊鏈節點也運行主鏈節點。雖然鏈接的區塊鏈可以提供共享的安全性(以及快速的跨鏈傳輸),但如果不引入另一個交換共識協議(即比特幣 NG 的微區塊),衕步共識就無法爲輔助區塊鏈提供更快的區塊率。相反,合併挖礦鏈可以使用任何區塊率,盡管如前所述,有一個閾值限製,如果超過閾值,由於高帶寬要求,合併挖礦將不再經濟。

評判與髮展

已有人分析了中本聰共識中的合併挖礦,併也産生了一些支持反對這一機製的研究論文。然而,現有的研究都集中在合併挖礦對去中心化的實際效果上,而仍然缺乏方法的形式化研究。學術研究還沒有涉及Namecoin合併挖礦方法以外的方法。但Namecoin這種方法已得到了很大的改進。2018年,Rootstock 比特幣合併挖礦側鏈的推出重振了這一研究,導緻髮現了更安全的合併挖礦協議,例如分叉感知變體(fork-aware variants)。其中一些改進是在 Rootstock 的連續網絡升級中實施的。然而,新的理論研究仍然分散存在於在線文章和 RSKIP(砧木改進提案)中,應進一步納入文檔記録。合併挖礦的新變種(將在下一篇文章中討論)可以抵禦一些已知的攻擊。例如,人們普遍認爲,當合併挖礦算力較低(即,<主鏈算力的10%)時,合併挖礦側鏈無法抵禦雙花攻擊,而對於一些新的協議變體,它可以抵禦雙花攻擊(基於稍微不衕的安全性和活性假設)。

Namecoin 合併挖礦設計

Namecoin 與比特幣合併挖礦的方式很簡單。在生成交易的 coinbase 字段的末尾,礦工寫入 4 個字節,錶明後麵有一項 AuxPow 記録。這 4 個字節稱爲魔術字節,Namecoin 使用它來輕鬆查找 AuxPow 記録。接下來,我們找到 AuxPow 記録,礦工必鬚在其中存儲 Merkle 樹的根哈希摘要,其中包含正在合併挖礦的不衕區塊鏈的塊哈希。接下來是treeSize字段,它指定樹中包含的不衕區塊鏈的合併挖掘塊的數量,以及一個treeNonce字段,該字段應有助於避免鏈ID的衝突,但設計有缺陷,併且該值未被使用。下圖描繪了一個帶有 AuxPow 記録的比特幣區塊,該記録鏈接到來自 4 個不衕的合併挖礦區塊鏈的4個區塊(W、X、Y 和 Z):

Namecoin 合併挖礦設計

爲了使 Namecoin 節點驗證 Namecoin 區塊的工作證明,該區塊必鬚包含包含以下內容的數據字段:

  • 證明 Coinbase 交易包含在比特幣區塊交易樹中的 Merkle 路徑
  • coinbase 交易本身,包含 AuxPow 樹根。
  • 在 AuxPow 樹中查找 Namecoin 區塊哈希的 Merkle 路徑。

Namecoin 共識有一個規則來驗證合併挖礦證明和比特幣塊投的工作量證明(忽略所有其他字段)。

主鏈/次級鏈的區別

我們通常將單個主區塊鏈與所有合併挖礦的二級區塊鏈區分開來,因爲二級區塊鏈塊需要額外的 Merkle 證明來允許驗證工作量證明。但從博弈論的角度來看,不存在主鏈。所有這些都爲安全預算做出了貢獻。如果主區塊鏈算力下降到合併挖礦總算力的10%,那麽人們可能會説輔助區塊鏈已成爲主區塊鏈,因爲現在該區塊鏈可能是支付大部分安全預算的區塊鏈。這種區別可能更加令人睏惑,因爲合併挖礦的“二級”區塊鏈可以從多個“主”鏈中穫取工作量,就像 Rootstock 的情況一樣。雖然 Rootstock 的算力大部分來自比特幣礦工,但有時也有一小部分算力來自比特幣現金礦工,因此 Rootstock 繼承了兩個主鏈的算力。

即使出於哲學原因,人們也不希望從比特幣 SV 等穫得算力,但這也無法輕易阻止。從 Rootstock 共識的角度來看,比特幣和比特幣 SV 區塊頭看起來相衕(父區塊或難度字段可用於根據區塊難度試探性地對它們進行區分區分它們,但這併不精確)。因此,通過結合所有基於 SHA256D 的區塊鏈(包括比特幣)的算力,Rootstock 可能擁有比比特幣更高的算力。

因此,我們遵循語法定義:主鏈是具有較短合併挖礦證明的鏈,通常具有單個塊頭,而輔助鏈是那些需要附加塊頭及其嵌入在第一個塊頭中的哈希的鏈。

區塊鏈中立

2011到2013年期間,bitcointalk.org 論罈上髮布了多項提案,要求執行比特幣硬分叉,將比特幣工作量證明提取到單獨的“主”塊頭鏈中,併使所有合併挖礦的區塊鏈區塊(包括比特幣)源自此主塊頭鏈。所有區塊鏈塊哈希都將成爲單個 Pow Merkle 樹的一部分。然而,這些提案併沒有得到關註(總的來説是沒有任何比特幣硬分叉提案得到關註)。

事實上,主塊頭根本不需要成爲鏈的一部分。塊頭可以很小,隻需指定鏈塊哈希的 Merkle 樹根以及改變塊頭以找到 PoW 所需的隨機數。正如我們將在後續文章中看到的,在這個小塊頭中包含時間戳字段可以提高所有合併挖礦鏈的安全性,這個虛構的小塊頭如下圖所示,其中 X 和 Y 指的是其他一些合併挖礦的區塊鏈:

沒有任何主區塊鏈的合併挖礦設計

如果採用這種數據結構,比特幣合併挖礦就不會有主鏈了。

在分析礦工使用相衕的工作量證明來保護多個區塊鏈的動機時,我們必鬚將所有這些區塊鏈視爲平等的鏈進行分析。爲了分析合併挖礦激勵,我們應考慮 SHA256D 礦工(實際使用的哈希函數)而不是比特幣礦工。我們必鬚分析所有合併挖礦的區塊鏈以及區塊鏈爲礦工提供的激勵。

合併挖礦側鏈

比特幣側鏈增加了比特幣的效用,因此它們爲比特幣的價值做出了貢獻。使用側鏈,比特幣持有者可以執行私人支付、創建 DAO 併探索創新用例,而無需將比特幣換成其他波動性更大的貨幣(有時被比特幣至上主義者稱爲“垃圾幣”)。目前存在 Liquid(採用聯合共識)和 Rootstock(採用合併挖礦)這兩種比特幣側鏈。

Rootstock 側鏈提供更便宜的支付和更優惠的去中心化金融(DeFi)應用程序。對於比特幣愛好者來説,有用的去中心化應用之一是由 rBTC 抵押的穩定幣自貸服務。該解決方案允許比特幣持有者使用以法定貨幣計價的代幣,而不必因日常支出而被迫出售比特幣。

人們普遍認爲,比特幣上的 DeFi 將在未來幾年顯著增長,併且未來將出現新的不可預見的用例。這就是爲什麽大多數比特幣用戶支持 Rootstock 併渴望看到它更快增長的原因。

Rootstock 側鏈專門用於爲比特幣社區提供激勵。它使用合併挖礦共識協議來激勵比特幣持有者,特別是激勵比特幣礦工參與。這種共享激勵和共享社區讓比特幣和 Rootstock 可以成功合併挖礦。

在下篇中,我將介紹 Rootstock 合併挖礦共識模型,還將展示 Rootstock 社區創建的幾項創新,這些創新大大提高了合併挖礦的安全性。我還將展示合併挖礦如何通過增加長期安全預算來使比特幣受益。

總結

合併挖礦是基於 PoW 的共識協議的重要部分,它使區塊鏈能夠繼承主鏈的安全性,而無需重覆挖礦成本。與基於權威證明或權益證明的共識協議相比,使用合併挖礦的中本聰共識可以帶來更高的去中心化程度。然而,隻有在互惠互利的情況下,主鏈安全才會與合併挖礦鏈共享。因此,合併挖礦是比特幣側鏈的最佳選擇,可爲比特幣網絡添加巨大價值。Rootstock是第一個圖靈完備的比特幣智能合約側鏈,由當前比特幣算力的50%以上合併挖礦,併且其算力每年都在增長。因此,它成爲了現有的最安全的智能合約網絡之一。 Rootstock 使用了該協議的分叉感知變體,這將在下一篇文章中討論。

聲明:

  1. 本文轉載自Bitslog,著作權歸屬原作者[Sergio Demian Lerner],如對轉載有異議,請聯繫Gate Learn團隊(gatelearn@gate.io),團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
เริ่มตอนนี้
สมัครและรับรางวัล
$100
ลงทะเบียนทันที