Difference between revisions of "Simplified Payment Verification"
Line 1: | Line 1: | ||
Simplified Payment Verification is described in section 8 of the [[Bitcoin whitepaper]] and describes a means by which a user can receive a proof of confirmation for any [[UTXO]] on the network. This proof consists of a Merkle path that links the transaction to the Merkle root of a block in the longest proof of work chain. By linking the transaction to a place in the chain, it can be confirmed as a valid Bitcoin transaction that the network has built upon. | Simplified Payment Verification is described in section 8 of the [[Bitcoin whitepaper]] and describes a means by which a user can receive a proof of confirmation for any [[UTXO]] on the network. This proof consists of a Merkle path that links the transaction to the Merkle root of a block in the longest proof of work chain. By linking the transaction to a place in the chain, it can be confirmed as a valid Bitcoin transaction that the network has built upon. | ||
+ | |||
+ | Forced to the centre of the page | ||
+ | using the ''frame'' tag (attribute), a ''centre'' tag and a caption: | ||
+ | [[File:wiki.png|frame|centre|alt=Puzzle globe|Wikipedia logo]] | ||
Using this technique, it becomes possible to build a Bitcoin wallet or utility that does not need to witness or verify everything taking place on the network, but which can instead receive block headers from the network and validate the Merkle branch of any coin being received against the block's proof of work. | Using this technique, it becomes possible to build a Bitcoin wallet or utility that does not need to witness or verify everything taking place on the network, but which can instead receive block headers from the network and validate the Merkle branch of any coin being received against the block's proof of work. |
Revision as of 23:14, 18 January 2020
Simplified Payment Verification is described in section 8 of the Bitcoin whitepaper and describes a means by which a user can receive a proof of confirmation for any UTXO on the network. This proof consists of a Merkle path that links the transaction to the Merkle root of a block in the longest proof of work chain. By linking the transaction to a place in the chain, it can be confirmed as a valid Bitcoin transaction that the network has built upon.
Forced to the centre of the page using the frame tag (attribute), a centre tag and a caption:
Using this technique, it becomes possible to build a Bitcoin wallet or utility that does not need to witness or verify everything taking place on the network, but which can instead receive block headers from the network and validate the Merkle branch of any coin being received against the block's proof of work.
In Simplified Payment Verification, clients connect to Bitcoin nodes and download only the block headers in the longest proof of work chain. This data grows linearly over time at a rate of around 4.2MB per year. From this data, they can easily and quickly verify the chain headers connect together correctly and that the difficulty is correct. Using typical connection methods, clients then request transactions matching particular patterns from the network (ie, payments with known addresses in their redeem scripts), and receive copies of those transactions along with a Merkle branch linking them to the block in which they were mined. This exploits the Merkle tree structure to allow proof of inclusion without needing the full contents of the block.
Programs implementing this approach can have fixed storage/network overhead in the null case of no usage, and resource usage proportional to received/sent transactions.