Leo 编程语言简介

本文由 ZK.Work 翻译整理,原文链接:https://www.aleo.org/post/leo-programming-language

Aleo 已经组建了一个强大的编译器团队来构建一个雄心勃勃的电路编译器语言。这项工作的核心目标是允许开发人员以尽可能简单的方式在其应用程序中使用零知识证明 — — 它通过最小化密码知识要求来实现这一点。那么 Leo 究竟是如何做到这一点的,使用它之前需要知道些什么呢?让我们来了解一下。

关键概念

首先,让我们简要地回顾一下什么是零知识证明。它是指一些数据证明我们正确地运行了计算;例如,我们使用私钥向某人发送 NFT,或者我们有一些属性可以让我们更新应用程序的状态。此外,如果我们愿意,它还允许我们对某些数据保密;例如,我们不必透露我们用来发送 NFT 的私钥;并且证明数据也远小于整个计算量,因此需要更少的存储空间(在链上)并且更快地通信。

这是一个非常抽象的想法,所以如果我们将它与我们现在在整个行业中所看到的可扩展性问题联系起来,它可能会更加相关。看看不同的链在每秒获得足够交易量方面遇到的困难,以及要求扩展解决方案以扩大链上游戏可能性的呼声。状态分片等工具很有帮助,但我们需要添加更多可以支持这些用例的增长(以及我们甚至还不知道的未来用例)。此外,零知识证明还允许我们隐藏不想透露的数据;当然,这对于其他扩展解决方案来说是不可能的。

现在,你如何制作 ZKP?嗯,这是由一个证明系统和一种称为 ZK 电路的东西为我们制作的 — — 它实际上是我们必须构建的电路,这就是 Leo 将为您做的!将 ZK 电路转化为证明的库已经存在,目前人们一直在直接使用这些库。

想想你现在正在使用的设备,它里面有做所有这些计算的电路,对吧?那么,这些电路不就是带有 0 和 1 的与非门吗?ZK 电路非常相似,除了它们不是由与非门组成,而是由加法和乘法门组成,且有 0 和 p 之间的数字,而非0 和1,其中 p 是一个非常大的质数。您是否开始看到我们可以在 ZK 电路中进行与在实际电路中一样多的计算?

现在我们来到了问题的症结所在,Aleo 投入如此多的资金来构建电路编译器Leo 的原因 — — 将高级应用程序创意转化为 ZK 电路非常缓慢,因为您必须手动将所有加法和乘法门放在一起表示应该代表您应用程序的计算。我的意思是,如果你必须将“与非门”放在一起来构建计算,你编写普通的应用程序需要多长时间……听起来并不有趣,对吧?

嗯,这就是 ZK 电路创建的当前状态。您基本上必须在电路构建级别工作,因为还没有足够的基础设施来(过滤)自动化低级别、重复的部分。而实际上它甚至比这更糟糕。我们不仅还没有这些自动化,而且甚至开始构建 ZK电路都需要大量的密码学知识。在大多数情况下,这种进入障碍需要人们几个月的全日制学习才能克服。听起来不太适合产品开发。

Leo 概述

Leo是一种受Rust启发的静态类型编程语言,专为编写私有应用程序而构建。它旨在让开发人员直观地在 Aleo 区块链上构建,为私有、去中心化的生态系统奠定基础。它是第一个为通用零知识应用程序引入测试框架、包注册表、导入解析器、远程编译器和定理生成器的已知编程语言。

Leo 旨在消除尽可能多的密码知识要求。此外,它的设计让人想起 Javascript 和 Typescript,因此 JS/TS 开发人员大军(约1200万,使加密开发人员数量相形见绌)将有一个非常简单的学习曲线。

假设您编写了一个 Leo 程序,就像上图中的冒泡排序一样,当您运行程序时,Leo 实际上做了什么?

它获取您的代码,构建表示您想要运行的计算的证明电路,用您想要的值填充输入线,运行电路,生成证明/验证密钥,然后将所有相关数据组合到 ZKP中。例如,您可以在下图中的输入数据上运行它。

但是我们说过,使用 Leo 根本不需要太多的密码学知识,那么这些证明创建的东西是什么?总结是 Leo 输出了你正确运行计算的证明,这意味着如果你要在某个数组上运行上述电路并将输出数组与证明一起呈现,任何观察者都可以确认该数组实际上是按检查证明而不是数组。

现在,如果数组只包含 10 个项目,这听起来可能并不多,但是当我们开始使用具有数百万个项目和更复杂计算的数据结构时,检查证明(总是相同的大小!)开始传达更多的价值。但这不是一篇关于如何从 ZKP 中获取价值的文章,这篇文章是为了帮助开发人员学习 Leo,以便他们自己制作有价值的应用程序。

Leo 不仅为您制作电路并从中生成证明。它包含有助于尽可能减少开发人员时间的功能。测试框架、包注册表和导入解析器一起工作,为开发人员节省了大量时间,确保轻松导入外部功能,并且代码实际上按照预期执行。

当您构建一个核心目标是允许开发私有的可扩展应用程序的生态系统时,促进增长的最佳方法之一是尽可能多地消除应用程序开发中的摩擦。这就是Leo 正在帮助实现的目标。

如果您想了解更多信息,请查看 Playground 或开发者文档。

关于 Aleo

Aleo 是第一个用于构建完全私有、可扩展且具有成本效益的应用程序的开发人员平台。使用零知识密码学,Aleo 将智能合约执行移至链下,以实现各种去中心化应用程序,这些应用程序既完全私有又可以扩展到每秒数千笔交易。建立在开放的公共区块链上;Aleo 带来了以太坊的所有灵活性,但具有更具可扩展性的架构,矿工无需重新运行每笔交易,只需验证其正确性即可。

关于 ZK.Work

ZK.Work 是全球领先的零知识证明挖矿平台,致力于寻找最有前途并处于起步阶段的零知识证明项目。在 Aleo Testnet 2 中,ZK.Work 排名第二,目前正深度参与Aleo Testnet 3,暂列排名榜第一;此外,ZK.Work Ironfish 挖矿平台上线 GPU 挖矿后,算力超过 CPU 挖矿十倍。

未来,ZK.Work 团队将持续对软件和硬件进行优化,努力为用户提供最优质的产品和服务。

更多信息: WebsiteTwitterDiscordMedium

--

--