Open source Bitcoin banking protocol
I have an idea, lets make a system where you can create a bank account by generating a private key and a public key derived from it (the public key is your bank account identifier). You send an internet request to a bitcoin bank with your public key that is your account identifier, they create your account in their database. The bank identifier is the bank public key, they signed their bitcoin deposit address with their private key to guarantee its theirs. You can deposit bitcoin on the bank by generating a bitcoin transaction and sending the bitcoin transaction to the bank before you send it to the bitcoin network so they know the money coming to them has to be credited to your bank account. Once you have money in the bank account you can sign a message with your bank account private key : "send 10 sat to user with account identifier X\_2 in bank with identifier Z\_2". You send that message to your bank, then the bank sign the message : "Me bank Z\_1 tell you that my client X\_1 send 10 sat to your client X\_2 in your bank that is Z\_2". The bank Z\_2 then credit the user X\_2. Every 10 minutes the banks settle themselves on the blockchain the difference between the total money they received from other bank users and the money they sent to other bank users. This could scale Bitcoin to an infinite number of transactions with almost no fee and instant payments, the banks could settle with first layer or lightning to be even faster. I would prefer everybody to own their own keys but if Bitcoin grows to more than 150 million users it could allow scaling Bitcoin beyond 150M users. Of course the banks could seize the bank users money but we could create a wallet interface where you can split your holdings in 100 different banks that use the same open source protocol to diversify custodial risk.