When I build a prototype of this public domain open specification, it will be at
http://sourceforge.net/projects/merklewebMerkleWeb is based on a variation of the Bitcoin security model.
MerkleWeb - a statistical Godel-like secure-but-not-perfect proof system for a global realtime peer to peer Turing Machine
Start with a 256 bit address space where each address points at a specific one of 2^256 virtual bits, not a byte or int like many hardwares take shortcuts in the consistency of their designs.
Add a 64 bit address space for time, so any past, present, or future state.
Use that as a combined 320 bit address space, where each address points at a specific one of 2^320 virtual bits.
Add 1 bit to the 320 bit addresses, so a 321 bit address points at a Godel-like statement which means "This specific one of 2^320 virtual bits is a 0 bit" or at "This specific one of 2^320 virtual bits is a 1 bit".
In 321 address space, there are 2 bits mapping to each bit in 320 address space.
If those bits, aligned at even bit indexes, are 10, it means "This specific one of 2^320 virtual bits is a 0 bit".
If 01, it means "This specific one of 2^320 virtual bits is a 1 bit".
If 00, it means "This Godel-like statement does not know if the specific one of 2^320 virtual bits is a 0 bit or a 1 bit".
If 11, that is a contradiction and must be backtracked until a state of the system is found that, as proven to exponential certainty but not Godel-like certainty, is a consistent state of the system.
Put constants near the end of time in 64 bit address space so they do not interfere with the Turing Machine running in the lower half for up to 2^63 cycles.
Name constants by their SHA256 secure-hash, so it is exponentially certain their name will never overlap any other constant in the whole system. The 320 address of any constant bit string is the 256 address from its SHA256 hash and the 64 time address of 2^64 minus its bit length, which can be calculated in twos-complement integer math as -bigLength, so if you're using Java's long number type for example, the constant bit string starts at a 320 address, and you increment the long until it rolls over to 0, each time observing 1 bit in the constant bit string that is named by that 320 bit address.
A Merkle Tree is a tree of secure-hash names of other Merkle Tree nodes, ending at any leaf data. Bitcoin uses Merkle Trees to keep its peer to peer network secure as the whole network globally agrees on who has how much money and who has sent and received how much money from who else. MerkleWeb (this software I'm planning) will use MerkleTrees similar to how Bitcoin uses them, but to refer to states of a peer to peer globally decentralized Turing Machine instead of money.
Each MerkleTree recursively refers to specific values for each of 2^321 bits, which is approximately 1 googolbit.
As parts of the system flow through the Internet and learn about other parts of the system, new MerkleTrees are created that have more "10" and "01" (adjacent bits, aligned at even index, in 321 address space) than "00" (which means don't know if its 0 or 1 in 320 address space). Each of those "parts of the system" is a MerkleTree that combines other MerkleTrees in usually different combinations than other MerkleTrees combine them.
Every 2 MerkleTrees that have equal childs are the same MerkleTree and have the same 320 address, since its made of the SHA256 hash of the bits of that MerkleTree (shallow view, only including the 320 address of each child in the hash) and 2^64 minus its bit length which is 320*childs. Therefore if 2 computers on 2 sides of Earth happen to calculate the same MerkleTree as a combination of the same childs and continue calculations based on it, when that information travels across Earth and they learn of eachother's calculations, it fits together since they both calculated the same 320 bit addresses.
In this MerkleWeb system, each MerkleTree, which can be as small as 640 bits, refers to a possibility of the entire state of MerkleWeb and the entire history of MerkleWeb, including all other MerkleTrees which represent other possibilities, an acyclic network of possibilities each referring to many other possibilities.
2 MerkleTrees can only be combined if they do not contradict eachother on even 1 bit. Each MerkleTree represents exact values for each of 2^321 virtual bits, approximately 1 googolbit, so that is not easy to do, but here's the rule that makes it practical for realtime speeds: Since we only store MerkleTrees that, proven to exponential certainty, have no contradictions between their child MerkleTrees recursively, we only need to keep track of which child MerkleTrees are compatible with which other MerkleTrees, and search any MerkleTrees we receive from the peer to peer network recursively comparing their childs to the childs we already have, and use only the parts of them we can prove, to exponential certainty, do not contradict eachother. Each cycle of the network, which I call a "global heartbeat" since these cycles and network hops are time aligned in the whole MerkleWeb, each computer creates a MerkleTree node that recursively refers to the largest set of consistent bits in the 321 bit address space (a possibility, a view of all past and present states of the whole MerkleWeb), and transmits that to peers.
Computers in MerkleWeb ask eachother for specific MerkleTrees, named by a 320 address. When its received, they SHA256 hash it to verify as an absolute proof that it has that 320 address, but there is a exponentially small chance some other computer in the network has a different MerkleTree that has the same SHA256 hash (which has never happened for the SHA256 algorithm), and there is a superexponentially small chance such a contradiction would survive in MerkleWeb as I'll explain as continuous "snapshot-of-the-whole-Internet" below.
The network routing behaviors can be built on top of the Turing Complete layer that MerkleWeb defines as bits. Start with some bit representation of NAND and 320 bit addresses for it to be a CONSTRAINT between, which all other logical operations can be derived from, build it up like a hardware system, build whatever software components you need to make the peer to peer network work, and to exponential accuracy it is accurate to call MerkleWeb and the entire Internet (or whichever parts choose to implement the MerkleWeb open standard) a quine.
NAND is a constraint between 2 bits in the past and 1 bit in the future, not an action. A more flexible definition of NAND would be to let it operate on 3 320 bit addresses, to NAND 2 of their targets and put the resulting bit in the other address. MerkleWeb is flexible and secure enough to work either way or both.
Technically the "acyclic network" is a closed loop allowing self-reference or other forms of cycles and we would get into all kinds of contradictions as Godel proved, but this system will prove to exponential certainty, backed by the security of SHA256 or whatever secure-hash algorithm you think is more secure, exponential certainty that the system is consistent on each computer and in the peer to peer network where local events change things and such information flows here a short time later, we also have a proof to exponential certainty that all these MerkleTrees will quickly fit together into a consistent snapshot of the whole decentralized MerkleWeb, so we can take continuous snapshots of the Internet (whichever parts choose to implement the MerkleWeb open standard) and have a new root MerkleTree snapshot-of-the-whole-Internet thats only a few seconds old, updating it continuously.
We could version and branch the whole Internet, states of its memory and computing states, as a peer to peer based Turing Complete cloud infrastructure, to use the whole Internet as 1 Turing Machine.
The backtracking and recalculating, from the NAND level up (with optional paravirtual optimization if the implementation of MerkleWeb supports it, but that doesn't change behaviors, just do combinations of NANDs faster), is proven to converge at exponential speed in the global peer to peer network because each virtual bit string of exactly 2^321 bits (which a MerkleTree refers to recursively) is a Bloom Filter. A bloom filter is a 1 dimensional array of bits, where all bits start at 0, and the only allowed operation is to change a 0 bit to a 1 bit, but no 1 bit ever becomes a 0 bit.
Bloom filters can be combined if no 2 adjacent bits, the first having even index, are both 1 or become 1. To combine them, OR their bits, verify the "2 adjacent bits" constraint is satisfied, and there is 1 more constraint: The state of the system must be the result of a past state of the system as the NAND logic, implemented in the past bit state of the system, defines.
Proven to exponential certainty, no bloom filter in MerkleWeb will have 2 adjacent bits, an even index and the odd index that goes with it, both being 1, because that would mean the specific bit in 320 bit address space (that those 2 bits in 321 bit address space refer to possibilities of) would simultaneously be 0 and 1. Many computers in the peer to peer network will have MerkleTrees (which each refer to virtual 2^321 bit bloom filters) that disagree with eachother and can not be combined (while some of their childs to some recursive depth can be combined with some of the local childs), but it will all converge as past states of the system and the NAND level definition of how the system must proceed from one state to the next are used for the peer to peer network to agree on how the Turing Machine states proceed in the global MerkleWeb.
MerkleWeb could work for other implementations of Turing Machines, but I chose a 256+64 bit address space because most computers work with address spaces, so existing technology could be mapped into this global address space bit for bit, like VMWare runs Windows with paravirtual optimizations for example, while some parts of the network would have to run at different speeds since network hops are slow and cpu cycles are fast, maybe some combination of darknets and global broadcasts. MerkleWeb is a general way to implement any kind of Turing Machine in a global peer to peer network and converge toward a consistent state continuously.
As I've defined it but not yet built it, MerkleWeb is a secure-but-not-perfect closure on Godel Numbering into 320 bits per Godel Number, a quine, and a peer to peer decentralized realtime practical global Turing Machine, where each Merkle Tree refers to specific values for each of 2^321 virtual bits which are used and combined as bloom filters to prove the system will converge exponentially fast toward consistent states except for the most recent few time cycles.