I proposed an altcoin design here called blockvault:
https://bitcointalk.org/index.php?topic=5377321.new#newBut here I want to talk about one aspect that can be applied to Bitcoin, a transaction fee alternative.
Here is an excerpt from the archive:
https://web.archive.org/web/20211217023208/https://www.naturevault.org/wiki/pmwiki.php/CryptoProjects/BlockvaultThe primary way that miners are incentivized to hold the blockchain and provide proof of work (profun work) is the block reward which ever so slightly increases with time to make sure they stay incentivized forever. Miners also earn the small transaction fees. Unless there are 10 million transactions every 7 seconds on the network, the fees collected would be (much) smaller than the block reward.
So the only real reason we need to collect fees for transactions is to prevent spam transactions, people maliciously trying to slow down the network.
Well as an optional alternative to transaction fees (transaction fees are still accepted and are convenient and cheap), we can achieve spam prevention by allowing people to provide thier own proof of work to make spamming impractical.
Factoring a large number (over around 120 digits) is very challenging thing to do even with the technology we have today. In fact it is the proof of work in the CollectBit project. It is so hard that despite decades of research, GPU's and ASIC's have never been created that can do it, and no inventions have even been able to come up with a way it could be done practically. CPU's, the things in your desktop computer, smartphone, or servers can do it however. So what this means is that you can use your desktop to provide this proof of work and bypass paying a fee to post/transact on blockvault.
Here is how it would work: ↑
The network agrees on a difficulty per kilobyte. For example a 1 kb transaction could require factoring a 145 digit number. Each additional kb in the transaction could increase the digit requirement by 1. So for a 10kb transaction it would require factoring a 155 digit number. So this individualized proof of work would only be practical for a transaction smaller than a few kb. If you need to add more data to the blockchain just do it in several transactions.
1.You hash your proposed transaction and a random 6 digit nonce using shake256-1024.
2.Then you convert to base-10 (numbers).
3.Truncate this number to the first 145 digits (or whatever the length needs to be).
4.Factor this number (see DCN mining for more info).
5.Make sure the factorization meets the network requirements, if not go back to step 1 and pick a different nonce until it does.
The network requirements not only specifies the digit length of the number to factor, but also the requirements of the prime factors themselves. In CollectBit, we determined that the prime factorization must be only 2 prime factors, the smaller of the two must be at least 36% of the digit requirement. We should use this requirement here too, 36% was chosen because a GPU can ECM to 34%, and we don't want GPU's hunting for easy to factor numbers and not have to use CPU's.
For example if we are factoring a 145 digit number then the prime factorization must be exactly 2 factors and the length of the smallest factor must be greater than or equal to 0.36*145 so 52.2 rounded up to 53 digits. This makes sure that the factorization you perform as the proof of work really took you some time to complete.
Every year the network should revisit the requirement and make sure that it takes roughly a given timeframe on a decent desktop per kilobyte, say 8 hours for 1kb (so you could run it while you sleep).
So basically a person hashes their transaction details, then converts that hash into a very large number, and then factors it to prove work. This would replace the "spam prevention" aspect of the transaction fees. If there was a small permanent subsidy per bitcoin block (say 0.01 bitcoin) then transaction fees need not pay for the miners work and this could be a low cost alternative to that transaction fee, whereas power users could just pay the fee.