Filecoin很高興地宣布 Lurk 編程語言存儲庫現已向公眾開放。 Lurk 是一種用于遞歸 zk-SNARK(零知識簡潔非交互式知識論證)的圖靈完備編程語言,它將為 SNARK 證明、區塊鏈共識、Filecoin 虛擬機 (FVM)、去中心化應用程序、與 IPFS 和 IPLD 等等。

概述
Lurk 是一種靜態范圍的 Lisp 方言,受 Scheme 和 Common Lisp 的影響。它相對于大多數編程語言的顯著特點是可以使用 zk-SNARKs 直接證明 Lurk 程序的正確執行。生成的證明相對較小,可以快速驗證,并且它們僅揭示要證明的陳述中明確包含的信息。

簡而言之,Lurk 是一種易于使用的語言,它使程序的開發變得更加簡單。它將使 SNARK 編程更易于訪問——既因為可以編寫的程序比傳統的 SNARK 程序更“強大”,而且因為那些不是領域專家的人也可以編寫這些程序。

Lurk 由 Protocol Labs 高級研究工程師 Chhi’mèd Künzang 創建,作為實施 Filecoin 證明工作的擴展。在其證明構造中,Filecoin 使用 SNARK,這是一種用于證明知識的高效、加密安全的機制。 “ZK”(零知識)雖然不是 Filecoin SNARKs 的必要部分,但意味著證明者可以在不透露任何關于被證明內容的信息的情況下生成證明。 Filecoin 將 SNARK 用于復制證明 (PoRep) 和時空證明 (PoSt),它們是網絡所依賴的核心加密協議。 (有關這些概念的高級介紹,請參閱此 ProtoSchool 教程。) Filecoin Proofs 的需求要求我們將上一代 SNARK 擴展到其極限——同時也讓我們去尋找、認識和發現下一代的可能性一代。

與大多數 zk-SNARK 創作語言不同,Lurk 是圖靈完備的,因此可以提出和證明任意計算聲明(受資源限制)。 因為 Lurk 是一個 Lisp,它的代碼就是 Lurk 數據,任何 Lurk 數據都可以直接作為 Lurk 程序求值。 Lurk 使用對 SNARK 友好的 Poseidon 哈希(由 Neptune 提供)構造復合數據,因此其數據自然是內容可尋址的。

Lurk 目前支持多個后端證明系統,特別是帶有 SnarkPack + 和 Nova 的 Groth16,并支持許多關鍵功能:

可驗證的計算
簡潔的證明
零知識
圖靈完備性
內容可尋址數據的任意遍歷
高階函數(例如,作為計算的公共輸入的函數,有證明)
用于與 IPFS 和 IPLD 自然集成的內容可尋址數據