计算机病毒:一种可能的生命形式
一般认为,计算机病毒这一概念是在1983年由美国专家科恩(Fred Cohen)在一次计算机安全学术会议上正式提出的,并获准进行了实验演示,从而证实了计算机病毒的存在。世界上最早发现的计算机病毒是“巴基斯坦”病毒,时间是1986年1月。1987年和1988年,计算机病毒肆虐欧美,1989年计算机病毒悄然登陆中华大地。截止目前,估计世界上已有的计算机病毒达6000余种,并越来越严重地威胁着计算机系统的安全,使得计算机用户谈毒色变、惶恐不安。于是人们一致地对计算机病毒采取了消灭与预防的策略和方针。然而,本文则要指出,计算机病毒可能并非人们通常所认为的那样只有消极作用、破坏性作用,如果我们能够哲学地思考与看待计算机病毒,那么我们就会发现它所潜在的一些十分有益的作用、建设性的作用。在我们看来,计算机病毒有可能对人类探索生命的奥秘发挥十分独特而积极的作用。
一 . 计算机病毒的生物学特征与生命的算法特征
根据科恩于1983年给计算机病毒下的定义:计算机病毒是一种程序。它用修改其他程序的方法将自身的精确拷贝或者可能演化的拷贝放入其他程序,从而感染其他程序。由于这种感染特性,病毒可以在信息流的过渡途径中传播,从而破坏信息的完整性。科恩于1988年又撰文强调:病毒不是利用操作系统运行中的错误和缺陷的程序。病毒是正常的用户程序,它们仅使用了那些每天都被使用的正常操作。⑴科恩给出的这一定义,被美国的计算机专家在有关病毒的论文中频繁引用,具有相当的影响。
计算机病毒与生物病毒是两个不同范畴的概念,前者是人为制造的,后者是宇宙进化的产物;前者采用的是机器语言,少数采用高级语言,后者采用的是核酸编码,少数采用氨基酸编码;前者结构上采用指令程序的物理存储,后者则以化学固化存储方式为主。然而就是这样两个不同的概念,却在功能方式上有着极其类似的特征,其危害和感染系统(宿主)的原理在本质上也是一致的。这主要表现在:1.二者的生存方式相同,都具有一种寄生性。2.二者都具有传染性,无论是生物病毒还是计算机病毒,都能使用循环程序的循环执行来破坏系统。3.二者对宿主都具有不同程度的破坏性。最后,计算机病毒具有的潜伏性、隐蔽性、可触发性等也是生物病毒的基本特性。由此可见,计算机病毒具有几乎全部生物学的特征。无怪有人说:恼人的计算机病毒几乎涉及到了所有衡量生命的尺度。计算机病毒确实可以在计算机控制的空间和计算机网络上生存下去。正是在这个意义上,我们认为,计算机病毒是一种可能的生命形式。虽然在计算机及其网络外计算机病毒不可能独立存在,但这并不等于就能把它们划出生命物体的范畴。
我们说计算机病毒是一种可能的生命形式,不仅因为计算机病毒几乎具有所有的生物学特征,而且还因为生命本身就具有算法的特征,甚至可以说,生命就是算法、就是计算。自20世纪80年代以来,随着人类基因组计划、遗传算法理论、人工生命科学和DNA计算机理论的相继提出和发展,使得人们对生命是什么这个永恒的问题有了全新的认识:生命就是由一系列复杂的计算组成的,是按算法规则进化的。生命就是一个能够实现自我复制、自我构造和自我进化的算法。
长期以来,计算、算法一直是数学的专有概念。但如今由于电子计算机深刻而广泛的运用,使人们对这两个基本概念有了更宽泛地认识,使它们泛化到了整个自然界。认为自然界就是一台巨型自然计算机。任何一种自然过程都是自然规律作用于一定条件下的物理或信息过程,其本质上都体现了一种严格的计算和算法特征。在此,自然系统相当于计算机的硬件、自然规律相当于计算机的软件,而自然过程就是计算机的计算过程。生命系统作为自然界中最复杂最有特色的系统,它也就是形形色色的自然计算机中的一种。
DNA计算机就是对生命这种自然机的一种表征。这是因为,DNA是生命的信息库和程序库,即既是一套自复制的程序,同时又是一个以进化论为基础发展过来并正在发展的程序。它构成了遗传、发育、进化统一的物质基础。现代生物学表明,一方面DNA可以看作是由A、G、C、T四个字符组成的字符串。从数学上讲,这意味着我们可以用一个含有四个字符的字符集∑={A、G、V、T}来为信息编码。DNA代码与计算机代码所不同的只是它不是二进制的,而是一种四进制代码。有人甚至指出:除了专业术语不同之外,分子生物学杂志里面的每一页都可以换成计算机技术杂志的内容。另一方面,DNA能够对该信息载体进行一系列可控制的变换(即化学反应)。变换的具体方式是DNA的复制、剪切、连接、修复,变换的过程就是一种生命过程,也即生命的自构造性特征。因此,我们完全可以把生命看作是一台自然计算机,生命的进化法则就是算法。另外,DNA作为一种自然语言,和计算机程序语言一样,具有不同的层次,具有递归、并行、模块化的基本特征。现代生物学表明,一维线性分子在特定的环境中通过复杂而准确的信息处理,可拓展为一个丰富的四维时空生命体,这种展现过程所获得的新信息反过来又不断地反映到一维线性分子中,导致生物物种的不断进化。这正是DNA程序语言层次性的表现。一维DNA序列只不过是最低级的生命机器语言,所有的高级语言都必须编译成DNA序列语言才能执行。目前,DNA这种自然语言的词法、句法规则我们尚不清楚,但本质上是一种程序化语言。⑺
DNA计算机的提出,就是一种分子算法的化学实现。以前分子算法,如自复制自动机、胞格自动机、遗传算法、人工生命等全都是在电子计算机上实现的,DNA计算机的出现是分子算法的化学实现的开端。这种立足于可控的生物化学反应或反应系统,无疑更加有力地直接地表明了生物现象与过程的计算特征。而这对于现代生物学的研究自然有着十分积极地影响。正如阿德勒曼所说:DNA计算机的构想,是从另一个角度出发启示人们用算法的观念研究生命。“算法对于生命的意义,就在于以过程或程序描述代替对生物的状态或结构描述,将生命表示为一种算法的逻辑,把对生命的研究转换成为对算法的研究”。⑻在这个意义上,生命就是程序、就是算法—一种能够实现自我复制、自我构造和自我进化的算法。在尼葛洛庞帝的《数字化生存》中,有一个已是众所周知的主题论断:计算不再只和计算机有关,它决定我们的生存。但在那,尼葛洛庞帝仅是从社会生活的意义上说这番话的。我们在这里则要赋予它另一种新的含义—生理生存,即计算决定我们的肉体的生存。
一方面计算机病毒具有生命的特征,另一方面生命又具有算法(程序)的特征—计算机病毒就是一个程序、算法。这就从正反两方面为我们把计算机病毒看作是一种可能的生命提供了充足的证据。然而一旦意识到计算机病毒是一种生命形式,那么计算机病毒就会引发一系列需要我们深思的关于生命的哲学性问题。这便是我们下面所要论述的问题。
二、计算机病毒引发的生命哲学问题
意识到计算机病毒是一种可能的生命形式,这是对人工生命观的具体实现。计算机病毒不外乎就是一种人工病毒—人工生命世界中的病毒,亦即人工生命世界中的一种具体的生命形式,就如生物病毒是现实生物世界中的一种生命形式一样。我们可以设想,未来人工生命一旦感染上这种人工病毒,它也会象现实生物体感染上生物病毒一样“生病”、甚至“死亡”。我们以为,把计算机病毒,以及更一般意义的人工生命视为一种可能的生命形式,是对人类已有的生命观的一次突破。在把人工生命和计算机病毒看作一种生命形式之前,人们所谓的生命形式就是40亿年前在地球上出现的碳化物生命,也即已经进化到当今21世纪的包括我们人类在内的现实生命物。这是人类始终确认的唯一的一类生命形式,尽管一直有人幻想着有地外生命的存在。如今,人工生命、计算机病毒,作为区别于碳化物生命形式的另一类生命形式展现在人们面前,这就使得我们不得不对生命的基本形式本身作出新的认识。生命不仅仅是以碳为基础的常规现实生命,也可以是以硅为基础的全新的人工生命(包括计算机病毒这种具体形式的人工生命)。甚至还可以是其他某种未知形式的。以人类为代表的现实生命形式,并不是判定生命的唯一标准。这是我们要表明的第一个观点。
人工生命是真正活的吗?计算机病毒是活的吗?这是一个很有意思的哲学问题。无疑,它们都不能离开计算机而存在。它们不可能在现实环境中生存。在这个意义上它们都不是活的。但是,又有什么样的逻辑根据或先验特权,规定我们必须在这个意义上谈论“活的”呢?难道只有符合人类已有的关于“活的”观念才算是真正活的吗?非也!生命不是独立存在,而是一个依赖环境的存在。人类不也不能走出地球吗?既便将来能够走出狭义的地球,也无法走出广义的地球—地球式的生存环境。不仅现实的具体生命形式的存在需要具体的生存环境,而且不同基本形式的生命也需要不同基本形式的生存环境。常规碳化物的生命形式需要地球这个基本的生存环境,计算机病毒、人工生命则需要计算机这个硅化世界作为其生存环境。以往人们只是认识到生命个体、类对环境的依赖,如今这种认识需要拓展了,拓展为一切可能的生命形式均依赖于相应的环境形式。没有超越环境的生命,也没有超越环境形式的生命形式。总之,生命本身必须被看成是属于一个整体,或者说,生命是包括在一个整体的系统之中,这个系统无疑不包括一些非生命的东西,如空气和水。生命对其环境系统是开放的,生命本身不是封闭的、自足的,它必须通过与其环境交换物质和能量才能存活。要求计算机病毒,人工生命走出计算机,就如要求人类走出地球、或地球环境一样,也许未来有一天,计算机病毒、人工生命能够进化到走出计算机世界,人类等常规生物也能进化到走出地球、走出太阳系,但那时的问题也已全然不同于现在的问题了。我们还是立足于当前的现实吧。如果能以这样一种新的观念来看待什么是“真正的活的”的话,那么,我们便不能简单地断言计算机病毒乃至一切人工生命不是活的。至此,我们是否可以说:所谓“活的”就是指生命体对环境的自适应性。当然这并不是对“活的”的本质性定义,而只是对“活的”的一个基本特征之一的描述,如果这一说法能够成立,那么我们便就可以断言:计算机病毒是活的,人工生命是活的。
确实,人们早已习惯认为40亿年前出现的碳化物生物体是唯一真实的生物体。但是正如卡斯蒂所说:“那仅仅是一种偏见。根本没有理由认为,我们所熟悉的世界拥有任何享有特权的本体状态,并且比我们用硅而不是体外创建的世界更加真实”。[2]这就是说,如果从计算机内部看计算机病毒、人工生命,而不是从通常的外部观点看的话,这些计算机世界与我们自己的真实世界具有相同的真实性。其实这种内在论的视角早在谈论相对论的有关物理问题时,人们就已有所了解,只不过人们尚不善于自觉地运用这一视角来看问题。爱因斯坦告诉过人们,如果你在一束光上看物理现象,那么与你只是静止地从地上看着这束光的掠过,其景象确实不同。由于光速而引发的时空收缩现象只有从你在光速以外的观测点上观测得到,而从光速内部却看不到。如果我们能够以内在论的视角进入计算机内部来观察计算机病毒、人工生命,那么无疑我们可以获得一些有别于外在论视角下的结论。最根本的是,内在论视角可以使人们“设身处地”的体会到计算机病毒、人工生命的真实性,从而认识到计算机已经使我们创建了一个无限的可供选择的世界—在这个世界中,生存着大量各式各样的不同于我们这个世界中的生物体。然而在这之前,我们完全被限制在一个真实世界中。我们完全可以相信,当人们对种种可能的生命形式有了充分的理解,人们就更能全面而深刻地认识现实的生命形式。我们甚至猜想,这是人类认识生命真谛的必由之路。最后我们要说的是,对于计算机病毒、人工生物是否真是“活的”这一问题的回答,要取决于人们回答问题时的立场、标准,从内在论的角度看,它们的确是活的。因为它们能够生长、繁殖、对环境做出反应,一般以碳为基础的生命形式能做到的一切它们都能做到。我们有什么理由说它们不是活的。可从外在论的角度看,从人们关于“活的”的固有观念来看,它们显然又不是活的,它们只是一种高度简化了的、离开计算机就不存在的生命形式。 但这里我们要表明的是,这种外在论的、固有的传统观念是到了该扬弃的时候了。
计算机病毒是否可以看作是生物病毒的数学模型或数学表征?它对生物病毒的研究、防治是否具有积极的启示作用?这或许也是值得人们思考的一个问题。有人曾针对人工生命成为真实生命的数学模型的可能性说过,人工生命对真实生命的“忠实度,最多只能算作中等”。[3]我们以为,目前的计算机病毒是否真实地表征了生物病毒这并不重要,重要的是它为人们研究病毒和防治病毒确立了一种视角、观念和方法。如今制造计算机病毒的人都是一些并不通晓病毒学的计算机黑客,是一些恶作剧的始作俑者。但是,如果我们的病毒学专家能够有意识的设计和模拟一些真实病毒,或许将来的计算机病毒就不能同如今的计算机病毒相提并论了。另外,在病毒防治问题上,已有人提出,可以把计算机病毒的消除方法用于对生物病毒的防治。根据对计算机病毒研究已得到的结果,将生物细胞中固有的防御性程序鉴定并分离出来,将有可能破译清楚生物病毒的程序。将这些程序以DNA的形式导入功能不健全或被病毒感染的细胞,则可能启动该细胞对病毒的主动杀灭作用,起到和计算机反病毒系统异曲同工的作用。[4]在已经揭示了生命的算法本质的今天,我们完全可以相信,计算机病毒及其防治会对生物病毒的研究和防治发挥积极作用。而且,对生物病毒的进一步认识,反过来也会对计算机病毒有更深刻的把握。正如现在已经认识到的,生物病毒对生物体并非只有一种致病的破坏性作用,它们也许就是一种机制,使新的突变型DNA在生物体之间最广泛地流通着。它们成为生物进化过程中不可或缺的媒体。或许计算机病毒有一天也会成为促使程序设计进化与人工生命进化的一种机制。
对计算机病毒的哲学思考刚刚起步,作为一种特殊的人工生命,它在未来的变化或进化,以及对环境(计算机网络世界)的影响和后果是不可预测的,即使只是原则上的预测可能也会不得要领。这就需要公众对它的思考、讨论,而决不是只想着怎样来对服它。就象生物病毒在现实世界中你不能彻底地消灭它一样,计算机中的病毒你也不能彻底地消灭它。人类应该让计算主体学会如何适应病毒,就象人工生命通过“进化”获得对寄生虫的自身免疫能力一样。而这意味着,对待计算机病毒,人类要改变原有的一些基本观念。
参 考 文 献
[1]张汉亭编著.计算机病毒的诊断治疗和预防M.青岛:青岛出版社,1991.P11.
[2][3] L 卡斯蒂.虚实世界M.上海:上海科技教育出版社,1998.P50—51.
[4] 曹晔等.生物病毒与计算机病毒的比较研究J. 科学(中文版)1997.4.
[5] 沃尔德罗普.复杂M.北京:三联书店,1997.P392.
(本文作者为湛江师范学院政法系副教授。)
来源:发表于《科学》2001年第6期
No comments:
Post a Comment