Nervos 底层公链 CKB 的虚拟机(CKB-VM)是基于 RISC-V 指令集打造的区块链虚拟机。在《CKB-VM 诞生前记》中,我们简单介绍了区块链虚拟机,以及我们理想中的区块链虚拟机的样子。在本篇文章中,CKB-VM 设计者肖雪洁将详细的介绍 CKB 虚拟机的设计理念,以及选择 RISC-V 指令集背后的思考逻辑。
CKB-VM 的设计理念
CKB 是 Nervos Network 的基础层,其目标是为上层应用提供足够的安全性和去中心化。在调研 CKB-VM 选型的过程中,我们反复思考:CKB-VM 应该要有哪些特性?
显然,对于一个在区块链上使用的虚拟机,有两个关键特性在任何情况下都必须满足:
确定性:对于固定程序和输入,虚拟机必须始终返回固定的输出结果,结果不会由于时间、运行环境等其他外部条件而改变;
安全性:执行虚拟机时不会影响到平台本身的运行。
但是这些条件仅仅是强制性条件,我们希望设计出一个虚拟机,能够更好地服务于 CKB 的目标。经过深思熟虑,我们认为这样的虚拟机应该满足如下特性: