郑州中创|Lurk编程语言存储库现已向公众开放

Lurk编程语言存储库现已向公众开放。Lurk是一种用于递归zk-SNARK(零知识简洁非交互式知识论证)的图灵完备编程语言,它将为SNARK证明、区块链共识、虚拟机 (FVM)、非中心化应用程序、与星际文件系统和IPLD的数据整合等带来新的可能性


01什么是Lurk

Lurk是一种静态范围的Lisp方言,受Scheme和Common Lisp的影响。它相对于大多数编程语言的显著特点是可以使用zk-SNARKs 直接证明Lurk程序的正确执行。生成的证明相对较小,可以快速验证,而且他们只揭露待证文件中明确包含的信息。
简而言之,Lurk是一种易于使用的语言,它使程序的开发变得更加简单。它将使SNARK 编程更易于访问——不仅是因为编写的程序比传统的SNARK程序更“强大”,而且那些不是专家领域的人也可以编写这些程序。


Lurk由Protocol Labs高级研究工程师Chhi'mèd Künzang创建,作为实施存储网络证明工作的扩展。在其证明构造中,存储网络使用SNARK,这是一种用于证明知识的高效、加密安全的机制。“ZK”(零知识)虽然不是SNARKs的必要部分,但意味着证明者可以在不透露任何关于被证明内容的信息的情况下生成证明。存储网络将SNARK用于复制证明(PoRep)和时空证明(PoSt),它们是网络所依赖的核心加密协议。存储网络证明要求我们将上一代的SNARK扩展到其极限——同时也让我们去寻找、认识和发现下一代。


02走进Lurk


与大多数zk-SNARK创作语言不同,Lurk是图灵完备的,因此可以提出和证明任意计算声明(受资源限制)。因为Lurk是一个Lisp,它的代码就是Lurk数据,任何Lurk数据都可以直接作为Lurk程序求值。Lurk使用SNARK友好的Poseidon哈希构造复合数据,因此它的数据自然是内容可寻址的。
Lurk目前支持多个后端证明系统,特别是带有SnarkPack + 和Nova的Groth16,并支持许多关键功能:
 

可验证的计算

简洁的证明

零知识

图灵完备性

内容可寻址数据的任意遍历

高阶函数(例如,作为计算的公共输入的函数,并有证明)

用于与星际文件系统和IPLD自然集成的内容可寻址数据

03Luck和存储网络


Lurk可以通过多种方式支持存储网络协议的开发。例如,Lurk与虚拟机 (FVM)的集成将支持在存储网络区块链上验证Lurk程序。这将为存储网络智能合约(或参与者)提供对特定于应用程序的零知识可证明计算的一级本地访问。参与者可对存储在网络中的数据进行代理、协调和激励长期运行的Lurk作业。此外,它将支持证明多个来源的公共和私人数据,包括私人存储或链本身。


在一个较长的时间框架内,Lurk将使存储网络的分层共识得到改善。分层共识是一个横向扩展区块链网络的框架,增加其吞吐量和灵活性。


在分层共识中,一个用户子集可以产生具有独立状态和共识算法的新子网,同时保持与系统中任何其他子网无缝互动的能力。子网通过定期将子网的状态证明提交给父网,来利用其父链的安全性。这确保了最新的全球共识,并将消息传播到层次结构中的其他子网。在目前分层共识的实现中,子网证明的验证需要完全访问该子网的状态。Lurk可以通过建立子网中执行状态变化的可自我验证的证明来完全消除这种依赖性,这将提高系统的可扩展性和灵活性。


04Lurk生态系统中的其他关键参与者


Lurk生态系统包括Protocol Labs和存储网络Foundation支持的研究人员和开发团队。
哈佛SEAS计算机科学助理教授Nada Amin正致力于将Lurk的Lisp实现转变为可用且自举的编程系统。关于Lurk,她说,“我发现创建了一个通用电路的项目,该项目实现了一个用于递归零知识证明的Lisp,因为它是一个优雅的Lisp映射,适合zk-SNARKs(例如,用于cons的hash-cons)并且具有zk-SNARKs民主化的潜力。”
Glow是一种开发中的编程语言,其与Lurk的集成由基金会资助,其研究人员和开发人员正在开发一种用于构建非中心化应用程序 (DApps) 的简单领域特定语言。"通常情况下,一些Glow代码在链外执行(即由DApp的用户执行),一些在链上执行(即由共享共识执行),"开发Glow的公司Mutual Knowledge Systems的总裁François-René Rideau解释。"通过将Glow代码编译到Lurk,我们可以在链外建立证明,并仅使用共识进行验证,从而降低GAS费用,增加隐私,并提高用Glow编写的DApps的安全性和可扩展性。"


Yatima也是由基金会资助的,是一种依赖类型的函数式编程语言和定理验证器,用Rust实现,具有子结构类型、元编程和通过星际文件系统的内容寻址。Yatima的AST使用IPLD格式进行编码,这使得Yatima程序可以很容易地在星际文件系统网络上共享,存储在网络中,并在任何WASM平台上进行确定性评估,包括在网络上,以及在区块链运行时。


Yatima正在与Lurk合作,支持对任意的编译计算进行零知识验证。形式化证明具有表达力,但验证起来可能很昂贵。通过将这些形式证明的验证器编译到Lurk,从而编译到zk-SNARKs,Yatima可以实现形式证明的恒定时间和恒定空间验证。


凭借才华横溢的研究人员和工程师团队,以及不断壮大的贡献者生态系统,我们对Lurk 的未来充满信息。

猜你喜欢

转载自blog.csdn.net/weixin_57995426/article/details/124489008