Thinking about Bricking, from yesterday’s post (https://www.lesswrong.com/posts/eMYNNXndBqm26WH9m/infohazards-hacking-and-bricking-how-to-formalize-these), and realized that the answer to the question “can a Universal Turing Machine be Bricked” is an obvious yes—just input the HALT signal! That would immediately make any input past that irrelevant, since the machine would never read it. Is there a way to sidestep this such that Bricking is a non-trivial concept?
In a real-world computer, sending a HALT signal as an input doesn’t tend to hard brick (https://en.wikipedia.org/wiki/Brick_(electronics)#Hard_brick) the machine, since you can just turn it on again with relative ease. My guess is I’m missing some very basic concepts here, but I’m finding it hard to find any existing articles on the topic.
Technically, all the input to any Turing machine in the usual formalism is provided up-front as tape symbols, and output is considered to be the state of the tape after the machine halts. “Bricking” requires some notion of ongoing input concurrent with computation.
There are many models of computation, and some of those may be more suited to the question. For example, there are some models in which there is an “I/O” stream as well as a “memory” tape, with associated changes to the state transition formalism. In this model, a “bricked” machine could be one which enters a state from which it will never read from the input stream or write to output. Some machines of this type will never enter a “bricked” state, including some capable of universal computation.
Real-world computers are both more and less complex than any such formal model of computation. More complex in that they have a great deal more fiddly detail in their implementations, but less complex in that there are physical upper bounds on the complexity of algorithms they can compute.
Thinking about Bricking, from yesterday’s post (https://www.lesswrong.com/posts/eMYNNXndBqm26WH9m/infohazards-hacking-and-bricking-how-to-formalize-these), and realized that the answer to the question “can a Universal Turing Machine be Bricked” is an obvious yes—just input the HALT signal! That would immediately make any input past that irrelevant, since the machine would never read it. Is there a way to sidestep this such that Bricking is a non-trivial concept? In a real-world computer, sending a HALT signal as an input doesn’t tend to hard brick (https://en.wikipedia.org/wiki/Brick_(electronics)#Hard_brick) the machine, since you can just turn it on again with relative ease. My guess is I’m missing some very basic concepts here, but I’m finding it hard to find any existing articles on the topic.
Technically, all the input to any Turing machine in the usual formalism is provided up-front as tape symbols, and output is considered to be the state of the tape after the machine halts. “Bricking” requires some notion of ongoing input concurrent with computation.
There are many models of computation, and some of those may be more suited to the question. For example, there are some models in which there is an “I/O” stream as well as a “memory” tape, with associated changes to the state transition formalism. In this model, a “bricked” machine could be one which enters a state from which it will never read from the input stream or write to output. Some machines of this type will never enter a “bricked” state, including some capable of universal computation.
Real-world computers are both more and less complex than any such formal model of computation. More complex in that they have a great deal more fiddly detail in their implementations, but less complex in that there are physical upper bounds on the complexity of algorithms they can compute.