In proof-of-work based blockchains such as Ethereum, verification of blocks
is an integral part of establishing consensus across nodes. However, in
Ethereum, miners do not receive a reward for verifying. This implies that
miners face the Verifier's Dilemma: use resources for verification, or use them
for the more lucrative mining of new blocks? We provide an extensive analysis
of the Verifier's Dilemma, using a data-driven model-based approach that
combines closed-form expressions, machine learning techniques and
discrete-event simulation. We collect data from over 300,000 smart contracts
and experimentally obtain their CPU execution times. Gaussian Mixture Models
and Random Forest Regression transform the data into distributions and inputs
suitable for the simulator. We show that, indeed, it is often economically
rational not to verify. We consider two approaches to mitigate the implications
of the Verifier's Dilemma, namely parallelization and active insertion of
invalid blocks, both will be shown to be effective.