radio

Some thoughts on amateur radio and Bitcoin.

tl;dr: Using relatively low-cost hardware, it’s possible to build a Bitcoin block hash number station that can transmit the latest block hashes up to thousands of miles away; crossing borders and continents.


Just recently I was playing around with a new radio I purchased – the Kenwood TH-D74 – which is an advanced and very capable handheld transceiver. One particular capability of this radio is its ability to receive (although not transmit) HF radio from 180 meters to 6 meters. This is great and all since shortwave radios are pretty cheap and readily accessible, but the real kicker is when you apply digital radio modes. Digital radio is, well, broadcasting digital signals instead of analog. But by doing so you can add error correction to the signal such that information can be successfully received with much worse of a signal compared to analog. This means your transmission travels farther. The newest tech in this area is called FT8.


Using FT8, contacts (a confirmation that your transmission was received from another operator located elsewhere) can be made farther than even using Morse code. So, now we have the ability to do standard HAM radio QSOs long distance. What if we want to reliably transmit arbitrary information? You know…maybe Bitcoin block hashes? Thankfully, someone wanted the same thing as me and forked FT8 to create JS8 – a version of FT8 that allows for longer messages to be sent and received.


So, an idea Richard Myers and I were discussing was a HF “numbers station” type of scenario. If using JS8 to send out Bitcoin block hashes, with a modest antenna and HF rig, one can transmit multiple hundreds to potentially even thousands of miles. Why is this useful? Well, reducing the reliance on ISPs is always great. It can also be useful to cross-check infrastructure like Blockstream Satellite, which broadcasts full block data. FT8/JS8 bandwidth is very very low. On order of bits per second, which could be very slow with a SHA256 hash. But if we’re just cross-checking block hashes, then only a small portion of the total hash is really required. We could get away with transmitting the last 3-5-7 characters of a hash so that transmitting and receiving is timely. So something like “9703a80”. The software for receiving this data is FOSS, and hardware that can receive the transmission can be pretty cheap. This could be a great way to add another way to verify Bitcoin data.


Anyway, just some thoughts.