1. While it might be possible to make the next step in the process more difficult or less difficult than the previous step, I don't see a way to have enough control over how much more or less difficult it is. Can you suggest a reliable way that can make any given step exactly 3% more difficult? 18% more difficult? 31% less difficult? 205% more difficult? Keep in mind that ALL the future rules of difficulty adjustment need to be decided before the software is ever released and need to take into account every possible allowed adjustment. That way each node can calculate the new difficulty for themselves without any input from anyone else. Any change to difficulty adjustment that happens after the first block is mined would require a hard fork.
I do not have a proof that you can steadily change the difficulty via border conditions as proposed in the topic. But here is an even better solution.
Since every next step has to contain all the information from all the previous steps the difficulty infinitely increases with time. And you have to set the number of steps to be followed. Like "you only need a solution good enough to yield the correct blocks for 10 steps". If at some point it becomes too difficult or too easy to find solutions - the system increases or decreases the number of steps to be followed. This adjustment in the difficulty should be reliable enough.
2. I think that it may be possible to have some arrangements that are unsolvable. This would kill the blockchain, since it would be impossible to create a new block that progresses to the previous state in a single step.
True. Not every distribution is reachable in the Conway's Game of Life but I was only using it as an example. There are games where every distribution is reachable or at least there is a set class of distributions that are reachable (for instance it is not hard to prove that all checkerboard distributions are reachable in the Conway's Game) and you can make miners work within that class. The main idea is not to stick with a rather simple and pointless Conway's Game of Life but to find a kind of game that is easy to build in hardware, that allows for complexity (i.e. at least allows a Turing machine to be built), and behaves similarly to Conway's Game in that it can not be reversed without some kind of Mote Carlo search. I know of at least one such a "game" that is being played right now by some unknown computer - our universe. It has simple rules that are strictly followed. Every distribution in it is reachable. It is probably played in reverse since quantum mechanics do not allow it to be solved forward. It has border conditions to reduce complexity (black holes that erase information). We are not gods (yet) but why not try to run a similar experiment with the entire humanity computing power.
The simplest example I could come up withImagine the following set of rules on a 2d square grid:
1. Every turn every cell checks if the cell above it is a 1. If so it becomes 1. Otherwise it becomes 0.
2. If the cell is in the row number 0 or below, then it becomes 0.
New blocks in this example will be added at row number 1.
Suppose the first block has to be 1010
A lucky miner comes up with a solution:
4 ....
3 ....
2 ....
1 *.*.
0 ....
You can check it playing forward according to our rules:
4 .... > ....
3 .... > ....
2 .... > ....
1 *.*. > ....
0 .... > ....
The solution does include our block at row 1 and it does end with an empty plane on the next step.
Now the default state becomes
4 ....
3 ....
2 ....
1 *.*.
0 ....
Suppose the next block shold be 0001. Another miner solves this one:
4 ....
3 ....
2 *.*.
1 ...*
0 ....
Lets test it out:
4 .... > .... > ....
3 .... > .... > ....
2 *.*. > .... > ....
1 ...* > *.*. > ....
0 .... > .... > ....
It works because it contains the desired block in the distribution and it plays toward the default distribution.
Now lets suppose that figuring out a solution for the next block (1100):
4 ....
3 *.*.
2 ...*
1 **..
0 ....
took way too long because one had to calculate three steps forward (or replicate the previous solution on the entire plane which is the same thing). Then the system automatically decreases the difficulty to "2 steps are enough". Next block is 1000 and the system will settle with:
4 ....
3 ...*
2 **..
1 *...
0 ....
It does not play toward the entire default distribution at the moment, but it gives the correct blocks in the row #1 for long enough (for two steps) which is enough with the current difficulty