风险提示:请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识。
2022-11-25 20:57

深度对话 Succinct:构建 SNARK 证明跨链协议的意义与挑战

本周,Gauntlet 创始人 Tarun Chitra 以及 Zero Knowledge 播客主持人 Anna Rose 和来自 Succinct Labs 的 Uma Roy 以及 John Guibas 进行了一场对话,他们讨论了 Succinct 的目标,即通过基于 SNARK 的轻客户端实现无需信任的区块链通信,这有点类似于 Cosmos 的 IBC ,但是在以太坊的环境中。此外,他们还讨论了相关的挑战,包括电路的安全隐患与形式化验证,以及 SNARK 证明跨链协议对以太坊 Rollup 以及其他 L1 的意义。

以下是这期播客的精彩对话整理,推荐听一下完整的播客:https://zeroknowledge.fm/255-2/。

图片来源:由无界版图AI工具生成


Succinct 是什么?为什么它不是 ZK 的


Anna Rose :关于 Succinct 是什么,我曾经试着称它为 ZK 跨链桥,而你很快就纠正了我,所以我想听听你们对 Succinct 的看法,它在做什么,实际上属于什么类型?

Uma Roy:是的,我们正在构建的是区块链信任最小化的互操作性层,这包括了以太坊以及其他区块链,以便能够以原生的方式相互通信,而我们来完成它的工具是 Succinct Non-interactive proofs ,然后我认为 ZK 在 Twitter 上已经被指代了这些简洁证明,所以人们将它们称为 ZK 证明或 zk-SNARKs。

Anna Rose :有时只有 SNARKs,而不是 ZK 的。

Uma Roy:没错,确实是这样,所以我认为,使用 zk-SNARK 你可以实现两件事,ZK 的零知识部分让你可以将输入隐藏到你正在证明的函数中,而简洁部分为你提供可扩展性。所以简洁性让你有这样的简洁证明,证明一些计算已经产生了一个特定的答案,而我们正在使用简洁性属性来扩展共识的验证。所以,简单来说,如果我们有一个源链和一个目标链,它们正在尝试通信,我们将在目标链的执行层验证源链的共识,然后一旦你可以在执行层验证源链的共识,那么你就可以访问区块头。

一旦你访问了区块头,你就可以在目标链的上下文中证明源链上发生的任何事情,并采取相应的行动,反之亦然。你可以传递任意消息,你可以构建一个代币跨链桥,你可以通过此通信做任何你想做的事情。但是这里面没有 ZK ,就像我们正在使用简洁性来扩展这种昂贵的验证共识计算,这就是为什么这家公司叫 Succinct。你知道,我看了今天所有的 ZK 公司,它们的名字里都带有 ZK 。

Anna Rose :以字母 ZK 开头,是啊,就像我做的那样。

Tarun Chitra:在 crypto 当中,虽然我很欣赏分叉一切,但大量相同的名字,使得我觉得 ZK 就像进入熊市一样。

Anna Rose:开始有这种感觉了。好吧,我只是想说明一下,当我开始用 ZK 命名时,并没有那么多,只是作为参考。

Uma Roy:你是 OG 。

Anna Rose:我完全同意。现在有一些称为 ZK 的项目,实际上并不是 ZK 的。

Tarun Chitra:但这是这个概念的成功。就像一个概念在被复制时,它就已经成功了。你知道,模仿是奉承的一种形式。


用 SNARK 证明实现轻客户端相互通信


Anna Rose : 是这样的。Uma,我想回到你所说的,因为就像你刚才描述的那样,当你谈论那个证明并且它很简洁时,你是在谈论轻客户端吗?就像你在谈论两个不同网络上的两个轻客户端在相互通信?

Uma Roy:是的,正是这个想法,它与 IBC 的概念非常相似,也就是通过轻客户端实现互操作性,然后我们让轻客户端对以太坊等昂贵的区块链足够高效。

Anna Rose:很酷,在这里你们没有使用任何经济学游戏,所以它并不是 optimistic 的,它是纯粹密码学的,但是为什么它不同于……我大概知道答案,但是 ZK-rollups 做的事和你们正在做的一样吗?

Uma Roy:是的,ZK-rollups 正在使用简洁性属性来扩展执行。所以,在一个 ZK-rollup 中,你证明我有世界的一些状态,然后我应用了一堆事务,现在这是世界的新状态,证明只是证明我正确地处理了事务。我不会随机送人、随机的币之类的东西。所以我们有点使用相似的属性来进行不同的计算。

Anna Rose:那你们是从哪里开始的?比如你们有两条链在尝试做这个事了?那其他任何网络呢?我有点好奇这些客户端实际上必须如何定制。

John Guibas:是的,所以现在我们所拥有的是,我们把所有的时间都花在了为以太坊工作的共识想法上。特别是现在我们拥有的是一个定制电路,它证明 512 个以太坊验证器的随机子集已经在区块头上签名,基本上这允许你做的是,你可以在任何其他执行环境中验证这些证明。这可以是 Solana,可以是 Avalanche,甚至可能是你的笔记本电脑。这让我们基本上可以信任最小化对以太坊状态的访问,因为我们所做的本质上是运行一个轻客户端。所以现在我们拥有的是一个从以太坊到任何其他链的单向跨链桥。但我们也在尝试介入其他生态系统或其他共识协议(例如Tendermint),把这两者结合起来,就会形成一个双向跨链桥。

Anna Rose:当你说它是单向的时,这种情况下轻客户端部署在哪里?

John Guibas:是的,所以基本上我们有一个智能合约,我们可以部署在我们想要运行轻客户端的任何链上。你基本上想在接收消息的链上运行轻客户端,因为轻客户端本质上跟踪区块头的账本,而区块头本质上允许你在任何时间点访问状态。

Anna Rose:这些网络必须是 EVM 的吗?

John Guibas :我们目前拥有的合约是 EVM 的,但理论上我们可以用任何其他语言对其进行编码,包括 Move 或 Solana 以及 Cosmos 使用的任何语言。

Anna Rose:好的,但在以前,是什么阻止了人们这样做呢?这是一个非常难的问题吗? 有什么改变允许这样做吗?

John Guibas :我认为很多人实际上都在考虑这个问题,就像我认为 Celo 的 Kobi 以及 Georges 正在努力尝试创建某种轻客户端跨链桥一样。我认为 Cosmos 的人在做这件事。

Anna Rose:是 Plumo 吗?

Uma Roy:是的,它叫 Plumo 。
John Guibas:是的,我认为另一件事是,显然 Cosmos 的人认为这种轻客户端跨链桥是一个非常好的主意。但我认为还有一件事是人们普遍没有意识到的,就像这些区块链,就像分布式状态机一样,已经有了一种算法来商定链的状态。所以实际上,如果你真的想构建尽可能安全的跨链桥,我会争辩说,某种轻客户端的方法或者某种你在另一个区块链中验证共识算法本身的方法,真的是你在安全方面所能得到的最好的方法。如果你把这两件事结合起来,很明显,也许你可以做的就是验证 SNARK 内部任何共识算法,然后在链上验证。而且我认为我和 Uma 处在一个完美的时刻,到达了 SNARKs 变得更有用的完美时刻。这个想法一直在流传,我们基本上能够将这两件事放在一起创造,我认为这基本上是简洁的。
Uma Roy:你问这是否很难做到,我想是的,在今年夏天, John 和我为了让整个系统正常工作而经历的痛苦是肯定存在的,这确实很难,就像你提到的,每条链都不容易扩展,每条链都有不同的共识机制,你必须为它的共识实施一个 SNARK 。
John Guibas:当我和 Uma,Georges 以及 Kobi 这样的人在 Twitter 上讨论我们的以太坊轻客户端时,一些人简直不敢相信,因为他们无法相信验证 BLS 签名之类的证明时间,也就是以太坊使用的椭圆曲线可以在合理的时间内在 SNARK 中得到验证。所以我想就在六个月前,很多人都不认为这个想法是可行的。

Anna Rose:是否有一些工作正在发生,例如库或创新?是不是因为有足够多的人进入这个领域,工程才变得更有效率?比如你们是怎么做到的?

Uma Roy:是的,我认为有几件事。因此,作为证明这一点的一部分,就像这些 BLS 签名一样,你需要进行 non-native field arithmetic 运算,比如 SNARK 使用的椭圆曲线和证明签名的椭圆曲线是不同的,并且,老实说,在 SNARK 里面进行 non-native field arithmetic 运算真的很难看,我想很多人都反对做这样的事情。而且我认为当你真正做到这一点,并且你实施了一系列优化时,它实际上变得非常有可能获得一个现实的证明时间。我们实际上有一个端到端的工作 demo,我们正在使用测试网来进行测试,所以是 Goerli 测试网到 Gnosis 链,但实际上它可以从以太坊到任何其他链,而且你知道它的性能相当好,你不必等待两三个小时来转移你的资产,可能大约是以太坊终结性延迟的几分钟。


关于跨链桥设计的权衡取舍


Anna Rose :这实际上是我的疑问,关于跨链桥,总是会有一些权衡,比如说更快或更便宜,那你们所建造的东西是否存在权衡,因为你能够对它进行大量优化,所以它实际上与其他解决方案是一样的吗?

Uma Roy:是的,所以与 optimistic 解决方案相比,它实际上要快得多,因为在 optimistic 的解决方案中,你必须等待挑战期,任何人都可以发布欺诈证明。对我们来说,我们只是发布 zk-SNARK 有效性证明。所以我们只需要等待生成证明所需的时间,我们非常有信心可以将其降低到相对可忽略不计的程度,然后我们只需将证明发布到链上,它就会得到验证并且速度会非常快。所以我认为与 optimistic 的方法相比,我有点 SNARK maxi,这甚至适用于我对 Rollup 的看法,我认为 zkRollup 实际上是比 optimistic rollup 更好的解决方案,因为你不必等待 7 天的挑战期。我认为基于证明的互操作性协议也很相似,如果它在技术上是可行的,它就会更好,因为你不必等待这个挑战期。

Anna Rose:那它以某种方式会更贵吗?

Uma Roy:你必须验证证明,所以这可能会更贵一些,但辅助证明的全部意义在于低验证成本。稍微会贵一些,但也不会贵多少。

Anna Rose:酷。你们谈到了目前已经在 Goerli 测试网和 Gnosis 链之间构建的东西,告诉我关于这个项目的情况,比如那是怎么发生的,你可以用它来做什么?你们是在为它测试一个用例,还是先建立连接?

John Guibas:是的,实际上当我们第一次开始这个研究项目时,比如潜在地构建一个支持 zk-SNARK 的客户端,我们实际上与 Gnosis 的人密切地进行了合作,基本上构建了这项技术,因为在他们的情况下,Gnosis 链实际上实现了与以太坊共识完全相同的算法。

因此,如果我们能够为以太坊完成这个 ZK 轻客户端,实际上这将在以太坊和 Gnosis 链之间建立一个信任最小化的双向任意消息传递跨链桥,我想 Martin 可能在你的播客上谈到过这个。我们从 Gnosis DAO 那里获得了一些资金,这实际上是我们研究的资金来源。但基本上我们首先从电路开始,我们让它工作,我们编写合约,基本上在过去的五个月左右,我们一直在系统上工作,例如演示从 Goerli 向 Gnosis 链发送代币的过程。

Anna Rose:为什么是 Gnosis? 你们能在别的链上做这个吗?比如 Polygon ?就像任何等效的 EVM 链一样, Gnosis 有什么特别之处,这使它成为一个很好的起点?

Uma Roy:正如 John 提到的,选择 Gnosis 链的好处在于,他们也使用了以太坊权益证明(PoS)共识机制。

Anna Rose:好的。

Uma Roy:今天,我们可以将我们的以太坊轻客户端部署到任何 EVM 链,比如 Avalanche、Polygon、Gnosis 等等,还有所有的 rollup ,你得到的是从以太坊到另一条链的单向消息传递,实际上我认为这也很有趣,你可以做很多事情。举个例子,很多 dapp 的治理都在以太坊上,因为它们的治理代币存在于以太坊上,而且它永远不会离开以太坊。

你在以太坊上进行治理,然后你用它来传递消息来控制你在另一条链上的部署,所以这就像一个非常完美的单向消息传递用例。你还可以像其他类型的用例一样想象很久前存在的名为 BTC 中继的东西,它实际上使用这种单向消息传递概念,以某种方式在以太坊和比特币之间进行信任最小化交换。

所以我认为单向消息传递实际上已经非常强大了,就像治理用例一样,我敢肯定还有一些我们甚至没有想到的非常酷的用例。当然,一旦我们开始为Tendermint 证明共识,那么我们就可以开始将消息从 Cosmos 连接到以太坊,或者将 Cosmos 生态连接到以太坊等等。

Tarun Chitra:就以太坊共识的电路复杂度而言,你们的最终电路规模是怎样的?比如有多少个门,或大致有多大,然后你认为 Tendermint 要实现的话会有多大?

John Guibas:对于我们的以太坊电路,我认为它大约有 2000 万约束,这大概相当于大约 30 秒的批准时间,如果你使用 GPU,比如一台强大的机器,甚至可能下降更多的时间。所以在证明时间方面,这实际上是非常快的。我认为对于以太坊来说,这是非常聪明的,因为以太坊有如此多的验证器,他们需要一种有效的方法来检查签名,而实际检查 400,000 个签名是完全不切实际的,所以他们使用称为 BLS 的签名方案,它具有非常容易聚合签名的属性。

但不幸的是,在 Tendermint 中,他们使用的是名为 EdDSA 的签名方案,而它没有这种良好的聚合属性。因此,尽管 Tendermint 倾向于使用更少的验证器来保护网络,但 Tendermint 电路的电路规模实际上很可能要大得多。如果在我们现在使用的同一个证明系统中这样做,我们估计将有大约一亿约束,这在 CPU 上大概需要 50 秒的时间,如果在 GPU 上就会少得多。

当然就复杂性而言,从实现的角度来看,Tendermint 实际上比我们为以太坊所做的要容易得多,这涉及到更多的技术细节,BLS 在概念上要更难实现。

Anna Rose:听起来,你们就像 IBC ?

John Guibas:是的,这基本上是我们在 SNARK 内部重新实现 IBC,但这一次实际上是应用到以太坊。

Anna Rose:是的。

John Guibas:如果你将它与我们当前现有的技术(即 Eth 轻客户端)相结合,你实际上可以拥有从以太坊到任何 Cosmos 应用链的双向跨链桥,它基本上可以说是一个信任最小化的跨链桥解决方案,每个 Cosmos 应用都可以使用。

Anna Rose:我的意思是,如果我们在以太坊上有 IBC,那么我们就可以直接链接到 Cosmos 上的所有东西。你明白我的意思吗? 我知道有一个 ZK-IBC 团队在做这件事,我还没有和他们谈过话,所以我不知道这里存在什么挑战,但它确实能帮我描绘出你们在做什么。

Anna Rose :我只是想确认一下。你们说了很多关于信息传递的事,那人们可以传递代币吗?我想如果他们可以锁定东西,但是我知道你在这里没有使用跨链桥这个词,但是听起来很多部分像是我之前说过的跨链桥层,就像 Axler 。

Uma Roy:是的,当你传递消息时,你可以传递任何状态。所以我们的 demo 演示实际上就像以太坊和 Gnosis 之间的一座代币跨链桥。我们拥有的是这个跨链桥合约,你可以在其中存入你的代币,你想传递代币,然后它们被锁定,然后跨链桥合约将通过任意消息桥传递一条消息,说 Uma 将这些代币锁定在以太坊上,给她相应的 Gnosis 代币,然后执行消息将调用提款合约,这将为你提供代币。因此,你可以通过任意消息传递来构建任何你想要的东西。


潜在的安全性隐患


Anna Rose:你觉得用这种方式建立它是否是安全的,我只是好奇它能否避免我们最近看到的跨链桥黑客攻击。这里有什么不同吗?因为我一直认为 IBC 似乎比我们看到的跨链桥更安全,至少截至目前它还没有被黑过。

John Guibas :我认为可能会存在实施细节方面的漏洞,但我认为这非常接近跨链桥的最终设计,没有比这更好的了,在这方面,它可能是理论上最安全的。我认为人们可能会担心智能合约漏洞或 ZK 电路漏洞。但实际上我会争辩说,任何密码学系统都存在实施风险,而这只是我们必须管理的事情,我们可以随着时间的推移努力解决这些问题。

Tarun Chitra:是的,就像 IBC 一样,它也花了很长时间来经过形式化验证。当你既要考虑 SNARK 验证的表层,比如 SNARK 中的漏洞,又要考虑网络层的漏洞,比如序列化层等诸如此类的时候,你会怎么考虑处理验证和测试呢?事实上,就像很多有争议的跨链桥黑客事件,不仅仅是丢失了密钥,有些是底层的东西搞砸了。所以我想知道你是如何看待整个领域的,你知道,就像实际验证和测试电路一样,很明显它是非常新生的。

John Guibas :是的,作为一个团队,我们真的很关心这个,实际上,尽管我们今天可使用更先进的证明系统,但我们还是决定先使用 Groth16 ,这是其中一个经过最严格测试的验证系统,我们还想使用电路中存在的经过最严格测试的工具堆栈之一,因为从实用角度来讲,这些是唯一真正经受过实战考验的系统。但是我完全同意你的观点,这里有很多风险,我认为我们计划做的一件事,基本上就是对此要非常务实。例如,任何 Merkle 证明库,希望我们可以像 optimism 的那样使用它,它也已经投入生产很长时间了,我认为这些只是我们作为一个团队可以做出的选择,以降低这些风险.

Tarun Chitra:是的。实际上,有一个问题可能有点离题,但是就像在生产中是否存在过类似溢出、下溢类型的漏洞和电路? 也许也不能叫生产,我的意思是,很明显会有其他一些东西会造成通胀漏洞,你们听说过任何很酷的漏洞吗?我从来没有听说过,但显然会有一些。

Uma Roy:是的,我知道 Tornado Cash 不久前出现了一个漏洞,但那是一个缺失约束。我认为 Kobe 实际上参与发现了那个漏洞,但那是一段时间以前的事,那不是什么复杂的缓冲区溢出之类的事,就像少了一样简单的东西。我个人还没有听说过这样的漏洞,不过,我相信它确实会存在。

Tarun Chitra:好的,很酷。我认为显然你可以用 SNARKs 做一些惊人的事情,但我觉得,如果像 Kobe 这样的三个人真的发现了 ZK 电路中的一个漏洞,这里面肯定有很多,我不是想吓唬人,但确实感觉这会是巨大的攻击面。

Uma Roy:是的,攻击面很大,但我要说的是,任何系统都有很大的攻击面。另外,审计 SNARK 也很困难。这就是为什么我们决定使用已被验证过的证明系统,这样你就可以更有信心。

尽管有很多新的令人兴奋的证明系统,它们可能会让我们的表现更好,但从安全的角度来看,做一些旧的东西似乎更简单,也许这不是最有效的或性能最好的,但是人们会更看重安全属性,我认为这是我们喜欢的思考方式。

Tarun Chitra:不幸的是,跨链桥确实是有史以来最大的漏洞奖励。

Uma Roy:是的。

Anna Rose :John,你和 Uma 都提到了形式化验证工作,你能跟我们分享一下情况吗,这是我第一次听说这件事,是谁在做这件事,或者有什么团体在尝试做这件事?

Uma Roy:有一家叫 Paradise 的审计公司,我想他们正在尝试对电路进行形式化验证,他们已经成功地对一些 BigInt 库进行了形式化验证,这些库用于我们正在使用的这些电路中的椭圆曲线运算,这很好。

Anna Rose:酷。

Uma Roy :我认为不同的人对形式化验证有不同的想法。老实说,我对此没有很强烈的意见,但我知道其他人也有。

Anna Rose :也许这不是唯一的检查方式,但它也是一种很好的检查方式。我想回到关于 Succinct 公司的问题,你们的团队有多大了?你们到底处于什么阶段?我们能够期待什么?

Uma Roy:当我们在今年 5 月下旬开始研究它时,只有我和 John 两个人,我们在整个夏天一起完成了原型,老实说,电路只是其中的一部分,我们必须构建 operator、中继器、智能合约、前端,现在我们正在努力壮大团队,寻找来自各个领域的人才。我们现在正在进行审计,我们正在与 Gnosis 的人密切合作,建立一座以太坊和 Gnosis 之间的双向信任最小化跨链桥,这对他们的链来说很好,然后我们也在和其他一些 dapp 密切合作,去探索一些单向用例,比如治理用例以及其他一些用例。然后,我们团队中的其他人正在努力为其他链做共识证明。所以我认为 Cosmos 生态对我们来说真的很有趣,尤其是像 IBC 对互操作性的愿景,是的,我们也想努力让它发挥作用。这就是公司目前处于的阶段,我们最近筹集了一些资金,正在雇佣人们来从事所有这些工作。

Anna Rose:酷。那对于想加入 ZK 领域,并建造一些东西的人,你们有什么建议吗?

John Guibas :实际上,就像我和 Uma 一样,我们真的很努力地在 ZK 中思考一些很酷的想法,我认为有很多很酷的想法,但其中很多都有点太超前了。我认为整个 ZK 身份空间真的非常非常酷,但正如 Uma 所说,感觉更像是一个产品问题,我认为这需要解决。不过我认为,如果人们对 ZK 感兴趣,这是一个非常好的时机。它还处于早期阶段,规模还很小,我认为可能会有很多有趣的应用,人们甚至没有想到这是可能的。所以我强烈建议任何对此感兴趣的人去进行探索。
Uma Roy:是的,我认为就应该深入参与进去,尝试一些代码,不要害怕,即使没有很好的文档。


ZK 跨链桥对 Rollup 意味着什么?


Tarun Chitra:酷。如果要让你称赞一个非 ZK 跨链桥,随便选一个,你会对它们说什么好话?

Uma Roy:我认为还有一些跨链桥,比如我认为 optimistic 的解决方案实际上是非常有趣的,但你知道,我是一个 SNARK maxi,有时,你可能会喜欢更快的跨链桥或类似的东西,所有这些事情,总是需要权衡取舍。

Tarun Chitra:好的,那是你能说的最含蓄的好话。那你认为 ZK 跨链桥对 Rollup 意味着什么?当你真正信任这些桥的时候,世界上的 rollup 会变得更少一些吗?或者,你知道,它们应该是互补的,但在某种意义上,它们实际上是替代品?

John Guibas:是的,我认为它提供了一个非常有趣的替代方案,如果你是一个 dapp,你想要高的可扩展性,你可以不用构建一个 rollup,你可以构建一个 Cosmos 应用链,或者你自己的应用链,然后用一个基于证明的跨链桥连接到以太坊。我认为这里有一件有趣的事情,我知道 Cosmos 的人已经考虑这个问题有一段时间了,我认为来自 EigenLayer 的 Sreeram 最近写了一篇关于在不同的 L1 运行轻客户端以获得网状安全性优势的论文。因此,从某种程度上来说,这些基于证明的轻客户端,既可以为以太坊的未来提供支持,也可以让网状安全性成为未来。我不太确定。

Tarun Chitra:是的。我想对于听众来说,网状安全性是让你有很多链时,它们实际上能够将安全性整合在一起。你知道,现在当你进行跨链时,你的网络安全取决于最弱的一环,它取决于你经过的所有区块链的最小安全性。Cosmos 的人总是对坏的错误的形式主义有正确的想法,但他们没有把它正式化,而 Sreeram 的这篇新论文,非常擅于将正确的直觉形式化。而且 rollup 也在朝着这个方向发展,就像所有以太坊 EVM rollup 似乎在说,嘿,我们也会有应用链,所以我认为这是不可避免的。

Uma Roy:是啊,尤其是如果你不想要一个中心化排序器的话。

Tarun Chitra:不仅仅是实现另一个 L1 。

Uma Roy:是的。

Anna Rose :我想说谢谢 Uma 和 John 来参加节目,并和我们分享关于 Succinct 的信息,非常感谢。

本文链接:https://www.defidaonews.com/article/6790224
转载请注明文章出处

下载
分享
收藏
阅读
上一篇
下一篇