當比特幣網路遇上零知識證明(ZKP),是否能融合零知識證明的特色,讓比特幣網路更加去中心化與高效率,本文將介紹零知識證明能為比特幣網路帶來哪些賦能。
(前情提要:零知識證明 (ZKP) 如何改變以太坊的遊戲規則? )
(背景補充:科普|零知識證明(ZKP)的 3 類用例:隱私、金融、跨鏈身份 )
關鍵要點
- 零知識證明可以提高比特幣的隱私性,因為它可以隱藏交易的細節,如金額、地址、輸入和輸出等,同時保留交易的有效性和完整性,這樣就可以防止第三方追蹤以及分析使用者的交易活動。
- 零知識證明可以提高比特幣的可擴充套件性,因為它可以減少交易資料的大小和驗證時間。 例如,使用 ZK-STARKs 或其改進版本就可以將多個交易打包在一起,並使用零知識證明來驗證它們,從而節省空間和時間。
- 零知識證明可以提高比特幣的創新性,因為它可以支援更多的功能和應用。 例如使用 ZK-SNARKs,就可以實現更多的邏輯和計算,在不暴露資訊或增加開銷的情況下執行更複雜和更靈活的合約。
- 最終,零知識證明將使比特幣更加無需信任和去中心化,符合其核心價值觀。隨著技術的不斷發展和改進,比特幣和 ZKP 的潛力也將不斷得到挖掘。
越來越多的團隊在區塊鏈基礎設施和 dApp 中採用零知識證明技術。但是,大部分專案都是基於以太坊進行的開發。然而,比特幣與零知識證明實際上具有天然的結合基因,這一領域目前缺乏應有的關注。零知識證明技術與比特幣的結合將可能為比特幣網路帶來哪些賦能?在本期 Bing Ventures 研究文章中,我們將從技術原理和應用前景角度對這一話題進行探索。
零知識證明(ZKP)是一種數學方法,允許一方(稱為證明者)向另一方(稱為驗證者)證明一個事實,而無需向驗證者提供任何有關證明的資訊。這種方法對於保護隱私非常有效,因為證明者可以向驗證者提供證明,而不會洩露任何有關證明本身的資訊。
比特幣可以與零知識證明具備天然結合的基因。比特幣是一種去中心化的虛擬貨幣,它使用區塊鏈來記錄交易,並且所有交易資訊都是公開的。然而,這也意味著比特幣的交易資訊可以被任何人檢視,因此存在隱私洩露的風險。而零知識證明可以解決這個問題。
通過使用零知識證明,比特幣使用者可以將交易資訊進行加密,並在不洩露資訊的情況下證明其有效性,從而實現更高水平的隱私保護。零知識證明還可以提高比特幣的可擴充套件性。目前,比特幣的交易速度受到區塊鏈大小和網路擁堵的限制,這限制了其在大規模商業應用中的使用。但是,通過使用零知識證明,比特幣使用者可以將大量交易資訊進行批量處理,並將其證明的大小壓縮到極小,從而提高比特幣的可擴充套件性和效率。
背景和基本原理
ZK-SNARKs 和 ZK-STARKs
ZK-SNARKs 和 ZK-STARKs 都是零知識證明的變種,它們的共同點是在不洩露敏感資訊的情況下證明某些資料或操作的有效性。但是,它們的實現方式、效能和應用範圍有所不同。
ZK-SNARKs(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)是一種基於橢圓曲線密碼學的零知識證明技術。它可以將一個複雜的計算問題轉換成一個簡單的證明,證明的大小非常小,且不需要互動。這意味著 ZK-SNARKs 可以在不洩露任何計算資訊的情況下驗證計算的正確性。ZK-SNARKs 的應用領域主要包括加密貨幣和隱私保護。
ZK-STARKs(Zero-Knowledge Scalable Transparent Argument of Knowledge)是一種新型的零知識證明技術,相對於 ZK-SNARKs 更加靈活和安全。ZK-STARKs 的實現方式不依賴於橢圓曲線密碼學,而是使用了 hash 函式和多項式插值技術。這使得 ZK-STARKs 更加可靠,因為它不依賴於不可預測的數學難題,而是依賴於 hash 函式的不可逆性。另外,ZK-STARKs 的證明大小比 ZK-SNARKs 更大,但是它的證明可驗證性更好,因此可以應用於更廣泛的領域,例如分散式計算和物聯網安全等。
比特幣採用零知識證明的難點
以 Zcash 為例,Zcash 採用的是零知識證明技術中的 ZK-SNARKs,該技術可以用於隱藏交易的詳細資訊,包括交易金額、參與者身份等,以實現更好的隱私保護。Zcash 採用 ZK-SNARKS 的技術原理大致如下:
- Zcash 中有兩種型別的地址:透明地址(t-address)和隱藏地址(z-address)。 透明地址類似於比特幣地址,它們在區塊鏈上公開交易金額和參與者。 隱藏地址則使用零知識證明來保護交易金額和參與者的隱私。
- 當一個使用者從一個隱藏地址傳送資金到另一個隱藏地址時,他們需要生成一個 ZK-SNARKS 證明來表明他們擁有足夠的資金,並且沒有花費任何已經花費過的資金。 這個過程涉及到一些複雜的數學和密碼學操作,比如生成公開引數、計算hash、構造算術電路等。
- 生成 ZK-SNARKS 證明需要大量的計算資源和時間,但驗證 ZK-SNARKS 證明卻非常快速和簡單。 驗證者只需要檢查交易是否符合區塊鏈的規則,而不需要知道任何關於交易金額或參與者的資訊。
- 通過使用 ZK-SNARKS,Zcash 可以實現完全匿名和可驗證的交易,在保持區塊鏈安全性和去中心化性的同時,提高使用者隱私性和可用性。
延伸閱讀:Zcash ECC 執行長 Zooko Wilcox 宣示 Zcash 的新方向:「將不再只是隱私幣!」
但是,Zcash 採用的零知識證明技術也存在一些侷限性。首先,Zcash 是基於 UTXO 的,這意味著交易資訊並沒有被完全掩蓋,而只是被遮蔽了。因此,攻擊者可以通過分析交易資訊的模式和流量來推斷出一些有用的資訊。這也就導致了 Zcash 對於隱私保護的程度並不是完全可靠的。
其次,Zcash 是基於比特幣的獨立網路,這使得它與其他應用程式結合變得更加困難。這也就限制了它在更廣泛的範圍內應用的可能性,進一步阻礙了它的發展。雖然 Zcash 實現了隱私交易,但實際使用率卻不高。其中一個原因是,隱私交易的成本比公開交易高得多,這也就限制了它的應用範圍。
ZK-STARKs 的技術優勢
在比特幣上採用 ZK-SNARKs 技術確實可以實現交易的匿名性和隱私保護,但是該技術存在一些缺點,比如需要可信的設定和裝置,需要大量的計算和儲存資源等。為了解決這些問題,一些新的零知識證明技術,如 ZK-STARKs 技術也出現了。
簡單來說,ZK-STARKs 的過程包括以下幾個步驟:
- 證明者將他想要證明的計算轉換成一個多項式方程組,並用祕密資訊作為變數。
- 證明者對這個方程組進行一系列的變換和簡化,得到一個更簡單的方程組。
- 證明者對這個簡化後的方程組進行取樣和編碼,得到一個低維度的向量。
- 證明者對這個向量進行hash和簽名,得到一個短小的字串,作為他的證明。
- 驗證者收到這個字串後,可以通過一些公開的引數和演算法來檢驗它是否正確,而不需要知道祕密資訊或原始計算。
相較於 ZK-SNARKs 技術,ZK-STARKs 技術具有以下優勢:
- ZK-STARKs 技術不需要可信的設定,也就是說,不需要信任某個特定的生成器,這提高了技術的安全性。
- ZK-STARKs 技術因為需要的計算和儲存資源更少,因此可以更好地適應輕量級裝置和更廣泛的應用場景。這是因為它相比 ZK-SNARKs 中需要進行複雜的加密和解密運算的過程,其證明生成過程更加高效。此外,ZK-STARKs 技術還可以更好地利用並行計算和分散式計算的能力,從而在某些情況下可以更高效地處理計算任務。
- ZK-STARKs 技術還可以支援更多的演算法和操作,比如hash函式、多項式運算等,這也為技術的拓展和升級提供了更多的可能性。
比特幣和 ZK-STARKs 的結合
EC-STARKs 技術
STARKs 技術是一種新型的密碼學證明技術,可以通過傳遞資料與第三方進行通訊,同時保持資料的隱私性。這種技術可以將計算和儲存驗證資料轉移到鏈下,從而提高了可擴充套件性。相比於 ZK-SNARKs 技術,STARKs 技術更為先進,能夠抵抗來自量子電腦的攻擊。
EC-STARKs 技術是 STARKs 技術的下一代,旨在通過用橢圓曲線替換 hash 函式來提高比特幣的可擴充套件性和安全性。這項技術可以讓已經存在於以太坊上的可擴充套件性解決方案與比特幣相容。使用 EC-STARKs 技術,可以在鏈下執行比特幣協議,並將證明儲存在 STARK 中。
簡而言之,比特幣可以在 STARK 中被模擬,從而允許使用相同的橢圓曲線金鑰建立基於比特幣的代幣的高度複雜的協議。EC-STARKs 技術的使用可以在比特幣的鏈下協議中執行,同時保持證明在 STARK 中。這種方法不僅可以提高比特幣的可擴充套件性,而且可以在比特幣上建立高度複雜的協議,從而具有更高的隱私性。
這項技術將比特幣的可擴充套件性和隱私性提高到了一個全新的水平,從而讓比特幣成為了一個更好的平臺。這樣,開發者可以在比特幣上建立更加複雜的應用程式,使得比特幣在加密貨幣市場上的地位更加穩固。
ZK-STARKs 在比特幣中的應用前景
ZK-STARKs 的應用也符合比特幣的保守設計哲學,不需要可信任的集合,而是使用 hash 函式、Merkle 樹和多項式等技術,提高了比特幣的透明度和安全性。EC-STARKS 在比特幣上的一個優勢是它可以提高比特幣的隱私性,因為它不需要公開交易的細節。 另一個優勢是它可以減少比特幣的儲存需求,因為它可以將大量的資料壓縮成一個小的證明。 EC-STARKS 在比特幣上的一個挑戰是它需要更多的計算資源,因為它需要執行複雜的數學運算。 另一個挑戰是它需要更多的協調和標準化,因為它需要與比特幣的現有協議和基礎設施兼相容。
從技術實現的角度來看,ZK-STARKs 的應用可以分為輕節點、全節點和驗證方式等方面。輕節點可以利用 stark 證明區塊頭狀態,實現快速的同步。全節點可以通過 UTXO 狀態實現有效性證明,並使用 utreexo 技術,用新格式代表 UTXO 狀態,從而不需要檢視整個 UTXO 狀態。驗證方式方面,只需給定 utreexo 根 + 最終狀態,就能夠開始驗證傳入的區塊。
此外,ZK-STARKs 的應用還有很多潛在的方向。例如,與 Taro 協議相結合,將比特幣打造成更加通用的資産,使得比特幣的應用場景得到進一步擴充套件,通過將 ZK-STARKs 與 TARO 結合,可以提高 TARO 協議的可擴充套件性,使其能夠處理更多的交易並支援更大規模的應用,這將為 TARO 協議的多鏈部署開啟門戶。此外,比特幣的隱私性一直是個問題,而 ZK-STARKs 技術的應用可以大幅提高比特幣的隱私性。通過使用 ZK-STARKs 技術,可以將整個交易歷史記錄壓縮到一個單一的交易中,從而有效地隱藏使用者的交易資訊。
未來的看點
更進一步來說,ZK-STARKs 可以用於比特幣交易的驗證,包括比特幣交易的序列化、雙 SHA 計算、secp256k1 操作等。這些操作是比特幣交易驗證的核心,使用 ZK-STARKs 可以確保比特幣交易的驗證過程高度安全和可靠。ZK-STARKs 還可以用於驗證比特幣的加速 Cairo 內建功能。Cairo 是一種高效的零知識證明系統,與比特幣的加速 Cairo 內建功能結合使用,可以實現高效的比特幣交易驗證和安全保障。
ZK-STARKs 還可以用於實現 Taro 原語和資産 TLV 序列化,以及 MS-SMT 實現和驗證等。這些操作可以有效地保護比特幣交易的隱私和安全性,進一步提高比特幣交易的可信度和可靠性。閃電網路作為比特幣交易的二層解決方案,可以通過結合 ZK-STARKs 技術實現更高效、更安全的比特幣交易。利用 ZK-STARKs 技術,可以在不犧牲交易隱私的前提下,快速驗證閃電網路上的比特幣交易。
我們看到越來越多的團隊在區塊鏈基礎設施和 dApp 中採用零知識證明技術。其中一些新方案可能有可能加速零知識證明在區塊鏈空間中的應用,並以更好的方式幫助隱私和可擴充套件性。然而,大部分專案都是基於以太坊進行開發,而比特幣則在零知識證明領域缺乏應有的關注。更糟糕的是,工程實踐在某種意義上並沒有趕上學術成就。我們需要在這方面進行更多的實施和探索,同時也應該對該領域進行更多的關注和支援。