Whiteboard Series with NEAR | Ep: 34 Hans Moog from IOTA Foundation
Nothing is loaded from YouTube until you press play, and then without tracking cookies.
About this video
In episode 34 of Whiteboard Series, we talk with Hans Moog from IOTA about Coordicide effort and their proposed sharding solution.
Learn more about Coordicide specification here: https://blog.iota.org/introduction-to...
This video is part of an ongoing effort to create high-quality educational materials about blockchain protocols.
Check out other episodes in which we dive deep into the design of various protocols such as Ethereum, Cosmos, Polkadot, and others here: • Whiteboard Series with NEAR | Technical De...
As well as our other technical write-ups: https://nearprotocol.com/blog/categor...
Learn more about NEAR here: nearprotocol.com
If you are an entrepreneur in the web3 space, consider joining our accelerator with mentors from tier1 companies and investment firms in the space: openwebcollective.com.
We help with all the aspects of building the business, including identifying the market, BD, marketing and fundraising.
#WhiteboardSeries #Blockchain #FutureIsNEAR
Transcript
18,537 wordsCaptions as YouTube publishes them, usually machine-generated, so product and people names can be misheard.
- 0:01
okay hi everyone this is episode 34 of whiteboard serious we in the middle of the outbreaks of the format changes accordingly with me today is Han smoke from iota foundation and we will talk about iota we will talk about core decide the effort of removing the coordinator from iota and we probably going to talk about sharding as well today as your hands would you like to introduce yourself and give us an
- 0:23
overview of of iota yes I work for the foundation as software engineer that is embedded also in the research department because I'm responsible for writing the first prototype of gold shimmer which is our prototype implementation of the chorus I'd version of iota which is essentially a complete redesign of the protocol we change a lot the data structures that rhythm how stuff gets
- 0:49
processed and yeah I think it's a really nice format to be able to share some insights here to explain how things work and to answer question maybe also to get some critical feedback yes cool and can you give us an overview of what Toyota is and how core decide will what problem score decide is trying to solve and and how it's going to solve them and maybe the grand vision as well yeah I think that's a good question also regarding the grand vision because I feel like it
- 1:20
has a little bit one of the lesser well understood cryptocurrencies in this space and not because not just because we're using a dag which is not the same as a book chain and therefore it works a little bit different but also because the way we approach this whole deity space is slightly different than how others do it especially when it comes to our shaoling solution I think that will also become a little bit more obvious
- 1:45
once we start talking about the technicalities of this we are as I said a dag base TLT and the idea and vision is to create a system that is able to process millions maybe even billions of transactions per second in a network where you don't have any fees where should where machines can consequently execute micro transactions and you can have like self-driving cars paying for gasoline you can have no machines renting electricity from energy providers and it essentially just
- 2:18
a platform that it would allow you to implement this whole machine to machine economy and like the next Industrial Revolution how is usually called of the Internet of Things yeah that's the grand vision and we usually also received a lot of criticism because things like zero fees for example something that is a bit controversial because as soon as you have a network and nodes have certain resource constraints and you have potentially unlimited demand and
- 2:49
how would you achieve that you could have the throughput that you need at the same time but also at the same time the security that you need without the network being overwhelmed by the corresponding node and also here our approach to shouting plays a really important role yeah I hope that we will be able to answer some of these questions around our concepts or vision and how everything is supposed to work yeah cool let's dive in yes so I mean
- 3:23
I've seen some other whiteboard series before and usually people start more or less from the basic like how does technology in itself work I want to also kind of do this in the same way but I want to jump to start with our grand vision in the way we plan to you to shard the deck and maybe also talk a little bit of the the benefits of the tag and essentially prepare you some pictures and this is a little bit how a dag looks like you have like a Genesis transaction then you have do you by the
- 3:56
way see my mouse on the screen um no I don't think so I actually don't I don't I do yes yeah okay I was I was in the wrong picture because I saw the presentation so we have like a Genesis transaction which is essentially the same as the Genesis block in any blockchain and then whenever you send transactions around in the network when you issue a transaction the user itself creates this transaction and attaches it into the rector desk
- 4:27
a graph where all the links always follow go from one side to the end to the other there's essentially what a dag means and then other people can see these transactions they can verify if the transaction is valid if it's a double spend or not and if they like the transaction and say I approve this one then they can reference it as well and then others can reference it and then essentially you have this structure
- 4:50
which grows over time we're also pretty similar as in Bitcoin you have more and more approvers of something that happened in the past and at some point the idea is that you can decide okay this is confirmed and the network of course needs to come to an agreement how to deal with double spends and the big Pro of this approach is that you don't need any miners so you also don't need
- 5:15
to wait for anybody to confirm your transactions but you can just attach anywhere where you want and you can also make the bag wider as the load increases and this is essentially one of the big beautiful things of tags which somehow not really a lot of people are actually using in their Sharleen concepts but the big benefits of a dag is that it essentially can split and get wider and wider and wider and if we have here the situation and an uncharted network where
- 5:48
every transaction in directly references each other transaction and at some point if the load increases so much that the nodes cannot process everything anymore then it is possible that's just the first step we would go step by step and develop like even much more beautiful charming concept out of this but the nodes can essentially split up and when we could say that 50% of the validators would live in charge one and shall run and 50% of the validators would live in
- 6:14
short two and then you would essentially be able to to balance load in the network and you can do this arbitrarily often that means that the more nodes you have liked it more they're more activity that we have in the network the more often this network in split and it can essentially accommodate for any kind of load you throw at the network and so I have a question here so we didn't quite
- 6:39
get there yet but from what I remember what about a yota the way I remember a yacht the design there was no concept of validators so is it is it a concept now in the the core decide or or are you referring to the transaction issuers has the validators the transaction issue is or actually the nodes that run the network so the transaction issuer can also be just a client I mean the ultimate vision is that essentially every human being every
- 7:04
machine and everybody who wants to use the network will have their own node and I think that this vision might sound a little bit unrealistic at current in the current market adoption because you have like network sizes typically of like maybe a few thousand nodes right but the problem with crypto is that with like if you're not running your own node then what your most of the time doing is that you're interacting with the server of somebody that you're requesting for payment statuses where you get like some
- 7:35
answer back like if my is my payment confirmed and stuff like that but what I'm doing in that moment this is I'm essentially trusting a third party that he didn't give hand out like fake API responses where he just said the flag to essentially tell me that my payment was confirmed when in fact it was not so I think the the the logical consequence of deity in the future or like in with the
- 7:58
whole deity space will be that we will see network sizes of like millions or maybe even billions of devices that are trying to connect to these networks and interact on these deities and obviously we're not really there yet and there's some work that needs to be done but that is essentially the ultimate vision and because we have that many nodes that are acting as validators by choosing the
- 8:22
point where they is essentially want to attach to their transactions we have this this what we call the tank which looks a little bit like this network which grows into one direction and as I said if you then like separate the nodes into two different groups and say this is short one just short two then if this gets too much then you can split it up again and you can speed it up again and then the network just like grows wider
- 8:46
and wider and wider so I have a question here right so in the example you just craft where I'm connecting to a server right so if we use a as an example in the theorem what I can do is instead of running a full node I can run so-called light client where I validate proof of work but they don't validate blocks and so I don't even have student loan locks in this case right but if I'm connecting them to someone because there is a miracle proof that
- 9:10
there's a miracle root of the state and every in every block then they if I make requests about the state then they cannot flip a bit right because it must match the miracle proof so do you consider those light clients as nodes or like how do they fit into the if we compare like if you try to compare your tenth etherium yeah everything that would go suit messages in the network and would essentially take part in the
- 9:35
in the peer-to-peer communication would be you know it and now I may see yeah in our case we also have different kinds of nodes like ones that store stuff much longer some those that store things just for web for a certain amount of time because we also have a feature which is called snapshotting which means that that you can like cut off the deck at some depth when you when you say like friends actually so so old that nobody's
- 9:59
gonna attach there any more than you can essentially throw them away and condense the whole state into an aggregated letter state so it becomes much easier to store all of the information in the deck and also smart contracts something that we're going to plan on implementing and there's gonna be like a prototype soon also but in our smart contracts or not layer one day a layer two so that
- 10:21
means that you have nodes which can then decide to take part in the smart phone tree computation whereas other nodes who are only interested in doing the payments can for example who decide to only do the payment aspect and the the reason why I said that in the case of Iona is kind of problematic that you need to trust a node it's because a lot of the clients are supposed to be IOT devices which maybe also something I should have said
- 10:47
in the beginning that I has a strong focus on delivering a platform where IOT devices can connect to each other and most of the times these devices don't necessarily have the computing requirements do these kind of checks or like store the corresponding block headers for a long time to do these kind of verifications and also the problem is that as soon as you're cutting the dag it's not that easy anymore to validate these kind of chains as you can
- 11:12
easily do in a book chain for example mm-hmm right so I guess the problem but in a dag words you have this new structure it becomes a bit tricky but interestingly in aetherium they also do cut cut cut cut out the the recent history the the old history right so majority of majority of notes in a theorem today they they do state sink into some recent block and this is a quite a bit of controversy between Bitcoin community and a team community
- 11:42
on whether such a node can be considered fully secure no sorry so I think there's a lot of similarities here I guess as soon as you move to proof of stake it doesn't make such a big difference anymore anyway because you have this problem of the weak subjectivity that somebody comes new to the network who doesn't know anything units needs to bootstrap somehow and get its information from somewhere right and in that moment you also susceptible to
- 12:06
attacks but as soon as you're and sync with the network and you see the current state and then you can also relatively cheap you keep track of the changes without having everything that happened up to the generators right but I mean of course if you like super paranoid and you want to sync everything that ever happened in the network then you can say with them now I agree yeah and so is the
- 12:27
core decide perfect snake its steak very and I would say because the way proof state usually works is that people take their funds they lock them in and a certain address then they get a certain say in the network be it in the voting or like an interval is how often they can propose blocks and stuff like that but to stake in light attitude to stake your funds because you're kind of like blocking them from from using them in
- 12:57
everyday life right you would usually expect to get some kind of reward also become because it comes with the chance of losing your funds because if you you know it like send something that you shouldn't do you presents broken two conflicting changes for example then it might happen that they slash your funds and since we want to be fearless because we expect these IOT devices to not have things like we have in the human world today where we make bigger payments every now and then as part of some contractual agreement
- 13:29
between me and you for example but machines were most of the time trade face-to-face they don't know each other maybe they will never see each other like a self-driving car for example that is driving around as an autonomous taxi in a big city for example it will have to drive to different gas stations or like charging stations all the time and if there may be also decentralized and pijo don't have these centralized
- 13:54
providers that provide this infrastructure then it would be very tiresome to have a contract with each and every one of them and maybe pay like a flat fee up front and it seems to be a much easier way to allow transactions to be in the form of micro payments where I can even send like fractions of a send for use cases for example in a highway I do things like the tuning or a lot of cars or driving behind each other and
- 14:18
they synchronize their behavior and they essentially save some fuel costs like this and the idea is that you could for example as a car that is landing behind another car that he could pay the guy in front of you like some of the savings so he's willing to inform you about the things he's gonna do like if he's gonna do braking or something that he just gives a sense you assured modification
- 14:40
so you can buy that car yeah so that's little motivation and because we we cannot make this staking in a way that we that we make people lock in their funds we thought about a different way of anti-civil mechanism which is called mana and it's also an anti super mechanism that is based on the coins of play within the network so you have like a limited resources that is not so easy to to to attack from in from outside point of view because you can simply not create an unlimited amount of coins to
- 15:13
play and what we're doing is that every node identity or like nodes have identities so so it's just like a public/private key pair right so you can consign your messages and you can validate if the is really coming from a particular node and if I have a certain amount of coins for certain amount of time then I multiply these two values there's a simplified version the extra formulas a little bit more complicated and then I receive a certain amount of reputation so that means every transaction that is
- 15:43
a process in the network gives the nodes a certain reputation based on how much stake they had in the network for how much time and this gives us essentially a perception of what nodes exist in the network and how much weight they have in that particular moment and it's not that different from proof say but it's slightly different and with those are there are some specific kinds of transactions with mana or is it is it just naturally fits into the existing that goes like if I study
- 16:19
the transaction as an automatically vote or do I need to send attach any message to it like the moment you send the transaction you look up in your nature state when were the funds moved the last time you multiplied by the time so like sending funds and so in circles just always to yourself for example doesn't generate any access like extra mana you really have to buy it so we combine the token amount with something that you
- 16:43
cannot really buy a time and then as soon as you issue the transaction the node that you used to issue that transaction receives this amount of reputation as like just a numeric value and one of his balances and since everybody sees that transaction in the transaction you have a few tools like the the beneficiary of the mana then you can you kind of assign the weight to the node and even in the beginning of the network where you have a lot of public nodes and people sharing nodes and their community run nodes and stuff like that the basic assumption is essentially that
- 17:15
that the nodes that are entrusted by the people to issue that transactions and interact with the network are most probably also relatively good recipients for this kind of mana because they are trustworthy no it's from community they have post probably been there for a really long time and people have good opinions about them and yeah so that's essentially the basic idea so you kind of turned the staking a little
- 17:40
bit on its head to make it easier and therefore also I get rid of the problem that you would have to otherwise pay people an incentive to stake and because every single transaction always stakes at all times it also means that it's very unlikely that you only have a certain percentage of the funds that are staked but you will always have a very large percentage of the funds being stake because everybody always takes it
- 18:03
take all the time mhm right and my question was also about the fact about the fact what about how how how is that money used right so that man is the anti civil resistance mechanism is it just well if I see so let's say I see two two bags and they clearly constricting for example right so do I just see which one has more mana accumulated in it in the transactions or or do they have to do they actually explicitly vote in the dance well we use a random substantive
- 18:35
voting in the proposal that we're working in there's also some other ideas floating around but it's maybe something we could discuss at another time but currently it's it's a random substantive voting that means me as a node I joined the network of course I can if I see those two conflicting decks for example then I can just like accumulate all the mana and the honest one most probably has more mana so I can make a very easy decision which one is the right one
- 19:06
right like which one is the correct one because it's just the one that has more economic activity in it assuming that nobody has that much control over coins that he could create something from the genesis which is like heavier than anything that gets used in the current Maynard but these are like long range attack things that any proof of stake based chain has as well and which have turned out to not be that problematic in real life and of course you always have the ability as somebody who operates a node once you sewing kit
- 19:37
the very first time to just verify that the transaction that you're seeing are in fact the same one does everybody see as well and once you have done this initial would strip in you're good to go yes and so you have this yeah I just want to finish this also deciding which one is the correct tag when you first synchronize that's happening just by reading like which is the heavier one but once you have established a certain perception of
- 20:01
weight in the network by reading and receiving all of these transactions then what you do is that you do this random substantive voting which is essentially like a polo before like an election you you just choose a random subset of the people that you know you ask them what they think about a certain transaction they give you the answer and if most of them say I I think this rejection is really good then you follow their this
- 20:25
outcome and you change your opinion and other people ask you as well and you kind of yeah you pit disperses a few rounds and then after a short amount of time you're you reach consensus so you mentioned that when I just bootstrap I I look at the heaviest graph right so heaviest is in terms of the what is the what is the weight when we when we talk about the heaviest yeah the accumulated
- 20:49
manner and how does man accumulate so if I if I post the transaction so my man a man of a particular note you saying is equal to the to the product of of their coins multiplied by the age of every quintile effect you I mean mana and there's different manner versions or like monarch concepts in the whole system so mana is essentially just like a funny word that we came up with because nothing else seemed to fit and we were all a bit nerdy and thought it's
- 21:25
it's a nice name because it's refilling over time as you see new transactions they can amend it and stuff like that but for for measuring the economic activity it's essentially just a sum of all these differential mana bookings that you see in the network so that means if I send 1,000 coins after hundred days then that's 100,000 mana I know and then if the next transaction then after another hundred days sends
- 21:51
the same more than that's like two hundred thousand like 50 coins of the ten day then it's five hundred mana and you just accumulate or like sum up these values over time and the one that is the heaviest one is then the one that is supposed to be used for the it's a cake for example but once you have established this initial perception you do this voting on a second layer so effectively when the transaction is issued the transaction makes the graph
- 22:16
heavier by the amount of money transferred in the transaction multiplied by how much by so you're saying if this is you TXO right so in fact over the issue transaction the weight of the transaction is the size of the you check so multiplied by the time when that you do from the moment they saw was k2 thank you now I see yeah exactly but it's not that the transaction itself carries the weight in
- 22:39
the in the case of the voting layer but it's that the nodes get through the identity I get this weight applied to them so that means to know it has a certain mana and certain importance in the network and even if he issues just a small amount of money like a he just does a small token transfer for example then the weight of the node that issues that is two orders of magnitude bigger than the small transfer and he adds his full weight to this particular decision but let's say I have let's say I have
- 23:12
1,000 tokens right once a 1000 iota torque and let's say it's a lot I don't know the food supply but let's see 1000 is a lot and then let's say that that 1000 I had since Genesis right so like I'm one of the early people and it's been many years from Genesis and then I start sending a lot of transactions each one transfers point one sense does every transaction add 1000 multiplied by all this time to do the weight that's why that's why I said also it's a
- 23:37
simplification but it's a pretty good thing to understand and what we added here like I mean you always have this problem on proof of stake like the rich are getting richer and like all these like game theoretical problems that make it a bit challenging and we thought okay how can we get around that I mean mana is not directly convertible to two tokens or anything you cannot really trade mana and in that sense it's really tied to one identity also so as
- 24:01
an attacker I cannot just like buy a huge amounts of mana and and associate that with my ID but let me paint something here so what we is actually doing is if you have a certain tokens of play which which is like the amount of tokens you have read and then you have time T and this is mana then the mana that you generate from an address develops a little bit like this so we have a server it's called a de Mirage function on top
- 24:37
of that it's a exponential decay so the money is like the the mana is growing on that address but at the same time the decay rate is also increasing and that kind of like balances our to have this kind of mechanism so if you're spending something for a large amount of like a that you held for really long amount of time then you will not generate much more than somebody who regularly uses his tokens and like spends it here and then starts accumulating again for example right but
- 25:09
my question is so let's say let's say I'm somewhere over here it so I'm somewhere like in terms of time I managed to get to this to this moment right now then so and then at that point let's say I issue two transactions so let's say this amount of man is like let's it's it's X mana right and then they issued two very small transactions so if you want transaction which transfers point one cents and then another transaction it transfers point one cents on top of that one so do they make the graph from
- 25:40
perspective of the person who just sinks into the network yet the graph became X bigger or did it become 2x bigger right so do I do that does all my mana add up to the graph wait every time I issue a transaction no actually there's two versions of in a way like you have potential mana which is the one that is associated to the funds on an address and that grows in the way I've described
- 26:07
here and that's one that is used for voting right no so sure this is actually the mana that is residing on an address so the address has certain amount of funds and I have held it to a certain amount of time so it can generate a potential mana or a potentially weight of this amount right and then the node has a balance like an account and here's maybe no mana and then as soon as you issue issue this transaction the the potential mana gets transferred
- 26:41
to the node but we also have a moving average over this so this will not just jump up immediately and then from that point on you will also again have a PK so if I'm if the mana will over time lose its value so if if the node is only used like only sees this transactions just one single time then over time it will lose its importance again and here the potential mana and that's a moment
- 27:04
on that address because I moved the funds just now would drop to zero and then it would again start to gain weight essentially and as soon as I do the next transaction then I would get on my I don't know let's say the mana has dropped to here by that time and then I get another value and topsoil so that means my mana would fluctuate a little bit like depending on how much activity you know processes but nodes that are
- 27:28
online constantly that are processing payments of users or machines that are interacting constantly they will have a pretty constant amount of mana which is kind of at a certain level and we also have math papers and stuff like that where we just discuss these kind of things and also name of the formulas and and everything but I think that would be maybe a bit heavy for now nicely as you say even even if I transfer at a very
- 27:52
small amount like let's say transfer point one out of my thousand my mana temporarily drops to be a little number and then it starts all of them in the same you take so input and you move the whole funds then you would jump like then it would get accounted for the whole mana that you have but if you have them on different example then you can also lake spin them separately but right
- 28:16
I mean yeah also so let you on the Left chart right so let's say I have them on multiple UK exomes but because it's the same note they all contribute to the same manner right and so let's say I spent so I have 1,000 tokens total one of the Yuki EXO's only has one token and I spent that you check so then my manager was down by know how much like this curve was valid for every you tick
- 28:40
so has its own kind of counter yeah I see so that means if I one then this one has like maybe generated like this much amount of money like I don't know and then I will get that mount amount of value booked into my node identity then it starts decaying but at the same time it's also growing it is essentially a symmetric function so it it doesn't really matter how how how long you hold the money the rule to mad mana that you have in the system that you can realize is more or less
- 29:04
constant rather the moving average changes that slightly so certain behavior like maybe it's better to not wait until it reaches the top tier but already spend your mana here if you want your fans here if you for example use that to maximize your mana which has some positive effects because we use mana and not only for voting but also for things like great control so so then you can game your mana to be like one or two percent higher or something but it's not very big
- 29:37
right and so so the way I see it and maybe this is wrong so there are two ways where I see right now mana being used so one of them is voting right if I if I do voting if I sample the notes are a man a week that's right so if I have two peers and one peer has you know one man associated with the note and one peer has 1,000 manner and then presumably I treat the vote from the second one to be 1,000 times more important but you also mentioned the second use of mana is when when I'm just synchronizing right I'm looking at the
- 30:09
at the graphs and the graphs curve weight so these also mana on the weights right and so let's see that's why I said we have different like versions of mana and they get all used slightly differently for example in this other consensus mechanism that that I mentioned earlier on I talked about today there we also use a different metric how we sum up this mana and tie it like closer to public measurable behavior rather than just a movement of
- 30:38
funds but the mana is essentially just the base metric but you can you can use this mana as I said earlier to to sum up the weight of the whole tag to decide during initial sink for example but you can also use like different variants and there are derivatives of the mana for other things and this is actually something where we're also still kind of discussing and designing the protocol so this is not 100% finalized this is something that we're going to test in the public test net to see how much mana do people
- 31:09
actually have in a real Network how is it distributed who has how much mana is it a very even distribution or is it what we are expecting more of something like as if distribute distribution we have a few very rich no it's because they're public nodes that everybody uses for example then you have a lot of nodes that maybe have not that much weight in the network right this is things that we're gonna yeah we're trying to find
- 31:34
out in the test net so yeah so I have one last question about mana and then we can we can jump deeper into sharding or talk about voting which everything could be better to discuss so let's say i'm synchronizing right and so I'm gonna draw like a small deck here so they so there are two dogs right and and let's say that these two transactions they are a double spent right and so well I'm not
- 32:02
drawing very correct draft but right and so let's say on top of both of them there are some other transactions from different notes and so I need to compute the weight of this sub dag effectively right I compared to the weight of this everything I on top essentially the same way as Bitcoin works where like the amount of blocks on top of another block determine how deep it is in your in your
- 32:25
chain and then if it's like 64 something usually accepted if you if you think from the start then to know what is the outcome you always need to sing to the end essentially I mean of course you can also sing from the from the heads and just look at the deaths and stuff but yeah it's essentially the same for you you you you solidify it that's how we call it like you you request all the missing transactions like you join in the network you see the chips that people are currently talking about and then every transaction has a reference
- 32:57
to the previous one right so you need week for the missing one and you just continue that until you reach a point where either we reach the Genesis that might in theory take a very long time but you can also bootstrap your node with things like locate snapshots they have a snapshot file which is essentially a summary where you where you start to dig and maybe I can how can I remove stuff just
- 33:23
here they can oh yeah yes I can I can have some space so if we if we look at the dag and like we have all the transactions that reference each other and stuff like that then each of these transactions essentially introduces a state change to the global system right but from every point of view of a specific transaction the state is exactly there's exactly one state so that nice effect to this transaction and I look at all of the transactions that are directly or indirectly references
- 33:56
then I can compute a letter state and what you can do now is if you have take one of these transactions as a reference point then you can cut off the dag like you might get cut here like in that case it's not referencing this one but you make a cut and you summarize all of these letter states balances that you have currently in the network and then you can provide this local search area for example to other people who can then
- 34:22
synchronize in a faster way like usually it takes like I don't know two or three minutes to synchronize your note if you use the snapshot file but of course the separate file introduces a certain form of trust where you kind of need to really make sure that you're not downloading a bad transaction letter state because otherwise people could do bad things but it would also be pretty obvious as soon as something bad would happen like I don't know I think might
- 34:46
be the wrong address saying somebody sends me money then this and everybody else would think that this is a bad transaction and they would not approve it so it's not like it's not really anything super bad that can happen but of course it puts the ball into the node operator - - doing maybe some extra work in in getting you notes at the very first time right so now getting back to
- 35:10
this bag on the right right so you mentioned so if you had two charts right so on the Left chart which is which is gone by now you were showing manna which was accumulating whenever you check so separately right and the right chart shows how that manna contributes to the the man off of the note right so so here when I wanted to branch or like the thing in the thing oh I see I see so
- 35:37
this this chart which is still staying this is not the weight of a particular of a particular no that's it's a way to a particular sub tag this is the reputation of a particular node so that means no changes over time but every transaction carries this potential mana which rises as I shoot the transactions we get a value that is essentially fixed like just so and yes value does not
- 36:05
decay or anything it just get transferred into the account of the node and then from there it starts to decay but the way that we determined why we should go transaction is essentially fixed weight and if you sum up all these values of all the transactions that ever happened in the future CO and then you get this accumulated weight that allows you to be able things like got it but I think my so I think that makes perfect
- 36:29
sense and so just to clarify the Tanja's tend to try so this this this particular value right which is specific to each X all right this value is not specific to a node it's specific you check so it's specific to the transaction it doesn't have anything to do with identity of the node or anything yeah so that's the weight we use for therefore the for the dag weight right yes right and so that
- 36:53
means that the the particular weight of the node right which is here that is not used to weight the back it will only be used for voting voting in the future right yeah yeah that makes perfect sense and cool that's essentially a mechanism just to have like I mean like any any consensus mechanism is always a voting mechanism in at least in my perception like even between is voting because the block producers they have their vote
- 37:17
which chain from their perception for our point of view is the long as when they attach it to the chain and and and then the chain gets longer in the chain that get the most votes especially the one that wins right another consists making the voting mechanism and yeah I mean it's and we have like this this random subset we're voting as a second layer and Topman it allows notes to decide word attach their transactions because they need to have more or less consensus on
- 37:42
which transactions are the one that are currently preferred in the network and it's even okay if every now and then one or two nodes have come to a different conclusion for example because we also have some kind of research organization mechanisms where they would detect these kind of inconsistencies just by observing how much like mana from the next approvers that was approving to their transaction and if they see a
- 38:04
certain amount of activity in the in the network approve something that they don't like or the other way around then they can repeat the voting with the logic a second size for example because usually you have the sample size relatively small to reduce the message of that and then can they can for example get back with their opinion only that back in line with the rest of the network is a little bit like a swarm of
- 38:26
fishes flowers swimming next to each other okay makes sense so from here do you want to talk more about voting to present the how it works or do you want to dig deeper into sharding I think it might make sense I mean yeah we can we can maybe we can cover the voting just shortly humid yeah so we have a little bit understanding or the basics work in the maybe it's also the easier to understand how it's going to work so we just instead of oh you
- 39:00
faster cool so let's maybe wait a second no wait no I did something wrong I am trying to find a pencil that is a bit thicker so I don't have to I think when you click on pencil you can choose the they there yeah yeah yeah there may be some different brush or something so the way Iota works is the way we achieve consensus is that we observe in the in the in the tank like the transaction get concept around if I was missing or whatever and
- 39:56
transactions usually have like to take different times to propagate in that org right so you can have a certain amount of nodes somewhere in the network I would just like paint them with different colors I know we have like some red ones and then you have some other nodes that maybe saw in the case of conflicts and you would have taken blue and red transactions for example then you would have some nose that's all the red transactions first and then you have some nodes that saw the blue
- 40:20
transaction first and maybe let's make a few more blue just so it becomes a little bit more obvious how this thing is going to work and what every node so this is this is nose this is not the transactions in the bank or something is just like notes and they are of course they also connected to each other maybe I can paint like little lines in between like they have all of the neighbors and it just forms like a network they gossip
- 40:55
and what they now do to reach consensus is that every node let's say we have this one for example you've randomly asks other people in the network what they like which one of the two conflicting transactions they like and they ask them like hey what do you think I like blue what do you think and then he asks this one hey what do you think and then he asked this one what do you
- 41:17
think and he does it with a with a given sample size in our case is like around 20 other nodes and then he analyzes the results of these of these queries and depending on the fact if there was a majority majority of other nodes that liked a transaction or preferred a transaction that he doesn't like and he would adjust his opinion and vice-versa so that means that if we have more blue
- 41:41
in the network then statistically the chances of asking other nodes that light blue are also bigger and therefore if everybody does that the network will slowly tip to one side and then maybe if the red guy is for example let's say this guy here buried some other nose got got a more blue bag than the red when maybe he was unlucky in the first one and only favorite guys so he doesn't change his oh you don't see my mouse on
- 42:11
the screen right and not anymore okay I guess it's because it's it's not Windows picture or something and so I was talking about there's a lower one that's saying he queried like a few people and if he didn't get enough votes to change his opinion then like after the next round he does the same so you repeat this voting process in regular intervals with a short time period in between and if everybody does that then ultimately
- 42:38
everybody will eventually right Lu and the network will essentially have reached consensus on which transaction is the right one and the way we then translate that into the deck structure is that nodes initially do not like a transaction for a certain amount of time let's say five seconds for example which is by close to the average Network delay and only if they did not receive a transaction that that was not
- 43:04
conflicting with the one that they have received before so they have not received in either transaction that spends the same uniques output then they said they're like status to true in other words they say like I'm not really sure and if you if you receive a conflict within this time window then you will start this voting process so that means that on average on this transaction will can be considered to be confirmed relatively fast or not really confirmed because you also need to wait for enough tips to reference them to
- 43:35
make sure that they don't get often or like left behind because it could happen that maybe only you see your transaction and all the rest of the network they don't see this transaction because your internet dropped or whatever and then if six seconds expire and you think it's the right one then you would maybe accept something that shouldn't be accepted so you always have this six second delay and then you also have this additional metric where you just see how
- 43:59
many tips so like the transactions at the end of the diag reference your transaction and if you didn't see you conflict and you have enough to reference then you essentially consider this transaction to become friend yes so I have couple questions here one is around as you're saying if it's been five seconds and accept the transact what happens if it has been five seconds I accepted the transaction but turned
- 44:23
out there was actually some network glitch and so there's actually another half of the network which accepted the different transaction will wish to vote or or your line you know essentially like what I said is not really the exactly exact but it's giving a good idea essentially we have these levels of knowledge so that means after six seconds I like this transaction but I don't consider it to be finalized yet it's just like I personally from my point of
- 44:52
view think that this transaction looks like an honest transaction right and all other nodes in network might also like it so but they're but they have not finalized the decision yet they will then wait another like average network delay and take multiple levels of them or the multiple integrals of these and and the more intervals passed between the time the higher might confer like my credibility in this transaction
- 45:15
becomes but I already start to use this from section and tips election as soon as it's light kind of so from after the seconds time would do like six seconds time window five seconds time you know that's something it also needs to be determined as parameter once we launch the network as actually defines when transaction start to be picked up by the tips election I see you think for the first
- 45:39
five seconds I'm just not going to be building my transactions on top of with them exactly because otherwise the chance it's a pretty big and I think that's also game theoretic problem that you addressed in an article where you said that if future transactions approve previous ones and I ya if ya prove and then the chances of this transaction to maybe not be picked up because I'm accidentally proving like something that would be rejected then why would I
- 46:12
attach to something like that why would I not just attach to the Genesis for example right and that's the question with the six six seven second quarantine time in like 99% of the cases or like when the when the node is honest and we're connected you will never have the problem where something gets left behind because most people by that time already shared this perception is even even if you're just on the threshold and maybe everybody
- 46:35
else sees the conflict and time that they say like maybe I don't pick that up in trip selection yet then still they will have most probably formed the initial opinion to be the same as yours and even if you could vote and you essentially come up with the same result anyway so it reads that after six seconds for smaller amounts of funds like if you want to buy a coffee or like a machine transacting like fractions of a cent they might already be fine just
- 47:01
by not seeing conflict within that time period but if a conflict Rives you still vote but also really up to a certain point so like if you have a transaction I'm conflicting for like 30 minutes or something but then you know it just says like okay like now I am kind of finalized here right so another question I have is so this voting mechanism it's very it's very similar to snowball right
- 47:24
the the Cornell's paper and in snowball if regardless of perimeters ation right snowball for liveness can tolerate at most 20% or so of malicious actors and otherwise they can they can just they can still snowball just by with very high chance right just by splitting the network in half of all most people and just disappointing right to one half and blue to another half and so if the network is approximately at 50% split that 20% malicious actors responding always blue to one half an all widget to
- 47:58
one half is sufficient for for the system to continue accumulating confidence in the in their corresponding colors and so the way I remember there your the consensus salting it is it it uses a random has become right to change the threshold yes on every step exactly you so what we're doing is that we are changing the there's like a network wide consensus also on a random number with
- 48:25
things like protocols like deer and for example which we were what we're currently using but there's also research and discussions about additional metrics to get this randomness and it also doesn't need to be like 100% exact but most of the notes should use more or less the same random number other ways it doesn't really work and the way we we deal with this is that we essentially we wiggle around the the threshold where
- 48:49
like above which my result that I'm expecting to change my opinion needs to be to tip and one or the other direction and because the the attacker does not know the random these random thresholds upfront he has a really hard time keeping the network in balance so it's at some point you would just have a slightly bigger fraction of the network already being on one side and then maybe
- 49:14
the the threshold is a little bit lower than you would have expected and essentially the simulations show that it tips relatively fast also much faster than in our launch in that sense and and that kind of like gets rid of this this problem to certainly be mm-hmm and so the the randomness beacon is it is it sort of on chain well on that I guess would be a correct term or is it a separate process which which happens a separate message passing currently the protocol it's it's a separate layer but
- 49:47
it gets persisted on the tank so that means that you have like a certain transaction type which gets in the in the tanker so that means that everybody references this beacon for example is then also able to see it and like requested for past decisions and stuff like that so it is persisted in the tag but the the agreement on which random number you use is currently outside of the protocol but as I said there's also ideas and discussions about using maybe some other source of randomness that
- 50:19
would not require the to have this communication overhead in the network secondary protocol and so also another thing with broaching vdf some stuff like that in that context I mean is like all of this vdf Alliance or together with the theorem for example and there's a lot of research going into this kind of randomness things yeah yeah and I know Solana is also part of the Alliance many others yeah
- 50:46
so one one thing I realized we didn't do is we didn't talk about chip selection which i think is pretty fundamental to understanding iota so they want very briefly cover chip selection and then maybe move sharding yes a tip selection is actually relatively simple you just have the list of all the tips or maybe shortly we can just use like a shortening to deter yeah yeah like if you what is the tip is a
- 51:11
transaction that is at the end of the deck where it is like the direction in which it grows which has not been referenced by any other transactions that's what we usually call the tip so whenever we issue a new transaction we usually want to attach it somewhere here in the deck because if I attach something that is made to all for example that people might have stuff started already then they might not even approve my transaction so this kind of lowers my chances of being accepted and
- 51:33
we also want the dag to kind of like create a decision so the honest nodes should always attach somewhere at the top and essentially what you're doing is you have a list of transactions or tips that you like based on the snowcone modifiers it's what we call a based initial opinion and also on the outcome of voting and then you just University it random choose choose one of the tips and you just connect these two
- 51:57
transactions and the letters say the unique source a it essentially makes sure that you do not accidentally light two conflicting tips so you can always just like tips that are not conflicting with other tips kind of so that has a little bit changed from the original white paper version because there we had this kind of random walk well you always walk from one of these transactions and you walk past the up cone and they do this based on weight so you always end
- 52:22
end up in the like heavy heaviest heavier chain but this did not scale very well so we kind of had to get really good at the additional voting layer on top still gives us the ability to make these kind of decisions without having to do this anymore so how do I choose tips today do I just randomly choose any two tips from from the ones that you like and I mean it could in theory happen because after six
- 52:45
seconds you will start to reference this in very rare case it can happen that you may need attached to something that then later turns out in the voting phase because maybe you had really really bad connection was rejected anyway then what you would have to do is you would need to take your transaction and attach it somewhere else so that's a something that is possible in the dag also you essentially just issue a copy of the transaction just with the reference point or set to other
- 53:09
transactions so that means that means I have to kind of like take care a little bit of this tag but simulations show that if you if you make this this time or slightly bigger than the network delay then this is extremely seldom that this happens because even if you if you see something arriving after like half of the network delay and chance is because gossip spreads exponentially fast that other people have also seen this transaction as the first one and this is maybe a your direct neighbor
- 53:34
that gives you this transaction are still pretty big on average right and I actually just remembered one more question I had which is so you're saying that if I receive a transaction right for five seconds I'm not building I'm not considering it as a tip yet right I'm going to be building on the older tips and five seconds in I will say okay now it now with this transaction I've seen it sufficiently long to believe that it is unlikely to have any conflict so I accept it I build on top of it and
- 53:59
so then so let's say there was some transaction let's call the transaction one which I received I waited for five seconds I accept it I produce my transaction two which builds on top of one right and then we wait for five seconds someone else waits for five seconds before they produce transaction T which is one two right so it will take for every extra layer extra extra depth on top of one it takes extra five seconds right
- 54:21
so yeah just a time shifted period right like if I every summer my transaction now then in five seconds this transaction yeah it's true like for every step it takes five seconds but you always have new tips showing up from the previous five seconds window so it's just a little bit of finality right so if I want so what is if I'm the person who issued transaction 1 what will be for me the sense of finality is it the the number of depth of the layers on top
- 54:55
of it each one taking five seconds it's certainly the outcome of devoting layer like if you don't see like as I said levels of knowledge like it the longer it takes for a transaction to be in the deck without a conflict the more confident you you essentially get into this or a second to be the one that will most from your acceptance by the network and at some point after a certain time threshold you just decide okay this one
- 55:21
is finalized now so means also that you that we favor lifeless and functionality of the deck over partition tolerance so if you have like a network speed for example then what would happen let's say we have negative 50 presents but China and World War 3 and you say and they kind of like take up the firewall and everybody's using a you know or whatever then both networks would continue to Ferguson but after the the firewall goes down or
- 55:47
something then it would essentially have two conflicting versions of this tag where you need to either manually intervene and say like okay every sync with the network if it's for example is something that just happened to my particular node or like we would have to find some agreement in the real world how we continue after that if they have been double spends how we would kind of like make it captain they combine them
- 56:10
in a in a global action so if you compare that for example to Bitcoin it's a slightly different rate in Bitcoin the moment you would have this this split and maybe in China the Bitcoin would continue to work because they have most of the hashing power but maybe also I don't know the US would just spin up a lot of miners and would provide hashing power to continue or allow people to use
- 56:32
the network then after the the the networks merge again then what would happen is that you you see the longest chain and it would essentially rollback all of the transactions in one of the parts of the world right right so three in a yachtie the same will happen if after this split there was an immediate doubles can't write or where you can still roll back it would not be rolled
- 56:55
back because you would then have two states of the network and then you need to decide what you do with this outside of the network essentially mm-hmm right but I think it's a Bitcoin and foster fork right yes but the loggers chained consensus if you don't have something like checkpoints for example then always longest chain would win so I mean I'm pretty sure that the people even in the
- 57:18
case of Bitcoin we then say like no we're not gonna throw away one year of transactions and just it would most probably make like oh so what you're saying that in a Yoda's case neither of the hops will switch to that other half they just continually they will run when they are young make sense it's next to each other but to have resynchronization mechanism which is a little bit complex
- 57:43
because then we have really a lot of new concepts and data structures also in the way we calculate this kind of weight so it's maybe a bit too too much to explain that right now but if this falling out of sync happens to just a small subset of nodes like for example I don't know like I have a server in a data center and that they have a network outage and and it happened at a really really stupid moment where like one of the double spending transactions arrived at my point and somehow they were still
- 58:10
enough honest nodes in the network that I used to see that are still continue to build up on this transaction then it couldn't theory happen that I fall out of sync but then there's an additional mechanism where I again use a similar mechanism as we used in the initial sync scenario where we observe the the economic activity in my network and if my confidence in this transaction is not
- 58:35
too high yet so like for a certain amount of time I can do this and and it seems to be conflicting with the rest of the perception of all the other actors in the network which I can keep track of by monitoring the economic activity then I can do a bigger query where I asked more than 20 people because in here it could also happen that I was just like super super unlucky and asking the wrong
- 58:57
people when I did this random subset thing then I will do a bigger query with like hundred nodes for example and then I will eventually reevaluate my decision and correct that decision so even if you fall out of sync you know it can kind of repair itself a little bit but only to a certain degree because if you know that those things to be possible for too long then this might also become an attack vector yeah makes sense cool okay so let's
- 59:21
let's dive deep into sharding yes okay okay so it's a shard an iota is really simple mechanism you just make the dag wider and it's important to nodes on this side is everything anymore and I kind of like split off right so one problem that you have with this approach is that they do not share the same amount of validators but they the same past which means that when I receive a transaction here in the same past cone then suddenly I would be able
- 59:56
to spend it on the right side in this chart and I would also be able to spend it in this chart right because you don't really have like there there it seems to be a pretty pretty complex problem and other people have also for example 22 mm have said like okay that's the reason why I you know time will never shard in a way without allowing double spins to a certain degree and we have thought about ways how we can fix that without having a centralized entity like the : ater
- 1:00:27
just monitoring all of the shards and building like another chain at top of all the other chains for example like you usually do that in bukchon based systems and the idea is the following one that we are essentially giving a sharp marker which is something like a color to every transaction the moment they get issued okay so any means even before we shard like even before we split up the networks we kind of divide the the amount of validators in the nodes that are operating in the network into two groups or three groups or four
- 1:00:58
groups and lay an arc in our case that we mostly bit like a 64-bit shot marker or something so you can have really a large amount of potential shards so you can expect up speed up speed up so you could for example if I had red and dark red and bright red and human dark blue and bright blue and then you could separate right in right a brighter blue and on so and so on and even if the transactions reference each other like more or less randomly at the beginning
- 1:01:24
then you will still be able to kind of prevent these kind of double spins in a Charlotte environment because as soon as somebody tries to spend the blue balance in this shard the people will simply say like no I'm not responsible for that right so every node has a certain jurisdiction of the of the activity that it wants to do that it considers to be responsible for so it's been the
- 1:01:49
babbling which I you know like near and the etherium and others talked about charging that this cost eight sharding effectively right because you're saying the whole state is now split into multiple part exactly every shortage is positive at a particular this is also stage writing but at the beginning everything is like part of them the same network and then you kind of have the stage hearted
- 1:02:14
network which prevents double spins just by writing state chart in the same way as you cannot spend your friends from one chart Andy theorem in the other chart so essentially pretty straightforward solution right it's also very easy to implement you just know it's provide the shard location whenever they issue transaction then you just put it into your store together with the balances in the new ledger and then you can at some point filter out these things know this answer in each shard or
- 1:02:38
continuous so let's say that the top chart ends up having more activity right so so as I maintain the top shard well radio label transactions for the future split know they have their marker from the beginning on it's like it's right like an inherent charting DNA which is part of every transaction so let's say you have 10 numbers like this one says like I live in charge number one this one says I live in shot number two this
- 1:03:03
is like three four or five whatever and they will also always be in one so if I start to sponsored one will never split further no it can split further but if I say like shard 1 is 1 to 5 and 2 is like 6 icing then I can split it up again and say like okay short one point one is from 1 to 3 and then right and so on right and if I make this space potentially address is really big then I can do this arbitrary often I mean it's the fact we have logical charts we
- 1:03:34
should have like a huge number right so like let's say 2 to the 64th and you have physical charts so you initially have one physical chart and then you have two physical charts and every physical yeah but there's some additional steps which make this make this mechanism a little bit more beautiful because you would you will not have these distinct charts that you have usually in the book chamber so but this is essentially the basic idea you say
- 1:03:59
just put like a stick on every transaction everybody knows who's responsible for that and if we need to shard then we can we can yeah we can do that and nobody can double spend so I'll consider it okay go ahead if you have a scenario there's one problem with this approach the problem is that the shards essentially need to know when and where to split and this is something that is a
- 1:04:24
bit tricky to achieve because it essentially requires you to have another consensus mechanism one cup of consensus mechanism right if I consider myself to not be responsible for four blue slightly later after blue decides that for himself then maybe I'm still able to spend it in both in both France right so this is this is like it's kind of like the early idea it's maybe a good way to understand the whole concept in that and it also makes you understand how this
- 1:04:53
like this this whole concept works but we also don't have the ability to send funds between sharks currently right like there's no we when we don't want to have another chain and top of all of these charts so then we go to the next step and it's a relatively straightforward optimization again we just do a network with marker based hip selection so it means that read transactions will prefer to reference other read transactions and blue transactions we prefer to reference other group transactions and
- 1:05:24
transactions just perform tip selection within their sharding vicinity kind of like a within yeah what they see kind of right and the result of this is that you will have a a big tangle where everything is still connected to everything else but these kind of sharp markers are a little bit like the colors of the rainbow I mean I only have four calories here and that in this picture because I cannot possibly write like one
- 1:05:52
trillion colors but you will have like a gradient of all the different colors from one from starting number to the ending number okay so do you prefer so from this picture there's also preference for the neighboring shirts is it just an artifact of the picture or that's also the know if you are let's say you're shouting calling it notice number five transaction then you could issue and then you would connect to one transaction that is either smaller
- 1:06:19
equals the short marker than yourself kind of like when there is like before you and when there is slightly after you so you will naturally start reference also some other transactions from other shorts came because there's no distinct borders between the shards and I think it also becomes a little bit more obvious what I mean when we switch to the next picture so for now we just do the step selection and say like okay we always try to select tips that are close to ours in a
- 1:06:50
short location right but we also needed to have a certain monotonicity like if if this one has 5 then this one should be or let's say if this one here is 5 then this one for example should be 5 or smaller and this one should be 5 or bigger so you always position yourself in the middle between two other tips that your friends so you if I move in one direction it always grows or three
- 1:07:15
like stays the same it cannot like go up and down and up and down so you have a so here in these in the distribution of the shop space it really looks like if you would do it with camera trapping it like a rainbow what happens if my transaction is the largest do I only have one reference we just don't allow that to happen so let's say so I assume you use some sort of hashes for some
- 1:07:40
ideas of the transaction so let's say I create the transaction and it's house or IG happens to be the largest ever existing up until now so I cannot have I cannot reference something larger because larger doesn't exist well I just have one here structurally it's like as soon as you come up on the end you would kind of connect at the bottom again it's like oh it's green so you always just
- 1:08:07
try to be in your facility Kenneth I see and also I think it's gonna be a little bit more you know maybe no so so the nodes can now decide what position in this routing space they're interested in okay so we have more that has this window of perception so I download to tango but I don't know I don't don't know everything because if we go back to this example here then let's say red was let's say Berlin transactions in Berlin
- 1:08:33
and blues transactions and mock mock which is a city that is not too far away from Berlin and all the people that are living in Berlin would only naturally be interested in the balance right they don't really care if somebody like in another city or in another continent or whatever has as as balances so the intention of this charting is that you only download reference and process the transaction that you're immediately interested in and the same thing is true here and in this window of
- 1:09:03
perception the note would have its focal point like the the the the sharding space that it wants to process in the middle so a note that is interested in the red markers we download these transactions but it will also download and and solidify and request the transactions that are a little bit further away so it cannot just see and and and process what is in its yeah in an it's very kind of interest but it will also see transactions from its direct neighbors enough okay that make
- 1:09:38
sense that can you so far okay and this means that you also will have a situation where these kind of perception windows can overlap like you will have somebody who's like maybe operating in the middle of Berlin then you will have something some nodes operating in West Berlin so these perception windows are overlapping depending on which node is seeing what kind of so when you're using
- 1:10:02
geographical locations is it just a matter for or you actually envision that the charting will be more or less aligned with the we actually do envision to use a geographic showing there will also be logical like you can you can define if you want to use the geographical charting layer or if you want to use a logical routing layer where then for example applications that need local consensus instead of this
- 1:10:25
kind of local economy based consensus and the way this works is essentially just that the node as soon as you set it up it defines its location like where I am located where is my business located for example all if I have if I have a note that is more buy-in than this this node can even change its rowling location as soon as issues the next transition transaction with the new shop
- 1:10:48
market then everybody will also know which every of this whole charting space it observes so that means nodes can freely move between these shards they can drive around as cars for example and always shift their window of perception accordingly and the interesting aspect here is that all transactions like the blue transaction down here still indirectly references the transaction over there kind of so even I mean in that case is maybe not so easy to see
- 1:11:18
but that make sense over time over time the Tanglewood entangle global tangle that spans around the whole globe without any discrete orders we still have the situation that every single transaction indirectly references another transaction anywhere else in the world even though I don't really know about this anymore because I cut off my perception window here right this would be something we will then use for inter
- 1:11:47
shard transactions but it so far it makes sense it's not really complicated with slightly different take on shopping at the interesting aspect here maybe know just one more thing before we start talking about inter short transactions is that in my directness energy is pretty easy for me to do in two short transactions right I know the balance here and just one for example if this bell the student sends some funds into this chart for example then I will
- 1:12:20
immediately be able to verify then I would see if it's if there was a conflicting transaction because any double spend would also necessarily lie on the same charge location as this one because the the funds are booked in this specific location so right it means kind of close distance into short okay transactions can be done by the nodes just by observing and voting for it in the same way as he does it look but as soon as I want to transfer funds that are a bit further away then of course
- 1:12:50
this is not as easily possible anymore and then we have another mechanism which we're going to use for this inter shore transaction and here's an example then we have the deck now written like from up to down so it's growing in this direction and we have a transaction which spends from the red shirt to give you and so in the transaction there would be a source shown in the target chart and
- 1:13:13
initially this step is like the tip here and it will get verified by its local meditators which we look at this transaction in which were like start to reference it accordingly and then it will build on top of that and the people next to it will do the same and at some point people will have a direct indirect reference to this transaction and what now is that while this like if it is an inter short transaction that is supposed
- 1:13:39
to go to another shard then in gossiping we look at our neighbors and and see which one of our neighbors is closer to the destination where it needs to go and then it always wait until the new transaction gets attached collects the hashes and essentially builds a market proof this of this thing of the whole path and as soon as it arrives on the destination shard then I can present to
- 1:14:03
this recipe kind of which proves that this original transaction gets reattached there here's a second version and I attach another proof and then I can check if the balances haven't been moved and if the The Shard link space is honest or like the Tangier and totally understand we have these kind of connections then I can do this in a trust this manner and I can transfer funds from each point on earth to every other point on earth right but there's a difference with Merkel proof right a
- 1:14:32
miracle proof is by using logarithmic in the sense that every every consecutive layer spends twice as wide connection right while here the number gets a hopes it's a little bit different also because in but it uses the same kind of principle principles right you accumulate hashes but you always do it pair way so it's not freely marquetry and and where the leaves get wider and wider so you depth doesn't that doesn't rise no good with McKinney but what you can do is also if this fast gets too
- 1:15:04
long for example it's not super long I mean you do you have like if you buy it's a really lucky you because you can always also calculate the previous hash from the one here so every for every step I only need one hash yes I need our original transaction so I need this higher then I can compute to this one do I need this head i compute this one and so on but it doesn't take 5 seconds per step
- 1:15:25
right because like hypothetical yellow note in the middle yellow transaction will not be created until 5 seconds past from the previous one right yes then of course can take a relatively young time to do this kind of inter sharp transition I mean what is not entirely clear I think for me is why why do I care about my transaction getting to a particular short so let's say I want to
- 1:16:00
pay you right if I have a you check so in the red shirt I will just pay you and now you have your ejector in the red chart right so it can following I see you might even see you then really hard kind of seeing if you if you really had the funds kind of read like you're telling me yeah this is the transaction and they get executed there but I kind of need to prize to you but how do you know like even if we have this proof right so imagine the following situation so let's say that I Yoda has been
- 1:16:37
running for a while right okay can we switch to the white board I will I will show you a relatively classic or actually cannot do it I can do it so let's say the following happens right so we have multiple shots as we have a blue shirt here which boosts transactions we have our unique yeah you can you can just move there this is like a tool on the right with the little hand and right yeah and so then let's say these there's a
- 1:17:12
green sword over here right and they they sort of touch each other and then there's a red shirt next to it and so let's say that iota iota has been running for a while it processes let's say million transactions business transactions per second and so to maintain the flow the number of shorts actually grew to be pretty big right and also let's say that the number of users is also like what's actually just like
- 1:17:33
every car every Tesla every every gas station has it right there are millions of users billions of transactions per second number of charges and thousands and so let's say everybody follows the exact constant doesn't matter so for simplicity let's say everybody follows exactly t-shirts I change number right it's like you you just have a certain window of perception which is a certain diameter of egg that
- 1:17:57
you can actually process and the nodes can individually decide how much of the bigger picture they want to see so if you have a very lightweight node for example then this lightweight node might only see like I don't know the next two kilometers for example but if you have like a node that has a little bit more processing power for example it might see two inside like and keep track of transactions that way but for the sake of experiment let's say that majority
- 1:18:20
because majority of the nodes will be very lightweight right so so let's say there is several nodes but very few of them who are very heavyweight so like for example some people an iota Foundation on a node which just drives the entire tag right or like some but majority of nodes are actually IOT devices and let's say we know that on average deployment on the Eric a device they track a like their perception
- 1:18:43
window is approximately corresponding to t-shirts right so let's see if like one shard is sufficiently wide to like fit so I don't exactly what we measure but let's say it's hashes right so it fits some width of caches let's say that the average IOT devices actually tracks like three times that or four times that then what I can do is I can create a large so I can Sybil attack couple shirts so Sybil attacking the whole system is very expensive right I would have to have mana proportional to the mana of the
- 1:19:14
entire system but the decisions that you make within your windows perception and based on the right but what they can try to do is they can try to move all my mana into this red window right so over time so let's say I'm planning my attack today which I will carry out in the year and so within a year like in January today I moved all my mana to the red to the red sort of space so in the red
- 1:19:44
space my mana dominates the the space and also to yellow right so red and yellow both dominated me uh while nowhere else I have my manner right so then I effectively to simple attack two shirts when these thousands of sharks only need one thousandth of the total mana right because one of the system-wide manner this is the same problem that you have with any slalom like as soon as the shards get really really small also the security problems kind of get a little bit smaller right but but like the
- 1:20:16
weight sorry and and I agree that I have to say that currently mana for example is is the anti civil mechanism that we're using but in the future it would mostly make much more sense if we have this amount of a doctrine to not use mana as anticipate mechanism but we use actually world identities since we're anyway local already and people know each other and know they have a certain perception of trust and if you live for example in the city of burnin and you
- 1:20:46
say all the shops although all the government agencies all the companies that are operating in Berlin would like we have the trust maybe even bound by the legal framework of the country where the technology is used then you kind of have the ability to use this that has an anti super mechanism and that of course becomes much harder to attack but the current version of quarry site which is
- 1:21:11
also kind of version 1.0 that we're talking about there's going to be additional changes is most really going to be based of mana also because we don't think that people reach this kind of splintering in the shards right from the start so it's going to be illusionary process and then at some point they mostly will be results from additional like and disable mechanisms and stuff like that we already have a
- 1:21:35
framework and somebody from community who has proposed something very similar and like essentially like an Oracle for decentralized identities and this would allow you to do exactly that and then of course it becomes much much harder to simply take a certain amount of shard and I mean I also have to say like the amount of TPS that we're currently achieving with go shimmer is around ten twenty thousand TPS so it's quite a lot and even normal naked machine that is not like a
- 1:22:07
super-strong server right because yeah you can process everything as it arrives that you don't need to wait and rock train then they go through all the transaction and do all the signature checks at the same time of course if you crease the decrease the time between box then you get essentially similar effect but load balance this extremely well and if we're talking about IOT of the future
- 1:22:31
then of course we're also not talking about a smart light bulbs and small little sensors that have the size of little know a fingernail for example but actually devices that are machines like cars smart devices that are driving around that having a certain amount of processing power and that have also the ability to keep track at least as a reasonable fraction of the full picture right and at the beginning like if you if you assume you have like I don't know
- 1:22:56
10 20,000 TPS throughput and maybe let me play in something and you will have very big line and you would have your your tango like you're shouting space which which looks like this is like a range of numbers and of course it's everything but it's maybe a little bit easier to to paint in that sense at the beginning you would have a situation where everybody sees everything like this most from gonna be the situation can I can I remove your funny pictures
- 1:23:26
yeah sure ok so everybody will see everything it's most obviously very secure to do it like that right and then however time adoption rises maybe at some point we have like a hundred thousand TPS in the system or something then and and each now it can pose up to twenty thousand then you will have essentially five shots but it's not really five shots they will overlap so that means you will have some people observing this some people are serving this maybe there are some smaller
- 1:23:50
devices observing this and you will have a kind of like a patch of of people living here right and this also would be reflected in the business relationships because we have this this charting based on these geographic proximity and and most of the economy still happens locally like if I if I want to buy a pizza I go to my pizzeria around the corner and it would be good if those guys know my balance and we can
- 1:24:15
communicate with each and it also means that yeah that I have a certain incentive to be present in other people's chart and maybe I have another subsidy in the city and I'm an international corporation or whatever so even if my company is here I might operate another server here and I might operate another server here and I can observe what's going on in other parts of the world and if somebody would say if I were and would start to kind of suddenly reverse decisions and stuff like that I'm pretty sure that at that
- 1:24:46
point of adoption we would see this being recognized by some of the actors and they could inform the world and say like oh this round has just done something really really bad don't accept payments from from from that right side section here right and the same is also true like if you could have community in countries for example it's very unlikely that you will have no other actor economic actor in the world that has
- 1:25:10
that would see that in a way right like you can you can you can report that and they I also have some ideas around how you can even automate that with like servers that are that are located like every now and then then they connect the information that they see and build additional market proofs and keep that as like a point of reference which allows you to prove these things in the past also and of course then the
- 1:25:34
ultimate solution would be that you have like a really fine grained Charlet network where everything is like that would be like the ultimate vision in like a few 10 20 years I don't know how long it's going to take until each like millions hundreds of millions of transactions per second but this is something that we don't really have to care about in the immediate future and by the time this would happen I think we will have the corresponding legal
- 1:25:58
framework and the ability to address that with some other form of mechanism so I can provide you some references which would be interesting how this compares to to what's been happening in the sharding research in the like for example what was happening in near a theorem or polka-dot which are all you know to an extent like pokel it is also to an extent is charting so so the the basic attack right which you which you mentioned you also mentioned how to try to get around it is
- 1:26:28
let's say this has happening the geographic activity basis right unless it that somewhere over here somewhere over here is something that I managed to Sybil attack so if it's if it's mana proof of mana and I just managed to move all my men are there or if it's proof of identity then I just like went to some city or which travels back in Russia where I'm from right and I just managed to grab the entire city of who's asked and I'm convinced everybody in the zest to collude and
- 1:26:50
also know the neighboring cities right and so what they do is in my city the organelles I create something completely bogus like a crater you TXO which is invalid and prints money and then my neighboring cities whom I also convinced to collude they do not produce anything invalid except accepting that you Excel you know so that someone who is who is neighboring those stitches they don't
- 1:27:13
see anything incorrect happening in this proximity because they don't look at the desk where they actual invalid transaction happened and so that invalid UT EXO managed to propagate through the system and then somewhere in Berlin after multiple Hope suspended and so the general way that that you mentioned which makes lot of sense is that you actually do have because it takes one node to detect invalid behavior and one node is cheap right so you will have one
- 1:27:39
node one very expensive note standing in various parts of the world however it is a big problem here which is when I create an invalid you check so I invalidate Yuki xoxo which reference is something that does not exist right so great you check so I where I say you know the output of this UT EXO is 1 million iota tokens and the input I just I just create random hashes you know like I just create random hashes and so
- 1:28:03
if you have that server which is which is supposed to provide proofs you cannot really prove to everybody else that those you get so they invalid so even though you cannot fetch them locally write to you locally that very expensive server which is supposed to more you to resist you see that invalid ugh so you clearly understand it's invalid you know it looks very suspicious but you cannot prove to everybody else that those
- 1:28:26
hashes incorrect so the only thing you can do is you can go to everybody else and say guys is that straight at you EXO which is invalid but you will have to go yourself to just to sing the entire tangle effectively and see to yourself that that that you texture isn't valid effectively right necessarily you can also these kind of market proofs in the word that you have for references in the tangle over the utx o set kind of so in
- 1:28:53
theory I would be able to prove to a certain degree like I'm not 100% sure about that but there are some ideas around that which are not finalized yet there's also like a very new new concepts like as I said it's the first time that we talked about this publicly at all so there's maybe also room for improvement but you might be able to prove that it at some point at least and from Genesis but I wouldn't maybe be so sure about that but what I
- 1:29:24
see as the point here is that the big I mean this is essentially a problem that you have an NH hardened solution right so is this is not necessarily worse in a way from other insured things like that maybe maybe you could not inflate the supply anyway but you could at least double spin and do like bad things there as well so the way I can work very briefly tell what's happening in the in
- 1:29:55
this in the ecosystem is that the so the first problem where I were is asked you know goes rogue and creates an invalid state transition and that is called state validate or like data validity state validity problem and so your solution is actually exactly how most of the people solve it right they just have nodes which monitor the situation and challenge it but to challenge something you actually need to see the whole history so in case of iota that means
- 1:30:19
that if there is a if there is a certain if there is a certain transaction which is invalid and the trance is something there's got to be a way to prove that this something is not part of the valid tango like this got to be a way to prove it it does not go to Genesis which is very hard because if I created this transaction like this will not even be a valid test of some other transaction those will be random numbers right and
- 1:30:43
it's hard to prove and so that's called data availability problem which is harder and the way mostly it is soft is by having a data availability layer where before any transaction gets accepted if actually like you have a smaller No which do not you lead like you know apply all the state transitions but they constantly for example attest to the availability of the data so vector there is a larger set of people who will say yes I saw those hashes and so it will be
- 1:31:07
harder for me to corrupt all those people yeah I mean the tangle is still like a big chain kind of like everything is connected right so I could pick one calling it in the showroom space and accumulate or they could build something like a checkpoint there we have like hash hash then again which can be used to prove that stuff exists somewhere and was approved so it's very easy to prove that something exists it's very hard to get something so the question is like maybe it would be possible to to
- 1:31:41
challenge that it doesn't exist and then make the people who provide this transaction provide a proof that it has been referenced by one of these summary miles so it's somewhere in the middle of this thing and if they cannot do that then you can assume that this was not a valid transaction but I think that this is something that really only becomes relevant once you reach a certain maturity of the technology and adoption
- 1:32:07
and of course there's also this new additional research going into these kind of things and this is hard problems and it's maybe not even that easy to solve but I think that by the time we arrive there there might also be additional answers to these kind of things in the immediate future so in the NASS next five years ahead or something where the charting space is not that like badly separated it's most probably
- 1:32:33
not going to be a big problem and the big Pro that I see about this routing approach compared to probe chain for example is that in blockchain if you if you if you split up your validators upfront to make up for like 64 shards making the case of your theory I think you guys have eight mistaken right then I change changes yeah but the eight is the initial value yeah yeah I mean but it doesn't matter like how many like how much you you do this you essentially
- 1:32:58
split up the security of your network by an eighth or by an 64 or something like that I mean maybe not exactly but the security gets slightly lower because you kind of need to speed up your validate in this concept I don't need to do this with a upfront I can have an extremely secure network in times where the adoption is not that large yet right but I have the the ability by nodes then
- 1:33:24
consecutively making their window of perception smaller and smaller smaller over time more or less organically adopt to what the network actually needs and then also maybe grow back again if the if the the usage of the network essentially drops again like if you have a very active period then nodes like shrink their perception and then you have Corona and like the whole activity breaks down and then suddenly you have
- 1:33:47
make a very you can you can you can afford to reference more stuff again and I can also they grow your your perception again so in that sense it of course has the same issues and the same problems as any Charlotte system but it has a slight benefit because you don't need to do the security splitting up front that's something what I really like about this concept it's just like an organic system that adopts to whatever
- 1:34:09
is needed yeah yeah I think to support your point I think in any foreseeable future the number of shots will not be in thousands right and so even if I can adapt to the corrupt one short it's still going to be very expensive in the absolute terms one last thing also the whole a class today we're going to talk about something else after as well but one point that was also really important is that iota still has second layer scaling as well we have something which is called flash challenge so that means
- 1:34:35
I can create a transaction that with like a person that I want to transact untangle it create like a payment share it essentially pretty similar to how the lightning Network works it's a little bit different but not much different and that means that I can then transact of chain this kind of like really micro payments like let's say I go to a gas station and I want to buy some some gasoline or something right then what I would usually do is like I open this payment she'll go with the gas station
- 1:35:00
cost me any fuse I can do that even for like a two or five dollar payment or whatever and then I start streaming to pay him single units of IRA or like ten each or something which is like fractions of a cent and then the gas station would continue providing me energy or like gas station a usually say gas station but let's assume like electric vehicles because that's and then as soon as one of the people stops even if somebody make breaks the trust in a way he only loses like a fraction of the sand and I'm just like
- 1:35:31
stop sending money or like the Chinese agent sending energy so it means that even though you you have a lot of machines interacting not everything will always happen on the main time the main thing is essentially just a broker broker for transactions that happen between individuals that cannot be made that they cannot use these kind of payment channels and also for inter short transaction you can do the same you can essentially have an end a clip and paying something but this is also something that is still researched so
- 1:36:04
that is more in the realm of like ideas how we deal with this kind of fracture charting environment once the network gets really really fragmented but what you can do is like that you open the payment channel like two people open a payment channel that are really far away from each other and like a money sending service or whatever right and they have a certain amount of iodine as a balance
- 1:36:28
that they can operate on and then they have people using their service to send funds from here to here and if the if the if the amount of funds that on average flow into both directions are more or less the same then they can do that essentially indefinitely and then just they just manage their address together in the payment general and then you don't have to do these really long inter shard transactions that you would
- 1:36:53
otherwise do you can't do it but it's eventually slow if the if the clustering is really really big as you said earlier like especially with this containment period of the of the transactions then you yeah you would have the problem that yeah then I would just take long so if you have these kind of payment channels as the second layer solution then you can offer these kind of services maybe
- 1:37:17
even ask for small fee for operating this service I mean a yota the base technology should be Fitness because if I am already running a node and providing infrastructure is good for the node then why would I also pay something to somebody else right it's just that everybody helps each other kind of but if you want to offer extra service and charge small fees for that for like these long-distance transfers and that's
- 1:37:42
totally fine and valid right also to to your point I don't think it is necessary that the inflow and outflow are equal right those two payment channels can can can rebalance themselves using slow transactions yeah at the end of the day like if you see there is like some difference then you can just send the money and then if it takes like two or three minutes until it arrives into your location that's also fine I mean that's you don't have to do that but this could
- 1:38:05
be used for like instant payments like I know you want to buy something old or something from the UK and you're in Berlin right now I always use the German cities because I'm German but this is essentially the idea right so and I think that's also a nice and good way of doing layer to payment channels because it essentially serves this one purpose and doesn't put all of the activity on
- 1:38:26
layer 2 as Bitcoin tries to do it with the Lightning Network for example where I'm not such a big fan and I see some game theoretic issues there but maybe yeah I think that's a it's an interesting idea and this is also why why our whole algorithm made the kind of like way it just took so long because I've been developing all of these concerns like getting the ideas how we do this I mean initially when we started we we had kind of this idea but we didn't know how to connect these channels we didn't really
- 1:39:00
know how to prevent that in spends it took some time and it's it's really simple like simple idea essentially it is not really really complex to understand first it took some time to just arrive at that point and yeah cool awesome I think we covered a lot of material today there's a lot of it yeah a lot of stuff for people to to digest thanks a lot for for taking your time and providing this deep dive yeah and yeah I think I think it's very
- 1:39:33
interesting times in front of iota so so let's see how that all unfolds Thanks