Tau Chain is a decentralized peer-to-peer network that claims Ethereum’s Turing completeness is the wrong direction as it is undecidable logic and missing an intricate part: proof of language.
Cointelegraph spoke with Tau Chain developers HunterMinerCrafter (HMC) and Ohad Asor of the Tau team on the project and how it differs from other decentralized networks such as its ability to prove assertions about code using “decidable logic.”
The Tau system is weaved like fabric with three distinct characteristics: rules, proofs, and computer programming. Rules of the network and protocols are determined by its user base with independent worlds created on top of the Tau. This gives the Tau Chain the unique ability to be a simplified and unified language. This enables it to provide “decidable” computer programs as opposed to a Turing complete protocol like Ethereum.
“Tau is a blockchain for abstract protocols, coordinating both their definition and execution.”
— HunterMinerCrafter, Tau Developer
The name “Tau” refers to tautology and works as a software client of ontological rules. The rules are determined by using a “Reasoner,” which uses logical reasoning and supplied proofs. The language and communication will be human readable and also communicate as HTTP after implementations of RDF. Tau will be able to communicate with vast amounts of peer-to-peer networks acting as a “decentralized Github and App store.”
Cointelegraph: How do you implement the use of any P2P network for users with Tau Chain?
HunterMinerCrafter: Tau is a blockchain for abstract protocols, coordinating both their definition and execution. It is a system for defining, forming, and maintaining transactional overlay networks on the open internet, of any function or purpose.
In theory, any existing protocol's semantics could be implemented on it. However, not any protocol syntax necessarily could, directly. Some existing protocol specifications may need an extra "bridge" to communicate between other representations and Tau's specific system of URI and XML based symbols.
Ohad Asor: Tau is a general programming language that can express anything a computer can do. Hence, it is possible to implement any software with it.
But it is the first programming language that has built-in P2P and blockchain: it is not only a standalone language, but can function collaboratively while remote computers are able to synchronize in a trustless way, thanks to the blockchain builtins (over a unified Tau Chain), and thanks to DHT builtins they are able to share data that's trustless.
The programmer in Tau's language can use DHT and Blockchain primitives as part of the language. Tau offers more features to adapt to a decentralized network, to mention two main ones: Given a Tau code, one can prove assertions over the code (using Tau client or other proving software). That is, verifying that the code meets formal requirements does not require QA!
It is possible to have a mathematical and definite proof for every correct statement about the code. This magic is thanks to the language not being Turing complete (which represents undecidable logic) and Totally Functional programming language that has decidable logic but still can run all computable programs.
“Tau Chain will be a collaborative, community effort to form a stable network of distinct, but interoperating and interdependent P2P networks.”
Tau can prove its own execution path or execution of programs written over it: contemporary advancements in computer science give the ability to authenticate data types and program execution. Our method is based on Andrew Miller's GADS (lambda-auth). Hashing large amounts of data, as Bitcoin hashes the block transactions, is done by the so-called Merkle tree. On Tau, this tree (that is timestamped by the blockchain) can go down to authenticate data files over the DHT or execution of programs on remote and trustless machines.
CT: How is Tau Chain more than just a P2P network?
HMC: Tau Chain will be a collaborative, community effort to form a stable network of distinct, but interoperating and interdependent P2P networks. Tau starts from an assumption that no one can trust anything except for the permanence of the Tau root chain, and builds upon this assumption a refinement of a secure platform for any generalized, multi-party, transactional function.
CT: Would you consider Tau Chain to be sort of a language or Turing service?
OA: If by Turing service you mean computation service -- Tau is a language, and the Tau-Chain (in which its functions are built-in in tau language) supports easily implementing computation service: it ends up with the user setting rules to "what should the client do when another client requests computational work."
Tau's language has the syntax of subject-verb-object borrowed from RDF (Semantic Web) languages, such as Notation3, which are much closer to the human linguistics than other languages.
Still, we borrow only the syntax: they do not come with prescribed semantics that makes them practically a general purpose programming languages, and we do add that layer by giving RDF languages a layer of so-called Type System (to be more precise, Martin-Lof type system, which allows the magic of proofs yet keeping generality).
“Tau is also like a decentralized App store. It allows running apps from the Tau-chain.”
CT: You've been referred to as a decentralized GitHub can you explain this?
HMC: The protocols defined within Tau are executable specifications that can define sidechains to the root chain. They can also define protocols to update their own protocol over that side-chain. This allows them to "store themselves" on their chain. The Tau root chain will allow these sidechain stored definitions to be intermittently pegged and indexed in the root chain.
OA: Tau is also like a decentralized GitHub, but with far-going abilities thanks to the decidability of our type-system (which does not exist in Turing-complete languages).
This allows an ultimate code reuse: if you want some function or piece of code, you can formulate only the requirements of that function, and if a matching one already exists in Tau's codebase, you can easily find it and use it.
“Tau resources do not need to be backed directly by a token, and resource exchange can be negotiated by the users as they see fit.”
CT: How does it compare to Ethereum?
HMC: Ethereum is a Turing complete logic, per block. This means they can easily prove that they can compute any computable thing in one block, but at the cost of not being able to necessarily know how much resource it will take to do the block's computation.
Because of this, they need to back their resources with a fixed token asset, and set a network-wide resource price on computations in order to avoid abuse of resource. Further, in order to secure exchange, they require everyone who is validating the block to effectively re-execute everything that has ever been executed.
To contrast, Tau is a decidable complete logic, per block, with Turing completeness recovered by the iteration of multiple blocks. This means that we cannot compute any computable thing in one block, but we can know exactly how much resource expenditure a block will require to verify. We can still compute any computable thing; it may just require structuring the execution to run over the span of multiple blocks. Because of this, Tau resources do not need to be backed directly by a token, and resource exchange can be negotiated by the users as they see fit.
Further, because it is decidable Tau can contextualize all of its logical resolutions, the only processes that necessarily must be re-executed by all participants is the resource expenditure required to persist the root chain securely. Any other process need only be re-executed by participants interested in verifying activity that occurred within that context, and can be ignored by other users, without sacrificing any security in the long run.
OA: Tau of course supports general purpose apps, which are totally absent for Ethereum, so one cannot make a meaningful comparison with respect to such.
Now let me list five major differences:
- Ethereum client is fixed, meaning the network's protocol cannot change with time. It is hard-coded, and if one day users would like to change its behavior, they will probably require a hard-fork of Ethereum's blockchain. On the other hand, Tau client's behavior and code is itself on-chain. Think open a GitHub repository with a code and all it is doing is downloading from GitHub its own code and executing it. This is exactly what Tau client is doing: every block contains its own code, including the conditions for accepting the next block. Therefore we get maximum flexibility not only for apps over Tau but for Tau itself.
- Ethereum's rules are predetermined by their developers. Tau will come out with no rules at all. Its users will set its behavior. At this sense, tau begins with total equilibrium among its participants, a priori.
- Ethereum's applications are written in a Turing complete language, which disables the whole magic of proofs over a given code, as emphasized in many places.
- Ethereum does not support separate contexts: everyone executes all code. Therefore, it is impractical to supply general purpose or HPC software over Ethereum. On the other hand, Tau has separate contexts, so one may subscribe to a context (like installing an app from Appstore/GooglePlay) without interfering with other contexts. Yet, that context can reference other existing contexts and reuse their code.
- Ethereum's model requires a coin ("fuel"). Tau doesn't need a coin: the users can agree on the economic characteristic of the network and define any kind of incentive they find adequate, whether globally over the whole network or over their local Tau client.
“The entire Bitcoin protocol could easily be implemented on Tau, with the same rules.”
CT: Is Tau compatible with the Bitcoin blockchain?
HMC: The entire Bitcoin protocol could easily be implemented on Tau, with the same rules. The protocols defined in Tau can depend on state external to Tau, so this would allow some interoperability with Bitcoin. However, for something on the Tau network to communicate directly with the Bitcoin network, it would require something like the aforementioned bridge, to translate between the Bitcoin message formats and Tau's linked data representations.
CT: Can you give a rundown of your projected timeline?
HMC: First we finish the core logic and IO mechanisms. Then we write initial "genesis rules" for the root chain. Finally, we will be done.
OA: It is hard and even dishonest to throw numbers into air without actually meaning to stand behind them. What I can say is that we’re finished most of the way and the hard parts are behind us, and we already have a code that beats some other state-of-the-art utilities (like semantic web reasoners and automated theorem provers). I'd say that we're a few months far from genesis (less than 6).
CT: Can you give a simple ELI5 description of what Tau can do to the average person?
HMC: Tau is something like a "facebook" or "twitter" where users can work together in groups to change how the service itself works and what it offers. It does this in a way that doesn't rely on any single company as a provider and that never implicitly puts your rights or privacy at risk.