EOS.IO software will not suffer from Denial of Service (DOS) attacks like Ethereum

in #eos7 years ago (edited)

Earlier today I attempted to create a multisig account on the Ethereum blockchain only to discover that $85 dollars of ETH would be an insufficient fee. Shocked that fees could be so high I investigated only to discover that the STATUS ICO flooded the Ethereum blockchain with an unprecedented number of transactions.



Scanning the forums on reddit, user emanslpater made the claim that it doesn’t matter how good the network is, it will suffer from denial of service with these ICOs.

The problem with these "race condition" ICOs is that it doesn't matter how good the network is--that just becomes the new race condition. Say the network can handle double the transactions--then people just cram all of their transaction attempts into half the time. Even if the network could handle a billion transactions in a single block there would still be an incentive to transaction flood. -- emanslpater

I got a similar response in an Ethereum Telegram chat group where they blamed the inexperienced community for creating poorly designed ICO contracts.

This is another case of people looking at the problem wrong and then drawing the wrong conclusion. I will admit that at first I found emanslpater’s argument compelling; however, upon further consideration I concluded it would completely fail on any system that uses the rate limiting algorithm of EOS and STEEM.

No one is able to flood the STEEM or EOS networks to an extent capable of denying other users the ability to transact at their entitled rates. Someone with 1% of the tokens is always able to consume 1% of the available bandwidth, even under congested situations. Under less than congested systems they are prevented from consuming more than 50% of the available capacity.

So what would happen if the STATUS ICO was implemented on EOS? Users who only transact a few times per day (most users) would be completely unaffected. Those who regularly take advantage of the unused bandwidth of others will be rate limited but will still be able to transact like everyone else.

Million Dollar Give Away on EOS blockchain

Let’s assume someone constructs a contract that gives $1 million dollars to the first 1000 people to request it after a particular time. Let’s also assume that this contract has been advertized far and wide.

No one will be able to broadcast early because the transaction will be rejected and therefore not propagate across the network. When the time arrived everyone would broadcast their transactions at the same time. Each node would accept and relay the first 1000 requests and then reject everything after it. Every node would have a slightly different set of pending requests, including the block producer. The block producer would produce a block based upon the first 1000 it received and then broadcast it. Once broadcast all other nodes would accept those 1000 and discard the rest of their pending transactions which have now been declared invalid.

The entire ordeal would be over in 3 seconds and the network code would hardly feel it.

Conclusion

The problem Ethereum faces cannot be solved so long as it retains the current fee model and people insist on doing capped ICOs below market prices on a first-come, first-serve basis. These capped ICOs at below market prices might as well be million dollar giveaways. I am still looking for the "too many advantages of the gas paradigm" Vitalik recently alluded to.

Sort:  

Personally, I like the idea of using Eos itself to do the Eos token sale. Launch an Eos chain with a smart contract to track payments (SPV should do it, if I'm not mistaken) to the token sale addresses on various other chains... allocate EOS tokens once enough confirmations are in on the foreign chain... It's relatively easy to support several chains, and people would be able to buy into the token sale on any platform.

Of course it's work, and takes time to implement, but I think it would yield a better result than trying to flood Ethereum, as fun as that would be. My approach might still crash Ethereum, since any eth holders who want to buy in would probably still do it on the Ethereum chain, but (1) non eth users won't have to buy eth to participate, and (2) non eth users won't have to pay insane fees to participate.

A technical question to answer is, who provides block headers and SPV proofs from the foreign chains to Eos? Well, I think anyone could. The point of blockchains is that we can track them without trusting the data sources.

Another important question is, how do we value the contributions on one chain as compared with another in EOS tokens? There's a lot of possibilities for this, it's just a matter of picking a sane one.

Overall, though, I think using Eos to do it's own token auction, even though it would push back the timeline, would be a more attractive strategy to investors, better marketing, and it would demonstrate the technology live.

On Ethereum alone, we should expect the Eos token sale to denial of service its own platform; does that sound like a good idea? Remember folks, an $85 fee wasn't enough to buy into STATUS. How high of a fee will be required to buy EOS?

I think the issue with this approach is that the EOS blockchain does not exist and will not be functional enough to handle something like it's own ICO for roughly 12 months... and the ICO funds are intended to be used to create the EOS blockchain over the next year. Cart before the horse.

Just use Bitshares, which is a robust and mature Graphene based blockchain. You don't get a smart contract but you also don't need one - many, many successful ICOs were done without smart contracts (including AGS, which is what funded Graphene).

People send BTS to a Bitshares address and get EOS tokens sent back. Easy.

Yeah, but who wants to run that server and guarantee perfect uptime and results for a year? Who wants to verify that whoever ran that server didn't do anything funky? A smart contract is a much better option all around.

As to the suitability of the platform, granted, it would essentially be a test net for tracking real money, but I'm not suggesting Eos at full capacity with user-provided contracts or anything. I'm talking about a chain with just a few contracts built in, rigorously tested, demonstrating how the user-provided contracts will work and interact in the final release.

The hard parts in implementing Eos, the parts that will take a long time, are the novel parts: getting the VM ready for untrusted code, getting the parallelism working stably, optimizing all of that at the end... all the stuff no one's ever done before. The components necessary for the token sale, on the other hand, are comparatively small and not particularly novel, and thus will be faster to implement.

(Edit) Of course, these are just predictions and opinions, and I could always be mistaken. But I'm still thinking there's something here until someone convinces me otherwise.

I love your humble (edit) in your comment above. That is a great example to set for others and a wise move on your part. If I'm not mistaken, we all can be mistaken. Too many just state their opinions or beliefs as cold, hard facts.

Nice one @modprobe! Papa approves!

You make some very good points - I would also bet Dan could create a temporary EOS contract and chain to run the ICO. But we now know the ICO is definitely being run on ETH and whales are going to DDOS the network to game the ICO. Should be fun to watch...

Fun to watch for sure; bring out the popcorn! I am honestly looking forward to it. :-P

But does it make for a solid foundation for eos? I am skeptical.

I am not buying in into uncapped ICOs same goes for Tezos. It is really a pitty otherwise I would have been interested.

when you say solid foundation for eos, you mean eth chain is the foundation for eos? or...? what does not make for a solid foundation for eos? I am a beginner in this field, sorry if I did not understand it all from what you said so far.
later edit: ah I think you mean eth chain as foundation for eos ico is not a solid enough platform...

I thought that would have been a great idea for the Eos token sale too, but I have no idea of the technical limitations. Due to the state of the Ethereum network, I'm not sure I'll be able to get in on it. Good luck to those who do.

You studied and understand this article very detailed. Also you already shoot my doubts on this article. Appreciate your analytical skills. Upvoted to your comments and following you

thank you for information ,without you ,i wouldnt be here where im atm :)

So are we still expecting the EOS ICO to be on Ethereum platform? 😉

You could do it on STEEM. Participants will be voting for posts and tokens will be distributed based on vote weights.
https://steemit.com/cryptocurrency/@pal/eos-like-crowdsale-on-steem

Do the ICO on Bitshares, leave this ETH garbage behind!

I think that maybe the idea of doing the ICO on ETH is a marketing move. A lot of people on Bitshares are already aware of EOS. I just hope the Ethereum blockchain doesn't collapse under the pressure of all these other ICOs while EOS is using it. I'm sure Dan and his team have a backup plan.

Hi @johnsmith & @kendewitt I am new to this....but why do you thing Dan would use the ETH Blockchain instead of the proven Bitshare platform??

Like I said, marketing. There are simply a lot more people that are aware of Ethereum and paying attention to ICOs on Ethereum. Would you rather advertise something to people who are already likely to buy your product or people who don't know about your product yet?

Dan wants to use ETH because it provides the ability to use a smart contract to run the ICO. This is a good thing and very rationale. Once the contract is started it cannot be stopped, everything is fair and legal, etc. etc.

Bitshares would require block.one to issue EOS tokens directly as Bitshares does not have the ability to run smart contracts (EOS is the Graphene smart contract platform).

But... ETH is not likely to be able to handle the transaction volume of the EOS ICO. So Bitshares might still be the better option, even if it isn't as slick.

Oh, I see. Makes sense.

But I'll bet the marketing angle must have crossed someone's mind at some point when making the decision to use ETH.

Has any other ICO used the Ethereum blockchain to create a product that competes with Ethereum?

Not directly (that I'm aware of). That's why I expect to see ETH whales DDOS the network and game the ICO to gain substantial control of the EOS token distribution.

I think it can be the first billion dollar ICO... I better get ready 🤔😀😂

I think the best idea would be to let people who know to get there EOS first, then advertise to those who do not know later.

That would be nice if those of us who heard about it first could be first to buy, but I don't think it's the fairest way to distribute.

True. I redact that comment. If BTS owners were able to participate in the ICO via BTS in addition to ETH, this would allow long-time supporters of the Invictus ecosystem to have more options in aquiring EOS. And at the same time, noone could say distrubution was unfair.

I feel like ETH will get hurt again with an EOS ICO on its network haha
I guess thats good marketing for EOS itself

I think this is the best suggestion of all. Do the ICO on Bitshares. Or even do the ICO on Bitshares and ETH at the same time. I remember back in the days of the Bitshares ICO, you were able to contribute BTC or PTS.

I would bet, safe bet, that we are going to see ICO that use different means at the same time. Like mobile go used waves and ethereum token, we might see ICOs that spread around different blockchain. I would only find that natural, even if the question of the price is a hard one.

Will ETH gas price continue to rise in the future? Fees are already high for a 2years old crypto. EOS has a huge potential, it's upto people whether they are going after crypto-fiat trading or using the real deal of the blockchain which EOS has a huge chances to become.

It reminds me the old days of microcomputing. Dbase4 was a technical disaster with mainstream adoption. It was everywhere in all magazines and corporations were looking for Dbase4 developers. This trend lasted approximately 2 years. But, it introduced indexed data to that market, so in a sense, it was a necessary step. Ethereum is a necessary step to EOS. It paved the way for smart contracts. It still is an ideal Platform for a POS token ICO, until EOS is available. Stay sharp @dantheman

I like and agree with your analogy..

There are so many ICOs on Ethereum blockchain on this moment and more others to come and it's just a matter of time until it will face another big problem like it was with the DAO tokens!
Things being said, I still don't understand why people don't use steem to make a transfer! Is the easiest and faster way to send your money with no fees!
Is there a chance that people could make ICOs on the steem blockchain? I think that will make steemit and steem amazing!

Wow, why your money is showing like that?

Hey @dantheman, this post came #48 on the Top 50 posts on Steemit for last week!! If you want to see the full list, click here. Cheers mate!

Hello, I believe the ICOs are not below market, but the market is in a big bubble. Are those tokens worth that price ? The answer is no, but people are investing like crazy in them because of hype. Uncapped ICOs will lead to the ICO market auto destruction in my opinion. The bubble will burst once everyone is uncapped, money supply is limited. You can't invest billions in each ICO.

Market is what people are willing to pay, not what something is "worth" in your opinion.

In a bubble the market is out of sync with real values and people will pay "over the real market" prices because of greed with the only hope to make a quick buck. Tulips contracts were never worth what people paid for it, once the hype came down all the speculators were ruined. The same will happen here.

ICOs bubble will pop and the market will mature like internet did. In the mean time a lot of people will be ruined.

In a bubble the market price is out of sync with value, but fort he purpose of pricing an ICO market price is all that matters.

Yes I agree. Give them what they want until their wallets are empty. I would do the same. Its business not a charity :-)

The problem here is I don't think anyone knows what "real values" are for most of these ICOs yet. Tulips were a more proven entity.

There's also an interesting argument to be made that Tulip mania was rational, because the speculation was done in derivatives contracts which had a clause allowing the holder to pay a very small fee and not take delivery, ie just tear up the contract. Thus, the risk reward of the increasing value vs. the small fee to cancel the contract made tulip mania rational. It depends on how much you believe the financial records of the day.

Its the same as todays exchanges with forex and commodities, when I buy for 100K usd of silver I only need to put 5K down.

Right, buying on margin. I think these tulip contracts were allegedly more like call options with particularly low cost basis. There's an economist who wrote a paper on it, if you feel like googling.

Its kind of the same with cryptos. Look at ethereum, dropped from 360 usd to 13 usd because the guys from status ICO dumped 96K eth on the market all at once. The market cap is an illusion, a small dump can destroy the whole ecosystem.

Yeah, which illustrates how silly some of the taxation is - you can't just multiply stock by price. As you noted, the market cap is way, way smaller than the numbers claim.

Exactly :) Same here with upvotes, downvotes and whether certain post is "worth" its payout or not.

PS
Please, throw some ETAs, I'm not that patient to stare on telegram for days ;)

i pray for all

Do you know the value of some of these coins outside of their market cap evaluation? I'm wondering about the number of users, daily interactions or if the coins have any monetary value from products made by users.

Most are worth nothing or close to nothing. Its all speculation. 98% of todays blockchains will be dead in less than 3 years.

Yes, this is how I see it too. I'm looking for cryptocurrencies that have a business idea which utilizes blockchains for a legitimate reason.

I also wonder why new companies need to release new currencies instead of using an existing one like Ethereum. Is there a technical reason for that?

If you don't make your own crypto then you don't make any money, no ?

I think one of the lessons learned from the 2013-2014 boom and bust is blockchains never truly die. My BitShares was down like 80% from crowdsale price.