ATTENTION:
THIS HERE IDEA IS A WORK IN PROGRESS, AND HAS BEEN PUBLISHED IN EXTREME DRAFT INCOMPLETE FORM AS IT HAS BEEN BURNING A HOLE IN MY BRAIN AND I DON'T MIND PUBLISHING SOMETHING MOSTLY INCOMPLETE. I KNOW A LOT OF THIS MAKES NO SENSE. I HOPE TO CORRECT THIS SOON. IF YOU NEED ME TO COMPLETE THIS, OR IF YOU THINK YOU CAN HELP ME THEN PLEASE SEND ME AN EMAIL. I HAVE ALREADY GOT SOME GOOD FRIENDS READY TO HELP ME CREATE AND MANAGE A GOOD FORUM ONCE I HAVE DESCRIBED MY IDEA MORE COMPLETELY, SO FOR NOW JUST PRINT THIS OUT AND COME BACK OFTEN.
After spending years reading a bunch of stuff on the web, and little pieces of a couple of books, (Darwin & Dawkins) I came up with an idea that may be worth discussing and developing. Unfortunately, I am pretty busy trying to help people with incredibly difficult, time consuming and annoying computer problems, so I figure I am better off passing this idea onto the global internet community to actually make it happen. Besides, my main idea is probably fundamentally flawed, unworkable, and has probably been thought by thousands of smarter people long before I did.
After writing down my thoughts, then doing a bit of a web search to try to find anything similar, I still found NOTHING proposed like what I have in mind, and will attempt to relay to you all below. Sadly, my communication skills leave much to be desired, so this might be painful for you to read.
Still, I hope you enjoy it, and find it interesting enough for ya all to go ahead and just get started implementing it, either in the lab, or in the wild.
DISCLAIMER: I WILL, IN THE COURSE OF DESCRIBING THIS IDEA, OFTEN REFER TO STEALING OTHER PEOPLES SOFTWARE AND HARDWARE RESOURCES. I DO SO KNOWINGLY, REGARDLESS OF THE CONSEQUENCES. IF YOU KNOW THIS IS WRONG, AND NEED TO ARREST OR OTHERWISE PUNISH ME TO PROVE YOUR POINT THEN SEND ME AN EMAIL, AND I'LL HELP YOU DO SO. IT IS BLATANTLY CLEAR TO ME THAT THERE IS NOTHING WRONG WITH STEALING OR OTHERWISE TAKING UNUSED RESOURCES AT THE EXPENSE OF OTHERS, THE AMERICAN, AUSTRALIAN, AND ENGLISH GOVERMENTS HAVE A TIME HONOURED TRADITION OF DOING SO, AND CONTINUE TO DO SO TO THIS DAY. AT LEAST HERE I DON'T BOTHER LYING ABOUT IT, OR TRY CONCEALING IT BEHIND A VEIL OF LEGITIMACY.
TITLE:
Ideas on methods to attempt to provide a darwinian evolutionary environment using existing software and systems on the internet, hosting pointless quickly self replicating, randomly mutating viral code.
OTHER TITLES:
A way to create a homogenous distributed PC environment using hijacked internet connected PCs to hopefully allow a selected range of slightly modified computer viruses to randomly mutate and replicate at high speed for no apparent reason.
A possibly new idea to create a distributed environment to enable applications or programs to randomly mutate their codebase and replicate.
A theoretical method for providing a computing environment to allow code to write itself worse or better.
Techniques on providing an internet networked homogenous virtual PC enviroment for self replicating randomly mutating viral code.
How to make your virus write itself better.
SUMMARY OUTLINE:
Take a bunch of internet connected pc's. Infect them all with a benchmarking and scanning system to help automate the selection of systems that have the following traits.
- high speed multiple core / multiple cpu system
- recent cpu with better virtualization support
- lots of ram
- high speed hdd i/o
- low user usage
- high speed internet connection
the goal is to find systems that are capable of running multiple hidden virtual machines in parallel in the background without the user being aware.
as systems are being found, list them with their specs in a distributed peer to peer database.
infect the most suitable systems only with a loader app.
command the loader app to download a preconfigured winxp ready to execute hybernated vpc.
MORE GENERAL OUTLINE:
The purpose of this computer environment is to create a place where a program can safely replicate with a random mutation factor at each replication.
I imagine a computer environment, provided perhaps as a result of a virus, trojan, or loader application.
The computer enviroments I have read about till now tend to suggest that an environment should be defined, with specific limitations. These can be adjusted, but the environment that is provided for the self replicating computer programs is nonetheless nothing more than a subset of the complete environment available within a typical PC.
I suggest creating an environment on a specific computer that programs can run in, with an ability to replicate themselves to other similar environments on other networked PCs. This network must extend to incude all computers available on the internet.
This environment is nothing more complicated than a virtual computer, that can provide the same input and output systems as the typical PC that is common in households today. This virtual computer operates in the background, perhaps coexisting with other virtual computers. It should be undetectable under normal circumstances.
I propose that to speed the development of self-evolving code the environment should always be a duplicate of the enviroment that provides it. As the providing environment develops, so should the virtual environment.
BEcause the providing environment is a typical PC, it makes perfect sense to me that the environment should be a virtual PC operating on a PC.
The problem, with viruses that self reproduce is that they can easily destroy the enviroment that they operate within. As they operate as an application on a usual PC, they will bring down the environment in cases where their programming fails. When this happens, the user becomes aware of the viral infection, removing it and subsequently terminating the potential for the virus to reuse the environment it previously had access to.
Applications, such as self reproducing virus, generally require a large number of environments to be self sustaining. As these enviroments change, the viruses die out or become marginalized to a degree that they are no longer able to reproduce at the same rate as they are terminated. This results in slow extinction.. though it is possible that some computer viruses may remain active in the form of isolated clusters for an extended period of time. Ultimately, all these computer viruses can do is to try to hide themselves and their actions from the user by remaining reliable enough to be undetectable.
Frankly, this is shit. If a self reproducing virus must be so reliable that it cannot consistently crash the computer environment that it operates within, then it is doomed to remain a typical computer virus. For the purposes of beginning the creation of intelligent self mutating viruses I think we all should agree that the virus must be able to crash the computer it operates within, WITHOUT AFFECTING THE RELIABLIITY OF THE UNDERLYING OPERATING SYSTEM OR THE COMPUTER HARDWRAE.
So, I guess this is beginning to get confusing, but please try to stay alert and understand me as I suspect this is a critical success factor in the development of intelligent software, and perahps even the development of true artificial intelligence on a computer.
Put simply, we want (need!) to provide environment where computer viruses can randomly mutate, crash and burn, mutate again thousands to millions of times, crash and burn, yet never destroy the environment that they are operating within to the degree that they cannot continue to mutate randomly and continue to crash and burn.
It stands to reason that if a computer virus is allowed to succesfully randomly mutate, as an individual, within an environment, then occasionally the mutation will NOT cause a crash.
If this virus after a random mutation can still reproduce and spread into other environments (other vpc's) and continue the cycle of random mutation and reproduction, then we have a candidate for artificial intelligence.... once it is advantageous for the virus to be intelligent in the ways we consider to be intelligent!
Why not define this same thing in another way to share my perspective.
Assume that I can infect a computer with my VPC.
And that I have a computer virus that can mutate randomly, yet when it crashes, it only crashes the VPC that it operates within.
If we imagine that this VPC is capable of identifying that it has crashed, and can subsequently terminate itself gracefully, without alerting the user of a computer to the fact that it has hosted a virus that has crashed, then we are providing an underlying environment that can host many such VPCs and viruses without failing.
I assume that the base environment is a number of internet connected computers that are capable of operating VPCs very similar to them themselves. These VPS must have the capacity to host viruses that can randomly mutate. Thus, they need to be able to detect when they have failed, and shut down. There is no need for the results or causes of the viral failure to be communicated to other VPCs. THis is because the viruses that fail are required to become extinct, to crash the VPC environment, to allow the underlying base environment to host another VPC, and subsequently another randomly mutating virus.
Yet another tidbit of information that may be integrated into your understanding of the way that I see this system working.
We have a bunch of PCs, all connected. Rather than these PCs being infected with viruses directly, these PC's are infected with VPCs that can operate at a background level. When a PC is infected with a VPC, or perhaps numerous VPCs then it must be so that the user of the underlying PC is unaware of the infection. This is critical to ensuring that the PCs are left in an operational state, and that the VPCs can continue to use the PCs even after multiple failures of the viruses hosted within.
The VPCs should have the following abilities
- a faithful clone of the PC environment that they operate on.
- an ability to remain undetectable by conventional means, to ensure they can maximise their ability to remain available
- an ability to shut themselves down (terminate) when they detect the program that they are hosting has failed.
- an ability to reproduce themselves on the same PC environment
- the capability to reproduce themselves into other PCs
- a way to detect if it is already present, and to regulate the number of copies to match the abilities of the underlying equipment
THe viruses should have the following abilities
- to mutate themselves
- to spread to other VPCs on the same PC
- to spread to other VPCs on other PCs
- to perform other actions as required or as defined by the random mutation
Some variations must exist on the above dodgy lists!
But one obvious one is central control and communications. Any attempt to centrally control or direct the viruses themselves will necessarily fail unless their survival (reproductive capability) is dependent on sucessful communications with the central authority... but even then, I can imagine circumstances where a series of random mutations could create a virus that falsifies it's communications.
ANother obvious one is the VPC. It could be configured to rely on a third party application to spread, that could itself be controlled. SO central control of the survival of an otherwise succesful intelligent virus could theoretically be exercised through control of the third party application.
1. Application to prepare a computer for infection by VPC
2. VPC
3. Virus infects the VPC
4. virus mutates
5. virus replicates
The application is where the control could originate from, but this control would possibly be limited to allowing or denying the survial of the VPC, and the subsequent place where a succesful self reproducing virus could live.
If we guess that a virus mutates in such a way that it fails to maintain the ability to reproduce, then it will die out immediately.
If we guess that a virus mutates in a way that its ability to reproduce is heightened, eg. by removing a part of its codebase that slows its reproduction down, then it is imagined that it will survive and quickly etablish itself as the dominant individual.
It will remain the dominant individual until a mutation, or series of mutatoins, occurs that give it an advantage over the dominant individual.
One advantage of this environment that is provided is that it can be populated immediately with a variety of existing self replicating viruses.
- yet to add or describe properly (possible principles of the idea)
-mutation must occur before the replication where possible, to avoid the environment being overrun
-mutations are not simply a 'smashing out' or destruction of code, rather, mutations can be a copy/paste, copy/smash/random paste, etc.
picture 100 methods of parsing code aka debug style, and applying 100 simple definded methods of modifying the code in ways that are predifined by simple routines. these are also considered 'random' mutations... even though they are not random by most peoples understanding, these 100 methods, using even the most complicated mathematical techniques, are random.
-viruses chosen to infect vm must be picked for excellent self-reproducing abilities independently of
-must clearly distinguish between ai and alife (the idea refers to ai but this is overly optimistic, alife is probably more accurate, unless the vpc somehow has user interaction that selects for intelligence after the random mutation)
Definitions
Xen - an open source virtualization system
Background on the author.
Hi, my name is Xenek Rene Boutard Stoehr. Just because so many people ask, I think my name is Greek, pronounced senek, and might mean 'stranger'. I like to say to people that I just get 'stranger, and stranger, and stranger', just to keep them on their toes. By the way, I am not greek. I am from Cairns, Queensland Australia. A born & bred local Aussie, probably with Swedish, German, Swiss & French ancestors. I can understand English, a little Swedish, and almost no Danish, French or German. I want to play the harmonica but am too retarted and lazy to learn, and too retarted and lazy to change my circumstances to solve this problem just yet... thought I am working on it.