Author: Mike Hearn 2013-07-17 12:29:26
Published on: 2013-07-17T12:29:26+00:00
In a 2013 email thread on the Bitcoin-development mailing list, Peter Todd proposed the idea of maintaining partial UTXO sets to create a more scalable Bitcoin network. He explained that SPV mode is a newer feature and has issues such as serious privacy concerns and vulnerability to fake blocks. Todd suggested that maintaining partial UTXO sets could improve security, privacy, and scalability by allowing nodes to start with the same security level as an SPV node and gradually become a full node over time. To maintain partial UTXO sets, nodes need to verify every block in a certain range and update their UTXO set and spent txouts (STXO set) accordingly as they download newer and older blocks. Nodes can advertise their nOldestBlock and listArchivedBlockRanges to their peers, and should drop all but the largest n pairs of the latter. Todd also suggested defining a NODE_PARTIAL service bit and only relaying transactions to partial peers if the transactions spend inputs those peers know about.Running a partial node requires modest bandwidth but results in better robustness against DoS attacks for both the node and the Bitcoin network. Additionally, partial nodes can serve each other the data they need, improving scalability. Todd concluded that while maintaining partial UTXO sets requires more code than pure-SPV, it creates a more scalable Bitcoin network.
Updated on: 2023-06-07T13:58:26.953889+00:00