<p>You could use the <a href="https://en.bitcoinwiki.org/wiki/Simplified_Payment_Verification" rel="nofollow noreferrer">Simple Payment Verification</a>, or SPV, protocol.</p>
<p>In a nutshell, this works by synchronizing only the block <em>headers</em> for the longest chain. Once the chain is established, individual transactions are proven by using merkle paths leading up to the merkle root in the previously synced block headers.</p>
<p>Note that this only allows for proof that the supplied data exists in the chain - it does not allow the user to verify that you have provided them with all data - it is possible for operators on SPV systems to <code>Lie by omission</code> and simply claim a transaction or block doesn't exist.</p>
<p>Consumer wallets usually get around that by querying multiple such nodes - if at least one node is honest, the wallet is able to detect the lie.</p>

CC BY-SA 4.0
2020-09-19T03:41:38.600Z
2020-09-19T03:41:38.600Z
Raghav Sood
<p>I'm considering consuming, or if unavailable, I'm considering providing, a bitcoin blockchain querying service along the lines of json rpc.</p>
<p>Would it be possible for me as a consumer of such as service, to verify the integrity of returned data from such queries, without myself running a full node? (If not there wouldn't be much point using such a service!)</p>
<p>Would it be possible for me as a provider of such a service, to provide enough data for a consumer to verify the validity of the data I send them, when the consumer is not running a full node? (If not there wouldn't be much point providing such a service!)</p>
<p>My end goal is to run something like a bitcoin blockchain explorer website on the cloud, but the cost of running a full node (particularly storage) on the cloud is more than I can afford. Obviously I have some feature ideas I've not yet seen on other explorers</p>

CC BY-SA 4.0
2020-09-22T18:25:38.393Z
Question edited to confirm I do mean bitcoin. I call it a "blockchain querying service" as the service would relate to the bitcoin blockchain, but not extend to (for example) the bitcoin lightning network.
Nigel Sharp
<blockchain><json-rpc><verification><query>
Can you verify partial blockchain information from a third party, without yourself having an entire blockchain?
Nigel Sharp
# Can you verify partial blockchain information from a third party, without yourself having an entire blockchain?

(Asked by: username_0 on 2020-09-18)

I'm considering consuming, or if unavailable, I'm considering providing, a bitcoin blockchain querying service along the lines of json rpc.

Would it be possible for me as a consumer of such as service, to verify the integrity of returned data from such queries, without myself running a full node? (If not there wouldn't be much point using such a service!)

Would it be possible for me as a provider of such a service, to provide enough data for a consumer to verify the validity of the data I send them, when the consumer is not running a full node? (If not there wouldn't be much point providing such a service!)

My end goal is to run something like a bitcoin blockchain explorer website on the cloud, but the cost of running a full node (particularly storage) on the cloud is more than I can afford. Obviously I have some feature ideas I've not yet seen on other explorers

**Tags:** blockchain, json-rpc, verification, query

> **Comments:**
> **username_0**: Question edited to confirm I do mean bitcoin. I call it a "blockchain querying service" as the service would relate to the bitcoin blockchain, but not extend to (for example) the bitcoin lightning network.  

---

## 1 answers

### Answer by username_1 on 2020-09-19. Score: 1

You could use the [Simple Payment Verification](https://en.bitcoinwiki.org/wiki/Simplified_Payment_Verification), or SPV, protocol.

In a nutshell, this works by synchronizing only the block *headers* for the longest chain. Once the chain is established, individual transactions are proven by using merkle paths leading up to the merkle root in the previously synced block headers.

Note that this only allows for proof that the supplied data exists in the chain - it does not allow the user to verify that you have provided them with all data - it is possible for operators on SPV systems to `Lie by omission` and simply claim a transaction or block doesn't exist.

Consumer wallets usually get around that by querying multiple such nodes - if at least one node is honest, the wallet is able to detect the lie.


---

