Taken from Bitcoin Whitepaper, https://bitcoin.org/bitcoin.pdf


  1. Why did Satoshi put so much stress on the irreversibility of transactions?

    From the whitepaper, section 1:

    Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party.


    Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers.

    To me, this demonstrates that Satoshi had concluded that much of the cost and friction in the current system was as a direct result of payments not being irreversible and that therefore, the introduction of irreversibility should reduce these costs (and additional mediation burden) from merchants and payment processors.

  2. What proposed role do SPV nodes play in the bitcoin ecosystem?

    It might be telling that the SPV section follows the "Reclaiming Disk Space" section of the paper. Satoshi appears to have considered the issue associated with growing disk space requirements and wanted to partially quell those fears. Similarly, it appears he envisioned that not all nodes using the network were likely to be "full-nodes", and therefore looked to try and present a way in which they would be able to partially participate with the minimal required trust.

    Note that:

    Although the Merkle Tree structure described in this section can prove a transaction was included in a particular block, there is currently no way in Bitcoin to prove that a transaction has not been spent except to process all subsequent data in the blockchain.

    He does mention within the section that:

    While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker’s fabricated transactions for as long as the attacker can continue to overpower the network.

    He does not allude to the fact that full nodes, upon receiving a request from an SPV node about a transaction, can lie that it was not included, when actually it was. The ability for full nodes to provide cryptographic proof that a particular transaction was not in a block would require a working implementation of "fraud proofs" which, to-date (2021) has not materialised.

    Therefore we can conclude that Satoshi’s vision of SPV nodes were for them to effectively be fully trustless, non-validating nodes (relying on the goodwill of a majority of honest nodes) who could participate in sending and receiving transactions on the network and getting cryptographic guarantees that a particular transaction was included in the most-work chain. However today SPV nodes certainly require some degree of trust, depending on the operation they are trying to carry out and Satoshi’s original vision is not yet fulfilled.

    Also not that:

    although software has been produced that implements some parts of this section and calls that Simplified Payment Verification (SPV), none of these programs currently accepts alerts from network nodes (full validation nodes) when invalid blocks have been detected. This has placed bitcoins in so-called SPV wallets at risk in the past.