un.Block 区块链周报 #27:zkEVM,LaunchPad

👨‍🚀 Glaze & Jasmine:祝大家感恩节快乐!🦃 火鸡肉很柴,不好吃。

如果你喜欢本期内容,不妨在阅读后给我们点个 ❤️ ,并在下方订阅 un.Block Weekly ⬇️

🚀 链圈热闻:zkEVM

zkSync 首个推出基于零知识证明的 EVM。记得之前我们介绍 Layer2 技术的时候就提到 Optimistic Rollup 具有兼容性优势,它可以很方便的继承 EVM,但是它的提款周期实在是太长了。目前 Optimistic Rollup 上的一些 DEX,提供了快速提款的功能,一定程度上弥补了这个短板。ZK Rollup 具有性能优势,但是 EVM 的兼容性没有那么容易。现在,我们终于等到了这一天,zkEVM 的出现,标志着 ZK Rollup 进入下一个时代。

在 zkEVM 之前,为 ZK Rollup 开发应用的体验并不好。大多数情况下,开发者得学习他们特定的语言,手把手编写非常底层的电路。例如在 Aleo 上开发,我们需要使用 Leo。

因此一个具有泛用性的虚拟机,具有高抽象性,兼容目前的开发流程会对于 ZK Rollup 的生态有重大意义。

EVM 电路化

大家对此的思路都是 把 EVM 全部电路化。但这样的问题在于,做一个简单的加法就要跑一遍 EVM 的证明。这使得计算量很大。解决的思路大致有:

  • 使用更加 ZK 友好的运算,例如 SHA265 在电路中的性能开销是 Peisondon Hash 的 100 倍
  • 使用效能更高的 VM 而不是原封不动的 EVM
  • 更快的加密学库

将 EVM 电路化的难点有:

  • EVM 不支持椭圆曲线。椭圆曲线是证明中很重要的工具
  • EVM 的整数是 256 位,ZK 更加适用于 32-46 位整数。整数位数的不同会需要对每一步运算添加约 100 个额外约束
  • 许多独特的 OPCODE
  • 基于栈的虚拟机
  • 以太坊的存储系统依赖于 Keccak 和 MPT。这两种技术一点对 ZK 并不友好,需要更多的计算资源。如果更换 Keccak Hash,则会不兼容 EVM
  • EVM 层面的证明需要大量的电路

然而以下技术的突破使得电路化 EVM 变得有了可能:

  • Polynomial Commitment:Setup 的复杂度和约束复杂度无关
  • 更强的查找表(Lookup Table),允许自定义小工具:可以加速对 ZK 不友好的运算
  • 递归证明更加的高效
  • 硬件加速

Layer 1 和 Layer 2 EVM 在执行上的区别

  • 智能合约以字节码的形式存储在链上。当收到被广播的交易后,节点会从存储中加载对应合约,并在 EVM 中执行
  • Layer 2中,智能合约以字节码的形式存储在存储中。交易从链下发出,并在中心化的 zkEVM 节点中被执行。zkEVM 会生成一个证明来展示虚拟机状态已经根据交易进行了变化。当证明被提交到 Layer 1 的智能合约后,合约并不会重新执行提交的交易,而是根据证明直接更新状态。
    那么这些证明包含了什么呢?执行字节码时,EVM 会一次执行字节码中包含的 OPCODE。执行每一个 OPCODE 都对应一下步骤:
    • 从栈,内存,存储中读取对应数据
    • 运算
    • 将结果写回栈,内存,存储
      因此 zkEVM 的证明也包含以下对应执行步骤:
    • 字节码被正确地加载
    • OPCODE 被连续地依次执行
    • 每个 OPCODE 的执行结果都是正确的

zkEVM 采取的一些优化

  • 类似 Verifiable Storage 的方式来证明 zkEVM 读取了正确的数据。
  • JUMP 之类的 OPCODE 给证明带来了困难。因为在不固定输入的前提下,我们不知道 JUMP 会跳到那里。因此 zkEVM 采取了对所有可能的执行流程都进行了证明,并且存在一个查找表中。
  • 为每一个 OPCODE 的读写、执行设计证明电路。zkEVM 将读写和证明分成了两个部分,这样可以减少计算量。例如我们不用在计算的证明中操心整个存储的状态。
  • 通过为每个 OPCODE 设计可以方便开启和关闭的约束,来减少每一步的重复证明。

📔 相关阅读:


🍼 保姆级教程:LaunchPad

LaunchPad:好项目的火箭发射基地

来到第 27 期的保姆级教程,我已经要和团队成员讨论改写什么给新手读者了,假如你是从第一期开始阅读 un.Block 保姆级教程的读者,相信你也会像我一样,从一个什么也不懂的小白,变成对很多名词都“略懂一二”的新手玩家。本期我们打算和大家分享一个比较有意思,同时也是最近比较热门的东西 —— LaunchPad。

三角关系:LaunchPad & 项目 & 用户

LaunchPad 的中文意思是“启动台”,顾名思义,就是一个提供给项目启动的平台。许多大型项目,或者说正经项目,都会选择在数轮私募融资后,在 LaunchPad 进行公开募资(IDO,关于 IDO,这里不作过多解释,有需要的话我们可以单独写一期)

在 LaunchPad 项目可以收获来自 LaunchPad 社区的大量流量和关注度,进一步用户和充实原有的社区基础;反之,好的项目登陆 LaunchPad,也可以给 LaunchPad 带来很高的社区流量,同时提高 LaunchPad 治理代币的价格(或价值)。

至于用户,我觉得这是 LaunchPad 中最关键的一环。用户带来流量,同时带来资金,这两项都是项目成长的必备元素。用户通过质押治理代币,来获得参与项目 IDO 的额度,能够在公平的前提下,以较低的成本投资到优质的项目。

在这个三角关系中,理想情况下,LaunchPad 平台、即将上线的项目和参与项目的用户,能够各取所需,互惠互利。

普通用户参与 LaunchPad

我们作为一个小白用户,如上文所说参与 LaunchPad 优质项目的的 IDO,可以以较低的成本投资到优质的项目。那么我们需要做什么呢?

  1. KYC 认证:大部分的 LaunchPad 首先都要完成 KYC(Know Your Country)实名认证,这是为了防止机器人泛滥,以及合规化问题。

  2. 质押 LaunchPad 平台治理代币以参与项目 IDO:通过质押治理代币,我们可以活动项目的 IDO 额度。这里需要留意质押的方式,以及额度的计算规则。常见的玩法有:

    1. 无下限,无上限,0门槛质押:额度占比 = 时间*质押数量 / 全池总量。这种是门槛较低,也是最容易参加的,当然门槛低意味着会有很多用户参与,因此最后得到的额度也不会太多
    2. 有下限,有上限,有门槛质押:这类质押与上一种质押方式类似,但设置了数量下限与上限,增加了对用户的限制,一定程度上能让参与者获得较为平均额度
    3. 固定额度,抽奖型质押:这类质押方式的额度占比是固定的,但不是每个参与质押的用户都能得到额度分配。这种模式类似于抽奖,质押就相当于购买门票,抽中了获得不错的额度

    额度的基本计算思路都是数量和时间,简言之,你拥有的治理代币越多,质押的时间越长,将获得越多但额度。需要注意的是,治理代币的价格是浮动的,热门的项目登陆 LaunchPad 会提高治理代币的需求,导致价格上升;IDO 活动结束后,假如没有后续的项目,用户会选择抛售治理代币,导致价格下跌,因此控制 LaunchPad 治理代币的成本,也是很关键的一点

  3. 根据额度,投入资金,获得代币:这是整个活动最简单的一步,也是最直接的一步,就是打钱,投入资金后,等到到既定的时间,就可以领取代币了。至于领取代币之后的操作,各人各人的策略,这里就不作讲解了。

关于 LaunchPad 的感想

LaunchPad 是好项目的发射站,但不代表所有登陆 LaunchPad 的项目都是好项目,这要看 LaunchPad 团队的实力,有没有能力吸引到优质项目登陆,也要看团队的眼光,有没有能力在众多项目之中找到那一颗珍珠。

📔 相关阅读


📘 附加题

相信提到人工智能(Artificial Intelligence,AI)或者机器学习(Machine Learning,ML),哪怕是完全不从事这个领域的人也会略知一二。自从十年前随着硬件革新再度爆发之后,无数相关的概念和产品喷薄而出,最终在移动互联网时代形成了我们现在所看到的格局。

既然它在这个时代的“红海”无处不在,相关的专家和从业者们自然也不会放过区块链这个新的“蓝海”。就在不久前,已经改名 Meta AI 的 Facebook AI 宣布下场,与 Oasis Labs 合作(具体项目细节尚未披露)。而由两位前Deepmind 研究院组建的 Kosen Labs 也接到了来自 a16z 领投的 500 万美元种子轮融资。

你对 AI/ML 在这个能够迸发的潜力会有所期待吗?


🔔 订阅 un.Block Weekly 🔔

🚏Find us

💻 Website: unblock256.com

✈️ Telegram: un.Block Weekly

🕊️ Twitter: @unBlock256

📧 Emailunblocketh@gmail.com

📤 分发渠道:知乎 | Notion | Substack | Medium | Mirror

视觉设计:Jenny

特别鸣谢:

本文非商业目的转载授权遵循 CC BY-NC 4.0 协议

版权所有 ©️un.Block 2021

Subscribe to un.Block
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.