比特幣最新升級提案Taproot是如何提高網絡的靈活性和隱私性的?

正文共:2,215 字
正文共:2,215 字
預計閱讀時間:8 分鐘
二級標題
二級標題
二級標題
解決複雜智能合約的問題
儘管比特幣到目前為止是第一個也是最有野心的一個區塊鏈項目,但它也由於缺乏可擴展性與解決複雜智能合約帶來的隱私問題的能力而備受批評。
二級標題
二級標題
Taproot的工作方式
Taproot的工作方式
要理解Taproot怎樣工作,我們必須退回到比特幣轉賬的基礎上——腳本。腳本是嵌入轉賬中、在區塊鏈上運行的幾行代碼,它定義了被轉賬的幣可以被花費的方式。
在這些被轉賬的幣能被花費之前,還有一些步驟需要完成:這些幣的所有權必須通過簽名被證明;如果有時間鎖,則需要達到特定的區塊高度或者日期;或者一個私鑰集合中一定數量的私鑰需要為轉賬提供簽名。以上這些條件可以被組合起來形成一個非常複雜的智能合約。
智能合約的這些限制條件,或者說腳本,由於P2SH的存在,僅對這些幣的新擁有者可見。這使得只有腳本的哈希值,或者說看起來只是一組隨機數被包括在區塊鏈裡。但是,當這些幣被花掉之後,這個腳本最終會被揭示出來。這意味著這筆轉賬的所有條件,包括那些沒被觸發的條件,都會在鏈上顯示出來。
雖然非常直截了當,但這個過程會產生很多數據,而且在保護區塊鍊鍊上轉賬的隱私方面非常不利。
解決這個問題的一個方式是使用默克爾化的抽象語法樹(MAST)。這個提議基於默克爾樹,這是一種歷史久遠的緊湊的數據結構,能夠允許轉賬的所有不同限制條件被單獨哈希。所有這些條件將被存在一個默克爾樹裡,產生一個稱為默克爾根的單獨哈希值用來鎖定這些幣。
二級標題
二級標題
二級標題
Schnorr軟分叉協議升級可以實現Taproot
Pieter Wuille,Blockstream的CEO,同時也是著名的區塊鏈開發者,解釋說Taproot直接建立在MAST與默克爾分支之上。在它的GitHub提議中,它解釋道Taproot將允許幾乎所有智能合約結構中包含一個條件,從而能讓所有參與者對一個結果進行表決。參與者能共同合作,對一項清算轉賬表示同意。 Wuille表示,這會節省更多空間,並增加花費時的腳本隱私性。
雖然Taproot自己已經有巨大的潛力,但只有與Schnorr結合起來,它才能發揮它真正的威力。這種新型的簽名方式目前正在開發當中,將通過一次軟分叉部署到區塊鏈上。這將是比特幣網絡中最受期待的一次升級之一。
二級標題
二級標題
二級標題
複雜的部分
大多數開發者對簽名機制更複雜的實施過程感興趣。 Schnorr可以使用數據來改變私鑰和公鑰。這個改變可以像將這兩把密鑰乘以2一樣簡單。
“私鑰乘以2”與“公鑰乘以2”是相對應的,“私鑰乘以2”可以對信息簽名,供“公鑰乘以2”驗證。
新生成的密鑰與其他密鑰對看起來一樣,無法分辨原先密鑰是不是被改過。
Taproot永遠包含一個條件,稱為“聯合關閉”,一項轉賬中的所有參與者可以合作來花費這些資金。通過使用Schnorr簽名,“聯合關閉”可以看起來與正常的點對點轉賬無異。這是通過將轉帳中所有參與者的公鑰加在一起來生成閾值公鑰而實現的。所有參與者的簽名結合起來生成的與閾值公鑰相對應的閾值簽名可以允許花費相應資金。
但是,Schnorr簽名也允許轉賬內的資金以非合作的方式進行花費。花費資金的替代方法被組合成一個不同的腳本。這個腳本被哈希加密過,並被用來修改閾值公鑰。閾值公鑰與腳本的結合同樣對應閾值簽名與腳本的結合。
這種智能合約的複雜結構提供了最大程度的隱私性,閾值公鑰與腳本的結合看上去與常規公鑰一樣。在某些罕見情況下,當區塊鏈得知公鑰實際上被更改過之後,轉賬的“聯合關閉”就會失效。


