为什么做ZK-EVM硬件加速
从最近的Sharding和扩容来看,以太坊无疑是按照以Rollup为中心的路线图1进行开发的。而基于ZK的Rollups会是以太坊扩容的最终形态2。
从The Three Transitions这篇文章来看ZK技术在以太坊未来的转型中无疑扮演了非常重要的角色。而针对ZK运算的加速,无疑是达到SLF这里路径上的关键节点。
与Plancker的愿景匹配
当前的ZK Rollup有着多样的实现,市面上产生了EVM Equivalent和EVM Compatibility这样的概念,Vitalik将这些ZK-EVM分为了4类3。然而更进一步,我们可以借用EVM Compatibility这个词进行延伸:EVM Compatibility Index(EVM兼容指数,后文简称ECI)。个人认为,未来的L2会把ETH Chain作为链上生态的安全设施可以近似等价于ROT(Root of trust),而L2上的未来应用会远超过EVM Capacity(EVM能力)达到一个EVM超集的存在。这个时期相当于计算机早期发展的过程,“硬件层/操作系统层/用户层”这样的分层还未成立。而加入这样的浪潮中会让我们更有机会参与到这样的标准设计和制定中。我们最终甚至有可能和EF,PSE推动链基础设施的进一步发展,比如EVM的革新。而这和我们社区的愿景,融入以太坊核心生态是一致的。
价值捕获
Rollup中的关键角色,例如Prover和Sequencer,在Rollup中,哪些角色是计算密集型的,哪些角色面临着去中心化要求,哪些角色需要对L2的交易进行验证,定义出来这些角色我们才能搞清楚产品卖给哪些角色。
当前运行一个近Type 1的ZK Rollup的测试网每个月要消耗数百万美金的GPU成本。而这些成本带来的潜在价值都可以通过加速硬件进行捕获。
预算
150,000u 由Plancker和Xhash 1:1共同出资。
人员
前期2.5人
Harold 全职
Kenway 兼职
York 全职
问题识别
- 产品卖给谁
- EVM的变动(风险点,下述为举例)
- New elliptic curve precompiles, to fully support what people want to do with ZK rollups
- verkle tree
- 当前风险主要是evm发展的不确定性,所以针对一种zkvm实现进行ASIC整合是不合理切风险过高的,虽说近期的升级主要集中在sharding上面这个可能消耗1年的时间,然后是AA的抽象,但难免两年后,ETH可能会从keccak256 hash转化为poseidon-hash,如果在芯片设计阶段就把所有算法集成到一颗芯片上,会对项目本身产生很大的风险,但是这个风险目前是会被进一步明确的,取决于如下这个问题的调研进展
- EVM兼容性对开发者和生态的影响识别
- ZKP,在将实际evm操作转换为代数电路时,或者说针对任意的代数电路,有多少东西是能够被抽取出来进行加速的?能否被拆解成可以被复用的算子
- 硬件加速的提升Banchmark
盈利模式
我们可以对不同的算法设计独有的加速器,通过提供给客户可组合性,可定制性(PCIE及UCIE)的方式来获得更多的获利空间(即不和任意一种ZKVM绑定,广泛的支持市场),也可以通过售卖IP核授权的方式来提供给其他的fabic-less厂商获取利润,
优势
当前Plancker和Xhash能够提供硬件生产的整合优势,成员有方式来打通软硬件开发人员交流的能力
而在ZK中,社区中的成员拥有该领域人员的链接,可以通过onboarding他们来进行共同建设
劣势
前期项目组成员对于zk的能力远不足其他早起入局者的知识水平,这是一个不得不面对的点。
针对于此,个人的解决方式是利用预研前期的两个月来达到能够回答任何社区成员提出的zk问题(数学原理,实现方式,算法实现上的难点),达不到主动摆烂,薪水砍半。
时间范围
第一阶段预研6~8个月
对市面上的ZK L2的设施进行研究,Polygon,Scroll,Starnet
第一阶段预研后产出的MVP
一个专注于EVM功能子集的实现的L2测试网,能够在上面运行的特定TX。并且在这个链的虚拟机要有ZK加速的软件实现。并且对相应算法的算子进行初步的拆分。
项目组对社区的职责
- 主理人要充分发挥翻译的职能,能在周会和技术研讨会中让社区成员充分的理解到项目中事物的发生及进展,以及能够解答有关zkp的提问。
- 组织管理项目进度,项目组协作页面对社区全员开放,以便于社区成员能够看到项目的看板进度,并对项目中的节点进行Argue。
- 内容产出,项目组和项目组成员有义务对每周进行的预研活动进行总结,并进行输出。
项目组成员需要补充的个人陈述
来项目组做什么,怎么产出,如何衡量,职责是什么,主动摆烂承诺
需要的社区协助
-
单独的对社区成员全员开放的notion workspace,但没有公开访问权限
-
GPT老师的支持
-
onboarding(前两个月对全职成员的onboarding需求不高)
-
后期的线下协作支持 Dali+,4sea
项目组内容生产规范
- 输出内容要有reference具体如下,
- 网页内容参考要使用来复制出指向的内容链接,在文中呈现的内容是使用markdown的‘内容’来描述
- 视频内容需要给出参考时间点和链接,但由于视频这类内容消耗的时间长度非常大,故非必要不建议
- 研究的内容和链接要整理在notion page上,pdf的论文要基于同一软件进行批注(zotero,或者欢迎推荐adobe之外的东西,如果全员MAC就用系统自带的预览)
- 研究过的文章/内容要有笔记一类的记录,其作用
- 因为需要研究的内容很多,通过笔记输出的方式来给自己制造记忆上的锚点
- 直接拿着原文来讲的话,在会议中的体验很差,因为有时候长文章需要频繁的滚动,导致信息传输效率低下
- 项目产出需要周会/maybe后续需要一周同步两次
- 初期项目成员需要在一个月~两个月之后对zk的技术有一定的理解力:
- 编写zk代数电路的能力,
- 对SNACK,STACK技术有认知,知道它是什么,以及怎么做,优缺点是什么
- 参考学习材料
- 进阶学习材料(非全职人员不做要求,但期望能够在2个月内完成)
- 项目组成员在notion中创建/认领的问题/任务要打上个人tag
- 认为有价值的材料(需要是原始信息)要用notion抓取一下放到Inbox页面中,然后要整理到项目调研资料中
-. 对于原文相应的翻译文章需要放到原文的comment中
-. 当添加文章/材料到项目调研资料看板中时,添加人需要assign自己/进行记录