比特幣怎樣從零發展到 Runes?

WEEX 唯客博客, 原文標題:《The Road to Runes》 作者:Shlok Khemani 編譯:Peisen,BlockBeats   編者按: 本文深入探討了比特幣生態系統中的創新和發展,特別是在非可互換代幣(ordinals)和可互換代幣(Runes)的發展上取得的進展。文章詳細分析了 ordinals 和 Runes 如何成為比特幣區塊鏈上的重要標準,並探討了它們在市場上的表現和社會認同的影響。 文章首先介紹了 ordinals 理論的背景和應用,解釋了每個 satoshi 獨特編號的方式,並探討了其對比特幣社區和市場的影響。隨後,文章轉向討論 Runes 的推出及其在比特幣生態系統中的接受程度和市場表現。Runes 不僅通過在 OP_RETURN 欄位中存儲數據和支持多種代幣存儲在同一 UTXO 中提高了交易效率,還展示了其與比特幣閃電網路兼容的能力,這使得其在市場上得以突出。 在距離最新的比特幣減半不遠的一周里,Runes 作為比特幣上的新型可互換代幣標準成為了加密貨幣領域的一個熱門話題。當我試圖理解 Runes 及其重要性時,我意識到我對比特幣的前期發展及其基本運作原理了解甚少。是的,考慮到我從事加密貨幣工作,而比特幣又是最大的加密貨幣,這個承認有點意想不到。 然而,我想,如果我自己處於這種狀態,很多其他人可能也是如此。因此,我決定深入挖掘並寫下相關內容。 我回顧了比特幣從誕生到如何發展至 Runes 的過程。沿途我發現了早期的鏈上 DNS 實現,Vitalik Buterin 的第一個代幣項目(不,不是以太坊),永久的 ASCII 藝術,以及 2015 年的一個區塊鏈遊戲,還有社區中的分歧,導致一些人稱比特幣為「失敗的實驗」,以及改變了萬億美元資產面貌的獨行開發者,等等。 這是關於比特幣過去和未來的故事。它涉及失敗的實驗和虛假的開始。它探討了在一個經常抵制變革的協議中引入創新的挑戰。它解釋了為什麼比特幣的一千萬分之一可以賣出超過一百萬美元。最重要的是,它討論了社會共識對於數字資產同樣至關重要,甚至比代碼更重要。 讓我們深入了解吧! UTXOs 我們將從理解比特幣協議的一個基本構建塊開始:未花費交易輸出,即 UTXOs。 UTXOs 是比特幣協議用來跟蹤貨幣所有權的方式。把每個 UTXO 想象成一張所有權收據——比特幣的不可分割部分,只能由特定地址(所有者)花費。當比特幣所有權轉移(一個用戶將其發送給另一個用戶)時,會在區塊鏈上記錄為與接收者地址相關聯的 UTXO。 在比特幣協議中,沒有賬戶餘額的固有概念。相反,由某個地址擁有的比特幣被捕捉為分散在區塊鏈上的 UTXOs,每個 UTXO 都是一個交易的輸出。當一個應用程序(如錢包)向用戶顯示他們的 BTC 餘額時,它通過掃描區塊鏈並匯總屬於該用戶的 UTXOs 來完成。 如果我的比特幣錢包顯示我擁有 20 BTC,這意味著與我的公鑰關聯的 UTXOs 總值為 20 BTC。這可以是一個價值 20 BTC 的 UTXO,也可以是四個分別為 5 BTC 的 UTXO,或者任何其他組合,總額為 20 BTC。 比特幣上的交易被構建為一組輸入 UTXOs,這些 UTXOs 被消耗(或銷毀),以創建輸出 UTXOs。想象一下,Joel 擁有以下與其地址關聯的 UTXO 值: 10 BTC 5 BTC 1 BTC 現在,如果他想支付 Saurabh 14 BTC,他的錢包應用程序會創建一個交易,具有以下特徵: 作為輸入的 10 BTC 和 5 BTC 的 UTXOs(1 BTC 的 UTXO 保持不變) 作為一個輸出的 14 BTC 發送到 Saurabh 的地址 作為第二個輸出的 0.9998 BTC 發送回他的地址 第二個 UTXO 是他從交易中收到的找零。為什麼是 0.9998 BTC 而不是 1 BTC?他還需要向比特幣礦工支付交易費,作為將其交易包含在區塊中的激勵。輸入 UTXOs 和輸出 UTXOs 之和的差額(在這種情況下為 0.0002 BTC)構成了交易的費用。在大多數情況下,通過設置適當的輸入、輸出和費用來創建有效交易的繁重工作被用戶抽象化,並由錢包應用程序在後台處理。 為了更好地理解 UTXOs,可以將它們視為貨幣票據,比特幣錢包則類似於物理錢包。每張貨幣票據(如 UTXO)都有固定的不可分割金額,而物理錢包中存儲的總價值(如比特幣錢包的情況)是其中所有貨幣票據價值的總和。 比特幣交易類似於使用現金購買物品。如果我在紐約市的一家酒吧購買一杯價值 14 美元的雞尾酒,我可以交出一張 10 美元和一張 5 美元的鈔票,並會收到一張 1 美元的找零。這裡類比的不同之處在於,儘管貨幣票據僅存在於固定的面額(如 1 美元、5 美元、10 美元等),UTXOs 可以關聯任意數量的比特幣。 (相比之下,其他像以太坊這樣的區塊鏈作為借貸和貸記的總賬,並在協議中跟蹤用戶餘額。這類似於銀行賬戶跟蹤用戶餘額的方式。) 比特幣選擇使用 UTXOs 而不是其他區塊鏈會計模型的設計,為其上構建未來代幣協議奠定了基礎。 OP_Return Satoshi Nakamoto 最初創建比特幣是為了打造一種抗審查的點對點電子現金系統。然而,在這個過程中,他也無意間創造了世界上第一個不可變、防偽、透明且帶有時間戳的總賬。 比特幣發布后不久,早期的加密貨幣愛好者開始意識到,這樣的總賬不僅對支付有用,還可以擴展到保護任何重要的數字數據,使其存儲在一個彈性和分散式的總賬上。討論的應用包括股票證書、數字收藏品、財產所有權記錄,以及將域名系統(DNS)引入比特幣。 Hal Finney,傳奇計算機科學家、著名比特幣貢獻者、也是接收到 Satoshi 發送的第一筆比特幣的人,在 BitcoinTalk 論壇上提出了將 DNS 引入區塊鏈的解決方案。 是否應該使用比特幣存儲非支付數據的問題引發了比特幣社區的首場重大辯論之一。一方認為比特幣僅僅是一個支付系統,認為存儲其他數據(或「垃圾」)是對其核心目的的濫用。另一方則視之為展示比特幣力量的一種方式,並認為構建新應用對區塊鏈的長期重要性和安全補貼逐漸減少至關重要。 這場辯論還具有短期的實際影響。 在比特幣協議沒有提供專門存儲非支付數據的方法的情況下,早期實驗者找到了一個解決方法。回顧我們之前的討論,比特幣交易由一系列輸入和輸出的 UTXOs 組成。每個輸出 UTXO 都有金額和目標比特幣地址的欄位。開發者利用這個 20 位元組的目標地址欄位來存儲任意的非支付數據。 這些任意數據包括什麼?正如這篇博文所記錄的,從普通到創意層面都有廣泛的內容。從對 Nelson Mandela 的致敬,到當時美聯儲主席 Ben Bernanke 的 ASCII 肖像,從維基解密的電纜門文件鏈接到比特幣原始白皮書的 PDF,熱衷者們保留了他們認為值得在總賬上永久數字存在的任何文本。 這種做法帶來了一個重大的意外後果。通常情況下,目標地址欄位中的數據是一個公鑰(或目標地址),協議將其映射到可以控制生成的 UTXO 的私鑰。當開發者開始使用這個地址欄位存儲任意數據時,這些交易創建了無法映射到私鑰的 UTXO,因此這些 UTXO 永遠無法被花費。這樣的交易被標記為「假支付」。 例如,包含比特幣原始白皮書 PDF 的交易將數據存儲在將近 950 個輸出 UTXO 中,但這些 UTXO 均不可花費。 在 UTXO 輸出中存儲數據的問題。 對於運行完整比特幣節點的任何人來說,假支付都是一個問題。完整節點會在區塊鏈歷史記錄中維護所有有效 UTXO(稱為完整 UTXO 集),並在驗證新交易時使用這些 UTXO。理想情況下,UTXO 集應該儘可能小,以便快速驗證交易。然而,由於假支付創建的 UTXO 永遠無法被花費,它們導致了「UTXO 膨脹」,即 UTXO 集大小的增加。因此,節點必須永久性地承擔存儲區塊鏈原本不設計承載的數據的成本。 儘管支付純粹主義者不贊同使用比特幣存儲非支付數據,但他們無法阻止用戶將任意數據添加到 UTXO 輸出中。作為一種妥協,他們在 2014 年不情願地允許包含之前禁止的 OP_RETURN 腳本功能進入比特幣交易。 他們的立場(根據我理解的比特幣 0.9.0 版本發布說明)基本上是:「看,我們不希望你在比特幣上存儲隨機數據。這不是它的用途。但我們無法阻止你使用輸出來這樣做。所以讓我們減少你造成的損害。我們會給你一個有限的空間讓你繼續你的惡作劇,但同時我們強烈建議你不要這樣使用比特幣。這不是它的初衷。」 OP_RETURN 接受用戶定義的 40 位元組數據序列。儘管這些數據存儲在區塊鏈上,這些輸出是可以證明無法被花費的,可以從 UTXO 集中排除。這意味著完整節點在驗證支付時可以忽略標記為 OP_RETURN 的輸出,從而部分解決了 UTXO 膨脹的問題。我稱這個問題只是部分解決,因為這些交易仍然存在於區塊鏈上並佔用磁碟空間。 40 位元組並不是很多數據。一個英文字元通常佔據一個位元組的數據空間,這意味著 OP_RETURN 最多只能容納 40 個字元的字元串,顯然不足以存儲圖像或完整文檔。因此,OP_RETURN 的主要用例是存儲更大數據塊的哈希值。 任何數字數據經過哈希演算法處理后,都會映射到一個唯一的字母數字字元串,稱為哈希值。這些哈希值可以存儲在 OP_RETURN 欄位中,用於在比特幣區塊鏈上為外部存儲的數據片段添加時間戳。例如,我可以創建一幅藝術作品,並將圖像文件的哈希值存儲在區塊鏈上。將來任何人都可以使用交易來驗證圖像的真實性。 Proof of Existence 等服務允許用戶上傳文檔,生成哈希值,並以費用(當前為 0.00025 BTC 或約 18 美元)的形式將其存儲在比特幣上。 一張如此明顯的「曲棍球棒狀」圖表。(來源) 上面的圖表展示了隨時間變化的包含 OP_RETURN 輸出的交易數量。注意最近這類交易數量的拋物線增長?我們將很快討論其中的原因。 OP_RETURN 數據限制在 2015 年增加到了 80 位元組。 早期代幣實驗 隨著比特幣的成熟,開發者開始夢想構建其他能從區塊鏈技術中受益的應用程序。一個常見的應用是創建具有自定義屬性和功能的替代貨幣或代幣。一種方法是從頭開始啟動一個區塊鏈,這是早期替代幣如 Namecoin 和 Dogecoin 所採用的路徑。然而,這種方法需要啟動一個礦工基礎,並且承擔代幣至少在最初階段被中心化的風險。 對一些人來說,更有吸引力的提議是在比特幣協議本身上創建一個代幣,從其安全性和現有的分佈中受益。 如今,Vitalik Buterin 因為是以太坊的聯合創始人而聞名,以太坊是繼比特幣之後規模第二大的加密貨幣。然而,在他創立以太坊之前,Vitalik 在比特幣社區中非常活躍。他的加密貨幣職業生涯始於為《比特幣周刊》撰稿。該雜誌停刊后,Vitalik 與他人共同創辦了《比特幣雜誌》,被認為是行業內第一本正式的出版物。 《比特幣雜誌》2013 年 10 月刊封面。你可以在比特幣雜誌商店使用 BTC 購買這些原版印刷品。目前這期的售價為 1000 美元! 2013 年,Vitalik 與其他四位作者發布了《彩色幣白皮書》,介紹了一種在比特幣區塊鏈上存儲「替代貨幣、商品證書、智能資產以及其他金融工具」的方式。這是通過標記或「上色」比特幣,並附加指定其預期用途的信息來實現的。 什麼是「標記」比特幣?回想一下,BTC 作為 UTXOs 存儲在區塊鏈上,當 BTC 從一個錢包轉移到另一個時,UTXOs 被創建和銷毀。這種機制使得可以追溯比特幣的起源和所有權歷史,因為它在錢包之間移動時留下了交易的蹤跡。 假設我從 Saurabh 那裡收到一個 5 BTC 的 UTXO。然後,我向 Sid 轉賬了 7 BTC,由我收到的一個 5 BTC 的 UTXO(從 Saurabh 那裡)和我錢包中另一個 2 BTC 的 UTXO 組成。現在,Sid 向 Joel 轉賬了 10 BTC,由兩個 UTXOs 組成——一個是他從我這裡收到的,另一個是他之前已有的。Joel 的 BTC 現在可以通過追蹤導致他錢包中 UTXOs 的交易路徑,追溯到 Saurabh、Sid 和我。 讓我們重新審視比特幣 UTXOs 和貨幣紙幣的類比。每張貨幣紙幣都有一個唯一的序列號,隨著它從一個持有者轉移到另一個持有者而得以保留。不同之處在於,雖然我可能不知道在我之前的所有貨幣紙幣持有者的完整歷史(因為沒有地方記錄這些信息),所有比特幣交易發生在一個公共賬本上,每一聰(sat,比特幣的最小單位,1 BTC = 1 億 sats)都可以追溯到其原始所有者。如果有一種方法可以記錄貨幣紙幣根據其序列號的流動,我們就能夠追溯到它們的印刷廠,就像我們可以追溯每個 BTC 到它被創建的區塊一樣。 由於 BTC 可以在交易中追溯,因此與特定 UTXO 相關的元數據也會隨之傳播。這是「標記」或「上色」BTC 過程的基礎。彩色幣協議利用輸入、輸出和 OP_RETURN 的組合來創建和轉移代幣從一個地址到另一個地址。 彩色幣交易的結構。這是一個彩色幣轉賬交易的示例。OP_RETURN 欄位中的數據定義了彩色幣的屬性,而輸入和輸出值(以及一些在此圖表中未顯示的其他欄位)則定義了代幣在不同錢包之間的流動。 關於在比特幣區塊鏈上外部代幣的實現,有兩個關鍵點需要注意。 首先,輸入和輸出欄位中的值代表了實際的比特幣從一個錢包轉移到另一個錢包,同時附加了彩色幣的標籤。這意味著如果我想發送 x 彩色幣,我必須同時發送 x 聰。真正傳輸的價值是彩色幣的價值加上聰的價值。這顯然是協議的一個缺點。 如果你正在創建一種新的貨幣,你幾乎肯定希望它能夠獨立估值,而不是與另一種貨幣混合在一起。例如,一張法定貨幣的價值應該是上面標明的,與其印刷的紙張價值無關。我認為,這就是為什麼彩色幣作為發行新代幣的方式從未流行起來的原因之一。對於非貨幣用途的情況,比如發行所有權份額,彩色幣仍然是有意義的。 其次,比特幣不承認彩色幣及其元數據作為協議的一部分。我們之前看到,節點可以選擇忽略 OP_RETURN 欄位中的信息,這對解釋彩色幣的移動至關重要。這意味著要參與彩色幣的創建和交易,用戶必須使用能夠識別協議規則的專用錢包。 如果用戶使用普通錢包(設計用於發送和接收 BTC)與先前參與過彩色幣交易的 UTXOs 進行交互,他們面臨丟失或損壞其 UTXOs 相關元數據的風險。即使在未來實施的比特幣標準化代幣中,錢包之間的不兼容性仍然是一個難題,我們將很快看到。 另一個允許用戶在比特幣上創建數字代幣的早期項目是 Counterparty。Counterparty 也使用 OP_RETURN 存儲與代幣相關的元數據,但與彩色幣不同,Counterparty 代幣並不與地址的 BTC 餘額掛鉤。這種分離使得這些代幣可以獨立進行交易和價格發現。 獨立的代幣價格使得 Counterparty 能夠在比特幣協議上創建了最早的去中心化交易所之一。用戶可以通過消息提交他們的訂單(例如,「我想用 20 個 B 幣購買 10 個 A 幣」),協議會在信託託管中保留他們的資金,直到訂單被執行或過期。 Counterparty 的原生代幣 XCP 最初是通過「Proof-of-Burn」進行公平發行的,用戶必須銷毀 BTC 來鑄造該代幣。XCP 充當了一種實用代幣,允許開發者支付創建命名的 Counterparty 幣所需的費用。Counterparty 還為開發者提供簡單的 API 來創建代幣,轉移資產,發放股利等。 使用 Counterparty 創建的顯著項目包括《Genesis 法術》,這是第一個基於區塊鏈的 NFT 移動遊戲(是的,區塊鏈遊戲早在 2015 年就有了!),以及 Rare Pepes,一個 NFT 收藏,即使在今天仍保持其價值(298 供應集合的最低價格截至 2024 年 6 月初接近 100 萬美元)。 Segwit 儘管 OP_RETURN、Colored Party 和 Counterparty 使得在比特幣上存儲代幣成為可能,但它們的增長受到協議的一個根本限制的阻礙:1MB 的區塊大小限制。 1MB 並不是很大的數據容量。一個典型的比特幣交易大約是 300 位元組,這意味著單個 1MB 區塊大約可以容納 3000 筆交易。由於比特幣區塊每 10 分鐘產生一次,網路的每秒交易量(TPS)大約在 5 左右。這個吞吐量對於支付網路來說遠遠不夠。以 Visa 為例,它處理的每秒交易量為 1700 筆,峰值容量超過 24000 筆。 關於增加比特幣區塊大小的討論,與之前關於支付和非支付數據的爭論一樣,也將社區分為兩大陣營。 一方面是所謂的大塊派,他們主張進行硬分叉(一種需要所有節點和用戶升級其軟體的協議更改),永久增加區塊大小至 2MB,並隨後定期進行硬分叉以繼續擴展區塊大小。這些人認為,為了使比特幣成為數百萬用戶可用的有效支付系統,它需要更高的 TPS 和低費用。唯一可行的方法是隨著需求增長持續增加區塊大小。 另一方面是小塊派,他們反對硬分叉和其他對協議的劇烈變更。對他們來說,比特幣的價值部分在於其穩定性。他們認為增加區塊大小將使用戶難以運行完整節點,從而降低比特幣的去中心化程度,並減弱其作為一個強大、革命性貨幣的吸引力。 區塊戰爭成為當時的主要話題之一。這是《華爾街日報》的一個標題。 大塊派最終創建了比特幣現金(Bitcoin Cash),這是比特幣區塊鏈的一個分叉,其區塊大小限制為 8MB。另一方面,小塊派推動了一個稱為隔離見證(Segregated Witness,簡稱 SegWit)的升級,以增加區塊大小,而不需要進行硬分叉。 除了一系列的輸入和輸出之外,比特幣交易還包含另一個我們還沒有討論的結構——見證數據。見證數據包括加密簽名和其他驗證信息,佔據了交易大小的高達 65%。 隔離見證升級改變了區塊的結構。升級后,區塊不再將所有數據(輸入、輸出、簽名)都放在單個 1MB 的區塊中,而是將其分成兩個部分:基本交易區塊,包含所有的輸入和輸出;擴展區塊,存儲見證數據。 隨著這一變化,隔離見證(SegWit)還將計算區塊容量的度量標準從數據大小轉變為權重單位。區塊的權重通過以下公式計算: 權重 = 基本大小 × 4 + 見證大小 例如,一個基本大小為 100 位元組,見證數據大小為 200 位元組的交易將佔用 600 個權重單位 [(100 × 4) + 200]。新的區塊容量上限從 1MB 增加到了 4 百萬個權重單位,有效地使區塊容量增加了四倍,而無需進行硬分叉。 重要的是,基礎區塊大小仍然保持在約 1MB 左右,保留了最初的區塊大小限制。這使得協議能夠同時接受傳統的和 SegWit 的區塊,確保礦工和節點無需立即升級其軟體即可適應這一變化。 隔離見證並非一夜之間被礦工們所採用;幾乎花了 5 年時間,90% 的比特幣區塊才成為了隔離見證區塊。表面上看,這種逐步採納似乎證明了實施軟分叉的決定的合理性。然而,我們只能推測如果採用硬分叉的情況下,可能會如何發展並影響礦工的行為。 來源 不過,Segwit 給比特幣帶來了迫切需要的 TPS 提升,並且是網路擴展和支持除了 BTC 支付…

Previous:

Next: