. When a user thinks they are benefiting the network by hosting a full version of the Blockchain (that needs to have data synced with it from a node who could otherwise allocate resources more effectively to another useful node), then that causes a net loss to that productive node by servicing the useless one.
If yes, then my question is then why can't the full node simply do the following: (1) send its UTXO set to the SPV client; (2) SPV client then filters the UTXOs of its interest and put those UTXOs in its own UTXO set.
Bitcoin was revolutionary in that it solved the double-spend problem. It did so by introducing a distributed system of nodes connected as a peer-to-peer network. These nodes operated with radical incentivised transparency concerning the transactions they are going to process.
doi: 10.1109/EDCC.2018.00034. "Performance benchmarking of smart contracts to assess miner incentives in Ethereum," in 2018 14th European Dependable Computing Conference (EDCC) (IEEE), 144–149. Aldweesh, A., Alharby, M., Solaiman, E., and Van Moorsel, A.
Suppose an SPV client goes offline at block X (meaning it has block headers until block X) and then comes back online when the blockchain is at block Y. At that point, it needs to resynchronise its UTXO set. So, it does the following: (1) get the block headers of blocks X to Y; (2) construct a bloom filter for its addresses and request a full node to send all the transactions matching this bloom filter from block X to Y; (3) the full node does so and if a match is found, sends the transaction data along with a merkle proof to the SPV client; (4) SPV client verifies the proof and if it's correct updates its UTXO set accordingly.
Register for the Merkle Trees short course to learn how Merkle proofs enable Bitcoin SV businesses and wallets to implement Simplified Payment Verification (SPV), as described in section 8 of the Bitcoin white paper.
When the block interval is small, other nodes could manage to find the next block before hearing of other competitive blocks due to the network latency, leading to conflicts. Also, increasing the block propagation delay leads to higher stale rates. The block delay includes the block's transmission time as well as the verification of the block and its embedded transactions (Decker and Wattenhofer, 2013). First, reducing the block interval, i.e., the time between successive blocks being created, leads to higher stale rates, especially when the block interval is already small. Stale rate: From the stale rate results reported in Table 5, we observe the following. For instance, reducing the block interval from 12 to 1 s in the case of 0.5 s block delay will result in an increase of the stale rate by about sevenfold. Hence, increasing the block size will result in higher stale rates. For instance, in the case of 600 s block interval, the stale rates are minimal since the block delay is only a tiny fraction of the block interval. For instance, the stale rate increases about tenfold when increasing the delay from 0.5 to 16 s in the case of 12 s block interval. Furthermore, to ensure the lowest stale rate the block delay should be as small as possible and the block interval as large as possible. Thus, cryptocurrency the bigger the block size, the more time required to transmit and verify the block.
At the core of BlockSim is a Base Model, which contains the main model constructs common across various blockchain systems organized in three abstraction layers (network, consensus, and incentives layer). The Base Model is usable for a wide variety of blockchain systems and can be extended easily to include system or deployment particulars. The paper describes the Base Model, the simulator implementation, and the application of BlockSim to Bitcoin, Ethereum and other consensus algorithms. The BlockSim software tool provides a simulator that implements the Base Model in Python. We close the paper by a BlockSim simulation study of the impact of uncle blocks rewards on mining decentralization, cryptocurrency for cryptocurrency a variety of blockchain configurations. We introduce BlockSim, a framework and software tool to build and simulate discrete-event dynamic systems models for blockchain systems. We validate BlockSim simulation results by comparison with performance results from actual systems and from other studies in the literature. Both in the design and deployment of blockchain solutions many performance-impacting configuration choices need to be made. BlockSim is designed to support the analysis of a large variety of blockchains and blockchain deployments as well as a wide set of analysis questions.
First we compare BlockSim with existing blockchain systems (section 6.1), then we compare with various peer-reviewed studies (section 6.2). A nice feature of the blockchain design is that it offers invariants (such as the block creation interval) and plenty of publicly available data to validate the results of any simulator.
Explaining today’s new cryptocurrency hotness to a general audience is an interesting challenge–I have an engineering degree from a top-tier school and I write software for a living, and I still find much of this material pretty impenetrable on first acquaintance–but here goes: To most people, Bitcoin itself is already deeply esoteric (and many still find it risible.) But to cryptocurrency aficionados, tired old garden-variety Bitcoin is so five minutes ago.