Taproot協(xié)議的升級將會對比特幣網(wǎng)絡(luò)造成什么影響
以下為原文譯文:
提升比特幣腳本能力的最受期待的更新之一Taproot,可能很快會在比特幣網(wǎng)絡(luò)上推出。Taproot在2018年被首次提出,這個(gè)更新將擴(kuò)展網(wǎng)絡(luò)的智能合約靈活性,并提供前所未有的隱私特性,能讓最復(fù)雜的智能合約與常規(guī)轉(zhuǎn)賬看起來幾乎相差無幾。
解決復(fù)雜智能合約的問題
盡管比特幣到目前為止是第一個(gè)也是最有野心的一個(gè)區(qū)塊鏈項(xiàng)目,但它也由于缺乏可擴(kuò)展性與解決復(fù)雜智能合約帶來的隱私問題的能力而備受批評。
比特幣開發(fā)者們已經(jīng)為解決這些問題努力工作了接近十年?,F(xiàn)在,一個(gè)近乎完美的解決網(wǎng)絡(luò)內(nèi)腳本問題的解決方案就在眼前。同時(shí)有數(shù)個(gè)項(xiàng)目被提了出來,但Taproot是最有前途的一個(gè)。
Taproot在2018年1月首次由比特幣核心開發(fā)者、Blockstream前CTO Gregory Maxwell提出,該方案致力于擴(kuò)展比特幣的智能合約靈活性。拋開Taproot對智能合約簽名帶來的意料之外的靈活性不談,它還為轉(zhuǎn)賬帶來了更多隱私特性。
像這樣的重大創(chuàng)新只有在實(shí)施隔離見證的前提下才有可能。隔離見證引入了腳本的版本控制,這是對比特幣協(xié)議的擴(kuò)展,允許在網(wǎng)絡(luò)上實(shí)施新的密碼學(xué)簽名算法。
Taproot的工作方式
要理解Taproot怎樣工作,我們必須退回到比特幣轉(zhuǎn)賬的基礎(chǔ)上——腳本。腳本是嵌入轉(zhuǎn)賬中、在區(qū)塊鏈上運(yùn)行的幾行代碼,它定義了被轉(zhuǎn)賬的幣可以被花費(fèi)的方式。
在這些被轉(zhuǎn)賬的幣能被花費(fèi)之前,還有一些步驟需要完成:這些幣的所有權(quán)必須通過簽名被證明;如果有時(shí)間鎖,則需要達(dá)到特定的區(qū)塊高度或者日期;或者一個(gè)私鑰集合中一定數(shù)量的私鑰需要為轉(zhuǎn)賬提供簽名。以上這些條件可以被組合起來形成一個(gè)非常復(fù)雜的智能合約。
智能合約的這些限制條件,或者說腳本,由于P2SH的存在,僅對這些幣的新?lián)碛姓呖梢?。這使得只有腳本的哈希值,或者說看起來只是一組隨機(jī)數(shù)被包括在區(qū)塊鏈里。但是,當(dāng)這些幣被花掉之后,這個(gè)腳本最終會被揭示出來。這意味著這筆轉(zhuǎn)賬的所有條件,包括那些沒被觸發(fā)的條件,都會在鏈上顯示出來。
雖然非常直截了當(dāng),但這個(gè)過程會產(chǎn)生很多數(shù)據(jù),而且在保護(hù)區(qū)塊鏈鏈上轉(zhuǎn)賬的隱私方面非常不利。
解決這個(gè)問題的一個(gè)方式是使用默克爾化的抽象語法樹(MAST)。這個(gè)提議基于默克爾樹,這是一種歷史久遠(yuǎn)的緊湊的數(shù)據(jù)結(jié)構(gòu),能夠允許轉(zhuǎn)賬的所有不同限制條件被單獨(dú)哈希。所有這些條件將被存在一個(gè)默克爾樹里,產(chǎn)生一個(gè)稱為默克爾根的單獨(dú)哈希值用來鎖定這些幣。
如果默克爾樹里的任何數(shù)據(jù)被揭示到區(qū)塊鏈上,這些數(shù)據(jù)都可以通過默克爾根和樹上的其他成為默克爾路徑的數(shù)據(jù)輕松驗(yàn)證。但是,默克爾樹上的大多數(shù)其他數(shù)據(jù)將保持加密隱藏的狀態(tài)。
MAST在保護(hù)數(shù)據(jù)隱私和有效性方面更進(jìn)了一步,因?yàn)樗鼉H僅揭示轉(zhuǎn)賬達(dá)成的條件。
Schnorr軟分叉協(xié)議升級可以實(shí)現(xiàn)Taproot
Pieter Wuille,Blockstream的CEO,同時(shí)也是著名的區(qū)塊鏈開發(fā)者,解釋說Taproot直接建立在MAST與默克爾分支之上。在它的GitHub提議中,它解釋道Taproot將允許幾乎所有智能合約結(jié)構(gòu)中包含一個(gè)條件,從而能讓所有參與者對一個(gè)結(jié)果進(jìn)行表決。參與者能共同合作,對一項(xiàng)清算轉(zhuǎn)賬表示同意。Wuille表示,這會節(jié)省更多空間,并增加花費(fèi)時(shí)的腳本隱私性。
雖然Taproot自己已經(jīng)有巨大的潛力,但只有與Schnorr結(jié)合起來,它才能發(fā)揮它真正的威力。這種新型的簽名方式目前正在開發(fā)當(dāng)中,將通過一次軟分叉部署到區(qū)塊鏈上。這將是比特幣網(wǎng)絡(luò)中最受期待的一次升級之一。
這種簽名方式以其發(fā)明者Claus-Peter Schnorr命名,它是一套將私鑰、公鑰和轉(zhuǎn)賬簽名連接在一起的數(shù)學(xué)規(guī)則。Schnorr被廣泛認(rèn)為是加密貨幣領(lǐng)域最好的簽名形式。Wuille知道它可以在提供很好的正確性的同時(shí)又不損失延展性。
除此之外,Schnorr簽名驗(yàn)證起來很快,這意味著更快的轉(zhuǎn)賬確認(rèn),以及飛快的轉(zhuǎn)賬時(shí)間。但是,最獨(dú)特的一點(diǎn)是它集成了對多重簽名的支持。
Schnorr簽名不僅能將同一轉(zhuǎn)賬的幾個(gè)簽名合并成一個(gè),而且公鑰和簽名都能合并成閾值公鑰與閾值簽名。這在區(qū)塊鏈隱私方面意味著巨大的進(jìn)步,因?yàn)槎嗪炥D(zhuǎn)賬將與常規(guī)轉(zhuǎn)賬幾乎一樣。
復(fù)雜的部分
大多數(shù)開發(fā)者對簽名機(jī)制更復(fù)雜的實(shí)施過程感興趣。Schnorr可以使用數(shù)據(jù)來改變私鑰和公鑰。這個(gè)改變可以像將這兩把密鑰乘以2一樣簡單。
“私鑰乘以2”與“公鑰乘以2”是相對應(yīng)的,“私鑰乘以2”可以對信息簽名,供“公鑰乘以2”驗(yàn)證。
新生成的密鑰與其他密鑰對看起來一樣,無法分辨原先密鑰是不是被改過。
Taproot永遠(yuǎn)包含一個(gè)條件,稱為“聯(lián)合關(guān)閉”,一項(xiàng)轉(zhuǎn)賬中的所有參與者可以合作來花費(fèi)這些資金。通過使用Schnorr簽名,“聯(lián)合關(guān)閉”可以看起來與正常的點(diǎn)對點(diǎn)轉(zhuǎn)賬無異。這是通過將轉(zhuǎn)帳中所有參與者的公鑰加在一起來生成閾值公鑰而實(shí)現(xiàn)的。所有參與者的簽名結(jié)合起來生成的與閾值公鑰相對應(yīng)的閾值簽名可以允許花費(fèi)相應(yīng)資金。
但是,Schnorr簽名也允許轉(zhuǎn)賬內(nèi)的資金以非合作的方式進(jìn)行花費(fèi)?;ㄙM(fèi)資金的替代方法被組合成一個(gè)不同的腳本。這個(gè)腳本被哈希加密過,并被用來修改閾值公鑰。閾值公鑰與腳本的結(jié)合同樣對應(yīng)閾值簽名與腳本的結(jié)合。
這種智能合約的復(fù)雜結(jié)構(gòu)提供了最大程度的隱私性,閾值公鑰與腳本的結(jié)合看上去與常規(guī)公鑰一樣。在某些罕見情況下,當(dāng)區(qū)塊鏈得知公鑰實(shí)際上被更改過之后,轉(zhuǎn)賬的“聯(lián)合關(guān)閉”就會失效。
這次協(xié)議升級可能對整個(gè)比特幣網(wǎng)絡(luò)造成深刻影響。減少區(qū)塊體積意味著更快的轉(zhuǎn)賬和更少的轉(zhuǎn)賬費(fèi)。這會使Schnorr簽名成為區(qū)塊鏈上人人都會用的方式。