簡介
零知識證明,特別是zk-SNARK(SuccinctNon-interactiveArgumentsofKnowledge)可能是Web3前沿最重要的技術之一。雖然該子領域的大多數媒體和投資的關注都集中在zk-Rollup上,這種擴展解決方案為以太坊等L1區塊鏈提供了巨大的可擴展性,但這絕不是zk-SNARK的唯一應用。在這篇文章中,我們將深入分析零知識匯編代碼(或zkASM)的概念,評估它在zk-Rollup和其他領域的用例,探索它在重新發明我們所知道的互聯網方面的理論可能性。
技術原理
zk-ASM,顧名思義,主要包含兩個技術部分:zk和ASM。zk部分指的是zk-SNARK,而ASM部分指的是匯編代碼。要理解zk-ASM的潛力,我們必須首先理解這兩個看似神秘的概念的理論基礎。
zk-SNARK
zk-SNARK是zk-Proof皇冠上的寶石:它們是一種簡潔的證明,證明某個陳述是正確的,在證明時沒有透露任何關于被證明數據的信息。例如,假設某人斷言“我知道一個m使得C(m)=0”,其中m是一個千兆字節長的消息,C是一個函數。zk-SNARK將是一個非常簡短的證明(<1GB),可以快速驗證,并且不會透露任何關于m的信息(除了公開可用的信息)。
那么C(m)到底是什么?它有什么用?這個函數實際上是一個算數電路,或者是我們想要執行的特定函數的有向無環圖(DAG)表示,如圖所示。“m”本質上是進入電路的輸入數據,電路中的特定“節點”是單獨的邏輯門或算數運算。例如,“+”節點可能有“2”和“3”作為輸入,并將“5”輸出到下一個運算符。因此,可以在“算數電路”中對任意算數或邏輯運算進行編碼。
比特幣礦企Gridless完成200萬美元種子輪,Block和Stillmark共同領投:金色財經報道,東非比特幣礦業公司Gridless完成200萬美元種子投資,比特幣風險投資公司Stillmark和Jack Dorsey旗下支付公司Block共同領投。
據悉,Gridless在非洲農村地區設計、建造和運營比特幣挖礦點以及小型可再生能源生產商。Gridless充當主要租戶,為這些無法獲得傳統工業或商業客戶的農村社區的數據中心建設和管理運營提供資金。(CoinDesk)[2022/12/6 21:26:13]
算數電路的例子。資料來源:https://cs251.stanford.edu/lectures/lecture14.pdf
一旦我們有了這個算數電路作為我們想要運行zk-SNARK的代碼的表示,我們就可以開始構建這個zk-SNARK了。從根本上說,因為“代數基本定理”,使得zk-SNARK是可能的,該定理指出,一個“d”次多項式最多有“d”個根。數學技巧分為兩個步驟:(1)以某種方式將我們想要證明的函數“f(m)”轉換為一個多項式(并堅持下去),(2)使用“代數基本定理”與多項式相互作用,并提供一個簡潔的證明。在技術術語中,第一部分被稱為“PolynomialCommittmentScheme”(PCS:多項式承諾方案),第二部分被稱為“PolynomialInteractiveOracleProof”(PIOP)。
藝術創作者平臺Wildxyz完成700萬美元融資:12月2日消息,藝術創作者平臺Wildxyz完成700萬美元融資,Matrix Partners領投。Wildxyz旨在建立一個藝術家集結地與原創數字藝術平臺,并建立新的粉絲互動方式。[2022/12/2 21:18:34]
通用電路的有效SNARK的組成部分。資料來源:https://cs251.stanford.edu/lectures/lecture15.pdf
雖然PCS和PIOP的具體實現超出了本文的范圍,但到目前為止,我們已經獲得了zk-SNARK核心步驟的粗略草圖:
想運行zk-SNARK,就需要有一個函數的選擇(代碼函數,數學方程等);將此函數編碼為算數電路C(m);運行PCS得到該算數電路的多項式表示;運行PIOP以獲得原始“m”大小的對數的簡潔證明。我們有一個定制的zk-SNARK可以證明某人知道某個信息而不用透露信息是什么。
匯編代碼
zk-ASM的第二個難題是匯編代碼的思想。匯編代碼是一種包含非常低級語言指令的類語言,機器很容易閱讀,但人類很難破譯。與Python、Java等高級語言不同,匯編語言包含非常原始的函數,例如會在處理器和硬編碼內存位置上的一系列數據寄存器上移動、比較、添加和跳轉。例如,在屏幕上打印數字1到9的Python代碼為123456789:
安全團隊:Nirvana遭閃電貸攻擊,請相關用戶注意資產安全:7月28日消息,據慢霧區情報,Solana 鏈上穩定幣項目 Nirvana 遭遇閃電貸攻擊,攻擊者通過部署惡意合約,使用閃電貸從 Solend 借出 10,250,000 USDC,隨后調用 Nirvana 合約 buy3 方法購買了大量 ANA 代幣,隨后調用 Nirvana 合約 swap 方法賣出部分 ANA,得到USDT 和 USDC ,在歸還完閃電貸后共獲利3,490,563.69 USDT,21,902.48 USDC 及 393,230.32 ANA代幣,隨后黑客出售 ANA 代幣,并將所有臟款通過跨鏈橋轉移。Nirvana 源代碼未完全開源,據鏈上調用日志分析,攻擊者可能利用了 ANA 價格計算漏洞進行套利,請相關用戶注意資產安全。[2022/7/28 2:43:46]
下面是它的x86匯編版本:
對這么簡單的操作來說,其實變得更麻煩了。那么為什么還要使用匯編語言呢?如上所述,雖然這些指令對人類來說可能不容易閱讀,但它們很容易“組裝”到110011001字節碼中,供機器讀取和執行(這稱為匯編程序)。相對而言,Python和Java等高級語言更易于閱讀,但用這些語言編寫的程序不能直接由處理器執行。相反,我們需要依賴于一個“編譯器”,它咀嚼我們編寫的Python或Java代碼,并吐出一堆匯編代碼,然后由機器組裝和執行。我們可以期望同一段Python或Java在不同的處理器和不同的操作系統上平穩運行,因為編譯器完成了繁重的工作,將源代碼編譯為特定于該處理器或操作系統的匯編語言。
中文在線:公司與騰訊、百度在元宇宙業務進行探索合作:5月26日消息,上市公司中文在線表示,公司與騰訊、百度在元宇宙業務進行探索合作,公司基于騰訊平臺的至信鏈開展數字商品銷售服務,雙方就文體領域數字商品制作、交易(不含二次交易)、轉移等場景進行合作。基于百度的希壤元宇宙平臺,百度為公司提供虛擬會場服務。[2022/5/26 3:43:19]
因為所有語言都可以編譯成匯編代碼(匯編代碼本身可以編譯成可執行的二進制代碼),所以匯編程序本質上就像“所有語言之母”。現在假設我們能夠將匯編語言(如x86或RISC-V)中的所有操作數轉換為一種算數電路表示,這樣我們就能夠提供這種匯編語言中所有操作數的zk-SNARK證明。這意味著理論上我們能夠提供任何用任意高級語言(如Python或Java)編寫的程序的zk-SNARK,這些程序可以編譯成匯編語言。這就是為什么我們需要考慮zk-ASM。
實際應用
zk-EVMRollup:Polygonzk-ASM
zk-ASM最重要的應用之一是創建與以太坊虛擬機兼容的zk-Rollup,或zk-EVM。zk-EVM對于區塊鏈的可擴展性非常重要,因為它允許程序員部署在基于zk-Rollup的L2鏈上,而無需修改太多(如果有的話)他們的代碼]。在這個領域,Polygon的zk-EVM是一個典型的案例研究,它展示了如何使用zk-ASM來實現這一目標。
機構需求減弱正迫使高收益加密貨幣計息賬戶大幅降息:5月21日消息,自2020年以來,BlockFi和Celsius等加密貨幣借貸平臺經歷了驚人的增長,通過向個人投資者提供從幾個百分點到高達17%的收益率,吸引了數百萬客戶。這些平臺吸收存款,并將其借給機構投資者,將大部分收益返還給客戶。根據BlockFi的數據,通過這項業務,僅在2020年,其管理的資產就增加了1711%。其競爭對手Nexo和Celsius也經歷了巨大的增長,其中Celsius在不到一年的時間里管理資產增加了1900%以上。截至2021年3月,BlockFi通過其BlockFi計息賬戶持有147億美元的資產,而Nexo和Celsius則分別持有超過120億美元和200億美元的資產。BlockFi之前向持有一枚以上比特幣的用戶提供6.25%的利息。現在,它對持有0.35 BTC的用戶提供1% - 3%的利息,對更多金額提供0.1%的額外利息。同樣,Celsius也將回報率從6.2%調整3.05%。(The Block)[2022/5/22 3:33:21]
EVM和Polygonzk-EVM技術棧的比較。來源:OriginalContent
當程序員在以太坊L1區塊鏈上開發時,他們通常使用Solidity進行編碼。這種Solidity代碼在執行前會被編譯成一系列EVM操作碼,如ADD、SLOAD和EQ。默認情況下,這個過程顯然不會創建任何類型的zk-Proof。Polygon的訣竅是創建一個方法,將每個EVM操作碼解釋為它們自定義編寫的zk-ASM,這對zk-SNARK非常友好。然后,他們的L2zk-EVM將執行zk-ASM,同時還創建ASM的zk-SNARK電路,以創建zk-SNARK證明。例如,EVM中的ADD操作碼將被翻譯成Polygon的zk-ASM,如下圖:
EVMADD操作碼的Polygonzk-ASM解釋示例。資料來源:https://wiki.polygon.technology/docs/zkEVM/zkASM/some-examples
因為Polygonzk-EVM的招數在匯編級別上,它從普通以太坊程序員接觸的代碼中刪除了兩個級別,即“Solidity”級別。這就是為什么大多數開發人員可以將他們為以太坊主網構建的EVM代碼直接移植到Polygonzk-EVM的原因。此外,由于Polygonzk-EVM將以太坊的技術堆棧“保持”到操作碼級別,所有依賴于分析編譯的操作碼的調試基礎設施都將保持可用和完整。這與其他一些zk-EVM設計不同,例如zkSync,后者不提供操作碼級別的zk-Proof。因此,即使Polygon發明并證明了自己的匯編語言,Vitalik寫道:“它仍然可以驗證EVM代碼,它只是使用了一些不同的內部邏輯來完成它。”
超越Rollup:zk-WASM
zk-EVM絕不是zk-ASM的唯一應用程序。回想一下我們之前的斷言,匯編語言本質上是“所有語言之母”,并且zk-ASM的創建將為用任何編譯成該匯編語言的語言編寫的通用程序解鎖zk-Proof。WebAssembly,或稱WASM,是最重要的新興匯編語言之一。WASM于2018年首次發布,其目的是創建一種匯編語言,以提高Web應用程序的執行速度,并為Javascript(Web背后的主要編碼語言)提供執行補充。
從本質上講,隨著Web多年來的發展,Web應用程序的規模和復雜性不斷增長,這意味著瀏覽器編譯用Javascript編寫的所有內容的速度通常非常慢,并且必須依賴復雜的編譯-優化-重新加載周期。另一方面,WebAssembly通過提供可移植的、模塊化的、易于執行的匯編語言,消除了對復雜瀏覽器執行引擎的依賴。此外,作為一種匯編語言,WASM允許程序員直接用C語言、C++、Rust、Java或Ruby編寫在瀏覽器中本機運行的代碼片段。因此WASM已成為“提供分布式無服務器功能”的首選技術。
那么zk-SNARK為什么會出現,又是如何出現的呢?WASM的獨特之處在于它是一種客戶端技術,能夠直接與用戶輸入和數據交互。因為這通常包括敏感數據,如密碼和個人信息,我們需要一種技術:(1)確保程序正確執行,(2)我們的敏感信息不會被泄露。如上所述,zk-SNARK是解決這兩個問題的完美解決方案,因此是確保WASM安全的重要拼圖。
雖然開發zk-WASM的工作仍處于早期階段,但最近已經有一些項目發布了用于WebAssembly的zk-SNARK電路原型。例如,DelphinusLab的“ZAWA”zk-SNARKEmulator提出了一種將WASM虛擬機的操作數和語義編碼到算數電路中的方法,從而使其能夠進行zk-SNARK證明。隨著時間的推移,zk-WASM電路無疑會不斷優化,從而允許用通用語言(如C語言、C++、Rust和Ruby)編寫的程序采用zk-Proof的范例。
結論
在這篇文章中,我們探索了zk-ASM的理論基礎,并研究了zk-ASM的兩個范例:Polygon使用zk-ASM創建一個操作碼級別的zk-EVM,以及zk-SNARK在WebAssembly上的應用以創建zk-WASM。最終,zk-ASM的承諾是將Web2的互操作性和規模與Web3的可靠性和安全性結合在一起。
一方面,區塊鏈越來越多地尋求超越當前吞吐量瓶頸的擴展,并有可能支持執行,而另一方面,Web2方法因未能充分保護用戶數據和隱私而越來越受到攻擊。由于程序員能夠在他們的Web2代碼中使用Web3設計范例,并在區塊鏈上引入Web2語言和代碼,通用的zk-ASM可能代表Web2和Web3世界中的一個匯合點。正是在這個意義上,zk-ASM可以讓我們重新想象一個安全、無需信任的互聯網。
鏈茶館曾在10月份的《應用鏈的舊敘事與新趨勢——為什么說Uniswap轉為UniChain是個餿主意?》中表示,過去幾年的趨勢是把應用擴展為一條單獨的鏈.
1900/1/1 0:00:002022年對于IBC跨鏈通信協議來說是進展豐碩的一年。在新鏈集成、功能和改進方面,IBC在2022年無疑鞏固了它作為區塊鏈互操作黃金標準的地位。另一方面,跨鏈生態繼續蓬勃發展.
1900/1/1 0:00:00TL;DR 我們相信Avatar將是元宇宙中最有價值的資產,它能為用戶元宇宙體驗提供更強的代入感,并滿足人們建立聯系的情感需要.
1900/1/1 0:00:00自FTX暴雷以來,中心化交易所的透明性問題被推上輿論的風口浪尖。作為交易量最大的加密交易所,幣安的一舉一動也受到審查.
1900/1/1 0:00:00轉眼間,就到了2022年年底。回顧這個行情發現市場越來越熊,分布式存儲板塊的龍頭項目Filecoin的代幣FIL從高點已經下跌了90%以上。很多投資人已經覺得整個賽道沒有希望了.
1900/1/1 0:00:00??火必是一款在全球都非常出名的數字資產交易平臺,在平臺當中可以同時支持多種交易模式,例如持幣幣交易、合約交易以及OTC交易等多種交易模式,同時為了保證資金安全.
1900/1/1 0:00:00