4 ms·
Kind of an aside, but as the post talks about all the work needed to be done to verify additions to the blockchain, that also implies people could be adding inv
by ianbicking 5y ago
Kind of an aside, but as the post talks about all the work needed to be done to verify additions to the blockchain, that also implies people could be adding invalid content to the blockchain. Usually invalid stuff is easier to confirm than valid, but still, how easy is it to use invalid additions to spam the chain? Do valid transactions get validated on top of invalid transactions and require revalidation? Or is the initiator of the transaction responsible for recreating on a valid basis?
I'm sure this is all basic blockchain stuff but it hadn't occurred to me before...
- sleavey 5y agoThe "proof" part of proof of work used by Bitcoin is a small piece of information that proves that a lot of work has been done. An invalid proof can be easily checked by other nodes and ignored. In the case of Bitcoin the proof is a set of alphanumeric characters as input to the hashing algorithm (SHA256 I think) that produces a hash with certain properties (some number of leading zeros depending on the current difficulty). Other nodes can verify the proof by taking the input supplied by the miner, combining it with a predetermined nonce and computing the hash and checking that it has the properties required. Computing a single SHA256 is easy compared to figuring out which input to the hash produces a particular output. The next mined block will be appended to the longest valid blockchain the node can see. It's in their interest to append to the one that others will believe, because they get paid the reward only on that chain and thus it only exists in their wallet if others accept it by appending further blocks to it. So generating invalid blocks just doesn't work - they get immediately rejected by other nodes and there is thus no reward. One genuine problem is mining a valid block but adding no transactions to it, to grind transaction throughput to a halt. I think Bitcoin might have some mitigations for this but I don't actually know. If a sufficiently well funded organisation or nation tried to take down Bitcoin this might be the way to do it.
- alisonkisk 5y agoEmpty blocks generate less revenue (no transaction fees, only the minig reward) but are slightly easier to create due to small mathematical flaws that let you skip some work if the block you create is empty. So for certain pools it's profitable in aggregate to mine empty blocks.
- latchkey 5y agoEmpty block mining has gone down significantly over time. 2018 https://www.theblockcrypto.com/linked/1964/close-to-19-of-mined-bitcoin-blocks-were-empty https://www.theblockcrypto.com/linked/1964/close-to-19-of-mi... 2020 https://www.theblockcrypto.com/post/67928/bitcoin-miners-are-mining-fewer-empty-blocks-in-2020-and-it-may-not-all-because-of-chance https://www.theblockcrypto.com/post/67928/bitcoin-miners-are... and stratum v2 gets rid of it entirely... https://braiins.com/blog/why-pools-mine-empty-blocks-and-how-stratum-v2-fixes-this https://braiins.com/blog/why-pools-mine-empty-blocks-and-how... "mining pools will be able to dig deeper into the mempool (for transactions that are unlikely to be included in the current block) and construct full block templates before the current block is found. Then they can send those block templates to miners ahead of time when the latency doesn’t matter, so that only the prevhash message needs to be sent to actually start the new mining round."
- jl2718 5y agoIf you try to include any invalid transaction in the proof, you will not (w.h.p.) be able to create the proof condition. So that update would be rejected. It is up to the proof generator to verify their transactions before including them in a proof. A proof verifier can accept or reject a proof trivially.