本月早些時候,一位開發(fā)者提出了一種新的比特幣可伸縮性解決方案,它利用了零知識證明加密技術(shù)。
該可伸縮性方案結(jié)合了加密貨幣項目Coda和零知識證明中開發(fā)和實現(xiàn)的各個方面,從而支持一種創(chuàng)新類型的比特幣客戶端。運行此實現(xiàn)的客戶端將能夠在理論上實時同步和驗證整個鏈,并且無論事務(wù)數(shù)量如何,數(shù)據(jù)大小都是恒定的,并且具有幾乎即時速度的完全驗證安全性。
此外,新提議無需對現(xiàn)有的比特幣軟件進行任何修改就可以實現(xiàn),如果成功,將消除當前比特幣社區(qū)普遍存在的許多規(guī)模問題。
一個快速入門
比特幣規(guī)模之爭一直是一個長篇大論、似乎永無休止的問題。有證據(jù)表明,中本聰甚至在推出比特幣網(wǎng)絡(luò)之前就提出了規(guī)模擴張的擔憂。
2008年,當中本聰?shù)谝淮蜗蛎艽a學郵件列表宣布他的項目時,一個叫James Donald的加拿大密碼學朋克第一個評論并表達了他對中本聰提出的系統(tǒng)似乎規(guī)模不大的擔憂。Donald對此的評論是:“我們非常、非常需要這樣一個系統(tǒng),但在我看來,你的提案似乎沒有達到要求的規(guī)模。為了及時發(fā)現(xiàn)和拒絕雙重支出事件,交易必須大部分實現(xiàn),這要求每個對等點有大多數(shù)過去的交易數(shù)據(jù),或最近發(fā)生的大多數(shù)過去的交易數(shù)據(jù)。如果數(shù)以億計的人在做交易,那就需要很大的帶寬——因為每個人都必須知道所有的信息或者至少是其中的很大一部分。
簡而言之,這是今天關(guān)于可伸縮性爭論的主要前提。當時,中本聰對Donald的回應(yīng)是:“早在網(wǎng)絡(luò)達到如此大的規(guī)模之前,用戶就可以使用簡化的支付驗證來檢查雙重支出,這只需要擁有區(qū)塊頭鏈,即每天12kB左右?!?/p>
中本聰?shù)姆磻?yīng)被廣泛引用作為證據(jù),證明他相信鏈上擴展將是網(wǎng)絡(luò)的一個可行的解決方案。
然而,盡管中本聰被認可了這種鏈上擴展模式,但該社區(qū)一直未能就該問題達成共識。因此硬分叉導(dǎo)致了替代幣比特幣的誕生。
鏈外伸縮解決方案需要權(quán)益信任,而鏈內(nèi)解決方案則需要過多的空間,甚至可能是不可持續(xù)的空間。然而,如果有一種替代方案可以有效地擴大比特幣網(wǎng)絡(luò),而不需要像現(xiàn)在這樣改變底層代碼,那會怎樣呢?
如果有一種方法可以使完全驗證鏈狀態(tài)的過程比權(quán)益信任更有效,該怎么辦?
Coda連接
要充分理解這個方案,首先要參考Coda項目。Coda是一個加密貨幣項目,目的是提供一個區(qū)塊鏈,無論處理的事務(wù)數(shù)量或網(wǎng)絡(luò)上的用戶數(shù)量如何,區(qū)塊鏈都保持不變。
Coda優(yōu)先考慮去中心化和可伸縮性。由于其區(qū)塊鏈的狀態(tài)較小且恒定,因此支持大量客戶機,并且可以在Coda區(qū)塊鏈上運行驗證節(jié)點。這也適用于通常存儲容量非常小的移動客戶機。
Coda協(xié)議聲稱“將整個區(qū)塊鏈壓縮成一個只有幾條tweet大小的小快照”。協(xié)議通過使用遞歸的零知識證明來實現(xiàn)這一點。
零知識證明是一種支持隱私的加密工具。這與其他加密函數(shù)類似。但是,與它們的對等項不同的是,在零知識證明中,證明以及從函數(shù)生成的輸出足以驗證函數(shù)是真實執(zhí)行的。
之所以用這種方式引用零知識證明,是因為驗證者必須不能訪問輸入來量化函數(shù)的執(zhí)行情況。此外,驗證者不需要向運行該功能的人授予任何信任,因為該功能本身具有證明零知識證明的這種隱私增強功能使其在加密貨幣領(lǐng)域非常有價值,特別是對于以隱私為中心的項目。
零知識證明的一個有趣特性是它們可以實現(xiàn)任何功能。這包括驗證其他零知識函數(shù),甚至驗證它們本身。
因此,使用遞歸的零知識證明,Coda區(qū)塊鏈能夠?qū)崿F(xiàn)簡潔的區(qū)塊鏈。簡潔的區(qū)塊鏈是一種無論任何因素都能保持相同大小的區(qū)塊鏈。在Coda協(xié)議中,同步區(qū)塊鏈的節(jié)點也可以進行下載并驗證區(qū)塊鏈的完整版本。
即時同步完整的驗證比特幣節(jié)點
泰勒·史密斯發(fā)表的提案大量借鑒了《最后協(xié)議》。然而,史密斯建議建立一個覆蓋協(xié)議,它運行在實際的比特幣區(qū)塊鏈之上,并融合了零知識證明。
建立第二層保護了久經(jīng)考驗的比特幣網(wǎng)絡(luò)的安全,但允許人們“通過零知識證明處理挖掘出的區(qū)塊,制作和發(fā)布證據(jù),實現(xiàn)比特幣的過渡規(guī)則?!薄昂唵蔚卣f,第二層網(wǎng)絡(luò)將利用已經(jīng)通過認證的塊,這些塊已經(jīng)在比特幣網(wǎng)絡(luò)上達到最終狀態(tài),作為進一步達成共識的基礎(chǔ)?!?/p>
史密斯將其解釋為“客戶機連接到這個網(wǎng)絡(luò),可以下載并驗證最有效的狀態(tài)哈希值,并擁有一個經(jīng)過驗證的狀態(tài)哈希值,其完整性已得到驗證。需要狀態(tài)一致的一部分客戶機可以從網(wǎng)絡(luò)上的狀態(tài)保持節(jié)點請求它。這個過程類似于標準的全節(jié)點同步。然而,在第二層,網(wǎng)絡(luò)中計算的狀態(tài)將通過遞歸零知識證明進行驗證。
通過這個實現(xiàn),客戶機能夠完全驗證整個鏈狀態(tài),因為正如前面所討論的,在這方面的同步指的是下載和驗證整個鏈。此外,遞歸零知識證明是快速的,因此節(jié)點在幾秒鐘內(nèi)就有了整個狀態(tài)。為了更好地理解這個建議,可以把它看作是工作證明。
這個提議還處于構(gòu)思階段。但是,如果開發(fā)人員能夠生成一個可行的概念驗證,并將去中心化和安全性放在優(yōu)先級之上,那么最終可能還是會很好的實現(xiàn)。
評論