 Hello and thank you all for being present online and also physically to this conference. I have the pleasure and maybe the whole pressure as well to present the first. So I will try to to live up to this challenge. And I'm really happy to present this work here in Toulouse, where Dino came from, also I can say, and which was a big work during my PhD phases that I completed two weeks ago. So in this presentation we discussed about rational behaviors basically committee based blockchains. And without going too much into details about what the blockchain is, I want to just give a small information and the big things we want from a blockchain. So first we wanted to be a distributed ledger. So basically all the participants should locally have the same ledger and they want to keep it more central authority. We want it to be temporary resistant. So modification of the information already in the ledger should be hard to modify and even impossible and also to be built in an app and only matter. So we can only add information at the end and not in the middle because that will somehow be like a modification. The participant can communicate only by sending messages to each other. And basically a blockchain is just a chain of blocks, hence the name blockchain, where each block is linked to the prior block in the chain. By a unique identifier that we call a hash. To build a blockchain, one of the most known blockchain is Bitcoin. And what Bitcoin does, you have for example two participants here, INJ, that want to add blocks in their blockchain. So the first one that is able to produce a block will add it and send it to everyone else. For example, the I player at its block will propagate it. G will add it as well. Then let's say G found a block first, propagated, everyone finds it and so on. But what can happen is that they both find a block at the same time. And in this situation, we say that we have a third because if we have a third participant, for example, then we can see that it has two blocks. It doesn't know which block to take, doesn't know what to do. So we need to solve this problem because in critical situations, we don't know when the transactions are being done or are being computed. So we want to avoid the fourth situation. To do that, there is an abstraction that exists in distributed computing that is called the consensus problem. And the consensus problem is defined as following. We say that an algorithm implements the consensus if and only if it satisfies the three following properties. Firmination, which says that every participant should actually decide should they need to agree on something at the end. Then validity, which says that any value that is decided by a participant that is following the protocol, the algorithm is actually valid with respect to a validity predicate that depends on the application. And also the agreement property, which says that if two of our participants or players that are following the algorithm decide, then they should decide the exact same thing. If we are able to satisfy those three properties, then all the participants that are following their algorithm will always decide something and decide the common value. To use the consensus to build a blockchain, what can be done is the following. First, we have the first block in the blockchain that is called the Genesis block that will actually set up the whole system. And in setting up the whole system, it will also decide on the committee or fixed size that is known by everyone. That committee will run the consensus algorithm to produce a block and they will propagate the block to the whole network. Then a new committee will be selected thanks to the whole history for the two blocks. That committee will do basically the same and so on and so forth. And there are already blockchains that exist that exist that are doing this, for example, Tandremint, all health stuff that is actually at the core of the Facebook Project Libra blockchain. And once the block is produced, then all the committee members that worked basically are rewarded for further work. And to be totally frank with you, there are a lot of analysis about those blockchains already that exist, but one thing that is really important is that they consider only two types of participants in the system. So we call them from now on players, only the obedience that are actually following the protocol exactly forever and also the basal team that can actually model any kind of bugs in the system or malicious behavior. So we only have those two types of participants in our system. And one question we wanted to know is are these blockchains resilient or resistant to rational behaviors? And in particular, if you have participants that want to maximize their gain, are we still able to ensure the consensus properties? And I just want to recall that the three properties are termination, agreement, and validity. So in the rest of the presentation, we'll introduce the rational players and then we will see how the system evolves with their presence. So before doing that, the model we consider. So we consider that we have another set of players in our committee. So N is known and the other of all the players is also known. They are known and we only have them. So only one committee at a time, one block at a time. Then we assume that messages are synchronous and messages cannot be lost. So if a message is sent, everyone will receive the message basically. And we consider that you have two types of players. So the strategy that we call type S that want to maximize their gain by reducing the cost of executing the protocol and the adversarial for the type A that just do want to prevent the consensus. So they don't want the consensus to be achieved. And we assume that a player knows if it is an adversary or a strategy and is also known its position in the committee basically. It doesn't necessarily know the type of the other participant in the committee. And we assume that they are also even evenly distributed in the system. Under this model, basically we can enter agreements. So if we recall, I wanted to talk about the three properties of the consensus. We can just forget about agreements for the moment and we'll focus on termination and validity. So how committee-based blockchain works in a night show? So it works in multiple rounds. So all the players are trying to solve the consensus during each round. During the first round, we'll have one player that will be the proposer that will propose its block to the whole other committee. Then the participant, once they receive the proposal, they will vote or not on the proposal if it is valid or not, basically. And if we have sufficiently many votes, then we consider that the block is produced. And that's it. If the block didn't receive enough votes, which is new or traditional, then we go to the next round. We do exactly the same thing with the new proposer. And we continue that until we reach a decision, basically. If we focus a bit on the different things that are being done here, we have a proposal, a checking of validity, and also a vote. And we can put them here with emphasis. I don't know if you are seeing the bold part. So the proposal actually generates a valid block normally that will be propagated. Then the others will collect and then check if the proposal is really valid. And then they may vote if that block is valid or not. We can put the actions on these key steps of our algorithm. And we can put a decision tree that will model that. For example, if the participant is a proposer, then it has two choices. So either proposing an invalid block or proposing a valid block. And if a participant receives a block, basically, it can check if the block is valid or not. And then decide to vote or not depending on the validity. One thing important is that if the player did not check the validity, it doesn't have any validity information that can still vote or not, however. But if it checked, then it has the validity information and can in either case vote or not vote. So we have that as our actions. And then we can try to understand the strategies that each participant can have. Do not forget that we have two types of players in our game. So we have the check. We have cost on each actions. So for example, checking validity or sending a vote. And those costs can represent the cost of executing the protocol or the electricity cost and everything like that. And we suppose that any strategy actually when checking the validity pays a cost, see check. If it sends a vote pays a cost, see send. And if a block is produced, so a block is added to the blockchain, then the one that sends a vote gets a reward R. And we assume that the reward is bigger than the costs, which are bigger than zero, basically. And we also assume that if somehow they may need to make an invalid block accepted and added to the block, the whole ecosystem pays because that we call Kappa, that is way bigger than R. And the goal of each strategic participant is to maximize its expected gain, basically. The reward minus all the costs. For the adversaries, we have electrical graphical preferences actually where since they just want to prevent the consensus, they do not care about the cost of their actions, basically. And they are happy if they make an invalid block accepted and added to the chain. Otherwise, if there is no block that is accepted, well, it's also still better because the consensus is not achieved. And in the worst case, an invalid block is added. We have the consensus, they are not happy, but they cannot do better better than that. And we assume that we have strictly more than zero adversaries in the committee. And we denote that number F. And F is not necessarily known by everyone. They just know that there is at least one adversary. The participants will have different informations. So for example, all the votes that happened before, so in the around before, are public knowledge. So everyone knows those votes. But each one has private information. So for example, if a player checked it knows that they checked and then it knows if the block checked is valid or not. If a player did not check, that player did not, doesn't have that information. And also we have an asymmetry of information now, where the strategic participant, a strategic player, excuse me, only knows its type, its own type, and doesn't know the types of everyone else in the committee. But the other adversaries do know that information. So basically they know who are the other adversaries and who are the other strategic. So we have an asymmetry of information here. So to work and understand the whole behavior of participant and how the system will evolve, we need to use our solution concept of perfect Bayesian equilibrium. Because first we have incomplete information. Everyone doesn't know who is the others. And we have asymmetrical information between the different type of players. And basically a perfect Bayesian equilibrium is a situation where each player is maximizing its own objective, anticipating rationally what the others will do. Then we are drawing in rational inferences from what they observed from the other players to actually guess a bit the type of the different players according to Bayes' law when possible. And they're always picking their best action no matter where, when they start basically the game. So we use this concept to understand the different equilibria that can arise. And, oops, I forgot the slide. The question now is what are being done in committee-based election in presence of rational participants? Now we can ask the question by what are the different perfect Bayesian equilibria that are in the game? And if these perfect Bayesian equilibria are satisfying the consensus properties, basically. First, we can see that we have optimal strategies for each of the participants. For example, the strategists will always want to propose a valid block. Because if they propose an invalid block, that invalid block may be accepted. And then they will all pay costs, basically. In the contrary, our adversaries actually always want to propose invalid block because then the blocks will be accepted and then they will be happy if the consensus is not achieved. And also, actually, when they receive the proposal, they always check the validity because they do not care about the costs, basically. And they always vote for invalid blocks only. And these are the optimal strategies for both type of players. And in the rest, we'll just focus on the different other actions that are possible. And the first equilibrium we have is without going a bit too much into all the text, we don't know exactly the value of the number of adversaries in the system. We just know that they are less than the threshold for accepting a block. In that situation, we cannot ensure termination. Basically, all the strategic knows that by sending a message alone, nothing will be accepted. They know that everyone else is not sending, so they prefer not sending as well because if they send a message, their votes will, they will pay the cost of voting for nothing because the block will not be accepted anyway. And that is this equilibrium. No one is happy. We don't have termination, and that's it. Well, our question before is not well answered, but we can go more to understand what is really happening. And we have a second equilibrium where actually even validity can be broken, where still we don't know exactly the value of the number of adversaries in our committee, basically, but they can actually also be, they don't necessarily need to be less or more than new or minimal threshold. And there, everyone is voting without checking the validity. Basically, I know that everyone else is voting no matter what is happening. So the block will always be accepted and added. In that case, if I do not send a vote, if the block is accepted, I'm not getting a reward. But if I send a vote, at least I'm getting a reward even if the block accepted is invalid at the end. So I will always prefer sending a vote without even checking. If an adversary propose, an invalid block is added, but if it is a strategic that proposes, then the block is valid. We cannot ensure validity, basically. And as I said, that is due to the, that is not even linked directly to the number of adversaries we have in the committee, which is actually a really strong result. If we have even one adversary and the new value is equal to n minus one, so we have way more strategic, this equilibrium still exists, which is really something not good. But we still wanted to have a good equilibrium that satisfies both property. And first, we try to understand what happened and why would we have this equilibrium? First, all the players are not pivotal. So basically none of them has all the possible actions to change the whole outcome. So if everyone else is doing something, they prefer following them because that will not change anything. And we're trying to avoid these kinds of situations. So in a good equilibrium, where everything will be nice, we need to make the players pivotal. So make each of them such that if they change their strategy, then they can make a good thing happen. To do that, we need the following. If the, if the proposer is strategic, so type S, then you want the proposed block to be accepted directly. So to get at least new votes. And we even wanted to get n minus f. Why? Because first the block is produced and then if only one strategic didn't vote, then the block is not accepted anymore. So not getting a reward. And if the proposer is an adversary, then the block will be invalid anyway and we wanted to get less than new votes. And actually we want to get even new minus one votes. Why? Because first the block will not be accepted and added. But also if a strategic deviates and now sends a vote where it shouldn't, then we will have exactly new votes. The block will be accepted. And since it is an invalid block, then they will pay cost kappa that is bigger than the reward. That is what we want. And we found an equilibrium where both properties are satisfied. But to have this equilibrium, we need to know exactly the number, the number of adversaries in our system. We don't need to know where they are placed, but we need to know exactly how many they are. If you have that information, and if the cost of accepting an invalid block is high enough, then we have the following equilibrium. We are asking all the players that have index between one and n minus new plus f plus one. All those that have an index there, they are ordered and they know their index to always check the validity of the proposal and send a vote if and only if the block is valid. And all the others, if they are placed after n minus new plus f plus one, they will always send a vote, no matter what happens. And if we reach the round f plus one, basically, we can also say that, well, all the strategy can just directly vote because in this situation, whenever a valid block is proposed, the block will be accepted. But if somehow we reach the round f plus one, then we know that all the first f blocks are invalid. So the f plus one is valid for sure, and then they don't need to check the validity. We have both properties because we will always terminate round f plus one at most, and all the block that are accepted are necessarily valid basically. And that is our good equilibrium. And since out of time, I will just conclude this presentation with the analysis we did on understanding actually the rational behaviors in committee based blockchains to the blockchains that are using committees and consensus to add new blocks. And we also consider in our analysis the presence of malicious players. So the players that are adversaries and want to break the whole system. We found that we do have a good equilibrium that do satisfies all the properties we want in a block chain. But actually, this equilibrium is not unique. As for example, I showed that we can break both validity or termination. Free writing can occur, so we need to pay attention on how to design this rewarding. And what you want to do next is to first extend our work to more set things less hypothesis having, for example, less than a synchronous communication where messages can be lost, for example, and also analyze this equilibrium for real people and see exactly what they want to do. Thank you.