詳解ZeroSync:Starkware爲比特幣开發的零知識證明系統

2023-08-04 12:44 Web3CN


作者:Chainchen@Web3CN.Pro

1. 前言

零知識證明(ZKP)爲區塊鏈的可擴展性和隱私性上帶來一種快速轉變。到目前爲止,以太坊社區正在廣泛應用這項技術並且已經取得了飛速進展。由L2beat官方數據顯示,以zkrollup技術的兩條以太坊二層公鏈zksync以及starknet爲主,截止目前爲止,兩條公鏈共有5.38億的TVL,此外值得注意的一點是,同樣以starknet公司推出的zk-rollup技術爲底層的dYdX去中心化交易所擁有3.38億的TVL。

截止目前爲止,BTC市場佔有率46.69%,ETH市場佔有率18.39%。而對於比特幣,零知識證明卻仍然處於處女地。此外,根據數據顯示,BTC整體的區塊爲500.16GB,想要證明數百GB內存的區塊鏈需要消耗的計算算力是及其昂貴的。因此,Starkware公司旗下ZeroSync被創建出來的目的就是爲了填補這個市場空白,將零知識證明系統帶到比特幣,通過小巧緊湊的證明系統,拓展BTC生態網絡。ZeroSync無論從商業價值角度,市場需求還是技術角度,都擁有難以想象的成長空間。

2. ZeroSync介紹

ZeroSync將要通過零知識證明技術解決在比特幣生態系統中可擴展性、可訪問性和隱私性問題。官方通過創建即刻同步比特幣鏈上狀態的證明系統、爲BTC生態上的开發者提供的工具包並且通過零知識證明(ZKP)增強BTC生態上的協議、應用和服務。官方的技術團隊實力非凡,團隊成員AndrewMilson他成功地使用Sandstorm和miniSTARK在StarkNet網絡上生成了第一個开源證明,進一步推動开源技術在區塊鏈和加密技術領域的發展。

衆所周知,盡管設置比特幣節點可能很簡單,但它需要從網絡中的其他節點下載大量的區塊數據——這通常需要花費幾天的時間。而爲了確保新啓動的節點最終持有比特幣鏈的正確狀態,這個花費時間的過程是必要的。想要證明BTC500GB內存的區塊鏈需要消耗的計算算力也是及其昂貴的。但是如果通過壓縮的方式,那最終就會形成一個小巧而緊湊的證明。而一旦生成了此類證明,BTC網絡中的任意數量的節點都可以使用它來與網絡即刻同步。通過利用零知識證明,任何人都可以立即驗證鏈的最新狀態。證明將不會受到鏈自身固有大小的影響。當下一個區塊被挖出時,任何證明者都可以遞增地擴展到前一個狀態的證明。

這個證明系統的意義在於,它將與比特幣的不可變形無縫連接。ZeroSync將作爲一個工具將用來填補上述空白,證明比特幣區塊鏈的正確驗證。它類似於一個全節點實現,不僅可以在應用所有區塊的交易後得到最終狀態,而且還可以在後來的時間驗證這個驗證過程。ZKP系統在比特幣的剛性基礎層之上提供了極大的靈活性,並引入了一系列新的應用供探索。

3. 狀態證明技術三階段

ZeroSync基於STARK證明,與其他證明系統相比,STARK證明相對簡單。STARK只依賴於哈希函數和多項式。不需要新的密碼學假設。最重要的是,沒有信任設置的需求。

爲了實現比特幣證明,官方正在使用StarkWare創建的Cairo語言,Cairo是一種用於創建可證明程序的語言。技術團隊可以創建一個驗證單個區塊的程序,並且只有在驗證成功時,才能爲其生成證明。官方正在與所有支持ZeroSync的STARK工具的开發者緊密合作。實現鏈狀態證明非常復雜,所以ZeroSync的官方團隊將其分爲三個連續的階段進行推出。截止目前爲止,官方團隊已經完成了前兩個階段的原型。

1.區塊頭證明

區塊頭:每個區塊中都包含前一個區塊的Hash,以及本區塊的時間戳,從而形成一個按時間順序排列可以追溯到第一個區塊的鏈式結構。

與SPV(SPV就是一個在輕客戶端環境下,驗證交易有效性的過程。)輕客戶端類似,區塊頭狀態證明只驗證區塊頭、工作量證明和難度調整。此外,它還通過在所有區塊頭上構建一個Merkle樹來增強區塊頭鏈,從而使所有區塊和交易的包含證明變得簡潔。這種狀態證明相對簡單、輕量級,並且計算成本低。目前官方已經完成區塊頭證明系統,通過官方網站的demo進行的區塊頭驗證過程,速度僅需幾秒種即可同步btc節點狀態。

Demo鏈接如下:https://zerosync.org/headers-chain.html

區塊頭鏈驗證規則:

輕客戶端在接收到比特幣網絡的區塊頭信息時,需要進行一系列的檢查以驗證區塊的有效性和鏈的正確順序。這一過程可以簡化爲以下四個步驟:

1.驗證工作證明:輕客戶端首先會檢查區塊的哈希值是否低於當前的目標值,這個目標值與區塊的挖礦難度有關。如果區塊的哈希值低於目標值,那么就說明這個區塊的工作證明是有效的。

2.確認鏈的順序:輕客戶端會檢查當前區塊中編碼的前一個區塊的哈希值是否與實際的前一個區塊的哈希值一致。這個步驟用來確認區塊在鏈中的正確順序。

3.檢查時間戳:輕客戶端會檢查區塊的時間戳是否在一個合理的範圍內。具體來說,區塊的時間戳不能低於前11個區塊時間戳的中位數,也不能超過網絡時間加上兩小時。

4.確認目標值的正確性:最後,輕客戶端會檢查區塊中編碼的目標值是否正確。如果區塊間的時間間隔有所變動,新的目標值需要根據時間戳來進行調整。

以上四個步驟可以確保比特幣網絡中區塊的有效性和鏈的正確順序,同時防止了惡意節點通過修改目標值來進行作弊。

區塊頭驗證的可驗證計算:

ZeroSync通過在Cairo中實現上述規則。官方使用的是一個名爲giza的开源Cairo證明器(並爲遞歸證明的實現做出貢獻)來證明生成的程序及其執行跟蹤。由於底層的STARK協議,此協議確保一個僞造的證明執行的證明是不可能的,並且一個正確的證明的大小爲幾百上千字節,可以在其他區塊鏈上、鏈下(例如用於節點同步)甚至在另一個STARK證明中進行驗證。

爲了生成多個連續區塊頭的證明,官方將它們的驗證批量在一個Cairo程序中進行,只要底層的證明器有足夠的處理能力。可以通過在新的STARK證明中驗證幾個批量驗證證明,來爲整個比特幣鏈創建證明。

2.假設有效狀態證明

這一步驟是模仿比特幣核心的“假設有效”選項。它驗證所有除了交易籤名比特幣的共識規則。更准確地說:所有的見證數據都被假定爲有效。此外,這個證明使用Utreexo來增強鏈上的UTXO集合承諾。團隊在2023年2月完成了這個狀態證明的初始原型。

假設有效區塊是一種優化技術,用於加快比特幣全節點的同步速度。這種技術允許節點在同步過程中跳過某些區塊的籤名驗證,從而節省大量的計算資源和時間。

在具體操作中,如果一個新的全節點在啓動時知道某個區塊是有效的(這通常是由於軟件默認設置或者用戶手動設置),那么在同步到這個已知有效的區塊之前的所有區塊,節點都可以跳過籤名驗證,直接接受這些區塊。而在這個已知有效的區塊之後的所有區塊,節點仍然會進行正常的籤名驗證。

需要注意的是,假設有效區塊並不改變比特幣的安全模型或共識規則,它只是一種優化手段。即使用戶沒有設置任何假設有效區塊,或者設置的假設有效區塊並不在最長的區塊鏈上,比特幣節點也能正常工作,只不過同步速度會慢一些。

3.全節點證明

使用SHA256對區塊頭進行兩次哈希是區塊頭驗證中最耗費計算資源的操作。當前的比特幣區塊可能包含超過2000個交易。因此,全面驗證這些交易比僅驗證區塊頭要復雜得多,因爲每個交易都需要進行哈希運算。我們不能在一個證明中驗證大量的區塊,除非使用遞歸證明,並且還需要跟蹤一個鏈狀態(主要由每個區塊後的未花費交易輸出集合組成),這個狀態需要在每個區塊的驗證過程中進行更新。

雖然STARK證明是簡潔的,使得它們比驗證相應的區塊更容易,但鏈狀態必須是每個證明的公开輸入的一部分,這會使其大小增加數個G字節。應對UTXO集合的增長是一個重要的問題,因爲過大的UTXO集合可能會影響節點的性能和存儲需求。處理大型UTXO集合可能導致節點需要更多的存儲空間和更長的同步時間,從而影響整個區塊鏈網絡的效率和可擴展性

爲了解決這個問題,我們可以使用一種叫做累加器的技術,具體來說,就是一種叫做UTreeXO的技術,它是一種可以交換樹節點的Merkle山脈範圍。通過這種方式,我們可以減少每次驗證時需要的輸入和輸出,只需要包含代表整個UTXO集合的UTreeXO根哈希的列表。如果一個交易使用了特定的UTXO,它可以連同一個成員證明一起提供給程序,這個過程不需要包含在公开的輸入中。這樣,我們就可以大大減小證明的大小,提高比特幣網絡的效率和可擴展性。

證明機制:

在這裏,技術團隊正在嘗試使用一種叫做增量可驗證計算(Incrementally Verifiable Computation,IVC)的技術來優化證明的生成和驗證過程。可以將IVC想象成一種將大任務分解成多個小任務的方法。在這個例子中,每個"任務"就是生成一個區塊的證明。在正常的情況下,每生成一個區塊的證明,就需要進行一次驗證。但是,這種方式需要很多的計算資源和時間。因此,技術團隊提出了一種新的方法:首先並行生成10個區塊的證明,然後將這10個證明壓縮成一個單一的證明。這個壓縮的過程就像是在一棵樹上,每個樹枝(證明)都指向一個中心點(壓縮後的證明)。這樣,驗證的過程只需要對這個單一的證明進行,大大減少了計算的復雜性和時間。然後,這個壓縮後的證明可以作爲輸入,輸入到下一個區塊的驗證中。這種方式可以確保在前一個證明還在運行的時候,就可以开始下一個證明的生成和驗證,從而提高了效率。最後,爲了確保數據的一致性,驗證過程必須檢查所有的輸入狀態是否匹配前一個的輸出狀態。這就像是在檢查每一步的結果是否符合預期,以確保整個過程的正確性。

驗證所有比特幣的共識規則,包括所有的見證數據。這是在計算方面最昂貴的證明,它需要對證明者進行大量的優化才能變得可行。未來官方的第一個主要應用將是通過Blockstream Satellite從太空廣播狀態證明,使得地球上幾乎任何地方的人都能立即通過全節點證明同步到比特幣區塊鏈。

4.總結:

ZeroSync可以生成比特幣區塊鏈的STARK證明,並旨在爲整個鏈創建一個單一的證明。這個證明與相應的UTXO(未使用的交易輸出)集合結合使用,可以用來快速同步比特幣全節點。目前,Starkware官方團隊已經到達了一個“假定有效節點”的階段,但是尚未進行交易腳本驗證,官方團隊正在努力實現遞歸驗證。初次試驗結果能夠在大約500萬個Cairo步驟內驗證包含108筆交易的區塊。ZeroSync是一個开源項目,通過零知識證明技術解決在比特幣生態系統中可擴展性、可訪問性和隱私性問題,一旦成功,意義深遠,具體體現在以下幾點:

1.提高比特幣網絡的效率和可擴展性:通過使用ZeroSync,比特幣網絡的節點可以立即同步最新的鏈狀態,而無需下載和驗證所有的區塊數據。這將大大提高比特幣網絡的同步速度,使更多的用戶和設備可以參與到比特幣網絡中來,從而提高比特幣網絡的可擴展性。

2.提高比特幣網絡的安全性和隱私性:ZeroSync利用ZKP技術,可以在不泄露任何具體交易信息的情況下驗證交易的有效性,這大大增強了比特幣網絡的隱私性。此外,由於ZKP的非交互性,即使證明者和驗證者之間存在惡意行爲,也無法影響證明的正確性,從而提高了比特幣網絡的安全性。

3.推動比特幣生態的發展:ZeroSync不僅可以作爲一個工具,使得开發者可以更方便地开發和部署比特幣應用,而且還可以增強比特幣生態中的協議、應用和服務,推動比特幣生態的發展。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:詳解ZeroSync:Starkware爲比特幣开發的零知識證明系統

地址:https://www.sgitmedia.com/article/6889.html

相關閱讀: