Submind YouTube summaries
Thumbnail for Amaury Séchet - Embrace the DAG

Amaury Séchet - Embrace the DAG

Watch on YouTube

Video summary

Amaury Séchet identifies entropy within distributed systems as the fundamental cause of Bitcoin's current challenges, including security vulnerabilities in Zeroconf, difficulties in fee determination, and poor user experiences with pending transactions. In today's decentralized environment, nodes maintain divergent local views of transaction states until blocks are found every ten minutes to reconcile these differences; this periodic update cycle allows significant uncertainty to grow, making it difficult for users to know if a transaction is confirmed or for the network to enforce policies without central coordination. To address this issue, Séchet proposes reducing the dimensions in which nodes can disagree before reconciliation occurs, arguing that while eliminating entropy entirely is impossible due to physical network limits, drastically reducing it offers substantial improvements over the current passive approach of waiting ten minutes. He outlines three primary strategies to combat state divergence: Bitcoin Cash's elected leader model, weak blocks with more frequent but smaller proof-of-work intervals, and the Avalanche Protocol. Among these, Séchet highlights Avalanche as a Byzantine Fault Tolerant solution where nodes actively query random samples of peers regarding transaction validity rather than waiting passively, enabling rapid consensus convergence within milliseconds even in contentious scenarios. This active sampling approach not only improves user experience by providing near-instant finalization but also allows market-driven policies like minimum fees to emerge organically without central planning, while maintaining the integrity of relative transaction ordering through simple canonical rules such as sorting by Transaction ID rather than relying on arbitrary global block sequences. The discussion further addresses critical concerns regarding network security and fairness, noting that guaranteeing eventual convergence is sufficient despite variations in finalization times across different nodes. To mitigate risks like Sybil attacks from new full nodes lacking history, the proposal involves tying participation to scarce resources through proof of work or stake rather than relying solely on consensus algorithms; this ensures participants have invested real costs without allowing wealth to directly dictate power as seen in traditional Proof-of-Stake systems. By utilizing assets as a voting filter and ensuring random peer sampling includes a large enough sample size, the system prevents cornering by single actors while avoiding the creation of an aristocracy, thereby creating robust conditions where even small practical variances do not undermine the overall reliability of the network.
Read the full video transcript
[Music] so I'm memory sushi I assume like most of you know me so I'm not gonna go into too much detail here today I'm gonna talk about something that is a bit different from what I've been discussed before and I'm gonna talk about some solution I know like many people ask me about what kind of solution I have in mind but before I want to talk about solution and probably even more important pin and solution I want to maybe reframe the problem I'm trying to solve a bit and the main reason is as follow I think the problem we have with zeroconf and xerocon security in general and the boss spend a lot of that our whole class of problem that derive from the same root cause right and when we try to solve those symptoms rather than the root cause we end up playing whack-a-mole a bit so even though we can come up with better trade off we can like never quite nail it and I can take example of solution that have been proposed earlier during this conference for instance if we go to super standard transaction then we have a set of transaction for which you're conf works better but then we have the set of transaction that is non-standard for which it's actually worse so we are making a trade off maybe it's a trade off worth doing but we are essentially like like you know making it better by making it worse somewhere else right and as long as you don't attack the root cause the root cause is just gonna show it's at somewhere with some trade off so I would like to talk about the root cause a bit and and see what we can do to improve things at that level so what if I told you that your conf files blocked relays so spreading blog very quickly on the network which is also very important for scaling which is another aspect of BCH we have not discussed much at this conference but I think we all agree that it's very important free market fee determination but also a policy so for instance what is the minimum rally fee right now we have a bit of a problem determining that and in a free-market manner right because when people don't agree with each other then it degrades the security of xerocon so we can see a bit of an in there and also one thing that is fairly similar to zeroconf but we've talked about Xero a lot in the you know in the frame of double Spain right we have two transaction and one of them is gonna confirm that maybe I have just one transaction and and it may be it's gonna confirm well maybe it's gonna not confirm and any one that I've been using BDC say in this chamber last you're a very good idea of what I'm talking about you make a transaction and you have no freaking idea if it's gonna go through or not and the only way you're gonna know is to wait several hours even some time maybe days which is which is an absolutely terrible user experience so if you send a transaction and for some reason the network rejects it because it doesn't pay that fee because it doesn't respect whatever policy people just you to respect then you need to be able to know it all so very quickly and not of this zombie transaction roaming around for forever until you know everybody gives up on it and I will argue that hold those different problem of actually the same root cause and this is what I want to talk about so even though I'm gonna discuss a bit of solution if you need to remember something from what I'm going to say today is is that would cause because it then you know then there are different solution we can explore but it informed us on what those solution may be so Bitcoin as it reads dag it's a dag of transaction so what is the dag it's a it's a type of graph so a graph is computer science that are surprising most people here are well versed in computer science or at least in basics of graph theory but it's a it's so it's a type of graph where you have different elements in our case the transaction and they are linked to each other because they spend money from each and this is a dag that have some specific property it's directed meaning that the connection are not be directional right so if we were looking at a map you can have a road between two points on the map and Ezer the road you can go in both direction or it's a one-way street so in our case an aura graph we have only one-way streets it's a sickly which means it doesn't have cycles you cannot go around in the graph and this is actually not something that we verify or not something that we try to ensure in the graph this is by construction because each node in the graph so that would be a nod in in graph theory lingo in in Bitcoin lingo that would be a transaction so each transaction contains the hash of the parent transaction and because of the property of a cryptographic hash we know that the parent transaction must have been created before the child transaction or I wouldn't be able to compute the ash and so it's impossible to have transaction a created before transaction B and then transaction be created before transaction a we have like a temporal impossibility here which means that by design it's impossible to have cycles in that graph and this is very important because those kind of graph have some special property that we can use alright so now we are in the distributed system and even though if we were all omniscient we could know all the transaction that exists and when they have been created and all of that but in a practical sense that is not possible and this is one of the constraint you have to work with when you work on a distributed system that means that the only thing you know is when someone else told you that some event happened so for instance someone forwarded you a transaction hey there is this new transaction so you you have no way to know when that transaction was actually created you just have a way to know when someone forwarded it to you and you can know when you send the information to someone else right but you cannot never be sure that they actually received it or that they processed it correctly or that they accepted the transaction or this like like your scope the scope of information that you have is actually quite limited and inherently very subjective right because those information when I witness some transaction and when I forwarded some transaction to someone else it's gonna be completely different for every single node on the network so that means that it's not of a dag in its mempool of transaction that are being made on the network but none of the node actually have the same tag in there they are all constructing it so hopefully they are going in the same direction eventually but at any point in time they have a different view of what the state of the of the universe is so then what happened because because of that state of offer what happen is that we have this mining process and you produce block on a regular basis and when you find when someone find a block it's gonna take whatever subset of the dag is aware of at that time and and and considered considered valid and considered worthy of of confirmation put that in a blog find a block and then forward the block to everybody else and everybody else is gonna try to reconciliate whatever the new of the world locally with whatever is in the block and potentially like reconsider whatever their view of the world is right so there is all kind of all kind of stuff they can disagree with what was in the block maybe there are some transaction in the block that don't fit the policy that this specific node would have accepted but no they you know change their mind and consider it valid because it's in the block maybe there is a double span and the one in the block is not the one that the not considered as the you know the true original one so in that case the node is gonna well ditch you know change is mine on which one is the real and which one is the double span there is no you know objective way to say that but know that there is a block everybody agrees with what is in the block right and so this happen and did not continue to extend his daggers people do more transaction and the whole process repeats again and again so we are in a situation that I think is very similar to what people that do physics called entropy where the nodes are in the state and the state evolves constantly and the state between different nodes droves and grows and grows apart right and then when we find a block it act as a as a way to reduce some drop in the system and then on trapeze start growing again right so what we can see is that not because this is a distributed system not do not really agree on what the real or global state of the world is that means okay I've been over that a bit already during the previous slide but that means that some have seen a transaction maybe some oh sure I have not seen it yet because it has not been forwarded to them some may have accepted the transaction author may not have accepted it because maybe also considered that the fees too low or whatever reason like the I mean they do whatever they want they may disagree in what order the transaction happened because the transaction have been forwarded to them in a different order than some or not and they will disagree up double spend meaning if there are two transaction that spend the same money some node will consider one to be the correct one and some also not may consider the other one to be the correct one and there is no you know there is no objective truth that you can know to actually know which one is the real one that's the question that don't really make sense from the perspective or not and then a block is found and then we converge to essentially I'd find that on trapeze we go back to a low entropy level but this is quite slow right because we find a block every ten minutes so in a graphical way it looked like the so let's imagine that this whole slide is a space but not like a physical space it's the space of the different states that the node can be in right so right now a block has just been found so all the nodes are very close in the in the space of state to where the block is right they may have a few extra transaction that let me consider a valid they may not agree on those but for the most part they agree on whatever is in the block and as time goes on they grow further apart right they accept the accept information from the network and they don't really try to agree between themselves whatwhat about what is going on and so they grow apart in the in the state space and then eventually some new blog is found by one of the node and that knot is going to propagate it to the other nodes and they also not are gonna try to reconciliate their local state with whatever is in the block and so they they get there and then we start the process again because as we see there is a new blog but we find ourselves in situations similar to what to what we had before and so we we have a few problem with that it's and and this is where we reach to I think the core of the issue is that not make no attempt whatsoever to reconciliate state before a block is found right just pick up whatever is going on make their local stuff and grow apart and then once every ten minutes they're gonna try to reconciliate their state and so what happened is that the distance between a node and a new block that is found on the network in that state space can be can be potentially very high right especially if there is a double span that has been done early on they may be on a completely different sub graph of transaction so that that's a challenge for a five-block relay right because the amount of state you have to reconciliate between what the not already processed and knows about locally and the state it needs to put itself in is bit like the further apart those tools are the more work there is to do for the node to actually accept that new block so that's one of the that's one of the one core issue I was talking of the earlier five block really right another one is that transaction are essentially in quantum state before a block is found because depending on who is looking at the system they're gonna see different things right so it's it's like it's not quantum in a literal manner right but it's very similar to what I find in quantum mechanics where the system is gonna be like quite in an in defined state unless you look at it and looking at it in that metaphor would be finding a block and so that means that user can really never really know if a transaction has been rejected by the network or not they just have to wait like forever until they give up because maybe that transaction may be accepted in the next block or not and you don't know until the block is fun and then you repeat if there is a double span going on they don't know which one of the double span is going to be accepted until there is a block that is found finally that also means that policy such as minimum fee by essentially any kind of policy does not want to apply on whatever it is doing needs to be either central plant so we say maybe in that group we decide okay the minimum fee needs to be X and then we go to all the minor and businesses and say okay the minimum fee is X and everybody uses the same minimum fee and so there is no divergence going on there but I would argue that central planning of economic matter usually it doesn't work great on the long term so that's not very good you know that's not a very good situation but the alternative is probably even worse at least I would argue that seven words is that essentially we have no zeroconf anymore because if everybody starts using a different policies then there is a complete fracture in the state of the block because some are going to accept one transaction some are not gonna accept so they're gonna grow apart in that state space even faster than dead you know which means we have a bit of you know dichotomy between two pretty bad choices here so yes from the top you say that nodes make no attempts to reconciliate state you even said whatsoever that's false they send all the transactions - to each other they send reject messages when transactions are not acceptable how can you say they're not reconciliate in their state that's exactly what they do on a continuous basis distance is potentially large is it retail yes they don't write your date they they announce what their state is towards a lot but they make no effort whatsoever to try to all together come to what the same state they do because they send their state to others and so they can so the other nodes can see the same data that the first one saw and they also send reject messages there is a reject messaging will you forward a transaction and they also not reject because there is a low fee locally the note does nothing about that message and that's a point you point out there is no way you said to find out if something is rejected by the network yes there is you can listen to other nodes you can listen to various notes to see what their state is you a different answer and what does the network comply a mean in your world because if there's lots of different nodes and some of them disagree with each other that can happen but only because of exceptional conditions like for instance a double spend so different nodes have different ideas which means that there is also a very very small set of transactions that would cause a disagreement so you're probably like today there are - that I've said different feel events right so if you send a transaction that have a fee that is in the right range some people I can accept it some people are not gonna accept it like it's very easy right now to have no disagree with each other and and those different notes they make no attempt it's also very easy to make them not with each other I think that the vast majority of transactions get mind without any disagreements between notes will probably pop talking about the five nines here may I suggest that we take this discussion afterwards and let Amara well it seems to be his basis of the presentation well in that case we should take it after the presentation okay okay so that's what I was getting at they're not they instead of making that once every 10 minutes they need to make an ongoing effort to be as much as possible in the same state over those 10 minutes because if you do that and you get back to like this situation you know it was not that our you know far away they are all set up in the same area so they are very little work to do for the block it's also good for user because they can ask us not and they are like okay all the nod are in that area of the state space which means that whatever can happen whatever is going to be true it's gonna be somewhere in that cluster so I'm gonna go quickly against how we can fight this entropy increase to keep it low obviously because of the property of distributed system you can never keep it to zero but you can do better than do nothing for ten minutes and then and that work your ass off to try to reduce it to something close to zero and then start again so the first so they are essentially two direction we can go in right and the first one would be removing some dimension in which node can you know go away from each other in that state space because even though like the slide is two dimensional really the state space is n dimensional right and we cannot slash some of those dimensions someone that you can slash is so if you take about like the information that is in the global set let's say you are an omniscient being and you would be looking at the network there is a certain number of transactions that are gone in there even though all nodes may not agree about what its number is and which one are valid or not so if you do that you would see that there is a certain amount of state per node and the larger this step is the more potential there are for those not to grow away from each other and essentially you have like one bit per transaction of state that is is the node accept that transaction as you know being like a good one that's going to be included in like that's going to be confirmed or or not right so that's one bit of information per transaction that is going around and you have also information about authoring so it's not is gonna disagree on what order those transaction have been made there is much more information there right because if you have n transaction there is n factorial possible ordering of those which means you have n log n bits of information about ordering and so if you look at it from first principle that way you realize that within that system there is like almost all the information is ordering almost all of it and so if you pick some number if you have like a thousand transactions that are going around you have like 10 times more information about ordering then about what the transaction is correct on that if you have a millions it's like 20x but you know you know to compute log n in base 2 so so this is what is right you get you get way way way more information about ordering so this is one of the reasons so Peter you were mentioning that when talking about about canonical ordering you were saying that okay you want that for reason eggs and reason why and resen Z and usually that's that's a bad smell right because that's that's an indication that you're kind of like trying to fish for reason to do this thing but I would argue actually XY and Z like this is the reason this is the reason and sy and z are just consequences of the fact that that you reduce the amount of information so if you reduce the amount of information it's easier to propagate block around but but as you know I'm not gonna read you the whole talk but as you can see there is like a vast amount of different aspects that are impacted by this but this is like this is the ground root cause this is actually what it's like from France Frankie thought this is what it's getting at so a solution has been proposed so okay this first one essentially reduce the dimension in which not can derive from each other so that's already good right like you the factor of let's state to reconciliate if there is less that not can go into you to begin with but you cannot do that for all kinds of states like the first n bits there is no way to do that for them so there are various solution that have been proposed over time and the first one I think or at least the first very interesting one that is compatible with Bitcoin everything was Bitcoin energy and so Bitcoin M G is a protocol where every time a new block is found a leader is going to be elected and so the leader is essentially waiver from the block and everybody reckon is the leader as the leader so whatever the leader say is whatever it is right so if the leaders say this transaction is in everybody's like alright I thought it was not in but the leaders say it's in so it's in and vice versa if the leaders say no everybody's like ok ok now like maybe maybe I wanted to do it but the leader is it doesn't want to so we're gonna set that with with the you know going forward or we don't do it it it works well except that you kind of rely on the leader until a new block is phone so if you you know if you end up having a leader that don't really give a crap about what's going on or even want to mess with the system well the leader of like 10 minutes to mess with us maybe the leader can choose for instance to confirm no transaction during the whole timeframe of ten minutes say you like no to every single transaction it would be like the you know the leader has no direct incentive but the leader may have incentive outside of the system to do that for instance the leader of a short bch and some exchange and choose to do that that's you know that's always an option they are always like the real world is not as simple as the game theory within Bitcoin there are many external external factors so and also one is weak blocks so the the idea of wait block is that we're not gonna produce one big block every ten minutes but we're gonna produce what is called weak blocks that have a bit less proof of work than the main blocks so they can be produced a bit more often and notes are gonna essentially agree with what is in the wait block so instead of reconcile it in a big state every ten minutes they reconciliate the smaller state every like one minute or two minutes or whatever is chosen for the time of the we blog so and I would argue the main problem here is that you are still doing a blockchain with proof of work in that system and so you still have some time constraint that are not quite where we want them to be we talked over the past two day that really we need to have just a few seconds like if it's more than five seconds essentially it's it's it doesn't work and right now we don't quite know how to produce block and propagate them on a five-second interval we can do it like maybe in a 10-15 second by by pushing stuff but going below 10 second is like a real challenge so so right now we don't quite know how to get to timing that are as low as we would like them to be but it's it's a solution that works that improve significantly over what exists and so the third idea is to use a protocol such as avalanche which is a new class of Byzantine fault Orion protocol we're not are going to essentially talk with each other and ask each other about whatever the state of the system is several time in a row and they can do that in such a way and update the intelligence state based on those response and they can do that in such a way that you can prove that they all converge toward the same state you know given some some property of the system so I would say it seems like the silhouette honestly but I guess it's fairly new so it's a bit experimental maybe there are some you know some consideration about it that have not been quite you know so true yet this is a paper that is less than a year old so this is a very recent ID but I think we should like think seriously about it in my opinion that's the most promising [Music] okay so to get back like you know to essentially sum up everything in one slide we need to be fighting on tropi on an ongoing basis because any proof iceberg preparation eating proof fast feedback on policy so is your transaction is going to be accepted or not you can know that right away it ensured that policy can be emerging from a free market because if some not start applying a different policy they're gonna ash it out with each other and eventually the network is gonna go one way or another but at least you know we get away so that we don't need to set that policy it can emerge and if you have nodes choose to use a different policy it's possible and you get protection against the box and like much stronger protection that we have now and it can be done in like two general direction the first one is reducing the entropy space that you can explore a good solution there or at least you know like a solution that slash many dimension of that Rock trophy state is making a canonical Odori because all the other information is gone and you can add synchronization mechanism to reconciliate the states that that you cannot slash out and those are gonna be mechanism like ng would block rather than yeah so first of all a great talk thank you for that and I just like to make one comment I see which is like so it seems like the lower as just an interesting observation because you say like quantum state of like super post like uncertainty of transactions but if you look at it very closely I think there's actually like a even like a Heisenberg uncertainty uncertainty bound in the net where it is like you take the diameter of the network in terms of like speed of propagation and you multiply this transaction rate and that is the amount of entropy you cannot get below absolutely absolutely you cannot get that don't repeat to zero there is no way to do it but we can get it to value that is much lower than what we have now and that's the argument I'm trying to me thanks again for the talk and my question is more specifics around avalanche I've read the paper my question is is in the fast Reese penned case if you manage to get around a 50-50 distribution for some reason avalanche is in deterministic from how I read the paper that it actually can't get a result in that case as the nodes are in an even split so what kind of notification mechanism are you thinking about in some of those edge cases an avalanche is I'm just curious your thoughts on it it's not really an opinion I just wanted more context on how that works so so it's a bit different than what you expect so a valance is if you have a situation where 5050 you're gonna have a lot of heat for being an avalanche it's gonna take a long time to to convert what one of the two but actually the paper proves that eventually you get eventually everybody converts in the same direction because what's happening is that you have random sampling so even though this is 50/50 depending on the random sample that virus none are gonna do some of them are gonna see something different than 5050 and because those flipping are gonna be random between not even 30 days old but then the card that's the you know the time it takes for that convergence to occur is well outside the bounds of what we actually need for reliable Cod like zeroconf it can't converge in that case so it's are you thinking that there might be a timing where it's like okay these notes are really disagreeing this kind of proves that something malicious happening there's some kind of double spend yes they're not able to do that so there'd be a timer where it's like hey we didn't get a result this proves that there's some there's a probability of fraud it's that kind of yes yes absolutely yes so for most transaction there is no double spent going on so for most transaction you can expect a conversion that is extremely quick in the matter of like 1/2 seconds but if there is if there is a contention and if this is very contentious in the network something close to 50/50 is going to effectively take longer to convert but in that case you can you know like even as a merchant in in face to face you can you know you can be like ok there is like something we are going on with your payment it takes a bit longer for my terminal to accept it you know butBut Evan like what is long 4-valent is actually quite short for blockchain right so something like 10 seconds is is you know very much in the long tail of what you measure with a large [Music] prevent it from converging well even there they technically converging yeah yes so yeah if you have a high percentage of malicious user they can create the situation where convergence is lower that means that it's not covered by the Avalanche paper but that means if you want to use Avalanche you need to have some civil mechanism like a civil protection which just simple but but as it turns out we are building a system that is all about digital scarcity to begin with so creating a civil mechanism within that it's not very difficult there're like there are actually many option you can use coin edge you can use coin themselves you can use proof-of-work you can probably use kind of tough but does that seem to you know it the three most obvious ones so that we mean that that you know someone that want to create slow conventions but being a lot of fake notes it's gonna have to put a lot of money on the table to begin with and if they are a big order in the system and want to screw with it they're gonna you know it's doesn't make a lot of sense here from an economical perspective thanks for a great talk armory I love the way that you're always looking for simplicity I'm looking for connections between games so my question is about the so I you left us hanging as you mentioned avalanche and the possibilities of it so the next thing I wanted to know was how like how will that happen the querying because and I'm guessing maybe there's a it's not fully developed or yet but um so I I have a fairly good idea like I have a proposal that I need to put like in a forum where I can propose to people but I I think I have a pretty good idea of how you can do that the reason I didn't explain that here is mostly time constraint right because I added a lot of I had a lot of framework to put up there so that you know it's so essentially if I were to come here and explain what I would want do with avalanche everybody would have been very confused because you know I couldn't like pose do well it's so the current system is that a node has the number of peers you need or two hundred peers and they already all relay everything to it so they're already I mean the note is already sort of taking a poll by listening yes and and if there's a conflict and it does get one of them first and that's how it's it makes a choice so it seems like you got your work cut out for you beating that because because you're going to have to take the time to go start proactively unless I misunderstand yes no that's that's correct you have to go start going asking questions getting answers and it's also talking about multiple rounds in this I it does seem like you have a challenge with keeping the performance and speed there to match what we're currently doing yes and no because for anything that is non-contentious it converge extremely quickly so what's so what you need addition eight what we are right now so we have to invest in inventory message an inventory message is essentially about yes from Sun Arsenal I accepted whatever that object is and I'm sending it to you but then you need another type of message which is like I have been told about object X but I don't think object it should be included and then you can and you know and then there is the question what do you think you would certainly trying to verify with double Spencer yeah so say you have transaction a and then you have transaction B that you receive later on that is a double span of a so you're not gonna accept that B because by default you use first seen as a policy and what you are gonna do is that you're gonna query a random sample of the note that you know and you're gonna ask them okay I just heard about these B stuff do you think B is something we should include in the blockchain yes no right and you're gonna ask those not and if they all tell you know it's gonna converge extremely quickly or if like you know ninety something percent of them tell you know it's gonna convert very quickly if some say yes some say no you're gonna need several one two but you already know that your direct peers don't like be or they would have sent it to you what this means you have hate peers which with your you know strongly connected and the other one are like more the sample would be outside of your current peer set yeah so this so the way other lunch work and it's very important to you know both keep the stuff going fast but at the same time keep it trust less it works by choosing randomly sampled chorim's to ask the question so you and I could pick up like eight or ten notes in all the notes you know and I stand the question but randomly right and important for the protocol to work you need to pick a new random Quran every time you need to you need to ask a new question and because of the you know property of the randomness you can prove that essentially the the when this you know when the state of the system as a whole is ambivalent the probably of that you know remaining big freeze exponentially okay how about someone else ago okay great talk armor yeah I really enjoyed that and I think you're you're totally right that the the underlying cause of the problems instant transactions block propagation is all this entropy in the system which is growing it and we're fighting it and I really liked the discussion about entropy because we know that it requires a certain amount of information exchanged between the knows to resolve it if yeah so this is a very real mathematically understood effect yeah this is really the floor we cannot go like we know that in practice we're not quite at that level we inform but like we change way more information than we need to but this is like the Tariq and Freud we know that we cannot go beyond that definitely and then we have that the Shannon Harvey theorem which limits how quickly information can be can be transmitted so I really like that the framework you're building here you mentioned that seat or helps us to remove the the entropy and I totally agree there's you don't need to transmit the ordering information but you also I guess my concern is you you also lose information too because there I worry that in the future there will be some value in the the natural order the the transactions came and I know it's not there's a single objective order but but but by going to see our work we're just removing that completely do you have any concerns that maybe in the future we'll kick ourselves for removing that information I don't think so for a few reasons so the first one is that if we go back to what the graph of transaction looked like we don't lose that graph right that graph is encoded within transaction right so we get so what we would not get for instance is that we don't know if tix for or takes five happened first this is the information we lose but we still know that takes three happened before takes four and happened before takes five as well so we have we lose that we lose that information in the absolute sense but everything that is relative between different elements in that graph we we keep two weak parts we could have find a great time stepping so we might know the TX pork in before tx5 at the same time you cannot do much with that information so especially since right now actually the the transaction in the block are not even otter in the way the not resist them it orders like in a crazy complicated way that is based on fee but also based on all they are connected with each other so so right now like people need to realize that right now we have no notion of like people what people call natural order to begin with like the way blocked on plate are constructed completely destroyed that already so this is like we we may have the illusion that we have this information to be able to actually don't have it to the side direction like we discussed this before line and like I feel like okay we are going see torn orator and there might be like value and going to any order I guess with for example is like let's save it box turned out to be good or if there's might be waivers so going in any order actually like don't change anything there like if anything it increase the entropy because there is any order that is accepted but if you look at the number it's likely completely negligible it's going to any order of some benefits in some other area of the system I would say but like really nothing there no no III see what you're saying there but like the improvements you just listed some of them as Peter said like they they might add information that might be valuable or not I mean I mean the various describe evidence may be there can be even like a high-resolution time stamping from that or something like that and so I I explained it to you often I'm just wanna make this comment again like I think it should be you should actually keep from ossifying into a seat or alt or if we could also do any order and basically just yeah just make this egg I wanna just make this caveat that maybe we wanna do like change the order again to something else and we should be open for that and I'm just very also father so if you do any order so what we see from this this you know looking at that from the first principle is that alt or doesn't really matter what we need is to have canonical altering whatever that canonical altering is so right now with you as sending ID for transaction but we could be descending ID we could be little-endian big-endian we could sort by transaction size and if they have the same size we solved by something else you know if you'd like come up with all kind of system to solve the transaction the important part of it is that the sorting is simple to verify so transaction ID is very simple it's you know linear process but but beside that like pretty much any other ring is as good as the other as long as it's canonical and so okay there is something because we are talking about week block I think it has an interesting impact on week block actually so the main problem with week block right now is that it's rather slow because all the week block they have to build upon each other and if you reduce the time too much it's gonna become very branchy and you're gonna get a lot of week lock that are often and it's and then the in certainty creeps back in right because you don't know what we block is gonna be the one so if you reduce the time too much instead of reducing entropy and up increasing it you have like if you look at the coverage similar to the Aston curve if if you're familiar with that one but if you end up having no information about ordering that means you can determine it strictly deterministically merged way back right and that means that you can change your wit block into a dike so let's assume we don't have that connection here right we have week block zero block one or maybe a and B would be better like they they are not order anymore and you can read those tweak blocks and and say you have like week block zero we got one and you can decide okay they actually the merge state between those two week blocks is like somewhere around there so everybody goes there right is actually not like this actually some other thing I like to comment on which is like that is true however this is of course not always possible because it's not possible in case of doubles right so I also can't repeal in themselves all right but I mean in the end like the only entry entropy that we really have to fight against this is a double spin right like if Beverly unknown what does permit needs a system I know I disagree there are other sorts of intrepid that have real impact on user like the one where you don't know if a transaction is gonna be included or not and you get to wait hours to figure it out I think it's a it's like I think it's a very user you know user impacting problem in the system yeah okay but I think that but my comment was very general like just like a very high-level perspective the the other thing I wanted to say is like okay so you seem to have this problem like when there is a double span happening in a big block then you get basically you get this uncertainty which is like the size of the bleep lot like action in the victimok is actually the problem there right and so I'm wondering like whether that's like a trade off like the size of like the set you create did you want to sync between notes and better like yeah does the same happen with evidence was it like per transaction thing and so it seems like it seems like if you do a transaction that it's easier to game the system and if it's a block it's not so easy to game in system but then it's a disadvantage of like you cannot figure out what is the right one no so they're actually proof that you know avalanche is Byzantine fault tolerant a lot of that but the the reason why it can convert a much faster than system like week blocks it's because every single known is not gonna converge at the same time so you have this synchronicity aspect right so when you have a week block you need to propagate that we block to everybody and everybody goes to the week block and everybody synchronize all the state that is in the week block at once what's happening in avalanche is that not quarry each other and each not have a different subjective subjective knowledge about what they also not are thinking and you can prove that they all got a cover to the same state but actually they are not all gonna converge at the same time toward that state and maybe you know some of them are going to finalize transaction a very quickly but not transaction B and and some are gonna do the reverse some of them maybe are gonna convert from the two very quickly like you cannot guarantee that everybody is gonna wear to the same you can guarantee that the converse to the same state but not at the same time and that's that's the by making that trade-off you can ensure that on average this time is much shorter so you started in in in the presentation with some I think overly dramatic statements which I responded to earlier I think the best thing that I would actually be looking for is some actual information research numbers about what kind of entropy were actually thinking about because you know the actual difference in the mempool between different nodes has been shown to be extremely small we can see that when we block relay tests already the ABC ones were much bigger difference there compared to some ABC aster to zombie once and but at the same time the BCU notes had a very predictable way of program sending transactions to other nodes so they were very very similar but what is the basis of you starting this research is was there actual need for it or is this more of a hey this sounds like a fun thing to do well I think we've shown in this conference earlier on that there is actually problem with zeroconf we know also like protocol like graphene right now as a failure rate of I think like more than 50% I mean the variate is as from weakly hi right now it's but very single 10 I don't know like Jonathan 2-minute at different numbers yeah so yeah so even if it's 10% like 10% this is would argue it's pretty high also even though in practice you see that you have a low different entropy between nodes you have no way to know about it so you cannot design around it right you cannot assume that it repeats low if you have no there's no if you if you look at the graphene blocks and and and and what kind of transactions needed to be sent between nodes you have a pretty good idea this this is this is actual results you can check up on also know start stop stop we just discussed that we just give you numbers Alger stone here is saying ten percent ten percent failure rate is very high temperature and failure rates for the entire block graphene it's very I like it's a factual number we have also factual number in that slide like this is mathematical stuff that you can compute yourself this is like the low bar bar all tropi I mean you can decide to disregard all of those and pretend that they don't exist but they do write it really people don't care about about what you think is real or not that's exactly why I'm asking for it yeah so my question is more about so I am very interested in pre consensus research I think this is actually a really interesting topic so thanks again my question is really around civil attack vectors on full nodes that have just been spun up and a way to be able to differentiate more trusted full nodes versus ones that could be Sibbald so in my thought process and I'm kind of curious your thoughts on this is if there is a way to prove that the members of the graphene election were full nodes that were associated with miners that have done proof of work in the past then you are more civil resistant against nodes that have never done proof of work is that somewhere that you are exploring a way to be able to basically say hey I'm voting for this transaction and by the way previously I created this block and I am a actual participating member of the network absolutely so two of the solution I've been talking about actually doodads right so Bitcoin in G and wit block are linked to proof of work like directly in in the way they work and G select the leader based on proof of work and weed block produce with block with proof of work so those two are inherently civil resistant because of proof of work avalanche is not inherently civil resistance so you cannot fall out avalanche alone you need to roll out avalanche and and then another extra mechanism for not you know which one are not civil resistant and so as I was mentioning you can do that you can do that in various way essentially to have steak or whatever though I don't like saying it that way because this is not what people usually understand which proof-of-work are proof of state because the work or the stake in that case has no bearing in the Constitution algorithm whatsoever right like you don't use work or you don't use take to come to a consensus you just use that as a civil resistant mechanism yeah basically it's a voting filter so that you know that like oh this yes is more likely to be a a reasonable worker like you know that someone like if someone want to spin a million node then they're gonna have to put a ton of ethics on the table or a ton of coins on the table or a ton of something but those assets or those coins do not themself participate to the consciousness algorithm so this is not what people usually understand when they say proof of work or sources of proof of state concepts basically if you could basically sign that you could some way to prove a signature that you created a previous block would be a way to guarantee that you had participated in a proof of work yes yes you need to have a way to tie your node to some scarce resource too because if it scares like you know there is a strong guarantee that you are not a Sibyl and once you can do that then you can participate in processes like avalanche I thought processes more around how do we prevent it from being kind of a staking mechanism because I do think that there's some side effects to going to a staking mechanism and how do we tie that more closely to the proof of works side that we all believe in in Bitcoin and make sure that the civil resistance mechanism is actually tied to proof of work in some way so you are going you're going there and this is why I don't like to call that a short proof of work of proof of stake because so the problem you get usually with proof of stake is like the rich get richer and then you don't to create an aristocracy in the system that problem doesn't really exist here because you don't use your stake as a way to gain consciousness on usual proof of state algorithm people are gonna you know select some some next valid state and then they're going to decide on it and by yourself and if they are correct they are gonna make more money they are incorrect maybe he can slash out of their state but none of that is happening here we're going to need to draw a line here but we have one final question yeah I just wanted to ask about the run sampling of peers in avalanche do you do you haven't requires that the random the random sample of the peers have to be taking from the entire network or just from the the nodes around you that you know about because you are connected to because if I guess that see balu resistant could could solve part of a problem but is the the the enough to sample around you even if the R is civil mechanism Cybil resistant mechanism that that yeah so what you see in practice is that there are huge thousand nodes and but it's not no several hundreds appear on the network right so you have very little hops from one point of the network to another so it's not that big of a deal where where it's more of a concern is effectively the Sybil attack but you can mitigate that by tying the knot to some scarce resource so that the Sun the random something has to could be taken just to one oh yeah you don't need to know every node of the network but you need to have a big enough sample so that you are not gonna be cornered into some stupid position because all the nodes that are connected to you belong to the same guy right or the vast majority of them [Music]