← All talks

Securing A Derivatives Platform With Over $25b Volume - Kyle Riley | BSides Cape Town 2023

BSides Cape Town35:20249 viewsPublished 2023-12Watch on YouTube ↗
About this talk
How would you approach exploiting a derivatives market? We’ll explore how we secured a perpetuals market averaging north of $100m in daily volume. It’ll be a technical deep dive beyond traditional pentesting concerns, focusing on abusing game theory and economic models for profit. In the high-stakes world of smart contracts, a single overlooked flaw could result in an instantaneous multi-million dollar loss. The talk will be based on experience gained through security reviews iosiro has performed of Synthetix’s Perpetual markets. The code, infrastructure, and assessment results are all public, so we can give deep insights into our learnings. The basic structure of the talk can be split into four sections. The first three sections are intended to provide attendees with the requisite context to engage with the security considerations in the final section. Takeaways: Gain knowledge about derivatives and perpetual markets. Learn about the weird and wonderful attacks against these systems, along with the countermeasures implemented to protect against them. See how one of the most popular DeFi / crypto applications works. Develop an understanding of how to approach threat modeling smart contracts without needing any background in blockchain fundamentals. See the difference between how a pentester and smart contract auditor might approach an assessment of this nature. Notes: The system is built for web3, but the talk will be more focused on the attack surface of a fully white-box financial application. Most of the blockchain-specific behavior will be abstracted away as many attacks could apply to traditional financial systems. This approach allows attendees to interact with a commonly used crypto product and understand threat modeling in the field, without understanding blockchain fundamentals like smart contracts and Solidity. We are the sole security consultants working on this system and have reviewed several implementations over a few years. We have a comprehensive understanding of its inner workings and its threat model. The system in question comprises a set of smart contracts deployed to Optimism, an Ethereum Layer-2 network. A front-end for the current deployment of the perps market can be found here: https://kwenta.eth.limo/dashboard/markets/ Stats of the perps market can be found at: https://dune.com/synthquest/synthetix-perps-v2 Filmed at BSides Cape Town 2023 AV Sponsored by BITM Cyber Security
Show transcript [en]

cool uh thanks guys for coming my name is Kyle and this talk is going to be about derivatives platforms and if you have no idea what that is because I've had a couple of people walk up to me and tell me that then don't worry it's uh we're going to start at the foundations and just gain a basic intuition for what they are and once we know what they are and why we use them we're going to look at them from a security perspective so a little bit of background on myself so I'm the co- founder CEO and a security researcher at iOS Cyro we're a specialized team focusing on web 3 and crypto security

we've been in the space since around 2017 and that's just a little bit after I got interested in the space in 2016 after a huge hack happened yeah uh and yeah I've pretty much been doing stuff in that space is the mic working yeah sorry I'm getting feedack okay um yeah so I've been doing stuff in this space smart contract auditing and other sort of of uh auditing or security work for crypto companies for the past uh couple of years and if you're listening to this stuff and you feel like it's very tangential to your existing knowledge uh my background is I'm X MWR I actually headed up the cyber security team or the the research team at MWR for a couple of

years my background is in Mobile and in embedded systems specifically and yeah managed to get a point to own while I was there as well so that was a great experience while I was there all right so enough about me let's talk about derivative markets so firstly derivatives uh derivatives derive their value from some underlying asset so you can think of crude oil for example if you want exposure to the price of crude oil you're not going to buy barrels of the stuff and store it in your garage right it's just not practical so instead of doing that what we do is we have a representation of that asset some sort of like derivative concept right that represents

that value and we've got a couple of different types of markets that are used to trade these things we've got Futures and forwards and options and so forth uh and they pretty much stipulate the terms and conditions of how the contracts work and when we're talking about the underlying asset I mean common examples are just stocks and commodities and currencies and so forth very common things that you'd want to trade but for the purpose of this talk we're going to focus in on a specific type of derivative Market we're going to be talking about Perpetual markets also known as Perpetual Futures markets now what makes them special compared to other types of derivative markets is that their contracts run

indefinitely they run in perpetuity so if you're talking about a Futures Contract uh that will generally have a settlement date where you need to close your contract and so you say okay on the 1st of January 2024 that's when the contract ends and then then you need to close your position but with a deriv with a Perpetual derivative Market you can actually run in perpetuity you don't have to close your position until you want to close it or you get liquidated so what's very important to understand during this talk of how they work and we're going to talk about it a lot is long positions versus short positions you've got these two counteracting forces pulling against

each other uh trying to even each other out and the long position what they're trying to do is they will take a long position in the market they will say I expect the price to move upwards I think that I'm bullish on this thing so the price goes up and then I benefit from it but short positions they take the other side of that trade they're going to say that hey I'm buying this uh this short position and if the asset price goes down then I benefit from it and this is a little bit unintuitive for us because we're very used to you know like buying a house seeing the price of the house inflate and then uh we make money from

it but understanding shorts a little bit less uh intuitive for us to understand when a asset price goes down we're making money from it and it's interesting because shorting has a little bit of a bad reputation in some circles because uh it can be a little bit controversial right you're investing money or you're you're um bidding against a company's failure you want that company to fail because then you're going to make money from it but uh just to give you an example of why this isn't necessarily the case let's look at at hedging so let's say that you're a walnut farmer and you have this Farm of walnuts and that's all that you do right and when

the price of walnuts goes up you do very well but when the price of walnuts goes down well then the only thing you're going to be eating is your walnuts so what you can do as a farmer is you can take out a short position on the price of walnuts so that when the price goes up then your farm does as well but when the price of walnuts goes down then the price of your short goes up so you've got this counterbalance in place to drisk yourself from the Walnut price and that concept is called hedging and it's largely made possible because of the ability to short but the other really important characteristic to understand here is

leverage and leverage allows you to speculate better it allows you to better match your risk uh or your desire for risk with the your actually exposure so for example let's say you've got 10,000 round in the bank account and your Rich aunt who's in the gold industry comes to you and says that hey I've got some inside information this is illegal but I'm telling you anyways we've run out of gold this whole country is run out of gold we don't have anymore so we can expect the price to go up because it's going to be a massive shortage right so you take your 10,000 Rand and you go buy a gold bar and you leave it you know in your garage for a

couple months and you come back and the price has quadrupled so now you've got 40,000 Rand of gold which is great you know 30,000 Rand return fantastic but let's say that instead of taking your 10,000 Rand and buying the bar that you go to a Perpetual market and you use leverage some of these places they've got like 50x Leverage so let's just say that you take your 10,000 rent and you get 50x leverage now you've got 500,000 Rand of exposure to the asset so if you waited that same amount of time and you quadruple the asset price again you're at 2 million Rand so now from 10,000 Rand you would have effectively gotten to 2 million Rand minus that 500,000

Rand that you initially borrowed so you've got 1.5 million Rand from 10,000 Rand so that's why you want Leverage is that when you feel really optimistic on an asset you can actually gain as much exposure to that asset as you want to so shorting and leverage they both manage risk profiles that's the essence of it and that's made possible through derivative Market markets so let's look at what this actually looks like in practice let's say that you've got a user with $500 and they go to a Perpetual market and they say I want to use that $500 to create a position that means that I want to open up against the Apple shares you know the Apple like Tim Cook

uh share price uh and I want to go in the long Direction so I think that the price is going to move upwards and I would like 2x leverage so you take that $500 and the Perpetual Market says sure I'll take your $500 as collateral and exchange for that I'm going to take a thou I'm going to give you $1,000 of exposure because it's 2x leverage so the Perpetual Market is lending that ,000 to the user in exchange for $500 of collateral so that's the process of opening a position let's look at what happens once you've opened it and the price actually shifts so here we've got our Apple long our entry price is $200 so that means

that the price of the Apple shares is $200 when we open it then we've got our $500 of margin which is the collateral for the position and then we've got the 2x leverage which gives us a total size of $1,000 so then we wait some time and it goes up by 10% the price goes up to $220 then we calculate the final amount out as your $1,000 of exposure multiplied by the 10% gain which is $100 and you're obviously going to get your $500 of collateral back so the net amount out is $600 it's a 20% gain on your initial amount which is just the 10% multiplied by two from The Leverage okay so then a natural question

to ask yourself is well where does the $100 come from where does my profit come from and the answer to this is in the market skew so when I said that there's these counteracting forces of shorts and Longs you have the these two opposing sides that are trading against each other now in this example we can see that there's $100 million of positions on the short side and $100 million of shorts on the long side and what we would call this is we would say that this has a neutral skew which means that the total size of the market is $200 million because there's 100 100 but the skew is zero because they're counterbalancing each other you subtract

them from each other and this is considered a very safe type of Market because what happens is if you've got a 10% price shift in either direction let's say that the price goes up by 10% then your long side is going to be worth $110 million and your short side is going to be worth $90 million so you would have just shifted the 10 million from the one side to the other side now how do you get the skew well again when you open up short positions you're increasing the exposure on the the short side so you're skewing the market short and when you're opening long positions you're increasing the long side but also closing positions has an effect right

like when you close a long position you're also reducing the counterbalance so you're also skewing it further to the short side and vice versa for when you're closing uh the short side so the next natural question to ask yourself is where does the Leverage come from and here I've got an example of a system you've got the Traders they've got their margin and they're paying some fees to the market now if it was just as simple as this you wouldn't actually have any leverage you would only be able to say hey I've got $500 and I'm bringing it to the market can I trade with my $500 but there's actually a second actor in the system and they're called the

liquidity providers so liquidity is just a fancy term for money right you've got some excess money available to you so you take it to the market and you say here here's my money I'm going to loan it to you and then Traders can borrow that money and they're going to pay fees when they're borrowing and then those fees go to the market and then the fees get get paid to the liquidity providers so if you've got some excess money lying around you can actually go do this and make money from it but then you might tell me well sounds kind of risky right because Traders don't always make the right calls they might lose money what happens

in the worst case so this is when liquidations happen right so let's say that we've got exactly the same setup as before the entry price is $200 this time we're taking a short though so we want the price to go down and we've got $500 of margin the collateral but this time we're feeling adventurous right we feel like we really have some information here so we want to take 10x leverage so our total size is $5,000 we sit around for some time and oh no we went in the wrong direction and now we've just gained 10% right which is what not what we wanted and if you do some basic math here you can see 10%

time 10x leverage 100% so you can see here that you gave $500 of collateral but your position also lost $500 so at that point the total value of that position is 0 and if it was to go any further down and going to the negative then all of a sudden the other participants in the system the other Traders are supporting that Trader's position and you've got insolvent system so what needs to happen is that somebody needs to come along and liquidates that position as soon as it gets to zero or even slightly before it uh becomes Z and what happens when you liquidate is you take that uh that margin the collateral that was provided

by the trader you take it away from them and what you do with it depends on the implementation but let's say that you can just take it to the Perpetual market and now it's extra collateral uh that's the first step and then the second step is that $5,000 of size needs to be removed from the market so you're reducing the skew on um on the long side because you've just closed the short right sorry you're reducing the the skew the short side because you closed the short okay so that's the gist of Perpetual markets now you understand all the terminology kind of on the same page now we can talk about how we're going to

attack them right in order to do this we're going to talk about a client of ours called synthetics now they are called a liquidity protocol and I will show you what that means in two seconds but yeah they generate about $885 million of volume per day so that means about $85 million of Trades are happening each and every day and they're generating an excess of $100,000 of fees per day which are paid out to the liquidity providers and also if you're wondering like why can I talk about this stuff in the public it's because there's a general ethos and philosophy of openness in this space so all of their code is open source you can go find it on GitHub

yourself as well as our audit reports which you can also go read through if you're interested right so compared to the previous example uh this looks kind of similar we've got liquidity providers on the left hand side those are just any users they could be you if you've got some crypto lying around you could go be a liquidity provider yourself you take it to synthetics and you say here here's some collateral um or or some um some funds that you can make use of and then synthetics will distribute that liquidity to different markets and the type of Market I mean there's many different types A spot Market where you can go trade from asset to asset or a

per Market what we're talking about now or an insurance market right it really doesn't matter as long as it's generating fees so what happens is these markets generate the fees they go back to synthetics and then they send the fees back to liquidity providers and this is termed a liquidity protocol so they are the middleware sitting between the markets and the the liquidity so what we're going to do now is we're going to zoom in on their Perpetual Market implementation because synthetics actually has their own purpose market now it's interesting because we literally finished the audit of this implementation like yesterday pretty much and you can see the scope of the audit that we conducted here it's about

30 files of solidity and solidity code is just the execution code of the actual Perpetual market and it's only about 4,300 lines of code which is really not that much if you think about it however the full engagement still took over a month over several people and that sounds pretty absurd if you don't know what we're doing right and the people are actually sitting in the audience today by the way uh so yeah you need to look at what we're actually doing and to get an understanding of that let's look at this diagram so typically like let's say if you're doing a pent test of this thing right if you're just doing a pent test

you might think to fuzz it put some weird values in uh check the access control especially from a blackbox perspective it's going to be very difficult to figure out like how do you approach this thing right so our methodology is that the very first and most important step is to read the documentation now this is important because apart from all the logic that gets applied we need to look at the business logic of how this thing is intended to function we need to look at what what are you doing your opening positions closing positions modifying positions of course all of this stuff but we also want to look at the game mechanics of the of the system we want

to look at what incentives are in place to encourage or discourage certain behaviors in the system and so when we're reading the specification we are actually thinking to ourselves okay well yeah you're doing this but what about this and we're effectively threat modeling while we read through the um the business logic and once we've got that level of understanding then we go do a very intense code review so this is you know doing it generally in pars where you have to go like really understand every single little operation that's happening in the code and then we'll do unit testing to make sure that it works as it should and then after that we'll do some general like

mathematical modeling or some sort of uh alternative representation of the code to make sure that it actually does what we think it does and that there's no like outliers or some sort of like weird edge cases and then of course there's other tooling that you can make use of as well yeah it's not that great though so here's a function called diagram it is spaghetti you'll see uh very difficult to understand it at this level so we're not going to approach the system at this level don't worry instead of that we're going to focus in on a very specific topic and try to understand that well and then once we have that understanding we're going to move on to how do you break

that topic it's called full price and as I said the first step here is to read the documentation so we get given something like this it will say it's a premium discon function a configurable variable blah blah blah blah blah what's important is at the end we have a function right we've got execution price is equal to article price multiplied by one plus 0.5 multiply by premium before Plus premium after okay so I'm assuming you all understand what we're trying to achieve here right obviously not so let me just give you an example to get an intuition for what we're trying to do so let's say that we have a short skewed market so we

can see that the short side is larger than the long side now let's just hypothetically say that instead of using a price of $200 we artificially lower it to $195 now what is the actual effect of this well when you're opening a short position what you want is to have as high of a starting price as possible and as low of an ending price as possible so you want that price differential to be as big as possible so you can make as much money as you can so when we come and we open a short position if the price is lower than it should be that means we're making Mak less money out of it because our start price is lower so

we can't actually get as much of a difference from it so if we go from $100 instantaneously as soon as you open that position at a lower price now your position is worth 97.4 so from this we can understand that there's a disincentive in place from when the market is skewed short to open more short positions because that's just going to make it more and more dangerous because you need to keep these things in parity right but conversely when you look at the long side again you want a low starting price there so now we've created an incentive to increase or for long positions to start opening right and so now we can get an understanding

of this works on both a short and the long side when you're opening positions but what's interesting is that this also works when you close positions because when you want to close your short you want as low of a price as possible right so you've gone from $100 to $102.6 so you've created an incentive for closing short positions because this will also reduce the short skew and conversely if you've got a long position and somebody's closing that we really don't want that to happen because now we're losing that support that we have on the long side so we've also disint ofis users from closing their positions in that circumstance so here I've got a little

code snippet so this is actual solidity the stuff that we read through and I'm not going to go through it in too much detail but we're effectively calculating the price uh premium discount before premium discount after price before price after and then we've got this return function of price before plus price after uh divided by 1 divided by two so divided by 0.5 now if any of you caught that there is a mistake in this and it should actually be multiplied by 0.5 you might have a budding career in this industry because this is exactly the type of stuff that we're looking for it's these very fine details that I mean just the like a wrong uh operator could lead to

catastrophe in certain instances just again one other level of understanding of how this works so this graph represents a market where the initial skew is zero so it's just balanced out it's like $100 million $100 million for example and the price is $200 now if we look at the middle of the size zero uh we'll see that that has a final price of $200 so we're effectively creating a position of size zero there so we're not doing anything so it keeps it at zero there's no price difference however when we move to the left hand side and we see the negative values this means that we're opening a short position so when we create a slightly

small short so just minus 250 the prices decrease a little bit as that short gets larger and larger then the price drops further and further and conversely on the other side uh when you're opening positions with positive numbers uh as you open a larger and larger long position you're going to have a larger and larger price impact and so it's just this linear graph and now we feel comfortable you know we' have thought of this idea we've read the specification we've confirmed the code works as it should um we've even grafted out you know and now we feel like okay cool this is this works right and this is where you'd be wrong because we need to take it a little bit

further as I said we need to consider the actual business logic and like how does the rest of the system work uh when we Implement a system like this and that first attack is called liquidation counter trading sounds a little bit scary but it's quite simple let's say that you have a market with a skew of $100,000 on the short side so as we said when you've got a short skew you drop the price so we go from $200 to $195 then we look at the state of the system and we can see that there is a large liquidation coming up it's $100,000 in fact so we know that if that position gets liquidated it's going to

get removed from the market and it's going to jump the price back of Apple from $195 to $200 as soon as that liquidation happens remember because it's going to close the short and then it's going to shift over the price instantly so what we can do in this instance is we can counter trade it we can say okay the price is going to be low it's going to be $195 and as soon as the liquidation happens it's going to jump up to $200 so we're going to buy along $195 solid longg $200 within a second and we're going to instantly see a 2.6% increase now that sounds cool but I mean 2.6% isn't actually that

much uh but don't forget that we have leverage available to us right so I've got a unit test here that uh we put together uh you can see that you open positions with a neutral skew so you've got a size of $200,000 so there's 100,000 on the one side $100,000 uh on the other side Therefore your skew is zero an attacker starting balance is $10,000 then you wait some time the price increases until a stage that the short can get liquidated so we open up a 10K uh long position at 5x leverage so now we've got $50,000 of exposure then we perform the liquidation and we close our position and now we've got $112,500 which is a

25% gain it's a little bit more impressive so how do we stop this well it's actually quite tricky to prevent this to be honest uh but the solution that synthetics has used is that they fragment their liquidations so say now you've got some really large position that needs to get liquidated you're not going to do it all in one go instead you're going to do one initial liquidation just to make sure that the position stops moving and that the trader cannot do anything with it anymore and then after that you're going to break it up into several other smaller liquidations so and also like the point of this is that uh the net amount is still the same

but because it happens over time the markets are very competitive so there's arbitragers who are constantly trading up and down and it just makes it a lot less predictable from an attackers perspective to do it over several uh different amounts then moving on to the second attack which is called cascading liquidations so if you reflect back on when I explain liquidations to you I said that there that $500 that needs to go somewhere right now in this world and with Sy with the synthetics implementation where that $500 actually goes to is the person who performs the liquidation well a large portion of it goes to the person who performs the liquidation so anybody you can go out

and you can monitor the state of synthetics you can look for positions that need to be liquidated and then you can tell them that that position needs to be liquidated and then they will pay you for that they'll pay you a lot of money for that and and uh yeah so that's that's liquidation so what could we do to possibly exploit this scenario so let's look at the this market conditions here you know we've got $500 skew long and we've got a price of $200 so what we do is we say okay let's go get a list of all the accounts that are relatively close to being liquidated so the liquidation price is pretty close to the $200 Mark but then

we remember if we're using the full price concept that you can actually manipulate the price as an external user right you can go open a position and then affect the price to move upwards or downwards so let's imagine that as an attacker you open a short position of size 200 because remember minus 200 is a short what happens then is that you reduce the skew uh from 500 to 300 and then you reduce the price from 200 to all of a sudden the first account becomes liquidable so you go ahead and you liquidate that account and you get money for it but what's interesting here is that you would notice that this is a long

position that we're liquidating so we're actually increasing the skew on the short side and so we go from 300 to minus 300 and our price drops a further 0.6% or 0.6 cents so we then land up at 99.2 which means another account can be liquidated so we go ahead we liquidate it we make tons of cash and would you look at it we can liquidate the third account as well and we can go and make more cash so the point here is that you've got this cascading effect as you liquidate one account more accounts become liquidable and this is called cascading liquidations and it comes in a lot of different flavors actually and it's very very dangerous if this happens

to a market you can have complete collapse of a market I'm not just talking about perose markets I'm talking about in general that everything can just get lost all in like a single second right so in order to fix this uh what we need to do is we can't use the full price right we can't let external parties affect that the price of liquidations so we just use the base price we just use that $200 with no influence uh from the um from the external parties and if this sounds a little bit uh too much like fantasy and like too theoretical well it's very funny because about two weeks ago dydx which is a competitive to synthetics they were

hacked through a price manipulation attack for $9 million and yeah so there's a real world example it's quite different to anything I've explained here but uh the attack actually happened over several days it was highly coordinated but the the hacker made off with over $9 million then the second piece of evidence I have for you that this is quite serious is the fact that synthetics has a $100,000 bug Bounty available so as I mentioned uh all this code is publicly available you can go read through it yourself go learn about this stuff and then you can go find bugs in it and um get $100,000 and what's interesting is that this is actually relatively low for this

industry right you've got some bug bouncies that have millions of dollars in bug bouncies and like there's one famous one that was 10 million that has now been reduced a little bit but uh yeah this they take it very seriously and the reason for this is that there's a lot of money at stake remember what I said earlier there's $85 million of volume per day on this uh Perpetual market so imagine if you could get even a slice of that so that brings us to the conclusion of the talk uh we started off by looking at the the why and the how of derivative markets and hopefully you gain an understanding for like because I know

we're all security people here but you know and we like to scoff at Financial tools sometimes but uh they are actually uh very useful for economies and then also I hope that if you've got a background in cyber security that you might see that this stuff seems very foreign but actually your skill set does translate very well to this type of stuff right even if it seems foreign and then also I hope that you gained an understanding of how intensive these things are because you know if you're dealing with millions of dollars that's it's an adversarial environment where you've got everybody trying to steal money from you constantly it's out in the public it's very scary and you need

to take the job very seriously um because a single mistake can lead to millions of dollars being lost yeah thank [Applause] you cool any questions yeah what tools does the market have to stop

right so the question was uh what tools does a market or a system have to protect against cascading liquidations and the answer is that it depends on the type of cascading liquidation if it's an atomic one so that means that the Cascade happens in a single transaction there's nothing you can do about it actually uh you're you can get completely destroyed in a single like transaction uh but if you've got something that takes a little bit of time uh then you generally look at Monitoring Solutions where you can either front run transactions so if you can um in certain systems you can actually look at the state on chain and you can say okay what transactions are

about to happen and you can say okay I'm going to emulate this transaction and see uh what's the effect of it and if I can see it's bad I'm going to stop it uh or I'm going to do the same transaction before they can do it um but uh in other systems you might just monitor like over time like hey like I can see some malicious behavior happening so we're just going to stop the system deploy an upgrade fix it yeah count to Market principles to interfere like that because the whole purpose of a market is for people to find edge cases that they can exploit yeah so it's a very interesting question so asking like I mean you could even

argue with the counter trading example like well is it actually a hack you know you're just doing Market stuff right the Market's doing Market things but I would argue that uh it depends on whether you're exploiting edge cases in the system right is that intentional behavior and I would say that cascading liquidation isn't intentional because as a market uh you don't I mean that's it's not intended to happen and under certain circumstances you could probably argue that it's intentional but generally speaking I mean it's just that the system was uh incorrectly uh configured yeah any other questions yeah uh yeah thank you so much it was a really good talk um I was wondering if in your

experience and maybe by working with forgot their name now synthetics yeah um because there have been quite a few high-profile flesh loan attacks where you take out money from a liquidity protocol in order to then buy stakes and other web3 projects to change their governance models um and then once they've changed the governance models they they're able to and in one case I I I remember they were able to basically change the uh emergency response procedure proces and then pay out um you know all the funds to their own private wallets and then pay back the liquidity protocol so obviously the liquidity protocol didn't do anything wrong here but are there any I don't know controls

in place that somebody like synthetics could put in place to prevent uh the abuse of these flesh loans um I'm just wondering what your experience is yeah well thank you for the question um so I would say it's it's a very interesting question again because it's it comes down to philosophy in my opinion right you want in the crypto space you want things to be open right that's the whole reason that we have cryptos that is permissionless anybody can go out and do things on it right like you're not stopped by the South African Reserve Bank or SARS or whatever right you can go and do whatever you want to pretty much uh depending on your local laws right um

and so we don't really want to prohibit certain actions from happening right like how can we say that yes you can use a flash loan for this but you can't use it for that right that's how I would see it at least it's more the responsibility of the protocols that are being targeted to say okay well flash loes exist how can I stop them from attacking me right yeah thank you

yeah the kyber hack do you mind if we chat off TOS because I just don't to it's a little bit Yeah deep 100% then are you running any liquid BS or anything like that your researchers and team I can neither confirm or deny

that okay cool thanks

guys