Accumulator Nodes - A new type of node
Running a business. Accepting bitcoin. Have a thought - please feel free to tear me apart and tell me why this isn't technically possible.
The Problem:
Currently using base layer every payment is written to the blockchain one by one. As a business though, there isn't really much need for each payment to come through one at a time, taking up blockspace for every transaction.
Wouldn't it be nice if every time I'm paid, instead of taking blockspace to process each Tx one by one, those transactions are accumulated together, and at the end of every day a single transaction is processed that batches all the individual transactions for the day? (as an option, of course)
The Proposal:
A new type of node, called an "Accumulator Node" (I'm just making this up), of which anyone can run an instance, and they all talk to each other the way that nodes currently do. Any individual, such as me the business owner, can talk to an Accumulator Node and exchange my address for a secret key from the node. The specific secret key would be used later to initiate a payout to the address that was given- so it's ideal to keep it secret but not a big deal if someone else finds it. The only thing they can do with it is initiate a payout to my address.
Anyway, then: when somebody wants to buy something from me, they create a signed transaction and communicate to any Accumulator Node. The Accumulator Node verifies that the transaction is valid and could be broadcast to the blockchain at any time. Accumulator Node gives me the OK to let me know everything is good. I sell my product or service.
Accumulator Nodes then keep a registry, like a mempool, of every UTXO that has been 'spent' in all the transactions accumulated to the nodes, and constantly monitors the bitcoin blockchain for an attempted double-spend of any one of those UTXOs.
If/when a double-spend of a single 'spent' UTXO, any Accumulator Node automatically broadcasts the relevant transaction to the blockchain, with a priority fee which promises to have it processed in the very next block.
If no double-spends, then all transactions continue to be accumulated and held in a pool of signed transactions. At any time of my choosing, for example at the end of a business day, I can transmit my secret key back to any Accumulator Node. Every transaction for the address associated with my secret key is then batched together into a single transaction (thank you Taproot), and then broadcasted to the bitcoin blockchain to be processed in a block.
The game theory around double-spends still needs thought/work. The two issues I see are a) need to ensure in the event of a double-spend, 'my' transaction as the business owner needs to be processed first, and b) I don't loose too much in fees to have my transaction processed with priority.
Maybe some kind of trustworthyness rating system, where I only use this 'accumulating' option for people who have a low history/likelihood/incentive of a double-spend attempt?
This isn't a fully gamed out idea. Just an attempt to figure out how to free up blockspace. Fun fact: with 8 billion people on the planet, and bitcoin processing ~7 Txn's/second, it would take over 13 thousand days for bitcoin to process one transaction per living person. So this could become a real issue very quickly.
Again as a business owner, I don't necessarily need to take up blockspace for every single transaction to me. My 'tab' could be settled at the end of the day using one single transaction, if that could be done in a trustless way... That's the motivation behind my thinking here. Now please tell me why this isn't possible, and what if anything about the way bitcoin works would need to change to accommodate?