In the following thought experiment, let us assume that you are attempting to run a full node but have extremely limited internet bandwidth available (something like text/email-only).
Bitcoin block headers contain enough information for a node to verify the chain work before verifying the chain itself. In essence the PoW information included in the headers acts as an extremely effective first-pass filter. The rest of the consensus filtering happens as the blocks are processed.
If your node is confident as to which chain has the most work, who it downloads the actual blocks from does not matter as much. It could be that the blocks themselves come from a single source, and that is fine, because your node already has the headers to verify against.
A satellite which broadcasts the bitcoin blockchain 24/7 to anybody on earth who can receive it has been available for a while already1.
Such a satellite is great, if it is honest, because your node with a satellite receiver can stay up to date with the full chain, even if you do not have internet access, or if your internet access is very bandwidth-restricted.
On the other hand, if the satellite is not honest, or decides to broadcast a chain with less work, how would you know?
At minimum, you need to have received headers for the most-worked chain from some other source(s) to verify that the satellite is sending you the correct chain.
For the thought experiment here, let us set aside that you already invested the time and money necessary to get a satellite receiver hooked up to your node. What you need now is a way for people who do not have such specialized devices to somehow furnish you with bitcoin headers which you can then feed to your node.
Here are some ideas, in no particular order:
-
headers over radio? - Maybe eventually it will be possible to receive bitcoin headers over various radio channels. Unfortunately, broadcasting the full blockchain via LoRa2 or other consumer-accessible radio technologies seems difficult due mostly to bandwidth constraints (I am not an expert here, so please chime in if that is not true).
-
headers in newsletters? - As specified above, you have some limited internet bandwidth available to you for sending/receiving some basic emails. Maybe you could sign up for a few newsletters from various bitcoiners around the world who, as part of their newsletter include block header information? A weekly newsletter, in addition to its usual content, would include the 80-byte blockheader for each block since the previous newsletter (probably with some overlap)
-
headers in pictures / qr codes / memes? - Similar to the newsletter idea, some bitcoiners might setup websites which you could visit with your extremely limited bandwidth and print/scan in the headers which might be disguised in various forms.
None of the above are very covert.
Can we come up with some covert methods?
Note: if you end up obtaining headers for a chain with more work than the satellite gives you, there is not much you can do about it other than to refuse to transact until such a time as you have more information (such as a source which will provide you the blocks for the most-worked chain) but that is better than nothing!
Footnotes
-
for example https://blockstream.com/satellite/ ↩
-
for example https://github.com/markqvist/Reticulum ↩