Answer to the criticism of “Groovy” on Twitter
The full article was originally published by Hans Moog on Medium. Read the full article here.
A few days ago I received some critical comment on Twitter claiming that me (and the IF) were hyping things just to push the token price without much substance in the underlying technology. The user specifically gave some examples of past promises that turned out to be wrong and draws the conclusion, that based on these examples, the latest excitement shared specifically by me has to also just be baseless hype.
I agree that the IF definitely had its issues with hyping their tech when it was far from ready and this is haunting us until this day. For that reason, I take this criticism very serious and want to try to at least explain why things happened the way they did.
I want to take the chance to tell my side of the IOTA story. It doesn’t just make it easier to understand how we arrived at the current solution but it also makes it easier to understand why I and others made certain statements in the past.
I started to look into different alt-coins to see if any of them would be able to handle my use case where customers from all over the world usually payed between 1$ and 10$ per purchase.
When I stumbled over IOTA, it immediately felt like the perfect match. IOTA didn’t just try to build a DLT that was fee less but their technology also promised to overcome all of the other issues of contemporary DLTs.
I was immediately intrigued by their vision and after some initial tests that went really well, I decided to give it a try. One of the biggest problems of IOTA by that time was that it was a very new project with a horrible user experience.
Since I was planning to use it as an actual payment option, I decided to take things into my own hands and help them build a better wallet. With some other community members we started to work on the first multi signature wallet that was supposed to work similar to TrustedCoins non-custodial cosigning service for Bitcoin and which would ensure that your funds would be secure even if a hacker would have access to your computer and your seed.
To be able to write such a wallet, I needed to understand how IOTA actually worked. To my surprise, the concepts were much simpler than I initially assumed and I soon started to have long conversations with CfB about IOTA’s vision and technology.
At first he was able to give satisfactory answers to all of my questions but the deeper I dug, the more often it happened that he started to become pretty hand-wavy in his answers. Initially, I thought that he just didn’t want to give away the secret sauce behind IOTA to some random community member and trolling was his way of avoiding my questions.
That was the most likely explanation — after all he was the leader of a multi billion dollar project with years of experience and I was a total newcomer with barely any knowledge. I considered the chance to have found problems in his approach that he couldn’t answer to be close to zero.
I trusted him that much, that I traded nearly my entire holdings into IOTA at the end of 2017. But even though I trusted him, I was still wondering how he might have possibly solved these really tricky problems so I started to think about possible solutions myself. I was a hacker so solving riddles was kind of my thing and how cool would it be if I could figure out his solution on my own.
The missing master-plan
Fast forward a few months into 2018: Things didn’t look good for IOTA — the network was being attacked, rendering it unusable for months.
By that time I was really disappointed — not necessarily by the IF’s inability to solve the issues — but by its unwillingness to share details with community members like me, who so desperately wanted to help. Everything was closed source and hidden behind a huge wall of secrecy.
At some point I was very close to actually give up, sell my whole stack of IOTA and turn my back onto the project. Mark, who knew some of my funny ideas about what might be the secret sauce of CfB asked if I would instead be interested to join the IF and try to help them fix things. Intrigued by the idea to finally find out about their big master-plan, I applied … and got the job.
To my surprise, nobody in the IF seemed to have any clue about a big master-plan. Instead of finding people with answers, I found people wondering about the very same things as me. Everybody was assuming that CfB actually had the answers somewhere in his head but agreed that it was incredibly hard to work with him.
I knew I was somewhat good at communicating with people so I decided to try to become the CfB whisperer and extract the missing pieces of information from his head. Now that I was a member of the IF, he at least couldn’t run away anymore with hand-wavy statements, so how hard could it be? It turned out to be impossible.
The demise of CfB
After very long and tiring discussion, I realized that his ideas made sense from a high-level/philosophical point of view and on that level they really resonated with me but he clearly had no idea how to actually translate any of them into efficient concepts and code. My admiration started to fade and I realized that maybe the answers were not to be found in his head and instead we should think about alternatives.
The biggest problem of IOTA was that in the presence of too many conflicts, nodes were no longer able to agree where to attach their transactions and the random walk that was supposed to find the heaviest branch was not only slow but also game-able.
I started to share some of my ideas how to fix IOTA’s problems, just to see the other researchers find glaring holes in virtually all of them. There were however two ideas that seemed to be harder to dismiss. Instead of trying to fix the existing concepts through some smart modification of the tip selection, they were introducing an additional voting layer between the nodes. These two ideas later turned into what we now know as FPC- and CA-based consensus.
The beginning of coordicide
The only thing that needed to be done was to use FPC/CA as a pre-consensus in the tip selection. I assumed that the implementation should go relatively fast as we had already implemented first versions of the bare voting mechanism as part of our simulations.
In that context I made one of the statements that was criticized where I said that “I expect coordicide to happen within the same year (2019) or at least the year after”.
To my big surprise, it turned out to be much harder to implement the named voting mechanism because the nodes didn’t even know if there were conflicts in the tangle (let alone where).
In that context, I recently made the statement that: “We had no fucking clue how to actually make IOTA work”.
The fact, that nobody in the whole research department ever thought about this problem tells a lot about the level of understanding by that time and it is a good indicator for how close IOTA actually was to complete failure.
The parallel reality based ledger state
To solve the named problem I started to think about possible alternatives in the way we track the ledger state. After a few weeks of work, I came up with a completely new way of tracking the ledger state of a DLT that was a natural extension of the UTXO model.
It is a really complex (yet efficient) data structure and for a long time, I was the only person in the IF that actually knew how it was supposed to work. It was really hard to predict if it could actually deal with all possible edge cases but since we had no alternative, we decided to give it a go anyway and implement a first simple version.
Gladly, it turned out to work perfectly fine and we have been able to improve it more and more with now being at the 2nd iteration — currently working at the 3rd iteration.
The unexpected return of CfB’s ideas
Shortly after we started working on the parallel reality based ledger state that was supposed to enable our new consensus mechanism, I realized something:
The ledger state that I just invented did not just enable us to actually implement FPC/CA but it was the missing puzzle piece for all of CfB’s ideas.
I started to formulate my ideas around what I called multiverse consensus and started to openly discuss them with anybody who was interested.
Pollen — better be safe than sorry
I was convinced that this new (old) consensus would be vastly superior to FPC/CA. It wouldn’t just get rid of the additional voting overhead but it would also be much simpler and much more elegant.
I hoped, that the IF would immediately switch to this potentially better version of coordicide but we decided to first focus on a pure FPC/CA based version as we had already received academic validation on this voting mechanism and we didn’t want to risk the success of the project on an idea that had no validation by that time.
In fact, there was not a single person in the IF that actually understood how this form of ledger state was supposed to work. Accordingly, I implemented a first simplified version of the ledger state that enabled us to test FPC/CA as part of the first Pollen release.
In the process of implementing this first version, more and more people started to understand the it and we got more and more comfortable with the underlying concepts. We now know that it can indeed model all possible edge cases and we were even able to improve the early concepts even more.
DevNet — a hybrid solution
After implementing the first version of FPC/CA, we realized that some of the concepts of multiverse consensus could safely be applied to our existing approach that would enable us to get rid of some unnecessary voting for transactions that have already been decided long ago.
We started to re-implement the parallel reality based ledger state to support the required features of multiverse consensus and integrated the named changes.
The result is the current DevNet and it is the first version of IOTA that uses some parts of multiverse consensus.
Soon after launching the current DevNet we realized, that this new form of combination of FPC/CA with multiverse consensus had a rare edge case that could lead to nodes disagreeing on the right tips.
It doesn’t lead to an agreement failure where nodes would confirm conflicting things but it could affect the time to finality as nodes would no longer express their approval correctly at all times.
Honey — the upcoming DLT revolution
After realizing that this edge case exists, we had two options:
- Fix the problem by including rejected Branches in the FPC statements.
- Switch to a different version of FPC that is based on the principles of multiverse consensus.
We decided to go for option 2 since we are now confident enough that the parallel reality based ledger state works as intended and that we have a good way to break meta-stable states using a different version of FPC called FPC on a set.
Accordingly, we started to implement the necessary changes which will result in Honey (the first decentralized version of IOTA) which is essentially the original vision of IOTA.
All of the outlandish sounding claims (like faster confirmation with more users, spam is actually good and so on …) are going to be true and as one of the people who has been closest to CfB, I now not only share his enthusiasm but I also share his point of view, that this is indeed the best DLT you could possibly ever build and the inevitable result is going to be MASSIVE for the the whole space.
Yes, I made some false claims in the past but this was mostly due to me having a limited knowledge about the DLT space and IOTA in particular than malicious intent to push the token price.
The fact that no other researcher pointed out the named problems makes me think that it was at least not a very obvious issue but it is indeed a bit shameful, that I made this statement back then and I am sorry that I gave this wrong ETA.
But this doesn’t change anything about the fact, that IOTA is finally going to deliver on its original vision. In fact, we would have most probably never reached this breakthrough if things would have just worked out fine from the start. Sometimes failure is necessary to achieve extraordinary results and I will never track back from any of the statements that I recently made.
The impact of coordicide on the crypto space is going to be MASSIVE!