Is there a way to estimate the maximum number of transactions per minute Bitcoin can handle as it is today?

Is there a way to estimate the maximum number of transactions per minute Bitcoin can handle as it is today?
2015-01-31  2:58 ` Nick Simpson
                   ` (2 more replies)
  
From: Angel Leon @ 2015-01-31  0:48 UTC (permalink / raw)
  To: Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1444 bytes --]

On the Chinese "Single's Day" (sort of like the american Black Friday)
according to MIT's Tech Review
<http://www.technologyreview.com/news/534001/alipay-leads-a-digital-finance-revolution-in-china/>
magazine

"Alipay handled up to 2.85 million transactions per minute, and 54 percent
of its transactions are made via mobile device."

For a few weeks I've been reading the conversations about block sizes and
the experiments being done on the subject with larger blocks.

On the day with the most transactions, the Bitcoin block chain averages
about 73 transactions per minute. I kept wondering what blocksize we'd need
for handling 100,000 transactions per minute, and estimated that roughly
we'd need a blocksize of about 1300x times larger than what we have now, so
bigger than 1Gb block... but seeing the numbers Alipay gets to handle just
in China make me wonder how scalable is Bitcoin if it were to truly compete
with worldwide financial services.

If you were to include double the number Alipay can handle, you'd be
shooting about 6 million transactions per minute, or roughly 60 million
transactions per block.

If you average every transaction around 250 bytes, then you'd need ~15
Gigabytes per block to be broadcast and hashed by all the full nodes every
10 minutes, eating good 2Tb of storage daily... do miners have enough
bandwidth and CPU power to handle this?

are my scalability concerns absurd?

http://twitter.com/gubatron

[-- Attachment #2: Type: text/html, Size: 1859 bytes --]

 permalink raw reply	[|nested]
2015-01-31  2:58 ` 
                   ` 
  
From: Angel Leon @ 2015-01-31  0:48 UTC (permalink / raw)
  To: Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1444 bytes --]

On the Chinese "Single's Day" (sort of like the american Black Friday)
according to MIT's Tech Review
<http://www.technologyreview.com/news/534001/alipay-leads-a-digital-finance-revolution-in-china/>
magazine

"Alipay handled up to 2.85 million transactions per minute, and 54 percent
of its transactions are made via mobile device."

For a few weeks I've been reading the conversations about block sizes and
the experiments being done on the subject with larger blocks.

On the day with the most transactions, the Bitcoin block chain averages
about 73 transactions per minute. I kept wondering what blocksize we'd need
for handling 100,000 transactions per minute, and estimated that roughly
we'd need a blocksize of about 1300x times larger than what we have now, so
bigger than 1Gb block... but seeing the numbers Alipay gets to handle just
in China make me wonder how scalable is Bitcoin if it were to truly compete
with worldwide financial services.

If you were to include double the number Alipay can handle, you'd be
shooting about 6 million transactions per minute, or roughly 60 million
transactions per block.

If you average every transaction around 250 bytes, then you'd need ~15
Gigabytes per block to be broadcast and hashed by all the full nodes every
10 minutes, eating good 2Tb of storage daily... do miners have enough
bandwidth and CPU power to handle this?

are my scalability concerns absurd?

http://twitter.com/gubatron

[-- Attachment #2: Type: text/html, Size: 1859 bytes --]

 permalink raw reply	[|nested]
2015-01-31  0:48 [Bitcoin-development] Is there a way to estimate the maximum number of transactions per minute Bitcoin can handle as it is today? Angel Leon
  2015-01-31  2:58 ` Nick Simpson

  2015-01-31 17:04 ` Mike Hearn
  
From: Allen Piscitello @ 2015-01-31  2:58 UTC (permalink / raw)
  To: Angel Leon;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 2370 bytes --]

You are assuming that the only way to use Bitcoin is on-chain transactions
and that is the only way for it to scale.  This is a mistake.

On Fri, Jan 30, 2015 at 6:48 PM, Angel Leon <gubatron@gmail•com> wrote:

> On the Chinese "Single's Day" (sort of like the american Black Friday)
> according to MIT's Tech Review
> <http://www.technologyreview.com/news/534001/alipay-leads-a-digital-finance-revolution-in-china/>
> magazine
>
> "Alipay handled up to 2.85 million transactions per minute, and 54 percent
> of its transactions are made via mobile device."
>
> For a few weeks I've been reading the conversations about block sizes and
> the experiments being done on the subject with larger blocks.
>
> On the day with the most transactions, the Bitcoin block chain averages
> about 73 transactions per minute. I kept wondering what blocksize we'd need
> for handling 100,000 transactions per minute, and estimated that roughly
> we'd need a blocksize of about 1300x times larger than what we have now, so
> bigger than 1Gb block... but seeing the numbers Alipay gets to handle just
> in China make me wonder how scalable is Bitcoin if it were to truly compete
> with worldwide financial services.
>
> If you were to include double the number Alipay can handle, you'd be
> shooting about 6 million transactions per minute, or roughly 60 million
> transactions per block.
>
> If you average every transaction around 250 bytes, then you'd need ~15
> Gigabytes per block to be broadcast and hashed by all the full nodes every
> 10 minutes, eating good 2Tb of storage daily... do miners have enough
> bandwidth and CPU power to handle this?
>
> are my scalability concerns absurd?
>
> http://twitter.com/gubatron
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is
> your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>

[-- Attachment #2: Type: text/html, Size: 3265 bytes --]

 permalink raw reply	[|nested]
2015-01-31  2:58 ` Nick Simpson

  2015-02-01  6:50     ` Tom Harding
  
From: Wladimir @ 2015-01-31 13:11 UTC (permalink / raw)
  To: Nick Simpson;  Bitcoin Dev

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1180 bytes --]


On Fri, 30 Jan 2015, Nick Simpson wrote:

> This has been discussed before. I believe most people don't expect Bitcoin to replace all of the various methods of payment.  Scalability is
> always a concern, just not to the level of  Alipay this year (or the next or the next for that matter.)

Yes, that about summarizes it.

The block chain is a single channel broadcasted over the entire 
world, and I don't believe it will ever be possible nor desirable to broadcast all the 
world's transactions over one channel.

The everyone-validates-everything approach doesn't scale. It is however
useful to settle larger transactions in an irreversible, zero-trust way. 
That's what makes the bitcoin system, as it is now, valuable.

But it is absurd for the whole world to have to validate every purchase of 
a cup of coffee or a bus ticket by six billion others.

Naively scaling up the block size will get some leeway in the short term, 
but I believe a future scalable payment system based on bitcoin will be 
mostly based on off-blockchain transactions (in some form) or that there 
will be a hierarchical or subdivided system (e.g. temporary or per-locale 
sidechains).

Wladimir

 permalink raw reply	[|nested]
2015-01-31  0:48 [Bitcoin-development] Is there a way to estimate the maximum number of transactions per minute Bitcoin can handle as it is today? Angel Leon
  2015-01-31  2:58 ` Nick Simpson
  2015-01-31  2:58 ` Allen Piscitello

  2015-01-31 20:08   ` Angel Leon
  
From: Mike Hearn @ 2015-01-31 17:04 UTC (permalink / raw)
  To: Angel Leon;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1903 bytes --]

>
> "Alipay handled up to 2.85 million transactions per minute, and 54 percent
> of its transactions are made via mobile device."
>

I know China is a very big place but even so - 47,500 transactions per
second would be almost quintiple what Visa handles across the entire world.
With only 300 million users and primarily online usage (?) this claim feels
a little suspect to me.

Given the wording "up to 2.85 million" I wonder if that is some freak spike
caused by people's behaviour being synchronised externally (e.g. a fixed
start time for the sale that people are waiting for). It's hard to imagine
that they sustained anything close to that for the entire day.

So this is really a discussion about peak performance.

If you average every transaction around 250 bytes, then you'd need ~15
> Gigabytes per block to be broadcast and hashed by all the full nodes every
> 10 minutes, eating good 2Tb of storage daily... do miners have enough
> bandwidth and CPU power to handle this?
>

There's a discussion of such things here that might be useful:

https://en.bitcoin.it/wiki/Scalability

It discusses various optimisations, like not actually sending tx data twice.

I wouldn't worry about it too much. It took decades for Visa to even
approach 10,000 txns/sec. PayPal, I believe, still "only" handles a few
hundred. And those services had the benefits of minimal competition,
working in people's local currencies, integrated dispute mediation and not
representing any real threat to the political status quo. Bitcoin isn't
going to be needing to handle Alipay's level of traffic any time soon.

Frankly, scaling is a nice problem to have, it means you're popular. It'd
be a mistake to just blindly assume Bitcoin will take over the world.
Growing market share is difficult. Worry more about how to get 300 million
crazy users than the precise broadcast protocol that'd be needed to handle
them ;)

[-- Attachment #2: Type: text/html, Size: 2858 bytes --]

 permalink raw reply	[|nested]
2015-01-31 17:04 ` Mike Hearn

  
From: Angel Leon @ 2015-01-31 20:08 UTC ( / )
  To: Mike Hearn;  Bitcoin Dev



My concerns come from 2 projects that could easily raise the current
transaction volume 10x daily in the short term,  perhaps even 100x a year
from now after the media blows it out.

Think legal bittorrent file sales: ebooks, indie music (albums and
singles), films, art, stock photography.

Think p2p amazon (OpenBazaar) and how that could grow exponentially in
terms of transactional volume when ecommerce penetrates geos currently
underserved.

Thanks for your explanations. it seems as of now we must rely on the likes
of centralized solutions like Bitpay, Coinbase to manage the transactional
volume we expect, or just wait for the technology to be ready finally
handle it in a real p2p fashion, no intermediaries.



On Sat, Jan 31, 2015, 6:04 PM Mike Hearn <mike@plan99•net> wrote:

> "Alipay handled up to 2.85 million transactions per minute, and 54 percent
>> of its transactions are made via mobile device."
>>
>
> I know China is a very big place but even so - 47,500 transactions per
> second would be almost quintiple what Visa handles across the entire world.
> With only 300 million users and primarily online usage (?) this claim feels
> a little suspect to me.
>
> Given the wording "up to 2.85 million" I wonder if that is some freak
> spike caused by people's behaviour being synchronised externally (e.g. a
> fixed start time for the sale that people are waiting for). It's hard to
> imagine that they sustained anything close to that for the entire day.
>
> So this is really a discussion about peak performance.
>
> If you average every transaction around 250 bytes, then you'd need ~15
>> Gigabytes per block to be broadcast and hashed by all the full nodes every
>> 10 minutes, eating good 2Tb of storage daily... do miners have enough
>> bandwidth and CPU power to handle this?
>>
>
> There's a discussion of such things here that might be useful:
>
> https://en.bitcoin.it/wiki/Scalability
>
> It discusses various optimisations, like not actually sending tx data
> twice.
>
> I wouldn't worry about it too much. It took decades for Visa to even
> approach 10,000 txns/sec. PayPal, I believe, still "only" handles a few
> hundred. And those services had the benefits of minimal competition,
> working in people's local currencies, integrated dispute mediation and not
> representing any real threat to the political status quo. Bitcoin isn't
> going to be needing to handle Alipay's level of traffic any time soon.
>
> Frankly, scaling is a nice problem to have, it means you're popular. It'd
> be a mistake to just blindly assume Bitcoin will take over the world.
> Growing market share is difficult. Worry more about how to get 300 million
> crazy users than the precise broadcast protocol that'd be needed to handle
> them ;)
>
2015-01-31 13:11   ` Wladimir

  
From: Tom Harding @ 2015-02-01  6:50 UTC (permalink / raw)
  To: bitcoin-development

On 1/31/2015 5:11 AM, Wladimir wrote:
> The block chain is a single channel broadcasted over the entire world, 
> and I don't believe it will ever be possible nor desirable to 
> broadcast all the world's transactions over one channel.
>
> The everyone-validates-everything approach doesn't scale. It is however
> useful to settle larger transactions in an irreversible, zero-trust 
> way. That's what makes the bitcoin system, as it is now, valuable.
>
> But it is absurd for the whole world to have to validate every 
> purchase of a cup of coffee or a bus ticket by six billion others.

Well to be fair, nobody suggested 6 billion full nodes.  Although some 
residential connections today do have Angel's 15G/10min... (sadly, not 
mine).

One of the best points Gavin made is, it would be unwise to artificially 
limit the number of transactions below the technical capabilities of the 
network.  That's how competitions are lost. 
http://gavintech.blogspot.com/2015/01/twenty-megabytes-testing-results.html



 permalink raw reply	[|nested]