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