 Okay, so my name is Kendra could and I'm here to talk about block guard, which is an adaptive blockchain algorithm. So we work with obviously blockchain which is a distributed ledger, and it has several points that make it attractive. Chief among them is that it can securely record transactions without some central authority attached to it. And this security is insured by the majority of peers working in the peer to peer network being honest and not having any kind of faults or crashing. The cons to this kind of system though is poor performance is that there's low throughput and high waiting times transaction confirmation. So these two things kind of feed into each other so the more secure your blockchain is implies that you have more peers working together in your peer to peer network, which implies that you're going to have higher latency and poor throughput as you increase your security. So there's this trade off you can have a very insecure system that's very quick or very secure system that's very slow. So, we present block guard, which offers a solution to adaptively choose the size of your consensus committee which is the kind of bottleneck for this. So some notation. First off we consider Byzantine faults so peers are either honest or Byzantine. And then we consider two classifications for a consensus algorithm. There's classic and then proof of work classic is PBFT, which is semi synchronous or SPFT which is fully synchronous. So proof of work, as I'm sure many of you are familiar with this is asynchronous. And then we also introduced two terms, which is a group and a committee, a group is a set of peers that's responsible for maintaining a blockchain. So in Bitcoin, every peer is a part of the same group. The committee is that set of peers that are running a consensus in order to actually confirm or add a transaction to this blockchain. Now this committee could be composed of multiple groups, or it could be composed of a subset of peers out of a group, but they so they're not necessarily the same thing. So we introduce two different algorithms for this, this composite and dynamic composite divides all of the peers in the system into multiple groups, and each group has its own blockchain that it's responsible for maintaining. And then when transactions come in, these groups are joined together to form committees very of varying size depending on the transaction security level so the higher the security level, the more groups are combined in order to perform consensus to confirm that transaction, the lower the security level, the less groups are combined. So this is also asynchronous because these groups, each have their own blockchains and they're maintaining their own ledgers, they don't have to wait for other groups to finish their consensus sort of be other groups outside of their committee to be freed up in order to record those transactions once they have completed their consensus. So we have dynamic where all the peers are part of a single group so there's one ledger that they're committing transactions to, and then we combined individual peers in order to form committees. So instead of the security level being expressed as a number of groups that are fixed size. It's just expressed as a total number of peers for the committee. And then again the committee size is based on transaction security level so higher security level more peers, lower security level less peers. This system is however synchronous because they're all working on the same ledger we have to make sure that all of these committees that are working in parallel, right at the same time that way they all have an updated view. And then we evaluate these two algorithm or the we evaluate block are both composite and dynamic and an abstract simulation where the computation is simulated as a sequence of rounds, each rounds, each round has three phases and the first phase the second phase they can perform local computation. So for proof of work this may be attempting to mine for PBFT this may be inspecting the messages that they've received as well as the messages they've received in the past to see whether they should move to the next phase of that algorithm. And then the last phase of around is to send a message so this is where the peers can actually send out messages to other peers in the system. The channels are FIFO and messages have a random delay between one and some specified max delay. In addition to that, for each one of the experiments like less stated otherwise the number of Byzantine peers in our system is about a 10th of the network. So peers are either, again, either honest or Byzantine. The Byzantine peers are always trying to commit fraudulent transactions that's their goal in the system is to just get a committee to commit a transaction that it shouldn't. The committees are thereby either reliable or defeated a reliable committee is a committee where the Byzantine peers does not exceed a certain tolerance for its consensus algorithm. For example, PBFT is known to tolerate up to a third. So if the number of Byzantine peers in the committee goes above a third of the total number of peers in the committee. So it's not that committee has defeated and it will commit a fraudulent transaction for proof of work and SBFT. It is 50% so half the peers have to be half plus one have to be Byzantine in order to commit a fraudulent transaction. So the first set of results that we have is delay versus throughput. The second set of results is transactions per round. So as we can see is delay increases are throughput decreases. SBFT is the most affected in both cases and that's because this consensus algorithm is synchronous. And then dynamic is more affected you see this larger spread of the different consensus algorithms in their throughput because dynamic is synchronous in itself. The committee has to wait for the slowest committee before it can proceed. We see that PBFT is okay it's not as affected by the delay in composite it's very comparable to proof of work. And then for dynamic again because this is a synchronous system we see this nice spread and so we see that obviously proof of work is the fastest of all of them because it's asynchronous and the underlying consensus. Then we vary the Byzantine fraction versus throughput and as you can see as the Byzantine fraction of the network increases our throughput decreases. Now it's noteworthy here that we do not count fraudulent transactions as throughput. So obviously as we approach 50% of the network being Byzantine, the number of transactions that are being committed are fraudulent and so our throughput just drives down. PBFT dips down the quickest and this is because it has the lowest tolerance it's only tolerable to a third. While SBFT and proof of work are both tolerable to a half and so they can their throughput is less affected by the increase in Byzantine peers in the system. For dynamic, we can see that because again it's synchronous there's some spread on these different consensus algorithms. But again, proof of work is the least affected by it. SBFT here is shown to have the lowest throughput and this is just from a combination of SBFT being synchronous and then dynamic block art also running synchronously and waiting for all of these consensus to finish before it continues. So here we have waiting time versus delay. So as we can see as we increase delay the waiting time very intuitively goes up and again we see this nice spread in dynamic because of the synchrony of the system. We see that the waiting time is spread proof of work is the fastest PBFT followed behind and then last is SBFT with the highest waiting time. So our next results here is the Byzantine fraction versus our waiting time and as we can see in composite we see a spike in the waiting time and then it goes down. This is actually this spike is where we have the most amount of setbacks due to Byzantine peers. So for example in PBFT when a Byzantine peer is in an honest committee, but it is the leader, then you have to do something called a view change. And so this sets the whole algorithm back. And each one of these consensus algorithms have some similar feature to this where if the Byzantine peers can essentially slow down the consensus from it. PBFT you see that spike right around a third because that's its tolerance. And then proof of work you actually see it just before a half and then after a half it tails off because now it's becomes very likely that the committee is dishonest and it's just committing fraudulent transactions. SBFT you see a much subtler peak, and this is because it is synchronous. So it's waiting time is already higher than the others. And so the change in waiting time is less noticeable. For dynamic, we kind of see this same thing happening where it dives down as the Byzantine fraction increases. And again this is because as that Byzantine fraction increases the waiting time drops because now they're just committing fraudulent transactions. But it does kind of tend upward as it approaches their respective tolerances. SBFT is the least noticeable. Again, now it's hiding it even more because not only is, I'm sorry, SBFT is the least noticeable because it's synchronous and again working inside of a synchronous system, the delay is already so high that this peak is kind of hidden. So our results analysis was that proof of work was the most affected by Byzantine peers, but it's the fastest of our consensus algorithms. PBFT was fast and ideal conditions, but it can be slowed down greatly by Byzantine peers, and it was the least secure. And then SBFT had the worst performance, but it was the least affected by the Byzantine peers in the system. Composite has the best performance or the better performance of the two, but it's less secure, while dynamic is more secure, but has worse performance. So there's a trade off between these two kind of versions of block art between composite and dynamic.