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:
Guys, after a few articles , , .  - I think I owe you to present a little bit myself and Behest.io , .
I, Karov, am a human, i.e. I'm not robot ( although, my friend @trafalgar is a witness, once I fought all day long with a google form Captcha, but I prefer to blame a software glitch for that ... ).
I occasionally understood that 'karov' is the word for 'near' in Hebrew, but this is pure coincidence.
I'm a lawyer. More than two decades of uninterrupted PQE . In couple of European jurisdictions.
Behest.io is a ... firm. In the sense of :: firm (n.) , or in the very original sense as any firm's only way to be - a signature. Not in the sense (yet) of a legal personhood entity.
As a signature Behest.io is a tool. My tool, which I continuously develop to deliver answers  upon behests  for compliance to various crypto endeavors.
Metaphorically, the Behest.io tool dev target is: if a law firm is a CPU , Behest.io to be crypto legal services ASIC .
Blockchain came too swift, too strong and too global. Like an alien invasion. Legislators and law enforcement can not keep pace. Law and regulations are far from being definite on it.
It is entire internet of jurisdictions out there. Nobody really knows the Law. One can not just go out and shop answers. There is no legal supermarket with neat shelves of turnkey solutions with price tags.
The compliance space is turbulent. Nothing is ready and definite. Very high risk a grey zone to turn red hot. Quicksand minefield.
Crypto lawyer job is not yet an industry, it is inevitably art and craftsmanship. Tailored solutions.
Thus Behest.io is a studio , not conveyor belt mass factory.
Our approach in support is: side by side, thinking together, carefully map the routes ahead, identify the correct questions and precisely craft specific solutions.
On tailored case by case basis. In strict confidence. In all the time dynamic and adaptive fashion. In real time. From entry to exit. All the way navigation from mere idea to end.
So far it sounds like just another advert... I know. But, let me quickly throw some Behest.io preconditional points in an attempt to start sketching the bigger map:
FIRSTLY.: Why ''of Tauchain''?
Since my law school years back in the past millennium I noticed that the Law in all its dimensions.: legislature, legislation, application, enforcement, science, jurisprudence, doctrine ... is somewhat inconsistent and not quite self-sufficient.
I'm now firmly on position that the place of Law is not with the soft sciences of history and literature but among the hard sciences of maths, logic, philosophy and physics.
If we compare the social rules set with a human network protocol code, the Law up to now is obviously not quite automatic and requires too much 'hand drive'. Including, in the rules to make rules, too.
I tried to envision (with my limited tech knowledge), all this quarter of century, various ... systems which eventually could compensate such flaws: virtualization, procedural generation, gamification ... and then Satoshi came. And Ohad Asor appeared.
If we compare our intention and dream of Law with flying - since times immemorial humans wanted to fly like birds, but it took Wright Bros  we to fly ... not like the birds do.
I must herewith admit that closest to my heart are two technological projects.: Tau  and ET3 . They form kinda ... unity, but on that - other times, in series of other posts.
Ohad Asor in his Sep 10, 2016, 8:25 PM essay  very precisely outlined the problem of Law:
''We would therefore be interested in creating a social process in which we express laws in a decidable language only, and collaboratively form amendable social contracts without diving into paradoxes. This is what Tau-Chain is about.''
Exactly! The problem of Law is that it is written in inherently buggy natural human language 'software' and is run on human brains 'hardware' which is faulty for this, for being 'made' to optimize performance of completely other category of tasks. Like ... survival.
We can achieve Law by these means - human natural language and human brains - not more successfully than we could walk from here to the moon.
Tau is the most solid grounded and promising effort to deliver our long dreamed 'rocketry' to take is from here to the Law.
If Law is decidable code, it is specifiable, all intended consequences predictable and granted. Decidable, consistent ... and self-amending. Precisely what the Law is supposed to be. At last. If it is specifiable in exact terms, action code is synthesizable out of it, to feed the legal effectors of all kinds with precise instructions.
Because our societies map to our communications , drastic improvement of our interactions rules is equivalent of immense improvement of the human condition.
The Law as a Tapp (Tau App)? Most definitely. I know no other attempt the issue to be addressed in such a way of pure reason and demonstrated understanding.
This is the reason behind ''for Tauchain'' part of this post's title. It can get us there. We can have the Law, at last.
This is in the Behest.io and mine best selfish interest. Which is: a world of unimaginable freedom and wealth for all.
Behest.io in that sense is ''for Tauchain'' for the perspective the Tau to become ''for Behest''. Realization of my lifetime Legum  project.
Behest.io is not of Tauchain, or of IDNI. It is an independent project of an independent lawyer, with strong current focus on Tau and ET3. Because of the outlined above reasons. In series of upcoming articles I intend to elaborate on my visions and positions on these in general.
SECONDLY.: How exactly is supposed Behest.io to operate before the Tau is in our hands to play with?
All by the books, of course! Legal profession is for compliance, but also it is all about compliance per se. Not just compliance makers and shippers, but must-be compliant the lawyers themselves. Lawyers are strictly local and heavily regulated profession. As it should be.
Not only no lawyer knows all law, but there is not such a thing as global or universal license to provide legal services. Regardless of the 'professional services provider' Big Four  or other hierarchic collab structure - a lawyer is limited to operate only on the territory which his professional 'badge' granting regulator says.
From the other hand Internet and Blockchain are inherently global and penetrate and permeate all jurisdictions as easy as neutrino passes through a planet.
My plan to deal with this ''license to kill (the problems)'' inter-jurisdictional professional license issue is simple:
Quick assembly of full professional license coverage teams. In bespoke to project way. Ad hoc. Where and when needed.
The idea is ... if Behest.io is a screen and the solutions - images on it, the backend machinery of professionals and other resources to be freely reconfigurable and developed and expanded on demand all the time, without the client to be bothered to grok anything else but what's on the screen.
This resembles the aka B2B2X  telecom services business model which is conceptually so new that it does not have a wikipedia article, yet.
So all professional services colleagues welcome to join! In whatever forms we together see fit in every particular occasion.
I'm sure some really groundbreaking fusions will come out of this collab direction alone!
More posts on Behest.io biz philosophy to come.
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.