要理解计算机的本质,我们可以从最基础的概念——状态机入手。状态机包含两个核心部分:一是存储信息的地方,二是修改这些信息的机制。
存储的信息被称为状态,这类似于计算机的内存。而程序则是一组指令,规定了如何根据当前状态和输入,生成新的状态和输出。
我喜欢从“语言”的视角来解释计算,因为会读会写的人远多于会编程的人。想象一下,名词代表状态或内存——可以被操纵的事物;动词代表代码或程序——执行操纵的行为。正如我常说的,任何你能想象到的事物都可以被编码,这也是我将编程比作小说写作等创造性活动的原因。计算机的通用性正体现在这一点上。
状态机是理解计算机最纯粹、最本质的方式。中本聪提出的区块链并非像台式机、笔记本或服务器那样的物理计算机,而是一台虚拟计算机——它在功能上是计算机,但不以传统物理形态存在。
区块链是一种运行在物理设备之上的软件抽象层,本质上是状态机。正如“计算机”一词的含义从“从事计算的人”转变为“机器”,如今它进一步扩展,不仅指硬件,也包含了软件本身。
基于软件的计算机,即虚拟机,早在20世纪60年代末就已出现。当时IBM开发了第一台虚拟机,并在70年代初正式推出。随后,IT巨头VMware在90年代末将这项技术普及。如今,任何人通过在PC上下载所谓的虚拟机监控程序(hypervisor software)即可运行虚拟机。
企业通常使用虚拟机来简化数据中心管理,它们也是云服务提供商运营的核心基础。区块链则将这种基于软件的计算模式扩展到了一个全新的场景。
计算机可以用多种不同方式构建;它们的本质由功能特性决定,而非外观形态。想深入探索计算机基础的更多内容,可以关注相关领域的发展。
词汇表
本文探讨了区块链作为虚拟机的核心概念,更多技术讨论欢迎访问云栈社区。
|