From this question I've learned that a transaction with
N inputs requires
N sign operations.
But what if there a huge amount of inputs? E.g. I have a coffee shop and I sell 5000 pcs coffee every day for $1 each. If I want to transfer my daily income I'll end up with a transaction with 5000 inputs.
Counting with 100kB max transaction size ~300..400 inputs can be included in one transaction. So I need to make 10..15 transactions every day. In addition, if I have a hardware wallet that needs let's say 500 ms to make a signature it will take 5000*0.5 sec = 41 min to sign all the inputs.
What is the correct way to handle this?
Is there an option to sign the transaction only once and use this signature for all the inputs?
The current signature scheme that bitcoin is using (ECDSA) doesn't support signature aggregation, so you will have to sign each input and provide one signature per input (assuming it requires only one signature) and your transaction size will grow accordingly.
sell 5000 pcs coffee every day for $1 each
Then you might want to look into Lightning Network. It works on top of bitcoin as a second layer and for micro and frequent payments it is the better choice:
How does the Lightning network work in simple terms?