讀懂比特幣協議重要裡程碑:Schnorr籤名和Taproot軟分叉升級

2021-01-20 巴比特資訊

作者:潘致雄

一次比特幣協議的升級,可能會預示著未來 3 至 5 年的趨勢,雖然大家並不關心比特幣的技術迭代,更關注安全和主流人群接受度,但最終所有人都會受益於這次升級。

那個被你們認定為技術上不思進取的比特幣協議,終於引來了一次值得關注的技術升級。比特幣協議中具有裡程碑意義的技術升級Schnorr Signature(施諾爾籤名)和Taproot(樹的主根)已集成到剛剛發布的Bitcoin Core 0.21.0版本中——這絕對值得關注,因為該升級有可能會影響未來 3 至 5 年的比特幣生態,特別是針對機構級用戶和多籤的各種應用場景。

當然,對於比特幣協議目前重要的關鍵詞是「穩健」和「安全」,所以哪怕這些技術上線之後,社區和生態通常都會相當謹慎,就算不集成支持其實也沒什麼問題,不然還可能會引入不必要的風險和漏洞。

由於這次的升級是需要經過軟分叉才能激活的,所以後續還需要看礦池和礦工對於該提案的支持程度,至少目前來看,礦池和礦工相當積極,大於 90% 的算力已經宣布會支持該升級。

Schnorr Signature 是以德國數學家和密碼學家 Claus-Peter Schnorr命名的數字籤名算法,由於在 2008 年之前處於專利保護的狀態,所以中本聰在設計比特幣協議時並未使用該籤名算法,而是選用了當時更適合且開源的橢圓曲線數字籤名算法(ECDSA)。

但是比特幣核心開發者在將近十多年後卻認為,Schnorr Signature 才是比特幣的未來,因為它在密碼學特性上的優勢,可以在幾乎同等(甚至更好)安全的基礎上,更方便和「低調」地構建多籤名交易,也能為寸土寸金的區塊節省不少空間。

比特幣協議中除了籤名算法之外,還設計了一套腳本語言定義如何使用比特幣。Taproot 就是一套可以在 Schnorr Signature 的特性之下,讓比特幣更強大的全新腳本語言體系,並且,還設計了Tapscript腳本語言,對花費比特幣的方式進行了微調——具體的技術細節,這裡就不繼續展開。

在這些技術的組合下,比特幣多籤類地址可以不用暴露出自己的「多籤」身份,也可以支持數量眾多的多籤場景,同時在經濟層面上也有些許優勢,可以降低鏈上的交易費用,特別是對於需要高頻操作的地址而言,可以節省不少的成本。

比特幣協議是如何升級的?

在介紹 Schnorr Signature 和 Taproot 之前,有必要先回顧一下比特幣協議升級的流程步驟,畢竟這是一件相比其他區塊鏈網絡升級低頻許多的事件,甚至許多區塊鏈從業人員也不甚了解。

粗略來說,比特幣協議的升級分為六個階段:

第一階段:所有的一切都誕生於一個點子或一個創新的想法,然後比特幣的核心開發者們會在郵件中進行初步的闡述和討論。第二階段:提交 BIP(比特幣改進提案)的草案,這個階段可能會通過 GitHub 進行歸檔。第三階段:核心開發者們在郵件中針對提案進行詳細的討論,涉及所有的技術細節或可能的問題、挑戰。第四階段:進入正式的開發階段,以及後續的測試,並將功能加入比特幣核心客戶端。第五階段:進行投票,然後等待網絡逐步激活,也就是最終的上線。第六階段:第三方應用集成支持。如果我們回顧此前比特幣比較重要的協議升級,會發現其實新功能的採用率並不高,而且通常是 3 年之後也僅僅是極低的採用率。

比如,約三年前的隔離見證(SegWit)升級,為區塊提供了些許的擴容,使用隔離見證的地址可以降低一些轉帳成本。而根據 txstats.com 的數據,目前儲存在隔離見證地址中的比特幣數量不到 8%。(數據來源:https://txstats.com/dashboard/db/bech32-statistics)

出現這樣的情況,一方面的原因是很多 BTC 資產可能已經丟失,或者對於大型機構而言改造這套體系需要付出太多成本,同時也會引入一些不必要的風險,畢竟安全更重要。不過從積極的方面來看,網絡中接近一半的新交易都採用了隔離見證。(數據來源:https://txstats.com/dashboard/db/segwit-usage)

而閃電網絡協議也是比特幣自 2018 年以來持續迭代更新的Layer 2 擴容支付通道技術,目前這個網絡的容量還處於一個非常小的規模(約 1000 個 BTC),僅佔 BTC 總量不到萬分之一。

所以對於 Schnorr Signature 和 Taproot 而言,雖然在最新客戶端中已經植入了該功能,但是功能是否會激活啟用,以及後續的生態如何支持,還需要看之後三至五年的發展了。錢包、託管商、交易所、大型機構都會按照自己的用戶需求、安全需求、功能需求綜合考慮,逐步引入。

三年多的布局,由 Blockstream 主導

當我們整理比特幣核心開發者針對 Schnorr Signature 和 Taproot 進行討論和研究的時間線時,發現這個方案從提出到集成已經超過了 3 年的時間。

雖然 Schnorr Signature 是 Taproot 得以實現的基礎,但是最早被提出的其實是 Taproot——這是一套可以豐富比特幣腳本的方案,最初由 Blockstream聯合創始人Gregory Maxwell在比特幣核心開發者郵件組中提出。

半年後,Blockstream 另一位聯合創始人 Pieter Wuille則提出 Schnorr Signature 替代比特幣現有的橢圓曲線籤名(ECDSA),通過其特有的「線性」特點,實現密鑰的聚合、提升區塊驗證速度。

在此之後,這兩個技術也就被組合起來作為一個大的方案,共同推進,最後在去年初形成了三個正式版 BIP,進入開發階段:

BIP-340: 在 secp256k1 曲線上實現 Schnorr Signature(註:此前比特幣使用的橢圓曲線籤名也是採用的 secp256k1 這一條)BIP-341: Taproot:隔離見證 V1 版本的花費規則(註:此前在 2017 年底推出隔離見證升級中,使用的是 V0 版本規則)BIP-342: Taproot 腳本的驗證方式(註:該文檔描述了修改部分比特幣操作碼)雖然 Gregory Maxwell 和 Pieter Wuille 先後離開了 Blockstream,但是 Schnorr Signature 和 Taproot 的大多數核心參與者都來自於 Blockstream,只有 Anthony Towns一人除外——他之前是Xapo的工程師,後來加入了投資機構 Paradigm。

Schnorr Signature 有什麼用?

在比特幣協議中,判斷用戶是否有權限使用一筆資產時,除了需要經典的「數字籤名」算法這個密碼學組件之外,還構建了一種基於「鎖定腳本」和「解鎖腳本」的概念。

在此之前,中本聰在設計比特幣協議時,需要考慮到籤名算法的籤名長度、是否開源、是否有專利、是否經過足夠長時間的安全驗證、性能等多種條件,最終選擇了橢圓曲線數字籤名算法(ECDSA),還在其他專家的建議下選擇了一條特殊的橢圓曲線 secp256k1。

但是能滿足上述這些條件的數字籤名算法不止有 ECDSA,特別是有 Schnorr Signature這個從各個方面都不亞於 ECDSA 的數字籤名算法。而此前中本聰沒有採用的理由可能是因為在比特幣白皮書誕生的那一年,Schnorr Signature 的專利才失效。

沒錯,德國數學家和密碼學家 Claus-Peter Schnorr 在 1990 年提交了相關專利申請並獲批,而對於開源社區來說,在專利失效前是無法採用這套技術的,不然中本聰還真有可能在初版比特幣協議實現中採用這套籤名算法機制。

相比較 ECDSA,Schnorr Signature 更像是比特幣籤名算法應該有的樣子。性能提升和籤名長短的優勢就不提了,更重要的是它的「線性」特點,可以很方便的進行密鑰聚合,而不是通過其他特殊技巧實現多籤。

這個「線性」也很好理解,各個密鑰的參與方可以通過簡單的機制處理就可以聚合生成一個新的密鑰。而這個聚合的機制可以通過很多種方式進行,比如 Blockstream 就提出了 MuSig 和後面的更新版 MuSig2。在 MuSig2 的方案中,多個籤名可以從他們各自的私鑰中創建一個聚合公鑰,然後共同為該公鑰創建一個有效籤名,並且從原來的三輪交互(MuSig)優化為只需要兩輪的交互即可。

所以以一個 2-3 的多籤交易來看,原來的傳統方式是需要三個公鑰加上兩個籤名才可以發起交易。

在 Schnorr Signature 場景中,鏈上交易只需要一個聚合的公鑰和一個籤名即可,同時也就能降低很多的交易字節數,也就是降低了轉帳成本。

所以,這也就又能帶來兩個額外的優勢:私密性和超級多籤。

由於只需要暴露一個籤名和公鑰,所以對於使用 Schnorr Signature 的地址,很難判斷這是否是一個多籤的地址,那也就無法得知多籤的組成是什麼樣的,對於外部觀察者而言,這就是一個普通的地址。

而對於之前的比特幣腳本,在交易時是需要暴露出部分多籤細節的,所以這也是為什麼可以知道地址的多籤構成。

BitInfoCharts 的比特幣富豪榜,後面這個小標記標註了多籤地址以及多籤規則

此前,因為腳本的限制而無法支持很大數量的多籤,也因 Schnorr Signature 得以實現,這可能會打開很多此前無法想像的應用場景,比如開啟一個幾百個地址規模的多籤地址,實現更去中心化或更多樣化的資產託管等。但可能會提升鏈下交互的複雜度,只能寄希望於MuSig2這些機制可以更快的研發和迭代。

Taproot 是什麼?

Taproot 是一套全新的比特幣腳本結構,定義了如何使用和收取 Taproot 類交易的地址。它最早的概念來自於比特幣開發者提出的MAST(默克爾抽象語法樹),所以 Taproot 可以算是 MAST 的一種特殊實現。

相比之前的比特幣腳本邏輯,MAST 概念中最主要的優勢是可以以更私密的方式,實現更多樣化的邏輯。

在構建一個 MAST 結構時,可以支持數量很多的腳本,如果這裡以兩個為例,用戶可以提前準備一個主要的支付腳本和一個備用的支付腳本,最終生成一個遞歸上去的 MAST 根的哈希值。在使用這筆資產時,用戶可以解鎖主要的支付腳本,且不暴露備用的支付腳本細節,而是用它的哈希值。

這也就意味著,對於一個無論多複雜包含多少解鎖方案的的 MAST 根,用戶在解鎖這筆資產時,只需要暴露其中的一個腳本即可,其他更多的邏輯都可以用哈希值體現,而不暴露任何其他細節。

說回到 Taproot,其本質也是類似的。而且這其中需要籤名算法的「線性」特性,所以 Taproot 才需要和 Schnorr Signature 綁定在一起。

Taproot 也是隔離見證的延續

在比特幣協議中,「鎖定腳本」(輸出腳本)定義了如何收取比特幣(UTXO)的規則,「解鎖腳本」(輸入腳本)定義了如何使用比特幣(UTXO)的規則,如果說前者是創造一個鎖,那後者就是一把鑰匙。

在三年前的隔離見證(Segwit)升級時,比特幣的腳本規則進行了一次大規模的升級,提出了兩種全新的腳本規則P2WPKH(Pay to Witness Public Key Hash)和P2WSH(Pay to Witness Script Hash),也就是現在那些以 bc1 開頭的地址,都是採用了上述的腳本規則之一。P2WPKH 通常用在普通的地址上,P2WSH 通常用在多籤地址中。

另外在隔離見證的升級中,腳本中還預留了一個版本號的概念,所有之前的 Segwit腳本規則都採用了V0作為版本號,所以也可以稱為 Segwit V0。而 Taproot 則是在 Segwit 的框架上進行了升級,版本號升級為 V1,這也就是 BIP 341 標題中 Segwit V1 的由來,或者這套腳本規則也可以稱為 P2TR(Pay to Taproot),以對應 P2WPKH 和 P2WSH 的名字。

比如在某一筆交易中,輸出腳本中 Segwit 版本號是 V0

甚至可以構建多樣化的多籤體系

在 Schnorr Signature 和 Taproot 的組合下,構建多籤的方式也是多種多樣的,比如比特幣布道者 Steve Lee 就介紹 (https://www.youtube.com/watch?v=fDJRy6K_3yo)過兩種方法,分別是門限籤名和 Musig 樹(Musig Keytree)。

比如對於一個交易所的熱錢包而言,可能是通過三個私鑰進行 2-3 的多籤,分別是「交易所私鑰」、「可信第三方私鑰」、「冷錢包備份私鑰」。

在門限籤名中,多個籤名者需要利用 MuSig 機制預先構建收款地址;使用時將兩個籤名進行聚合,即可實現交易。

而在樹狀結構(Musig Keytree)中構建多籤,就可以充分利用 Taproot 和 MAST 的優勢了。同樣是三種可以花費 BTC 的情況,將一種花費方式放在 MAST 的外部,而另外兩種方式儲存在 MAST 的兩個節點中,以此構建收款地址。

如果擁有交易所密鑰和第三方密鑰的籤名,就可以繞過 MAST 樹狀結構,直接生成一個聚合的 Taproot 籤名,以花費這筆交易。

或者用戶可以通過解鎖「第三方密鑰+冷錢包密鑰」的腳本,加上 MAST 樹另一邊腳本的哈希,就可以構建出 Taproot 籤名,以花費這筆交易。當然,用戶還有第三種方式花費,也是一樣的邏輯。

兼容性:問題不大

Schnorr Signature 和 Taproot 需要通過軟分叉的形式升級,也就是舊版本協議和客戶端可以繼續運行,無需做其他調整。

但是未升級的節點是無法驗證 Segwit V1 版本的 Taproot 類腳本的,會把他們當作是任何人都可以花費的腳本(anyone-can-spend scripts)。而對於那些未升級的錢包,可以繼續接受和發送 SegWit V0 版本隔離見證地址,或者更早的傳統地址類型(P2PKH)。對於部分實施了BIP 173(Bech32 地址)邏輯的錢包而言,可能是可以支持將 BTC 發送給 Taproot(Segwit V1)地址。

不過,核心開發者依舊是鼓勵大家升級,以便支持驗證這些新型的交易。

礦工算力支持度已超過 90%

軟分叉一般可以通過多種方式激活,之前多次軟分叉是使用 BIP 9的規則激活的,需要依據大量的算力發出支持的信號,而 BIP 8 也是類似的規則。

所以最終這套方案的上線還是需要礦工和礦池來投票和激活的。根據幣印礦池整理的這份 Taproot 軟分叉升級算力支持度來看,目前支持度已經超過 90%。而選擇哪個具體的激活規則,很多礦池還未公開確認。

相關焦點

  • 取代比特幣?UBTC究竟是什麼?1212全球直播分叉
    UnitedBitcoin簡稱UB,貨幣單位UBTC,總量與比特幣完全一致,挖礦與比特幣也幾乎完全一致(難度周期調整更短),出塊速度以及周期也完全一致,8M擴容升級以及隔離見證支持,加入全新的智能合約特性,計劃中的閃電網絡支持,看起來是將以太坊搬上了比特幣,以及支持閃電網絡的比特幣,這很酷、也不易,尤其在比特幣網絡模型上實現智能合約,在技術模型上,qtum已經成功地將智能合約搬上了比特幣的
  • 金色薦讀|一文了解BCH歷次分叉之爭
    為完善系統,BCH每半年進行一次硬分叉升級,自2017年8月誕生以來,自2017年8月誕生以來,BCH已經歷了數次硬分叉升級,2018年11月16日BCH正式硬分叉為BCHABC和BCHSV。11月15日,它將再次面臨一分為二的境地。那麼,它的歷次分叉原因究竟為何呢?
  • DeFi困境:你能分叉一個幣,但很難分叉一個社區
    正如BTC和BCH剛分叉時的那樣,DeFi現在面臨同樣的問題:「流動性挖礦」雖有利可圖,但很難分叉出一個持久的社區。DeFi領域正在湧現各種分叉項目。不幸的是,由於缺乏社區公司,這些項目的命運都只是「被挖然後迅速被拋棄」。即使那些在一開始就建立好社區的項目,未來也太不明朗。
  • 金色前哨|ETC的Agharta硬分叉升級時間推遲 預計於2020年1月15日進行
    今年9月中旬,ETC完成了名為亞特蘭蒂斯(Atlantis)的硬分叉,ETC區塊鏈的功能性、可用性和性能得到了大幅提升,開發的友好性得到加強,同時還使得ETC與ETH的兼容性更好,這次分叉是ETC發展過程中的一個裡程碑。
  • 比特幣冷錢包和比特幣熱錢包 哪一個才是好的比特幣錢包?
    (冷錢包和熱錢包,哪一個才是安全的比特幣錢包  圖片來源:金色財經)比特幣熱錢包用戶將比特幣存儲在第三方平臺上,通常為比特幣交易所、和各種交易網站和平臺,以及提供比特幣錢包服務的公司。使用比特幣熱錢包的用戶一般不直接持有比特幣錢包私鑰,即使持有私鑰也是儲存在網絡上的私鑰。因此它就存在被黑客攻破和盜竊的風險。但相應的,因為比特幣熱錢包始終連接著網絡,所以它就能夠以更為快捷的速度為用戶提供比特幣存取服務。
  • 比特幣、以太坊、區塊鏈、代幣、ICO,你需要知道的一切都在這了 |...
    一名軟體和系統工程師Preethi Kasireddy在國外平臺medium上發表了這篇文章,雷鋒網(公眾號:雷鋒網)編譯,譯者Smiletalker,原文如下:加密貨幣市場如火如荼……前段時間,比特幣價格扶搖直上……不過,前兩天,這個系統剛剛進行了硬分叉。
  • 比特幣錢包有哪些種類和功能?如何進行註冊使用呢?
    比特幣錢包有哪些種類和功能?如何進行註冊使用呢?作為幣圈的小朋友大家都知道通過挖礦或者二級市場購買比特幣都能得到比特幣,比特幣實際上是比特幣網絡中的一串數據,這串數據應該儲存在那呢?正如我們的銀行卡、現金可以存放在錢包中一樣,比特幣也有它專用的錢包,也就是比特幣錢包。
  • 金色觀察|比特幣的分叉幣在2020會有什麼樣的命運?
    主流幣、分叉幣、平臺幣、山寨幣都會在這個時期內躍躍欲試。在2019年開年,比特幣的漲幅並不劇烈,開年漲幅最兇狠的,是平臺幣。利用IEO的方式,平臺幣拉升以及作為囤積貨幣,展現了較好的投資特性。如今,市場對比特幣的期待更高,並且減半幣種讓業內把投資標的的劃分區域都與pow和比特幣有關。所以,從投資標的的範圍看,比特幣的分叉幣,也可能成為主要的投資領域之一。
  • 比特幣震撼來襲,改變你命運的機會,就在這裡!
    在第二個板塊中,Warren王詳細介紹了如何投資相關比特幣概念股,現場更直接展現GBTC, OSTK, DPW等走勢圖進行詳細分析。Warren王在第三版塊上手把手為現場嘉賓解釋如何開始投資比特幣。值得一提的是,中文投資網已與Blockchain BT, LLC達成協議在加州聖蓋博辦公室設立比特幣ATM,並計劃在全美其他華人小區推廣。
  • 區塊鏈每日重要動態:8月23日見聞
    【觀點:比特幣和黃金的相關性具有投機性】據AMBCrypto 8月23日發文稱,比特幣和黃金的相關性具有投機性。數據顯示,比特幣與黃金的相關性在7月27日超過了64.3%,此後,它在8月6日達到了68.76%的新高。幾周之內,兩者相關性上升到一個新的峰值。但是這可能是短暫的,目前已實現的相關性正在下降。
  • 比特幣到底是不是騙局?聽聽投資公司ARK Invest怎麼說
    鑑於高盛(Goldman Sachs)最近對比特幣的立場,ARK 就大眾對比特幣最普遍的誤解進行了重新解析。ARK 有意參與任何有關比特幣的辯論,我們認為比特幣在多元化投資組合中應發揮重要作用。
  • .| 央行數字貨幣可能比Libra更早發行;ETC Atlantis硬分叉時間或...
    (CoinDesk) ETC Atlantis硬分叉升級時間或將提前至9月13日 據Odaily星球日報此前消息,Ethereum Classic Labs將ETC Atlantis的硬分叉時間延遲至區塊高度8772000處(預計9月17日)。上周五,據Etherplan分析,該區塊高度的所處的時間會有所變化,預計在9月13日。
  • 關鍵|《Wisdom Chain文檔知識庫》之Schnorr籤名算法
    顯而易見的,如果將一個點A與自身相加很多次(或者說將其乘以一個很大的數)然後得到一個點B,如果我們只是知道原始點A和結果點B,計算出與A相乘的這個大數是相當困難的。這裡的「困難」意思是,如果要計算出這個「大數」,我們不能簡單的用B除以A,只能不斷的猜測一個值x,計算是否x A等於B。所以如果這個x的值非常大,甚至大於宇宙中所有原子數目的和,猜測這個x的值將花費一個難以接受的時間。
  • 如日中天的比特幣到底是什麼東西?
    了解比特幣之前,來回顧一下近期的幾則新聞:本月1號,比特幣的總市值已經突破10億美元。造成比特幣幣值上漲的原因很多,有觀點認為這與美國的量化寬鬆政策及歐元區的經濟不景氣相關——相對於美元和歐元,人們更信任比特幣的價值。上周五每枚比特幣在Mt.
  • 比特幣遭遇「暴力洗盤」 姚尚坤提醒年輕人對比特幣「敬而遠之」
    從進入比特幣行業至今,他精準踩對了加密貨幣的每一次爆發點:比特幣幾輪漲跌周期、擴容大戰、以太坊上線、TheDAO被盜以後歷史上最大的分叉危機,以及其後中國的ICO和退幣危機,他非常了解對於年輕人而言,炒比特幣究竟意味著什麼。「比特幣本身是一個風險性較高的投資產品,風險到底有多大誰都很難準確預料。
  • ETH周報|伊斯坦堡硬分叉接受6項EIP;莫斯科建立基於以太坊的區塊...
    三、生態與技術1.開發與技術 (1)伊斯坦堡硬分叉第一階段接受6項EIP,8項EIP在第二階段進行8月15日,以太坊核心開發人員最終確定了一份清單,其中包括6個不同的改進建議(EIP),將在以太坊伊斯坦堡升級中激活