Genetics from a software perspective. With a security touch.

One intriguing observation about the genetic code is that, in the end, it's pure software. In a conceptual sense, the genetic material is just abstract information: sequences of numbers (similar with the machine code). And, while the "software" would be the information contained in the genetic material, the "hardware" is the living organism that hosts it. The hardware architecture used here is not the classical one (the von Neumann design) but instead based on some sort of contrived Turing machines. In the end, these DNA strains contains regular genetic instructions which, at an abstract level, can be paired with the instructions accepted by a read-only Turing machine with N heads (move up or down the strain, read information, jump X steps, etc).

These instructions are also organized to create higher-level software constructs like repetitive code, bootable sequences, no-ops, redundant information, etc. Also, the current in-memory state is represented by various enzymes that are reading the DNA. Even more, you have some concept of computer networks here: a "single node" in our computer-geek speak is a single-node unicellular microorganism. A "multi-node computer" is a multicellular organism (a bird, etc). And all these cells are communicating through chemical, or in some case electro-chemical processes.

Anyway, the technical analogy between genetics and computer science is a really intriguing analogy (which deserves a lot of attention), but I won't go in any detail here.

Artificial genes

Now, let's go one step further. Let's ignore the inherent difficulties for a second and pretend that we already have teams of sufficiently experienced software engineers that will be able to create truly working artificial genes. These genes might be able to coordinate the behavior of a cell that lives on its own, with all the characteristics of a living organism.

Let's also ignore the possibility that these genes are malicious (we will go there in a second). Since we have this practical method of building artificial genes, there is also a potential to have an entire genetics industry around it, one that would be primarily used to produce better drugs. And we will reach a point where the pharmaceutical industry and the software industry will have something in common. (By the way, unrelated with the subject, Cameron Purdy wrote about an interesting parallel between the existing software industry and pharmaceutical industry)


So, assuming that we have artificial working genes, we can also have malicious ones. I mean artificial malicious viruses - the genetic equivalent of Slammer if you want. How do we protect against that?

Well, nature already has a protection mechanism known as natural selection. We don't want that protection of course, because the mechanism of natural selection is designed to protect a species, not its individual entities (isn't it funny that, grammatically speaking, "species" is spelled as a plural term even at singular?). But, obviously, the natural protection techniques of a living organism will adapt way too slowly to this newly growing population of artificial genes. And let's not forget that in many cases, not only entire species but entire classes of species are now completely extinguished due again to the mechanism of natural selection.

The danger of malicious artificial viruses is pretty high, and, as we currently stand, we have absolutely zero protection against it. Fortunately, genetics is still in an incipient phase but who knows what will be the state of things two hundred years from now?

Digital signatures

So natural selection is not a reasonable protection mechanism. Maybe a solution would be in the lines of... digital signatures. Here is how it works: after each living organism is born, it's body has to be injected with a well-controlled genetic material that modifies every cell such that it will accept only incoming viruses that are digitally signed with a certain public key. This is the same public/private key technology that we use currently to accept trusted binaries in Windows or Java for example. Given that, any cell in our living organism will not accept unsigned viruses (which will put an end to AIDS, flu or any other current viral disease). Or, as an alternative, the genetic material can be received from the natural mother.

The same process of digitally signing all your cells in your body can be also used to another goal - to give each living human a unique digital identity. This can be used for good or bad. It can be used for good reasons to design certain genetic medicines that will only work for you and will not affect other people around you. Or, used for bad by a government that wants to control everything, and reduce the privacy of the people that it governs (I'm sure that the privacy people will complain about this). Which leads me to a point: if we have digital signatures, we need also to trust a central authority that keeps these public/private key pairs. This authority will be the only one able to digitally sign any genetic material that can be either used to "sign" a certain individual, or to "sign" some approved drugs. And this trust is a matter of life or death.

All this sounds pretty scary, I agree. Enough with doomsday scenarios. So let's move on to a different subject, shall we? 🙂


Assuming you created a true drug that cures a certain disease, how would you carry on the licensing aspects for your work? Would you use GPL, CDDL, or a commercial genetic software license? Would you have to sign off an EULA before opening a box of medicine? OK. I am going too far now :-). Or maybe not...

Whatever the future is, genetics will have an interesting array of legal aspects, which I am sure will be startling. Big corporations will want to preserve their investments in creating their latest drug. And these investments will likely to be huge. And I am sure that there will be another never-ending discussion about viral versus non-viral licenses (which, by the way, introduces a new meaning of the word "viral" in genetics :-)).


Skip to main content