技术》什么是 Vitalik 推崇的 RISC-V?CKB-VM 为什么选择 RISC-V?

本文源自 CKB 所着文章,由 wublockchain 转载。 (前情提要:拆解 Vitalik 想用「RISC-V 取代 EVM」重构以太坊执行层的战略野心 ) (背景补充:EVM该退场了!Vitalik提案改用RISC-V,ZK证明效能可提升百倍以上 ) 区块链的出现使得智慧合约得到了更好的实现和发展,而区块链和智慧合约之间,还存在着一个重要的角色:虚拟机器(Virtual Machine) 。 虚拟机器的概念在上个世纪六十年代就被提出来,而到九十年代才开始流行。当时的网路跨越了众多不同的作业系统、浏览器,如果开发者想要制作一个应用,就需要去适配所有不同的作业系统。大家知道现在 App 开发就分为安卓和苹果系统,而当时局面更加复杂。恰好 Java 程式语言开始流行,Java 构建的虚拟机器能够让程式只需要写一次,依托 Java 虚拟机器就能够在多个平台上执行,所以当时提出的口号就是: 一处编译、到处执行 。 我们知道比特币是没有虚拟机器的,因为比特币就是把一段数位(也就是「比特币」)从地址 A 转移到地址 B,而以太坊则提出,区块链上执行的为什么不能是一套程式码,能够实现更多复杂多样的东西?这就是我们所说的智慧合约平台,所有节点执行一样的合约程式码得到完全一样的结果。 在区块链上,虚拟机器就是智慧合约的执行环境,是一个可以完全对外隔离的完整电脑体系。区块链通过虚拟机器来呼叫和执行智慧合约,并要求所有节点都达成一致。而节点用的是不同的系统,有些机器是 64 位的,有些是 32 位的,传统的 Java 虚拟机器容忍计算结果有少量的差异,但是在区块链上所有结果必须一样,因此,一个新的、适用于区块链的虚拟机器是必不可少的。 理想中的区块链虚拟机器 每个区块链专案的虚拟机器设计,都会有自身的艺术追求,在追求众多的特性同时做不同层次上的取舍。在做了大量的研究之后,我们认为理想中的区块链虚拟机器应该是这样的: 执行时有足够的确定性,在呼叫同样的智慧合约输入时,应该返回相同的输出结果,输出结果不依赖于时间、执行环境等外部的条件; 执行时有足够的安全性,虚拟机器的执行不会对平台本身带来负面影响;对更新足够的灵活,让区块链不用通过硬分叉,就可以实现加密演算法的升级或新增(回想一下以太坊硬分叉升级的痛苦); 资讯足够的透明,可以让虚拟机器上执行的智慧合约充分发挥虚拟机器的潜力;费用机制足够的合理,能够确保虚拟机器执行时资源消耗的计算方式更加合理准确; 可以支援不同的语言编译,让开发者能够自由地开发,将最新的科技运用其中。 在设计 Nervos CKB 虚拟机器之前,我们发现很多区块链专案都不是用真实的 CPU 指令集来构造自己的虚拟机器的,他们更多的是选择了 WASM 来构造自己的虚拟机器。 而我们更倾向于采用真实的 CPU 指令集来构造自己的虚拟机器,因为在任何精巧复杂的虚拟机器的最底层,都需要将操作转变为原始的汇编指令来执行对 CPU 的操作。另外,采用真实 CPU 指令集就不会在设计层面引入一些语义约束,束缚虚拟机器的灵活性。 做一个不恰当的比喻,操作 CPU 需要有一套语言体系,使用真实的 CPU 指令集就如同能直接用这套语言体系和 CPU「说话」,那就非常方便。否则,就好像先说中文,再转换为英文,不论多完美的翻译水平,都会有一定的偏差和束缚。 通过真实的 CPU 指令集,虚拟机器可以根据需要增加任意型别的资料结构或演算法,可以最大限度的让开发者写出任何满足要求的合约。于是我们决定大胆的尝试使用真实的 CPU 指令集来构造自己的虚拟机器 CKB-VM。 在 CPU 指令集的选择中,我们选择了精简的开源指令集 RISC-V。RISC-V 可以满足从低功耗小型微处理器,到高效能资料中心(DC)处理器的实现要求,并且有着透明性、精简性、模组化、支援的广泛性和成熟性的特点。这些特性都和 CKB-VM 的设计需求完美契合。那么 RISC-V 又是什么呢? RISC-V RISC-V 是一个清晰、简约、开源的 CPU 指令集架构,诞生于美国加州大学伯克利分校。 2010 年,由于其他商业闭源指令集的局限性,该校的一个研究团队在启动一个新专案时,从零开始设计了一套全新的开源指令集。这套全新的指令集有着大量的暂存器和透明的指令执行速度,能够帮助编译器和组合语言程式员将实际的重要问题转换为适当、高效的程式码,并且只包含了不到 50 条指令 。这套指令集就是 RISC-V。 架构师们在设计 RISC-V 时,就是希望 RISC-V 在所有的计算装置上都能够有效工作。自 2010 年被发明以来,RISC-V 简洁的设计赢得了业界和学界的广泛支援,并且获得了社群的喜爱。 RISC-V 基金会 RISC-V 指令集的发展主要由 RISC-V 基金会以及社群推动。RISC-V 基金会创立于 2015 年,是一家非营利组织,也是首个开放、协作的软硬体创新者社群。 RISC-V 基金会目前已经有超过 235 家成员,包括Google、高通、苹果、IBM、特斯拉、华为等企业。成员可以参与制定并使用 RISC-V 指令集规范,并且参与相关软、硬体生态系统的发展。 由于精简、开源的设计,RISC-V 在一些学术机构中大受欢迎,如加州大学伯克利分校、麻省理工学院、普林斯顿大学、中科院计算所等。除此之外,一些政府机构,如印度政府、上海市经济资讯委等,也大力支援基于 RISC-V 的专案开发。 现有的指令集 RISC-V 是一个非常年轻的指令集,那么在此之前,主要的指令集都有哪些呢? 在 PC 时代,x86 是不可动摇的霸主,x86 是 CISC (Complex Instruction Set Computer,复杂指令集),和 RISC (Reduced Instruction Set Computer,精简指令集) 不同,CISC 指令集会随着发展不断增多。这样会使得成本不断上升,效能和功耗也会受到影响。而且,CISC 指令集长度、执行时...

查看原文
本页面内容仅供参考,非招揽或要约,也不提供投资、税务或法律咨询。详见声明了解更多风险披露。
  • 赞赏
  • 1
  • 分享
评论
0/400
人之初信为本vip
· 04-23 13:21
别发这些没用的了
查看原文回复0
交易,随时随地
qrCode
扫码下载 Gate.io APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)