This proposal is mainly in the context of the BCH "funding debate", but there is no reason its concepts could not be applied to other blockchains.
The "wallets enabling easier donations by users" is not a new suggestion, but the 2nd part of my proposal covers an added mechanism to reward loyal miners. I've not seen that proposed, but in case someone already did before, I'm not necessarily claiming novelty here, I just want to bring the discussion to the light.
Getting holders and users to open their wallets is what will sustainably fund Bitcoin Cash infrastructure
I'll just put this thesis right at the front.
Short term, it may be the more enlightened and loyal miners, big businesses, users and large holders that will finance Bitcoin Cash roadmap development, but long term, the base needs to be broadened.
We like to keep things voluntary, but most people are sensible, and if explained how it translates into better infrastructure and more adoption, they do not object to voluntarily financing Bitcoin Cash development.
A few are greedy and purely focused on immediate gains and that will never change, but most of the real BCH community I've met or talked to are not like that.
First part of the proposal: Wallets include convenient recurring donation capabilities to user-configurable recipients
Wallet developers get to pre-configure the defaults like to whom, how much and how often, and decide whether they make this opt-in or opt-out, but it should remain optional.
User-configurable means the user remains in absolute control of
a) whether they want to donate anything at all on some recurring basis
b) to whom they want to donate, if they do
c) the modalities like whether it is as separate automatically suggested transactions every so often, or as some kind of small added-on transaction fees, etc.
It is important to give good information like summaries about donation that the user has made using such mechanisms.
This first part of the proposal covers any measures that would make it more convenient for users to donate to their favorite (✔) development teams (✔) adoption organizations (✔) charities etc.
The next part is more about addressing the mining pool / mining / infrastructure funding problem specifically (under the assumption that it is mining pools and miners who know quite well about what the system needs are there, and are prepared to channel funds onwards to protocol developers, library maintainers and whoever else maintains "the commons".
Second part of the proposal: Wallet tracking which miners mined the users blocks, and make it easy for user to reward loyal miners of their choice
I first proposed this on Twitter in a series of tweets here
This would need wallets to present to their users an overview of who mined their transactions (perhaps over a selectable time window or certain number of last transactions), and present that information to the user.
We are all familiar with what the overall mining pool pictures look like.
Wallets could display similar, but based on "who mined YOUR transactions in the last month" or suchlike.
They might not need to display it graphically at all - it could just be a list of the top 5 or 10 pools that have mined the user's transactions, from which a user could then select the pools that they feel are reliable Bitcoin Cash miners to whom they would feel comfortable supporting with a little extra fees.
Pools who are unidentified would tend to lose out because of lack of name recognition. This would give an advantage to loyal pools which are not afraid of revealing their identity while supporting Bitcoin Cash.
For this part of the proposal to work, wallets would need to access some kind of service that would give them "good enough" information about who mined which blocks that their user's transactions were in.
It is not about achieving 100% identification. I still absolutely want miners / pools to be able to remain anonymous and not be forced to disclose their identities if they do not want to. This is part of privacy, but we must acknowledge the potential for "dark hash" to misbehave, and this scheme could help disincentivize that.
A user cannot predict who will mine their tx, how will this work?
Correct - they cannot know in advance.
Therefore, the additional (voluntary) rewards emitted by wallets would not be pre-included, they would be "sent back in time" to the addresses of well-buried coinbases of the user's preferred miners. Coinbases only become available for miners to move after 100 blocks (so-called "maturity").
It would be quite easy for a wallet to include a little additional fee output going to the preferred miners most recent coinbase that is older than 100 blocks.
A call for help to build a service that wallets can use to make this happen
Ideally, we build an open service that any wallet can access to help them correlate past blocks with "best guess" miner information from sources like Coin.dance, Blockchair or others, which already use heuristics like coinbase messages, coinbase output addresses etc. to identify which mining pool or miner mined a block.
These are just "smart guesses" - and that is ok.
What I'd like to build is an open API that delivers either simply fused information from such sources, or (in a more ambitious form), an open API backed by a machine learning classifier (boosted decision tree or neural net) that is continuously trained by such existing data sources.
"Open API" here means the source code (and training data) would be open source / open access.
Over to the wallets
What can we do to start this?
Well, I'm thinking about putting out a bounty for help in developing aspects of this.
This includes one or more plugins for Electron Cash, to demonstrate the concept, but before we can implement the second part, as I described we need to get a basic API server set up that wallets (like EC) could use.
I need your feedback for this (scope and dimensioning of bounties), and I'd be happy if there are any volunteers (or bounty hunters) who might feel inclined to help join together to develop such things.
There is also going to be a U-DID 'funding request' schema that I will put out shortly, which could help wallet developers request funding if they come forward with a technical proposal (i.e. a good plan) to implement this on any BCH wallet.
I hope you enjoyed this proposal, please leave your suggestions in the comments!
Wallet photo by Nicolas J Leclercq on Unsplash
Thank you