Interview with David Deutsch: The Universal Constructor [~early 2022]
On what the existence universal constructor tells us about fundamental physics.
Note—for an introduction to constructor theory, see my earlier post.
Logan: A universal constructor is a theoretical machine that can cause any possible physical transformation. Why is understanding the universal constructor important to understanding the nature of reality, rather than it being merely an engineering curiosity?
David: It’s more than just a curiosity. The idea of the universal constructor is basically ancient. It began in antiquity with the idea of the cornucopia, which is a thing that produced an endless supply of whatever food you liked. But then pretty soon people begna to think about a machine that could produce anything you liked. And this has been explored in science fiction.
So I don’t think it’s just an engineering curiosity. It would be a dramatic and important innovation. But you ask about its connection with fundamental physics. It is basically a generalization of the idea of universal computation. And universal computation as conceived of by Babbage and Lovelace, and then by Turing, is really the only way to understand what computation actually is. A non-universal theory of computation wouldn’t be a theory of computation at all. That would be just a theory of engineering.
So the theory of universal computation, which I then brought into the quantum era by developing the theory of the universal quantum computer, is the assertion that such a thing can exist. And that is an assertion about the laws of physics–the laws of physics are such that there is a single machine that can mimic the computational power of any other machine to arbitrary accuracy. All you’d have to give it is fast hardware and memory.
The universal constructor comes in here because that universality is not the only one that oculd exist, and, in fact, I don’t think it’s the only one that does exist. There’s also the question of not just performing any computation, but of performing any transformation of physical objects–and not if given enough memory and so on, but if given only knowledge. Because if there’s something you’d have to give it other that knowledge that the universal constructor could not itself provide, then it’s not universal. So it has a similar but different logic from the universal computer, and its relationship with physics is a generalization of that of the universal computer.
Logan: You wrote in the foundational paper on constructor theory that the possible existence of a universal constructor might be proven from independently motivated constructor theoretic principles. Since writing that paper, have you made any progress on, if not the proof itself, what the proof might look like?
David: Yes. In fact, I have been struggling to complete a paper on the universal constructor from within constructor theory. I think I have a proof, but it is rather cumbersome and clunky, and parts of it are not intuitively compelling. I’ve been struggling with trying to complete that paper for some time now, but I have done enough to convince myself that, to put it in a mathematical way, it is a theorem of constructor theory that the universal constructor exists. That is, a machine which can be programmed to perform any transformation that any other machine can be programmed to perform.
Logan: Let’s say this proof doesn’t pan out, or that it turned out that actually a universal constructor is impossible to build. What might that tell us about the laws of physics? For instance, might it tell us that the principle of operability is false?
David: What it would tell us depends on what exactly went wrong with the proof. I think whatever it was that went wrong, it would be interesting. It would tell us that there isn’t an apparent connection between understanding the world and controlling it, which there appears to be. So, it could be that, if there is no machine that can be given just knowledge to perform any given transformation…I can’t quite imagine exactly what this would imply!
But if there is something that you can’t program a machine to build, then that really means that there’s something that can’t be built. And if there’s something that can exist but can’t be built, then it might mean that there’s a resource in nature that is finite and not replenishable. Not just a resource like like negative entropy, but a resource like, say, a magnetic monopole. We think there aren’t any magnetic monopoles, but suppose that we’re wrong. Suppose that there is exactly one magnetic monopole. That would mean that any machine that included a magnetic monopole in its design–such that it couldn’t perform its function without the magnetic monopole–then that particular machine could perform a task that no other machine could perform. And if the magnetic monopole falls out and rolls across the floor and you can’t find it, then you can’t perform the task at all. And even if you can find it, it can only be performed once by that machine, and there will be a maximum speed at which it can go, and so on.
So that’s the kind of thing a failure of the proof would say. It would be a de-universalization of our fundamental understanding of the universe. When thinking about more and more fundamental things, we tend to think that the laws about fundamental things are going to not refer to specific objects. For instance, there isn’t a law that applies just to the Eiffel Tower. There are laws that apply to iron structures and to structures built in gravity, and so on. Any truth about the physics of the engineering of the Eiffel Tower can be expressed in terms that do not refer to the Eiffel Tower. But that might be false, and if it’s false, then it would definitely mean that there is no universal constructor.
Logan: If a universal constructor is possible to build, then presumably people are entities that can build them (once they have the requisite knowledge). Then why would a person not be considered a universal constructor, since every transformation that a universal constructor can cause, a person plus a universal constructor could also cause?
[Note–in the time since this interview was recorded, David has stated that disobedience is by far the primary reason that humans and human societies aren't universal constructors.]
David: The answer is imperfection. A constructor is actually an unphysical limiting case of real physical objects. So there is no such thing as literally a constructor for converting hydrogen and oxygen into water, for example. You could perform that with 99% accuracy or 99.7% accuracy, but not with 100% accuracy or reliability. There’s always a chance that some of the inputs will escape, and so on. For any given machine that can imperfectly convert hydrogen and oxygen into water, there is another machine that one could build that could cause the transformation less imperfectly. But there is no machine that could do so with absolute perfection.
You can regard a human being as a highly imperfect universal constructor in that, given enough knowledge, a person could build a universal constructor that’s better than itself. In fact, that’s the secret to the proof and to the theory of the universal constructor as I see it.
But suppose you need more memory than the brain has capacity for. Then, unlike with a computer, it’s not a trivial thing to just give it more memory. With the universal constructor, you have to tell it how to make that additional memory. So it’ll have to be given the program for making enough memory to do the task of a universal constructor. And once we’ve given it all the information to perform the task, there might not be enough time in a human lifetime to do it. Therefore, we’d have to be given a program that would extend the human lifetime. So the degree to which a person is a universal constructor–it’s rather in a Pickwickian sense, since it’s so highly impractical and would require so much knowledge that we don’t currently have, that for most purposes it’s not useful to consider a human as a universal constructor.
There’s also the fact that neither a human nor the set of all humans is obedient. A universal constructor has to be perfectly obedient, and people and collections of people are disobedient. In fact, disobedience is necessary for their more important functionality of explanatory universality.
Logan: Have you given any thought to what the economic implications might be if and when humans have commodified the universal constructor?
David: This has been studied by many people before. I think people have had somewhat the wrong idea about what the universal constructor might look like, but it doesn’t make any difference when thinking about economic issues. I think one thing that people may have gotten wrong is that the universal constructor won’t be a sudden a change, it won’t be some singularity.
It is true that a universal constructor can be programmed to build two more, and those can be programmed to build two more, and so on. But, firstly, this will at first be done rather inefficiently (The very first one will have to built by humans.). And, secondly, the issue of ownership of valuable raw materials does not go away once the issue of human effort goes away. Human effort will go away apart from the effort of programming universal constructors, but that’s nontrivial, so people will effectively be writing programs. That doesn’t mean that they’ll be doing the same things that programmers do today. It’s more like they’ll be doing the same sort of thing that scientists and engineers do today. Mostly, they make designs in a computer.
But then, for example, if you want to convert some raw materials into busts of Napoleon, you will run into the problem that someone else wants to convert those same raw materials into busts of someone else. We know how to resolve issues like that–it’s with ownership, private property, capitalism, and also a regulatory framework based on the rule of law, that kind of thing. So we know how to do that, but it does mean that you can’t just design a thing and have it built. It will still cost something. And how do you make money in a society with universal constructors? Well, you would make money the way engineers do today–by programming computers.
Logan: How might a better understanding of what is required to create a universal constructor improve our understanding of the physics of thermodynamics and information? I ask because you, Chiara Marletto, and others have been investigating how constructor theory can resolve issues in both information theory and thermodynamics.
David: I think constructor theory can definitely help to provide deeper foundations to thermodynamics. Whether the universal constructor will is doubtful, but one can’t really tell until one has that theory. I’m afraid the Devil is in the details here.
Thermodynamics is important even when you build a steam engine and a wide variety of other machines. When they are built with universal constructors–or with machines that are made by machines that are made by machines that are made by universal constructors–it will still be true that thermodynamics plays a role. But whether the foundations of the theory of universal constructors will have a role, I don’t know.
Logan: You also wrote in the foundational paper of constructor theory that there must be a smallest universal constructor. Do you think this object’s size actually is will be interesting with respect to our understanding of nature, or do you think it’ll just be an incidental detail?
David: My present view–which has changed somewhat from when I wrote that paper–is that it’ll be more of an incidental detail. It might be an interesting curiosity–rather like asking, ‘What’s the simplest possible Turing machine?’ It’s a curiosity, but it doesn’t help us with advancing either the theory of computation or the engineering of computers. It might one day–it might come up and be relevant–but it doesn’t look as though it will be. And I think the same is true of the universal constructor.
I think the reason I had a bit of a misconception about that is that I hadn’t realized at that time how much of a bottleneck generating the knowledge to program a universal constructor will be.
Say we find out one day that the smallest universal constructor is made of 37 atoms, and that you provide those with a bootstrap program which takes on board other atoms from the environment–from empty space or from the ocean or from something generic–and it makes a bigger constructor, which makes a bigger and more powerful constructor, and so on.
Eventually, the sequence gets to a usable constructor. Well, your program for doing that will always begin with that same preamble–what this 37-atom thing must do to make a bigger thing and a bigger thing and so on. The guts, the important part, of this program will be what happens after that. So you may as well start with that universal constructor, rather than make the smallest one.