Turing machines and the CBDTPA
2002-03-31 01:00:00 UTC
Back in the 1930's, Alan Turing invented an information-processing machine which he proved was capable of performing any operation that could be specified algorithmically. The Turing machine, as it came to be known, was never really intended to be actually implemented. Its operations were simple enough that one could, with a bit of patience, emulate its behaviour using nothing more than pencil and paper.
A device (or a programming language) is said to be Turing-complete if it is possible to write a program for it which will emulate the behaviour of a Turing machine. One of the interesting properties of a Turing Machine is that it is itself Turing-complete. Furthermore, all computers that have been created so far have been possible to emulate using a Turing-machine and all computers available today are Turing-complete. The consequence of this is that any computer available today can emulate the behaviour of any other computer available today.
The reason I'm explaining all this is because of a proposed law, the Consumer Broadband and Digital Television Promotion Act. The aim of the law is to prevent copyright infringement by requiring all computer hardware and software to contain technology to prevent any unauthorised copying of copyrighted material.
While this might, at first glance, appear almost feasible, some rather serious problems with it become apparent when considered in the light of these ideas of Turing-completeness. If a computer or a programming language is Turing-complete, then it must be possible to use it to implement an emulator for an older machine which doesn't have these copy-prevention mechanisms. So, if it is the case that today's computer hardware must be outlawed in order to protect copyright, then it must also be the case that Turing-complete devices and languages must also be outlawed. I wager that making a computer that isn't Turing-complete yet still does anything remotely useful will be an impossibility.