For a long time, I thought of the blockchain as almost synonymous with cryptocurrencies, so as I saw stuff like “Odyssey” and “lbry” appearing and being “based on the blockchain”, my first thought was that it was another crypto scam. Then, I just got reminded of it and started looking more into it, and it just seemed like regular torrenting. For example, what’s the big innovation separating Odyssey from Peertube, which is also decentralized and also uses P2P? And what part of it does the blockchain really play, that couldn’t be done with regular P2P? More generally, and looking at the futur, does the blockchain offer new possibilities that the fediverse or pre-existing protocols don’t have?
Oh, its worse than you think.
https://www.cs.princeton.edu/~arvindn/publications/mining_CCS.pdf
Once BTC hits enough halvening-cycles, the entire protocol doesn’t work anymore. Its more beneficial to fork the blockchain (and collect ~50 transaction fees), rather than work on the head (and only collect ~5 transaction fees).
So if the last block confirmed 100-transactions (aka: collected 100 transaction fees), its more beneficial to undo that block and “steal” ~50 transactions, knowing that you’re leaving ~50 transactions for another miner to follow onto your block. (Ex: there are now two blocks: one with ~5 transactions available, the truth… and ~55 transactions available. The lie / false block you created. The lie is more economically beneficial to the next miner, so they’ll switch to your block).
It turns out that BTC forgot how to handle ties after the end of the “Free reward”, and there’s a good chance that “definitive record” is not so definitive.
What’s wrong with that though? BTC handles forks just fine. Eventually one fork will win out and life will continue on as usual.
The bigger issue this paper presents is that miners become incentivized to mine empty blocks. But can’t you just enforce a minimum transaction count on blocks?
Miners can just create their own nonsense transactions.
There’s only incentive to do that if the mempool is empty. If the mempool is full, there will be plenty of transactions for both the first miner and the next miner.
Wait… This entire paper only makes sense if the mempool is near empty. If the mempool is full, then there is no reason to mine an empty/partial block because there will always be transactions left for future miners.
So basically: