counterparty

counterparty

對手方 透過狀態機複製擴展比特幣

對手方
比特幣的擴展
狀態機複製
亞當・克雷倫斯坦
2024-03-29
內容

  1. 背景 .................................................................... 3
    1.1. 狀態機複製 ...................................................... 3
  2. 對手方,一個區塊鏈元協議 ................................. 5
    2.1. 對手方交易 ...................................................... 6
    2.2. 交易編碼 .......................................................... 7
    2.3. 原生貨幣 .......................................................... 8
  3. 未來發展 .............................................................. 9
  4. 與其他二層協議的比較 .................................. 10
    背景
    對手方的開發始於 2013 年 11 月底。次年 1 月 2 日,對手方在比特幣論壇上發布公告並立即投入生產。¹
    1: https://bitcointalk.org/index.php?topic=395761.0
    自那時起,對手方網絡一直在線並被公眾積極使用。因此,這份白皮書是在十年後撰寫的 —— 最初的意圖是讓對手方的代碼庫本身記錄其可行性;然而,正式化協議設計和歷史的描述仍然是有益的,特別是考慮到對設計某些特徵的持續誤解、對手方在區塊鏈生態系統歷史中所扮演的特殊角色,以及最近對比特幣 “L2” 協議的興趣復甦。
    對手方的想法最初來自 Mastercoin 項目。² 在對手方啟動的幾個月前,J.R. Willett 將 Mastercoin 描述為首個 ICO 的一部分。³
    3: https://www.forbes.com/sites/laurashin/2017/09/21/heres-the-man-who-createdicos-and-this-is-the-new-token-hes-backing/
    對手方的創始人 —— 亞當・克雷倫斯坦、埃文・瓦格納和羅比・德莫迪 —— 看到了 Mastercoin 設計中的巨大潛力,但對其啟動和開發的一般方式不滿意。對手方是一個努力實現 Mastercoin 背後的架構願景的項目,但與此相對,遵循中本聰及其創造的原則和價值觀。
    即使在 Mastercoin 擁有任何超出其原生代幣簡單轉移的功能之前,對手方就已經能夠展示後來被稱為元協議或元鏈的可行性,成為 Willett 最初設計的架構的模型實現。此後,對手方啟發了許多模仿者和二級元協議,如 STAMPS、SRC-20、BRC-20 和 Mastercoin 本身。但對手方的架構特徵並不廣為人知,這部分是由於比特幣的特異設計,其偶然特徵被錯誤地認為是所有區塊鏈的基本特徵。
    狀態機複製
    區塊鏈通常被稱為 “不可變數據庫”,因為與傳統的可變數據庫不同,區塊鏈沒有能夠隨意改變其狀態的中央權威。使用區塊鏈,數據是日誌結構的,由數千個匿名實體全球複製,並通過工作量證明進行安全保護。然而,“區塊鏈” 這個術語不僅指歷史的區塊和交易日誌,還指去中心化系統本身,即協議及其在特定網絡中的實例。
    比特幣區塊鏈特別不僅僅是一個數據庫 —— 不僅僅是由標準區塊和交易集合組成的數據結構 —— 它還描述了在參考實現和所有克隆中體現的協議。
    如果沒有比特幣核心代碼庫,比特幣將無法完全規範。例如,作為歷史日誌的區塊鏈並不決定未來的區塊獎勵減半。更相關的是,它並不決定這些數據應如何解釋;例如,如何計算餘額作為該地址可支配的 UTXO 值的總和。這些餘額必須以確定性方式計算,以便網絡中的每個節點對給定的區塊鏈日誌副本報告相同的餘額,而餘額本身並不記錄在區塊中,也不由礦工驗證。
    如果某個比特幣協議的替代實現報告的餘額與比特幣核心報告的餘額不同,那麼根據定義,它將是一個不正確的比特幣實現。事實上,比特幣設計的一個有趣特徵是,比特幣協議的絕大多數由礦工驗證,因此無效交易本身通常不會進入交易日誌。然而,人們可以很容易想像一種替代設計,其中雙重支出交易作為無用數據包含在區塊中,並在計算給定地址的(有效)UTXO 列表時被每個節點忽略。嚴格來說,區塊鏈不僅僅是數據 —— 它也是邏輯和狀態。
    區塊鏈的定義特徵是狀態機複製的架構模式。該架構有兩個組件:一個分佈式日誌(即區塊列表)和一個解析該日誌的狀態機(確定性地)並存儲與每個其他節點相同的本地狀態。該日誌在所有比特幣節點中複製,每個節點根據該日誌中數據的解釋報告相同的網絡狀態。
    對手方,一個區塊鏈元協議
    作為真正的元協議,對手方將區塊鏈的架構模式推向其邏輯結論:對手方通過添加解析邏輯和衍生狀態來擴展比特幣協議,並借助一個新穎的狀態機,將比特幣區塊鏈日誌視為新協議消息的存儲。比特幣節點明確忽略的區塊鏈數據由對手方軟件解析,並確定性地衍生出額外狀態。
    對手方擁有與比特幣相同的安全模型:每筆對手方交易都是比特幣交易,因此對手方交易的完整歷史得到了比特幣挖礦網絡的全部哈希算力的保障。唯一的區別是,對手方的用戶必須依賴兩個代碼庫 —— 比特幣核心和對手方核心 —— 而不是僅僅依賴比特幣核心。比特幣礦工對對手方 “無知”,驗證的對手方協議的部分比比特幣協議要少;但這一區別是定量的而非定性的。這在各種彩幣協議中也是如此,包括 Ordinals。
    如果有人運行一個不符合對手方協議的對手方軟件版本,正如在參考實現中隱含規定的那樣,後果與運行一個與比特幣核心不一致的比特幣全節點的後果完全相同。對手方網絡的礦工僅僅是比特幣礦工,這並不比比特幣全節點不必是礦工、比特幣礦工不必運行全節點的事實更具問題性。然而,對手方協議無法經歷不是比特幣的硬分叉或軟分叉。
    對手方交易
    因此,對手方協議確實是比特幣協議的擴展。它實現了一些比特幣未提供的功能。這些功能包括但不限於代幣發行、完全去中心化和無信任的資產交換、差價合約、原生預言機和無信任的遊戲。對手方在比特幣交易的 “邊緣” 寫入:要創建一個對手方交易,對手方軟件構建一個比特幣交易,其中包含構成其協議消息的元數據。
    例如,可以通過構建一個向自己發送微量比特幣的比特幣交易並在其中包含一個帶有 OP_RETURN 操作碼的額外輸出來在對手方上發行代幣。⁴
    這個操作碼,⁴: https://en.bitcoin.it/wiki/OP_RETURN
    當比特幣節點解析時,會導致腳本執行忽略隨後的數據字節。因此,在最簡單的發行交易的情況下,對手方在這個輸出中編碼代幣的名稱和要發行的數量。一旦比特幣交易被廣播到網絡並被挖掘,對手方軟件的每個實例都會在比特幣區塊鏈中看到該交易並解析發行,將事件存儲在其本地數據庫中。然後,每個對手方用戶可以同意該代幣已以指定的標識符以所需的數量發行。
    對手方實現了其自己的元數據解析規則。如果對手方交易無效 —— 例如,它包含一個發送代幣的請求,而發送者並未持有足夠的代幣 —— 該交易將存儲在比特幣區塊鏈中,但所有對手方節點將其識別為無效。因此,對手方數據存儲在有效的比特幣交易中,位於比特幣區塊鏈中,並被比特幣全節點簡單地忽略。無效交易因此僅僅是像其他任何交易一樣的比特幣交易,除了根據對手方協議的定義。
    交易編碼
    對手方交易數據使用多種方法嵌入比特幣交易中。最簡單的方法是使用 OP_RETURN 操作碼,這也是默認方法。然而,對於具有較大 OP_RETURN 數據的交易中繼的任意限制使得對手方必須使用其他方法編碼數據,即使這些方法不允許數據在以後從比特幣區塊鏈中修剪。對手方在可能的情況下更喜歡使用可修剪的輸出。然而,對於可修剪數據,比特幣節點無需無限期存儲對手方交易。儘管如此,只要某些比特幣節點不修剪這些數據(例如對手方用戶自己運行的比特幣節點),這些數據就永遠不會丟失。
    一個長期存在的爭議與使用比特幣區塊鏈存儲與比特幣本身無關的交易的倫理問題有關。來自像對手方這樣的元協議的數據有時甚至被標記為 “垃圾郵件”,然而,對手方數據在語義上是有意義的,並且不是批量生成的。對手方的運作以及其他比特幣二層(L2)網絡的運作並不涉及利用比特幣協議中的任何漏洞,例如,這將使它們能夠繞過比特幣的費用系統。相反,創建對手方交易涉及支付比特幣費用,就像正常的比特幣交易一樣:支付的比特幣費用與對手方數據的中繼和挖掘對網絡造成的負擔成正比。只有當與對手方交易相關的經濟價值大於所需的費用時,創建該交易才意味著對網絡的價值增加。
    最重要的是,比特幣首先是一個無許可的平台,其協議由誠實參與的經濟激勵驅動。對於支付費用的對手方交易的創建感到惋惜等同於對比特幣本身用於特定 “不可取活動” 的使用感到惋惜。由於其受歡迎程度,對手方交易確實有可能增加非對手方比特幣交易的成本。然而,它們也有助於提高整個比特幣網絡的價值 —— 礦工因此獲得可觀的費用 —— 特別是考慮到對手方資產能夠在鏈上以無信任的方式與比特幣進行交換。比特幣協議作為一個全球網絡,每秒僅有幾筆交易的容量,從來不是,也永遠不會是一個用於轉移小額價值的協議,至少在沒有像閃電網絡這樣的二層協議的情況下。因此,使比特幣可擴展的技術挑戰與對手方或其他 L2 協議消息的數量完全無關。
    這場爭議的歷史高峰發生在 2014 年,當時所謂的 “OP_RETURN 戰爭”。⁵
    當時,比特幣核心開發者人為限制了比特幣參考實現用於中繼(而非挖掘)交易的規則,試圖防止對手方在 OP_RETURN 有效載荷中存儲超過 40 字節的數據,因為 40 字節足以存儲哈希。⁶
    6: https://github.com/bitcoin/bitcoin/pull/3737
    當然,哈希被視為可接受的有效載荷,而語義數據卻不是,這一事實顯示了這種規則集的虛偽和無效性 —— 哈希只是數據,數據有效載荷對比特幣網絡的影響顯然與其內容無關。值得注意的是,這一 40 字節的限制後來提高到 80 字節的任意大小(這是對手方啟動前的計劃大小),而且沒有特別原因。⁷
    今天,甚至可以通過使用分離見證方案在單個比特幣交易中存儲千字節的可修剪數據。⁸
    8: https://github.com/bitcoin/bitcoin/blob/fc06881f13495154c888a64a38c7d538baf00435/src/policy/policy.h#L46
    原生貨幣
    對手方作為比特幣協議的一個通用擴展,也提供了其自己的原生加密貨幣 ——XCP。XCP 代幣在比特幣代幣無法作為工作貨幣(無論是作為面額單位還是支付網絡費用)時使用:比特幣協議對對手方元協議並不知情,無法用作基於包含對手方數據的比特幣交易的總大小的最小反垃圾郵件機制。然而,由於其簡單性,許多對手方交易不需要使用 XCP 代幣,最明顯的是簡單的資產轉移和數字資產的發行(沒有可讀識別符的對手方資產),這對對手方節點造成的計算負擔較小。
    XCP 的創建和初始分配旨在盡可能去中心化和無信任,沒有任何挖礦網絡提供 Sybil 抵抗。在 2014 年初,幾種加密貨幣已經通過後來被稱為 “首次代幣發行”(ICOs)啟動,然而這樣的啟動必然需要對協議創建者的信任,他們必須以集中方式分配(即 “出售”)代幣。燒毀證明提供了一種優雅的替代方案,反映了比特幣挖礦的安全模型:就像比特幣一樣,在創建比特幣的過程中會消耗能量;通過燒毀證明,創建 XCP 的過程中會銷毀比特幣。用於創建這些比特幣的能量被重新用於創建 XCP,且不需要額外的能量支出。燒毀證明在 2013 年被理論化,但之前從未實施過;⁹它提供了強大的 Sybil 抵抗,且不引入任何集中化。
    9: https://en.bitcoin.it/w/index.php?title=Proof_of_burn&oldid=33833
    燒毀證明涉及發布一個可證明不可支出的地址(1CounterpartyXXXXXXXXXXXXXXXUWLpVr),其低熵顯示沒有相應的私鑰可以用來支出發送到該地址的硬幣。對手方核心代碼在 2014 年 1 月 2 日至 2 月 3 日之間檢測到向該地址發送 BTC 的交易,自動且無信任地創建 XCP,隨著 BTC 的銷毀而生成。每 1 BTC 創建了 1500 到 1000 XCP(線性減少),以激勵用戶在燒毀期間早期銷毀 BTC,總共銷毀了 2130 BTC(當時約 200 萬美元),導致生成 2648755 XCP。
    對手方的創建者在 XCP 的創建中沒有任何特殊權利或特權,他們也不會因使用對手方協議而獲得任何費用。這意味著對手方的開發必須尋求替代的資金來源,就像比特幣的生態系統一樣。XCP 是一種通縮貨幣:自燒毀證明期間結束以來,沒有新的 XCP 被創建。對手方用戶定期銷毀 XCP 以支付對手方網絡費用;但因為 XCP 是對手方所知的,它們可以簡單地被刪除,而不必通過發送到不可支出的地址來燒毀。
    未來發展
    在撰寫本文時,對手方協議有兩個主要限制,這兩個限制都可以通過適度的額外開發努力克服。這些是:
  5. 與 BTC 的更深集成
    目前實施的對手方在比特幣 UTXO 系統和對手方狀態機之間保持著強大的抽象層。也就是說,對手方將比特幣視為一個簡單的分佈式不可變日誌,並在很大程度上忽略單個比特幣交易輸出的語義價值。因此,對手方原生代幣和 BTC 之間的交易在去中心化交易所上是緩慢且昂貴的,需要多個區塊確認才能結算匹配。
    通過打破這一抽象邊界,將 UTXO 視為協議中的一級對象,對手方將能夠提供與比特幣代幣的無縫集成:對手方資產將能夠直接附加到 UTXO 上,允許使用標準比特幣錢包軟件進行持有和轉移。也許更重要的是,這一升級將允許對手方原生資產和 BTC 之間的無信任、原子交換,就像 Ordinals 一樣。事實上,將能夠將 Ordinals 資產與對手方資產進行交易。
  6. 實現通用虛擬機
    狀態機複製模型的一個核心特徵是它支持任意確定性計算。事實上,對手方在 2014 年通過將整個以太坊虛擬機移植到比特幣區塊鏈來證明了這一點。⁹這一功能從未合併到主線中,僅僅是因為缺乏維護所需的開發資源。
    智能合約系統在公共區塊鏈上已經使用多年,但它們通常僅用於構建非常小的應用程序。這主要是由於(a)語言安全性差,(b)缺乏模塊化,(c)語法困難的組合。對手方智能合約語言將解決現有系統的這些限制,以便將通用計算帶入比特幣區塊鏈,而不使用側鏈。自然,XCP 將作為使用這個虛擬機進行計算和存儲的燃料代幣,費用將根據網絡負載動態變化。
    與其他二層協議的比較
    比特幣二層協議可以根據其與比特幣區塊鏈的基本集成水平大致分類:
    ・覆蓋網絡是對比特幣的擴展,對比特幣本身沒有增加價值或功能,但可能顯著改善性能。例如,閃電網絡屬於這一類別。
    ・彩幣是對比特幣的擴展,仍然依賴於 UTXO 系統和腳本:這些協議為比特幣區塊鏈增加了語義價值和功能,但受到腳本的簡單性和不靈活性的嚴重限制。Ordinals 協議就是一個彩幣協議的例子。
    ・元協議是對比特幣的擴展,實現了自己的狀態機。元協議能夠為比特幣添加任意功能。對手方是元協議的第一個工作實例。
    ・側鏈是獨立的協議和網絡,僅允許與比特幣代幣進行雙向掛鉤,因此它們不是真正的 “L2 協議”。Liquid、Rootstock 和 Stacks 本質上都是側鏈。
    與覆蓋網絡和彩幣相比,對手方元協議允許顯著更多的功能,同時保留底層區塊鏈的安全模型,並允許與比特幣的深度集成。側鏈協議,由於擁有獨立的網絡,必須實現自己的共識系統,然後依賴一組同時運行比特幣節點的中央實體來驗證所有不在比特幣協議本身之外的邏輯。
    從先驗上看,像 Ordinals 這樣的協議相對於對手方的唯一顯著架構優勢在於其固有的簡單性:Ordinals 必然既非常簡單又非常有限 —— 它支持代幣創建和轉移,但沒有其他功能。當然,對手方在過去十年的持續運作已經證明了元協議模型的實用性。
    隨著上述功能的實現,對手方將提供彩幣和側鏈協議的最佳特徵,提供 Ordinals 所特徵的與比特幣的深度原生集成,以及 Rootstock 和 Stacks 等山寨幣和側鏈的力量和靈活性。對手方的技術使得在比特幣上創建一個真正無信任的以太坊替代品成為可能,這一努力將使對手方在不久的將來重新獲得其在比特幣創新和價值創造的焦點地位。
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。