什么是Protokit?Protokit是一个用于构建启用隐私的应用程序链(又名zk-roll-apps/zk-rollups)的框架。使开发人员能够以最小的学习曲线构建零知识隐私保护应用程序。该框架本身由O1JS,用于构建zkApps的SDK。得益于O1JS,所有使用Pro
Protokit 是一个用于构建启用隐私的应用程序链(又名 zk-roll-apps / zk-rollups)的框架。使开发人员能够以最小的学习曲线构建零知识隐私保护应用程序。
该框架本身由O1JS,用于构建 zkApps 的 SDK。得益于 O1JS,所有使用 Protokit 构建的应用程序在设计上都与 Mina 区块链兼容 - 并且可以使用 Mina L1 进行结算。因此利用Layer-1共识的共享安全性。
此外,所有用 Protokit 编写的代码都是可证明的,这意味着事务执行和区块生成会产生可由 L1(或任何人)验证的 zk 证明。
Rollup 是一种形式L2扩展解决方案,源自以太坊等流行网络。 L2 解决方案旨在通过将交易转移到链下来解决 L1 网络的可扩展性问题,同时仍然保持 L1 网络的安全保证。
Rollup 主要有两种类型,Optimistic Rollup 和 ZK Rollup。Optimistic Rollup 是最流行的Rollup形式,被诸如Optimism。Optimistic Rollup 依靠欺诈证明来确保交易的有效性。欺诈证明是一种允许用户质疑无效交易的机制。
另一方面,Zk-rollups 依靠零知识证明来确保交易的有效性。零知识证明是一种密码学机制,允许用户在不泄露交易本身任何信息的情况下证明交易的有效性。
使用 Protokit 构建的应用程序是 zk-rollups,这要归功于底层的 O1JS SDK。
应用程序链是一种特定于应用程序的 Rollup 形式,与通用 Rollup 不同 zkSync or 或者 Scroll。应用程序特定的 Rollup 允许开发人员优化其 Rollup 实现以满足其应用程序的需求,提供更好的用户体验(例如更快的块时间)并且可能比通用 Rollup 更低的费用。
Mina 区块链 L1 的设计考虑到了可扩展性,将智能合约交易执行移至链下。智能合约 使用 O1JS 构建为零知识电路,并在客户端(例如在浏览器中)执行。当在 Mina 区块链上产生区块时,区块生产者不必执行智能合约代码,而只需验证智能合约执行的零知识证明的有效性。
这种方法可以降低节点运营商的硬件要求,理论上可以提高交易吞吐量/可扩展性。这种方法确实给开发人员带来了一些新的挑战,其中并行交易的客户端彼此不了解,从而遇到潜在的竞争条件场景。
Rollups 通过将执行从客户端移动到服务器/定序器端来缓解潜在的竞争条件场景。 Protokit 提供了一种混合执行模型,借助递归零知识证明,代码可以在链上和链下运行。这种方法使我们能够保留智能合约的功能,同时通过顺序执行的功能来扩展它们。
Mina 的智能合约提供了某些内置原语,用于实现 Rollup 和解决固有的竞争条件,例如 Actions & Reducers。然而,使用普通 O1JS 减速器实现和操作 zk-rollup 的工作量随着应用程序的复杂性呈指数级增长。 Protokit 旨在抽象化构建 zk-rollup 的复杂性,并允许开发人员专注于构建他们的应用程序。
得益于 Protokit 的模块化架构,您很快就能够使用操作和底层序列状态作为使用 Protokit 构建的应用程序的内存池。
问题是,我们如何在智能合约和 Rollup 之间划清界限? Protokit 之于 Rollups,就像 O1JS 之于智能合约 —— 一个 SDK。
Mina Protocol 与 OpenBuild 携手推出免费的 Web3 开发课程,旨在助力开发者从零开始学习如何在 Mina Protocol 上构建 Web3 应用。即便你之前没有接触过 Web3 技术,只要拥有一定的前端基础,就能顺利掌握开发 Web3 应用的核心技能。该课程不仅能有效提升你的开发能力,还有丰厚的奖学金等你来拿。通过这门课程,你将深入了解 Web3 生态,开启全新的职业发展之路。更多课程信息请点击这里报名学习。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!