Thank you for your explanations.
Could you please give more details about the mechanism you exposed above ? Are there cons to the implementation of such a mechanism ?
You are welcome.
To handle your friend's use case, I'm proposing a new opcode SIGHASH_INPUT which
locks an input to another input (its SIGHASH part), once used this opcode requires the input (being signed properly) to be part of a transaction that includes another input with specified SIGHASH for the wallet it unlocks and with this way inputs can be nested and secure against stealing because only the person who can spend a specific wallet address is eligible to spend such inputs. So, this would be the new scenario:
1- Your friend, ALice, gives her wallet address
WA to Bob or simply publishes it in his site.
2- Bob the donor, decides about the amount he wishes to donate and selects/makes an address with same balance.
3- Either Bob was forced to make a transaction or has already such a wallet address, he generates a SIGHASH_INPUT|ANYONECANPAY txn immediately with
WA as its locked key hash and sends it to Aice.
4- Collecting all such donations and querying the blockchain Alice decides to claim them at some point and does so by making a transaction with Bob's (and other donors') received transactions which are locked to
WA as explained, adding an input which spends a utxo that is locked to
WA. So, the final txn includes one or more SIGHASH_INPUT|ANYONECANPAY inputs, one SIGHASH_ALL|ANYONECANPAY special input that unlocks a utxo with
WA sighash.
5-Alice may reuse
WA as one output (with very low balance) of the transaction in case there is a chance of receiving more donations to same address.
The only problem with such a feature would be what i've been struggling with in STEP #2: Bob should donate all of the balance of one of his received transactions (not the wallet tho). But I think this happens anyway when you don't lock outputs and if there is an option for such thing in bitcoin, there should be a use-case.
Another challenge would be current orientation in bitcoin core community that is more focused on high volume transactions and has lost hopes on supporting day-to-day/micro payments, to be honest.
Though this proposal is not just about micropayments. A smart reader might noted that it would be part of an infrastructure (not the whole tho) for off-chain p2p transactions, I can imagine scenarios in which such 'notes of payments' are circulating around more than once like cash by employing complementary techniques.
Another range of applications would be fee-on-receiver use-cases in which the receiver both determines and pays for the transaction fee and is very important both for LN and decentralized exchanges.
To have a better picture of other applications, you may follow the discussions I've contributed to here:
https://bitcointalksearch.org/topic/m.49610575