Tauchain Update: Significant code changes in Github and discussion of progress. By Dana Edwards. Posted on Steemit. September 30, 2018.
Just several hours ago lead developer and founder of the Tauchain project Ohad Asor released his most significant code update yet. This blog post will be to discuss some of those updates and put it into context. In order to make sense of the current codebase : "Tauchain Codebase" I will also discuss a bit about the makeup of the code.
The significant breakthrough - Ohad implements the BDD
First some might be wondering what is BDD? BDD is a data structure called binary decision diagram. This data structure in my opinion is as significant to Tauchain as the "blockchain" data structure was to Bitcoin. For those who do not have a computer science degree I will elaborate on what exactly a data structure is below before discussing what a BDD is and why it is so significant.
Brief discussion on what a data structure is
In programming a data structure is a concept which represents a data organization method. For example blockchain is all about how records are stored as blocks. There are other similar data structures which represent decentralized data management and storage such as for instance the distributed hash table data structure.
A blockchain data structure looks like this for visualization:
By Matthäus Wander [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], from Wikimedia Commons
A hash table looks like this for a visual:
By Jorge Stolfi [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], from Wikimedia Commons
The really good programmers choose the appropriate data structure to meet the requirements of the project. BDD was chosen specifically by Ohad because it provides efficiency boosts in a key area necessary for Tauchain to function as intended. In specific we know Tauchain requires partial fixed point logic in order to have decidability in P-SPACE. We also know Tauchain requires decentralization and efficiency. Efficiency can be understood better in terms of the trade off between time and space. We do not have unlimited time or space so we must sacrifice one in order to get more of the other.
When we look at the code base we know that Ohad can optimize the code either by sacrificing space in which the executable will be bigger (but the code runs faster) or he can choose to sacrifice time in which the code is a smaller executable to save memory but might run slightly slower. This highlights the essential trade off between time and space when optimizing code but of course there is more to it because algorithms within a code base have to make similar trade offs.
Now what exactly is a BDD (binary decision diagram)?
Now that we understand the basics about efficiency and what a data structure is we can make a bit more sense of what a BDD is. In order to understand why BDD as a data structure is so important to Tauchain we have to remember that Tauchain is about logic. We can take the most basic example of Socrates:
A predicate takes an entity or entities in the domain of discourse as input while outputs are either True or False. Consider the two sentences "Socrates is a philosopher" and "Plato is a philosopher". In propositional logic, these sentences are viewed as being unrelated and might be denoted, for example, by variables such as p and q. The predicate "is a philosopher" occurs in both sentences, which have a common structure of "a is a philosopher". The variable a is instantiated as "Socrates" in the first sentence and is instantiated as "Plato" in the second sentence. While first-order logic allows for the use of predicates, such as "is a philosopher" in this example, propositional logic does not.
Based on the rules of first order logic we can have our inputs and receive our outputs. In the most basic example above we an see a bit about how logic works. To elaborate further:
Relationships between predicates can be stated using logical connectives. Consider, for example, the first-order formula "if a is a philosopher, then a is a scholar". This formula is a conditional statement with "a is a philosopher" as its hypothesis and "a is a scholar" as its conclusion. The truth of this formula depends on which object is denoted by a, and on the interpretations of the predicates "is a philosopher" and "is a scholar".
A truth table has one column for each input variable (for example, P and Q), and one final column showing all of the possible results of the logical operation that the table represents (for example, P XOR Q). Each row of the truth table contains one possible configuration of the input variables (for instance, P=true Q=false), and the result of the operation for those values. See the examples below for further clarification. Ludwig Wittgenstein is often credited with inventing the truth table in his Tractatus Logico-Philosophicus, though it appeared at least a year earlier in a paper on propositional logic by Emil Leon Post.
When we are dealing with logic we may find that a truth table helps with visualization.
Now with this knowledge we have the most basic Socrates example:
This can be represented via truth table and is called a syllogism. To solve this we simply apply a kind of reasoning called deductive reasoning. This would indicate that if All men are mortal is true and if Socrates is a man is also true then Socrates is a mortal must be true. If we were to say all men are mortal but Socrates is immortal then Socrates cannot be a man. So if Socrates is a man he must be moral or there is what we call a contradiction. Logic is all about avoiding these sorts of contradictions and in specific binary or boolean logic is to reach a conclusion which always must be one of two possible values.
If I ask you to play a game which we want to guarantee will end with either one of two possible outcomes then we have a good example of a boolean function. 1 or 0, true or false, on or off, a or b.
Some of you may be familiar with data structure we call a DAG (directed acyclic graph). For those of you who understand this concept you can visualize a BDD as being very similar to a propositional DAG.
By David Eppstein [CC0], from Wikimedia Commons
We know from DAGs that it's a finite amount of vertices, edges, etc. We may also be able to visualize topological ordering and if you remember my post on transitive closure you might also remember the visuals on how that can work:
A binary decision diagram can represent a truth table:
By The original uploader was IMeowbot at English Wikipedia. (Transferred from en.wikipedia to Commons.) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons
And from these visuals now it should be abundantly clear how this is critical to the functioning of Tauchain. The BDD data structure allows for efficient model checking as well. To understand we have to consider the boolean satisfiability problem.
This highlights the fact that BDD can be used to create a SAT solver.
A DPLL SAT solver employs a systematic backtracking search procedure to explore the (exponentially sized) space of variable assignments looking for satisfying assignments. The basic search procedure was proposed in two seminal papers in the early 1960s (see references below) and is now commonly referred to as the Davis–Putnam–Logemann–Loveland algorithm ("DPLL" or "DLL"). Theoretically, exponential lower bounds have been proved for the DPLL family of algorithms.
Without getting overwhelmed by technical details the key points are below:
To read the code for yourself and track the progress of Tauchain development take a look at Github:
Something Revolutionary In the Crypto Space.
The overwhelming majority of new crypto projects out there fall into 3 main categories:
Now the trillion dollar question is this: is just having a currency or shoving a Turing Complete programming language into the blockchain to allow for smart contracts truly the best use of this decentralized innovation? Ohad Asor, creator and lead developer of Tau, does not think so.
What Is Tau?
Before I start I have to make a confession: I don't truly understand Tau. But I feel that I don't understand it slightly less than people who don't know about it at all, so I'll have a go at explaining it.
Tau is a platform that is designed to scale human collaboration and knowledge building.
Almost every significant piece of technology to date (that isn't about accelerating physical labor) has been primarily focused on the disseminating information or data. The wheel, roads, telephones, the internet are all indispensable achievements that have served to aid getting information from A to B.
But the real value isn't in the data itself, it's from the organization of the information within that data into useful knowledge. While the mere distribution of information is an important step to scaling human progress, it's also only part of the picture. The next step has typically been up to us, the human actors, to use our little brains to distill that information manually until we produce knowledge;
Tau is the first piece of serious technology that is aimed to not only automate the collection of information, but also the production of knowledge, unless you count Netflix's 'AI' recommending 'The Human Centipede' after your toddler has just watched 'A Bug's Life', as successful knowledge discovery made by a machine. Tau is about the industrialization of knowledge creation via taking some of the burden of logical reasoning from us humans and giving it to the machine.
What Can Tau Do?
Ohad has spent years researching and developing Tau. The design is centered around creating a self defining, decidable logic that is expressible under pspace (which is mathematically shown to be the most expressive any self defining and decidable language can be), that will act as a metalanguage for all programming languages defined under Tau.
A trivial example of what this can directly lead to is secure smart contracts. Smart contracts operating under Tau cannot ever give rise to something like the DAO hack - decidable programming languages means one can anticipate the entire spectrum of possible consequences of the code before running it, allowing us to avoid anything unintended. But reliable and secure smart contracts are only a tiny fraction of what the platform can truly offer.
The power of Tau's design will allow it to boast some truly wondrous features including:
Ohad has yet to fully explain how this will be achieved, but by far the most difficult part is creating the initial decidable, self defining logic system that serves as a metalanguage. Many had their doubts but yesterday Ohad announced that the first and most difficult step towards this end has been achieved. The code he has written is a working version of the Tau Meta Language which correctly computed a transitive closure graph. This is a proof of concept of the great things to come!
Now that the initial code is released, Ohad is working on a set of explanations about Tau which will outline it's features and how it'll be able to achieve them in more detail. Tau is notoriously difficult to explain, but it's definitely worth the effort to understand it. I'll keep you updated when his explanations are released.
Who Is The Lead Developer Ohad Asor?
Ohad Asor is a programmer, computer scientist, mathematician and logician from Israel. He attended university at the age of 13 and has extensive experience (30+ years) in programming and mathematics.
Most people know me as the clown on here who just writes jokes along the lines of taking his mom to the prom after his cousin rejected him or some shit, but I sat my university entrance exams at 16 and scored in the top 0.5% of Australian Tertiary Admissions Rank and took a prestigious course at a well known university. I only bring this up to show that I've had no shortage of dealings with what ordinarily would be considered to be extremely intelligent people, but Ohad is on a completely different level.
Ohad Asor is, quite frankly, the most intelligent and knowledgeable person with whom I've ever interacted. There are many geniuses and child prodigies out there, but Ohad has spent virtually every minute of his waking moments studying up until this point in his life, and he likely has an IQ of over 5 standard deviations above the mean to begin with. I have spoken to him and followed his project over the past 8 months, and my assessment and admiration of his abilities has only increased over this time period.
Here is a short video of him explaining the old design of Tau and some of its features. The information is dated as the new design is far superior, but these features remain.
English is Ohad's second language - His native language is C.
How Do I Invest In Tau?
Tau itself has no tokens but Ohad is also building Agoras, the first automated marketplace over the Tau collaborative platform. Agoras tokens are currently traded on Bittrex. It has one of the fairest distributions in the cryptosphere and Ohad is only reserving 3% of the tokens for himself. None of that 20% for the founders, 10% for the developers, 20% for the foundation, 15% for the founders' penis enlargement fund bullshit.
Agoras has made considerable gains over the last few weeks but it's total market cap is still under 100 million at the time of writing, which, to me, represents an incredible opportunity for something potentially revolutionary. If we woke up tomorrow without Bitcoin, things would more or less continue as they did, but if we woke up tomorrow without electricity, the world would be an entirely different place. Indeed Tau aims to be the latter: a truly indispensable piece of technology, which is a status that no crypto project has yet reached.
This article isn't to be taken as investment advice any more than it is to be construed as advice on how to get out of the friend zone without resorting to chloroform. I'm not affiliated nor paid by the Tau team in any way. I have not made a single crypto recommendation in my 8 months of being here until now. I just wanted to share something that I think has immense potential to be truly revolutionary, and it also happens to be the only other crypto investment I hold other than Steem.
Feel free to ask some questions after and I'll try my best to answer them.
Special thanks to @dana-edwards and the Steemit platform for allowing me to discover this project
Tau QQ Group Number: 203884141
IRC for technical questions only, Ohad will generally reply within a day
Logo by CapitanArt
Enlaces / Links
Logo by CapitanArt
Archivos / Archives
Suggested readings to better understand the Tau ecosystem, Tau Meta Language, Tau-Chain and Agoras, and collaborate in the development of the project.
Lecturas sugeridas para entender mejor el ecosistema Tau, Tau Meta Lenguaje, Tau-Chain y Agoras, y colaborar en el desarrollo del proyecto.