Byteball : A pizza for two generals
As in my previous article, each word is based on my own readings and interpretation of the Byteball whitepaper. So, the Byteball team could not be considered as responsible for my inaccurate understanding or my potential wrong assertions. Furthermore, this article is not an investment advice but an attempt to investigate further the Byteball technology and I can only invite you to dig further by yourself.
The encounter
I met the Byteball founder, Anton Churyumov, and the Byteball partner and head of business, Steve Safronov, at Geneva's Impact Hub. Anton's presentation was a bit complicated due to some technical problems out of his control (noise, too much light, low level microphone). I was bored about this presentation.
Indeed, Anton didn't speak about deep technical aspects as I was expecting and the public was there for networking instead of trying to understand a truly innovative technology. Even the Byteball ICO platform presentation was a deception because, once again, no technical aspects have been discussed. Worst, audience questions were mainly Switzerland and Geneva focused. Yeah, we can be a bit self-absorbed.
Fortunately, I had the opportunity to quickly exchange few words with Anton, after his presentation, by passing above two chickens lost in useless speeches in front of him. I submitted him two closed questions. One, that I asked previously to Steve without confirmation, about the Venezuelan bytes distribution and a second one more metaphorical.
The pizza metaphor
My point with the second question was to find a good metaphor to describe to common people why the Byteball model is valuable without entering in complex technical or mathematical details. First, to introduce my Byteball metaphor, I exposed to Anton my metaphor about the Bitcoin model as below :
- Bitcoin is like an endless (in the absolute) dogs' racing which are pursuing some twin rabbits.
Yeah, it's obscure without adding more explanations but my point isn't to speak about the Bitcoin model or how it works in the backstages. I will add to close the subject that electrical providers are the great winners of the Bitcoin model as stated in the Byteball whitepaper and that at the "end of time" (in fact sooner), everything will burn because of the Bitcoin model and its clones will have the same fate with smartcontracts or not.
So, now the cherry on the top, my Byteball metaphor :
- Byteball is like a magic pizza, each time you split it in two, the calorific value of each new slice is doubled.
I recognize, it's not the most elegant metaphor we can find to describe the Byteball model nor the most relevant but I dream about pizzas as many in the cryptocurrency community at the exception to the carnivory-acute-pancreatitis community.
Whatever you think about this metaphor, Anton's serious/inexpressive face changed, he smiled, looked at me with cat eyes and said :
- It's interesting.
It wasn't an explicit confirmation of my metaphor and maybe Anton tried only to be nice to avoid offending me. But I continue to think that my inelegant metaphor describes pretty well what is happening in Byteball model backstages.
Eventually, after Steve's presentation of the Byteball ICO platform, I runned away from the Geneva's Impact Hub because I dislike trendy words and hypocrite dialogues with the little finger raised.
Two Generals' Problem
In cryptocurrency community, many have heard about the famous Byzantine Generals' problem. Unfortunately, very few know that this problem is a generalization of the Two Generals' problem. Even if this coordination problem is a classic in distributed systems, I will quickly explicit it below.
There are two armies separated by some distance and between them a fortified fortress. Each army is lead by a general and each one knows that he can't defeat the enemy fortress alone. So, if generals want to be victorious, they have to coordinate their attack through messengers. Obviously, the messengers sent can be killed or captured when crossing the fortress territory. To avoid this capture problem, each general can send many messengers with the same message to reach a high certitude degree about the message delivery. A general can take the initiative to coordinate the fortress attack. He will purpose a date/time to the other general. If the second general agrees with this date, he has to acknowledge the first general about it. Then the first general has to inform the second that he received the confirmation about the attack date agreement. And the second general has to acknowledge the first one that he knows the first one has acknowledged his acknowledgment and so on infinitely until reaching a consensus.
But why this problem is related to Byteball model ?
Well, each general can be perceived as a node of a distributed system and the fortress as an imperfect or faulty transmission medium.
In the Byteball model, Anton Churyumov introduced the partial order and the total order logic to immunize the distributed database against double-spending attacks. The partial order path is the first general and the total order path is the second general. Obviously, the potentially suspicious posted unit is the fortress to defeat.
Am I crazy with my Two Generals' problem theory ? Maybe, but let's analyze this theory deeper.
The whitepaper clues
In my opinion, Anton Churyumov has really a playful mind, or he's to humble to state how brilliant he's. Indeed, he sowed many clues through all the Byteball whitepaper without mentioning once the Two Generals' problem.
Byteball DAG representation
So, when a new unit is posted by a user in the Byteball permissionless distributed tamper-proofed database (or decentralized database by language abuse), the user node has to identify a path through all its ancestors until the genesis unit. As stated in the Byteball whitepaper, if we forget about all parents except the best parents, the Byteball DAG will be reduced to a tree. And to define the best path (or best chain) until the genesis unit, a node has to hop back in time until crossing the witnesses' majority. Last witness crossed is used as a shortcut to the genesis unit. So, it's a finite tree.
A Two Generals' problem protocol defines that counted messages can be compared to a finite tree where each leaf or branch in the tree represents an explored example up to a specified point.
Partial Order & Total Order
Partial order is possible when the posted unit is honest and its chain until the genesis unit sure. That means the chain stability is completed at first test because the witnesses' majority has been reached.
The Two Generals' problem for a deterministic protocol supposes that there is a sequence of a fixed number of messages successfully delivered. If it's true, that means the two generals reached a shared certainty about the attack.
When is not possible to establish the partial order due to some parallel units or to a shadow chain attack, the posted unit will be temporarily accepted. Further tests by new posted units will then establish the total order and decide to keep or to reject the previously posted ambiguous unit.
A Two Generals' problem protocol has to deal with uncertainty and tolerates imperfect or faulty communications until reaching an acceptable certitude degree to decide to attack or not the enemy fortress.
100 main chain indexes
This last point is the trickiest. Since I noticed the recommendation to witnesses to post within every 100 main chain indexes, I'm asking myself why this value. Anton states in the Byteball whitepaper that it's a constant value but until now I didn't identify a valid reason about this decision except to keep validation time reasonable.
Prepping this article, I read the Two Generals' problem Wikipedia article to help me to choose the proper words for an English audience. And in the Engineering approaches section of the Wikipedia article, I noticed that in the example the first general sends 100 messengers.
Is it a wink of eye Anton ?
A chaotic pizza
But where is my stupid pizza ?
Well, I will not discuss the mathematical details of the algorithmic complexity of the Byteball DAG model because it's pure madness. And to be honest, I'm not good with mathematics when values are bigger than 1.
Indeed, this aspect of the model is pretty complex and requires a deep understanding of the interlinked processes inherent to Byteball DAG mechanisms in plus of hardcore mathematical knowledge. The distributed nature of the model and the uncertainty tolerance leads directly to an unpredictable chaotic system.
Nevertheless, in the absolute, the Byteball DAG can be perceived like a simple "straight line" chain of transactions but locally, due to Byteball DAG specific rules, it's a total mess. Locally, the DAG chain is chaotic and always changing its shape until reaching the stability like a bunch of flying birds in skies which are constantly reorganizing themselves before continuing their trip to south.
Yes, for now, the Byteball DAG chain is pretty simple due to the low transaction volume and chaos seems excluded, but in the future, it will be astonishing and very impressive.
Conclusion
I think seriously with a high degree of certitude that the Byteball model is a successful implementation of the Two Generals' problem. There are too many details in the Byteball whitepaper which lead a respectable computer science engineer to this conclusion.
Anton Churyumov knows the truth about his cryptocurrency model proposal as some very smart or well-informed people. And I can't believe that the Byteball team stays calm in these times of incertitude without a master plan behind the head.
Is Byteball an unstoppable Revolution ? Well, it will be the subject of my next article, so stay tune ;-)
Byteball whitepaper : https://byteball.org/Byteball.pdf
Two General's problem : https://en.m.wikipedia.org/wiki/Two_Generals%27_Problem
Post-scriptum
You want to get some Byteball bytes without risk to explore the platform potential ?
Prepare your ID card and download the Byteball wallet on your Android or IOS device.
Open the Byteball wallet & press the chat button then the bot store tab and add the Real Name Attestation Bot.
Follow the bot instructions and when it will ask you to pay to validate your identity with Jumio, type this smart voucher code :
X7H7J6FCNLBZK
If everything goes fine, you'll will receive 12$US in bytes locked in a smartcontract for 12 months
Read more about Byteball smart vouchers : https://medium.com/byteball/introducing-smart-vouchers-a-new-way-to-earn-referral-rewards-by-sending-bytes-to-new-users-38972ec645a7
Thanks for your article, very interesting.
It's always good to meet people that appreciate the cleverness of Byteball design!
You're welcome @papabyte
Pleasure is mine. I'd like to have more time to invest in Byteball, but life is life. And step by step is better than nothing.
By the way, A BIG THANKS for your Arduino work 😉
Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 10 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.
I upvoted your contribution because to my mind your post is at least 9 SBD worth and should receive 100 votes. It's now up to the lovely Steemit community to make this come true.
I am
TrufflePig
, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!Have a nice day and sincerely yours,
TrufflePig
Congratulations @henric! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Congratulations @henric! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard: