Mina 白板会议 TL;DR

  • King
  • 更新于 2024-11-27 23:15
  • 阅读 833

深入探讨了允许 Mina 分发数据和并行化证明的技术细节

如果您没有时间观看 2.5 小时的技术视频?我们不怪你;它的长度与大片相同

TL;DR 的 TL;DR

Mina 在区块链领域是独一无二的。它是唯一一个自上而下使用递归零知识证明构建的区块链。这意味着我们不必重播链的整个历史,而只需检查区块链不同部分的证明。多亏了递归,它不再是“证明”;而是“证明”。 Mina 的“一切证明”将之前的所有证明结合在一起,在一个证明中证明了链上曾经发生的一切,包括区块生产、共识、交易和 zkApps。这种独特的架构意味着任何设备上的任何人都可以验证该链。

请继续阅读,了解 Mina 如何在无需权衡去中心化的情况下实现无限扩展。本博客深入探讨了允许 Mina 分发数据和并行化证明的技术细节,同时不会增加网络验证的资源需求。这是一个新的范例。

递归零知识证明 

零知识证明(ZKP)是一种在不透露任何细节的情况下证明某事物(任何计算)有效的方法。现在,从表面上看,它们听起来并不是很有趣,但它们的功能却让我大吃一惊!

区块链可以分解为组件,本质上是计算,包括区块生产、共识、交易和其他一切!由于它们都只是计算,因此每个元素都可以使用 ZKP 来证明。

为了了解这在区块链架构环境中的重要性,我们可以将其与以太坊进行比较。所有区块链数据都必须复制到以太坊上,因为网络上的新节点需要链的历史记录来验证网络。使用 Mina,人们只需要检查零知识证明,而不需要整个链的历史记录(这会导致巨大的可扩展性和中心化问题)。

Mina 更进一步,使用递归将这些 ZKP 组合起来,将区块链的不同部分证明为一个单一的证明,即 Mina 的“一切证明”。从某种意义上说,Mina 只是一个大的汇总。 Mina 上的交易会汇总到 Mina 的状态转换机 (STM) 证明中,然后汇总到最终的区块链证明中。

一旦所有内容都汇总到最终的区块链证明中,我们需要使用递归将旧的区块链证明与新的区块链证明合并。这个递归是如何工作的? Mina 没有在每次创建新块时重新验证整个块序列,而是稍微调整了证明语句。相反,我们证明前一个区块序列有一个有效的证明,并且有一个新的额外的证明也是有效的。换句话说,每当创建一个新块并在整个网络中广播时,我们都会扩展证明以支持这个附加块。

ZKP 通过证明计算的正确性来提高区块链的效率,这样其他人就不必重做工作。这是对大多数区块链运作方式的重大改进。 如果您想了解更多信息,请观看联合创始人 Evan 谈论 ZKP 的视频

同时证明一切!

现在我们已经了解了一些基础知识,我们将更深入地了解 Mina 的架构如何使其如此高效,以及为什么它被构建为无限可扩展的。上面我们简单说了,所有的交易都会汇总到STM中,然后再汇总到区块链证明中。但这是如何运作的呢?

在 Mina 上,因为我们使用零知识证明,所以我们必须首先证明交易,然后才能汇总。证明如此多的交易可能需要时间,我们希望共识尽可能轻量。我们还希望确保共识不会等待交易。我们如何解决这个问题? Mina 使用并行化。

简单来说,并行化涉及一次完成所有证明。然而,这有一个问题。请记住,我们的目标是最终得到一份交易证明以纳入 STM 证明。

proof-parallelization-diagram

想象一下我们有四笔交易需要证明(见上图)。我们可以毫无问题地接受这些交易并为每笔交易创建证据。然而,接下来我们需要将这四个证明结合起来。我们从前两项开始,将它们组合起来,创建一个新的证明来证明交易 1 和 2。然后,我们采用另外两项交易并创建一个证明来证明交易 3 和 4。最后,我们采用这两项交易并将它们组合起来,这样我们就得到了一个证明树中所有四个交易证明的证明。

上述模型的问题在于底部有四笔交易需要证明,中间有两笔交易,而顶部只有一笔交易。如果网络这样运行,网络节点的工作就会不一致。为了解决这个问题,我们通过让整个网络同时在许多树上工作来并行化工作。所有层都合并在一起,形成固定的工作队列,以保持最大量的并行工作,从而随着时间的推移不断使网络饱和。

所有这些层如何同时工作?我们利用网络的轻微延迟来帮助处理这个问题,并引入两个账本。

我们如何使用这两个账本?第一个分类账是区块生产者排序和提交交易的地方(例如,这将代表来自区块 A 的交易),第二个分类账是在几个区块之后验证交易的地方(因此这将代表来自区块 C 的交易)。

由于 Mina 独特的设计,证明只需几分钟,而不是几小时(很快就是几秒钟),因此并行化使我们能够创建一个超级高效的网络,而无需 Vitalik 在他臭名昭著的 zkEVM 博客中提到的所有权衡。

世界上第一个去中心化证明市场 —— Snarketplace

关于上述几点,我们还应该谈一件事:谁在网络上证明了所有这些计算?

在 ZK 领域,人们经常将去中心化证明市场视为一项挑战,因为 ZKP 的复杂性以及其他平台围绕可扩展性和去中心化所做的权衡。但对于 Mina 来说,这个问题已经解决了。 o1Labs 创建了世界上第一个去中心化证明市场,自 2021 年 Mina 主网启动以来一直在运行!

顾名思义,这就像一个市场,供人们使用递归为一组交易创建 ZKP。人们有经济动机向网络提供这项服务,因为区块生产者每个区块可以获得 720MINA 的报酬,并且他们必须在每个区块中包含这些 zkSNARK 证明。因此,区块生产者将为这项工作付费,或者有时会运行自己的 SNARK 工作人员,以确保他们拥有有效的 ZKP 用于区块生产。

观看 o1Labs 首席执行官 Brandon Kase 的《snarketplace 视频》。

无限可扩展的区块链

在讨论为什么 Mina 具有无限可扩展性之前,您应该了解 Big O 表示法,但不用担心 — 它比听起来更容易理解。

大 O 表示法 

大 O 表示法描述了操作的扩展方式。例如,O(n) 表示成本/时间与数据量成线性关系,而 O(1) 表示无论数据大小如何,成本/时间保持不变。

big-o-notation-mina-scale-o1

扩展以太坊与 Mina 

现在我们知道了大 O 表示法,让我们看看 Mina 与以太坊相比如何扩展。

mina-vs-ethereum-scaling-o1

正如您在上面所看到的,唯一会随着 Mina 的使用情况而变化的是帐户大小;其他一切都是不变的。

Mina 是世界上唯一具有如此规模的区块链。它可以无限扩展,无需任何去中心化权衡。

唯一与使用量相关的扩展是 Mina 上的帐户。这是迄今为止最有利的扩展方式。区块和交易的增长速度要快得多。为了让您了解这意味着什么,即使 Mina 拥有数千万个账户(Mina 目前拥有超过 300,000 个账户),全节点的总账本也只有几 GB。其他人仍然可以仅使用 22kb 的证明来验证网络!  Mina 与当今市场上的其他加密货币不同,它是面向未来的。 以太坊希望在其 10 年路线图上变得更像 Mina(下图)。 Mina 从第一天起就是这样建造的,并且在设计上从未妥协过。我们相信并坚持Mina的原则。

Twitter(嵌入推文) 

最强链条 + 更多

接下来我们就来深入了解一下Mina的共识机制。 Mina协议使用Cardano的Ouroboros共识机制,这是一种基于中本聪的权益证明(PoS)共识机制。传统上,基于中本聪的共识主要用于工作量证明 (PoW) 系统,因为在 PoW 设置中创建最长链的计算成本非常高,这意味着尝试此类攻击的经济性根本不值得。

另一方面,PoS 系统传统上使用拜占庭容错 (BFT) 系统,利用权益削减来激励人们在网络上作为诚实的参与者进行操作。然而,当使用 ZKP 时,BFT 不适合,因为你无法证明负数。换句话说,使用 ZKP 来证明不诚实的网络行为是不可能的。

那么,衔尾蛇是如何运作的呢? Ouroboros 的工作原理是继承中本聪共识的属性,主要是最长链规则,然后添加密度指标以帮助进一步识别最强的链。最强的链条,而不是最长的链条。

Mina 更进一步,将其用于简洁的设置。我们称之为衔尾蛇 Samisika。 o1Labs 的工程团队添加了最小窗口密度,它使用二进制选择规则。这基本上是一个聪明的数学技巧,可以让你根据最小窗口密度快速看出哪个块更强;没有任何歧义。每个人都可以轻松选择最强的链条。

另外,加入网络的新的完全共识节点请求最佳区块并不需要 51% 的网络诚实行事。他们只需要一位演员诚实地表演,因为人们可以很快识别出与其他演员相比,他是最好的。

zkApps 如何工作? 

我们已经讨论了 Mina 的内部运作方式。现在,我们将讨论 zkApps 如何融入 Mina 架构。

从前面的章节我们知道,交易证明会汇总到 STM 证明中,然后 STM 证明会汇总到区块证明中。 zkApps 在此基础上添加了另一层:zkApp 证明被汇总为交易证明。换句话说,zkApps 是 Mina 卷起状态的扩展。

diagram-showing-zkapps-proofs-rollingup-into-blockchain-proofs

但这是如何在链下运作的呢?

让 zkApps 能够在链外运行是一个相当大的挑战;突然,您遇到了严重的并发问题。想象一下一群人分别离线编辑同一个文字处理文档,然后他们都尝试同时将这些离线更改发送回服务器(例如 Google Docs)。不同的人所做的一些更改会发生冲突,因此您无法应用所有更改。这与区块链相同;我们希望链下执行来扩展链,但我们必须确保没有并发问题。

其他区块链在链上运行计算,其中所有网络节点都必须能够访问所有数据(如以太坊),从而使执行和排序能够在同一步骤中进行,但结果会遇到可扩展性、费用和可访问性方面的重大问题。

o1Labs 的工程团队与 Mina 一起设计了一种使用操作和化简器创建 zkApps 的更有效方法。这使得 Mina 的 zkApps 具有私有性、超级可扩展性和去中心化性,并且无需 Gas 或存储成本。人们可以在自己的设备上私下使用敏感或个人数据。

mina-vs-ethereum-chart

处理并发 

操作和减速器是 zkApp 中用于与 Mina 提供的去中心化排序进行交互的模式。通过使用操作和减速器模式,您可以恢复链外数据的排序。

它们允许您的 zkApp 将交易添加到列表中,以便稍后进行排序和处理。通过允许 Mina 区块链在减少之前将操作排序到列表中,您不会遇到与如果您只是让人们提交交易并希望他们所依赖的状态在交易完成之前不会改变一样的并发问题。添加到新块。

actions 和 reducer 的另一个有趣的属性是本地审查阻力,因为 actions 直接发布到 L1。其他连锁店也可以得到这个,但它不像 Mina 那样开箱即用。

一个 Mina 生态系统项目:如果您想进一步深入了解它们的工作原理,zkNoid 最近写了一篇关于 actions 和 reducer 的博客。

Mina —— 在自己的世界里!

Mina 是地球上唯一无需许可的分布式系统,堪称独一无二。

让我们解释一下。 

首先,我们来比较一下许可空间。

mina-a-decentralized-distributed-system

许可复制

示例:MySQL 和网页 

MySQL 是一个完全许可的数据库。中央实体授予您访问数据库的权限。

传统 MySQL 集群(不使用分片的集群)是复制的; MySQL 集群中的所有服务器都保存整个数据库的副本。要求所有服务器保存所有数据使得扩展网络变得更加困难和昂贵。

例如,如果 MySQL 数据库有 10,000 TB 的数据,那么在非分片 MySQL 集群中运行的每台服务器也需要拥有同样的 10,000 TB 数据。

许可分布式

示例:BigTable 和 Web 服务器

Web 服务器是许可分布式系统的一个很好的例子。他们仍然获得许可;然而,每个服务器只拥有一个片段,而不是要求每个服务器保存所有数据的副本。对于用户来说,这意味着您将经常查询不同的服务器以获取数据的不同部分。对于数据提供者来说,系统可以更有效地扩展,因为存储要求要低得多,因为他们只存储部分数据,并且数据是分布式的。

例如,如果 BigTable 有 10,000 TB 的数据,则每个服务器只能保存一部分数据(例如 10 TB)。这为您在扩展系统时提供了更大的灵活性和效率。

接下来,我们来看看无许可空间。进军区块链!

无需许可的复制

示例:以太坊(以及大多数区块链)

众所周知,以太坊是无需许可的。这是一个任何人都可以加入的去中心化协议,但以太坊使用复制数据。网络通过复制所有数据(保持所有数据在网络上可用)来运行,以便节点可以检查以确保计算已正确执行。保留所有这些历史数据有助于保护网络。

这个模型的问题在于它很难扩展。在尝试扩展以太坊时,以太坊基金会不得不稍微放宽无许可模型。诸如分片之类的扩展方法使以太坊的无需许可程度稍微降低了一些。从某种意义上说,以太坊在扩展区块链时朝着许可轴而不是无许可轴发展。

无需许可的分布式

Mina 协议是唯一完全许可的去中心化系统。 

虽然以太坊难以通过其复制数据模型进行扩展,但 Mina 从第一天起就被构建为无限可扩展和超级去中心化的。 Mina 充分利用了 ZKP 的优势,创建了一个简洁的区块链,支持可访问且去中心化的私有分布式数据和计算。 Mina 非常易于访问,任何设备上的任何人都可以加入链并在几分钟内验证 Mina 状态。如果使用一台功能强大(而且昂贵!)的计算机,在以太坊上做同样的事情需要花费几天的时间。

重要的是,Mina 的这个模型也面向未来;Mina的状态总是很容易验证。 Mina 是利用加密货币的早期经验构建的,以确保可扩展性和去中心化不会不惜一切代价受到损害。

其他链下ZK项目呢?

其他ZK项目能否通过链下计算实现数据的分发?这只是故事的一部分。以 Aleo(另一个 ZK L1)为例:在通过链下计算分配计算时,它们必须复制所有证明。

Aleo 不使用递归来证明所有证明直至单个证明。因此,他们必须保留所有证据以供人们重新检查,就像以太坊一样。因此,虽然他们已经实现了分布式数据的一半,但我们相信他们错过了 ZK 的真正力量。\

这一切意味着什么?

Mina 的整个架构经过精心设计,以提供绝对的可扩展性和去中心化。为了实现这些目标,没有放松任何信任假设。

要证明 Mina 真正具有可扩展性,还有很多工作要做,o1Labs 正在通过性能改进(例如将出块时间从 4 分钟缩短)和折叠等原语的形式来解决这一问题。尽管如此,所有基础工作都已经到位,以确保 Mina 能够在不影响去中心化的情况下进行扩展。

除了性能改进之外,Mina 基金会正在完成网络节点的工作,以确保任何人都可以在手机或浏览器中运行 Mina 节点,进一步增强 Mina 协议的去中心化性质。在基础设施方面,MF 还确保 Protokit 准备好为所有 Solidity 开发人员解锁轻松开发。

此外,o1Labs 方面的工作进展迅速,对 SDK 进行了改进,以确保 o1js 具有尽可能高的性能,并使开发人员能够轻松、大规模地构建。

Mina 的愿景是创建一个真正去中心化和分布式的世界计算机,所有人都可以使用它,并允许人们以安全的方式在链下私下工作和协作。

齿轮正在运转,基础工作已经就位,Mina 将为可验证的互联网提供完美的基础设施。 Httpz 是愿景,我们比您想象的更接近。

Resources  资源 

那么下一步该怎么办呢?您可能已准备好观看完整的白板会话视频或了解有关以下内容的更多信息:

如果您觉得这有帮助,请告诉并发推文 @MinaProtocol 。

*免责声明:本博客基于 o1 Labs 组织的白板会议记录。

广告分界线

Mina Protocol 与 OpenBuild 携手推出免费的 Web3 开发课程,旨在助力开发者从零开始学习如何在 Mina Protocol 上构建 Web3 应用。即便你之前没有接触过 Web3 技术,只要拥有一定的前端基础,就能顺利掌握开发 Web3 应用的核心技能。该课程不仅能有效提升你的开发能力,还有丰厚的奖学金等你来拿。通过这门课程,你将深入了解 Web3 生态,开启全新的职业发展之路。更多课程信息请点击这里报名学习。

image.png

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
King
King
0x56af...a0dd
擅长Rust/Solidity/FunC/Move开发