KingAfurah



Offline



Activity: 28

Merit: 0







NewbieActivity: 28Merit: 0 Next level Bitcoin stress test -- June 29-30 13:00 GMT 2015 June 24, 2015, 12:17:42 PM

Last edit: June 24, 2015, 12:36:29 PM by KingAfurah #1



See here why the first stress test was not as successful as planned: CLICK



The result was roughly 12 hours of full blocks combined with increased confirmation times for many Bitcoin transactions. By selecting random transactions that were not initiated by our team, we were able to determine that many standard fee transactions were taking ~80 blocks before receiving a single confirmation.



Bitcoin is at a breaking point, yet the core developers are too wound up in petty arguments to create the required modifications for long term sustainability. If nothing is done, Bitcoin will never be anything more than a costly science project. By stress testing the system, we hope to make a clear case for the increased block size by demonstrating the simplicity of a large scale spam attack on the network.



The plan - We setup 32 Bitcoin servers that will send approximately 1 transactions per second each (up from 10 servers sending 2 transactions per second each) - Each of these transactions will be approximately 3kb in size and will each spend to 10-20 addresses - The outputs will then be combined to create large 15-30kb transactions automatically pointing back to the original Bitcoin servers.

Example:



Certain servers will be configured to include marginally larger than standard fees, thus guaranteeing delays from standard SPV wallets.

The target will be to generate 1mb worth of transaction data every 5 minutes. At a cost of 0.0001 per kb (as per standard fees) this stress test will cost approximately 0.1 BTC every five minutes. Another way to look at the cost is 0.1 BTC per full block that we generate. We have allocated 20 BTC for this test, and therefore will be able to single handedly fill 100 blocks, or 32 hours worth of blocks. However, we will stop pushing transactions after 24 hours at 13:00 GMT Tuesday June 30.



Predictions



Our above estimates are based on 1 block being mined every 10 minutes. This is standard, however deviations are likely to create temporary blips in our testing, in particular when there is an hour gap between confirmations.

The above calculations are based on each block being exactly 1mb and no other transactions appearing in the blocks. This is obviously unrealistic due to the fact that the average block size without our intervention is approximately 600kb. Furthermore, at least 30% of miners continue to cap blocks at 731kb. Others cap at 976kb.



Conclusions



For the sake of avoiding un-necessary calculations, lets assume that each block is 926kb in size, the average normal Bitcoin transaction volume is 600kb per block, and CoinWallet.eu will be pushing 2mb of transaction data into the network every 10 minutes. Under these conditions, the amount of transaction data being pushed to the network every 10 minutes (or every average block) will be ~2600kb. This will result in a 1674 kb backlog every 10 minutes.



By 13:00 GMT Monday June 29, the mempool of standard fee transactions will be 10mb By 24:00 GMT Monday June 29nd, the mempool of standard fee transactions will be 130mb By 13:00 GMT Tuesday June 30, the mempool of standard fee transactions will be 241mb



At this point the backlog of transactions will be approximately 241 blocks, or 1.67 days. When the average new transactions are factored into the equation, the backlog could drag on for 2-3 days. At this point, questions are raised such as whether or not this will cause a "crash landing." It is impossible to know with certainty, however we are anxiously looking forward to Monday.

On June 22nd, we initiated a relatively limited stress test on the Bitcoin blockchain to determine whether or not we alone could have a large impact on the ecosystem as a whole. While our initial tests merely created full blocks for a multiple hour period, transaction confirmation times remained within 6 blocks for most transactions. This test was not as successful as planned.The result was roughly 12 hours of full blocks combined with increased confirmation times for many Bitcoin transactions. By selecting random transactions that were not initiated by our team, we were able to determine that many standard fee transactions were taking ~80 blocks before receiving a single confirmation.Bitcoin is at a breaking point, yet the core developers are too wound up in petty arguments to create the required modifications for long term sustainability. If nothing is done, Bitcoin will never be anything more than a costly science project. By stress testing the system, we hope to make a clear case for the increased block size by demonstrating the simplicity of a large scale spam attack on the network.Example: https://blockchain.info/tx/888c5ccbe3261dac4ac0ba5a64747777871b7b983e2ca1dd17e9fc8afb962519 The target will be to generate 1mb worth of transaction data every 5 minutes. At a cost of 0.0001 per kb (as per standard fees) this stress test will cost approximately 0.1 BTC every five minutes. Another way to look at the cost is 0.1 BTC per full block that we generate. We have allocated 20 BTC for this test, and therefore will be able to single handedly fill 100 blocks, or 32 hours worth of blocks. However, we will stop pushing transactions after 24 hours at 13:00 GMT Tuesday June 30.For the sake of avoiding un-necessary calculations, lets assume that each block is 926kb in size, the average normal Bitcoin transaction volume is 600kb per block, and CoinWallet.eu will be pushing 2mb of transaction data into the network every 10 minutes. Under these conditions, the amount of transaction data being pushed to the network every 10 minutes (or every average block) will be ~2600kb. This will result in a 1674 kb backlog every 10 minutes.By 13:00 GMT Monday June 29, the mempool of standard fee transactions will be 10mb By 24:00 GMT Monday June 29nd, the mempool of standard fee transactions will be 130mb By 13:00 GMT Tuesday June 30, the mempool of standard fee transactions will be 241mbAt this point the backlog of transactions will be approximately 241 blocks, or 1.67 days. When the average new transactions are factored into the equation, the backlog could drag on for 2-3 days. At this point, questions are raised such as whether or not this will cause a "crash landing." It is impossible to know with certainty, however we are anxiously looking forward to Monday.

KingAfurah



Offline



Activity: 28

Merit: 0







NewbieActivity: 28Merit: 0 Re: Next level Bitcoin stress test -- June 29-30 13:00GMT 2015 June 24, 2015, 12:29:53 PM #3 Quote from: turtlehurricane on June 24, 2015, 12:22:25 PM Your calculations were way off in the last test and you're using the same ones again??? Transaction fee is way higher than you're estimating once any mempool excess begins.



Last stress test (Monday, June 22nd) was not successful, because executing tens of thousands of transactions that correctly propagate to the network simultaneously is not as easy as we had expected. 10 servers sending out 2 transactions per second each were used for this test.



For the upcoming test, we will use 32 servers running bitcoind sending out 1 transaction each per second.

This way, we hope to lower the load on the individual server, hoping the bitcoind does not clog up and crash as easily.



Last stress test (Monday, June 22nd) was not successful, because executing tens of thousands of transactions that correctly propagate to the network simultaneously is not as easy as we had expected. 10 servers sending out 2 transactions per second each were used for this test.For the upcoming test, we will use 32 servers running bitcoind sending out 1 transaction each per second.This way, we hope to lower the load on the individual server, hoping the bitcoind does not clog up and crash as easily.

ajareselde



Offline



Activity: 1722

Merit: 1000



Satoshi is rolling in his grave. #bitcoin







LegendaryActivity: 1722Merit: 1000Satoshi is rolling in his grave. #bitcoin Re: Next level Bitcoin stress test -- June 29-30 13:00 GMT 2015 June 24, 2015, 12:39:05 PM #6

I found last stress test to be rather interesting, looking forward to second one on monday, i'll just make sure i don't have transactions around then



cheers

Whats in it for you ? I doubt you are doing this only for stress analysis, there has to be a larger point to this.I found last stress test to be rather interesting, looking forward to second one on monday, i'll just make sure i don't have transactions around thencheers

turvarya



Offline



Activity: 714

Merit: 500







Hero MemberActivity: 714Merit: 500 Re: Next level Bitcoin stress test -- June 29-30 13:00GMT 2015 June 24, 2015, 12:42:50 PM #7 Quote from: turtlehurricane on June 24, 2015, 12:34:13 PM



Quote from: turvarya on June 24, 2015, 12:29:27 PM Quote from: turtlehurricane on June 24, 2015, 12:22:25 PM



And btw KingAfurah is likely an alt of Anduck. Now that this person's identity is revealed hopefully they will be more responsible with what they do, instead of trying to spread fear throughout the community.

Your calculations were way off in the last test and you're using the same ones again??? Transaction fee is way higher than you're estimating once any mempool excess begins.And btw KingAfurah is likely an alt of Anduck. Now that this person's identity is revealed hopefully they will be more responsible with what they do, instead of trying to spread fear throughout the community. https://bitcointalk.org/index.php?topic=1094865.msg11701281#msg11701281

Where does he estimate transaction fees?

"The target will be to generate 1mb worth of transaction data every 5 minutes. At a cost of 0.0001 per kb (as per standard fees) this stress test will cost approximately 0.1 BTC every five minutes. Another way to look at the cost is 0.1 BTC per full block that we generate. We have allocated 20 BTC for this test, and therefore will be able to single handedly fill 100 blocks, or 32 hours worth of blocks. However, we will stop pushing transactions after 24 hours at 13:00 GMT Tuesday June 23."



Basically everyone else will send transactions with higher fees than 0.0001 kb and none of the spam will go through until later. Only people that could get fooked are those who send minutes before the spam begins.

I take back what I said about him possibly being anduck, no way to know for sure so not worth starting a war over that."The target will be to generate 1mb worth of transaction data every 5 minutes. At a cost of 0.0001 per kb (as per standard fees) this stress test will cost approximately 0.1 BTC every five minutes. Another way to look at the cost is 0.1 BTC per full block that we generate. We have allocated 20 BTC for this test, and therefore will be able to single handedly fill 100 blocks, or 32 hours worth of blocks. However, we will stop pushing transactions after 24 hours at 13:00 GMT Tuesday June 23."Basically everyone else will send transactions with higher fees than 0.0001 kb and none of the spam will go through until later. Only people that could get fooked are those who send minutes before the spam begins.

You predict, that the transaction fees go up. We will see, if that is true. But looking at my Mycelium Wallet, I don't think it reacts to how many transactions are already in the mempool. He just says, what transaction fee he is using, not what someone else will use.You predict, that the transaction fees go up. We will see, if that is true. But looking at my Mycelium Wallet, I don't think it reacts to how many transactions are already in the mempool. https://forum.bitcoin.com/

New censorship-free forum by Roger Ver. Try it out. New censorship-free forum by Roger Ver. Try it out.

KingAfurah



Offline



Activity: 28

Merit: 0







NewbieActivity: 28Merit: 0 Re: Next level Bitcoin stress test -- June 29-30 13:00GMT 2015 June 24, 2015, 12:47:10 PM #8 Quote from: turtlehurricane on June 24, 2015, 12:43:53 PM

1. You'd have to raise your transaction fees to well above .001 BTC/kb to cause any noticeable blockade, here is the last test where legit users broke through your blockade easily. And of course you couldn't afford a significant amount of spam at this level.





2. It's an interesting idea for an attack, but this is why it's never going to be feasible. Based on what I know now I honestly don't give a crap if you do this attack at full force cause it will have barely any impact for people who are properly calculating transaction fees.

1. We don't want to cause a noticable blockade*, this is why we are using standard fee (0.0001 per kb). This is a stress test, not an attack.



2. OK, so move on with your life then.





Quote



Transactions with a fee of 1,000 satoshi (0.000 01 BTC) per KB of transaction took 87 blocks to confirm. These transactions had fees lower than the stress test transactions and so were effectively put at the back of the queue

Transactions with a fee of 3,000 satoshi per KB took 11 or 80 blocks to confirm

Transactions with a fee of 10,000 satoshi per KB took an average of 9 blocks to get mined



https://multibit.org/blog/2015/06/23/bitcoin-network-stress-test.html

*During the stress test we found the following behaviour:. These transactions had fees lower than the stress test transactions and so were effectively put at the back of the queue 1. We don't want to cause a noticable blockade*, this is why we are using standard fee (0.0001 per kb). This is a stress test, not an attack.2. OK, so move on with your life then.