ZKM CEO:通用 zkVM 如何实现网络效应?
原文作者:Kevin Liu,ZKM Co-Founder 兼 CEO
原文来源:X
编译:Coolman,Foresight News
Andrew Chen(a16z) 在《冷启动问题》(The Cold Start Problem) 一书中将网络效应定义为产品价值与用户数量正相关的现象。作为基础设施项目的创始人,我们正致力于构建通用 zkVM 以联通区块链间的流动性,我也在持续思考如何为底层基础设施项目实现网络效应。
2B 还是 2C?
许多投资者都向我提出了同样的问题——zkVM 如何捕获价值?考虑到市场上有许多不同类型的 zkVM,同时所有代码都终将开源,因此,探寻这一问题对于一个基础设施项目而言是有合理意义的。
与 RISC Zero、SP1 和 Jolt 等同行一样,ZKM 在过去一年取得了巨大进步,性能基准不断提高。一个最大的区别在于,RISC Zero 和 SP1 主要针对 Rust,而 ZKM 则为 Golang 提供原生支持。对于一个项目,尤其是一个基础设施项目,选择 Rust 还是 Golang,对开发者来说始终是一个困境。许多应用链由于 Golang 的开发者友好性和蓬勃发展的生态系统,将其确定为首选语言。例如,Optimism 的 mini-geth 和 Cosmos SDK 是两个最广泛使用的使用 Golang 编写的工具包之一。
ZKM 选择 Golang 作为其首个前端语言,允许开发者使用原始 Golang 编译器将其代码编译为 MIPS 指令,然后通过 ZKM 的证明网络确保其正确执行。根据当前 CPU 基准测度,该网络单个证明者每秒可以证明 5.4K 条指令。使用 GPU,则可以加速 3-5 倍。
Rust 以其严格的 type 系统和内存安全设计,正被越来越多的基础设施项目采用,而由 Rust 产生的相同逻辑的 MIPS 指令规模约为 Golang 的 6-8 倍。话虽如此,ZKM 的路线图也包括未来对 Rust 的支持。
出于对强大技术栈的依赖,目前已经有很多合作伙伴展示出与 zkVM 进行合作的需求与兴趣。然而要实现网络效应,一个项目需要的不仅是出色的技术,还必须在业务发展方面持续与潜在合作伙伴进行互动并鼓励他们在技术堆栈上构建项目。我们的 zkVM 的成功将取决于它的使用量和采用程度,简而言之,任何项目的成功都取决于其整个生态系统的力量。
尽管如此,基础设施项目实现网络价值的关键仍在于差异化。试想,如果众多参与者都在使用类似的策略,某一项目该如何打出差异并捕获自己的价值?
Opsimism 开创了一个可供研究的先例。如果研究 OP 技术栈的成功路径,你会发现 OP 技术栈并不是从一开始就完美无缺的——SuperChain 采用也不是一蹴而就的。相反,正是 Optimism L2 的成功推动了 OP 技术栈的采用,并吸引了众多项目方选择 SuperChain 构建项目,以进行未来的价值捕获。在 Web3 世界中,你需要首先建立一个杀手级的用例。这个杀手级的用例不仅成为你的技术的强有力展示,还成为产品市场契合度、社区参与度、市场推广策略、代币经济学等多个因素的结合体,决定了项目的成功与失败。
在这个竞争激烈的市场中,我不认为存在能够阻止竞争对手瓜分市场份额的手段。相反,竞争总是动态的,成功的关键在于技术栈的灵活性与适应性。
因此,ZKM 始终坚持将「灵活」与「适应」置于项目核心位置,选择建立独特的用例,以推动技术栈的采用。
从何处开始?
ZKM 已经发布了 Entangled Rollup LightPaper,其中详细介绍了 ZKM 用于联通区块链碎片化流动的互操作性机制。截至目前,Entangled Rollup 架构已成功支持以太坊 Layer 1 和 Layer 2 网络之间的验证。那么接下来应该连接哪个网络呢?
这个网络应能够提供大量的价值,同时有与其他生态联通的强烈需求。对于一个已经成熟且有高影响力的网络来说,加分项则更多。
考虑到以上标准,问题的答案显而易见:比特币。
比特币网络确实存在一个重大挑战,即不支持智能合约。但 ZKM 的 Entangled Rollup 旨在将状态汇总到 ZKM 网络,并将证明状态中继到其他生态——我们也将使用相同的方法来推动比特币网络扩展。从比特币的角度来看,在这个初步阶段,ZKM 网络的作用类似于比特币 Layer2。
zkVM 驱动的 BTC Layer2 有何不同?
据 L2.watch 报告,已经有超过 100 个 BTC L2 已经上线或即将发布。那么我们的方案又将如何脱颖而出呢?
由于整个 Entangled Rollup 框架以及整个 zkVM 层面都将为 BTC Layer2 提供支持,因此我们可以提供原生安全性与可持续收益作为该网络的关键特性。
1. 原生安全性
当我同比特币持有者和矿工交谈时,几乎所有人都会问我相同的问题:如何保证我的财产安全?
BTC Layer2 的安全保障可以由两个因素决定。首先,Layer 1 资产应该由 BTC 原生多重签名脚本控制,只要还存在一个活跃的诚实方,任何作恶者便无从解锁他们抵押或存入的资产。其次,Layer 2 的最终的交易确认需要继承 BTC 的安全标准,即要求排序器去中心化,并且 L2 交易执行可以由 BTC 脚本进行验证。
ZKM 引入了一种名为乐观挑战流程(OCP, Optimistic Challenge Process) 的机制,从而实现上述安全需求。当用户的资产存入 L2 时,将被锁定在一个预先签名的 n-of-n 多重签名脚本中,签名者可以是任何经授权的中立第三方或审计员,该脚本将在挑战期结束后激活。挑战阶段则是通过签名者提前向目标用户发送资产启动。
挑战阶段,签名者需要预先签署一个包含挑战脚本和资产脚本的交易。随后,挑战者需要支付 UTXO 启动挑战,同时要求运营者提供交易计算跟踪尝试启用 commitment 并激活资产脚本。
如果 commitment 无法成功启用,则验证者将在挑战期结束后收到所有资产,反之,则签名者获得该资产。
跟踪执行则通过 TapTree 实现—— TapTree 的每个叶节点代表一个中间值,每个中间值要以前一个值作为输入使用一次签名计算。通过这种方法,BTC 脚本可以直接执行签名计算并完成链上资产验证。
因此,OCP 能够为任何链外计算提供原生安全性,例如,可以确保 Layer2 交易始终处于排序器网络中。
2. 可持续收益
就收益而言,大多数比特币持有者更倾向于寻求持续稳定的收益,而不是短暂的积分或空投回报。对于 ZKM BTC L2 来说,将去中心化排序器引入框架以批处理 L2 的交易,提供了固有的原生安全性。因此,这些排序器节点(有 BTC 白名单)应该因其贡献而获得奖励。
ZKM 为挖矿池保留了其代币供应的 40%,专门用于排序器节点挖矿、流动性质押挖矿和证明网络挖矿,从而确保了排序器节点不仅能从交易处理中获得 gas 收入,还能从挖矿池获得持续稳定的收益。此外,由于排序器节点是处理 Layer2 批量交易时速度最快的实体,还存在潜在的 MEV 机会。因此,ZKM BTC L2 的收入和利益属于节点运营者、质押者与用户等所有网络参与者。此外,BTC L1 矿工也将将受益于提交给 Layer1 的 Layer2 交易。
关于未来
我们的最终目标是统一多个生态系统的碎片化流动性。首先,我们将建立以太坊和比特币网络间的联系,下一个目标将包括 Cosmos、Ton 等其他主要网络。
我认为 ZKM 探索的是一个底层基础设施项目根本性的思考和运作模式。在这条道路上可能会有一些「成长的烦恼」,但我们将从经验中学习,并提供我们可能力范围内最好的指导。
MIPS架构开放了,10天设计一款完全免费的MIPS处理器(附源码)
近日,Wave正式宣布将MIPS指令集(ISA)向全球客户免费授权。为全球的半导体企业、开发人员及高校提供免费的MIPS架构,供其开发下一代SOC。MIPS架构开放计划将为所有参与者免费提供最新的32位和64位 MIPS架构,且不产生架构授权费和版权费,同时也为所有MIPS架构的使用者提供其在全球范围内几百项现有专利的保护。
虽然此举对于羽翼丰满的X86和ARM来说,短时间内无法造成多少影响,但对于目前依靠开源作为旗帜吸引玩家加盟的RISC-V来说,无益于当头一棒。RISC-V之所以被很多厂商热捧,在于全球任何一家IC设计单位都可以基于RISC-V设计CPU,不存在任何知识产权问题。这使得IC设计公司对于RISC-V很感兴趣。
然而,在MIPS也宣布免费授权之后,导致原本RISC-V才具备的优势,MIPS也拥有了,大家都可基于MIPS设计CPU。可以说,MIPS指令集授权免费后,由于生态更完善,性能也更好,将会对RISC-V造成很大冲击。
当然Mips的内核没有开源,内核授权业务仍旧保留。这是一个非常理智的商业安排,通过开源指令集来扩大整个指令集的生态系统,再由扩大的生态来反哺内核授权业务,完成了一个完整的商业闭环。
在几年前EETOP就建立了OpenMips社区,版主为大家分享了一款较为先进MIPS设计及代码,只不过当时Mips没有开放,所以只能冠之以学习版、教学版。
社区截图
版主在社区中为大家分享了10天设计Mips CPU的开发笔记及实现代码,现在介绍给大家,可以学习一下。
开发笔记
为了感谢EETOP上各位同学以及版主tyxuanyuanlx 对《步步惊芯——软核处理器内部设计分析》一书的支持,本人将贡献一个开源处理器OpenMIPS。
OpenMIPS,是一款具有哈佛结构的32位标量处理器,兼容MIPS32体系结构,这样可以使用现有的MIPS编译环境。OpenMIPS具有以下特点:
(1)五级整数流水线,分别是:取指、译码、执行、访存、回写
(2)哈佛结构,分开的指令、数据接口
(3)32个32位整数寄存器
(4)大端模式
(5)向量化异常处理,支持精确异常处理
(6)8个外部中断
(7)32bit数据、地址总线宽度
(8)单周期乘法
(9)支持延迟转移
(10)兼容MIPS32体系结构,支持MIPS32指令集中的所有整数指令
(11)大多数指令可以在一个时钟周期内完成
(12)可综合
打算用十天时间依次发布,所以标题叫“10天实现处理器——OpenMIPS开发笔记”,还望各位同学多多使用,并提出改进建议,大致计划如下:
第1天
(1)OpenMIPS介绍
(2)实验环境搭建
(3)实现通用寄存器Regfile
(4)实现指令存储器imem
(5)实现数据存储器dmem
第2天
(1)实现五级流水线框架
(2)实现第一条指令——ORI
第3天
(1)解决流水线数据相关的问题
(2)实现其余的逻辑操作指令——AND、ANDI、LUI、NOR、OR、XOR、XORI
第4天
(1)实现移位操作指令——SLL、SLLV、SRA、SRAV、SRL、SRLV
(2)实现乘法、除法之外的所有算术操作指令——ADD、ADDI、ADDIU、ADDU、CLO、CLZ、SLT、SLTI、SLTIU、SLTU、SUB、SUBU
第5天
(1)实现乘法指令——MADD、MADDU、MSUB、MSUBU、MUL、MULT、MULTU
(2)实现除法指令——DIV、DIVU
第6天
(1)实现移动操作指令——MFHI、MFLO、MOVN、MOVZ、MTHI、MTLO
(2)实现控制指令——NOP、SSNOP
第7天
(1)实现跳转指令——J、JAL、JALR、JR
(2)实现分支指令——B、BAL、BEQ、BGEZ、BGEZAL、BGTZ、BLEZ、BLTZ、BLTZAL、BNE
第8天
(1)实现加载类指令——LB、LBU、LH、LHU、LL、LW、LWL、LWR
(2)实现存储类指令——SB、SC、SH、SW、SWL、SWR
第9天
(1)实现协处理器CP0的部分寄存器
(2)实现协处理器访问指令——MFC0、MTC0
第10天
(1)实现自陷指令——SYSCALL、TEQ、TEQI、TGE、TGEI、TGEIU、TGEU、TLT、TLTI、TLTIU、TLTU、TNE、TNEI
(2)实现中断处理
(3)实现异常返回指令——ERET
这里我们只给出了每一天要做的概要,所有这些详细设计版主都已经作为附件上传到论坛中所对应的帖子里面了,大家可以点击文末阅读原文下载。
代码实现说明
相对OpenMIPS教学版而言,OpenMIPS实践版最大的特点是引入了Wishbone总线接口,组建了SOPC,包括SDRAM控制器、GPIO控制器、flash控制器、UART控制器,并且下载到了DE2上进行了实际测试,SOPC的结构如下:
文件目录如下: (代码包含verilog 和 vhdl,这里以vhdl为例)
各文件夹说明如下:
rtl
所有OpenMIPS实践版的源代码文件在该文件夹下,包括流水线文件iu.vhd、除法模块 div.vhd、寄存器文件Regfile.vhd、顶层文件OpenMIPS.vhd、宏定义文件stdlib.vhd
min_sopc
包括多种IP核:GPIO、UART、SDRAM控制器、flash控制器、Wishbone总线互联矩阵等,以及一个用来测试OpenMIPS的最小SOPC的顶层文件OpenMIPS_min_sopc.vhd,在其中例化上述IP核,通过Wishbone总线互联矩阵与OpenMIPS连接在一起,形成一个SOPC。关于该SOPC的结构在第8小节会有介绍。此处的各种IP核都是从OpenCores下载的,均符合Wishbone总线接口规范。
tools
包含与具体评估板有关的一些工具,笔者主要是使用Altera的DE2作为评估板,所以tools下有一个Altera/DE2的目录,其中包含DE2的DE2_control_panel这个工具软件,可以通过该软件读写DE2上的flash芯片。
该目录下还包括一个BinMerge.exe软件,该软件在BootLoader、SimpleOS的实验中会有作用,用来将BootLoader、SimpleOS产生的二进制文件合并在一起。
doc
包含一些说明文档,具体有:《MIPS32指令集》、《MIPS Architecture for Programmers Volume III》、《OpenMIPS快速入门手册(实践版)》、《10天实现处理器——OpenMIPS成长记》,以及min_sopc文件夹下各种IP核的说明手册。
asm_test
包含几个测试程序,均使用汇编编写,分别用来测试GPIO、UART、SDRAM,以及一个综合程序。该综合程序由BootLoader、SimpleOS组成,用来模拟一个操作系统的启动。
OpenMips CPU模块连接图
相关问答
什么是 MIPS 计算机?MIPS计算机是一种基于MIPS(MicroprocessorwithoutInterlockedPipelineStages)架构的计算机系统。MIPS是一种RISC(ReducedIns...
mips 指令流水线数据通路包括哪五段流水线?经典的MIPS流水线分五级(1)IF取指(insturctionfetch),从指令一条指令(2)RD读取寄存器(readregister),读取该指令的源寄存器域指定的CPU寄存器的内容。...
ida是什么?A是一款反汇编工具,它可以将目标二进制文件转化为人类可读的汇编代码,帮助逆向工程师分析目标程序的功能和行为。IDA具有强大的交互式界面和多种高级分析功...
wifi芯片内部结构?Wi-Fi基带芯片的架构根据是否采用处理器来区分的话,一般有以下几种:第一种为全硬件型,不采用处理器,整个芯片的MAC(MediumAccessControl,媒体访问控制)...
不同类型的CPU指令集不同,指令系统一样吗? - 懂得各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指...
芯片指令集是什么?芯片指令集是一组用于控制和操作计算机芯片的指令。它定义了处理器能够执行的操作,包括算术、逻辑、存储和控制操作。指令集通常由一系列二进制代码组成,每个...
计算机的硬件系统由 , , , ,和 五大部件组成? - 苍茫流年...冯·2113诺依曼结构计算机系统由5261硬件系统和软件系统两大部分组成。美藉4102匈牙1653利科学家冯·诺依曼结构(JohnvonNeumann)奠定了现代计算机...
印度和俄罗斯有芯片制造的能力吗?根据俄罗斯联邦工业和贸易部的要求,该微处理器设计用于服务器,个人电脑和笔记本电脑,以及工控机,高性能路由器....从民用上来看是落后于世界主流水平(intel...全...
物联网如何推动万物互联?作为消费科技巨头的苹果,在2014年就开始向智能家居延伸,推出HomeKit智能家居平台,通过接入第三方智能设备,利用iPhone等智能终端可以实现对家庭场景下各设备...
计算机定义及计算机的特点?定义:计算机是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。计算机的特点:1...定义:计算机是现代一种用...