Broadcasting Messages in Space with Lightning

Broadcasting Messages in Space with Lightning

In this issue of Layer-2 Report, we explore an underutilized function of the Blockstream Satellite: the ability to broadcast public and private messages over the network using Lightning payments.

By either running the Blockstream Satellite API independently via blocksat-cli or accessing a user-friendly version on the official Blockstream website, users can beam text-based messages, audio, video, and other data into space with little more than a Lightning wallet.

Before diving into the specifics of the API, let's first learn a little more about the Blockstream Satellite.

Beam Me Up, Satoshi

In 2017, the Blockstream Satellite network launched with the first three (now four) geosynchronous satellites, allowing those without stable internet or infrastructure to access the Bitcoin blockchain totally free. Since then, the satellite network has become an additional layer of resiliency for Bitcoin, protecting against network interruptions and reducing Bitcoin’s overall dependency on the internet.

Over the years, many new updates and features have been added: expanding global coverage, improving signal reliability and Bitcoin full node syncing, delivering higher bitrates, introducing data broadcasting over the Satellite API, and more recently, the transmission of Lightning gossip with LNsync.

Today, the Satellite continues to reach countless users globally, with over 400M Bitcoin transaction broadcasts, 17M block transmissions, and more than 10,000 messages sent via API.

Perhaps the best part of the Blockstream Satellite is the relatively low barrier of entry; for only around $150, users can tap their inner Macgyver and build their own satellite receiver with readily available parts online (complete DIY guide here) or by simply reusing an old satellite dish. Serious node runners or mining operators can opt for the Blockstream Base Station. This more professional-grade option includes an all-in-one antenna that supports connections to up to eight Bitcoin nodes on the same network and has been spotted from Brazil to the Far East.

Freedom Tool

The Bitcoin blockchain is not the only thing accessible from space now; with the fully open-source Blockstream Satellite API, users can also broadcast messages for internet-free reception worldwide, a tool with powerful implications for speech and censorship resistance.

Given the increased censorship on large, centralized social media platforms like Twitter, many Bitcoiners have turned to alternatives built on layer-2, like the decentralized and encrypted instant messaging app Sphinx Chat, to get their message out.

The Satellite API is another such free speech tool that allows users to send private data to each other. Once bi-directional communication is rolled-out in the future, the API would arguably be even more resilient than other platforms, given you could send and pay for messages without an internet connection. This would be especially effective during a repressive internet shutdown, extreme weather event, or some other disruption.

Users today can receive messages offline with the API mechanism but will need the internet to send messages and pay for the transmission orders. Fortunately, many workarounds are available, including mesh nets like goTenna, SMS gateways, or even portable two-way systems like Iridium GO that would enable users to initiate transmissions under an internet outage.

Privacy and Costs

When using blocksat-cli to access the API, messages are encrypted by default via GnuPG asymmetric key encryption, ensuring the content of the message stays hidden between sender and receiver.

If you are transmitting through a third party like the Blockstream website or the new satnode.space browser extension for ease of use, however, the message is available publicly to read (plaintext), and users must use software like PGP to encrypt the data before sending it out.

As mentioned, the API is available for anyone, but unlike the Bitcoin service, which is free, users must pay for the data they use. Fortunately, users can pay with Lightning for cheap fees and payment privacy, thanks to Core Lightning’s onion routing. Current prices make it practically free to use, too. When broadcasting a 1MB file via the API, prices are around 1,000 sats or ~0.20 USD (at time of publication), equal to one millisatoshi (msat) per byte. Note that each broadcast order requires a minimum of 1,000 msat or 1 sat to send.

How Does the API Work?

The inner workings of the API can be best described by Igor Freire, the head communications systems engineer working on Blockstream Satellite:

“The process starts with a sender application responsible for queueing up a message transmission order with the Satellite API server. When using the official blocksat-cli sender app, a text message or file is sent, and the sender application prints the Lightning invoice to the console. Once the user pays for the order over Lightning, the Satellite API server broadcasts an event for all interested listeners (client applications), including the Blockstream Satellite Teleports (ground stations). Next, the ground stations, aware of the new paid transmission order, fetch the actual message from the Satellite API server and broadcast it worldwide. Meanwhile, on the user side, the API data listener app receives the message and decodes its content when applicable. Finally, from there, the message can be consumed by the user’s end application.”

Guide

The simplest way to broadcast messages via the Satellite network is through the form provided on our website's Blockstream Satellite transmission page. Advanced users and developers with their own satellite receiver can interface with the Blockstream Satellite API directly with blocksat-cli. For the former, follow the easy five-step process below:

  1. Visit the transmission page under the Blockstream Satellite section of the website and select Broadcast a Transmission.
  2. Enter your message or upload the file you want to broadcast. Then click Next: Bid Your Price.
  3. Enter your bid price (1,000 msats minimum) and click Next: Get Your Authentication Code.
  4. Store your transmission ID and authentication code in a secure location, as you will need both if you want to delete your transmission request later. Then click Next: Pay Through Lightning.
  5. Pay the invoice for your transmission using a Lightning-compatible wallet, then click Finish. Once the payment is completed, your transmission will be added to the queue and broadcast via the Blockstream Satellite network.

You can delete your transmission request, but only before the transmission is sent, which is dependent on the queue. The network will usually publish the message in a few seconds if there is no line.

If you are not running the blocksat-cli utility, you can keep tabs on all broadcasted messages by joining the Blockstream Satellite Transmission Feed Telegram.

For a visual help guide, follow along with our latest Deciphered tutorial below.

Stay on the Pulse of Bitcoin

Subscribe below to have future issues of the Layer-2 Report and the latest news from our engineering, research, and mining teams delivered directly to your inbox. Also follow #LAYER2ROUNDUP (now #LAYER2REPORT) for a monthly Twitter-friendly version of the article.

If you represent a Bitcoin-focused layer-2 application that you think readers would enjoy learning about, dm us here, and if applicable, we can include your project in future posts.


Core Lightning (previously c-lightning) is a lightweight, highly customizable and standard compliant implementation of the Lightning Network protocol.

© 2023 Core Lightning
All rights reserved.

Discussion Forum

The official Core Lightning forum is coming soon!

BuildonL2 Community

The official BuildOnL2 community lives at community.corelightning.org. Join us and build the future of bitcoin on lightning.

Mailing List

For general discussions about CLN implementation, use c-lightning@lists.ozlabs.org. For the Lightning Network, use lightning-dev@lists.linuxfoundation.org

Telegram

Community-driven telegram group where most of the node operators hang out. Go to https://t.me/lightningd to join.

Discord

Community-driven discord server where the devs flock together. Go to https://discord.gg/w27fMFESMN to join.

Internet Relay Chat

Don't hesitate to reach out to us on IRC at #lightning-dev @ libera.chat, #c-lightning @ libera.chat.