中本聰在設計比特幣時,規定每個區塊的容量不能超過一百萬,而每一百萬容量中可以記錄的交易數量極為有限。最早的時候,每個區塊一百萬的容量足以應對利基市場的交易量,但當比特幣玩家數量激增時,就變得特別擁擠。
根據統計,比特幣網路每十分鐘更新一個新區塊。在 100 萬容量的前提下,每個區塊所包含的交易數量最多不超過幾十筆交易。目前比特幣平均每秒可以處理七筆交易。這意味著在特殊情況下,比特幣區塊鏈上會積壓數萬筆交易,比特幣轉帳的交易費用高達數十美元。當網路擁擠時,比特幣交易甚至可能需要幾天才能打包。
因此,加密貨幣的用戶迫切需要一個高效的技術方案來解決比特幣交易處理速度慢的問題。這個解決方案將有助於讓每個人的比特幣更快到達並以更低的交易費用(支付給礦工的費用)。
SegWit 簡介
SegWit 技術是由比特幣開發者 Pieter Wuille 和其他 Bitcoin Core 貢獻者於 2015 年提出,作為交易處理速度問題的解決方案。 2017 年,SegWit 正式應用於比特幣網路的軟分叉中,比特幣單一區塊的資訊處理能力也提升了 1.7 倍。
目前比特幣、萊特幣和比特幣現金三大主要貨幣都已開始採用 SegWit。採用 SegWit 的好處主要包括擴大區塊容量、提高交易速度、優化交易可擴展性。
SegWit 的技術原理
用戶一般最關心帳戶餘額等與資產相關的核心訊息,用戶身分的驗證不需要在交易中佔用太多成本。簡單來說,轉帳的接收方只需要確認資產可用,不需要知道發送方的詳細資料。
然而,在比特幣交易結構中,見證數據和簽署資訊佔用了大量的儲存空間,進而延遲了傳輸效率並增加了打包成本。 SegWit 技術有助於從交易資訊中提取見證資料並單獨存儲,從而加快交易速度。
SegWit 的主要優點
SegWit 優點(一):增加區塊容量
根據統計,簽名資訊在比特幣交易區塊中最多可以佔據 65% 的空間。可能採用 SegWit 後,原有的區塊儲存空間將被釋放,可以處理更多的交易資訊。
SegWit 優點(二):更快的交易速度
與以太坊 layer-2 的想法類似,比特幣資料經過分層處理,以達到提高交易率的目的。採用SegWit 後,比特幣交易系統將集中更多的運算能力和更大的儲存來處理交易資訊。與先前的負擔相比,負擔大大減輕,理論上每秒交易數(TPS)率只會增加。數據顯示,採用 SegWit後,每筆交易的平均成本降至 1 美元。
SegWit 優點(三):閃電網絡
閃電網路是討論最多的比特幣二層協定擴展解決方案,旨在解決比特幣鏈下的可擴展性問題。
閃電網路試圖在比特幣區塊鏈上創建一個新的網路層,同時建立支付通道。這樣一來,在任何極端情況下,大額轉帳交易都可以快速、順利地完成,這可以理解為鏈下資料處理。然而,SegWit 會快速處理鏈上優先順序最高的資料。緩解閃電網路實施的壓力,實際上間接為閃電網路創造了條件。
值得一提的是,在 SegWit 的技術框架下,交易資料和簽章資料是完全分離的。在整個交易處理系統中,使用者的簽章資料也被排除在外,因此交易資訊不存在被竄改的可能性。一鍵消除錯誤訊息被永久記錄在鏈上的可能性。對於交易資訊修復方案的擴展和應用也有正面的好處。
此外,SegWit 也被視為比特幣序數的第一個先驅,擴大了交易中可以放置多少任意資料的限制,從而允許在比特幣的每個聰上刻上銘文。 2021 年,Taproot 創建了一個可以更輕鬆地儲存任意見證資料的系統,並繼續擴大比特幣交易中的資料限制,從而催生了當今存在的比特幣序數不可替代代幣。
SegWit 的應用場景
對於一般使用者來說,SegWit 技術帶來的好處主要有以下三點:
更安全:比一般地址安全性更高
更快:可擴展的區塊容量和更快的交易檢查
更便宜:交易費用低於一般錢包地址
那麼,這項技術如何應用於一般用戶?看看你自己的錢包,如果你使用隔離的錢包地址來完成比特幣轉帳的接受,你實際上可以享受上面解釋的好處。截至 2020 年 8 月底收集的數據顯示,比特幣的 SegWit 使用率已達到 67%,這意味著目前的數據肯定達到了更高的水平。
目前,比特幣的地址格式主要分為四種:
Legacy
Legacy (P2PKH) 格式(以 1 開頭的位址)— 傳統位址。
範例:1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9uBitcoin 的原始位址格式,至今仍在使用。
P2PKH 的意思是 Pay To PubKey Hash(支付到公鑰哈希)。
Nested
Nested(P2SH)格式(某些位址以 3 開頭)-多重簽名位址。
範例:3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQXP2SH(Pay-to-Script-Hash),付款腳本哈希,即比特幣交易輸入輸出腳本,使用贖回腳本和贖回腳本哈希。
其位址結構與 P2PKH 類似,但支援比傳統位址更複雜的功能。 P2SH 腳本函數最常與多重簽名位址一起使用,它可以指定多個數位簽章來授權交易。例如,以 3 開頭的地址由三個人控制,其中任兩個人同意發起轉帳。
以上兩個地址是傳統的交易轉帳地址,沒有使用隔離見證技術。以下介紹兩種主流的隔離見證地址。
巢狀隔離見證 (P2SH) 格式(以 3 開頭的位址)— 隔離見證相容位址。
範例:3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypANAAddresses 以 3 開頭。
由於採用P2SH方式進行打包,所以SegWit相容位址也是以3開頭,可以被舊節點辨識。
你不需要知道以3開頭的比特幣地址是多重簽名地址還是隔離見證相容地址。你只需要知道以3開頭的地址被廣泛支持,你可以將比特幣發送到以1和bc1開頭的地址。
Native
Native SegWit (Bech32) 格式(以 bc1 開頭的位址)—本機隔離見證位址。
範例:bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
Bech32 編碼地址是專門為 SegWit 開發的地址格式。 Bech32 於 2017 年底在 BIP173 中定義。
由於位址中所需的字元較少,因此位址採用 Base32 編碼而不是傳統的 Base58,使得計算更加方便和有效率。資料還可以更緊密地儲存在二維碼中。
Bech32 提供更高的安全性、更好優化的校驗和錯誤檢測代碼,並最大限度地減少無效地址的機會。 Bech32 位址本身與 SegWit 相容。將 SegWit 位址放入 P2SH 位址不需要額外的空間,因此使用 Bech32 格式的位址,手續費會更低。
Bech32 位址比舊的 Base58(Base58Check 編碼用於將比特幣中的位元組陣列編碼為人類可編碼的字串)位址有幾個優點。使用 Bech32 位址,QR 碼更小、更防錯、更安全且不區分大小寫。它們還僅包含小寫字母,使打字時更易於閱讀和理解。
本機 P2WPKH / 本機 P2WSH (Bech32) 格式(位址以 bc1q 開頭)— 本機隔離見證位址。
本機 P2WPKH 範例:bc1qmgjswfb6eXcmuJgLxvMxAo1tth2QCyyPYt8shzNative
P2WSH 範例:bc1q09zjqeetautmyzrxn9d2pu5c5glv6zcmj3qx5axrltslu90p88pqykxdv4wj
對於版本 0 segwit 位址,它們總是以 bc1q 開頭。對於這一代付費見證人公鑰哈希 (P2WPKH) 地址,P2WPKH 地址的長度固定為 42 個字元。
對於 Pay-to-Witness-Script-Hash(P2WSH)位址,P2WSH 位址的長度固定為 62 個字元。
2019 年發現,如果 Bech32 地址的最後一個字元是 P,後面如果不小心輸入了一個或多個Q,仍然可以通過校驗和驗證,不會收到輸入錯誤提示。錢包軟體會假設地址輸入正確,並允許將比特幣發送到錯誤的地址,從而使比特幣無法使用,如上所述。
好消息是,Bech32 僅用於 SegWit,而 SegWit 位址有長度限制——只能是 20 個位元組或 32 個位元組。幸運的是,如果在 20 或 32 位元組長的位址後面鍵入額外的 Q,則輸入的位址將無效,因為它超出了長度限制。錢包會發現這個問題並拒絕發送比特幣。
最初建議為 Taproot 引入類似的位址長度限制,但下面提到的解決方案消除了這項需求。靈活的地址長度更有利於我們以後改進 Taproot。
P2TR
P2TR (Bech32m) 格式(位址以 bc1p 開頭)— 主根位址。
範例:bc1pqs7w62shf5ee3qz5jaywle85jmg8suehwhOawnqxevre9k7zvqdz2mOn
為了修復 Bech32 錯誤,提出了一個名為 Bech32m 的新標準。 Bech32m 實際上是一個非常簡單的更改:在 Bech32 校驗和公式中添加一個額外的數字,以確保任何附加字元都會產生無效的校驗和。
此新標準僅適用於 Taproot 地址和未來地址。 SegWit 位址沒有任何變化,因為它們已經受到 20 或 32 位元組長度限制的保護。
為了修復Bech32的上述缺點,BIP0350中提出了Bech32m位址:
對於版本 0 本機 segwit 位址,請使用先前的 Bech32
對於版本 1(或更高版本)的本機 segwit 位址,請使用新的 Bech32m
對於 Bech32m 位址,當版本為 1 時,它們始終以 bc1p 開頭(即 Taproot 位址)。
地址之間的細微差別
從更廣泛的角度來看,我們可以看到不同地址之間的其他細微差別:
與傳統地址(從1開始)相比,SegWit 相容地址(從第3部分開始)節省 24% 的轉帳費用
原生 SegWit 位址(以 bc1 開頭)相比傳統位址(以1開頭)節省 35% 的轉帳費用
SegWit 地址(從 bc1 和第 3 部分開始)可以比多重簽名地址(從第 3 部分開始)節省高達 70% 的轉帳費用
Taproot 地址支援 BTC NFT 持有和 Ordinals NFT,轉帳費用與 3 開頭類似
結語
SegWit 是比特幣的一項重要發展,旨在增加比特幣網路可以處理的每個區塊的交易數量。此外,它還解決了與交易延展性相關的罕見漏洞,並為比特幣增加了更大的可編程性,從而允許進一步擴展解決方案,例如比特幣的閃電網路。
目前,OKX錢包 已支援用戶在轉帳和儲值時採用比特幣、萊特幣、比特幣現金等隔離見證地址,優化用戶體驗,降低使用費率,提高轉帳速度。同時,OKX 錢包也全面支援了序數 BRC-20 和 BTC NFT 所依賴的 Taproot 地址。
閱讀更多:
如何下載 OKX APP:https://www.okx.com/hk/learn/novice-general-guide-1-cn
比特幣超詳解|帶你認識歷史上第一個加密貨幣:https://www.okx.com/zh-hant/learn/bitcoin-explained-a-complete-guide-to-cryptos-first-token
延伸閱讀:
Bitcoin地址也分為三種?Legacy、Nested SegWit及Native SegWit格式的分別: https://cryptowesearch.com/blog/all/bitcoin-address
加入 OKX 繁中社區了解更多加密貨幣知識,還有不定期空投及周邊贈送!
追蹤 OKX 中文 IG,了解加密貨幣和 OKX 最新動態,更多精彩活動好禮等你來拿:
© 2024 OKX。本文可以全文複製或分發,也可以使用本文 100 字或更少的摘錄,前提是此類使用是非商業性的。整篇文章的任何複製或分發亦必須突出說明:“本文版權所有 © 2024 OKX,經許可使用。”允許的摘錄必須引用文章名稱並包含出處,例如“文章名稱,[作者姓名 (如適用)],© 2024 OKX”。不允許對本文進行衍生作品或其他用途。